diff --git a/electron.vite.config.ts b/electron.vite.config.ts index e373411d8f..1767cb47e9 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -52,8 +52,7 @@ export default defineConfig({ excludeReplayWorker: true, }, moduleMetadata: { - appVersion: - pkg.version, + appVersion: pkg.version, }, sourcemaps: { filesToDeleteAfterUpload: ["dist/renderer/assets/*.js.map"], diff --git a/eslint.config.mjs b/eslint.config.mjs index 0dd1594c46..9ffb3feba6 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -10,7 +10,7 @@ export default defineConfig( lineBreak: "after", }, lessOpinionated: true, - ignores: ["src/renderer/src/hono.ts", "src/hono.ts"], + ignores: ["src/renderer/src/hono.ts", "src/hono.ts", "resources/**"], preferESM: false, }, { diff --git a/forge.config.ts b/forge.config.ts index 6818cfefe6..25f3eefa7d 100644 --- a/forge.config.ts +++ b/forge.config.ts @@ -41,7 +41,7 @@ async function cleanSources( ]) // Keep only node_modules to be included in the app - const modules = new Set(["font-list"]) + const modules = new Set(["font-list", "@vscode/vscode-languagedetection"]) await Promise.all([ ...(await readdir(buildPath).then((items) => items @@ -70,7 +70,7 @@ const config: ForgeConfig = { ], afterCopy: [cleanSources], asar: true, - ignore: [/^\/node_modules\/(?!font-list)/], + ignore: [/^\/node_modules\/(?!font-list|@vscode\/vscode-languagedetection)/], prune: true, ...(process.env.APPLE_ID && process.env.APPLE_PASSWORD && diff --git a/package.json b/package.json index 9b1167b7a7..5dda850bbe 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,7 @@ "@tanstack/react-query-devtools": "5.51.15", "@tanstack/react-query-persist-client": "5.51.15", "@use-gesture/react": "10.3.1", + "@vscode/vscode-languagedetection": "1.0.22", "@yornaath/batshit": "0.10.1", "builder-util-runtime": "9.2.5-alpha.3", "class-variance-authority": "0.7.0", diff --git a/patches/@vscode__vscode-languagedetection@1.0.22.patch b/patches/@vscode__vscode-languagedetection@1.0.22.patch new file mode 100644 index 0000000000..62feafd49c --- /dev/null +++ b/patches/@vscode__vscode-languagedetection@1.0.22.patch @@ -0,0 +1,9 @@ +diff --git a/dist/lib/index.js b/dist/lib/index.js +index a15f624883d213bd1bc41135bdab4b7d3edf8343..ab8a4e4ba2d3e39f941eb6687f12e9fe10e5246a 100644 +--- a/dist/lib/index.js ++++ b/dist/lib/index.js +@@ -1,3 +1,3 @@ + /*! For license information please see index.js.LICENSE.txt */ +-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["vscode-languagedetection"]=t():e["vscode-languagedetection"]=t()}(this,(function(){return(()=>{var e={3617:(e,t,a)=>{"use strict";a.r(t),a.d(t,{MathBackendCPU:()=>i,shared:()=>n,version_cpu:()=>St});var n={};a.r(n),a.d(n,{addImpl:()=>S,bincountImpl:()=>I,bincountReduceImpl:()=>E,castImpl:()=>v,ceilImpl:()=>M,concatImpl:()=>O,equalImpl:()=>$,expImpl:()=>P,expm1Impl:()=>W,floorImpl:()=>q,gatherNdImpl:()=>K,gatherV2Impl:()=>X,greaterEqualImpl:()=>Y,greaterImpl:()=>Z,lessEqualImpl:()=>se,lessImpl:()=>ae,linSpaceImpl:()=>oe,logImpl:()=>de,maxImpl:()=>ue,maximumImpl:()=>ce,minimumImpl:()=>ge,multiplyImpl:()=>be,negImpl:()=>Se,notEqualImpl:()=>Te,prodImpl:()=>Ve,raggedGatherImpl:()=>$e,raggedTensorToTensorImpl:()=>Le,rangeImpl:()=>We,rsqrtImpl:()=>Ue,scatterImpl:()=>Ge,sigmoidImpl:()=>je,simpleAbsImpl:()=>o,sliceImpl:()=>Ze,sparseFillEmptyRowsImpl:()=>Ye,sparseReshapeImpl:()=>et,sparseSegmentReductionImpl:()=>tt,sqrtImpl:()=>at,squaredDifferenceImpl:()=>st,stridedSliceImpl:()=>ot,stringNGramsImpl:()=>lt,stringSplitImpl:()=>ut,stringToHashBucketFastImpl:()=>ct,subImpl:()=>ht,tileImpl:()=>vt,topKImpl:()=>Nt,transposeImpl:()=>Ee,uniqueImpl:()=>kt});var r=a(8946);function s(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&r.util.assert("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the CPU backend.`))}))}const p=r.kernel_impls.whereImpl;class i extends r.KernelBackend{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new r.DataStorage(this,(0,r.engine)())}nextDataId(){return i.nextDataId++}write(e,t,a){this.firstUse&&(this.firstUse=!1,(0,r.env)().get("IS_NODE")&&r.backend_util.warn("\n============================\nHi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. \n============================"));const n={id:this.nextDataId()};return this.data.set(n,{values:e,dtype:a,refCount:1}),n}makeTensorInfo(e,t,a){let n;if("string"===t&&null!=a&&a.length>0&&r.util.isString(a[0])){const s=a.map((e=>r.util.encodeString(e)));n=this.write(s,e,t)}else n=this.write(a,e,t);return{dataId:n,shape:e,dtype:t}}refCount(e){if(this.data.has(e)){return this.data.get(e).refCount}return 0}incRef(e){this.data.get(e).refCount++}decRef(e){if(this.data.has(e)){this.data.get(e).refCount--}}move(e,t,a,n,r){this.data.set(e,{values:t,dtype:n,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){const{dtype:t,complexTensorInfos:a}=this.data.get(e);if("complex64"===t){const e=this.readSync(a.real.dataId),t=this.readSync(a.imag.dataId);return r.backend_util.mergeRealAndImagArrays(e,t)}return this.data.get(e).values}bufferSync(e){const t=this.readSync(e.dataId);if("string"===e.dtype)try{const a=t.map((e=>r.util.decodeString(e)));return(0,r.buffer)(e.shape,e.dtype,a)}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return(0,r.buffer)(e.shape,e.dtype,t)}makeOutput(e,t,a){return(0,r.engine)().makeTensorFromTensorInfo(this.makeTensorInfo(t,a,e),this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;const{complexTensorInfos:a}=this.data.get(e);null!=a&&(this.disposeData(a.real.dataId,!0),this.disposeData(a.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){const t=r.util.now();e();return{kernelMs:r.util.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){s([e],"where");const t=this.readSync(e.dataId);return p(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}function o(e){const t=new Float32Array(e.length);for(let a=0;a{const{x:t}=e.inputs,a=e.backend;s(t,"abs");let n=new Float32Array(r.util.sizeFromShape(t.shape));return n=o(a.data.get(t.dataId).values),a.makeOutput(n,t.shape,t.dtype)}};function l(e){return(t,a,n,s,p)=>{const i=r.backend_util.assertAndGetBroadcastShape(t,a),o=i.length,d=r.util.computeStrides(i),l=r.util.sizeFromShape(i),m=r.util.getTypedArrayFromDType(p,l),u=t.length,c=a.length,h=r.util.computeStrides(t),f=r.util.computeStrides(a),g=r.backend_util.getBroadcastDims(t,i),y=r.backend_util.getBroadcastDims(a,i);if(g.length+y.length===0)for(let t=0;tp[e]=0));const i=r.util.locToIndex(p,u,h),l=a.slice(-c);y.forEach((e=>l[e]=0));const v=r.util.locToIndex(l,c,f);m[t]=e(n[i],s[v])}return[m,i]}}function m(e){const{inputs:t,backend:a}=e,{real:n,imag:r}=t,s=a.data.get(n.dataId).values,p=a.data.get(r.dataId).values,i=a.makeTensorInfo(n.shape,"complex64");return a.data.get(i.dataId).complexTensorInfos={real:a.makeTensorInfo(n.shape,"float32",s),imag:a.makeTensorInfo(r.shape,"float32",p)},i}const u={kernelName:r.Complex,backendName:"cpu",kernelFunc:m};function c(e,t,a="float32"){if("complex64"===a){return m({inputs:{real:c(e,t,"float32"),imag:c(e,t,"float32")},backend:e})}const n=r.util.makeZerosTypedArray(r.util.sizeFromShape(t),a);return e.makeTensorInfo(t,a,n)}function h(e){const{inputs:t,backend:a}=e,{x:n}=t;return a.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}const f={kernelName:r.Identity,backendName:"cpu",kernelFunc:h};function g(e){const{inputs:t,backend:a}=e,{input:n}=t,r=a.data.get(n.dataId).complexTensorInfos.real,s=a.data.get(r.dataId).values;return a.makeTensorInfo(r.shape,r.dtype,s)}const y={kernelName:r.Real,backendName:"cpu",kernelFunc:g};function v(e,t,a,n){if("int32"===n){return[t,"int32",Int32Array.from(e)]}if("bool"===n){const n=r.util.toTypedArray([0],a),[s,p]=l(((e,t)=>e!==t?1:0))(t,[],e,n,"bool");return[p,"bool",s]}throw new Error(`Error in Cast: failed to cast ${a} to ${n}`)}function b(e){const{inputs:t,backend:a,attrs:n}=e,{x:s}=t,{dtype:p}=n;if("complex64"===p){if("complex64"===s.dtype)return h({inputs:{x:s},backend:a});const e=c(a,s.shape,s.dtype),t=b({inputs:{x:s},backend:a,attrs:{dtype:"float32"}}),n=m({inputs:{real:t,imag:e},backend:a});return a.disposeIntermediateTensorInfo(e),a.disposeIntermediateTensorInfo(t),n}if("complex64"===s.dtype){const e=g({inputs:{input:s},backend:a}),t=b({inputs:{x:e},backend:a,attrs:{dtype:p}});return a.disposeIntermediateTensorInfo(e),t}if(!r.util.hasEncodingLoss(s.dtype,p)){const e=h({inputs:{x:s},backend:a});return{dataId:e.dataId,shape:e.shape,dtype:p}}const i=a.data.get(s.dataId).values,[o,d,l]=v(i,s.shape,s.dtype,p);return a.makeTensorInfo(o,d,l)}const w={kernelName:r.Cast,backendName:"cpu",kernelFunc:b};function N(e,t,a,n){return null==a?({inputs:a,backend:p})=>{const{a:i,b:o}=a,d=p;s([i,o],e);const l=d.data.get(i.dataId).values,m=d.data.get(o.dataId).values,u="string"===i.dtype?r.backend_util.fromUint8ToStringArray(l):l,c="string"===i.dtype?r.backend_util.fromUint8ToStringArray(m):m,h=n||i.dtype,[f,g]=t(i.shape,o.shape,u,c,h);return d.makeTensorInfo(g,h,f)}:({inputs:e,backend:r})=>{const{a:s,b:p}=e,i=r;if("complex64"===s.dtype||"complex64"===p.dtype){const e=b({inputs:{x:s},backend:i,attrs:{dtype:"complex64"}}),t=i.data.get(e.dataId),n=t.complexTensorInfos.real,r=t.complexTensorInfos.imag,o=i.data.get(n.dataId).values,d=i.data.get(r.dataId).values,l=b({inputs:{x:p},backend:i,attrs:{dtype:"complex64"}}),u=i.data.get(l.dataId),c=u.complexTensorInfos.real,h=u.complexTensorInfos.imag,f=i.data.get(c.dataId).values,g=i.data.get(h.dataId).values,[y,v,w]=a(s.shape,p.shape,o,d,f,g),N=i.makeTensorInfo(w,"float32",y),k=i.makeTensorInfo(w,"float32",v),S=m({inputs:{real:N,imag:k},backend:i});return i.disposeIntermediateTensorInfo(e),i.disposeIntermediateTensorInfo(l),i.disposeIntermediateTensorInfo(N),i.disposeIntermediateTensorInfo(k),S}{const e=i.data.get(s.dataId).values,a=i.data.get(p.dataId).values,r=n||s.dtype,[o,d]=t(s.shape,p.shape,e,a,r);return i.makeTensorInfo(d,r,o)}}}function k(e){return(t,a,n,s,p,i)=>{const o=r.backend_util.assertAndGetBroadcastShape(t,a),d=r.util.sizeFromShape(o),l=o.length,m=r.util.computeStrides(o),u=r.util.getTypedArrayFromDType("float32",d),c=r.util.getTypedArrayFromDType("float32",d),h=r.backend_util.getBroadcastDims(t,o),f=r.backend_util.getBroadcastDims(a,o),g=r.backend_util.mergeRealAndImagArrays(n,s),y=r.backend_util.mergeRealAndImagArrays(p,i),v=t.length,b=r.util.computeStrides(t),w=a.length,N=r.util.computeStrides(a);if(h.length+f.length===0)for(let t=0;tn[e]=0));const s=r.util.locToIndex(n,v,b),p=a.slice(-w);f.forEach((e=>p[e]=0));const i=r.util.locToIndex(p,w,N),o=e(g[2*s],g[2*s+1],y[2*i],y[2*i+1]);u[t]=o.real,c[t]=o.imag}return[u,c,o]}}const S=l(((e,t)=>e+t)),_=k(((e,t,a,n)=>({real:e+a,imag:t+n}))),T=N(r.Add,S,_),x={kernelName:r.Add,backendName:"cpu",kernelFunc:T};function I(e,t,a,n,s){const p=r.util.sizeFromShape(n),i=r.util.makeZerosTypedArray(s,a);for(let a=0;a=s||(i[n]+=p>0?t[a]:1)}return i}function E(e,t,a,n=!1){const s=e.shape[0],p=e.shape[1],i=(0,r.buffer)([s,a],t.dtype);for(let r=0;r=a||(n?i.set(1,r,p):t.size>0?i.set(i.get(r,p)+t.get(r,s),r,p):i.set(i.get(r,p)+1,r,p))}return i}function D(e){return(t,a,n)=>{const s=r.util.getTypedArrayFromDType(a,t.length);for(let a=0;a{const{x:o}=n;if(s(o,e),"string"===o.dtype||"string"===a)throw new Error("unaryKernelFunc does not support string input/output");const d=i,l=d.data.get(o.dataId).values,m=r.util.sizeFromShape(o.shape),u=a||o.dtype,c=r.util.getArrayFromDType(u,m);for(let e=0;e{const{x:i}=n;if(s(i,e),"string"===i.dtype||"string"===a)throw new Error("unaryKernelFunc does not support string input/output");const o=p,d=o.data.get(i.dataId).values,l=a||i.dtype,m=t(d,l,r);return o.makeTensorInfo(i.shape,l,m)}}const M=D((e=>Math.ceil(e))),F=V(r.Ceil,M),B={kernelName:r.Ceil,backendName:"cpu",kernelFunc:F};function O(e,t,a,n){const s=r.util.getArrayFromDType(a,r.util.sizeFromShape(t));if(n&&"string"!==a){let t=0;e.forEach((e=>{const a=r.util.sizeFromShape(e.shape);s.set(e.vals,t),t+=a}))}else{let n=0;e.forEach((e=>{const p="string"===a?r.backend_util.fromUint8ToStringArray(e.vals):e.vals;let i=0;for(let a=0;ae===t?1:0)),C=N(r.Equal,$,null,"bool"),R={kernelName:r.Equal,backendName:"cpu",kernelFunc:C},P=D((e=>Math.exp(e))),z=V(r.Exp,P,"float32"),L={kernelName:r.Exp,backendName:"cpu",kernelFunc:z},W=D((e=>Math.expm1(e))),U=V(r.Expm1,W),H={kernelName:r.Expm1,backendName:"cpu",kernelFunc:U},q=D((e=>Math.floor(e))),G=V(r.Floor,q),j={kernelName:r.Floor,backendName:"cpu",kernelFunc:G};function K(e,t,a,n,s,p,i,o,d){const l=(0,r.buffer)([n,p],a);for(let a=0;a=d/p)throw new Error(`Invalid indices: ${n} does not index into ${o}`);for(let e=0;ee>t?1:0)),J=N(r.Greater,Z,null,"bool"),Q={kernelName:r.Greater,backendName:"cpu",kernelFunc:J},Y=l(((e,t)=>e>=t?1:0)),ee=N(r.GreaterEqual,Y,null,"bool"),te={kernelName:r.GreaterEqual,backendName:"cpu",kernelFunc:ee},ae=l(((e,t)=>ee<=t?1:0)),pe=N(r.LessEqual,se,null,"bool"),ie={kernelName:r.LessEqual,backendName:"cpu",kernelFunc:pe};function oe(e,t,a){const n=(t-e)/(a-1),s=r.util.makeZerosTypedArray(a,"float32");s[0]=e;for(let e=1;eMath.log(e))),le=V(r.Log,de),me={kernelName:r.Log,backendName:"cpu",kernelFunc:le};function ue(e,t,a,n){const s=r.util.getTypedArrayFromDType(n,r.util.sizeFromShape(a));for(let a=0;ar)&&(r=t)}s[a]=r}return s}const ce=l(((e,t)=>Math.max(e,t))),he=N(r.Maximum,ce),fe={kernelName:r.Maximum,backendName:"cpu",kernelFunc:he},ge=l(((e,t)=>Math.min(e,t))),ye=N(r.Minimum,ge),ve={kernelName:r.Minimum,backendName:"cpu",kernelFunc:ye},be=l(((e,t)=>e*t)),we=k(((e,t,a,n)=>({real:e*a-t*n,imag:e*n+t*a}))),Ne=N(r.Multiply,be,we),ke={kernelName:r.Multiply,backendName:"cpu",kernelFunc:Ne};function Se(e,t,a){const n=r.util.createScalarValue(-1,a);return be([],t,n,e,a)}const _e={kernelName:r.Neg,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{x:n}=t;s(n,"neg");const r=a.data.get(n.dataId).values,[p,i]=Se(r,n.shape,n.dtype);return a.makeTensorInfo(i,n.dtype,p)}},Te=l(((e,t)=>e!==t?1:0)),xe=N(r.NotEqual,Te,null,"bool"),Ie={kernelName:r.NotEqual,backendName:"cpu",kernelFunc:xe};function Ee(e,t,a,n,s){const p=t.length,i=r.util.sizeFromShape(t),o=r.util.computeStrides(t),d=r.util.computeStrides(s),l=r.util.getTypedArrayFromDType(a,r.util.sizeFromShape(s));for(let t=0;ta.disposeIntermediateTensorInfo(e))),a.makeTensorInfo(b,v,g)}};function Fe(e,t,a,n){const r=[];let s=0;const p=t.length-1+a.length,i=new Array(p).fill(null).map((()=>[0]));!function(e,t){for(let a=0;ar)throw new Error("Ragged splits must not point past values");for(let e=1;en[e])throw new Error("Ragged splits must be sorted in ascending order")}}(a,n);let o=1;for(let e=0;e=0){const e=i[r],t=e[e.length-1]-n[p];for(let e=p;e{if(e<0||e>=a){const s=r.util.indexToLoc(n,t.length,r.util.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${e} is not in [0, ${a})`)}}))}(p,i,t[0][0]-1),0===n.length)throw new Error("params.rank must be nonzero");const d=n[0],{outSplits:l,valueSlices:m,numValues:u}=Fe(p,i,e,d),c=function(e){const t=[];for(let a=0;as[t]=e))}return t}(l),h=Oe(a,n,s,m,u);return[c,h[0],h[1]]}var Ce=r.backend_util.RowPartitionType;class Re{constructor(e,t,a,n,s,p,i,o,d,l){this.shape=e,this.shapeShape=t,this.values=a,this.valuesShape=n,this.valuesDType=s,this.defaultValue=p,this.defaultValueShape=i,this.rowPartitionValues=o,this.rowPartitionValuesShapes=d,this.rowPartitionTypes=r.backend_util.getRowPartitionTypesHelper(l),this.raggedRank=r.backend_util.getRaggedRank(this.rowPartitionTypes)}getRowPartitionTypeByDimension(e){return this.rowPartitionTypes[0]===Ce.FIRST_DIM_SIZE?this.rowPartitionTypes[e+1]:this.rowPartitionTypes[e]}getRowPartitionTensor(e){return this.rowPartitionTypes[0]===Ce.FIRST_DIM_SIZE?this.rowPartitionValues[e+1]:this.rowPartitionValues[e]}getMaxWidth(e){const t=this.getRowPartitionTensor(e-1);switch(this.getRowPartitionTypeByDimension(e-1)){case Ce.VALUE_ROWIDS:return Re.getMaxWidthValueRowID(t);case Ce.ROW_SPLITS:return Re.getMaxWidthRowSplit(t);default:throw new Error(`Cannot handle partition type ${Ce[this.getRowPartitionTypeByDimension(e-1)]}`)}}static getMaxWidthRowSplit(e){const t=e.length;if(0===t||1===t)return 0;let a=0;for(let n=0;na&&(a=t)}return a}static getMaxWidthValueRowID(e){const t=e.length;if(0===t)return 0;let a=0,n=e[0],r=0;for(let s=1;s"Final length of result must be equal to firstDimension.")),s}calculateOutputIndexRowSplit(e,t,a,n){const r=e.length,s=[];for(let p=0;p0&&s.length!==e[r-1])throw new Error("Invalid row split size.");return s}calculateOutputIndexValueRowID(e,t,a,n){const r=e.length,s=[];if(0===r)return[];let p=0,i=e[0];if(i>=t.length)throw new Error(`Got currentValueRowId=${i}, which is not less than ${t.length}`);let o=t[i];s.push(o);for(let d=1;d=0&&(++p,p=t.length)throw new Error(`Got nextValueRowId=${r} which is not less than ${t.length}`);o=t[r]}s.push(o)}if(s.length!==e.length)throw new Error("Invalid row ids.");return s}calculateOutputIndex(e,t,a,n){const r=this.getRowPartitionTensor(e),s=this.getRowPartitionTypeByDimension(e);switch(s){case Ce.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,a,n);case Ce.ROW_SPLITS:if(r.length-1>t.length)throw new Error(`Row partition size is greater than output size: ${r.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(r,t,a,n);default:throw new Error(`Unsupported partition type: ${Ce[s]}`)}}getFirstDimensionSize(){const e=this.rowPartitionValues[0];if(0===this.rowPartitionTypes.length)throw new Error("No row_partition_types given.");const t=this.rowPartitionTypes[0];switch(t){case Ce.FIRST_DIM_SIZE:return e[0];case Ce.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ce.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ce[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");const e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),a=new Array(this.raggedRank+1);a[a.length-1]=1;for(let e=a.length-2;e>=0;--e)a[e]=a[e+1]*t[e+1];const n=ze(t,!1),s=r.util.getArrayFromDType(this.valuesDType,r.util.sizeFromShape(n));if(a[0]*t[0]>0){let r=this.calculateFirstParentOutputIndex(e,a[0],t[0]);for(let e=1;e<=this.raggedRank;++e){r=this.calculateOutputIndex(e-1,r,a[e],t[e])}this.setOutput(this.raggedRank,r,s,n)}return[n,s]}setOutput(e,t,a,n){if(0===a.length)return;const s=this.values,p=a;let i=n.slice();i=i.slice(e+1);const o=r.util.sizeFromShape(i),d=t.length;let l=this.defaultValue;if(l.length!==o&&1!==l.length){const e=this.defaultValueShape;(0,r.tidy)((()=>{const t=(0,r.reshape)(l,e),a=(0,r.broadcastTo)(t,i);l=a.dataSync()}))}let m=0,u=0,c=0;for(let e=0;e<=d;++e){let n=e=d){const e=a.length;n=Math.floor(e/o)}if(n>c)if(1===this.defaultValue.length)p.subarray(c*o,n*o).fill(this.defaultValue[0]),c=n;else for(;n>c;){Pe(p.slice(c*o),l,o),++c}n<0?(m=e+1,u=c):(m=e,u=c,c=u+1)}else++c}}}function Pe(e,t,a){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}a.push(n)}return a}function Le(e,t,a,n,r,s,p,i,o,d){return new Re(e,t,a,n,r,s,p,i,o,d).compute()}function We(e,t,a,n){if(e===t||e1)return r.util.makeZerosTypedArray(0,n);const s=Math.abs(Math.ceil((t-e)/a)),p=r.util.makeZerosTypedArray(s,n);t1/Math.sqrt(e))),He=V(r.Rsqrt,Ue),qe={kernelName:r.Rsqrt,backendName:"cpu",kernelFunc:He};function Ge(e,t,a,n,s,p,i,o,d,l){const m=[n/s,s],u=e.values,c=t.values;if(0===n)return(0,r.buffer)(a,t.dtype);const h=(0,r.buffer)(m,t.dtype);"string"==typeof d||"number"==typeof d?h.values.fill(d):"boolean"==typeof d&&h.values.fill(+d);for(let e=0;e=n/s)throw new Error(`Invalid indices: ${r} does not index into ${a}`);for(let a=0;a1/(1+Math.exp(-e)))),Ke=A(r.Sigmoid,(e=>1/(1+Math.exp(-e)))),Xe={kernelName:r.Sigmoid,backendName:"cpu",kernelFunc:Ke};function Ze(e,t,a,n,s){const p=r.slice_util.isSliceContinous(n,t,a),i=r.util.sizeFromShape(a),o=r.util.computeStrides(n);if(p){const a=r.slice_util.computeFlatOffset(t,o);return"string"===s?e.slice(a,a+i):e.subarray(a,a+i)}const d="string"===s?r.backend_util.fromUint8ToStringArray(e):e,l=(0,r.buffer)(n,s,d),m=(0,r.buffer)(a,s);for(let e=0;ee+t[a]));m.set(l.get(...n),...a)}return"string"===s?r.backend_util.fromStringArrayToUint8(m.values):m.values}function Je(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{begin:i,size:o}=n;s(p,"slice");const[d,l]=r.slice_util.parseSliceParams(p,i,o);r.slice_util.assertParamsValid(p,d,l);const m=Ze(a.data.get(p.dataId).values,d,l,p.shape,p.dtype);return a.makeTensorInfo(l,p.dtype,m)}const Qe={kernelName:r.Slice,backendName:"cpu",kernelFunc:Je};function Ye(e,t,a,n,s,p,i){const o=t[0],d=p[0],l=new Array(d),m=new Array(o),u=t[1];if(0===d){if(0!==o)throw new Error(r.backend_util.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));return[r.util.getArrayFromDType(a,0),[0,u],r.util.getArrayFromDType(s,0),l,m]}let c=!0,h=0;const f=new Array(d).fill(0);for(let t=0;t=d)throw new Error(r.backend_util.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(t,a,d));++f[a],c=c&&a>=h,h=a}let g=!0;for(let e=0;e0&&(f[e]+=f[e-1])}if(g&&c){const t=e,a=n;for(let e=0;e0){c[u-1]=1;for(let e=u-2;e>=0;--e)c[e]=c[e+1]*n[e+1]}const h=[];if(o>0){h[o-1]=1;for(let e=o-2;e>=0;--e)h[e]=h[e+1]*d[e+1]}const f=r.util.getArrayFromDType(a,i*o);for(let t=0;t0?s[o-1]+1:0;if(m<0)throw new Error(r.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());const u=t.slice();u[0]=m;const c=u.reduce(((e,t)=>e*t),1),h=r.util.getArrayFromDType(a,c);if(0===o)return m>0&&h.fill(i),[h,u];if(m<=0)throw new Error(r.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let f=0,g=1,y=0,v=s[f];for(;;){let t=0;if(g=t)throw new Error(r.backend_util.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(v<0||v>=m)throw new Error(r.backend_util.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(v,m));v>y&&h.fill(i,y*l,v*l);for(let t=f;t=d[0])throw new Error(r.backend_util.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(t,n[t],d[0]));for(let t=0;to)break}return yMath.sqrt(e))),nt=A(r.Sqrt,(e=>Math.sqrt(e))),rt={kernelName:r.Sqrt,backendName:"cpu",kernelFunc:nt},st=l(((e,t)=>{const a=e-t;return a*a})),pt=N(r.SquaredDifference,st),it={kernelName:r.SquaredDifference,backendName:"cpu",kernelFunc:pt};function ot(e,t,a,n){const s=(0,r.buffer)(e,t.dtype);for(let e=0;e0?0:p-i);let u=0;u+=o*this.leftPad.length;for(let t=0;te.forEach((e=>c[h++]=e));for(let e=0;e0){f(e[m+l-1]);for(let e=0;e0){let e=t[0];if(0!==e)throw new Error(`First split value must be 0, got ${e}`);for(let r=1;r=e;if(n=n&&t[r]<=a,!n)throw new Error(`Invalid split value ${t[r]}, must be in [${e}, ${a}]`);e=t[r]}if(e!==a)throw new Error(`Last split value must be data size. Expected ${a}, got ${e}`)}const s=n-1,p=r.util.getArrayFromDType("int32",n);if(0===a||0===n){const e=new Array(a);for(let e=0;e<=s;++e)p[e]=0;return[e,p]}p[0]=0;for(let e=1;e<=s;++e){const a=t[e]-t[e-1];let n=0;this.nGramWidths.forEach((e=>{n+=this.getNumNGrams(a,e)})),this.preserveShort&&a>0&&0===n&&(n=1),p[e]=p[e-1]+n}const i=new Array(p[s]);for(let a=0;a{const p=t[a+1]-t[a],o=this.getNumNGrams(p,s);this.createNGrams(e,n,i,r,o,s),r+=o})),this.preserveShort&&r===p[a]){const s=t[a+1]-t[a];if(0===s)continue;const p=s+2*this.padWidth,o=1;this.createNGrams(e,n,i,r,o,p)}}return[i,p]}}function lt(e,t,a,n,r,s,p,i){return new dt(a,n,r,s,p,i).compute(e,t)}function mt(e,t,a,n){if(!e.length)return;if(0===t.length){for(let t=0;te-t)),ft=k(((e,t,a,n)=>({real:e-a,imag:t-n}))),gt=N(r.Sub,ht,ft),yt={kernelName:r.Sub,backendName:"cpu",kernelFunc:gt};function vt(e,t){const a=new Array(e.rank);for(let n=0;n{const a=t.value-e.value;return 0===a?e.index-t.index:a};function wt(e,t,a=0,n=e.length-1){for(;n>a;){if(n-a>600){const r=n-a+1,s=t-a+1,p=Math.log(r),i=.5*Math.exp(2*p/3),o=.5*Math.sqrt(p*i*(r-i)/r)*Math.sign(s-r/2);wt(e,t,Math.max(a,Math.floor(t-s*i/r+o)),Math.min(n,Math.floor(t+(r-s)*i/r+o)))}const s=e[t];let p=a,i=n;for(r.util.swap(e,a,t),bt(e[n],s)>0&&r.util.swap(e,a,n);p0;)i-=1}0===bt(e[a],s)?r.util.swap(e,a,i):(i+=1,r.util.swap(e,i,n)),i<=t&&(a=i+1),t<=i&&(n=i-1)}}function Nt(e,t,a,n,s){const p=t[t.length-1],[i,o]=[e.length/p,p],d=r.util.getTypedArrayFromDType(a,i*n),l=r.util.getTypedArrayFromDType("int32",i*n);for(let t=0;tp[t]={value:e,index:t})),n{for(let a=0;anew i),1);const _t=A(r.Elu,(e=>e>=0?e:Math.exp(e)-1)),Tt={kernelName:r.Elu,backendName:"cpu",kernelFunc:_t};function xt(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{alpha:i}=n;s([p],"leakyRelu");const o=r.util.sizeFromShape(p.shape),d=a.data.get(p.dataId).values,l=r.util.getTypedArrayFromDType("float32",o);for(let e=0;ee<0?t*e:e));function Dt(e){const{inputs:t,backend:a}=e,{x:n,alpha:r}=t;s([n,r],"prelu");const p=a.data.get(n.dataId).values,i=a.data.get(r.dataId).values,[o,d]=Et(n.shape,r.shape,p,i,"float32");return a.makeTensorInfo(d,"float32",o)}const At={kernelName:r.Prelu,backendName:"cpu",kernelFunc:Dt},Vt=A(r.Relu,(e=>Math.max(0,e))),Mt={kernelName:r.Relu,backendName:"cpu",kernelFunc:Vt},Ft=A(r.Relu6,(e=>Math.min(Math.max(0,e),6))),Bt={kernelName:r.Relu6,backendName:"cpu",kernelFunc:Ft};function Ot(e,t,a,n,r){if("linear"===a)return h({inputs:{x:t},backend:e});if("relu"===a)return Vt({inputs:{x:t},backend:e});if("elu"===a)return _t({inputs:{x:t},backend:e});if("relu6"===a)return Ft({inputs:{x:t},backend:e});if("prelu"===a)return Dt({inputs:{x:t,alpha:n},backend:e});if("leakyrelu"===a)return xt({inputs:{x:t},backend:e,attrs:{alpha:r}});if("sigmoid"===a)return Ke({inputs:{x:t},backend:e});throw new Error(`Activation ${a} has not been implemented for the CPU backend.`)}function $t(e){const{inputs:t,backend:a,attrs:n}=e,{x:s}=t,{shape:p}=n,i=r.util.sizeFromShape(s.shape),o=r.util.inferFromImplicitShape(p,i),d=r.util.sizeFromShape(o);r.util.assert(i===d,(()=>`The new shape (${o}) has ${d} elements and the old shape (${s.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`)),a.incRef(s.dataId);const l=a.data.get(s.dataId);if(null!=l.complexTensorInfos){const e=l.complexTensorInfos.real,t=l.complexTensorInfos.imag;e.shape=o,t.shape=o}return{dataId:s.dataId,shape:o,dtype:s.dtype}}const Ct={kernelName:r.Reshape,backendName:"cpu",kernelFunc:$t};function Rt(e){const{inputs:t,backend:a,attrs:n}=e,{a:p,b:i}=t,{transposeA:o,transposeB:d}=n;s([p,i],"matMul");const l=p.shape.length,m=i.shape.length,u=o?p.shape[l-2]:p.shape[l-1],c=d?i.shape[m-1]:i.shape[m-2],h=o?p.shape[l-1]:p.shape[l-2],f=d?i.shape[m-2]:i.shape[m-1],g=p.shape.slice(0,-2),y=i.shape.slice(0,-2),v=r.util.sizeFromShape(g),b=r.util.sizeFromShape(y),w=r.broadcast_util.assertAndGetBroadcastShape(p.shape.slice(0,-2),i.shape.slice(0,-2)).concat([h,f]);r.util.assert(u===c,(()=>`Error in matMul: inner shapes (${u}) and (${c}) of Tensors with shapes ${p.shape} and ${i.shape} and transposeA=${o} and transposeB=${d} must match.`));const N=d?[b,f,c]:[b,c,f],k=$t({inputs:{x:p},backend:a,attrs:{shape:o?[v,u,h]:[v,h,u]}}),S=$t({inputs:{x:i},backend:a,attrs:{shape:N}}),_=o?k.shape[1]:k.shape[2],T=o?k.shape[2]:k.shape[1],x=d?S.shape[1]:S.shape[2],I=Math.max(v,b),E=a.data.get(k.dataId).values,D=a.data.get(S.dataId).values,A=r.util.computeStrides(k.shape),V=r.util.computeStrides(S.shape),[M,F,B]=o?[A[0],1,A[1]]:[A[0],A[1],1],[O,$,C]=d?[1,V[1],V[0]]:[V[1],1,V[0]],R=T*x,P=(0,r.buffer)([I,T,x],k.dtype),z=P.values,L=a.blockSize;for(let e=0;eMath.acos(e))),Wt={kernelName:r.Acos,backendName:"cpu",kernelFunc:Lt},Ut=A(r.Acosh,(e=>Math.acosh(e))),Ht={kernelName:r.Acosh,backendName:"cpu",kernelFunc:Ut};const qt={kernelName:r.AddN,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,n=t;s(t,"addN");const p=n.map((e=>a.data.get(e.dataId).values)),i=(0,r.buffer)(n[0].shape,n[0].dtype),o=i.values;for(let e=0;ea&&(a=r,n=e)}f[e]=n}return m.forEach((e=>a.disposeIntermediateTensorInfo(e))),a.makeTensorInfo(u,"int32",f)}};const Xt={kernelName:r.ArgMin,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{axis:i}=n;s(p,"argMin");let o=r.util.parseAxisParam(i,p.shape);const d=r.backend_util.getAxesPermutation(o,p.shape.length);let l=p;const m=[];null!=d&&(l=De({inputs:{x:p},backend:a,attrs:{perm:d}}),m.push(l),o=r.backend_util.getInnerMostAxes(o.length,l.shape.length)),o=[o[0]],r.backend_util.assertAxesAreInnerMostDims("argMin",o,l.shape.length);const[u,c]=r.backend_util.computeOutAndReduceShapes(l.shape,o),h=r.util.sizeFromShape(u),f=r.util.makeZerosTypedArray(h,"int32"),g=r.util.sizeFromShape(c),y=a.data.get(l.dataId).values;for(let e=0;ea.disposeIntermediateTensorInfo(e))),a.makeTensorInfo(u,"int32",f)}},Zt=A(r.Asin,(e=>Math.asin(e))),Jt={kernelName:r.Asin,backendName:"cpu",kernelFunc:Zt},Qt=A(r.Asinh,(e=>Math.asinh(e))),Yt={kernelName:r.Asinh,backendName:"cpu",kernelFunc:Qt},ea=A(r.Atan,(e=>Math.atan(e))),ta={kernelName:r.Atan,backendName:"cpu",kernelFunc:ea},aa=l(((e,t)=>Math.atan2(e,t))),na=N(r.Atan2,aa),ra={kernelName:r.Atan2,backendName:"cpu",kernelFunc:na},sa=A(r.Atanh,(e=>Math.atanh(e))),pa={kernelName:r.Atanh,backendName:"cpu",kernelFunc:sa};function ia(e,t,a,n,s,p){const i=s.strideHeight,o=s.strideWidth,d=s.dilationHeight,l=s.dilationWidth,m=s.effectiveFilterHeight,u=s.effectiveFilterWidth,c=s.padInfo.top,h=s.padInfo.left,f="max"===p?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,g=(0,r.buffer)(s.outShape,a),y=g.values,v=s.outShape[1]*s.outShape[2]*s.outShape[3],b=s.outShape[2]*s.outShape[3],w=s.outShape[3];for(let t=0;tg?g=r:"avg"===p&&(v+=r,b++)}if(isNaN(g))break}y[S+a*w+t]="avg"===p?v/b:g}}}return g}function oa(e,t,a,n,s=!1,p=!1){const i=(0,r.buffer)(n.outShape,"int32"),o=n.strideHeight,d=n.strideWidth,l=n.dilationHeight,m=n.dilationWidth,u=n.effectiveFilterHeight,c=n.effectiveFilterWidth,h=n.padInfo.top,f=n.padInfo.left,g=(0,r.buffer)(t,a,e);for(let e=0;ew&&(w=d,N=s?p?((e*n.inHeight+a)*n.inWidth+r)*n.inChannels+t:(a*n.inWidth+r)*n.inChannels+t:i*c+o)}}i.set(N,e,a,o,t)}}return i}function da(e,t,a,n,s,p){const i=s.strideDepth,o=s.strideHeight,d=s.strideWidth,l=s.dilationDepth,m=s.dilationHeight,u=s.dilationWidth,c=s.effectiveFilterDepth,h=s.effectiveFilterHeight,f=s.effectiveFilterWidth,g=s.padInfo.front,y=s.padInfo.top,v=s.padInfo.left,b="max"===p?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=(0,r.buffer)(s.outShape,a),N=w.values,k=s.outShape[1]*s.outShape[2]*s.outShape[3]*s.outShape[4],S=s.outShape[2]*s.outShape[3]*s.outShape[4],_=s.outShape[3]*s.outShape[4],T=s.outShape[4];for(let t=0;tk?k=s:"avg"===p&&(S+=s,_++),isNaN(k))break}if(isNaN(k))break}if(isNaN(k))break}N[y+t]="avg"===p?S/_:k}}}}return w}const la={kernelName:r.AvgPool,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t;s(p,"avgPool");const{filterSize:i,strides:o,pad:d,dimRoundingMode:l}=n;r.util.assert(r.backend_util.eitherStridesOrDilationsAreOne(o,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${o} and dilations '1'`));const m=r.backend_util.computePool2DInfo(p.shape,i,o,1,d,l);let u;if(1===m.filterWidth&&1===m.filterHeight&&r.util.arraysEqual(m.inShape,m.outShape))u=h({inputs:{x:p},backend:a});else{const e=a.data.get(p.dataId).values,t=r.util.computeStrides(p.shape),n=ia(e,p.shape,p.dtype,t,m,"avg");u=a.makeTensorInfo(m.outShape,p.dtype,n.values)}return u}};const ma={kernelName:r.AvgPool3D,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{filterSize:i,strides:o,pad:d,dimRoundingMode:l,dataFormat:m}=n;s(p,"avgPool3d");const u=r.backend_util.computePool3DInfo(p.shape,i,o,1,d,l,m),c=da(a.data.get(p.dataId).values,p.shape,p.dtype,r.util.computeStrides(p.shape),u,"avg");return a.makeTensorInfo(c.shape,"float32",c.values)}};const ua={kernelName:r.AvgPool3DGrad,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{dy:p,input:i}=t,{filterSize:o,strides:d,pad:l,dimRoundingMode:m}=n;s([p,i],"avgPool3DGrad");const u=r.backend_util.computePool3DInfo(i.shape,o,d,1,l,m),c=u.strideDepth,h=u.strideHeight,f=u.strideWidth,g=u.filterDepth,y=u.filterHeight,v=u.filterWidth,b=u.dilationDepth,w=u.dilationHeight,N=u.dilationWidth,k=u.effectiveFilterDepth,S=u.effectiveFilterHeight,_=u.effectiveFilterWidth,T=k-1-u.padInfo.front,x=_-1-u.padInfo.left,I=S-1-u.padInfo.top,E=(0,r.buffer)(i.shape,"float32"),D=1/(g*y*v),A=a.bufferSync(p);for(let e=0;e=u.outDepth||Math.floor(n)!==n))for(let a=0;a=u.outHeight||Math.floor(r)!==r))for(let a=0;a<_;a+=N){const s=(i+a)/f;if(s<0||s>=u.outWidth||Math.floor(s)!==s)continue;o+=A.get(e,n,r,s,t)}}}E.set(o*D,e,a,n,r,t)}return a.makeTensorInfo(E.shape,E.dtype,E.values)}};const ca={kernelName:r.AvgPoolGrad,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{dy:p,input:i}=t,o=i;s([p,i],"avgPoolGrad");const{filterSize:d,strides:l,pad:m}=n,u=r.backend_util.computePool2DInfo(o.shape,d,l,1,m),c=u.strideHeight,h=u.strideWidth,f=u.filterHeight,g=u.filterWidth,y=u.dilationHeight,v=u.dilationWidth,b=u.effectiveFilterHeight,w=u.effectiveFilterWidth,N=w-1-u.padInfo.left,k=b-1-u.padInfo.top,S=(0,r.buffer)(o.shape,"float32"),_=1/(f*g),T=a.data.get(p.dataId).values,x=(0,r.buffer)(p.shape,"float32",T);for(let e=0;e=u.outHeight||Math.floor(n)!==n))for(let a=0;a=u.outWidth||Math.floor(r)!==r)continue;p+=x.get(e,n,r,t)}}S.set(p*_,e,a,n,t)}return a.makeTensorInfo(S.shape,S.dtype,S.values)}};const ha={kernelName:r.FusedBatchNorm,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p,scale:i,offset:o,mean:d,variance:l}=t;r.util.assert(d.shape.length===l.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),r.util.assert(null==o||d.shape.length===o.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),r.util.assert(null==i||d.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks.")),s([p,d,l,i,o],"batchNorm");let{varianceEpsilon:m}=n;null==m&&(m=.001);const u=a.data.get(p.dataId).values,c=a.data.get(d.dataId).values,h=a.data.get(l.dataId).values,f=i?a.data.get(i.dataId).values:new Float32Array([1]),g=o?a.data.get(o.dataId).values:new Float32Array([0]),y=new Float32Array(u.length),v=g.length,b=f.length,w=h.length,N=c.length;let k=0,S=0,_=0,T=0;for(let e=0;e=v&&(k=0),S>=N&&(S=0),_>=b&&(_=0),T>=w&&(T=0);return a.makeTensorInfo(p.shape,p.dtype,y)}};const fa={kernelName:r.BatchToSpaceND,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{blockShape:i,crops:o}=n;s([p],"batchToSpaceND");const d=i.reduce(((e,t)=>e*t)),l=r.backend_util.getReshaped(p.shape,i,d),m=r.backend_util.getPermuted(l.length,i.length),u=r.backend_util.getReshapedPermuted(p.shape,i,d),c=r.backend_util.getSliceBeginCoords(o,i.length),h=r.backend_util.getSliceSize(u,o,i.length),f=$t({inputs:{x:p},backend:a,attrs:{shape:l}}),g=De({inputs:{x:f},backend:a,attrs:{perm:m}}),y=$t({inputs:{x:g},backend:a,attrs:{shape:u}}),v=Je({inputs:{x:y},backend:a,attrs:{begin:c,size:h}});return a.disposeIntermediateTensorInfo(f),a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(y),v}};const ga={kernelName:r.Bincount,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:r,weights:s}=t,{size:p}=n,i=I(a.data.get(r.dataId).values,a.data.get(s.dataId).values,s.dtype,s.shape,p);return a.makeTensorInfo([p],s.dtype,i)}};const ya={kernelName:r.BroadcastArgs,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{s0:n,s1:s}=t,p=a.data.get(n.dataId).values,i=a.data.get(s.dataId).values,o=r.backend_util.assertAndGetBroadcastShape(Array.from(p),Array.from(i));return a.makeTensorInfo([o.length],"int32",Int32Array.from(o))}},va=A(r.ClipByValue,((e,t)=>{const a=t;return e>a.clipValueMax?a.clipValueMax:e{const{x:t}=e.inputs,a=e.backend,n=new Float32Array(r.util.sizeFromShape(t.shape)),s=a.data.get(t.dataId),p=s.complexTensorInfos.real,i=s.complexTensorInfos.imag,o=a.data.get(p.dataId).values,d=a.data.get(i.dataId).values;for(let e=0;ee.shape));r.backend_util.assertParamsConsistent(i,p);let o=r.backend_util.computeOutShape(t.map((e=>e.shape)),p);if(0===r.util.sizeFromShape(o))return a.makeTensorInfo(o,t[0].dtype,[]);const d=t.filter((e=>r.util.sizeFromShape(e.shape)>0));if(1===d.length)return h({inputs:{x:d[0]},backend:a});if("complex64"===d[0].dtype){const e=d.map((e=>g({inputs:{input:e},backend:a}))),t=d.map((e=>Na({inputs:{input:e},backend:a}))),n=Sa({inputs:e,backend:a,attrs:{axis:p}}),r=Sa({inputs:t,backend:a,attrs:{axis:p}}),s=m({inputs:{real:n,imag:r},backend:a});return e.forEach((e=>a.disposeIntermediateTensorInfo(e))),t.forEach((e=>a.disposeIntermediateTensorInfo(e))),a.disposeIntermediateTensorInfo(n),a.disposeIntermediateTensorInfo(r),s}const l=d.map((e=>{const t=r.util.sizeFromShape(e.shape.slice(p));return $t({inputs:{x:e},backend:a,attrs:{shape:[-1,t]}})})),u=l.map((e=>({vals:a.data.get(e.dataId).values,shape:e.shape})));o=r.backend_util.computeOutShape(l.map((e=>e.shape)),1);const c=1===l[0].shape[0],f=O(u,o,t[0].dtype,c),y=r.backend_util.computeOutShape(d.map((e=>e.shape)),p),v=a.makeTensorInfo(y,t[0].dtype,f);return l.forEach((e=>a.disposeIntermediateTensorInfo(e))),v}const _a={kernelName:r.Concat,backendName:"cpu",kernelFunc:Sa};function Ta(e){const{inputs:t,backend:a,attrs:n}=e,{x:p,filter:i}=t,{strides:o,pad:d,dataFormat:l,dilations:m,dimRoundingMode:u}=n;s([p,i],"conv2d");const c=r.backend_util.convertConv2DDataFormat(l),h=r.backend_util.computeConv2DInfo(p.shape,i.shape,o,m,d,u,!1,c),f=h.filterHeight,g=h.filterWidth,y=h.dilationHeight,v=h.dilationWidth,b=h.padInfo.left,w=h.padInfo.top,N="channelsLast"===h.dataFormat,k=new r.TensorBuffer(h.outShape,p.dtype),S=r.util.computeStrides(p.shape),_=r.util.computeStrides(i.shape),T=S[0],x=N?S[1]:S[2],I=N?S[2]:1,E=N?1:S[1],D=k.strides[0],A=N?k.strides[1]:k.strides[2],V=N?k.strides[2]:1,M=N?1:k.strides[1],F=a.data.get(p.dataId).values,B=a.data.get(i.dataId).values,O=k.values;for(let e=0;e=h.inHeight)continue;const s=e*_[0],p=t+a*x;for(let e=0;e=h.inWidth)continue;const r=p+n*I;let i=s+e*_[1];for(let e=0;e=m.inDepth)continue;const s=e*I[0],p=t+a*x[1];for(let e=0;e=m.inHeight)continue;const r=s+e*I[1],i=p+n*x[2];for(let e=0;e=m.inWidth)continue;const s=r+e*I[2],p=i+t*m.inChannels;let o=s;for(let e=0;eMath.cos(e))),Fa={kernelName:r.Cos,backendName:"cpu",kernelFunc:Ma},Ba=A(r.Cosh,(e=>Math.cosh(e))),Oa={kernelName:r.Cosh,backendName:"cpu",kernelFunc:Ba};const $a={kernelName:r.CropAndResize,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{image:s,boxes:p,boxInd:i}=t,{cropSize:o,method:d,extrapolationValue:l}=n,[m,u,c,h]=s.shape,f=p.shape[0],[g,y]=o,v=(0,r.buffer)([f,g,y,h],"float32"),b=a.data.get(p.dataId).values,w=a.data.get(i.dataId).values,N=a.data.get(s.dataId).values,k=r.util.computeStrides(s.shape),S=r.util.computeStrides(v.shape);for(let e=0;e=m)continue;const i=g>1?(r-a)*(u-1)/(g-1):0,o=y>1?(s-n)*(c-1)/(y-1):0;for(let t=0;t1?a*(u-1)+t*i:.5*(a+r)*(u-1);if(m<0||m>u-1)for(let a=0;a1?n*(c-1)+d*o:.5*(n+s)*(c-1);if(m<0||m>c-1){for(let a=0;a1?n*(c-1)+a*o:.5*(n+s)*(c-1);if(r<0||r>c-1){for(let n=0;ne+g-t-1:(e,t)=>e+t;for(let e=0;ee+g-t-1:(e,t)=>e+t;for(let e=0;e`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`));const o=s.shape[0],d=s.shape[1],l=s.shape[2],m=s.shape[3],u=d*p,c=l*p,h=m/(p*p),f=a.data.get(s.dataId).values,g=new Float32Array(o*u*c*h);let y=0;for(let e=0;e`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${h}'`));const f=r.backend_util.computeConv2DInfo(p.shape,i.shape,o,h,d,m,!0),{filterHeight:g,filterWidth:y,dilationHeight:v,dilationWidth:b,padInfo:w}=f,N=w.left,k=w.top,S=f.outChannels/f.inChannels,_=new r.TensorBuffer(f.outShape,p.dtype),T=a.data.get(p.dataId).values,x=a.data.get(i.dataId).values,I=_.values;for(let e=0;e=f.inHeight)continue;const s=e*c[0],p=t+a*u[1];for(let e=0;e=f.inWidth)continue;const r=s+e*c[1],i=p+n*f.inChannels;let o=t,d=r;for(let e=0;e{const{x:n,filter:s}=e,{strides:p,pad:i,dilations:o}=a,d=t,l=d.data.get(n.dataId).values,m=n.shape.length,u=d.data.get(s.dataId).values,c=s.shape.length,{batchSize:h,inHeight:f,inWidth:g,inChannels:y,outHeight:v,outWidth:b,padInfo:w,strideHeight:N,strideWidth:k,filterHeight:S,filterWidth:_,dilationHeight:T,dilationWidth:x,outShape:I}=r.backend_util.computeDilation2DInfo(n.shape,s.shape,p,i,"NHWC",o),E=r.util.sizeFromShape(I),D=I.length,A=r.util.getArrayFromDType(n.dtype,E);for(let e=0;e=0&&p=0&&hd&&(d=g)}}}A[r.util.locToIndex([e,t,p,o],D,r.util.computeStrides(I))]=d}}}return{dataId:d.write(r.util.toTypedArray(A,n.dtype),I,n.dtype),shape:I,dtype:n.dtype}}},ja={kernelName:r.Dilation2DBackpropFilter,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:a})=>{const{x:n,filter:s,dy:p}=e,{strides:i,pad:o,dilations:d}=a,l=t,m=r.util.toNestedArray(n.shape,l.data.get(n.dataId).values),u=r.util.toNestedArray(s.shape,l.data.get(s.dataId).values),{batchSize:c,inHeight:h,inWidth:f,inChannels:g,outHeight:y,outWidth:v,padInfo:b,strideHeight:w,strideWidth:N,filterHeight:k,filterWidth:S,dilationHeight:_,dilationWidth:T,outShape:x}=r.backend_util.computeDilation2DInfo(n.shape,s.shape,i,o,"NHWC",d);r.util.assert(p.rank===x.length,(()=>`Error in ${r.Dilation2DBackpropFilter}, dy must have the same rank as output ${x.length}, but got ${p.rank}`));const I=r.util.toNestedArray(x,l.data.get(p.dataId).values),E=r.util.makeZerosNestedTypedArray(s.shape,s.dtype);for(let e=0;e=0&&n=0&&dp&&(p=r,i=t,o=a)}}}E[i][o][s]+=I[e][t][n][s]}}}return{dataId:l.write(r.util.toTypedArray(E,n.dtype),s.shape,s.dtype),shape:s.shape,dtype:s.dtype}}},Ka={kernelName:r.Dilation2DBackpropInput,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:a})=>{const{x:n,filter:s,dy:p}=e,{strides:i,pad:o,dilations:d}=a,l=t,m=r.util.toNestedArray(n.shape,l.data.get(n.dataId).values),u=r.util.toNestedArray(s.shape,l.data.get(s.dataId).values),{batchSize:c,inHeight:h,inWidth:f,inChannels:g,outHeight:y,outWidth:v,padInfo:b,strideHeight:w,strideWidth:N,filterHeight:k,filterWidth:S,dilationHeight:_,dilationWidth:T,outShape:x}=r.backend_util.computeDilation2DInfo(n.shape,s.shape,i,o,"NHWC",d);r.util.assert(p.rank===x.length,(()=>`Error in ${r.Dilation2DBackpropInput}, dy must have the same rank as output ${x.length}, but got ${p.rank}`));const I=r.util.toNestedArray(x,l.data.get(p.dataId).values),E=r.util.makeZerosNestedTypedArray(n.shape,n.dtype);for(let e=0;e=0&&n=0&&dp&&(p=r,i=n,o=d)}}}E[e][i][o][s]+=I[e][t][n][s]}}}return{dataId:l.write(r.util.toTypedArray(E,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function Xa(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{axis:i,keepDims:o}=n;let d;s(p,"sum"),d="bool"===p.dtype?b({inputs:{x:p},backend:a,attrs:{dtype:"int32"}}):h({inputs:{x:p},backend:a});const l=d.shape.length,m=r.util.parseAxisParam(i,d.shape),u=r.backend_util.getAxesPermutation(m,l);let f=m,g=d;null!=u&&(g=De({inputs:{x:d},backend:a,attrs:{perm:u}}),f=r.backend_util.getInnerMostAxes(f.length,l)),r.backend_util.assertAxesAreInnerMostDims("sum",f,g.shape.length);const[y,v]=r.backend_util.computeOutAndReduceShapes(g.shape,f);let w=c(a,y,r.backend_util.upcastType(g.dtype,"int32"));const N=r.util.sizeFromShape(v),k=a.data.get(w.dataId).values,S=a.data.get(g.dataId).values;for(let e=0;e=0&&(c=Xa({inputs:{x:c},backend:a,attrs:{axis:l[e]-(i.length-h),keepDims:!1}}),f.push(c)),h--)}for(const e of f)e!==c&&a.disposeIntermediateTensorInfo(e);return c}};const Qa={kernelName:r.EluGrad,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{dy:n,y:p}=t;s([n,p],"eluGrad");const i=new Float32Array(r.util.sizeFromShape(p.shape)),o=a.data.get(p.dataId).values,d=a.data.get(n.dataId).values;for(let e=0;e=1?d[e]:d[e]*(t+1)}return a.makeTensorInfo(p.shape,"float32",i)}},Ya=r.backend_util.ERF_P,en=r.backend_util.ERF_A1,tn=r.backend_util.ERF_A2,an=r.backend_util.ERF_A3,nn=r.backend_util.ERF_A4,rn=r.backend_util.ERF_A5,sn=A(r.Erf,(e=>{const t=Math.sign(e),a=Math.abs(e),n=1/(1+Ya*a);return t*(1-((((rn*n+nn)*n+an)*n+tn)*n+en)*n*Math.exp(-a*a))})),pn={kernelName:r.Erf,backendName:"cpu",kernelFunc:sn};function on(e){const{inputs:t,backend:a,attrs:n}=e,{input:s}=t,{dim:p}=n,i=s.shape.length,o=s.shape.slice();let d=p;return p<0&&(r.util.assert(-(i+1)<=p,(()=>`Axis must be in the interval [${-(i+1)}, ${i}]`)),d=i+p+1),o.splice(d,0,1),$t({inputs:{x:s},backend:a,attrs:{shape:o}})}const dn={kernelName:r.ExpandDims,backendName:"cpu",kernelFunc:on},ln=l(((e,t)=>e/t)),mn=N(r.RealDiv,ln),un={kernelName:r.RealDiv,backendName:"cpu",kernelFunc:mn};function cn(e,t,a){const n=e.shape,s=n[0],p=n[1],i=a.data.get(e.dataId),o=i.complexTensorInfos.real,d=i.complexTensorInfos.imag,l=[s,p],u=r.util.sizeFromShape(l),c=r.util.getTypedArrayFromDType("float32",u),h=r.util.getTypedArrayFromDType("float32",u);for(let e=0;e{const{image:n}=e,s=a,p=r.util.getTypedArrayFromDType(n.dtype,r.util.sizeFromShape(n.shape)),[i,o,d,l]=n.shape,m=s.data.get(n.dataId).values;for(let e=0;e=0&&sMath.floor(e/t))),Nn=N(r.FloorDiv,wn,null,"int32"),kn={kernelName:r.FloorDiv,backendName:"cpu",kernelFunc:Nn};const Sn={kernelName:r.FusedConv2D,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:r,filter:s,bias:p,preluActivationWeights:i}=t,{strides:o,pad:d,dataFormat:l,dilations:m,dimRoundingMode:u,activation:c,leakyreluAlpha:h}=n;let f=Ta({inputs:{x:r,filter:s},backend:a,attrs:{strides:o,pad:d,dataFormat:l,dilations:m,dimRoundingMode:u}});if(p){const e=f;if("NCHW"===l&&1===p.shape.length&&1!==p.shape[0]){const e=$t({inputs:{x:p},backend:a,attrs:{shape:[p.shape[0],1,1]}});f=T({inputs:{a:f,b:e},backend:a}),a.disposeIntermediateTensorInfo(e)}else f=T({inputs:{a:f,b:p},backend:a});a.disposeIntermediateTensorInfo(e)}if(c){const e=f;if("NCHW"===l&&"prelu"===c&&1===i.shape.length&&1!==i.shape[0]){const e=$t({inputs:{x:i},backend:a,attrs:{shape:[i.shape[0],1,1]}});f=Ot(a,f,c,e,h),a.disposeIntermediateTensorInfo(e)}else f=Ot(a,f,c,i,h);a.disposeIntermediateTensorInfo(e)}return f}};const _n={kernelName:r.FusedDepthwiseConv2D,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:r,filter:s,bias:p,preluActivationWeights:i}=t,{strides:o,pad:d,dataFormat:l,dilations:m,dimRoundingMode:u,activation:c,leakyreluAlpha:h}=n;let f=La({inputs:{x:r,filter:s},backend:a,attrs:{strides:o,pad:d,dataFormat:l,dilations:m,dimRoundingMode:u}});if(p){const e=f;f=T({inputs:{a:f,b:p},backend:a}),a.disposeIntermediateTensorInfo(e)}if(c){const e=f;f=Ot(a,f,c,i,h),a.disposeIntermediateTensorInfo(e)}return f}};const Tn={kernelName:r.GatherNd,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{params:n,indices:s}=t,p=r.util.sizeFromShape(n.shape),i=s.shape,o=i[i.length-1],[d,l,m,u]=r.backend_util.prepareAndValidate(n,s);if(0===l)return a.makeTensorInfo(d,n.dtype,[]);const c=K(a.data.get(s.dataId).values,a.bufferSync(n),n.dtype,l,o,m,u,n.shape,p);return a.makeTensorInfo(d,n.dtype,c.values)}};const xn={kernelName:r.GatherV2,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p,indices:i}=t,{axis:o,batchDims:d}=n;s([p,i],"gatherV2");const l=r.util.parseAxisParam(o,p.shape)[0],m=a.data.get(i.dataId).values,u=p.shape[l];for(let e=0;e=0,(()=>`GatherV2: the index value ${t} is not in [0, ${u-1}]`))}let c=d;null==d&&(c=0);const h=r.util.sizeFromShape(i.shape),f=r.backend_util.segment_util.collectGatherOpShapeInfo(p,i,l,c),g=$t({inputs:{x:p},backend:a,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),y=$t({inputs:{x:i},backend:a,attrs:{shape:[f.batchSize,h/f.batchSize]}}),v=[f.batchSize,f.outerSize,h/f.batchSize,f.sliceSize],b=a.bufferSync(y),w=X(a.bufferSync(g),b,v);return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(y),a.makeTensorInfo(f.outputShape,w.dtype,w.values)}};const In={kernelName:r.IFFT,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{input:n}=t,s=r.util.sizeFromShape(n.shape),p=n.shape[n.shape.length-1],i=$t({inputs:{x:n},backend:a,attrs:{shape:[s/p,p]}}),o=cn(i,!0,a),d=$t({inputs:{x:o},backend:a,attrs:{shape:n.shape}});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),d}},En=A(r.IsFinite,(e=>Number.isFinite(e)?1:0),"bool"),Dn={kernelName:r.IsFinite,backendName:"cpu",kernelFunc:En},An=A(r.IsInf,(e=>Math.abs(e)===1/0?1:0),"bool"),Vn={kernelName:r.IsInf,backendName:"cpu",kernelFunc:An},Mn=A(r.IsNan,(e=>Number.isNaN(e)?1:0),"bool"),Fn={kernelName:r.IsNan,backendName:"cpu",kernelFunc:Mn};const Bn={kernelName:r.LinSpace,backendName:"cpu",kernelFunc:function(e){const{backend:t,attrs:a}=e,{start:n,stop:r,num:s}=a,p=oe(n,r,s);return t.makeTensorInfo([p.length],"float32",p)}},On=A(r.Log1p,(e=>Math.log1p(e))),$n={kernelName:r.Log1p,backendName:"cpu",kernelFunc:On},Cn=l(((e,t)=>e&&t)),Rn=N(r.LogicalAnd,Cn,null,"bool"),Pn={kernelName:r.LogicalAnd,backendName:"cpu",kernelFunc:Rn},zn=A(r.LogicalNot,(e=>e?0:1),"bool"),Ln={kernelName:r.LogicalNot,backendName:"cpu",kernelFunc:zn},Wn=l(((e,t)=>e||t)),Un=N(r.LogicalOr,Wn,null,"bool"),Hn={kernelName:r.LogicalOr,backendName:"cpu",kernelFunc:Un};const qn={kernelName:r.LRN,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{depthRadius:i,bias:o,alpha:d,beta:l}=n;s(p,"LRN");const m=p.shape[3],u=m-1,c=a.data.get(p.dataId).values,h=r.util.sizeFromShape(p.shape),f=new Float32Array(h);function g(e){const t=e%m;let a=e-t+Math.max(0,t-i);const n=e-t+Math.min(t+i,u);let r=0;for(;a<=n;a++){const e=c[a];r+=e*e}return r}for(let e=0;e`Error in maxPool: Either strides or dilations must be 1. Got strides ${o} and dilations '1'`));const m=r.backend_util.computePool2DInfo(p.shape,i,o,1,d,l);let u;if(1===m.filterWidth&&1===m.filterHeight&&r.util.arraysEqual(m.inShape,m.outShape))u=h({inputs:{x:p},backend:a});else{const e=a.data.get(p.dataId).values,t=r.util.computeStrides(p.shape),n=ia(e,p.shape,p.dtype,t,m,"max");u=a.makeTensorInfo(m.outShape,p.dtype,n.values)}return u}};const Zn={kernelName:r.MaxPool3D,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{filterSize:i,strides:o,pad:d,dimRoundingMode:l,dataFormat:m}=n;s(p,"maxPool3d");const u=r.backend_util.computePool3DInfo(p.shape,i,o,1,d,l,m),c=da(a.data.get(p.dataId).values,p.shape,p.dtype,r.util.computeStrides(p.shape),u,"max");return a.makeTensorInfo(c.shape,"float32",c.values)}};const Jn={kernelName:r.MaxPool3DGrad,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{dy:p,input:i}=t,{filterSize:o,strides:d,pad:l,dimRoundingMode:m}=n;s([p,i],"maxPool3DGrad");const u=r.backend_util.computePool3DInfo(i.shape,o,d,1,l,m),c=function(e,t){const a=(0,r.buffer)(t.outShape,"int32"),n=t.strideDepth,s=t.strideHeight,p=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,d=t.dilationWidth,l=t.effectiveFilterDepth,m=t.effectiveFilterHeight,u=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,f=t.padInfo.left;for(let r=0;r=_&&(_=o,T=a*m*u+s*m+i)}}}a.set(T,r,y,n,s,g)}}}return a}(a.bufferSync(i),u),h=u.strideDepth,f=u.strideHeight,g=u.strideWidth,y=u.dilationDepth,v=u.dilationHeight,b=u.dilationWidth,w=u.effectiveFilterDepth,N=u.effectiveFilterHeight,k=u.effectiveFilterWidth,S=w-1-u.padInfo.front,_=k-1-u.padInfo.left,T=N-1-u.padInfo.top,x=(0,r.buffer)(i.shape,"float32"),I=a.bufferSync(p);for(let e=0;e=u.outDepth||Math.floor(n)!==n))for(let r=0;r=u.outHeight||Math.floor(s)!==s))for(let p=0;p=u.outWidth||Math.floor(d)!==d)continue;const l=w*N*k-1-c.get(e,n,s,d,t)===a*N*k+r*k+p?1:0;if(0===l)continue;o+=I.get(e,n,s,d,t)*l}}}x.set(o,e,a,n,r,t)}return a.makeTensorInfo(x.shape,x.dtype,x.values)}};const Qn={kernelName:r.MaxPoolGrad,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{dy:p,input:i,output:o}=t,d=i;s([i,o],"maxPoolGrad");const{filterSize:l,strides:m,pad:u,dimRoundingMode:c}=n,h=r.backend_util.computePool2DInfo(d.shape,l,m,1,u,c),f=a.data.get(d.dataId).values,g=(0,r.buffer)(h.outShape,d.dtype,oa(f,d.shape,d.dtype,h).values),y=h.strideHeight,v=h.strideWidth,b=h.dilationHeight,w=h.dilationWidth,N=h.effectiveFilterHeight,k=h.effectiveFilterWidth,S=k-1-h.padInfo.left,_=N-1-h.padInfo.top,T=(0,r.buffer)(d.shape,"float32"),x=a.data.get(p.dataId).values,I=(0,r.buffer)(p.shape,"float32",x);for(let e=0;e=h.outHeight||Math.floor(n)!==n))for(let r=0;r=h.outWidth||Math.floor(i)!==i)continue;const o=N*k-1-g.get(e,n,i,t)===a*k+r?1:0;if(0===o)continue;p+=I.get(e,n,i,t)*o}}T.set(p,e,a,n,t)}return a.makeTensorInfo(T.shape,T.dtype,T.values)}};const Yn={kernelName:r.MaxPoolWithArgmax,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:a})=>{const{x:n}=e,{filterSize:p,strides:i,pad:o,includeBatchInIndex:d}=t,l=a;s(n,"MaxPoolWithArgmax");const m=l.data.get(n.dataId).values,u=r.backend_util.computePool2DInfo(n.shape,p,i,[1,1],o),[c,h]=function(e,t,a,n,s){const p=ia(e,0,a,r.util.computeStrides(t),s,"max"),i=oa(e,t,a,s,!0,n);return[p.values,i.values]}(m,n.shape,n.dtype,d,u),f=l.write(c,u.outShape,n.dtype),g=l.write(h,u.outShape,n.dtype);return[{dataId:f,shape:u.outShape,dtype:n.dtype},{dataId:g,shape:u.outShape,dtype:"int32"}]}};const er={kernelName:r.Mean,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:s}=t,{axis:p,keepDims:i}=n,o=r.util.parseAxisParam(p,s.shape),d=r.backend_util.computeOutAndReduceShapes(s.shape,o)[1],l=r.util.sizeFromShape(d),m=[],u=a.makeTensorInfo([],"float32",new Float32Array([l]));m.push(u);const c=b({inputs:{x:s},backend:a,attrs:{dtype:"float32"}});m.push(c);const h=mn({inputs:{a:c,b:u},backend:a});m.push(h);const f=Xa({inputs:{x:h},backend:a,attrs:{axis:p,keepDims:i}});return m.forEach((e=>a.disposeIntermediateTensorInfo(e))),f}};const tr={kernelName:r.Min,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{axis:i,keepDims:o}=n;s(p,"min");const d=r.util.parseAxisParam(i,p.shape);let l=d;const m=r.backend_util.getAxesPermutation(l,p.shape.length);let u=p;null!=m&&(u=De({inputs:{x:p},backend:a,attrs:{perm:m}}),l=r.backend_util.getInnerMostAxes(l.length,p.shape.length)),r.backend_util.assertAxesAreInnerMostDims("min",l,u.shape.length);const[c,h]=r.backend_util.computeOutAndReduceShapes(u.shape,l),f=r.util.sizeFromShape(h),g=r.util.makeZerosTypedArray(r.util.sizeFromShape(c),u.dtype),y=a.data.get(u.dataId).values;for(let e=0;ee[0]+p.shape[t]+e[1])),l=i.map((e=>e[0])),m=i.map(((e,t)=>e[0]+p.shape[t])),u="reflect"===o?0:1,c=a.data.get(p.dataId).values,h=p.shape.length,f=r.util.computeStrides(p.shape),g=r.util.sizeFromShape(d),y=d.length,v=r.util.computeStrides(d),b=r.util.getTypedArrayFromDType(p.dtype,g);for(let e=0;e=m[e]&&(t[e]=2*(m[e]-1)-t[e]+u);t=t.map(((e,t)=>e-l[t]));const a=r.util.locToIndex(t,h,f);b[e]=c[a]}return{dataId:a.write(b,d,p.dtype),shape:d,dtype:p.dtype}}},nr=l(((e,t)=>{const a=e%t;return e<0&&t<0||e>=0&&t>=0?a:(a+t)%t})),rr=N(r.Mod,nr),sr={kernelName:r.Mod,backendName:"cpu",kernelFunc:rr};var pr=a(6377);function ir(e){const{inputs:t,backend:a,attrs:n}=e,{logits:s}=t,{dim:p}=n,i=s.shape.length;let o=p;if(-1===o&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);const d=r.util.parseAxisParam([o],s.shape),l=jn({inputs:{x:s},backend:a,attrs:{reductionIndices:d,keepDims:!1}}),m=r.backend_util.expandShapeToKeepDim(l.shape,d),u=$t({inputs:{x:l},backend:a,attrs:{shape:m}}),c=gt({inputs:{a:s,b:u},backend:a}),h=z({inputs:{x:c},backend:a}),f=Xa({inputs:{x:h},backend:a,attrs:{axis:d,keepDims:!1}}),g=$t({inputs:{x:f},backend:a,attrs:{shape:m}}),y=mn({inputs:{a:h,b:g},backend:a});return a.disposeIntermediateTensorInfo(l),a.disposeIntermediateTensorInfo(u),a.disposeIntermediateTensorInfo(c),a.disposeIntermediateTensorInfo(h),a.disposeIntermediateTensorInfo(f),a.disposeIntermediateTensorInfo(g),y}const or={kernelName:r.Softmax,backendName:"cpu",kernelFunc:ir};const dr={kernelName:r.Multinomial,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{logits:p}=t,{numSamples:i,seed:o,normalized:d}=n;s(p,"multinomial");const l=d?p:ir({inputs:{logits:p},backend:a,attrs:{dim:-1}}),m=l.shape[0],u=l.shape[1],c=a.data.get(l.dataId).values,h=[m,i],f=r.util.makeZerosTypedArray(r.util.sizeFromShape(h),"int32");for(let e=0;e=0&&c[e]{r.util.assertShapesMatch(p,e.shape,"All tensors passed to stack must have matching shapes"),r.util.assert(i===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],d=Sa({inputs:t.map((e=>{const t=on({inputs:{input:e},backend:a,attrs:{dim:s}});return o.push(t),t})),backend:a,attrs:{axis:s}});return o.forEach((e=>a.disposeIntermediateTensorInfo(e))),d}const Nr={kernelName:r.Pack,backendName:"cpu",kernelFunc:wr};const kr={kernelName:r.PadV2,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{paddings:i,constantValue:o}=n;s(p,"pad");const d=i.map(((e,t)=>e[0]+p.shape[t]+e[1])),l=i.map((e=>e[0])),m=a.data.get(p.dataId).values,u=r.util.sizeFromShape(p.shape),c=p.shape.length,h=r.util.computeStrides(p.shape),f=r.util.sizeFromShape(d),g=d.length,y=r.util.computeStrides(d),v=r.util.getTypedArrayFromDType(p.dtype,f);0!==o&&v.fill(o);for(let e=0;ee+l[t]));v[r.util.locToIndex(t,g,y)]=m[e]}return{dataId:a.write(v,d,p.dtype),shape:d,dtype:p.dtype}}},Sr=l(((e,t)=>Math.pow(e,t))),_r=N(r.Pow,Sr),Tr={kernelName:r.Pow,backendName:"cpu",kernelFunc:_r};const xr={kernelName:r.RaggedGather,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:p}=t,{outputRaggedRank:i}=n,o=r.map((e=>a.data.get(e.dataId).values)),d=r.map((e=>e.shape)),l=a.data.get(s.dataId).values,m=a.data.get(p.dataId).values,[u,c,h]=$e(o,d,l,s.shape,s.dtype,m,p.shape),f=u.map((e=>a.makeTensorInfo([e.length],"int32",e))),g=a.makeTensorInfo(h,s.dtype,c);return f.concat([g])}};const Ir={kernelName:r.RaggedTensorToTensor,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{shape:r,values:s,defaultValue:p,rowPartitionTensors:i}=t,{rowPartitionTypes:o}=n,d=a.data.get(r.dataId).values,l=a.data.get(s.dataId).values,m=a.data.get(p.dataId).values,u=i.map((e=>a.data.get(e.dataId).values)),c=i.map((e=>e.shape)),[h,f]=Le(d,r.shape,l,s.shape,s.dtype,m,p.shape,u,c,o);return a.makeTensorInfo(h,s.dtype,f)}};const Er={kernelName:r.Range,backendName:"cpu",kernelFunc:function(e){const{backend:t,attrs:a}=e,{start:n,stop:r,dtype:s,step:p}=a,i=We(n,r,p,s);return t.makeTensorInfo([i.length],s,i)}},Dr=A(r.Reciprocal,(e=>1/e)),Ar={kernelName:r.Reciprocal,backendName:"cpu",kernelFunc:Dr};const Vr={kernelName:r.ResizeBilinear,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{images:p}=t,{alignCorners:i,halfPixelCenters:o,size:d}=n;s(p,"resizeBilinear");const l=r.util.computeStrides(p.shape),[m,u]=d,[c,h,f,g]=p.shape,y=a.data.get(p.dataId).values,v=new Float32Array(r.util.sizeFromShape([c,m,u,g])),b=[i&&m>1?h-1:h,i&&u>1?f-1:f],w=[i&&m>1?m-1:m,i&&u>1?u-1:u];let N=0;const k=b[0]/w[0],S=b[1]/w[1];for(let e=0;e1?m-1:m,o&&f>1?u-1:u],v=[o&&h>1?h-1:h,o&&f>1?f-1:f],b=y[0]/v[0],w=y[1]/v[1],N=a.data.get(i.dataId).values;let k=0;for(let e=0;e1?h-1:h,i&&u>1?f-1:f],w=[i&&m>1?m-1:m,i&&u>1?u-1:u],N=b[0]/w[0],k=b[1]/w[1];let S=0;for(let e=0;e1?u-1:u,o&&g>1?c-1:c],w=[o&&f>1?f-1:f,o&&g>1?g-1:g],N=b[0]/w[0],k=b[1]/w[1],S=1/N,_=1/k,T=2*Math.ceil(S)+2,x=2*Math.ceil(_)+2;for(let e=0;e=f)continue;const m=t+d*l[1],h=d*N;if(e===Math.min(u-1,o?Math.round(h):Math.floor(h)))for(let e=0;e=g)continue;const r=m+t*l[2],s=t*k;n===Math.min(c-1,o?Math.round(s):Math.floor(s))&&(p+=v[r+a])}}y[s+a]=p}}}}return a.makeTensorInfo(p.shape,p.dtype,y)}};const Or={kernelName:r.Reverse,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{dims:i}=n;s(p,"reverse");const o=p.shape.length,d=r.util.parseAxisParam(i,p.shape);if(0===o)return h({inputs:{x:p},backend:a});const l=new r.TensorBuffer(p.shape,p.dtype),m=a.bufferSync(p);for(let e=0;ea[e]=p.shape[e]-1-a[e])),l.set(m.get(...a),...t)}return a.makeTensorInfo(l.shape,l.dtype,l.values)}},$r={kernelName:r.RotateWithOffset,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:a})=>{const{image:n}=e,{radians:s,fillValue:p,center:i}=t,o=a,d=r.util.getTypedArrayFromDType(n.dtype,r.util.sizeFromShape(n.shape)),[l,m,u,c]=n.shape,[h,f]=r.backend_util.getImageCenter(i,m,u),g=Math.sin(s),y=Math.cos(s),v=o.data.get(n.dataId).values;for(let e=0;e=0&&w=0&&N{const t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1})),Rr={kernelName:r.Round,backendName:"cpu",kernelFunc:Cr};const Pr={kernelName:r.ScatterNd,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{indices:s,updates:p}=t,{shape:i}=n,{sliceRank:o,numUpdates:d,sliceSize:l,strides:m,outputSize:u}=r.backend_util.calculateShapes(p,s,i),c=Ge(a.bufferSync(s),a.bufferSync(p),i,u,l,d,o,m,0,!0);return a.makeTensorInfo(i,c.dtype,c.values)}};function zr(e,t){let a=0,n=e.length,r=0;for(;a1||1===p.shape.length?1:r.util.sizeFromShape(p.shape.slice(1));for(let e=0;ee>=0?qr*e:Hr*(Math.exp(e)-1))),jr={kernelName:r.Selu,backendName:"cpu",kernelFunc:Gr},Kr=A(r.Sign,(e=>e<0?-1:e>0?1:0)),Xr={kernelName:r.Sign,backendName:"cpu",kernelFunc:Kr},Zr=A(r.Sin,(e=>Math.sin(e))),Jr={kernelName:r.Sin,backendName:"cpu",kernelFunc:Zr},Qr=A(r.Sinh,(e=>Math.sinh(e))),Yr={kernelName:r.Sinh,backendName:"cpu",kernelFunc:Qr},es=Math.log(1.1920928955078125e-7)+2,ts=A(r.Softplus,(e=>{const t=e>-es,a=eNumber(e))))),a.makeTensorInfo([f.length],n.dtype,new Int32Array(f))]}};const ss={kernelName:r.SparseReshape,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{inputIndices:n,inputShape:r,newShape:s}=t;if(2!==n.shape.length)throw new Error(`Input indices should be a matrix but received shape\n ${n.shape}`);if(1!==r.shape.length)throw new Error(`Input shape should be a vector but received shape\n ${r.shape}`);if(1!==s.shape.length)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);const p=Array.from(a.data.get(r.dataId).values),i=a.data.get(n.dataId).values,o=Array.from(a.data.get(s.dataId).values),[d,l,m]=et(i,n.shape,n.dtype,p,o);return[a.makeTensorInfo(l,n.dtype,d),a.makeTensorInfo([m.length],s.dtype,new Int32Array(m))]}};const ps={kernelName:r.SparseSegmentMean,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{data:n,indices:r,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.shape.length)throw new Error(`Indices should be a vector but received shape\n ${r.shape}`);if(1!==s.shape.length)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");const p=a.data.get(n.dataId).values,i=a.data.get(r.dataId).values,o=a.data.get(s.dataId).values,[d,l]=tt(p,n.shape,n.dtype,i,o,!0);return a.makeTensorInfo(l,n.dtype,d)}};const is={kernelName:r.SparseSegmentSum,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{data:n,indices:r,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.shape.length)throw new Error(`Indices should be a vector but received shape\n ${r.shape}`);if(1!==s.shape.length)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");const p=a.data.get(n.dataId).values,i=a.data.get(r.dataId).values,o=a.data.get(s.dataId).values,[d,l]=tt(p,n.shape,n.dtype,i,o);return a.makeTensorInfo(l,n.dtype,d)}};const os={kernelName:r.SparseToDense,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{sparseIndices:s,sparseValues:p,defaultValue:i}=t,{outputShape:o}=n,{sliceRank:d,numUpdates:l,sliceSize:m,strides:u,outputSize:c}=r.backend_util.calculateShapes(p,s,o),h=!1,f=a.bufferSync(s);let g;switch(p.dtype){case"bool":g=Ge(f,a.bufferSync(p),o,c,m,l,d,u,Boolean(a.data.get(i.dataId).values[0]),h);break;case"float32":g=Ge(f,a.bufferSync(p),o,c,m,l,d,u,a.data.get(i.dataId).values[0],h);break;case"int32":g=Ge(f,a.bufferSync(p),o,c,m,l,d,u,a.data.get(i.dataId).values[0],h);break;case"string":g=Ge(f,a.bufferSync(p),o,c,m,l,d,u,r.util.decodeString(a.data.get(i.dataId).values[0]),h);break;default:throw new Error(`Unsupported type ${p.dtype}`)}return a.makeTensorInfo(o,g.dtype,g.values)}};const ds={kernelName:r.SplitV,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:s}=t,{numOrSizeSplits:p,axis:i}=n,o=r.util.parseAxisParam(i,s.shape)[0],d=r.backend_util.prepareSplitSize(s,p,o),l=new Array(s.shape.length).fill(0),m=s.shape.slice();return d.map((e=>{const t=[...m];t[o]=e;const n=Je({inputs:{x:s},backend:a,attrs:{begin:l,size:t}});return l[o]+=e,n}))}},ls={kernelName:r.Square,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{const{x:a}=e,n=t;s(a,"square");const r=n.data.get(a.dataId).values,p=new Float32Array(r.length);for(let e=0;e{const a=t;return isNaN(e)?NaN:e>0?1:a.alpha})),us={kernelName:r.Step,backendName:"cpu",kernelFunc:ms};const cs={kernelName:r.StridedSlice,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{begin:i,end:o,strides:d,beginMask:l,endMask:m,ellipsisMask:u,newAxisMask:c,shrinkAxisMask:h}=n;s(p,"stridedSlice");const{finalShapeSparse:f,finalShape:g,isIdentity:y,sliceDim0:v,isSimpleSlice:b,begin:w,end:N,strides:k}=r.slice_util.sliceInfo(p.shape,i,o,d,l,m,u,c,h);let S;if(y)S=$t({inputs:{x:p},backend:a,attrs:{shape:g}});else if(v||b){r.util.assert(p.shape.length>=1,(()=>`Input must have rank at least 1, got: ${p.shape.length}`));const e=r.slice_util.computeOutShape(w,N,k),t=Je({inputs:{x:p},backend:a,attrs:{begin:w,size:e}});S=$t({inputs:{x:t},backend:a,attrs:{shape:g}}),a.disposeIntermediateTensorInfo(t)}else{const e=ot(f,a.bufferSync(p),k,w);S=a.makeTensorInfo(g,e.dtype,e.values)}return S}};const hs={kernelName:r.StringNGrams,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{separator:r,nGramWidths:s,leftPad:p,rightPad:i,padWidth:o,preserveShortSequences:d}=n,{data:l,dataSplits:m}=t,u=a.data.get(l.dataId).values,c=a.data.get(m.dataId).values,[h,f]=lt(u,c,r,s,p,i,o,d);return[a.makeTensorInfo([h.length],"string",h),a.makeTensorInfo(m.shape,"int32",f)]}};const fs={kernelName:r.StringSplit,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{skipEmpty:r}=n,{input:s,delimiter:p}=t;if("string"!==s.dtype)throw new Error("Input must be of datatype string");if(1!==s.shape.length)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(0!==p.shape.length)throw new Error(`Delimiter must be a scalar, got shape: ${p.shape}`);const i=a.data.get(s.dataId).values,o=a.data.get(p.dataId).values[0],[d,l,m]=ut(i,o,r),u=l.length;return[a.makeTensorInfo([u,2],"int32",d),a.makeTensorInfo([u],"string",l),a.makeTensorInfo([2],"int32",new Int32Array(m))]}};const gs={kernelName:r.StringToHashBucketFast,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{numBuckets:r}=n,{input:s}=t;if("string"!==s.dtype)throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");const p=ct(a.data.get(s.dataId).values,r);return a.makeTensorInfo(s.shape,"int32",p)}},ys=A(r.Tan,(e=>Math.tan(e))),vs={kernelName:r.Tan,backendName:"cpu",kernelFunc:ys},bs=A(r.Tanh,(e=>Math.tanh(e))),ws={kernelName:r.Tanh,backendName:"cpu",kernelFunc:bs};const Ns={kernelName:r.Tile,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:r}=t,{reps:p}=n;s(r,"tile");const i=vt(a.bufferSync(r),p);return a.makeTensorInfo(i.shape,i.dtype,i.values)}};const ks={kernelName:r.TopK,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:r}=t,{k:p,sorted:i}=n;s(r,"topk");const o=a.data.get(r.dataId).values,[d,l]=Nt(o,r.shape,r.dtype,p,i);return[a.makeTensorInfo(d.shape,d.dtype,d.values),a.makeTensorInfo(l.shape,l.dtype,l.values)]}};const Ss={kernelName:r.Transform,backendName:"cpu",kernelFunc:function(e){const{inputs:t,attrs:a,backend:n}=e,{image:s,transforms:p}=t,{interpolation:i,fillMode:o,fillValue:d,outputShape:l}=a,[m,u,c,h]=s.shape,[f,g]=null!=l?l:[u,c],y=[m,f,g,h],v=r.util.computeStrides(s.shape),b=v[0],w=v[1],N=v[2],k=r.util.computeStrides(y),S=k[0],_=k[1],T=k[2],x=r.util.getTypedArrayFromDType(s.dtype,r.util.sizeFromShape(y));x.fill(d);const I=n.data.get(s.dataId).values,E=n.data.get(p.dataId).values;for(let e=0;et-1)if(t<=1)a=0;else{const e=2*t;a-=e*Math.trunc(a/e),a>=t&&(a=e-a-1)}return r.util.clamp(0,a,t-1)}(e,t);case"wrap":return function(e,t){let a=e;if(a<0)if(t<=1)a=0;else{const e=t-1;a+=t*(Math.trunc(-a/e)+1)}else if(a>t-1)if(t<=1)a=0;else{const e=t-1;a-=t*Math.trunc(a/e)}return r.util.clamp(0,a,t-1)}(e,t);case"nearest":return function(e,t){return r.util.clamp(0,e,t-1)}(e,t);default:return function(e,t){return e}(e)}}function Ts(e,t,a,n,r,s,p,i,o,d,l){return 0<=i&&ia.disposeIntermediateTensorInfo(e))),c}},Vs=[zt,d,Wt,Ht,x,qt,Gt,jt,Kt,Xt,Jt,Yt,ta,ra,pa,la,ma,ua,ca,Pt,ha,fa,ga,ya,w,B,ba,u,wa,_a,xa,Ia,Ea,Da,Aa,Va,Fa,Oa,$a,Ca,Ra,Pa,za,Wa,Ua,Ha,qa,Ga,ja,Ka,Ja,Tt,Qa,R,pn,L,dn,H,gn,vn,bn,j,kn,Sn,_n,Tn,xn,Q,te,f,In,ka,Dn,Vn,Fn,It,re,ie,Bn,me,$n,Pn,Ln,Hn,qn,Gn,Kn,fe,Xn,Zn,Jn,Qn,Yn,er,tr,ve,ar,sr,dr,ke,_e,mr,cr,fr,Ie,gr,br,Nr,kr,Tr,At,Me,xr,Ir,Er,y,un,Ar,Mt,Bt,Ct,Vr,Mr,Fr,Br,Or,$r,Rr,qe,Pr,Wr,Ur,jr,Xe,Xr,Jr,Yr,Qe,or,as,ns,rs,ss,ps,is,os,ds,rt,ls,it,us,cs,hs,fs,gs,yt,Za,vs,ws,Ns,ks,Ss,Ae,Es,Ds,As,vr];for(const e of Vs)(0,r.registerKernel)(e)},4618:(e,t,a)=>{"use strict";a.r(t),a.d(t,{GraphModel:()=>Le,deregisterOp:()=>D,loadGraphModel:()=>We,loadGraphModelSync:()=>Ue,registerOp:()=>I,version_converter:()=>He});var n={};a.r(n),a.d(n,{json:()=>C});var r={};a.r(r),a.d(r,{json:()=>R});var s={};a.r(s),a.d(s,{json:()=>P});var p={};a.r(p),a.d(p,{json:()=>z});var i={};a.r(i),a.d(i,{json:()=>L});var o={};a.r(o),a.d(o,{json:()=>W});var d={};a.r(d),a.d(d,{json:()=>U});var l={};a.r(l),a.d(l,{json:()=>H});var m={};a.r(m),a.d(m,{json:()=>q});var u={};a.r(u),a.d(u,{json:()=>G});var c={};a.r(c),a.d(c,{json:()=>j});var h={};a.r(h),a.d(h,{json:()=>K});var f={};a.r(f),a.d(f,{json:()=>X});var g={};a.r(g),a.d(g,{json:()=>Z});var y={};a.r(y),a.d(y,{json:()=>J});var v={};a.r(v),a.d(v,{json:()=>Q});var b={};a.r(b),a.d(b,{json:()=>Y});var w={};a.r(w),a.d(w,{json:()=>ee});var N={};a.r(N),a.d(N,{json:()=>te});var k={};a.r(k),a.d(k,{OP_SCOPE_SUFFIX:()=>ve.zvA,abs:()=>ve.WnP,acos:()=>ve.Khb,acosh:()=>ve.__u,add:()=>ve.IHx,addN:()=>ve.QBD,all:()=>ve.$6P,any:()=>ve.YjB,argMax:()=>ve.NqF,argMin:()=>ve.vHJ,asin:()=>ve.ZRM,asinh:()=>ve.VfV,atan:()=>ve.z4N,atan2:()=>ve.fvJ,atanh:()=>ve.C80,avgPool:()=>ve.wS1,avgPool3d:()=>ve.uR5,basicLSTMCell:()=>ve.zEQ,batchNorm:()=>ve.tgs,batchNorm2d:()=>ve.Dxk,batchNorm3d:()=>ve.JY5,batchNorm4d:()=>ve.p3b,batchToSpaceND:()=>ve.E4h,bincount:()=>ve.yE8,booleanMaskAsync:()=>ve.anm,broadcastArgs:()=>ve.XsQ,broadcastTo:()=>ve.UFq,buffer:()=>ve.f3b,cast:()=>ve.pju,ceil:()=>ve.mDi,clipByValue:()=>ve.iUl,clone:()=>ve.d9v,complex:()=>ve.PYB,concat:()=>ve.zoF,concat1d:()=>ve.gME,concat2d:()=>ve.Izb,concat3d:()=>ve.MNy,concat4d:()=>ve.ZaL,conv1d:()=>ve.PAt,conv2d:()=>ve.Tek,conv2dTranspose:()=>ve.bc,conv3d:()=>ve.pdZ,conv3dTranspose:()=>ve.$QV,cos:()=>ve.mCk,cosh:()=>ve.f9Y,cosineWindow:()=>ve.mew,cumprod:()=>ve.$Gn,cumsum:()=>ve.zbp,denseBincount:()=>ve.ppE,depthToSpace:()=>ve.nTT,depthwiseConv2d:()=>ve.B10,diag:()=>ve.Ka3,dilation2d:()=>ve.WmZ,div:()=>ve.hiC,divNoNan:()=>ve.NTj,dot:()=>ve.AKD,dropout:()=>ve.rvX,einsum:()=>ve.WYO,elu:()=>ve.pyx,enclosingPowerOfTwo:()=>ve.GRh,equal:()=>ve.DgJ,erf:()=>ve.qNN,euclideanNorm:()=>ve.d2q,exp:()=>ve.Qqt,expandDims:()=>ve.dt4,expm1:()=>ve.t$B,eye:()=>ve.iyy,fft:()=>ve.kp_,fill:()=>ve.hlL,floor:()=>ve.GWj,floorDiv:()=>ve.qPi,fused:()=>ve.imm,gather:()=>ve.Iqj,gatherND:()=>ve.dbB,greater:()=>ve.pjt,greaterEqual:()=>ve.brS,ifft:()=>ve.Sxn,imag:()=>ve.asL,image:()=>ve.BHj,inTopKAsync:()=>ve.V3u,irfft:()=>ve.wx0,isFinite:()=>ve.xVT,isInf:()=>ve.UWc,isNaN:()=>ve.i2d,leakyRelu:()=>ve.hi7,less:()=>ve.d9m,lessEqual:()=>ve.zN1,linalg:()=>ve.$r2,linspace:()=>ve.SX3,localResponseNormalization:()=>ve.G9k,log:()=>ve.cM7,log1p:()=>ve.Krr,logSigmoid:()=>ve.e_t,logSoftmax:()=>ve.CmS,logSumExp:()=>ve.l_t,logicalAnd:()=>ve.HvI,logicalNot:()=>ve.hJK,logicalOr:()=>ve.K5V,logicalXor:()=>ve.egP,losses:()=>ve.MB5,lowerBound:()=>ve.eab,matMul:()=>ve.OI3,max:()=>ve.Fp7,maxPool:()=>ve._sB,maxPool3d:()=>ve.YQQ,maxPoolWithArgmax:()=>ve.Ip$,maximum:()=>ve.gWQ,mean:()=>ve.J69,meshgrid:()=>ve.ry_,min:()=>ve.VV$,minimum:()=>ve.LTh,mirrorPad:()=>ve.VdP,mod:()=>ve.wQq,moments:()=>ve.Gi7,movingAverage:()=>ve.p_,mul:()=>ve.dC7,multiRNNCell:()=>ve.rq4,multinomial:()=>ve.SJ_,neg:()=>ve.W76,norm:()=>ve.KOy,notEqual:()=>ve.Quu,oneHot:()=>ve.lfX,ones:()=>ve.iUs,onesLike:()=>ve.JpU,op:()=>ve.op,outerProduct:()=>ve.N2O,pad:()=>ve.vku,pad1d:()=>ve.pNR,pad2d:()=>ve.koy,pad3d:()=>ve.t1L,pad4d:()=>ve.lGY,pool:()=>ve.d_R,pow:()=>ve.sQ3,prelu:()=>ve.AL3,print:()=>ve.S0v,prod:()=>ve.WVs,raggedGather:()=>ve.$gW,raggedTensorToTensor:()=>ve.N89,rand:()=>ve.TN_,randomGamma:()=>ve.wzB,randomNormal:()=>ve.nGf,randomStandardNormal:()=>ve.ruB,randomUniform:()=>ve.LGj,range:()=>ve.w6H,real:()=>ve.kwC,reciprocal:()=>ve.M25,relu:()=>ve.UYe,relu6:()=>ve.btT,reshape:()=>ve.XLQ,reverse:()=>ve.GYS,reverse1d:()=>ve.SDf,reverse2d:()=>ve.diP,reverse3d:()=>ve.sx7,reverse4d:()=>ve.mG2,rfft:()=>ve.QEs,round:()=>ve.NMM,rsqrt:()=>ve.bp0,scalar:()=>ve.iD$,scatterND:()=>ve.snQ,searchSorted:()=>ve.zcT,selu:()=>ve.U8D,separableConv2d:()=>ve.U_I,setdiff1dAsync:()=>ve.ODp,sigmoid:()=>ve.XD2,sign:()=>ve.Xxe,signal:()=>ve.tdS,sin:()=>ve.O$l,sinh:()=>ve.R_K,slice:()=>ve.tPi,slice1d:()=>ve.jZU,slice2d:()=>ve.SmN,slice3d:()=>ve.CnO,slice4d:()=>ve.p0P,softmax:()=>ve.XAC,softplus:()=>ve.Wvh,spaceToBatchND:()=>ve.fBT,sparse:()=>ve.rVs,sparseToDense:()=>ve.ers,spectral:()=>ve.uN7,split:()=>ve.Vl2,sqrt:()=>ve._b3,square:()=>ve.h62,squaredDifference:()=>ve.$i,squeeze:()=>ve.L9e,stack:()=>ve.knu,step:()=>ve.Nbs,stridedSlice:()=>ve.NXj,string:()=>ve.Z_8,sub:()=>ve.luU,sum:()=>ve.Smz,tan:()=>ve.ORZ,tanh:()=>ve.AEp,tensor:()=>ve.XeE,tensor1d:()=>ve.RRF,tensor2d:()=>ve.odF,tensor3d:()=>ve.wOQ,tensor4d:()=>ve.yXz,tensor5d:()=>ve.Bfx,tensor6d:()=>ve.xZs,tile:()=>ve.Gg6,topk:()=>ve.hg7,transpose:()=>ve.p4s,truncatedNormal:()=>ve.Xu6,unique:()=>ve.Two,unsortedSegmentSum:()=>ve.pUJ,unstack:()=>ve.HHK,upperBound:()=>ve.GaM,variable:()=>ve.VD$,where:()=>ve.arb,whereAsync:()=>ve.itS,zeros:()=>ve.lls,zerosLike:()=>ve.P84});var S=a(8946);var _,T;(0,S.env)().registerFlag("KEEP_INTERMEDIATE_TENSORS",(()=>!1),(e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")})),function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"}(_||(_={})),function(e){let t;!function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"}(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))}(T||(T={}));const x={};function I(e,t){const a={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};x[e]=a}function E(e){return x[e]}function D(e){delete x[e]}function A(e,t,a,n,r){const s=t.inputParams[e];if(s&&void 0!==s.inputIndexStart){const e=s.inputIndexStart,p=0===s.inputIndexEnd?void 0:void 0===s.inputIndexEnd?e+1:s.inputIndexEnd;if("tensor"===s.type)return V(t.inputNames[s.inputIndexStart],a,n,r);if("tensors"===s.type){return t.inputNames.slice(e,p).map((e=>V(e,a,n,r)))}const i=V(t.inputNames.slice(e)[0],a,n,r),o=i.dataSync();return"number"===s.type?o[0]:S.util.toNestedArray(i.shape,o)}const p=t.attrParams[e];return p&&p.value}function V(e,t,a,n){const[r,s]=B(e);if(null!=n){const e=n.getHashTableHandleByName(r);if(null!=e)return e}const p=a.currentContextIds.find((e=>!!t[F(r,e)]));return void 0!==p?t[F(r,p)][s]:void 0}function M(e,t){const[a,n,r]=B(e);return[F(a,t&&t.currentContextId),n,r]}function F(e,t){return t?`${e}-${t}`:e}function B(e){const t=e.split(":");if(1===t.length)return[e,0,void 0];const a=t[0],n=3===t.length?t[1]:void 0;return[a,Number(t[t.length-1]),n]}function O(e,t,a){let n=A("pad",e,t,a);if("explicit"===n){n=A("explicitPaddings",e,t,a);const r=[[0,0],[0,0],[0,0],[0,0]];for(let e=0;e<4;e++)r[e][0]=n[2*e],r[e][1]=n[2*e+1];return r}return n}function $(e){return e.kept?e:(0,S.clone)(e)}const C=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],R=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],P=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcatV2",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],z=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],L=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],W=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],U=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],H=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],q=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]}],G=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],j=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],K=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}],X=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],Z=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumprod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],J=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],Q=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],Y=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],ee=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],te=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}];class ae{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[].concat(...[n,r,s,p,i,o,d,l,m,u,c,h,f,g,y,v,b,w,N].map((e=>e.json)));this.opMappers=e.reduce(((e,t)=>(e[t.tfOpName]=t,e)),{})}transformGraph(e,t={}){const a=e.node,n=[],r=[],s=[],p=a.reduce(((e,t)=>(e[t.name]=this.mapNode(t),t.op.startsWith("Placeholder")?n.push(e[t.name]):"Const"===t.op?r.push(e[t.name]):null!=t.input&&0!==t.input.length||s.push(e[t.name]),e)),{});let i=[];const o=[];let d={},l={};null!=t&&(d=this.mapSignatureEntries(t.inputs),l=this.mapSignatureEntries(t.outputs));const m=Object.keys(p);m.forEach((e=>{const t=p[e];t.inputNames.forEach(((e,a)=>{const[n,,r]=M(e),s=p[n];if(null!=s.outputs){const e=s.outputs.indexOf(r);if(-1!==e){const r=`${n}:${e}`;t.inputNames[a]=r}}t.inputs.push(s),s.children.push(t)}))})),0===Object.keys(l).length?m.forEach((e=>{const t=p[e];0===t.children.length&&o.push(t)})):Object.keys(l).forEach((e=>{const[t]=M(e),a=p[t];null!=a&&(a.signatureKey=l[e],o.push(a))})),Object.keys(d).length>0?Object.keys(d).forEach((e=>{const[t]=M(e),a=p[t];a&&(a.signatureKey=d[e],i.push(a))})):i=n;let u={};null!=e.library&&null!=e.library.function&&(u=e.library.function.reduce(((e,t)=>(e[t.signature.name]=this.mapFunction(t),e)),{}));const c={nodes:p,inputs:i,outputs:o,weights:r,placeholders:n,signature:t,functions:u};return s.length>0&&(c.initNodes=s),c}mapSignatureEntries(e){return Object.keys(e||{}).reduce(((t,a)=>(t[e[a].name]=a,t)),{})}mapNode(e){const t=E(e.op)||this.opMappers[e.op]||{};null==e.attr&&(e.attr={});const a={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map((e=>e.startsWith("^")?e.slice(1):e)),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return null!=t.inputs&&(a.inputParams=t.inputs.reduce(((e,t)=>(e[t.name]={type:t.type,inputIndexStart:t.start,inputIndexEnd:t.end},e)),{})),null!=t.attrs&&(a.attrParams=t.attrs.reduce(((t,a)=>{const n=a.type;let r;switch(a.type){case"string":r=re(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=re(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"string[]":r=he(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=he(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"number":r=pe(e.attr,a.tfName,a.defaultValue||0),void 0===r&&a.tfDeprecatedName&&(r=pe(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"number[]":r=ce(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=ce(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"bool":r=se(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=se(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"bool[]":r=ge(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=ge(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"shape":r=ue(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=ue(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"shape[]":r=fe(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=fe(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"dtype":r=de(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=de(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"dtype[]":r=le(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=le(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"func":r=oe(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=oe(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${a.type} for op: ${e.op}`)}return t[a.name]={value:r,type:n},t}),{})),a}mapFunction(e){const t=e.nodeDef,a=[];let n={};null!=t&&(n=t.reduce(((e,t)=>(e[t.name]=this.mapNode(t),"Const"===t.op&&a.push(e[t.name]),e)),{}));const r=[],s=[];e.signature.inputArg.forEach((e=>{const[t]=M(e.name),a={name:t,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:ie(e.type),type:"dtype"}},children:[]};a.signatureKey=e.name,r.push(a),n[t]=a}));Object.keys(n).forEach((e=>{const t=n[e];t.inputNames.forEach(((e,a)=>{const[r,,s]=M(e),p=n[r];if(null!=p.outputs){const e=p.outputs.indexOf(s);if(-1!==e){const n=`${r}:${e}`;t.inputNames[a]=n}}t.inputs.push(p),p.children.push(t)}))}));const p=e.ret;e.signature.outputArg.forEach((e=>{const[t,a]=M(p[e.name]),r=n[t];null!=r&&(r.defaultOutput=a,s.push(r))}));const i=this.mapArgsToSignature(e);return{nodes:n,inputs:r,outputs:s,weights:a,placeholders:[],signature:i}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce(((e,t)=>(e[t.name]=this.mapArgToTensorInfo(t),e)),{}),outputs:e.signature.outputArg.reduce(((t,a)=>(t[a.name]=this.mapArgToTensorInfo(a,e.ret),t)),{})}}mapArgToTensorInfo(e,t){let a=e.name;return null!=t&&(a=t[a]),{name:a,dtype:e.type}}}function ne(e,t){const a=Array.isArray(e)?String.fromCharCode.apply(null,e):function(e){const t=(0,S.env)().global;if(void 0!==t.atob)return t.atob(e);if("undefined"!=typeof Buffer)return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}(e);return t?a:a.toLowerCase()}function re(e,t,a,n=!1){const r=e[t];return null!=r?ne(r.s,n):a}function se(e,t,a){const n=e[t];return n?n.b:a}function pe(e,t,a){const n=e[t]||{},r=null!=n.i?n.i:null!=n.f?n.f:a;return"number"==typeof r?r:parseInt(r,10)}function ie(e){switch("string"==typeof e&&(e=_[e]),e){case _.DT_FLOAT:case _.DT_HALF:return"float32";case _.DT_INT32:case _.DT_INT64:case _.DT_INT8:case _.DT_UINT8:return"int32";case _.DT_BOOL:return"bool";case _.DT_DOUBLE:return"float32";case _.DT_STRING:return"string";default:return null}}function oe(e,t,a){const n=e[t];return n&&n.func?n.func.name:a}function de(e,t,a){const n=e[t];return n&&n.type?ie(n.type):a}function le(e,t,a){const n=e[t];return n&&n.list&&n.list.type?n.list.type.map((e=>ie(e))):a}function me(e){if(!e.unknownRank)return null!=e.dim?e.dim.map((e=>"number"==typeof e.size?e.size:parseInt(e.size,10))):[]}function ue(e,t,a){const n=e[t];return n&&n.shape?me(n.shape):a}function ce(e,t,a){const n=e[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map((e=>"number"==typeof e?e:parseInt(e,10))):a}function he(e,t,a,n=!1){const r=e[t];return r&&r.list&&r.list.s?r.list.s.map((e=>ne(e,n))):a}function fe(e,t,a){const n=e[t];return n&&n.list&&n.list.shape?n.list.shape.map((e=>me(e))):a}function ge(e,t,a){const n=e[t];return n&&n.list&&n.list.b?n.list.b:a}class ye{constructor(e,t,a){this.node=e,this.tensorMap=t,this.context=a,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map((e=>this.getInput(e))),null!=e.rawAttrs&&(this.attrs=Object.keys(e.rawAttrs).reduce(((e,t)=>(e[t]=this.getAttr(t),e)),{}))}getInput(e){return V(e,this.tensorMap,this.context)}getAttr(e,t){const a=this.node.rawAttrs[e];if(null!=a.tensor)return V(e,this.tensorMap,this.context);if(null!=a.i||null!=a.f)return pe(this.node.rawAttrs,e,t);if(null!=a.s)return re(this.node.rawAttrs,e,t);if(null!=a.b)return se(this.node.rawAttrs,e,t);if(null!=a.shape)return ue(this.node.rawAttrs,e,t);if(null!=a.type)return de(this.node.rawAttrs,e,t);if(null!=a.list){if(null!=a.list.i||null!=a.list.f)return ce(this.node.rawAttrs,e,t);if(null!=a.list.s)return he(this.node.rawAttrs,e,t);if(null!=a.list.shape)return fe(this.node.rawAttrs,e,t);if(null!=a.list.b)return ge(this.node.rawAttrs,e,t);if(null!=a.list.type)return le(this.node.rawAttrs,e,t)}return t}}var ve=a(6522);function be(e,t,a=""){if("number"!=typeof e&&"number"!=typeof t){S.util.assert(e.length===t.length,(()=>a+` Shapes ${e} and ${t} must match`));for(let n=0;na+` Shapes ${e} and ${t} must match`))}}}function we(e){return"number"!=typeof e&&!e.some((e=>e<0))}function Ne(e,t,a){let n=ke(e,a);const r=!we(n);if(r&&0===t.length)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(r&&t.forEach((e=>{n=ke(e.shape,n)})),!we(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function ke(e,t){if("number"==typeof e)return t;if("number"==typeof t)return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);const a=[];for(let n=0;n=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);a[n]=r>=0?r:s}return a}class Se{constructor(e,t,a,n,r,s,p){this.name=e,this.dtype=t,this.maxSize=a,this.elementShape=n,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=p,this.tensors=[],this.closed_=!1,this.idTensor=(0,S.scalar)(0),(0,S.keep)(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.tensor.id)||t.tensor.dispose()})),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);const t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map((e=>this.read(e)))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);const a=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e},\n because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(0!==this.size()||null!=this.elementShape&&0!==this.elementShape.length||(this.elementShape=t.shape),be(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),a.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(a.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);a.tensor=t,(0,S.keep)(t),a.written=!0,this.tensors[e]=a}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach(((e,a)=>this.write(e,t[a])))}gather(e,t){if(t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let t=0;t=this.maxSize)throw new Error(`Max index must be < array size (${a} vs. ${this.maxSize})`);this.writeMany(e,(0,S.unstack)(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let a=0;const n=e.map((e=>(a+=e,a)));if(a!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${a}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);const r=0===a?0:t.size/a,s=[];(0,S.tidy)((()=>{t=(0,S.reshape)(t,[1,a,r]);for(let a=0;a{if(a!==e.dtype)throw new Error(`Invalid data types; op elements ${a}, but list elements ${e.dtype}`);be(t,e.shape,"TensorList shape mismatch: "),(0,S.keep)(e)})),this.idTensor=(0,S.scalar)(0),this.maxNumElements=n,(0,S.keep)(this.idTensor)}get id(){return this.idTensor.id}copy(){return new _e([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.id)||t.dispose()})),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,a=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(-1!==a&&this.tensors.length!==a)throw new Error(`Operation expected a list with ${a} elements but got a list with ${this.tensors.length} elements.`);be(e,this.elementShape,"TensorList shape mismatch: ");const n=Ne(this.elementShape,this.tensors,e);return(0,S.tidy)((()=>{const e=this.tensors.map((e=>(0,S.reshape)(e,n)));return(0,S.stack)(e,0)}))}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(0===this.size())throw new Error("Trying to pop from an empty list.");const a=Ne(this.elementShape,this.tensors,e),n=this.tensors.pop();return n.kept=!1,be(n.shape,e,"TensorList shape mismatch: "),(0,S.reshape)(n,a)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(be(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");(0,S.keep)(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(-1!==this.maxNumElements&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);const t=new _e([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let a=0;athis.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(null==this.tensors[e])throw new Error(`element at index ${e} is null.`);be(this.tensors[e].shape,t,"TensorList shape mismatch: ");const n=Ne(this.elementShape,this.tensors,t);return(0,S.reshape)(this.tensors[e],n)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||-1!==this.maxNumElements&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);be(this.elementShape,t.shape,"TensorList shape mismatch: "),(0,S.keep)(t),null!=this.tensors[e]&&(this.tensors[e].kept=!1),this.tensors[e]=t}gather(e,t,a){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);be(this.elementShape,a,"TensorList shape mismatch: "),e=e.slice(0,this.size());const n=Ne(this.elementShape,this.tensors,a);return 0===e.length?(0,S.tensor)([],[0].concat(n)):(0,S.tidy)((()=>{const t=e.map((e=>(0,S.reshape)(this.tensors[e],n)));return(0,S.stack)(t,0)}))}concat(e,t){if(e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);be(this.elementShape,t,"TensorList shape mismatch: ");const a=Ne(this.elementShape,this.tensors,t);return 0===this.size()?(0,S.tensor)([],[0].concat(a)):(0,S.tidy)((()=>{const e=this.tensors.map((e=>(0,S.reshape)(e,a)));return(0,S.concat)(e,0)}))}}const Te=async(e,t,a)=>{switch(e.op){case"If":case"StatelessIf":{const n=A("thenBranch",e,t,a),r=A("elseBranch",e,t,a),s=A("cond",e,t,a),p=A("args",e,t,a);return(await s.data())[0]?a.functionMap[n].executeFunctionAsync(p,a.tensorArrayMap,a.tensorListMap):a.functionMap[r].executeFunctionAsync(p,a.tensorArrayMap,a.tensorListMap)}case"While":case"StatelessWhile":{const n=A("body",e,t,a),r=A("cond",e,t,a),s=A("args",e,t,a),p=await a.functionMap[r].executeFunctionAsync(s,a.tensorArrayMap,a.tensorListMap),i=s.map((e=>e.id));let o=await p[0].data();p.forEach((e=>{e.kept||-1!==i.indexOf(e.id)||e.dispose()}));let d=s;for(;o[0];){const e=d;d=await a.functionMap[n].executeFunctionAsync(d,a.tensorArrayMap,a.tensorListMap);const t=d.map((e=>e.id));e.forEach((e=>{e.kept||-1!==i.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}));const s=await a.functionMap[r].executeFunctionAsync(d,a.tensorArrayMap,a.tensorListMap);o=await s[0].data(),s.forEach((e=>{e.kept||-1!==i.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}))}return d}case"LoopCond":return[$(A("pred",e,t,a))];case"Switch":{const n=A("pred",e,t,a);let r=A("data",e,t,a);return r.kept||(r=$(r)),(await n.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{const n=e.inputNames.find((e=>void 0!==V(e,t,a)));if(n){return[$(V(n,t,a))]}return}case"Enter":{const n=A("frameName",e,t,a),r=A("tensor",e,t,a);return a.enterFrame(n),[$(r)]}case"Exit":{const n=A("tensor",e,t,a);return a.exitFrame(),[$(n)]}case"NextIteration":{const n=A("tensor",e,t,a);return a.nextIteration(),[$(n)]}case"TensorArrayV3":{const n=A("size",e,t,a),r=A("dtype",e,t,a),s=A("elementShape",e,t,a),p=A("dynamicSize",e,t,a),i=A("clearAfterRead",e,t,a),o=A("identicalElementShapes",e,t,a),d=A("name",e,t,a),l=new Se(d,r,n,s,o,p,i);return a.addTensorArray(l),[l.idTensor,(0,S.scalar)(1)]}case"TensorArrayWriteV3":{const n=A("tensorArrayId",e,t,a),r=A("index",e,t,a),s=A("tensor",e,t,a),p=a.getTensorArray(n.id);return p.write(r,s),[p.idTensor]}case"TensorArrayReadV3":{const n=A("tensorArrayId",e,t,a),r=A("index",e,t,a);return[a.getTensorArray(n.id).read(r)]}case"TensorArrayGatherV3":{const n=A("tensorArrayId",e,t,a),r=A("indices",e,t,a),s=A("dtype",e,t,a);return[a.getTensorArray(n.id).gather(r,s)]}case"TensorArrayScatterV3":{const n=A("tensorArrayId",e,t,a),r=A("indices",e,t,a),s=A("tensor",e,t,a),p=a.getTensorArray(n.id);return p.scatter(r,s),[p.idTensor]}case"TensorArrayConcatV3":{const n=A("tensorArrayId",e,t,a),r=a.getTensorArray(n.id),s=A("dtype",e,t,a);return[r.concat(s)]}case"TensorArraySplitV3":{const n=A("tensorArrayId",e,t,a),r=A("tensor",e,t,a),s=A("lengths",e,t,a),p=a.getTensorArray(n.id);return p.split(s,r),[p.idTensor]}case"TensorArraySizeV3":{const n=A("tensorArrayId",e,t,a),r=a.getTensorArray(n.id);return[(0,S.scalar)(r.size(),"int32")]}case"TensorArrayCloseV3":{const n=A("tensorArrayId",e,t,a),r=a.getTensorArray(n.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{const n=A("tensorListId",e,t,a),r=A("index",e,t,a),s=A("tensor",e,t,a),p=a.getTensorList(n.id);return p.setItem(r,s),[p.idTensor]}case"TensorListGetItem":{const n=A("tensorListId",e,t,a),r=A("index",e,t,a),s=A("elementShape",e,t,a),p=A("elementDType",e,t,a);return[a.getTensorList(n.id).getItem(r,s,p)]}case"TensorListScatterV2":case"TensorListScatter":{const n=A("indices",e,t,a),r=function(e,t,a,n){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);const r=Math.max(...t);if(null!=n&&-1!==n&&r>=n)throw new Error(`Max index must be < array size (${r} vs. ${n})`);const s=new _e([],a,e.dtype,n),p=(0,S.unstack)(e,0);return t.forEach(((e,t)=>{s.setItem(e,p[t])})),s}(A("tensor",e,t,a),n,A("elementShape",e,t,a),A("numElements",e,t,a));return a.addTensorList(r),[r.idTensor]}case"TensorListReserve":case"EmptyTensorList":{const n=A("elementShape",e,t,a),r=A("elementDType",e,t,a);let s;s="TensorListReserve"===e.op?"numElements":"maxNumElements";const p=A(s,e,t,a),i=function(e,t,a,n){return new _e([],e,t,n)}(n,r,0,"TensorListReserve"===e.op?-1:p);return a.addTensorList(i),[i.idTensor]}case"TensorListGather":{const n=A("tensorListId",e,t,a),r=A("indices",e,t,a),s=A("elementShape",e,t,a),p=A("elementDType",e,t,a);return[a.getTensorList(n.id).gather(r,p,s)]}case"TensorListStack":{const n=A("tensorListId",e,t,a),r=A("elementShape",e,t,a),s=A("elementDType",e,t,a),p=A("numElements",e,t,a);return[a.getTensorList(n.id).stack(r,s,p)]}case"TensorListFromTensor":{const n=function(e,t,a){const n=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==a)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${a}`);be(e.shape.slice(1),t,"TensorList shape mismatch: ");const r=(0,S.unstack)(e);return new _e(r,t,n)}(A("tensor",e,t,a),A("elementShape",e,t,a),A("elementDType",e,t,a));return a.addTensorList(n),[n.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{const n=A("tensorListId",e,t,a),r=a.getTensorList(n.id),s=A("dtype",e,t,a),p=A("elementShape",e,t,a);return[r.concat(s,p)]}case"TensorListPushBack":{const n=A("tensorListId",e,t,a),r=A("tensor",e,t,a),s=a.getTensorList(n.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{const n=A("tensorListId",e,t,a),r=A("elementShape",e,t,a),s=A("elementDType",e,t,a);return[a.getTensorList(n.id).popBack(r,s)]}case"TensorListSplit":{const n=A("tensor",e,t,a),r=A("elementShape",e,t,a),s=function(e,t,a){let n=0;const r=t.map((e=>(n+=e,n)));if(n!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${e.shape}`);const s=ke(e.shape.slice(1),a),p=0===n?0:e.size/n,i=(0,S.tidy)((()=>{const a=[];e=(0,S.reshape)(e,[1,n,p]);for(let n=0;ne.dispose())),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return Ee.i(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);const a=await e.data();return this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),(0,S.tidy)((()=>{const e=(0,S.unstack)(t),n=a.length,r=e.length;S.util.assert(n===r,(()=>`The number of elements doesn't match, keys has ${n} elements, the values has ${r} elements.`));for(let t=0;t{const e=[];for(let n=0;n{switch(e.category){case"arithmetic":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[n.add(A("a",e,t,a),A("b",e,t,a))];case"AddN":return[n.addN(A("tensors",e,t,a))];case"FloorMod":case"Mod":return[n.mod(A("a",e,t,a),A("b",e,t,a))];case"Mul":return[n.mul(A("a",e,t,a),A("b",e,t,a))];case"RealDiv":case"Div":return[n.div(A("a",e,t,a),A("b",e,t,a))];case"DivNoNan":return[n.divNoNan(A("a",e,t,a),A("b",e,t,a))];case"FloorDiv":return[n.floorDiv(A("a",e,t,a),A("b",e,t,a))];case"Sub":return[n.sub(A("a",e,t,a),A("b",e,t,a))];case"Minimum":return[n.minimum(A("a",e,t,a),A("b",e,t,a))];case"Maximum":return[n.maximum(A("a",e,t,a),A("b",e,t,a))];case"Pow":return[n.pow(A("a",e,t,a),A("b",e,t,a))];case"SquaredDifference":return[n.squaredDifference(A("a",e,t,a),A("b",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"basic_math":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"Abs":case"ComplexAbs":return[n.abs(A("x",e,t,a))];case"Acos":return[n.acos(A("x",e,t,a))];case"Acosh":return[n.acosh(A("x",e,t,a))];case"Asin":return[n.asin(A("x",e,t,a))];case"Asinh":return[n.asinh(A("x",e,t,a))];case"Atan":return[n.atan(A("x",e,t,a))];case"Atan2":return[n.atan2(A("x",e,t,a),A("y",e,t,a))];case"Atanh":return[n.atanh(A("x",e,t,a))];case"Ceil":return[n.ceil(A("x",e,t,a))];case"Complex":return[n.complex(A("real",e,t,a),A("imag",e,t,a))];case"Cos":return[n.cos(A("x",e,t,a))];case"Cosh":return[n.cosh(A("x",e,t,a))];case"Elu":return[n.elu(A("x",e,t,a))];case"Erf":return[n.erf(A("x",e,t,a))];case"Exp":return[n.exp(A("x",e,t,a))];case"Expm1":return[n.expm1(A("x",e,t,a))];case"Floor":return[n.floor(A("x",e,t,a))];case"Log":return[n.log(A("x",e,t,a))];case"Log1p":return[n.log1p(A("x",e,t,a))];case"Imag":return[n.imag(A("x",e,t,a))];case"Neg":return[n.neg(A("x",e,t,a))];case"Reciprocal":return[n.reciprocal(A("x",e,t,a))];case"Real":return[n.real(A("x",e,t,a))];case"Relu":return[n.relu(A("x",e,t,a))];case"Round":return[n.round(A("x",e,t,a))];case"Selu":return[n.selu(A("x",e,t,a))];case"Sigmoid":return[n.sigmoid(A("x",e,t,a))];case"Sin":return[n.sin(A("x",e,t,a))];case"Sign":return[n.sign(A("x",e,t,a))];case"Sinh":return[n.sinh(A("x",e,t,a))];case"Softplus":return[n.softplus(A("x",e,t,a))];case"Sqrt":return[n.sqrt(A("x",e,t,a))];case"Square":return[n.square(A("x",e,t,a))];case"Tanh":return[n.tanh(A("x",e,t,a))];case"Tan":return[n.tan(A("x",e,t,a))];case"ClipByValue":return[n.clipByValue(A("x",e,t,a),A("clipValueMin",e,t,a),A("clipValueMax",e,t,a))];case"Relu6":return[n.relu6(A("x",e,t,a))];case"Rsqrt":return[n.rsqrt(V(e.inputNames[0],t,a))];case"Prod":return[n.prod(A("x",e,t,a),A("axes",e,t,a))];case"LeakyRelu":return[n.leakyRelu(A("x",e,t,a),A("alpha",e,t,a))];case"Prelu":return[n.prelu(A("x",e,t,a),A("alpha",e,t,a))];case"IsNan":return[n.isNaN(V(e.inputNames[0],t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"control":return Te(e,t,a);case"convolution":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"Conv1D":{const r=A("stride",e,t,a),s=A("pad",e,t,a),p=A("dataFormat",e,t,a).toUpperCase(),i=A("dilation",e,t,a);return[n.conv1d(A("x",e,t,a),A("filter",e,t,a),r,s,p,i)]}case"Conv2D":{const r=A("strides",e,t,a),s=O(e,t,a),p=A("dataFormat",e,t,a).toUpperCase(),i=A("dilations",e,t,a);return[n.conv2d(A("x",e,t,a),A("filter",e,t,a),[r[1],r[2]],s,p,[i[1],i[2]])]}case"_FusedConv2D":{const{stride:r,pad:s,dataFormat:p,dilations:i,biasArg:o,preluArg:d,activationFunc:l,leakyreluAlpha:m}=xe(e,t,a);return[n.fused.conv2d({x:A("x",e,t,a),filter:A("filter",e,t,a),strides:[r[1],r[2]],pad:s,dataFormat:p,dilations:[i[1],i[2]],bias:o,activation:l,preluActivationWeights:d,leakyreluAlpha:m})]}case"FusedDepthwiseConv2dNative":{const{stride:r,pad:s,dataFormat:p,dilations:i,biasArg:o,preluArg:d,activationFunc:l,leakyreluAlpha:m}=xe(e,t,a);return[n.fused.depthwiseConv2d({x:A("x",e,t,a),filter:A("filter",e,t,a),strides:[r[1],r[2]],pad:s,dataFormat:p,dilations:[i[1],i[2]],bias:o,activation:l,preluActivationWeights:d,leakyreluAlpha:m})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{const r=A("outputShape",e,t,a),s=A("strides",e,t,a),p=O(e,t,a);return[n.conv2dTranspose(A("x",e,t,a),A("filter",e,t,a),r,[s[1],s[2]],p)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const r=A("strides",e,t,a),s=O(e,t,a),p=A("dilations",e,t,a),i=A("dataFormat",e,t,a).toUpperCase();return[n.depthwiseConv2d(A("input",e,t,a),A("filter",e,t,a),[r[1],r[2]],s,i,[p[1],p[2]])]}case"Conv3D":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("dataFormat",e,t,a).toUpperCase(),i=A("dilations",e,t,a);return[n.conv3d(A("x",e,t,a),A("filter",e,t,a),[r[1],r[2],r[3]],s,p,[i[1],i[2],i[3]])]}case"AvgPool":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("kernelSize",e,t,a);return[n.avgPool(A("x",e,t,a),[p[1],p[2]],[r[1],r[2]],s)]}case"MaxPool":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("kernelSize",e,t,a);return[n.maxPool(A("x",e,t,a),[p[1],p[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("kernelSize",e,t,a),i=A("includeBatchInIndex",e,t,a),{result:o,indexes:d}=n.maxPoolWithArgmax(A("x",e,t,a),[p[1],p[2]],[r[1],r[2]],s,i);return[o,d]}case"AvgPool3D":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("kernelSize",e,t,a);return[n.avgPool3d(A("x",e,t,a),[p[1],p[2],p[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("kernelSize",e,t,a);return[n.maxPool3d(A("x",e,t,a),[p[1],p[2],p[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("dilations",e,t,a),i=r[1],o=r[2],d=p[1],l=p[2];return[n.dilation2d(A("x",e,t,a),A("filter",e,t,a),[i,o],s,[d,l],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"creation":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"Fill":{const r=A("shape",e,t,a),s=A("dtype",e,t,a),p=A("value",e,t,a);return[n.fill(r,p,s)]}case"LinSpace":{const r=A("start",e,t,a),s=A("stop",e,t,a),p=A("num",e,t,a);return[n.linspace(r,s,p)]}case"Multinomial":{const r=A("logits",e,t,a),s=A("numSamples",e,t,a),p=A("seed",e,t,a);return[n.multinomial(r,s,p)]}case"OneHot":{const r=A("indices",e,t,a),s=A("depth",e,t,a),p=A("onValue",e,t,a),i=A("offValue",e,t,a),o=A("dtype",e,t,a);return[n.oneHot(r,s,p,i,o)]}case"Ones":return[n.ones(A("shape",e,t,a),A("dtype",e,t,a))];case"OnesLike":return[n.onesLike(A("x",e,t,a))];case"RandomStandardNormal":return[n.randomStandardNormal(A("shape",e,t,a),A("dtype",e,t,a),A("seed",e,t,a))];case"RandomUniform":return[n.randomUniform(A("shape",e,t,a),A("minval",e,t,a),A("maxval",e,t,a),A("dtype",e,t,a))];case"Range":{const r=A("start",e,t,a),s=A("stop",e,t,a),p=A("step",e,t,a);return[n.range(r,s,p,A("dtype",e,t,a))]}case"TruncatedNormal":{const r=A("shape",e,t,a),s=A("mean",e,t,a),p=A("stdDev",e,t,a),i=A("seed",e,t,a);return[n.truncatedNormal(r,s,p,A("dtype",e,t,a),i)]}case"Zeros":return[n.zeros(A("shape",e,t,a),A("dtype",e,t,a))];case"ZerosLike":return[n.zerosLike(A("x",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"dynamic":return(async(e,t,a,n,r=k)=>{switch(e.op){case"NonMaxSuppressionV5":{const{boxes:n,scores:s,maxOutputSize:p,iouThreshold:i,scoreThreshold:o,softNmsSigma:d}=Ie(e,t,a),l=await r.image.nonMaxSuppressionWithScoreAsync(n,s,p,i,o,d);return[l.selectedIndices,l.selectedScores]}case"NonMaxSuppressionV4":{const{boxes:n,scores:s,maxOutputSize:p,iouThreshold:i,scoreThreshold:o}=Ie(e,t,a),d=A("padToMaxOutputSize",e,t,a),l=await r.image.nonMaxSuppressionPaddedAsync(n,s,p,i,o,d);return[l.selectedIndices,l.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{const{boxes:n,scores:s,maxOutputSize:p,iouThreshold:i,scoreThreshold:o}=Ie(e,t,a);return[await r.image.nonMaxSuppressionAsync(n,s,p,i,o)]}case"Where":{const n=r.cast(A("condition",e,t,a),"bool"),s=[await r.whereAsync(n)];return n.dispose(),s}case"ListDiff":return r.setdiff1dAsync(A("x",e,t,a),A("y",e,t,a));default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a);case"evaluation":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"LowerBound":{const r=A("sortedSequence",e,t,a),s=A("values",e,t,a);return[n.lowerBound(r,s)]}case"TopKV2":{const r=A("x",e,t,a),s=A("k",e,t,a),p=A("sorted",e,t,a),i=n.topk(r,s,p);return[i.values,i.indices]}case"UpperBound":{const r=A("sortedSequence",e,t,a),s=A("values",e,t,a);return[n.upperBound(r,s)]}case"Unique":{const r=A("x",e,t,a),s=n.unique(r);return[s.values,s.indices]}case"UniqueV2":{const r=A("x",e,t,a),s=A("axis",e,t,a),p=n.unique(r,s);return[p.values,p.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"image":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"ResizeBilinear":{const r=A("images",e,t,a),s=A("size",e,t,a),p=A("alignCorners",e,t,a),i=A("halfPixelCenters",e,t,a);return[n.image.resizeBilinear(r,[s[0],s[1]],p,i)]}case"ResizeNearestNeighbor":{const r=A("images",e,t,a),s=A("size",e,t,a),p=A("alignCorners",e,t,a),i=A("halfPixelCenters",e,t,a);return[n.image.resizeNearestNeighbor(r,[s[0],s[1]],p,i)]}case"CropAndResize":{const r=A("image",e,t,a),s=A("boxes",e,t,a),p=A("boxInd",e,t,a),i=A("cropSize",e,t,a),o=A("method",e,t,a),d=A("extrapolationValue",e,t,a);return[n.image.cropAndResize(r,s,p,i,o,d)]}case"ImageProjectiveTransformV3":{const r=A("images",e,t,a),s=A("transforms",e,t,a),p=A("outputShape",e,t,a),i=A("fillValue",e,t,a),o=A("interpolation",e,t,a),d=A("fillMode",e,t,a);return[n.image.transform(r,s,o.toLowerCase(),d.toLowerCase(),i,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"graph":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const r=A("default",e,t,a);return[V(e.name,t,a)||r];case"Placeholder":return[V(e.name,t,a)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":case"Snapshot":return[$(A("x",e,t,a))];case"IdentityN":return A("x",e,t,a).map((e=>$(e)));case"Shape":return[n.tensor1d(A("x",e,t,a).shape,"int32")];case"ShapeN":return A("x",e,t,a).map((e=>n.tensor1d(e.shape)));case"Size":return[n.scalar(A("x",e,t,a).size,"int32")];case"Rank":return[n.scalar(A("x",e,t,a).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":const s=A("x",e,t,a),p=A("data",e,t,a),i=A("message",e,t,a),o=A("summarize",e,t,a);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(i);for(let e=0;e((e,t,a,n=k)=>{switch(e.op){case"Equal":return[n.equal(A("a",e,t,a),A("b",e,t,a))];case"NotEqual":return[n.notEqual(A("a",e,t,a),A("b",e,t,a))];case"Greater":return[n.greater(A("a",e,t,a),A("b",e,t,a))];case"GreaterEqual":return[n.greaterEqual(A("a",e,t,a),A("b",e,t,a))];case"Less":return[n.less(A("a",e,t,a),A("b",e,t,a))];case"LessEqual":return[n.lessEqual(A("a",e,t,a),A("b",e,t,a))];case"LogicalAnd":return[n.logicalAnd(A("a",e,t,a),A("b",e,t,a))];case"LogicalNot":return[n.logicalNot(A("a",e,t,a))];case"LogicalOr":return[n.logicalOr(A("a",e,t,a),A("b",e,t,a))];case"Select":case"SelectV2":return[n.where(A("condition",e,t,a),A("a",e,t,a),A("b",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"matrices":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul(A("a",e,t,a),A("b",e,t,a),A("transposeA",e,t,a),A("transposeB",e,t,a))];case"Einsum":return[n.einsum(A("equation",e,t,a),...A("tensors",e,t,a))];case"Transpose":return[n.transpose(A("x",e,t,a),A("perm",e,t,a))];case"_FusedMatMul":const[r,s]=A("fusedOps",e,t,a),p="biasadd"===r,i="prelu"===s,o=A("numArgs",e,t,a),d=A("leakyreluAlpha",e,t,a);if(p){if(i&&2!==o)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&1!==o)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}const[l,m]=A("args",e,t,a);return[n.fused.matMul({a:A("a",e,t,a),b:A("b",e,t,a),transposeA:A("transposeA",e,t,a),transposeB:A("transposeB",e,t,a),bias:l,activation:s,preluActivationWeights:m,leakyreluAlpha:d})];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"normalization":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"EuclideanNorm":return[n.euclideanNorm(A("x",e,t,a),A("axis",e,t,a),A("keepDims",e,t,a))];case"FusedBatchNorm":case"FusedBatchNormV2":case"FusedBatchNormV3":return[n.batchNorm(A("x",e,t,a),A("mean",e,t,a),A("variance",e,t,a),A("offset",e,t,a),A("scale",e,t,a),A("epsilon",e,t,a))];case"LRN":return[n.localResponseNormalization(A("x",e,t,a),A("radius",e,t,a),A("bias",e,t,a),A("alpha",e,t,a),A("beta",e,t,a))];case"Softmax":return[n.softmax(A("x",e,t,a))];case"LogSoftmax":return[n.logSoftmax(A("x",e,t,a))];case"SparseToDense":return[n.sparseToDense(A("sparseIndices",e,t,a),A("outputShape",e,t,a),A("sparseValues",e,t,a),A("defaultValue",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"reduction":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"Max":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.max(A("x",e,t,a),r,s)]}case"Mean":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.mean(A("x",e,t,a),r,s)]}case"Min":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.min(A("x",e,t,a),r,s)]}case"Sum":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.sum(A("x",e,t,a),r,s)]}case"All":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.all(A("x",e,t,a),r,s)]}case"Any":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.any(A("x",e,t,a),r,s)]}case"ArgMax":{const r=A("axis",e,t,a);return[n.argMax(A("x",e,t,a),r)]}case"ArgMin":{const r=A("axis",e,t,a);return[n.argMin(A("x",e,t,a),r)]}case"Prod":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.prod(A("x",e,t,a),r,s)]}case"Cumprod":{const r=A("axis",e,t,a),s=A("exclusive",e,t,a),p=A("reverse",e,t,a);return[n.cumprod(A("x",e,t,a),r,s,p)]}case"Cumsum":{const r=A("axis",e,t,a),s=A("exclusive",e,t,a),p=A("reverse",e,t,a);return[n.cumsum(A("x",e,t,a),r,s,p)]}case"Bincount":const r=A("x",e,t,a),s=A("weights",e,t,a),p=A("size",e,t,a);return[n.bincount(r,s,p)];case"DenseBincount":{const r=A("x",e,t,a),s=A("weights",e,t,a),p=A("size",e,t,a),i=A("binaryOutput",e,t,a);return[n.denseBincount(r,s,p,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"slice_join":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"ConcatV2":case"Concat":{const r=A("n",e,t,a),s=A("axis",e,t,a);let p=A("tensors",e,t,a);return p=p.slice(0,r),[n.concat(p,s)]}case"Gather":{const r=A("x",e,t,a),s=A("indices",e,t,a);return[n.gather(r,n.cast(s,"int32"),0)]}case"GatherV2":{const r=A("axis",e,t,a),s=A("batchDims",e,t,a),p=A("x",e,t,a),i=A("indices",e,t,a);return[n.gather(p,n.cast(i,"int32"),r,s)]}case"Reverse":{const r=A("dims",e,t,a),s=[];for(let e=0;e{const r=A("axis",e,t,a),s=A("tensors",e,t,a),p=s[0].shape,i=n.squeeze(s[0]).shape,o=s.map((e=>{const t=S.util.arraysEqual(e.shape,p);if(!t&&!S.util.arraysEqual(n.squeeze(e).shape,i))throw new Error("the input tensors shape does not match");return t?e:n.reshape(e,p)}));return[n.stack(o,r)]}));case"Unpack":{const r=A("axis",e,t,a),s=A("tensor",e,t,a);return n.unstack(s,r)}case"Tile":{const r=A("reps",e,t,a);return[n.tile(A("x",e,t,a),r)]}case"Split":case"SplitV":{const r=A("axis",e,t,a),s=A("numOrSizeSplits",e,t,a),p=A("x",e,t,a);return n.split(p,s,r)}case"ScatterNd":{const r=A("indices",e,t,a),s=A("values",e,t,a),p=A("shape",e,t,a);return[n.scatterND(r,s,p)]}case"GatherNd":{const r=A("x",e,t,a),s=A("indices",e,t,a);return[n.gatherND(r,s)]}case"SparseToDense":{const r=A("sparseIndices",e,t,a),s=A("outputShape",e,t,a),p=A("sparseValues",e,t,a),i=A("defaultValue",e,t,a);return[n.sparseToDense(r,p,s,p.dtype===i.dtype?i:n.cast(i,p.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"sparse":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"SparseFillEmptyRows":{const{outputIndices:r,outputValues:s,emptyRowIndicator:p,reverseIndexMap:i}=n.sparse.sparseFillEmptyRows(A("indices",e,t,a),A("values",e,t,a),A("denseShape",e,t,a),A("defaultValue",e,t,a));return[r,s,p,i]}case"SparseReshape":{const{outputIndices:r,outputShape:s}=n.sparse.sparseReshape(A("inputIndices",e,t,a),A("inputShape",e,t,a),A("newShape",e,t,a));return[r,s]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean(A("data",e,t,a),A("indices",e,t,a),A("segmentIds",e,t,a))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum(A("data",e,t,a),A("indices",e,t,a),A("segmentIds",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"spectral":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"FFT":return[n.fft(A("x",e,t,a))];case"IFFT":return[n.ifft(A("x",e,t,a))];case"RFFT":return[n.rfft(A("x",e,t,a))];case"IRFFT":return[n.irfft(A("x",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"string":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"StringNGrams":{const{nGrams:r,nGramsSplits:s}=n.string.stringNGrams(A("data",e,t,a),A("dataSplits",e,t,a),A("separator",e,t,a),A("nGramWidths",e,t,a),A("leftPad",e,t,a),A("rightPad",e,t,a),A("padWidth",e,t,a),A("preserveShortSequences",e,t,a));return[r,s]}case"StringSplit":{const{indices:r,values:s,shape:p}=n.string.stringSplit(A("input",e,t,a),A("delimiter",e,t,a),A("skipEmpty",e,t,a));return[r,s,p]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast(A("input",e,t,a),A("numBuckets",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"transformation":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"Cast":return[n.cast(A("x",e,t,a),A("dtype",e,t,a))];case"ExpandDims":{const r=A("axis",e,t,a);return[n.expandDims(A("x",e,t,a),r)]}case"Squeeze":{const r=A("axis",e,t,a);return[n.squeeze(A("x",e,t,a),r)]}case"Reshape":return[n.reshape(A("x",e,t,a),A("shape",e,t,a))];case"MirrorPad":return[n.mirrorPad(A("x",e,t,a),A("padding",e,t,a),A("mode",e,t,a))];case"PadV2":case"Pad":return[n.pad(A("x",e,t,a),A("padding",e,t,a),A("constantValue",e,t,a))];case"SpaceToBatchND":{const r=A("blockShape",e,t,a),s=A("paddings",e,t,a);return[n.spaceToBatchND(A("x",e,t,a),r,s)]}case"BatchToSpaceND":{const r=A("blockShape",e,t,a),s=A("crops",e,t,a);return[n.batchToSpaceND(A("x",e,t,a),r,s)]}case"DepthToSpace":{const r=A("blockSize",e,t,a),s=A("dataFormat",e,t,a).toUpperCase();return[n.depthToSpace(A("x",e,t,a),r,s)]}case"BroadcastTo":return[n.broadcastTo(A("x",e,t,a),A("shape",e,t,a))];case"BroadcastArgs":return[n.broadcastArgs(A("s0",e,t,a),A("s1",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"hash_table":return(async(e,t,a,n)=>{switch(e.op){case"HashTable":case"HashTableV2":{const r=A("keyDType",e,t,a),s=A("valueDType",e,t,a),p=new De(r,s);return n.addHashTable(e.name,p),[p.handle]}case"LookupTableImport":case"LookupTableImportV2":{const r=A("tableHandle",e,t,a,n),s=A("keys",e,t,a),p=A("values",e,t,a),i=n.getHashTableById(r.id);return[await i.import(s,p)]}case"LookupTableFind":case"LookupTableFindV2":{const r=A("tableHandle",e,t,a,n),s=A("keys",e,t,a),p=A("defaultValue",e,t,a),i=n.getHashTableById(r.id);return[await i.find(s,p)]}case"LookupTableSize":case"LookupTableSizeV2":{const r=A("tableHandle",e,t,a,n);return[n.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a,n);case"custom":const s=E(e.op);if(s&&s.customExecutor)return s.customExecutor(new ye(e,t,a));throw TypeError(`Custom op ${e.op} is not registered.`);default:throw TypeError(`Unknown op '${e.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,a);return S.util.isPromise(s)?s.then((e=>[].concat(e))):[].concat(s)}class Ve{constructor(e={},t={},a={},n={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=a,this.functionMap=n,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){const e=[];for(let t=0;t0===e.id&&0===e.iterationId?"":`${e.frameName}-${e.iterationId}`)).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(!(this.contexts&&this.contexts.length>1))throw new Error("Cannot exit frame, the context is empty");this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift()}nextIteration(){if(!(this.contexts&&this.contexts.length>0))throw new Error("Cannot increase frame iteration, the context is empty");{this.contexts=this.contexts.slice(),this.lastId++;const e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(const t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(const t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}}function Me(e,t,a,n){const r=new Set,s=[];let p=null,i=null;const o=new Set,d=Object.keys(e).map((e=>B(e)[0]));let l=[];null!=n&&(l=n.map((e=>B(e.name)[0])));const m=[...t];for(;m.length>0;){const e=m.pop();($e(e)||Ce(e)||Re(e))&&null==p&&(p=e,i=p.children.map((e=>e.name)).filter((e=>r.has(e)))),r.add(e.name),null==a[e.name]&&(-1===d.indexOf(e.name)&&-1===l.indexOf(e.name)&&(0!==e.inputs.length?e.inputs.forEach((e=>{o.has(e.name)||(o.add(e.name),m.push(e))})):s.push(e.name)))}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:p,syncInputs:i}}const Fe=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],Be=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],Oe=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function $e(e){return Fe.indexOf(e.op)>=0}function Ce(e){return Be.indexOf(e.op)>=0}function Re(e){return Oe.indexOf(e.op)>=0}class Pe{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,null!=e.functions&&Object.keys(e.functions).forEach((t=>{this._functionExecutorMap[t]=new Pe(e.functions[t],this)}))}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){const t=Object.keys(e).map((t=>e[t].map((e=>e.id))));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get outputs(){return this._outputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get inputNodes(){return this._inputs.map((e=>e.signatureKey||e.name))}get outputNodes(){return this._outputs.map((e=>{const t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t}))}get functions(){return Object.keys(this._functions).reduce(((e,t)=>(e[t]=this._functions[t].signature,e)),{})}getCompilationKey(e,t){const a=e.map((e=>e.name)).sort(),n=t.map((e=>e.name)).sort();return a.join(this.SEPERATOR)+"--"+n.join(this.SEPERATOR)}compile(e,t){const a=Me(e,t,this.weightMap,this._initNodes),{missingInputs:n,dynamicNode:r,syncInputs:s}=a;if(null!=r)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(n.length>0){const a=t.map((e=>e.name)),r=Object.keys(e);throw new Error(`Cannot compute the outputs [${a}] from the provided inputs [${r}]. Missing the following inputs: [${n}]`)}return function(e,t,a){const{usedNodes:n,inputs:r}=a,s=[],p=Object.keys(r).map((e=>B(e)[0])).map((t=>e.nodes[t])),i=e.initNodes;p.forEach((e=>{n.has(e.name)&&s.push(e)})),e.weights.forEach((e=>{n.has(e.name)&&s.push(e)})),null!=i&&i.forEach((e=>{n.has(e.name)&&s.push(e)}));const o=new Set,d=[];for(;s.length>0;){const e=s.pop();o.add(e.name),t[e.name]||d.push(e),e.children.forEach((e=>{!o.has(e.name)&&n.has(e.name)&&e.inputs.every((e=>o.has(e.name)))&&s.push(e)}))}return d}(this.graph,this.weightMap,a)}execute(e,t){e=this.mapInputs(e);const a=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);const n=a.map((e=>this.graph.nodes[B(e)[0]])),r=t.map((e=>B(e)[0]));let s=r.map((e=>this.graph.nodes[e]));this.resetIntermediateTensors(),0===s.length&&(s=this._outputs);const p=this.getCompilationKey(n,s);let i=this.compiledMap.get(p);null==i&&(i=this.compile(e,s),this.compiledMap.set(p,i));const o={},d={};return(0,S.tidy)((()=>{const a=new Ve(this.weightMap,o,d,this.functionExecutorMap),n=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[a,r]=B(t),s=[];s[r]=e[t],n[a]=s}));const s=this.getFrozenTensorIds(n),p={};for(let e=0;eV(e,n,a)))}))}getFrozenTensorIds(e){const t=[].concat.apply([],Object.keys(e).map((t=>e[t])).map((e=>e.map((e=>e.id)))));return new Set(t)}checkTensorForDisposal(e,t,a,n,r,s,p){"control"!==t.category&&-1===s.indexOf(e)&&(a[e].forEach((e=>{null!=e&&(p[e.id]=(p[e.id]||0)+t.children.length)})),t.inputs.forEach((e=>{if("control"!==e.category){const s=function(e,t,a){return t[F(e,a.currentContextId)]}(e.name,a,n);null!=s&&s.forEach((e=>{if(e&&!e.kept&&!r.has(e.id)){const a=p[e.id];if(1===a){if(this.keepTensorForDebug){const[a,r]=M(t.name,n);this.intermediateTensors[a]||(this.intermediateTensors[a]=[]),this.intermediateTensors[a][r]=e}else e.dispose();delete p[e.id]}else null!=a&&p[e.id]--}}))}})))}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){this.intermediateTensors&&(Object.keys(this.intermediateTensors).forEach((e=>this.intermediateTensors[e].forEach((e=>e.dispose())))),this.disposeTensorsMap())}disposeTensorsMap(){this.tensorsMap&&Object.keys(this.tensorsMap).forEach((e=>{this.tensorsMap[e].forEach((e=>{!e||e.kept||e.isDisposed||this.keepIds.has(e.id)||e.dispose()}))}))}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(const e in this.intermediateTensors)this.intermediateTensors[e].forEach((e=>e.dispose())),delete this.intermediateTensors[e]}async _executeAsync(e,t,a=!1,n={},r={}){a||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepTensorForDebug=(0,S.env)().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(e){console.warn(e.message)}this.resetIntermediateTensors();const s=new Ve(this.weightMap,n,r,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(e,s,t,a);const p=t.map((e=>V(e,this.tensorsMap,s))),i=p.map((e=>e.id)),o=Object.keys(e).map((t=>e[t].id));return this.keepIds=new Set([...i,...o,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),null==this.parent&&s.dispose(this.keepIds),p}async executeFunctionAsync(e,t,a){const n=e.reduce(((e,t,a)=>(e[this.inputs[a].name]=t,e)),{});return this._executeAsync(n,this.outputNodes,!0,t,a)}async executeWithControlFlow(e,t,a,n){const r=Object.keys(e),s=r.map((e=>this.graph.nodes[B(e)[0]])),p=a.map((e=>B(e)[0]));let i=p.map((e=>this.graph.nodes[e]));0===i.length&&(i=this._outputs);const{usedNodes:o,missingInputs:d,dynamicNode:l,syncInputs:m}=Me(e,i,this.weightMap,this._initNodes),u=[...s,...this.graph.weights,...this._initNodes||[]].map((e=>({node:e,contexts:t.currentContext}))),c=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[a,n]=B(t),r=[];r[n]=e[t],c[a]=r}));const h={},f=this.getFrozenTensorIds(c),g={};for(;u.length>0;){const e=this.processStack(s,u,t,c,g,f,p,h,o);await Promise.all(e)}null!=l||n||console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");const y=i.filter((e=>!$e(e)&&!V(e.name,c,t))).map((e=>e.name));if(y.length>0){let e="";throw null!=l&&(e=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${d}]. ${e}`)}return c}processStack(e,t,a,n,r,s,p,i,o){const d=[];for(;t.length>0;){const e=t.pop();a.currentContext=e.contexts;let l="";if("Enter"===e.node.op&&A("isConstant",e.node,n,a)&&([l]=M(e.node.name,a)),null==n[e.node.name]){const m=Ae(e.node,n,a,this._resourceManager);l||([l]=M(e.node.name,a));const u=a.currentContext;S.util.isPromise(m)?d.push(m.then((d=>(n[l]=d,a.currentContext=u,this.checkTensorForDisposal(l,e.node,n,a,s,p,i),this.processChildNodes(e.node,t,a,n,r,o),d)))):(n[l]=m,this.checkTensorForDisposal(l,e.node,n,a,s,p,i),this.processChildNodes(e.node,t,a,n,r,o))}else this.processChildNodes(e.node,t,a,n,r,o)}return d}processChildNodes(e,t,a,n,r,s){e.children.forEach((e=>{const[p]=M(e.name,a);!r[p]&&s.has(e.name)&&("Merge"===e.op?e.inputNames.some((e=>!!V(e,n,a)))&&(r[p]=!0,t.push({contexts:a.currentContext,node:e})):e.inputNames.every((e=>!!V(e,n,a)))&&(r[p]=!0,t.push({contexts:a.currentContext,node:e})))}))}dispose(){Object.keys(this.weightMap).forEach((e=>this.weightMap[e].forEach((e=>e.dispose()))))}checkInputShapeAndType(e){Object.keys(e).forEach((t=>{const a=e[t],[n]=B(t),r=this.graph.nodes[n];if(r.attrParams.shape&&r.attrParams.shape.value){const e=r.attrParams.shape.value,t=e.length===a.shape.length&&a.shape.every(((t,a)=>-1===e[a]||e[a]===t));S.util.assert(t,(()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${e}], but was [${a.shape}]`))}r.attrParams.dtype&&r.attrParams.dtype.value&&S.util.assert(a.dtype===r.attrParams.dtype.value,(()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${a.dtype}`))}))}mapInputs(e){const t={};for(const a in e)if(null!=this._signature&&null!=this._signature.inputs&&null!=this._signature.inputs[a]){t[this._signature.inputs[a].name]=e[a]}else t[a]=e[a];return t}checkInputs(e){const t=Object.keys(e).filter((e=>{const[t]=B(e);return null==this.graph.nodes[t]}));if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map((e=>{if(null!=this._signature&&null!=this._signature.outputs&&null!=this._signature.outputs[e]){return this._signature.outputs[e].name}return e}),{})}checkOutputs(e){e.forEach((e=>{const[t]=B(e);if(!this.graph.nodes[t])throw new Error(`The output '${e}' is not found in the graph`)}))}}class ze{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(const e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(const e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}}class Le{constructor(e,t={},a=S.io){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=a,null==t&&(this.loadOptions={}),this.resourceManager=new ze}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){const e=this.modelUrl;if(null!=e.load)this.handler=e;else if(null!=this.loadOptions.requestInit)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{const t=this.io.getLoadHandlers(e,this.loadOptions);if(0===t.length)t.push(this.io.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}load(){if(this.findIOHandler(),null==this.handler.load)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const e=this.handler.load();return S.util.isPromise(e)?e.then((e=>this.loadSync(e))):this.loadSync(e)}loadSync(e){this.artifacts=e;const t=this.artifacts.modelTopology;let a=this.artifacts.signature;if(null!=this.artifacts.userDefinedMetadata){const e=this.artifacts.userDefinedMetadata;null!=e.signature&&(a=e.signature),null!=e.structuredOutputKeys&&(this.structuredOutputKeys=e.structuredOutputKeys)}this.signature=a,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;const n=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Pe(ae.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(n),this.executor.resourceManager=this.resourceManager,null!=e.modelInitializer&&null!=e.modelInitializer.node){const t=ae.Instance.transformGraph(e.modelInitializer);this.initializer=new Pe(t),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if("string"==typeof e){const t=this.io.getSaveHandlers(e);if(0===t.length)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Error(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){const a=this.execute(e,this.outputNodes);if(this.structuredOutputKeys){const e=a instanceof S.Tensor?[a]:a,t={};return e.forEach(((e,a)=>t[this.structuredOutputKeys[a]]=e)),t}return a}normalizeInputs(e){if(!(e instanceof S.Tensor||Array.isArray(e)))return e;if((e=Array.isArray(e)?e:[e]).length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce(((t,a,n)=>(t[a]=e[n],t)),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const a=this.executor.execute(e,t);return a.length>1?a:a[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const a=await this.executor.executeAsync(e,t);return a.length>1?a:a[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce(((t,a)=>(t[a]=[e[a]],t)),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}}async function We(e,t={},a=S.io){if(null==e)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");null==t&&(t={}),t.fromTFHub&&"string"==typeof e&&(e=function(e){e.endsWith("/")||(e+="/");return`${e}model.json?tfjs-format=file`}(e));const n=new Le(e,t,a);return await n.load(),n}function Ue(e){if(null==e)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){const[a,n]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!(n&&n instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");const r=S.io.getWeightSpecs(a.weightsManifest),s=S.io.getModelArtifactsForJSONSync(a,r,n);t=S.io.fromMemorySync(s)}else if("load"in e)t=e;else{if(!("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e))throw new Error("Unknown model format");t=S.io.fromMemorySync(e)}const a=new Le(t);return a.load(),a}const He="3.21.0"},8713:(e,t,a)=>{"use strict";a.d(t,{JL:()=>n,Zu:()=>r});class n{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}}class r{refCount(e){return s("refCount")}incRef(e){return s("incRef")}timerAvailable(){return!0}time(e){return s("time")}read(e){return s("read")}readSync(e){return s("readSync")}readToGPU(e,t){return s("readToGPU")}numDataIds(){return s("numDataIds")}disposeData(e,t){return s("disposeData")}write(e,t,a){return s("write")}move(e,t,a,n,r){return s("move")}memory(){return s("memory")}floatPrecision(){return s("floatPrecision")}epsilon(){return 32===this.floatPrecision()?1e-7:1e-4}dispose(){return s("dispose")}}function s(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`)}},3337:(e,t,a)=>{"use strict";function n(e,t,a){const n=function(e,t,a){return function(e,t,a){let n=0,r=e.length,s=0,p=!1;for(;n>>1);const i=a(t,e[s]);i>0?n=s+1:(r=s,p=!i)}return p?n:-n-1}(e,t,a||r)}(e,t,a),s=n<0?-(n+1):n;e.splice(s,0,t)}function r(e,t){return e>t?1:es&&c.push({score:t[e],boxIndex:e,suppressBeginIndex:0});c.sort(m);const h=p>0?-.5/p:0,f=[],g=[];for(;f.length0;){const t=c.pop(),{score:a,boxIndex:p,suppressBeginIndex:i}=t;if(a=i;--a){const n=d(e,p,f[a]);if(n>=r){o=!0;break}if(t.score=t.score*l(r,h,n),t.score<=s)break}t.suppressBeginIndex=f.length,o||(t.score===a?(f.push(p),g.push(t.score)):t.score>s&&n(c,t,m))}const y=f.length,v=a-y;o&&v>0&&(f.push(...new Array(v).fill(0)),g.push(...new Array(v).fill(0)));const b={selectedIndices:f};return i&&(b.selectedScores=g),u&&(b.validOutputs=y),b}function d(e,t,a){const n=e.subarray(4*t,4*t+4),r=e.subarray(4*a,4*a+4),s=Math.min(n[0],n[2]),p=Math.min(n[1],n[3]),i=Math.max(n[0],n[2]),o=Math.max(n[1],n[3]),d=Math.min(r[0],r[2]),l=Math.min(r[1],r[3]),m=Math.max(r[0],r[2]),u=Math.max(r[1],r[3]),c=(i-s)*(o-p),h=(m-d)*(u-l);if(c<=0||h<=0)return 0;const f=Math.max(s,d),g=Math.max(p,l),y=Math.min(i,m),v=Math.min(o,u),b=Math.max(y-f,0)*Math.max(v-g,0);return b/(c+h-b)}function l(e,t,a){const n=Math.exp(t*a*a);return a<=e?n:0}function m(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}a.d(t,{GP:()=>s,qP:()=>p,pA:()=>i})},8333:(e,t,a)=>{"use strict";a.d(t,{Z:()=>r});var n=a(2657);function r(e,t){const a=[];for(let e=0;e{"use strict";a.d(t,{BV:()=>w,wv:()=>b});var n=a(8713),r=a(2885),s=a(5938),p=a(9121),i=a(6151),o=a(4706),d=a(9122),l=a(569);class m{constructor(e,t){this.backendTimer=e,this.logger=t,null==t&&(this.logger=new c)}profileKernel(e,t,a){let n;const s=()=>{n=a()};let p;const i=d.now();if(this.backendTimer.timerAvailable())p=this.backendTimer.time(s);else{s();for(const e of n)e.dataSync();p=Promise.resolve({kernelMs:d.now()-i})}if((0,r.OB)().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t{u(t,a.dtype,e)}))}return{kernelName:e,outputs:n,inputs:t,timeMs:p.then((e=>e.kernelMs)),extraInfo:p.then((e=>null!=e.getExtraProfileInfo?e.getExtraProfileInfo():""))}}logKernelProfile(e){const{kernelName:t,outputs:a,timeMs:n,inputs:r,extraInfo:s}=e;a.forEach((e=>{Promise.all([e.data(),n,s]).then((a=>{this.logger.logKernelProfile(t,e,a[0],a[1],r,a[2])}))}))}}function u(e,t,a){if("float32"!==t)return!1;for(let t=0;t0?n:""} `}}console.log(`%c${i}\t%c${p}\t%c${o}D ${m}\t%c${d}\t%c${u}\t%c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}var h=a(4077),f=a(747);function g(e){return null!=e.kernelName}class y{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map((e=>e.name))))}}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class v{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new y}async ready(){if(null!=this.pendingBackendInit)return this.pendingBackendInit.then((()=>{}));if(null!=this.backendInstance)return;const e=this.getSortedBackends();for(let t=0;t{null!=e.setupFunc&&e.setupFunc(this.backendInstance)}))}disposeRegisteredKernels(e){(0,i.tr)(e).forEach((t=>{null!=t.disposeFunc&&t.disposeFunc(this.registry[e])}))}initializeBackend(e){const t=this.registryFactory[e];if(null==t)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const a=t.factory();if(!a||a instanceof n.Zu||"function"!=typeof a.then)return this.registry[e]=a,{success:!0,asyncInit:!1};{const t=++this.pendingBackendInitId,n=a.then((a=>!(t(tthis.registryFactory[t].priority-this.registryFactory[e].priority))}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(n)),(()=>this.endScope(a)),(()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a)))}scopedRun(e,t,a){e();try{const e=a();return t(),e}catch(e){throw t(),e}}nextTensorId(){return v.nextTensorId++}nextVariableId(){return v.nextVariableId++}clone(e){const t=w.runKernel(p.iJz,{x:e}),a={x:e};return this.addTapeNode(this.state.activeScope.name,a,[t],(e=>({x:()=>{const t={x:e},a={dtype:"float32"};return w.runKernel(p.RFZ,t,a)}})),[],{}),t}runKernel(e,t,a){null==this.backendName&&this.backend;if(!(null!=(0,i.pI)(e,this.backendName)))throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:a})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,a){const n=this.backend.numDataIds();let r=0;a.forEach((e=>{r+="complex64"===e.dtype?3:1}));const s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],p=n-t-r-s;if(p>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${p} data ids) after running '${e}'`)}runKernelFunc(e){let t,a=[];const n=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;let p,o;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0),null==this.backendName&&this.backend;const d=g(e)?e.kernelName:null!=this.state.activeScope?this.state.activeScope.name:"";if(g(e)){const{kernelName:t,inputs:r,attrs:s}=e;null==this.backendName&&this.backend;const d=(0,i.pI)(t,this.backendName);l.hu(null!=d,(()=>`Cannot find registered kernel '${t}' for backend '${this.backendName}'`)),p=()=>{const e=this.backend.numDataIds();o=d.kernelFunc({inputs:r,attrs:s,backend:this.backend});const p=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(t,e,p);const i=p.map((e=>null!=e.rank?e:this.makeTensorFromTensorInfo(e)));if(n){const e=this.getTensorsForGradient(t,r,i);a=this.saveTensorsForBackwardMode(e)}return i}}else{const{forwardFunc:t}=e,r=e=>{n&&(a=e.map((e=>this.keep(this.clone(e)))))};p=()=>{const e=this.backend.numDataIds();o=this.tidy((()=>t(this.backend,r)));const a=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,e,a),a}}const{inputs:m,attrs:u}=e,c=g(e)?null:e.backwardsFunc;let h;return this.scopedRun((()=>this.state.kernelDepth++),(()=>this.state.kernelDepth--),(()=>{this.ENV.getBool("DEBUG")||this.state.profiling?(h=this.profiler.profileKernel(d,m,(()=>p())),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(h),t=h.outputs):t=p()})),n&&this.addTapeNode(d,m,t,c,a,u),this.state.profiling&&this.state.activeProfile.kernels.push({name:d,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(m).map((e=>null!=m[e]?m[e].shape:null)),outputShapes:t.map((e=>e.shape)),kernelTimeMs:h.timeMs,extraInfo:h.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){const t=e.map((e=>this.keep(this.clone(e))));return t}getTensorsForGradient(e,t,a){const n=(0,i.uk)(e);if(null!=n){const e=n.inputsToSave||[],r=n.outputsToSave||[];let s;n.saveAllInputs?(l.hu(Array.isArray(t),(()=>"saveAllInputs is true, expected inputs to be an array.")),s=Object.keys(t).map((e=>t[e]))):s=e.map((e=>t[e]));const p=a.filter(((e,t)=>r[t]));return s.concat(p)}return[]}makeTensor(e,t,a,n){if(null==e)throw new Error("Values passed to engine.makeTensor() are null");a=a||"float32",n=n||this.backend;let r=e;"string"===a&&l.HD(e[0])&&(r=e.map((e=>d.encodeString(e))));const s=n.write(r,t,a),p=new h.es(t,a,s,this.nextTensorId());if(this.trackTensor(p,n),"string"===a){const e=this.state.tensorInfo.get(s),t=(0,l.Ub)(r);this.state.numBytes+=t-e.bytes,e.bytes=t}return p}makeTensorFromDataId(e,t,a,n){const r={dataId:e,shape:t,dtype:a=a||"float32"};return this.makeTensorFromTensorInfo(r,n)}makeTensorFromTensorInfo(e,t){const{dataId:a,shape:n,dtype:r}=e,s=new h.es(n,r,a,this.nextTensorId());return this.trackTensor(s,t),s}makeVariable(e,t=!0,a,n){a=a||this.nextVariableId().toString(),null!=n&&n!==e.dtype&&(e=e.cast(n));const r=new h._w(e,t,a,this.nextTensorId());if(null!=this.state.registeredVariables[r.name])throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++;let a=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(a=e.size*l.bT(e.dtype)),this.state.numBytes+=a,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:a})),e instanceof h._w||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;const t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,"string"===e.dtype&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),"complex64"!==e.dtype&&"string"!==e.dtype){const t=e.size*l.bT(e.dtype);this.state.numBytes-=t}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),null!=this.state.registeredVariables[e.name]&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,null==e.reasons&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,a=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map((e=>e.totalBytesSnapshot))),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-a;for(const e of this.state.activeProfile.kernels)e.kernelTimeMs=await e.kernelTimeMs,e.extraInfo=await e.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&0===this.state.kernelDepth}addTapeNode(e,t,a,n,r,s){const p={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:a,saved:r},o=(0,i.uk)(e);null!=o&&(n=o.gradFunc),null!=n&&(p.gradient=e=>(e=e.map(((e,t)=>{if(null==e){const e=a[t],n=l.wT(e.size,e.dtype);return this.makeTensor(n,e.shape,e.dtype)}return e})),n(e.length>1?e:e[0],r,s))),this.state.activeTape.push(p)}keep(e){return e.kept=!0,e}startTape(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=(0,f.getTensorsInContainer)(e),a=new Set(t.map((e=>e.id)));for(let e=0;e{e.kept||e.scopeId!==n.id||this.track(e)}))}gradients(e,t,a,n=!1){if(l.hu(t.length>0,(()=>"gradients() received an empty list of xs.")),null!=a&&"float32"!==a.dtype)throw new Error(`dy must have 'float32' dtype, but has '${a.dtype}'`);const r=this.scopedRun((()=>this.startTape()),(()=>this.endTape()),(()=>this.tidy("forward",e)));l.hu(r instanceof h.es,(()=>"The result y returned by f() must be a tensor."));const s=function(e,t,a){const n={},r={};for(let e=0;en[e.id]=!0)),i=!0,r[s.id]=!0;break}if(i)break}}const s={};s[a.id]=!0;const p={};for(let t=e.length-1;t>=0;t--){const a=e[t],n=a.inputs;for(let e=0;e0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",(()=>{const e={};e[r.id]=null==a?function(e){const t=(0,l.p8)((0,l.NA)(e),"float32");return w.makeTensor(t,e,"float32")}(r.shape):a,function(e,t,a,n){for(let r=t.length-1;r>=0;r--){const s=t[r],p=[];if(s.outputs.forEach((t=>{const a=e[t.id];null!=a?p.push(a):p.push(null)})),null==s.gradient)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);const i=s.gradient(p);for(const t in s.inputs){if(!(t in i))throw new Error(`Cannot backprop through input ${t}. Available gradients found: ${Object.keys(i)}.`);const r=a((()=>i[t]()));if("float32"!==r.dtype)throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${t} must have 'float32' dtype, but has '${r.dtype}'`);const p=s.inputs[t];if(!l.cO(r.shape,p.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${t}' has shape '${r.shape}', which does not match the shape of the input '${p.shape}'`);if(null==e[p.id])e[p.id]=r;else{const t=e[p.id];e[p.id]=n(t,r),t.dispose()}}}}(e,s,(e=>this.tidy(e)),N);const n=t.map((t=>e[t.id]));return 0===this.state.gradientDepth&&(this.state.activeTape.forEach((e=>{for(const t of e.saved)t.dispose()})),this.state.activeTape=null),{value:r,grads:n}}))}customGrad(e){return l.hu(l.mf(e),(()=>"The f passed in customGrad(f) must be a function.")),(...t)=>{let a;l.hu(t.every((e=>e instanceof h.es)),(()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors"));const n={};t.forEach(((e,t)=>{n[t]=e}));return this.runKernelFunc({forwardFunc:(n,r)=>(a=e(...t,r),l.hu(a.value instanceof h.es,(()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor")),l.hu(l.mf(a.gradFunc),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.")),a.value),backwardsFunc:(e,n)=>{const r=a.gradFunc(e,n),s=Array.isArray(r)?r:[r];l.hu(s.length===t.length,(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...).")),l.hu(s.every((e=>e instanceof h.es)),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors."));const p={};return s.forEach(((e,t)=>{p[t]=()=>e})),p},inputs:n})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){const t=(0,d.now)(),a=await this.backend.time(e);return a.wallMs=(0,d.now)()-t,a}track(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new y;for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}function b(){const e=(0,s.D)();if(null==e._tfengine){const t=new r.qA(e);e._tfengine=new v(t)}return(0,r.iG)(e._tfengine.ENV),(0,h.Vi)((()=>e._tfengine)),e._tfengine}v.nextTensorId=0,v.nextVariableId=0;const w=b();function N(e,t){const a={a:e,b:t};return w.runKernel(p.mm_,a)}},2885:(e,t,a)=>{"use strict";a.d(t,{qA:()=>s,OB:()=>i,Vi:()=>o,iG:()=>d});var n=a(569);const r="tfjsflags";class s{constructor(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.getQueryParams=p,this.populateURLFlags()}setPlatform(e,t){null!=this.platform&&(i().getBool("IS_TEST")||i().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,a){if(this.flagRegistry[e]={evaluationFn:t,setHook:a},null!=this.urlFlags[e]){const t=this.urlFlags[e];i().getBool("IS_TEST")||i().getBool("PROD")||console.warn(`Setting feature override from URL ${e}: ${t}.`),this.set(e,t)}}async getAsync(e){return e in this.flags||(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((0,n.tI)(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)}getFlags(){return this.flags}get features(){return this.flags}set(e,t){if(null==this.flagRegistry[e])throw new Error(`Cannot set flag ${e} as it has not been registered.`);this.flags[e]=t,null!=this.flagRegistry[e].setHook&&this.flagRegistry[e].setHook(t)}evaluateFlag(e){if(null==this.flagRegistry[e])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(void 0===this.global||void 0===this.global.location||void 0===this.global.location.search)return;const e=this.getQueryParams(this.global.location.search);if(r in e){e.tfjsflags.split(",").forEach((e=>{const[t,a]=e.split(":");this.urlFlags[t]=function(e,t){if("true"===(t=t.toLowerCase())||"false"===t)return"true"===t;if(""+ +t===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}(t,a)}))}}}function p(e){const t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,((e,...a)=>(function(e,t,a){e[decodeURIComponent(t)]=decodeURIComponent(a||"")}(t,a[0],a[1]),a.join("=")))),t}function i(){return o}let o=null;function d(e){o=e}},5938:(e,t,a)=>{"use strict";let n;function r(){if(null==n){let e;if("undefined"!=typeof window)e=window;else if("undefined"!=typeof global)e=global;else if("undefined"!=typeof process)e=process;else{if("undefined"==typeof self)throw new Error("Could not find a global object");e=self}n=e}return n}function s(e,t){const a=function(){const e=r();return null==e._tfGlobals&&(e._tfGlobals=new Map),e._tfGlobals}();if(a.has(e))return a.get(e);{const n=t();return a.set(e,n),a.get(e)}}a.d(t,{D:()=>r,R:()=>s})},4368:(e,t,a)=>{"use strict";a.d(t,{G4:()=>i,R:()=>o,cF:()=>d,MX:()=>l,N8:()=>m,SR:()=>u,sq:()=>c,N5:()=>h,lu:()=>f,B9:()=>g,Cn:()=>y,XV:()=>v,CQ:()=>b,Cd:()=>w,N_:()=>N,cj:()=>k,x3:()=>S,ze:()=>_,jq:()=>T,y3:()=>x,VY:()=>I});var n=a(7097),r=a(2885),s=a(4077),p=a(747);function i(){(0,r.OB)().set("PROD",!0)}function o(){(0,r.OB)().set("DEBUG",!0)}function d(){(0,r.OB)().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function l(e){(0,r.OB)().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}function m(){n.BV.disposeVariables()}function u(){return n.BV}function c(){return n.BV.memory()}function h(e){return n.BV.profile(e)}function f(e,t){return n.BV.tidy(e,t)}function g(e){(0,p.getTensorsInContainer)(e).forEach((e=>e.dispose()))}function y(e){return n.BV.keep(e)}function v(e){return n.BV.time(e)}function b(e){return n.BV.setBackend(e)}function w(){return n.BV.ready()}function N(){return n.BV.backendName}function k(e){n.BV.removeBackend(e)}function S(e){return n.BV.findBackend(e)}function _(e){return n.BV.findBackendFactory(e)}function T(e,t,a=1){return n.BV.registerBackend(e,t,a)}function x(){return n.BV.backend}function I(e,t){(0,r.OB)().setPlatform(e,t)}(0,s.FZ)(l)},633:(e,t,a)=>{"use strict";a.d(t,{cb:()=>u,pn:()=>m,h7:()=>d,fN:()=>l,UQ:()=>i,ti:()=>o});var n=a(7097),r=a(4077),s=a(3740),p=a(569);function i(e){return p.hu(p.mf(e),(()=>"The f passed in grad(f) must be a function")),(t,a)=>{const r=(0,s._1)(t,"x","tf.grad","string_or_numeric"),i=null!=a?(0,s._1)(a,"dy","tf.grad"):null;return n.BV.tidy((()=>{const{value:t,grads:a}=n.BV.gradients((()=>e(r)),[r],i);return null!=i&&p.k5(t.shape,i.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),c(a),a[0]}))}}function o(e){return p.hu(p.mf(e),(()=>"The f passed in grads(f) must be a function")),(t,a)=>{p.hu(Array.isArray(t),(()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s"));const r=(0,s.sI)(t,"args","tf.grads","string_or_numeric"),i=null!=a?(0,s._1)(a,"dy","tf.grads"):null;return n.BV.tidy((()=>{const{value:t,grads:a}=n.BV.gradients((()=>e(...r)),r,i);return null!=i&&p.k5(t.shape,i.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),c(a),a}))}}function d(e){return p.hu(p.mf(e),(()=>"The f passed in valueAndGrad(f) must be a function")),(t,a)=>{p.hu(t instanceof r.es,(()=>"The x passed in valueAndGrad(f)(x) must be a tensor")),p.hu(null==a||a instanceof r.es,(()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor"));const{grads:s,value:i}=n.BV.gradients((()=>e(t)),[t],a);return c(s),{grad:s[0],value:i}}}function l(e){return p.hu(p.mf(e),(()=>"The f passed in valueAndGrads(f) must be a function")),(t,a)=>{p.hu(Array.isArray(t)&&t.every((e=>e instanceof r.es)),(()=>"The args passed in valueAndGrads(f)(args) must be array of tensors")),p.hu(null==a||a instanceof r.es,(()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor"));const s=n.BV.gradients((()=>e(...t)),t,a);return null!=a&&p.k5(s.value.shape,a.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),c(s.grads),s}}function m(e,t){p.hu(p.mf(e),(()=>"The f passed in variableGrads(f) must be a function")),p.hu(null==t||Array.isArray(t)&&t.every((e=>e instanceof r._w)),(()=>"The varList passed in variableGrads(f, varList) must be an array of variables"));const a=null!=t;if(!a){t=[];for(const e in n.BV.registeredVariables)t.push(n.BV.registeredVariables[e])}const s=a?t.filter((e=>!e.trainable)):null,i=t.length;t=t.filter((e=>e.trainable)),p.hu(t.length>0,(()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${i} variables is trainable.`));const{value:o,grads:d}=n.BV.gradients(e,t,null,!0);p.hu(d.some((e=>null!=e)),(()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize().")),p.hu(0===o.rank,(()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${o.rank} tensor`));const l={};return t.forEach(((e,t)=>{null!=d[t]&&(l[e.name]=d[t])})),null!=s&&s.forEach((e=>l[e.name]=null)),{value:o,grads:l}}function u(e){return n.BV.customGrad(e)}function c(e){if(e.filter((e=>null==e)).length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that\n the f you passed encloses all operations that lead from x to y.")}},8946:(e,t,a)=>{"use strict";a.r(t),a.d(t,{Abs:()=>tt.SYM,Acos:()=>tt.VGw,Acosh:()=>tt.SpW,AdadeltaOptimizer:()=>ra,AdagradOptimizer:()=>pa,AdamOptimizer:()=>da,AdamaxOptimizer:()=>ua,Add:()=>tt.mm_,AddN:()=>tt.Xze,All:()=>tt.oT6,Any:()=>tt.IKK,ArgMax:()=>tt.sJF,ArgMin:()=>tt.aJk,Asin:()=>tt.M2y,Asinh:()=>tt.qw7,Atan:()=>tt.jMg,Atan2:()=>tt.QCc,Atanh:()=>tt.Oyi,AvgPool:()=>tt.JhU,AvgPool3D:()=>tt._k9,AvgPool3DGrad:()=>tt.IMb,AvgPoolGrad:()=>tt.ROF,BatchMatMul:()=>tt.XLW,BatchToSpaceND:()=>tt.zws,Bincount:()=>tt.zvY,BroadcastArgs:()=>tt.eEB,BroadcastTo:()=>tt.Ly9,Cast:()=>tt.RFZ,Ceil:()=>tt.gJX,ClipByValue:()=>tt.xnO,Complex:()=>tt.Zz9,ComplexAbs:()=>tt.yj2,Concat:()=>tt.Eh3,Conv2D:()=>tt.mhS,Conv2DBackpropFilter:()=>tt.wUP,Conv2DBackpropInput:()=>tt.wm,Conv3D:()=>tt.x12,Conv3DBackpropFilterV2:()=>tt.o2y,Conv3DBackpropInputV2:()=>tt.ik2,Cos:()=>tt.mc4,Cosh:()=>tt.TR1,CropAndResize:()=>tt.VcC,Cumprod:()=>tt.Byc,Cumsum:()=>tt.iHb,DataStorage:()=>Fn.JL,DenseBincount:()=>tt.QRR,DepthToSpace:()=>tt.T0n,DepthwiseConv2dNative:()=>tt.cie,DepthwiseConv2dNativeBackpropFilter:()=>tt.sL$,DepthwiseConv2dNativeBackpropInput:()=>tt.y7R,Diag:()=>tt.$w,Dilation2D:()=>tt.p4S,Dilation2DBackpropFilter:()=>tt.Vn9,Dilation2DBackpropInput:()=>tt.ekb,ENV:()=>b.Vi,Einsum:()=>tt.$g6,Elu:()=>tt.SX0,EluGrad:()=>tt.HEU,Environment:()=>b.qA,Equal:()=>tt.hdR,Erf:()=>tt.Omj,Exp:()=>tt.NEP,ExpandDims:()=>tt.YFo,Expm1:()=>tt.Y0y,FFT:()=>tt.vwp,Fill:()=>tt.deh,FlipLeftRight:()=>tt.Uyb,Floor:()=>tt.OR,FloorDiv:()=>tt.jeX,FromPixels:()=>tt.eBW,FusedBatchNorm:()=>tt.sHE,FusedConv2D:()=>tt._V0,FusedDepthwiseConv2D:()=>tt.luS,GatherNd:()=>tt.q1x,GatherV2:()=>tt.qi_,Greater:()=>tt.iZT,GreaterEqual:()=>tt.Acj,IFFT:()=>tt.Qg5,Identity:()=>tt.iJz,Imag:()=>tt.J_u,IsFinite:()=>tt.avt,IsInf:()=>tt.iWB,IsNan:()=>tt.r7n,KernelBackend:()=>Fn.Zu,LRN:()=>tt.eZ0,LRNGrad:()=>tt.Hhh,LeakyRelu:()=>tt.J$2,Less:()=>tt.vtC,LessEqual:()=>tt.CAk,LinSpace:()=>tt.e7N,Log:()=>tt.ZbH,Log1p:()=>tt.kU,LogSoftmax:()=>tt.qCd,LogicalAnd:()=>tt.PYm,LogicalNot:()=>tt.VfG,LogicalOr:()=>tt.MZg,LogicalXor:()=>tt.w6g,LowerBound:()=>tt.qIC,Max:()=>tt.YoZ,MaxPool:()=>tt.mTV,MaxPool3D:()=>tt.OAf,MaxPool3DGrad:()=>tt.OU7,MaxPoolGrad:()=>tt.OV7,MaxPoolWithArgmax:()=>tt.vFR,Maximum:()=>tt.BMI,Mean:()=>tt.q2K,Min:()=>tt.c17,Minimum:()=>tt.q8u,MirrorPad:()=>tt.jQs,Mod:()=>tt.Vbg,MomentumOptimizer:()=>ha,Multinomial:()=>tt.NZg,Multiply:()=>tt.wYn,Neg:()=>tt.kuV,NonMaxSuppressionV3:()=>tt.uv1,NonMaxSuppressionV4:()=>tt.cye,NonMaxSuppressionV5:()=>tt.W0H,NotEqual:()=>tt.yQU,OP_SCOPE_SUFFIX:()=>va.zvA,OneHot:()=>tt.we_,OnesLike:()=>tt.qWM,Optimizer:()=>na,OptimizerConstructors:()=>ga,Pack:()=>tt.QiL,PadV2:()=>tt.lyA,Pool:()=>tt.Kgp,Pow:()=>tt.pe_,Prelu:()=>tt.o0g,Prod:()=>tt.DlI,RMSPropOptimizer:()=>fa,RaggedGather:()=>tt.dDz,RaggedTensorToTensor:()=>tt.BiW,Range:()=>tt.e6w,Rank:()=>ya.yw,Real:()=>tt.xJR,RealDiv:()=>tt.oHH,Reciprocal:()=>tt.$HU,Reduction:()=>ba.I,Relu:()=>tt.qkr,Relu6:()=>tt.SbG,Reshape:()=>tt.HZH,ResizeBilinear:()=>tt._Yw,ResizeBilinearGrad:()=>tt.zbQ,ResizeNearestNeighbor:()=>tt.dpD,ResizeNearestNeighborGrad:()=>tt.Hmb,Reverse:()=>tt.mKl,RotateWithOffset:()=>tt.b9H,Round:()=>tt.e07,Rsqrt:()=>tt.bV0,SGDOptimizer:()=>ca,ScatterNd:()=>tt.xQA,SearchSorted:()=>tt.nr8,Select:()=>tt.PhF,Selu:()=>tt.oFR,Sigmoid:()=>tt.a5O,Sign:()=>tt.i5y,Sin:()=>tt.RQH,Sinh:()=>tt.wYB,Slice:()=>tt.p2w,Softmax:()=>tt.Gcp,Softplus:()=>tt.MRv,SpaceToBatchND:()=>tt.TQc,SparseFillEmptyRows:()=>tt.O3z,SparseReshape:()=>tt.nhH,SparseSegmentMean:()=>tt.w3H,SparseSegmentSum:()=>tt.ZjV,SparseToDense:()=>tt.D2d,SplitV:()=>tt.L8s,Sqrt:()=>tt.FKq,Square:()=>tt.bK0,SquaredDifference:()=>tt._tC,Step:()=>tt.h8e,StridedSlice:()=>tt.jQk,StringNGrams:()=>tt._JP,StringSplit:()=>tt.s1s,StringToHashBucketFast:()=>tt.XkS,Sub:()=>tt.Tr8,Sum:()=>tt.GBy,Tan:()=>tt.sEM,Tanh:()=>tt.MIZ,Tensor:()=>xe.es,TensorBuffer:()=>xe.YD,Tile:()=>tt.n9L,TopK:()=>tt.cWu,Transform:()=>tt.wx7,Transpose:()=>tt.G3Y,Unique:()=>tt.kpP,Unpack:()=>tt.ToN,UnsortedSegmentSum:()=>tt.Qvg,UpperBound:()=>tt.XDQ,Variable:()=>xe._w,ZerosLike:()=>tt.RuY,_FusedMatMul:()=>tt.usg,abs:()=>va.WnP,acos:()=>va.Khb,acosh:()=>va.__u,add:()=>va.IHx,addN:()=>va.QBD,all:()=>va.$6P,any:()=>va.YjB,argMax:()=>va.NqF,argMin:()=>va.vHJ,asin:()=>va.ZRM,asinh:()=>va.VfV,atan:()=>va.z4N,atan2:()=>va.fvJ,atanh:()=>va.C80,avgPool:()=>va.wS1,avgPool3d:()=>va.uR5,backend:()=>Kt.y3,backend_util:()=>u,basicLSTMCell:()=>va.zEQ,batchNorm:()=>va.tgs,batchNorm2d:()=>va.Dxk,batchNorm3d:()=>va.JY5,batchNorm4d:()=>va.p3b,batchToSpaceND:()=>va.E4h,bincount:()=>va.yE8,booleanMaskAsync:()=>va.anm,broadcastArgs:()=>va.XsQ,broadcastTo:()=>va.UFq,broadcast_util:()=>et,browser:()=>p,buffer:()=>va.f3b,cast:()=>va.pju,ceil:()=>va.mDi,clipByValue:()=>va.iUl,clone:()=>va.d9v,complex:()=>va.PYB,concat:()=>va.zoF,concat1d:()=>va.gME,concat2d:()=>va.Izb,concat3d:()=>va.MNy,concat4d:()=>va.ZaL,conv1d:()=>va.PAt,conv2d:()=>va.Tek,conv2dTranspose:()=>va.bc,conv3d:()=>va.pdZ,conv3dTranspose:()=>va.$QV,copyRegisteredKernels:()=>at.T3,cos:()=>va.mCk,cosh:()=>va.f9Y,cosineWindow:()=>va.mew,cumprod:()=>va.$Gn,cumsum:()=>va.zbp,customGrad:()=>ta.cb,denseBincount:()=>va.ppE,deprecationWarn:()=>Kt.MX,depthToSpace:()=>va.nTT,depthwiseConv2d:()=>va.B10,device_util:()=>n,diag:()=>va.Ka3,dilation2d:()=>va.WmZ,disableDeprecationWarnings:()=>Kt.cF,dispose:()=>Kt.B9,disposeVariables:()=>Kt.N8,div:()=>va.hiC,divNoNan:()=>va.NTj,dot:()=>va.AKD,dropout:()=>va.rvX,einsum:()=>va.WYO,elu:()=>va.pyx,enableDebugMode:()=>Kt.R,enableProdMode:()=>Kt.G4,enclosingPowerOfTwo:()=>va.GRh,engine:()=>Kt.SR,env:()=>b.OB,equal:()=>va.DgJ,erf:()=>va.qNN,euclideanNorm:()=>va.d2q,exp:()=>va.Qqt,expandDims:()=>va.dt4,expm1:()=>va.t$B,eye:()=>va.iyy,fft:()=>va.kp_,fill:()=>va.hlL,findBackend:()=>Kt.x3,findBackendFactory:()=>Kt.ze,floor:()=>va.GWj,floorDiv:()=>va.qPi,fused:()=>va.imm,gather:()=>va.Iqj,gatherND:()=>va.dbB,gather_util:()=>i,getBackend:()=>Kt.N_,getGradient:()=>at.uk,getKernel:()=>at.pI,getKernelsForBackend:()=>at.tr,grad:()=>ta.UQ,grads:()=>ta.ti,greater:()=>va.pjt,greaterEqual:()=>va.brS,ifft:()=>va.Sxn,imag:()=>va.asL,image:()=>va.BHj,inTopKAsync:()=>va.V3u,io:()=>r,irfft:()=>va.wx0,isFinite:()=>va.xVT,isInf:()=>va.UWc,isNaN:()=>va.i2d,keep:()=>Kt.Cn,kernel_impls:()=>c,leakyRelu:()=>va.hi7,less:()=>va.d9m,lessEqual:()=>va.zN1,linalg:()=>va.$r2,linspace:()=>va.SX3,localResponseNormalization:()=>va.G9k,log:()=>va.cM7,log1p:()=>va.Krr,logSigmoid:()=>va.e_t,logSoftmax:()=>va.CmS,logSumExp:()=>va.l_t,logicalAnd:()=>va.HvI,logicalNot:()=>va.hJK,logicalOr:()=>va.K5V,logicalXor:()=>va.egP,losses:()=>va.MB5,lowerBound:()=>va.eab,matMul:()=>va.OI3,math:()=>s,max:()=>va.Fp7,maxPool:()=>va._sB,maxPool3d:()=>va.YQQ,maxPoolWithArgmax:()=>va.Ip$,maximum:()=>va.gWQ,mean:()=>va.J69,memory:()=>Kt.sq,meshgrid:()=>va.ry_,min:()=>va.VV$,minimum:()=>va.LTh,mirrorPad:()=>va.VdP,mod:()=>va.wQq,moments:()=>va.Gi7,movingAverage:()=>va.p_,mul:()=>va.dC7,multiRNNCell:()=>va.rq4,multinomial:()=>va.SJ_,neg:()=>va.W76,nextFrame:()=>ka,norm:()=>va.KOy,notEqual:()=>va.Quu,oneHot:()=>va.lfX,ones:()=>va.iUs,onesLike:()=>va.JpU,op:()=>va.op,outerProduct:()=>va.N2O,pad:()=>va.vku,pad1d:()=>va.pNR,pad2d:()=>va.koy,pad3d:()=>va.t1L,pad4d:()=>va.lGY,pool:()=>va.d_R,pow:()=>va.sQ3,prelu:()=>va.AL3,print:()=>va.S0v,prod:()=>va.WVs,profile:()=>Kt.N5,raggedGather:()=>va.$gW,raggedTensorToTensor:()=>va.N89,rand:()=>va.TN_,randomGamma:()=>va.wzB,randomNormal:()=>va.nGf,randomStandardNormal:()=>va.ruB,randomUniform:()=>va.LGj,range:()=>va.w6H,ready:()=>Kt.Cd,real:()=>va.kwC,reciprocal:()=>va.M25,registerBackend:()=>Kt.jq,registerGradient:()=>at.Li,registerKernel:()=>at.wC,relu:()=>va.UYe,relu6:()=>va.btT,removeBackend:()=>Kt.cj,reshape:()=>va.XLQ,reverse:()=>va.GYS,reverse1d:()=>va.SDf,reverse2d:()=>va.diP,reverse3d:()=>va.sx7,reverse4d:()=>va.mG2,rfft:()=>va.QEs,round:()=>va.NMM,rsqrt:()=>va.bp0,scalar:()=>va.iD$,scatterND:()=>va.snQ,scatter_util:()=>mt,searchSorted:()=>va.zcT,selu:()=>va.U8D,separableConv2d:()=>va.U_I,serialization:()=>d,setBackend:()=>Kt.CQ,setPlatform:()=>Kt.VY,setdiff1dAsync:()=>va.ODp,sigmoid:()=>va.XD2,sign:()=>va.Xxe,signal:()=>va.tdS,sin:()=>va.O$l,sinh:()=>va.R_K,slice:()=>va.tPi,slice1d:()=>va.jZU,slice2d:()=>va.SmN,slice3d:()=>va.CnO,slice4d:()=>va.p0P,slice_util:()=>o,softmax:()=>va.XAC,softplus:()=>va.Wvh,spaceToBatchND:()=>va.fBT,sparse:()=>va.rVs,sparseToDense:()=>va.ers,spectral:()=>va.uN7,split:()=>va.Vl2,sqrt:()=>va._b3,square:()=>va.h62,squaredDifference:()=>va.$i,squeeze:()=>va.L9e,stack:()=>va.knu,step:()=>va.Nbs,stridedSlice:()=>va.NXj,string:()=>va.Z_8,sub:()=>va.luU,sum:()=>va.Smz,sumOutType:()=>ya.z4,tan:()=>va.ORZ,tanh:()=>va.AEp,tensor:()=>va.XeE,tensor1d:()=>va.RRF,tensor2d:()=>va.odF,tensor3d:()=>va.wOQ,tensor4d:()=>va.yXz,tensor5d:()=>va.Bfx,tensor6d:()=>va.xZs,tensor_util:()=>Mt,test_util:()=>l,tidy:()=>Kt.lu,tile:()=>va.Gg6,time:()=>Kt.XV,topk:()=>va.hg7,train:()=>wa,transpose:()=>va.p4s,truncatedNormal:()=>va.Xu6,unique:()=>va.Two,unregisterGradient:()=>at.bt,unregisterKernel:()=>at.nE,unsortedSegmentSum:()=>va.pUJ,unstack:()=>va.HHK,upcastType:()=>ya.x8,upperBound:()=>va.GaM,util:()=>Ft,valueAndGrad:()=>ta.h7,valueAndGrads:()=>ta.fN,variable:()=>va.VD$,variableGrads:()=>ta.pn,version_core:()=>jt,where:()=>va.arb,whereAsync:()=>va.itS,zeros:()=>va.lls,zerosLike:()=>va.P84});var n={};a.r(n),a.d(n,{isBrowser:()=>v,isMobile:()=>y,mockIsMobile:()=>g});var r={};a.r(r),a.d(r,{browserFiles:()=>Ve,browserHTTPRequest:()=>ze,concatenateArrayBuffers:()=>A,copyModel:()=>ge,decodeWeights:()=>x,encodeWeights:()=>T,fromMemory:()=>He,fromMemorySync:()=>qe,getLoadHandlers:()=>W,getModelArtifactsForJSON:()=>B,getModelArtifactsForJSONSync:()=>F,getModelArtifactsInfoForJSON:()=>O,getSaveHandlers:()=>L,getWeightSpecs:()=>$,http:()=>Pe,isHTTPScheme:()=>Ce,listModels:()=>he,loadWeights:()=>Be,moveModel:()=>ye,registerLoadRouter:()=>z,registerSaveRouter:()=>P,removeModel:()=>fe,weightsLoaderFactory:()=>Oe,withSaveHandler:()=>Ge,withSaveHandlerSync:()=>je});var s={};a.r(s),a.d(s,{confusionMatrix:()=>Ye});var p={};a.r(p),a.d(p,{fromPixels:()=>dt,fromPixelsAsync:()=>it,toPixels:()=>ot});var i={};a.r(i),a.d(i,{prepareAndValidate:()=>lt});var o={};a.r(o),a.d(o,{assertParamsValid:()=>ut,computeFlatOffset:()=>Tt,computeOutShape:()=>ht,getNormalizedAxes:()=>vt,isSliceContinous:()=>_t,maskToAxes:()=>ct,parseSliceParams:()=>xt,sliceInfo:()=>It,startForAxis:()=>kt,startIndicesWithElidedDims:()=>bt,stopForAxis:()=>St,stopIndicesWithElidedDims:()=>wt,stridesForAxis:()=>Nt,stridesWithElidedDims:()=>ft});var d={};a.r(d),a.d(d,{Serializable:()=>Dt,SerializationMap:()=>At,registerClass:()=>Vt});var l={};a.r(l),a.d(l,{TEST_EPSILON_FLOAT16:()=>Bt,createVideoElement:()=>qt,encodeStrings:()=>Ht,expectArrayBuffersEqual:()=>Ut,expectArraysClose:()=>Ot,expectArraysEqual:()=>Pt,expectNumbersClose:()=>zt,expectPromiseToFail:()=>Rt,expectValuesInRange:()=>Wt,play:()=>Gt,testEpsilon:()=>$t});var m={};a.r(m),a.d(m,{collectGatherOpShapeInfo:()=>En,computeOutShape:()=>In,segOpComputeOptimalWindowSize:()=>xn});var u={};a.r(u),a.d(u,{ERF_A1:()=>Ha,ERF_A2:()=>qa,ERF_A3:()=>Ga,ERF_A4:()=>ja,ERF_A5:()=>Ka,ERF_P:()=>Ua,PARALLELIZE_THRESHOLD:()=>Fa,RowPartitionType:()=>xa,SELU_SCALE:()=>Wa,SELU_SCALEALPHA:()=>La,applyActivation:()=>Ea.QH,assertAndGetBroadcastShape:()=>et.assertAndGetBroadcastShape,assertAxesAreInnerMostDims:()=>Sa.lB,assertParamsConsistent:()=>_a,assignToTypedArray:()=>tn,axesAreInnerMostDims:()=>Sa.YB,calculateShapes:()=>mt.calculateShapes,checkEinsumDimSizes:()=>dn,checkPadOnDimRoundingMode:()=>Ia.m,combineLocations:()=>Sa.Vh,combineRaggedTensorToTensorShapes:()=>Da,complexWithEvenIndex:()=>Qa,complexWithOddIndex:()=>Ya,computeConv2DInfo:()=>Ia.Ix,computeConv3DInfo:()=>Ia.jw,computeDefaultPad:()=>Ia.aO,computeDilation2DInfo:()=>Ia.Rf,computeOptimalWindowSize:()=>Ba,computeOutAndReduceShapes:()=>Sa.kz,computeOutShape:()=>Ta,computePool2DInfo:()=>Ia.Xw,computePool3DInfo:()=>Ia.pl,convertConv2DDataFormat:()=>Ia.sl,decodeEinsumEquation:()=>pn,eitherStridesOrDilationsAreOne:()=>Ia.jT,expandShapeToKeepDim:()=>Sa.rv,exponent:()=>nn,exponents:()=>an,fromStringArrayToUint8:()=>An,fromUint8ToStringArray:()=>Dn,getAxesPermutation:()=>Sa.Q3,getBroadcastDims:()=>et.getBroadcastDims,getComplexWithIndex:()=>en,getEinsumComputePath:()=>ln,getEinsumPermutation:()=>on,getFusedBiasGradient:()=>Ea.pf,getFusedDyActivation:()=>Ea.Fr,getImageCenter:()=>Oa,getInnerMostAxes:()=>Sa.sY,getPermuted:()=>Ca,getRaggedRank:()=>Va,getReductionAxes:()=>et.getReductionAxes,getReshaped:()=>$a,getReshapedPermuted:()=>Ra,getRowPartitionTypesHelper:()=>Aa,getSliceBeginCoords:()=>Pa,getSliceSize:()=>za,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>hn,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>fn,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>gn,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>bn,getSparseReshapeInputOutputMismatchErrorMessage:()=>Nn,getSparseReshapeInputOutputMultipleErrorMessage:()=>wn,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>yn,getSparseReshapeNegativeOutputDimErrorMessage:()=>vn,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>Tn,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>kn,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>Sn,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>_n,getUndoAxesPermutation:()=>Sa.LJ,isIdentityPermutation:()=>mn,log:()=>Xa.c,mergeRealAndImagArrays:()=>Za,prepareAndValidate:()=>lt,prepareSplitSize:()=>cn,segment_util:()=>m,shouldFuse:()=>Ea.uy,slice_util:()=>o,splitRealAndImagArrays:()=>Ja,tupleValuesAreOne:()=>Ia.I0,upcastType:()=>ya.x8,validateDefaultValueShape:()=>Ma,validateInput:()=>mt.validateInput,validateUpdateShape:()=>mt.validateUpdateShape,warn:()=>Xa.Z});var c={};a.r(c),a.d(c,{nonMaxSuppressionV3Impl:()=>Vn.GP,nonMaxSuppressionV4Impl:()=>Vn.qP,nonMaxSuppressionV5Impl:()=>Vn.pA,whereImpl:()=>Mn.Z});var h=a(7097);let f;function g(e){f=e}function y(e){if(void 0!==f)return f;if(e||"undefined"!=typeof navigator&&null!=navigator){if(e||(e=navigator),"ReactNative"===e.product)return!0;const t=e.userAgent||e.vendor||("undefined"!=typeof window?window.opera:"");if(!t){const t=e;return t.userAgentData&&t.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function v(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}var b=a(2885);const w=(0,b.OB)();w.registerFlag("DEBUG",(()=>!1),(e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")})),w.registerFlag("IS_BROWSER",(()=>v())),w.registerFlag("IS_NODE",(()=>"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node)),w.registerFlag("IS_CHROME",(()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor))),w.registerFlag("PROD",(()=>!1)),w.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(()=>w.getBool("DEBUG"))),w.registerFlag("DEPRECATION_WARNINGS_ENABLED",(()=>!0)),w.registerFlag("IS_TEST",(()=>!1)),w.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",(()=>!0)),w.registerFlag("WRAP_TO_IMAGEBITMAP",(()=>!1)),w.registerFlag("ENGINE_COMPILE_ONLY",(()=>!1)),w.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",(()=>!1)),w.registerFlag("USE_SETTIMEOUTCUSTOM",(()=>!1));var N=a(1661),k=a(701),S=a(569);const _={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};async function T(e,t){const a=[],n=[],r=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);for(let s=0;s{const t=await i.bytes(),a=t.reduce(((e,t)=>e+t.length),0)+4*t.length,n=new Uint8Array(a);let r=0;for(let e=0;e{if(t+=e.byteLength,a.push(e.byteLength===e.buffer.byteLength?e:new e.constructor(e)),!(e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${e.constructor.name}`)}));const n=new Uint8Array(t);let r=0;return a.forEach((e=>{n.set(new Uint8Array(e.buffer),r),r+=e.byteLength})),n.buffer}const E="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function D(e){return E?Buffer.byteLength(e):new Blob([e]).size}function A(e){if(1===e.length)return e[0];let t=0;e.forEach((e=>{t+=e.byteLength}));const a=new Uint8Array(t);let n=0;return e.forEach((e=>{a.set(new Uint8Array(e),n),n+=e.byteLength})),a.buffer}function V(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);const t=e.split("/");return t[t.length-1]}function M(e,t){const a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return null!=e.signature&&(a.signature=e.signature),null!=e.userDefinedMetadata&&(a.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(a.modelInitializer=e.modelInitializer),null!=e.trainingConfig&&(a.trainingConfig=e.trainingConfig),a}function F(e,t,a){const n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(null!=e.trainingConfig&&(n.trainingConfig=e.trainingConfig),null!=e.weightsManifest){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!a)throw new Error("modelJSON has weightsManifest but weightData is null");n.weightSpecs=t,n.weightData=a}return null!=e.signature&&(n.signature=e.signature),null!=e.userDefinedMetadata&&(n.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(n.modelInitializer=e.modelInitializer),n}async function B(e,t){let a,n;return null!=e.weightsManifest&&([a,n]=await t(e.weightsManifest)),F(e,a,n)}function O(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:null==e.modelTopology?0:D(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:D(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:e.weightData.byteLength}}function $(e){const t=[];for(const a of e)t.push(...a.weights);return t}function C(){const e=function(){const e=e=>{let t=e<<13,a=0;for(;0==(8388608&t);)a-=8388608,t<<=1;return t&=-8388609,a+=947912704,t|a},t=new Uint32Array(2048);t[0]=0;for(let a=1;a<1024;a++)t[a]=e(a);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}(),t=function(){const e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}(),a=function(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}();return n=>{const r=new ArrayBuffer(4*n.length),s=new Uint32Array(r);for(let r=0;r>10]+(1023&p)]+t[p>>10];s[r]=i}return new Float32Array(r)}}class R{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==R.instance&&(R.instance=new R),R.instance}static registerSaveRouter(e){R.getInstance().saveRouters.push(e)}static registerLoadRouter(e){R.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return R.getHandlers(e,"save")}static getLoadHandlers(e,t){return R.getHandlers(e,"load",t)}static getHandlers(e,t,a){const n=[];return("load"===t?R.getInstance().loadRouters:R.getInstance().saveRouters).forEach((t=>{const r=t(e,a);null!==r&&n.push(r)})),n}}const P=e=>R.registerSaveRouter(e),z=e=>R.registerLoadRouter(e),L=e=>R.getSaveHandlers(e),W=(e,t)=>R.getLoadHandlers(e,t),U="tensorflowjs",H="models_store",q="model_info_store";function G(){if(!(0,b.OB)().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");const e="undefined"==typeof window?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(null==t)throw new Error("The current browser does not appear to support IndexedDB.");return t}function j(e){const t=e.result;t.createObjectStore(H,{keyPath:"modelPath"}),t.createObjectStore(q,{keyPath:"modelPath"})}class K{constructor(e){if(this.indexedDB=G(),null==e||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise(((e,a)=>{const n=this.indexedDB.open(U,1);n.onupgradeneeded=()=>j(n),n.onsuccess=()=>{const r=n.result;if(null==t){const t=r.transaction(H,"readonly"),n=t.objectStore(H).get(this.modelPath);n.onsuccess=()=>{if(null==n.result)return r.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));e(n.result.modelArtifacts)},n.onerror=e=>(r.close(),a(n.error)),t.oncomplete=()=>r.close()}else{const n=O(t),s=r.transaction(q,"readwrite");let p=s.objectStore(q);const i=p.put({modelPath:this.modelPath,modelArtifactsInfo:n});let o;i.onsuccess=()=>{o=r.transaction(H,"readwrite");const i=o.objectStore(H).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:n});i.onsuccess=()=>e({modelArtifactsInfo:n}),i.onerror=e=>{p=s.objectStore(q);const t=p.delete(this.modelPath);t.onsuccess=()=>(r.close(),a(i.error)),t.onerror=e=>(r.close(),a(i.error))}},i.onerror=e=>(r.close(),a(i.error)),s.oncomplete=()=>{null==o?r.close():o.oncomplete=()=>r.close()}}},n.onerror=e=>a(n.error)}))}}K.URL_SCHEME="indexeddb://";const X=e=>{return(0,b.OB)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(K.URL_SCHEME)?(t=e.slice(K.URL_SCHEME.length),new K(t)):null;var t};R.registerSaveRouter(X),R.registerLoadRouter(X);class Z{constructor(){this.indexedDB=G()}async listModels(){return new Promise(((e,t)=>{const a=this.indexedDB.open(U,1);a.onupgradeneeded=()=>j(a),a.onsuccess=()=>{const n=a.result,r=n.transaction(q,"readonly"),s=r.objectStore(q).getAll();s.onsuccess=()=>{const t={};for(const e of s.result)t[e.modelPath]=e.modelArtifactsInfo;e(t)},s.onerror=e=>(n.close(),t(s.error)),r.oncomplete=()=>n.close()},a.onerror=e=>t(a.error)}))}async removeModel(e){var t;return e=(t=e).startsWith(K.URL_SCHEME)?t.slice(K.URL_SCHEME.length):t,new Promise(((t,a)=>{const n=this.indexedDB.open(U,1);n.onupgradeneeded=()=>j(n),n.onsuccess=()=>{const r=n.result,s=r.transaction(q,"readwrite"),p=s.objectStore(q),i=p.get(e);let o;i.onsuccess=()=>{if(null==i.result)return r.close(),a(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{const n=p.delete(e),s=()=>{o=r.transaction(H,"readwrite");const n=o.objectStore(H).delete(e);n.onsuccess=()=>t(i.result.modelArtifactsInfo),n.onerror=e=>a(i.error)};n.onsuccess=s,n.onerror=e=>(s(),r.close(),a(i.error))}},i.onerror=e=>(r.close(),a(i.error)),s.oncomplete=()=>{null==o?r.close():o.oncomplete=()=>r.close()}},n.onerror=e=>a(n.error)}))}}const J="/",Q="tensorflowjs_models",Y="info",ee="model_topology",te="weight_specs",ae="weight_data",ne="model_metadata";function re(e){return{info:[Q,e,Y].join(J),topology:[Q,e,ee].join(J),weightSpecs:[Q,e,te].join(J),weightData:[Q,e,ae].join(J),modelMetadata:[Q,e,ne].join(J)}}function se(e){for(const t of Object.values(e))window.localStorage.removeItem(t)}function pe(e){const t=e.split(J);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(J)}class ie{constructor(e){if(!(0,b.OB)().getBool("IS_BROWSER")||"undefined"==typeof window||void 0===window.localStorage)throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==e||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=re(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{const t=JSON.stringify(e.modelTopology),a=JSON.stringify(e.weightSpecs),n=O(e);try{this.LS.setItem(this.keys.info,JSON.stringify(n)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,a),this.LS.setItem(this.keys.weightData,function(e){if(E)return Buffer.from(e).toString("base64");const t=new Uint8Array(e);let a="";for(let e=0,n=t.length;e{return(0,b.OB)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ie.URL_SCHEME)?(t=e.slice(ie.URL_SCHEME.length),new ie(t)):null;var t};R.registerSaveRouter(oe),R.registerLoadRouter(oe);class de{constructor(){(0,S.hu)((0,b.OB)().getBool("IS_BROWSER"),(()=>"Current environment is not a web browser")),(0,S.hu)("undefined"==typeof window||void 0!==window.localStorage,(()=>"Current browser does not appear to support localStorage")),this.LS=window.localStorage}async listModels(){const e={},t=Q+J,a=J+Y;for(let n=0;n"scheme must not be undefined or null.")),e.endsWith(le)&&(e=e.slice(0,e.indexOf(le))),(0,S.hu)(e.length>0,(()=>"scheme must not be an empty string."));const a=me.getInstance();(0,S.hu)(null==a.managers[e],(()=>`A model store manager is already registered for scheme '${e}'.`)),a.managers[e]=t}static getManager(e){const t=me.getInstance().managers[e];if(null==t)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(me.getInstance().managers)}}function ue(e){if(-1===e.indexOf(le))throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${me.getSchemes().join(",")}`);return{scheme:e.split(le)[0],path:e.split(le)[1]}}async function ce(e,t,a=!1){(0,S.hu)(e!==t,(()=>`Old path and new path are the same: '${e}'`));const n=R.getLoadHandlers(e);(0,S.hu)(n.length>0,(()=>`Copying failed because no load handler is found for source URL ${e}.`)),(0,S.hu)(n.length<2,(()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${e}.`));const r=n[0],s=R.getSaveHandlers(t);(0,S.hu)(s.length>0,(()=>`Copying failed because no save handler is found for destination URL ${t}.`)),(0,S.hu)(s.length<2,(()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`));const p=s[0],i=ue(e).scheme,o=ue(e).path,d=i===ue(e).scheme,l=await r.load();a&&d&&await me.getManager(i).removeModel(o);const m=await p.save(l);return a&&!d&&await me.getManager(i).removeModel(o),m.modelArtifactsInfo}async function he(){const e=me.getSchemes(),t={};for(const a of e){const e=await me.getManager(a).listModels();for(const n in e){t[a+le+n]=e[n]}}return t}async function fe(e){const t=ue(e);return me.getManager(t.scheme).removeModel(t.path)}async function ge(e,t){return ce(e,t,!1)}async function ye(e,t){return ce(e,t,!0)}class ve{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){window&&(0,b.OB)().getBool("USE_SETTIMEOUTCUSTOM")?(this.functionRefs.push(e),setTimeout((()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")}),t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",(e=>{if(e.source===window&&e.data.name===this.messageName){e.stopPropagation();(0,this.functionRefs[e.data.index])(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}}),!0))):setTimeout(e,t)}}if((0,b.OB)().get("IS_BROWSER")){(0,b.OB)().setPlatform("browser",new ve);try{me.registerManager(ie.URL_SCHEME,new de)}catch(e){}try{me.registerManager(K.URL_SCHEME,new Z)}catch(e){}}const be=()=>a(7854);let we;class Ne{constructor(){this.util=a(1669),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=(0,b.OB)().global.fetch?(0,b.OB)().global.fetch(e,t):(null==we&&(we=be()),we(e,t))}now(){const e=process.hrtime();return 1e3*e[0]+e[1]/1e6}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)}}(0,b.OB)().get("IS_NODE")&&!(0,b.OB)().get("IS_BROWSER")&&(0,b.OB)().setPlatform("node",new Ne);var ke=a(2657),Se=a(2271),_e=a(8723),Te=a(9798),xe=a(4077);(0,h.wv)();const Ie={buffer:ke.f,cast:Se.p,clone:_e.d,print:Te.S};(0,xe.Vp)(Ie);function Ee(e){return new Promise((e=>setTimeout(e))).then(e)}class De{constructor(e){if(!(0,b.OB)().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(De.URL_SCHEME)&&(e=e.slice(De.URL_SCHEME.length)),null!=e&&0!==e.length||(e="model"),this.modelJsonFileName=e+".json",this.weightDataFileName=e+".weights.bin"}async save(e){if("undefined"==typeof document)throw new Error("Browser downloads are not supported in this environment since `document` is not present");const t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{const a=M(e,[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}]),n=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),r=null==this.modelJsonAnchor?document.createElement("a"):this.modelJsonAnchor;if(r.download=this.modelJsonFileName,r.href=n,await Ee((()=>r.dispatchEvent(new MouseEvent("click")))),null!=e.weightData){const e=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor;e.download=this.weightDataFileName,e.href=t,await Ee((()=>e.dispatchEvent(new MouseEvent("click"))))}return{modelArtifactsInfo:O(e)}}}}De.URL_SCHEME="downloads://";class Ae{constructor(e){if(null==e||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise(((e,t)=>{const a=new FileReader;a.onload=a=>{const n=JSON.parse(a.target.result),r=n.modelTopology;if(null==r)return void t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));if(null==n.weightsManifest)return void t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));if(0===this.weightsFiles.length)return void e({modelTopology:r});const s=B(n,(e=>this.loadWeights(e)));e(s)},a.onerror=e=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),a.readAsText(this.jsonFile)}))}loadWeights(e){const t=[],a=[];for(const n of e)t.push(...n.weights),a.push(...n.paths);const n=this.checkManifestAndWeightFiles(e),r=a.map((e=>this.loadWeightsFile(e,n[e])));return Promise.all(r).then((e=>[t,A(e)]))}loadWeightsFile(e,t){return new Promise(((a,n)=>{const r=new FileReader;r.onload=e=>{const t=e.target.result;a(t)},r.onerror=t=>n(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)}))}checkManifestAndWeightFiles(e){const t=[],a=this.weightsFiles.map((e=>V(e.name))),n={};for(const r of e)r.paths.forEach((e=>{const r=V(e);if(-1!==t.indexOf(r))throw new Error(`Duplicate file basename found in weights manifest: '${r}'`);if(t.push(r),-1===a.indexOf(r))throw new Error(`Weight file with basename '${r}' is not provided.`);n[e]=this.weightsFiles[a.indexOf(r)]}));if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return n}}function Ve(e){return new Ae(e)}function Me(e,t,a,n){!function(e){(0,S.hu)(null!=e&&Array.isArray(e)&&e.length>0,(()=>"promises must be a none empty array"))}(e),function(e,t){(0,S.hu)(e>=0&&e<=1,(()=>`Progress fraction must be in range [0, 1], but got startFraction ${e}`)),(0,S.hu)(t>=0&&t<=1,(()=>`Progress fraction must be in range [0, 1], but got endFraction ${t}`)),(0,S.hu)(t>=e,(()=>`startFraction must be no more than endFraction, but got startFraction ${e} and endFraction ${t}`))}(a=null==a?0:a,n=null==n?1:n);let r=0;return Promise.all(e.map((s=>(s.then((s=>{const p=a+ ++r/e.length*(n-a);return t(p),s})),s))))}async function Fe(e,t){null==t&&(t={});const a=null==t.fetchFunc?(0,b.OB)().platform.fetch:t.fetchFunc,n=e.map((e=>a(e,t.requestInit,{isBinary:!0}))),r=(null==t.onProgress?await Promise.all(n):await Me(n,t.onProgress,0,.5)).map((e=>e.arrayBuffer()));return null==t.onProgress?await Promise.all(r):await Me(r,t.onProgress,.5,1)}async function Be(e,t="",a,n){return Oe((e=>Fe(e,{requestInit:n})))(e,t,a)}function Oe(e){return async(t,a="",n)=>{const r=t.map((()=>!1)),s={},p=null!=n?n.map((()=>!1)):[],i=[];if(t.forEach(((e,t)=>{let a=0;e.weights.forEach((e=>{const o="quantization"in e?e.quantization.dtype:e.dtype,d=_[o]*S.NA(e.shape),l=()=>{r[t]=!0,null==s[t]&&(s[t]=[]),s[t].push({manifestEntry:e,groupOffset:a,sizeBytes:d})};null!=n?n.forEach(((t,a)=>{t===e.name&&(l(),p[a]=!0)})):l(),i.push(e.name),a+=d}))})),!p.every((e=>e))){const e=n.filter(((e,t)=>!p[t]));throw new Error(`Could not find weights in manifest with names: ${e.join(", ")}. \nManifest JSON has weights with names: ${i.join(", ")}.`)}const o=r.reduce(((e,t,a)=>(t&&e.push(a),e)),[]),d=[];o.forEach((e=>{t[e].paths.forEach((e=>{const t=a+(a.endsWith("/")?"":"/")+e;d.push(t)}))}));const l=await e(d),m={};let u=0;return o.forEach((e=>{const a=t[e].paths.length;let n=0;for(let e=0;e{const t=x(r.slice(e.groupOffset,e.groupOffset+e.sizeBytes),[e.manifestEntry]);for(const e in t)m[e]=t[e]})),u+=a})),m}}R.registerSaveRouter((e=>(0,b.OB)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(De.URL_SCHEME)?function(e="model"){return new De(e)}(e.slice(De.URL_SCHEME.length)):null));class $e{constructor(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,null!=t.fetchFunc?((0,S.hu)("function"==typeof t.fetchFunc,(()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)")),this.fetch=t.fetchFunc):this.fetch=(0,b.OB)().platform.fetch,(0,S.hu)(null!=e&&e.length>0,(()=>"URL path for http must not be null, undefined or empty.")),Array.isArray(e)&&(0,S.hu)(2===e.length,(()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`)),this.path=e,null!=t.requestInit&&null!=t.requestInit.body)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;const a=M(e,[{paths:["./model.weights.bin"],weights:e.weightSpecs}]);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:"application/json"}),"model.json"),null!=e.weightData&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:"application/octet-stream"}),"model.weights.bin");const n=await this.fetch(this.path,t);if(n.ok)return{modelArtifactsInfo:O(e),responses:[n]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${n.status}.`)}async load(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(e){let t=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?t+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":t+=" Please make sure the server is serving valid JSON for this request.",new Error(t)}const a=t.modelTopology,n=t.weightsManifest;if(null==a&&null==n)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return B(t,(e=>this.loadWeights(e)))}async loadWeights(e){const t=Array.isArray(this.path)?this.path[1]:this.path,[a,n]=function(e){const t=e.lastIndexOf("/"),a=e.lastIndexOf("?"),n=e.substring(0,t),r=a>t?e.substring(a):"";return[n+"/",r]}(t),r=this.weightPathPrefix||a,s=$(e),p=[],i=[];for(const t of e)for(const e of t.paths)null!=this.weightUrlConverter?i.push(this.weightUrlConverter(e)):p.push(r+e+n);this.weightUrlConverter&&p.push(...await Promise.all(i));return[s,A(await Fe(p,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress}))]}}function Ce(e){return null!=e.match($e.URL_SCHEME_REGEX)}$e.URL_SCHEME_REGEX=/^https?:\/\//;const Re=(e,t)=>{if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc))return null;{let a=!0;if(a=Array.isArray(e)?e.every((e=>Ce(e))):Ce(e),a)return Pe(e,t)}return null};function Pe(e,t){return new $e(e,t)}function ze(e,t){return Pe(e,t)}R.registerSaveRouter(Re),R.registerLoadRouter(Re);class Le{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}}class We{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}}class Ue{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}}function He(e,t,a,n){const r=arguments;return new Ue(qe(...r))}function qe(e,t,a,n){if(1===arguments.length){return null!=e.modelTopology||null!=e.weightSpecs?new Le(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Le({modelTopology:e}))}return console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Le({modelTopology:e,weightSpecs:t,weightData:a,trainingConfig:n})}function Ge(e){return new We(e)}function je(e){return new We(e)}var Ke=a(3740),Xe=a(8687),Ze=a(6708),Je=a(2668),Qe=a(9065);const Ye=(0,Je.op)({confusionMatrix_:function(e,t,a){const n=(0,Ke._1)(e,"labels","confusionMatrix"),r=(0,Ke._1)(t,"predictions","confusionMatrix");S.hu(null==a||a>0&&Number.isInteger(a),(()=>`If provided, numClasses must be a positive integer, but got ${a}`)),S.hu(1===n.rank,(()=>`Expected the rank of labels to be 1, but got ${n.rank}`)),S.hu(1===r.rank,(()=>`Expected the rank of predictions to be 1, but got ${r.rank}`)),S.hu(n.shape[0]===r.shape[0],(()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`)),S.hu(a>0&&Number.isInteger(a),(()=>`numClasses is required to be a positive integer, but got ${a}`));const s=(0,Ze.l)((0,Se.p)(n,"int32"),a),p=(0,Ze.l)((0,Se.p)(r,"int32"),a),i=(0,Qe.p)(s),o=(0,Xe.O)(i,p);return(0,Se.p)(o,"int32")}});var et=a(2200),tt=a(9121),at=a(6151),nt=a(9906);let rt;function st(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(null==e)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let a=!1,n=!1,r=!1,s=!1,p=!1,i=!1;if(e.data instanceof Uint8Array)a=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)n=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)r=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)s=!0;else if(null!=e.getContext)p=!0;else{if(!("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap))throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);i=!0}if(null!=(0,at.pI)(tt.eBW,h.BV.backendName)){const a={pixels:e},n={numChannels:t};return h.BV.runKernel(tt.eBW,a,n)}const[o,d]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height];let l,m;if(p)l=e.getContext("2d").getImageData(0,0,o,d).data;else if(n||a)l=e.data;else if(s||r||i){if(null==rt)if("undefined"==typeof document){if("undefined"==typeof OffscreenCanvas||"undefined"==typeof OffscreenCanvasRenderingContext2D)throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");rt=new OffscreenCanvas(1,1).getContext("2d")}else rt=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});rt.canvas.width=o,rt.canvas.height=d,rt.drawImage(e,0,0,o,d),l=rt.getImageData(0,0,o,d).data}if(4===t)m=new Int32Array(l);else{const e=o*d;m=new Int32Array(e*t);for(let a=0;a4||2===s)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if("float32"!==a.dtype&&"int32"!==a.dtype)throw new Error(`Unsupported type for toPixels: ${a.dtype}. Please use float32 or int32 tensors.`);const p=await a.data(),i="float32"===a.dtype?255:1,o=new Uint8ClampedArray(r*n*4);for(let e=0;e1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${r}.`)}else if("int32"===a.dtype&&(r<0||r>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${r}.`);1===s?(t[0]=r*i,t[1]=r*i,t[2]=r*i):t[n]=r*i}const n=4*e;o[n+0]=Math.round(t[0]),o[n+1]=Math.round(t[1]),o[n+2]=Math.round(t[2]),o[n+3]=Math.round(t[3])}if(null!=t){t.width=r,t.height=n;const e=t.getContext("2d"),a=new ImageData(o,r,n);e.putImageData(a,0,0)}return a!==e&&a.dispose(),o}const dt=(0,Je.op)({fromPixels_:st});function lt(e,t){const a=e.shape.length,n=t.shape.length;if(a<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${a}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if("int32"!==t.dtype)throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>a)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${a}`);if(0===(0,S.NA)(e.shape))throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);const r=t.shape,s=r[r.length-1];let p=1;for(let e=0;ee/d)),1].slice(0,s);return[o,p,d,l]}var mt=a(3028);function ut(e,t,a){const n=e.shape.length;S.hu(n===t.length,(()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`)),S.hu(n===a.length,(()=>`Error in slice${n}D: Length of size ${a} must match the rank of the array (${n}).`));for(let r=0;r`Error in slice${n}D: begin[${r}] + size[${r}] (${t[r]+a[r]}) would overflow input.shape[${r}] (${e.shape[r]})`))}function ct(e){const t=[];let a=0;for(;e>0;)1&e&&t.push(a),e/=2,a++;return t}function ht(e,t,a){const n=[];for(let r=0;r0){const o=t[0],d=a+1;l=bt(p,o,d,n,e),m=wt(i,o,d,r,e),u=ft(s,o,d,e)}else for(let t=0;t-1)s[r]=0;else{const p=gt(t,a,r);let i=n[p];e&1<-1)s[r]=Number.MAX_SAFE_INTEGER;else{const p=gt(t,a,r);let i=n[p];e&1<0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);const o=n[r];return p<0&&(p+=o),p=S.uZ(0,p,o-1),p}function St(e,t,a,n,r,s){let p=t[r];const i=a[r]||1;(e&1<0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);const o=n[r];return p<0&&(p+=o),p=i>0?S.uZ(0,p,o):S.uZ(-1,p,o-1),p}function _t(e,t,a){let n=a.length;for(let e=0;e1){n=e;break}for(let r=n+1;r0||a[r]!==e[r])return!1;return!0}function Tt(e,t){let a=e.length>0?e[e.length-1]:1;for(let n=0;n{S.hu(-1!==e,(()=>"slice() does not support negative begin indexing."))})),s=null==a?new Array(r).fill(-1):"number"==typeof a?[a,...new Array(r-1).fill(-1)]:a.lengtht>=0?t:(S.hu(-1===t,(()=>`Negative size values should be exactly -1 but got ${t} for the slice() size at index ${a}.`)),e.shape[a]-n[a]))),[n,s]}function It(e,t,a,n,r,s,p,i,o){let d;if(null==n?(d=new Array(t.length),d.fill(1)):d=n,null!=p&&0!=(p&p-1))throw new Error("Multiple ellipses in slice is not allowed.");let l=!1;const m={dims:d.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:a.slice(),strides:d.slice(),beginMask:r,endMask:s,ellipsisMask:p,newAxisMask:i,shrinkAxisMask:o};for(let e=0;e0?0:-1,u.strides[t]>0?n:n-1];if(a&&u.strides[t]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&1===u.strides[t];const p=!!(u.beginMask&1<=n)throw Error(`slice index ${u.begin[t]} of dimension ${t} out of bounds.`)}else u.begin[t]=Et(u.begin[t],0,u.strides[t],n,r,s),u.end[t]=Et(u.end[t],1,u.strides[t],n,r,s);const e=1===u.strides[t]&&0===u.begin[t]&&u.end[t]===n;c=c&&e,h=h&&(0===t&&1===u.strides[t]||e)}else c=c&&1===u.strides[t]&&p,h=h&&(0===t&&1===u.strides[t]||p);let i,o=!1;if(u.beginValid&&u.endValid?(i=u.end[t]-u.begin[t],o=!0):a?(i=1,o=!0):p&&n>=0&&(i=u.strides[t]<0?-n:n,o=!0),o){let e;e=0===i||i<0!=u.strides[t]<0?0:Math.trunc(i/u.strides[t])+(i%u.strides[t]!=0?1:0),g.push(e)}else g.push(-1)}for(let e=0;e=0?y.push(g[t]):-2===t&&y.push(1)}return{finalShapeSparse:y.filter(((e,t)=>-2!==u.finalShapeGatherIndices[t])),finalShape:y,isIdentity:c,sliceDim0:h,isSimpleSlice:f,begin:u.begin,end:u.end,strides:u.strides}}function Et(e,t,a,n,r,s){if(r[t])return a>0?s[t]:s[t+1&1];{const t=e<0?n+e:e;return ts[1]?s[1]:t}}class Dt{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class At{constructor(){this.classNameMap={}}static getMap(){return null==At.instance&&(At.instance=new At),At.instance}static register(e){At.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function Vt(e){(0,S.hu)(null!=e.className,(()=>"Class being registered does not have the static className property defined.")),(0,S.hu)("string"==typeof e.className,(()=>"className is required to be a string, but got type "+typeof e.className)),(0,S.hu)(e.className.length>0,(()=>"Class being registered has an empty-string as its className, which is disallowed.")),At.register(e)}var Mt=a(747),Ft=a(9122);const Bt=.1;function Ot(e,t,a){return null==a&&(a=$t()),Ct(e,t,((e,t)=>Lt(e,t,a)))}function $t(){return 32===h.BV.backend.floatPrecision()?.001:Bt}function Ct(e,t,a){let n=!0;if(((0,S.fU)(e)||(0,S.fU)(t))&&(n=!1),(0,S.fU)(e)&&(0,S.fU)(t)&&(n=!0),n){const a=e.constructor.name,n=t.constructor.name;if(a!==n)throw new Error(`Arrays are of different type. Actual: ${a}. Expected: ${n}`)}if(Array.isArray(e)&&Array.isArray(t)){const a=(0,Ke.C)(e),n=(0,Ke.C)(t);if(!(0,S.cO)(a,n))throw new Error(`Arrays have different shapes. Actual: [${a}]. Expected: [${n}]`)}const r=(0,S.fU)(e)?e:(0,S.xH)(e),s=(0,S.fU)(t)?t:(0,S.xH)(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}.\nActual: ${r}.\nExpected: ${s}.`);for(let e=0;et.fail()),(()=>t())),"undefined"!=typeof expect&&expect().nothing()}function Pt(e,t){const a="string"==typeof t||"number"==typeof t||"boolean"==typeof t?[t]:t;return(0,S.HD)(e)||(0,S.HD)(e[0])||(0,S.HD)(t)||(0,S.HD)(t[0])?Ct(e,a,((e,t)=>e==t)):Ct(e,t,((e,t)=>Lt(e,t,0)))}function zt(e,t,a){if(null==a&&(a=$t()),!Lt(e,t,a))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);"undefined"!=typeof expect&&expect().nothing()}function Lt(e,t,a){return!isFinite(e)&&!isFinite(t)||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>a)}function Wt(e,t,a){for(let n=0;na)throw new Error(`Value out of range:${e[n]} low: ${t}, high: ${a}`)}function Ut(e,t){const a=new Float32Array(e),n=new Float32Array(t);if(a.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${a.length}`);for(let e=0;e{t.addEventListener("loadeddata",(a=>e(t))),t.load()}))}async function Gt(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise((t=>{e.requestVideoFrameCallback(t)}))}const jt="3.21.0";var Kt=a(4368),Xt=a(6407),Zt=a(1274),Jt=a(4841),Qt=a(3261),Yt=a(248),ea=a(6577),ta=a(633),aa=a(9494);class na extends Dt{minimize(e,t=!1,a){const{value:n,grads:r}=this.computeGradients(e,a);if(null!=a){const e=a.map((e=>({name:e.name,tensor:r[e.name]})));this.applyGradients(e)}else this.applyGradients(r);return(0,Kt.B9)(r),t?n:(n.dispose(),null)}get iterations(){return null==this.iterations_&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return(0,ta.pn)(e,t)}dispose(){null!=this.iterations_&&(0,Kt.B9)(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:(0,aa.i)(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(na,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients});class ra extends na{constructor(e,t,a=null){super(),this.learningRate=e,this.rho=t,this.epsilon=a,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==a&&(this.epsilon=h.BV.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,a)=>{const n=h.BV.registeredVariables[t];null==this.accumulatedGrads[a]&&(this.accumulatedGrads[a]={originalName:`${t}/accum_grad`,variable:(0,Kt.lu)((()=>(0,ea.P)(n).variable(false)))}),null==this.accumulatedUpdates[a]&&(this.accumulatedUpdates[a]={originalName:`${t}/accum_var`,variable:(0,Kt.lu)((()=>(0,ea.P)(n).variable(false)))});const r=Array.isArray(e)?e[a].tensor:e[t];if(null==r)return;const s=this.accumulatedGrads[a].variable,p=this.accumulatedUpdates[a].variable;(0,Kt.lu)((()=>{const e=(0,Xt.I)((0,Jt.d)(s,this.rho),(0,Jt.d)((0,Yt.h)(r),1-this.rho)),t=(0,Jt.d)((0,Zt.h)((0,Qt._)((0,Xt.I)(p,this.epsilon)),(0,Qt._)((0,Xt.I)(s,this.epsilon))),r),a=(0,Xt.I)((0,Jt.d)(p,this.rho),(0,Jt.d)((0,Yt.h)(t),1-this.rho));s.assign(e),p.assign(a);const i=(0,Xt.I)((0,Jt.d)(t,-this.learningRate),n);n.assign(i)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&((0,Kt.B9)(this.accumulatedGrads.map((e=>e.variable))),(0,Kt.B9)(this.accumulatedUpdates.map((e=>e.variable))))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){const t=(e=await this.extractIterations(e)).length/2;this.accumulatedGrads=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(false)}))),this.accumulatedUpdates=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(false)})))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}ra.className="Adadelta",Vt(ra);var sa=a(4006);class pa extends na{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,a)=>{const n=h.BV.registeredVariables[t];if(null==this.accumulatedGrads[a]){const e=!1;this.accumulatedGrads[a]={originalName:`${t}/accumulator`,variable:(0,Kt.lu)((()=>(0,sa.h)(n.shape,this.initialAccumulatorValue).variable(e)))}}const r=Array.isArray(e)?e[a].tensor:e[t];if(null==r)return;const s=this.accumulatedGrads[a].variable;(0,Kt.lu)((()=>{const e=(0,Xt.I)(s,(0,Yt.h)(r));s.assign(e);const t=(0,Xt.I)((0,Jt.d)((0,Zt.h)(r,(0,Qt._)((0,Xt.I)(e,h.BV.backend.epsilon()))),-this.learningRate),n);n.assign(t)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&(0,Kt.B9)(this.accumulatedGrads.map((e=>e.variable)))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);this.accumulatedGrads=e.map((e=>({originalName:e.name,variable:e.tensor.variable(false)})))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}pa.className="Adagrad",Vt(pa);var ia=a(3453),oa=a(827);class da extends na{constructor(e,t,a,n=null){super(),this.learningRate=e,this.beta1=t,this.beta2=a,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],(0,Kt.lu)((()=>{this.accBeta1=(0,aa.i)(t).variable(),this.accBeta2=(0,aa.i)(a).variable()})),null==n&&(this.epsilon=h.BV.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);(0,Kt.lu)((()=>{const a=(0,oa.l)(1,this.accBeta1),n=(0,oa.l)(1,this.accBeta2);t.forEach(((t,r)=>{const s=h.BV.registeredVariables[t];null==this.accumulatedFirstMoment[r]&&(this.accumulatedFirstMoment[r]={originalName:`${t}/m`,variable:(0,Kt.lu)((()=>(0,ea.P)(s).variable(false)))}),null==this.accumulatedSecondMoment[r]&&(this.accumulatedSecondMoment[r]={originalName:`${t}/v`,variable:(0,Kt.lu)((()=>(0,ea.P)(s).variable(false)))});const p=Array.isArray(e)?e[r].tensor:e[t];if(null==p)return;const i=this.accumulatedFirstMoment[r].variable,o=this.accumulatedSecondMoment[r].variable,d=(0,Xt.I)((0,Jt.d)(i,this.beta1),(0,Jt.d)(p,1-this.beta1)),l=(0,Xt.I)((0,Jt.d)(o,this.beta2),(0,Jt.d)((0,Yt.h)(p),1-this.beta2)),m=(0,Zt.h)(d,a),u=(0,Zt.h)(l,n);i.assign(d),o.assign(l);const c=(0,Xt.I)((0,Jt.d)((0,Zt.h)(m,(0,Xt.I)((0,Qt._)(u),this.epsilon)),-this.learningRate),s);s.assign(c)})),this.accBeta1.assign((0,Jt.d)(this.accBeta1,this.beta1)),this.accBeta2.assign((0,Jt.d)(this.accBeta2,this.beta2))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&(0,Kt.B9)(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedSecondMoment&&(0,Kt.B9)(this.accumulatedSecondMoment.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),(0,Kt.lu)((()=>{this.accBeta1.assign((0,ia.s)(this.beta1,this.iterations_+1)),this.accBeta2.assign((0,ia.s)(this.beta2,this.iterations_+1))}));const t=e.length/2;this.accumulatedFirstMoment=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(false)}))),this.accumulatedSecondMoment=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(false)})))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}da.className="Adam",Vt(da);var la=a(6235),ma=a(632);class ua extends na{constructor(e,t,a,n=null,r=0){super(),this.learningRate=e,this.beta1=t,this.beta2=a,this.epsilon=n,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],(0,Kt.lu)((()=>{this.iteration=(0,aa.i)(0).variable(),this.accBeta1=(0,aa.i)(t).variable()})),null==n&&(this.epsilon=h.BV.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);(0,Kt.lu)((()=>{const a=(0,oa.l)(1,this.accBeta1),n=(0,Zt.h)(-this.learningRate,(0,Xt.I)((0,Jt.d)(this.iteration,this.decay),1));t.forEach(((t,r)=>{const s=h.BV.registeredVariables[t];null==this.accumulatedFirstMoment[r]&&(this.accumulatedFirstMoment[r]={originalName:`${t}/m`,variable:(0,ea.P)(s).variable(false)}),null==this.accumulatedWeightedInfNorm[r]&&(this.accumulatedWeightedInfNorm[r]={originalName:`${t}/v`,variable:(0,ea.P)(s).variable(false)});const p=Array.isArray(e)?e[r].tensor:e[t];if(null==p)return;const i=this.accumulatedFirstMoment[r].variable,o=this.accumulatedWeightedInfNorm[r].variable,d=(0,Xt.I)((0,Jt.d)(i,this.beta1),(0,Jt.d)(p,1-this.beta1)),l=(0,Jt.d)(o,this.beta2),m=(0,la.W)(p),u=(0,ma.g)(l,m);i.assign(d),o.assign(u);const c=(0,Xt.I)((0,Jt.d)((0,Zt.h)(n,a),(0,Zt.h)(d,(0,Xt.I)(u,this.epsilon))),s);s.assign(c)})),this.iteration.assign((0,Xt.I)(this.iteration,1)),this.accBeta1.assign((0,Jt.d)(this.accBeta1,this.beta1))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&(0,Kt.B9)(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedWeightedInfNorm&&(0,Kt.B9)(this.accumulatedWeightedInfNorm.map((e=>e.variable)))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}ua.className="Adamax",Vt(ua);class ca extends na{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,a)=>{const n=Array.isArray(e)?e[a].tensor:e[t];if(null==n)return;const r=h.BV.registeredVariables[t];(0,Kt.lu)((()=>{const e=(0,Xt.I)((0,Jt.d)(this.c,n),r);r.assign(e)}))})),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=(0,Kt.Cn)((0,aa.i)(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(0!==(e=await this.extractIterations(e)).length)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}ca.className="SGD",Vt(ca);class ha extends ca{constructor(e,t,a=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=a,this.accumulations=[],this.m=(0,aa.i)(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,a)=>{const n=h.BV.registeredVariables[t];if(null==this.accumulations[a]){const e=!1;this.accumulations[a]={originalName:`${t}/momentum`,variable:(0,Kt.lu)((()=>(0,ea.P)(n).variable(e)))}}const r=this.accumulations[a].variable,s=Array.isArray(e)?e[a].tensor:e[t];null!=s&&(0,Kt.lu)((()=>{let e;const t=(0,Xt.I)((0,Jt.d)(this.m,r),s);e=this.useNesterov?(0,Xt.I)((0,Jt.d)(this.c,(0,Xt.I)(s,(0,Jt.d)(t,this.m))),n):(0,Xt.I)((0,Jt.d)(this.c,t),n),r.assign(t),n.assign(e)}))})),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&(0,Kt.B9)(this.accumulations.map((e=>e.variable)))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);this.accumulations=e.map((e=>({originalName:e.name,variable:e.tensor.variable(false)})))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}ha.className="Momentum",Vt(ha);class fa extends na{constructor(e,t=.9,a=0,n=null,r=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=a,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,null==n&&(this.epsilon=h.BV.backend.epsilon()),null==e)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,a)=>{const n=h.BV.registeredVariables[t],r=!1;null==this.accumulatedMeanSquares[a]&&(this.accumulatedMeanSquares[a]={originalName:`${t}/rms`,variable:(0,Kt.lu)((()=>(0,ea.P)(n).variable(r)))}),null==this.accumulatedMoments[a]&&(this.accumulatedMoments[a]={originalName:`${t}/momentum`,variable:(0,Kt.lu)((()=>(0,ea.P)(n).variable(r)))}),null==this.accumulatedMeanGrads[a]&&this.centered&&(this.accumulatedMeanGrads[a]={originalName:`${t}/mg`,variable:(0,Kt.lu)((()=>(0,ea.P)(n).variable(r)))});const s=Array.isArray(e)?e[a].tensor:e[t];if(null==s)return;const p=this.accumulatedMeanSquares[a].variable,i=this.accumulatedMoments[a].variable;(0,Kt.lu)((()=>{const e=(0,Xt.I)((0,Jt.d)(p,this.decay),(0,Jt.d)((0,Yt.h)(s),1-this.decay));if(this.centered){const t=this.accumulatedMeanGrads[a].variable,r=(0,Xt.I)((0,Jt.d)(t,this.decay),(0,Jt.d)(s,1-this.decay)),o=(0,Zt.h)((0,Jt.d)(s,this.learningRate),(0,Qt._)((0,oa.l)(e,(0,Xt.I)((0,Yt.h)(r),this.epsilon)))),d=(0,Xt.I)((0,Jt.d)(i,this.momentum),o);p.assign(e),t.assign(r),i.assign(d);const l=(0,oa.l)(n,d);n.assign(l)}else{const e=(0,Xt.I)((0,Jt.d)(p,this.decay),(0,Jt.d)((0,Yt.h)(s),1-this.decay)),t=(0,Xt.I)((0,Jt.d)(i,this.momentum),(0,Zt.h)((0,Jt.d)(s,this.learningRate),(0,Qt._)((0,Xt.I)(e,this.epsilon))));p.assign(e),i.assign(t);const a=(0,oa.l)(n,t);n.assign(a)}}))})),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&(0,Kt.B9)(this.accumulatedMeanSquares.map((e=>e.variable))),null!=this.accumulatedMeanGrads&&this.centered&&(0,Kt.B9)(this.accumulatedMeanGrads.map((e=>e.variable))),null!=this.accumulatedMoments&&(0,Kt.B9)(this.accumulatedMoments.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,a=!1;this.accumulatedMeanSquares=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(a)}))),this.accumulatedMoments=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(a)}))),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map((e=>({originalName:e.name,variable:e.tensor.variable(a)}))))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}fa.className="RMSProp",Vt(fa);class ga{static sgd(e){return new ca(e)}static momentum(e,t,a=!1){return new ha(e,t,a)}static rmsprop(e,t=.9,a=0,n=null,r=!1){return new fa(e,t,a,n,r)}static adam(e=.001,t=.9,a=.999,n=null){return new da(e,t,a,n)}static adadelta(e=.001,t=.95,a=null){return new ra(e,t,a)}static adamax(e=.002,t=.9,a=.999,n=null,r=0){return new ua(e,t,a,n,r)}static adagrad(e,t=.1){return new pa(e,t)}}var ya=a(1221),va=a(6522),ba=a(9876);const wa={sgd:ga.sgd,momentum:ga.momentum,adadelta:ga.adadelta,adagrad:ga.adagrad,rmsprop:ga.rmsprop,adamax:ga.adamax,adam:ga.adam},Na="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:e=>e();function ka(){return new Promise((e=>Na((()=>e()))))}var Sa=a(3591);function _a(e,t){const a=e[0].length;e.forEach(((e,t)=>{S.hu(e.length===a,(()=>`Error in concat${a}D: rank of tensors[${t}] must be the same as the rank of the rest (${a})`))})),S.hu(t>=0&&t`Error in concat${a}D: axis must be between 0 and ${a-1}.`));const n=e[0];e.forEach(((e,r)=>{for(let s=0;s`Error in concat${a}D: Shape of tensors[${r}] (${e}) does not match the shape of the rest (${n}) along the non-concatenated axis ${r}.`))}))}function Ta(e,t){const a=e[0].slice();for(let n=1;n=0)if(i>=0){if(i!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${i}`)}else n[p]=s}return n}function Aa(e){const t={FIRST_DIM_SIZE:xa.FIRST_DIM_SIZE,VALUE_ROWIDS:xa.VALUE_ROWIDS,ROW_LENGTHS:xa.ROW_LENGTHS,ROW_SPLITS:xa.ROW_SPLITS,ROW_LIMITS:xa.ROW_LIMITS,ROW_STARTS:xa.ROW_STARTS},a=[];for(const n of e){if(!(n in t))break;a.push(t[n])}return a}function Va(e){return 0===e.length?0:e[0]===xa.FIRST_DIM_SIZE?e.length-1:e.length}function Ma(e,t){if(null==e||null==t)return;const a=e.length,n=t.length;if(a>=n)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${a} must be less than ragged tensor input flatValues.rank = ${n})`);for(let r=0;r=0&&n>=0&&1!==a&&a!==n)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${a} but ragged tensor input.flatValues.shape[${r-e.length}] = ${n}`)}}!function(e){e[e.FIRST_DIM_SIZE=0]="FIRST_DIM_SIZE",e[e.VALUE_ROWIDS=1]="VALUE_ROWIDS",e[e.ROW_LENGTHS=2]="ROW_LENGTHS",e[e.ROW_SPLITS=3]="ROW_SPLITS",e[e.ROW_LIMITS=4]="ROW_LIMITS",e[e.ROW_STARTS=5]="ROW_STARTS"}(xa||(xa={}));const Fa=30;function Ba(e){return e<=Fa?e:(0,S.jP)(e,Math.floor(Math.sqrt(e)))}function Oa(e,t,a){return[a*("number"==typeof e?e:e[0]),t*("number"==typeof e?e:e[1])]}function $a(e,t,a,n=!0){let r=[];if(n)r=r.concat(t.slice(0)),r.push(e[0]/a),r=r.concat(e.slice(1));else{r=r.concat(e[0]);const a=t.length;for(let n=0;n=2*t+1||n%2==1?r.push(n):a.push(n);n.push(...a),n.push(0),n.push(...r)}return n}function Ra(e,t,a,n=!0){const r=[];n?r.push(e[0]/a):r.push(e[0]*a);for(let a=1;a/g;function pn(e,t){const a=((e=e.replace(/\s/g,"")).length-e.replace(sn,"").length)/rn.length;if(a<1)throw new Error("Equations without an arrow are not supported.");if(a>1)throw new Error('Equation must contain exactly one arrow ("->").');const[n,r]=e.split(rn);(0,S.hu)(-1===n.indexOf("..."),(()=>'The ellipsis notation ("...") is not supported yet.'));const s=n.split(","),p=s.length;if(t!==p)throw new Error(`Expected ${p} input tensors, received ${t}`);if(p>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");const i=[];for(let e=0;e-1!==e.indexOf(t))))throw new Error(`Output subscripts contain the label ${t} not present in the input subscripts.`);-1===i.indexOf(t)&&i.push(t)}for(let e=0;e-1!==e)),{permutationIndices:a,expandDims:n}}function dn(e,t,a){const n=new Array(e);for(let e=0;e`Expected dimension ${n[t[e][a]]} at axis ${a} of input shaped ${JSON.stringify(r)}, but got dimension ${r[a]}`))}}function ln(e,t){const a=e,n=[];let r=0;0===e.length&&a.push(-1),r=e.length+1;for(let e=0;ee===t))}function un(e,t){const a=[];for(let n=0;n"Number of splits must evenly divide the axis.")),n=new Array(t).fill(e.shape[a]/t);else{const r=t.reduce(((e,t)=>(-1===t&&(e+=1),e)),0);(0,S.hu)(r<=1,(()=>"There should be only one negative value in split array."));const s=t.indexOf(-1);if(-1!==s){const n=t.reduce(((e,t)=>t>0?e+t:e));t[s]=e.shape[a]-n}(0,S.hu)(e.shape[a]===t.reduce(((e,t)=>e+t)),(()=>"The sum of sizes must match the size of the axis dimension.")),n=t}return n}function hn(e){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${e}`}function fn(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function gn(e,t,a){return`indices(${e}, 0) is invalid: ${t} >= ${a}`}function yn(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function vn(e,t){return`size ${e} must be non-negative, not ${t}`}function bn(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function wn(e,t){return`Input to reshape is a SparseTensor with ${(0,S.NA)(e)}\n dense values, but the requested shape requires a multiple of ${(0,S.NA)(t)}. inputShape=${e} outputShape= ${t}`}function Nn(e,t){return`Input to reshape is a tensor with ${(0,S.NA)(e)} dense values, but the requested shape has ${(0,S.NA)(t)}. inputShape=${e} outputShape=${t}`}function kn(){return"segment ids must be >= 0"}function Sn(){return"segment ids are not increasing"}function _n(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function Tn(e,t,a){return`Bad: indices[${e}] == ${t} out of range [0, ${a})`}function xn(e,t){let a,n=!1;for(e<=Fa?(a=e,n=!0):a=(0,S.jP)(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=(0,S.jP)(e,a+1);return a}function In(e,t,a){const n=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${n}`);if(n<0&&(n+=r),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) (\n ${s}).`);if(a(0,Ft.decodeString)(e)))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function An(e){return e.map((e=>(0,Ft.encodeString)(e)))}var Vn=a(3337),Mn=a(8333),Fn=a(8713)},9121:(e,t,a)=>{"use strict";a.d(t,{SYM:()=>n,VGw:()=>r,SpW:()=>s,mm_:()=>p,Xze:()=>i,oT6:()=>o,IKK:()=>d,sJF:()=>l,aJk:()=>m,M2y:()=>u,qw7:()=>c,jMg:()=>h,Oyi:()=>f,QCc:()=>g,JhU:()=>y,ROF:()=>v,_k9:()=>b,IMb:()=>w,XLW:()=>N,zws:()=>k,zvY:()=>S,Ly9:()=>_,eEB:()=>T,RFZ:()=>x,gJX:()=>I,xnO:()=>E,Zz9:()=>D,yj2:()=>A,Eh3:()=>V,mhS:()=>M,wUP:()=>F,wm:()=>B,x12:()=>O,o2y:()=>$,ik2:()=>C,mc4:()=>R,TR1:()=>P,Byc:()=>z,iHb:()=>L,VcC:()=>W,QRR:()=>U,T0n:()=>H,cie:()=>q,sL$:()=>G,y7R:()=>j,$w:()=>K,p4S:()=>X,ekb:()=>Z,Vn9:()=>J,oHH:()=>Q,$g6:()=>Y,SX0:()=>ee,HEU:()=>te,Omj:()=>ae,hdR:()=>ne,NEP:()=>re,YFo:()=>se,Y0y:()=>pe,vwp:()=>ie,deh:()=>oe,Uyb:()=>de,OR:()=>le,jeX:()=>me,sHE:()=>ue,qi_:()=>ce,q1x:()=>he,iZT:()=>fe,Acj:()=>ge,iJz:()=>ye,Qg5:()=>ve,J_u:()=>be,avt:()=>we,iWB:()=>Ne,r7n:()=>ke,J$2:()=>Se,vtC:()=>_e,CAk:()=>Te,e7N:()=>xe,ZbH:()=>Ie,kU:()=>Ee,PYm:()=>De,VfG:()=>Ae,MZg:()=>Ve,w6g:()=>Me,qCd:()=>Fe,qIC:()=>Be,eZ0:()=>Oe,Hhh:()=>$e,YoZ:()=>Ce,BMI:()=>Re,mTV:()=>Pe,OV7:()=>ze,OAf:()=>Le,OU7:()=>We,vFR:()=>Ue,q2K:()=>He,c17:()=>qe,q8u:()=>Ge,jQs:()=>je,Vbg:()=>Ke,NZg:()=>Xe,wYn:()=>Ze,kuV:()=>Je,yQU:()=>Qe,uv1:()=>Ye,cye:()=>et,W0H:()=>tt,qWM:()=>at,we_:()=>nt,QiL:()=>rt,lyA:()=>st,Kgp:()=>pt,pe_:()=>it,o0g:()=>ot,DlI:()=>dt,dDz:()=>lt,BiW:()=>mt,e6w:()=>ut,xJR:()=>ct,$HU:()=>ht,qkr:()=>ft,HZH:()=>gt,dpD:()=>yt,Hmb:()=>vt,_Yw:()=>bt,zbQ:()=>wt,SbG:()=>Nt,mKl:()=>kt,e07:()=>St,bV0:()=>_t,xQA:()=>Tt,nr8:()=>xt,PhF:()=>It,oFR:()=>Et,p2w:()=>Dt,RQH:()=>At,wYB:()=>Vt,i5y:()=>Mt,a5O:()=>Ft,MRv:()=>Bt,FKq:()=>Ot,GBy:()=>$t,TQc:()=>Ct,L8s:()=>Rt,Gcp:()=>Pt,O3z:()=>zt,nhH:()=>Lt,w3H:()=>Wt,ZjV:()=>Ut,D2d:()=>Ht,_tC:()=>qt,bK0:()=>Gt,jQk:()=>jt,_JP:()=>Kt,s1s:()=>Xt,XkS:()=>Zt,Tr8:()=>Jt,sEM:()=>Qt,MIZ:()=>Yt,n9L:()=>ea,cWu:()=>ta,wx7:()=>aa,G3Y:()=>na,kpP:()=>ra,ToN:()=>sa,Qvg:()=>pa,XDQ:()=>ia,RuY:()=>oa,h8e:()=>da,eBW:()=>la,b9H:()=>ma,usg:()=>ua,_V0:()=>ca,luS:()=>ha});const n="Abs",r="Acos",s="Acosh",p="Add",i="AddN",o="All",d="Any",l="ArgMax",m="ArgMin",u="Asin",c="Asinh",h="Atan",f="Atanh",g="Atan2",y="AvgPool",v="AvgPoolGrad",b="AvgPool3D",w="AvgPool3DGrad",N="BatchMatMul",k="BatchToSpaceND",S="Bincount",_="BroadcastTo",T="BroadcastArgs",x="Cast",I="Ceil",E="ClipByValue",D="Complex",A="ComplexAbs",V="Concat",M="Conv2D",F="Conv2DBackpropFilter",B="Conv2DBackpropInput",O="Conv3D",$="Conv3DBackpropFilterV2",C="Conv3DBackpropInputV2",R="Cos",P="Cosh",z="Cumprod",L="Cumsum",W="CropAndResize",U="DenseBincount",H="DepthToSpace",q="DepthwiseConv2dNative",G="DepthwiseConv2dNativeBackpropFilter",j="DepthwiseConv2dNativeBackpropInput",K="Diag",X="Dilation2D",Z="Dilation2DBackpropInput",J="Dilation2DBackpropFilter",Q="RealDiv",Y="Einsum",ee="Elu",te="EluGrad",ae="Erf",ne="Equal",re="Exp",se="ExpandDims",pe="Expm1",ie="FFT",oe="Fill",de="FlipLeftRight",le="Floor",me="FloorDiv",ue="FusedBatchNorm",ce="GatherV2",he="GatherNd",fe="Greater",ge="GreaterEqual",ye="Identity",ve="IFFT",be="Imag",we="IsFinite",Ne="IsInf",ke="IsNan",Se="LeakyRelu",_e="Less",Te="LessEqual",xe="LinSpace",Ie="Log",Ee="Log1p",De="LogicalAnd",Ae="LogicalNot",Ve="LogicalOr",Me="LogicalXor",Fe="LogSoftmax",Be="LowerBound",Oe="LRN",$e="LRNGrad",Ce="Max",Re="Maximum",Pe="MaxPool",ze="MaxPoolGrad",Le="MaxPool3D",We="MaxPool3DGrad",Ue="MaxPoolWithArgmax",He="Mean",qe="Min",Ge="Minimum",je="MirrorPad",Ke="Mod",Xe="Multinomial",Ze="Multiply",Je="Neg",Qe="NotEqual",Ye="NonMaxSuppressionV3",et="NonMaxSuppressionV4",tt="NonMaxSuppressionV5",at="OnesLike",nt="OneHot",rt="Pack",st="PadV2",pt="Pool",it="Pow",ot="Prelu",dt="Prod",lt="RaggedGather",mt="RaggedTensorToTensor",ut="Range",ct="Real",ht="Reciprocal",ft="Relu",gt="Reshape",yt="ResizeNearestNeighbor",vt="ResizeNearestNeighborGrad",bt="ResizeBilinear",wt="ResizeBilinearGrad",Nt="Relu6",kt="Reverse",St="Round",_t="Rsqrt",Tt="ScatterNd",xt="SearchSorted",It="Select",Et="Selu",Dt="Slice",At="Sin",Vt="Sinh",Mt="Sign",Ft="Sigmoid",Bt="Softplus",Ot="Sqrt",$t="Sum",Ct="SpaceToBatchND",Rt="SplitV",Pt="Softmax",zt="SparseFillEmptyRows",Lt="SparseReshape",Wt="SparseSegmentMean",Ut="SparseSegmentSum",Ht="SparseToDense",qt="SquaredDifference",Gt="Square",jt="StridedSlice",Kt="StringNGrams",Xt="StringSplit",Zt="StringToHashBucketFast",Jt="Sub",Qt="Tan",Yt="Tanh",ea="Tile",ta="TopK",aa="Transform",na="Transpose",ra="Unique",sa="Unpack",pa="UnsortedSegmentSum",ia="UpperBound",oa="ZerosLike",da="Step",la="FromPixels",ma="RotateWithOffset",ua="_FusedMatMul",ca="FusedConv2D",ha="FusedDepthwiseConv2D"},6151:(e,t,a)=>{"use strict";a.d(t,{pI:()=>o,uk:()=>d,tr:()=>l,wC:()=>m,Li:()=>u,nE:()=>c,bt:()=>h,T3:()=>f});var n=a(2885),r=a(5938),s=a(4706);const p=(0,r.R)("kernelRegistry",(()=>new Map)),i=(0,r.R)("gradRegistry",(()=>new Map));function o(e,t){const a=g(e,t);return p.get(a)}function d(e){return i.get(e)}function l(e){const t=p.entries(),a=[];for(;;){const{done:n,value:r}=t.next();if(n)break;const[s,p]=r,[i]=s.split("_");i===e&&a.push(p)}return a}function m(e){const{kernelName:t,backendName:a}=e,n=g(t,a);p.has(n)&&s.Z(`The kernel '${t}' for backend '${a}' is already registered`),p.set(n,e)}function u(e){const{kernelName:t}=e;i.has(t)&&(0,n.OB)().getBool("DEBUG")&&s.Z(`Overriding the gradient for '${t}'`),i.set(t,e)}function c(e,t){const a=g(e,t);if(!p.has(a))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);p.delete(a)}function h(e){if(!i.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);i.delete(e)}function f(e,t){l(e).forEach((e=>{m(Object.assign({},e,{backendName:t}))}))}function g(e,t){return`${t}_${e}`}},4706:(e,t,a)=>{"use strict";a.d(t,{Z:()=>r,c:()=>s});var n=a(2885);function r(...e){(0,n.OB)().getBool("IS_TEST")||(0,n.OB)().getBool("PROD")||console.warn(...e)}function s(...e){(0,n.OB)().getBool("IS_TEST")||(0,n.OB)().getBool("PROD")||console.log(...e)}},6235:(e,t,a)=>{"use strict";a.d(t,{W:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({abs_:function(e){const t=(0,s._1)(e,"x","abs");if("complex64"===t.dtype){const e={x:t};return n.BV.runKernel(r.yj2,e)}{const e={x:t};return n.BV.runKernel(r.SYM,e)}}})},6407:(e,t,a)=>{"use strict";a.d(t,{I:()=>i});var n=a(7097),r=a(9121),s=a(747),p=a(3740);const i=(0,a(2668).op)({add_:function(e,t){let a=(0,p._1)(e,"a","add"),i=(0,p._1)(t,"b","add");[a,i]=(0,s.makeTypesMatch)(a,i);const o={a,b:i};return n.BV.runKernel(r.mm_,o)}})},3591:(e,t,a)=>{"use strict";a.d(t,{YB:()=>r,Vh:()=>s,kz:()=>p,rv:()=>i,lB:()=>o,Q3:()=>d,LJ:()=>l,sY:()=>m});var n=a(569);function r(e,t){for(let a=0;ae[t]))]}function i(e,t){return s(e,t.map((e=>1)),t)}function o(e,t,a){n.hu(r(t,a),(()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${a} input.`))}function d(e,t){if(r(e,t))return null;const a=[];for(let n=0;na.push(e))),a}function l(e){return e.map(((e,t)=>[t,e])).sort(((e,t)=>e[1]-t[1])).map((e=>e[0]))}function m(e,t){const a=[];for(let n=t-e;n{"use strict";function n(e,t){const a=e.length,n=[];for(let r=0;r1&&1===p&&n.unshift(s)}return n}function r(e,t){const a=[];for(let n=0;n1)&&a.unshift(s)}return a}function s(e,t){const a=[],n=Math.max(e.length,t.length);for(let r=0;rn,getReductionAxes:()=>r,assertAndGetBroadcastShape:()=>s})},2657:(e,t,a)=>{"use strict";a.d(t,{f:()=>s});var n=a(4077),r=a(569);function s(e,t="float32",a){return t=t||"float32",r.Mu(e),new n.YD(e,t,a)}},2271:(e,t,a)=>{"use strict";a.d(t,{p:()=>i});var n=a(7097),r=a(9121),s=a(3740),p=a(569);const i=(0,a(2668).op)({cast_:function(e,t){const a=(0,s._1)(e,"x","cast");if(!p.LP(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if("string"===t&&"string"!==a.dtype||"string"!==t&&"string"===a.dtype)throw new Error("Only strings can be casted to strings");const i={x:a},o={dtype:t};return n.BV.runKernel(r.RFZ,i,o)}})},8723:(e,t,a)=>{"use strict";a.d(t,{d:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({clone_:function(e){const t={x:(0,s._1)(e,"x","clone","string_or_numeric")};return n.BV.runKernel(r.iJz,t)}})},1661:(e,t,a)=>{"use strict";a.d(t,{P:()=>i});var n=a(7097),r=a(9121),s=a(3740),p=a(569);const i=(0,a(2668).op)({complex_:function(e,t){const a=(0,s._1)(e,"real","complex"),i=(0,s._1)(t,"imag","complex");p.k5(a.shape,i.shape,`real and imag shapes, ${a.shape} and ${i.shape}, must match in call to tf.complex().`);const o={real:a,imag:i};return n.BV.runKernel(r.Zz9,o)}})},2582:(e,t,a)=>{"use strict";a.d(t,{Rf:()=>r,Xw:()=>s,pl:()=>p,Ix:()=>i,jw:()=>o,aO:()=>d,I0:()=>h,jT:()=>f,sl:()=>g,m:()=>y});var n=a(569);function r(e,t,a,n,r="NHWC",s){return i(e,[...t,e[3]],a,s,n,null,null,g(r))}function s(e,t,a,n,r,s,p="channelsLast"){const[o,d]=l(t);let m;if("channelsLast"===p)m=[o,d,e[3],e[3]];else{if("channelsFirst"!==p)throw new Error(`Unknown dataFormat ${p}`);m=[o,d,e[1],e[1]]}return i(e,m,a,n,r,s,!1,p)}function p(e,t,a,n,r,s,p="NDHWC"){const[i,d,l]=m(t);let u,c;if("NDHWC"===p)c="channelsLast",u=[i,d,l,e[4],e[4]];else{if("NCDHW"!==p)throw new Error(`Unknown dataFormat ${p}`);c="channelsFirst",u=[i,d,l,e[1],e[1]]}return o(e,u,a,n,r,!1,c,s)}function i(e,t,a,n,r,s,p=!1,i="channelsLast"){let[o,m,h,f]=[-1,-1,-1,-1];if("channelsLast"===i)[o,m,h,f]=e;else{if("channelsFirst"!==i)throw new Error(`Unknown dataFormat ${i}`);[o,f,m,h]=e}const[g,y,,v]=t,[b,w]=l(a),[N,k]=l(n),S=u(g,N),_=u(y,k),{padInfo:T,outHeight:x,outWidth:I}=function(e,t,a,n,r,s,p,i,o){let l,m,u;if("number"==typeof e){l={top:e,bottom:e,left:e,right:e,type:0===e?"VALID":"NUMBER"};const r=function(e,t,a,n,r){null==n&&(n=d(e,t,a));const s=e[0],p=e[1],i=c((s-t+2*n)/a+1,r),o=c((p-t+2*n)/a+1,r);return[i,o]}([t,a],s,n,e,i);m=r[0],u=r[1]}else if("same"===e){m=Math.ceil(t/n),u=Math.ceil(a/r);const e=Math.max(0,(m-1)*n+s-t),i=Math.max(0,(u-1)*r+p-a),o=Math.floor(e/2),d=e-o,c=Math.floor(i/2);l={top:o,bottom:d,left:c,right:i-c,type:"SAME"}}else if("valid"===e)l={top:0,bottom:0,left:0,right:0,type:"VALID"},m=Math.ceil((t-s+1)/n),u=Math.ceil((a-p+1)/r);else{if("object"!=typeof e)throw Error(`Unknown padding parameter: ${e}`);{const d="channelsLast"===o?e[1][0]:e[2][0],h="channelsLast"===o?e[1][1]:e[2][1],f="channelsLast"===o?e[2][0]:e[3][0],g="channelsLast"===o?e[2][1]:e[3][1];l={top:d,bottom:h,left:f,right:g,type:0===d&&0===h&&0===f&&0===g?"VALID":"EXPLICIT"},m=c((t-s+d+h)/n+1,i),u=c((a-p+f+g)/r+1,i)}}return{padInfo:l,outHeight:m,outWidth:u}}(r,m,h,b,w,S,_,s,i),E=p?v*f:v;let D;return"channelsFirst"===i?D=[o,E,x,I]:"channelsLast"===i&&(D=[o,x,I,E]),{batchSize:o,dataFormat:i,inHeight:m,inWidth:h,inChannels:f,outHeight:x,outWidth:I,outChannels:E,padInfo:T,strideHeight:b,strideWidth:w,filterHeight:g,filterWidth:y,effectiveFilterHeight:S,effectiveFilterWidth:_,dilationHeight:N,dilationWidth:k,inShape:e,outShape:D,filterShape:t}}function o(e,t,a,n,r,s=!1,p="channelsLast",i){let[o,l,h,f,g]=[-1,-1,-1,-1,-1];if("channelsLast"===p)[o,l,h,f,g]=e;else{if("channelsFirst"!==p)throw new Error(`Unknown dataFormat ${p}`);[o,g,l,h,f]=e}const[y,v,b,,w]=t,[N,k,S]=m(a),[_,T,x]=m(n),I=u(y,_),E=u(v,T),D=u(b,x),{padInfo:A,outDepth:V,outHeight:M,outWidth:F}=function(e,t,a,n,r,s,p,i,o,l,m){let u,h,f,g;if("number"==typeof e){u={top:e,bottom:e,left:e,right:e,front:e,back:e,type:0===e?"VALID":"NUMBER"};const s=function(e,t,a,n,r,s){null==r&&(r=d(e,t,n));const p=e[0],i=e[1],o=e[2],l=c((p-t+2*r)/n+1,s),m=c((i-t+2*r)/n+1,s),u=c((o-t+2*r)/n+1,s);return[l,m,u,a]}([t,a,n,1],i,1,r,e,m);h=s[0],f=s[1],g=s[2]}else if("same"===e){h=Math.ceil(t/r),f=Math.ceil(a/s),g=Math.ceil(n/p);const e=(h-1)*r+i-t,d=(f-1)*s+o-a,m=(g-1)*p+l-n,c=Math.floor(e/2),y=e-c,v=Math.floor(d/2),b=d-v,w=Math.floor(m/2);u={top:v,bottom:b,left:w,right:m-w,front:c,back:y,type:"SAME"}}else{if("valid"!==e)throw Error(`Unknown padding parameter: ${e}`);u={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},h=Math.ceil((t-i+1)/r),f=Math.ceil((a-o+1)/s),g=Math.ceil((n-l+1)/p)}return{padInfo:u,outDepth:h,outHeight:f,outWidth:g}}(r,l,h,f,N,k,S,I,E,D,i),B=s?w*g:w;let O;return"channelsFirst"===p?O=[o,B,V,M,F]:"channelsLast"===p&&(O=[o,V,M,F,B]),{batchSize:o,dataFormat:p,inDepth:l,inHeight:h,inWidth:f,inChannels:g,outDepth:V,outHeight:M,outWidth:F,outChannels:B,padInfo:A,strideDepth:N,strideHeight:k,strideWidth:S,filterDepth:y,filterHeight:v,filterWidth:b,effectiveFilterDepth:I,effectiveFilterHeight:E,effectiveFilterWidth:D,dilationDepth:_,dilationHeight:T,dilationWidth:x,inShape:e,outShape:O,filterShape:t}}function d(e,t,a,n=1){const r=u(t,n);return Math.floor((e[0]*(a-1)-a+r)/2)}function l(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function m(e){return"number"==typeof e?[e,e,e]:e}function u(e,t){return t<=1?e:e+(e-1)*(t-1)}function c(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function h(e){const[t,a,n]=l(e);return 1===t&&1===a&&1===n}function f(e,t){return h(e)||h(t)}function g(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function y(e,t,a){if(null!=a){if("string"==typeof t)throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${a} but got pad ${t}.`);if("number"==typeof t)n.hu(n.GN(t),(()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${a} but got pad ${t}.`));else{if("object"!=typeof t)throw Error(`Error in ${e}: Unknown padding parameter: ${t}`);t.forEach((t=>{t.forEach((t=>{n.hu(n.GN(t),(()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${a} but got pad ${t}.`))}))}))}}}},1274:(e,t,a)=>{"use strict";a.d(t,{h:()=>o});var n=a(7097),r=a(9121),s=a(747),p=a(3740),i=a(9165);const o=(0,a(2668).op)({div_:function(e,t){let a=(0,p._1)(e,"a","div"),o=(0,p._1)(t,"b","div");if([a,o]=(0,s.makeTypesMatch)(a,o),"int32"===a.dtype&&"int32"===o.dtype)return(0,i.q)(a,o);const d={a,b:o};return n.BV.runKernel(r.oHH,d,{})}})},3233:(e,t,a)=>{"use strict";a.d(t,{p:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({elu_:function(e){const t={x:(0,s._1)(e,"x","elu","float32")};return n.BV.runKernel(r.SX0,t)}})},4006:(e,t,a)=>{"use strict";a.d(t,{h:()=>s});var n=a(7097),r=a(9121);function s(e,t,a){const s={shape:e,value:t,dtype:a};return n.BV.runKernel(r.deh,{},s)}},9165:(e,t,a)=>{"use strict";a.d(t,{q:()=>i});var n=a(7097),r=a(9121),s=a(747),p=a(3740);const i=(0,a(2668).op)({floorDiv_:function(e,t){let a=(0,p._1)(e,"a","floorDiv"),i=(0,p._1)(t,"b","floorDiv");[a,i]=(0,s.makeTypesMatch)(a,i);const o={a,b:i};return n.BV.runKernel(r.jeX,o)}})},9323:(e,t,a)=>{"use strict";a.d(t,{Fr:()=>h,pf:()=>f,QH:()=>g,uy:()=>y});var n=a(2200),r=a(3233),s=a(9133),p=a(4841),i=a(8151),o=a(7409),d=a(3582),l=a(4968),m=a(625),u=a(1901),c=a(5475);function h(e,t,a){if(null==a||"linear"===a)return e;if("relu"===a)return(0,p.d)(e,(0,u.N)(t));throw new Error(`Cannot compute gradient for fused activation ${a}.`)}function f(e,t){let a=t;const r=n.getReductionAxes(e.shape,t.shape);return r.length>0&&(a=(0,c.S)(a,r)),(0,l.X)(a,e.shape)}function g(e,t,a,n){if("linear"===t)return e;if("relu"===t)return(0,o.U)(e);if("elu"===t)return(0,r.p)(e);if("relu6"===t)return(0,d.b)(e);if("prelu"===t)return(0,i.A)(e,a);if("leakyrelu"===t)return(0,s.h)(e,n);if("sigmoid"===t)return(0,m.X)(e);throw new Error(`Unknown fused activation ${t}.`)}const y=(e,t)=>!(e>0)||"linear"===t},4386:(e,t,a)=>{"use strict";a.d(t,{a:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({imag_:function(e){const t={input:(0,s._1)(e,"input","imag")};return n.BV.runKernel(r.J_u,t)}})},9133:(e,t,a)=>{"use strict";a.d(t,{h:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({leakyRelu_:function(e,t=.2){const a={x:(0,s._1)(e,"x","leakyRelu")},p={alpha:t};return n.BV.runKernel(r.J$2,a,p)}})},9876:(e,t,a)=>{"use strict";var n;a.d(t,{I:()=>n}),function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"}(n||(n={}))},8687:(e,t,a)=>{"use strict";a.d(t,{O:()=>i});var n=a(7097),r=a(9121),s=a(747),p=a(3740);const i=(0,a(2668).op)({matMul_:function(e,t,a=!1,i=!1){let o=(0,p._1)(e,"a","matMul"),d=(0,p._1)(t,"b","matMul");[o,d]=(0,s.makeTypesMatch)(o,d);const l={a:o,b:d},m={transposeA:a,transposeB:i};return n.BV.runKernel(r.XLW,l,m)}})},632:(e,t,a)=>{"use strict";a.d(t,{g:()=>d});var n=a(7097),r=a(9121),s=a(747),p=a(3740),i=a(2200),o=a(2271);const d=(0,a(2668).op)({maximum_:function(e,t){let a=(0,p._1)(e,"a","maximum"),d=(0,p._1)(t,"b","maximum");[a,d]=(0,s.makeTypesMatch)(a,d),"bool"===a.dtype&&(a=(0,o.p)(a,"int32"),d=(0,o.p)(d,"int32")),(0,i.assertAndGetBroadcastShape)(a.shape,d.shape);const l={a,b:d};return n.BV.runKernel(r.BMI,l)}})},4841:(e,t,a)=>{"use strict";a.d(t,{d:()=>i});var n=a(7097),r=a(9121),s=a(747),p=a(3740);const i=(0,a(2668).op)({mul_:function(e,t){let a=(0,p._1)(e,"a","mul"),i=(0,p._1)(t,"b","mul");[a,i]=(0,s.makeTypesMatch)(a,i);const o={a,b:i};return n.BV.runKernel(r.wYn,o)}})},7370:(e,t,a)=>{"use strict";a.d(t,{W:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({neg_:function(e){const t={x:(0,s._1)(e,"x","neg")};return n.BV.runKernel(r.kuV,t)}})},6708:(e,t,a)=>{"use strict";a.d(t,{l:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({oneHot_:function(e,t,a=1,p=0,i="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);const o={indices:(0,s._1)(e,"indices","oneHot","int32")},d={dtype:i,depth:t,onValue:a,offValue:p};return n.BV.runKernel(r.we_,o,d)}})},2668:(e,t,a)=>{"use strict";a.d(t,{z:()=>s,op:()=>p});var n=a(7097),r=a(569);const s="__op";function p(e){const t=Object.keys(e);if(1!==t.length)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let a=t[0];const p=e[a];a.endsWith("_")&&(a=a.substring(0,a.length-1)),a+=s;const i=(...e)=>{n.BV.startScope(a);try{const t=p(...e);return(0,r.tI)(t)&&console.error("Cannot return a Promise inside of tidy."),n.BV.endScope(t),t}catch(e){throw n.BV.endScope(null),e}};return Object.defineProperty(i,"name",{value:a,configurable:!0}),i}},6522:(e,t,a)=>{"use strict";a.d(t,{zvA:()=>o.z,WnP:()=>r.W,Khb:()=>d,__u:()=>l,IHx:()=>m.I,QBD:()=>c,$6P:()=>h,YjB:()=>f,NqF:()=>g,vHJ:()=>y,ZRM:()=>v,VfV:()=>b,z4N:()=>w,fvJ:()=>k,C80:()=>S,wS1:()=>I,uR5:()=>E,zEQ:()=>$,tgs:()=>R,Dxk:()=>P,JY5:()=>z,p3b:()=>L,E4h:()=>C,yE8:()=>W,anm:()=>tn,XsQ:()=>U,UFq:()=>H,f3b:()=>q.f,pju:()=>_.p,mDi:()=>G,iUl:()=>K,d9v:()=>D.d,PYB:()=>X.P,zoF:()=>A,gME:()=>Z,Izb:()=>J,MNy:()=>Q,ZaL:()=>Y,PAt:()=>te,Tek:()=>ee,bc:()=>ne,pdZ:()=>re,$QV:()=>pe,mCk:()=>ie,f9Y:()=>oe,mew:()=>mn,$Gn:()=>de,zbp:()=>le,ppE:()=>me,nTT:()=>ue,B10:()=>ce,Ka3:()=>he,WmZ:()=>fe,hiC:()=>ge.h,NTj:()=>Ne,AKD:()=>ke,rvX:()=>dn,WYO:()=>Se,pyx:()=>_e.p,GRh:()=>ln,DgJ:()=>ve,qNN:()=>Te,d2q:()=>$e,Qqt:()=>Ce,dt4:()=>Re,t$B:()=>Pe,iyy:()=>Le,kp_:()=>Ia,hlL:()=>j.h,GWj:()=>We,qPi:()=>Ue.q,imm:()=>n,Iqj:()=>He,dbB:()=>on,pjt:()=>qe,brS:()=>Ge,Sxn:()=>Ea,asL:()=>je.a,BHj:()=>lr,V3u:()=>un,wx0:()=>Da,xVT:()=>Ke,UWc:()=>Xe,i2d:()=>Ze,hi7:()=>Je.h,d9m:()=>Qe,zN1:()=>Ye,$r2:()=>mr,SX3:()=>et,G9k:()=>tt,cM7:()=>at,Krr:()=>nt,e_t:()=>it,CmS:()=>dt,l_t:()=>lt,HvI:()=>mt,hJK:()=>ut,K5V:()=>ct,egP:()=>ht,MB5:()=>ur,eab:()=>yt,OI3:()=>V.O,Fp7:()=>Ie,_sB:()=>vt,YQQ:()=>bt,Ip$:()=>wt,gWQ:()=>Nt.g,J69:()=>kt,ry_:()=>xt,VV$:()=>Ee,LTh:()=>It,VdP:()=>Et,wQq:()=>Dt,Gi7:()=>At,p_:()=>nn,dC7:()=>M.d,rq4:()=>Vt,SJ_:()=>Mt,W76:()=>st.W,KOy:()=>Oe,Quu:()=>Ft,lfX:()=>Bt.l,iUs:()=>_t,JpU:()=>Ot,op:()=>o.op,N2O:()=>$t,vku:()=>Ct,pNR:()=>Rt,koy:()=>Pt,t1L:()=>zt,lGY:()=>Lt,d_R:()=>Ut,sQ3:()=>De.s,AL3:()=>Ht.A,S0v:()=>qt.S,WVs:()=>Gt,$gW:()=>jt,N89:()=>Kt,TN_:()=>Xt,wzB:()=>ea,nGf:()=>ta,ruB:()=>aa,LGj:()=>na,w6H:()=>ra,kwC:()=>sa.k,M25:()=>pa,UYe:()=>ia.U,btT:()=>oa.b,XLQ:()=>x.X,GYS:()=>da,SDf:()=>la,diP:()=>ma,sx7:()=>ua,mG2:()=>ca,QEs:()=>Va,NMM:()=>ha,bp0:()=>fa,iD$:()=>Ae.i,snQ:()=>sn,zcT:()=>gt,U8D:()=>ga,U_I:()=>ya,ODp:()=>va,XD2:()=>F.X,Xxe:()=>ba,tdS:()=>dr,O$l:()=>wa,R_K:()=>Na,tPi:()=>B,jZU:()=>ka,SmN:()=>Sa,CnO:()=>_a,p0P:()=>Ta,XAC:()=>xa,Wvh:()=>pt,fBT:()=>Wt,rVs:()=>cr,ers:()=>pn,uN7:()=>or,Vl2:()=>Aa,_b3:()=>Ve._,h62:()=>Me.h,$i:()=>Ma,L9e:()=>Fa,knu:()=>Ba,Nbs:()=>Oa.N,NXj:()=>$a,Z_8:()=>hr,luU:()=>ot.l,Smz:()=>Fe.S,ORZ:()=>Ca,AEp:()=>O,XeE:()=>Ra.X,RRF:()=>za,odF:()=>La,wOQ:()=>Wa.w,yXz:()=>Ua,Bfx:()=>Ha,xZs:()=>qa,Gg6:()=>ze,hg7:()=>Ga,p4s:()=>an.p,Xu6:()=>ja,Two:()=>Ka,pUJ:()=>Xa,HHK:()=>Za,GaM:()=>Ja,VD$:()=>Qa,arb:()=>be,itS:()=>en,lls:()=>St,P84:()=>we.P});var n={};a.r(n),a.d(n,{conv2d:()=>fn,depthwiseConv2d:()=>vn,matMul:()=>bn});var r=a(6235),s=a(7097),p=a(9121),i=a(3740),o=a(2668);const d=(0,o.op)({acos_:function(e){const t={x:(0,i._1)(e,"x","acos")};return s.BV.runKernel(p.VGw,t)}});const l=(0,o.op)({acosh_:function(e){const t={x:(0,i._1)(e,"x","acosh")};return s.BV.runKernel(p.SpW,t)}});var m=a(6407),u=a(569);const c=(0,o.op)({addN_:function(e){u.hu(Array.isArray(e),(()=>"The argument passed to tf.addN() must be a list of tensors")),u.hu(e.length>=1,(()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`));const t=e.map(((e,t)=>(0,i._1)(e,`tensors${t}`,"addN"))),a=t[0];t.forEach((e=>{if(e.dtype!==a.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")})),t.forEach((e=>{if(!u.cO(e.shape,a.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")}));const n=t;return s.BV.runKernel(p.Xze,n)}});const h=(0,o.op)({all_:function(e,t=null,a=!1){const n={x:(0,i._1)(e,"x","all","bool")},r={axis:t,keepDims:a};return s.BV.runKernel(p.oT6,n,r)}});const f=(0,o.op)({any_:function(e,t=null,a=!1){const n={x:(0,i._1)(e,"x","any","bool")},r={axis:t,keepDims:a};return s.BV.runKernel(p.IKK,n,r)}});const g=(0,o.op)({argMax_:function(e,t=0){const a={x:(0,i._1)(e,"x","argMax")},n={axis:t};return s.BV.runKernel(p.sJF,a,n)}});const y=(0,o.op)({argMin_:function(e,t=0){const a={x:(0,i._1)(e,"x","argMin")},n={axis:t};return s.BV.runKernel(p.aJk,a,n)}});const v=(0,o.op)({asin_:function(e){const t={x:(0,i._1)(e,"x","asin")};return s.BV.runKernel(p.M2y,t)}});const b=(0,o.op)({asinh_:function(e){const t={x:(0,i._1)(e,"x","asinh")};return s.BV.runKernel(p.qw7,t)}});const w=(0,o.op)({atan_:function(e){const t={x:(0,i._1)(e,"x","atan")};return s.BV.runKernel(p.jMg,t)}});var N=a(747);const k=(0,o.op)({atan2_:function(e,t){let a=(0,i._1)(e,"a","atan2"),n=(0,i._1)(t,"b","atan2");[a,n]=(0,N.makeTypesMatch)(a,n);const r={a,b:n};return s.BV.runKernel(p.QCc,r)}});const S=(0,o.op)({atanh_:function(e){const t={x:(0,i._1)(e,"x","atanh")};return s.BV.runKernel(p.Oyi,t)}});var _=a(2271),T=a(2582),x=a(4968);const I=(0,o.op)({avgPool_:function(e,t,a,n,r){const o=(0,i._1)(e,"x","avgPool","float32");u.hu(T.jT(a,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '1'`));let d=o,l=!1;3===o.rank&&(l=!0,d=(0,x.X)(o,[1,o.shape[0],o.shape[1],o.shape[2]])),u.hu(4===d.rank,(()=>`Error in avgPool: x must be rank 4 but got rank ${d.rank}.`)),T.m("avgPool",n,r);const m={x:d},c={filterSize:t,strides:a,pad:n,dimRoundingMode:r};let h=s.BV.runKernel(p.JhU,m,c);return h=(0,_.p)(h,o.dtype),l?(0,x.X)(h,[h.shape[1],h.shape[2],h.shape[3]]):h}});const E=(0,o.op)({avgPool3d_:function(e,t,a,n,r,o="NDHWC"){const d=(0,i._1)(e,"x","avgPool3d","float32");let l=d,m=!1;4===d.rank&&(m=!0,l=(0,x.X)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),u.hu(5===l.rank,(()=>`Error in avgPool3d: x must be rank 5 but got rank ${l.rank}.`)),u.hu("NDHWC"===o,(()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${o}`)),(0,T.m)("avgPool3d",n,r);const c={x:l},h={filterSize:t,strides:a,pad:n,dimRoundingMode:r,dataFormat:o};let f=s.BV.runKernel(p._k9,c,h);return f=(0,_.p)(f,l.dtype),m?(0,x.X)(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}});var D=a(8723);const A=(0,o.op)({concat_:function(e,t=0){(0,u.hu)(e.length>=1,(()=>"Pass at least one tensor to concat"));const a=(0,i.sI)(e,"tensors","concat","string_or_numeric");if("complex64"===a[0].dtype&&a.forEach((e=>{if("complex64"!==e.dtype)throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${e.dtype}. `)})),1===a.length)return(0,D.d)(a[0]);const n=a,r={axis:t};return s.BV.runKernel(p.Eh3,n,r)}});var V=a(8687),M=a(4841),F=a(625);const B=(0,o.op)({slice_:function(e,t,a){const n=(0,i._1)(e,"x","slice","string_or_numeric");if(0===n.rank)throw new Error("Slicing scalar is not possible");const r={x:n},o={begin:t,size:a};return s.BV.runKernel(p.p2w,r,o)}});const O=(0,o.op)({tanh_:function(e){const t={x:(0,i._1)(e,"x","tanh","float32")};return s.BV.runKernel(p.MIZ,t)}});const $=(0,o.op)({basicLSTMCell_:function(e,t,a,n,r,s){const p=(0,i._1)(e,"forgetBias","basicLSTMCell"),o=(0,i._1)(t,"lstmKernel","basicLSTMCell"),d=(0,i._1)(a,"lstmBias","basicLSTMCell"),l=(0,i._1)(n,"data","basicLSTMCell"),u=(0,i._1)(r,"c","basicLSTMCell"),c=(0,i._1)(s,"h","basicLSTMCell"),h=A([l,c],1),f=(0,V.O)(h,o),g=(0,m.I)(f,d),y=g.shape[0],v=g.shape[1]/4,b=[y,v],w=B(g,[0,0],b),N=B(g,[0,v],b),k=B(g,[0,2*v],b),S=B(g,[0,3*v],b),_=(0,m.I)((0,M.d)((0,F.X)(w),O(N)),(0,M.d)(u,(0,F.X)((0,m.I)(p,k))));return[_,(0,M.d)(O(_),(0,F.X)(S))]}});const C=(0,o.op)({batchToSpaceND_:function(e,t,a){const n=(0,i._1)(e,"x","batchToSpaceND"),r=t.reduce(((e,t)=>e*t));u.hu(n.rank>=1+t.length,(()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`)),u.hu(a.length===t.length,(()=>`crops.length is ${a.length} but should be equal to blockShape.length ${t.length}`)),u.hu(n.shape[0]%r==0,(()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`));const o={x:n},d={blockShape:t,crops:a};return s.BV.runKernel(p.zws,o,d)}});const R=(0,o.op)({batchNorm_:function(e,t,a,n,r,o){null==o&&(o=.001);const d=(0,i._1)(e,"x","batchNorm"),l=(0,i._1)(t,"mean","batchNorm"),m=(0,i._1)(a,"variance","batchNorm");let c,h;null!=r&&(c=(0,i._1)(r,"scale","batchNorm")),null!=n&&(h=(0,i._1)(n,"offset","batchNorm")),u.hu(l.rank===m.rank,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),u.hu(null==h||l.rank===h.rank,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),u.hu(null==c||l.rank===c.rank,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));const f=function(e){let t;return t=0===e.rank||1===e.rank?(0,x.X)(e,[1,1,1,e.size]):2===e.rank?(0,x.X)(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?(0,x.X)(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e,t}(d),g={x:f,scale:c,offset:h,mean:l,variance:m},y={varianceEpsilon:o},v=s.BV.runKernel(p.sHE,g,y);return(0,x.X)(v,d.shape)}});const P=(0,o.op)({batchNorm2d_:function(e,t,a,n,r,s){const p=(0,i._1)(e,"x","batchNorm"),o=(0,i._1)(t,"mean","batchNorm"),d=(0,i._1)(a,"variance","batchNorm");let l,m;return null!=r&&(l=(0,i._1)(r,"scale","batchNorm")),null!=n&&(m=(0,i._1)(n,"offset","batchNorm")),u.hu(2===p.rank,(()=>`Error in batchNorm2D: x must be rank 2 but got rank ${p.rank}.`)),u.hu(2===o.rank||1===o.rank,(()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`)),u.hu(2===d.rank||1===d.rank,(()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${d.rank}.`)),null!=l&&u.hu(2===l.rank||1===l.rank,(()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.rank}.`)),null!=m&&u.hu(2===m.rank||1===m.rank,(()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${m.rank}.`)),R(p,o,d,m,l,s)}});const z=(0,o.op)({batchNorm3d_:function(e,t,a,n,r,s){const p=(0,i._1)(e,"x","batchNorm"),o=(0,i._1)(t,"mean","batchNorm"),d=(0,i._1)(a,"variance","batchNorm");let l,m;return null!=r&&(l=(0,i._1)(r,"scale","batchNorm")),null!=n&&(m=(0,i._1)(n,"offset","batchNorm")),u.hu(3===p.rank,(()=>`Error in batchNorm3D: x must be rank 3 but got rank ${p.rank}.`)),u.hu(3===o.rank||1===o.rank,(()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`)),u.hu(3===d.rank||1===d.rank,(()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${d.rank}.`)),null!=l&&u.hu(3===l.rank||1===l.rank,(()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.rank}.`)),null!=m&&u.hu(3===m.rank||1===m.rank,(()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${m.rank}.`)),R(p,o,d,m,l,s)}});const L=(0,o.op)({batchNorm4d_:function(e,t,a,n,r,s){const p=(0,i._1)(e,"x","batchNorm"),o=(0,i._1)(t,"mean","batchNorm"),d=(0,i._1)(a,"variance","batchNorm");let l,m;return null!=r&&(l=(0,i._1)(r,"scale","batchNorm")),null!=n&&(m=(0,i._1)(n,"offset","batchNorm")),u.hu(4===p.rank,(()=>`Error in batchNorm4D: x must be rank 4 but got rank ${p.rank}.`)),u.hu(4===o.rank||1===o.rank,(()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`)),u.hu(4===d.rank||1===d.rank,(()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${d.rank}.`)),null!=l&&u.hu(4===l.rank||1===l.rank,(()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.rank}.`)),null!=m&&u.hu(4===m.rank||1===m.rank,(()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${m.rank}.`)),R(p,o,d,m,l,s)}});const W=(0,o.op)({bincount_:function(e,t,a){const n=(0,i._1)(e,"x","bincount"),r=(0,i._1)(t,"weights","bincount");u.hu("int32"===n.dtype,(()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`)),u.hu(a>=0,(()=>`size must be non-negative, but got ${a}.`)),u.hu(r.size===n.size||0===r.size,(()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${r.shape}.`));const o={x:n,weights:r},d={size:a};return s.BV.runKernel(p.zvY,o,d)}});const U=(0,o.op)({broadcastArgs_:function(e,t){const a=(0,i._1)(e,"s0","broadcastArgs","int32"),n=(0,i._1)(t,"s1","broadcastArgs","int32");if(1!==a.rank)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${a.rank}`);if(1!==n.rank)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);const r={s0:a,s1:n};return s.BV.runKernel(p.eEB,r)}});const H=(0,o.op)({broadcastTo_:function(e,t){let a=(0,i._1)(e,"broadcastTo","x");const n=a.shape;if(t.some((e=>!(e>0)||e%1!=0)))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengtha.rank){const e=a.shape.slice();for(;e.length=0;e--)if(r[e]===t[e])o[e]=1;else if(1!==a.shape[e])throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(0===o.map(((e,t)=>e>1?t:-1)).filter((e=>e>=0)).length)return(0,D.d)(a);const d={x:a},l={reps:o};return s.BV.runKernel(p.n9L,d,l)}});var q=a(2657);const G=(0,o.op)({ceil_:function(e){const t={x:(0,i._1)(e,"x","ceil","float32")};return s.BV.runKernel(p.gJX,t)}});var j=a(4006);const K=(0,o.op)({clipByValue_:function(e,t,a){const n=(0,i._1)(e,"x","clipByValue");if(u.hu(t<=a,(()=>`Error in clip: min (${t}) must be less than or equal to max (${a}).`)),t===a)return(0,j.h)(n.shape,t,n.dtype);const r={x:n},o={clipValueMin:t,clipValueMax:a};return s.BV.runKernel(p.xnO,r,o)}});var X=a(1661);const Z=(0,o.op)({concat1d_:function(e){return A(e,0)}});const J=(0,o.op)({concat2d_:function(e,t){return A(e,t)}});const Q=(0,o.op)({concat3d_:function(e,t){return A(e,t)}});const Y=(0,o.op)({concat4d_:function(e,t){return A(e,t)}});const ee=(0,o.op)({conv2d_:function(e,t,a,n,r="NHWC",o=[1,1],d){const l=(0,i._1)(e,"x","conv2d","float32"),m=(0,i._1)(t,"filter","conv2d","float32");let c=l,h=!1;3===l.rank&&(h=!0,c=(0,x.X)(l,[1,l.shape[0],l.shape[1],l.shape[2]])),u.hu(4===c.rank,(()=>`Error in conv2d: input must be rank 4, but got rank ${c.rank}.`)),u.hu(4===m.rank,(()=>`Error in conv2d: filter must be rank 4, but got rank ${m.rank}.`)),T.m("conv2d",n,d);const f="NHWC"===r?c.shape[3]:c.shape[1];u.hu(f===m.shape[2],(()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${m.shape[2]}.`)),u.hu(T.jT(a,o),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${a} and dilations '${o}'`));const g={x:c,filter:m},y={strides:a,pad:n,dataFormat:r,dilations:o,dimRoundingMode:d},v=s.BV.runKernel(p.mhS,g,y);return h?(0,x.X)(v,[v.shape[1],v.shape[2],v.shape[3]]):v}});const te=(0,o.op)({conv1d_:function(e,t,a,n,r="NWC",s=1,p){const o=(0,i._1)(e,"x","conv1d"),d=(0,i._1)(t,"filter","conv1d");let l=o,m=!1;2===o.rank&&(m=!0,l=(0,x.X)(o,[1,o.shape[0],o.shape[1]])),u.hu(3===l.rank,(()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`)),u.hu(3===d.rank,(()=>`Error in conv1d: filter must be rank 3, but got rank ${d.rank}.`)),T.m("conv1d",n,p),u.hu(l.shape[2]===d.shape[1],(()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${d.shape[1]}.`)),u.hu(T.jT(a,s),(()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${a} and dilation '${s}'`)),u.hu("NWC"===r,(()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`));const c=(0,x.X)(d,[1,d.shape[0],d.shape[1],d.shape[2]]),h=(0,x.X)(l,[l.shape[0],1,l.shape[1],l.shape[2]]),f=ee(h,c,[1,a],n,"NHWC",[1,s],p);return m?(0,x.X)(f,[f.shape[2],f.shape[3]]):(0,x.X)(f,[f.shape[0],f.shape[2],f.shape[3]])}});const ae=(0,o.op)({conv2DBackpropInput_:function(e,t,a,n,r,i="NHWC",o){u.hu(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let d=e,l=t,m=!1;3===t.rank&&(m=!0,l=(0,x.X)(t,[1,t.shape[0],t.shape[1],t.shape[2]]),d=[1,e[0],e[1],e[2]]),u.hu(4===d.length,(()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${d.length}.`)),u.hu(4===l.rank,(()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`)),u.hu(4===a.rank,(()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${a.rank}`));const c="NHWC"===i?d[3]:d[1],h="NHWC"===i?l.shape[3]:l.shape[1];u.hu(c===a.shape[2],(()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${a.shape[2]}.`)),u.hu(h===a.shape[3],(()=>`Error in conv2dDerInput: depth of output (${h}) must match output depth for filter ${a.shape[3]}.`)),T.m("conv2dDerInput",r,o);const f={dy:l,filter:a},g={strides:n,pad:r,dataFormat:i,dimRoundingMode:o,inputShape:d},y=s.BV.runKernel(p.wm,f,g);return m?(0,x.X)(y,[y.shape[1],y.shape[2],y.shape[3]]):y}});const ne=(0,o.op)({conv2dTranspose_:function(e,t,a,n,r,s){const p=(0,i._1)(e,"x","conv2dTranspose"),o=(0,i._1)(t,"filter","conv2dTranspose");return ae(a,p,o,n,r,"NHWC",s)}});const re=(0,o.op)({conv3d_:function(e,t,a,n,r="NDHWC",o=[1,1,1]){const d=(0,i._1)(e,"x","conv3d"),l=(0,i._1)(t,"filter","conv3d");let m=d,c=!1;4===d.rank&&(c=!0,m=(0,x.X)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),u.hu(5===m.rank,(()=>`Error in conv3d: input must be rank 5, but got rank ${m.rank}.`)),u.hu(5===l.rank,(()=>`Error in conv3d: filter must be rank 5, but got rank ${l.rank}.`)),u.hu(m.shape[4]===l.shape[3],(()=>`Error in conv3d: depth of input (${m.shape[4]}) must match input depth for filter ${l.shape[3]}.`)),u.hu((0,T.jT)(a,o),(()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${a} and dilations '${o}'`)),u.hu("NDHWC"===r,(()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`));const h={x:m,filter:l},f={strides:a,pad:n,dataFormat:r,dilations:o},g=s.BV.runKernel(p.x12,h,f);return c?(0,x.X)(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}});const se=(0,o.op)({conv3DBackpropInput_:function(e,t,a,n,r){u.hu(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let i=e,o=t,d=!1;4===t.rank&&(d=!0,o=(0,x.X)(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),i=[1,e[0],e[1],e[2],e[3]]);const l=i[4],m=o.shape[4];u.hu(5===i.length,(()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${i.length}.`)),u.hu(5===o.rank,(()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${o.rank}`)),u.hu(5===a.rank,(()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${a.rank}`)),u.hu(l===a.shape[3],(()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${a.shape[3]}.`)),u.hu(m===a.shape[4],(()=>`Error in conv3dDerInput: depth of output (${m}) must match output depth for filter ${a.shape[4]}.`));const c={dy:o,filter:a},h={pad:r,strides:n,inputShape:i},f=s.BV.runKernel(p.ik2,c,h);return d?(0,x.X)(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}});const pe=(0,o.op)({conv3dTranspose_:function(e,t,a,n,r){const s=(0,i._1)(e,"x","conv3dTranspose"),p=(0,i._1)(t,"filter","conv3dTranspose");return se(a,s,p,n,r)}});const ie=(0,o.op)({cos_:function(e){const t={x:(0,i._1)(e,"x","cos","float32")};return s.BV.runKernel(p.mc4,t)}});const oe=(0,o.op)({cosh_:function(e){const t={x:(0,i._1)(e,"x","cosh","float32")};return s.BV.runKernel(p.TR1,t)}});const de=(0,o.op)({cumprod_:function(e,t=0,a=!1,n=!1){const r={x:(0,i._1)(e,"x","cumprod")},o={axis:t,exclusive:a,reverse:n};return s.BV.runKernel(p.Byc,r,o)}});const le=(0,o.op)({cumsum_:function(e,t=0,a=!1,n=!1){const r={x:(0,i._1)(e,"x","cumsum")},o={axis:t,exclusive:a,reverse:n};return s.BV.runKernel(p.iHb,r,o)}});const me=(0,o.op)({denseBincount_:function(e,t,a,n=!1){const r=(0,i._1)(e,"x","denseBincount"),o=(0,i._1)(t,"weights","denseBincount");u.hu("int32"===r.dtype,(()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`)),u.hu(r.rank<=2,(()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`)),u.hu(a>=0,(()=>`size must be non-negative, but got ${a}.`)),u.hu(o.size===r.size||0===o.size,(()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${o.shape}.`));const d={x:r,weights:o},l={size:a,binaryOutput:n};return s.BV.runKernel(p.QRR,d,l)}});const ue=(0,o.op)({depthToSpace_:function(e,t,a="NHWC"){const n=(0,i._1)(e,"x","depthToSpace","float32"),r="NHWC"===a?n.shape[1]:n.shape[2],o="NHWC"===a?n.shape[2]:n.shape[3],d="NHWC"===a?n.shape[3]:n.shape[1];u.hu(t>1,(()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`)),u.hu(r*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${r} and ${t} for depthToSpace with input shape\n ${n.shape}`)),u.hu(o*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${o} and ${t} for depthToSpace with input shape\n ${n.shape}`)),u.hu(d%(t*t)==0,(()=>`Dimension size must be evenly divisible by ${t*t} but is ${d} for depthToSpace with input shape ${n.shape}`));const l={x:n},m={blockSize:t,dataFormat:a};return s.BV.runKernel(p.T0n,l,m)}});const ce=(0,o.op)({depthwiseConv2d_:function(e,t,a,n,r="NHWC",o=[1,1],d){const l=(0,i._1)(e,"x","depthwiseConv2d","float32"),m=(0,i._1)(t,"filter","depthwiseConv2d","float32");let c=l,h=!1;3===l.rank&&(h=!0,c=(0,x.X)(l,[1,l.shape[0],l.shape[1],l.shape[2]])),u.hu(4===c.rank,(()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${c.rank}.`)),u.hu(4===m.rank,(()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`));const f="NHWC"===r?c.shape[3]:c.shape[1];u.hu(f===m.shape[2],(()=>`Error in depthwiseConv2d: number of input channels (${f}) must match the inChannels dimension in filter ${m.shape[2]}.`)),T.m("depthwiseConv2d",n,d);const g={x:c,filter:m},y={strides:a,pad:n,dataFormat:r,dilations:o,dimRoundingMode:d},v=s.BV.runKernel(p.cie,g,y);return h?(0,x.X)(v,[v.shape[1],v.shape[2],v.shape[3]]):v}});const he=(0,o.op)({diag_:function(e){const t={x:(0,i._1)(e,"x","diag")};return s.BV.runKernel(p.$w,t)}});const fe=(0,o.op)({dilation2d_:function(e,t,a,n,r=[1,1],o="NHWC"){const d=(0,i._1)(e,"x","dilation2d"),l=(0,i._1)(t,"filter","dilation2d");u.hu(3===d.rank||4===d.rank,(()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${d.rank}.`)),u.hu(3===l.rank,(()=>`Error in dilation2d: filter must be rank 3, but got rank ${l.rank}.`)),u.hu("NHWC"===o,(()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${o}`));let m=d,c=!1;3===d.rank&&(m=(0,x.X)(d,[1,d.shape[0],d.shape[1],d.shape[2]]),c=!0);const h={x:m,filter:l},f={strides:a,pad:n,dilations:r},g=s.BV.runKernel(p.p4S,h,f);return c?(0,x.X)(g,[g.shape[1],g.shape[2],g.shape[3]]):g}});var ge=a(1274),ye=a(2200);const ve=(0,o.op)({equal_:function(e,t){let a=(0,i._1)(e,"a","equal","string_or_numeric"),n=(0,i._1)(t,"b","equal","string_or_numeric");[a,n]=(0,N.makeTypesMatch)(a,n),(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape);const r={a,b:n};return s.BV.runKernel(p.hdR,r)}});const be=(0,o.op)({where_:function(e,t,a){const n=(0,i._1)(t,"a","where"),r=(0,i._1)(a,"b","where"),o=(0,i._1)(e,"condition","where","bool"),d=(0,ye.assertAndGetBroadcastShape)((0,ye.assertAndGetBroadcastShape)(o.shape,n.shape),r.shape),l={condition:H(o,d),t:H(n,d),e:H(r,d)};return s.BV.runKernel(p.PhF,l)}});var we=a(6577);const Ne=(0,o.op)({divNoNan_:function(e,t){let a=(0,i._1)(e,"a","div"),n=(0,i._1)(t,"b","div");[a,n]=(0,N.makeTypesMatch)(a,n);const r=(0,ge.h)(a,n),s=(0,we.P)(r),p=ve(n,s);return be(p,s,r)}});const ke=(0,o.op)({dot_:function(e,t){const a=(0,i._1)(e,"t1","dot"),n=(0,i._1)(t,"t2","dot");u.hu(!(1!==a.rank&&2!==a.rank||1!==n.rank&&2!==n.rank),(()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${a.rank} and ${n.rank}.`));const r=1===a.rank?a.size:a.shape[1],s=1===n.rank?n.size:n.shape[0];if(u.hu(r===s,(()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`)),1===a.rank&&1===n.rank){const e=(0,x.X)(a,[1,-1]),t=(0,x.X)(n,[-1,1]),r=(0,V.O)(e,t);return(0,x.X)(r,[])}if(1===a.rank&&2===n.rank){const e=(0,x.X)(a,[1,-1]),t=(0,x.X)(n,[n.shape[0],n.shape[1]]),r=(0,V.O)(e,t);return(0,x.X)(r,[r.size])}if(2===a.rank&&1===n.rank){const e=(0,x.X)(n,[-1,1]),t=(0,V.O)(a,e);return(0,x.X)(t,[t.size])}{const e=(0,x.X)(n,[n.shape[0],n.shape[1]]);return(0,V.O)(a,e)}}});const Se=(0,o.op)({einsum_:function(e,...t){const a=t.map(((e,t)=>(0,i._1)(e,`tensors${t}`,"einsum"))),n={equation:e};return s.BV.runKernel(p.$g6,a,n)}});var _e=a(3233);const Te=(0,o.op)({erf_:function(e){let t=(0,i._1)(e,"x","erf");u.hu("int32"===t.dtype||"float32"===t.dtype,(()=>"Input dtype must be `int32` or `float32`.")),"int32"===t.dtype&&(t=(0,_.p)(t,"float32"));const a={x:t};return s.BV.runKernel(p.Omj,a)}});var xe=a(3591);const Ie=(0,o.op)({max_:function(e,t=null,a=!1){const n={x:(0,i._1)(e,"x","max")},r={reductionIndices:t,keepDims:a};return s.BV.runKernel(p.YoZ,n,r)}});const Ee=(0,o.op)({min_:function(e,t=null,a=!1){const n={x:(0,i._1)(e,"x","min")},r={axis:t,keepDims:a};return s.BV.runKernel(p.c17,n,r)}});var De=a(3453),Ae=a(9494),Ve=a(3261),Me=a(248),Fe=a(5475);function Be(e,t,a=null){if(0===e.rank)return(0,r.W)(e);if(1!==e.rank&&null===a)return Be((0,x.X)(e,[-1]),t,a);if(1===e.rank||"number"==typeof a||Array.isArray(a)&&1===a.length){if(1===t)return(0,Fe.S)((0,r.W)(e),a);if(t===1/0)return Ie((0,r.W)(e),a);if(t===-1/0)return Ee((0,r.W)(e),a);if("euclidean"===t||2===t)return(0,Ve._)((0,Fe.S)((0,De.s)((0,r.W)(e),(0,Ae.i)(2,"int32")),a));throw new Error(`Error in norm: invalid ord value: ${t}`)}if(Array.isArray(a)&&2===a.length){if(1===t)return Ie((0,Fe.S)((0,r.W)(e),a[0]),a[1]-1);if(t===1/0)return Ie((0,Fe.S)((0,r.W)(e),a[1]),a[0]);if(t===-1/0)return Ee((0,Fe.S)((0,r.W)(e),a[1]),a[0]);if("fro"===t||"euclidean"===t)return(0,Ve._)((0,Fe.S)((0,Me.h)(e),a));throw new Error(`Error in norm: invalid ord value: ${t}`)}throw new Error(`Error in norm: invalid axis: ${a}`)}const Oe=(0,o.op)({norm_:function(e,t="euclidean",a=null,n=!1){const r=Be(e=(0,i._1)(e,"x","norm"),t,a);let s=r.shape;if(n){const t=(0,u.EC)(a,e.shape);s=xe.rv(r.shape,t)}return(0,x.X)(r,s)}});const $e=(0,o.op)({euclideanNorm_:function(e,t=null,a=!1){return Oe(e,"euclidean",t,a)}});const Ce=(0,o.op)({exp_:function(e){const t={x:(0,i._1)(e,"x","exp")};return s.BV.runKernel(p.NEP,t)}});const Re=(0,o.op)({expandDims_:function(e,t=0){const a=(0,i._1)(e,"x","expandDims","string_or_numeric");u.hu(t<=a.rank,(()=>"Axis must be <= rank of the tensor"));const n={input:a},r={dim:t};return s.BV.runKernel(p.YFo,n,r)}});const Pe=(0,o.op)({expm1_:function(e){const t={x:(0,i._1)(e,"x","expm1")};return s.BV.runKernel(p.Y0y,t)}});const ze=(0,o.op)({tile_:function(e,t){const a=(0,i._1)(e,"x","tile","string_or_numeric");u.hu(a.rank===t.length,(()=>`Error in transpose: rank of input ${a.rank} must match length of reps ${t}.`));const n={x:a},r={reps:t};return s.BV.runKernel(p.n9L,n,r)}});const Le=(0,o.op)({eye_:function(e,t,a,n="float32"){null==t&&(t=e);const r=(0,q.f)([e,t],n),s=e<=t?e:t;for(let e=0;e`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${o.rank}.`)),u.hu(u.GN(t),(()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`));let d=o,l=!1;3===o.rank&&(l=!0,d=(0,x.X)(o,[1,o.shape[0],o.shape[1],o.shape[2]]));const m={x:d},c={depthRadius:t,bias:a,alpha:n,beta:r},h=s.BV.runKernel(p.eZ0,m,c);return l?(0,x.X)(h,[h.shape[1],h.shape[2],h.shape[3]]):h}});const at=(0,o.op)({log_:function(e){const t={x:(0,i._1)(e,"x","log","float32")};return s.BV.runKernel(p.ZbH,t)}});const nt=(0,o.op)({log1p_:function(e){const t={x:(0,i._1)(e,"x","log1p")};return s.BV.runKernel(p.kU,t)}});var rt=a(633),st=a(7370);const pt=(0,o.op)({softplus_:function(e){const t={x:(0,i._1)(e,"x","softplus")};return s.BV.runKernel(p.MRv,t)}});const it=(0,o.op)({logSigmoid_:function(e){const t=(0,i._1)(e,"x","logSigmoid"),a=(0,rt.cb)((e=>({value:(0,st.W)(pt((0,st.W)(e))),gradFunc:t=>(0,M.d)(t,(0,F.X)((0,st.W)(e)))})));return a(t)}});var ot=a(827);const dt=(0,o.op)({logSoftmax_:function(e,t=-1){const a=(0,i._1)(e,"logits","logSoftmax");if(-1===t&&(t=a.rank-1),t!==a.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${a.rank} and axis was ${t}`);const n=(0,rt.cb)(((e,a)=>{const n=Ie(e,t,!0),r=(0,ot.l)(e,n),s=(0,ot.l)((0,_.p)(r,"float32"),at((0,Fe.S)(Ce(r),t,!0)));a([s]);return{value:s,gradFunc:(e,a)=>{const[n]=a,r=Ce(n);return(0,ot.l)(e,(0,M.d)((0,Fe.S)(e,t,!0),r))}}}));return n(a)}});const lt=(0,o.op)({logSumExp_:function(e,t=null,a=!1){const n=(0,i._1)(e,"x","logSumExp"),r=(0,u.EC)(t,n.shape),s=Ie(n,r,!0),p=(0,ot.l)(n,s),o=Ce(p),d=(0,Fe.S)(o,r),l=at(d),c=(0,m.I)((0,x.X)(s,l.shape),l);if(a){const e=(0,xe.rv)(c.shape,r);return(0,x.X)(c,e)}return c}});const mt=(0,o.op)({logicalAnd_:function(e,t){const a=(0,i._1)(e,"a","logicalAnd","bool"),n=(0,i._1)(t,"b","logicalAnd","bool");(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape);const r={a,b:n};return s.BV.runKernel(p.PYm,r)}});const ut=(0,o.op)({logicalNot_:function(e){const t={x:(0,i._1)(e,"x","logicalNot","bool")};return s.BV.runKernel(p.VfG,t)}});const ct=(0,o.op)({logicalOr_:function(e,t){const a=(0,i._1)(e,"a","logicalOr","bool"),n=(0,i._1)(t,"b","logicalOr","bool");(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape);const r={a,b:n};return s.BV.runKernel(p.MZg,r)}});const ht=(0,o.op)({logicalXor_:function(e,t){const a=(0,i._1)(e,"a","logicalXor","bool"),n=(0,i._1)(t,"b","logicalXor","bool");return(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape),mt(ct(e,t),ut(mt(e,t)))}}),ft=2147483648;const gt=(0,o.op)({searchSorted_:function(e,t,a="left"){const n=(0,i._1)(e,"sortedSequence","searchSorted"),r=(0,i._1)(t,"values","searchSorted"),o=n.shape[n.shape.length-1],d=r.shape[r.shape.length-1],l=(0,x.X)(n,[-1,o]),m=(0,x.X)(r,[-1,d]);if(l.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(l.shape[0]!==m.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if((0,u.NA)(m.shape)>=ft)throw new Error("values tensor size must less than 2147483648");if(l.shape[1]>=ft)throw new Error(`trailing dim_size must less than 2147483648 for int32 output type, was ${l.shape[1]}`);const c={sortedSequence:l,values:m},h={side:a};return s.BV.runKernel(p.nr8,c,h)}});function yt(e,t){return gt(e,t,"left")}const vt=(0,o.op)({maxPool_:function(e,t,a,n,r){const o=(0,i._1)(e,"x","maxPool");let d=o,l=!1;3===o.rank&&(l=!0,d=(0,x.X)(o,[1,o.shape[0],o.shape[1],o.shape[2]])),u.hu(4===d.rank,(()=>`Error in maxPool: input must be rank 4 but got rank ${d.rank}.`)),u.hu(T.jT(a,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '1'`)),T.m("maxPool",n,r);const m={x:d},c={filterSize:t,strides:a,pad:n,dimRoundingMode:r},h=s.BV.runKernel(p.mTV,m,c);return l?(0,x.X)(h,[h.shape[1],h.shape[2],h.shape[3]]):h}});const bt=(0,o.op)({maxPool3d_:function(e,t=[1,1,1],a,n,r,o="NDHWC"){const d=(0,i._1)(e,"x","maxPool3d");let l=d,m=!1;4===d.rank&&(m=!0,l=(0,x.X)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),u.hu(5===l.rank,(()=>`Error in maxPool3d: x must be rank 5 but got rank ${l.rank}.`)),u.hu("NDHWC"===o,(()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${o}`)),(0,T.m)("maxPool3d",n,r);const c={x:l},h={filterSize:t,strides:a,pad:n,dimRoundingMode:r,dataFormat:o},f=s.BV.runKernel(p.OAf,c,h);return m?(0,x.X)(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}});const wt=(0,o.op)({maxPoolWithArgmax_:function(e,t,a,n,r=!1){const o={x:(0,i._1)(e,"x","maxPoolWithArgmax")},d={filterSize:t,strides:a,pad:n,includeBatchInIndex:r},l=s.BV.runKernel(p.vFR,o,d);return{result:l[0],indexes:l[1]}}});var Nt=a(632);const kt=(0,o.op)({mean_:function(e,t=null,a=!1){const n={x:(0,i._1)(e,"x","mean")},r={axis:t,keepDims:a};return s.BV.runKernel(p.q2K,n,r)}});function St(e,t="float32"){if("complex64"===t){const t=St(e,"float32"),a=St(e,"float32");return(0,X.P)(t,a)}const a=(0,u.wT)((0,u.NA)(e),t);return s.BV.makeTensor(a,e,t)}function _t(e,t="float32"){if("complex64"===t){const t=_t(e,"float32"),a=St(e,"float32");return(0,X.P)(t,a)}const a=(0,u.p8)((0,u.NA)(e),t);return s.BV.makeTensor(a,e,t)}var Tt=a(4077);function xt(e,t,{indexing:a="xy"}={}){if("xy"!==a&&"ij"!==a)throw new TypeError(`${a} is not a valid third argument to meshgrid`);if(void 0===e)return[];let n=(0,i._1)(e,"x","meshgrid",e instanceof Tt.es?e.dtype:"float32");if(void 0===t)return[n];let r=(0,i._1)(t,"y","meshgrid",t instanceof Tt.es?t.dtype:"float32");const s=(0,u.NA)(n.shape),p=(0,u.NA)(r.shape);return"xy"===a?(n=(0,x.X)(n,[1,-1]),r=(0,x.X)(r,[-1,1]),[(0,V.O)(_t([p,1],n.dtype),n),(0,V.O)(r,_t([1,s],r.dtype))]):(n=(0,x.X)(n,[-1,1]),r=(0,x.X)(r,[1,-1]),[(0,V.O)(n,_t([1,p],n.dtype)),(0,V.O)(_t([s,1],r.dtype),r)])}const It=(0,o.op)({minimum_:function(e,t){let a=(0,i._1)(e,"a","minimum"),n=(0,i._1)(t,"b","minimum");[a,n]=(0,N.makeTypesMatch)(a,n),"bool"===a.dtype&&(a=(0,_.p)(a,"int32"),n=(0,_.p)(n,"int32")),(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape);const r={a,b:n};return s.BV.runKernel(p.q8u,r)}});const Et=(0,o.op)({mirrorPad_:function(e,t,a){u.hu("reflect"===a||"symmetric"===a,(()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${a}.`));const n=(0,i._1)(e,"x","mirrorPad");if(0===n.rank)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");u.hu(t.length===n.rank,(()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`));const r="reflect"===a?1:0;for(let e=0;e"Invalid number of paddings. Must be length of 2 each.")),u.hu(t[e][0]>=0&&t[e][0]<=n.shape[e]-r&&t[e][1]>=0&&t[e][1]<=n.shape[e]-r,(()=>`Padding in dimension ${e} cannot be greater than or equal to ${n.shape[e]-r} or less than 0 for input of shape ${n.shape}`));const o={paddings:t,mode:a},d={x:n};return s.BV.runKernel(p.jQs,d,o)}});const Dt=(0,o.op)({mod_:function(e,t){let a=(0,i._1)(e,"a","mod"),n=(0,i._1)(t,"b","mod");[a,n]=(0,N.makeTypesMatch)(a,n);const r={a,b:n};return s.BV.runKernel(p.Vbg,r)}});const At=(0,o.op)({moments_:function(e,t=null,a=!1){e=(0,i._1)(e,"x","moments");const n=(0,u.EC)(t,e.shape),r=kt(e,n,a);let s=r.shape;a||(s=(0,xe.rv)(r.shape,n));const p=(0,Me.h)((0,ot.l)((0,_.p)(e,"float32"),(0,x.X)(r,s)));return{mean:r,variance:kt(p,n,a)}}});const Vt=(0,o.op)({multiRNNCell_:function(e,t,a,n){const r=(0,i._1)(t,"data","multiRNNCell"),s=(0,i.sI)(a,"c","multiRNNCell"),p=(0,i.sI)(n,"h","multiRNNCell");let o=r;const d=[];for(let t=0;t2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${d}`);a=a||Math.random();const l={logits:1===d?(0,x.X)(r,[1,-1]):r},m={numSamples:t,seed:a,normalized:n},u=s.BV.runKernel(p.NZg,l,m);return 1===d?(0,x.X)(u,[u.size]):u}});const Ft=(0,o.op)({notEqual_:function(e,t){let a=(0,i._1)(e,"a","notEqual","string_or_numeric"),n=(0,i._1)(t,"b","notEqual","string_or_numeric");[a,n]=(0,N.makeTypesMatch)(a,n),(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape);const r={a,b:n};return s.BV.runKernel(p.yQU,r)}});var Bt=a(6708);const Ot=(0,o.op)({onesLike_:function(e){const t={x:(0,i._1)(e,"x","onesLike")};return s.BV.runKernel(p.qWM,t)}});const $t=(0,o.op)({outerProduct_:function(e,t){const a=(0,i._1)(e,"v1","outerProduct"),n=(0,i._1)(t,"v2","outerProduct");u.hu(1===a.rank&&1===n.rank,(()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${a.rank} and ${n.rank}.`));const r=(0,x.X)(a,[-1,1]),s=(0,x.X)(n,[1,-1]);return(0,V.O)(r,s)}});const Ct=(0,o.op)({pad_:function(e,t,a=0){const n=(0,i._1)(e,"x","pad");if(0===n.rank)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const r={paddings:t,constantValue:a},o={x:n};return s.BV.runKernel(p.lyA,o,r)}});const Rt=(0,o.op)({pad1d_:function(e,t,a=0){return(0,u.hu)(2===t.length,(()=>"Invalid number of paddings. Must be length of 2.")),Ct(e,[t],a)}});const Pt=(0,o.op)({pad2d_:function(e,t,a=0){return(0,u.hu)(2===t.length&&2===t[0].length&&2===t[1].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),Ct(e,t,a)}});const zt=(0,o.op)({pad3d_:function(e,t,a=0){return(0,u.hu)(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),Ct(e,t,a)}});const Lt=(0,o.op)({pad4d_:function(e,t,a=0){return(0,u.hu)(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),Ct(e,t,a)}});const Wt=(0,o.op)({spaceToBatchND_:function(e,t,a){const n=(0,i._1)(e,"x","spaceToBatchND");u.hu(n.rank>=1+t.length,(()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`)),u.hu(a.length===t.length,(()=>`paddings.shape[0] ${a.length} must be equal to [blockShape] ${t.length}`)),u.hu(n.shape.reduce(((e,n,r)=>r>0&&r<=t.length?e&&(n+a[r-1][0]+a[r-1][1])%t[r-1]==0:e),!0),(()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${a.toString()} must be divisible by blockShapes ${t.toString()}`));const r={x:n},o={blockShape:t,paddings:a};return s.BV.runKernel(p.TQc,r,o)}});const Ut=(0,o.op)({pool_:function(e,t,a,n,r,s,p){null==r&&(r=[1,1]),null==s&&(s=1),0===n&&(n="valid");const o=(0,i._1)(e,"x","maxPool");let d=o,l=!1;3===o.rank&&(l=!0,d=(0,x.X)(o,[1,o.shape[0],o.shape[1],o.shape[2]])),u.hu(T.jT(s,r),(()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`));const m=T.Xw(d.shape,t,s,r,n),c=[m.dilationHeight,m.dilationWidth];let h;h="same"===n?function(e,t){const a=e.map(((e,a)=>e+(e-1)*(t[a]-1))).map((e=>e-1)),n=a.map((e=>Math.floor(e/2))),r=a.map(((e,t)=>e-n[t]));return a.map(((e,t)=>[n[t],r[t]]))}([m.filterHeight,m.filterWidth],c):[[0,0],[0,0]];const f=1===c[0]&&1===c[1],[g,y]=function(e,t,a){const n=a.map((e=>e[0])),r=a.map((e=>e[1])),s=e.concat(n,r),p=t.map(((e,t)=>(e-s[t]%e)%e)),i=r.map(((e,t)=>e+p[t])),o=t.map(((e,t)=>[n[t],i[t]])),d=t.map(((e,t)=>[0,p[t]]));return[o,d]}([m.inHeight,m.inWidth],c,h),v=f?n:"valid",b=f?d:Wt(d,c,g),w=("avg"===a?()=>I(b,t,s,v,p):()=>vt(b,t,s,v,p))(),N=f?w:C(w,c,y);return l?(0,x.X)(N,[N.shape[1],N.shape[2],N.shape[3]]):N}});var Ht=a(8151),qt=a(9798);const Gt=(0,o.op)({prod_:function(e,t=null,a=!1){let n=(0,i._1)(e,"x","prod");"bool"===n.dtype&&(n=(0,_.p)(n,"int32"));const r={x:n},o={axis:t,keepDims:a};return s.BV.runKernel(p.DlI,r,o)}});const jt=(0,o.op)({raggedGather_:function(e,t,a,n){const r={paramsNestedSplits:e.map(((e,t)=>(0,i._1)(e,`tensors${t}`,"raggedGather","int32"))),paramsDenseValues:(0,i._1)(t,"paramsDenseValues","raggedGather"),indices:(0,i._1)(a,"indices","raggedGather","int32")},o={outputRaggedRank:n},d=s.BV.runKernel(p.dDz,r,o);return{outputNestedSplits:d.slice(0,d.length-1),outputDenseValues:d[d.length-1]}}});const Kt=(0,o.op)({raggedTensorToTensor_:function(e,t,a,n,r){const o=(0,i._1)(e,"shape","raggedTensorToTensor","int32"),d=(0,i._1)(t,"values","raggedTensorToTensor"),l={shape:o,values:d,defaultValue:(0,i._1)(a,"defaultValue","raggedTensorToTensor",d.dtype),rowPartitionTensors:n.map(((e,t)=>(0,i._1)(e,`tensors${t}`,"raggedTensorToTensor","int32")))},m={rowPartitionTypes:r};return s.BV.runKernel(p.BiW,l,m)}});const Xt=(0,o.op)({rand_:function(e,t,a){const n=(0,u.NA)(e);let r=null;if(null==a||"float32"===a)r=new Float32Array(n);else if("int32"===a)r=new Int32Array(n);else{if("bool"!==a)throw new Error(`Unknown data type ${a}`);r=new Uint8Array(n)}for(let e=0;e=1||0===s);const p=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*n*p,t=this.mean+this.stdDev*r*p,this.truncated&&!this.isValidTruncated(e)||(a=!0)}return this.truncated&&!this.isValidTruncated(t)||(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class Qt{constructor(e,t,a,n){this.alpha=e,this.beta=1/t,this.dtype=a;const r=n||Math.random();this.randu=Zt.alea(r.toString()),this.randn=new Jt(0,1,a,!1,this.randu()),this.d=e<1?e+2/3:e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,a,n,r,s;for(;;){do{n=this.randn.nextValue(),s=1+this.c*n}while(s<=0);if(s*=s*s,e=n*n,t=1-.331*e*e,a=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rnull==this.dtype||"float32"===this.dtype,this.min=e,this.range=t-e,this.dtype=a,null==n&&(n=Math.random()),"number"==typeof n&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Zt.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}const ea=(0,o.op)({randomGamma_:function(e,t,a=1,n="float32",r){if(null==a&&(a=1),null==n&&(n="float32"),"float32"!==n&&"int32"!==n)throw new Error(`Unsupported data type ${n}`);const s=new Qt(t,a,n,r),p=(0,q.f)(e,n);for(let e=0;e`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`)),da(t,0)}});const ma=(0,o.op)({reverse2d_:function(e,t){const a=(0,i._1)(e,"x","reverse");return u.hu(2===a.rank,(()=>`Error in reverse2D: x must be rank 2 but got rank ${a.rank}.`)),da(a,t)}});const ua=(0,o.op)({reverse3d_:function(e,t){const a=(0,i._1)(e,"x","reverse");return u.hu(3===a.rank,(()=>`Error in reverse3D: x must be rank 3 but got rank ${a.rank}.`)),da(a,t)}});const ca=(0,o.op)({reverse4d_:function(e,t){const a=(0,i._1)(e,"x","reverse");return u.hu(4===a.rank,(()=>`Error in reverse4D: x must be rank 4 but got rank ${a.rank}.`)),da(a,t)}});const ha=(0,o.op)({round_:function(e){const t={x:(0,i._1)(e,"x","round")};return s.BV.runKernel(p.e07,t)}});const fa=(0,o.op)({rsqrt_:function(e){const t={x:(0,i._1)(e,"x","rsqrt","float32")};return s.BV.runKernel(p.bV0,t)}});const ga=(0,o.op)({selu_:function(e){const t={x:(0,i._1)(e,"x","selu")};return s.BV.runKernel(p.oFR,t)}});const ya=(0,o.op)({separableConv2d_:function(e,t,a,n,r,s=[1,1],p="NHWC"){const o=(0,i._1)(e,"x","separableConv2d"),d=(0,i._1)(t,"depthwiseFilter","separableConv2d"),l=(0,i._1)(a,"pointwiseFilter","separableConv2d");let m=o,c=!1;if(3===o.rank&&(c=!0,m=(0,x.X)(o,[1,o.shape[0],o.shape[1],o.shape[2]])),"NCHW"===p)throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");u.hu(4===m.rank,(()=>`Error in separableConv2d: input must be rank 4, but got rank ${m.rank}.`)),u.hu(4===d.rank,(()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${d.rank}.`)),u.hu(4===l.rank,(()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${d.rank}.`)),u.hu(1===l.shape[0],(()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`)),u.hu(1===l.shape[1],(()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`));const h=d.shape[2],f=d.shape[3];u.hu(l.shape[2]===h*f,(()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${h*f}, but got ${l.shape[2]}.`));const g=ce(m,d,n,r,p,s),y=ee(g,l,1,"valid",p);return c?(0,x.X)(y,[y.shape[1],y.shape[2],y.shape[3]]):y}});const va=async function(e,t){const a=(0,i._1)(e,"x","setdiff1d"),n=(0,i._1)(t,"y","setdiff1d");u.hu(a.dtype===n.dtype,(()=>`x and y should have the same dtype, but got x (${a.dtype}) and y (${n.dtype}).`)),u.hu(1===a.rank,(()=>`x should be 1D tensor, but got x (${a.shape}).`)),u.hu(1===n.rank,(()=>`y should be 1D tensor, but got y (${n.shape}).`));const r=await a.data(),s=await n.data(),p=new Set(s);let o=0;for(let e=0;e`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`)),B(n,[t],[a])}});const Sa=(0,o.op)({slice2d_:function(e,t,a){const n=(0,i._1)(e,"x","slice2d");return u.hu(2===n.rank,(()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`)),B(n,t,a)}});const _a=(0,o.op)({slice3d_:function(e,t,a){const n=(0,i._1)(e,"x","slice3d");return u.hu(3===n.rank,(()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`)),B(n,t,a)}});const Ta=(0,o.op)({slice4d_:function(e,t,a){const n=(0,i._1)(e,"x","slice4d");return u.hu(4===n.rank,(()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`)),B(n,t,a)}});const xa=(0,o.op)({softmax_:function(e,t=-1){const a=(0,i._1)(e,"logits","softmax","float32");if(-1===t&&(t=a.rank-1),t!==a.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${a.rank} and dim was ${t}`);const n={logits:a},r={dim:t};return s.BV.runKernel(p.Gcp,n,r)}});const Ia=(0,o.op)({fft_:function(e){(0,u.hu)("complex64"===e.dtype,(()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`));const t={input:e};return s.BV.runKernel(p.vwp,t)}});const Ea=(0,o.op)({ifft_:function(e){(0,u.hu)("complex64"===e.dtype,(()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`));const t={input:e};return s.BV.runKernel(p.Qg5,t)}});const Da=(0,o.op)({irfft_:function(e){const t=e.shape[e.shape.length-1],a=e.size/t;let n;if(t<=2){const r=(0,x.X)(e,[a,t]);n=Ea(r)}else{const r=[a,2*(t-1)],s=(0,x.X)((0,sa.k)(e),[a,t]),p=(0,x.X)((0,je.a)(e),[a,t]),i=da(B(s,[0,1],[a,t-2]),1),o=(0,M.d)(da(B(p,[0,1],[a,t-2]),1),(0,Ae.i)(-1)),d=A([s,i],1),l=A([p,o],1),m=(0,x.X)((0,X.P)(d,l),[r[0],r[1]]);n=Ea(m)}if(n=(0,sa.k)(n),3===e.rank&&0!==e.shape[0]){const t=n,a=e.shape[0];n=(0,x.X)(n,[a,n.shape[0]/a,n.shape[1]]),t.dispose()}return n}});const Aa=(0,o.op)({split_:function(e,t,a=0){const n={x:(0,i._1)(e,"x","split")},r={numOrSizeSplits:t,axis:a};return s.BV.runKernel(p.L8s,n,r)}});const Va=(0,o.op)({rfft_:function(e,t){(0,u.hu)("float32"===e.dtype,(()=>`The dtype for rfft() must be real value but got ${e.dtype}`));let a=e.shape[e.shape.length-1];const n=e.size/a;let r;if(null!=t&&t0)),s=e.shape.map((e=>e));s[e.shape.length-1]=t,r=B(e,n,s),a=t}else if(null!=t&&t>a){const n=e.shape.map((e=>e));n[e.shape.length-1]=t-a,r=A([e,St(n)],e.shape.length-1),a=t}else r=e;const s=(0,we.P)(r),p=(0,x.X)((0,X.P)(r,s),[n,a]),i=Ia(p),o=Math.floor(a/2)+1,d=(0,sa.k)(i),l=(0,je.a)(i),m=Aa(d,[o,a-o],d.shape.length-1),c=Aa(l,[o,a-o],l.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=o,(0,x.X)((0,X.P)(m[0],c[0]),h)}});const Ma=(0,o.op)({squaredDifference_:function(e,t){let a=(0,i._1)(e,"a","squaredDifference"),n=(0,i._1)(t,"b","squaredDifference");[a,n]=(0,N.makeTypesMatch)(a,n),(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape);const r={a,b:n};return s.BV.runKernel(p._tC,r,{})}});const Fa=(0,o.op)({squeeze_:function(e,t){const a=(0,i._1)(e,"x","squeeze","string_or_numeric");return(0,x.X)(a,(0,u.bp)(a.shape,t).newShape)}});const Ba=(0,o.op)({stack_:function(e,t=0){const a=(0,i.sI)(e,"tensors","stack","string_or_numeric");u.hu(a.length>=1,(()=>"Pass at least one tensor to tf.stack")),a.length>0&&u.hu(t<=a[0].rank,(()=>"Axis must be <= rank of the tensor"));const n=a,r={axis:t};return s.BV.runKernel(p.QiL,n,r)}});var Oa=a(1901);const $a=(0,o.op)({stridedSlice_:function(e,t,a,n,r=0,o=0,d=0,l=0,m=0){const u={x:(0,i._1)(e,"x","stridedSlice","string_or_numeric")},c={begin:t,end:a,strides:n,beginMask:r,endMask:o,ellipsisMask:d,newAxisMask:l,shrinkAxisMask:m};return s.BV.runKernel(p.jQk,u,c)}});const Ca=(0,o.op)({tan_:function(e){const t={x:(0,i._1)(e,"x","tan","float32")};return s.BV.runKernel(p.sEM,t)}});var Ra=a(701),Pa=a(7852);function za(e,t){(0,u.Cq)(e);const a=(0,i.C)(e,t);if(1!==a.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return(0,Pa.H)(e,null,a,t)}function La(e,t,a){if((0,u.Cq)(e),null!=t&&2!==t.length)throw new Error("tensor2d() requires shape to have two numbers");const n=(0,i.C)(e,a);if(2!==n.length&&1!==n.length)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===n.length&&null==t)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return(0,Pa.H)(e,t,n,a)}var Wa=a(9906);function Ua(e,t,a){if((0,u.Cq)(e),null!=t&&4!==t.length)throw new Error("tensor4d() requires shape to have four numbers");const n=(0,i.C)(e,a);if(4!==n.length&&1!==n.length)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===n.length&&null==t)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return(0,Pa.H)(e,t,n,a)}function Ha(e,t,a){if((0,u.Cq)(e),null!=t&&5!==t.length)throw new Error("tensor5d() requires shape to have five numbers");const n=(0,i.C)(e,a);if(5!==n.length&&1!==n.length)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===n.length&&null==t)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return(0,Pa.H)(e,t,n,a)}function qa(e,t,a){if((0,u.Cq)(e),null!=t&&6!==t.length)throw new Error("tensor6d() requires shape to have six numbers");const n=(0,i.C)(e,a);if(6!==n.length&&1!==n.length)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===n.length&&null==t)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,(0,Pa.H)(e,t,n,a)}const Ga=(0,o.op)({topk_:function(e,t=1,a=!0){const n=(0,i._1)(e,"x","topk");if(0===n.rank)throw new Error("topk() expects the input to be of rank 1 or higher");const r=n.shape[n.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);const o={x:n},d={k:t,sorted:a},[l,m]=s.BV.runKernel(p.cWu,o,d);return{values:l,indices:m}}});const ja=(0,o.op)({truncatedNormal_:function(e,t=0,a=1,n,r){if(null!=n&&"bool"===n)throw new Error("Unsupported data type $ { dtype }");const s=new Jt(t,a,n,!0,r),p=(0,q.f)(e,n);for(let e=0;e0,(()=>"The input tensor must be at least 1D"));const n={x:a},r={axis:t},[o,d]=s.BV.runKernel(p.kpP,n,r);return{values:o,indices:d}}});const Xa=(0,o.op)({unsortedSegmentSum_:function(e,t,a){const n=(0,i._1)(e,"x","unsortedSegmentSum"),r=(0,i._1)(t,"segmentIds","unsortedSegmentSum","int32");(0,u.hu)((0,u.GN)(a),(()=>"numSegments must be of dtype int"));const o={x:n,segmentIds:r},d={numSegments:a};return s.BV.runKernel(p.Qvg,o,d)}});const Za=(0,o.op)({unstack_:function(e,t=0){const a=(0,i._1)(e,"x","unstack","string_or_numeric");u.hu(t>=-a.shape.length&&t`Axis = ${t} is not in [-${a.shape.length}, ${a.shape.length})`));const n={value:a},r={axis:t};return s.BV.runKernel(p.ToN,n,r)}});function Ja(e,t){return gt(e,t,"right")}function Qa(e,t=!0,a,n){return s.BV.makeVariable(e,t,a,n)}var Ya=a(8333);const en=async function(e){const t=(0,i._1)(e,"condition","whereAsync","bool"),a=await t.data(),n=(0,Ya.Z)(t.shape,a);return e!==t&&t.dispose(),n};const tn=async function(e,t,a){const n=(0,i._1)(e,"tensor","boolMask"),r=(0,i._1)(t,"mask","boolMask","bool"),s=null==a?0:a,p=r.rank,o=n.shape;u.hu(p>0,(()=>"mask cannot be scalar")),u.k5(o.slice(s,s+p),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let d=1;for(let e=s;e"Shape mismatch in v and x"));const d=(0,Ae.i)(1),l=(0,ot.l)(d,o);let c=(0,M.d)((0,ot.l)(p,s),l);if(r){u.hu(null!=n,(()=>"When using zeroDebias: true, step is required."));const e=(0,i._1)(n,"step","movingAverage");c=(0,ge.h)(c,(0,ot.l)(d,(0,De.s)(o,e)))}return(0,m.I)(s,c)}});var rn=a(3028);const sn=(0,o.op)({scatterND_:function(e,t,a){const n=(0,i._1)(e,"indices","scatterND","int32"),r=(0,i._1)(t,"updates","scatterND");rn.validateInput(r,n,a);const o={indices:n,updates:r},d={shape:a};return s.BV.runKernel(p.xQA,o,d)}});const pn=(0,o.op)({sparseToDense_:function(e,t,a,n=0){const r=(0,i._1)(e,"sparseIndices","sparseToDense","int32"),o=(0,i._1)(t,"sparseValues","sparseToDense","string_or_numeric"),d=(0,i._1)(n,"defaultValue","sparseToDense",o.dtype);!function(e,t,a,n){if("int32"!==e.dtype)throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);const r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(a.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${a.length}, should be: ${s}.`);const p=t.size;if(0!==t.rank&&(1!==t.rank||p!==r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==n.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}(r,o,a,d);const l={sparseIndices:r,sparseValues:o,defaultValue:d},m={outputShape:a};return s.BV.runKernel(p.D2d,l,m)}});const on=(0,o.op)({gatherND_:function(e,t){const a=(0,i._1)(t,"indices","gatherND","int32"),n={params:(0,i._1)(e,"x","gatherND","string_or_numeric"),indices:a};return s.BV.runKernel(p.q1x,n)}});const dn=(0,o.op)({dropout_:function(e,t,a,n){const r=(0,i._1)(e,"x","dropout");if(u.hu("float32"===r.dtype,(()=>`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`)),u.hu(t>=0&&t<1,(()=>`rate must be a float in the range [0, 1), but got ${t}.`)),0===t)return e instanceof Tt.es?r.clone():r;const s=function(e,t){if(null==t)return e.shape.slice();if(u.cO(e.shape,t))return t;if(e.shape.length===t.length){const a=[];for(let n=0;n1,(()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`)),(0,u.hu)(n.rank-1===r.rank,(()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${r.rank}`)),(0,u.k5)(n.shape.slice(0,n.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");const s=n.shape[n.shape.length-1];(0,u.hu)(a>0&&a<=s,(()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${a}`));const p=await n.data(),o=await r.data(),[d,l]=[p.length/s,s],m=(0,u.WP)("bool",d);for(let e=0;et.value-e.value)),m[e]=0;for(let t=0;t`Error in conv2dDerFilter: input must be rank 4, but got shape ${d.shape}.`)),u.hu(4===l.rank,(()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`)),u.hu(4===a.length,(()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${a}.`));const m="NHWC"===i?d.shape[3]:d.shape[1],c="NHWC"===i?l.shape[3]:l.shape[1];u.hu(m===a[2],(()=>`Error in conv2dDerFilter: depth of input ${m}) must match input depth in filter (${a[2]}.`)),u.hu(c===a[3],(()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${a[3]}).`)),T.m("conv2dDerFilter",r,o);const h={x:d,dy:l},f={strides:n,pad:r,dataFormat:i,dimRoundingMode:o,filterShape:a};return s.BV.runKernel(p.wUP,h,f)}});var hn=a(9323);const fn=(0,o.op)({fusedConv2d_:function({x:e,filter:t,strides:a,pad:n,dataFormat:r="NHWC",dilations:o=[1,1],dimRoundingMode:d,bias:l,activation:c="linear",preluActivationWeights:h,leakyreluAlpha:f}){if(c=c||"linear",!1===(0,hn.uy)(s.BV.state.gradientDepth,c)){u.hu("NHWC"===r,(()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`));let s=ee(e,t,a,n,r,o,d);return null!=l&&(s=(0,m.I)(s,l)),(0,hn.QH)(s,c,h,f)}const g=(0,i._1)(e,"x","conv2d","float32"),y=(0,i._1)(t,"filter","conv2d","float32");let v=g,b=!1;3===g.rank&&(b=!0,v=(0,x.X)(g,[1,g.shape[0],g.shape[1],g.shape[2]])),u.hu(4===v.rank,(()=>`Error in fused conv2d: input must be rank 4, but got rank ${v.rank}.`)),u.hu(4===y.rank,(()=>`Error in fused conv2d: filter must be rank 4, but got rank ${y.rank}.`)),T.m("fused conv2d",n,d);const w="NHWC"===r?v.shape[3]:v.shape[1];u.hu(y.shape[2]===w,(()=>`Error in conv2d: depth of input (${w}) must match input depth for filter ${y.shape[2]}.`)),u.hu(T.jT(a,o),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${a} and dilations '${o}'`));const k=T.Ix(v.shape,y.shape,a,o,n,d);let S,_;if(null!=l&&(S=(0,i._1)(l,"bias","fused conv2d"),[S]=(0,N.makeTypesMatch)(S,g),"NHWC"===r?ye.assertAndGetBroadcastShape(k.outShape,S.shape):(u.hu(S.shape.length<=1,(()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${S.shape.length}.`)),u.hu(0===S.shape.length||S.shape[0]===k.outChannels||1===S.shape[0],(()=>`Error in fused conv2d: bias shape (${S.shape}) is not compatible with the number of output channels (${k.outChannels})`)))),null!=h){const e=h.shape;if(u.hu(e.length<=1||3===e.length,(()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${e.length}.`)),1===e.length)u.hu(1===e[0]||e[0]===k.outChannels,(()=>`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the number of output channels (${k.outChannels}).`));else if(3===e.length)try{ye.assertAndGetBroadcastShape(e,k.outShape)}catch(t){const a=`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the output shape of the conv2d (${k.outShape}).`;throw Error(a)}_=(0,i._1)(h,"prelu weights","fused conv2d")}const I=(e,t)=>{u.hu("NHWC"===r,(()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`));const[s,p,i,d]=t,l=(0,hn.Fr)(e,i,c);u.hu(T.I0(o),(()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${o}'`));const m=[ae(p.shape,l,s,a,n),cn(p,l,s.shape,a,n)];if(null!=d){const e=(0,hn.pf)(d,l);m.push(e)}return m},E={x:v,filter:y,bias:S,preluActivationWeights:_},D={strides:a,pad:n,dataFormat:r,dilations:o,dimRoundingMode:d,activation:c,leakyreluAlpha:f};if(null==l){const e=(0,rt.cb)(((e,t,a)=>{let n=s.BV.runKernel(p._V0,E,D);return a([t,e,n]),b&&(n=(0,x.X)(n,[n.shape[1],n.shape[2],n.shape[3]])),{value:n,gradFunc:I}}));return e(v,y)}{const e=(0,rt.cb)(((e,t,a,n)=>{let r=s.BV.runKernel(p._V0,E,D);return n([t,e,r,a]),b&&(r=(0,x.X)(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:I}}));return e(v,y,S)}}});const gn=(0,o.op)({depthwiseConv2dNativeBackpropFilter_:function(e,t,a,n,r,i=[1,1],o){let d=e;3===e.rank&&(d=(0,x.X)(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;3===l.rank&&(l=(0,x.X)(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const m={x:d,dy:l},u={strides:n,pad:r,dimRoundingMode:o,dilations:i,filterShape:a};return s.BV.runKernel(p.sL$,m,u)}});const yn=(0,o.op)({depthwiseConv2dNativeBackpropInput_:function(e,t,a,n,r,i=[1,1],o){let d=t,l=!1;3===t.rank&&(l=!0,d=(0,x.X)(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const m={dy:d,filter:a},u={strides:n,pad:r,dimRoundingMode:o,dilations:i,inputShape:e},c=s.BV.runKernel(p.y7R,m,u);return l?(0,x.X)(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});const vn=(0,o.op)({fusedDepthwiseConv2d_:function({x:e,filter:t,strides:a,pad:n,dataFormat:r="NHWC",dilations:o=[1,1],dimRoundingMode:d,bias:l,activation:c="linear",preluActivationWeights:h,leakyreluAlpha:f}){if(!1===(0,hn.uy)(s.BV.state.gradientDepth,c)){let s=ce(e,t,a,n,r,o,d);return null!=l&&(s=(0,m.I)(s,l)),(0,hn.QH)(s,c,h,f)}const g=(0,i._1)(e,"x","depthwiseConv2d","float32"),y=(0,i._1)(t,"filter","depthwiseConv2d","float32");let v=g,b=!1;3===g.rank&&(b=!0,v=(0,x.X)(g,[1,g.shape[0],g.shape[1],g.shape[2]])),u.hu(4===v.rank,(()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${v.rank}.`)),u.hu(4===y.rank,(()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${y.rank}.`)),u.hu(v.shape[3]===y.shape[2],(()=>`Error in fused depthwiseConv2d: number of input channels (${v.shape[3]}) must match the inChannels dimension in filter ${y.shape[2]}.`)),null==o&&(o=[1,1]),u.hu(T.jT(a,o),(()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${o}'`)),T.m("fused depthwiseConv2d",n,d);const w=T.Ix(v.shape,y.shape,a,o,n,d,!0);let k,S;null!=l&&(k=(0,i._1)(l,"bias","fused conv2d"),[k]=(0,N.makeTypesMatch)(k,g),ye.assertAndGetBroadcastShape(w.outShape,k.shape)),null!=h&&(S=(0,i._1)(h,"prelu weights","fused depthwiseConv2d"));const _=(e,t)=>{u.hu(T.I0(o),(()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`));const[r,s,p,i]=t,l=(0,hn.Fr)(e,p,c),m=yn(s.shape,l,r,a,n,o,d),h=gn(s,l,r.shape,a,n,o,d);if(null!=i){return[m,h,(0,hn.pf)(k,l)]}return[m,h]},I={x:v,filter:y,bias:k,preluActivationWeights:S},E={strides:a,pad:n,dataFormat:r,dilations:o,dimRoundingMode:d,activation:c,leakyreluAlpha:f};if(null==l){const e=(0,rt.cb)(((e,t,a)=>{let n=s.BV.runKernel(p.luS,I,E);return a([t,e,n]),b&&(n=(0,x.X)(n,[n.shape[1],n.shape[2],n.shape[3]])),{value:n,gradFunc:_}}));return e(v,y)}{const e=(0,rt.cb)(((e,t,a,n)=>{let r=s.BV.runKernel(p.luS,I,E);return n([t,e,r,a]),b&&(r=(0,x.X)(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:_}}));return e(v,y,k)}}});const bn=(0,o.op)({fusedMatMul_:function({a:e,b:t,transposeA:a=!1,transposeB:n=!1,bias:r,activation:o="linear",preluActivationWeights:d,leakyreluAlpha:l=.2}){if(!1===(0,hn.uy)(s.BV.state.gradientDepth,o)){let s=(0,V.O)(e,t,a,n);return null!=r&&(s=(0,m.I)(s,r)),(0,hn.QH)(s,o,d,l)}let c=(0,i._1)(e,"a","fused matMul"),h=(0,i._1)(t,"b","fused matMul");[c,h]=(0,N.makeTypesMatch)(c,h);const f=a?c.shape[c.rank-2]:c.shape[c.rank-1],g=n?h.shape[h.rank-1]:h.shape[h.rank-2],y=a?c.shape[c.rank-1]:c.shape[c.rank-2],v=n?h.shape[h.rank-2]:h.shape[h.rank-1],b=c.shape.slice(0,-2),w=h.shape.slice(0,-2),k=u.NA(b),S=u.NA(w);u.hu(f===g,(()=>`Error in fused matMul: inner shapes (${f}) and (${g}) of Tensors with shapes ${c.shape} and ${h.shape} and transposeA=${a} and transposeB=${n} must match.`));const _=ye.assertAndGetBroadcastShape(c.shape.slice(0,-2),h.shape.slice(0,-2)).concat([y,v]),T=a?(0,x.X)(c,[k,f,y]):(0,x.X)(c,[k,y,f]),I=n?(0,x.X)(h,[S,v,g]):(0,x.X)(h,[S,g,v]);let E,D;null!=r&&(E=(0,i._1)(r,"bias","fused matMul"),[E]=(0,N.makeTypesMatch)(E,c),ye.assertAndGetBroadcastShape(_,E.shape)),null!=d&&(D=(0,i._1)(d,"prelu weights","fused matMul"));const A=(e,t)=>{const[s,p,i,d]=t,l=(0,hn.Fr)((0,x.X)(e,i.shape),i,o);let m,u;if(a||n?!a&&n?(m=(0,V.O)(l,p,!1,!1),u=(0,V.O)(l,s,!0,!1)):a&&!n?(m=(0,V.O)(p,l,!1,!0),u=(0,V.O)(s,l,!1,!1)):(m=(0,V.O)(p,l,!0,!0),u=(0,V.O)(l,s,!0,!0)):(m=(0,V.O)(l,p,!1,!0),u=(0,V.O)(s,l,!0,!1)),null!=r){return[m,u,(0,hn.pf)(d,l)]}return[m,u]},M={a:T,b:I,bias:E,preluActivationWeights:D},F={transposeA:a,transposeB:n,activation:o,leakyreluAlpha:l};if(null==r){const e=(0,rt.cb)(((e,t,a)=>{const n=s.BV.runKernel(p.usg,M,F);return a([e,t,n]),{value:(0,x.X)(n,_),gradFunc:A}}));return e(T,I)}{const e=(0,rt.cb)(((e,t,a,n)=>{const r=s.BV.runKernel(p.usg,M,F);return n([e,t,r,a]),{value:(0,x.X)(r,_),gradFunc:A}}));return e(T,I,E)}}});const wn=(0,o.op)({hammingWindow_:function(e){return mn(e,.54,.46)}});const Nn=(0,o.op)({hannWindow_:function(e){return mn(e,.5,.5)}});const kn=(0,o.op)({frame_:function(e,t,a,n=!1,r=0){let s=0;const p=[];for(;s+t<=e.size;)p.push(B(e,s,t)),s+=a;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${d.rank}.`)),u.hu(2===l.rank&&4===l.shape[1],(()=>`Error in cropAndResize: boxes must be have size [${c},4] but had shape ${l.shape}.`)),u.hu(1===m.rank&&m.shape[0]===c,(()=>`Error in cropAndResize: boxInd must be have size [${c}] but had shape ${l.shape}.`)),u.hu(2===n.length,(()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`)),u.hu(n[0]>=1&&n[1]>=1,(()=>`cropSize must be atleast [1,1], but was ${n}`)),u.hu("bilinear"===r||"nearest"===r,(()=>`method must be bilinear or nearest, but was ${r}`));const h={image:d,boxes:l,boxInd:m},f={method:r,extrapolationValue:o,cropSize:n};return s.BV.runKernel(p.VcC,h,f)}});const Tn=(0,o.op)({flipLeftRight_:function(e){const t=(0,i._1)(e,"image","flipLeftRight","float32");u.hu(4===t.rank,(()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`));const a={image:t};return s.BV.runKernel(p.Uyb,a,{})}});const xn=(0,o.op)({grayscaleToRGB_:function(e){const t=(0,i._1)(e,"image","grayscaleToRGB"),a=t.rank-1,n=t.shape[a];u.hu(t.rank>=2,(()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`)),u.hu(1===n,(()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`));const r=new Array(t.rank);return r.fill(1,0,a),r[a]=3,ze(t,r)}});const In=(0,o.op)({rotateWithOffset_:function(e,t,a=0,n=.5){const r=(0,i._1)(e,"image","rotateWithOffset","float32");u.hu(4===r.rank,(()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`));const o={image:r},d={radians:t,fillValue:a,center:n};return s.BV.runKernel(p.b9H,o,d)}});function En(e,t,a,n,r,s){null==n&&(n=.5),null==r&&(r=Number.NEGATIVE_INFINITY),null==s&&(s=0);const p=e.shape[0];return a=Math.min(a,p),u.hu(0<=n&&n<=1,(()=>`iouThreshold must be in [0, 1], but was '${n}'`)),u.hu(2===e.rank,(()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`)),u.hu(4===e.shape[1],(()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`)),u.hu(1===t.rank,(()=>"scores must be a 1D tensor")),u.hu(t.shape[0]===p,(()=>`scores has incompatible shape with boxes. Expected ${p}, but was ${t.shape[0]}`)),u.hu(0<=s&&s<=1,(()=>`softNmsSigma must be in [0, 1], but was '${s}'`)),{maxOutputSize:a,iouThreshold:n,scoreThreshold:r,softNmsSigma:s}}const Dn=(0,o.op)({nonMaxSuppression_:function(e,t,a,n=.5,r=Number.NEGATIVE_INFINITY){const o=(0,i._1)(e,"boxes","nonMaxSuppression","float32"),d=(0,i._1)(t,"scores","nonMaxSuppression","float32"),l=En(o,d,a,n,r),m={maxOutputSize:a=l.maxOutputSize,iouThreshold:n=l.iouThreshold,scoreThreshold:r=l.scoreThreshold};return s.BV.runKernel(p.uv1,{boxes:o,scores:d},m)}});var An=a(3337);const Vn=async function(e,t,a,n=.5,r=Number.NEGATIVE_INFINITY){const s=(0,i._1)(e,"boxes","nonMaxSuppressionAsync"),p=(0,i._1)(t,"scores","nonMaxSuppressionAsync"),o=En(s,p,a,n,r);a=o.maxOutputSize,n=o.iouThreshold,r=o.scoreThreshold;const d=await Promise.all([s.data(),p.data()]),l=d[0],m=d[1],{selectedIndices:u}=(0,An.GP)(l,m,a,n,r);return s!==e&&s.dispose(),p!==t&&p.dispose(),za(u,"int32")};const Mn=(0,o.op)({nonMaxSuppressionWithScore_:function(e,t,a,n=.5,r=Number.NEGATIVE_INFINITY,o=0){const d=(0,i._1)(e,"boxes","nonMaxSuppression"),l=(0,i._1)(t,"scores","nonMaxSuppression"),m=En(d,l,a,n,r,o),u={boxes:d,scores:l},c={maxOutputSize:a=m.maxOutputSize,iouThreshold:n=m.iouThreshold,scoreThreshold:r=m.scoreThreshold,softNmsSigma:o=m.softNmsSigma},h=s.BV.runKernel(p.W0H,u,c);return{selectedIndices:h[0],selectedScores:h[1]}}});const Fn=async function(e,t,a,n=.5,r=Number.NEGATIVE_INFINITY,s=0){const p=(0,i._1)(e,"boxes","nonMaxSuppressionAsync"),o=(0,i._1)(t,"scores","nonMaxSuppressionAsync"),d=En(p,o,a,n,r,s);a=d.maxOutputSize,n=d.iouThreshold,r=d.scoreThreshold,s=d.softNmsSigma;const l=await Promise.all([p.data(),o.data()]),m=l[0],u=l[1],{selectedIndices:c,selectedScores:h}=(0,An.pA)(m,u,a,n,r,s);return p!==e&&p.dispose(),o!==t&&o.dispose(),{selectedIndices:za(c,"int32"),selectedScores:za(h)}};const Bn=(0,o.op)({nonMaxSuppressionPadded_:function(e,t,a,n=.5,r=Number.NEGATIVE_INFINITY,o=!1){const d=(0,i._1)(e,"boxes","nonMaxSuppression"),l=(0,i._1)(t,"scores","nonMaxSuppression"),m=En(d,l,a,n,r,null),u={boxes:d,scores:l},c={maxOutputSize:m.maxOutputSize,iouThreshold:m.iouThreshold,scoreThreshold:m.scoreThreshold,padToMaxOutputSize:o},h=s.BV.runKernel(p.cye,u,c);return{selectedIndices:h[0],validOutputs:h[1]}}});const On=async function(e,t,a,n=.5,r=Number.NEGATIVE_INFINITY,s=!1){const p=(0,i._1)(e,"boxes","nonMaxSuppressionAsync"),o=(0,i._1)(t,"scores","nonMaxSuppressionAsync"),d=En(p,o,a,n,r,null),l=d.maxOutputSize,m=d.iouThreshold,u=d.scoreThreshold,[c,h]=await Promise.all([p.data(),o.data()]),{selectedIndices:f,validOutputs:g}=(0,An.qP)(c,h,l,m,u,s);return p!==e&&p.dispose(),o!==t&&o.dispose(),{selectedIndices:za(f,"int32"),validOutputs:(0,Ae.i)(g,"int32")}};const $n=(0,o.op)({resizeBilinear_:function(e,t,a=!1,n=!1){const r=(0,i._1)(e,"images","resizeBilinear");u.hu(3===r.rank||4===r.rank,(()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`)),u.hu(2===t.length,(()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`)),u.hu(!1===n||!1===a,(()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false."));let o=r,d=!1;3===r.rank&&(d=!0,o=(0,x.X)(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const[]=t,l={images:o},m={alignCorners:a,halfPixelCenters:n,size:t},c=s.BV.runKernel(p._Yw,l,m);return d?(0,x.X)(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});const Cn=(0,o.op)({resizeNearestNeighbor_:function(e,t,a=!1,n=!1){const r=(0,i._1)(e,"images","resizeNearestNeighbor");u.hu(3===r.rank||4===r.rank,(()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`)),u.hu(2===t.length,(()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`)),u.hu("float32"===r.dtype||"int32"===r.dtype,(()=>"`images` must have `int32` or `float32` as dtype")),u.hu(!1===n||!1===a,(()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false."));let o=r,d=!1;3===r.rank&&(d=!0,o=(0,x.X)(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const[]=t,l={images:o},m={alignCorners:a,halfPixelCenters:n,size:t},c=s.BV.runKernel(p.dpD,l,m);return d?(0,x.X)(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});const Rn=(0,o.op)({threshold_:function(e,t="binary",a=!1,n=.5){const r=(0,i._1)(e,"image","threshold"),s=r.shape[0]*r.shape[1];let p,o,d,l,c=(0,M.d)(za([n]),255);if(u.hu(3===r.rank,(()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`)),u.hu(3===r.shape[2]||1===r.shape[2],(()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`)),u.hu("int32"===r.dtype||"float32"===r.dtype,(()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`)),u.hu("otsu"===t||"binary"===t,(()=>`Method must be binary or otsu, but was ${t}`)),3===r.shape[2]){[p,o,d]=Aa(r,[1,1,1],-1);const e=(0,M.d)(p,.2989),t=(0,M.d)(o,.587),a=(0,M.d)(d,.114);l=(0,m.I)((0,m.I)(e,t),a)}else l=e;if("otsu"===t){c=function(e,t){let a,n,r,s,p,i,o=za([-1]),d=za([0]),l=za([0]);for(let u=0;u`Error in transform: image must be rank 4,but got rank ${d.rank}.`)),u.hu(2===l.rank&&(l.shape[0]===d.shape[0]||1===l.shape[0])&&8===l.shape[1],(()=>"Error in transform: Input transform should be batch x 8 or 1 x 8")),u.hu(null==o||2===o.length,(()=>`Error in transform: outputShape must be [height, width] or null, but got ${o}.`));const m={image:d,transforms:l},c={interpolation:a,fillMode:n,fillValue:r,outputShape:o};return s.BV.runKernel(p.wx7,m,c)}});const zn=(0,o.op)({bandPart_:function(e,t,a){(0,u.hu)(t%1==0,(()=>`bandPart(): numLower must be an integer, got ${t}.`)),(0,u.hu)(a%1==0,(()=>`bandPart(): numUpper must be an integer, got ${a}.`));const n=(0,i._1)(e,"a","bandPart");(0,u.hu)(n.rank>=2,(()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`));const r=n.shape,[s,p]=n.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(a<=p))throw new Error(`bandPart(): numUpper (${a}) must not be greater than the number of columns (${p}).`);t<0&&(t=s),a<0&&(a=p);const o=(0,x.X)(ra(0,s,1,"int32"),[-1,1]),d=ra(0,p,1,"int32"),l=(0,ot.l)(o,d),m=mt(Ye(l,(0,Ae.i)(+t,"int32")),Ge(l,(0,Ae.i)(-a,"int32"))),c=St([s,p],n.dtype);return(0,x.X)(Ba(Za((0,x.X)(n,[-1,s,p])).map((e=>be(m,e,c)))),r)}});const Ln=(0,o.op)({gramSchmidt_:function(e){let t;if(Array.isArray(e)){t=!1,(0,u.hu)(null!=e&&e.length>0,(()=>"Gram-Schmidt process: input must not be null, undefined, or empty"));const a=e[0].shape[0];for(let t=1;t`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[t].shape[0]} vs. ${a})`))}else t=!0,e=Aa(e,e.shape[0],0).map((e=>Fa(e,[0])));(0,u.hu)(e.length<=e[0].shape[0],(()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`));const a=[],n=e;for(let t=0;t{let e=n[t];if(t>0)for(let n=0;n{(0,u.hu)(2===e.shape.length,(()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`));const a=e.shape[0],n=e.shape[1];let r=Le(a),p=(0,D.d)(e);const i=La([[1]],[1,1]);let o=(0,D.d)(i);const d=a>=n?n:a;for(let e=0;e{const t=B(p,[e,e],[a-e,1]),s=Oe(t),d=B(p,[e,e],[1,1]),l=be(qe(d,0),La([[-1]]),La([[1]])),m=(0,ot.l)(d,(0,M.d)(l,s)),u=(0,ge.h)(t,m);o=1===u.shape[0]?(0,D.d)(i):A([i,B(u,[1,0],[u.shape[0]-1,u.shape[1]])],0);const c=(0,st.W)((0,ge.h)((0,V.O)(l,m),s)),h=B(p,[e,0],[a-e,n]),f=(0,M.d)(c,o),g=(0,an.p)(o);if(0===e)p=(0,ot.l)(h,(0,V.O)(f,(0,V.O)(g,h)));else{const t=(0,ot.l)(h,(0,V.O)(f,(0,V.O)(g,h)));p=A([B(p,[0,0],[e,n]),t],0)}const y=(0,an.p)(f),v=B(r,[0,e],[a,r.shape[1]-e]);if(0===e)r=(0,ot.l)(v,(0,V.O)((0,V.O)(v,o),y));else{const t=(0,ot.l)(v,(0,V.O)((0,V.O)(v,o),y));r=A([B(r,[0,0],[a,e]),t],1)}return[o,p,r]})),(0,Wn.B9)([t,d,l])}return!t&&a>n&&(r=B(r,[0,0],[a,n]),p=B(p,[0,0],[n,n])),[r,p]}))}const Hn=(0,o.op)({qr_:function(e,t=!1){if((0,u.hu)(e.rank>=2,(()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`)),2===e.rank)return Un(e,t);{const a=e.shape.slice(0,e.shape.length-2).reduce(((e,t)=>e*t)),n=Za((0,x.X)(e,[a,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];n.forEach((e=>{const[a,n]=Un(e,t);r.push(a),s.push(n)}));return[(0,x.X)(Ba(r,0),e.shape),(0,x.X)(Ba(s,0),e.shape)]}}});var qn=a(9876);const Gn=(0,o.op)({computeWeightedLoss_:function(e,t,a=qn.I.SUM_BY_NONZERO_WEIGHTS){const n=(0,i._1)(e,"losses","computeWeightedLoss");let r=null;null!=t&&(r=(0,i._1)(t,"weights","computeWeightedLoss"));const s=null==r?n:(0,M.d)(n,r);if(a===qn.I.NONE)return s;if(a===qn.I.SUM)return(0,Fe.S)(s);if(a===qn.I.MEAN){if(null==r)return kt(s);{const e=n.size/r.size,t=(0,ge.h)((0,Fe.S)(s),(0,Fe.S)(r));return e>1?(0,ge.h)(t,(0,Ae.i)(e)):t}}if(a===qn.I.SUM_BY_NONZERO_WEIGHTS){if(null==r)return(0,ge.h)((0,Fe.S)(s),(0,Ae.i)(n.size));{const e=(0,M.d)(r,_t(n.shape)),t=(0,_.p)((0,Fe.S)(Ft(e,(0,Ae.i)(0))),"float32");return(0,ge.h)((0,Fe.S)(s),t)}}throw Error(`Unknown reduction: ${a}`)}});const jn=(0,o.op)({absoluteDifference_:function(e,t,a,n=qn.I.SUM_BY_NONZERO_WEIGHTS){const s=(0,i._1)(e,"labels","absoluteDifference"),p=(0,i._1)(t,"predictions","absoluteDifference");let o=null;null!=a&&(o=(0,i._1)(a,"weights","absoluteDifference")),(0,u.k5)(s.shape,p.shape,"Error in absoluteDifference: ");const d=(0,r.W)((0,ot.l)(s,p));return Gn(d,o,n)}});const Kn=(0,o.op)({cosineDistance_:function(e,t,a,n,r=qn.I.SUM_BY_NONZERO_WEIGHTS){const s=(0,i._1)(e,"labels","cosineDistance"),p=(0,i._1)(t,"predictions","cosineDistance");let o=null;null!=n&&(o=(0,i._1)(n,"weights","cosineDistance")),(0,u.k5)(s.shape,p.shape,"Error in cosineDistance: ");const d=(0,Ae.i)(1),l=(0,ot.l)(d,(0,Fe.S)((0,M.d)(s,p),a,!0));return Gn(l,o,r)}});const Xn=(0,o.op)({hingeLoss_:function(e,t,a,n=qn.I.SUM_BY_NONZERO_WEIGHTS){let r=(0,i._1)(e,"labels","hingeLoss");const s=(0,i._1)(t,"predictions","hingeLoss");let p=null;null!=a&&(p=(0,i._1)(a,"weights","hingeLoss")),(0,u.k5)(r.shape,s.shape,"Error in hingeLoss: ");const o=(0,Ae.i)(1);r=(0,ot.l)((0,M.d)((0,Ae.i)(2),r),o);const d=(0,ia.U)((0,ot.l)(o,(0,M.d)(r,s)));return Gn(d,p,n)}});const Zn=(0,o.op)({huberLoss_:function(e,t,a,n=1,s=qn.I.SUM_BY_NONZERO_WEIGHTS){const p=(0,i._1)(e,"labels","huberLoss"),o=(0,i._1)(t,"predictions","huberLoss");let d=null;null!=a&&(d=(0,i._1)(a,"weights","huberLoss")),(0,u.k5)(p.shape,o.shape,"Error in huberLoss: ");const l=(0,Ae.i)(n),c=(0,r.W)((0,ot.l)(o,p)),h=It(c,l),f=(0,ot.l)(c,h),g=(0,m.I)((0,M.d)((0,Ae.i)(.5),(0,Me.h)(h)),(0,M.d)(l,f));return Gn(g,d,s)}});const Jn=(0,o.op)({logLoss_:function(e,t,a,n=1e-7,r=qn.I.SUM_BY_NONZERO_WEIGHTS){const s=(0,i._1)(e,"labels","logLoss"),p=(0,i._1)(t,"predictions","logLoss");let o=null;null!=a&&(o=(0,i._1)(a,"weights","logLoss")),(0,u.k5)(s.shape,p.shape,"Error in logLoss: ");const d=(0,Ae.i)(1),l=(0,Ae.i)(n),c=(0,st.W)((0,M.d)(s,at((0,m.I)(p,l)))),h=(0,M.d)((0,ot.l)(d,s),at((0,m.I)((0,ot.l)(d,p),l))),f=(0,ot.l)(c,h);return Gn(f,o,r)}});const Qn=(0,o.op)({meanSquaredError_:function(e,t,a,n=qn.I.SUM_BY_NONZERO_WEIGHTS){const r=(0,i._1)(e,"labels","meanSquaredError"),s=(0,i._1)(t,"predictions","meanSquaredError");let p=null;null!=a&&(p=(0,i._1)(a,"weights","meanSquaredError")),(0,u.k5)(r.shape,s.shape,"Error in meanSquaredError: ");const o=Ma(r,s);return Gn(o,p,n)}});const Yn=(0,o.op)({sigmoidCrossEntropy_:function(e,t,a,n=0,s=qn.I.SUM_BY_NONZERO_WEIGHTS){let p=(0,i._1)(e,"multiClassLabels","sigmoidCrossEntropy");const o=(0,i._1)(t,"logits","sigmoidCrossEntropy");let d=null;if(null!=a&&(d=(0,i._1)(a,"weights","sigmoidCrossEntropy")),(0,u.k5)(p.shape,o.shape,"Error in sigmoidCrossEntropy: "),n>0){const e=(0,Ae.i)(n),t=(0,Ae.i)(1),a=(0,Ae.i)(.5);p=(0,m.I)((0,M.d)(p,(0,ot.l)(t,e)),(0,M.d)(a,e))}const l=function(e,t){const a=(0,i._1)(e,"labels","sigmoidCrossEntropyWithLogits"),n=(0,i._1)(t,"logits","sigmoidCrossEntropyWithLogits");(0,u.k5)(a.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");const s=(0,ia.U)(n),p=(0,M.d)(n,a),o=nt(Ce((0,st.W)((0,r.W)(n))));return(0,m.I)((0,ot.l)(s,p),o)}(p,o);return Gn(l,d,s)}});const er=(0,o.op)({softmaxCrossEntropy_:function(e,t,a,n=0,r=qn.I.SUM_BY_NONZERO_WEIGHTS){let s=(0,i._1)(e,"onehotLabels","softmaxCrossEntropy");const p=(0,i._1)(t,"logits","softmaxCrossEntropy");let o=null;if(null!=a&&(o=(0,i._1)(a,"weights","softmaxCrossEntropy")),(0,u.k5)(s.shape,p.shape,"Error in softmaxCrossEntropy: "),n>0){const e=(0,Ae.i)(n),t=(0,Ae.i)(1),a=(0,Ae.i)(s.shape[1]);s=(0,m.I)((0,M.d)(s,(0,ot.l)(t,e)),(0,ge.h)(e,a))}const d=function(e,t,a=-1){if(-1===a&&(a=t.rank-1),a!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${a}`);const n=(0,rt.cb)(((e,t,n)=>{const r=lt(t,[a],!0),s=(0,ot.l)((0,_.p)(t,"float32"),r);n([e,s]);const p=(0,st.W)((0,M.d)(s,e));return{value:(0,Fe.S)(p,[a]),gradFunc:(e,t)=>{const[n,r]=t,s=(0,xe.rv)(e.shape,[a]);return[(0,M.d)((0,x.X)(e,s),(0,ot.l)((0,_.p)(n,"float32"),Ce(r))),(0,M.d)((0,x.X)(e,s),(0,ot.l)(Ce(r),(0,_.p)(n,"float32")))]}}}));return n(e,t)}(s,p);return Gn(d,o,r)}});const tr=(0,o.op)({sparseFillEmptyRows_:function(e,t,a,n){const r=(0,i._1)(e,"indices","sparseFillEmptyRows","int32"),o=(0,i._1)(t,"values","sparseFillEmptyRows"),d=(0,i._1)(a,"denseShape","sparseFillEmptyRows","int32"),l=(0,i._1)(n,"defaultValue","sparseFillEmptyRows",o.dtype);if(2!==r.rank)throw new Error(`Indices should be Tensor2D but received shape\n ${r.shape}`);if(1!==o.rank)throw new Error(`Values should be Tensor1D but received shape ${o.shape}`);if(1!==d.rank)throw new Error(`Dense shape should be Tensor1D but received shape ${d.shape}`);if(0!==l.rank)throw new Error(`Default value should be a scalar but received shape ${l.shape}`);const m={indices:r,values:o,denseShape:d,defaultValue:l},u=s.BV.runKernel(p.O3z,m);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}});const ar=(0,o.op)({sparseReshape_:function(e,t,a){const n=(0,i._1)(e,"inputIndices","sparseReshape","int32"),r=(0,i._1)(t,"inputShape","sparseReshape","int32"),o=(0,i._1)(a,"newShape","sparseReshape","int32");if(2!==n.rank)throw new Error(`Input indices should be Tensor2D but received shape\n ${n.shape}`);if(1!==r.rank)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(1!==o.rank)throw new Error(`New shape should be Tensor1D but received shape ${o.shape}`);const d={inputIndices:n,inputShape:r,newShape:o},l=s.BV.runKernel(p.nhH,d);return{outputIndices:l[0],outputShape:l[1]}}});const nr=(0,o.op)({sparseSegmentMean_:function(e,t,a){const n=(0,i._1)(e,"data","sparseSegmentMean"),r=(0,i._1)(t,"indices","sparseSegmentMean","int32"),o=(0,i._1)(a,"segmentIds","sparseSegmentMean","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.rank)throw new Error(`Indices should be Tensor1D but received shape\n ${r.shape}`);if(1!==o.rank)throw new Error(`Segment ids should be Tensor1D but received shape\n ${o.shape}`);const d={data:n,indices:r,segmentIds:o};return s.BV.runKernel(p.w3H,d)}});const rr=(0,o.op)({sparseSegmentSum_:function(e,t,a){const n=(0,i._1)(e,"data","sparseSegmentSum"),r=(0,i._1)(t,"indices","sparseSegmentSum","int32"),o=(0,i._1)(a,"segmentIds","sparseSegmentSum","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.rank)throw new Error(`Indices should be Tensor1D but received shape\n ${r.shape}`);if(1!==o.rank)throw new Error(`Segment ids should be Tensor1D but received shape\n ${o.shape}`);const d={data:n,indices:r,segmentIds:o};return s.BV.runKernel(p.ZjV,d)}});const sr=(0,o.op)({stringNGrams_:function(e,t,a,n,r,o,d,l){const m=(0,i._1)(e,"data","stringNGrams","string");if("string"!==m.dtype)throw new Error("Data must be of datatype string");if(1!==m.shape.length)throw new Error(`Data must be a vector, saw: ${m.shape}`);const u=(0,i._1)(t,"dataSplits","stringNGrams");if("int32"!==u.dtype)throw new Error("Data splits must be of datatype int32");const c={separator:a,nGramWidths:n,leftPad:r,rightPad:o,padWidth:d,preserveShortSequences:l},h={data:m,dataSplits:u},f=s.BV.runKernel(p._JP,h,c);return{nGrams:f[0],nGramsSplits:f[1]}}});const pr=(0,o.op)({stringSplit_:function(e,t,a=!0){const n=(0,i._1)(e,"input","stringSplit","string"),r=(0,i._1)(t,"delimiter","stringSplit","string");if(1!==n.rank)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(0!==r.rank)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);const o={skipEmpty:a},d={input:n,delimiter:r},l=s.BV.runKernel(p.s1s,d,o);return{indices:l[0],values:l[1],shape:l[2]}}});const ir=(0,o.op)({stringToHashBucketFast_:function(e,t){const a=(0,i._1)(e,"input","stringToHashBucketFast","string"),n={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");const r={input:a};return s.BV.runKernel(p.XkS,r,n)}}),or={fft:Ia,ifft:Ea,rfft:Va,irfft:Da},dr={hammingWindow:wn,hannWindow:Nn,frame:kn,stft:Sn},lr={flipLeftRight:Tn,grayscaleToRGB:xn,resizeNearestNeighbor:Cn,resizeBilinear:$n,rotateWithOffset:In,cropAndResize:_n,nonMaxSuppression:Dn,nonMaxSuppressionAsync:Vn,nonMaxSuppressionWithScore:Mn,nonMaxSuppressionWithScoreAsync:Fn,nonMaxSuppressionPadded:Bn,nonMaxSuppressionPaddedAsync:On,threshold:Rn,transform:Pn},mr={bandPart:zn,gramSchmidt:Ln,qr:Hn},ur={absoluteDifference:jn,computeWeightedLoss:Gn,cosineDistance:Kn,hingeLoss:Xn,huberLoss:Zn,logLoss:Jn,meanSquaredError:Qn,sigmoidCrossEntropy:Yn,softmaxCrossEntropy:er},cr={sparseFillEmptyRows:tr,sparseReshape:ar,sparseSegmentMean:nr,sparseSegmentSum:rr},hr={stringNGrams:sr,stringSplit:pr,stringToHashBucketFast:ir}},3453:(e,t,a)=>{"use strict";a.d(t,{s:()=>i});var n=a(7097),r=a(9121),s=a(747),p=a(3740);const i=(0,a(2668).op)({pow_:function(e,t){let a=(0,p._1)(e,"base","pow"),i=(0,p._1)(t,"exp","pow");[a,i]=(0,s.makeTypesMatch)(a,i);const o={a,b:i};return n.BV.runKernel(r.pe_,o)}})},8151:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({prelu_:function(e,t){const a={x:(0,s._1)(e,"x","prelu"),alpha:(0,s._1)(t,"alpha","prelu")};return n.BV.runKernel(r.o0g,a)}})},9798:(e,t,a)=>{"use strict";function n(e,t=!1){console.log(e.toString(t))}a.d(t,{S:()=>n})},766:(e,t,a)=>{"use strict";a.d(t,{k:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({real_:function(e){const t={input:(0,s._1)(e,"input","real")};return n.BV.runKernel(r.xJR,t)}})},7409:(e,t,a)=>{"use strict";a.d(t,{U:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({relu_:function(e){const t={x:(0,s._1)(e,"x","relu")};return n.BV.runKernel(r.qkr,t)}})},3582:(e,t,a)=>{"use strict";a.d(t,{b:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({relu6_:function(e){const t={x:(0,s._1)(e,"x","relu6")};return n.BV.runKernel(r.SbG,t)}})},4968:(e,t,a)=>{"use strict";a.d(t,{X:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({reshape_:function(e,t){const a={x:(0,s._1)(e,"x","reshape","string_or_numeric")},p={shape:t};return n.BV.runKernel(r.HZH,a,p)}})},9494:(e,t,a)=>{"use strict";a.d(t,{i:()=>s});var n=a(569),r=a(7852);function s(e,t){if(((0,n.fU)(e)&&"string"!==t||Array.isArray(e))&&"complex64"!==t)throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if("string"===t&&(0,n.fU)(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return(0,r.H)(e,[],[],t)}},3028:(e,t,a)=>{"use strict";a.r(t),a.d(t,{validateUpdateShape:()=>r,validateInput:()=>s,calculateShapes:()=>p});var n=a(569);function r(e,t,a){const n=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${a.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${n}, and batchDim: ${r}.`;if(a.rank1?t.shape[r-1]:1,p=a.length;let i=1;for(let e=s;e{"use strict";a.d(t,{X:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({sigmoid_:function(e){const t={x:(0,s._1)(e,"x","sigmoid","float32")};return n.BV.runKernel(r.a5O,t)}})},3261:(e,t,a)=>{"use strict";a.d(t,{_:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({sqrt_:function(e){const t={x:(0,s._1)(e,"x","sqrt","float32")};return n.BV.runKernel(r.FKq,t)}})},248:(e,t,a)=>{"use strict";a.d(t,{h:()=>s});var n=a(7097),r=a(3740);const s=(0,a(2668).op)({square_:function(e){const t=(0,r._1)(e,"x","square");return n.BV.runKernel("Square",{x:t},{})}})},1901:(e,t,a)=>{"use strict";a.d(t,{N:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({step_:function(e,t=0){const a={x:(0,s._1)(e,"x","step")},p={alpha:t};return n.BV.runKernel(r.h8e,a,p)}})},827:(e,t,a)=>{"use strict";a.d(t,{l:()=>i});var n=a(7097),r=a(9121),s=a(747),p=a(3740);const i=(0,a(2668).op)({sub_:function(e,t){let a=(0,p._1)(e,"a","sub"),i=(0,p._1)(t,"b","sub");[a,i]=(0,s.makeTypesMatch)(a,i);const o={a,b:i};return n.BV.runKernel(r.Tr8,o)}})},5475:(e,t,a)=>{"use strict";a.d(t,{S:()=>i});var n=a(7097),r=a(9121),s=a(3740),p=a(2271);const i=(0,a(2668).op)({sum_:function(e,t=null,a=!1){let i=(0,s._1)(e,"x","sum");"bool"===i.dtype&&(i=(0,p.p)(i,"int32"));const o={x:i},d={axis:t,keepDims:a};return n.BV.runKernel(r.GBy,o,d)}})},701:(e,t,a)=>{"use strict";a.d(t,{X:()=>s});var n=a(3740),r=a(7852);function s(e,t,a){const s=(0,n.C)(e,a);return(0,r.H)(e,t,s,a)}},9906:(e,t,a)=>{"use strict";a.d(t,{w:()=>p});var n=a(3740),r=a(569),s=a(7852);function p(e,t,a){if((0,r.Cq)(e),null!=t&&3!==t.length)throw new Error("tensor3d() requires shape to have three numbers");const p=(0,n.C)(e,a);if(3!==p.length&&1!==p.length)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===p.length&&null==t)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return(0,s.H)(e,t,p,a)}},7852:(e,t,a)=>{"use strict";a.d(t,{H:()=>p});var n=a(7097),r=a(569),s=a(9122);function p(e,t,a,p){if(null==p&&(p=(0,r.D2)(e)),"complex64"===p)throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!(0,r.fU)(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e)throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(null!=t){(0,r.Mu)(t);const e=(0,r.NA)(t),n=(0,r.NA)(a);(0,r.hu)(e===n,(()=>`Based on the provided shape, [${t}], the tensor should have ${e} values but has ${n}`));for(let e=0;e`Error creating a new Tensor. Inferred shape (${a}) does not match the provided shape (${t}). `))}}return(0,r.fU)(e)||Array.isArray(e)||(e=[e]),t=t||a,e="string"!==p?(0,s.toTypedArray)(e,p):(0,r.xH)(e,[],!0),n.BV.makeTensor(e,t,p)}},9065:(e,t,a)=>{"use strict";a.d(t,{p:()=>c});var n=a(7097),r=a(4368),s=a(9121),p=a(3740),i=a(569),o=a(1661),d=a(4386),l=a(7370),m=a(2668),u=a(766);const c=(0,m.op)({transpose_:function(e,t,a){const m=(0,p._1)(e,"x","transpose");if(null==t&&(t=m.shape.map(((e,t)=>t)).reverse()),i.hu(m.rank===t.length,(()=>`Error in transpose: rank of input ${m.rank} must match length of perm ${t}.`)),t.forEach((e=>{i.hu(e>=0&&e"All entries in 'perm' must be between 0 and "+(m.rank-1)+` but got ${t}`))})),m.rank<=1)return m.clone();const c={x:m},h={perm:t};return"complex64"===m.dtype?(0,r.lu)((()=>{let e=(0,u.k)(m),t=(0,d.a)(m);return e=n.BV.runKernel(s.G3Y,{x:e},h),t=n.BV.runKernel(s.G3Y,{x:t},h),a&&(t=(0,l.W)(t)),(0,o.P)(e,t)})):n.BV.runKernel(s.G3Y,c,h)}})},6577:(e,t,a)=>{"use strict";a.d(t,{P:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({zerosLike_:function(e){const t={x:(0,s._1)(e,"x","zerosLike")};return n.BV.runKernel(r.RuY,t)}})},4077:(e,t,a)=>{"use strict";a.d(t,{es:()=>v,YD:()=>m,_w:()=>b,FZ:()=>y,Vp:()=>g,Vi:()=>f});var n=a(5938),r=a(569);function s(e,t,a,n){const s=(0,r.e3)(t),i=function(e,t,a,n){const s=(0,r.NA)(t),i=n[n.length-1],o=new Array(i).fill(0),l=t.length,m="complex64"===a?d(e):e;if(l>1)for(let e=0;e" "+e)).join("\n")),u.join("\n")}function p(e,t,a){let n;return n=Array.isArray(e)?`${parseFloat(e[0].toFixed(7))} + ${parseFloat(e[1].toFixed(7))}j`:(0,r.HD)(e)?`'${e}'`:"bool"===a?i(e):parseFloat(e.toFixed(7)).toString(),(0,r.oj)(n,t)}function i(e){return 0===e?"false":"true"}function o(e,t,a,n,r,s=!0){const l="complex64"===a?2:1,m=t[0],u=t.length;if(0===u){if("complex64"===a){return[p(d(e)[0],0,a)]}return"bool"===a?[i(e[0])]:[e[0].toString()]}if(1===u){if(m>20){const t=3*l;let n=Array.from(e.slice(0,t)),s=Array.from(e.slice((m-3)*l,m*l));return"complex64"===a&&(n=d(n),s=d(s)),["["+n.map(((e,t)=>p(e,r[t],a))).join(", ")+", ..., "+s.map(((e,t)=>p(e,r[m-3+t],a))).join(", ")+"]"]}return["["+("complex64"===a?d(e):Array.from(e)).map(((e,t)=>p(e,r[t],a))).join(", ")+"]"]}const c=t.slice(1),h=n.slice(1),f=n[0]*l,g=[];if(m>20){for(let t=0;t<3;t++){const n=t*f,s=n+f;g.push(...o(e.slice(n,s),c,a,h,r,!1))}g.push("...");for(let t=m-3;t`Length of values '${e}' does not match the size inferred by the shape '${this.size}'.`))}if("complex64"===t)throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=a||r.rQ(t,this.size),this.strides=(0,r.e3)(e)}set(e,...t){0===t.length&&(t=[0]),r.hu(t.length===this.rank,(()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`));const a=this.locToIndex(t);this.values[a]=e}get(...e){0===e.length&&(e=[0]);let t=0;for(const a of e){if(a<0||a>=this.shape[t]){const t=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(t)}t++}let a=e[e.length-1];for(let t=0;tl.decodeString(e)))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),u().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();const e=u().readSync(this.dataId);if("string"===this.dtype)try{return e.map((e=>l.decodeString(e)))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();const e=await u().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(u().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return c.print(this,e)}clone(){return this.throwIfDisposed(),c.clone(this)}toString(e=!1){return s(this.dataSync(),this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),c.cast(this,e)}variable(e=!0,t,a){return this.throwIfDisposed(),u().makeVariable(this,e,t,a)}}Object.defineProperty(v,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed}),(0,n.R)("Tensor",(()=>v));class b extends v{constructor(e,t,a,n){super(e.shape,e.dtype,e.dataId,n),this.trainable=t,this.name=a}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!r.cO(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);u().disposeTensor(this),this.dataId=e.dataId,u().incRef(this,null)}dispose(){u().disposeVariable(this),this.isDisposedInternal=!0}}Object.defineProperty(b,Symbol.hasInstance,{value:e=>e instanceof v&&null!=e.assign&&e.assign instanceof Function})},747:(e,t,a)=>{"use strict";a.r(t),a.d(t,{makeTypesMatch:()=>p,assertTypesMatch:()=>i,isTensorInList:()=>o,getTensorsInContainer:()=>d});var n=a(4077),r=a(1221),s=a(569);function p(e,t){if(e.dtype===t.dtype)return[e,t];const a=(0,r.x8)(e.dtype,t.dtype);return[e.cast(a),t.cast(a)]}function i(e,t){(0,s.hu)(e.dtype===t.dtype,(()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`))}function o(e,t){return t.some((t=>t.id===e.id))}function d(e){const t=[];return l(e,t,new Set),t}function l(e,t,a){if(null==e)return;if(e instanceof n.es)return void t.push(e);if(r=e,!Array.isArray(r)&&"object"!=typeof r)return;var r;const s=e;for(const e in s){const n=s[e];a.has(n)||(a.add(n),l(n,t,a))}}},3740:(e,t,a)=>{"use strict";a.d(t,{C:()=>o,_1:()=>m,sI:()=>u});var n=a(7097),r=a(2885),s=a(4077),p=a(569),i=a(9122);function o(e,t){let a=e;if((0,p.fU)(e))return"string"===t?[]:[e.length];if(!Array.isArray(e))return[];const n=[];for(;Array.isArray(a)||(0,p.fU)(a)&&"string"!==t;)n.push(a.length),a=a[0];return Array.isArray(e)&&(0,r.OB)().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&d(e,n,[]),n}function d(e,t,a){if(a=a||[],!Array.isArray(e)&&!(0,p.fU)(e))return void(0,p.hu)(0===t.length,(()=>`Element arr[${a.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`));(0,p.hu)(t.length>0,(()=>`Element arr[${a.join("][")}] should be a primitive, but is an array of ${e.length} elements`)),(0,p.hu)(e.length===t[0],(()=>`Element arr[${a.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`));const n=t.slice(1);for(let t=0;t=0&&(d=r),l(r,d,t,a),null==e||!(0,p.fU)(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){const n=null==e?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${a}' must be a Tensor or TensorLike, but got '${n}'`)}const m=o(e,d);(0,p.fU)(e)||Array.isArray(e)||(e=[e]);const u="string"!==d?(0,i.toTypedArray)(e,d):(0,p.xH)(e,[],!0);return n.BV.makeTensor(u,m,d)}function u(e,t,a,n="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${a} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map(((e,r)=>m(e,`${t}[${r}]`,a,n)))}},1221:(e,t,a)=>{"use strict";var n,r,s,p,i;a.d(t,{yw:()=>n,x8:()=>d,z4:()=>l}),function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"}(n||(n={})),function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"}(r||(r={})),function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"}(s||(s={})),function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"}(p||(p={})),function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"}(i||(i={}));const o={float32:p,int32:r,bool:s,complex64:i};function d(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return o[e][t]}function l(e){return d(e,"int32")}},9122:(e,t,a)=>{"use strict";a.r(t),a.d(t,{arraysEqual:()=>r.cO,assert:()=>r.hu,assertNonNegativeIntegerDimensions:()=>r.Mu,assertNonNull:()=>r.Cq,assertShapesMatch:()=>r.k5,bytesFromStringArray:()=>r.Ub,bytesPerElement:()=>r.bT,checkConversionForErrors:()=>r.D5,clamp:()=>r.uZ,computeStrides:()=>r.e3,createScalarValue:()=>b,createShuffledIndices:()=>r.U$,decodeString:()=>_,distSquared:()=>r.E7,encodeString:()=>S,fetch:()=>k,fingerPrint64:()=>v,flatten:()=>r.xH,getArrayFromDType:()=>r.rQ,getTypedArrayFromDType:()=>r.WP,hasEncodingLoss:()=>r.QB,hexToLong:()=>i,indexToLoc:()=>r.NE,inferDtype:()=>r.D2,inferFromImplicitShape:()=>r.JZ,isBoolean:()=>r.jn,isFunction:()=>r.mf,isInt:()=>r.GN,isNumber:()=>r.hj,isPromise:()=>r.tI,isScalarShape:()=>r.N9,isString:()=>r.HD,isTypedArray:()=>r.fU,isValidDtype:()=>r.LP,locToIndex:()=>r.qy,makeOnesTypedArray:()=>r.p8,makeZerosNestedTypedArray:()=>r.l6,makeZerosTypedArray:()=>r.wT,nearestDivisor:()=>r.jP,nearestLargerEven:()=>r.nY,now:()=>N,parseAxisParam:()=>r.EC,randUniform:()=>r.bj,repeatedTry:()=>r.WD,rightPad:()=>r.oj,shuffle:()=>r.TV,shuffleCombo:()=>r.d7,sizeFromShape:()=>r.NA,sizeToSquarishShape:()=>r.YP,squeezeShape:()=>r.bp,sum:()=>r.Sm,swap:()=>r.LF,tanh:()=>r.AE,toNestedArray:()=>r.GX,toTypedArray:()=>w});var n=a(2885),r=a(569),s=a(3720);const p=a.n(s)()||s;function i(e){return p.fromString(e,!0,16)}const o=i("c3a5c85c97cb3127"),d=i("b492b66fbe98f273"),l=i("9ae16a3b2f90404f");function m(e){return e.xor(e.shru(47))}function u(e,t,a){const n=e.slice(t,t+a);return p.fromBytes(Array.from(n),!0,!0)}function c(e,t){return u(e,t,8)}function h(e,t){return u(e,t,4)}function f(e,t){return 0===t?e:e.shru(t).or(e.shl(64-t))}function g(e,t,a=i("9ddfea08eb382d69")){let n=e.xor(t).mul(a);n=n.xor(n.shru(47));let r=t.xor(n).mul(a);return r=r.xor(r.shru(47)),r=r.mul(a),r}function y(e,t,a,n){return function(e,t,a,n,r,s){r=r.add(e),s=f(s.add(r).add(n),21);const p=r;return r=(r=r.add(t)).add(a),s=s.add(f(r,44)),[r.add(n),s.add(p)]}(c(e,t),c(e,t+8),c(e,t+16),c(e,t+24),a,n)}function v(e,t=e.length){const a=p.fromNumber(81,!0);if(t<=32)return t<=16?function(e,t=e.length){if(t>=8){const a=l.add(2*t),n=c(e,0).add(l),r=c(e,t-8);return g(f(r,37).mul(a).add(n),f(n,25).add(r).mul(a),a)}if(t>=4){const a=l.add(2*t);return g(h(e,0).shl(3).add(t),h(e,t-4),a)}if(t>0){const a=e[0]+(e[t>>1]<<8),n=t+(e[t-1]<<2);return m(l.mul(a).xor(o.mul(n))).mul(l)}return l}(e,t):function(e,t=e.length){const a=l.add(2*t),n=c(e,0).mul(d),r=c(e,8),s=c(e,t-8).mul(a),p=c(e,t-16).mul(l);return g(f(n.add(r),43).add(f(s,30)).add(p),n.add(f(r.add(l),18)).add(s),a)}(e,t);if(t<=64)return function(e,t=e.length){const a=l.add(2*t),n=c(e,0).mul(l),r=c(e,8),s=c(e,t-8).mul(a),p=c(e,t-16).mul(l),i=f(n.add(r),43).add(f(s,30)).add(p),o=g(i,n.add(f(r.add(l),18)).add(s),a),d=c(e,16).mul(a),m=c(e,24),u=i.add(c(e,t-32)).mul(a),h=o.add(c(e,t-24)).mul(a);return g(f(d.add(m),43).add(f(u,30)).add(h),d.add(f(m.add(n),18)).add(u),a)}(e,t);let n=a,r=a.mul(d).add(113),s=m(r.mul(l).add(113)).mul(l),i=[p.UZERO,p.UZERO],u=[p.UZERO,p.UZERO];n=n.mul(l).add(c(e,0));let v=0;const b=64*(t-1>>6),w=b+(t-1&63)-63;do{n=f(n.add(r).add(i[0]).add(c(e,v+8)),37).mul(d),r=f(r.add(i[1]).add(c(e,v+48)),42).mul(d),n=n.xor(u[1]),r=r.add(i[0]).add(c(e,v+40)),s=f(s.add(u[0]),33).mul(d),i=y(e,v,i[1].mul(d),n.add(u[0])),u=y(e,v+32,s.add(u[1]),r.add(c(e,v+16))),[s,n]=[n,s],v+=64}while(v!==b);const N=d.add(s.and(255).shl(1));return v=w,u[0]=u[0].add(t-1&63),i[0]=i[0].add(u[0]),u[0]=u[0].add(i[0]),n=f(n.add(r).add(i[0]).add(c(e,v+8)),37).mul(N),r=f(r.add(i[1]).add(c(e,v+48)),42).mul(N),n=n.xor(u[1].mul(9)),r=r.add(i[0].mul(9).add(c(e,v+40))),s=f(s.add(u[0]),33).mul(N),i=y(e,v,i[1].mul(N),n.add(u[0])),u=y(e,v+32,s.add(u[1]),r.add(c(e,v+16))),[s,n]=[n,s],g(g(i[0],u[0],N).add(m(r).mul(o)).add(s),g(i[1],u[1],N).add(n),N)}function b(e,t){return"string"===t?S(e):w([e],t)}function w(e,t){if("string"===t)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=r.xH(e)),(0,n.OB)().getBool("DEBUG")&&r.D5(e,t),function(e,t){return e instanceof Float32Array&&"float32"===t||e instanceof Int32Array&&"int32"===t||e instanceof Uint8Array&&"bool"===t}(e,t))return e;if(null==t||"float32"===t||"complex64"===t)return new Float32Array(e);if("int32"===t)return new Int32Array(e);if("bool"===t){const t=new Uint8Array(e.length);for(let a=0;a{"use strict";function n(e){let t=e.length,a=0;for(;t>0;)a=Math.random()*t|0,t--,i(e,t,a)}function r(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 a=e.length,n=0;for(;a>0;)n=Math.random()*a|0,a--,i(e,a,n),i(t,a,n)}function s(e,t,a){return Math.max(e,Math.min(t,a))}function p(e){return e%2==0?e:e+1}function i(e,t,a){const n=e[t];e[t]=e[a],e[a]=n}function o(e){let t=0;for(let a=0;aa+` Shapes ${e} and ${t} must match`))}function c(e){m(null!=e,(()=>"The input to the tensor constructor must be a non-null value."))}function h(e,t=[],a=!1){if(null==t&&(t=[]),Array.isArray(e)||M(e)&&!a)for(let n=0;n0),a,n=setTimeout){return new Promise(((r,s)=>{let p=0;const i=()=>{if(e())return void r();p++;const o=t(p);null!=a&&p>=a?s():n(i,o)};i()}))}function _(e,t){let a=1,n=-1;for(let t=0;t=0)a*=e[t];else if(-1===e[t]){if(-1!==n)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${t}`);n=t}else if(e[t]<0)throw Error(`Shapes can not be < 0. Found ${e[t]} at dim ${t}`);if(-1===n){if(t>0&&t!==a)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(0===a)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%a!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${a}`);const r=e.slice();return r[n]=t/a,r}function T(e,t){const a=t.length;return m((e=null==e?t.map(((e,t)=>t)):[].concat(e)).every((e=>e>=-a&&e`All values in axis param must be in range [-${a}, ${a}) but got axis ${e}`)),m(e.every((e=>v(e))),(()=>`All values in axis param must be integers but got axis ${e}`)),e.map((e=>e<0?a+e:e))}function x(e,t){const a=[],n=[],r=null!=t&&Array.isArray(t)&&0===t.length,s=null==t||r?null:T(t,e).sort();let p=0;for(let t=0;tt)&&1===e[t]&&(a.push(e[t]),n.push(t)),s[p]<=t&&p++}1!==e[t]&&(a.push(e[t]),n.push(t))}return{newShape:a,keptDims:n}}function I(e,t){let a=null;if(null==e||"float32"===e)a=new Float32Array(t);else if("int32"===e)a=new Int32Array(t);else{if("bool"!==e)throw new Error(`Unknown data type ${e}`);a=new Uint8Array(t)}return a}function E(e,t){let a=null;if(null==e||"float32"===e)a=new Float32Array(t);else if("int32"===e)a=new Int32Array(t);else if("bool"===e)a=new Uint8Array(t);else{if("string"!==e)throw new Error(`Unknown data type ${e}`);a=new Array(t)}return a}function D(e,t){for(let a=0;at+=e.length)),t}function O(e){return"string"==typeof e||e instanceof String}function $(e){return"boolean"==typeof e}function C(e){return"number"==typeof e}function R(e){return Array.isArray(e)?R(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":C(e)?"float32":O(e)?"string":$(e)?"bool":"float32"}function P(e){return!!(e&&e.constructor&&e.call&&e.apply)}function z(e,t){for(let a=t;a=0;--n)a[n]=a[n+1]*e[n+1];return a}function W(e,t,a,n=!1){const r=new Array;if(1===t.length){const s=t[0]*(n?2:1);for(let t=0;te*t))*(n?2:1);for(let t=0;te*t))*(a?2:1);if(0===n)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${a?" for a complex tensor":""}.`);return W(0,e,t,a)}function H(e,t){const a=q(e,t);for(let e=0;ee*t),1);if(null==t||"float32"===t)return U(e,new Float32Array(a));if("int32"===t)return U(e,new Int32Array(a));if("bool"===t)return U(e,new Uint8Array(a));throw new Error(`Unknown data type ${t}`)}function j(e){e.forEach((t=>{m(Number.isInteger(t)&&t>=0,(()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`))}))}function K(e,t,a){if(0===t)return 0;if(1===t)return e[0];let n=e[e.length-1];for(let t=0;tn,d7:()=>r,uZ:()=>s,nY:()=>p,LF:()=>i,Sm:()=>o,bj:()=>d,E7:()=>l,hu:()=>m,k5:()=>u,Cq:()=>c,xH:()=>h,NA:()=>f,N9:()=>g,cO:()=>y,GN:()=>v,AE:()=>b,YP:()=>w,U$:()=>N,oj:()=>k,WD:()=>S,JZ:()=>_,EC:()=>T,bp:()=>x,WP:()=>I,rQ:()=>E,D5:()=>D,LP:()=>A,QB:()=>V,fU:()=>M,bT:()=>F,Ub:()=>B,HD:()=>O,jn:()=>$,hj:()=>C,D2:()=>R,mf:()=>P,jP:()=>z,e3:()=>L,GX:()=>U,p8:()=>H,wT:()=>q,l6:()=>G,Mu:()=>j,qy:()=>K,NE:()=>X,tI:()=>Z})},3720:e=>{e.exports=a;var t=null;try{t=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(e){}function a(e,t,a){this.low=0|e,this.high=0|t,this.unsigned=!!a}function n(e){return!0===(e&&e.__isLong__)}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0}),a.isLong=n;var r={},s={};function p(e,t){var a,n,p;return t?(p=0<=(e>>>=0)&&e<256)&&(n=s[e])?n:(a=o(e,(0|e)<0?-1:0,!0),p&&(s[e]=a),a):(p=-128<=(e|=0)&&e<128)&&(n=r[e])?n:(a=o(e,e<0?-1:0,!1),p&&(r[e]=a),a)}function i(e,t){if(isNaN(e))return t?y:g;if(t){if(e<0)return y;if(e>=c)return k}else{if(e<=-h)return S;if(e+1>=h)return N}return e<0?i(-e,t).neg():o(e%u|0,e/u|0,t)}function o(e,t,n){return new a(e,t,n)}a.fromInt=p,a.fromNumber=i,a.fromBits=o;var d=Math.pow;function l(e,t,a){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return g;if("number"==typeof t?(a=t,t=!1):t=!!t,(a=a||10)<2||360)throw Error("interior hyphen");if(0===n)return l(e.substring(1),t,a).neg();for(var r=i(d(a,8)),s=g,p=0;p>>0:this.low},_.toNumber=function(){return this.unsigned?(this.high>>>0)*u+(this.low>>>0):this.high*u+(this.low>>>0)},_.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((s=o).isZero())return l+p;for(;l.length<6;)l="0"+l;p=""+l+p}},_.getHighBits=function(){return this.high},_.getHighBitsUnsigned=function(){return this.high>>>0},_.getLowBits=function(){return this.low},_.getLowBitsUnsigned=function(){return this.low>>>0},_.getNumBitsAbs=function(){if(this.isNegative())return this.eq(S)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&0==(e&1<=0},_.isOdd=function(){return 1==(1&this.low)},_.isEven=function(){return 0==(1&this.low)},_.equals=function(e){return n(e)||(e=m(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&(this.high===e.high&&this.low===e.low)},_.eq=_.equals,_.notEquals=function(e){return!this.eq(e)},_.neq=_.notEquals,_.ne=_.notEquals,_.lessThan=function(e){return this.comp(e)<0},_.lt=_.lessThan,_.lessThanOrEqual=function(e){return this.comp(e)<=0},_.lte=_.lessThanOrEqual,_.le=_.lessThanOrEqual,_.greaterThan=function(e){return this.comp(e)>0},_.gt=_.greaterThan,_.greaterThanOrEqual=function(e){return this.comp(e)>=0},_.gte=_.greaterThanOrEqual,_.ge=_.greaterThanOrEqual,_.compare=function(e){if(n(e)||(e=m(e)),this.eq(e))return 0;var t=this.isNegative(),a=e.isNegative();return t&&!a?-1:!t&&a?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},_.comp=_.compare,_.negate=function(){return!this.unsigned&&this.eq(S)?S:this.not().add(v)},_.neg=_.negate,_.add=function(e){n(e)||(e=m(e));var t=this.high>>>16,a=65535&this.high,r=this.low>>>16,s=65535&this.low,p=e.high>>>16,i=65535&e.high,d=e.low>>>16,l=0,u=0,c=0,h=0;return c+=(h+=s+(65535&e.low))>>>16,u+=(c+=r+d)>>>16,l+=(u+=a+i)>>>16,l+=t+p,o((c&=65535)<<16|(h&=65535),(l&=65535)<<16|(u&=65535),this.unsigned)},_.subtract=function(e){return n(e)||(e=m(e)),this.add(e.neg())},_.sub=_.subtract,_.multiply=function(e){if(this.isZero())return g;if(n(e)||(e=m(e)),t)return o(t.mul(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned);if(e.isZero())return g;if(this.eq(S))return e.isOdd()?S:g;if(e.eq(S))return this.isOdd()?S:g;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(f)&&e.lt(f))return i(this.toNumber()*e.toNumber(),this.unsigned);var a=this.high>>>16,r=65535&this.high,s=this.low>>>16,p=65535&this.low,d=e.high>>>16,l=65535&e.high,u=e.low>>>16,c=65535&e.low,h=0,y=0,v=0,b=0;return v+=(b+=p*c)>>>16,y+=(v+=s*c)>>>16,v&=65535,y+=(v+=p*u)>>>16,h+=(y+=r*c)>>>16,y&=65535,h+=(y+=s*u)>>>16,y&=65535,h+=(y+=p*l)>>>16,h+=a*c+r*u+s*l+p*d,o((v&=65535)<<16|(b&=65535),(h&=65535)<<16|(y&=65535),this.unsigned)},_.mul=_.multiply,_.divide=function(e){if(n(e)||(e=m(e)),e.isZero())throw Error("division by zero");var a,r,s;if(t)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?o((this.unsigned?t.div_u:t.div_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?y:g;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return y;if(e.gt(this.shru(1)))return b;s=y}else{if(this.eq(S))return e.eq(v)||e.eq(w)?S:e.eq(S)?v:(a=this.shr(1).div(e).shl(1)).eq(g)?e.isNegative()?v:w:(r=this.sub(e.mul(a)),s=a.add(r.div(e)));if(e.eq(S))return this.unsigned?y:g;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();s=g}for(r=this;r.gte(e);){a=Math.max(1,Math.floor(r.toNumber()/e.toNumber()));for(var p=Math.ceil(Math.log(a)/Math.LN2),l=p<=48?1:d(2,p-48),u=i(a),c=u.mul(e);c.isNegative()||c.gt(r);)c=(u=i(a-=l,this.unsigned)).mul(e);u.isZero()&&(u=v),s=s.add(u),r=r.sub(c)}return s},_.div=_.divide,_.modulo=function(e){return n(e)||(e=m(e)),t?o((this.unsigned?t.rem_u:t.rem_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},_.mod=_.modulo,_.rem=_.modulo,_.not=function(){return o(~this.low,~this.high,this.unsigned)},_.and=function(e){return n(e)||(e=m(e)),o(this.low&e.low,this.high&e.high,this.unsigned)},_.or=function(e){return n(e)||(e=m(e)),o(this.low|e.low,this.high|e.high,this.unsigned)},_.xor=function(e){return n(e)||(e=m(e)),o(this.low^e.low,this.high^e.high,this.unsigned)},_.shiftLeft=function(e){return n(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?o(this.low<>>32-e,this.unsigned):o(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):o(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},_.shr=_.shiftRight,_.shiftRightUnsigned=function(e){if(n(e)&&(e=e.toInt()),0===(e&=63))return this;var t=this.high;return e<32?o(this.low>>>e|t<<32-e,t>>>e,this.unsigned):o(32===e?t:t>>>e-32,0,this.unsigned)},_.shru=_.shiftRightUnsigned,_.shr_u=_.shiftRightUnsigned,_.toSigned=function(){return this.unsigned?o(this.low,this.high,!1):this},_.toUnsigned=function(){return this.unsigned?this:o(this.low,this.high,!0)},_.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},_.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},_.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},a.fromBytes=function(e,t,n){return n?a.fromBytesLE(e,t):a.fromBytesBE(e,t)},a.fromBytesLE=function(e,t){return new a(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},a.fromBytesBE=function(e,t){return new a(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}},7854:(e,t,a)=>{"use strict";a.r(t),a.d(t,{FetchError:()=>c,Headers:()=>A,Request:()=>G,Response:()=>R,default:()=>J});const n=require("stream"),r=require("http"),s=require("url");var p=a(7347);const i=require("https"),o=require("zlib"),d=n.Readable,l=Symbol("buffer"),m=Symbol("type");class u{constructor(){this[m]="";const e=arguments[0],t=arguments[1],a=[];let n=0;if(e){const t=e,r=Number(t.length);for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:{},r=a.size;let s=void 0===r?0:r;var p=a.timeout;let i=void 0===p?0:p;null==e?e=null:b(e)?e=Buffer.from(e.toString()):w(e)||Buffer.isBuffer(e)||("[object ArrayBuffer]"===Object.prototype.toString.call(e)?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof n||(e=Buffer.from(String(e)))),this[f]={body:e,disturbed:!1,error:null},this.size=s,this.timeout=i,e instanceof n&&e.on("error",(function(e){const a="AbortError"===e.name?e:new c(`Invalid response body while trying to fetch ${t.url}: ${e.message}`,"system",e);t[f].error=a}))}function v(){var e=this;if(this[f].disturbed)return y.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[f].disturbed=!0,this[f].error)return y.Promise.reject(this[f].error);let t=this.body;if(null===t)return y.Promise.resolve(Buffer.alloc(0));if(w(t)&&(t=t.stream()),Buffer.isBuffer(t))return y.Promise.resolve(t);if(!(t instanceof n))return y.Promise.resolve(Buffer.alloc(0));let a=[],r=0,s=!1;return new y.Promise((function(n,p){let i;e.timeout&&(i=setTimeout((function(){s=!0,p(new c(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))}),e.timeout)),t.on("error",(function(t){"AbortError"===t.name?(s=!0,p(t)):p(new c(`Invalid response body while trying to fetch ${e.url}: ${t.message}`,"system",t))})),t.on("data",(function(t){if(!s&&null!==t){if(e.size&&r+t.length>e.size)return s=!0,void p(new c(`content size at ${e.url} over limit: ${e.size}`,"max-size"));r+=t.length,a.push(t)}})),t.on("end",(function(){if(!s){clearTimeout(i);try{n(Buffer.concat(a,r))}catch(t){p(new c(`Could not create Buffer from response body for ${e.url}: ${t.message}`,"system",t))}}}))}))}function b(e){return"object"==typeof e&&"function"==typeof e.append&&"function"==typeof e.delete&&"function"==typeof e.get&&"function"==typeof e.getAll&&"function"==typeof e.has&&"function"==typeof e.set&&("URLSearchParams"===e.constructor.name||"[object URLSearchParams]"===Object.prototype.toString.call(e)||"function"==typeof e.sort)}function w(e){return"object"==typeof e&&"function"==typeof e.arrayBuffer&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.constructor&&"string"==typeof e.constructor.name&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function N(e){let t,a,r=e.body;if(e.bodyUsed)throw new Error("cannot clone body after it is used");return r instanceof n&&"function"!=typeof r.getBoundary&&(t=new g,a=new g,r.pipe(t),r.pipe(a),e[f].body=t,r=a),r}function k(e){return null===e?null:"string"==typeof e?"text/plain;charset=UTF-8":b(e)?"application/x-www-form-urlencoded;charset=UTF-8":w(e)?e.type||null:Buffer.isBuffer(e)||"[object ArrayBuffer]"===Object.prototype.toString.call(e)||ArrayBuffer.isView(e)?null:"function"==typeof e.getBoundary?`multipart/form-data;boundary=${e.getBoundary()}`:e instanceof n?null:"text/plain;charset=UTF-8"}function S(e){const t=e.body;return null===t?0:w(t)?t.size:Buffer.isBuffer(t)?t.length:t&&"function"==typeof t.getLengthSync&&(t._lengthRetrievers&&0==t._lengthRetrievers.length||t.hasKnownLength&&t.hasKnownLength())?t.getLengthSync():null}y.prototype={get body(){return this[f].body},get bodyUsed(){return this[f].disturbed},arrayBuffer(){return v.call(this).then((function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}))},blob(){let e=this.headers&&this.headers.get("content-type")||"";return v.call(this).then((function(t){return Object.assign(new u([],{type:e.toLowerCase()}),{[l]:t})}))},json(){var e=this;return v.call(this).then((function(t){try{return JSON.parse(t.toString())}catch(t){return y.Promise.reject(new c(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}}))},text(){return v.call(this).then((function(e){return e.toString()}))},buffer(){return v.call(this)},textConverted(){var e=this;return v.call(this).then((function(t){return function(e,t){if("function"!=typeof h)throw new Error("The package `encoding` must be installed to use the textConverted() function");const a=t.get("content-type");let n,r,s="utf-8";a&&(n=/charset=([^;]*)/i.exec(a));r=e.slice(0,1024).toString(),!n&&r&&(n=/0&&void 0!==arguments[0]?arguments[0]:void 0;if(this[D]=Object.create(null),e instanceof A){const t=e.raw(),a=Object.keys(t);for(const e of a)for(const a of t[e])this.append(e,a)}else if(null==e);else{if("object"!=typeof e)throw new TypeError("Provided initializer must be an object");{const t=e[Symbol.iterator];if(null!=t){if("function"!=typeof t)throw new TypeError("Header pairs must be iterable");const a=[];for(const t of e){if("object"!=typeof t||"function"!=typeof t[Symbol.iterator])throw new TypeError("Each header pair must be iterable");a.push(Array.from(t))}for(const e of a){if(2!==e.length)throw new TypeError("Each header pair must be a name/value tuple");this.append(e[0],e[1])}}else for(const t of Object.keys(e)){const a=e[t];this.append(t,a)}}}}get(e){x(e=`${e}`);const t=E(this[D],e);return void 0===t?null:this[D][t].join(", ")}forEach(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,a=V(this),n=0;for(;n1&&void 0!==arguments[1]?arguments[1]:"key+value";const a=Object.keys(e[D]).sort();return a.map("key"===t?function(e){return e.toLowerCase()}:"value"===t?function(t){return e[D][t].join(", ")}:function(t){return[t.toLowerCase(),e[D][t].join(", ")]})}A.prototype.entries=A.prototype[Symbol.iterator],Object.defineProperty(A.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(A.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});const M=Symbol("internal");function F(e,t){const a=Object.create(B);return a[M]={target:e,kind:t,index:0},a}const B=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==B)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[M];const t=e.target,a=e.kind,n=e.index,r=V(t,a);return n>=r.length?{value:void 0,done:!0}:(this[M].index=n+1,{value:r[n],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));function O(e){const t=Object.assign({__proto__:null},e[D]),a=E(e[D],"Host");return void 0!==a&&(t[a]=t[a][0]),t}Object.defineProperty(B,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});const $=Symbol("Response internals"),C=r.STATUS_CODES;class R{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};y.call(this,e,t);const a=t.status||200,n=new A(t.headers);if(null!=e&&!n.has("Content-Type")){const t=k(e);t&&n.append("Content-Type",t)}this[$]={url:t.url,status:a,statusText:t.statusText||C[a],headers:n,counter:t.counter}}get url(){return this[$].url||""}get status(){return this[$].status}get ok(){return this[$].status>=200&&this[$].status<300}get redirected(){return this[$].counter>0}get statusText(){return this[$].statusText}get headers(){return this[$].headers}clone(){return new R(N(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}}y.mixIn(R.prototype),Object.defineProperties(R.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}}),Object.defineProperty(R.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});const P=Symbol("Request internals"),z=s.URL||p.URL,L=s.parse,W=s.format;function U(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new z(e).toString()),L(e)}const H="destroy"in n.Readable.prototype;function q(e){return"object"==typeof e&&"object"==typeof e[P]}class G{constructor(e){let t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};q(e)?t=U(e.url):(t=e&&e.href?U(e.href):U(`${e}`),e={});let n=a.method||e.method||"GET";if(n=n.toUpperCase(),(null!=a.body||q(e)&&null!==e.body)&&("GET"===n||"HEAD"===n))throw new TypeError("Request with GET/HEAD method cannot have body");let r=null!=a.body?a.body:q(e)&&null!==e.body?N(e):null;y.call(this,r,{timeout:a.timeout||e.timeout||0,size:a.size||e.size||0});const s=new A(a.headers||e.headers||{});if(null!=r&&!s.has("Content-Type")){const e=k(r);e&&s.append("Content-Type",e)}let p=q(e)?e.signal:null;if("signal"in a&&(p=a.signal),null!=p&&!function(e){const t=e&&"object"==typeof e&&Object.getPrototypeOf(e);return!(!t||"AbortSignal"!==t.constructor.name)}(p))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[P]={method:n,redirect:a.redirect||e.redirect||"follow",headers:s,parsedURL:t,signal:p},this.follow=void 0!==a.follow?a.follow:void 0!==e.follow?e.follow:20,this.compress=void 0!==a.compress?a.compress:void 0===e.compress||e.compress,this.counter=a.counter||e.counter||0,this.agent=a.agent||e.agent}get method(){return this[P].method}get url(){return W(this[P].parsedURL)}get headers(){return this[P].headers}get redirect(){return this[P].redirect}get signal(){return this[P].signal}clone(){return new G(this)}}function j(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}y.mixIn(G.prototype),Object.defineProperty(G.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(G.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}}),j.prototype=Object.create(Error.prototype),j.prototype.constructor=j,j.prototype.name="AbortError";const K=s.URL||p.URL,X=n.PassThrough;function Z(e,t){if(!Z.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return y.Promise=Z.Promise,new Z.Promise((function(a,s){const p=new G(e,t),d=function(e){const t=e[P].parsedURL,a=new A(e[P].headers);if(a.has("Accept")||a.set("Accept","*/*"),!t.protocol||!t.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(t.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof n.Readable&&!H)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let r=null;if(null==e.body&&/^(POST|PUT)$/i.test(e.method)&&(r="0"),null!=e.body){const t=S(e);"number"==typeof t&&(r=String(t))}r&&a.set("Content-Length",r),a.has("User-Agent")||a.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!a.has("Accept-Encoding")&&a.set("Accept-Encoding","gzip,deflate");let s=e.agent;return"function"==typeof s&&(s=s(t)),a.has("Connection")||s||a.set("Connection","close"),Object.assign({},t,{method:e.method,headers:O(a),agent:s})}(p),l=("https:"===d.protocol?i:r).request,m=p.signal;let u=null;const h=function(){let e=new j("The user aborted a request.");s(e),p.body&&p.body instanceof n.Readable&&p.body.destroy(e),u&&u.body&&u.body.emit("error",e)};if(m&&m.aborted)return void h();const f=function(){h(),v()},g=l(d);let y;function v(){g.abort(),m&&m.removeEventListener("abort",f),clearTimeout(y)}m&&m.addEventListener("abort",f),p.timeout&&g.once("socket",(function(e){y=setTimeout((function(){s(new c(`network timeout at: ${p.url}`,"request-timeout")),v()}),p.timeout)})),g.on("error",(function(e){s(new c(`request to ${p.url} failed, reason: ${e.message}`,"system",e)),v()})),g.on("response",(function(e){clearTimeout(y);const t=function(e){const t=new A;for(const a of Object.keys(e))if(!_.test(a))if(Array.isArray(e[a]))for(const n of e[a])T.test(n)||(void 0===t[D][a]?t[D][a]=[n]:t[D][a].push(n));else T.test(e[a])||(t[D][a]=[e[a]]);return t}(e.headers);if(Z.isRedirect(e.statusCode)){const n=t.get("Location");let r=null;try{r=null===n?null:new K(n,p.url).toString()}catch(e){if("manual"!==p.redirect)return s(new c(`uri requested responds with an invalid redirect URL: ${n}`,"invalid-redirect")),void v()}switch(p.redirect){case"error":return s(new c(`uri requested responds with a redirect, redirect mode is set to error: ${p.url}`,"no-redirect")),void v();case"manual":if(null!==r)try{t.set("Location",r)}catch(e){s(e)}break;case"follow":if(null===r)break;if(p.counter>=p.follow)return s(new c(`maximum redirect reached at: ${p.url}`,"max-redirect")),void v();const n={headers:new A(p.headers),follow:p.follow,counter:p.counter+1,agent:p.agent,compress:p.compress,method:p.method,body:p.body,signal:p.signal,timeout:p.timeout,size:p.size};if(!function(e,t){const a=new K(t).hostname,n=new K(e).hostname;return a===n||"."===a[a.length-n.length-1]&&a.endsWith(n)}(p.url,r))for(const e of["authorization","www-authenticate","cookie","cookie2"])n.headers.delete(e);return 303!==e.statusCode&&p.body&&null===S(p)?(s(new c("Cannot follow redirect with body being a readable stream","unsupported-redirect")),void v()):(303!==e.statusCode&&(301!==e.statusCode&&302!==e.statusCode||"POST"!==p.method)||(n.method="GET",n.body=void 0,n.headers.delete("content-length")),a(Z(new G(r,n))),void v())}}e.once("end",(function(){m&&m.removeEventListener("abort",f)}));let n=e.pipe(new X);const r={url:p.url,status:e.statusCode,statusText:e.statusMessage,headers:t,size:p.size,timeout:p.timeout,counter:p.counter},i=t.get("Content-Encoding");if(!p.compress||"HEAD"===p.method||null===i||204===e.statusCode||304===e.statusCode)return u=new R(n,r),void a(u);const d={flush:o.Z_SYNC_FLUSH,finishFlush:o.Z_SYNC_FLUSH};if("gzip"==i||"x-gzip"==i)return n=n.pipe(o.createGunzip(d)),u=new R(n,r),void a(u);if("deflate"!=i&&"x-deflate"!=i){if("br"==i&&"function"==typeof o.createBrotliDecompress)return n=n.pipe(o.createBrotliDecompress()),u=new R(n,r),void a(u);u=new R(n,r),a(u)}else{e.pipe(new X).once("data",(function(e){n=8==(15&e[0])?n.pipe(o.createInflate()):n.pipe(o.createInflateRaw()),u=new R(n,r),a(u)}))}})),function(e,t){const a=t.body;null===a?e.end():w(a)?a.stream().pipe(e):Buffer.isBuffer(a)?(e.write(a),e.end()):a.pipe(e)}(g,p)}))}Z.isRedirect=function(e){return 301===e||302===e||303===e||307===e||308===e},Z.Promise=global.Promise;const J=Z},6377:(e,t,a)=>{var n=a(4832),r=a(8652),s=a(801),p=a(2030),i=a(3618),o=a(9049),d=a(1971);d.alea=n,d.xor128=r,d.xorwow=s,d.xorshift7=p,d.xor4096=i,d.tychei=o,e.exports=d},4832:function(e,t,a){var n;!function(e,r,s){function p(e){var t,a=this,n=(t=4022871197,function(e){e=String(e);for(var a=0;a>>0,t=(n*=t)>>>0,t+=4294967296*(n-=t)}return 2.3283064365386963e-10*(t>>>0)});a.next=function(){var e=2091639*a.s0+2.3283064365386963e-10*a.c;return a.s0=a.s1,a.s1=a.s2,a.s2=e-(a.c=0|e)},a.c=1,a.s0=n(" "),a.s1=n(" "),a.s2=n(" "),a.s0-=n(e),a.s0<0&&(a.s0+=1),a.s1-=n(e),a.s1<0&&(a.s1+=1),a.s2-=n(e),a.s2<0&&(a.s2+=1),n=null}function i(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function o(e,t){var a=new p(e),n=t&&t.state,r=a.next;return r.int32=function(){return 4294967296*a.next()|0},r.double=function(){return r()+11102230246251565e-32*(2097152*r()|0)},r.quick=r,n&&("object"==typeof n&&i(n,a),r.state=function(){return i(a,{})}),r}r&&r.exports?r.exports=o:a.amdD&&a.amdO?void 0===(n=function(){return o}.call(t,a,t,r))||(r.exports=n):this.alea=o}(0,e=a.nmd(e),a.amdD)},9049:function(e,t,a){var n;!function(e,r,s){function p(e){var t=this,a="";t.next=function(){var e=t.b,a=t.c,n=t.d,r=t.a;return e=e<<25^e>>>7^a,a=a-n|0,n=n<<24^n>>>8^r,r=r-e|0,t.b=e=e<<20^e>>>12^a,t.c=a=a-n|0,t.d=n<<16^a>>>16^r,t.a=r-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):a+=e;for(var n=0;n>>0)/4294967296};return r.double=function(){do{var e=((a.next()>>>11)+(a.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=a.next,r.quick=r,n&&("object"==typeof n&&i(n,a),r.state=function(){return i(a,{})}),r}r&&r.exports?r.exports=o:a.amdD&&a.amdO?void 0===(n=function(){return o}.call(t,a,t,r))||(r.exports=n):this.tychei=o}(0,e=a.nmd(e),a.amdD)},8652:function(e,t,a){var n;!function(e,r,s){function p(e){var t=this,a="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:a+=e;for(var n=0;n>>0)/4294967296};return r.double=function(){do{var e=((a.next()>>>11)+(a.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=a.next,r.quick=r,n&&("object"==typeof n&&i(n,a),r.state=function(){return i(a,{})}),r}r&&r.exports?r.exports=o:a.amdD&&a.amdO?void 0===(n=function(){return o}.call(t,a,t,r))||(r.exports=n):this.xor128=o}(0,e=a.nmd(e),a.amdD)},3618:function(e,t,a){var n;!function(e,r,s){function p(e){var t=this;t.next=function(){var e,a,n=t.w,r=t.X,s=t.i;return t.w=n=n+1640531527|0,a=r[s+34&127],e=r[s=s+1&127],a^=a<<13,e^=e<<17,a^=a>>>15,e^=e>>>12,a=r[s]=a^e,t.i=s,a+(n^n>>>16)|0},function(e,t){var a,n,r,s,p,i=[],o=128;for(t===(0|t)?(n=t,t=null):(t+="\0",n=0,o=Math.max(o,t.length)),r=0,s=-32;s>>15,n^=n<<4,n^=n>>>13,s>=0&&(p=p+1640531527|0,r=0==(a=i[127&s]^=n+p)?r+1:0);for(r>=128&&(i[127&(t&&t.length||0)]=-1),r=127,s=512;s>0;--s)n=i[r+34&127],a=i[r=r+1&127],n^=n<<13,a^=a<<17,n^=n>>>15,a^=a>>>12,i[r]=n^a;e.w=p,e.X=i,e.i=r}(t,e)}function i(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function o(e,t){null==e&&(e=+new Date);var a=new p(e),n=t&&t.state,r=function(){return(a.next()>>>0)/4294967296};return r.double=function(){do{var e=((a.next()>>>11)+(a.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=a.next,r.quick=r,n&&(n.X&&i(n,a),r.state=function(){return i(a,{})}),r}r&&r.exports?r.exports=o:a.amdD&&a.amdO?void 0===(n=function(){return o}.call(t,a,t,r))||(r.exports=n):this.xor4096=o}(0,e=a.nmd(e),a.amdD)},2030:function(e,t,a){var n;!function(e,r,s){function p(e){var t=this;t.next=function(){var e,a,n=t.x,r=t.i;return e=n[r],a=(e^=e>>>7)^e<<24,a^=(e=n[r+1&7])^e>>>10,a^=(e=n[r+3&7])^e>>>3,a^=(e=n[r+4&7])^e<<7,e=n[r+7&7],a^=(e^=e<<13)^e<<9,n[r]=a,t.i=r+1&7,a},function(e,t){var a,n=[];if(t===(0|t))n[0]=t;else for(t=""+t,a=0;a0;--a)e.next()}(t,e)}function i(e,t){return t.x=e.x.slice(),t.i=e.i,t}function o(e,t){null==e&&(e=+new Date);var a=new p(e),n=t&&t.state,r=function(){return(a.next()>>>0)/4294967296};return r.double=function(){do{var e=((a.next()>>>11)+(a.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=a.next,r.quick=r,n&&(n.x&&i(n,a),r.state=function(){return i(a,{})}),r}r&&r.exports?r.exports=o:a.amdD&&a.amdO?void 0===(n=function(){return o}.call(t,a,t,r))||(r.exports=n):this.xorshift7=o}(0,e=a.nmd(e),a.amdD)},801:function(e,t,a){var n;!function(e,r,s){function p(e){var t=this,a="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:a+=e;for(var n=0;n>>4),t.next()}function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function o(e,t){var a=new p(e),n=t&&t.state,r=function(){return(a.next()>>>0)/4294967296};return r.double=function(){do{var e=((a.next()>>>11)+(a.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=a.next,r.quick=r,n&&("object"==typeof n&&i(n,a),r.state=function(){return i(a,{})}),r}r&&r.exports?r.exports=o:a.amdD&&a.amdO?void 0===(n=function(){return o}.call(t,a,t,r))||(r.exports=n):this.xorwow=o}(0,e=a.nmd(e),a.amdD)},1971:function(e,t,a){var n;!function(r,s,p){var i,o=256,d=p.pow(o,6),l=p.pow(2,52),m=2*l,u=255;function c(e,t,a){var n=[],u=y(g((t=1==t?{entropy:!0}:t||{}).entropy?[e,v(s)]:null==e?function(){try{var e;return i&&(e=i.randomBytes)?e=e(o):(e=new Uint8Array(o),(r.crypto||r.msCrypto).getRandomValues(e)),v(e)}catch(e){var t=r.navigator,a=t&&t.plugins;return[+new Date,r,a,r.screen,v(s)]}}():e,3),n),c=new h(n),b=function(){for(var e=c.g(6),t=d,a=0;e=m;)e/=2,t/=2,a>>>=1;return(e+a)/t};return b.int32=function(){return 0|c.g(4)},b.quick=function(){return c.g(4)/4294967296},b.double=b,y(v(c.S),s),(t.pass||a||function(e,t,a,n){return n&&(n.S&&f(n,c),e.state=function(){return f(c,{})}),a?(p.random=e,t):e})(b,u,"global"in t?t.global:this==p,t.state)}function h(e){var t,a=e.length,n=this,r=0,s=n.i=n.j=0,p=n.S=[];for(a||(e=[a++]);r{"use strict";var n=a(4213),r=a(68),s={TRANSITIONAL:0,NONTRANSITIONAL:1};function p(e){return e.split("\0").map((function(e){return e.normalize("NFC")})).join("\0")}function i(e){for(var t=0,a=r.length-1;t<=a;){var n=Math.floor((t+a)/2),s=r[n];if(s[0][0]<=e&&s[0][1]>=e)return s;s[0][0]>e?a=n-1:t=n+1}return null}var o=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function d(e){return e.replace(o,"_").length}var l=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;function m(e,t){"xn--"===e.substr(0,4)&&(e=n.toUnicode(e));var a=!1;(p(e)!==e||"-"===e[3]&&"-"===e[4]||"-"===e[0]||"-"===e[e.length-1]||-1!==e.indexOf(".")||0===e.search(l))&&(a=!0);for(var r=d(e),o=0;o253||0===i.length)&&(s.error=!0);for(var o=0;o63||0===p.length){s.error=!0;break}}return s.error?null:p.join(".")},e.exports.toUnicode=function(e,t){var a=u(e,t,s.NONTRANSITIONAL);return{domain:a.string,error:a.error}},e.exports.PROCESSING_OPTIONS=s},68:e=>{"use strict";e.exports=JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]')},6086:function(e,t,a){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,a,n){void 0===n&&(n=a),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[a]}})}:function(e,t,a,n){void 0===n&&(n=a),e[n]=t[a]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&n(t,e,a);return r(t,e),t},p=this&&this.__awaiter||function(e,t,a,n){return new(a||(a=Promise))((function(r,s){function p(e){try{o(n.next(e))}catch(e){s(e)}}function i(e){try{o(n.throw(e))}catch(e){s(e)}}function o(e){var t;e.done?r(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(p,i)}o((n=n.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var a,n,r,s,p={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function i(s){return function(i){return function(s){if(a)throw new TypeError("Generator is already executing.");for(;p;)try{if(a=1,n&&(r=2&s[0]?n.return:s[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,s[1])).done)return r;switch(n=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return p.label++,{value:s[1],done:!1};case 5:p.label++,n=s[1],s=[0];continue;case 7:s=p.ops.pop(),p.trys.pop();continue;default:if(!(r=p.trys,(r=r.length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){p=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]=this._maxContentSize&&(e=e.substring(0,this._maxContentSize)),this._normalizeNewline&&(e=e.replace(/\r\n/g,"\n")),[4,this._model.executeAsync(o.tensor([e]))];case 2:for(t=i.sent(),a=Array.isArray(t)?t[0]:t,n=Array.isArray(t)?t[1]:t,r=a.dataSync(),s=n.dataSync(),p=[],l=0;lr[d]&&(d=l);return[2,p.sort((function(e,t){return t.confidence-e.confidence}))]}}))}))},e.prototype.dispose=function(){var e;null===(e=this._model)||void 0===e||e.dispose()},e.DEFAULT_MAX_CONTENT_SIZE=1e5,e.DEFAULT_MIN_CONTENT_SIZE=20,e.NODE_MODEL_JSON_FUNC=function(){return p(void 0,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:return[4,Promise.resolve().then((function(){return s(a(5747))}))];case 1:return e=n.sent(),[4,Promise.resolve().then((function(){return s(a(5622))}))];case 2:return t=n.sent(),[2,new Promise((function(a,n){e.readFile(t.join(__dirname,"..","..","model","model.json"),(function(e,t){e?n(e):a(JSON.parse(t.toString()))}))}))]}}))}))},e.NODE_WEIGHTS_FUNC=function(){return p(void 0,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:return[4,Promise.resolve().then((function(){return s(a(5747))}))];case 1:return e=n.sent(),[4,Promise.resolve().then((function(){return s(a(5622))}))];case 2:return t=n.sent(),[2,new Promise((function(a,n){e.readFile(t.join(__dirname,"..","..","model","group1-shard1of1.bin"),(function(e,t){e?n(e):a(t.buffer)}))}))]}}))}))},e}();t.ModelOperations=m},993:e=>{"use strict";var t={};function a(e){return e<0?-1:1}function n(e,t){t.unsigned||--e;const n=t.unsigned?0:-Math.pow(2,e),r=Math.pow(2,e)-1,s=t.moduloBitLength?Math.pow(2,t.moduloBitLength):Math.pow(2,e),p=t.moduloBitLength?Math.pow(2,t.moduloBitLength-1):Math.pow(2,e-1);return function(e,i){i||(i={});let o=+e;if(i.enforceRange){if(!Number.isFinite(o))throw new TypeError("Argument is not a finite number");if(o=a(o)*Math.floor(Math.abs(o)),or)throw new TypeError("Argument is not in byte range");return o}if(!isNaN(o)&&i.clamp)return o=function(e){return e%1==.5&&0==(1&e)?Math.floor(e):Math.round(e)}(o),or&&(o=r),o;if(!Number.isFinite(o)||0===o)return 0;if(o=a(o)*Math.floor(Math.abs(o)),o%=s,!t.unsigned&&o>=p)return o-s;if(t.unsigned)if(o<0)o+=s;else if(-0===o)return 0;return o}}e.exports=t,t.void=function(){},t.boolean=function(e){return!!e},t.byte=n(8,{unsigned:!1}),t.octet=n(8,{unsigned:!0}),t.short=n(16,{unsigned:!1}),t["unsigned short"]=n(16,{unsigned:!0}),t.long=n(32,{unsigned:!1}),t["unsigned long"]=n(32,{unsigned:!0}),t["long long"]=n(32,{unsigned:!1,moduloBitLength:64}),t["unsigned long long"]=n(32,{unsigned:!0,moduloBitLength:64}),t.double=function(e){const t=+e;if(!Number.isFinite(t))throw new TypeError("Argument is not a finite floating-point value");return t},t["unrestricted double"]=function(e){const t=+e;if(isNaN(t))throw new TypeError("Argument is NaN");return t},t.float=t.double,t["unrestricted float"]=t["unrestricted double"],t.DOMString=function(e,t){return t||(t={}),t.treatNullAsEmptyString&&null===e?"":String(e)},t.ByteString=function(e,t){const a=String(e);let n;for(let e=0;void 0!==(n=a.codePointAt(e));++e)if(n>255)throw new TypeError("Argument is not a valid bytestring");return a},t.USVString=function(e){const t=String(e),a=t.length,n=[];for(let e=0;e57343)n.push(String.fromCodePoint(r));else if(56320<=r&&r<=57343)n.push(String.fromCodePoint(65533));else if(e===a-1)n.push(String.fromCodePoint(65533));else{const a=t.charCodeAt(e+1);if(56320<=a&&a<=57343){const t=1023&r,s=1023&a;n.push(String.fromCodePoint(65536+1024*t+s)),++e}else n.push(String.fromCodePoint(65533))}}return n.join("")},t.Date=function(e,t){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e},t.RegExp=function(e,t){return e instanceof RegExp||(e=new RegExp(e)),e}},9718:(e,t,a)=>{"use strict";const n=a(5341);t.implementation=class{constructor(e){const t=e[0],a=e[1];let r=null;if(void 0!==a&&(r=n.basicURLParse(a),"failure"===r))throw new TypeError("Invalid base URL");const s=n.basicURLParse(t,{baseURL:r});if("failure"===s)throw new TypeError("Invalid URL");this._url=s}get href(){return n.serializeURL(this._url)}set href(e){const t=n.basicURLParse(e);if("failure"===t)throw new TypeError("Invalid URL");this._url=t}get origin(){return n.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(e){n.basicURLParse(e+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(e){n.cannotHaveAUsernamePasswordPort(this._url)||n.setTheUsername(this._url,e)}get password(){return this._url.password}set password(e){n.cannotHaveAUsernamePasswordPort(this._url)||n.setThePassword(this._url,e)}get host(){const e=this._url;return null===e.host?"":null===e.port?n.serializeHost(e.host):n.serializeHost(e.host)+":"+n.serializeInteger(e.port)}set host(e){this._url.cannotBeABaseURL||n.basicURLParse(e,{url:this._url,stateOverride:"host"})}get hostname(){return null===this._url.host?"":n.serializeHost(this._url.host)}set hostname(e){this._url.cannotBeABaseURL||n.basicURLParse(e,{url:this._url,stateOverride:"hostname"})}get port(){return null===this._url.port?"":n.serializeInteger(this._url.port)}set port(e){n.cannotHaveAUsernamePasswordPort(this._url)||(""===e?this._url.port=null:n.basicURLParse(e,{url:this._url,stateOverride:"port"}))}get pathname(){return this._url.cannotBeABaseURL?this._url.path[0]:0===this._url.path.length?"":"/"+this._url.path.join("/")}set pathname(e){this._url.cannotBeABaseURL||(this._url.path=[],n.basicURLParse(e,{url:this._url,stateOverride:"path start"}))}get search(){return null===this._url.query||""===this._url.query?"":"?"+this._url.query}set search(e){const t=this._url;if(""===e)return void(t.query=null);const a="?"===e[0]?e.substring(1):e;t.query="",n.basicURLParse(a,{url:t,stateOverride:"query"})}get hash(){return null===this._url.fragment||""===this._url.fragment?"":"#"+this._url.fragment}set hash(e){if(""===e)return void(this._url.fragment=null);const t="#"===e[0]?e.substring(1):e;this._url.fragment="",n.basicURLParse(t,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}},4328:(e,t,a)=>{"use strict";const n=a(993),r=a(9581),s=a(9718),p=r.implSymbol;function i(t){if(!this||this[p]||!(this instanceof i))throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");const a=[];for(let e=0;e!!e&&e[p]instanceof s.implementation,create(e,t){let a=Object.create(i.prototype);return this.setup(a,e,t),a},setup(e,t,a){a||(a={}),a.wrapper=e,e[p]=new s.implementation(t,a),e[p][r.wrapperSymbol]=e},interface:i,expose:{Window:{URL:i},Worker:{URL:i}}}},7347:(e,t,a)=>{"use strict";t.URL=a(4328).interface,a(5341).serializeURL,a(5341).serializeURLOrigin,a(5341).basicURLParse,a(5341).setTheUsername,a(5341).setThePassword,a(5341).serializeHost,a(5341).serializeInteger,a(5341).parseURL},5341:(e,t,a)=>{"use strict";const n=a(4213),r=a(4742),s={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},p=Symbol("failure");function i(e){return n.ucs2.decode(e).length}function o(e,t){const a=e[t];return isNaN(a)?void 0:String.fromCodePoint(a)}function d(e){return e>=48&&e<=57}function l(e){return e>=65&&e<=90||e>=97&&e<=122}function m(e){return d(e)||e>=65&&e<=70||e>=97&&e<=102}function u(e){return"."===e||"%2e"===e.toLowerCase()}function c(e){return 2===e.length&&l(e.codePointAt(0))&&(":"===e[1]||"|"===e[1])}function h(e){return void 0!==s[e]}function f(e){return h(e.scheme)}function g(e){let t=e.toString(16).toUpperCase();return 1===t.length&&(t="0"+t),"%"+t}function y(e){return e<=31||e>126}const v=new Set([32,34,35,60,62,63,96,123,125]);function b(e){return y(e)||v.has(e)}const w=new Set([47,58,59,61,64,91,92,93,94,124]);function N(e){return b(e)||w.has(e)}function k(e,t){const a=String.fromCodePoint(e);return t(e)?function(e){const t=new Buffer(e);let a="";for(let e=0;e=2&&"0"===e.charAt(0)&&"x"===e.charAt(1).toLowerCase()?(e=e.substring(2),t=16):e.length>=2&&"0"===e.charAt(0)&&(e=e.substring(1),t=8),""===e)return 0;return(10===t?/[^0-9]/:16===t?/[^0-9A-Fa-f]/:/[^0-7]/).test(e)?p:parseInt(e,t)}function _(e,t){if("["===e[0])return"]"!==e[e.length-1]?p:function(e){const t=[0,0,0,0,0,0,0,0];let a=0,r=null,s=0;if(58===(e=n.ucs2.decode(e))[s]){if(58!==e[s+1])return p;s+=2,++a,r=a}for(;s6)return p;let n=0;for(;void 0!==e[s];){let r=null;if(n>0){if(!(46===e[s]&&n<4))return p;++s}if(!d(e[s]))return p;for(;d(e[s]);){const t=parseInt(o(e,s));if(null===r)r=t;else{if(0===r)return p;r=10*r+t}if(r>255)return p;++s}t[a]=256*t[a]+r,++n,2!==n&&4!==n||++a}if(4!==n)return p;break}if(58===e[s]){if(++s,void 0===e[s])return p}else if(void 0!==e[s])return p;t[a]=n,++a}if(null!==r){let e=a-r;for(a=7;0!==a&&e>0;){const n=t[r+e-1];t[r+e-1]=t[a],t[a]=n,--a,--e}}else if(null===r&&8!==a)return p;return t}(e.substring(1,e.length-1));if(!t)return function(e){if(t=e,-1!==t.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/))return p;var t;let a="";const r=n.ucs2.decode(e);for(let e=0;e1&&t.pop(),t.length>4)return e;const a=[];for(const n of t){if(""===n)return e;const t=S(n);if(t===p)return e;a.push(t)}for(let e=0;e255)return p;if(a[a.length-1]>=Math.pow(256,5-a.length))return p;let n=a.pop(),r=0;for(const e of a)n+=e*Math.pow(256,3-r),++r;return n}(s);return"number"==typeof i||i===p?i:s}function T(e){return"number"==typeof e?function(e){let t="",a=e;for(let e=1;e<=4;++e)t=String(a%256)+t,4!==e&&(t="."+t),a=Math.floor(a/256);return t}(e):e instanceof Array?"["+function(e){let t="";const a=function(e){let t=null,a=1,n=null,r=0;for(let s=0;sa&&(t=n,a=r),n=null,r=0):(null===n&&(n=s),++r);return r>a&&(t=n,a=r),{idx:t,len:a}}(e).idx;let n=!1;for(let r=0;r<=7;++r)n&&0===e[r]||(n&&(n=!1),a!==r?(t+=e[r].toString(16),7!==r&&(t+=":")):(t+=0===r?"::":":",n=!0));return t}(e)+"]":e}function x(e){const t=e.path;var a;0!==t.length&&("file"===e.scheme&&1===t.length&&(a=t[0],/^[A-Za-z]:$/.test(a))||t.pop())}function I(e){return""!==e.username||""!==e.password}function E(e,t,a,r,s){if(this.pointer=0,this.input=e,this.base=t||null,this.encodingOverride=a||"utf-8",this.stateOverride=s,this.url=r,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};const e=function(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}(this.input);e!==this.input&&(this.parseError=!0),this.input=e}const i=function(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}(this.input);for(i!==this.input&&(this.parseError=!0),this.input=i,this.state=s||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=n.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){const e=this.input[this.pointer],t=isNaN(e)?void 0:String.fromCodePoint(e),a=this["parse "+this.state](e,t);if(!a)break;if(a===p){this.failure=!0;break}}}E.prototype["parse scheme start"]=function(e,t){if(l(e))this.buffer+=t.toLowerCase(),this.state="scheme";else{if(this.stateOverride)return this.parseError=!0,p;this.state="no scheme",--this.pointer}return!0},E.prototype["parse scheme"]=function(e,t){if(function(e){return l(e)||d(e)}(e)||43===e||45===e||46===e)this.buffer+=t.toLowerCase();else if(58===e){if(this.stateOverride){if(f(this.url)&&!h(this.buffer))return!1;if(!f(this.url)&&h(this.buffer))return!1;if((I(this.url)||null!==this.url.port)&&"file"===this.buffer)return!1;if("file"===this.url.scheme&&(""===this.url.host||null===this.url.host))return!1}if(this.url.scheme=this.buffer,this.buffer="",this.stateOverride)return!1;"file"===this.url.scheme?(47===this.input[this.pointer+1]&&47===this.input[this.pointer+2]||(this.parseError=!0),this.state="file"):f(this.url)&&null!==this.base&&this.base.scheme===this.url.scheme?this.state="special relative or authority":f(this.url)?this.state="special authority slashes":47===this.input[this.pointer+1]?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else{if(this.stateOverride)return this.parseError=!0,p;this.buffer="",this.state="no scheme",this.pointer=-1}return!0},E.prototype["parse no scheme"]=function(e){return null===this.base||this.base.cannotBeABaseURL&&35!==e?p:(this.base.cannotBeABaseURL&&35===e?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):"file"===this.base.scheme?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)},E.prototype["parse special relative or authority"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0},E.prototype["parse path or authority"]=function(e){return 47===e?this.state="authority":(this.state="path",--this.pointer),!0},E.prototype["parse relative"]=function(e){return this.url.scheme=this.base.scheme,isNaN(e)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):47===e?this.state="relative slash":63===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):f(this.url)&&92===e?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0},E.prototype["parse relative slash"]=function(e){return!f(this.url)||47!==e&&92!==e?47===e?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer):(92===e&&(this.parseError=!0),this.state="special authority ignore slashes"),!0},E.prototype["parse special authority slashes"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0},E.prototype["parse special authority ignore slashes"]=function(e){return 47!==e&&92!==e?(this.state="authority",--this.pointer):this.parseError=!0,!0},E.prototype["parse authority"]=function(e,t){if(64===e){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;const e=i(this.buffer);for(let t=0;tMath.pow(2,16)-1)return this.parseError=!0,p;this.url.port=e===(a=this.url.scheme,s[a])?null:e,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}var a;return!0};const D=new Set([47,92,63,35]);E.prototype["parse file"]=function(e){var t,a;return this.url.scheme="file",47===e||92===e?(92===e&&(this.parseError=!0),this.state="file slash"):null!==this.base&&"file"===this.base.scheme?isNaN(e)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):63===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1==0||(t=e,a=this.input[this.pointer+1],!l(t)||58!==a&&124!==a)||this.input.length-this.pointer-1>=2&&!D.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),x(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0},E.prototype["parse file slash"]=function(e){var t;return 47===e||92===e?(92===e&&(this.parseError=!0),this.state="file host"):(null!==this.base&&"file"===this.base.scheme&&(2===(t=this.base.path[0]).length&&l(t.codePointAt(0))&&":"===t[1]?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0},E.prototype["parse file host"]=function(e,t){if(isNaN(e)||47===e||92===e||63===e||35===e)if(--this.pointer,!this.stateOverride&&c(this.buffer))this.parseError=!0,this.state="path";else if(""===this.buffer){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let e=_(this.buffer,f(this.url));if(e===p)return p;if("localhost"===e&&(e=""),this.url.host=e,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=t;return!0},E.prototype["parse path start"]=function(e){return f(this.url)?(92===e&&(this.parseError=!0),this.state="path",47!==e&&92!==e&&--this.pointer):this.stateOverride||63!==e?this.stateOverride||35!==e?void 0!==e&&(this.state="path",47!==e&&--this.pointer):(this.url.fragment="",this.state="fragment"):(this.url.query="",this.state="query"),!0},E.prototype["parse path"]=function(e){if(isNaN(e)||47===e||f(this.url)&&92===e||!this.stateOverride&&(63===e||35===e)){if(f(this.url)&&92===e&&(this.parseError=!0),".."===(t=(t=this.buffer).toLowerCase())||"%2e."===t||".%2e"===t||"%2e%2e"===t?(x(this.url),47===e||f(this.url)&&92===e||this.url.path.push("")):!u(this.buffer)||47===e||f(this.url)&&92===e?u(this.buffer)||("file"===this.url.scheme&&0===this.url.path.length&&c(this.buffer)&&(""!==this.url.host&&null!==this.url.host&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)):this.url.path.push(""),this.buffer="","file"===this.url.scheme&&(void 0===e||63===e||35===e))for(;this.url.path.length>1&&""===this.url.path[0];)this.parseError=!0,this.url.path.shift();63===e&&(this.url.query="",this.state="query"),35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=k(e,b);var t;return!0},E.prototype["parse cannot-be-a-base-URL path"]=function(e){return 63===e?(this.url.query="",this.state="query"):35===e?(this.url.fragment="",this.state="fragment"):(isNaN(e)||37===e||(this.parseError=!0),37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),isNaN(e)||(this.url.path[0]=this.url.path[0]+k(e,y))),!0},E.prototype["parse query"]=function(e,t){if(isNaN(e)||!this.stateOverride&&35===e){f(this.url)&&"ws"!==this.url.scheme&&"wss"!==this.url.scheme||(this.encodingOverride="utf-8");const t=new Buffer(this.buffer);for(let e=0;e126||34===t[e]||35===t[e]||60===t[e]||62===t[e]?this.url.query+=g(t[e]):this.url.query+=String.fromCodePoint(t[e]);this.buffer="",35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=t;return!0},E.prototype["parse fragment"]=function(e){return isNaN(e)||(0===e?this.parseError=!0:(37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),this.url.fragment+=k(e,y))),!0},e.exports.serializeURL=function(e,t){let a=e.scheme+":";if(null!==e.host?(a+="//",""===e.username&&""===e.password||(a+=e.username,""!==e.password&&(a+=":"+e.password),a+="@"),a+=T(e.host),null!==e.port&&(a+=":"+e.port)):null===e.host&&"file"===e.scheme&&(a+="//"),e.cannotBeABaseURL)a+=e.path[0];else for(const t of e.path)a+="/"+t;return null!==e.query&&(a+="?"+e.query),t||null===e.fragment||(a+="#"+e.fragment),a},e.exports.serializeURLOrigin=function(t){switch(t.scheme){case"blob":try{return e.exports.serializeURLOrigin(e.exports.parseURL(t.path[0]))}catch(e){return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return function(e){let t=e.scheme+"://";return t+=T(e.host),null!==e.port&&(t+=":"+e.port),t}({scheme:t.scheme,host:t.host,port:t.port});case"file":return"file://";default:return"null"}},e.exports.basicURLParse=function(e,t){void 0===t&&(t={});const a=new E(e,t.baseURL,t.encodingOverride,t.url,t.stateOverride);return a.failure?"failure":a.url},e.exports.setTheUsername=function(e,t){e.username="";const a=n.ucs2.decode(t);for(let t=0;t{"use strict";e.exports.mixin=function(e,t){const a=Object.getOwnPropertyNames(t);for(let n=0;n{"use strict";e.exports=require("crypto")},5747:e=>{"use strict";e.exports=require("fs")},5622:e=>{"use strict";e.exports=require("path")},4213:e=>{"use strict";e.exports=require("punycode")},1669:e=>{"use strict";e.exports=require("util")}},t={};function a(n){var r=t[n];if(void 0!==r)return r.exports;var s=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(s.exports,s,s.exports,a),s.loaded=!0,s.exports}return a.amdD=function(){throw new Error("define cannot be used indirect")},a.amdO={},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a(6086)})()})); ++import { fileURLToPath } from "node:url"; !function (e, t) { const __dirname = fileURLToPath(new URL(".", import.meta.url)); "object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["vscode-languagedetection"]=t():e["vscode-languagedetection"]=t()}(this,(function(){return(()=>{var e={3617:(e,t,a)=>{"use strict";a.r(t),a.d(t,{MathBackendCPU:()=>i,shared:()=>n,version_cpu:()=>St});var n={};a.r(n),a.d(n,{addImpl:()=>S,bincountImpl:()=>I,bincountReduceImpl:()=>E,castImpl:()=>v,ceilImpl:()=>M,concatImpl:()=>O,equalImpl:()=>$,expImpl:()=>P,expm1Impl:()=>W,floorImpl:()=>q,gatherNdImpl:()=>K,gatherV2Impl:()=>X,greaterEqualImpl:()=>Y,greaterImpl:()=>Z,lessEqualImpl:()=>se,lessImpl:()=>ae,linSpaceImpl:()=>oe,logImpl:()=>de,maxImpl:()=>ue,maximumImpl:()=>ce,minimumImpl:()=>ge,multiplyImpl:()=>be,negImpl:()=>Se,notEqualImpl:()=>Te,prodImpl:()=>Ve,raggedGatherImpl:()=>$e,raggedTensorToTensorImpl:()=>Le,rangeImpl:()=>We,rsqrtImpl:()=>Ue,scatterImpl:()=>Ge,sigmoidImpl:()=>je,simpleAbsImpl:()=>o,sliceImpl:()=>Ze,sparseFillEmptyRowsImpl:()=>Ye,sparseReshapeImpl:()=>et,sparseSegmentReductionImpl:()=>tt,sqrtImpl:()=>at,squaredDifferenceImpl:()=>st,stridedSliceImpl:()=>ot,stringNGramsImpl:()=>lt,stringSplitImpl:()=>ut,stringToHashBucketFastImpl:()=>ct,subImpl:()=>ht,tileImpl:()=>vt,topKImpl:()=>Nt,transposeImpl:()=>Ee,uniqueImpl:()=>kt});var r=a(8946);function s(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&r.util.assert("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the CPU backend.`))}))}const p=r.kernel_impls.whereImpl;class i extends r.KernelBackend{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new r.DataStorage(this,(0,r.engine)())}nextDataId(){return i.nextDataId++}write(e,t,a){this.firstUse&&(this.firstUse=!1,(0,r.env)().get("IS_NODE")&&r.backend_util.warn("\n============================\nHi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. \n============================"));const n={id:this.nextDataId()};return this.data.set(n,{values:e,dtype:a,refCount:1}),n}makeTensorInfo(e,t,a){let n;if("string"===t&&null!=a&&a.length>0&&r.util.isString(a[0])){const s=a.map((e=>r.util.encodeString(e)));n=this.write(s,e,t)}else n=this.write(a,e,t);return{dataId:n,shape:e,dtype:t}}refCount(e){if(this.data.has(e)){return this.data.get(e).refCount}return 0}incRef(e){this.data.get(e).refCount++}decRef(e){if(this.data.has(e)){this.data.get(e).refCount--}}move(e,t,a,n,r){this.data.set(e,{values:t,dtype:n,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){const{dtype:t,complexTensorInfos:a}=this.data.get(e);if("complex64"===t){const e=this.readSync(a.real.dataId),t=this.readSync(a.imag.dataId);return r.backend_util.mergeRealAndImagArrays(e,t)}return this.data.get(e).values}bufferSync(e){const t=this.readSync(e.dataId);if("string"===e.dtype)try{const a=t.map((e=>r.util.decodeString(e)));return(0,r.buffer)(e.shape,e.dtype,a)}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return(0,r.buffer)(e.shape,e.dtype,t)}makeOutput(e,t,a){return(0,r.engine)().makeTensorFromTensorInfo(this.makeTensorInfo(t,a,e),this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;const{complexTensorInfos:a}=this.data.get(e);null!=a&&(this.disposeData(a.real.dataId,!0),this.disposeData(a.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){const t=r.util.now();e();return{kernelMs:r.util.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){s([e],"where");const t=this.readSync(e.dataId);return p(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}function o(e){const t=new Float32Array(e.length);for(let a=0;a{const{x:t}=e.inputs,a=e.backend;s(t,"abs");let n=new Float32Array(r.util.sizeFromShape(t.shape));return n=o(a.data.get(t.dataId).values),a.makeOutput(n,t.shape,t.dtype)}};function l(e){return(t,a,n,s,p)=>{const i=r.backend_util.assertAndGetBroadcastShape(t,a),o=i.length,d=r.util.computeStrides(i),l=r.util.sizeFromShape(i),m=r.util.getTypedArrayFromDType(p,l),u=t.length,c=a.length,h=r.util.computeStrides(t),f=r.util.computeStrides(a),g=r.backend_util.getBroadcastDims(t,i),y=r.backend_util.getBroadcastDims(a,i);if(g.length+y.length===0)for(let t=0;tp[e]=0));const i=r.util.locToIndex(p,u,h),l=a.slice(-c);y.forEach((e=>l[e]=0));const v=r.util.locToIndex(l,c,f);m[t]=e(n[i],s[v])}return[m,i]}}function m(e){const{inputs:t,backend:a}=e,{real:n,imag:r}=t,s=a.data.get(n.dataId).values,p=a.data.get(r.dataId).values,i=a.makeTensorInfo(n.shape,"complex64");return a.data.get(i.dataId).complexTensorInfos={real:a.makeTensorInfo(n.shape,"float32",s),imag:a.makeTensorInfo(r.shape,"float32",p)},i}const u={kernelName:r.Complex,backendName:"cpu",kernelFunc:m};function c(e,t,a="float32"){if("complex64"===a){return m({inputs:{real:c(e,t,"float32"),imag:c(e,t,"float32")},backend:e})}const n=r.util.makeZerosTypedArray(r.util.sizeFromShape(t),a);return e.makeTensorInfo(t,a,n)}function h(e){const{inputs:t,backend:a}=e,{x:n}=t;return a.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}const f={kernelName:r.Identity,backendName:"cpu",kernelFunc:h};function g(e){const{inputs:t,backend:a}=e,{input:n}=t,r=a.data.get(n.dataId).complexTensorInfos.real,s=a.data.get(r.dataId).values;return a.makeTensorInfo(r.shape,r.dtype,s)}const y={kernelName:r.Real,backendName:"cpu",kernelFunc:g};function v(e,t,a,n){if("int32"===n){return[t,"int32",Int32Array.from(e)]}if("bool"===n){const n=r.util.toTypedArray([0],a),[s,p]=l(((e,t)=>e!==t?1:0))(t,[],e,n,"bool");return[p,"bool",s]}throw new Error(`Error in Cast: failed to cast ${a} to ${n}`)}function b(e){const{inputs:t,backend:a,attrs:n}=e,{x:s}=t,{dtype:p}=n;if("complex64"===p){if("complex64"===s.dtype)return h({inputs:{x:s},backend:a});const e=c(a,s.shape,s.dtype),t=b({inputs:{x:s},backend:a,attrs:{dtype:"float32"}}),n=m({inputs:{real:t,imag:e},backend:a});return a.disposeIntermediateTensorInfo(e),a.disposeIntermediateTensorInfo(t),n}if("complex64"===s.dtype){const e=g({inputs:{input:s},backend:a}),t=b({inputs:{x:e},backend:a,attrs:{dtype:p}});return a.disposeIntermediateTensorInfo(e),t}if(!r.util.hasEncodingLoss(s.dtype,p)){const e=h({inputs:{x:s},backend:a});return{dataId:e.dataId,shape:e.shape,dtype:p}}const i=a.data.get(s.dataId).values,[o,d,l]=v(i,s.shape,s.dtype,p);return a.makeTensorInfo(o,d,l)}const w={kernelName:r.Cast,backendName:"cpu",kernelFunc:b};function N(e,t,a,n){return null==a?({inputs:a,backend:p})=>{const{a:i,b:o}=a,d=p;s([i,o],e);const l=d.data.get(i.dataId).values,m=d.data.get(o.dataId).values,u="string"===i.dtype?r.backend_util.fromUint8ToStringArray(l):l,c="string"===i.dtype?r.backend_util.fromUint8ToStringArray(m):m,h=n||i.dtype,[f,g]=t(i.shape,o.shape,u,c,h);return d.makeTensorInfo(g,h,f)}:({inputs:e,backend:r})=>{const{a:s,b:p}=e,i=r;if("complex64"===s.dtype||"complex64"===p.dtype){const e=b({inputs:{x:s},backend:i,attrs:{dtype:"complex64"}}),t=i.data.get(e.dataId),n=t.complexTensorInfos.real,r=t.complexTensorInfos.imag,o=i.data.get(n.dataId).values,d=i.data.get(r.dataId).values,l=b({inputs:{x:p},backend:i,attrs:{dtype:"complex64"}}),u=i.data.get(l.dataId),c=u.complexTensorInfos.real,h=u.complexTensorInfos.imag,f=i.data.get(c.dataId).values,g=i.data.get(h.dataId).values,[y,v,w]=a(s.shape,p.shape,o,d,f,g),N=i.makeTensorInfo(w,"float32",y),k=i.makeTensorInfo(w,"float32",v),S=m({inputs:{real:N,imag:k},backend:i});return i.disposeIntermediateTensorInfo(e),i.disposeIntermediateTensorInfo(l),i.disposeIntermediateTensorInfo(N),i.disposeIntermediateTensorInfo(k),S}{const e=i.data.get(s.dataId).values,a=i.data.get(p.dataId).values,r=n||s.dtype,[o,d]=t(s.shape,p.shape,e,a,r);return i.makeTensorInfo(d,r,o)}}}function k(e){return(t,a,n,s,p,i)=>{const o=r.backend_util.assertAndGetBroadcastShape(t,a),d=r.util.sizeFromShape(o),l=o.length,m=r.util.computeStrides(o),u=r.util.getTypedArrayFromDType("float32",d),c=r.util.getTypedArrayFromDType("float32",d),h=r.backend_util.getBroadcastDims(t,o),f=r.backend_util.getBroadcastDims(a,o),g=r.backend_util.mergeRealAndImagArrays(n,s),y=r.backend_util.mergeRealAndImagArrays(p,i),v=t.length,b=r.util.computeStrides(t),w=a.length,N=r.util.computeStrides(a);if(h.length+f.length===0)for(let t=0;tn[e]=0));const s=r.util.locToIndex(n,v,b),p=a.slice(-w);f.forEach((e=>p[e]=0));const i=r.util.locToIndex(p,w,N),o=e(g[2*s],g[2*s+1],y[2*i],y[2*i+1]);u[t]=o.real,c[t]=o.imag}return[u,c,o]}}const S=l(((e,t)=>e+t)),_=k(((e,t,a,n)=>({real:e+a,imag:t+n}))),T=N(r.Add,S,_),x={kernelName:r.Add,backendName:"cpu",kernelFunc:T};function I(e,t,a,n,s){const p=r.util.sizeFromShape(n),i=r.util.makeZerosTypedArray(s,a);for(let a=0;a=s||(i[n]+=p>0?t[a]:1)}return i}function E(e,t,a,n=!1){const s=e.shape[0],p=e.shape[1],i=(0,r.buffer)([s,a],t.dtype);for(let r=0;r=a||(n?i.set(1,r,p):t.size>0?i.set(i.get(r,p)+t.get(r,s),r,p):i.set(i.get(r,p)+1,r,p))}return i}function D(e){return(t,a,n)=>{const s=r.util.getTypedArrayFromDType(a,t.length);for(let a=0;a{const{x:o}=n;if(s(o,e),"string"===o.dtype||"string"===a)throw new Error("unaryKernelFunc does not support string input/output");const d=i,l=d.data.get(o.dataId).values,m=r.util.sizeFromShape(o.shape),u=a||o.dtype,c=r.util.getArrayFromDType(u,m);for(let e=0;e{const{x:i}=n;if(s(i,e),"string"===i.dtype||"string"===a)throw new Error("unaryKernelFunc does not support string input/output");const o=p,d=o.data.get(i.dataId).values,l=a||i.dtype,m=t(d,l,r);return o.makeTensorInfo(i.shape,l,m)}}const M=D((e=>Math.ceil(e))),F=V(r.Ceil,M),B={kernelName:r.Ceil,backendName:"cpu",kernelFunc:F};function O(e,t,a,n){const s=r.util.getArrayFromDType(a,r.util.sizeFromShape(t));if(n&&"string"!==a){let t=0;e.forEach((e=>{const a=r.util.sizeFromShape(e.shape);s.set(e.vals,t),t+=a}))}else{let n=0;e.forEach((e=>{const p="string"===a?r.backend_util.fromUint8ToStringArray(e.vals):e.vals;let i=0;for(let a=0;ae===t?1:0)),C=N(r.Equal,$,null,"bool"),R={kernelName:r.Equal,backendName:"cpu",kernelFunc:C},P=D((e=>Math.exp(e))),z=V(r.Exp,P,"float32"),L={kernelName:r.Exp,backendName:"cpu",kernelFunc:z},W=D((e=>Math.expm1(e))),U=V(r.Expm1,W),H={kernelName:r.Expm1,backendName:"cpu",kernelFunc:U},q=D((e=>Math.floor(e))),G=V(r.Floor,q),j={kernelName:r.Floor,backendName:"cpu",kernelFunc:G};function K(e,t,a,n,s,p,i,o,d){const l=(0,r.buffer)([n,p],a);for(let a=0;a=d/p)throw new Error(`Invalid indices: ${n} does not index into ${o}`);for(let e=0;ee>t?1:0)),J=N(r.Greater,Z,null,"bool"),Q={kernelName:r.Greater,backendName:"cpu",kernelFunc:J},Y=l(((e,t)=>e>=t?1:0)),ee=N(r.GreaterEqual,Y,null,"bool"),te={kernelName:r.GreaterEqual,backendName:"cpu",kernelFunc:ee},ae=l(((e,t)=>ee<=t?1:0)),pe=N(r.LessEqual,se,null,"bool"),ie={kernelName:r.LessEqual,backendName:"cpu",kernelFunc:pe};function oe(e,t,a){const n=(t-e)/(a-1),s=r.util.makeZerosTypedArray(a,"float32");s[0]=e;for(let e=1;eMath.log(e))),le=V(r.Log,de),me={kernelName:r.Log,backendName:"cpu",kernelFunc:le};function ue(e,t,a,n){const s=r.util.getTypedArrayFromDType(n,r.util.sizeFromShape(a));for(let a=0;ar)&&(r=t)}s[a]=r}return s}const ce=l(((e,t)=>Math.max(e,t))),he=N(r.Maximum,ce),fe={kernelName:r.Maximum,backendName:"cpu",kernelFunc:he},ge=l(((e,t)=>Math.min(e,t))),ye=N(r.Minimum,ge),ve={kernelName:r.Minimum,backendName:"cpu",kernelFunc:ye},be=l(((e,t)=>e*t)),we=k(((e,t,a,n)=>({real:e*a-t*n,imag:e*n+t*a}))),Ne=N(r.Multiply,be,we),ke={kernelName:r.Multiply,backendName:"cpu",kernelFunc:Ne};function Se(e,t,a){const n=r.util.createScalarValue(-1,a);return be([],t,n,e,a)}const _e={kernelName:r.Neg,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{x:n}=t;s(n,"neg");const r=a.data.get(n.dataId).values,[p,i]=Se(r,n.shape,n.dtype);return a.makeTensorInfo(i,n.dtype,p)}},Te=l(((e,t)=>e!==t?1:0)),xe=N(r.NotEqual,Te,null,"bool"),Ie={kernelName:r.NotEqual,backendName:"cpu",kernelFunc:xe};function Ee(e,t,a,n,s){const p=t.length,i=r.util.sizeFromShape(t),o=r.util.computeStrides(t),d=r.util.computeStrides(s),l=r.util.getTypedArrayFromDType(a,r.util.sizeFromShape(s));for(let t=0;ta.disposeIntermediateTensorInfo(e))),a.makeTensorInfo(b,v,g)}};function Fe(e,t,a,n){const r=[];let s=0;const p=t.length-1+a.length,i=new Array(p).fill(null).map((()=>[0]));!function(e,t){for(let a=0;ar)throw new Error("Ragged splits must not point past values");for(let e=1;en[e])throw new Error("Ragged splits must be sorted in ascending order")}}(a,n);let o=1;for(let e=0;e=0){const e=i[r],t=e[e.length-1]-n[p];for(let e=p;e{if(e<0||e>=a){const s=r.util.indexToLoc(n,t.length,r.util.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${e} is not in [0, ${a})`)}}))}(p,i,t[0][0]-1),0===n.length)throw new Error("params.rank must be nonzero");const d=n[0],{outSplits:l,valueSlices:m,numValues:u}=Fe(p,i,e,d),c=function(e){const t=[];for(let a=0;as[t]=e))}return t}(l),h=Oe(a,n,s,m,u);return[c,h[0],h[1]]}var Ce=r.backend_util.RowPartitionType;class Re{constructor(e,t,a,n,s,p,i,o,d,l){this.shape=e,this.shapeShape=t,this.values=a,this.valuesShape=n,this.valuesDType=s,this.defaultValue=p,this.defaultValueShape=i,this.rowPartitionValues=o,this.rowPartitionValuesShapes=d,this.rowPartitionTypes=r.backend_util.getRowPartitionTypesHelper(l),this.raggedRank=r.backend_util.getRaggedRank(this.rowPartitionTypes)}getRowPartitionTypeByDimension(e){return this.rowPartitionTypes[0]===Ce.FIRST_DIM_SIZE?this.rowPartitionTypes[e+1]:this.rowPartitionTypes[e]}getRowPartitionTensor(e){return this.rowPartitionTypes[0]===Ce.FIRST_DIM_SIZE?this.rowPartitionValues[e+1]:this.rowPartitionValues[e]}getMaxWidth(e){const t=this.getRowPartitionTensor(e-1);switch(this.getRowPartitionTypeByDimension(e-1)){case Ce.VALUE_ROWIDS:return Re.getMaxWidthValueRowID(t);case Ce.ROW_SPLITS:return Re.getMaxWidthRowSplit(t);default:throw new Error(`Cannot handle partition type ${Ce[this.getRowPartitionTypeByDimension(e-1)]}`)}}static getMaxWidthRowSplit(e){const t=e.length;if(0===t||1===t)return 0;let a=0;for(let n=0;na&&(a=t)}return a}static getMaxWidthValueRowID(e){const t=e.length;if(0===t)return 0;let a=0,n=e[0],r=0;for(let s=1;s"Final length of result must be equal to firstDimension.")),s}calculateOutputIndexRowSplit(e,t,a,n){const r=e.length,s=[];for(let p=0;p0&&s.length!==e[r-1])throw new Error("Invalid row split size.");return s}calculateOutputIndexValueRowID(e,t,a,n){const r=e.length,s=[];if(0===r)return[];let p=0,i=e[0];if(i>=t.length)throw new Error(`Got currentValueRowId=${i}, which is not less than ${t.length}`);let o=t[i];s.push(o);for(let d=1;d=0&&(++p,p=t.length)throw new Error(`Got nextValueRowId=${r} which is not less than ${t.length}`);o=t[r]}s.push(o)}if(s.length!==e.length)throw new Error("Invalid row ids.");return s}calculateOutputIndex(e,t,a,n){const r=this.getRowPartitionTensor(e),s=this.getRowPartitionTypeByDimension(e);switch(s){case Ce.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,a,n);case Ce.ROW_SPLITS:if(r.length-1>t.length)throw new Error(`Row partition size is greater than output size: ${r.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(r,t,a,n);default:throw new Error(`Unsupported partition type: ${Ce[s]}`)}}getFirstDimensionSize(){const e=this.rowPartitionValues[0];if(0===this.rowPartitionTypes.length)throw new Error("No row_partition_types given.");const t=this.rowPartitionTypes[0];switch(t){case Ce.FIRST_DIM_SIZE:return e[0];case Ce.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ce.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ce[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");const e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),a=new Array(this.raggedRank+1);a[a.length-1]=1;for(let e=a.length-2;e>=0;--e)a[e]=a[e+1]*t[e+1];const n=ze(t,!1),s=r.util.getArrayFromDType(this.valuesDType,r.util.sizeFromShape(n));if(a[0]*t[0]>0){let r=this.calculateFirstParentOutputIndex(e,a[0],t[0]);for(let e=1;e<=this.raggedRank;++e){r=this.calculateOutputIndex(e-1,r,a[e],t[e])}this.setOutput(this.raggedRank,r,s,n)}return[n,s]}setOutput(e,t,a,n){if(0===a.length)return;const s=this.values,p=a;let i=n.slice();i=i.slice(e+1);const o=r.util.sizeFromShape(i),d=t.length;let l=this.defaultValue;if(l.length!==o&&1!==l.length){const e=this.defaultValueShape;(0,r.tidy)((()=>{const t=(0,r.reshape)(l,e),a=(0,r.broadcastTo)(t,i);l=a.dataSync()}))}let m=0,u=0,c=0;for(let e=0;e<=d;++e){let n=e=d){const e=a.length;n=Math.floor(e/o)}if(n>c)if(1===this.defaultValue.length)p.subarray(c*o,n*o).fill(this.defaultValue[0]),c=n;else for(;n>c;){Pe(p.slice(c*o),l,o),++c}n<0?(m=e+1,u=c):(m=e,u=c,c=u+1)}else++c}}}function Pe(e,t,a){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}a.push(n)}return a}function Le(e,t,a,n,r,s,p,i,o,d){return new Re(e,t,a,n,r,s,p,i,o,d).compute()}function We(e,t,a,n){if(e===t||e1)return r.util.makeZerosTypedArray(0,n);const s=Math.abs(Math.ceil((t-e)/a)),p=r.util.makeZerosTypedArray(s,n);t1/Math.sqrt(e))),He=V(r.Rsqrt,Ue),qe={kernelName:r.Rsqrt,backendName:"cpu",kernelFunc:He};function Ge(e,t,a,n,s,p,i,o,d,l){const m=[n/s,s],u=e.values,c=t.values;if(0===n)return(0,r.buffer)(a,t.dtype);const h=(0,r.buffer)(m,t.dtype);"string"==typeof d||"number"==typeof d?h.values.fill(d):"boolean"==typeof d&&h.values.fill(+d);for(let e=0;e=n/s)throw new Error(`Invalid indices: ${r} does not index into ${a}`);for(let a=0;a1/(1+Math.exp(-e)))),Ke=A(r.Sigmoid,(e=>1/(1+Math.exp(-e)))),Xe={kernelName:r.Sigmoid,backendName:"cpu",kernelFunc:Ke};function Ze(e,t,a,n,s){const p=r.slice_util.isSliceContinous(n,t,a),i=r.util.sizeFromShape(a),o=r.util.computeStrides(n);if(p){const a=r.slice_util.computeFlatOffset(t,o);return"string"===s?e.slice(a,a+i):e.subarray(a,a+i)}const d="string"===s?r.backend_util.fromUint8ToStringArray(e):e,l=(0,r.buffer)(n,s,d),m=(0,r.buffer)(a,s);for(let e=0;ee+t[a]));m.set(l.get(...n),...a)}return"string"===s?r.backend_util.fromStringArrayToUint8(m.values):m.values}function Je(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{begin:i,size:o}=n;s(p,"slice");const[d,l]=r.slice_util.parseSliceParams(p,i,o);r.slice_util.assertParamsValid(p,d,l);const m=Ze(a.data.get(p.dataId).values,d,l,p.shape,p.dtype);return a.makeTensorInfo(l,p.dtype,m)}const Qe={kernelName:r.Slice,backendName:"cpu",kernelFunc:Je};function Ye(e,t,a,n,s,p,i){const o=t[0],d=p[0],l=new Array(d),m=new Array(o),u=t[1];if(0===d){if(0!==o)throw new Error(r.backend_util.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));return[r.util.getArrayFromDType(a,0),[0,u],r.util.getArrayFromDType(s,0),l,m]}let c=!0,h=0;const f=new Array(d).fill(0);for(let t=0;t=d)throw new Error(r.backend_util.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(t,a,d));++f[a],c=c&&a>=h,h=a}let g=!0;for(let e=0;e0&&(f[e]+=f[e-1])}if(g&&c){const t=e,a=n;for(let e=0;e0){c[u-1]=1;for(let e=u-2;e>=0;--e)c[e]=c[e+1]*n[e+1]}const h=[];if(o>0){h[o-1]=1;for(let e=o-2;e>=0;--e)h[e]=h[e+1]*d[e+1]}const f=r.util.getArrayFromDType(a,i*o);for(let t=0;t0?s[o-1]+1:0;if(m<0)throw new Error(r.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());const u=t.slice();u[0]=m;const c=u.reduce(((e,t)=>e*t),1),h=r.util.getArrayFromDType(a,c);if(0===o)return m>0&&h.fill(i),[h,u];if(m<=0)throw new Error(r.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let f=0,g=1,y=0,v=s[f];for(;;){let t=0;if(g=t)throw new Error(r.backend_util.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(v<0||v>=m)throw new Error(r.backend_util.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(v,m));v>y&&h.fill(i,y*l,v*l);for(let t=f;t=d[0])throw new Error(r.backend_util.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(t,n[t],d[0]));for(let t=0;to)break}return yMath.sqrt(e))),nt=A(r.Sqrt,(e=>Math.sqrt(e))),rt={kernelName:r.Sqrt,backendName:"cpu",kernelFunc:nt},st=l(((e,t)=>{const a=e-t;return a*a})),pt=N(r.SquaredDifference,st),it={kernelName:r.SquaredDifference,backendName:"cpu",kernelFunc:pt};function ot(e,t,a,n){const s=(0,r.buffer)(e,t.dtype);for(let e=0;e0?0:p-i);let u=0;u+=o*this.leftPad.length;for(let t=0;te.forEach((e=>c[h++]=e));for(let e=0;e0){f(e[m+l-1]);for(let e=0;e0){let e=t[0];if(0!==e)throw new Error(`First split value must be 0, got ${e}`);for(let r=1;r=e;if(n=n&&t[r]<=a,!n)throw new Error(`Invalid split value ${t[r]}, must be in [${e}, ${a}]`);e=t[r]}if(e!==a)throw new Error(`Last split value must be data size. Expected ${a}, got ${e}`)}const s=n-1,p=r.util.getArrayFromDType("int32",n);if(0===a||0===n){const e=new Array(a);for(let e=0;e<=s;++e)p[e]=0;return[e,p]}p[0]=0;for(let e=1;e<=s;++e){const a=t[e]-t[e-1];let n=0;this.nGramWidths.forEach((e=>{n+=this.getNumNGrams(a,e)})),this.preserveShort&&a>0&&0===n&&(n=1),p[e]=p[e-1]+n}const i=new Array(p[s]);for(let a=0;a{const p=t[a+1]-t[a],o=this.getNumNGrams(p,s);this.createNGrams(e,n,i,r,o,s),r+=o})),this.preserveShort&&r===p[a]){const s=t[a+1]-t[a];if(0===s)continue;const p=s+2*this.padWidth,o=1;this.createNGrams(e,n,i,r,o,p)}}return[i,p]}}function lt(e,t,a,n,r,s,p,i){return new dt(a,n,r,s,p,i).compute(e,t)}function mt(e,t,a,n){if(!e.length)return;if(0===t.length){for(let t=0;te-t)),ft=k(((e,t,a,n)=>({real:e-a,imag:t-n}))),gt=N(r.Sub,ht,ft),yt={kernelName:r.Sub,backendName:"cpu",kernelFunc:gt};function vt(e,t){const a=new Array(e.rank);for(let n=0;n{const a=t.value-e.value;return 0===a?e.index-t.index:a};function wt(e,t,a=0,n=e.length-1){for(;n>a;){if(n-a>600){const r=n-a+1,s=t-a+1,p=Math.log(r),i=.5*Math.exp(2*p/3),o=.5*Math.sqrt(p*i*(r-i)/r)*Math.sign(s-r/2);wt(e,t,Math.max(a,Math.floor(t-s*i/r+o)),Math.min(n,Math.floor(t+(r-s)*i/r+o)))}const s=e[t];let p=a,i=n;for(r.util.swap(e,a,t),bt(e[n],s)>0&&r.util.swap(e,a,n);p0;)i-=1}0===bt(e[a],s)?r.util.swap(e,a,i):(i+=1,r.util.swap(e,i,n)),i<=t&&(a=i+1),t<=i&&(n=i-1)}}function Nt(e,t,a,n,s){const p=t[t.length-1],[i,o]=[e.length/p,p],d=r.util.getTypedArrayFromDType(a,i*n),l=r.util.getTypedArrayFromDType("int32",i*n);for(let t=0;tp[t]={value:e,index:t})),n{for(let a=0;anew i),1);const _t=A(r.Elu,(e=>e>=0?e:Math.exp(e)-1)),Tt={kernelName:r.Elu,backendName:"cpu",kernelFunc:_t};function xt(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{alpha:i}=n;s([p],"leakyRelu");const o=r.util.sizeFromShape(p.shape),d=a.data.get(p.dataId).values,l=r.util.getTypedArrayFromDType("float32",o);for(let e=0;ee<0?t*e:e));function Dt(e){const{inputs:t,backend:a}=e,{x:n,alpha:r}=t;s([n,r],"prelu");const p=a.data.get(n.dataId).values,i=a.data.get(r.dataId).values,[o,d]=Et(n.shape,r.shape,p,i,"float32");return a.makeTensorInfo(d,"float32",o)}const At={kernelName:r.Prelu,backendName:"cpu",kernelFunc:Dt},Vt=A(r.Relu,(e=>Math.max(0,e))),Mt={kernelName:r.Relu,backendName:"cpu",kernelFunc:Vt},Ft=A(r.Relu6,(e=>Math.min(Math.max(0,e),6))),Bt={kernelName:r.Relu6,backendName:"cpu",kernelFunc:Ft};function Ot(e,t,a,n,r){if("linear"===a)return h({inputs:{x:t},backend:e});if("relu"===a)return Vt({inputs:{x:t},backend:e});if("elu"===a)return _t({inputs:{x:t},backend:e});if("relu6"===a)return Ft({inputs:{x:t},backend:e});if("prelu"===a)return Dt({inputs:{x:t,alpha:n},backend:e});if("leakyrelu"===a)return xt({inputs:{x:t},backend:e,attrs:{alpha:r}});if("sigmoid"===a)return Ke({inputs:{x:t},backend:e});throw new Error(`Activation ${a} has not been implemented for the CPU backend.`)}function $t(e){const{inputs:t,backend:a,attrs:n}=e,{x:s}=t,{shape:p}=n,i=r.util.sizeFromShape(s.shape),o=r.util.inferFromImplicitShape(p,i),d=r.util.sizeFromShape(o);r.util.assert(i===d,(()=>`The new shape (${o}) has ${d} elements and the old shape (${s.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`)),a.incRef(s.dataId);const l=a.data.get(s.dataId);if(null!=l.complexTensorInfos){const e=l.complexTensorInfos.real,t=l.complexTensorInfos.imag;e.shape=o,t.shape=o}return{dataId:s.dataId,shape:o,dtype:s.dtype}}const Ct={kernelName:r.Reshape,backendName:"cpu",kernelFunc:$t};function Rt(e){const{inputs:t,backend:a,attrs:n}=e,{a:p,b:i}=t,{transposeA:o,transposeB:d}=n;s([p,i],"matMul");const l=p.shape.length,m=i.shape.length,u=o?p.shape[l-2]:p.shape[l-1],c=d?i.shape[m-1]:i.shape[m-2],h=o?p.shape[l-1]:p.shape[l-2],f=d?i.shape[m-2]:i.shape[m-1],g=p.shape.slice(0,-2),y=i.shape.slice(0,-2),v=r.util.sizeFromShape(g),b=r.util.sizeFromShape(y),w=r.broadcast_util.assertAndGetBroadcastShape(p.shape.slice(0,-2),i.shape.slice(0,-2)).concat([h,f]);r.util.assert(u===c,(()=>`Error in matMul: inner shapes (${u}) and (${c}) of Tensors with shapes ${p.shape} and ${i.shape} and transposeA=${o} and transposeB=${d} must match.`));const N=d?[b,f,c]:[b,c,f],k=$t({inputs:{x:p},backend:a,attrs:{shape:o?[v,u,h]:[v,h,u]}}),S=$t({inputs:{x:i},backend:a,attrs:{shape:N}}),_=o?k.shape[1]:k.shape[2],T=o?k.shape[2]:k.shape[1],x=d?S.shape[1]:S.shape[2],I=Math.max(v,b),E=a.data.get(k.dataId).values,D=a.data.get(S.dataId).values,A=r.util.computeStrides(k.shape),V=r.util.computeStrides(S.shape),[M,F,B]=o?[A[0],1,A[1]]:[A[0],A[1],1],[O,$,C]=d?[1,V[1],V[0]]:[V[1],1,V[0]],R=T*x,P=(0,r.buffer)([I,T,x],k.dtype),z=P.values,L=a.blockSize;for(let e=0;eMath.acos(e))),Wt={kernelName:r.Acos,backendName:"cpu",kernelFunc:Lt},Ut=A(r.Acosh,(e=>Math.acosh(e))),Ht={kernelName:r.Acosh,backendName:"cpu",kernelFunc:Ut};const qt={kernelName:r.AddN,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,n=t;s(t,"addN");const p=n.map((e=>a.data.get(e.dataId).values)),i=(0,r.buffer)(n[0].shape,n[0].dtype),o=i.values;for(let e=0;ea&&(a=r,n=e)}f[e]=n}return m.forEach((e=>a.disposeIntermediateTensorInfo(e))),a.makeTensorInfo(u,"int32",f)}};const Xt={kernelName:r.ArgMin,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{axis:i}=n;s(p,"argMin");let o=r.util.parseAxisParam(i,p.shape);const d=r.backend_util.getAxesPermutation(o,p.shape.length);let l=p;const m=[];null!=d&&(l=De({inputs:{x:p},backend:a,attrs:{perm:d}}),m.push(l),o=r.backend_util.getInnerMostAxes(o.length,l.shape.length)),o=[o[0]],r.backend_util.assertAxesAreInnerMostDims("argMin",o,l.shape.length);const[u,c]=r.backend_util.computeOutAndReduceShapes(l.shape,o),h=r.util.sizeFromShape(u),f=r.util.makeZerosTypedArray(h,"int32"),g=r.util.sizeFromShape(c),y=a.data.get(l.dataId).values;for(let e=0;ea.disposeIntermediateTensorInfo(e))),a.makeTensorInfo(u,"int32",f)}},Zt=A(r.Asin,(e=>Math.asin(e))),Jt={kernelName:r.Asin,backendName:"cpu",kernelFunc:Zt},Qt=A(r.Asinh,(e=>Math.asinh(e))),Yt={kernelName:r.Asinh,backendName:"cpu",kernelFunc:Qt},ea=A(r.Atan,(e=>Math.atan(e))),ta={kernelName:r.Atan,backendName:"cpu",kernelFunc:ea},aa=l(((e,t)=>Math.atan2(e,t))),na=N(r.Atan2,aa),ra={kernelName:r.Atan2,backendName:"cpu",kernelFunc:na},sa=A(r.Atanh,(e=>Math.atanh(e))),pa={kernelName:r.Atanh,backendName:"cpu",kernelFunc:sa};function ia(e,t,a,n,s,p){const i=s.strideHeight,o=s.strideWidth,d=s.dilationHeight,l=s.dilationWidth,m=s.effectiveFilterHeight,u=s.effectiveFilterWidth,c=s.padInfo.top,h=s.padInfo.left,f="max"===p?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,g=(0,r.buffer)(s.outShape,a),y=g.values,v=s.outShape[1]*s.outShape[2]*s.outShape[3],b=s.outShape[2]*s.outShape[3],w=s.outShape[3];for(let t=0;tg?g=r:"avg"===p&&(v+=r,b++)}if(isNaN(g))break}y[S+a*w+t]="avg"===p?v/b:g}}}return g}function oa(e,t,a,n,s=!1,p=!1){const i=(0,r.buffer)(n.outShape,"int32"),o=n.strideHeight,d=n.strideWidth,l=n.dilationHeight,m=n.dilationWidth,u=n.effectiveFilterHeight,c=n.effectiveFilterWidth,h=n.padInfo.top,f=n.padInfo.left,g=(0,r.buffer)(t,a,e);for(let e=0;ew&&(w=d,N=s?p?((e*n.inHeight+a)*n.inWidth+r)*n.inChannels+t:(a*n.inWidth+r)*n.inChannels+t:i*c+o)}}i.set(N,e,a,o,t)}}return i}function da(e,t,a,n,s,p){const i=s.strideDepth,o=s.strideHeight,d=s.strideWidth,l=s.dilationDepth,m=s.dilationHeight,u=s.dilationWidth,c=s.effectiveFilterDepth,h=s.effectiveFilterHeight,f=s.effectiveFilterWidth,g=s.padInfo.front,y=s.padInfo.top,v=s.padInfo.left,b="max"===p?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=(0,r.buffer)(s.outShape,a),N=w.values,k=s.outShape[1]*s.outShape[2]*s.outShape[3]*s.outShape[4],S=s.outShape[2]*s.outShape[3]*s.outShape[4],_=s.outShape[3]*s.outShape[4],T=s.outShape[4];for(let t=0;tk?k=s:"avg"===p&&(S+=s,_++),isNaN(k))break}if(isNaN(k))break}if(isNaN(k))break}N[y+t]="avg"===p?S/_:k}}}}return w}const la={kernelName:r.AvgPool,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t;s(p,"avgPool");const{filterSize:i,strides:o,pad:d,dimRoundingMode:l}=n;r.util.assert(r.backend_util.eitherStridesOrDilationsAreOne(o,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${o} and dilations '1'`));const m=r.backend_util.computePool2DInfo(p.shape,i,o,1,d,l);let u;if(1===m.filterWidth&&1===m.filterHeight&&r.util.arraysEqual(m.inShape,m.outShape))u=h({inputs:{x:p},backend:a});else{const e=a.data.get(p.dataId).values,t=r.util.computeStrides(p.shape),n=ia(e,p.shape,p.dtype,t,m,"avg");u=a.makeTensorInfo(m.outShape,p.dtype,n.values)}return u}};const ma={kernelName:r.AvgPool3D,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{filterSize:i,strides:o,pad:d,dimRoundingMode:l,dataFormat:m}=n;s(p,"avgPool3d");const u=r.backend_util.computePool3DInfo(p.shape,i,o,1,d,l,m),c=da(a.data.get(p.dataId).values,p.shape,p.dtype,r.util.computeStrides(p.shape),u,"avg");return a.makeTensorInfo(c.shape,"float32",c.values)}};const ua={kernelName:r.AvgPool3DGrad,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{dy:p,input:i}=t,{filterSize:o,strides:d,pad:l,dimRoundingMode:m}=n;s([p,i],"avgPool3DGrad");const u=r.backend_util.computePool3DInfo(i.shape,o,d,1,l,m),c=u.strideDepth,h=u.strideHeight,f=u.strideWidth,g=u.filterDepth,y=u.filterHeight,v=u.filterWidth,b=u.dilationDepth,w=u.dilationHeight,N=u.dilationWidth,k=u.effectiveFilterDepth,S=u.effectiveFilterHeight,_=u.effectiveFilterWidth,T=k-1-u.padInfo.front,x=_-1-u.padInfo.left,I=S-1-u.padInfo.top,E=(0,r.buffer)(i.shape,"float32"),D=1/(g*y*v),A=a.bufferSync(p);for(let e=0;e=u.outDepth||Math.floor(n)!==n))for(let a=0;a=u.outHeight||Math.floor(r)!==r))for(let a=0;a<_;a+=N){const s=(i+a)/f;if(s<0||s>=u.outWidth||Math.floor(s)!==s)continue;o+=A.get(e,n,r,s,t)}}}E.set(o*D,e,a,n,r,t)}return a.makeTensorInfo(E.shape,E.dtype,E.values)}};const ca={kernelName:r.AvgPoolGrad,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{dy:p,input:i}=t,o=i;s([p,i],"avgPoolGrad");const{filterSize:d,strides:l,pad:m}=n,u=r.backend_util.computePool2DInfo(o.shape,d,l,1,m),c=u.strideHeight,h=u.strideWidth,f=u.filterHeight,g=u.filterWidth,y=u.dilationHeight,v=u.dilationWidth,b=u.effectiveFilterHeight,w=u.effectiveFilterWidth,N=w-1-u.padInfo.left,k=b-1-u.padInfo.top,S=(0,r.buffer)(o.shape,"float32"),_=1/(f*g),T=a.data.get(p.dataId).values,x=(0,r.buffer)(p.shape,"float32",T);for(let e=0;e=u.outHeight||Math.floor(n)!==n))for(let a=0;a=u.outWidth||Math.floor(r)!==r)continue;p+=x.get(e,n,r,t)}}S.set(p*_,e,a,n,t)}return a.makeTensorInfo(S.shape,S.dtype,S.values)}};const ha={kernelName:r.FusedBatchNorm,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p,scale:i,offset:o,mean:d,variance:l}=t;r.util.assert(d.shape.length===l.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),r.util.assert(null==o||d.shape.length===o.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),r.util.assert(null==i||d.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks.")),s([p,d,l,i,o],"batchNorm");let{varianceEpsilon:m}=n;null==m&&(m=.001);const u=a.data.get(p.dataId).values,c=a.data.get(d.dataId).values,h=a.data.get(l.dataId).values,f=i?a.data.get(i.dataId).values:new Float32Array([1]),g=o?a.data.get(o.dataId).values:new Float32Array([0]),y=new Float32Array(u.length),v=g.length,b=f.length,w=h.length,N=c.length;let k=0,S=0,_=0,T=0;for(let e=0;e=v&&(k=0),S>=N&&(S=0),_>=b&&(_=0),T>=w&&(T=0);return a.makeTensorInfo(p.shape,p.dtype,y)}};const fa={kernelName:r.BatchToSpaceND,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{blockShape:i,crops:o}=n;s([p],"batchToSpaceND");const d=i.reduce(((e,t)=>e*t)),l=r.backend_util.getReshaped(p.shape,i,d),m=r.backend_util.getPermuted(l.length,i.length),u=r.backend_util.getReshapedPermuted(p.shape,i,d),c=r.backend_util.getSliceBeginCoords(o,i.length),h=r.backend_util.getSliceSize(u,o,i.length),f=$t({inputs:{x:p},backend:a,attrs:{shape:l}}),g=De({inputs:{x:f},backend:a,attrs:{perm:m}}),y=$t({inputs:{x:g},backend:a,attrs:{shape:u}}),v=Je({inputs:{x:y},backend:a,attrs:{begin:c,size:h}});return a.disposeIntermediateTensorInfo(f),a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(y),v}};const ga={kernelName:r.Bincount,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:r,weights:s}=t,{size:p}=n,i=I(a.data.get(r.dataId).values,a.data.get(s.dataId).values,s.dtype,s.shape,p);return a.makeTensorInfo([p],s.dtype,i)}};const ya={kernelName:r.BroadcastArgs,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{s0:n,s1:s}=t,p=a.data.get(n.dataId).values,i=a.data.get(s.dataId).values,o=r.backend_util.assertAndGetBroadcastShape(Array.from(p),Array.from(i));return a.makeTensorInfo([o.length],"int32",Int32Array.from(o))}},va=A(r.ClipByValue,((e,t)=>{const a=t;return e>a.clipValueMax?a.clipValueMax:e{const{x:t}=e.inputs,a=e.backend,n=new Float32Array(r.util.sizeFromShape(t.shape)),s=a.data.get(t.dataId),p=s.complexTensorInfos.real,i=s.complexTensorInfos.imag,o=a.data.get(p.dataId).values,d=a.data.get(i.dataId).values;for(let e=0;ee.shape));r.backend_util.assertParamsConsistent(i,p);let o=r.backend_util.computeOutShape(t.map((e=>e.shape)),p);if(0===r.util.sizeFromShape(o))return a.makeTensorInfo(o,t[0].dtype,[]);const d=t.filter((e=>r.util.sizeFromShape(e.shape)>0));if(1===d.length)return h({inputs:{x:d[0]},backend:a});if("complex64"===d[0].dtype){const e=d.map((e=>g({inputs:{input:e},backend:a}))),t=d.map((e=>Na({inputs:{input:e},backend:a}))),n=Sa({inputs:e,backend:a,attrs:{axis:p}}),r=Sa({inputs:t,backend:a,attrs:{axis:p}}),s=m({inputs:{real:n,imag:r},backend:a});return e.forEach((e=>a.disposeIntermediateTensorInfo(e))),t.forEach((e=>a.disposeIntermediateTensorInfo(e))),a.disposeIntermediateTensorInfo(n),a.disposeIntermediateTensorInfo(r),s}const l=d.map((e=>{const t=r.util.sizeFromShape(e.shape.slice(p));return $t({inputs:{x:e},backend:a,attrs:{shape:[-1,t]}})})),u=l.map((e=>({vals:a.data.get(e.dataId).values,shape:e.shape})));o=r.backend_util.computeOutShape(l.map((e=>e.shape)),1);const c=1===l[0].shape[0],f=O(u,o,t[0].dtype,c),y=r.backend_util.computeOutShape(d.map((e=>e.shape)),p),v=a.makeTensorInfo(y,t[0].dtype,f);return l.forEach((e=>a.disposeIntermediateTensorInfo(e))),v}const _a={kernelName:r.Concat,backendName:"cpu",kernelFunc:Sa};function Ta(e){const{inputs:t,backend:a,attrs:n}=e,{x:p,filter:i}=t,{strides:o,pad:d,dataFormat:l,dilations:m,dimRoundingMode:u}=n;s([p,i],"conv2d");const c=r.backend_util.convertConv2DDataFormat(l),h=r.backend_util.computeConv2DInfo(p.shape,i.shape,o,m,d,u,!1,c),f=h.filterHeight,g=h.filterWidth,y=h.dilationHeight,v=h.dilationWidth,b=h.padInfo.left,w=h.padInfo.top,N="channelsLast"===h.dataFormat,k=new r.TensorBuffer(h.outShape,p.dtype),S=r.util.computeStrides(p.shape),_=r.util.computeStrides(i.shape),T=S[0],x=N?S[1]:S[2],I=N?S[2]:1,E=N?1:S[1],D=k.strides[0],A=N?k.strides[1]:k.strides[2],V=N?k.strides[2]:1,M=N?1:k.strides[1],F=a.data.get(p.dataId).values,B=a.data.get(i.dataId).values,O=k.values;for(let e=0;e=h.inHeight)continue;const s=e*_[0],p=t+a*x;for(let e=0;e=h.inWidth)continue;const r=p+n*I;let i=s+e*_[1];for(let e=0;e=m.inDepth)continue;const s=e*I[0],p=t+a*x[1];for(let e=0;e=m.inHeight)continue;const r=s+e*I[1],i=p+n*x[2];for(let e=0;e=m.inWidth)continue;const s=r+e*I[2],p=i+t*m.inChannels;let o=s;for(let e=0;eMath.cos(e))),Fa={kernelName:r.Cos,backendName:"cpu",kernelFunc:Ma},Ba=A(r.Cosh,(e=>Math.cosh(e))),Oa={kernelName:r.Cosh,backendName:"cpu",kernelFunc:Ba};const $a={kernelName:r.CropAndResize,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{image:s,boxes:p,boxInd:i}=t,{cropSize:o,method:d,extrapolationValue:l}=n,[m,u,c,h]=s.shape,f=p.shape[0],[g,y]=o,v=(0,r.buffer)([f,g,y,h],"float32"),b=a.data.get(p.dataId).values,w=a.data.get(i.dataId).values,N=a.data.get(s.dataId).values,k=r.util.computeStrides(s.shape),S=r.util.computeStrides(v.shape);for(let e=0;e=m)continue;const i=g>1?(r-a)*(u-1)/(g-1):0,o=y>1?(s-n)*(c-1)/(y-1):0;for(let t=0;t1?a*(u-1)+t*i:.5*(a+r)*(u-1);if(m<0||m>u-1)for(let a=0;a1?n*(c-1)+d*o:.5*(n+s)*(c-1);if(m<0||m>c-1){for(let a=0;a1?n*(c-1)+a*o:.5*(n+s)*(c-1);if(r<0||r>c-1){for(let n=0;ne+g-t-1:(e,t)=>e+t;for(let e=0;ee+g-t-1:(e,t)=>e+t;for(let e=0;e`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`));const o=s.shape[0],d=s.shape[1],l=s.shape[2],m=s.shape[3],u=d*p,c=l*p,h=m/(p*p),f=a.data.get(s.dataId).values,g=new Float32Array(o*u*c*h);let y=0;for(let e=0;e`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${h}'`));const f=r.backend_util.computeConv2DInfo(p.shape,i.shape,o,h,d,m,!0),{filterHeight:g,filterWidth:y,dilationHeight:v,dilationWidth:b,padInfo:w}=f,N=w.left,k=w.top,S=f.outChannels/f.inChannels,_=new r.TensorBuffer(f.outShape,p.dtype),T=a.data.get(p.dataId).values,x=a.data.get(i.dataId).values,I=_.values;for(let e=0;e=f.inHeight)continue;const s=e*c[0],p=t+a*u[1];for(let e=0;e=f.inWidth)continue;const r=s+e*c[1],i=p+n*f.inChannels;let o=t,d=r;for(let e=0;e{const{x:n,filter:s}=e,{strides:p,pad:i,dilations:o}=a,d=t,l=d.data.get(n.dataId).values,m=n.shape.length,u=d.data.get(s.dataId).values,c=s.shape.length,{batchSize:h,inHeight:f,inWidth:g,inChannels:y,outHeight:v,outWidth:b,padInfo:w,strideHeight:N,strideWidth:k,filterHeight:S,filterWidth:_,dilationHeight:T,dilationWidth:x,outShape:I}=r.backend_util.computeDilation2DInfo(n.shape,s.shape,p,i,"NHWC",o),E=r.util.sizeFromShape(I),D=I.length,A=r.util.getArrayFromDType(n.dtype,E);for(let e=0;e=0&&p=0&&hd&&(d=g)}}}A[r.util.locToIndex([e,t,p,o],D,r.util.computeStrides(I))]=d}}}return{dataId:d.write(r.util.toTypedArray(A,n.dtype),I,n.dtype),shape:I,dtype:n.dtype}}},ja={kernelName:r.Dilation2DBackpropFilter,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:a})=>{const{x:n,filter:s,dy:p}=e,{strides:i,pad:o,dilations:d}=a,l=t,m=r.util.toNestedArray(n.shape,l.data.get(n.dataId).values),u=r.util.toNestedArray(s.shape,l.data.get(s.dataId).values),{batchSize:c,inHeight:h,inWidth:f,inChannels:g,outHeight:y,outWidth:v,padInfo:b,strideHeight:w,strideWidth:N,filterHeight:k,filterWidth:S,dilationHeight:_,dilationWidth:T,outShape:x}=r.backend_util.computeDilation2DInfo(n.shape,s.shape,i,o,"NHWC",d);r.util.assert(p.rank===x.length,(()=>`Error in ${r.Dilation2DBackpropFilter}, dy must have the same rank as output ${x.length}, but got ${p.rank}`));const I=r.util.toNestedArray(x,l.data.get(p.dataId).values),E=r.util.makeZerosNestedTypedArray(s.shape,s.dtype);for(let e=0;e=0&&n=0&&dp&&(p=r,i=t,o=a)}}}E[i][o][s]+=I[e][t][n][s]}}}return{dataId:l.write(r.util.toTypedArray(E,n.dtype),s.shape,s.dtype),shape:s.shape,dtype:s.dtype}}},Ka={kernelName:r.Dilation2DBackpropInput,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:a})=>{const{x:n,filter:s,dy:p}=e,{strides:i,pad:o,dilations:d}=a,l=t,m=r.util.toNestedArray(n.shape,l.data.get(n.dataId).values),u=r.util.toNestedArray(s.shape,l.data.get(s.dataId).values),{batchSize:c,inHeight:h,inWidth:f,inChannels:g,outHeight:y,outWidth:v,padInfo:b,strideHeight:w,strideWidth:N,filterHeight:k,filterWidth:S,dilationHeight:_,dilationWidth:T,outShape:x}=r.backend_util.computeDilation2DInfo(n.shape,s.shape,i,o,"NHWC",d);r.util.assert(p.rank===x.length,(()=>`Error in ${r.Dilation2DBackpropInput}, dy must have the same rank as output ${x.length}, but got ${p.rank}`));const I=r.util.toNestedArray(x,l.data.get(p.dataId).values),E=r.util.makeZerosNestedTypedArray(n.shape,n.dtype);for(let e=0;e=0&&n=0&&dp&&(p=r,i=n,o=d)}}}E[e][i][o][s]+=I[e][t][n][s]}}}return{dataId:l.write(r.util.toTypedArray(E,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function Xa(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{axis:i,keepDims:o}=n;let d;s(p,"sum"),d="bool"===p.dtype?b({inputs:{x:p},backend:a,attrs:{dtype:"int32"}}):h({inputs:{x:p},backend:a});const l=d.shape.length,m=r.util.parseAxisParam(i,d.shape),u=r.backend_util.getAxesPermutation(m,l);let f=m,g=d;null!=u&&(g=De({inputs:{x:d},backend:a,attrs:{perm:u}}),f=r.backend_util.getInnerMostAxes(f.length,l)),r.backend_util.assertAxesAreInnerMostDims("sum",f,g.shape.length);const[y,v]=r.backend_util.computeOutAndReduceShapes(g.shape,f);let w=c(a,y,r.backend_util.upcastType(g.dtype,"int32"));const N=r.util.sizeFromShape(v),k=a.data.get(w.dataId).values,S=a.data.get(g.dataId).values;for(let e=0;e=0&&(c=Xa({inputs:{x:c},backend:a,attrs:{axis:l[e]-(i.length-h),keepDims:!1}}),f.push(c)),h--)}for(const e of f)e!==c&&a.disposeIntermediateTensorInfo(e);return c}};const Qa={kernelName:r.EluGrad,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{dy:n,y:p}=t;s([n,p],"eluGrad");const i=new Float32Array(r.util.sizeFromShape(p.shape)),o=a.data.get(p.dataId).values,d=a.data.get(n.dataId).values;for(let e=0;e=1?d[e]:d[e]*(t+1)}return a.makeTensorInfo(p.shape,"float32",i)}},Ya=r.backend_util.ERF_P,en=r.backend_util.ERF_A1,tn=r.backend_util.ERF_A2,an=r.backend_util.ERF_A3,nn=r.backend_util.ERF_A4,rn=r.backend_util.ERF_A5,sn=A(r.Erf,(e=>{const t=Math.sign(e),a=Math.abs(e),n=1/(1+Ya*a);return t*(1-((((rn*n+nn)*n+an)*n+tn)*n+en)*n*Math.exp(-a*a))})),pn={kernelName:r.Erf,backendName:"cpu",kernelFunc:sn};function on(e){const{inputs:t,backend:a,attrs:n}=e,{input:s}=t,{dim:p}=n,i=s.shape.length,o=s.shape.slice();let d=p;return p<0&&(r.util.assert(-(i+1)<=p,(()=>`Axis must be in the interval [${-(i+1)}, ${i}]`)),d=i+p+1),o.splice(d,0,1),$t({inputs:{x:s},backend:a,attrs:{shape:o}})}const dn={kernelName:r.ExpandDims,backendName:"cpu",kernelFunc:on},ln=l(((e,t)=>e/t)),mn=N(r.RealDiv,ln),un={kernelName:r.RealDiv,backendName:"cpu",kernelFunc:mn};function cn(e,t,a){const n=e.shape,s=n[0],p=n[1],i=a.data.get(e.dataId),o=i.complexTensorInfos.real,d=i.complexTensorInfos.imag,l=[s,p],u=r.util.sizeFromShape(l),c=r.util.getTypedArrayFromDType("float32",u),h=r.util.getTypedArrayFromDType("float32",u);for(let e=0;e{const{image:n}=e,s=a,p=r.util.getTypedArrayFromDType(n.dtype,r.util.sizeFromShape(n.shape)),[i,o,d,l]=n.shape,m=s.data.get(n.dataId).values;for(let e=0;e=0&&sMath.floor(e/t))),Nn=N(r.FloorDiv,wn,null,"int32"),kn={kernelName:r.FloorDiv,backendName:"cpu",kernelFunc:Nn};const Sn={kernelName:r.FusedConv2D,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:r,filter:s,bias:p,preluActivationWeights:i}=t,{strides:o,pad:d,dataFormat:l,dilations:m,dimRoundingMode:u,activation:c,leakyreluAlpha:h}=n;let f=Ta({inputs:{x:r,filter:s},backend:a,attrs:{strides:o,pad:d,dataFormat:l,dilations:m,dimRoundingMode:u}});if(p){const e=f;if("NCHW"===l&&1===p.shape.length&&1!==p.shape[0]){const e=$t({inputs:{x:p},backend:a,attrs:{shape:[p.shape[0],1,1]}});f=T({inputs:{a:f,b:e},backend:a}),a.disposeIntermediateTensorInfo(e)}else f=T({inputs:{a:f,b:p},backend:a});a.disposeIntermediateTensorInfo(e)}if(c){const e=f;if("NCHW"===l&&"prelu"===c&&1===i.shape.length&&1!==i.shape[0]){const e=$t({inputs:{x:i},backend:a,attrs:{shape:[i.shape[0],1,1]}});f=Ot(a,f,c,e,h),a.disposeIntermediateTensorInfo(e)}else f=Ot(a,f,c,i,h);a.disposeIntermediateTensorInfo(e)}return f}};const _n={kernelName:r.FusedDepthwiseConv2D,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:r,filter:s,bias:p,preluActivationWeights:i}=t,{strides:o,pad:d,dataFormat:l,dilations:m,dimRoundingMode:u,activation:c,leakyreluAlpha:h}=n;let f=La({inputs:{x:r,filter:s},backend:a,attrs:{strides:o,pad:d,dataFormat:l,dilations:m,dimRoundingMode:u}});if(p){const e=f;f=T({inputs:{a:f,b:p},backend:a}),a.disposeIntermediateTensorInfo(e)}if(c){const e=f;f=Ot(a,f,c,i,h),a.disposeIntermediateTensorInfo(e)}return f}};const Tn={kernelName:r.GatherNd,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{params:n,indices:s}=t,p=r.util.sizeFromShape(n.shape),i=s.shape,o=i[i.length-1],[d,l,m,u]=r.backend_util.prepareAndValidate(n,s);if(0===l)return a.makeTensorInfo(d,n.dtype,[]);const c=K(a.data.get(s.dataId).values,a.bufferSync(n),n.dtype,l,o,m,u,n.shape,p);return a.makeTensorInfo(d,n.dtype,c.values)}};const xn={kernelName:r.GatherV2,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p,indices:i}=t,{axis:o,batchDims:d}=n;s([p,i],"gatherV2");const l=r.util.parseAxisParam(o,p.shape)[0],m=a.data.get(i.dataId).values,u=p.shape[l];for(let e=0;e=0,(()=>`GatherV2: the index value ${t} is not in [0, ${u-1}]`))}let c=d;null==d&&(c=0);const h=r.util.sizeFromShape(i.shape),f=r.backend_util.segment_util.collectGatherOpShapeInfo(p,i,l,c),g=$t({inputs:{x:p},backend:a,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),y=$t({inputs:{x:i},backend:a,attrs:{shape:[f.batchSize,h/f.batchSize]}}),v=[f.batchSize,f.outerSize,h/f.batchSize,f.sliceSize],b=a.bufferSync(y),w=X(a.bufferSync(g),b,v);return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(y),a.makeTensorInfo(f.outputShape,w.dtype,w.values)}};const In={kernelName:r.IFFT,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{input:n}=t,s=r.util.sizeFromShape(n.shape),p=n.shape[n.shape.length-1],i=$t({inputs:{x:n},backend:a,attrs:{shape:[s/p,p]}}),o=cn(i,!0,a),d=$t({inputs:{x:o},backend:a,attrs:{shape:n.shape}});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),d}},En=A(r.IsFinite,(e=>Number.isFinite(e)?1:0),"bool"),Dn={kernelName:r.IsFinite,backendName:"cpu",kernelFunc:En},An=A(r.IsInf,(e=>Math.abs(e)===1/0?1:0),"bool"),Vn={kernelName:r.IsInf,backendName:"cpu",kernelFunc:An},Mn=A(r.IsNan,(e=>Number.isNaN(e)?1:0),"bool"),Fn={kernelName:r.IsNan,backendName:"cpu",kernelFunc:Mn};const Bn={kernelName:r.LinSpace,backendName:"cpu",kernelFunc:function(e){const{backend:t,attrs:a}=e,{start:n,stop:r,num:s}=a,p=oe(n,r,s);return t.makeTensorInfo([p.length],"float32",p)}},On=A(r.Log1p,(e=>Math.log1p(e))),$n={kernelName:r.Log1p,backendName:"cpu",kernelFunc:On},Cn=l(((e,t)=>e&&t)),Rn=N(r.LogicalAnd,Cn,null,"bool"),Pn={kernelName:r.LogicalAnd,backendName:"cpu",kernelFunc:Rn},zn=A(r.LogicalNot,(e=>e?0:1),"bool"),Ln={kernelName:r.LogicalNot,backendName:"cpu",kernelFunc:zn},Wn=l(((e,t)=>e||t)),Un=N(r.LogicalOr,Wn,null,"bool"),Hn={kernelName:r.LogicalOr,backendName:"cpu",kernelFunc:Un};const qn={kernelName:r.LRN,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{depthRadius:i,bias:o,alpha:d,beta:l}=n;s(p,"LRN");const m=p.shape[3],u=m-1,c=a.data.get(p.dataId).values,h=r.util.sizeFromShape(p.shape),f=new Float32Array(h);function g(e){const t=e%m;let a=e-t+Math.max(0,t-i);const n=e-t+Math.min(t+i,u);let r=0;for(;a<=n;a++){const e=c[a];r+=e*e}return r}for(let e=0;e`Error in maxPool: Either strides or dilations must be 1. Got strides ${o} and dilations '1'`));const m=r.backend_util.computePool2DInfo(p.shape,i,o,1,d,l);let u;if(1===m.filterWidth&&1===m.filterHeight&&r.util.arraysEqual(m.inShape,m.outShape))u=h({inputs:{x:p},backend:a});else{const e=a.data.get(p.dataId).values,t=r.util.computeStrides(p.shape),n=ia(e,p.shape,p.dtype,t,m,"max");u=a.makeTensorInfo(m.outShape,p.dtype,n.values)}return u}};const Zn={kernelName:r.MaxPool3D,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{filterSize:i,strides:o,pad:d,dimRoundingMode:l,dataFormat:m}=n;s(p,"maxPool3d");const u=r.backend_util.computePool3DInfo(p.shape,i,o,1,d,l,m),c=da(a.data.get(p.dataId).values,p.shape,p.dtype,r.util.computeStrides(p.shape),u,"max");return a.makeTensorInfo(c.shape,"float32",c.values)}};const Jn={kernelName:r.MaxPool3DGrad,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{dy:p,input:i}=t,{filterSize:o,strides:d,pad:l,dimRoundingMode:m}=n;s([p,i],"maxPool3DGrad");const u=r.backend_util.computePool3DInfo(i.shape,o,d,1,l,m),c=function(e,t){const a=(0,r.buffer)(t.outShape,"int32"),n=t.strideDepth,s=t.strideHeight,p=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,d=t.dilationWidth,l=t.effectiveFilterDepth,m=t.effectiveFilterHeight,u=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,f=t.padInfo.left;for(let r=0;r=_&&(_=o,T=a*m*u+s*m+i)}}}a.set(T,r,y,n,s,g)}}}return a}(a.bufferSync(i),u),h=u.strideDepth,f=u.strideHeight,g=u.strideWidth,y=u.dilationDepth,v=u.dilationHeight,b=u.dilationWidth,w=u.effectiveFilterDepth,N=u.effectiveFilterHeight,k=u.effectiveFilterWidth,S=w-1-u.padInfo.front,_=k-1-u.padInfo.left,T=N-1-u.padInfo.top,x=(0,r.buffer)(i.shape,"float32"),I=a.bufferSync(p);for(let e=0;e=u.outDepth||Math.floor(n)!==n))for(let r=0;r=u.outHeight||Math.floor(s)!==s))for(let p=0;p=u.outWidth||Math.floor(d)!==d)continue;const l=w*N*k-1-c.get(e,n,s,d,t)===a*N*k+r*k+p?1:0;if(0===l)continue;o+=I.get(e,n,s,d,t)*l}}}x.set(o,e,a,n,r,t)}return a.makeTensorInfo(x.shape,x.dtype,x.values)}};const Qn={kernelName:r.MaxPoolGrad,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{dy:p,input:i,output:o}=t,d=i;s([i,o],"maxPoolGrad");const{filterSize:l,strides:m,pad:u,dimRoundingMode:c}=n,h=r.backend_util.computePool2DInfo(d.shape,l,m,1,u,c),f=a.data.get(d.dataId).values,g=(0,r.buffer)(h.outShape,d.dtype,oa(f,d.shape,d.dtype,h).values),y=h.strideHeight,v=h.strideWidth,b=h.dilationHeight,w=h.dilationWidth,N=h.effectiveFilterHeight,k=h.effectiveFilterWidth,S=k-1-h.padInfo.left,_=N-1-h.padInfo.top,T=(0,r.buffer)(d.shape,"float32"),x=a.data.get(p.dataId).values,I=(0,r.buffer)(p.shape,"float32",x);for(let e=0;e=h.outHeight||Math.floor(n)!==n))for(let r=0;r=h.outWidth||Math.floor(i)!==i)continue;const o=N*k-1-g.get(e,n,i,t)===a*k+r?1:0;if(0===o)continue;p+=I.get(e,n,i,t)*o}}T.set(p,e,a,n,t)}return a.makeTensorInfo(T.shape,T.dtype,T.values)}};const Yn={kernelName:r.MaxPoolWithArgmax,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:a})=>{const{x:n}=e,{filterSize:p,strides:i,pad:o,includeBatchInIndex:d}=t,l=a;s(n,"MaxPoolWithArgmax");const m=l.data.get(n.dataId).values,u=r.backend_util.computePool2DInfo(n.shape,p,i,[1,1],o),[c,h]=function(e,t,a,n,s){const p=ia(e,0,a,r.util.computeStrides(t),s,"max"),i=oa(e,t,a,s,!0,n);return[p.values,i.values]}(m,n.shape,n.dtype,d,u),f=l.write(c,u.outShape,n.dtype),g=l.write(h,u.outShape,n.dtype);return[{dataId:f,shape:u.outShape,dtype:n.dtype},{dataId:g,shape:u.outShape,dtype:"int32"}]}};const er={kernelName:r.Mean,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:s}=t,{axis:p,keepDims:i}=n,o=r.util.parseAxisParam(p,s.shape),d=r.backend_util.computeOutAndReduceShapes(s.shape,o)[1],l=r.util.sizeFromShape(d),m=[],u=a.makeTensorInfo([],"float32",new Float32Array([l]));m.push(u);const c=b({inputs:{x:s},backend:a,attrs:{dtype:"float32"}});m.push(c);const h=mn({inputs:{a:c,b:u},backend:a});m.push(h);const f=Xa({inputs:{x:h},backend:a,attrs:{axis:p,keepDims:i}});return m.forEach((e=>a.disposeIntermediateTensorInfo(e))),f}};const tr={kernelName:r.Min,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{axis:i,keepDims:o}=n;s(p,"min");const d=r.util.parseAxisParam(i,p.shape);let l=d;const m=r.backend_util.getAxesPermutation(l,p.shape.length);let u=p;null!=m&&(u=De({inputs:{x:p},backend:a,attrs:{perm:m}}),l=r.backend_util.getInnerMostAxes(l.length,p.shape.length)),r.backend_util.assertAxesAreInnerMostDims("min",l,u.shape.length);const[c,h]=r.backend_util.computeOutAndReduceShapes(u.shape,l),f=r.util.sizeFromShape(h),g=r.util.makeZerosTypedArray(r.util.sizeFromShape(c),u.dtype),y=a.data.get(u.dataId).values;for(let e=0;ee[0]+p.shape[t]+e[1])),l=i.map((e=>e[0])),m=i.map(((e,t)=>e[0]+p.shape[t])),u="reflect"===o?0:1,c=a.data.get(p.dataId).values,h=p.shape.length,f=r.util.computeStrides(p.shape),g=r.util.sizeFromShape(d),y=d.length,v=r.util.computeStrides(d),b=r.util.getTypedArrayFromDType(p.dtype,g);for(let e=0;e=m[e]&&(t[e]=2*(m[e]-1)-t[e]+u);t=t.map(((e,t)=>e-l[t]));const a=r.util.locToIndex(t,h,f);b[e]=c[a]}return{dataId:a.write(b,d,p.dtype),shape:d,dtype:p.dtype}}},nr=l(((e,t)=>{const a=e%t;return e<0&&t<0||e>=0&&t>=0?a:(a+t)%t})),rr=N(r.Mod,nr),sr={kernelName:r.Mod,backendName:"cpu",kernelFunc:rr};var pr=a(6377);function ir(e){const{inputs:t,backend:a,attrs:n}=e,{logits:s}=t,{dim:p}=n,i=s.shape.length;let o=p;if(-1===o&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);const d=r.util.parseAxisParam([o],s.shape),l=jn({inputs:{x:s},backend:a,attrs:{reductionIndices:d,keepDims:!1}}),m=r.backend_util.expandShapeToKeepDim(l.shape,d),u=$t({inputs:{x:l},backend:a,attrs:{shape:m}}),c=gt({inputs:{a:s,b:u},backend:a}),h=z({inputs:{x:c},backend:a}),f=Xa({inputs:{x:h},backend:a,attrs:{axis:d,keepDims:!1}}),g=$t({inputs:{x:f},backend:a,attrs:{shape:m}}),y=mn({inputs:{a:h,b:g},backend:a});return a.disposeIntermediateTensorInfo(l),a.disposeIntermediateTensorInfo(u),a.disposeIntermediateTensorInfo(c),a.disposeIntermediateTensorInfo(h),a.disposeIntermediateTensorInfo(f),a.disposeIntermediateTensorInfo(g),y}const or={kernelName:r.Softmax,backendName:"cpu",kernelFunc:ir};const dr={kernelName:r.Multinomial,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{logits:p}=t,{numSamples:i,seed:o,normalized:d}=n;s(p,"multinomial");const l=d?p:ir({inputs:{logits:p},backend:a,attrs:{dim:-1}}),m=l.shape[0],u=l.shape[1],c=a.data.get(l.dataId).values,h=[m,i],f=r.util.makeZerosTypedArray(r.util.sizeFromShape(h),"int32");for(let e=0;e=0&&c[e]{r.util.assertShapesMatch(p,e.shape,"All tensors passed to stack must have matching shapes"),r.util.assert(i===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],d=Sa({inputs:t.map((e=>{const t=on({inputs:{input:e},backend:a,attrs:{dim:s}});return o.push(t),t})),backend:a,attrs:{axis:s}});return o.forEach((e=>a.disposeIntermediateTensorInfo(e))),d}const Nr={kernelName:r.Pack,backendName:"cpu",kernelFunc:wr};const kr={kernelName:r.PadV2,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{paddings:i,constantValue:o}=n;s(p,"pad");const d=i.map(((e,t)=>e[0]+p.shape[t]+e[1])),l=i.map((e=>e[0])),m=a.data.get(p.dataId).values,u=r.util.sizeFromShape(p.shape),c=p.shape.length,h=r.util.computeStrides(p.shape),f=r.util.sizeFromShape(d),g=d.length,y=r.util.computeStrides(d),v=r.util.getTypedArrayFromDType(p.dtype,f);0!==o&&v.fill(o);for(let e=0;ee+l[t]));v[r.util.locToIndex(t,g,y)]=m[e]}return{dataId:a.write(v,d,p.dtype),shape:d,dtype:p.dtype}}},Sr=l(((e,t)=>Math.pow(e,t))),_r=N(r.Pow,Sr),Tr={kernelName:r.Pow,backendName:"cpu",kernelFunc:_r};const xr={kernelName:r.RaggedGather,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:p}=t,{outputRaggedRank:i}=n,o=r.map((e=>a.data.get(e.dataId).values)),d=r.map((e=>e.shape)),l=a.data.get(s.dataId).values,m=a.data.get(p.dataId).values,[u,c,h]=$e(o,d,l,s.shape,s.dtype,m,p.shape),f=u.map((e=>a.makeTensorInfo([e.length],"int32",e))),g=a.makeTensorInfo(h,s.dtype,c);return f.concat([g])}};const Ir={kernelName:r.RaggedTensorToTensor,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{shape:r,values:s,defaultValue:p,rowPartitionTensors:i}=t,{rowPartitionTypes:o}=n,d=a.data.get(r.dataId).values,l=a.data.get(s.dataId).values,m=a.data.get(p.dataId).values,u=i.map((e=>a.data.get(e.dataId).values)),c=i.map((e=>e.shape)),[h,f]=Le(d,r.shape,l,s.shape,s.dtype,m,p.shape,u,c,o);return a.makeTensorInfo(h,s.dtype,f)}};const Er={kernelName:r.Range,backendName:"cpu",kernelFunc:function(e){const{backend:t,attrs:a}=e,{start:n,stop:r,dtype:s,step:p}=a,i=We(n,r,p,s);return t.makeTensorInfo([i.length],s,i)}},Dr=A(r.Reciprocal,(e=>1/e)),Ar={kernelName:r.Reciprocal,backendName:"cpu",kernelFunc:Dr};const Vr={kernelName:r.ResizeBilinear,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{images:p}=t,{alignCorners:i,halfPixelCenters:o,size:d}=n;s(p,"resizeBilinear");const l=r.util.computeStrides(p.shape),[m,u]=d,[c,h,f,g]=p.shape,y=a.data.get(p.dataId).values,v=new Float32Array(r.util.sizeFromShape([c,m,u,g])),b=[i&&m>1?h-1:h,i&&u>1?f-1:f],w=[i&&m>1?m-1:m,i&&u>1?u-1:u];let N=0;const k=b[0]/w[0],S=b[1]/w[1];for(let e=0;e1?m-1:m,o&&f>1?u-1:u],v=[o&&h>1?h-1:h,o&&f>1?f-1:f],b=y[0]/v[0],w=y[1]/v[1],N=a.data.get(i.dataId).values;let k=0;for(let e=0;e1?h-1:h,i&&u>1?f-1:f],w=[i&&m>1?m-1:m,i&&u>1?u-1:u],N=b[0]/w[0],k=b[1]/w[1];let S=0;for(let e=0;e1?u-1:u,o&&g>1?c-1:c],w=[o&&f>1?f-1:f,o&&g>1?g-1:g],N=b[0]/w[0],k=b[1]/w[1],S=1/N,_=1/k,T=2*Math.ceil(S)+2,x=2*Math.ceil(_)+2;for(let e=0;e=f)continue;const m=t+d*l[1],h=d*N;if(e===Math.min(u-1,o?Math.round(h):Math.floor(h)))for(let e=0;e=g)continue;const r=m+t*l[2],s=t*k;n===Math.min(c-1,o?Math.round(s):Math.floor(s))&&(p+=v[r+a])}}y[s+a]=p}}}}return a.makeTensorInfo(p.shape,p.dtype,y)}};const Or={kernelName:r.Reverse,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{dims:i}=n;s(p,"reverse");const o=p.shape.length,d=r.util.parseAxisParam(i,p.shape);if(0===o)return h({inputs:{x:p},backend:a});const l=new r.TensorBuffer(p.shape,p.dtype),m=a.bufferSync(p);for(let e=0;ea[e]=p.shape[e]-1-a[e])),l.set(m.get(...a),...t)}return a.makeTensorInfo(l.shape,l.dtype,l.values)}},$r={kernelName:r.RotateWithOffset,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:a})=>{const{image:n}=e,{radians:s,fillValue:p,center:i}=t,o=a,d=r.util.getTypedArrayFromDType(n.dtype,r.util.sizeFromShape(n.shape)),[l,m,u,c]=n.shape,[h,f]=r.backend_util.getImageCenter(i,m,u),g=Math.sin(s),y=Math.cos(s),v=o.data.get(n.dataId).values;for(let e=0;e=0&&w=0&&N{const t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1})),Rr={kernelName:r.Round,backendName:"cpu",kernelFunc:Cr};const Pr={kernelName:r.ScatterNd,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{indices:s,updates:p}=t,{shape:i}=n,{sliceRank:o,numUpdates:d,sliceSize:l,strides:m,outputSize:u}=r.backend_util.calculateShapes(p,s,i),c=Ge(a.bufferSync(s),a.bufferSync(p),i,u,l,d,o,m,0,!0);return a.makeTensorInfo(i,c.dtype,c.values)}};function zr(e,t){let a=0,n=e.length,r=0;for(;a1||1===p.shape.length?1:r.util.sizeFromShape(p.shape.slice(1));for(let e=0;ee>=0?qr*e:Hr*(Math.exp(e)-1))),jr={kernelName:r.Selu,backendName:"cpu",kernelFunc:Gr},Kr=A(r.Sign,(e=>e<0?-1:e>0?1:0)),Xr={kernelName:r.Sign,backendName:"cpu",kernelFunc:Kr},Zr=A(r.Sin,(e=>Math.sin(e))),Jr={kernelName:r.Sin,backendName:"cpu",kernelFunc:Zr},Qr=A(r.Sinh,(e=>Math.sinh(e))),Yr={kernelName:r.Sinh,backendName:"cpu",kernelFunc:Qr},es=Math.log(1.1920928955078125e-7)+2,ts=A(r.Softplus,(e=>{const t=e>-es,a=eNumber(e))))),a.makeTensorInfo([f.length],n.dtype,new Int32Array(f))]}};const ss={kernelName:r.SparseReshape,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{inputIndices:n,inputShape:r,newShape:s}=t;if(2!==n.shape.length)throw new Error(`Input indices should be a matrix but received shape\n ${n.shape}`);if(1!==r.shape.length)throw new Error(`Input shape should be a vector but received shape\n ${r.shape}`);if(1!==s.shape.length)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);const p=Array.from(a.data.get(r.dataId).values),i=a.data.get(n.dataId).values,o=Array.from(a.data.get(s.dataId).values),[d,l,m]=et(i,n.shape,n.dtype,p,o);return[a.makeTensorInfo(l,n.dtype,d),a.makeTensorInfo([m.length],s.dtype,new Int32Array(m))]}};const ps={kernelName:r.SparseSegmentMean,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{data:n,indices:r,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.shape.length)throw new Error(`Indices should be a vector but received shape\n ${r.shape}`);if(1!==s.shape.length)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");const p=a.data.get(n.dataId).values,i=a.data.get(r.dataId).values,o=a.data.get(s.dataId).values,[d,l]=tt(p,n.shape,n.dtype,i,o,!0);return a.makeTensorInfo(l,n.dtype,d)}};const is={kernelName:r.SparseSegmentSum,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a}=e,{data:n,indices:r,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.shape.length)throw new Error(`Indices should be a vector but received shape\n ${r.shape}`);if(1!==s.shape.length)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");const p=a.data.get(n.dataId).values,i=a.data.get(r.dataId).values,o=a.data.get(s.dataId).values,[d,l]=tt(p,n.shape,n.dtype,i,o);return a.makeTensorInfo(l,n.dtype,d)}};const os={kernelName:r.SparseToDense,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{sparseIndices:s,sparseValues:p,defaultValue:i}=t,{outputShape:o}=n,{sliceRank:d,numUpdates:l,sliceSize:m,strides:u,outputSize:c}=r.backend_util.calculateShapes(p,s,o),h=!1,f=a.bufferSync(s);let g;switch(p.dtype){case"bool":g=Ge(f,a.bufferSync(p),o,c,m,l,d,u,Boolean(a.data.get(i.dataId).values[0]),h);break;case"float32":g=Ge(f,a.bufferSync(p),o,c,m,l,d,u,a.data.get(i.dataId).values[0],h);break;case"int32":g=Ge(f,a.bufferSync(p),o,c,m,l,d,u,a.data.get(i.dataId).values[0],h);break;case"string":g=Ge(f,a.bufferSync(p),o,c,m,l,d,u,r.util.decodeString(a.data.get(i.dataId).values[0]),h);break;default:throw new Error(`Unsupported type ${p.dtype}`)}return a.makeTensorInfo(o,g.dtype,g.values)}};const ds={kernelName:r.SplitV,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:s}=t,{numOrSizeSplits:p,axis:i}=n,o=r.util.parseAxisParam(i,s.shape)[0],d=r.backend_util.prepareSplitSize(s,p,o),l=new Array(s.shape.length).fill(0),m=s.shape.slice();return d.map((e=>{const t=[...m];t[o]=e;const n=Je({inputs:{x:s},backend:a,attrs:{begin:l,size:t}});return l[o]+=e,n}))}},ls={kernelName:r.Square,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{const{x:a}=e,n=t;s(a,"square");const r=n.data.get(a.dataId).values,p=new Float32Array(r.length);for(let e=0;e{const a=t;return isNaN(e)?NaN:e>0?1:a.alpha})),us={kernelName:r.Step,backendName:"cpu",kernelFunc:ms};const cs={kernelName:r.StridedSlice,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:p}=t,{begin:i,end:o,strides:d,beginMask:l,endMask:m,ellipsisMask:u,newAxisMask:c,shrinkAxisMask:h}=n;s(p,"stridedSlice");const{finalShapeSparse:f,finalShape:g,isIdentity:y,sliceDim0:v,isSimpleSlice:b,begin:w,end:N,strides:k}=r.slice_util.sliceInfo(p.shape,i,o,d,l,m,u,c,h);let S;if(y)S=$t({inputs:{x:p},backend:a,attrs:{shape:g}});else if(v||b){r.util.assert(p.shape.length>=1,(()=>`Input must have rank at least 1, got: ${p.shape.length}`));const e=r.slice_util.computeOutShape(w,N,k),t=Je({inputs:{x:p},backend:a,attrs:{begin:w,size:e}});S=$t({inputs:{x:t},backend:a,attrs:{shape:g}}),a.disposeIntermediateTensorInfo(t)}else{const e=ot(f,a.bufferSync(p),k,w);S=a.makeTensorInfo(g,e.dtype,e.values)}return S}};const hs={kernelName:r.StringNGrams,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{separator:r,nGramWidths:s,leftPad:p,rightPad:i,padWidth:o,preserveShortSequences:d}=n,{data:l,dataSplits:m}=t,u=a.data.get(l.dataId).values,c=a.data.get(m.dataId).values,[h,f]=lt(u,c,r,s,p,i,o,d);return[a.makeTensorInfo([h.length],"string",h),a.makeTensorInfo(m.shape,"int32",f)]}};const fs={kernelName:r.StringSplit,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{skipEmpty:r}=n,{input:s,delimiter:p}=t;if("string"!==s.dtype)throw new Error("Input must be of datatype string");if(1!==s.shape.length)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(0!==p.shape.length)throw new Error(`Delimiter must be a scalar, got shape: ${p.shape}`);const i=a.data.get(s.dataId).values,o=a.data.get(p.dataId).values[0],[d,l,m]=ut(i,o,r),u=l.length;return[a.makeTensorInfo([u,2],"int32",d),a.makeTensorInfo([u],"string",l),a.makeTensorInfo([2],"int32",new Int32Array(m))]}};const gs={kernelName:r.StringToHashBucketFast,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{numBuckets:r}=n,{input:s}=t;if("string"!==s.dtype)throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");const p=ct(a.data.get(s.dataId).values,r);return a.makeTensorInfo(s.shape,"int32",p)}},ys=A(r.Tan,(e=>Math.tan(e))),vs={kernelName:r.Tan,backendName:"cpu",kernelFunc:ys},bs=A(r.Tanh,(e=>Math.tanh(e))),ws={kernelName:r.Tanh,backendName:"cpu",kernelFunc:bs};const Ns={kernelName:r.Tile,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:r}=t,{reps:p}=n;s(r,"tile");const i=vt(a.bufferSync(r),p);return a.makeTensorInfo(i.shape,i.dtype,i.values)}};const ks={kernelName:r.TopK,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:a,attrs:n}=e,{x:r}=t,{k:p,sorted:i}=n;s(r,"topk");const o=a.data.get(r.dataId).values,[d,l]=Nt(o,r.shape,r.dtype,p,i);return[a.makeTensorInfo(d.shape,d.dtype,d.values),a.makeTensorInfo(l.shape,l.dtype,l.values)]}};const Ss={kernelName:r.Transform,backendName:"cpu",kernelFunc:function(e){const{inputs:t,attrs:a,backend:n}=e,{image:s,transforms:p}=t,{interpolation:i,fillMode:o,fillValue:d,outputShape:l}=a,[m,u,c,h]=s.shape,[f,g]=null!=l?l:[u,c],y=[m,f,g,h],v=r.util.computeStrides(s.shape),b=v[0],w=v[1],N=v[2],k=r.util.computeStrides(y),S=k[0],_=k[1],T=k[2],x=r.util.getTypedArrayFromDType(s.dtype,r.util.sizeFromShape(y));x.fill(d);const I=n.data.get(s.dataId).values,E=n.data.get(p.dataId).values;for(let e=0;et-1)if(t<=1)a=0;else{const e=2*t;a-=e*Math.trunc(a/e),a>=t&&(a=e-a-1)}return r.util.clamp(0,a,t-1)}(e,t);case"wrap":return function(e,t){let a=e;if(a<0)if(t<=1)a=0;else{const e=t-1;a+=t*(Math.trunc(-a/e)+1)}else if(a>t-1)if(t<=1)a=0;else{const e=t-1;a-=t*Math.trunc(a/e)}return r.util.clamp(0,a,t-1)}(e,t);case"nearest":return function(e,t){return r.util.clamp(0,e,t-1)}(e,t);default:return function(e,t){return e}(e)}}function Ts(e,t,a,n,r,s,p,i,o,d,l){return 0<=i&&ia.disposeIntermediateTensorInfo(e))),c}},Vs=[zt,d,Wt,Ht,x,qt,Gt,jt,Kt,Xt,Jt,Yt,ta,ra,pa,la,ma,ua,ca,Pt,ha,fa,ga,ya,w,B,ba,u,wa,_a,xa,Ia,Ea,Da,Aa,Va,Fa,Oa,$a,Ca,Ra,Pa,za,Wa,Ua,Ha,qa,Ga,ja,Ka,Ja,Tt,Qa,R,pn,L,dn,H,gn,vn,bn,j,kn,Sn,_n,Tn,xn,Q,te,f,In,ka,Dn,Vn,Fn,It,re,ie,Bn,me,$n,Pn,Ln,Hn,qn,Gn,Kn,fe,Xn,Zn,Jn,Qn,Yn,er,tr,ve,ar,sr,dr,ke,_e,mr,cr,fr,Ie,gr,br,Nr,kr,Tr,At,Me,xr,Ir,Er,y,un,Ar,Mt,Bt,Ct,Vr,Mr,Fr,Br,Or,$r,Rr,qe,Pr,Wr,Ur,jr,Xe,Xr,Jr,Yr,Qe,or,as,ns,rs,ss,ps,is,os,ds,rt,ls,it,us,cs,hs,fs,gs,yt,Za,vs,ws,Ns,ks,Ss,Ae,Es,Ds,As,vr];for(const e of Vs)(0,r.registerKernel)(e)},4618:(e,t,a)=>{"use strict";a.r(t),a.d(t,{GraphModel:()=>Le,deregisterOp:()=>D,loadGraphModel:()=>We,loadGraphModelSync:()=>Ue,registerOp:()=>I,version_converter:()=>He});var n={};a.r(n),a.d(n,{json:()=>C});var r={};a.r(r),a.d(r,{json:()=>R});var s={};a.r(s),a.d(s,{json:()=>P});var p={};a.r(p),a.d(p,{json:()=>z});var i={};a.r(i),a.d(i,{json:()=>L});var o={};a.r(o),a.d(o,{json:()=>W});var d={};a.r(d),a.d(d,{json:()=>U});var l={};a.r(l),a.d(l,{json:()=>H});var m={};a.r(m),a.d(m,{json:()=>q});var u={};a.r(u),a.d(u,{json:()=>G});var c={};a.r(c),a.d(c,{json:()=>j});var h={};a.r(h),a.d(h,{json:()=>K});var f={};a.r(f),a.d(f,{json:()=>X});var g={};a.r(g),a.d(g,{json:()=>Z});var y={};a.r(y),a.d(y,{json:()=>J});var v={};a.r(v),a.d(v,{json:()=>Q});var b={};a.r(b),a.d(b,{json:()=>Y});var w={};a.r(w),a.d(w,{json:()=>ee});var N={};a.r(N),a.d(N,{json:()=>te});var k={};a.r(k),a.d(k,{OP_SCOPE_SUFFIX:()=>ve.zvA,abs:()=>ve.WnP,acos:()=>ve.Khb,acosh:()=>ve.__u,add:()=>ve.IHx,addN:()=>ve.QBD,all:()=>ve.$6P,any:()=>ve.YjB,argMax:()=>ve.NqF,argMin:()=>ve.vHJ,asin:()=>ve.ZRM,asinh:()=>ve.VfV,atan:()=>ve.z4N,atan2:()=>ve.fvJ,atanh:()=>ve.C80,avgPool:()=>ve.wS1,avgPool3d:()=>ve.uR5,basicLSTMCell:()=>ve.zEQ,batchNorm:()=>ve.tgs,batchNorm2d:()=>ve.Dxk,batchNorm3d:()=>ve.JY5,batchNorm4d:()=>ve.p3b,batchToSpaceND:()=>ve.E4h,bincount:()=>ve.yE8,booleanMaskAsync:()=>ve.anm,broadcastArgs:()=>ve.XsQ,broadcastTo:()=>ve.UFq,buffer:()=>ve.f3b,cast:()=>ve.pju,ceil:()=>ve.mDi,clipByValue:()=>ve.iUl,clone:()=>ve.d9v,complex:()=>ve.PYB,concat:()=>ve.zoF,concat1d:()=>ve.gME,concat2d:()=>ve.Izb,concat3d:()=>ve.MNy,concat4d:()=>ve.ZaL,conv1d:()=>ve.PAt,conv2d:()=>ve.Tek,conv2dTranspose:()=>ve.bc,conv3d:()=>ve.pdZ,conv3dTranspose:()=>ve.$QV,cos:()=>ve.mCk,cosh:()=>ve.f9Y,cosineWindow:()=>ve.mew,cumprod:()=>ve.$Gn,cumsum:()=>ve.zbp,denseBincount:()=>ve.ppE,depthToSpace:()=>ve.nTT,depthwiseConv2d:()=>ve.B10,diag:()=>ve.Ka3,dilation2d:()=>ve.WmZ,div:()=>ve.hiC,divNoNan:()=>ve.NTj,dot:()=>ve.AKD,dropout:()=>ve.rvX,einsum:()=>ve.WYO,elu:()=>ve.pyx,enclosingPowerOfTwo:()=>ve.GRh,equal:()=>ve.DgJ,erf:()=>ve.qNN,euclideanNorm:()=>ve.d2q,exp:()=>ve.Qqt,expandDims:()=>ve.dt4,expm1:()=>ve.t$B,eye:()=>ve.iyy,fft:()=>ve.kp_,fill:()=>ve.hlL,floor:()=>ve.GWj,floorDiv:()=>ve.qPi,fused:()=>ve.imm,gather:()=>ve.Iqj,gatherND:()=>ve.dbB,greater:()=>ve.pjt,greaterEqual:()=>ve.brS,ifft:()=>ve.Sxn,imag:()=>ve.asL,image:()=>ve.BHj,inTopKAsync:()=>ve.V3u,irfft:()=>ve.wx0,isFinite:()=>ve.xVT,isInf:()=>ve.UWc,isNaN:()=>ve.i2d,leakyRelu:()=>ve.hi7,less:()=>ve.d9m,lessEqual:()=>ve.zN1,linalg:()=>ve.$r2,linspace:()=>ve.SX3,localResponseNormalization:()=>ve.G9k,log:()=>ve.cM7,log1p:()=>ve.Krr,logSigmoid:()=>ve.e_t,logSoftmax:()=>ve.CmS,logSumExp:()=>ve.l_t,logicalAnd:()=>ve.HvI,logicalNot:()=>ve.hJK,logicalOr:()=>ve.K5V,logicalXor:()=>ve.egP,losses:()=>ve.MB5,lowerBound:()=>ve.eab,matMul:()=>ve.OI3,max:()=>ve.Fp7,maxPool:()=>ve._sB,maxPool3d:()=>ve.YQQ,maxPoolWithArgmax:()=>ve.Ip$,maximum:()=>ve.gWQ,mean:()=>ve.J69,meshgrid:()=>ve.ry_,min:()=>ve.VV$,minimum:()=>ve.LTh,mirrorPad:()=>ve.VdP,mod:()=>ve.wQq,moments:()=>ve.Gi7,movingAverage:()=>ve.p_,mul:()=>ve.dC7,multiRNNCell:()=>ve.rq4,multinomial:()=>ve.SJ_,neg:()=>ve.W76,norm:()=>ve.KOy,notEqual:()=>ve.Quu,oneHot:()=>ve.lfX,ones:()=>ve.iUs,onesLike:()=>ve.JpU,op:()=>ve.op,outerProduct:()=>ve.N2O,pad:()=>ve.vku,pad1d:()=>ve.pNR,pad2d:()=>ve.koy,pad3d:()=>ve.t1L,pad4d:()=>ve.lGY,pool:()=>ve.d_R,pow:()=>ve.sQ3,prelu:()=>ve.AL3,print:()=>ve.S0v,prod:()=>ve.WVs,raggedGather:()=>ve.$gW,raggedTensorToTensor:()=>ve.N89,rand:()=>ve.TN_,randomGamma:()=>ve.wzB,randomNormal:()=>ve.nGf,randomStandardNormal:()=>ve.ruB,randomUniform:()=>ve.LGj,range:()=>ve.w6H,real:()=>ve.kwC,reciprocal:()=>ve.M25,relu:()=>ve.UYe,relu6:()=>ve.btT,reshape:()=>ve.XLQ,reverse:()=>ve.GYS,reverse1d:()=>ve.SDf,reverse2d:()=>ve.diP,reverse3d:()=>ve.sx7,reverse4d:()=>ve.mG2,rfft:()=>ve.QEs,round:()=>ve.NMM,rsqrt:()=>ve.bp0,scalar:()=>ve.iD$,scatterND:()=>ve.snQ,searchSorted:()=>ve.zcT,selu:()=>ve.U8D,separableConv2d:()=>ve.U_I,setdiff1dAsync:()=>ve.ODp,sigmoid:()=>ve.XD2,sign:()=>ve.Xxe,signal:()=>ve.tdS,sin:()=>ve.O$l,sinh:()=>ve.R_K,slice:()=>ve.tPi,slice1d:()=>ve.jZU,slice2d:()=>ve.SmN,slice3d:()=>ve.CnO,slice4d:()=>ve.p0P,softmax:()=>ve.XAC,softplus:()=>ve.Wvh,spaceToBatchND:()=>ve.fBT,sparse:()=>ve.rVs,sparseToDense:()=>ve.ers,spectral:()=>ve.uN7,split:()=>ve.Vl2,sqrt:()=>ve._b3,square:()=>ve.h62,squaredDifference:()=>ve.$i,squeeze:()=>ve.L9e,stack:()=>ve.knu,step:()=>ve.Nbs,stridedSlice:()=>ve.NXj,string:()=>ve.Z_8,sub:()=>ve.luU,sum:()=>ve.Smz,tan:()=>ve.ORZ,tanh:()=>ve.AEp,tensor:()=>ve.XeE,tensor1d:()=>ve.RRF,tensor2d:()=>ve.odF,tensor3d:()=>ve.wOQ,tensor4d:()=>ve.yXz,tensor5d:()=>ve.Bfx,tensor6d:()=>ve.xZs,tile:()=>ve.Gg6,topk:()=>ve.hg7,transpose:()=>ve.p4s,truncatedNormal:()=>ve.Xu6,unique:()=>ve.Two,unsortedSegmentSum:()=>ve.pUJ,unstack:()=>ve.HHK,upperBound:()=>ve.GaM,variable:()=>ve.VD$,where:()=>ve.arb,whereAsync:()=>ve.itS,zeros:()=>ve.lls,zerosLike:()=>ve.P84});var S=a(8946);var _,T;(0,S.env)().registerFlag("KEEP_INTERMEDIATE_TENSORS",(()=>!1),(e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")})),function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"}(_||(_={})),function(e){let t;!function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"}(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))}(T||(T={}));const x={};function I(e,t){const a={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};x[e]=a}function E(e){return x[e]}function D(e){delete x[e]}function A(e,t,a,n,r){const s=t.inputParams[e];if(s&&void 0!==s.inputIndexStart){const e=s.inputIndexStart,p=0===s.inputIndexEnd?void 0:void 0===s.inputIndexEnd?e+1:s.inputIndexEnd;if("tensor"===s.type)return V(t.inputNames[s.inputIndexStart],a,n,r);if("tensors"===s.type){return t.inputNames.slice(e,p).map((e=>V(e,a,n,r)))}const i=V(t.inputNames.slice(e)[0],a,n,r),o=i.dataSync();return"number"===s.type?o[0]:S.util.toNestedArray(i.shape,o)}const p=t.attrParams[e];return p&&p.value}function V(e,t,a,n){const[r,s]=B(e);if(null!=n){const e=n.getHashTableHandleByName(r);if(null!=e)return e}const p=a.currentContextIds.find((e=>!!t[F(r,e)]));return void 0!==p?t[F(r,p)][s]:void 0}function M(e,t){const[a,n,r]=B(e);return[F(a,t&&t.currentContextId),n,r]}function F(e,t){return t?`${e}-${t}`:e}function B(e){const t=e.split(":");if(1===t.length)return[e,0,void 0];const a=t[0],n=3===t.length?t[1]:void 0;return[a,Number(t[t.length-1]),n]}function O(e,t,a){let n=A("pad",e,t,a);if("explicit"===n){n=A("explicitPaddings",e,t,a);const r=[[0,0],[0,0],[0,0],[0,0]];for(let e=0;e<4;e++)r[e][0]=n[2*e],r[e][1]=n[2*e+1];return r}return n}function $(e){return e.kept?e:(0,S.clone)(e)}const C=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],R=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],P=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcatV2",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],z=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],L=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],W=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],U=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],H=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],q=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]}],G=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],j=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],K=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}],X=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],Z=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumprod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],J=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],Q=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],Y=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],ee=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],te=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}];class ae{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[].concat(...[n,r,s,p,i,o,d,l,m,u,c,h,f,g,y,v,b,w,N].map((e=>e.json)));this.opMappers=e.reduce(((e,t)=>(e[t.tfOpName]=t,e)),{})}transformGraph(e,t={}){const a=e.node,n=[],r=[],s=[],p=a.reduce(((e,t)=>(e[t.name]=this.mapNode(t),t.op.startsWith("Placeholder")?n.push(e[t.name]):"Const"===t.op?r.push(e[t.name]):null!=t.input&&0!==t.input.length||s.push(e[t.name]),e)),{});let i=[];const o=[];let d={},l={};null!=t&&(d=this.mapSignatureEntries(t.inputs),l=this.mapSignatureEntries(t.outputs));const m=Object.keys(p);m.forEach((e=>{const t=p[e];t.inputNames.forEach(((e,a)=>{const[n,,r]=M(e),s=p[n];if(null!=s.outputs){const e=s.outputs.indexOf(r);if(-1!==e){const r=`${n}:${e}`;t.inputNames[a]=r}}t.inputs.push(s),s.children.push(t)}))})),0===Object.keys(l).length?m.forEach((e=>{const t=p[e];0===t.children.length&&o.push(t)})):Object.keys(l).forEach((e=>{const[t]=M(e),a=p[t];null!=a&&(a.signatureKey=l[e],o.push(a))})),Object.keys(d).length>0?Object.keys(d).forEach((e=>{const[t]=M(e),a=p[t];a&&(a.signatureKey=d[e],i.push(a))})):i=n;let u={};null!=e.library&&null!=e.library.function&&(u=e.library.function.reduce(((e,t)=>(e[t.signature.name]=this.mapFunction(t),e)),{}));const c={nodes:p,inputs:i,outputs:o,weights:r,placeholders:n,signature:t,functions:u};return s.length>0&&(c.initNodes=s),c}mapSignatureEntries(e){return Object.keys(e||{}).reduce(((t,a)=>(t[e[a].name]=a,t)),{})}mapNode(e){const t=E(e.op)||this.opMappers[e.op]||{};null==e.attr&&(e.attr={});const a={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map((e=>e.startsWith("^")?e.slice(1):e)),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return null!=t.inputs&&(a.inputParams=t.inputs.reduce(((e,t)=>(e[t.name]={type:t.type,inputIndexStart:t.start,inputIndexEnd:t.end},e)),{})),null!=t.attrs&&(a.attrParams=t.attrs.reduce(((t,a)=>{const n=a.type;let r;switch(a.type){case"string":r=re(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=re(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"string[]":r=he(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=he(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"number":r=pe(e.attr,a.tfName,a.defaultValue||0),void 0===r&&a.tfDeprecatedName&&(r=pe(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"number[]":r=ce(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=ce(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"bool":r=se(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=se(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"bool[]":r=ge(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=ge(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"shape":r=ue(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=ue(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"shape[]":r=fe(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=fe(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"dtype":r=de(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=de(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"dtype[]":r=le(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=le(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"func":r=oe(e.attr,a.tfName,a.defaultValue),void 0===r&&a.tfDeprecatedName&&(r=oe(e.attr,a.tfDeprecatedName,a.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${a.type} for op: ${e.op}`)}return t[a.name]={value:r,type:n},t}),{})),a}mapFunction(e){const t=e.nodeDef,a=[];let n={};null!=t&&(n=t.reduce(((e,t)=>(e[t.name]=this.mapNode(t),"Const"===t.op&&a.push(e[t.name]),e)),{}));const r=[],s=[];e.signature.inputArg.forEach((e=>{const[t]=M(e.name),a={name:t,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:ie(e.type),type:"dtype"}},children:[]};a.signatureKey=e.name,r.push(a),n[t]=a}));Object.keys(n).forEach((e=>{const t=n[e];t.inputNames.forEach(((e,a)=>{const[r,,s]=M(e),p=n[r];if(null!=p.outputs){const e=p.outputs.indexOf(s);if(-1!==e){const n=`${r}:${e}`;t.inputNames[a]=n}}t.inputs.push(p),p.children.push(t)}))}));const p=e.ret;e.signature.outputArg.forEach((e=>{const[t,a]=M(p[e.name]),r=n[t];null!=r&&(r.defaultOutput=a,s.push(r))}));const i=this.mapArgsToSignature(e);return{nodes:n,inputs:r,outputs:s,weights:a,placeholders:[],signature:i}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce(((e,t)=>(e[t.name]=this.mapArgToTensorInfo(t),e)),{}),outputs:e.signature.outputArg.reduce(((t,a)=>(t[a.name]=this.mapArgToTensorInfo(a,e.ret),t)),{})}}mapArgToTensorInfo(e,t){let a=e.name;return null!=t&&(a=t[a]),{name:a,dtype:e.type}}}function ne(e,t){const a=Array.isArray(e)?String.fromCharCode.apply(null,e):function(e){const t=(0,S.env)().global;if(void 0!==t.atob)return t.atob(e);if("undefined"!=typeof Buffer)return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}(e);return t?a:a.toLowerCase()}function re(e,t,a,n=!1){const r=e[t];return null!=r?ne(r.s,n):a}function se(e,t,a){const n=e[t];return n?n.b:a}function pe(e,t,a){const n=e[t]||{},r=null!=n.i?n.i:null!=n.f?n.f:a;return"number"==typeof r?r:parseInt(r,10)}function ie(e){switch("string"==typeof e&&(e=_[e]),e){case _.DT_FLOAT:case _.DT_HALF:return"float32";case _.DT_INT32:case _.DT_INT64:case _.DT_INT8:case _.DT_UINT8:return"int32";case _.DT_BOOL:return"bool";case _.DT_DOUBLE:return"float32";case _.DT_STRING:return"string";default:return null}}function oe(e,t,a){const n=e[t];return n&&n.func?n.func.name:a}function de(e,t,a){const n=e[t];return n&&n.type?ie(n.type):a}function le(e,t,a){const n=e[t];return n&&n.list&&n.list.type?n.list.type.map((e=>ie(e))):a}function me(e){if(!e.unknownRank)return null!=e.dim?e.dim.map((e=>"number"==typeof e.size?e.size:parseInt(e.size,10))):[]}function ue(e,t,a){const n=e[t];return n&&n.shape?me(n.shape):a}function ce(e,t,a){const n=e[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map((e=>"number"==typeof e?e:parseInt(e,10))):a}function he(e,t,a,n=!1){const r=e[t];return r&&r.list&&r.list.s?r.list.s.map((e=>ne(e,n))):a}function fe(e,t,a){const n=e[t];return n&&n.list&&n.list.shape?n.list.shape.map((e=>me(e))):a}function ge(e,t,a){const n=e[t];return n&&n.list&&n.list.b?n.list.b:a}class ye{constructor(e,t,a){this.node=e,this.tensorMap=t,this.context=a,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map((e=>this.getInput(e))),null!=e.rawAttrs&&(this.attrs=Object.keys(e.rawAttrs).reduce(((e,t)=>(e[t]=this.getAttr(t),e)),{}))}getInput(e){return V(e,this.tensorMap,this.context)}getAttr(e,t){const a=this.node.rawAttrs[e];if(null!=a.tensor)return V(e,this.tensorMap,this.context);if(null!=a.i||null!=a.f)return pe(this.node.rawAttrs,e,t);if(null!=a.s)return re(this.node.rawAttrs,e,t);if(null!=a.b)return se(this.node.rawAttrs,e,t);if(null!=a.shape)return ue(this.node.rawAttrs,e,t);if(null!=a.type)return de(this.node.rawAttrs,e,t);if(null!=a.list){if(null!=a.list.i||null!=a.list.f)return ce(this.node.rawAttrs,e,t);if(null!=a.list.s)return he(this.node.rawAttrs,e,t);if(null!=a.list.shape)return fe(this.node.rawAttrs,e,t);if(null!=a.list.b)return ge(this.node.rawAttrs,e,t);if(null!=a.list.type)return le(this.node.rawAttrs,e,t)}return t}}var ve=a(6522);function be(e,t,a=""){if("number"!=typeof e&&"number"!=typeof t){S.util.assert(e.length===t.length,(()=>a+` Shapes ${e} and ${t} must match`));for(let n=0;na+` Shapes ${e} and ${t} must match`))}}}function we(e){return"number"!=typeof e&&!e.some((e=>e<0))}function Ne(e,t,a){let n=ke(e,a);const r=!we(n);if(r&&0===t.length)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(r&&t.forEach((e=>{n=ke(e.shape,n)})),!we(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function ke(e,t){if("number"==typeof e)return t;if("number"==typeof t)return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);const a=[];for(let n=0;n=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);a[n]=r>=0?r:s}return a}class Se{constructor(e,t,a,n,r,s,p){this.name=e,this.dtype=t,this.maxSize=a,this.elementShape=n,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=p,this.tensors=[],this.closed_=!1,this.idTensor=(0,S.scalar)(0),(0,S.keep)(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.tensor.id)||t.tensor.dispose()})),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);const t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map((e=>this.read(e)))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);const a=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e},\n because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(0!==this.size()||null!=this.elementShape&&0!==this.elementShape.length||(this.elementShape=t.shape),be(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),a.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(a.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);a.tensor=t,(0,S.keep)(t),a.written=!0,this.tensors[e]=a}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach(((e,a)=>this.write(e,t[a])))}gather(e,t){if(t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let t=0;t=this.maxSize)throw new Error(`Max index must be < array size (${a} vs. ${this.maxSize})`);this.writeMany(e,(0,S.unstack)(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let a=0;const n=e.map((e=>(a+=e,a)));if(a!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${a}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);const r=0===a?0:t.size/a,s=[];(0,S.tidy)((()=>{t=(0,S.reshape)(t,[1,a,r]);for(let a=0;a{if(a!==e.dtype)throw new Error(`Invalid data types; op elements ${a}, but list elements ${e.dtype}`);be(t,e.shape,"TensorList shape mismatch: "),(0,S.keep)(e)})),this.idTensor=(0,S.scalar)(0),this.maxNumElements=n,(0,S.keep)(this.idTensor)}get id(){return this.idTensor.id}copy(){return new _e([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.id)||t.dispose()})),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,a=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(-1!==a&&this.tensors.length!==a)throw new Error(`Operation expected a list with ${a} elements but got a list with ${this.tensors.length} elements.`);be(e,this.elementShape,"TensorList shape mismatch: ");const n=Ne(this.elementShape,this.tensors,e);return(0,S.tidy)((()=>{const e=this.tensors.map((e=>(0,S.reshape)(e,n)));return(0,S.stack)(e,0)}))}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(0===this.size())throw new Error("Trying to pop from an empty list.");const a=Ne(this.elementShape,this.tensors,e),n=this.tensors.pop();return n.kept=!1,be(n.shape,e,"TensorList shape mismatch: "),(0,S.reshape)(n,a)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(be(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");(0,S.keep)(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(-1!==this.maxNumElements&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);const t=new _e([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let a=0;athis.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(null==this.tensors[e])throw new Error(`element at index ${e} is null.`);be(this.tensors[e].shape,t,"TensorList shape mismatch: ");const n=Ne(this.elementShape,this.tensors,t);return(0,S.reshape)(this.tensors[e],n)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||-1!==this.maxNumElements&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);be(this.elementShape,t.shape,"TensorList shape mismatch: "),(0,S.keep)(t),null!=this.tensors[e]&&(this.tensors[e].kept=!1),this.tensors[e]=t}gather(e,t,a){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);be(this.elementShape,a,"TensorList shape mismatch: "),e=e.slice(0,this.size());const n=Ne(this.elementShape,this.tensors,a);return 0===e.length?(0,S.tensor)([],[0].concat(n)):(0,S.tidy)((()=>{const t=e.map((e=>(0,S.reshape)(this.tensors[e],n)));return(0,S.stack)(t,0)}))}concat(e,t){if(e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);be(this.elementShape,t,"TensorList shape mismatch: ");const a=Ne(this.elementShape,this.tensors,t);return 0===this.size()?(0,S.tensor)([],[0].concat(a)):(0,S.tidy)((()=>{const e=this.tensors.map((e=>(0,S.reshape)(e,a)));return(0,S.concat)(e,0)}))}}const Te=async(e,t,a)=>{switch(e.op){case"If":case"StatelessIf":{const n=A("thenBranch",e,t,a),r=A("elseBranch",e,t,a),s=A("cond",e,t,a),p=A("args",e,t,a);return(await s.data())[0]?a.functionMap[n].executeFunctionAsync(p,a.tensorArrayMap,a.tensorListMap):a.functionMap[r].executeFunctionAsync(p,a.tensorArrayMap,a.tensorListMap)}case"While":case"StatelessWhile":{const n=A("body",e,t,a),r=A("cond",e,t,a),s=A("args",e,t,a),p=await a.functionMap[r].executeFunctionAsync(s,a.tensorArrayMap,a.tensorListMap),i=s.map((e=>e.id));let o=await p[0].data();p.forEach((e=>{e.kept||-1!==i.indexOf(e.id)||e.dispose()}));let d=s;for(;o[0];){const e=d;d=await a.functionMap[n].executeFunctionAsync(d,a.tensorArrayMap,a.tensorListMap);const t=d.map((e=>e.id));e.forEach((e=>{e.kept||-1!==i.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}));const s=await a.functionMap[r].executeFunctionAsync(d,a.tensorArrayMap,a.tensorListMap);o=await s[0].data(),s.forEach((e=>{e.kept||-1!==i.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}))}return d}case"LoopCond":return[$(A("pred",e,t,a))];case"Switch":{const n=A("pred",e,t,a);let r=A("data",e,t,a);return r.kept||(r=$(r)),(await n.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{const n=e.inputNames.find((e=>void 0!==V(e,t,a)));if(n){return[$(V(n,t,a))]}return}case"Enter":{const n=A("frameName",e,t,a),r=A("tensor",e,t,a);return a.enterFrame(n),[$(r)]}case"Exit":{const n=A("tensor",e,t,a);return a.exitFrame(),[$(n)]}case"NextIteration":{const n=A("tensor",e,t,a);return a.nextIteration(),[$(n)]}case"TensorArrayV3":{const n=A("size",e,t,a),r=A("dtype",e,t,a),s=A("elementShape",e,t,a),p=A("dynamicSize",e,t,a),i=A("clearAfterRead",e,t,a),o=A("identicalElementShapes",e,t,a),d=A("name",e,t,a),l=new Se(d,r,n,s,o,p,i);return a.addTensorArray(l),[l.idTensor,(0,S.scalar)(1)]}case"TensorArrayWriteV3":{const n=A("tensorArrayId",e,t,a),r=A("index",e,t,a),s=A("tensor",e,t,a),p=a.getTensorArray(n.id);return p.write(r,s),[p.idTensor]}case"TensorArrayReadV3":{const n=A("tensorArrayId",e,t,a),r=A("index",e,t,a);return[a.getTensorArray(n.id).read(r)]}case"TensorArrayGatherV3":{const n=A("tensorArrayId",e,t,a),r=A("indices",e,t,a),s=A("dtype",e,t,a);return[a.getTensorArray(n.id).gather(r,s)]}case"TensorArrayScatterV3":{const n=A("tensorArrayId",e,t,a),r=A("indices",e,t,a),s=A("tensor",e,t,a),p=a.getTensorArray(n.id);return p.scatter(r,s),[p.idTensor]}case"TensorArrayConcatV3":{const n=A("tensorArrayId",e,t,a),r=a.getTensorArray(n.id),s=A("dtype",e,t,a);return[r.concat(s)]}case"TensorArraySplitV3":{const n=A("tensorArrayId",e,t,a),r=A("tensor",e,t,a),s=A("lengths",e,t,a),p=a.getTensorArray(n.id);return p.split(s,r),[p.idTensor]}case"TensorArraySizeV3":{const n=A("tensorArrayId",e,t,a),r=a.getTensorArray(n.id);return[(0,S.scalar)(r.size(),"int32")]}case"TensorArrayCloseV3":{const n=A("tensorArrayId",e,t,a),r=a.getTensorArray(n.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{const n=A("tensorListId",e,t,a),r=A("index",e,t,a),s=A("tensor",e,t,a),p=a.getTensorList(n.id);return p.setItem(r,s),[p.idTensor]}case"TensorListGetItem":{const n=A("tensorListId",e,t,a),r=A("index",e,t,a),s=A("elementShape",e,t,a),p=A("elementDType",e,t,a);return[a.getTensorList(n.id).getItem(r,s,p)]}case"TensorListScatterV2":case"TensorListScatter":{const n=A("indices",e,t,a),r=function(e,t,a,n){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);const r=Math.max(...t);if(null!=n&&-1!==n&&r>=n)throw new Error(`Max index must be < array size (${r} vs. ${n})`);const s=new _e([],a,e.dtype,n),p=(0,S.unstack)(e,0);return t.forEach(((e,t)=>{s.setItem(e,p[t])})),s}(A("tensor",e,t,a),n,A("elementShape",e,t,a),A("numElements",e,t,a));return a.addTensorList(r),[r.idTensor]}case"TensorListReserve":case"EmptyTensorList":{const n=A("elementShape",e,t,a),r=A("elementDType",e,t,a);let s;s="TensorListReserve"===e.op?"numElements":"maxNumElements";const p=A(s,e,t,a),i=function(e,t,a,n){return new _e([],e,t,n)}(n,r,0,"TensorListReserve"===e.op?-1:p);return a.addTensorList(i),[i.idTensor]}case"TensorListGather":{const n=A("tensorListId",e,t,a),r=A("indices",e,t,a),s=A("elementShape",e,t,a),p=A("elementDType",e,t,a);return[a.getTensorList(n.id).gather(r,p,s)]}case"TensorListStack":{const n=A("tensorListId",e,t,a),r=A("elementShape",e,t,a),s=A("elementDType",e,t,a),p=A("numElements",e,t,a);return[a.getTensorList(n.id).stack(r,s,p)]}case"TensorListFromTensor":{const n=function(e,t,a){const n=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==a)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${a}`);be(e.shape.slice(1),t,"TensorList shape mismatch: ");const r=(0,S.unstack)(e);return new _e(r,t,n)}(A("tensor",e,t,a),A("elementShape",e,t,a),A("elementDType",e,t,a));return a.addTensorList(n),[n.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{const n=A("tensorListId",e,t,a),r=a.getTensorList(n.id),s=A("dtype",e,t,a),p=A("elementShape",e,t,a);return[r.concat(s,p)]}case"TensorListPushBack":{const n=A("tensorListId",e,t,a),r=A("tensor",e,t,a),s=a.getTensorList(n.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{const n=A("tensorListId",e,t,a),r=A("elementShape",e,t,a),s=A("elementDType",e,t,a);return[a.getTensorList(n.id).popBack(r,s)]}case"TensorListSplit":{const n=A("tensor",e,t,a),r=A("elementShape",e,t,a),s=function(e,t,a){let n=0;const r=t.map((e=>(n+=e,n)));if(n!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${e.shape}`);const s=ke(e.shape.slice(1),a),p=0===n?0:e.size/n,i=(0,S.tidy)((()=>{const a=[];e=(0,S.reshape)(e,[1,n,p]);for(let n=0;ne.dispose())),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return Ee.i(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);const a=await e.data();return this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),(0,S.tidy)((()=>{const e=(0,S.unstack)(t),n=a.length,r=e.length;S.util.assert(n===r,(()=>`The number of elements doesn't match, keys has ${n} elements, the values has ${r} elements.`));for(let t=0;t{const e=[];for(let n=0;n{switch(e.category){case"arithmetic":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[n.add(A("a",e,t,a),A("b",e,t,a))];case"AddN":return[n.addN(A("tensors",e,t,a))];case"FloorMod":case"Mod":return[n.mod(A("a",e,t,a),A("b",e,t,a))];case"Mul":return[n.mul(A("a",e,t,a),A("b",e,t,a))];case"RealDiv":case"Div":return[n.div(A("a",e,t,a),A("b",e,t,a))];case"DivNoNan":return[n.divNoNan(A("a",e,t,a),A("b",e,t,a))];case"FloorDiv":return[n.floorDiv(A("a",e,t,a),A("b",e,t,a))];case"Sub":return[n.sub(A("a",e,t,a),A("b",e,t,a))];case"Minimum":return[n.minimum(A("a",e,t,a),A("b",e,t,a))];case"Maximum":return[n.maximum(A("a",e,t,a),A("b",e,t,a))];case"Pow":return[n.pow(A("a",e,t,a),A("b",e,t,a))];case"SquaredDifference":return[n.squaredDifference(A("a",e,t,a),A("b",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"basic_math":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"Abs":case"ComplexAbs":return[n.abs(A("x",e,t,a))];case"Acos":return[n.acos(A("x",e,t,a))];case"Acosh":return[n.acosh(A("x",e,t,a))];case"Asin":return[n.asin(A("x",e,t,a))];case"Asinh":return[n.asinh(A("x",e,t,a))];case"Atan":return[n.atan(A("x",e,t,a))];case"Atan2":return[n.atan2(A("x",e,t,a),A("y",e,t,a))];case"Atanh":return[n.atanh(A("x",e,t,a))];case"Ceil":return[n.ceil(A("x",e,t,a))];case"Complex":return[n.complex(A("real",e,t,a),A("imag",e,t,a))];case"Cos":return[n.cos(A("x",e,t,a))];case"Cosh":return[n.cosh(A("x",e,t,a))];case"Elu":return[n.elu(A("x",e,t,a))];case"Erf":return[n.erf(A("x",e,t,a))];case"Exp":return[n.exp(A("x",e,t,a))];case"Expm1":return[n.expm1(A("x",e,t,a))];case"Floor":return[n.floor(A("x",e,t,a))];case"Log":return[n.log(A("x",e,t,a))];case"Log1p":return[n.log1p(A("x",e,t,a))];case"Imag":return[n.imag(A("x",e,t,a))];case"Neg":return[n.neg(A("x",e,t,a))];case"Reciprocal":return[n.reciprocal(A("x",e,t,a))];case"Real":return[n.real(A("x",e,t,a))];case"Relu":return[n.relu(A("x",e,t,a))];case"Round":return[n.round(A("x",e,t,a))];case"Selu":return[n.selu(A("x",e,t,a))];case"Sigmoid":return[n.sigmoid(A("x",e,t,a))];case"Sin":return[n.sin(A("x",e,t,a))];case"Sign":return[n.sign(A("x",e,t,a))];case"Sinh":return[n.sinh(A("x",e,t,a))];case"Softplus":return[n.softplus(A("x",e,t,a))];case"Sqrt":return[n.sqrt(A("x",e,t,a))];case"Square":return[n.square(A("x",e,t,a))];case"Tanh":return[n.tanh(A("x",e,t,a))];case"Tan":return[n.tan(A("x",e,t,a))];case"ClipByValue":return[n.clipByValue(A("x",e,t,a),A("clipValueMin",e,t,a),A("clipValueMax",e,t,a))];case"Relu6":return[n.relu6(A("x",e,t,a))];case"Rsqrt":return[n.rsqrt(V(e.inputNames[0],t,a))];case"Prod":return[n.prod(A("x",e,t,a),A("axes",e,t,a))];case"LeakyRelu":return[n.leakyRelu(A("x",e,t,a),A("alpha",e,t,a))];case"Prelu":return[n.prelu(A("x",e,t,a),A("alpha",e,t,a))];case"IsNan":return[n.isNaN(V(e.inputNames[0],t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"control":return Te(e,t,a);case"convolution":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"Conv1D":{const r=A("stride",e,t,a),s=A("pad",e,t,a),p=A("dataFormat",e,t,a).toUpperCase(),i=A("dilation",e,t,a);return[n.conv1d(A("x",e,t,a),A("filter",e,t,a),r,s,p,i)]}case"Conv2D":{const r=A("strides",e,t,a),s=O(e,t,a),p=A("dataFormat",e,t,a).toUpperCase(),i=A("dilations",e,t,a);return[n.conv2d(A("x",e,t,a),A("filter",e,t,a),[r[1],r[2]],s,p,[i[1],i[2]])]}case"_FusedConv2D":{const{stride:r,pad:s,dataFormat:p,dilations:i,biasArg:o,preluArg:d,activationFunc:l,leakyreluAlpha:m}=xe(e,t,a);return[n.fused.conv2d({x:A("x",e,t,a),filter:A("filter",e,t,a),strides:[r[1],r[2]],pad:s,dataFormat:p,dilations:[i[1],i[2]],bias:o,activation:l,preluActivationWeights:d,leakyreluAlpha:m})]}case"FusedDepthwiseConv2dNative":{const{stride:r,pad:s,dataFormat:p,dilations:i,biasArg:o,preluArg:d,activationFunc:l,leakyreluAlpha:m}=xe(e,t,a);return[n.fused.depthwiseConv2d({x:A("x",e,t,a),filter:A("filter",e,t,a),strides:[r[1],r[2]],pad:s,dataFormat:p,dilations:[i[1],i[2]],bias:o,activation:l,preluActivationWeights:d,leakyreluAlpha:m})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{const r=A("outputShape",e,t,a),s=A("strides",e,t,a),p=O(e,t,a);return[n.conv2dTranspose(A("x",e,t,a),A("filter",e,t,a),r,[s[1],s[2]],p)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const r=A("strides",e,t,a),s=O(e,t,a),p=A("dilations",e,t,a),i=A("dataFormat",e,t,a).toUpperCase();return[n.depthwiseConv2d(A("input",e,t,a),A("filter",e,t,a),[r[1],r[2]],s,i,[p[1],p[2]])]}case"Conv3D":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("dataFormat",e,t,a).toUpperCase(),i=A("dilations",e,t,a);return[n.conv3d(A("x",e,t,a),A("filter",e,t,a),[r[1],r[2],r[3]],s,p,[i[1],i[2],i[3]])]}case"AvgPool":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("kernelSize",e,t,a);return[n.avgPool(A("x",e,t,a),[p[1],p[2]],[r[1],r[2]],s)]}case"MaxPool":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("kernelSize",e,t,a);return[n.maxPool(A("x",e,t,a),[p[1],p[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("kernelSize",e,t,a),i=A("includeBatchInIndex",e,t,a),{result:o,indexes:d}=n.maxPoolWithArgmax(A("x",e,t,a),[p[1],p[2]],[r[1],r[2]],s,i);return[o,d]}case"AvgPool3D":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("kernelSize",e,t,a);return[n.avgPool3d(A("x",e,t,a),[p[1],p[2],p[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("kernelSize",e,t,a);return[n.maxPool3d(A("x",e,t,a),[p[1],p[2],p[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{const r=A("strides",e,t,a),s=A("pad",e,t,a),p=A("dilations",e,t,a),i=r[1],o=r[2],d=p[1],l=p[2];return[n.dilation2d(A("x",e,t,a),A("filter",e,t,a),[i,o],s,[d,l],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"creation":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"Fill":{const r=A("shape",e,t,a),s=A("dtype",e,t,a),p=A("value",e,t,a);return[n.fill(r,p,s)]}case"LinSpace":{const r=A("start",e,t,a),s=A("stop",e,t,a),p=A("num",e,t,a);return[n.linspace(r,s,p)]}case"Multinomial":{const r=A("logits",e,t,a),s=A("numSamples",e,t,a),p=A("seed",e,t,a);return[n.multinomial(r,s,p)]}case"OneHot":{const r=A("indices",e,t,a),s=A("depth",e,t,a),p=A("onValue",e,t,a),i=A("offValue",e,t,a),o=A("dtype",e,t,a);return[n.oneHot(r,s,p,i,o)]}case"Ones":return[n.ones(A("shape",e,t,a),A("dtype",e,t,a))];case"OnesLike":return[n.onesLike(A("x",e,t,a))];case"RandomStandardNormal":return[n.randomStandardNormal(A("shape",e,t,a),A("dtype",e,t,a),A("seed",e,t,a))];case"RandomUniform":return[n.randomUniform(A("shape",e,t,a),A("minval",e,t,a),A("maxval",e,t,a),A("dtype",e,t,a))];case"Range":{const r=A("start",e,t,a),s=A("stop",e,t,a),p=A("step",e,t,a);return[n.range(r,s,p,A("dtype",e,t,a))]}case"TruncatedNormal":{const r=A("shape",e,t,a),s=A("mean",e,t,a),p=A("stdDev",e,t,a),i=A("seed",e,t,a);return[n.truncatedNormal(r,s,p,A("dtype",e,t,a),i)]}case"Zeros":return[n.zeros(A("shape",e,t,a),A("dtype",e,t,a))];case"ZerosLike":return[n.zerosLike(A("x",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"dynamic":return(async(e,t,a,n,r=k)=>{switch(e.op){case"NonMaxSuppressionV5":{const{boxes:n,scores:s,maxOutputSize:p,iouThreshold:i,scoreThreshold:o,softNmsSigma:d}=Ie(e,t,a),l=await r.image.nonMaxSuppressionWithScoreAsync(n,s,p,i,o,d);return[l.selectedIndices,l.selectedScores]}case"NonMaxSuppressionV4":{const{boxes:n,scores:s,maxOutputSize:p,iouThreshold:i,scoreThreshold:o}=Ie(e,t,a),d=A("padToMaxOutputSize",e,t,a),l=await r.image.nonMaxSuppressionPaddedAsync(n,s,p,i,o,d);return[l.selectedIndices,l.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{const{boxes:n,scores:s,maxOutputSize:p,iouThreshold:i,scoreThreshold:o}=Ie(e,t,a);return[await r.image.nonMaxSuppressionAsync(n,s,p,i,o)]}case"Where":{const n=r.cast(A("condition",e,t,a),"bool"),s=[await r.whereAsync(n)];return n.dispose(),s}case"ListDiff":return r.setdiff1dAsync(A("x",e,t,a),A("y",e,t,a));default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a);case"evaluation":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"LowerBound":{const r=A("sortedSequence",e,t,a),s=A("values",e,t,a);return[n.lowerBound(r,s)]}case"TopKV2":{const r=A("x",e,t,a),s=A("k",e,t,a),p=A("sorted",e,t,a),i=n.topk(r,s,p);return[i.values,i.indices]}case"UpperBound":{const r=A("sortedSequence",e,t,a),s=A("values",e,t,a);return[n.upperBound(r,s)]}case"Unique":{const r=A("x",e,t,a),s=n.unique(r);return[s.values,s.indices]}case"UniqueV2":{const r=A("x",e,t,a),s=A("axis",e,t,a),p=n.unique(r,s);return[p.values,p.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"image":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"ResizeBilinear":{const r=A("images",e,t,a),s=A("size",e,t,a),p=A("alignCorners",e,t,a),i=A("halfPixelCenters",e,t,a);return[n.image.resizeBilinear(r,[s[0],s[1]],p,i)]}case"ResizeNearestNeighbor":{const r=A("images",e,t,a),s=A("size",e,t,a),p=A("alignCorners",e,t,a),i=A("halfPixelCenters",e,t,a);return[n.image.resizeNearestNeighbor(r,[s[0],s[1]],p,i)]}case"CropAndResize":{const r=A("image",e,t,a),s=A("boxes",e,t,a),p=A("boxInd",e,t,a),i=A("cropSize",e,t,a),o=A("method",e,t,a),d=A("extrapolationValue",e,t,a);return[n.image.cropAndResize(r,s,p,i,o,d)]}case"ImageProjectiveTransformV3":{const r=A("images",e,t,a),s=A("transforms",e,t,a),p=A("outputShape",e,t,a),i=A("fillValue",e,t,a),o=A("interpolation",e,t,a),d=A("fillMode",e,t,a);return[n.image.transform(r,s,o.toLowerCase(),d.toLowerCase(),i,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"graph":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const r=A("default",e,t,a);return[V(e.name,t,a)||r];case"Placeholder":return[V(e.name,t,a)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":case"Snapshot":return[$(A("x",e,t,a))];case"IdentityN":return A("x",e,t,a).map((e=>$(e)));case"Shape":return[n.tensor1d(A("x",e,t,a).shape,"int32")];case"ShapeN":return A("x",e,t,a).map((e=>n.tensor1d(e.shape)));case"Size":return[n.scalar(A("x",e,t,a).size,"int32")];case"Rank":return[n.scalar(A("x",e,t,a).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":const s=A("x",e,t,a),p=A("data",e,t,a),i=A("message",e,t,a),o=A("summarize",e,t,a);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(i);for(let e=0;e((e,t,a,n=k)=>{switch(e.op){case"Equal":return[n.equal(A("a",e,t,a),A("b",e,t,a))];case"NotEqual":return[n.notEqual(A("a",e,t,a),A("b",e,t,a))];case"Greater":return[n.greater(A("a",e,t,a),A("b",e,t,a))];case"GreaterEqual":return[n.greaterEqual(A("a",e,t,a),A("b",e,t,a))];case"Less":return[n.less(A("a",e,t,a),A("b",e,t,a))];case"LessEqual":return[n.lessEqual(A("a",e,t,a),A("b",e,t,a))];case"LogicalAnd":return[n.logicalAnd(A("a",e,t,a),A("b",e,t,a))];case"LogicalNot":return[n.logicalNot(A("a",e,t,a))];case"LogicalOr":return[n.logicalOr(A("a",e,t,a),A("b",e,t,a))];case"Select":case"SelectV2":return[n.where(A("condition",e,t,a),A("a",e,t,a),A("b",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"matrices":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul(A("a",e,t,a),A("b",e,t,a),A("transposeA",e,t,a),A("transposeB",e,t,a))];case"Einsum":return[n.einsum(A("equation",e,t,a),...A("tensors",e,t,a))];case"Transpose":return[n.transpose(A("x",e,t,a),A("perm",e,t,a))];case"_FusedMatMul":const[r,s]=A("fusedOps",e,t,a),p="biasadd"===r,i="prelu"===s,o=A("numArgs",e,t,a),d=A("leakyreluAlpha",e,t,a);if(p){if(i&&2!==o)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&1!==o)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}const[l,m]=A("args",e,t,a);return[n.fused.matMul({a:A("a",e,t,a),b:A("b",e,t,a),transposeA:A("transposeA",e,t,a),transposeB:A("transposeB",e,t,a),bias:l,activation:s,preluActivationWeights:m,leakyreluAlpha:d})];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"normalization":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"EuclideanNorm":return[n.euclideanNorm(A("x",e,t,a),A("axis",e,t,a),A("keepDims",e,t,a))];case"FusedBatchNorm":case"FusedBatchNormV2":case"FusedBatchNormV3":return[n.batchNorm(A("x",e,t,a),A("mean",e,t,a),A("variance",e,t,a),A("offset",e,t,a),A("scale",e,t,a),A("epsilon",e,t,a))];case"LRN":return[n.localResponseNormalization(A("x",e,t,a),A("radius",e,t,a),A("bias",e,t,a),A("alpha",e,t,a),A("beta",e,t,a))];case"Softmax":return[n.softmax(A("x",e,t,a))];case"LogSoftmax":return[n.logSoftmax(A("x",e,t,a))];case"SparseToDense":return[n.sparseToDense(A("sparseIndices",e,t,a),A("outputShape",e,t,a),A("sparseValues",e,t,a),A("defaultValue",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"reduction":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"Max":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.max(A("x",e,t,a),r,s)]}case"Mean":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.mean(A("x",e,t,a),r,s)]}case"Min":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.min(A("x",e,t,a),r,s)]}case"Sum":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.sum(A("x",e,t,a),r,s)]}case"All":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.all(A("x",e,t,a),r,s)]}case"Any":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.any(A("x",e,t,a),r,s)]}case"ArgMax":{const r=A("axis",e,t,a);return[n.argMax(A("x",e,t,a),r)]}case"ArgMin":{const r=A("axis",e,t,a);return[n.argMin(A("x",e,t,a),r)]}case"Prod":{const r=A("axis",e,t,a),s=A("keepDims",e,t,a);return[n.prod(A("x",e,t,a),r,s)]}case"Cumprod":{const r=A("axis",e,t,a),s=A("exclusive",e,t,a),p=A("reverse",e,t,a);return[n.cumprod(A("x",e,t,a),r,s,p)]}case"Cumsum":{const r=A("axis",e,t,a),s=A("exclusive",e,t,a),p=A("reverse",e,t,a);return[n.cumsum(A("x",e,t,a),r,s,p)]}case"Bincount":const r=A("x",e,t,a),s=A("weights",e,t,a),p=A("size",e,t,a);return[n.bincount(r,s,p)];case"DenseBincount":{const r=A("x",e,t,a),s=A("weights",e,t,a),p=A("size",e,t,a),i=A("binaryOutput",e,t,a);return[n.denseBincount(r,s,p,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"slice_join":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"ConcatV2":case"Concat":{const r=A("n",e,t,a),s=A("axis",e,t,a);let p=A("tensors",e,t,a);return p=p.slice(0,r),[n.concat(p,s)]}case"Gather":{const r=A("x",e,t,a),s=A("indices",e,t,a);return[n.gather(r,n.cast(s,"int32"),0)]}case"GatherV2":{const r=A("axis",e,t,a),s=A("batchDims",e,t,a),p=A("x",e,t,a),i=A("indices",e,t,a);return[n.gather(p,n.cast(i,"int32"),r,s)]}case"Reverse":{const r=A("dims",e,t,a),s=[];for(let e=0;e{const r=A("axis",e,t,a),s=A("tensors",e,t,a),p=s[0].shape,i=n.squeeze(s[0]).shape,o=s.map((e=>{const t=S.util.arraysEqual(e.shape,p);if(!t&&!S.util.arraysEqual(n.squeeze(e).shape,i))throw new Error("the input tensors shape does not match");return t?e:n.reshape(e,p)}));return[n.stack(o,r)]}));case"Unpack":{const r=A("axis",e,t,a),s=A("tensor",e,t,a);return n.unstack(s,r)}case"Tile":{const r=A("reps",e,t,a);return[n.tile(A("x",e,t,a),r)]}case"Split":case"SplitV":{const r=A("axis",e,t,a),s=A("numOrSizeSplits",e,t,a),p=A("x",e,t,a);return n.split(p,s,r)}case"ScatterNd":{const r=A("indices",e,t,a),s=A("values",e,t,a),p=A("shape",e,t,a);return[n.scatterND(r,s,p)]}case"GatherNd":{const r=A("x",e,t,a),s=A("indices",e,t,a);return[n.gatherND(r,s)]}case"SparseToDense":{const r=A("sparseIndices",e,t,a),s=A("outputShape",e,t,a),p=A("sparseValues",e,t,a),i=A("defaultValue",e,t,a);return[n.sparseToDense(r,p,s,p.dtype===i.dtype?i:n.cast(i,p.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"sparse":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"SparseFillEmptyRows":{const{outputIndices:r,outputValues:s,emptyRowIndicator:p,reverseIndexMap:i}=n.sparse.sparseFillEmptyRows(A("indices",e,t,a),A("values",e,t,a),A("denseShape",e,t,a),A("defaultValue",e,t,a));return[r,s,p,i]}case"SparseReshape":{const{outputIndices:r,outputShape:s}=n.sparse.sparseReshape(A("inputIndices",e,t,a),A("inputShape",e,t,a),A("newShape",e,t,a));return[r,s]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean(A("data",e,t,a),A("indices",e,t,a),A("segmentIds",e,t,a))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum(A("data",e,t,a),A("indices",e,t,a),A("segmentIds",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"spectral":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"FFT":return[n.fft(A("x",e,t,a))];case"IFFT":return[n.ifft(A("x",e,t,a))];case"RFFT":return[n.rfft(A("x",e,t,a))];case"IRFFT":return[n.irfft(A("x",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"string":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"StringNGrams":{const{nGrams:r,nGramsSplits:s}=n.string.stringNGrams(A("data",e,t,a),A("dataSplits",e,t,a),A("separator",e,t,a),A("nGramWidths",e,t,a),A("leftPad",e,t,a),A("rightPad",e,t,a),A("padWidth",e,t,a),A("preserveShortSequences",e,t,a));return[r,s]}case"StringSplit":{const{indices:r,values:s,shape:p}=n.string.stringSplit(A("input",e,t,a),A("delimiter",e,t,a),A("skipEmpty",e,t,a));return[r,s,p]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast(A("input",e,t,a),A("numBuckets",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"transformation":return r((()=>((e,t,a,n=k)=>{switch(e.op){case"Cast":return[n.cast(A("x",e,t,a),A("dtype",e,t,a))];case"ExpandDims":{const r=A("axis",e,t,a);return[n.expandDims(A("x",e,t,a),r)]}case"Squeeze":{const r=A("axis",e,t,a);return[n.squeeze(A("x",e,t,a),r)]}case"Reshape":return[n.reshape(A("x",e,t,a),A("shape",e,t,a))];case"MirrorPad":return[n.mirrorPad(A("x",e,t,a),A("padding",e,t,a),A("mode",e,t,a))];case"PadV2":case"Pad":return[n.pad(A("x",e,t,a),A("padding",e,t,a),A("constantValue",e,t,a))];case"SpaceToBatchND":{const r=A("blockShape",e,t,a),s=A("paddings",e,t,a);return[n.spaceToBatchND(A("x",e,t,a),r,s)]}case"BatchToSpaceND":{const r=A("blockShape",e,t,a),s=A("crops",e,t,a);return[n.batchToSpaceND(A("x",e,t,a),r,s)]}case"DepthToSpace":{const r=A("blockSize",e,t,a),s=A("dataFormat",e,t,a).toUpperCase();return[n.depthToSpace(A("x",e,t,a),r,s)]}case"BroadcastTo":return[n.broadcastTo(A("x",e,t,a),A("shape",e,t,a))];case"BroadcastArgs":return[n.broadcastArgs(A("s0",e,t,a),A("s1",e,t,a))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a)));case"hash_table":return(async(e,t,a,n)=>{switch(e.op){case"HashTable":case"HashTableV2":{const r=A("keyDType",e,t,a),s=A("valueDType",e,t,a),p=new De(r,s);return n.addHashTable(e.name,p),[p.handle]}case"LookupTableImport":case"LookupTableImportV2":{const r=A("tableHandle",e,t,a,n),s=A("keys",e,t,a),p=A("values",e,t,a),i=n.getHashTableById(r.id);return[await i.import(s,p)]}case"LookupTableFind":case"LookupTableFindV2":{const r=A("tableHandle",e,t,a,n),s=A("keys",e,t,a),p=A("defaultValue",e,t,a),i=n.getHashTableById(r.id);return[await i.find(s,p)]}case"LookupTableSize":case"LookupTableSizeV2":{const r=A("tableHandle",e,t,a,n);return[n.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,a,n);case"custom":const s=E(e.op);if(s&&s.customExecutor)return s.customExecutor(new ye(e,t,a));throw TypeError(`Custom op ${e.op} is not registered.`);default:throw TypeError(`Unknown op '${e.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,a);return S.util.isPromise(s)?s.then((e=>[].concat(e))):[].concat(s)}class Ve{constructor(e={},t={},a={},n={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=a,this.functionMap=n,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){const e=[];for(let t=0;t0===e.id&&0===e.iterationId?"":`${e.frameName}-${e.iterationId}`)).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(!(this.contexts&&this.contexts.length>1))throw new Error("Cannot exit frame, the context is empty");this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift()}nextIteration(){if(!(this.contexts&&this.contexts.length>0))throw new Error("Cannot increase frame iteration, the context is empty");{this.contexts=this.contexts.slice(),this.lastId++;const e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(const t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(const t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}}function Me(e,t,a,n){const r=new Set,s=[];let p=null,i=null;const o=new Set,d=Object.keys(e).map((e=>B(e)[0]));let l=[];null!=n&&(l=n.map((e=>B(e.name)[0])));const m=[...t];for(;m.length>0;){const e=m.pop();($e(e)||Ce(e)||Re(e))&&null==p&&(p=e,i=p.children.map((e=>e.name)).filter((e=>r.has(e)))),r.add(e.name),null==a[e.name]&&(-1===d.indexOf(e.name)&&-1===l.indexOf(e.name)&&(0!==e.inputs.length?e.inputs.forEach((e=>{o.has(e.name)||(o.add(e.name),m.push(e))})):s.push(e.name)))}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:p,syncInputs:i}}const Fe=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],Be=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],Oe=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function $e(e){return Fe.indexOf(e.op)>=0}function Ce(e){return Be.indexOf(e.op)>=0}function Re(e){return Oe.indexOf(e.op)>=0}class Pe{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,null!=e.functions&&Object.keys(e.functions).forEach((t=>{this._functionExecutorMap[t]=new Pe(e.functions[t],this)}))}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){const t=Object.keys(e).map((t=>e[t].map((e=>e.id))));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get outputs(){return this._outputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get inputNodes(){return this._inputs.map((e=>e.signatureKey||e.name))}get outputNodes(){return this._outputs.map((e=>{const t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t}))}get functions(){return Object.keys(this._functions).reduce(((e,t)=>(e[t]=this._functions[t].signature,e)),{})}getCompilationKey(e,t){const a=e.map((e=>e.name)).sort(),n=t.map((e=>e.name)).sort();return a.join(this.SEPERATOR)+"--"+n.join(this.SEPERATOR)}compile(e,t){const a=Me(e,t,this.weightMap,this._initNodes),{missingInputs:n,dynamicNode:r,syncInputs:s}=a;if(null!=r)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(n.length>0){const a=t.map((e=>e.name)),r=Object.keys(e);throw new Error(`Cannot compute the outputs [${a}] from the provided inputs [${r}]. Missing the following inputs: [${n}]`)}return function(e,t,a){const{usedNodes:n,inputs:r}=a,s=[],p=Object.keys(r).map((e=>B(e)[0])).map((t=>e.nodes[t])),i=e.initNodes;p.forEach((e=>{n.has(e.name)&&s.push(e)})),e.weights.forEach((e=>{n.has(e.name)&&s.push(e)})),null!=i&&i.forEach((e=>{n.has(e.name)&&s.push(e)}));const o=new Set,d=[];for(;s.length>0;){const e=s.pop();o.add(e.name),t[e.name]||d.push(e),e.children.forEach((e=>{!o.has(e.name)&&n.has(e.name)&&e.inputs.every((e=>o.has(e.name)))&&s.push(e)}))}return d}(this.graph,this.weightMap,a)}execute(e,t){e=this.mapInputs(e);const a=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);const n=a.map((e=>this.graph.nodes[B(e)[0]])),r=t.map((e=>B(e)[0]));let s=r.map((e=>this.graph.nodes[e]));this.resetIntermediateTensors(),0===s.length&&(s=this._outputs);const p=this.getCompilationKey(n,s);let i=this.compiledMap.get(p);null==i&&(i=this.compile(e,s),this.compiledMap.set(p,i));const o={},d={};return(0,S.tidy)((()=>{const a=new Ve(this.weightMap,o,d,this.functionExecutorMap),n=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[a,r]=B(t),s=[];s[r]=e[t],n[a]=s}));const s=this.getFrozenTensorIds(n),p={};for(let e=0;eV(e,n,a)))}))}getFrozenTensorIds(e){const t=[].concat.apply([],Object.keys(e).map((t=>e[t])).map((e=>e.map((e=>e.id)))));return new Set(t)}checkTensorForDisposal(e,t,a,n,r,s,p){"control"!==t.category&&-1===s.indexOf(e)&&(a[e].forEach((e=>{null!=e&&(p[e.id]=(p[e.id]||0)+t.children.length)})),t.inputs.forEach((e=>{if("control"!==e.category){const s=function(e,t,a){return t[F(e,a.currentContextId)]}(e.name,a,n);null!=s&&s.forEach((e=>{if(e&&!e.kept&&!r.has(e.id)){const a=p[e.id];if(1===a){if(this.keepTensorForDebug){const[a,r]=M(t.name,n);this.intermediateTensors[a]||(this.intermediateTensors[a]=[]),this.intermediateTensors[a][r]=e}else e.dispose();delete p[e.id]}else null!=a&&p[e.id]--}}))}})))}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){this.intermediateTensors&&(Object.keys(this.intermediateTensors).forEach((e=>this.intermediateTensors[e].forEach((e=>e.dispose())))),this.disposeTensorsMap())}disposeTensorsMap(){this.tensorsMap&&Object.keys(this.tensorsMap).forEach((e=>{this.tensorsMap[e].forEach((e=>{!e||e.kept||e.isDisposed||this.keepIds.has(e.id)||e.dispose()}))}))}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(const e in this.intermediateTensors)this.intermediateTensors[e].forEach((e=>e.dispose())),delete this.intermediateTensors[e]}async _executeAsync(e,t,a=!1,n={},r={}){a||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepTensorForDebug=(0,S.env)().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(e){console.warn(e.message)}this.resetIntermediateTensors();const s=new Ve(this.weightMap,n,r,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(e,s,t,a);const p=t.map((e=>V(e,this.tensorsMap,s))),i=p.map((e=>e.id)),o=Object.keys(e).map((t=>e[t].id));return this.keepIds=new Set([...i,...o,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),null==this.parent&&s.dispose(this.keepIds),p}async executeFunctionAsync(e,t,a){const n=e.reduce(((e,t,a)=>(e[this.inputs[a].name]=t,e)),{});return this._executeAsync(n,this.outputNodes,!0,t,a)}async executeWithControlFlow(e,t,a,n){const r=Object.keys(e),s=r.map((e=>this.graph.nodes[B(e)[0]])),p=a.map((e=>B(e)[0]));let i=p.map((e=>this.graph.nodes[e]));0===i.length&&(i=this._outputs);const{usedNodes:o,missingInputs:d,dynamicNode:l,syncInputs:m}=Me(e,i,this.weightMap,this._initNodes),u=[...s,...this.graph.weights,...this._initNodes||[]].map((e=>({node:e,contexts:t.currentContext}))),c=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[a,n]=B(t),r=[];r[n]=e[t],c[a]=r}));const h={},f=this.getFrozenTensorIds(c),g={};for(;u.length>0;){const e=this.processStack(s,u,t,c,g,f,p,h,o);await Promise.all(e)}null!=l||n||console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");const y=i.filter((e=>!$e(e)&&!V(e.name,c,t))).map((e=>e.name));if(y.length>0){let e="";throw null!=l&&(e=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${d}]. ${e}`)}return c}processStack(e,t,a,n,r,s,p,i,o){const d=[];for(;t.length>0;){const e=t.pop();a.currentContext=e.contexts;let l="";if("Enter"===e.node.op&&A("isConstant",e.node,n,a)&&([l]=M(e.node.name,a)),null==n[e.node.name]){const m=Ae(e.node,n,a,this._resourceManager);l||([l]=M(e.node.name,a));const u=a.currentContext;S.util.isPromise(m)?d.push(m.then((d=>(n[l]=d,a.currentContext=u,this.checkTensorForDisposal(l,e.node,n,a,s,p,i),this.processChildNodes(e.node,t,a,n,r,o),d)))):(n[l]=m,this.checkTensorForDisposal(l,e.node,n,a,s,p,i),this.processChildNodes(e.node,t,a,n,r,o))}else this.processChildNodes(e.node,t,a,n,r,o)}return d}processChildNodes(e,t,a,n,r,s){e.children.forEach((e=>{const[p]=M(e.name,a);!r[p]&&s.has(e.name)&&("Merge"===e.op?e.inputNames.some((e=>!!V(e,n,a)))&&(r[p]=!0,t.push({contexts:a.currentContext,node:e})):e.inputNames.every((e=>!!V(e,n,a)))&&(r[p]=!0,t.push({contexts:a.currentContext,node:e})))}))}dispose(){Object.keys(this.weightMap).forEach((e=>this.weightMap[e].forEach((e=>e.dispose()))))}checkInputShapeAndType(e){Object.keys(e).forEach((t=>{const a=e[t],[n]=B(t),r=this.graph.nodes[n];if(r.attrParams.shape&&r.attrParams.shape.value){const e=r.attrParams.shape.value,t=e.length===a.shape.length&&a.shape.every(((t,a)=>-1===e[a]||e[a]===t));S.util.assert(t,(()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${e}], but was [${a.shape}]`))}r.attrParams.dtype&&r.attrParams.dtype.value&&S.util.assert(a.dtype===r.attrParams.dtype.value,(()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${a.dtype}`))}))}mapInputs(e){const t={};for(const a in e)if(null!=this._signature&&null!=this._signature.inputs&&null!=this._signature.inputs[a]){t[this._signature.inputs[a].name]=e[a]}else t[a]=e[a];return t}checkInputs(e){const t=Object.keys(e).filter((e=>{const[t]=B(e);return null==this.graph.nodes[t]}));if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map((e=>{if(null!=this._signature&&null!=this._signature.outputs&&null!=this._signature.outputs[e]){return this._signature.outputs[e].name}return e}),{})}checkOutputs(e){e.forEach((e=>{const[t]=B(e);if(!this.graph.nodes[t])throw new Error(`The output '${e}' is not found in the graph`)}))}}class ze{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(const e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(const e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}}class Le{constructor(e,t={},a=S.io){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=a,null==t&&(this.loadOptions={}),this.resourceManager=new ze}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){const e=this.modelUrl;if(null!=e.load)this.handler=e;else if(null!=this.loadOptions.requestInit)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{const t=this.io.getLoadHandlers(e,this.loadOptions);if(0===t.length)t.push(this.io.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}load(){if(this.findIOHandler(),null==this.handler.load)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const e=this.handler.load();return S.util.isPromise(e)?e.then((e=>this.loadSync(e))):this.loadSync(e)}loadSync(e){this.artifacts=e;const t=this.artifacts.modelTopology;let a=this.artifacts.signature;if(null!=this.artifacts.userDefinedMetadata){const e=this.artifacts.userDefinedMetadata;null!=e.signature&&(a=e.signature),null!=e.structuredOutputKeys&&(this.structuredOutputKeys=e.structuredOutputKeys)}this.signature=a,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;const n=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Pe(ae.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(n),this.executor.resourceManager=this.resourceManager,null!=e.modelInitializer&&null!=e.modelInitializer.node){const t=ae.Instance.transformGraph(e.modelInitializer);this.initializer=new Pe(t),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if("string"==typeof e){const t=this.io.getSaveHandlers(e);if(0===t.length)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Error(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){const a=this.execute(e,this.outputNodes);if(this.structuredOutputKeys){const e=a instanceof S.Tensor?[a]:a,t={};return e.forEach(((e,a)=>t[this.structuredOutputKeys[a]]=e)),t}return a}normalizeInputs(e){if(!(e instanceof S.Tensor||Array.isArray(e)))return e;if((e=Array.isArray(e)?e:[e]).length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce(((t,a,n)=>(t[a]=e[n],t)),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const a=this.executor.execute(e,t);return a.length>1?a:a[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const a=await this.executor.executeAsync(e,t);return a.length>1?a:a[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce(((t,a)=>(t[a]=[e[a]],t)),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}}async function We(e,t={},a=S.io){if(null==e)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");null==t&&(t={}),t.fromTFHub&&"string"==typeof e&&(e=function(e){e.endsWith("/")||(e+="/");return`${e}model.json?tfjs-format=file`}(e));const n=new Le(e,t,a);return await n.load(),n}function Ue(e){if(null==e)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){const[a,n]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!(n&&n instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");const r=S.io.getWeightSpecs(a.weightsManifest),s=S.io.getModelArtifactsForJSONSync(a,r,n);t=S.io.fromMemorySync(s)}else if("load"in e)t=e;else{if(!("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e))throw new Error("Unknown model format");t=S.io.fromMemorySync(e)}const a=new Le(t);return a.load(),a}const He="3.21.0"},8713:(e,t,a)=>{"use strict";a.d(t,{JL:()=>n,Zu:()=>r});class n{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}}class r{refCount(e){return s("refCount")}incRef(e){return s("incRef")}timerAvailable(){return!0}time(e){return s("time")}read(e){return s("read")}readSync(e){return s("readSync")}readToGPU(e,t){return s("readToGPU")}numDataIds(){return s("numDataIds")}disposeData(e,t){return s("disposeData")}write(e,t,a){return s("write")}move(e,t,a,n,r){return s("move")}memory(){return s("memory")}floatPrecision(){return s("floatPrecision")}epsilon(){return 32===this.floatPrecision()?1e-7:1e-4}dispose(){return s("dispose")}}function s(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`)}},3337:(e,t,a)=>{"use strict";function n(e,t,a){const n=function(e,t,a){return function(e,t,a){let n=0,r=e.length,s=0,p=!1;for(;n>>1);const i=a(t,e[s]);i>0?n=s+1:(r=s,p=!i)}return p?n:-n-1}(e,t,a||r)}(e,t,a),s=n<0?-(n+1):n;e.splice(s,0,t)}function r(e,t){return e>t?1:es&&c.push({score:t[e],boxIndex:e,suppressBeginIndex:0});c.sort(m);const h=p>0?-.5/p:0,f=[],g=[];for(;f.length0;){const t=c.pop(),{score:a,boxIndex:p,suppressBeginIndex:i}=t;if(a=i;--a){const n=d(e,p,f[a]);if(n>=r){o=!0;break}if(t.score=t.score*l(r,h,n),t.score<=s)break}t.suppressBeginIndex=f.length,o||(t.score===a?(f.push(p),g.push(t.score)):t.score>s&&n(c,t,m))}const y=f.length,v=a-y;o&&v>0&&(f.push(...new Array(v).fill(0)),g.push(...new Array(v).fill(0)));const b={selectedIndices:f};return i&&(b.selectedScores=g),u&&(b.validOutputs=y),b}function d(e,t,a){const n=e.subarray(4*t,4*t+4),r=e.subarray(4*a,4*a+4),s=Math.min(n[0],n[2]),p=Math.min(n[1],n[3]),i=Math.max(n[0],n[2]),o=Math.max(n[1],n[3]),d=Math.min(r[0],r[2]),l=Math.min(r[1],r[3]),m=Math.max(r[0],r[2]),u=Math.max(r[1],r[3]),c=(i-s)*(o-p),h=(m-d)*(u-l);if(c<=0||h<=0)return 0;const f=Math.max(s,d),g=Math.max(p,l),y=Math.min(i,m),v=Math.min(o,u),b=Math.max(y-f,0)*Math.max(v-g,0);return b/(c+h-b)}function l(e,t,a){const n=Math.exp(t*a*a);return a<=e?n:0}function m(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}a.d(t,{GP:()=>s,qP:()=>p,pA:()=>i})},8333:(e,t,a)=>{"use strict";a.d(t,{Z:()=>r});var n=a(2657);function r(e,t){const a=[];for(let e=0;e{"use strict";a.d(t,{BV:()=>w,wv:()=>b});var n=a(8713),r=a(2885),s=a(5938),p=a(9121),i=a(6151),o=a(4706),d=a(9122),l=a(569);class m{constructor(e,t){this.backendTimer=e,this.logger=t,null==t&&(this.logger=new c)}profileKernel(e,t,a){let n;const s=()=>{n=a()};let p;const i=d.now();if(this.backendTimer.timerAvailable())p=this.backendTimer.time(s);else{s();for(const e of n)e.dataSync();p=Promise.resolve({kernelMs:d.now()-i})}if((0,r.OB)().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t{u(t,a.dtype,e)}))}return{kernelName:e,outputs:n,inputs:t,timeMs:p.then((e=>e.kernelMs)),extraInfo:p.then((e=>null!=e.getExtraProfileInfo?e.getExtraProfileInfo():""))}}logKernelProfile(e){const{kernelName:t,outputs:a,timeMs:n,inputs:r,extraInfo:s}=e;a.forEach((e=>{Promise.all([e.data(),n,s]).then((a=>{this.logger.logKernelProfile(t,e,a[0],a[1],r,a[2])}))}))}}function u(e,t,a){if("float32"!==t)return!1;for(let t=0;t0?n:""} `}}console.log(`%c${i}\t%c${p}\t%c${o}D ${m}\t%c${d}\t%c${u}\t%c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}var h=a(4077),f=a(747);function g(e){return null!=e.kernelName}class y{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map((e=>e.name))))}}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class v{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new y}async ready(){if(null!=this.pendingBackendInit)return this.pendingBackendInit.then((()=>{}));if(null!=this.backendInstance)return;const e=this.getSortedBackends();for(let t=0;t{null!=e.setupFunc&&e.setupFunc(this.backendInstance)}))}disposeRegisteredKernels(e){(0,i.tr)(e).forEach((t=>{null!=t.disposeFunc&&t.disposeFunc(this.registry[e])}))}initializeBackend(e){const t=this.registryFactory[e];if(null==t)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const a=t.factory();if(!a||a instanceof n.Zu||"function"!=typeof a.then)return this.registry[e]=a,{success:!0,asyncInit:!1};{const t=++this.pendingBackendInitId,n=a.then((a=>!(t(tthis.registryFactory[t].priority-this.registryFactory[e].priority))}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(n)),(()=>this.endScope(a)),(()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a)))}scopedRun(e,t,a){e();try{const e=a();return t(),e}catch(e){throw t(),e}}nextTensorId(){return v.nextTensorId++}nextVariableId(){return v.nextVariableId++}clone(e){const t=w.runKernel(p.iJz,{x:e}),a={x:e};return this.addTapeNode(this.state.activeScope.name,a,[t],(e=>({x:()=>{const t={x:e},a={dtype:"float32"};return w.runKernel(p.RFZ,t,a)}})),[],{}),t}runKernel(e,t,a){null==this.backendName&&this.backend;if(!(null!=(0,i.pI)(e,this.backendName)))throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:a})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,a){const n=this.backend.numDataIds();let r=0;a.forEach((e=>{r+="complex64"===e.dtype?3:1}));const s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],p=n-t-r-s;if(p>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${p} data ids) after running '${e}'`)}runKernelFunc(e){let t,a=[];const n=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;let p,o;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0),null==this.backendName&&this.backend;const d=g(e)?e.kernelName:null!=this.state.activeScope?this.state.activeScope.name:"";if(g(e)){const{kernelName:t,inputs:r,attrs:s}=e;null==this.backendName&&this.backend;const d=(0,i.pI)(t,this.backendName);l.hu(null!=d,(()=>`Cannot find registered kernel '${t}' for backend '${this.backendName}'`)),p=()=>{const e=this.backend.numDataIds();o=d.kernelFunc({inputs:r,attrs:s,backend:this.backend});const p=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(t,e,p);const i=p.map((e=>null!=e.rank?e:this.makeTensorFromTensorInfo(e)));if(n){const e=this.getTensorsForGradient(t,r,i);a=this.saveTensorsForBackwardMode(e)}return i}}else{const{forwardFunc:t}=e,r=e=>{n&&(a=e.map((e=>this.keep(this.clone(e)))))};p=()=>{const e=this.backend.numDataIds();o=this.tidy((()=>t(this.backend,r)));const a=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,e,a),a}}const{inputs:m,attrs:u}=e,c=g(e)?null:e.backwardsFunc;let h;return this.scopedRun((()=>this.state.kernelDepth++),(()=>this.state.kernelDepth--),(()=>{this.ENV.getBool("DEBUG")||this.state.profiling?(h=this.profiler.profileKernel(d,m,(()=>p())),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(h),t=h.outputs):t=p()})),n&&this.addTapeNode(d,m,t,c,a,u),this.state.profiling&&this.state.activeProfile.kernels.push({name:d,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(m).map((e=>null!=m[e]?m[e].shape:null)),outputShapes:t.map((e=>e.shape)),kernelTimeMs:h.timeMs,extraInfo:h.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){const t=e.map((e=>this.keep(this.clone(e))));return t}getTensorsForGradient(e,t,a){const n=(0,i.uk)(e);if(null!=n){const e=n.inputsToSave||[],r=n.outputsToSave||[];let s;n.saveAllInputs?(l.hu(Array.isArray(t),(()=>"saveAllInputs is true, expected inputs to be an array.")),s=Object.keys(t).map((e=>t[e]))):s=e.map((e=>t[e]));const p=a.filter(((e,t)=>r[t]));return s.concat(p)}return[]}makeTensor(e,t,a,n){if(null==e)throw new Error("Values passed to engine.makeTensor() are null");a=a||"float32",n=n||this.backend;let r=e;"string"===a&&l.HD(e[0])&&(r=e.map((e=>d.encodeString(e))));const s=n.write(r,t,a),p=new h.es(t,a,s,this.nextTensorId());if(this.trackTensor(p,n),"string"===a){const e=this.state.tensorInfo.get(s),t=(0,l.Ub)(r);this.state.numBytes+=t-e.bytes,e.bytes=t}return p}makeTensorFromDataId(e,t,a,n){const r={dataId:e,shape:t,dtype:a=a||"float32"};return this.makeTensorFromTensorInfo(r,n)}makeTensorFromTensorInfo(e,t){const{dataId:a,shape:n,dtype:r}=e,s=new h.es(n,r,a,this.nextTensorId());return this.trackTensor(s,t),s}makeVariable(e,t=!0,a,n){a=a||this.nextVariableId().toString(),null!=n&&n!==e.dtype&&(e=e.cast(n));const r=new h._w(e,t,a,this.nextTensorId());if(null!=this.state.registeredVariables[r.name])throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++;let a=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(a=e.size*l.bT(e.dtype)),this.state.numBytes+=a,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:a})),e instanceof h._w||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;const t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,"string"===e.dtype&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),"complex64"!==e.dtype&&"string"!==e.dtype){const t=e.size*l.bT(e.dtype);this.state.numBytes-=t}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),null!=this.state.registeredVariables[e.name]&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,null==e.reasons&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,a=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map((e=>e.totalBytesSnapshot))),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-a;for(const e of this.state.activeProfile.kernels)e.kernelTimeMs=await e.kernelTimeMs,e.extraInfo=await e.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&0===this.state.kernelDepth}addTapeNode(e,t,a,n,r,s){const p={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:a,saved:r},o=(0,i.uk)(e);null!=o&&(n=o.gradFunc),null!=n&&(p.gradient=e=>(e=e.map(((e,t)=>{if(null==e){const e=a[t],n=l.wT(e.size,e.dtype);return this.makeTensor(n,e.shape,e.dtype)}return e})),n(e.length>1?e:e[0],r,s))),this.state.activeTape.push(p)}keep(e){return e.kept=!0,e}startTape(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=(0,f.getTensorsInContainer)(e),a=new Set(t.map((e=>e.id)));for(let e=0;e{e.kept||e.scopeId!==n.id||this.track(e)}))}gradients(e,t,a,n=!1){if(l.hu(t.length>0,(()=>"gradients() received an empty list of xs.")),null!=a&&"float32"!==a.dtype)throw new Error(`dy must have 'float32' dtype, but has '${a.dtype}'`);const r=this.scopedRun((()=>this.startTape()),(()=>this.endTape()),(()=>this.tidy("forward",e)));l.hu(r instanceof h.es,(()=>"The result y returned by f() must be a tensor."));const s=function(e,t,a){const n={},r={};for(let e=0;en[e.id]=!0)),i=!0,r[s.id]=!0;break}if(i)break}}const s={};s[a.id]=!0;const p={};for(let t=e.length-1;t>=0;t--){const a=e[t],n=a.inputs;for(let e=0;e0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",(()=>{const e={};e[r.id]=null==a?function(e){const t=(0,l.p8)((0,l.NA)(e),"float32");return w.makeTensor(t,e,"float32")}(r.shape):a,function(e,t,a,n){for(let r=t.length-1;r>=0;r--){const s=t[r],p=[];if(s.outputs.forEach((t=>{const a=e[t.id];null!=a?p.push(a):p.push(null)})),null==s.gradient)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);const i=s.gradient(p);for(const t in s.inputs){if(!(t in i))throw new Error(`Cannot backprop through input ${t}. Available gradients found: ${Object.keys(i)}.`);const r=a((()=>i[t]()));if("float32"!==r.dtype)throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${t} must have 'float32' dtype, but has '${r.dtype}'`);const p=s.inputs[t];if(!l.cO(r.shape,p.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${t}' has shape '${r.shape}', which does not match the shape of the input '${p.shape}'`);if(null==e[p.id])e[p.id]=r;else{const t=e[p.id];e[p.id]=n(t,r),t.dispose()}}}}(e,s,(e=>this.tidy(e)),N);const n=t.map((t=>e[t.id]));return 0===this.state.gradientDepth&&(this.state.activeTape.forEach((e=>{for(const t of e.saved)t.dispose()})),this.state.activeTape=null),{value:r,grads:n}}))}customGrad(e){return l.hu(l.mf(e),(()=>"The f passed in customGrad(f) must be a function.")),(...t)=>{let a;l.hu(t.every((e=>e instanceof h.es)),(()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors"));const n={};t.forEach(((e,t)=>{n[t]=e}));return this.runKernelFunc({forwardFunc:(n,r)=>(a=e(...t,r),l.hu(a.value instanceof h.es,(()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor")),l.hu(l.mf(a.gradFunc),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.")),a.value),backwardsFunc:(e,n)=>{const r=a.gradFunc(e,n),s=Array.isArray(r)?r:[r];l.hu(s.length===t.length,(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...).")),l.hu(s.every((e=>e instanceof h.es)),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors."));const p={};return s.forEach(((e,t)=>{p[t]=()=>e})),p},inputs:n})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){const t=(0,d.now)(),a=await this.backend.time(e);return a.wallMs=(0,d.now)()-t,a}track(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new y;for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}function b(){const e=(0,s.D)();if(null==e._tfengine){const t=new r.qA(e);e._tfengine=new v(t)}return(0,r.iG)(e._tfengine.ENV),(0,h.Vi)((()=>e._tfengine)),e._tfengine}v.nextTensorId=0,v.nextVariableId=0;const w=b();function N(e,t){const a={a:e,b:t};return w.runKernel(p.mm_,a)}},2885:(e,t,a)=>{"use strict";a.d(t,{qA:()=>s,OB:()=>i,Vi:()=>o,iG:()=>d});var n=a(569);const r="tfjsflags";class s{constructor(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.getQueryParams=p,this.populateURLFlags()}setPlatform(e,t){null!=this.platform&&(i().getBool("IS_TEST")||i().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,a){if(this.flagRegistry[e]={evaluationFn:t,setHook:a},null!=this.urlFlags[e]){const t=this.urlFlags[e];i().getBool("IS_TEST")||i().getBool("PROD")||console.warn(`Setting feature override from URL ${e}: ${t}.`),this.set(e,t)}}async getAsync(e){return e in this.flags||(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((0,n.tI)(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)}getFlags(){return this.flags}get features(){return this.flags}set(e,t){if(null==this.flagRegistry[e])throw new Error(`Cannot set flag ${e} as it has not been registered.`);this.flags[e]=t,null!=this.flagRegistry[e].setHook&&this.flagRegistry[e].setHook(t)}evaluateFlag(e){if(null==this.flagRegistry[e])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(void 0===this.global||void 0===this.global.location||void 0===this.global.location.search)return;const e=this.getQueryParams(this.global.location.search);if(r in e){e.tfjsflags.split(",").forEach((e=>{const[t,a]=e.split(":");this.urlFlags[t]=function(e,t){if("true"===(t=t.toLowerCase())||"false"===t)return"true"===t;if(""+ +t===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}(t,a)}))}}}function p(e){const t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,((e,...a)=>(function(e,t,a){e[decodeURIComponent(t)]=decodeURIComponent(a||"")}(t,a[0],a[1]),a.join("=")))),t}function i(){return o}let o=null;function d(e){o=e}},5938:(e,t,a)=>{"use strict";let n;function r(){if(null==n){let e;if("undefined"!=typeof window)e=window;else if("undefined"!=typeof global)e=global;else if("undefined"!=typeof process)e=process;else{if("undefined"==typeof self)throw new Error("Could not find a global object");e=self}n=e}return n}function s(e,t){const a=function(){const e=r();return null==e._tfGlobals&&(e._tfGlobals=new Map),e._tfGlobals}();if(a.has(e))return a.get(e);{const n=t();return a.set(e,n),a.get(e)}}a.d(t,{D:()=>r,R:()=>s})},4368:(e,t,a)=>{"use strict";a.d(t,{G4:()=>i,R:()=>o,cF:()=>d,MX:()=>l,N8:()=>m,SR:()=>u,sq:()=>c,N5:()=>h,lu:()=>f,B9:()=>g,Cn:()=>y,XV:()=>v,CQ:()=>b,Cd:()=>w,N_:()=>N,cj:()=>k,x3:()=>S,ze:()=>_,jq:()=>T,y3:()=>x,VY:()=>I});var n=a(7097),r=a(2885),s=a(4077),p=a(747);function i(){(0,r.OB)().set("PROD",!0)}function o(){(0,r.OB)().set("DEBUG",!0)}function d(){(0,r.OB)().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function l(e){(0,r.OB)().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}function m(){n.BV.disposeVariables()}function u(){return n.BV}function c(){return n.BV.memory()}function h(e){return n.BV.profile(e)}function f(e,t){return n.BV.tidy(e,t)}function g(e){(0,p.getTensorsInContainer)(e).forEach((e=>e.dispose()))}function y(e){return n.BV.keep(e)}function v(e){return n.BV.time(e)}function b(e){return n.BV.setBackend(e)}function w(){return n.BV.ready()}function N(){return n.BV.backendName}function k(e){n.BV.removeBackend(e)}function S(e){return n.BV.findBackend(e)}function _(e){return n.BV.findBackendFactory(e)}function T(e,t,a=1){return n.BV.registerBackend(e,t,a)}function x(){return n.BV.backend}function I(e,t){(0,r.OB)().setPlatform(e,t)}(0,s.FZ)(l)},633:(e,t,a)=>{"use strict";a.d(t,{cb:()=>u,pn:()=>m,h7:()=>d,fN:()=>l,UQ:()=>i,ti:()=>o});var n=a(7097),r=a(4077),s=a(3740),p=a(569);function i(e){return p.hu(p.mf(e),(()=>"The f passed in grad(f) must be a function")),(t,a)=>{const r=(0,s._1)(t,"x","tf.grad","string_or_numeric"),i=null!=a?(0,s._1)(a,"dy","tf.grad"):null;return n.BV.tidy((()=>{const{value:t,grads:a}=n.BV.gradients((()=>e(r)),[r],i);return null!=i&&p.k5(t.shape,i.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),c(a),a[0]}))}}function o(e){return p.hu(p.mf(e),(()=>"The f passed in grads(f) must be a function")),(t,a)=>{p.hu(Array.isArray(t),(()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s"));const r=(0,s.sI)(t,"args","tf.grads","string_or_numeric"),i=null!=a?(0,s._1)(a,"dy","tf.grads"):null;return n.BV.tidy((()=>{const{value:t,grads:a}=n.BV.gradients((()=>e(...r)),r,i);return null!=i&&p.k5(t.shape,i.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),c(a),a}))}}function d(e){return p.hu(p.mf(e),(()=>"The f passed in valueAndGrad(f) must be a function")),(t,a)=>{p.hu(t instanceof r.es,(()=>"The x passed in valueAndGrad(f)(x) must be a tensor")),p.hu(null==a||a instanceof r.es,(()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor"));const{grads:s,value:i}=n.BV.gradients((()=>e(t)),[t],a);return c(s),{grad:s[0],value:i}}}function l(e){return p.hu(p.mf(e),(()=>"The f passed in valueAndGrads(f) must be a function")),(t,a)=>{p.hu(Array.isArray(t)&&t.every((e=>e instanceof r.es)),(()=>"The args passed in valueAndGrads(f)(args) must be array of tensors")),p.hu(null==a||a instanceof r.es,(()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor"));const s=n.BV.gradients((()=>e(...t)),t,a);return null!=a&&p.k5(s.value.shape,a.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),c(s.grads),s}}function m(e,t){p.hu(p.mf(e),(()=>"The f passed in variableGrads(f) must be a function")),p.hu(null==t||Array.isArray(t)&&t.every((e=>e instanceof r._w)),(()=>"The varList passed in variableGrads(f, varList) must be an array of variables"));const a=null!=t;if(!a){t=[];for(const e in n.BV.registeredVariables)t.push(n.BV.registeredVariables[e])}const s=a?t.filter((e=>!e.trainable)):null,i=t.length;t=t.filter((e=>e.trainable)),p.hu(t.length>0,(()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${i} variables is trainable.`));const{value:o,grads:d}=n.BV.gradients(e,t,null,!0);p.hu(d.some((e=>null!=e)),(()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize().")),p.hu(0===o.rank,(()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${o.rank} tensor`));const l={};return t.forEach(((e,t)=>{null!=d[t]&&(l[e.name]=d[t])})),null!=s&&s.forEach((e=>l[e.name]=null)),{value:o,grads:l}}function u(e){return n.BV.customGrad(e)}function c(e){if(e.filter((e=>null==e)).length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that\n the f you passed encloses all operations that lead from x to y.")}},8946:(e,t,a)=>{"use strict";a.r(t),a.d(t,{Abs:()=>tt.SYM,Acos:()=>tt.VGw,Acosh:()=>tt.SpW,AdadeltaOptimizer:()=>ra,AdagradOptimizer:()=>pa,AdamOptimizer:()=>da,AdamaxOptimizer:()=>ua,Add:()=>tt.mm_,AddN:()=>tt.Xze,All:()=>tt.oT6,Any:()=>tt.IKK,ArgMax:()=>tt.sJF,ArgMin:()=>tt.aJk,Asin:()=>tt.M2y,Asinh:()=>tt.qw7,Atan:()=>tt.jMg,Atan2:()=>tt.QCc,Atanh:()=>tt.Oyi,AvgPool:()=>tt.JhU,AvgPool3D:()=>tt._k9,AvgPool3DGrad:()=>tt.IMb,AvgPoolGrad:()=>tt.ROF,BatchMatMul:()=>tt.XLW,BatchToSpaceND:()=>tt.zws,Bincount:()=>tt.zvY,BroadcastArgs:()=>tt.eEB,BroadcastTo:()=>tt.Ly9,Cast:()=>tt.RFZ,Ceil:()=>tt.gJX,ClipByValue:()=>tt.xnO,Complex:()=>tt.Zz9,ComplexAbs:()=>tt.yj2,Concat:()=>tt.Eh3,Conv2D:()=>tt.mhS,Conv2DBackpropFilter:()=>tt.wUP,Conv2DBackpropInput:()=>tt.wm,Conv3D:()=>tt.x12,Conv3DBackpropFilterV2:()=>tt.o2y,Conv3DBackpropInputV2:()=>tt.ik2,Cos:()=>tt.mc4,Cosh:()=>tt.TR1,CropAndResize:()=>tt.VcC,Cumprod:()=>tt.Byc,Cumsum:()=>tt.iHb,DataStorage:()=>Fn.JL,DenseBincount:()=>tt.QRR,DepthToSpace:()=>tt.T0n,DepthwiseConv2dNative:()=>tt.cie,DepthwiseConv2dNativeBackpropFilter:()=>tt.sL$,DepthwiseConv2dNativeBackpropInput:()=>tt.y7R,Diag:()=>tt.$w,Dilation2D:()=>tt.p4S,Dilation2DBackpropFilter:()=>tt.Vn9,Dilation2DBackpropInput:()=>tt.ekb,ENV:()=>b.Vi,Einsum:()=>tt.$g6,Elu:()=>tt.SX0,EluGrad:()=>tt.HEU,Environment:()=>b.qA,Equal:()=>tt.hdR,Erf:()=>tt.Omj,Exp:()=>tt.NEP,ExpandDims:()=>tt.YFo,Expm1:()=>tt.Y0y,FFT:()=>tt.vwp,Fill:()=>tt.deh,FlipLeftRight:()=>tt.Uyb,Floor:()=>tt.OR,FloorDiv:()=>tt.jeX,FromPixels:()=>tt.eBW,FusedBatchNorm:()=>tt.sHE,FusedConv2D:()=>tt._V0,FusedDepthwiseConv2D:()=>tt.luS,GatherNd:()=>tt.q1x,GatherV2:()=>tt.qi_,Greater:()=>tt.iZT,GreaterEqual:()=>tt.Acj,IFFT:()=>tt.Qg5,Identity:()=>tt.iJz,Imag:()=>tt.J_u,IsFinite:()=>tt.avt,IsInf:()=>tt.iWB,IsNan:()=>tt.r7n,KernelBackend:()=>Fn.Zu,LRN:()=>tt.eZ0,LRNGrad:()=>tt.Hhh,LeakyRelu:()=>tt.J$2,Less:()=>tt.vtC,LessEqual:()=>tt.CAk,LinSpace:()=>tt.e7N,Log:()=>tt.ZbH,Log1p:()=>tt.kU,LogSoftmax:()=>tt.qCd,LogicalAnd:()=>tt.PYm,LogicalNot:()=>tt.VfG,LogicalOr:()=>tt.MZg,LogicalXor:()=>tt.w6g,LowerBound:()=>tt.qIC,Max:()=>tt.YoZ,MaxPool:()=>tt.mTV,MaxPool3D:()=>tt.OAf,MaxPool3DGrad:()=>tt.OU7,MaxPoolGrad:()=>tt.OV7,MaxPoolWithArgmax:()=>tt.vFR,Maximum:()=>tt.BMI,Mean:()=>tt.q2K,Min:()=>tt.c17,Minimum:()=>tt.q8u,MirrorPad:()=>tt.jQs,Mod:()=>tt.Vbg,MomentumOptimizer:()=>ha,Multinomial:()=>tt.NZg,Multiply:()=>tt.wYn,Neg:()=>tt.kuV,NonMaxSuppressionV3:()=>tt.uv1,NonMaxSuppressionV4:()=>tt.cye,NonMaxSuppressionV5:()=>tt.W0H,NotEqual:()=>tt.yQU,OP_SCOPE_SUFFIX:()=>va.zvA,OneHot:()=>tt.we_,OnesLike:()=>tt.qWM,Optimizer:()=>na,OptimizerConstructors:()=>ga,Pack:()=>tt.QiL,PadV2:()=>tt.lyA,Pool:()=>tt.Kgp,Pow:()=>tt.pe_,Prelu:()=>tt.o0g,Prod:()=>tt.DlI,RMSPropOptimizer:()=>fa,RaggedGather:()=>tt.dDz,RaggedTensorToTensor:()=>tt.BiW,Range:()=>tt.e6w,Rank:()=>ya.yw,Real:()=>tt.xJR,RealDiv:()=>tt.oHH,Reciprocal:()=>tt.$HU,Reduction:()=>ba.I,Relu:()=>tt.qkr,Relu6:()=>tt.SbG,Reshape:()=>tt.HZH,ResizeBilinear:()=>tt._Yw,ResizeBilinearGrad:()=>tt.zbQ,ResizeNearestNeighbor:()=>tt.dpD,ResizeNearestNeighborGrad:()=>tt.Hmb,Reverse:()=>tt.mKl,RotateWithOffset:()=>tt.b9H,Round:()=>tt.e07,Rsqrt:()=>tt.bV0,SGDOptimizer:()=>ca,ScatterNd:()=>tt.xQA,SearchSorted:()=>tt.nr8,Select:()=>tt.PhF,Selu:()=>tt.oFR,Sigmoid:()=>tt.a5O,Sign:()=>tt.i5y,Sin:()=>tt.RQH,Sinh:()=>tt.wYB,Slice:()=>tt.p2w,Softmax:()=>tt.Gcp,Softplus:()=>tt.MRv,SpaceToBatchND:()=>tt.TQc,SparseFillEmptyRows:()=>tt.O3z,SparseReshape:()=>tt.nhH,SparseSegmentMean:()=>tt.w3H,SparseSegmentSum:()=>tt.ZjV,SparseToDense:()=>tt.D2d,SplitV:()=>tt.L8s,Sqrt:()=>tt.FKq,Square:()=>tt.bK0,SquaredDifference:()=>tt._tC,Step:()=>tt.h8e,StridedSlice:()=>tt.jQk,StringNGrams:()=>tt._JP,StringSplit:()=>tt.s1s,StringToHashBucketFast:()=>tt.XkS,Sub:()=>tt.Tr8,Sum:()=>tt.GBy,Tan:()=>tt.sEM,Tanh:()=>tt.MIZ,Tensor:()=>xe.es,TensorBuffer:()=>xe.YD,Tile:()=>tt.n9L,TopK:()=>tt.cWu,Transform:()=>tt.wx7,Transpose:()=>tt.G3Y,Unique:()=>tt.kpP,Unpack:()=>tt.ToN,UnsortedSegmentSum:()=>tt.Qvg,UpperBound:()=>tt.XDQ,Variable:()=>xe._w,ZerosLike:()=>tt.RuY,_FusedMatMul:()=>tt.usg,abs:()=>va.WnP,acos:()=>va.Khb,acosh:()=>va.__u,add:()=>va.IHx,addN:()=>va.QBD,all:()=>va.$6P,any:()=>va.YjB,argMax:()=>va.NqF,argMin:()=>va.vHJ,asin:()=>va.ZRM,asinh:()=>va.VfV,atan:()=>va.z4N,atan2:()=>va.fvJ,atanh:()=>va.C80,avgPool:()=>va.wS1,avgPool3d:()=>va.uR5,backend:()=>Kt.y3,backend_util:()=>u,basicLSTMCell:()=>va.zEQ,batchNorm:()=>va.tgs,batchNorm2d:()=>va.Dxk,batchNorm3d:()=>va.JY5,batchNorm4d:()=>va.p3b,batchToSpaceND:()=>va.E4h,bincount:()=>va.yE8,booleanMaskAsync:()=>va.anm,broadcastArgs:()=>va.XsQ,broadcastTo:()=>va.UFq,broadcast_util:()=>et,browser:()=>p,buffer:()=>va.f3b,cast:()=>va.pju,ceil:()=>va.mDi,clipByValue:()=>va.iUl,clone:()=>va.d9v,complex:()=>va.PYB,concat:()=>va.zoF,concat1d:()=>va.gME,concat2d:()=>va.Izb,concat3d:()=>va.MNy,concat4d:()=>va.ZaL,conv1d:()=>va.PAt,conv2d:()=>va.Tek,conv2dTranspose:()=>va.bc,conv3d:()=>va.pdZ,conv3dTranspose:()=>va.$QV,copyRegisteredKernels:()=>at.T3,cos:()=>va.mCk,cosh:()=>va.f9Y,cosineWindow:()=>va.mew,cumprod:()=>va.$Gn,cumsum:()=>va.zbp,customGrad:()=>ta.cb,denseBincount:()=>va.ppE,deprecationWarn:()=>Kt.MX,depthToSpace:()=>va.nTT,depthwiseConv2d:()=>va.B10,device_util:()=>n,diag:()=>va.Ka3,dilation2d:()=>va.WmZ,disableDeprecationWarnings:()=>Kt.cF,dispose:()=>Kt.B9,disposeVariables:()=>Kt.N8,div:()=>va.hiC,divNoNan:()=>va.NTj,dot:()=>va.AKD,dropout:()=>va.rvX,einsum:()=>va.WYO,elu:()=>va.pyx,enableDebugMode:()=>Kt.R,enableProdMode:()=>Kt.G4,enclosingPowerOfTwo:()=>va.GRh,engine:()=>Kt.SR,env:()=>b.OB,equal:()=>va.DgJ,erf:()=>va.qNN,euclideanNorm:()=>va.d2q,exp:()=>va.Qqt,expandDims:()=>va.dt4,expm1:()=>va.t$B,eye:()=>va.iyy,fft:()=>va.kp_,fill:()=>va.hlL,findBackend:()=>Kt.x3,findBackendFactory:()=>Kt.ze,floor:()=>va.GWj,floorDiv:()=>va.qPi,fused:()=>va.imm,gather:()=>va.Iqj,gatherND:()=>va.dbB,gather_util:()=>i,getBackend:()=>Kt.N_,getGradient:()=>at.uk,getKernel:()=>at.pI,getKernelsForBackend:()=>at.tr,grad:()=>ta.UQ,grads:()=>ta.ti,greater:()=>va.pjt,greaterEqual:()=>va.brS,ifft:()=>va.Sxn,imag:()=>va.asL,image:()=>va.BHj,inTopKAsync:()=>va.V3u,io:()=>r,irfft:()=>va.wx0,isFinite:()=>va.xVT,isInf:()=>va.UWc,isNaN:()=>va.i2d,keep:()=>Kt.Cn,kernel_impls:()=>c,leakyRelu:()=>va.hi7,less:()=>va.d9m,lessEqual:()=>va.zN1,linalg:()=>va.$r2,linspace:()=>va.SX3,localResponseNormalization:()=>va.G9k,log:()=>va.cM7,log1p:()=>va.Krr,logSigmoid:()=>va.e_t,logSoftmax:()=>va.CmS,logSumExp:()=>va.l_t,logicalAnd:()=>va.HvI,logicalNot:()=>va.hJK,logicalOr:()=>va.K5V,logicalXor:()=>va.egP,losses:()=>va.MB5,lowerBound:()=>va.eab,matMul:()=>va.OI3,math:()=>s,max:()=>va.Fp7,maxPool:()=>va._sB,maxPool3d:()=>va.YQQ,maxPoolWithArgmax:()=>va.Ip$,maximum:()=>va.gWQ,mean:()=>va.J69,memory:()=>Kt.sq,meshgrid:()=>va.ry_,min:()=>va.VV$,minimum:()=>va.LTh,mirrorPad:()=>va.VdP,mod:()=>va.wQq,moments:()=>va.Gi7,movingAverage:()=>va.p_,mul:()=>va.dC7,multiRNNCell:()=>va.rq4,multinomial:()=>va.SJ_,neg:()=>va.W76,nextFrame:()=>ka,norm:()=>va.KOy,notEqual:()=>va.Quu,oneHot:()=>va.lfX,ones:()=>va.iUs,onesLike:()=>va.JpU,op:()=>va.op,outerProduct:()=>va.N2O,pad:()=>va.vku,pad1d:()=>va.pNR,pad2d:()=>va.koy,pad3d:()=>va.t1L,pad4d:()=>va.lGY,pool:()=>va.d_R,pow:()=>va.sQ3,prelu:()=>va.AL3,print:()=>va.S0v,prod:()=>va.WVs,profile:()=>Kt.N5,raggedGather:()=>va.$gW,raggedTensorToTensor:()=>va.N89,rand:()=>va.TN_,randomGamma:()=>va.wzB,randomNormal:()=>va.nGf,randomStandardNormal:()=>va.ruB,randomUniform:()=>va.LGj,range:()=>va.w6H,ready:()=>Kt.Cd,real:()=>va.kwC,reciprocal:()=>va.M25,registerBackend:()=>Kt.jq,registerGradient:()=>at.Li,registerKernel:()=>at.wC,relu:()=>va.UYe,relu6:()=>va.btT,removeBackend:()=>Kt.cj,reshape:()=>va.XLQ,reverse:()=>va.GYS,reverse1d:()=>va.SDf,reverse2d:()=>va.diP,reverse3d:()=>va.sx7,reverse4d:()=>va.mG2,rfft:()=>va.QEs,round:()=>va.NMM,rsqrt:()=>va.bp0,scalar:()=>va.iD$,scatterND:()=>va.snQ,scatter_util:()=>mt,searchSorted:()=>va.zcT,selu:()=>va.U8D,separableConv2d:()=>va.U_I,serialization:()=>d,setBackend:()=>Kt.CQ,setPlatform:()=>Kt.VY,setdiff1dAsync:()=>va.ODp,sigmoid:()=>va.XD2,sign:()=>va.Xxe,signal:()=>va.tdS,sin:()=>va.O$l,sinh:()=>va.R_K,slice:()=>va.tPi,slice1d:()=>va.jZU,slice2d:()=>va.SmN,slice3d:()=>va.CnO,slice4d:()=>va.p0P,slice_util:()=>o,softmax:()=>va.XAC,softplus:()=>va.Wvh,spaceToBatchND:()=>va.fBT,sparse:()=>va.rVs,sparseToDense:()=>va.ers,spectral:()=>va.uN7,split:()=>va.Vl2,sqrt:()=>va._b3,square:()=>va.h62,squaredDifference:()=>va.$i,squeeze:()=>va.L9e,stack:()=>va.knu,step:()=>va.Nbs,stridedSlice:()=>va.NXj,string:()=>va.Z_8,sub:()=>va.luU,sum:()=>va.Smz,sumOutType:()=>ya.z4,tan:()=>va.ORZ,tanh:()=>va.AEp,tensor:()=>va.XeE,tensor1d:()=>va.RRF,tensor2d:()=>va.odF,tensor3d:()=>va.wOQ,tensor4d:()=>va.yXz,tensor5d:()=>va.Bfx,tensor6d:()=>va.xZs,tensor_util:()=>Mt,test_util:()=>l,tidy:()=>Kt.lu,tile:()=>va.Gg6,time:()=>Kt.XV,topk:()=>va.hg7,train:()=>wa,transpose:()=>va.p4s,truncatedNormal:()=>va.Xu6,unique:()=>va.Two,unregisterGradient:()=>at.bt,unregisterKernel:()=>at.nE,unsortedSegmentSum:()=>va.pUJ,unstack:()=>va.HHK,upcastType:()=>ya.x8,upperBound:()=>va.GaM,util:()=>Ft,valueAndGrad:()=>ta.h7,valueAndGrads:()=>ta.fN,variable:()=>va.VD$,variableGrads:()=>ta.pn,version_core:()=>jt,where:()=>va.arb,whereAsync:()=>va.itS,zeros:()=>va.lls,zerosLike:()=>va.P84});var n={};a.r(n),a.d(n,{isBrowser:()=>v,isMobile:()=>y,mockIsMobile:()=>g});var r={};a.r(r),a.d(r,{browserFiles:()=>Ve,browserHTTPRequest:()=>ze,concatenateArrayBuffers:()=>A,copyModel:()=>ge,decodeWeights:()=>x,encodeWeights:()=>T,fromMemory:()=>He,fromMemorySync:()=>qe,getLoadHandlers:()=>W,getModelArtifactsForJSON:()=>B,getModelArtifactsForJSONSync:()=>F,getModelArtifactsInfoForJSON:()=>O,getSaveHandlers:()=>L,getWeightSpecs:()=>$,http:()=>Pe,isHTTPScheme:()=>Ce,listModels:()=>he,loadWeights:()=>Be,moveModel:()=>ye,registerLoadRouter:()=>z,registerSaveRouter:()=>P,removeModel:()=>fe,weightsLoaderFactory:()=>Oe,withSaveHandler:()=>Ge,withSaveHandlerSync:()=>je});var s={};a.r(s),a.d(s,{confusionMatrix:()=>Ye});var p={};a.r(p),a.d(p,{fromPixels:()=>dt,fromPixelsAsync:()=>it,toPixels:()=>ot});var i={};a.r(i),a.d(i,{prepareAndValidate:()=>lt});var o={};a.r(o),a.d(o,{assertParamsValid:()=>ut,computeFlatOffset:()=>Tt,computeOutShape:()=>ht,getNormalizedAxes:()=>vt,isSliceContinous:()=>_t,maskToAxes:()=>ct,parseSliceParams:()=>xt,sliceInfo:()=>It,startForAxis:()=>kt,startIndicesWithElidedDims:()=>bt,stopForAxis:()=>St,stopIndicesWithElidedDims:()=>wt,stridesForAxis:()=>Nt,stridesWithElidedDims:()=>ft});var d={};a.r(d),a.d(d,{Serializable:()=>Dt,SerializationMap:()=>At,registerClass:()=>Vt});var l={};a.r(l),a.d(l,{TEST_EPSILON_FLOAT16:()=>Bt,createVideoElement:()=>qt,encodeStrings:()=>Ht,expectArrayBuffersEqual:()=>Ut,expectArraysClose:()=>Ot,expectArraysEqual:()=>Pt,expectNumbersClose:()=>zt,expectPromiseToFail:()=>Rt,expectValuesInRange:()=>Wt,play:()=>Gt,testEpsilon:()=>$t});var m={};a.r(m),a.d(m,{collectGatherOpShapeInfo:()=>En,computeOutShape:()=>In,segOpComputeOptimalWindowSize:()=>xn});var u={};a.r(u),a.d(u,{ERF_A1:()=>Ha,ERF_A2:()=>qa,ERF_A3:()=>Ga,ERF_A4:()=>ja,ERF_A5:()=>Ka,ERF_P:()=>Ua,PARALLELIZE_THRESHOLD:()=>Fa,RowPartitionType:()=>xa,SELU_SCALE:()=>Wa,SELU_SCALEALPHA:()=>La,applyActivation:()=>Ea.QH,assertAndGetBroadcastShape:()=>et.assertAndGetBroadcastShape,assertAxesAreInnerMostDims:()=>Sa.lB,assertParamsConsistent:()=>_a,assignToTypedArray:()=>tn,axesAreInnerMostDims:()=>Sa.YB,calculateShapes:()=>mt.calculateShapes,checkEinsumDimSizes:()=>dn,checkPadOnDimRoundingMode:()=>Ia.m,combineLocations:()=>Sa.Vh,combineRaggedTensorToTensorShapes:()=>Da,complexWithEvenIndex:()=>Qa,complexWithOddIndex:()=>Ya,computeConv2DInfo:()=>Ia.Ix,computeConv3DInfo:()=>Ia.jw,computeDefaultPad:()=>Ia.aO,computeDilation2DInfo:()=>Ia.Rf,computeOptimalWindowSize:()=>Ba,computeOutAndReduceShapes:()=>Sa.kz,computeOutShape:()=>Ta,computePool2DInfo:()=>Ia.Xw,computePool3DInfo:()=>Ia.pl,convertConv2DDataFormat:()=>Ia.sl,decodeEinsumEquation:()=>pn,eitherStridesOrDilationsAreOne:()=>Ia.jT,expandShapeToKeepDim:()=>Sa.rv,exponent:()=>nn,exponents:()=>an,fromStringArrayToUint8:()=>An,fromUint8ToStringArray:()=>Dn,getAxesPermutation:()=>Sa.Q3,getBroadcastDims:()=>et.getBroadcastDims,getComplexWithIndex:()=>en,getEinsumComputePath:()=>ln,getEinsumPermutation:()=>on,getFusedBiasGradient:()=>Ea.pf,getFusedDyActivation:()=>Ea.Fr,getImageCenter:()=>Oa,getInnerMostAxes:()=>Sa.sY,getPermuted:()=>Ca,getRaggedRank:()=>Va,getReductionAxes:()=>et.getReductionAxes,getReshaped:()=>$a,getReshapedPermuted:()=>Ra,getRowPartitionTypesHelper:()=>Aa,getSliceBeginCoords:()=>Pa,getSliceSize:()=>za,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>hn,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>fn,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>gn,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>bn,getSparseReshapeInputOutputMismatchErrorMessage:()=>Nn,getSparseReshapeInputOutputMultipleErrorMessage:()=>wn,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>yn,getSparseReshapeNegativeOutputDimErrorMessage:()=>vn,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>Tn,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>kn,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>Sn,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>_n,getUndoAxesPermutation:()=>Sa.LJ,isIdentityPermutation:()=>mn,log:()=>Xa.c,mergeRealAndImagArrays:()=>Za,prepareAndValidate:()=>lt,prepareSplitSize:()=>cn,segment_util:()=>m,shouldFuse:()=>Ea.uy,slice_util:()=>o,splitRealAndImagArrays:()=>Ja,tupleValuesAreOne:()=>Ia.I0,upcastType:()=>ya.x8,validateDefaultValueShape:()=>Ma,validateInput:()=>mt.validateInput,validateUpdateShape:()=>mt.validateUpdateShape,warn:()=>Xa.Z});var c={};a.r(c),a.d(c,{nonMaxSuppressionV3Impl:()=>Vn.GP,nonMaxSuppressionV4Impl:()=>Vn.qP,nonMaxSuppressionV5Impl:()=>Vn.pA,whereImpl:()=>Mn.Z});var h=a(7097);let f;function g(e){f=e}function y(e){if(void 0!==f)return f;if(e||"undefined"!=typeof navigator&&null!=navigator){if(e||(e=navigator),"ReactNative"===e.product)return!0;const t=e.userAgent||e.vendor||("undefined"!=typeof window?window.opera:"");if(!t){const t=e;return t.userAgentData&&t.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function v(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}var b=a(2885);const w=(0,b.OB)();w.registerFlag("DEBUG",(()=>!1),(e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")})),w.registerFlag("IS_BROWSER",(()=>v())),w.registerFlag("IS_NODE",(()=>"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node)),w.registerFlag("IS_CHROME",(()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor))),w.registerFlag("PROD",(()=>!1)),w.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(()=>w.getBool("DEBUG"))),w.registerFlag("DEPRECATION_WARNINGS_ENABLED",(()=>!0)),w.registerFlag("IS_TEST",(()=>!1)),w.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",(()=>!0)),w.registerFlag("WRAP_TO_IMAGEBITMAP",(()=>!1)),w.registerFlag("ENGINE_COMPILE_ONLY",(()=>!1)),w.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",(()=>!1)),w.registerFlag("USE_SETTIMEOUTCUSTOM",(()=>!1));var N=a(1661),k=a(701),S=a(569);const _={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};async function T(e,t){const a=[],n=[],r=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);for(let s=0;s{const t=await i.bytes(),a=t.reduce(((e,t)=>e+t.length),0)+4*t.length,n=new Uint8Array(a);let r=0;for(let e=0;e{if(t+=e.byteLength,a.push(e.byteLength===e.buffer.byteLength?e:new e.constructor(e)),!(e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${e.constructor.name}`)}));const n=new Uint8Array(t);let r=0;return a.forEach((e=>{n.set(new Uint8Array(e.buffer),r),r+=e.byteLength})),n.buffer}const E="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function D(e){return E?Buffer.byteLength(e):new Blob([e]).size}function A(e){if(1===e.length)return e[0];let t=0;e.forEach((e=>{t+=e.byteLength}));const a=new Uint8Array(t);let n=0;return e.forEach((e=>{a.set(new Uint8Array(e),n),n+=e.byteLength})),a.buffer}function V(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);const t=e.split("/");return t[t.length-1]}function M(e,t){const a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return null!=e.signature&&(a.signature=e.signature),null!=e.userDefinedMetadata&&(a.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(a.modelInitializer=e.modelInitializer),null!=e.trainingConfig&&(a.trainingConfig=e.trainingConfig),a}function F(e,t,a){const n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(null!=e.trainingConfig&&(n.trainingConfig=e.trainingConfig),null!=e.weightsManifest){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!a)throw new Error("modelJSON has weightsManifest but weightData is null");n.weightSpecs=t,n.weightData=a}return null!=e.signature&&(n.signature=e.signature),null!=e.userDefinedMetadata&&(n.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(n.modelInitializer=e.modelInitializer),n}async function B(e,t){let a,n;return null!=e.weightsManifest&&([a,n]=await t(e.weightsManifest)),F(e,a,n)}function O(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:null==e.modelTopology?0:D(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:D(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:e.weightData.byteLength}}function $(e){const t=[];for(const a of e)t.push(...a.weights);return t}function C(){const e=function(){const e=e=>{let t=e<<13,a=0;for(;0==(8388608&t);)a-=8388608,t<<=1;return t&=-8388609,a+=947912704,t|a},t=new Uint32Array(2048);t[0]=0;for(let a=1;a<1024;a++)t[a]=e(a);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}(),t=function(){const e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}(),a=function(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}();return n=>{const r=new ArrayBuffer(4*n.length),s=new Uint32Array(r);for(let r=0;r>10]+(1023&p)]+t[p>>10];s[r]=i}return new Float32Array(r)}}class R{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==R.instance&&(R.instance=new R),R.instance}static registerSaveRouter(e){R.getInstance().saveRouters.push(e)}static registerLoadRouter(e){R.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return R.getHandlers(e,"save")}static getLoadHandlers(e,t){return R.getHandlers(e,"load",t)}static getHandlers(e,t,a){const n=[];return("load"===t?R.getInstance().loadRouters:R.getInstance().saveRouters).forEach((t=>{const r=t(e,a);null!==r&&n.push(r)})),n}}const P=e=>R.registerSaveRouter(e),z=e=>R.registerLoadRouter(e),L=e=>R.getSaveHandlers(e),W=(e,t)=>R.getLoadHandlers(e,t),U="tensorflowjs",H="models_store",q="model_info_store";function G(){if(!(0,b.OB)().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");const e="undefined"==typeof window?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(null==t)throw new Error("The current browser does not appear to support IndexedDB.");return t}function j(e){const t=e.result;t.createObjectStore(H,{keyPath:"modelPath"}),t.createObjectStore(q,{keyPath:"modelPath"})}class K{constructor(e){if(this.indexedDB=G(),null==e||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise(((e,a)=>{const n=this.indexedDB.open(U,1);n.onupgradeneeded=()=>j(n),n.onsuccess=()=>{const r=n.result;if(null==t){const t=r.transaction(H,"readonly"),n=t.objectStore(H).get(this.modelPath);n.onsuccess=()=>{if(null==n.result)return r.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));e(n.result.modelArtifacts)},n.onerror=e=>(r.close(),a(n.error)),t.oncomplete=()=>r.close()}else{const n=O(t),s=r.transaction(q,"readwrite");let p=s.objectStore(q);const i=p.put({modelPath:this.modelPath,modelArtifactsInfo:n});let o;i.onsuccess=()=>{o=r.transaction(H,"readwrite");const i=o.objectStore(H).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:n});i.onsuccess=()=>e({modelArtifactsInfo:n}),i.onerror=e=>{p=s.objectStore(q);const t=p.delete(this.modelPath);t.onsuccess=()=>(r.close(),a(i.error)),t.onerror=e=>(r.close(),a(i.error))}},i.onerror=e=>(r.close(),a(i.error)),s.oncomplete=()=>{null==o?r.close():o.oncomplete=()=>r.close()}}},n.onerror=e=>a(n.error)}))}}K.URL_SCHEME="indexeddb://";const X=e=>{return(0,b.OB)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(K.URL_SCHEME)?(t=e.slice(K.URL_SCHEME.length),new K(t)):null;var t};R.registerSaveRouter(X),R.registerLoadRouter(X);class Z{constructor(){this.indexedDB=G()}async listModels(){return new Promise(((e,t)=>{const a=this.indexedDB.open(U,1);a.onupgradeneeded=()=>j(a),a.onsuccess=()=>{const n=a.result,r=n.transaction(q,"readonly"),s=r.objectStore(q).getAll();s.onsuccess=()=>{const t={};for(const e of s.result)t[e.modelPath]=e.modelArtifactsInfo;e(t)},s.onerror=e=>(n.close(),t(s.error)),r.oncomplete=()=>n.close()},a.onerror=e=>t(a.error)}))}async removeModel(e){var t;return e=(t=e).startsWith(K.URL_SCHEME)?t.slice(K.URL_SCHEME.length):t,new Promise(((t,a)=>{const n=this.indexedDB.open(U,1);n.onupgradeneeded=()=>j(n),n.onsuccess=()=>{const r=n.result,s=r.transaction(q,"readwrite"),p=s.objectStore(q),i=p.get(e);let o;i.onsuccess=()=>{if(null==i.result)return r.close(),a(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{const n=p.delete(e),s=()=>{o=r.transaction(H,"readwrite");const n=o.objectStore(H).delete(e);n.onsuccess=()=>t(i.result.modelArtifactsInfo),n.onerror=e=>a(i.error)};n.onsuccess=s,n.onerror=e=>(s(),r.close(),a(i.error))}},i.onerror=e=>(r.close(),a(i.error)),s.oncomplete=()=>{null==o?r.close():o.oncomplete=()=>r.close()}},n.onerror=e=>a(n.error)}))}}const J="/",Q="tensorflowjs_models",Y="info",ee="model_topology",te="weight_specs",ae="weight_data",ne="model_metadata";function re(e){return{info:[Q,e,Y].join(J),topology:[Q,e,ee].join(J),weightSpecs:[Q,e,te].join(J),weightData:[Q,e,ae].join(J),modelMetadata:[Q,e,ne].join(J)}}function se(e){for(const t of Object.values(e))window.localStorage.removeItem(t)}function pe(e){const t=e.split(J);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(J)}class ie{constructor(e){if(!(0,b.OB)().getBool("IS_BROWSER")||"undefined"==typeof window||void 0===window.localStorage)throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==e||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=re(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{const t=JSON.stringify(e.modelTopology),a=JSON.stringify(e.weightSpecs),n=O(e);try{this.LS.setItem(this.keys.info,JSON.stringify(n)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,a),this.LS.setItem(this.keys.weightData,function(e){if(E)return Buffer.from(e).toString("base64");const t=new Uint8Array(e);let a="";for(let e=0,n=t.length;e{return(0,b.OB)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ie.URL_SCHEME)?(t=e.slice(ie.URL_SCHEME.length),new ie(t)):null;var t};R.registerSaveRouter(oe),R.registerLoadRouter(oe);class de{constructor(){(0,S.hu)((0,b.OB)().getBool("IS_BROWSER"),(()=>"Current environment is not a web browser")),(0,S.hu)("undefined"==typeof window||void 0!==window.localStorage,(()=>"Current browser does not appear to support localStorage")),this.LS=window.localStorage}async listModels(){const e={},t=Q+J,a=J+Y;for(let n=0;n"scheme must not be undefined or null.")),e.endsWith(le)&&(e=e.slice(0,e.indexOf(le))),(0,S.hu)(e.length>0,(()=>"scheme must not be an empty string."));const a=me.getInstance();(0,S.hu)(null==a.managers[e],(()=>`A model store manager is already registered for scheme '${e}'.`)),a.managers[e]=t}static getManager(e){const t=me.getInstance().managers[e];if(null==t)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(me.getInstance().managers)}}function ue(e){if(-1===e.indexOf(le))throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${me.getSchemes().join(",")}`);return{scheme:e.split(le)[0],path:e.split(le)[1]}}async function ce(e,t,a=!1){(0,S.hu)(e!==t,(()=>`Old path and new path are the same: '${e}'`));const n=R.getLoadHandlers(e);(0,S.hu)(n.length>0,(()=>`Copying failed because no load handler is found for source URL ${e}.`)),(0,S.hu)(n.length<2,(()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${e}.`));const r=n[0],s=R.getSaveHandlers(t);(0,S.hu)(s.length>0,(()=>`Copying failed because no save handler is found for destination URL ${t}.`)),(0,S.hu)(s.length<2,(()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`));const p=s[0],i=ue(e).scheme,o=ue(e).path,d=i===ue(e).scheme,l=await r.load();a&&d&&await me.getManager(i).removeModel(o);const m=await p.save(l);return a&&!d&&await me.getManager(i).removeModel(o),m.modelArtifactsInfo}async function he(){const e=me.getSchemes(),t={};for(const a of e){const e=await me.getManager(a).listModels();for(const n in e){t[a+le+n]=e[n]}}return t}async function fe(e){const t=ue(e);return me.getManager(t.scheme).removeModel(t.path)}async function ge(e,t){return ce(e,t,!1)}async function ye(e,t){return ce(e,t,!0)}class ve{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){window&&(0,b.OB)().getBool("USE_SETTIMEOUTCUSTOM")?(this.functionRefs.push(e),setTimeout((()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")}),t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",(e=>{if(e.source===window&&e.data.name===this.messageName){e.stopPropagation();(0,this.functionRefs[e.data.index])(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}}),!0))):setTimeout(e,t)}}if((0,b.OB)().get("IS_BROWSER")){(0,b.OB)().setPlatform("browser",new ve);try{me.registerManager(ie.URL_SCHEME,new de)}catch(e){}try{me.registerManager(K.URL_SCHEME,new Z)}catch(e){}}const be=()=>a(7854);let we;class Ne{constructor(){this.util=a(1669),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=(0,b.OB)().global.fetch?(0,b.OB)().global.fetch(e,t):(null==we&&(we=be()),we(e,t))}now(){const e=process.hrtime();return 1e3*e[0]+e[1]/1e6}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)}}(0,b.OB)().get("IS_NODE")&&!(0,b.OB)().get("IS_BROWSER")&&(0,b.OB)().setPlatform("node",new Ne);var ke=a(2657),Se=a(2271),_e=a(8723),Te=a(9798),xe=a(4077);(0,h.wv)();const Ie={buffer:ke.f,cast:Se.p,clone:_e.d,print:Te.S};(0,xe.Vp)(Ie);function Ee(e){return new Promise((e=>setTimeout(e))).then(e)}class De{constructor(e){if(!(0,b.OB)().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(De.URL_SCHEME)&&(e=e.slice(De.URL_SCHEME.length)),null!=e&&0!==e.length||(e="model"),this.modelJsonFileName=e+".json",this.weightDataFileName=e+".weights.bin"}async save(e){if("undefined"==typeof document)throw new Error("Browser downloads are not supported in this environment since `document` is not present");const t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{const a=M(e,[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}]),n=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),r=null==this.modelJsonAnchor?document.createElement("a"):this.modelJsonAnchor;if(r.download=this.modelJsonFileName,r.href=n,await Ee((()=>r.dispatchEvent(new MouseEvent("click")))),null!=e.weightData){const e=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor;e.download=this.weightDataFileName,e.href=t,await Ee((()=>e.dispatchEvent(new MouseEvent("click"))))}return{modelArtifactsInfo:O(e)}}}}De.URL_SCHEME="downloads://";class Ae{constructor(e){if(null==e||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise(((e,t)=>{const a=new FileReader;a.onload=a=>{const n=JSON.parse(a.target.result),r=n.modelTopology;if(null==r)return void t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));if(null==n.weightsManifest)return void t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));if(0===this.weightsFiles.length)return void e({modelTopology:r});const s=B(n,(e=>this.loadWeights(e)));e(s)},a.onerror=e=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),a.readAsText(this.jsonFile)}))}loadWeights(e){const t=[],a=[];for(const n of e)t.push(...n.weights),a.push(...n.paths);const n=this.checkManifestAndWeightFiles(e),r=a.map((e=>this.loadWeightsFile(e,n[e])));return Promise.all(r).then((e=>[t,A(e)]))}loadWeightsFile(e,t){return new Promise(((a,n)=>{const r=new FileReader;r.onload=e=>{const t=e.target.result;a(t)},r.onerror=t=>n(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)}))}checkManifestAndWeightFiles(e){const t=[],a=this.weightsFiles.map((e=>V(e.name))),n={};for(const r of e)r.paths.forEach((e=>{const r=V(e);if(-1!==t.indexOf(r))throw new Error(`Duplicate file basename found in weights manifest: '${r}'`);if(t.push(r),-1===a.indexOf(r))throw new Error(`Weight file with basename '${r}' is not provided.`);n[e]=this.weightsFiles[a.indexOf(r)]}));if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return n}}function Ve(e){return new Ae(e)}function Me(e,t,a,n){!function(e){(0,S.hu)(null!=e&&Array.isArray(e)&&e.length>0,(()=>"promises must be a none empty array"))}(e),function(e,t){(0,S.hu)(e>=0&&e<=1,(()=>`Progress fraction must be in range [0, 1], but got startFraction ${e}`)),(0,S.hu)(t>=0&&t<=1,(()=>`Progress fraction must be in range [0, 1], but got endFraction ${t}`)),(0,S.hu)(t>=e,(()=>`startFraction must be no more than endFraction, but got startFraction ${e} and endFraction ${t}`))}(a=null==a?0:a,n=null==n?1:n);let r=0;return Promise.all(e.map((s=>(s.then((s=>{const p=a+ ++r/e.length*(n-a);return t(p),s})),s))))}async function Fe(e,t){null==t&&(t={});const a=null==t.fetchFunc?(0,b.OB)().platform.fetch:t.fetchFunc,n=e.map((e=>a(e,t.requestInit,{isBinary:!0}))),r=(null==t.onProgress?await Promise.all(n):await Me(n,t.onProgress,0,.5)).map((e=>e.arrayBuffer()));return null==t.onProgress?await Promise.all(r):await Me(r,t.onProgress,.5,1)}async function Be(e,t="",a,n){return Oe((e=>Fe(e,{requestInit:n})))(e,t,a)}function Oe(e){return async(t,a="",n)=>{const r=t.map((()=>!1)),s={},p=null!=n?n.map((()=>!1)):[],i=[];if(t.forEach(((e,t)=>{let a=0;e.weights.forEach((e=>{const o="quantization"in e?e.quantization.dtype:e.dtype,d=_[o]*S.NA(e.shape),l=()=>{r[t]=!0,null==s[t]&&(s[t]=[]),s[t].push({manifestEntry:e,groupOffset:a,sizeBytes:d})};null!=n?n.forEach(((t,a)=>{t===e.name&&(l(),p[a]=!0)})):l(),i.push(e.name),a+=d}))})),!p.every((e=>e))){const e=n.filter(((e,t)=>!p[t]));throw new Error(`Could not find weights in manifest with names: ${e.join(", ")}. \nManifest JSON has weights with names: ${i.join(", ")}.`)}const o=r.reduce(((e,t,a)=>(t&&e.push(a),e)),[]),d=[];o.forEach((e=>{t[e].paths.forEach((e=>{const t=a+(a.endsWith("/")?"":"/")+e;d.push(t)}))}));const l=await e(d),m={};let u=0;return o.forEach((e=>{const a=t[e].paths.length;let n=0;for(let e=0;e{const t=x(r.slice(e.groupOffset,e.groupOffset+e.sizeBytes),[e.manifestEntry]);for(const e in t)m[e]=t[e]})),u+=a})),m}}R.registerSaveRouter((e=>(0,b.OB)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(De.URL_SCHEME)?function(e="model"){return new De(e)}(e.slice(De.URL_SCHEME.length)):null));class $e{constructor(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,null!=t.fetchFunc?((0,S.hu)("function"==typeof t.fetchFunc,(()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)")),this.fetch=t.fetchFunc):this.fetch=(0,b.OB)().platform.fetch,(0,S.hu)(null!=e&&e.length>0,(()=>"URL path for http must not be null, undefined or empty.")),Array.isArray(e)&&(0,S.hu)(2===e.length,(()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`)),this.path=e,null!=t.requestInit&&null!=t.requestInit.body)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;const a=M(e,[{paths:["./model.weights.bin"],weights:e.weightSpecs}]);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:"application/json"}),"model.json"),null!=e.weightData&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:"application/octet-stream"}),"model.weights.bin");const n=await this.fetch(this.path,t);if(n.ok)return{modelArtifactsInfo:O(e),responses:[n]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${n.status}.`)}async load(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(e){let t=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?t+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":t+=" Please make sure the server is serving valid JSON for this request.",new Error(t)}const a=t.modelTopology,n=t.weightsManifest;if(null==a&&null==n)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return B(t,(e=>this.loadWeights(e)))}async loadWeights(e){const t=Array.isArray(this.path)?this.path[1]:this.path,[a,n]=function(e){const t=e.lastIndexOf("/"),a=e.lastIndexOf("?"),n=e.substring(0,t),r=a>t?e.substring(a):"";return[n+"/",r]}(t),r=this.weightPathPrefix||a,s=$(e),p=[],i=[];for(const t of e)for(const e of t.paths)null!=this.weightUrlConverter?i.push(this.weightUrlConverter(e)):p.push(r+e+n);this.weightUrlConverter&&p.push(...await Promise.all(i));return[s,A(await Fe(p,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress}))]}}function Ce(e){return null!=e.match($e.URL_SCHEME_REGEX)}$e.URL_SCHEME_REGEX=/^https?:\/\//;const Re=(e,t)=>{if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc))return null;{let a=!0;if(a=Array.isArray(e)?e.every((e=>Ce(e))):Ce(e),a)return Pe(e,t)}return null};function Pe(e,t){return new $e(e,t)}function ze(e,t){return Pe(e,t)}R.registerSaveRouter(Re),R.registerLoadRouter(Re);class Le{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}}class We{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}}class Ue{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}}function He(e,t,a,n){const r=arguments;return new Ue(qe(...r))}function qe(e,t,a,n){if(1===arguments.length){return null!=e.modelTopology||null!=e.weightSpecs?new Le(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Le({modelTopology:e}))}return console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Le({modelTopology:e,weightSpecs:t,weightData:a,trainingConfig:n})}function Ge(e){return new We(e)}function je(e){return new We(e)}var Ke=a(3740),Xe=a(8687),Ze=a(6708),Je=a(2668),Qe=a(9065);const Ye=(0,Je.op)({confusionMatrix_:function(e,t,a){const n=(0,Ke._1)(e,"labels","confusionMatrix"),r=(0,Ke._1)(t,"predictions","confusionMatrix");S.hu(null==a||a>0&&Number.isInteger(a),(()=>`If provided, numClasses must be a positive integer, but got ${a}`)),S.hu(1===n.rank,(()=>`Expected the rank of labels to be 1, but got ${n.rank}`)),S.hu(1===r.rank,(()=>`Expected the rank of predictions to be 1, but got ${r.rank}`)),S.hu(n.shape[0]===r.shape[0],(()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`)),S.hu(a>0&&Number.isInteger(a),(()=>`numClasses is required to be a positive integer, but got ${a}`));const s=(0,Ze.l)((0,Se.p)(n,"int32"),a),p=(0,Ze.l)((0,Se.p)(r,"int32"),a),i=(0,Qe.p)(s),o=(0,Xe.O)(i,p);return(0,Se.p)(o,"int32")}});var et=a(2200),tt=a(9121),at=a(6151),nt=a(9906);let rt;function st(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(null==e)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let a=!1,n=!1,r=!1,s=!1,p=!1,i=!1;if(e.data instanceof Uint8Array)a=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)n=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)r=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)s=!0;else if(null!=e.getContext)p=!0;else{if(!("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap))throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);i=!0}if(null!=(0,at.pI)(tt.eBW,h.BV.backendName)){const a={pixels:e},n={numChannels:t};return h.BV.runKernel(tt.eBW,a,n)}const[o,d]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height];let l,m;if(p)l=e.getContext("2d").getImageData(0,0,o,d).data;else if(n||a)l=e.data;else if(s||r||i){if(null==rt)if("undefined"==typeof document){if("undefined"==typeof OffscreenCanvas||"undefined"==typeof OffscreenCanvasRenderingContext2D)throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");rt=new OffscreenCanvas(1,1).getContext("2d")}else rt=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});rt.canvas.width=o,rt.canvas.height=d,rt.drawImage(e,0,0,o,d),l=rt.getImageData(0,0,o,d).data}if(4===t)m=new Int32Array(l);else{const e=o*d;m=new Int32Array(e*t);for(let a=0;a4||2===s)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if("float32"!==a.dtype&&"int32"!==a.dtype)throw new Error(`Unsupported type for toPixels: ${a.dtype}. Please use float32 or int32 tensors.`);const p=await a.data(),i="float32"===a.dtype?255:1,o=new Uint8ClampedArray(r*n*4);for(let e=0;e1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${r}.`)}else if("int32"===a.dtype&&(r<0||r>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${r}.`);1===s?(t[0]=r*i,t[1]=r*i,t[2]=r*i):t[n]=r*i}const n=4*e;o[n+0]=Math.round(t[0]),o[n+1]=Math.round(t[1]),o[n+2]=Math.round(t[2]),o[n+3]=Math.round(t[3])}if(null!=t){t.width=r,t.height=n;const e=t.getContext("2d"),a=new ImageData(o,r,n);e.putImageData(a,0,0)}return a!==e&&a.dispose(),o}const dt=(0,Je.op)({fromPixels_:st});function lt(e,t){const a=e.shape.length,n=t.shape.length;if(a<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${a}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if("int32"!==t.dtype)throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>a)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${a}`);if(0===(0,S.NA)(e.shape))throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);const r=t.shape,s=r[r.length-1];let p=1;for(let e=0;ee/d)),1].slice(0,s);return[o,p,d,l]}var mt=a(3028);function ut(e,t,a){const n=e.shape.length;S.hu(n===t.length,(()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`)),S.hu(n===a.length,(()=>`Error in slice${n}D: Length of size ${a} must match the rank of the array (${n}).`));for(let r=0;r`Error in slice${n}D: begin[${r}] + size[${r}] (${t[r]+a[r]}) would overflow input.shape[${r}] (${e.shape[r]})`))}function ct(e){const t=[];let a=0;for(;e>0;)1&e&&t.push(a),e/=2,a++;return t}function ht(e,t,a){const n=[];for(let r=0;r0){const o=t[0],d=a+1;l=bt(p,o,d,n,e),m=wt(i,o,d,r,e),u=ft(s,o,d,e)}else for(let t=0;t-1)s[r]=0;else{const p=gt(t,a,r);let i=n[p];e&1<-1)s[r]=Number.MAX_SAFE_INTEGER;else{const p=gt(t,a,r);let i=n[p];e&1<0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);const o=n[r];return p<0&&(p+=o),p=S.uZ(0,p,o-1),p}function St(e,t,a,n,r,s){let p=t[r];const i=a[r]||1;(e&1<0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);const o=n[r];return p<0&&(p+=o),p=i>0?S.uZ(0,p,o):S.uZ(-1,p,o-1),p}function _t(e,t,a){let n=a.length;for(let e=0;e1){n=e;break}for(let r=n+1;r0||a[r]!==e[r])return!1;return!0}function Tt(e,t){let a=e.length>0?e[e.length-1]:1;for(let n=0;n{S.hu(-1!==e,(()=>"slice() does not support negative begin indexing."))})),s=null==a?new Array(r).fill(-1):"number"==typeof a?[a,...new Array(r-1).fill(-1)]:a.lengtht>=0?t:(S.hu(-1===t,(()=>`Negative size values should be exactly -1 but got ${t} for the slice() size at index ${a}.`)),e.shape[a]-n[a]))),[n,s]}function It(e,t,a,n,r,s,p,i,o){let d;if(null==n?(d=new Array(t.length),d.fill(1)):d=n,null!=p&&0!=(p&p-1))throw new Error("Multiple ellipses in slice is not allowed.");let l=!1;const m={dims:d.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:a.slice(),strides:d.slice(),beginMask:r,endMask:s,ellipsisMask:p,newAxisMask:i,shrinkAxisMask:o};for(let e=0;e0?0:-1,u.strides[t]>0?n:n-1];if(a&&u.strides[t]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&1===u.strides[t];const p=!!(u.beginMask&1<=n)throw Error(`slice index ${u.begin[t]} of dimension ${t} out of bounds.`)}else u.begin[t]=Et(u.begin[t],0,u.strides[t],n,r,s),u.end[t]=Et(u.end[t],1,u.strides[t],n,r,s);const e=1===u.strides[t]&&0===u.begin[t]&&u.end[t]===n;c=c&&e,h=h&&(0===t&&1===u.strides[t]||e)}else c=c&&1===u.strides[t]&&p,h=h&&(0===t&&1===u.strides[t]||p);let i,o=!1;if(u.beginValid&&u.endValid?(i=u.end[t]-u.begin[t],o=!0):a?(i=1,o=!0):p&&n>=0&&(i=u.strides[t]<0?-n:n,o=!0),o){let e;e=0===i||i<0!=u.strides[t]<0?0:Math.trunc(i/u.strides[t])+(i%u.strides[t]!=0?1:0),g.push(e)}else g.push(-1)}for(let e=0;e=0?y.push(g[t]):-2===t&&y.push(1)}return{finalShapeSparse:y.filter(((e,t)=>-2!==u.finalShapeGatherIndices[t])),finalShape:y,isIdentity:c,sliceDim0:h,isSimpleSlice:f,begin:u.begin,end:u.end,strides:u.strides}}function Et(e,t,a,n,r,s){if(r[t])return a>0?s[t]:s[t+1&1];{const t=e<0?n+e:e;return ts[1]?s[1]:t}}class Dt{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class At{constructor(){this.classNameMap={}}static getMap(){return null==At.instance&&(At.instance=new At),At.instance}static register(e){At.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function Vt(e){(0,S.hu)(null!=e.className,(()=>"Class being registered does not have the static className property defined.")),(0,S.hu)("string"==typeof e.className,(()=>"className is required to be a string, but got type "+typeof e.className)),(0,S.hu)(e.className.length>0,(()=>"Class being registered has an empty-string as its className, which is disallowed.")),At.register(e)}var Mt=a(747),Ft=a(9122);const Bt=.1;function Ot(e,t,a){return null==a&&(a=$t()),Ct(e,t,((e,t)=>Lt(e,t,a)))}function $t(){return 32===h.BV.backend.floatPrecision()?.001:Bt}function Ct(e,t,a){let n=!0;if(((0,S.fU)(e)||(0,S.fU)(t))&&(n=!1),(0,S.fU)(e)&&(0,S.fU)(t)&&(n=!0),n){const a=e.constructor.name,n=t.constructor.name;if(a!==n)throw new Error(`Arrays are of different type. Actual: ${a}. Expected: ${n}`)}if(Array.isArray(e)&&Array.isArray(t)){const a=(0,Ke.C)(e),n=(0,Ke.C)(t);if(!(0,S.cO)(a,n))throw new Error(`Arrays have different shapes. Actual: [${a}]. Expected: [${n}]`)}const r=(0,S.fU)(e)?e:(0,S.xH)(e),s=(0,S.fU)(t)?t:(0,S.xH)(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}.\nActual: ${r}.\nExpected: ${s}.`);for(let e=0;et.fail()),(()=>t())),"undefined"!=typeof expect&&expect().nothing()}function Pt(e,t){const a="string"==typeof t||"number"==typeof t||"boolean"==typeof t?[t]:t;return(0,S.HD)(e)||(0,S.HD)(e[0])||(0,S.HD)(t)||(0,S.HD)(t[0])?Ct(e,a,((e,t)=>e==t)):Ct(e,t,((e,t)=>Lt(e,t,0)))}function zt(e,t,a){if(null==a&&(a=$t()),!Lt(e,t,a))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);"undefined"!=typeof expect&&expect().nothing()}function Lt(e,t,a){return!isFinite(e)&&!isFinite(t)||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>a)}function Wt(e,t,a){for(let n=0;na)throw new Error(`Value out of range:${e[n]} low: ${t}, high: ${a}`)}function Ut(e,t){const a=new Float32Array(e),n=new Float32Array(t);if(a.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${a.length}`);for(let e=0;e{t.addEventListener("loadeddata",(a=>e(t))),t.load()}))}async function Gt(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise((t=>{e.requestVideoFrameCallback(t)}))}const jt="3.21.0";var Kt=a(4368),Xt=a(6407),Zt=a(1274),Jt=a(4841),Qt=a(3261),Yt=a(248),ea=a(6577),ta=a(633),aa=a(9494);class na extends Dt{minimize(e,t=!1,a){const{value:n,grads:r}=this.computeGradients(e,a);if(null!=a){const e=a.map((e=>({name:e.name,tensor:r[e.name]})));this.applyGradients(e)}else this.applyGradients(r);return(0,Kt.B9)(r),t?n:(n.dispose(),null)}get iterations(){return null==this.iterations_&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return(0,ta.pn)(e,t)}dispose(){null!=this.iterations_&&(0,Kt.B9)(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:(0,aa.i)(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(na,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients});class ra extends na{constructor(e,t,a=null){super(),this.learningRate=e,this.rho=t,this.epsilon=a,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==a&&(this.epsilon=h.BV.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,a)=>{const n=h.BV.registeredVariables[t];null==this.accumulatedGrads[a]&&(this.accumulatedGrads[a]={originalName:`${t}/accum_grad`,variable:(0,Kt.lu)((()=>(0,ea.P)(n).variable(false)))}),null==this.accumulatedUpdates[a]&&(this.accumulatedUpdates[a]={originalName:`${t}/accum_var`,variable:(0,Kt.lu)((()=>(0,ea.P)(n).variable(false)))});const r=Array.isArray(e)?e[a].tensor:e[t];if(null==r)return;const s=this.accumulatedGrads[a].variable,p=this.accumulatedUpdates[a].variable;(0,Kt.lu)((()=>{const e=(0,Xt.I)((0,Jt.d)(s,this.rho),(0,Jt.d)((0,Yt.h)(r),1-this.rho)),t=(0,Jt.d)((0,Zt.h)((0,Qt._)((0,Xt.I)(p,this.epsilon)),(0,Qt._)((0,Xt.I)(s,this.epsilon))),r),a=(0,Xt.I)((0,Jt.d)(p,this.rho),(0,Jt.d)((0,Yt.h)(t),1-this.rho));s.assign(e),p.assign(a);const i=(0,Xt.I)((0,Jt.d)(t,-this.learningRate),n);n.assign(i)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&((0,Kt.B9)(this.accumulatedGrads.map((e=>e.variable))),(0,Kt.B9)(this.accumulatedUpdates.map((e=>e.variable))))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){const t=(e=await this.extractIterations(e)).length/2;this.accumulatedGrads=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(false)}))),this.accumulatedUpdates=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(false)})))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}ra.className="Adadelta",Vt(ra);var sa=a(4006);class pa extends na{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,a)=>{const n=h.BV.registeredVariables[t];if(null==this.accumulatedGrads[a]){const e=!1;this.accumulatedGrads[a]={originalName:`${t}/accumulator`,variable:(0,Kt.lu)((()=>(0,sa.h)(n.shape,this.initialAccumulatorValue).variable(e)))}}const r=Array.isArray(e)?e[a].tensor:e[t];if(null==r)return;const s=this.accumulatedGrads[a].variable;(0,Kt.lu)((()=>{const e=(0,Xt.I)(s,(0,Yt.h)(r));s.assign(e);const t=(0,Xt.I)((0,Jt.d)((0,Zt.h)(r,(0,Qt._)((0,Xt.I)(e,h.BV.backend.epsilon()))),-this.learningRate),n);n.assign(t)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&(0,Kt.B9)(this.accumulatedGrads.map((e=>e.variable)))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);this.accumulatedGrads=e.map((e=>({originalName:e.name,variable:e.tensor.variable(false)})))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}pa.className="Adagrad",Vt(pa);var ia=a(3453),oa=a(827);class da extends na{constructor(e,t,a,n=null){super(),this.learningRate=e,this.beta1=t,this.beta2=a,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],(0,Kt.lu)((()=>{this.accBeta1=(0,aa.i)(t).variable(),this.accBeta2=(0,aa.i)(a).variable()})),null==n&&(this.epsilon=h.BV.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);(0,Kt.lu)((()=>{const a=(0,oa.l)(1,this.accBeta1),n=(0,oa.l)(1,this.accBeta2);t.forEach(((t,r)=>{const s=h.BV.registeredVariables[t];null==this.accumulatedFirstMoment[r]&&(this.accumulatedFirstMoment[r]={originalName:`${t}/m`,variable:(0,Kt.lu)((()=>(0,ea.P)(s).variable(false)))}),null==this.accumulatedSecondMoment[r]&&(this.accumulatedSecondMoment[r]={originalName:`${t}/v`,variable:(0,Kt.lu)((()=>(0,ea.P)(s).variable(false)))});const p=Array.isArray(e)?e[r].tensor:e[t];if(null==p)return;const i=this.accumulatedFirstMoment[r].variable,o=this.accumulatedSecondMoment[r].variable,d=(0,Xt.I)((0,Jt.d)(i,this.beta1),(0,Jt.d)(p,1-this.beta1)),l=(0,Xt.I)((0,Jt.d)(o,this.beta2),(0,Jt.d)((0,Yt.h)(p),1-this.beta2)),m=(0,Zt.h)(d,a),u=(0,Zt.h)(l,n);i.assign(d),o.assign(l);const c=(0,Xt.I)((0,Jt.d)((0,Zt.h)(m,(0,Xt.I)((0,Qt._)(u),this.epsilon)),-this.learningRate),s);s.assign(c)})),this.accBeta1.assign((0,Jt.d)(this.accBeta1,this.beta1)),this.accBeta2.assign((0,Jt.d)(this.accBeta2,this.beta2))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&(0,Kt.B9)(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedSecondMoment&&(0,Kt.B9)(this.accumulatedSecondMoment.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),(0,Kt.lu)((()=>{this.accBeta1.assign((0,ia.s)(this.beta1,this.iterations_+1)),this.accBeta2.assign((0,ia.s)(this.beta2,this.iterations_+1))}));const t=e.length/2;this.accumulatedFirstMoment=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(false)}))),this.accumulatedSecondMoment=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(false)})))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}da.className="Adam",Vt(da);var la=a(6235),ma=a(632);class ua extends na{constructor(e,t,a,n=null,r=0){super(),this.learningRate=e,this.beta1=t,this.beta2=a,this.epsilon=n,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],(0,Kt.lu)((()=>{this.iteration=(0,aa.i)(0).variable(),this.accBeta1=(0,aa.i)(t).variable()})),null==n&&(this.epsilon=h.BV.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);(0,Kt.lu)((()=>{const a=(0,oa.l)(1,this.accBeta1),n=(0,Zt.h)(-this.learningRate,(0,Xt.I)((0,Jt.d)(this.iteration,this.decay),1));t.forEach(((t,r)=>{const s=h.BV.registeredVariables[t];null==this.accumulatedFirstMoment[r]&&(this.accumulatedFirstMoment[r]={originalName:`${t}/m`,variable:(0,ea.P)(s).variable(false)}),null==this.accumulatedWeightedInfNorm[r]&&(this.accumulatedWeightedInfNorm[r]={originalName:`${t}/v`,variable:(0,ea.P)(s).variable(false)});const p=Array.isArray(e)?e[r].tensor:e[t];if(null==p)return;const i=this.accumulatedFirstMoment[r].variable,o=this.accumulatedWeightedInfNorm[r].variable,d=(0,Xt.I)((0,Jt.d)(i,this.beta1),(0,Jt.d)(p,1-this.beta1)),l=(0,Jt.d)(o,this.beta2),m=(0,la.W)(p),u=(0,ma.g)(l,m);i.assign(d),o.assign(u);const c=(0,Xt.I)((0,Jt.d)((0,Zt.h)(n,a),(0,Zt.h)(d,(0,Xt.I)(u,this.epsilon))),s);s.assign(c)})),this.iteration.assign((0,Xt.I)(this.iteration,1)),this.accBeta1.assign((0,Jt.d)(this.accBeta1,this.beta1))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&(0,Kt.B9)(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedWeightedInfNorm&&(0,Kt.B9)(this.accumulatedWeightedInfNorm.map((e=>e.variable)))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}ua.className="Adamax",Vt(ua);class ca extends na{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,a)=>{const n=Array.isArray(e)?e[a].tensor:e[t];if(null==n)return;const r=h.BV.registeredVariables[t];(0,Kt.lu)((()=>{const e=(0,Xt.I)((0,Jt.d)(this.c,n),r);r.assign(e)}))})),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=(0,Kt.Cn)((0,aa.i)(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(0!==(e=await this.extractIterations(e)).length)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}ca.className="SGD",Vt(ca);class ha extends ca{constructor(e,t,a=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=a,this.accumulations=[],this.m=(0,aa.i)(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,a)=>{const n=h.BV.registeredVariables[t];if(null==this.accumulations[a]){const e=!1;this.accumulations[a]={originalName:`${t}/momentum`,variable:(0,Kt.lu)((()=>(0,ea.P)(n).variable(e)))}}const r=this.accumulations[a].variable,s=Array.isArray(e)?e[a].tensor:e[t];null!=s&&(0,Kt.lu)((()=>{let e;const t=(0,Xt.I)((0,Jt.d)(this.m,r),s);e=this.useNesterov?(0,Xt.I)((0,Jt.d)(this.c,(0,Xt.I)(s,(0,Jt.d)(t,this.m))),n):(0,Xt.I)((0,Jt.d)(this.c,t),n),r.assign(t),n.assign(e)}))})),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&(0,Kt.B9)(this.accumulations.map((e=>e.variable)))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);this.accumulations=e.map((e=>({originalName:e.name,variable:e.tensor.variable(false)})))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}ha.className="Momentum",Vt(ha);class fa extends na{constructor(e,t=.9,a=0,n=null,r=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=a,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,null==n&&(this.epsilon=h.BV.backend.epsilon()),null==e)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,a)=>{const n=h.BV.registeredVariables[t],r=!1;null==this.accumulatedMeanSquares[a]&&(this.accumulatedMeanSquares[a]={originalName:`${t}/rms`,variable:(0,Kt.lu)((()=>(0,ea.P)(n).variable(r)))}),null==this.accumulatedMoments[a]&&(this.accumulatedMoments[a]={originalName:`${t}/momentum`,variable:(0,Kt.lu)((()=>(0,ea.P)(n).variable(r)))}),null==this.accumulatedMeanGrads[a]&&this.centered&&(this.accumulatedMeanGrads[a]={originalName:`${t}/mg`,variable:(0,Kt.lu)((()=>(0,ea.P)(n).variable(r)))});const s=Array.isArray(e)?e[a].tensor:e[t];if(null==s)return;const p=this.accumulatedMeanSquares[a].variable,i=this.accumulatedMoments[a].variable;(0,Kt.lu)((()=>{const e=(0,Xt.I)((0,Jt.d)(p,this.decay),(0,Jt.d)((0,Yt.h)(s),1-this.decay));if(this.centered){const t=this.accumulatedMeanGrads[a].variable,r=(0,Xt.I)((0,Jt.d)(t,this.decay),(0,Jt.d)(s,1-this.decay)),o=(0,Zt.h)((0,Jt.d)(s,this.learningRate),(0,Qt._)((0,oa.l)(e,(0,Xt.I)((0,Yt.h)(r),this.epsilon)))),d=(0,Xt.I)((0,Jt.d)(i,this.momentum),o);p.assign(e),t.assign(r),i.assign(d);const l=(0,oa.l)(n,d);n.assign(l)}else{const e=(0,Xt.I)((0,Jt.d)(p,this.decay),(0,Jt.d)((0,Yt.h)(s),1-this.decay)),t=(0,Xt.I)((0,Jt.d)(i,this.momentum),(0,Zt.h)((0,Jt.d)(s,this.learningRate),(0,Qt._)((0,Xt.I)(e,this.epsilon))));p.assign(e),i.assign(t);const a=(0,oa.l)(n,t);n.assign(a)}}))})),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&(0,Kt.B9)(this.accumulatedMeanSquares.map((e=>e.variable))),null!=this.accumulatedMeanGrads&&this.centered&&(0,Kt.B9)(this.accumulatedMeanGrads.map((e=>e.variable))),null!=this.accumulatedMoments&&(0,Kt.B9)(this.accumulatedMoments.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,a=!1;this.accumulatedMeanSquares=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(a)}))),this.accumulatedMoments=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(a)}))),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map((e=>({originalName:e.name,variable:e.tensor.variable(a)}))))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}fa.className="RMSProp",Vt(fa);class ga{static sgd(e){return new ca(e)}static momentum(e,t,a=!1){return new ha(e,t,a)}static rmsprop(e,t=.9,a=0,n=null,r=!1){return new fa(e,t,a,n,r)}static adam(e=.001,t=.9,a=.999,n=null){return new da(e,t,a,n)}static adadelta(e=.001,t=.95,a=null){return new ra(e,t,a)}static adamax(e=.002,t=.9,a=.999,n=null,r=0){return new ua(e,t,a,n,r)}static adagrad(e,t=.1){return new pa(e,t)}}var ya=a(1221),va=a(6522),ba=a(9876);const wa={sgd:ga.sgd,momentum:ga.momentum,adadelta:ga.adadelta,adagrad:ga.adagrad,rmsprop:ga.rmsprop,adamax:ga.adamax,adam:ga.adam},Na="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:e=>e();function ka(){return new Promise((e=>Na((()=>e()))))}var Sa=a(3591);function _a(e,t){const a=e[0].length;e.forEach(((e,t)=>{S.hu(e.length===a,(()=>`Error in concat${a}D: rank of tensors[${t}] must be the same as the rank of the rest (${a})`))})),S.hu(t>=0&&t`Error in concat${a}D: axis must be between 0 and ${a-1}.`));const n=e[0];e.forEach(((e,r)=>{for(let s=0;s`Error in concat${a}D: Shape of tensors[${r}] (${e}) does not match the shape of the rest (${n}) along the non-concatenated axis ${r}.`))}))}function Ta(e,t){const a=e[0].slice();for(let n=1;n=0)if(i>=0){if(i!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${i}`)}else n[p]=s}return n}function Aa(e){const t={FIRST_DIM_SIZE:xa.FIRST_DIM_SIZE,VALUE_ROWIDS:xa.VALUE_ROWIDS,ROW_LENGTHS:xa.ROW_LENGTHS,ROW_SPLITS:xa.ROW_SPLITS,ROW_LIMITS:xa.ROW_LIMITS,ROW_STARTS:xa.ROW_STARTS},a=[];for(const n of e){if(!(n in t))break;a.push(t[n])}return a}function Va(e){return 0===e.length?0:e[0]===xa.FIRST_DIM_SIZE?e.length-1:e.length}function Ma(e,t){if(null==e||null==t)return;const a=e.length,n=t.length;if(a>=n)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${a} must be less than ragged tensor input flatValues.rank = ${n})`);for(let r=0;r=0&&n>=0&&1!==a&&a!==n)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${a} but ragged tensor input.flatValues.shape[${r-e.length}] = ${n}`)}}!function(e){e[e.FIRST_DIM_SIZE=0]="FIRST_DIM_SIZE",e[e.VALUE_ROWIDS=1]="VALUE_ROWIDS",e[e.ROW_LENGTHS=2]="ROW_LENGTHS",e[e.ROW_SPLITS=3]="ROW_SPLITS",e[e.ROW_LIMITS=4]="ROW_LIMITS",e[e.ROW_STARTS=5]="ROW_STARTS"}(xa||(xa={}));const Fa=30;function Ba(e){return e<=Fa?e:(0,S.jP)(e,Math.floor(Math.sqrt(e)))}function Oa(e,t,a){return[a*("number"==typeof e?e:e[0]),t*("number"==typeof e?e:e[1])]}function $a(e,t,a,n=!0){let r=[];if(n)r=r.concat(t.slice(0)),r.push(e[0]/a),r=r.concat(e.slice(1));else{r=r.concat(e[0]);const a=t.length;for(let n=0;n=2*t+1||n%2==1?r.push(n):a.push(n);n.push(...a),n.push(0),n.push(...r)}return n}function Ra(e,t,a,n=!0){const r=[];n?r.push(e[0]/a):r.push(e[0]*a);for(let a=1;a/g;function pn(e,t){const a=((e=e.replace(/\s/g,"")).length-e.replace(sn,"").length)/rn.length;if(a<1)throw new Error("Equations without an arrow are not supported.");if(a>1)throw new Error('Equation must contain exactly one arrow ("->").');const[n,r]=e.split(rn);(0,S.hu)(-1===n.indexOf("..."),(()=>'The ellipsis notation ("...") is not supported yet.'));const s=n.split(","),p=s.length;if(t!==p)throw new Error(`Expected ${p} input tensors, received ${t}`);if(p>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");const i=[];for(let e=0;e-1!==e.indexOf(t))))throw new Error(`Output subscripts contain the label ${t} not present in the input subscripts.`);-1===i.indexOf(t)&&i.push(t)}for(let e=0;e-1!==e)),{permutationIndices:a,expandDims:n}}function dn(e,t,a){const n=new Array(e);for(let e=0;e`Expected dimension ${n[t[e][a]]} at axis ${a} of input shaped ${JSON.stringify(r)}, but got dimension ${r[a]}`))}}function ln(e,t){const a=e,n=[];let r=0;0===e.length&&a.push(-1),r=e.length+1;for(let e=0;ee===t))}function un(e,t){const a=[];for(let n=0;n"Number of splits must evenly divide the axis.")),n=new Array(t).fill(e.shape[a]/t);else{const r=t.reduce(((e,t)=>(-1===t&&(e+=1),e)),0);(0,S.hu)(r<=1,(()=>"There should be only one negative value in split array."));const s=t.indexOf(-1);if(-1!==s){const n=t.reduce(((e,t)=>t>0?e+t:e));t[s]=e.shape[a]-n}(0,S.hu)(e.shape[a]===t.reduce(((e,t)=>e+t)),(()=>"The sum of sizes must match the size of the axis dimension.")),n=t}return n}function hn(e){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${e}`}function fn(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function gn(e,t,a){return`indices(${e}, 0) is invalid: ${t} >= ${a}`}function yn(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function vn(e,t){return`size ${e} must be non-negative, not ${t}`}function bn(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function wn(e,t){return`Input to reshape is a SparseTensor with ${(0,S.NA)(e)}\n dense values, but the requested shape requires a multiple of ${(0,S.NA)(t)}. inputShape=${e} outputShape= ${t}`}function Nn(e,t){return`Input to reshape is a tensor with ${(0,S.NA)(e)} dense values, but the requested shape has ${(0,S.NA)(t)}. inputShape=${e} outputShape=${t}`}function kn(){return"segment ids must be >= 0"}function Sn(){return"segment ids are not increasing"}function _n(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function Tn(e,t,a){return`Bad: indices[${e}] == ${t} out of range [0, ${a})`}function xn(e,t){let a,n=!1;for(e<=Fa?(a=e,n=!0):a=(0,S.jP)(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=(0,S.jP)(e,a+1);return a}function In(e,t,a){const n=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${n}`);if(n<0&&(n+=r),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) (\n ${s}).`);if(a(0,Ft.decodeString)(e)))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function An(e){return e.map((e=>(0,Ft.encodeString)(e)))}var Vn=a(3337),Mn=a(8333),Fn=a(8713)},9121:(e,t,a)=>{"use strict";a.d(t,{SYM:()=>n,VGw:()=>r,SpW:()=>s,mm_:()=>p,Xze:()=>i,oT6:()=>o,IKK:()=>d,sJF:()=>l,aJk:()=>m,M2y:()=>u,qw7:()=>c,jMg:()=>h,Oyi:()=>f,QCc:()=>g,JhU:()=>y,ROF:()=>v,_k9:()=>b,IMb:()=>w,XLW:()=>N,zws:()=>k,zvY:()=>S,Ly9:()=>_,eEB:()=>T,RFZ:()=>x,gJX:()=>I,xnO:()=>E,Zz9:()=>D,yj2:()=>A,Eh3:()=>V,mhS:()=>M,wUP:()=>F,wm:()=>B,x12:()=>O,o2y:()=>$,ik2:()=>C,mc4:()=>R,TR1:()=>P,Byc:()=>z,iHb:()=>L,VcC:()=>W,QRR:()=>U,T0n:()=>H,cie:()=>q,sL$:()=>G,y7R:()=>j,$w:()=>K,p4S:()=>X,ekb:()=>Z,Vn9:()=>J,oHH:()=>Q,$g6:()=>Y,SX0:()=>ee,HEU:()=>te,Omj:()=>ae,hdR:()=>ne,NEP:()=>re,YFo:()=>se,Y0y:()=>pe,vwp:()=>ie,deh:()=>oe,Uyb:()=>de,OR:()=>le,jeX:()=>me,sHE:()=>ue,qi_:()=>ce,q1x:()=>he,iZT:()=>fe,Acj:()=>ge,iJz:()=>ye,Qg5:()=>ve,J_u:()=>be,avt:()=>we,iWB:()=>Ne,r7n:()=>ke,J$2:()=>Se,vtC:()=>_e,CAk:()=>Te,e7N:()=>xe,ZbH:()=>Ie,kU:()=>Ee,PYm:()=>De,VfG:()=>Ae,MZg:()=>Ve,w6g:()=>Me,qCd:()=>Fe,qIC:()=>Be,eZ0:()=>Oe,Hhh:()=>$e,YoZ:()=>Ce,BMI:()=>Re,mTV:()=>Pe,OV7:()=>ze,OAf:()=>Le,OU7:()=>We,vFR:()=>Ue,q2K:()=>He,c17:()=>qe,q8u:()=>Ge,jQs:()=>je,Vbg:()=>Ke,NZg:()=>Xe,wYn:()=>Ze,kuV:()=>Je,yQU:()=>Qe,uv1:()=>Ye,cye:()=>et,W0H:()=>tt,qWM:()=>at,we_:()=>nt,QiL:()=>rt,lyA:()=>st,Kgp:()=>pt,pe_:()=>it,o0g:()=>ot,DlI:()=>dt,dDz:()=>lt,BiW:()=>mt,e6w:()=>ut,xJR:()=>ct,$HU:()=>ht,qkr:()=>ft,HZH:()=>gt,dpD:()=>yt,Hmb:()=>vt,_Yw:()=>bt,zbQ:()=>wt,SbG:()=>Nt,mKl:()=>kt,e07:()=>St,bV0:()=>_t,xQA:()=>Tt,nr8:()=>xt,PhF:()=>It,oFR:()=>Et,p2w:()=>Dt,RQH:()=>At,wYB:()=>Vt,i5y:()=>Mt,a5O:()=>Ft,MRv:()=>Bt,FKq:()=>Ot,GBy:()=>$t,TQc:()=>Ct,L8s:()=>Rt,Gcp:()=>Pt,O3z:()=>zt,nhH:()=>Lt,w3H:()=>Wt,ZjV:()=>Ut,D2d:()=>Ht,_tC:()=>qt,bK0:()=>Gt,jQk:()=>jt,_JP:()=>Kt,s1s:()=>Xt,XkS:()=>Zt,Tr8:()=>Jt,sEM:()=>Qt,MIZ:()=>Yt,n9L:()=>ea,cWu:()=>ta,wx7:()=>aa,G3Y:()=>na,kpP:()=>ra,ToN:()=>sa,Qvg:()=>pa,XDQ:()=>ia,RuY:()=>oa,h8e:()=>da,eBW:()=>la,b9H:()=>ma,usg:()=>ua,_V0:()=>ca,luS:()=>ha});const n="Abs",r="Acos",s="Acosh",p="Add",i="AddN",o="All",d="Any",l="ArgMax",m="ArgMin",u="Asin",c="Asinh",h="Atan",f="Atanh",g="Atan2",y="AvgPool",v="AvgPoolGrad",b="AvgPool3D",w="AvgPool3DGrad",N="BatchMatMul",k="BatchToSpaceND",S="Bincount",_="BroadcastTo",T="BroadcastArgs",x="Cast",I="Ceil",E="ClipByValue",D="Complex",A="ComplexAbs",V="Concat",M="Conv2D",F="Conv2DBackpropFilter",B="Conv2DBackpropInput",O="Conv3D",$="Conv3DBackpropFilterV2",C="Conv3DBackpropInputV2",R="Cos",P="Cosh",z="Cumprod",L="Cumsum",W="CropAndResize",U="DenseBincount",H="DepthToSpace",q="DepthwiseConv2dNative",G="DepthwiseConv2dNativeBackpropFilter",j="DepthwiseConv2dNativeBackpropInput",K="Diag",X="Dilation2D",Z="Dilation2DBackpropInput",J="Dilation2DBackpropFilter",Q="RealDiv",Y="Einsum",ee="Elu",te="EluGrad",ae="Erf",ne="Equal",re="Exp",se="ExpandDims",pe="Expm1",ie="FFT",oe="Fill",de="FlipLeftRight",le="Floor",me="FloorDiv",ue="FusedBatchNorm",ce="GatherV2",he="GatherNd",fe="Greater",ge="GreaterEqual",ye="Identity",ve="IFFT",be="Imag",we="IsFinite",Ne="IsInf",ke="IsNan",Se="LeakyRelu",_e="Less",Te="LessEqual",xe="LinSpace",Ie="Log",Ee="Log1p",De="LogicalAnd",Ae="LogicalNot",Ve="LogicalOr",Me="LogicalXor",Fe="LogSoftmax",Be="LowerBound",Oe="LRN",$e="LRNGrad",Ce="Max",Re="Maximum",Pe="MaxPool",ze="MaxPoolGrad",Le="MaxPool3D",We="MaxPool3DGrad",Ue="MaxPoolWithArgmax",He="Mean",qe="Min",Ge="Minimum",je="MirrorPad",Ke="Mod",Xe="Multinomial",Ze="Multiply",Je="Neg",Qe="NotEqual",Ye="NonMaxSuppressionV3",et="NonMaxSuppressionV4",tt="NonMaxSuppressionV5",at="OnesLike",nt="OneHot",rt="Pack",st="PadV2",pt="Pool",it="Pow",ot="Prelu",dt="Prod",lt="RaggedGather",mt="RaggedTensorToTensor",ut="Range",ct="Real",ht="Reciprocal",ft="Relu",gt="Reshape",yt="ResizeNearestNeighbor",vt="ResizeNearestNeighborGrad",bt="ResizeBilinear",wt="ResizeBilinearGrad",Nt="Relu6",kt="Reverse",St="Round",_t="Rsqrt",Tt="ScatterNd",xt="SearchSorted",It="Select",Et="Selu",Dt="Slice",At="Sin",Vt="Sinh",Mt="Sign",Ft="Sigmoid",Bt="Softplus",Ot="Sqrt",$t="Sum",Ct="SpaceToBatchND",Rt="SplitV",Pt="Softmax",zt="SparseFillEmptyRows",Lt="SparseReshape",Wt="SparseSegmentMean",Ut="SparseSegmentSum",Ht="SparseToDense",qt="SquaredDifference",Gt="Square",jt="StridedSlice",Kt="StringNGrams",Xt="StringSplit",Zt="StringToHashBucketFast",Jt="Sub",Qt="Tan",Yt="Tanh",ea="Tile",ta="TopK",aa="Transform",na="Transpose",ra="Unique",sa="Unpack",pa="UnsortedSegmentSum",ia="UpperBound",oa="ZerosLike",da="Step",la="FromPixels",ma="RotateWithOffset",ua="_FusedMatMul",ca="FusedConv2D",ha="FusedDepthwiseConv2D"},6151:(e,t,a)=>{"use strict";a.d(t,{pI:()=>o,uk:()=>d,tr:()=>l,wC:()=>m,Li:()=>u,nE:()=>c,bt:()=>h,T3:()=>f});var n=a(2885),r=a(5938),s=a(4706);const p=(0,r.R)("kernelRegistry",(()=>new Map)),i=(0,r.R)("gradRegistry",(()=>new Map));function o(e,t){const a=g(e,t);return p.get(a)}function d(e){return i.get(e)}function l(e){const t=p.entries(),a=[];for(;;){const{done:n,value:r}=t.next();if(n)break;const[s,p]=r,[i]=s.split("_");i===e&&a.push(p)}return a}function m(e){const{kernelName:t,backendName:a}=e,n=g(t,a);p.has(n)&&s.Z(`The kernel '${t}' for backend '${a}' is already registered`),p.set(n,e)}function u(e){const{kernelName:t}=e;i.has(t)&&(0,n.OB)().getBool("DEBUG")&&s.Z(`Overriding the gradient for '${t}'`),i.set(t,e)}function c(e,t){const a=g(e,t);if(!p.has(a))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);p.delete(a)}function h(e){if(!i.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);i.delete(e)}function f(e,t){l(e).forEach((e=>{m(Object.assign({},e,{backendName:t}))}))}function g(e,t){return`${t}_${e}`}},4706:(e,t,a)=>{"use strict";a.d(t,{Z:()=>r,c:()=>s});var n=a(2885);function r(...e){(0,n.OB)().getBool("IS_TEST")||(0,n.OB)().getBool("PROD")||console.warn(...e)}function s(...e){(0,n.OB)().getBool("IS_TEST")||(0,n.OB)().getBool("PROD")||console.log(...e)}},6235:(e,t,a)=>{"use strict";a.d(t,{W:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({abs_:function(e){const t=(0,s._1)(e,"x","abs");if("complex64"===t.dtype){const e={x:t};return n.BV.runKernel(r.yj2,e)}{const e={x:t};return n.BV.runKernel(r.SYM,e)}}})},6407:(e,t,a)=>{"use strict";a.d(t,{I:()=>i});var n=a(7097),r=a(9121),s=a(747),p=a(3740);const i=(0,a(2668).op)({add_:function(e,t){let a=(0,p._1)(e,"a","add"),i=(0,p._1)(t,"b","add");[a,i]=(0,s.makeTypesMatch)(a,i);const o={a,b:i};return n.BV.runKernel(r.mm_,o)}})},3591:(e,t,a)=>{"use strict";a.d(t,{YB:()=>r,Vh:()=>s,kz:()=>p,rv:()=>i,lB:()=>o,Q3:()=>d,LJ:()=>l,sY:()=>m});var n=a(569);function r(e,t){for(let a=0;ae[t]))]}function i(e,t){return s(e,t.map((e=>1)),t)}function o(e,t,a){n.hu(r(t,a),(()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${a} input.`))}function d(e,t){if(r(e,t))return null;const a=[];for(let n=0;na.push(e))),a}function l(e){return e.map(((e,t)=>[t,e])).sort(((e,t)=>e[1]-t[1])).map((e=>e[0]))}function m(e,t){const a=[];for(let n=t-e;n{"use strict";function n(e,t){const a=e.length,n=[];for(let r=0;r1&&1===p&&n.unshift(s)}return n}function r(e,t){const a=[];for(let n=0;n1)&&a.unshift(s)}return a}function s(e,t){const a=[],n=Math.max(e.length,t.length);for(let r=0;rn,getReductionAxes:()=>r,assertAndGetBroadcastShape:()=>s})},2657:(e,t,a)=>{"use strict";a.d(t,{f:()=>s});var n=a(4077),r=a(569);function s(e,t="float32",a){return t=t||"float32",r.Mu(e),new n.YD(e,t,a)}},2271:(e,t,a)=>{"use strict";a.d(t,{p:()=>i});var n=a(7097),r=a(9121),s=a(3740),p=a(569);const i=(0,a(2668).op)({cast_:function(e,t){const a=(0,s._1)(e,"x","cast");if(!p.LP(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if("string"===t&&"string"!==a.dtype||"string"!==t&&"string"===a.dtype)throw new Error("Only strings can be casted to strings");const i={x:a},o={dtype:t};return n.BV.runKernel(r.RFZ,i,o)}})},8723:(e,t,a)=>{"use strict";a.d(t,{d:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({clone_:function(e){const t={x:(0,s._1)(e,"x","clone","string_or_numeric")};return n.BV.runKernel(r.iJz,t)}})},1661:(e,t,a)=>{"use strict";a.d(t,{P:()=>i});var n=a(7097),r=a(9121),s=a(3740),p=a(569);const i=(0,a(2668).op)({complex_:function(e,t){const a=(0,s._1)(e,"real","complex"),i=(0,s._1)(t,"imag","complex");p.k5(a.shape,i.shape,`real and imag shapes, ${a.shape} and ${i.shape}, must match in call to tf.complex().`);const o={real:a,imag:i};return n.BV.runKernel(r.Zz9,o)}})},2582:(e,t,a)=>{"use strict";a.d(t,{Rf:()=>r,Xw:()=>s,pl:()=>p,Ix:()=>i,jw:()=>o,aO:()=>d,I0:()=>h,jT:()=>f,sl:()=>g,m:()=>y});var n=a(569);function r(e,t,a,n,r="NHWC",s){return i(e,[...t,e[3]],a,s,n,null,null,g(r))}function s(e,t,a,n,r,s,p="channelsLast"){const[o,d]=l(t);let m;if("channelsLast"===p)m=[o,d,e[3],e[3]];else{if("channelsFirst"!==p)throw new Error(`Unknown dataFormat ${p}`);m=[o,d,e[1],e[1]]}return i(e,m,a,n,r,s,!1,p)}function p(e,t,a,n,r,s,p="NDHWC"){const[i,d,l]=m(t);let u,c;if("NDHWC"===p)c="channelsLast",u=[i,d,l,e[4],e[4]];else{if("NCDHW"!==p)throw new Error(`Unknown dataFormat ${p}`);c="channelsFirst",u=[i,d,l,e[1],e[1]]}return o(e,u,a,n,r,!1,c,s)}function i(e,t,a,n,r,s,p=!1,i="channelsLast"){let[o,m,h,f]=[-1,-1,-1,-1];if("channelsLast"===i)[o,m,h,f]=e;else{if("channelsFirst"!==i)throw new Error(`Unknown dataFormat ${i}`);[o,f,m,h]=e}const[g,y,,v]=t,[b,w]=l(a),[N,k]=l(n),S=u(g,N),_=u(y,k),{padInfo:T,outHeight:x,outWidth:I}=function(e,t,a,n,r,s,p,i,o){let l,m,u;if("number"==typeof e){l={top:e,bottom:e,left:e,right:e,type:0===e?"VALID":"NUMBER"};const r=function(e,t,a,n,r){null==n&&(n=d(e,t,a));const s=e[0],p=e[1],i=c((s-t+2*n)/a+1,r),o=c((p-t+2*n)/a+1,r);return[i,o]}([t,a],s,n,e,i);m=r[0],u=r[1]}else if("same"===e){m=Math.ceil(t/n),u=Math.ceil(a/r);const e=Math.max(0,(m-1)*n+s-t),i=Math.max(0,(u-1)*r+p-a),o=Math.floor(e/2),d=e-o,c=Math.floor(i/2);l={top:o,bottom:d,left:c,right:i-c,type:"SAME"}}else if("valid"===e)l={top:0,bottom:0,left:0,right:0,type:"VALID"},m=Math.ceil((t-s+1)/n),u=Math.ceil((a-p+1)/r);else{if("object"!=typeof e)throw Error(`Unknown padding parameter: ${e}`);{const d="channelsLast"===o?e[1][0]:e[2][0],h="channelsLast"===o?e[1][1]:e[2][1],f="channelsLast"===o?e[2][0]:e[3][0],g="channelsLast"===o?e[2][1]:e[3][1];l={top:d,bottom:h,left:f,right:g,type:0===d&&0===h&&0===f&&0===g?"VALID":"EXPLICIT"},m=c((t-s+d+h)/n+1,i),u=c((a-p+f+g)/r+1,i)}}return{padInfo:l,outHeight:m,outWidth:u}}(r,m,h,b,w,S,_,s,i),E=p?v*f:v;let D;return"channelsFirst"===i?D=[o,E,x,I]:"channelsLast"===i&&(D=[o,x,I,E]),{batchSize:o,dataFormat:i,inHeight:m,inWidth:h,inChannels:f,outHeight:x,outWidth:I,outChannels:E,padInfo:T,strideHeight:b,strideWidth:w,filterHeight:g,filterWidth:y,effectiveFilterHeight:S,effectiveFilterWidth:_,dilationHeight:N,dilationWidth:k,inShape:e,outShape:D,filterShape:t}}function o(e,t,a,n,r,s=!1,p="channelsLast",i){let[o,l,h,f,g]=[-1,-1,-1,-1,-1];if("channelsLast"===p)[o,l,h,f,g]=e;else{if("channelsFirst"!==p)throw new Error(`Unknown dataFormat ${p}`);[o,g,l,h,f]=e}const[y,v,b,,w]=t,[N,k,S]=m(a),[_,T,x]=m(n),I=u(y,_),E=u(v,T),D=u(b,x),{padInfo:A,outDepth:V,outHeight:M,outWidth:F}=function(e,t,a,n,r,s,p,i,o,l,m){let u,h,f,g;if("number"==typeof e){u={top:e,bottom:e,left:e,right:e,front:e,back:e,type:0===e?"VALID":"NUMBER"};const s=function(e,t,a,n,r,s){null==r&&(r=d(e,t,n));const p=e[0],i=e[1],o=e[2],l=c((p-t+2*r)/n+1,s),m=c((i-t+2*r)/n+1,s),u=c((o-t+2*r)/n+1,s);return[l,m,u,a]}([t,a,n,1],i,1,r,e,m);h=s[0],f=s[1],g=s[2]}else if("same"===e){h=Math.ceil(t/r),f=Math.ceil(a/s),g=Math.ceil(n/p);const e=(h-1)*r+i-t,d=(f-1)*s+o-a,m=(g-1)*p+l-n,c=Math.floor(e/2),y=e-c,v=Math.floor(d/2),b=d-v,w=Math.floor(m/2);u={top:v,bottom:b,left:w,right:m-w,front:c,back:y,type:"SAME"}}else{if("valid"!==e)throw Error(`Unknown padding parameter: ${e}`);u={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},h=Math.ceil((t-i+1)/r),f=Math.ceil((a-o+1)/s),g=Math.ceil((n-l+1)/p)}return{padInfo:u,outDepth:h,outHeight:f,outWidth:g}}(r,l,h,f,N,k,S,I,E,D,i),B=s?w*g:w;let O;return"channelsFirst"===p?O=[o,B,V,M,F]:"channelsLast"===p&&(O=[o,V,M,F,B]),{batchSize:o,dataFormat:p,inDepth:l,inHeight:h,inWidth:f,inChannels:g,outDepth:V,outHeight:M,outWidth:F,outChannels:B,padInfo:A,strideDepth:N,strideHeight:k,strideWidth:S,filterDepth:y,filterHeight:v,filterWidth:b,effectiveFilterDepth:I,effectiveFilterHeight:E,effectiveFilterWidth:D,dilationDepth:_,dilationHeight:T,dilationWidth:x,inShape:e,outShape:O,filterShape:t}}function d(e,t,a,n=1){const r=u(t,n);return Math.floor((e[0]*(a-1)-a+r)/2)}function l(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function m(e){return"number"==typeof e?[e,e,e]:e}function u(e,t){return t<=1?e:e+(e-1)*(t-1)}function c(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function h(e){const[t,a,n]=l(e);return 1===t&&1===a&&1===n}function f(e,t){return h(e)||h(t)}function g(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function y(e,t,a){if(null!=a){if("string"==typeof t)throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${a} but got pad ${t}.`);if("number"==typeof t)n.hu(n.GN(t),(()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${a} but got pad ${t}.`));else{if("object"!=typeof t)throw Error(`Error in ${e}: Unknown padding parameter: ${t}`);t.forEach((t=>{t.forEach((t=>{n.hu(n.GN(t),(()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${a} but got pad ${t}.`))}))}))}}}},1274:(e,t,a)=>{"use strict";a.d(t,{h:()=>o});var n=a(7097),r=a(9121),s=a(747),p=a(3740),i=a(9165);const o=(0,a(2668).op)({div_:function(e,t){let a=(0,p._1)(e,"a","div"),o=(0,p._1)(t,"b","div");if([a,o]=(0,s.makeTypesMatch)(a,o),"int32"===a.dtype&&"int32"===o.dtype)return(0,i.q)(a,o);const d={a,b:o};return n.BV.runKernel(r.oHH,d,{})}})},3233:(e,t,a)=>{"use strict";a.d(t,{p:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({elu_:function(e){const t={x:(0,s._1)(e,"x","elu","float32")};return n.BV.runKernel(r.SX0,t)}})},4006:(e,t,a)=>{"use strict";a.d(t,{h:()=>s});var n=a(7097),r=a(9121);function s(e,t,a){const s={shape:e,value:t,dtype:a};return n.BV.runKernel(r.deh,{},s)}},9165:(e,t,a)=>{"use strict";a.d(t,{q:()=>i});var n=a(7097),r=a(9121),s=a(747),p=a(3740);const i=(0,a(2668).op)({floorDiv_:function(e,t){let a=(0,p._1)(e,"a","floorDiv"),i=(0,p._1)(t,"b","floorDiv");[a,i]=(0,s.makeTypesMatch)(a,i);const o={a,b:i};return n.BV.runKernel(r.jeX,o)}})},9323:(e,t,a)=>{"use strict";a.d(t,{Fr:()=>h,pf:()=>f,QH:()=>g,uy:()=>y});var n=a(2200),r=a(3233),s=a(9133),p=a(4841),i=a(8151),o=a(7409),d=a(3582),l=a(4968),m=a(625),u=a(1901),c=a(5475);function h(e,t,a){if(null==a||"linear"===a)return e;if("relu"===a)return(0,p.d)(e,(0,u.N)(t));throw new Error(`Cannot compute gradient for fused activation ${a}.`)}function f(e,t){let a=t;const r=n.getReductionAxes(e.shape,t.shape);return r.length>0&&(a=(0,c.S)(a,r)),(0,l.X)(a,e.shape)}function g(e,t,a,n){if("linear"===t)return e;if("relu"===t)return(0,o.U)(e);if("elu"===t)return(0,r.p)(e);if("relu6"===t)return(0,d.b)(e);if("prelu"===t)return(0,i.A)(e,a);if("leakyrelu"===t)return(0,s.h)(e,n);if("sigmoid"===t)return(0,m.X)(e);throw new Error(`Unknown fused activation ${t}.`)}const y=(e,t)=>!(e>0)||"linear"===t},4386:(e,t,a)=>{"use strict";a.d(t,{a:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({imag_:function(e){const t={input:(0,s._1)(e,"input","imag")};return n.BV.runKernel(r.J_u,t)}})},9133:(e,t,a)=>{"use strict";a.d(t,{h:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({leakyRelu_:function(e,t=.2){const a={x:(0,s._1)(e,"x","leakyRelu")},p={alpha:t};return n.BV.runKernel(r.J$2,a,p)}})},9876:(e,t,a)=>{"use strict";var n;a.d(t,{I:()=>n}),function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"}(n||(n={}))},8687:(e,t,a)=>{"use strict";a.d(t,{O:()=>i});var n=a(7097),r=a(9121),s=a(747),p=a(3740);const i=(0,a(2668).op)({matMul_:function(e,t,a=!1,i=!1){let o=(0,p._1)(e,"a","matMul"),d=(0,p._1)(t,"b","matMul");[o,d]=(0,s.makeTypesMatch)(o,d);const l={a:o,b:d},m={transposeA:a,transposeB:i};return n.BV.runKernel(r.XLW,l,m)}})},632:(e,t,a)=>{"use strict";a.d(t,{g:()=>d});var n=a(7097),r=a(9121),s=a(747),p=a(3740),i=a(2200),o=a(2271);const d=(0,a(2668).op)({maximum_:function(e,t){let a=(0,p._1)(e,"a","maximum"),d=(0,p._1)(t,"b","maximum");[a,d]=(0,s.makeTypesMatch)(a,d),"bool"===a.dtype&&(a=(0,o.p)(a,"int32"),d=(0,o.p)(d,"int32")),(0,i.assertAndGetBroadcastShape)(a.shape,d.shape);const l={a,b:d};return n.BV.runKernel(r.BMI,l)}})},4841:(e,t,a)=>{"use strict";a.d(t,{d:()=>i});var n=a(7097),r=a(9121),s=a(747),p=a(3740);const i=(0,a(2668).op)({mul_:function(e,t){let a=(0,p._1)(e,"a","mul"),i=(0,p._1)(t,"b","mul");[a,i]=(0,s.makeTypesMatch)(a,i);const o={a,b:i};return n.BV.runKernel(r.wYn,o)}})},7370:(e,t,a)=>{"use strict";a.d(t,{W:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({neg_:function(e){const t={x:(0,s._1)(e,"x","neg")};return n.BV.runKernel(r.kuV,t)}})},6708:(e,t,a)=>{"use strict";a.d(t,{l:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({oneHot_:function(e,t,a=1,p=0,i="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);const o={indices:(0,s._1)(e,"indices","oneHot","int32")},d={dtype:i,depth:t,onValue:a,offValue:p};return n.BV.runKernel(r.we_,o,d)}})},2668:(e,t,a)=>{"use strict";a.d(t,{z:()=>s,op:()=>p});var n=a(7097),r=a(569);const s="__op";function p(e){const t=Object.keys(e);if(1!==t.length)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let a=t[0];const p=e[a];a.endsWith("_")&&(a=a.substring(0,a.length-1)),a+=s;const i=(...e)=>{n.BV.startScope(a);try{const t=p(...e);return(0,r.tI)(t)&&console.error("Cannot return a Promise inside of tidy."),n.BV.endScope(t),t}catch(e){throw n.BV.endScope(null),e}};return Object.defineProperty(i,"name",{value:a,configurable:!0}),i}},6522:(e,t,a)=>{"use strict";a.d(t,{zvA:()=>o.z,WnP:()=>r.W,Khb:()=>d,__u:()=>l,IHx:()=>m.I,QBD:()=>c,$6P:()=>h,YjB:()=>f,NqF:()=>g,vHJ:()=>y,ZRM:()=>v,VfV:()=>b,z4N:()=>w,fvJ:()=>k,C80:()=>S,wS1:()=>I,uR5:()=>E,zEQ:()=>$,tgs:()=>R,Dxk:()=>P,JY5:()=>z,p3b:()=>L,E4h:()=>C,yE8:()=>W,anm:()=>tn,XsQ:()=>U,UFq:()=>H,f3b:()=>q.f,pju:()=>_.p,mDi:()=>G,iUl:()=>K,d9v:()=>D.d,PYB:()=>X.P,zoF:()=>A,gME:()=>Z,Izb:()=>J,MNy:()=>Q,ZaL:()=>Y,PAt:()=>te,Tek:()=>ee,bc:()=>ne,pdZ:()=>re,$QV:()=>pe,mCk:()=>ie,f9Y:()=>oe,mew:()=>mn,$Gn:()=>de,zbp:()=>le,ppE:()=>me,nTT:()=>ue,B10:()=>ce,Ka3:()=>he,WmZ:()=>fe,hiC:()=>ge.h,NTj:()=>Ne,AKD:()=>ke,rvX:()=>dn,WYO:()=>Se,pyx:()=>_e.p,GRh:()=>ln,DgJ:()=>ve,qNN:()=>Te,d2q:()=>$e,Qqt:()=>Ce,dt4:()=>Re,t$B:()=>Pe,iyy:()=>Le,kp_:()=>Ia,hlL:()=>j.h,GWj:()=>We,qPi:()=>Ue.q,imm:()=>n,Iqj:()=>He,dbB:()=>on,pjt:()=>qe,brS:()=>Ge,Sxn:()=>Ea,asL:()=>je.a,BHj:()=>lr,V3u:()=>un,wx0:()=>Da,xVT:()=>Ke,UWc:()=>Xe,i2d:()=>Ze,hi7:()=>Je.h,d9m:()=>Qe,zN1:()=>Ye,$r2:()=>mr,SX3:()=>et,G9k:()=>tt,cM7:()=>at,Krr:()=>nt,e_t:()=>it,CmS:()=>dt,l_t:()=>lt,HvI:()=>mt,hJK:()=>ut,K5V:()=>ct,egP:()=>ht,MB5:()=>ur,eab:()=>yt,OI3:()=>V.O,Fp7:()=>Ie,_sB:()=>vt,YQQ:()=>bt,Ip$:()=>wt,gWQ:()=>Nt.g,J69:()=>kt,ry_:()=>xt,VV$:()=>Ee,LTh:()=>It,VdP:()=>Et,wQq:()=>Dt,Gi7:()=>At,p_:()=>nn,dC7:()=>M.d,rq4:()=>Vt,SJ_:()=>Mt,W76:()=>st.W,KOy:()=>Oe,Quu:()=>Ft,lfX:()=>Bt.l,iUs:()=>_t,JpU:()=>Ot,op:()=>o.op,N2O:()=>$t,vku:()=>Ct,pNR:()=>Rt,koy:()=>Pt,t1L:()=>zt,lGY:()=>Lt,d_R:()=>Ut,sQ3:()=>De.s,AL3:()=>Ht.A,S0v:()=>qt.S,WVs:()=>Gt,$gW:()=>jt,N89:()=>Kt,TN_:()=>Xt,wzB:()=>ea,nGf:()=>ta,ruB:()=>aa,LGj:()=>na,w6H:()=>ra,kwC:()=>sa.k,M25:()=>pa,UYe:()=>ia.U,btT:()=>oa.b,XLQ:()=>x.X,GYS:()=>da,SDf:()=>la,diP:()=>ma,sx7:()=>ua,mG2:()=>ca,QEs:()=>Va,NMM:()=>ha,bp0:()=>fa,iD$:()=>Ae.i,snQ:()=>sn,zcT:()=>gt,U8D:()=>ga,U_I:()=>ya,ODp:()=>va,XD2:()=>F.X,Xxe:()=>ba,tdS:()=>dr,O$l:()=>wa,R_K:()=>Na,tPi:()=>B,jZU:()=>ka,SmN:()=>Sa,CnO:()=>_a,p0P:()=>Ta,XAC:()=>xa,Wvh:()=>pt,fBT:()=>Wt,rVs:()=>cr,ers:()=>pn,uN7:()=>or,Vl2:()=>Aa,_b3:()=>Ve._,h62:()=>Me.h,$i:()=>Ma,L9e:()=>Fa,knu:()=>Ba,Nbs:()=>Oa.N,NXj:()=>$a,Z_8:()=>hr,luU:()=>ot.l,Smz:()=>Fe.S,ORZ:()=>Ca,AEp:()=>O,XeE:()=>Ra.X,RRF:()=>za,odF:()=>La,wOQ:()=>Wa.w,yXz:()=>Ua,Bfx:()=>Ha,xZs:()=>qa,Gg6:()=>ze,hg7:()=>Ga,p4s:()=>an.p,Xu6:()=>ja,Two:()=>Ka,pUJ:()=>Xa,HHK:()=>Za,GaM:()=>Ja,VD$:()=>Qa,arb:()=>be,itS:()=>en,lls:()=>St,P84:()=>we.P});var n={};a.r(n),a.d(n,{conv2d:()=>fn,depthwiseConv2d:()=>vn,matMul:()=>bn});var r=a(6235),s=a(7097),p=a(9121),i=a(3740),o=a(2668);const d=(0,o.op)({acos_:function(e){const t={x:(0,i._1)(e,"x","acos")};return s.BV.runKernel(p.VGw,t)}});const l=(0,o.op)({acosh_:function(e){const t={x:(0,i._1)(e,"x","acosh")};return s.BV.runKernel(p.SpW,t)}});var m=a(6407),u=a(569);const c=(0,o.op)({addN_:function(e){u.hu(Array.isArray(e),(()=>"The argument passed to tf.addN() must be a list of tensors")),u.hu(e.length>=1,(()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`));const t=e.map(((e,t)=>(0,i._1)(e,`tensors${t}`,"addN"))),a=t[0];t.forEach((e=>{if(e.dtype!==a.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")})),t.forEach((e=>{if(!u.cO(e.shape,a.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")}));const n=t;return s.BV.runKernel(p.Xze,n)}});const h=(0,o.op)({all_:function(e,t=null,a=!1){const n={x:(0,i._1)(e,"x","all","bool")},r={axis:t,keepDims:a};return s.BV.runKernel(p.oT6,n,r)}});const f=(0,o.op)({any_:function(e,t=null,a=!1){const n={x:(0,i._1)(e,"x","any","bool")},r={axis:t,keepDims:a};return s.BV.runKernel(p.IKK,n,r)}});const g=(0,o.op)({argMax_:function(e,t=0){const a={x:(0,i._1)(e,"x","argMax")},n={axis:t};return s.BV.runKernel(p.sJF,a,n)}});const y=(0,o.op)({argMin_:function(e,t=0){const a={x:(0,i._1)(e,"x","argMin")},n={axis:t};return s.BV.runKernel(p.aJk,a,n)}});const v=(0,o.op)({asin_:function(e){const t={x:(0,i._1)(e,"x","asin")};return s.BV.runKernel(p.M2y,t)}});const b=(0,o.op)({asinh_:function(e){const t={x:(0,i._1)(e,"x","asinh")};return s.BV.runKernel(p.qw7,t)}});const w=(0,o.op)({atan_:function(e){const t={x:(0,i._1)(e,"x","atan")};return s.BV.runKernel(p.jMg,t)}});var N=a(747);const k=(0,o.op)({atan2_:function(e,t){let a=(0,i._1)(e,"a","atan2"),n=(0,i._1)(t,"b","atan2");[a,n]=(0,N.makeTypesMatch)(a,n);const r={a,b:n};return s.BV.runKernel(p.QCc,r)}});const S=(0,o.op)({atanh_:function(e){const t={x:(0,i._1)(e,"x","atanh")};return s.BV.runKernel(p.Oyi,t)}});var _=a(2271),T=a(2582),x=a(4968);const I=(0,o.op)({avgPool_:function(e,t,a,n,r){const o=(0,i._1)(e,"x","avgPool","float32");u.hu(T.jT(a,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '1'`));let d=o,l=!1;3===o.rank&&(l=!0,d=(0,x.X)(o,[1,o.shape[0],o.shape[1],o.shape[2]])),u.hu(4===d.rank,(()=>`Error in avgPool: x must be rank 4 but got rank ${d.rank}.`)),T.m("avgPool",n,r);const m={x:d},c={filterSize:t,strides:a,pad:n,dimRoundingMode:r};let h=s.BV.runKernel(p.JhU,m,c);return h=(0,_.p)(h,o.dtype),l?(0,x.X)(h,[h.shape[1],h.shape[2],h.shape[3]]):h}});const E=(0,o.op)({avgPool3d_:function(e,t,a,n,r,o="NDHWC"){const d=(0,i._1)(e,"x","avgPool3d","float32");let l=d,m=!1;4===d.rank&&(m=!0,l=(0,x.X)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),u.hu(5===l.rank,(()=>`Error in avgPool3d: x must be rank 5 but got rank ${l.rank}.`)),u.hu("NDHWC"===o,(()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${o}`)),(0,T.m)("avgPool3d",n,r);const c={x:l},h={filterSize:t,strides:a,pad:n,dimRoundingMode:r,dataFormat:o};let f=s.BV.runKernel(p._k9,c,h);return f=(0,_.p)(f,l.dtype),m?(0,x.X)(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}});var D=a(8723);const A=(0,o.op)({concat_:function(e,t=0){(0,u.hu)(e.length>=1,(()=>"Pass at least one tensor to concat"));const a=(0,i.sI)(e,"tensors","concat","string_or_numeric");if("complex64"===a[0].dtype&&a.forEach((e=>{if("complex64"!==e.dtype)throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${e.dtype}. `)})),1===a.length)return(0,D.d)(a[0]);const n=a,r={axis:t};return s.BV.runKernel(p.Eh3,n,r)}});var V=a(8687),M=a(4841),F=a(625);const B=(0,o.op)({slice_:function(e,t,a){const n=(0,i._1)(e,"x","slice","string_or_numeric");if(0===n.rank)throw new Error("Slicing scalar is not possible");const r={x:n},o={begin:t,size:a};return s.BV.runKernel(p.p2w,r,o)}});const O=(0,o.op)({tanh_:function(e){const t={x:(0,i._1)(e,"x","tanh","float32")};return s.BV.runKernel(p.MIZ,t)}});const $=(0,o.op)({basicLSTMCell_:function(e,t,a,n,r,s){const p=(0,i._1)(e,"forgetBias","basicLSTMCell"),o=(0,i._1)(t,"lstmKernel","basicLSTMCell"),d=(0,i._1)(a,"lstmBias","basicLSTMCell"),l=(0,i._1)(n,"data","basicLSTMCell"),u=(0,i._1)(r,"c","basicLSTMCell"),c=(0,i._1)(s,"h","basicLSTMCell"),h=A([l,c],1),f=(0,V.O)(h,o),g=(0,m.I)(f,d),y=g.shape[0],v=g.shape[1]/4,b=[y,v],w=B(g,[0,0],b),N=B(g,[0,v],b),k=B(g,[0,2*v],b),S=B(g,[0,3*v],b),_=(0,m.I)((0,M.d)((0,F.X)(w),O(N)),(0,M.d)(u,(0,F.X)((0,m.I)(p,k))));return[_,(0,M.d)(O(_),(0,F.X)(S))]}});const C=(0,o.op)({batchToSpaceND_:function(e,t,a){const n=(0,i._1)(e,"x","batchToSpaceND"),r=t.reduce(((e,t)=>e*t));u.hu(n.rank>=1+t.length,(()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`)),u.hu(a.length===t.length,(()=>`crops.length is ${a.length} but should be equal to blockShape.length ${t.length}`)),u.hu(n.shape[0]%r==0,(()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`));const o={x:n},d={blockShape:t,crops:a};return s.BV.runKernel(p.zws,o,d)}});const R=(0,o.op)({batchNorm_:function(e,t,a,n,r,o){null==o&&(o=.001);const d=(0,i._1)(e,"x","batchNorm"),l=(0,i._1)(t,"mean","batchNorm"),m=(0,i._1)(a,"variance","batchNorm");let c,h;null!=r&&(c=(0,i._1)(r,"scale","batchNorm")),null!=n&&(h=(0,i._1)(n,"offset","batchNorm")),u.hu(l.rank===m.rank,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),u.hu(null==h||l.rank===h.rank,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),u.hu(null==c||l.rank===c.rank,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));const f=function(e){let t;return t=0===e.rank||1===e.rank?(0,x.X)(e,[1,1,1,e.size]):2===e.rank?(0,x.X)(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?(0,x.X)(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e,t}(d),g={x:f,scale:c,offset:h,mean:l,variance:m},y={varianceEpsilon:o},v=s.BV.runKernel(p.sHE,g,y);return(0,x.X)(v,d.shape)}});const P=(0,o.op)({batchNorm2d_:function(e,t,a,n,r,s){const p=(0,i._1)(e,"x","batchNorm"),o=(0,i._1)(t,"mean","batchNorm"),d=(0,i._1)(a,"variance","batchNorm");let l,m;return null!=r&&(l=(0,i._1)(r,"scale","batchNorm")),null!=n&&(m=(0,i._1)(n,"offset","batchNorm")),u.hu(2===p.rank,(()=>`Error in batchNorm2D: x must be rank 2 but got rank ${p.rank}.`)),u.hu(2===o.rank||1===o.rank,(()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`)),u.hu(2===d.rank||1===d.rank,(()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${d.rank}.`)),null!=l&&u.hu(2===l.rank||1===l.rank,(()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.rank}.`)),null!=m&&u.hu(2===m.rank||1===m.rank,(()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${m.rank}.`)),R(p,o,d,m,l,s)}});const z=(0,o.op)({batchNorm3d_:function(e,t,a,n,r,s){const p=(0,i._1)(e,"x","batchNorm"),o=(0,i._1)(t,"mean","batchNorm"),d=(0,i._1)(a,"variance","batchNorm");let l,m;return null!=r&&(l=(0,i._1)(r,"scale","batchNorm")),null!=n&&(m=(0,i._1)(n,"offset","batchNorm")),u.hu(3===p.rank,(()=>`Error in batchNorm3D: x must be rank 3 but got rank ${p.rank}.`)),u.hu(3===o.rank||1===o.rank,(()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`)),u.hu(3===d.rank||1===d.rank,(()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${d.rank}.`)),null!=l&&u.hu(3===l.rank||1===l.rank,(()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.rank}.`)),null!=m&&u.hu(3===m.rank||1===m.rank,(()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${m.rank}.`)),R(p,o,d,m,l,s)}});const L=(0,o.op)({batchNorm4d_:function(e,t,a,n,r,s){const p=(0,i._1)(e,"x","batchNorm"),o=(0,i._1)(t,"mean","batchNorm"),d=(0,i._1)(a,"variance","batchNorm");let l,m;return null!=r&&(l=(0,i._1)(r,"scale","batchNorm")),null!=n&&(m=(0,i._1)(n,"offset","batchNorm")),u.hu(4===p.rank,(()=>`Error in batchNorm4D: x must be rank 4 but got rank ${p.rank}.`)),u.hu(4===o.rank||1===o.rank,(()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`)),u.hu(4===d.rank||1===d.rank,(()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${d.rank}.`)),null!=l&&u.hu(4===l.rank||1===l.rank,(()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.rank}.`)),null!=m&&u.hu(4===m.rank||1===m.rank,(()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${m.rank}.`)),R(p,o,d,m,l,s)}});const W=(0,o.op)({bincount_:function(e,t,a){const n=(0,i._1)(e,"x","bincount"),r=(0,i._1)(t,"weights","bincount");u.hu("int32"===n.dtype,(()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`)),u.hu(a>=0,(()=>`size must be non-negative, but got ${a}.`)),u.hu(r.size===n.size||0===r.size,(()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${r.shape}.`));const o={x:n,weights:r},d={size:a};return s.BV.runKernel(p.zvY,o,d)}});const U=(0,o.op)({broadcastArgs_:function(e,t){const a=(0,i._1)(e,"s0","broadcastArgs","int32"),n=(0,i._1)(t,"s1","broadcastArgs","int32");if(1!==a.rank)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${a.rank}`);if(1!==n.rank)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);const r={s0:a,s1:n};return s.BV.runKernel(p.eEB,r)}});const H=(0,o.op)({broadcastTo_:function(e,t){let a=(0,i._1)(e,"broadcastTo","x");const n=a.shape;if(t.some((e=>!(e>0)||e%1!=0)))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengtha.rank){const e=a.shape.slice();for(;e.length=0;e--)if(r[e]===t[e])o[e]=1;else if(1!==a.shape[e])throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(0===o.map(((e,t)=>e>1?t:-1)).filter((e=>e>=0)).length)return(0,D.d)(a);const d={x:a},l={reps:o};return s.BV.runKernel(p.n9L,d,l)}});var q=a(2657);const G=(0,o.op)({ceil_:function(e){const t={x:(0,i._1)(e,"x","ceil","float32")};return s.BV.runKernel(p.gJX,t)}});var j=a(4006);const K=(0,o.op)({clipByValue_:function(e,t,a){const n=(0,i._1)(e,"x","clipByValue");if(u.hu(t<=a,(()=>`Error in clip: min (${t}) must be less than or equal to max (${a}).`)),t===a)return(0,j.h)(n.shape,t,n.dtype);const r={x:n},o={clipValueMin:t,clipValueMax:a};return s.BV.runKernel(p.xnO,r,o)}});var X=a(1661);const Z=(0,o.op)({concat1d_:function(e){return A(e,0)}});const J=(0,o.op)({concat2d_:function(e,t){return A(e,t)}});const Q=(0,o.op)({concat3d_:function(e,t){return A(e,t)}});const Y=(0,o.op)({concat4d_:function(e,t){return A(e,t)}});const ee=(0,o.op)({conv2d_:function(e,t,a,n,r="NHWC",o=[1,1],d){const l=(0,i._1)(e,"x","conv2d","float32"),m=(0,i._1)(t,"filter","conv2d","float32");let c=l,h=!1;3===l.rank&&(h=!0,c=(0,x.X)(l,[1,l.shape[0],l.shape[1],l.shape[2]])),u.hu(4===c.rank,(()=>`Error in conv2d: input must be rank 4, but got rank ${c.rank}.`)),u.hu(4===m.rank,(()=>`Error in conv2d: filter must be rank 4, but got rank ${m.rank}.`)),T.m("conv2d",n,d);const f="NHWC"===r?c.shape[3]:c.shape[1];u.hu(f===m.shape[2],(()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${m.shape[2]}.`)),u.hu(T.jT(a,o),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${a} and dilations '${o}'`));const g={x:c,filter:m},y={strides:a,pad:n,dataFormat:r,dilations:o,dimRoundingMode:d},v=s.BV.runKernel(p.mhS,g,y);return h?(0,x.X)(v,[v.shape[1],v.shape[2],v.shape[3]]):v}});const te=(0,o.op)({conv1d_:function(e,t,a,n,r="NWC",s=1,p){const o=(0,i._1)(e,"x","conv1d"),d=(0,i._1)(t,"filter","conv1d");let l=o,m=!1;2===o.rank&&(m=!0,l=(0,x.X)(o,[1,o.shape[0],o.shape[1]])),u.hu(3===l.rank,(()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`)),u.hu(3===d.rank,(()=>`Error in conv1d: filter must be rank 3, but got rank ${d.rank}.`)),T.m("conv1d",n,p),u.hu(l.shape[2]===d.shape[1],(()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${d.shape[1]}.`)),u.hu(T.jT(a,s),(()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${a} and dilation '${s}'`)),u.hu("NWC"===r,(()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`));const c=(0,x.X)(d,[1,d.shape[0],d.shape[1],d.shape[2]]),h=(0,x.X)(l,[l.shape[0],1,l.shape[1],l.shape[2]]),f=ee(h,c,[1,a],n,"NHWC",[1,s],p);return m?(0,x.X)(f,[f.shape[2],f.shape[3]]):(0,x.X)(f,[f.shape[0],f.shape[2],f.shape[3]])}});const ae=(0,o.op)({conv2DBackpropInput_:function(e,t,a,n,r,i="NHWC",o){u.hu(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let d=e,l=t,m=!1;3===t.rank&&(m=!0,l=(0,x.X)(t,[1,t.shape[0],t.shape[1],t.shape[2]]),d=[1,e[0],e[1],e[2]]),u.hu(4===d.length,(()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${d.length}.`)),u.hu(4===l.rank,(()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`)),u.hu(4===a.rank,(()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${a.rank}`));const c="NHWC"===i?d[3]:d[1],h="NHWC"===i?l.shape[3]:l.shape[1];u.hu(c===a.shape[2],(()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${a.shape[2]}.`)),u.hu(h===a.shape[3],(()=>`Error in conv2dDerInput: depth of output (${h}) must match output depth for filter ${a.shape[3]}.`)),T.m("conv2dDerInput",r,o);const f={dy:l,filter:a},g={strides:n,pad:r,dataFormat:i,dimRoundingMode:o,inputShape:d},y=s.BV.runKernel(p.wm,f,g);return m?(0,x.X)(y,[y.shape[1],y.shape[2],y.shape[3]]):y}});const ne=(0,o.op)({conv2dTranspose_:function(e,t,a,n,r,s){const p=(0,i._1)(e,"x","conv2dTranspose"),o=(0,i._1)(t,"filter","conv2dTranspose");return ae(a,p,o,n,r,"NHWC",s)}});const re=(0,o.op)({conv3d_:function(e,t,a,n,r="NDHWC",o=[1,1,1]){const d=(0,i._1)(e,"x","conv3d"),l=(0,i._1)(t,"filter","conv3d");let m=d,c=!1;4===d.rank&&(c=!0,m=(0,x.X)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),u.hu(5===m.rank,(()=>`Error in conv3d: input must be rank 5, but got rank ${m.rank}.`)),u.hu(5===l.rank,(()=>`Error in conv3d: filter must be rank 5, but got rank ${l.rank}.`)),u.hu(m.shape[4]===l.shape[3],(()=>`Error in conv3d: depth of input (${m.shape[4]}) must match input depth for filter ${l.shape[3]}.`)),u.hu((0,T.jT)(a,o),(()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${a} and dilations '${o}'`)),u.hu("NDHWC"===r,(()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`));const h={x:m,filter:l},f={strides:a,pad:n,dataFormat:r,dilations:o},g=s.BV.runKernel(p.x12,h,f);return c?(0,x.X)(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}});const se=(0,o.op)({conv3DBackpropInput_:function(e,t,a,n,r){u.hu(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let i=e,o=t,d=!1;4===t.rank&&(d=!0,o=(0,x.X)(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),i=[1,e[0],e[1],e[2],e[3]]);const l=i[4],m=o.shape[4];u.hu(5===i.length,(()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${i.length}.`)),u.hu(5===o.rank,(()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${o.rank}`)),u.hu(5===a.rank,(()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${a.rank}`)),u.hu(l===a.shape[3],(()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${a.shape[3]}.`)),u.hu(m===a.shape[4],(()=>`Error in conv3dDerInput: depth of output (${m}) must match output depth for filter ${a.shape[4]}.`));const c={dy:o,filter:a},h={pad:r,strides:n,inputShape:i},f=s.BV.runKernel(p.ik2,c,h);return d?(0,x.X)(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}});const pe=(0,o.op)({conv3dTranspose_:function(e,t,a,n,r){const s=(0,i._1)(e,"x","conv3dTranspose"),p=(0,i._1)(t,"filter","conv3dTranspose");return se(a,s,p,n,r)}});const ie=(0,o.op)({cos_:function(e){const t={x:(0,i._1)(e,"x","cos","float32")};return s.BV.runKernel(p.mc4,t)}});const oe=(0,o.op)({cosh_:function(e){const t={x:(0,i._1)(e,"x","cosh","float32")};return s.BV.runKernel(p.TR1,t)}});const de=(0,o.op)({cumprod_:function(e,t=0,a=!1,n=!1){const r={x:(0,i._1)(e,"x","cumprod")},o={axis:t,exclusive:a,reverse:n};return s.BV.runKernel(p.Byc,r,o)}});const le=(0,o.op)({cumsum_:function(e,t=0,a=!1,n=!1){const r={x:(0,i._1)(e,"x","cumsum")},o={axis:t,exclusive:a,reverse:n};return s.BV.runKernel(p.iHb,r,o)}});const me=(0,o.op)({denseBincount_:function(e,t,a,n=!1){const r=(0,i._1)(e,"x","denseBincount"),o=(0,i._1)(t,"weights","denseBincount");u.hu("int32"===r.dtype,(()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`)),u.hu(r.rank<=2,(()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`)),u.hu(a>=0,(()=>`size must be non-negative, but got ${a}.`)),u.hu(o.size===r.size||0===o.size,(()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${o.shape}.`));const d={x:r,weights:o},l={size:a,binaryOutput:n};return s.BV.runKernel(p.QRR,d,l)}});const ue=(0,o.op)({depthToSpace_:function(e,t,a="NHWC"){const n=(0,i._1)(e,"x","depthToSpace","float32"),r="NHWC"===a?n.shape[1]:n.shape[2],o="NHWC"===a?n.shape[2]:n.shape[3],d="NHWC"===a?n.shape[3]:n.shape[1];u.hu(t>1,(()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`)),u.hu(r*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${r} and ${t} for depthToSpace with input shape\n ${n.shape}`)),u.hu(o*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${o} and ${t} for depthToSpace with input shape\n ${n.shape}`)),u.hu(d%(t*t)==0,(()=>`Dimension size must be evenly divisible by ${t*t} but is ${d} for depthToSpace with input shape ${n.shape}`));const l={x:n},m={blockSize:t,dataFormat:a};return s.BV.runKernel(p.T0n,l,m)}});const ce=(0,o.op)({depthwiseConv2d_:function(e,t,a,n,r="NHWC",o=[1,1],d){const l=(0,i._1)(e,"x","depthwiseConv2d","float32"),m=(0,i._1)(t,"filter","depthwiseConv2d","float32");let c=l,h=!1;3===l.rank&&(h=!0,c=(0,x.X)(l,[1,l.shape[0],l.shape[1],l.shape[2]])),u.hu(4===c.rank,(()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${c.rank}.`)),u.hu(4===m.rank,(()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`));const f="NHWC"===r?c.shape[3]:c.shape[1];u.hu(f===m.shape[2],(()=>`Error in depthwiseConv2d: number of input channels (${f}) must match the inChannels dimension in filter ${m.shape[2]}.`)),T.m("depthwiseConv2d",n,d);const g={x:c,filter:m},y={strides:a,pad:n,dataFormat:r,dilations:o,dimRoundingMode:d},v=s.BV.runKernel(p.cie,g,y);return h?(0,x.X)(v,[v.shape[1],v.shape[2],v.shape[3]]):v}});const he=(0,o.op)({diag_:function(e){const t={x:(0,i._1)(e,"x","diag")};return s.BV.runKernel(p.$w,t)}});const fe=(0,o.op)({dilation2d_:function(e,t,a,n,r=[1,1],o="NHWC"){const d=(0,i._1)(e,"x","dilation2d"),l=(0,i._1)(t,"filter","dilation2d");u.hu(3===d.rank||4===d.rank,(()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${d.rank}.`)),u.hu(3===l.rank,(()=>`Error in dilation2d: filter must be rank 3, but got rank ${l.rank}.`)),u.hu("NHWC"===o,(()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${o}`));let m=d,c=!1;3===d.rank&&(m=(0,x.X)(d,[1,d.shape[0],d.shape[1],d.shape[2]]),c=!0);const h={x:m,filter:l},f={strides:a,pad:n,dilations:r},g=s.BV.runKernel(p.p4S,h,f);return c?(0,x.X)(g,[g.shape[1],g.shape[2],g.shape[3]]):g}});var ge=a(1274),ye=a(2200);const ve=(0,o.op)({equal_:function(e,t){let a=(0,i._1)(e,"a","equal","string_or_numeric"),n=(0,i._1)(t,"b","equal","string_or_numeric");[a,n]=(0,N.makeTypesMatch)(a,n),(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape);const r={a,b:n};return s.BV.runKernel(p.hdR,r)}});const be=(0,o.op)({where_:function(e,t,a){const n=(0,i._1)(t,"a","where"),r=(0,i._1)(a,"b","where"),o=(0,i._1)(e,"condition","where","bool"),d=(0,ye.assertAndGetBroadcastShape)((0,ye.assertAndGetBroadcastShape)(o.shape,n.shape),r.shape),l={condition:H(o,d),t:H(n,d),e:H(r,d)};return s.BV.runKernel(p.PhF,l)}});var we=a(6577);const Ne=(0,o.op)({divNoNan_:function(e,t){let a=(0,i._1)(e,"a","div"),n=(0,i._1)(t,"b","div");[a,n]=(0,N.makeTypesMatch)(a,n);const r=(0,ge.h)(a,n),s=(0,we.P)(r),p=ve(n,s);return be(p,s,r)}});const ke=(0,o.op)({dot_:function(e,t){const a=(0,i._1)(e,"t1","dot"),n=(0,i._1)(t,"t2","dot");u.hu(!(1!==a.rank&&2!==a.rank||1!==n.rank&&2!==n.rank),(()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${a.rank} and ${n.rank}.`));const r=1===a.rank?a.size:a.shape[1],s=1===n.rank?n.size:n.shape[0];if(u.hu(r===s,(()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`)),1===a.rank&&1===n.rank){const e=(0,x.X)(a,[1,-1]),t=(0,x.X)(n,[-1,1]),r=(0,V.O)(e,t);return(0,x.X)(r,[])}if(1===a.rank&&2===n.rank){const e=(0,x.X)(a,[1,-1]),t=(0,x.X)(n,[n.shape[0],n.shape[1]]),r=(0,V.O)(e,t);return(0,x.X)(r,[r.size])}if(2===a.rank&&1===n.rank){const e=(0,x.X)(n,[-1,1]),t=(0,V.O)(a,e);return(0,x.X)(t,[t.size])}{const e=(0,x.X)(n,[n.shape[0],n.shape[1]]);return(0,V.O)(a,e)}}});const Se=(0,o.op)({einsum_:function(e,...t){const a=t.map(((e,t)=>(0,i._1)(e,`tensors${t}`,"einsum"))),n={equation:e};return s.BV.runKernel(p.$g6,a,n)}});var _e=a(3233);const Te=(0,o.op)({erf_:function(e){let t=(0,i._1)(e,"x","erf");u.hu("int32"===t.dtype||"float32"===t.dtype,(()=>"Input dtype must be `int32` or `float32`.")),"int32"===t.dtype&&(t=(0,_.p)(t,"float32"));const a={x:t};return s.BV.runKernel(p.Omj,a)}});var xe=a(3591);const Ie=(0,o.op)({max_:function(e,t=null,a=!1){const n={x:(0,i._1)(e,"x","max")},r={reductionIndices:t,keepDims:a};return s.BV.runKernel(p.YoZ,n,r)}});const Ee=(0,o.op)({min_:function(e,t=null,a=!1){const n={x:(0,i._1)(e,"x","min")},r={axis:t,keepDims:a};return s.BV.runKernel(p.c17,n,r)}});var De=a(3453),Ae=a(9494),Ve=a(3261),Me=a(248),Fe=a(5475);function Be(e,t,a=null){if(0===e.rank)return(0,r.W)(e);if(1!==e.rank&&null===a)return Be((0,x.X)(e,[-1]),t,a);if(1===e.rank||"number"==typeof a||Array.isArray(a)&&1===a.length){if(1===t)return(0,Fe.S)((0,r.W)(e),a);if(t===1/0)return Ie((0,r.W)(e),a);if(t===-1/0)return Ee((0,r.W)(e),a);if("euclidean"===t||2===t)return(0,Ve._)((0,Fe.S)((0,De.s)((0,r.W)(e),(0,Ae.i)(2,"int32")),a));throw new Error(`Error in norm: invalid ord value: ${t}`)}if(Array.isArray(a)&&2===a.length){if(1===t)return Ie((0,Fe.S)((0,r.W)(e),a[0]),a[1]-1);if(t===1/0)return Ie((0,Fe.S)((0,r.W)(e),a[1]),a[0]);if(t===-1/0)return Ee((0,Fe.S)((0,r.W)(e),a[1]),a[0]);if("fro"===t||"euclidean"===t)return(0,Ve._)((0,Fe.S)((0,Me.h)(e),a));throw new Error(`Error in norm: invalid ord value: ${t}`)}throw new Error(`Error in norm: invalid axis: ${a}`)}const Oe=(0,o.op)({norm_:function(e,t="euclidean",a=null,n=!1){const r=Be(e=(0,i._1)(e,"x","norm"),t,a);let s=r.shape;if(n){const t=(0,u.EC)(a,e.shape);s=xe.rv(r.shape,t)}return(0,x.X)(r,s)}});const $e=(0,o.op)({euclideanNorm_:function(e,t=null,a=!1){return Oe(e,"euclidean",t,a)}});const Ce=(0,o.op)({exp_:function(e){const t={x:(0,i._1)(e,"x","exp")};return s.BV.runKernel(p.NEP,t)}});const Re=(0,o.op)({expandDims_:function(e,t=0){const a=(0,i._1)(e,"x","expandDims","string_or_numeric");u.hu(t<=a.rank,(()=>"Axis must be <= rank of the tensor"));const n={input:a},r={dim:t};return s.BV.runKernel(p.YFo,n,r)}});const Pe=(0,o.op)({expm1_:function(e){const t={x:(0,i._1)(e,"x","expm1")};return s.BV.runKernel(p.Y0y,t)}});const ze=(0,o.op)({tile_:function(e,t){const a=(0,i._1)(e,"x","tile","string_or_numeric");u.hu(a.rank===t.length,(()=>`Error in transpose: rank of input ${a.rank} must match length of reps ${t}.`));const n={x:a},r={reps:t};return s.BV.runKernel(p.n9L,n,r)}});const Le=(0,o.op)({eye_:function(e,t,a,n="float32"){null==t&&(t=e);const r=(0,q.f)([e,t],n),s=e<=t?e:t;for(let e=0;e`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${o.rank}.`)),u.hu(u.GN(t),(()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`));let d=o,l=!1;3===o.rank&&(l=!0,d=(0,x.X)(o,[1,o.shape[0],o.shape[1],o.shape[2]]));const m={x:d},c={depthRadius:t,bias:a,alpha:n,beta:r},h=s.BV.runKernel(p.eZ0,m,c);return l?(0,x.X)(h,[h.shape[1],h.shape[2],h.shape[3]]):h}});const at=(0,o.op)({log_:function(e){const t={x:(0,i._1)(e,"x","log","float32")};return s.BV.runKernel(p.ZbH,t)}});const nt=(0,o.op)({log1p_:function(e){const t={x:(0,i._1)(e,"x","log1p")};return s.BV.runKernel(p.kU,t)}});var rt=a(633),st=a(7370);const pt=(0,o.op)({softplus_:function(e){const t={x:(0,i._1)(e,"x","softplus")};return s.BV.runKernel(p.MRv,t)}});const it=(0,o.op)({logSigmoid_:function(e){const t=(0,i._1)(e,"x","logSigmoid"),a=(0,rt.cb)((e=>({value:(0,st.W)(pt((0,st.W)(e))),gradFunc:t=>(0,M.d)(t,(0,F.X)((0,st.W)(e)))})));return a(t)}});var ot=a(827);const dt=(0,o.op)({logSoftmax_:function(e,t=-1){const a=(0,i._1)(e,"logits","logSoftmax");if(-1===t&&(t=a.rank-1),t!==a.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${a.rank} and axis was ${t}`);const n=(0,rt.cb)(((e,a)=>{const n=Ie(e,t,!0),r=(0,ot.l)(e,n),s=(0,ot.l)((0,_.p)(r,"float32"),at((0,Fe.S)(Ce(r),t,!0)));a([s]);return{value:s,gradFunc:(e,a)=>{const[n]=a,r=Ce(n);return(0,ot.l)(e,(0,M.d)((0,Fe.S)(e,t,!0),r))}}}));return n(a)}});const lt=(0,o.op)({logSumExp_:function(e,t=null,a=!1){const n=(0,i._1)(e,"x","logSumExp"),r=(0,u.EC)(t,n.shape),s=Ie(n,r,!0),p=(0,ot.l)(n,s),o=Ce(p),d=(0,Fe.S)(o,r),l=at(d),c=(0,m.I)((0,x.X)(s,l.shape),l);if(a){const e=(0,xe.rv)(c.shape,r);return(0,x.X)(c,e)}return c}});const mt=(0,o.op)({logicalAnd_:function(e,t){const a=(0,i._1)(e,"a","logicalAnd","bool"),n=(0,i._1)(t,"b","logicalAnd","bool");(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape);const r={a,b:n};return s.BV.runKernel(p.PYm,r)}});const ut=(0,o.op)({logicalNot_:function(e){const t={x:(0,i._1)(e,"x","logicalNot","bool")};return s.BV.runKernel(p.VfG,t)}});const ct=(0,o.op)({logicalOr_:function(e,t){const a=(0,i._1)(e,"a","logicalOr","bool"),n=(0,i._1)(t,"b","logicalOr","bool");(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape);const r={a,b:n};return s.BV.runKernel(p.MZg,r)}});const ht=(0,o.op)({logicalXor_:function(e,t){const a=(0,i._1)(e,"a","logicalXor","bool"),n=(0,i._1)(t,"b","logicalXor","bool");return(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape),mt(ct(e,t),ut(mt(e,t)))}}),ft=2147483648;const gt=(0,o.op)({searchSorted_:function(e,t,a="left"){const n=(0,i._1)(e,"sortedSequence","searchSorted"),r=(0,i._1)(t,"values","searchSorted"),o=n.shape[n.shape.length-1],d=r.shape[r.shape.length-1],l=(0,x.X)(n,[-1,o]),m=(0,x.X)(r,[-1,d]);if(l.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(l.shape[0]!==m.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if((0,u.NA)(m.shape)>=ft)throw new Error("values tensor size must less than 2147483648");if(l.shape[1]>=ft)throw new Error(`trailing dim_size must less than 2147483648 for int32 output type, was ${l.shape[1]}`);const c={sortedSequence:l,values:m},h={side:a};return s.BV.runKernel(p.nr8,c,h)}});function yt(e,t){return gt(e,t,"left")}const vt=(0,o.op)({maxPool_:function(e,t,a,n,r){const o=(0,i._1)(e,"x","maxPool");let d=o,l=!1;3===o.rank&&(l=!0,d=(0,x.X)(o,[1,o.shape[0],o.shape[1],o.shape[2]])),u.hu(4===d.rank,(()=>`Error in maxPool: input must be rank 4 but got rank ${d.rank}.`)),u.hu(T.jT(a,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '1'`)),T.m("maxPool",n,r);const m={x:d},c={filterSize:t,strides:a,pad:n,dimRoundingMode:r},h=s.BV.runKernel(p.mTV,m,c);return l?(0,x.X)(h,[h.shape[1],h.shape[2],h.shape[3]]):h}});const bt=(0,o.op)({maxPool3d_:function(e,t=[1,1,1],a,n,r,o="NDHWC"){const d=(0,i._1)(e,"x","maxPool3d");let l=d,m=!1;4===d.rank&&(m=!0,l=(0,x.X)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),u.hu(5===l.rank,(()=>`Error in maxPool3d: x must be rank 5 but got rank ${l.rank}.`)),u.hu("NDHWC"===o,(()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${o}`)),(0,T.m)("maxPool3d",n,r);const c={x:l},h={filterSize:t,strides:a,pad:n,dimRoundingMode:r,dataFormat:o},f=s.BV.runKernel(p.OAf,c,h);return m?(0,x.X)(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}});const wt=(0,o.op)({maxPoolWithArgmax_:function(e,t,a,n,r=!1){const o={x:(0,i._1)(e,"x","maxPoolWithArgmax")},d={filterSize:t,strides:a,pad:n,includeBatchInIndex:r},l=s.BV.runKernel(p.vFR,o,d);return{result:l[0],indexes:l[1]}}});var Nt=a(632);const kt=(0,o.op)({mean_:function(e,t=null,a=!1){const n={x:(0,i._1)(e,"x","mean")},r={axis:t,keepDims:a};return s.BV.runKernel(p.q2K,n,r)}});function St(e,t="float32"){if("complex64"===t){const t=St(e,"float32"),a=St(e,"float32");return(0,X.P)(t,a)}const a=(0,u.wT)((0,u.NA)(e),t);return s.BV.makeTensor(a,e,t)}function _t(e,t="float32"){if("complex64"===t){const t=_t(e,"float32"),a=St(e,"float32");return(0,X.P)(t,a)}const a=(0,u.p8)((0,u.NA)(e),t);return s.BV.makeTensor(a,e,t)}var Tt=a(4077);function xt(e,t,{indexing:a="xy"}={}){if("xy"!==a&&"ij"!==a)throw new TypeError(`${a} is not a valid third argument to meshgrid`);if(void 0===e)return[];let n=(0,i._1)(e,"x","meshgrid",e instanceof Tt.es?e.dtype:"float32");if(void 0===t)return[n];let r=(0,i._1)(t,"y","meshgrid",t instanceof Tt.es?t.dtype:"float32");const s=(0,u.NA)(n.shape),p=(0,u.NA)(r.shape);return"xy"===a?(n=(0,x.X)(n,[1,-1]),r=(0,x.X)(r,[-1,1]),[(0,V.O)(_t([p,1],n.dtype),n),(0,V.O)(r,_t([1,s],r.dtype))]):(n=(0,x.X)(n,[-1,1]),r=(0,x.X)(r,[1,-1]),[(0,V.O)(n,_t([1,p],n.dtype)),(0,V.O)(_t([s,1],r.dtype),r)])}const It=(0,o.op)({minimum_:function(e,t){let a=(0,i._1)(e,"a","minimum"),n=(0,i._1)(t,"b","minimum");[a,n]=(0,N.makeTypesMatch)(a,n),"bool"===a.dtype&&(a=(0,_.p)(a,"int32"),n=(0,_.p)(n,"int32")),(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape);const r={a,b:n};return s.BV.runKernel(p.q8u,r)}});const Et=(0,o.op)({mirrorPad_:function(e,t,a){u.hu("reflect"===a||"symmetric"===a,(()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${a}.`));const n=(0,i._1)(e,"x","mirrorPad");if(0===n.rank)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");u.hu(t.length===n.rank,(()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`));const r="reflect"===a?1:0;for(let e=0;e"Invalid number of paddings. Must be length of 2 each.")),u.hu(t[e][0]>=0&&t[e][0]<=n.shape[e]-r&&t[e][1]>=0&&t[e][1]<=n.shape[e]-r,(()=>`Padding in dimension ${e} cannot be greater than or equal to ${n.shape[e]-r} or less than 0 for input of shape ${n.shape}`));const o={paddings:t,mode:a},d={x:n};return s.BV.runKernel(p.jQs,d,o)}});const Dt=(0,o.op)({mod_:function(e,t){let a=(0,i._1)(e,"a","mod"),n=(0,i._1)(t,"b","mod");[a,n]=(0,N.makeTypesMatch)(a,n);const r={a,b:n};return s.BV.runKernel(p.Vbg,r)}});const At=(0,o.op)({moments_:function(e,t=null,a=!1){e=(0,i._1)(e,"x","moments");const n=(0,u.EC)(t,e.shape),r=kt(e,n,a);let s=r.shape;a||(s=(0,xe.rv)(r.shape,n));const p=(0,Me.h)((0,ot.l)((0,_.p)(e,"float32"),(0,x.X)(r,s)));return{mean:r,variance:kt(p,n,a)}}});const Vt=(0,o.op)({multiRNNCell_:function(e,t,a,n){const r=(0,i._1)(t,"data","multiRNNCell"),s=(0,i.sI)(a,"c","multiRNNCell"),p=(0,i.sI)(n,"h","multiRNNCell");let o=r;const d=[];for(let t=0;t2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${d}`);a=a||Math.random();const l={logits:1===d?(0,x.X)(r,[1,-1]):r},m={numSamples:t,seed:a,normalized:n},u=s.BV.runKernel(p.NZg,l,m);return 1===d?(0,x.X)(u,[u.size]):u}});const Ft=(0,o.op)({notEqual_:function(e,t){let a=(0,i._1)(e,"a","notEqual","string_or_numeric"),n=(0,i._1)(t,"b","notEqual","string_or_numeric");[a,n]=(0,N.makeTypesMatch)(a,n),(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape);const r={a,b:n};return s.BV.runKernel(p.yQU,r)}});var Bt=a(6708);const Ot=(0,o.op)({onesLike_:function(e){const t={x:(0,i._1)(e,"x","onesLike")};return s.BV.runKernel(p.qWM,t)}});const $t=(0,o.op)({outerProduct_:function(e,t){const a=(0,i._1)(e,"v1","outerProduct"),n=(0,i._1)(t,"v2","outerProduct");u.hu(1===a.rank&&1===n.rank,(()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${a.rank} and ${n.rank}.`));const r=(0,x.X)(a,[-1,1]),s=(0,x.X)(n,[1,-1]);return(0,V.O)(r,s)}});const Ct=(0,o.op)({pad_:function(e,t,a=0){const n=(0,i._1)(e,"x","pad");if(0===n.rank)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const r={paddings:t,constantValue:a},o={x:n};return s.BV.runKernel(p.lyA,o,r)}});const Rt=(0,o.op)({pad1d_:function(e,t,a=0){return(0,u.hu)(2===t.length,(()=>"Invalid number of paddings. Must be length of 2.")),Ct(e,[t],a)}});const Pt=(0,o.op)({pad2d_:function(e,t,a=0){return(0,u.hu)(2===t.length&&2===t[0].length&&2===t[1].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),Ct(e,t,a)}});const zt=(0,o.op)({pad3d_:function(e,t,a=0){return(0,u.hu)(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),Ct(e,t,a)}});const Lt=(0,o.op)({pad4d_:function(e,t,a=0){return(0,u.hu)(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),Ct(e,t,a)}});const Wt=(0,o.op)({spaceToBatchND_:function(e,t,a){const n=(0,i._1)(e,"x","spaceToBatchND");u.hu(n.rank>=1+t.length,(()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`)),u.hu(a.length===t.length,(()=>`paddings.shape[0] ${a.length} must be equal to [blockShape] ${t.length}`)),u.hu(n.shape.reduce(((e,n,r)=>r>0&&r<=t.length?e&&(n+a[r-1][0]+a[r-1][1])%t[r-1]==0:e),!0),(()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${a.toString()} must be divisible by blockShapes ${t.toString()}`));const r={x:n},o={blockShape:t,paddings:a};return s.BV.runKernel(p.TQc,r,o)}});const Ut=(0,o.op)({pool_:function(e,t,a,n,r,s,p){null==r&&(r=[1,1]),null==s&&(s=1),0===n&&(n="valid");const o=(0,i._1)(e,"x","maxPool");let d=o,l=!1;3===o.rank&&(l=!0,d=(0,x.X)(o,[1,o.shape[0],o.shape[1],o.shape[2]])),u.hu(T.jT(s,r),(()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`));const m=T.Xw(d.shape,t,s,r,n),c=[m.dilationHeight,m.dilationWidth];let h;h="same"===n?function(e,t){const a=e.map(((e,a)=>e+(e-1)*(t[a]-1))).map((e=>e-1)),n=a.map((e=>Math.floor(e/2))),r=a.map(((e,t)=>e-n[t]));return a.map(((e,t)=>[n[t],r[t]]))}([m.filterHeight,m.filterWidth],c):[[0,0],[0,0]];const f=1===c[0]&&1===c[1],[g,y]=function(e,t,a){const n=a.map((e=>e[0])),r=a.map((e=>e[1])),s=e.concat(n,r),p=t.map(((e,t)=>(e-s[t]%e)%e)),i=r.map(((e,t)=>e+p[t])),o=t.map(((e,t)=>[n[t],i[t]])),d=t.map(((e,t)=>[0,p[t]]));return[o,d]}([m.inHeight,m.inWidth],c,h),v=f?n:"valid",b=f?d:Wt(d,c,g),w=("avg"===a?()=>I(b,t,s,v,p):()=>vt(b,t,s,v,p))(),N=f?w:C(w,c,y);return l?(0,x.X)(N,[N.shape[1],N.shape[2],N.shape[3]]):N}});var Ht=a(8151),qt=a(9798);const Gt=(0,o.op)({prod_:function(e,t=null,a=!1){let n=(0,i._1)(e,"x","prod");"bool"===n.dtype&&(n=(0,_.p)(n,"int32"));const r={x:n},o={axis:t,keepDims:a};return s.BV.runKernel(p.DlI,r,o)}});const jt=(0,o.op)({raggedGather_:function(e,t,a,n){const r={paramsNestedSplits:e.map(((e,t)=>(0,i._1)(e,`tensors${t}`,"raggedGather","int32"))),paramsDenseValues:(0,i._1)(t,"paramsDenseValues","raggedGather"),indices:(0,i._1)(a,"indices","raggedGather","int32")},o={outputRaggedRank:n},d=s.BV.runKernel(p.dDz,r,o);return{outputNestedSplits:d.slice(0,d.length-1),outputDenseValues:d[d.length-1]}}});const Kt=(0,o.op)({raggedTensorToTensor_:function(e,t,a,n,r){const o=(0,i._1)(e,"shape","raggedTensorToTensor","int32"),d=(0,i._1)(t,"values","raggedTensorToTensor"),l={shape:o,values:d,defaultValue:(0,i._1)(a,"defaultValue","raggedTensorToTensor",d.dtype),rowPartitionTensors:n.map(((e,t)=>(0,i._1)(e,`tensors${t}`,"raggedTensorToTensor","int32")))},m={rowPartitionTypes:r};return s.BV.runKernel(p.BiW,l,m)}});const Xt=(0,o.op)({rand_:function(e,t,a){const n=(0,u.NA)(e);let r=null;if(null==a||"float32"===a)r=new Float32Array(n);else if("int32"===a)r=new Int32Array(n);else{if("bool"!==a)throw new Error(`Unknown data type ${a}`);r=new Uint8Array(n)}for(let e=0;e=1||0===s);const p=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*n*p,t=this.mean+this.stdDev*r*p,this.truncated&&!this.isValidTruncated(e)||(a=!0)}return this.truncated&&!this.isValidTruncated(t)||(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class Qt{constructor(e,t,a,n){this.alpha=e,this.beta=1/t,this.dtype=a;const r=n||Math.random();this.randu=Zt.alea(r.toString()),this.randn=new Jt(0,1,a,!1,this.randu()),this.d=e<1?e+2/3:e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,a,n,r,s;for(;;){do{n=this.randn.nextValue(),s=1+this.c*n}while(s<=0);if(s*=s*s,e=n*n,t=1-.331*e*e,a=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rnull==this.dtype||"float32"===this.dtype,this.min=e,this.range=t-e,this.dtype=a,null==n&&(n=Math.random()),"number"==typeof n&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Zt.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}const ea=(0,o.op)({randomGamma_:function(e,t,a=1,n="float32",r){if(null==a&&(a=1),null==n&&(n="float32"),"float32"!==n&&"int32"!==n)throw new Error(`Unsupported data type ${n}`);const s=new Qt(t,a,n,r),p=(0,q.f)(e,n);for(let e=0;e`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`)),da(t,0)}});const ma=(0,o.op)({reverse2d_:function(e,t){const a=(0,i._1)(e,"x","reverse");return u.hu(2===a.rank,(()=>`Error in reverse2D: x must be rank 2 but got rank ${a.rank}.`)),da(a,t)}});const ua=(0,o.op)({reverse3d_:function(e,t){const a=(0,i._1)(e,"x","reverse");return u.hu(3===a.rank,(()=>`Error in reverse3D: x must be rank 3 but got rank ${a.rank}.`)),da(a,t)}});const ca=(0,o.op)({reverse4d_:function(e,t){const a=(0,i._1)(e,"x","reverse");return u.hu(4===a.rank,(()=>`Error in reverse4D: x must be rank 4 but got rank ${a.rank}.`)),da(a,t)}});const ha=(0,o.op)({round_:function(e){const t={x:(0,i._1)(e,"x","round")};return s.BV.runKernel(p.e07,t)}});const fa=(0,o.op)({rsqrt_:function(e){const t={x:(0,i._1)(e,"x","rsqrt","float32")};return s.BV.runKernel(p.bV0,t)}});const ga=(0,o.op)({selu_:function(e){const t={x:(0,i._1)(e,"x","selu")};return s.BV.runKernel(p.oFR,t)}});const ya=(0,o.op)({separableConv2d_:function(e,t,a,n,r,s=[1,1],p="NHWC"){const o=(0,i._1)(e,"x","separableConv2d"),d=(0,i._1)(t,"depthwiseFilter","separableConv2d"),l=(0,i._1)(a,"pointwiseFilter","separableConv2d");let m=o,c=!1;if(3===o.rank&&(c=!0,m=(0,x.X)(o,[1,o.shape[0],o.shape[1],o.shape[2]])),"NCHW"===p)throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");u.hu(4===m.rank,(()=>`Error in separableConv2d: input must be rank 4, but got rank ${m.rank}.`)),u.hu(4===d.rank,(()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${d.rank}.`)),u.hu(4===l.rank,(()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${d.rank}.`)),u.hu(1===l.shape[0],(()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`)),u.hu(1===l.shape[1],(()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`));const h=d.shape[2],f=d.shape[3];u.hu(l.shape[2]===h*f,(()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${h*f}, but got ${l.shape[2]}.`));const g=ce(m,d,n,r,p,s),y=ee(g,l,1,"valid",p);return c?(0,x.X)(y,[y.shape[1],y.shape[2],y.shape[3]]):y}});const va=async function(e,t){const a=(0,i._1)(e,"x","setdiff1d"),n=(0,i._1)(t,"y","setdiff1d");u.hu(a.dtype===n.dtype,(()=>`x and y should have the same dtype, but got x (${a.dtype}) and y (${n.dtype}).`)),u.hu(1===a.rank,(()=>`x should be 1D tensor, but got x (${a.shape}).`)),u.hu(1===n.rank,(()=>`y should be 1D tensor, but got y (${n.shape}).`));const r=await a.data(),s=await n.data(),p=new Set(s);let o=0;for(let e=0;e`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`)),B(n,[t],[a])}});const Sa=(0,o.op)({slice2d_:function(e,t,a){const n=(0,i._1)(e,"x","slice2d");return u.hu(2===n.rank,(()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`)),B(n,t,a)}});const _a=(0,o.op)({slice3d_:function(e,t,a){const n=(0,i._1)(e,"x","slice3d");return u.hu(3===n.rank,(()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`)),B(n,t,a)}});const Ta=(0,o.op)({slice4d_:function(e,t,a){const n=(0,i._1)(e,"x","slice4d");return u.hu(4===n.rank,(()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`)),B(n,t,a)}});const xa=(0,o.op)({softmax_:function(e,t=-1){const a=(0,i._1)(e,"logits","softmax","float32");if(-1===t&&(t=a.rank-1),t!==a.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${a.rank} and dim was ${t}`);const n={logits:a},r={dim:t};return s.BV.runKernel(p.Gcp,n,r)}});const Ia=(0,o.op)({fft_:function(e){(0,u.hu)("complex64"===e.dtype,(()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`));const t={input:e};return s.BV.runKernel(p.vwp,t)}});const Ea=(0,o.op)({ifft_:function(e){(0,u.hu)("complex64"===e.dtype,(()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`));const t={input:e};return s.BV.runKernel(p.Qg5,t)}});const Da=(0,o.op)({irfft_:function(e){const t=e.shape[e.shape.length-1],a=e.size/t;let n;if(t<=2){const r=(0,x.X)(e,[a,t]);n=Ea(r)}else{const r=[a,2*(t-1)],s=(0,x.X)((0,sa.k)(e),[a,t]),p=(0,x.X)((0,je.a)(e),[a,t]),i=da(B(s,[0,1],[a,t-2]),1),o=(0,M.d)(da(B(p,[0,1],[a,t-2]),1),(0,Ae.i)(-1)),d=A([s,i],1),l=A([p,o],1),m=(0,x.X)((0,X.P)(d,l),[r[0],r[1]]);n=Ea(m)}if(n=(0,sa.k)(n),3===e.rank&&0!==e.shape[0]){const t=n,a=e.shape[0];n=(0,x.X)(n,[a,n.shape[0]/a,n.shape[1]]),t.dispose()}return n}});const Aa=(0,o.op)({split_:function(e,t,a=0){const n={x:(0,i._1)(e,"x","split")},r={numOrSizeSplits:t,axis:a};return s.BV.runKernel(p.L8s,n,r)}});const Va=(0,o.op)({rfft_:function(e,t){(0,u.hu)("float32"===e.dtype,(()=>`The dtype for rfft() must be real value but got ${e.dtype}`));let a=e.shape[e.shape.length-1];const n=e.size/a;let r;if(null!=t&&t0)),s=e.shape.map((e=>e));s[e.shape.length-1]=t,r=B(e,n,s),a=t}else if(null!=t&&t>a){const n=e.shape.map((e=>e));n[e.shape.length-1]=t-a,r=A([e,St(n)],e.shape.length-1),a=t}else r=e;const s=(0,we.P)(r),p=(0,x.X)((0,X.P)(r,s),[n,a]),i=Ia(p),o=Math.floor(a/2)+1,d=(0,sa.k)(i),l=(0,je.a)(i),m=Aa(d,[o,a-o],d.shape.length-1),c=Aa(l,[o,a-o],l.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=o,(0,x.X)((0,X.P)(m[0],c[0]),h)}});const Ma=(0,o.op)({squaredDifference_:function(e,t){let a=(0,i._1)(e,"a","squaredDifference"),n=(0,i._1)(t,"b","squaredDifference");[a,n]=(0,N.makeTypesMatch)(a,n),(0,ye.assertAndGetBroadcastShape)(a.shape,n.shape);const r={a,b:n};return s.BV.runKernel(p._tC,r,{})}});const Fa=(0,o.op)({squeeze_:function(e,t){const a=(0,i._1)(e,"x","squeeze","string_or_numeric");return(0,x.X)(a,(0,u.bp)(a.shape,t).newShape)}});const Ba=(0,o.op)({stack_:function(e,t=0){const a=(0,i.sI)(e,"tensors","stack","string_or_numeric");u.hu(a.length>=1,(()=>"Pass at least one tensor to tf.stack")),a.length>0&&u.hu(t<=a[0].rank,(()=>"Axis must be <= rank of the tensor"));const n=a,r={axis:t};return s.BV.runKernel(p.QiL,n,r)}});var Oa=a(1901);const $a=(0,o.op)({stridedSlice_:function(e,t,a,n,r=0,o=0,d=0,l=0,m=0){const u={x:(0,i._1)(e,"x","stridedSlice","string_or_numeric")},c={begin:t,end:a,strides:n,beginMask:r,endMask:o,ellipsisMask:d,newAxisMask:l,shrinkAxisMask:m};return s.BV.runKernel(p.jQk,u,c)}});const Ca=(0,o.op)({tan_:function(e){const t={x:(0,i._1)(e,"x","tan","float32")};return s.BV.runKernel(p.sEM,t)}});var Ra=a(701),Pa=a(7852);function za(e,t){(0,u.Cq)(e);const a=(0,i.C)(e,t);if(1!==a.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return(0,Pa.H)(e,null,a,t)}function La(e,t,a){if((0,u.Cq)(e),null!=t&&2!==t.length)throw new Error("tensor2d() requires shape to have two numbers");const n=(0,i.C)(e,a);if(2!==n.length&&1!==n.length)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===n.length&&null==t)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return(0,Pa.H)(e,t,n,a)}var Wa=a(9906);function Ua(e,t,a){if((0,u.Cq)(e),null!=t&&4!==t.length)throw new Error("tensor4d() requires shape to have four numbers");const n=(0,i.C)(e,a);if(4!==n.length&&1!==n.length)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===n.length&&null==t)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return(0,Pa.H)(e,t,n,a)}function Ha(e,t,a){if((0,u.Cq)(e),null!=t&&5!==t.length)throw new Error("tensor5d() requires shape to have five numbers");const n=(0,i.C)(e,a);if(5!==n.length&&1!==n.length)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===n.length&&null==t)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return(0,Pa.H)(e,t,n,a)}function qa(e,t,a){if((0,u.Cq)(e),null!=t&&6!==t.length)throw new Error("tensor6d() requires shape to have six numbers");const n=(0,i.C)(e,a);if(6!==n.length&&1!==n.length)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===n.length&&null==t)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,(0,Pa.H)(e,t,n,a)}const Ga=(0,o.op)({topk_:function(e,t=1,a=!0){const n=(0,i._1)(e,"x","topk");if(0===n.rank)throw new Error("topk() expects the input to be of rank 1 or higher");const r=n.shape[n.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);const o={x:n},d={k:t,sorted:a},[l,m]=s.BV.runKernel(p.cWu,o,d);return{values:l,indices:m}}});const ja=(0,o.op)({truncatedNormal_:function(e,t=0,a=1,n,r){if(null!=n&&"bool"===n)throw new Error("Unsupported data type $ { dtype }");const s=new Jt(t,a,n,!0,r),p=(0,q.f)(e,n);for(let e=0;e0,(()=>"The input tensor must be at least 1D"));const n={x:a},r={axis:t},[o,d]=s.BV.runKernel(p.kpP,n,r);return{values:o,indices:d}}});const Xa=(0,o.op)({unsortedSegmentSum_:function(e,t,a){const n=(0,i._1)(e,"x","unsortedSegmentSum"),r=(0,i._1)(t,"segmentIds","unsortedSegmentSum","int32");(0,u.hu)((0,u.GN)(a),(()=>"numSegments must be of dtype int"));const o={x:n,segmentIds:r},d={numSegments:a};return s.BV.runKernel(p.Qvg,o,d)}});const Za=(0,o.op)({unstack_:function(e,t=0){const a=(0,i._1)(e,"x","unstack","string_or_numeric");u.hu(t>=-a.shape.length&&t`Axis = ${t} is not in [-${a.shape.length}, ${a.shape.length})`));const n={value:a},r={axis:t};return s.BV.runKernel(p.ToN,n,r)}});function Ja(e,t){return gt(e,t,"right")}function Qa(e,t=!0,a,n){return s.BV.makeVariable(e,t,a,n)}var Ya=a(8333);const en=async function(e){const t=(0,i._1)(e,"condition","whereAsync","bool"),a=await t.data(),n=(0,Ya.Z)(t.shape,a);return e!==t&&t.dispose(),n};const tn=async function(e,t,a){const n=(0,i._1)(e,"tensor","boolMask"),r=(0,i._1)(t,"mask","boolMask","bool"),s=null==a?0:a,p=r.rank,o=n.shape;u.hu(p>0,(()=>"mask cannot be scalar")),u.k5(o.slice(s,s+p),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let d=1;for(let e=s;e"Shape mismatch in v and x"));const d=(0,Ae.i)(1),l=(0,ot.l)(d,o);let c=(0,M.d)((0,ot.l)(p,s),l);if(r){u.hu(null!=n,(()=>"When using zeroDebias: true, step is required."));const e=(0,i._1)(n,"step","movingAverage");c=(0,ge.h)(c,(0,ot.l)(d,(0,De.s)(o,e)))}return(0,m.I)(s,c)}});var rn=a(3028);const sn=(0,o.op)({scatterND_:function(e,t,a){const n=(0,i._1)(e,"indices","scatterND","int32"),r=(0,i._1)(t,"updates","scatterND");rn.validateInput(r,n,a);const o={indices:n,updates:r},d={shape:a};return s.BV.runKernel(p.xQA,o,d)}});const pn=(0,o.op)({sparseToDense_:function(e,t,a,n=0){const r=(0,i._1)(e,"sparseIndices","sparseToDense","int32"),o=(0,i._1)(t,"sparseValues","sparseToDense","string_or_numeric"),d=(0,i._1)(n,"defaultValue","sparseToDense",o.dtype);!function(e,t,a,n){if("int32"!==e.dtype)throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);const r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(a.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${a.length}, should be: ${s}.`);const p=t.size;if(0!==t.rank&&(1!==t.rank||p!==r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==n.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}(r,o,a,d);const l={sparseIndices:r,sparseValues:o,defaultValue:d},m={outputShape:a};return s.BV.runKernel(p.D2d,l,m)}});const on=(0,o.op)({gatherND_:function(e,t){const a=(0,i._1)(t,"indices","gatherND","int32"),n={params:(0,i._1)(e,"x","gatherND","string_or_numeric"),indices:a};return s.BV.runKernel(p.q1x,n)}});const dn=(0,o.op)({dropout_:function(e,t,a,n){const r=(0,i._1)(e,"x","dropout");if(u.hu("float32"===r.dtype,(()=>`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`)),u.hu(t>=0&&t<1,(()=>`rate must be a float in the range [0, 1), but got ${t}.`)),0===t)return e instanceof Tt.es?r.clone():r;const s=function(e,t){if(null==t)return e.shape.slice();if(u.cO(e.shape,t))return t;if(e.shape.length===t.length){const a=[];for(let n=0;n1,(()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`)),(0,u.hu)(n.rank-1===r.rank,(()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${r.rank}`)),(0,u.k5)(n.shape.slice(0,n.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");const s=n.shape[n.shape.length-1];(0,u.hu)(a>0&&a<=s,(()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${a}`));const p=await n.data(),o=await r.data(),[d,l]=[p.length/s,s],m=(0,u.WP)("bool",d);for(let e=0;et.value-e.value)),m[e]=0;for(let t=0;t`Error in conv2dDerFilter: input must be rank 4, but got shape ${d.shape}.`)),u.hu(4===l.rank,(()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`)),u.hu(4===a.length,(()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${a}.`));const m="NHWC"===i?d.shape[3]:d.shape[1],c="NHWC"===i?l.shape[3]:l.shape[1];u.hu(m===a[2],(()=>`Error in conv2dDerFilter: depth of input ${m}) must match input depth in filter (${a[2]}.`)),u.hu(c===a[3],(()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${a[3]}).`)),T.m("conv2dDerFilter",r,o);const h={x:d,dy:l},f={strides:n,pad:r,dataFormat:i,dimRoundingMode:o,filterShape:a};return s.BV.runKernel(p.wUP,h,f)}});var hn=a(9323);const fn=(0,o.op)({fusedConv2d_:function({x:e,filter:t,strides:a,pad:n,dataFormat:r="NHWC",dilations:o=[1,1],dimRoundingMode:d,bias:l,activation:c="linear",preluActivationWeights:h,leakyreluAlpha:f}){if(c=c||"linear",!1===(0,hn.uy)(s.BV.state.gradientDepth,c)){u.hu("NHWC"===r,(()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`));let s=ee(e,t,a,n,r,o,d);return null!=l&&(s=(0,m.I)(s,l)),(0,hn.QH)(s,c,h,f)}const g=(0,i._1)(e,"x","conv2d","float32"),y=(0,i._1)(t,"filter","conv2d","float32");let v=g,b=!1;3===g.rank&&(b=!0,v=(0,x.X)(g,[1,g.shape[0],g.shape[1],g.shape[2]])),u.hu(4===v.rank,(()=>`Error in fused conv2d: input must be rank 4, but got rank ${v.rank}.`)),u.hu(4===y.rank,(()=>`Error in fused conv2d: filter must be rank 4, but got rank ${y.rank}.`)),T.m("fused conv2d",n,d);const w="NHWC"===r?v.shape[3]:v.shape[1];u.hu(y.shape[2]===w,(()=>`Error in conv2d: depth of input (${w}) must match input depth for filter ${y.shape[2]}.`)),u.hu(T.jT(a,o),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${a} and dilations '${o}'`));const k=T.Ix(v.shape,y.shape,a,o,n,d);let S,_;if(null!=l&&(S=(0,i._1)(l,"bias","fused conv2d"),[S]=(0,N.makeTypesMatch)(S,g),"NHWC"===r?ye.assertAndGetBroadcastShape(k.outShape,S.shape):(u.hu(S.shape.length<=1,(()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${S.shape.length}.`)),u.hu(0===S.shape.length||S.shape[0]===k.outChannels||1===S.shape[0],(()=>`Error in fused conv2d: bias shape (${S.shape}) is not compatible with the number of output channels (${k.outChannels})`)))),null!=h){const e=h.shape;if(u.hu(e.length<=1||3===e.length,(()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${e.length}.`)),1===e.length)u.hu(1===e[0]||e[0]===k.outChannels,(()=>`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the number of output channels (${k.outChannels}).`));else if(3===e.length)try{ye.assertAndGetBroadcastShape(e,k.outShape)}catch(t){const a=`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the output shape of the conv2d (${k.outShape}).`;throw Error(a)}_=(0,i._1)(h,"prelu weights","fused conv2d")}const I=(e,t)=>{u.hu("NHWC"===r,(()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`));const[s,p,i,d]=t,l=(0,hn.Fr)(e,i,c);u.hu(T.I0(o),(()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${o}'`));const m=[ae(p.shape,l,s,a,n),cn(p,l,s.shape,a,n)];if(null!=d){const e=(0,hn.pf)(d,l);m.push(e)}return m},E={x:v,filter:y,bias:S,preluActivationWeights:_},D={strides:a,pad:n,dataFormat:r,dilations:o,dimRoundingMode:d,activation:c,leakyreluAlpha:f};if(null==l){const e=(0,rt.cb)(((e,t,a)=>{let n=s.BV.runKernel(p._V0,E,D);return a([t,e,n]),b&&(n=(0,x.X)(n,[n.shape[1],n.shape[2],n.shape[3]])),{value:n,gradFunc:I}}));return e(v,y)}{const e=(0,rt.cb)(((e,t,a,n)=>{let r=s.BV.runKernel(p._V0,E,D);return n([t,e,r,a]),b&&(r=(0,x.X)(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:I}}));return e(v,y,S)}}});const gn=(0,o.op)({depthwiseConv2dNativeBackpropFilter_:function(e,t,a,n,r,i=[1,1],o){let d=e;3===e.rank&&(d=(0,x.X)(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;3===l.rank&&(l=(0,x.X)(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const m={x:d,dy:l},u={strides:n,pad:r,dimRoundingMode:o,dilations:i,filterShape:a};return s.BV.runKernel(p.sL$,m,u)}});const yn=(0,o.op)({depthwiseConv2dNativeBackpropInput_:function(e,t,a,n,r,i=[1,1],o){let d=t,l=!1;3===t.rank&&(l=!0,d=(0,x.X)(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const m={dy:d,filter:a},u={strides:n,pad:r,dimRoundingMode:o,dilations:i,inputShape:e},c=s.BV.runKernel(p.y7R,m,u);return l?(0,x.X)(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});const vn=(0,o.op)({fusedDepthwiseConv2d_:function({x:e,filter:t,strides:a,pad:n,dataFormat:r="NHWC",dilations:o=[1,1],dimRoundingMode:d,bias:l,activation:c="linear",preluActivationWeights:h,leakyreluAlpha:f}){if(!1===(0,hn.uy)(s.BV.state.gradientDepth,c)){let s=ce(e,t,a,n,r,o,d);return null!=l&&(s=(0,m.I)(s,l)),(0,hn.QH)(s,c,h,f)}const g=(0,i._1)(e,"x","depthwiseConv2d","float32"),y=(0,i._1)(t,"filter","depthwiseConv2d","float32");let v=g,b=!1;3===g.rank&&(b=!0,v=(0,x.X)(g,[1,g.shape[0],g.shape[1],g.shape[2]])),u.hu(4===v.rank,(()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${v.rank}.`)),u.hu(4===y.rank,(()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${y.rank}.`)),u.hu(v.shape[3]===y.shape[2],(()=>`Error in fused depthwiseConv2d: number of input channels (${v.shape[3]}) must match the inChannels dimension in filter ${y.shape[2]}.`)),null==o&&(o=[1,1]),u.hu(T.jT(a,o),(()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${o}'`)),T.m("fused depthwiseConv2d",n,d);const w=T.Ix(v.shape,y.shape,a,o,n,d,!0);let k,S;null!=l&&(k=(0,i._1)(l,"bias","fused conv2d"),[k]=(0,N.makeTypesMatch)(k,g),ye.assertAndGetBroadcastShape(w.outShape,k.shape)),null!=h&&(S=(0,i._1)(h,"prelu weights","fused depthwiseConv2d"));const _=(e,t)=>{u.hu(T.I0(o),(()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`));const[r,s,p,i]=t,l=(0,hn.Fr)(e,p,c),m=yn(s.shape,l,r,a,n,o,d),h=gn(s,l,r.shape,a,n,o,d);if(null!=i){return[m,h,(0,hn.pf)(k,l)]}return[m,h]},I={x:v,filter:y,bias:k,preluActivationWeights:S},E={strides:a,pad:n,dataFormat:r,dilations:o,dimRoundingMode:d,activation:c,leakyreluAlpha:f};if(null==l){const e=(0,rt.cb)(((e,t,a)=>{let n=s.BV.runKernel(p.luS,I,E);return a([t,e,n]),b&&(n=(0,x.X)(n,[n.shape[1],n.shape[2],n.shape[3]])),{value:n,gradFunc:_}}));return e(v,y)}{const e=(0,rt.cb)(((e,t,a,n)=>{let r=s.BV.runKernel(p.luS,I,E);return n([t,e,r,a]),b&&(r=(0,x.X)(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:_}}));return e(v,y,k)}}});const bn=(0,o.op)({fusedMatMul_:function({a:e,b:t,transposeA:a=!1,transposeB:n=!1,bias:r,activation:o="linear",preluActivationWeights:d,leakyreluAlpha:l=.2}){if(!1===(0,hn.uy)(s.BV.state.gradientDepth,o)){let s=(0,V.O)(e,t,a,n);return null!=r&&(s=(0,m.I)(s,r)),(0,hn.QH)(s,o,d,l)}let c=(0,i._1)(e,"a","fused matMul"),h=(0,i._1)(t,"b","fused matMul");[c,h]=(0,N.makeTypesMatch)(c,h);const f=a?c.shape[c.rank-2]:c.shape[c.rank-1],g=n?h.shape[h.rank-1]:h.shape[h.rank-2],y=a?c.shape[c.rank-1]:c.shape[c.rank-2],v=n?h.shape[h.rank-2]:h.shape[h.rank-1],b=c.shape.slice(0,-2),w=h.shape.slice(0,-2),k=u.NA(b),S=u.NA(w);u.hu(f===g,(()=>`Error in fused matMul: inner shapes (${f}) and (${g}) of Tensors with shapes ${c.shape} and ${h.shape} and transposeA=${a} and transposeB=${n} must match.`));const _=ye.assertAndGetBroadcastShape(c.shape.slice(0,-2),h.shape.slice(0,-2)).concat([y,v]),T=a?(0,x.X)(c,[k,f,y]):(0,x.X)(c,[k,y,f]),I=n?(0,x.X)(h,[S,v,g]):(0,x.X)(h,[S,g,v]);let E,D;null!=r&&(E=(0,i._1)(r,"bias","fused matMul"),[E]=(0,N.makeTypesMatch)(E,c),ye.assertAndGetBroadcastShape(_,E.shape)),null!=d&&(D=(0,i._1)(d,"prelu weights","fused matMul"));const A=(e,t)=>{const[s,p,i,d]=t,l=(0,hn.Fr)((0,x.X)(e,i.shape),i,o);let m,u;if(a||n?!a&&n?(m=(0,V.O)(l,p,!1,!1),u=(0,V.O)(l,s,!0,!1)):a&&!n?(m=(0,V.O)(p,l,!1,!0),u=(0,V.O)(s,l,!1,!1)):(m=(0,V.O)(p,l,!0,!0),u=(0,V.O)(l,s,!0,!0)):(m=(0,V.O)(l,p,!1,!0),u=(0,V.O)(s,l,!0,!1)),null!=r){return[m,u,(0,hn.pf)(d,l)]}return[m,u]},M={a:T,b:I,bias:E,preluActivationWeights:D},F={transposeA:a,transposeB:n,activation:o,leakyreluAlpha:l};if(null==r){const e=(0,rt.cb)(((e,t,a)=>{const n=s.BV.runKernel(p.usg,M,F);return a([e,t,n]),{value:(0,x.X)(n,_),gradFunc:A}}));return e(T,I)}{const e=(0,rt.cb)(((e,t,a,n)=>{const r=s.BV.runKernel(p.usg,M,F);return n([e,t,r,a]),{value:(0,x.X)(r,_),gradFunc:A}}));return e(T,I,E)}}});const wn=(0,o.op)({hammingWindow_:function(e){return mn(e,.54,.46)}});const Nn=(0,o.op)({hannWindow_:function(e){return mn(e,.5,.5)}});const kn=(0,o.op)({frame_:function(e,t,a,n=!1,r=0){let s=0;const p=[];for(;s+t<=e.size;)p.push(B(e,s,t)),s+=a;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${d.rank}.`)),u.hu(2===l.rank&&4===l.shape[1],(()=>`Error in cropAndResize: boxes must be have size [${c},4] but had shape ${l.shape}.`)),u.hu(1===m.rank&&m.shape[0]===c,(()=>`Error in cropAndResize: boxInd must be have size [${c}] but had shape ${l.shape}.`)),u.hu(2===n.length,(()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`)),u.hu(n[0]>=1&&n[1]>=1,(()=>`cropSize must be atleast [1,1], but was ${n}`)),u.hu("bilinear"===r||"nearest"===r,(()=>`method must be bilinear or nearest, but was ${r}`));const h={image:d,boxes:l,boxInd:m},f={method:r,extrapolationValue:o,cropSize:n};return s.BV.runKernel(p.VcC,h,f)}});const Tn=(0,o.op)({flipLeftRight_:function(e){const t=(0,i._1)(e,"image","flipLeftRight","float32");u.hu(4===t.rank,(()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`));const a={image:t};return s.BV.runKernel(p.Uyb,a,{})}});const xn=(0,o.op)({grayscaleToRGB_:function(e){const t=(0,i._1)(e,"image","grayscaleToRGB"),a=t.rank-1,n=t.shape[a];u.hu(t.rank>=2,(()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`)),u.hu(1===n,(()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`));const r=new Array(t.rank);return r.fill(1,0,a),r[a]=3,ze(t,r)}});const In=(0,o.op)({rotateWithOffset_:function(e,t,a=0,n=.5){const r=(0,i._1)(e,"image","rotateWithOffset","float32");u.hu(4===r.rank,(()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`));const o={image:r},d={radians:t,fillValue:a,center:n};return s.BV.runKernel(p.b9H,o,d)}});function En(e,t,a,n,r,s){null==n&&(n=.5),null==r&&(r=Number.NEGATIVE_INFINITY),null==s&&(s=0);const p=e.shape[0];return a=Math.min(a,p),u.hu(0<=n&&n<=1,(()=>`iouThreshold must be in [0, 1], but was '${n}'`)),u.hu(2===e.rank,(()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`)),u.hu(4===e.shape[1],(()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`)),u.hu(1===t.rank,(()=>"scores must be a 1D tensor")),u.hu(t.shape[0]===p,(()=>`scores has incompatible shape with boxes. Expected ${p}, but was ${t.shape[0]}`)),u.hu(0<=s&&s<=1,(()=>`softNmsSigma must be in [0, 1], but was '${s}'`)),{maxOutputSize:a,iouThreshold:n,scoreThreshold:r,softNmsSigma:s}}const Dn=(0,o.op)({nonMaxSuppression_:function(e,t,a,n=.5,r=Number.NEGATIVE_INFINITY){const o=(0,i._1)(e,"boxes","nonMaxSuppression","float32"),d=(0,i._1)(t,"scores","nonMaxSuppression","float32"),l=En(o,d,a,n,r),m={maxOutputSize:a=l.maxOutputSize,iouThreshold:n=l.iouThreshold,scoreThreshold:r=l.scoreThreshold};return s.BV.runKernel(p.uv1,{boxes:o,scores:d},m)}});var An=a(3337);const Vn=async function(e,t,a,n=.5,r=Number.NEGATIVE_INFINITY){const s=(0,i._1)(e,"boxes","nonMaxSuppressionAsync"),p=(0,i._1)(t,"scores","nonMaxSuppressionAsync"),o=En(s,p,a,n,r);a=o.maxOutputSize,n=o.iouThreshold,r=o.scoreThreshold;const d=await Promise.all([s.data(),p.data()]),l=d[0],m=d[1],{selectedIndices:u}=(0,An.GP)(l,m,a,n,r);return s!==e&&s.dispose(),p!==t&&p.dispose(),za(u,"int32")};const Mn=(0,o.op)({nonMaxSuppressionWithScore_:function(e,t,a,n=.5,r=Number.NEGATIVE_INFINITY,o=0){const d=(0,i._1)(e,"boxes","nonMaxSuppression"),l=(0,i._1)(t,"scores","nonMaxSuppression"),m=En(d,l,a,n,r,o),u={boxes:d,scores:l},c={maxOutputSize:a=m.maxOutputSize,iouThreshold:n=m.iouThreshold,scoreThreshold:r=m.scoreThreshold,softNmsSigma:o=m.softNmsSigma},h=s.BV.runKernel(p.W0H,u,c);return{selectedIndices:h[0],selectedScores:h[1]}}});const Fn=async function(e,t,a,n=.5,r=Number.NEGATIVE_INFINITY,s=0){const p=(0,i._1)(e,"boxes","nonMaxSuppressionAsync"),o=(0,i._1)(t,"scores","nonMaxSuppressionAsync"),d=En(p,o,a,n,r,s);a=d.maxOutputSize,n=d.iouThreshold,r=d.scoreThreshold,s=d.softNmsSigma;const l=await Promise.all([p.data(),o.data()]),m=l[0],u=l[1],{selectedIndices:c,selectedScores:h}=(0,An.pA)(m,u,a,n,r,s);return p!==e&&p.dispose(),o!==t&&o.dispose(),{selectedIndices:za(c,"int32"),selectedScores:za(h)}};const Bn=(0,o.op)({nonMaxSuppressionPadded_:function(e,t,a,n=.5,r=Number.NEGATIVE_INFINITY,o=!1){const d=(0,i._1)(e,"boxes","nonMaxSuppression"),l=(0,i._1)(t,"scores","nonMaxSuppression"),m=En(d,l,a,n,r,null),u={boxes:d,scores:l},c={maxOutputSize:m.maxOutputSize,iouThreshold:m.iouThreshold,scoreThreshold:m.scoreThreshold,padToMaxOutputSize:o},h=s.BV.runKernel(p.cye,u,c);return{selectedIndices:h[0],validOutputs:h[1]}}});const On=async function(e,t,a,n=.5,r=Number.NEGATIVE_INFINITY,s=!1){const p=(0,i._1)(e,"boxes","nonMaxSuppressionAsync"),o=(0,i._1)(t,"scores","nonMaxSuppressionAsync"),d=En(p,o,a,n,r,null),l=d.maxOutputSize,m=d.iouThreshold,u=d.scoreThreshold,[c,h]=await Promise.all([p.data(),o.data()]),{selectedIndices:f,validOutputs:g}=(0,An.qP)(c,h,l,m,u,s);return p!==e&&p.dispose(),o!==t&&o.dispose(),{selectedIndices:za(f,"int32"),validOutputs:(0,Ae.i)(g,"int32")}};const $n=(0,o.op)({resizeBilinear_:function(e,t,a=!1,n=!1){const r=(0,i._1)(e,"images","resizeBilinear");u.hu(3===r.rank||4===r.rank,(()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`)),u.hu(2===t.length,(()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`)),u.hu(!1===n||!1===a,(()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false."));let o=r,d=!1;3===r.rank&&(d=!0,o=(0,x.X)(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const[]=t,l={images:o},m={alignCorners:a,halfPixelCenters:n,size:t},c=s.BV.runKernel(p._Yw,l,m);return d?(0,x.X)(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});const Cn=(0,o.op)({resizeNearestNeighbor_:function(e,t,a=!1,n=!1){const r=(0,i._1)(e,"images","resizeNearestNeighbor");u.hu(3===r.rank||4===r.rank,(()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`)),u.hu(2===t.length,(()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`)),u.hu("float32"===r.dtype||"int32"===r.dtype,(()=>"`images` must have `int32` or `float32` as dtype")),u.hu(!1===n||!1===a,(()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false."));let o=r,d=!1;3===r.rank&&(d=!0,o=(0,x.X)(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const[]=t,l={images:o},m={alignCorners:a,halfPixelCenters:n,size:t},c=s.BV.runKernel(p.dpD,l,m);return d?(0,x.X)(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});const Rn=(0,o.op)({threshold_:function(e,t="binary",a=!1,n=.5){const r=(0,i._1)(e,"image","threshold"),s=r.shape[0]*r.shape[1];let p,o,d,l,c=(0,M.d)(za([n]),255);if(u.hu(3===r.rank,(()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`)),u.hu(3===r.shape[2]||1===r.shape[2],(()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`)),u.hu("int32"===r.dtype||"float32"===r.dtype,(()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`)),u.hu("otsu"===t||"binary"===t,(()=>`Method must be binary or otsu, but was ${t}`)),3===r.shape[2]){[p,o,d]=Aa(r,[1,1,1],-1);const e=(0,M.d)(p,.2989),t=(0,M.d)(o,.587),a=(0,M.d)(d,.114);l=(0,m.I)((0,m.I)(e,t),a)}else l=e;if("otsu"===t){c=function(e,t){let a,n,r,s,p,i,o=za([-1]),d=za([0]),l=za([0]);for(let u=0;u`Error in transform: image must be rank 4,but got rank ${d.rank}.`)),u.hu(2===l.rank&&(l.shape[0]===d.shape[0]||1===l.shape[0])&&8===l.shape[1],(()=>"Error in transform: Input transform should be batch x 8 or 1 x 8")),u.hu(null==o||2===o.length,(()=>`Error in transform: outputShape must be [height, width] or null, but got ${o}.`));const m={image:d,transforms:l},c={interpolation:a,fillMode:n,fillValue:r,outputShape:o};return s.BV.runKernel(p.wx7,m,c)}});const zn=(0,o.op)({bandPart_:function(e,t,a){(0,u.hu)(t%1==0,(()=>`bandPart(): numLower must be an integer, got ${t}.`)),(0,u.hu)(a%1==0,(()=>`bandPart(): numUpper must be an integer, got ${a}.`));const n=(0,i._1)(e,"a","bandPart");(0,u.hu)(n.rank>=2,(()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`));const r=n.shape,[s,p]=n.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(a<=p))throw new Error(`bandPart(): numUpper (${a}) must not be greater than the number of columns (${p}).`);t<0&&(t=s),a<0&&(a=p);const o=(0,x.X)(ra(0,s,1,"int32"),[-1,1]),d=ra(0,p,1,"int32"),l=(0,ot.l)(o,d),m=mt(Ye(l,(0,Ae.i)(+t,"int32")),Ge(l,(0,Ae.i)(-a,"int32"))),c=St([s,p],n.dtype);return(0,x.X)(Ba(Za((0,x.X)(n,[-1,s,p])).map((e=>be(m,e,c)))),r)}});const Ln=(0,o.op)({gramSchmidt_:function(e){let t;if(Array.isArray(e)){t=!1,(0,u.hu)(null!=e&&e.length>0,(()=>"Gram-Schmidt process: input must not be null, undefined, or empty"));const a=e[0].shape[0];for(let t=1;t`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[t].shape[0]} vs. ${a})`))}else t=!0,e=Aa(e,e.shape[0],0).map((e=>Fa(e,[0])));(0,u.hu)(e.length<=e[0].shape[0],(()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`));const a=[],n=e;for(let t=0;t{let e=n[t];if(t>0)for(let n=0;n{(0,u.hu)(2===e.shape.length,(()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`));const a=e.shape[0],n=e.shape[1];let r=Le(a),p=(0,D.d)(e);const i=La([[1]],[1,1]);let o=(0,D.d)(i);const d=a>=n?n:a;for(let e=0;e{const t=B(p,[e,e],[a-e,1]),s=Oe(t),d=B(p,[e,e],[1,1]),l=be(qe(d,0),La([[-1]]),La([[1]])),m=(0,ot.l)(d,(0,M.d)(l,s)),u=(0,ge.h)(t,m);o=1===u.shape[0]?(0,D.d)(i):A([i,B(u,[1,0],[u.shape[0]-1,u.shape[1]])],0);const c=(0,st.W)((0,ge.h)((0,V.O)(l,m),s)),h=B(p,[e,0],[a-e,n]),f=(0,M.d)(c,o),g=(0,an.p)(o);if(0===e)p=(0,ot.l)(h,(0,V.O)(f,(0,V.O)(g,h)));else{const t=(0,ot.l)(h,(0,V.O)(f,(0,V.O)(g,h)));p=A([B(p,[0,0],[e,n]),t],0)}const y=(0,an.p)(f),v=B(r,[0,e],[a,r.shape[1]-e]);if(0===e)r=(0,ot.l)(v,(0,V.O)((0,V.O)(v,o),y));else{const t=(0,ot.l)(v,(0,V.O)((0,V.O)(v,o),y));r=A([B(r,[0,0],[a,e]),t],1)}return[o,p,r]})),(0,Wn.B9)([t,d,l])}return!t&&a>n&&(r=B(r,[0,0],[a,n]),p=B(p,[0,0],[n,n])),[r,p]}))}const Hn=(0,o.op)({qr_:function(e,t=!1){if((0,u.hu)(e.rank>=2,(()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`)),2===e.rank)return Un(e,t);{const a=e.shape.slice(0,e.shape.length-2).reduce(((e,t)=>e*t)),n=Za((0,x.X)(e,[a,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];n.forEach((e=>{const[a,n]=Un(e,t);r.push(a),s.push(n)}));return[(0,x.X)(Ba(r,0),e.shape),(0,x.X)(Ba(s,0),e.shape)]}}});var qn=a(9876);const Gn=(0,o.op)({computeWeightedLoss_:function(e,t,a=qn.I.SUM_BY_NONZERO_WEIGHTS){const n=(0,i._1)(e,"losses","computeWeightedLoss");let r=null;null!=t&&(r=(0,i._1)(t,"weights","computeWeightedLoss"));const s=null==r?n:(0,M.d)(n,r);if(a===qn.I.NONE)return s;if(a===qn.I.SUM)return(0,Fe.S)(s);if(a===qn.I.MEAN){if(null==r)return kt(s);{const e=n.size/r.size,t=(0,ge.h)((0,Fe.S)(s),(0,Fe.S)(r));return e>1?(0,ge.h)(t,(0,Ae.i)(e)):t}}if(a===qn.I.SUM_BY_NONZERO_WEIGHTS){if(null==r)return(0,ge.h)((0,Fe.S)(s),(0,Ae.i)(n.size));{const e=(0,M.d)(r,_t(n.shape)),t=(0,_.p)((0,Fe.S)(Ft(e,(0,Ae.i)(0))),"float32");return(0,ge.h)((0,Fe.S)(s),t)}}throw Error(`Unknown reduction: ${a}`)}});const jn=(0,o.op)({absoluteDifference_:function(e,t,a,n=qn.I.SUM_BY_NONZERO_WEIGHTS){const s=(0,i._1)(e,"labels","absoluteDifference"),p=(0,i._1)(t,"predictions","absoluteDifference");let o=null;null!=a&&(o=(0,i._1)(a,"weights","absoluteDifference")),(0,u.k5)(s.shape,p.shape,"Error in absoluteDifference: ");const d=(0,r.W)((0,ot.l)(s,p));return Gn(d,o,n)}});const Kn=(0,o.op)({cosineDistance_:function(e,t,a,n,r=qn.I.SUM_BY_NONZERO_WEIGHTS){const s=(0,i._1)(e,"labels","cosineDistance"),p=(0,i._1)(t,"predictions","cosineDistance");let o=null;null!=n&&(o=(0,i._1)(n,"weights","cosineDistance")),(0,u.k5)(s.shape,p.shape,"Error in cosineDistance: ");const d=(0,Ae.i)(1),l=(0,ot.l)(d,(0,Fe.S)((0,M.d)(s,p),a,!0));return Gn(l,o,r)}});const Xn=(0,o.op)({hingeLoss_:function(e,t,a,n=qn.I.SUM_BY_NONZERO_WEIGHTS){let r=(0,i._1)(e,"labels","hingeLoss");const s=(0,i._1)(t,"predictions","hingeLoss");let p=null;null!=a&&(p=(0,i._1)(a,"weights","hingeLoss")),(0,u.k5)(r.shape,s.shape,"Error in hingeLoss: ");const o=(0,Ae.i)(1);r=(0,ot.l)((0,M.d)((0,Ae.i)(2),r),o);const d=(0,ia.U)((0,ot.l)(o,(0,M.d)(r,s)));return Gn(d,p,n)}});const Zn=(0,o.op)({huberLoss_:function(e,t,a,n=1,s=qn.I.SUM_BY_NONZERO_WEIGHTS){const p=(0,i._1)(e,"labels","huberLoss"),o=(0,i._1)(t,"predictions","huberLoss");let d=null;null!=a&&(d=(0,i._1)(a,"weights","huberLoss")),(0,u.k5)(p.shape,o.shape,"Error in huberLoss: ");const l=(0,Ae.i)(n),c=(0,r.W)((0,ot.l)(o,p)),h=It(c,l),f=(0,ot.l)(c,h),g=(0,m.I)((0,M.d)((0,Ae.i)(.5),(0,Me.h)(h)),(0,M.d)(l,f));return Gn(g,d,s)}});const Jn=(0,o.op)({logLoss_:function(e,t,a,n=1e-7,r=qn.I.SUM_BY_NONZERO_WEIGHTS){const s=(0,i._1)(e,"labels","logLoss"),p=(0,i._1)(t,"predictions","logLoss");let o=null;null!=a&&(o=(0,i._1)(a,"weights","logLoss")),(0,u.k5)(s.shape,p.shape,"Error in logLoss: ");const d=(0,Ae.i)(1),l=(0,Ae.i)(n),c=(0,st.W)((0,M.d)(s,at((0,m.I)(p,l)))),h=(0,M.d)((0,ot.l)(d,s),at((0,m.I)((0,ot.l)(d,p),l))),f=(0,ot.l)(c,h);return Gn(f,o,r)}});const Qn=(0,o.op)({meanSquaredError_:function(e,t,a,n=qn.I.SUM_BY_NONZERO_WEIGHTS){const r=(0,i._1)(e,"labels","meanSquaredError"),s=(0,i._1)(t,"predictions","meanSquaredError");let p=null;null!=a&&(p=(0,i._1)(a,"weights","meanSquaredError")),(0,u.k5)(r.shape,s.shape,"Error in meanSquaredError: ");const o=Ma(r,s);return Gn(o,p,n)}});const Yn=(0,o.op)({sigmoidCrossEntropy_:function(e,t,a,n=0,s=qn.I.SUM_BY_NONZERO_WEIGHTS){let p=(0,i._1)(e,"multiClassLabels","sigmoidCrossEntropy");const o=(0,i._1)(t,"logits","sigmoidCrossEntropy");let d=null;if(null!=a&&(d=(0,i._1)(a,"weights","sigmoidCrossEntropy")),(0,u.k5)(p.shape,o.shape,"Error in sigmoidCrossEntropy: "),n>0){const e=(0,Ae.i)(n),t=(0,Ae.i)(1),a=(0,Ae.i)(.5);p=(0,m.I)((0,M.d)(p,(0,ot.l)(t,e)),(0,M.d)(a,e))}const l=function(e,t){const a=(0,i._1)(e,"labels","sigmoidCrossEntropyWithLogits"),n=(0,i._1)(t,"logits","sigmoidCrossEntropyWithLogits");(0,u.k5)(a.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");const s=(0,ia.U)(n),p=(0,M.d)(n,a),o=nt(Ce((0,st.W)((0,r.W)(n))));return(0,m.I)((0,ot.l)(s,p),o)}(p,o);return Gn(l,d,s)}});const er=(0,o.op)({softmaxCrossEntropy_:function(e,t,a,n=0,r=qn.I.SUM_BY_NONZERO_WEIGHTS){let s=(0,i._1)(e,"onehotLabels","softmaxCrossEntropy");const p=(0,i._1)(t,"logits","softmaxCrossEntropy");let o=null;if(null!=a&&(o=(0,i._1)(a,"weights","softmaxCrossEntropy")),(0,u.k5)(s.shape,p.shape,"Error in softmaxCrossEntropy: "),n>0){const e=(0,Ae.i)(n),t=(0,Ae.i)(1),a=(0,Ae.i)(s.shape[1]);s=(0,m.I)((0,M.d)(s,(0,ot.l)(t,e)),(0,ge.h)(e,a))}const d=function(e,t,a=-1){if(-1===a&&(a=t.rank-1),a!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${a}`);const n=(0,rt.cb)(((e,t,n)=>{const r=lt(t,[a],!0),s=(0,ot.l)((0,_.p)(t,"float32"),r);n([e,s]);const p=(0,st.W)((0,M.d)(s,e));return{value:(0,Fe.S)(p,[a]),gradFunc:(e,t)=>{const[n,r]=t,s=(0,xe.rv)(e.shape,[a]);return[(0,M.d)((0,x.X)(e,s),(0,ot.l)((0,_.p)(n,"float32"),Ce(r))),(0,M.d)((0,x.X)(e,s),(0,ot.l)(Ce(r),(0,_.p)(n,"float32")))]}}}));return n(e,t)}(s,p);return Gn(d,o,r)}});const tr=(0,o.op)({sparseFillEmptyRows_:function(e,t,a,n){const r=(0,i._1)(e,"indices","sparseFillEmptyRows","int32"),o=(0,i._1)(t,"values","sparseFillEmptyRows"),d=(0,i._1)(a,"denseShape","sparseFillEmptyRows","int32"),l=(0,i._1)(n,"defaultValue","sparseFillEmptyRows",o.dtype);if(2!==r.rank)throw new Error(`Indices should be Tensor2D but received shape\n ${r.shape}`);if(1!==o.rank)throw new Error(`Values should be Tensor1D but received shape ${o.shape}`);if(1!==d.rank)throw new Error(`Dense shape should be Tensor1D but received shape ${d.shape}`);if(0!==l.rank)throw new Error(`Default value should be a scalar but received shape ${l.shape}`);const m={indices:r,values:o,denseShape:d,defaultValue:l},u=s.BV.runKernel(p.O3z,m);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}});const ar=(0,o.op)({sparseReshape_:function(e,t,a){const n=(0,i._1)(e,"inputIndices","sparseReshape","int32"),r=(0,i._1)(t,"inputShape","sparseReshape","int32"),o=(0,i._1)(a,"newShape","sparseReshape","int32");if(2!==n.rank)throw new Error(`Input indices should be Tensor2D but received shape\n ${n.shape}`);if(1!==r.rank)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(1!==o.rank)throw new Error(`New shape should be Tensor1D but received shape ${o.shape}`);const d={inputIndices:n,inputShape:r,newShape:o},l=s.BV.runKernel(p.nhH,d);return{outputIndices:l[0],outputShape:l[1]}}});const nr=(0,o.op)({sparseSegmentMean_:function(e,t,a){const n=(0,i._1)(e,"data","sparseSegmentMean"),r=(0,i._1)(t,"indices","sparseSegmentMean","int32"),o=(0,i._1)(a,"segmentIds","sparseSegmentMean","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.rank)throw new Error(`Indices should be Tensor1D but received shape\n ${r.shape}`);if(1!==o.rank)throw new Error(`Segment ids should be Tensor1D but received shape\n ${o.shape}`);const d={data:n,indices:r,segmentIds:o};return s.BV.runKernel(p.w3H,d)}});const rr=(0,o.op)({sparseSegmentSum_:function(e,t,a){const n=(0,i._1)(e,"data","sparseSegmentSum"),r=(0,i._1)(t,"indices","sparseSegmentSum","int32"),o=(0,i._1)(a,"segmentIds","sparseSegmentSum","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(1!==r.rank)throw new Error(`Indices should be Tensor1D but received shape\n ${r.shape}`);if(1!==o.rank)throw new Error(`Segment ids should be Tensor1D but received shape\n ${o.shape}`);const d={data:n,indices:r,segmentIds:o};return s.BV.runKernel(p.ZjV,d)}});const sr=(0,o.op)({stringNGrams_:function(e,t,a,n,r,o,d,l){const m=(0,i._1)(e,"data","stringNGrams","string");if("string"!==m.dtype)throw new Error("Data must be of datatype string");if(1!==m.shape.length)throw new Error(`Data must be a vector, saw: ${m.shape}`);const u=(0,i._1)(t,"dataSplits","stringNGrams");if("int32"!==u.dtype)throw new Error("Data splits must be of datatype int32");const c={separator:a,nGramWidths:n,leftPad:r,rightPad:o,padWidth:d,preserveShortSequences:l},h={data:m,dataSplits:u},f=s.BV.runKernel(p._JP,h,c);return{nGrams:f[0],nGramsSplits:f[1]}}});const pr=(0,o.op)({stringSplit_:function(e,t,a=!0){const n=(0,i._1)(e,"input","stringSplit","string"),r=(0,i._1)(t,"delimiter","stringSplit","string");if(1!==n.rank)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(0!==r.rank)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);const o={skipEmpty:a},d={input:n,delimiter:r},l=s.BV.runKernel(p.s1s,d,o);return{indices:l[0],values:l[1],shape:l[2]}}});const ir=(0,o.op)({stringToHashBucketFast_:function(e,t){const a=(0,i._1)(e,"input","stringToHashBucketFast","string"),n={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");const r={input:a};return s.BV.runKernel(p.XkS,r,n)}}),or={fft:Ia,ifft:Ea,rfft:Va,irfft:Da},dr={hammingWindow:wn,hannWindow:Nn,frame:kn,stft:Sn},lr={flipLeftRight:Tn,grayscaleToRGB:xn,resizeNearestNeighbor:Cn,resizeBilinear:$n,rotateWithOffset:In,cropAndResize:_n,nonMaxSuppression:Dn,nonMaxSuppressionAsync:Vn,nonMaxSuppressionWithScore:Mn,nonMaxSuppressionWithScoreAsync:Fn,nonMaxSuppressionPadded:Bn,nonMaxSuppressionPaddedAsync:On,threshold:Rn,transform:Pn},mr={bandPart:zn,gramSchmidt:Ln,qr:Hn},ur={absoluteDifference:jn,computeWeightedLoss:Gn,cosineDistance:Kn,hingeLoss:Xn,huberLoss:Zn,logLoss:Jn,meanSquaredError:Qn,sigmoidCrossEntropy:Yn,softmaxCrossEntropy:er},cr={sparseFillEmptyRows:tr,sparseReshape:ar,sparseSegmentMean:nr,sparseSegmentSum:rr},hr={stringNGrams:sr,stringSplit:pr,stringToHashBucketFast:ir}},3453:(e,t,a)=>{"use strict";a.d(t,{s:()=>i});var n=a(7097),r=a(9121),s=a(747),p=a(3740);const i=(0,a(2668).op)({pow_:function(e,t){let a=(0,p._1)(e,"base","pow"),i=(0,p._1)(t,"exp","pow");[a,i]=(0,s.makeTypesMatch)(a,i);const o={a,b:i};return n.BV.runKernel(r.pe_,o)}})},8151:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({prelu_:function(e,t){const a={x:(0,s._1)(e,"x","prelu"),alpha:(0,s._1)(t,"alpha","prelu")};return n.BV.runKernel(r.o0g,a)}})},9798:(e,t,a)=>{"use strict";function n(e,t=!1){console.log(e.toString(t))}a.d(t,{S:()=>n})},766:(e,t,a)=>{"use strict";a.d(t,{k:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({real_:function(e){const t={input:(0,s._1)(e,"input","real")};return n.BV.runKernel(r.xJR,t)}})},7409:(e,t,a)=>{"use strict";a.d(t,{U:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({relu_:function(e){const t={x:(0,s._1)(e,"x","relu")};return n.BV.runKernel(r.qkr,t)}})},3582:(e,t,a)=>{"use strict";a.d(t,{b:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({relu6_:function(e){const t={x:(0,s._1)(e,"x","relu6")};return n.BV.runKernel(r.SbG,t)}})},4968:(e,t,a)=>{"use strict";a.d(t,{X:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({reshape_:function(e,t){const a={x:(0,s._1)(e,"x","reshape","string_or_numeric")},p={shape:t};return n.BV.runKernel(r.HZH,a,p)}})},9494:(e,t,a)=>{"use strict";a.d(t,{i:()=>s});var n=a(569),r=a(7852);function s(e,t){if(((0,n.fU)(e)&&"string"!==t||Array.isArray(e))&&"complex64"!==t)throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if("string"===t&&(0,n.fU)(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return(0,r.H)(e,[],[],t)}},3028:(e,t,a)=>{"use strict";a.r(t),a.d(t,{validateUpdateShape:()=>r,validateInput:()=>s,calculateShapes:()=>p});var n=a(569);function r(e,t,a){const n=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${a.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${n}, and batchDim: ${r}.`;if(a.rank1?t.shape[r-1]:1,p=a.length;let i=1;for(let e=s;e{"use strict";a.d(t,{X:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({sigmoid_:function(e){const t={x:(0,s._1)(e,"x","sigmoid","float32")};return n.BV.runKernel(r.a5O,t)}})},3261:(e,t,a)=>{"use strict";a.d(t,{_:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({sqrt_:function(e){const t={x:(0,s._1)(e,"x","sqrt","float32")};return n.BV.runKernel(r.FKq,t)}})},248:(e,t,a)=>{"use strict";a.d(t,{h:()=>s});var n=a(7097),r=a(3740);const s=(0,a(2668).op)({square_:function(e){const t=(0,r._1)(e,"x","square");return n.BV.runKernel("Square",{x:t},{})}})},1901:(e,t,a)=>{"use strict";a.d(t,{N:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({step_:function(e,t=0){const a={x:(0,s._1)(e,"x","step")},p={alpha:t};return n.BV.runKernel(r.h8e,a,p)}})},827:(e,t,a)=>{"use strict";a.d(t,{l:()=>i});var n=a(7097),r=a(9121),s=a(747),p=a(3740);const i=(0,a(2668).op)({sub_:function(e,t){let a=(0,p._1)(e,"a","sub"),i=(0,p._1)(t,"b","sub");[a,i]=(0,s.makeTypesMatch)(a,i);const o={a,b:i};return n.BV.runKernel(r.Tr8,o)}})},5475:(e,t,a)=>{"use strict";a.d(t,{S:()=>i});var n=a(7097),r=a(9121),s=a(3740),p=a(2271);const i=(0,a(2668).op)({sum_:function(e,t=null,a=!1){let i=(0,s._1)(e,"x","sum");"bool"===i.dtype&&(i=(0,p.p)(i,"int32"));const o={x:i},d={axis:t,keepDims:a};return n.BV.runKernel(r.GBy,o,d)}})},701:(e,t,a)=>{"use strict";a.d(t,{X:()=>s});var n=a(3740),r=a(7852);function s(e,t,a){const s=(0,n.C)(e,a);return(0,r.H)(e,t,s,a)}},9906:(e,t,a)=>{"use strict";a.d(t,{w:()=>p});var n=a(3740),r=a(569),s=a(7852);function p(e,t,a){if((0,r.Cq)(e),null!=t&&3!==t.length)throw new Error("tensor3d() requires shape to have three numbers");const p=(0,n.C)(e,a);if(3!==p.length&&1!==p.length)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===p.length&&null==t)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return(0,s.H)(e,t,p,a)}},7852:(e,t,a)=>{"use strict";a.d(t,{H:()=>p});var n=a(7097),r=a(569),s=a(9122);function p(e,t,a,p){if(null==p&&(p=(0,r.D2)(e)),"complex64"===p)throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!(0,r.fU)(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e)throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(null!=t){(0,r.Mu)(t);const e=(0,r.NA)(t),n=(0,r.NA)(a);(0,r.hu)(e===n,(()=>`Based on the provided shape, [${t}], the tensor should have ${e} values but has ${n}`));for(let e=0;e`Error creating a new Tensor. Inferred shape (${a}) does not match the provided shape (${t}). `))}}return(0,r.fU)(e)||Array.isArray(e)||(e=[e]),t=t||a,e="string"!==p?(0,s.toTypedArray)(e,p):(0,r.xH)(e,[],!0),n.BV.makeTensor(e,t,p)}},9065:(e,t,a)=>{"use strict";a.d(t,{p:()=>c});var n=a(7097),r=a(4368),s=a(9121),p=a(3740),i=a(569),o=a(1661),d=a(4386),l=a(7370),m=a(2668),u=a(766);const c=(0,m.op)({transpose_:function(e,t,a){const m=(0,p._1)(e,"x","transpose");if(null==t&&(t=m.shape.map(((e,t)=>t)).reverse()),i.hu(m.rank===t.length,(()=>`Error in transpose: rank of input ${m.rank} must match length of perm ${t}.`)),t.forEach((e=>{i.hu(e>=0&&e"All entries in 'perm' must be between 0 and "+(m.rank-1)+` but got ${t}`))})),m.rank<=1)return m.clone();const c={x:m},h={perm:t};return"complex64"===m.dtype?(0,r.lu)((()=>{let e=(0,u.k)(m),t=(0,d.a)(m);return e=n.BV.runKernel(s.G3Y,{x:e},h),t=n.BV.runKernel(s.G3Y,{x:t},h),a&&(t=(0,l.W)(t)),(0,o.P)(e,t)})):n.BV.runKernel(s.G3Y,c,h)}})},6577:(e,t,a)=>{"use strict";a.d(t,{P:()=>p});var n=a(7097),r=a(9121),s=a(3740);const p=(0,a(2668).op)({zerosLike_:function(e){const t={x:(0,s._1)(e,"x","zerosLike")};return n.BV.runKernel(r.RuY,t)}})},4077:(e,t,a)=>{"use strict";a.d(t,{es:()=>v,YD:()=>m,_w:()=>b,FZ:()=>y,Vp:()=>g,Vi:()=>f});var n=a(5938),r=a(569);function s(e,t,a,n){const s=(0,r.e3)(t),i=function(e,t,a,n){const s=(0,r.NA)(t),i=n[n.length-1],o=new Array(i).fill(0),l=t.length,m="complex64"===a?d(e):e;if(l>1)for(let e=0;e" "+e)).join("\n")),u.join("\n")}function p(e,t,a){let n;return n=Array.isArray(e)?`${parseFloat(e[0].toFixed(7))} + ${parseFloat(e[1].toFixed(7))}j`:(0,r.HD)(e)?`'${e}'`:"bool"===a?i(e):parseFloat(e.toFixed(7)).toString(),(0,r.oj)(n,t)}function i(e){return 0===e?"false":"true"}function o(e,t,a,n,r,s=!0){const l="complex64"===a?2:1,m=t[0],u=t.length;if(0===u){if("complex64"===a){return[p(d(e)[0],0,a)]}return"bool"===a?[i(e[0])]:[e[0].toString()]}if(1===u){if(m>20){const t=3*l;let n=Array.from(e.slice(0,t)),s=Array.from(e.slice((m-3)*l,m*l));return"complex64"===a&&(n=d(n),s=d(s)),["["+n.map(((e,t)=>p(e,r[t],a))).join(", ")+", ..., "+s.map(((e,t)=>p(e,r[m-3+t],a))).join(", ")+"]"]}return["["+("complex64"===a?d(e):Array.from(e)).map(((e,t)=>p(e,r[t],a))).join(", ")+"]"]}const c=t.slice(1),h=n.slice(1),f=n[0]*l,g=[];if(m>20){for(let t=0;t<3;t++){const n=t*f,s=n+f;g.push(...o(e.slice(n,s),c,a,h,r,!1))}g.push("...");for(let t=m-3;t`Length of values '${e}' does not match the size inferred by the shape '${this.size}'.`))}if("complex64"===t)throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=a||r.rQ(t,this.size),this.strides=(0,r.e3)(e)}set(e,...t){0===t.length&&(t=[0]),r.hu(t.length===this.rank,(()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`));const a=this.locToIndex(t);this.values[a]=e}get(...e){0===e.length&&(e=[0]);let t=0;for(const a of e){if(a<0||a>=this.shape[t]){const t=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(t)}t++}let a=e[e.length-1];for(let t=0;tl.decodeString(e)))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),u().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();const e=u().readSync(this.dataId);if("string"===this.dtype)try{return e.map((e=>l.decodeString(e)))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();const e=await u().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(u().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return c.print(this,e)}clone(){return this.throwIfDisposed(),c.clone(this)}toString(e=!1){return s(this.dataSync(),this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),c.cast(this,e)}variable(e=!0,t,a){return this.throwIfDisposed(),u().makeVariable(this,e,t,a)}}Object.defineProperty(v,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed}),(0,n.R)("Tensor",(()=>v));class b extends v{constructor(e,t,a,n){super(e.shape,e.dtype,e.dataId,n),this.trainable=t,this.name=a}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!r.cO(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);u().disposeTensor(this),this.dataId=e.dataId,u().incRef(this,null)}dispose(){u().disposeVariable(this),this.isDisposedInternal=!0}}Object.defineProperty(b,Symbol.hasInstance,{value:e=>e instanceof v&&null!=e.assign&&e.assign instanceof Function})},747:(e,t,a)=>{"use strict";a.r(t),a.d(t,{makeTypesMatch:()=>p,assertTypesMatch:()=>i,isTensorInList:()=>o,getTensorsInContainer:()=>d});var n=a(4077),r=a(1221),s=a(569);function p(e,t){if(e.dtype===t.dtype)return[e,t];const a=(0,r.x8)(e.dtype,t.dtype);return[e.cast(a),t.cast(a)]}function i(e,t){(0,s.hu)(e.dtype===t.dtype,(()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`))}function o(e,t){return t.some((t=>t.id===e.id))}function d(e){const t=[];return l(e,t,new Set),t}function l(e,t,a){if(null==e)return;if(e instanceof n.es)return void t.push(e);if(r=e,!Array.isArray(r)&&"object"!=typeof r)return;var r;const s=e;for(const e in s){const n=s[e];a.has(n)||(a.add(n),l(n,t,a))}}},3740:(e,t,a)=>{"use strict";a.d(t,{C:()=>o,_1:()=>m,sI:()=>u});var n=a(7097),r=a(2885),s=a(4077),p=a(569),i=a(9122);function o(e,t){let a=e;if((0,p.fU)(e))return"string"===t?[]:[e.length];if(!Array.isArray(e))return[];const n=[];for(;Array.isArray(a)||(0,p.fU)(a)&&"string"!==t;)n.push(a.length),a=a[0];return Array.isArray(e)&&(0,r.OB)().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&d(e,n,[]),n}function d(e,t,a){if(a=a||[],!Array.isArray(e)&&!(0,p.fU)(e))return void(0,p.hu)(0===t.length,(()=>`Element arr[${a.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`));(0,p.hu)(t.length>0,(()=>`Element arr[${a.join("][")}] should be a primitive, but is an array of ${e.length} elements`)),(0,p.hu)(e.length===t[0],(()=>`Element arr[${a.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`));const n=t.slice(1);for(let t=0;t=0&&(d=r),l(r,d,t,a),null==e||!(0,p.fU)(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){const n=null==e?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${a}' must be a Tensor or TensorLike, but got '${n}'`)}const m=o(e,d);(0,p.fU)(e)||Array.isArray(e)||(e=[e]);const u="string"!==d?(0,i.toTypedArray)(e,d):(0,p.xH)(e,[],!0);return n.BV.makeTensor(u,m,d)}function u(e,t,a,n="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${a} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map(((e,r)=>m(e,`${t}[${r}]`,a,n)))}},1221:(e,t,a)=>{"use strict";var n,r,s,p,i;a.d(t,{yw:()=>n,x8:()=>d,z4:()=>l}),function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"}(n||(n={})),function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"}(r||(r={})),function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"}(s||(s={})),function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"}(p||(p={})),function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"}(i||(i={}));const o={float32:p,int32:r,bool:s,complex64:i};function d(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return o[e][t]}function l(e){return d(e,"int32")}},9122:(e,t,a)=>{"use strict";a.r(t),a.d(t,{arraysEqual:()=>r.cO,assert:()=>r.hu,assertNonNegativeIntegerDimensions:()=>r.Mu,assertNonNull:()=>r.Cq,assertShapesMatch:()=>r.k5,bytesFromStringArray:()=>r.Ub,bytesPerElement:()=>r.bT,checkConversionForErrors:()=>r.D5,clamp:()=>r.uZ,computeStrides:()=>r.e3,createScalarValue:()=>b,createShuffledIndices:()=>r.U$,decodeString:()=>_,distSquared:()=>r.E7,encodeString:()=>S,fetch:()=>k,fingerPrint64:()=>v,flatten:()=>r.xH,getArrayFromDType:()=>r.rQ,getTypedArrayFromDType:()=>r.WP,hasEncodingLoss:()=>r.QB,hexToLong:()=>i,indexToLoc:()=>r.NE,inferDtype:()=>r.D2,inferFromImplicitShape:()=>r.JZ,isBoolean:()=>r.jn,isFunction:()=>r.mf,isInt:()=>r.GN,isNumber:()=>r.hj,isPromise:()=>r.tI,isScalarShape:()=>r.N9,isString:()=>r.HD,isTypedArray:()=>r.fU,isValidDtype:()=>r.LP,locToIndex:()=>r.qy,makeOnesTypedArray:()=>r.p8,makeZerosNestedTypedArray:()=>r.l6,makeZerosTypedArray:()=>r.wT,nearestDivisor:()=>r.jP,nearestLargerEven:()=>r.nY,now:()=>N,parseAxisParam:()=>r.EC,randUniform:()=>r.bj,repeatedTry:()=>r.WD,rightPad:()=>r.oj,shuffle:()=>r.TV,shuffleCombo:()=>r.d7,sizeFromShape:()=>r.NA,sizeToSquarishShape:()=>r.YP,squeezeShape:()=>r.bp,sum:()=>r.Sm,swap:()=>r.LF,tanh:()=>r.AE,toNestedArray:()=>r.GX,toTypedArray:()=>w});var n=a(2885),r=a(569),s=a(3720);const p=a.n(s)()||s;function i(e){return p.fromString(e,!0,16)}const o=i("c3a5c85c97cb3127"),d=i("b492b66fbe98f273"),l=i("9ae16a3b2f90404f");function m(e){return e.xor(e.shru(47))}function u(e,t,a){const n=e.slice(t,t+a);return p.fromBytes(Array.from(n),!0,!0)}function c(e,t){return u(e,t,8)}function h(e,t){return u(e,t,4)}function f(e,t){return 0===t?e:e.shru(t).or(e.shl(64-t))}function g(e,t,a=i("9ddfea08eb382d69")){let n=e.xor(t).mul(a);n=n.xor(n.shru(47));let r=t.xor(n).mul(a);return r=r.xor(r.shru(47)),r=r.mul(a),r}function y(e,t,a,n){return function(e,t,a,n,r,s){r=r.add(e),s=f(s.add(r).add(n),21);const p=r;return r=(r=r.add(t)).add(a),s=s.add(f(r,44)),[r.add(n),s.add(p)]}(c(e,t),c(e,t+8),c(e,t+16),c(e,t+24),a,n)}function v(e,t=e.length){const a=p.fromNumber(81,!0);if(t<=32)return t<=16?function(e,t=e.length){if(t>=8){const a=l.add(2*t),n=c(e,0).add(l),r=c(e,t-8);return g(f(r,37).mul(a).add(n),f(n,25).add(r).mul(a),a)}if(t>=4){const a=l.add(2*t);return g(h(e,0).shl(3).add(t),h(e,t-4),a)}if(t>0){const a=e[0]+(e[t>>1]<<8),n=t+(e[t-1]<<2);return m(l.mul(a).xor(o.mul(n))).mul(l)}return l}(e,t):function(e,t=e.length){const a=l.add(2*t),n=c(e,0).mul(d),r=c(e,8),s=c(e,t-8).mul(a),p=c(e,t-16).mul(l);return g(f(n.add(r),43).add(f(s,30)).add(p),n.add(f(r.add(l),18)).add(s),a)}(e,t);if(t<=64)return function(e,t=e.length){const a=l.add(2*t),n=c(e,0).mul(l),r=c(e,8),s=c(e,t-8).mul(a),p=c(e,t-16).mul(l),i=f(n.add(r),43).add(f(s,30)).add(p),o=g(i,n.add(f(r.add(l),18)).add(s),a),d=c(e,16).mul(a),m=c(e,24),u=i.add(c(e,t-32)).mul(a),h=o.add(c(e,t-24)).mul(a);return g(f(d.add(m),43).add(f(u,30)).add(h),d.add(f(m.add(n),18)).add(u),a)}(e,t);let n=a,r=a.mul(d).add(113),s=m(r.mul(l).add(113)).mul(l),i=[p.UZERO,p.UZERO],u=[p.UZERO,p.UZERO];n=n.mul(l).add(c(e,0));let v=0;const b=64*(t-1>>6),w=b+(t-1&63)-63;do{n=f(n.add(r).add(i[0]).add(c(e,v+8)),37).mul(d),r=f(r.add(i[1]).add(c(e,v+48)),42).mul(d),n=n.xor(u[1]),r=r.add(i[0]).add(c(e,v+40)),s=f(s.add(u[0]),33).mul(d),i=y(e,v,i[1].mul(d),n.add(u[0])),u=y(e,v+32,s.add(u[1]),r.add(c(e,v+16))),[s,n]=[n,s],v+=64}while(v!==b);const N=d.add(s.and(255).shl(1));return v=w,u[0]=u[0].add(t-1&63),i[0]=i[0].add(u[0]),u[0]=u[0].add(i[0]),n=f(n.add(r).add(i[0]).add(c(e,v+8)),37).mul(N),r=f(r.add(i[1]).add(c(e,v+48)),42).mul(N),n=n.xor(u[1].mul(9)),r=r.add(i[0].mul(9).add(c(e,v+40))),s=f(s.add(u[0]),33).mul(N),i=y(e,v,i[1].mul(N),n.add(u[0])),u=y(e,v+32,s.add(u[1]),r.add(c(e,v+16))),[s,n]=[n,s],g(g(i[0],u[0],N).add(m(r).mul(o)).add(s),g(i[1],u[1],N).add(n),N)}function b(e,t){return"string"===t?S(e):w([e],t)}function w(e,t){if("string"===t)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=r.xH(e)),(0,n.OB)().getBool("DEBUG")&&r.D5(e,t),function(e,t){return e instanceof Float32Array&&"float32"===t||e instanceof Int32Array&&"int32"===t||e instanceof Uint8Array&&"bool"===t}(e,t))return e;if(null==t||"float32"===t||"complex64"===t)return new Float32Array(e);if("int32"===t)return new Int32Array(e);if("bool"===t){const t=new Uint8Array(e.length);for(let a=0;a{"use strict";function n(e){let t=e.length,a=0;for(;t>0;)a=Math.random()*t|0,t--,i(e,t,a)}function r(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 a=e.length,n=0;for(;a>0;)n=Math.random()*a|0,a--,i(e,a,n),i(t,a,n)}function s(e,t,a){return Math.max(e,Math.min(t,a))}function p(e){return e%2==0?e:e+1}function i(e,t,a){const n=e[t];e[t]=e[a],e[a]=n}function o(e){let t=0;for(let a=0;aa+` Shapes ${e} and ${t} must match`))}function c(e){m(null!=e,(()=>"The input to the tensor constructor must be a non-null value."))}function h(e,t=[],a=!1){if(null==t&&(t=[]),Array.isArray(e)||M(e)&&!a)for(let n=0;n0),a,n=setTimeout){return new Promise(((r,s)=>{let p=0;const i=()=>{if(e())return void r();p++;const o=t(p);null!=a&&p>=a?s():n(i,o)};i()}))}function _(e,t){let a=1,n=-1;for(let t=0;t=0)a*=e[t];else if(-1===e[t]){if(-1!==n)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${t}`);n=t}else if(e[t]<0)throw Error(`Shapes can not be < 0. Found ${e[t]} at dim ${t}`);if(-1===n){if(t>0&&t!==a)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(0===a)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%a!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${a}`);const r=e.slice();return r[n]=t/a,r}function T(e,t){const a=t.length;return m((e=null==e?t.map(((e,t)=>t)):[].concat(e)).every((e=>e>=-a&&e`All values in axis param must be in range [-${a}, ${a}) but got axis ${e}`)),m(e.every((e=>v(e))),(()=>`All values in axis param must be integers but got axis ${e}`)),e.map((e=>e<0?a+e:e))}function x(e,t){const a=[],n=[],r=null!=t&&Array.isArray(t)&&0===t.length,s=null==t||r?null:T(t,e).sort();let p=0;for(let t=0;tt)&&1===e[t]&&(a.push(e[t]),n.push(t)),s[p]<=t&&p++}1!==e[t]&&(a.push(e[t]),n.push(t))}return{newShape:a,keptDims:n}}function I(e,t){let a=null;if(null==e||"float32"===e)a=new Float32Array(t);else if("int32"===e)a=new Int32Array(t);else{if("bool"!==e)throw new Error(`Unknown data type ${e}`);a=new Uint8Array(t)}return a}function E(e,t){let a=null;if(null==e||"float32"===e)a=new Float32Array(t);else if("int32"===e)a=new Int32Array(t);else if("bool"===e)a=new Uint8Array(t);else{if("string"!==e)throw new Error(`Unknown data type ${e}`);a=new Array(t)}return a}function D(e,t){for(let a=0;at+=e.length)),t}function O(e){return"string"==typeof e||e instanceof String}function $(e){return"boolean"==typeof e}function C(e){return"number"==typeof e}function R(e){return Array.isArray(e)?R(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":C(e)?"float32":O(e)?"string":$(e)?"bool":"float32"}function P(e){return!!(e&&e.constructor&&e.call&&e.apply)}function z(e,t){for(let a=t;a=0;--n)a[n]=a[n+1]*e[n+1];return a}function W(e,t,a,n=!1){const r=new Array;if(1===t.length){const s=t[0]*(n?2:1);for(let t=0;te*t))*(n?2:1);for(let t=0;te*t))*(a?2:1);if(0===n)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${a?" for a complex tensor":""}.`);return W(0,e,t,a)}function H(e,t){const a=q(e,t);for(let e=0;ee*t),1);if(null==t||"float32"===t)return U(e,new Float32Array(a));if("int32"===t)return U(e,new Int32Array(a));if("bool"===t)return U(e,new Uint8Array(a));throw new Error(`Unknown data type ${t}`)}function j(e){e.forEach((t=>{m(Number.isInteger(t)&&t>=0,(()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`))}))}function K(e,t,a){if(0===t)return 0;if(1===t)return e[0];let n=e[e.length-1];for(let t=0;tn,d7:()=>r,uZ:()=>s,nY:()=>p,LF:()=>i,Sm:()=>o,bj:()=>d,E7:()=>l,hu:()=>m,k5:()=>u,Cq:()=>c,xH:()=>h,NA:()=>f,N9:()=>g,cO:()=>y,GN:()=>v,AE:()=>b,YP:()=>w,U$:()=>N,oj:()=>k,WD:()=>S,JZ:()=>_,EC:()=>T,bp:()=>x,WP:()=>I,rQ:()=>E,D5:()=>D,LP:()=>A,QB:()=>V,fU:()=>M,bT:()=>F,Ub:()=>B,HD:()=>O,jn:()=>$,hj:()=>C,D2:()=>R,mf:()=>P,jP:()=>z,e3:()=>L,GX:()=>U,p8:()=>H,wT:()=>q,l6:()=>G,Mu:()=>j,qy:()=>K,NE:()=>X,tI:()=>Z})},3720:e=>{e.exports=a;var t=null;try{t=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(e){}function a(e,t,a){this.low=0|e,this.high=0|t,this.unsigned=!!a}function n(e){return!0===(e&&e.__isLong__)}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0}),a.isLong=n;var r={},s={};function p(e,t){var a,n,p;return t?(p=0<=(e>>>=0)&&e<256)&&(n=s[e])?n:(a=o(e,(0|e)<0?-1:0,!0),p&&(s[e]=a),a):(p=-128<=(e|=0)&&e<128)&&(n=r[e])?n:(a=o(e,e<0?-1:0,!1),p&&(r[e]=a),a)}function i(e,t){if(isNaN(e))return t?y:g;if(t){if(e<0)return y;if(e>=c)return k}else{if(e<=-h)return S;if(e+1>=h)return N}return e<0?i(-e,t).neg():o(e%u|0,e/u|0,t)}function o(e,t,n){return new a(e,t,n)}a.fromInt=p,a.fromNumber=i,a.fromBits=o;var d=Math.pow;function l(e,t,a){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return g;if("number"==typeof t?(a=t,t=!1):t=!!t,(a=a||10)<2||360)throw Error("interior hyphen");if(0===n)return l(e.substring(1),t,a).neg();for(var r=i(d(a,8)),s=g,p=0;p>>0:this.low},_.toNumber=function(){return this.unsigned?(this.high>>>0)*u+(this.low>>>0):this.high*u+(this.low>>>0)},_.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((s=o).isZero())return l+p;for(;l.length<6;)l="0"+l;p=""+l+p}},_.getHighBits=function(){return this.high},_.getHighBitsUnsigned=function(){return this.high>>>0},_.getLowBits=function(){return this.low},_.getLowBitsUnsigned=function(){return this.low>>>0},_.getNumBitsAbs=function(){if(this.isNegative())return this.eq(S)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&0==(e&1<=0},_.isOdd=function(){return 1==(1&this.low)},_.isEven=function(){return 0==(1&this.low)},_.equals=function(e){return n(e)||(e=m(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&(this.high===e.high&&this.low===e.low)},_.eq=_.equals,_.notEquals=function(e){return!this.eq(e)},_.neq=_.notEquals,_.ne=_.notEquals,_.lessThan=function(e){return this.comp(e)<0},_.lt=_.lessThan,_.lessThanOrEqual=function(e){return this.comp(e)<=0},_.lte=_.lessThanOrEqual,_.le=_.lessThanOrEqual,_.greaterThan=function(e){return this.comp(e)>0},_.gt=_.greaterThan,_.greaterThanOrEqual=function(e){return this.comp(e)>=0},_.gte=_.greaterThanOrEqual,_.ge=_.greaterThanOrEqual,_.compare=function(e){if(n(e)||(e=m(e)),this.eq(e))return 0;var t=this.isNegative(),a=e.isNegative();return t&&!a?-1:!t&&a?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},_.comp=_.compare,_.negate=function(){return!this.unsigned&&this.eq(S)?S:this.not().add(v)},_.neg=_.negate,_.add=function(e){n(e)||(e=m(e));var t=this.high>>>16,a=65535&this.high,r=this.low>>>16,s=65535&this.low,p=e.high>>>16,i=65535&e.high,d=e.low>>>16,l=0,u=0,c=0,h=0;return c+=(h+=s+(65535&e.low))>>>16,u+=(c+=r+d)>>>16,l+=(u+=a+i)>>>16,l+=t+p,o((c&=65535)<<16|(h&=65535),(l&=65535)<<16|(u&=65535),this.unsigned)},_.subtract=function(e){return n(e)||(e=m(e)),this.add(e.neg())},_.sub=_.subtract,_.multiply=function(e){if(this.isZero())return g;if(n(e)||(e=m(e)),t)return o(t.mul(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned);if(e.isZero())return g;if(this.eq(S))return e.isOdd()?S:g;if(e.eq(S))return this.isOdd()?S:g;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(f)&&e.lt(f))return i(this.toNumber()*e.toNumber(),this.unsigned);var a=this.high>>>16,r=65535&this.high,s=this.low>>>16,p=65535&this.low,d=e.high>>>16,l=65535&e.high,u=e.low>>>16,c=65535&e.low,h=0,y=0,v=0,b=0;return v+=(b+=p*c)>>>16,y+=(v+=s*c)>>>16,v&=65535,y+=(v+=p*u)>>>16,h+=(y+=r*c)>>>16,y&=65535,h+=(y+=s*u)>>>16,y&=65535,h+=(y+=p*l)>>>16,h+=a*c+r*u+s*l+p*d,o((v&=65535)<<16|(b&=65535),(h&=65535)<<16|(y&=65535),this.unsigned)},_.mul=_.multiply,_.divide=function(e){if(n(e)||(e=m(e)),e.isZero())throw Error("division by zero");var a,r,s;if(t)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?o((this.unsigned?t.div_u:t.div_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?y:g;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return y;if(e.gt(this.shru(1)))return b;s=y}else{if(this.eq(S))return e.eq(v)||e.eq(w)?S:e.eq(S)?v:(a=this.shr(1).div(e).shl(1)).eq(g)?e.isNegative()?v:w:(r=this.sub(e.mul(a)),s=a.add(r.div(e)));if(e.eq(S))return this.unsigned?y:g;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();s=g}for(r=this;r.gte(e);){a=Math.max(1,Math.floor(r.toNumber()/e.toNumber()));for(var p=Math.ceil(Math.log(a)/Math.LN2),l=p<=48?1:d(2,p-48),u=i(a),c=u.mul(e);c.isNegative()||c.gt(r);)c=(u=i(a-=l,this.unsigned)).mul(e);u.isZero()&&(u=v),s=s.add(u),r=r.sub(c)}return s},_.div=_.divide,_.modulo=function(e){return n(e)||(e=m(e)),t?o((this.unsigned?t.rem_u:t.rem_s)(this.low,this.high,e.low,e.high),t.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},_.mod=_.modulo,_.rem=_.modulo,_.not=function(){return o(~this.low,~this.high,this.unsigned)},_.and=function(e){return n(e)||(e=m(e)),o(this.low&e.low,this.high&e.high,this.unsigned)},_.or=function(e){return n(e)||(e=m(e)),o(this.low|e.low,this.high|e.high,this.unsigned)},_.xor=function(e){return n(e)||(e=m(e)),o(this.low^e.low,this.high^e.high,this.unsigned)},_.shiftLeft=function(e){return n(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?o(this.low<>>32-e,this.unsigned):o(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):o(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},_.shr=_.shiftRight,_.shiftRightUnsigned=function(e){if(n(e)&&(e=e.toInt()),0===(e&=63))return this;var t=this.high;return e<32?o(this.low>>>e|t<<32-e,t>>>e,this.unsigned):o(32===e?t:t>>>e-32,0,this.unsigned)},_.shru=_.shiftRightUnsigned,_.shr_u=_.shiftRightUnsigned,_.toSigned=function(){return this.unsigned?o(this.low,this.high,!1):this},_.toUnsigned=function(){return this.unsigned?this:o(this.low,this.high,!0)},_.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},_.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},_.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},a.fromBytes=function(e,t,n){return n?a.fromBytesLE(e,t):a.fromBytesBE(e,t)},a.fromBytesLE=function(e,t){return new a(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},a.fromBytesBE=function(e,t){return new a(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}},7854:(e,t,a)=>{"use strict";a.r(t),a.d(t,{FetchError:()=>c,Headers:()=>A,Request:()=>G,Response:()=>R,default:()=>J});const n=require("stream"),r=require("http"),s=require("url");var p=a(7347);const i=require("https"),o=require("zlib"),d=n.Readable,l=Symbol("buffer"),m=Symbol("type");class u{constructor(){this[m]="";const e=arguments[0],t=arguments[1],a=[];let n=0;if(e){const t=e,r=Number(t.length);for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:{},r=a.size;let s=void 0===r?0:r;var p=a.timeout;let i=void 0===p?0:p;null==e?e=null:b(e)?e=Buffer.from(e.toString()):w(e)||Buffer.isBuffer(e)||("[object ArrayBuffer]"===Object.prototype.toString.call(e)?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof n||(e=Buffer.from(String(e)))),this[f]={body:e,disturbed:!1,error:null},this.size=s,this.timeout=i,e instanceof n&&e.on("error",(function(e){const a="AbortError"===e.name?e:new c(`Invalid response body while trying to fetch ${t.url}: ${e.message}`,"system",e);t[f].error=a}))}function v(){var e=this;if(this[f].disturbed)return y.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[f].disturbed=!0,this[f].error)return y.Promise.reject(this[f].error);let t=this.body;if(null===t)return y.Promise.resolve(Buffer.alloc(0));if(w(t)&&(t=t.stream()),Buffer.isBuffer(t))return y.Promise.resolve(t);if(!(t instanceof n))return y.Promise.resolve(Buffer.alloc(0));let a=[],r=0,s=!1;return new y.Promise((function(n,p){let i;e.timeout&&(i=setTimeout((function(){s=!0,p(new c(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))}),e.timeout)),t.on("error",(function(t){"AbortError"===t.name?(s=!0,p(t)):p(new c(`Invalid response body while trying to fetch ${e.url}: ${t.message}`,"system",t))})),t.on("data",(function(t){if(!s&&null!==t){if(e.size&&r+t.length>e.size)return s=!0,void p(new c(`content size at ${e.url} over limit: ${e.size}`,"max-size"));r+=t.length,a.push(t)}})),t.on("end",(function(){if(!s){clearTimeout(i);try{n(Buffer.concat(a,r))}catch(t){p(new c(`Could not create Buffer from response body for ${e.url}: ${t.message}`,"system",t))}}}))}))}function b(e){return"object"==typeof e&&"function"==typeof e.append&&"function"==typeof e.delete&&"function"==typeof e.get&&"function"==typeof e.getAll&&"function"==typeof e.has&&"function"==typeof e.set&&("URLSearchParams"===e.constructor.name||"[object URLSearchParams]"===Object.prototype.toString.call(e)||"function"==typeof e.sort)}function w(e){return"object"==typeof e&&"function"==typeof e.arrayBuffer&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.constructor&&"string"==typeof e.constructor.name&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function N(e){let t,a,r=e.body;if(e.bodyUsed)throw new Error("cannot clone body after it is used");return r instanceof n&&"function"!=typeof r.getBoundary&&(t=new g,a=new g,r.pipe(t),r.pipe(a),e[f].body=t,r=a),r}function k(e){return null===e?null:"string"==typeof e?"text/plain;charset=UTF-8":b(e)?"application/x-www-form-urlencoded;charset=UTF-8":w(e)?e.type||null:Buffer.isBuffer(e)||"[object ArrayBuffer]"===Object.prototype.toString.call(e)||ArrayBuffer.isView(e)?null:"function"==typeof e.getBoundary?`multipart/form-data;boundary=${e.getBoundary()}`:e instanceof n?null:"text/plain;charset=UTF-8"}function S(e){const t=e.body;return null===t?0:w(t)?t.size:Buffer.isBuffer(t)?t.length:t&&"function"==typeof t.getLengthSync&&(t._lengthRetrievers&&0==t._lengthRetrievers.length||t.hasKnownLength&&t.hasKnownLength())?t.getLengthSync():null}y.prototype={get body(){return this[f].body},get bodyUsed(){return this[f].disturbed},arrayBuffer(){return v.call(this).then((function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}))},blob(){let e=this.headers&&this.headers.get("content-type")||"";return v.call(this).then((function(t){return Object.assign(new u([],{type:e.toLowerCase()}),{[l]:t})}))},json(){var e=this;return v.call(this).then((function(t){try{return JSON.parse(t.toString())}catch(t){return y.Promise.reject(new c(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}}))},text(){return v.call(this).then((function(e){return e.toString()}))},buffer(){return v.call(this)},textConverted(){var e=this;return v.call(this).then((function(t){return function(e,t){if("function"!=typeof h)throw new Error("The package `encoding` must be installed to use the textConverted() function");const a=t.get("content-type");let n,r,s="utf-8";a&&(n=/charset=([^;]*)/i.exec(a));r=e.slice(0,1024).toString(),!n&&r&&(n=/0&&void 0!==arguments[0]?arguments[0]:void 0;if(this[D]=Object.create(null),e instanceof A){const t=e.raw(),a=Object.keys(t);for(const e of a)for(const a of t[e])this.append(e,a)}else if(null==e);else{if("object"!=typeof e)throw new TypeError("Provided initializer must be an object");{const t=e[Symbol.iterator];if(null!=t){if("function"!=typeof t)throw new TypeError("Header pairs must be iterable");const a=[];for(const t of e){if("object"!=typeof t||"function"!=typeof t[Symbol.iterator])throw new TypeError("Each header pair must be iterable");a.push(Array.from(t))}for(const e of a){if(2!==e.length)throw new TypeError("Each header pair must be a name/value tuple");this.append(e[0],e[1])}}else for(const t of Object.keys(e)){const a=e[t];this.append(t,a)}}}}get(e){x(e=`${e}`);const t=E(this[D],e);return void 0===t?null:this[D][t].join(", ")}forEach(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,a=V(this),n=0;for(;n1&&void 0!==arguments[1]?arguments[1]:"key+value";const a=Object.keys(e[D]).sort();return a.map("key"===t?function(e){return e.toLowerCase()}:"value"===t?function(t){return e[D][t].join(", ")}:function(t){return[t.toLowerCase(),e[D][t].join(", ")]})}A.prototype.entries=A.prototype[Symbol.iterator],Object.defineProperty(A.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(A.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});const M=Symbol("internal");function F(e,t){const a=Object.create(B);return a[M]={target:e,kind:t,index:0},a}const B=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==B)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[M];const t=e.target,a=e.kind,n=e.index,r=V(t,a);return n>=r.length?{value:void 0,done:!0}:(this[M].index=n+1,{value:r[n],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));function O(e){const t=Object.assign({__proto__:null},e[D]),a=E(e[D],"Host");return void 0!==a&&(t[a]=t[a][0]),t}Object.defineProperty(B,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});const $=Symbol("Response internals"),C=r.STATUS_CODES;class R{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};y.call(this,e,t);const a=t.status||200,n=new A(t.headers);if(null!=e&&!n.has("Content-Type")){const t=k(e);t&&n.append("Content-Type",t)}this[$]={url:t.url,status:a,statusText:t.statusText||C[a],headers:n,counter:t.counter}}get url(){return this[$].url||""}get status(){return this[$].status}get ok(){return this[$].status>=200&&this[$].status<300}get redirected(){return this[$].counter>0}get statusText(){return this[$].statusText}get headers(){return this[$].headers}clone(){return new R(N(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}}y.mixIn(R.prototype),Object.defineProperties(R.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}}),Object.defineProperty(R.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});const P=Symbol("Request internals"),z=s.URL||p.URL,L=s.parse,W=s.format;function U(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new z(e).toString()),L(e)}const H="destroy"in n.Readable.prototype;function q(e){return"object"==typeof e&&"object"==typeof e[P]}class G{constructor(e){let t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};q(e)?t=U(e.url):(t=e&&e.href?U(e.href):U(`${e}`),e={});let n=a.method||e.method||"GET";if(n=n.toUpperCase(),(null!=a.body||q(e)&&null!==e.body)&&("GET"===n||"HEAD"===n))throw new TypeError("Request with GET/HEAD method cannot have body");let r=null!=a.body?a.body:q(e)&&null!==e.body?N(e):null;y.call(this,r,{timeout:a.timeout||e.timeout||0,size:a.size||e.size||0});const s=new A(a.headers||e.headers||{});if(null!=r&&!s.has("Content-Type")){const e=k(r);e&&s.append("Content-Type",e)}let p=q(e)?e.signal:null;if("signal"in a&&(p=a.signal),null!=p&&!function(e){const t=e&&"object"==typeof e&&Object.getPrototypeOf(e);return!(!t||"AbortSignal"!==t.constructor.name)}(p))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[P]={method:n,redirect:a.redirect||e.redirect||"follow",headers:s,parsedURL:t,signal:p},this.follow=void 0!==a.follow?a.follow:void 0!==e.follow?e.follow:20,this.compress=void 0!==a.compress?a.compress:void 0===e.compress||e.compress,this.counter=a.counter||e.counter||0,this.agent=a.agent||e.agent}get method(){return this[P].method}get url(){return W(this[P].parsedURL)}get headers(){return this[P].headers}get redirect(){return this[P].redirect}get signal(){return this[P].signal}clone(){return new G(this)}}function j(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}y.mixIn(G.prototype),Object.defineProperty(G.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(G.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}}),j.prototype=Object.create(Error.prototype),j.prototype.constructor=j,j.prototype.name="AbortError";const K=s.URL||p.URL,X=n.PassThrough;function Z(e,t){if(!Z.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return y.Promise=Z.Promise,new Z.Promise((function(a,s){const p=new G(e,t),d=function(e){const t=e[P].parsedURL,a=new A(e[P].headers);if(a.has("Accept")||a.set("Accept","*/*"),!t.protocol||!t.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(t.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof n.Readable&&!H)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let r=null;if(null==e.body&&/^(POST|PUT)$/i.test(e.method)&&(r="0"),null!=e.body){const t=S(e);"number"==typeof t&&(r=String(t))}r&&a.set("Content-Length",r),a.has("User-Agent")||a.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!a.has("Accept-Encoding")&&a.set("Accept-Encoding","gzip,deflate");let s=e.agent;return"function"==typeof s&&(s=s(t)),a.has("Connection")||s||a.set("Connection","close"),Object.assign({},t,{method:e.method,headers:O(a),agent:s})}(p),l=("https:"===d.protocol?i:r).request,m=p.signal;let u=null;const h=function(){let e=new j("The user aborted a request.");s(e),p.body&&p.body instanceof n.Readable&&p.body.destroy(e),u&&u.body&&u.body.emit("error",e)};if(m&&m.aborted)return void h();const f=function(){h(),v()},g=l(d);let y;function v(){g.abort(),m&&m.removeEventListener("abort",f),clearTimeout(y)}m&&m.addEventListener("abort",f),p.timeout&&g.once("socket",(function(e){y=setTimeout((function(){s(new c(`network timeout at: ${p.url}`,"request-timeout")),v()}),p.timeout)})),g.on("error",(function(e){s(new c(`request to ${p.url} failed, reason: ${e.message}`,"system",e)),v()})),g.on("response",(function(e){clearTimeout(y);const t=function(e){const t=new A;for(const a of Object.keys(e))if(!_.test(a))if(Array.isArray(e[a]))for(const n of e[a])T.test(n)||(void 0===t[D][a]?t[D][a]=[n]:t[D][a].push(n));else T.test(e[a])||(t[D][a]=[e[a]]);return t}(e.headers);if(Z.isRedirect(e.statusCode)){const n=t.get("Location");let r=null;try{r=null===n?null:new K(n,p.url).toString()}catch(e){if("manual"!==p.redirect)return s(new c(`uri requested responds with an invalid redirect URL: ${n}`,"invalid-redirect")),void v()}switch(p.redirect){case"error":return s(new c(`uri requested responds with a redirect, redirect mode is set to error: ${p.url}`,"no-redirect")),void v();case"manual":if(null!==r)try{t.set("Location",r)}catch(e){s(e)}break;case"follow":if(null===r)break;if(p.counter>=p.follow)return s(new c(`maximum redirect reached at: ${p.url}`,"max-redirect")),void v();const n={headers:new A(p.headers),follow:p.follow,counter:p.counter+1,agent:p.agent,compress:p.compress,method:p.method,body:p.body,signal:p.signal,timeout:p.timeout,size:p.size};if(!function(e,t){const a=new K(t).hostname,n=new K(e).hostname;return a===n||"."===a[a.length-n.length-1]&&a.endsWith(n)}(p.url,r))for(const e of["authorization","www-authenticate","cookie","cookie2"])n.headers.delete(e);return 303!==e.statusCode&&p.body&&null===S(p)?(s(new c("Cannot follow redirect with body being a readable stream","unsupported-redirect")),void v()):(303!==e.statusCode&&(301!==e.statusCode&&302!==e.statusCode||"POST"!==p.method)||(n.method="GET",n.body=void 0,n.headers.delete("content-length")),a(Z(new G(r,n))),void v())}}e.once("end",(function(){m&&m.removeEventListener("abort",f)}));let n=e.pipe(new X);const r={url:p.url,status:e.statusCode,statusText:e.statusMessage,headers:t,size:p.size,timeout:p.timeout,counter:p.counter},i=t.get("Content-Encoding");if(!p.compress||"HEAD"===p.method||null===i||204===e.statusCode||304===e.statusCode)return u=new R(n,r),void a(u);const d={flush:o.Z_SYNC_FLUSH,finishFlush:o.Z_SYNC_FLUSH};if("gzip"==i||"x-gzip"==i)return n=n.pipe(o.createGunzip(d)),u=new R(n,r),void a(u);if("deflate"!=i&&"x-deflate"!=i){if("br"==i&&"function"==typeof o.createBrotliDecompress)return n=n.pipe(o.createBrotliDecompress()),u=new R(n,r),void a(u);u=new R(n,r),a(u)}else{e.pipe(new X).once("data",(function(e){n=8==(15&e[0])?n.pipe(o.createInflate()):n.pipe(o.createInflateRaw()),u=new R(n,r),a(u)}))}})),function(e,t){const a=t.body;null===a?e.end():w(a)?a.stream().pipe(e):Buffer.isBuffer(a)?(e.write(a),e.end()):a.pipe(e)}(g,p)}))}Z.isRedirect=function(e){return 301===e||302===e||303===e||307===e||308===e},Z.Promise=global.Promise;const J=Z},6377:(e,t,a)=>{var n=a(4832),r=a(8652),s=a(801),p=a(2030),i=a(3618),o=a(9049),d=a(1971);d.alea=n,d.xor128=r,d.xorwow=s,d.xorshift7=p,d.xor4096=i,d.tychei=o,e.exports=d},4832:function(e,t,a){var n;!function(e,r,s){function p(e){var t,a=this,n=(t=4022871197,function(e){e=String(e);for(var a=0;a>>0,t=(n*=t)>>>0,t+=4294967296*(n-=t)}return 2.3283064365386963e-10*(t>>>0)});a.next=function(){var e=2091639*a.s0+2.3283064365386963e-10*a.c;return a.s0=a.s1,a.s1=a.s2,a.s2=e-(a.c=0|e)},a.c=1,a.s0=n(" "),a.s1=n(" "),a.s2=n(" "),a.s0-=n(e),a.s0<0&&(a.s0+=1),a.s1-=n(e),a.s1<0&&(a.s1+=1),a.s2-=n(e),a.s2<0&&(a.s2+=1),n=null}function i(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function o(e,t){var a=new p(e),n=t&&t.state,r=a.next;return r.int32=function(){return 4294967296*a.next()|0},r.double=function(){return r()+11102230246251565e-32*(2097152*r()|0)},r.quick=r,n&&("object"==typeof n&&i(n,a),r.state=function(){return i(a,{})}),r}r&&r.exports?r.exports=o:a.amdD&&a.amdO?void 0===(n=function(){return o}.call(t,a,t,r))||(r.exports=n):this.alea=o}(0,e=a.nmd(e),a.amdD)},9049:function(e,t,a){var n;!function(e,r,s){function p(e){var t=this,a="";t.next=function(){var e=t.b,a=t.c,n=t.d,r=t.a;return e=e<<25^e>>>7^a,a=a-n|0,n=n<<24^n>>>8^r,r=r-e|0,t.b=e=e<<20^e>>>12^a,t.c=a=a-n|0,t.d=n<<16^a>>>16^r,t.a=r-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):a+=e;for(var n=0;n>>0)/4294967296};return r.double=function(){do{var e=((a.next()>>>11)+(a.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=a.next,r.quick=r,n&&("object"==typeof n&&i(n,a),r.state=function(){return i(a,{})}),r}r&&r.exports?r.exports=o:a.amdD&&a.amdO?void 0===(n=function(){return o}.call(t,a,t,r))||(r.exports=n):this.tychei=o}(0,e=a.nmd(e),a.amdD)},8652:function(e,t,a){var n;!function(e,r,s){function p(e){var t=this,a="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:a+=e;for(var n=0;n>>0)/4294967296};return r.double=function(){do{var e=((a.next()>>>11)+(a.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=a.next,r.quick=r,n&&("object"==typeof n&&i(n,a),r.state=function(){return i(a,{})}),r}r&&r.exports?r.exports=o:a.amdD&&a.amdO?void 0===(n=function(){return o}.call(t,a,t,r))||(r.exports=n):this.xor128=o}(0,e=a.nmd(e),a.amdD)},3618:function(e,t,a){var n;!function(e,r,s){function p(e){var t=this;t.next=function(){var e,a,n=t.w,r=t.X,s=t.i;return t.w=n=n+1640531527|0,a=r[s+34&127],e=r[s=s+1&127],a^=a<<13,e^=e<<17,a^=a>>>15,e^=e>>>12,a=r[s]=a^e,t.i=s,a+(n^n>>>16)|0},function(e,t){var a,n,r,s,p,i=[],o=128;for(t===(0|t)?(n=t,t=null):(t+="\0",n=0,o=Math.max(o,t.length)),r=0,s=-32;s>>15,n^=n<<4,n^=n>>>13,s>=0&&(p=p+1640531527|0,r=0==(a=i[127&s]^=n+p)?r+1:0);for(r>=128&&(i[127&(t&&t.length||0)]=-1),r=127,s=512;s>0;--s)n=i[r+34&127],a=i[r=r+1&127],n^=n<<13,a^=a<<17,n^=n>>>15,a^=a>>>12,i[r]=n^a;e.w=p,e.X=i,e.i=r}(t,e)}function i(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function o(e,t){null==e&&(e=+new Date);var a=new p(e),n=t&&t.state,r=function(){return(a.next()>>>0)/4294967296};return r.double=function(){do{var e=((a.next()>>>11)+(a.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=a.next,r.quick=r,n&&(n.X&&i(n,a),r.state=function(){return i(a,{})}),r}r&&r.exports?r.exports=o:a.amdD&&a.amdO?void 0===(n=function(){return o}.call(t,a,t,r))||(r.exports=n):this.xor4096=o}(0,e=a.nmd(e),a.amdD)},2030:function(e,t,a){var n;!function(e,r,s){function p(e){var t=this;t.next=function(){var e,a,n=t.x,r=t.i;return e=n[r],a=(e^=e>>>7)^e<<24,a^=(e=n[r+1&7])^e>>>10,a^=(e=n[r+3&7])^e>>>3,a^=(e=n[r+4&7])^e<<7,e=n[r+7&7],a^=(e^=e<<13)^e<<9,n[r]=a,t.i=r+1&7,a},function(e,t){var a,n=[];if(t===(0|t))n[0]=t;else for(t=""+t,a=0;a0;--a)e.next()}(t,e)}function i(e,t){return t.x=e.x.slice(),t.i=e.i,t}function o(e,t){null==e&&(e=+new Date);var a=new p(e),n=t&&t.state,r=function(){return(a.next()>>>0)/4294967296};return r.double=function(){do{var e=((a.next()>>>11)+(a.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=a.next,r.quick=r,n&&(n.x&&i(n,a),r.state=function(){return i(a,{})}),r}r&&r.exports?r.exports=o:a.amdD&&a.amdO?void 0===(n=function(){return o}.call(t,a,t,r))||(r.exports=n):this.xorshift7=o}(0,e=a.nmd(e),a.amdD)},801:function(e,t,a){var n;!function(e,r,s){function p(e){var t=this,a="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:a+=e;for(var n=0;n>>4),t.next()}function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function o(e,t){var a=new p(e),n=t&&t.state,r=function(){return(a.next()>>>0)/4294967296};return r.double=function(){do{var e=((a.next()>>>11)+(a.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=a.next,r.quick=r,n&&("object"==typeof n&&i(n,a),r.state=function(){return i(a,{})}),r}r&&r.exports?r.exports=o:a.amdD&&a.amdO?void 0===(n=function(){return o}.call(t,a,t,r))||(r.exports=n):this.xorwow=o}(0,e=a.nmd(e),a.amdD)},1971:function(e,t,a){var n;!function(r,s,p){var i,o=256,d=p.pow(o,6),l=p.pow(2,52),m=2*l,u=255;function c(e,t,a){var n=[],u=y(g((t=1==t?{entropy:!0}:t||{}).entropy?[e,v(s)]:null==e?function(){try{var e;return i&&(e=i.randomBytes)?e=e(o):(e=new Uint8Array(o),(r.crypto||r.msCrypto).getRandomValues(e)),v(e)}catch(e){var t=r.navigator,a=t&&t.plugins;return[+new Date,r,a,r.screen,v(s)]}}():e,3),n),c=new h(n),b=function(){for(var e=c.g(6),t=d,a=0;e=m;)e/=2,t/=2,a>>>=1;return(e+a)/t};return b.int32=function(){return 0|c.g(4)},b.quick=function(){return c.g(4)/4294967296},b.double=b,y(v(c.S),s),(t.pass||a||function(e,t,a,n){return n&&(n.S&&f(n,c),e.state=function(){return f(c,{})}),a?(p.random=e,t):e})(b,u,"global"in t?t.global:this==p,t.state)}function h(e){var t,a=e.length,n=this,r=0,s=n.i=n.j=0,p=n.S=[];for(a||(e=[a++]);r{"use strict";var n=a(4213),r=a(68),s={TRANSITIONAL:0,NONTRANSITIONAL:1};function p(e){return e.split("\0").map((function(e){return e.normalize("NFC")})).join("\0")}function i(e){for(var t=0,a=r.length-1;t<=a;){var n=Math.floor((t+a)/2),s=r[n];if(s[0][0]<=e&&s[0][1]>=e)return s;s[0][0]>e?a=n-1:t=n+1}return null}var o=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function d(e){return e.replace(o,"_").length}var l=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;function m(e,t){"xn--"===e.substr(0,4)&&(e=n.toUnicode(e));var a=!1;(p(e)!==e||"-"===e[3]&&"-"===e[4]||"-"===e[0]||"-"===e[e.length-1]||-1!==e.indexOf(".")||0===e.search(l))&&(a=!0);for(var r=d(e),o=0;o253||0===i.length)&&(s.error=!0);for(var o=0;o63||0===p.length){s.error=!0;break}}return s.error?null:p.join(".")},e.exports.toUnicode=function(e,t){var a=u(e,t,s.NONTRANSITIONAL);return{domain:a.string,error:a.error}},e.exports.PROCESSING_OPTIONS=s},68:e=>{"use strict";e.exports=JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]')},6086:function(e,t,a){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,a,n){void 0===n&&(n=a),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[a]}})}:function(e,t,a,n){void 0===n&&(n=a),e[n]=t[a]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&n(t,e,a);return r(t,e),t},p=this&&this.__awaiter||function(e,t,a,n){return new(a||(a=Promise))((function(r,s){function p(e){try{o(n.next(e))}catch(e){s(e)}}function i(e){try{o(n.throw(e))}catch(e){s(e)}}function o(e){var t;e.done?r(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(p,i)}o((n=n.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var a,n,r,s,p={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function i(s){return function(i){return function(s){if(a)throw new TypeError("Generator is already executing.");for(;p;)try{if(a=1,n&&(r=2&s[0]?n.return:s[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,s[1])).done)return r;switch(n=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return p.label++,{value:s[1],done:!1};case 5:p.label++,n=s[1],s=[0];continue;case 7:s=p.ops.pop(),p.trys.pop();continue;default:if(!(r=p.trys,(r=r.length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){p=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]=this._maxContentSize&&(e=e.substring(0,this._maxContentSize)),this._normalizeNewline&&(e=e.replace(/\r\n/g,"\n")),[4,this._model.executeAsync(o.tensor([e]))];case 2:for(t=i.sent(),a=Array.isArray(t)?t[0]:t,n=Array.isArray(t)?t[1]:t,r=a.dataSync(),s=n.dataSync(),p=[],l=0;lr[d]&&(d=l);return[2,p.sort((function(e,t){return t.confidence-e.confidence}))]}}))}))},e.prototype.dispose=function(){var e;null===(e=this._model)||void 0===e||e.dispose()},e.DEFAULT_MAX_CONTENT_SIZE=1e5,e.DEFAULT_MIN_CONTENT_SIZE=20,e.NODE_MODEL_JSON_FUNC=function(){return p(void 0,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:return[4,Promise.resolve().then((function(){return s(a(5747))}))];case 1:return e=n.sent(),[4,Promise.resolve().then((function(){return s(a(5622))}))];case 2:return t=n.sent(),[2,new Promise((function(a,n){e.readFile(t.join(__dirname,"..","..","model","model.json"),(function(e,t){e?n(e):a(JSON.parse(t.toString()))}))}))]}}))}))},e.NODE_WEIGHTS_FUNC=function(){return p(void 0,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:return[4,Promise.resolve().then((function(){return s(a(5747))}))];case 1:return e=n.sent(),[4,Promise.resolve().then((function(){return s(a(5622))}))];case 2:return t=n.sent(),[2,new Promise((function(a,n){e.readFile(t.join(__dirname,"..","..","model","group1-shard1of1.bin"),(function(e,t){e?n(e):a(t.buffer)}))}))]}}))}))},e}();t.ModelOperations=m},993:e=>{"use strict";var t={};function a(e){return e<0?-1:1}function n(e,t){t.unsigned||--e;const n=t.unsigned?0:-Math.pow(2,e),r=Math.pow(2,e)-1,s=t.moduloBitLength?Math.pow(2,t.moduloBitLength):Math.pow(2,e),p=t.moduloBitLength?Math.pow(2,t.moduloBitLength-1):Math.pow(2,e-1);return function(e,i){i||(i={});let o=+e;if(i.enforceRange){if(!Number.isFinite(o))throw new TypeError("Argument is not a finite number");if(o=a(o)*Math.floor(Math.abs(o)),or)throw new TypeError("Argument is not in byte range");return o}if(!isNaN(o)&&i.clamp)return o=function(e){return e%1==.5&&0==(1&e)?Math.floor(e):Math.round(e)}(o),or&&(o=r),o;if(!Number.isFinite(o)||0===o)return 0;if(o=a(o)*Math.floor(Math.abs(o)),o%=s,!t.unsigned&&o>=p)return o-s;if(t.unsigned)if(o<0)o+=s;else if(-0===o)return 0;return o}}e.exports=t,t.void=function(){},t.boolean=function(e){return!!e},t.byte=n(8,{unsigned:!1}),t.octet=n(8,{unsigned:!0}),t.short=n(16,{unsigned:!1}),t["unsigned short"]=n(16,{unsigned:!0}),t.long=n(32,{unsigned:!1}),t["unsigned long"]=n(32,{unsigned:!0}),t["long long"]=n(32,{unsigned:!1,moduloBitLength:64}),t["unsigned long long"]=n(32,{unsigned:!0,moduloBitLength:64}),t.double=function(e){const t=+e;if(!Number.isFinite(t))throw new TypeError("Argument is not a finite floating-point value");return t},t["unrestricted double"]=function(e){const t=+e;if(isNaN(t))throw new TypeError("Argument is NaN");return t},t.float=t.double,t["unrestricted float"]=t["unrestricted double"],t.DOMString=function(e,t){return t||(t={}),t.treatNullAsEmptyString&&null===e?"":String(e)},t.ByteString=function(e,t){const a=String(e);let n;for(let e=0;void 0!==(n=a.codePointAt(e));++e)if(n>255)throw new TypeError("Argument is not a valid bytestring");return a},t.USVString=function(e){const t=String(e),a=t.length,n=[];for(let e=0;e57343)n.push(String.fromCodePoint(r));else if(56320<=r&&r<=57343)n.push(String.fromCodePoint(65533));else if(e===a-1)n.push(String.fromCodePoint(65533));else{const a=t.charCodeAt(e+1);if(56320<=a&&a<=57343){const t=1023&r,s=1023&a;n.push(String.fromCodePoint(65536+1024*t+s)),++e}else n.push(String.fromCodePoint(65533))}}return n.join("")},t.Date=function(e,t){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e},t.RegExp=function(e,t){return e instanceof RegExp||(e=new RegExp(e)),e}},9718:(e,t,a)=>{"use strict";const n=a(5341);t.implementation=class{constructor(e){const t=e[0],a=e[1];let r=null;if(void 0!==a&&(r=n.basicURLParse(a),"failure"===r))throw new TypeError("Invalid base URL");const s=n.basicURLParse(t,{baseURL:r});if("failure"===s)throw new TypeError("Invalid URL");this._url=s}get href(){return n.serializeURL(this._url)}set href(e){const t=n.basicURLParse(e);if("failure"===t)throw new TypeError("Invalid URL");this._url=t}get origin(){return n.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(e){n.basicURLParse(e+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(e){n.cannotHaveAUsernamePasswordPort(this._url)||n.setTheUsername(this._url,e)}get password(){return this._url.password}set password(e){n.cannotHaveAUsernamePasswordPort(this._url)||n.setThePassword(this._url,e)}get host(){const e=this._url;return null===e.host?"":null===e.port?n.serializeHost(e.host):n.serializeHost(e.host)+":"+n.serializeInteger(e.port)}set host(e){this._url.cannotBeABaseURL||n.basicURLParse(e,{url:this._url,stateOverride:"host"})}get hostname(){return null===this._url.host?"":n.serializeHost(this._url.host)}set hostname(e){this._url.cannotBeABaseURL||n.basicURLParse(e,{url:this._url,stateOverride:"hostname"})}get port(){return null===this._url.port?"":n.serializeInteger(this._url.port)}set port(e){n.cannotHaveAUsernamePasswordPort(this._url)||(""===e?this._url.port=null:n.basicURLParse(e,{url:this._url,stateOverride:"port"}))}get pathname(){return this._url.cannotBeABaseURL?this._url.path[0]:0===this._url.path.length?"":"/"+this._url.path.join("/")}set pathname(e){this._url.cannotBeABaseURL||(this._url.path=[],n.basicURLParse(e,{url:this._url,stateOverride:"path start"}))}get search(){return null===this._url.query||""===this._url.query?"":"?"+this._url.query}set search(e){const t=this._url;if(""===e)return void(t.query=null);const a="?"===e[0]?e.substring(1):e;t.query="",n.basicURLParse(a,{url:t,stateOverride:"query"})}get hash(){return null===this._url.fragment||""===this._url.fragment?"":"#"+this._url.fragment}set hash(e){if(""===e)return void(this._url.fragment=null);const t="#"===e[0]?e.substring(1):e;this._url.fragment="",n.basicURLParse(t,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}},4328:(e,t,a)=>{"use strict";const n=a(993),r=a(9581),s=a(9718),p=r.implSymbol;function i(t){if(!this||this[p]||!(this instanceof i))throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");const a=[];for(let e=0;e!!e&&e[p]instanceof s.implementation,create(e,t){let a=Object.create(i.prototype);return this.setup(a,e,t),a},setup(e,t,a){a||(a={}),a.wrapper=e,e[p]=new s.implementation(t,a),e[p][r.wrapperSymbol]=e},interface:i,expose:{Window:{URL:i},Worker:{URL:i}}}},7347:(e,t,a)=>{"use strict";t.URL=a(4328).interface,a(5341).serializeURL,a(5341).serializeURLOrigin,a(5341).basicURLParse,a(5341).setTheUsername,a(5341).setThePassword,a(5341).serializeHost,a(5341).serializeInteger,a(5341).parseURL},5341:(e,t,a)=>{"use strict";const n=a(4213),r=a(4742),s={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},p=Symbol("failure");function i(e){return n.ucs2.decode(e).length}function o(e,t){const a=e[t];return isNaN(a)?void 0:String.fromCodePoint(a)}function d(e){return e>=48&&e<=57}function l(e){return e>=65&&e<=90||e>=97&&e<=122}function m(e){return d(e)||e>=65&&e<=70||e>=97&&e<=102}function u(e){return"."===e||"%2e"===e.toLowerCase()}function c(e){return 2===e.length&&l(e.codePointAt(0))&&(":"===e[1]||"|"===e[1])}function h(e){return void 0!==s[e]}function f(e){return h(e.scheme)}function g(e){let t=e.toString(16).toUpperCase();return 1===t.length&&(t="0"+t),"%"+t}function y(e){return e<=31||e>126}const v=new Set([32,34,35,60,62,63,96,123,125]);function b(e){return y(e)||v.has(e)}const w=new Set([47,58,59,61,64,91,92,93,94,124]);function N(e){return b(e)||w.has(e)}function k(e,t){const a=String.fromCodePoint(e);return t(e)?function(e){const t=new Buffer(e);let a="";for(let e=0;e=2&&"0"===e.charAt(0)&&"x"===e.charAt(1).toLowerCase()?(e=e.substring(2),t=16):e.length>=2&&"0"===e.charAt(0)&&(e=e.substring(1),t=8),""===e)return 0;return(10===t?/[^0-9]/:16===t?/[^0-9A-Fa-f]/:/[^0-7]/).test(e)?p:parseInt(e,t)}function _(e,t){if("["===e[0])return"]"!==e[e.length-1]?p:function(e){const t=[0,0,0,0,0,0,0,0];let a=0,r=null,s=0;if(58===(e=n.ucs2.decode(e))[s]){if(58!==e[s+1])return p;s+=2,++a,r=a}for(;s6)return p;let n=0;for(;void 0!==e[s];){let r=null;if(n>0){if(!(46===e[s]&&n<4))return p;++s}if(!d(e[s]))return p;for(;d(e[s]);){const t=parseInt(o(e,s));if(null===r)r=t;else{if(0===r)return p;r=10*r+t}if(r>255)return p;++s}t[a]=256*t[a]+r,++n,2!==n&&4!==n||++a}if(4!==n)return p;break}if(58===e[s]){if(++s,void 0===e[s])return p}else if(void 0!==e[s])return p;t[a]=n,++a}if(null!==r){let e=a-r;for(a=7;0!==a&&e>0;){const n=t[r+e-1];t[r+e-1]=t[a],t[a]=n,--a,--e}}else if(null===r&&8!==a)return p;return t}(e.substring(1,e.length-1));if(!t)return function(e){if(t=e,-1!==t.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/))return p;var t;let a="";const r=n.ucs2.decode(e);for(let e=0;e1&&t.pop(),t.length>4)return e;const a=[];for(const n of t){if(""===n)return e;const t=S(n);if(t===p)return e;a.push(t)}for(let e=0;e255)return p;if(a[a.length-1]>=Math.pow(256,5-a.length))return p;let n=a.pop(),r=0;for(const e of a)n+=e*Math.pow(256,3-r),++r;return n}(s);return"number"==typeof i||i===p?i:s}function T(e){return"number"==typeof e?function(e){let t="",a=e;for(let e=1;e<=4;++e)t=String(a%256)+t,4!==e&&(t="."+t),a=Math.floor(a/256);return t}(e):e instanceof Array?"["+function(e){let t="";const a=function(e){let t=null,a=1,n=null,r=0;for(let s=0;sa&&(t=n,a=r),n=null,r=0):(null===n&&(n=s),++r);return r>a&&(t=n,a=r),{idx:t,len:a}}(e).idx;let n=!1;for(let r=0;r<=7;++r)n&&0===e[r]||(n&&(n=!1),a!==r?(t+=e[r].toString(16),7!==r&&(t+=":")):(t+=0===r?"::":":",n=!0));return t}(e)+"]":e}function x(e){const t=e.path;var a;0!==t.length&&("file"===e.scheme&&1===t.length&&(a=t[0],/^[A-Za-z]:$/.test(a))||t.pop())}function I(e){return""!==e.username||""!==e.password}function E(e,t,a,r,s){if(this.pointer=0,this.input=e,this.base=t||null,this.encodingOverride=a||"utf-8",this.stateOverride=s,this.url=r,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};const e=function(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}(this.input);e!==this.input&&(this.parseError=!0),this.input=e}const i=function(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}(this.input);for(i!==this.input&&(this.parseError=!0),this.input=i,this.state=s||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=n.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){const e=this.input[this.pointer],t=isNaN(e)?void 0:String.fromCodePoint(e),a=this["parse "+this.state](e,t);if(!a)break;if(a===p){this.failure=!0;break}}}E.prototype["parse scheme start"]=function(e,t){if(l(e))this.buffer+=t.toLowerCase(),this.state="scheme";else{if(this.stateOverride)return this.parseError=!0,p;this.state="no scheme",--this.pointer}return!0},E.prototype["parse scheme"]=function(e,t){if(function(e){return l(e)||d(e)}(e)||43===e||45===e||46===e)this.buffer+=t.toLowerCase();else if(58===e){if(this.stateOverride){if(f(this.url)&&!h(this.buffer))return!1;if(!f(this.url)&&h(this.buffer))return!1;if((I(this.url)||null!==this.url.port)&&"file"===this.buffer)return!1;if("file"===this.url.scheme&&(""===this.url.host||null===this.url.host))return!1}if(this.url.scheme=this.buffer,this.buffer="",this.stateOverride)return!1;"file"===this.url.scheme?(47===this.input[this.pointer+1]&&47===this.input[this.pointer+2]||(this.parseError=!0),this.state="file"):f(this.url)&&null!==this.base&&this.base.scheme===this.url.scheme?this.state="special relative or authority":f(this.url)?this.state="special authority slashes":47===this.input[this.pointer+1]?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else{if(this.stateOverride)return this.parseError=!0,p;this.buffer="",this.state="no scheme",this.pointer=-1}return!0},E.prototype["parse no scheme"]=function(e){return null===this.base||this.base.cannotBeABaseURL&&35!==e?p:(this.base.cannotBeABaseURL&&35===e?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):"file"===this.base.scheme?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)},E.prototype["parse special relative or authority"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0},E.prototype["parse path or authority"]=function(e){return 47===e?this.state="authority":(this.state="path",--this.pointer),!0},E.prototype["parse relative"]=function(e){return this.url.scheme=this.base.scheme,isNaN(e)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):47===e?this.state="relative slash":63===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):f(this.url)&&92===e?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0},E.prototype["parse relative slash"]=function(e){return!f(this.url)||47!==e&&92!==e?47===e?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer):(92===e&&(this.parseError=!0),this.state="special authority ignore slashes"),!0},E.prototype["parse special authority slashes"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0},E.prototype["parse special authority ignore slashes"]=function(e){return 47!==e&&92!==e?(this.state="authority",--this.pointer):this.parseError=!0,!0},E.prototype["parse authority"]=function(e,t){if(64===e){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;const e=i(this.buffer);for(let t=0;tMath.pow(2,16)-1)return this.parseError=!0,p;this.url.port=e===(a=this.url.scheme,s[a])?null:e,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}var a;return!0};const D=new Set([47,92,63,35]);E.prototype["parse file"]=function(e){var t,a;return this.url.scheme="file",47===e||92===e?(92===e&&(this.parseError=!0),this.state="file slash"):null!==this.base&&"file"===this.base.scheme?isNaN(e)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):63===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1==0||(t=e,a=this.input[this.pointer+1],!l(t)||58!==a&&124!==a)||this.input.length-this.pointer-1>=2&&!D.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),x(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0},E.prototype["parse file slash"]=function(e){var t;return 47===e||92===e?(92===e&&(this.parseError=!0),this.state="file host"):(null!==this.base&&"file"===this.base.scheme&&(2===(t=this.base.path[0]).length&&l(t.codePointAt(0))&&":"===t[1]?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0},E.prototype["parse file host"]=function(e,t){if(isNaN(e)||47===e||92===e||63===e||35===e)if(--this.pointer,!this.stateOverride&&c(this.buffer))this.parseError=!0,this.state="path";else if(""===this.buffer){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let e=_(this.buffer,f(this.url));if(e===p)return p;if("localhost"===e&&(e=""),this.url.host=e,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=t;return!0},E.prototype["parse path start"]=function(e){return f(this.url)?(92===e&&(this.parseError=!0),this.state="path",47!==e&&92!==e&&--this.pointer):this.stateOverride||63!==e?this.stateOverride||35!==e?void 0!==e&&(this.state="path",47!==e&&--this.pointer):(this.url.fragment="",this.state="fragment"):(this.url.query="",this.state="query"),!0},E.prototype["parse path"]=function(e){if(isNaN(e)||47===e||f(this.url)&&92===e||!this.stateOverride&&(63===e||35===e)){if(f(this.url)&&92===e&&(this.parseError=!0),".."===(t=(t=this.buffer).toLowerCase())||"%2e."===t||".%2e"===t||"%2e%2e"===t?(x(this.url),47===e||f(this.url)&&92===e||this.url.path.push("")):!u(this.buffer)||47===e||f(this.url)&&92===e?u(this.buffer)||("file"===this.url.scheme&&0===this.url.path.length&&c(this.buffer)&&(""!==this.url.host&&null!==this.url.host&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)):this.url.path.push(""),this.buffer="","file"===this.url.scheme&&(void 0===e||63===e||35===e))for(;this.url.path.length>1&&""===this.url.path[0];)this.parseError=!0,this.url.path.shift();63===e&&(this.url.query="",this.state="query"),35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=k(e,b);var t;return!0},E.prototype["parse cannot-be-a-base-URL path"]=function(e){return 63===e?(this.url.query="",this.state="query"):35===e?(this.url.fragment="",this.state="fragment"):(isNaN(e)||37===e||(this.parseError=!0),37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),isNaN(e)||(this.url.path[0]=this.url.path[0]+k(e,y))),!0},E.prototype["parse query"]=function(e,t){if(isNaN(e)||!this.stateOverride&&35===e){f(this.url)&&"ws"!==this.url.scheme&&"wss"!==this.url.scheme||(this.encodingOverride="utf-8");const t=new Buffer(this.buffer);for(let e=0;e126||34===t[e]||35===t[e]||60===t[e]||62===t[e]?this.url.query+=g(t[e]):this.url.query+=String.fromCodePoint(t[e]);this.buffer="",35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=t;return!0},E.prototype["parse fragment"]=function(e){return isNaN(e)||(0===e?this.parseError=!0:(37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),this.url.fragment+=k(e,y))),!0},e.exports.serializeURL=function(e,t){let a=e.scheme+":";if(null!==e.host?(a+="//",""===e.username&&""===e.password||(a+=e.username,""!==e.password&&(a+=":"+e.password),a+="@"),a+=T(e.host),null!==e.port&&(a+=":"+e.port)):null===e.host&&"file"===e.scheme&&(a+="//"),e.cannotBeABaseURL)a+=e.path[0];else for(const t of e.path)a+="/"+t;return null!==e.query&&(a+="?"+e.query),t||null===e.fragment||(a+="#"+e.fragment),a},e.exports.serializeURLOrigin=function(t){switch(t.scheme){case"blob":try{return e.exports.serializeURLOrigin(e.exports.parseURL(t.path[0]))}catch(e){return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return function(e){let t=e.scheme+"://";return t+=T(e.host),null!==e.port&&(t+=":"+e.port),t}({scheme:t.scheme,host:t.host,port:t.port});case"file":return"file://";default:return"null"}},e.exports.basicURLParse=function(e,t){void 0===t&&(t={});const a=new E(e,t.baseURL,t.encodingOverride,t.url,t.stateOverride);return a.failure?"failure":a.url},e.exports.setTheUsername=function(e,t){e.username="";const a=n.ucs2.decode(t);for(let t=0;t{"use strict";e.exports.mixin=function(e,t){const a=Object.getOwnPropertyNames(t);for(let n=0;n{"use strict";e.exports=require("crypto")},5747:e=>{"use strict";e.exports=require("fs")},5622:e=>{"use strict";e.exports=require("path")},4213:e=>{"use strict";e.exports=require("punycode")},1669:e=>{"use strict";e.exports=require("util")}},t={};function a(n){var r=t[n];if(void 0!==r)return r.exports;var s=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(s.exports,s,s.exports,a),s.loaded=!0,s.exports}return a.amdD=function(){throw new Error("define cannot be used indirect")},a.amdO={},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a(6086)})()})); + //# sourceMappingURL=index.js.map diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2a32900369..f435adb0d4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -139,6 +139,9 @@ importers: '@use-gesture/react': specifier: 10.3.1 version: 10.3.1(react@18.3.1) + '@vscode/vscode-languagedetection': + specifier: 1.0.22 + version: 1.0.22 '@yornaath/batshit': specifier: 0.10.1 version: 0.10.1 @@ -2730,6 +2733,10 @@ packages: '@vitest/utils@2.0.4': resolution: {integrity: sha512-Zc75QuuoJhOBnlo99ZVUkJIuq4Oj0zAkrQ2VzCqNCx6wAwViHEh5Fnp4fiJTE9rA+sAoXRf00Z9xGgfEzV6fzQ==} + '@vscode/vscode-languagedetection@1.0.22': + resolution: {integrity: sha512-rQ/BgMyLuIXSmbA0MSkIPHtcOw14QkeDbAq19sjvaS9LTRr905yij0S8lsyqN5JgOsbtIx7pAcyOxFMzPmqhZQ==} + hasBin: true + '@xmldom/xmldom@0.8.10': resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} engines: {node: '>=10.0.0'} @@ -9917,6 +9924,8 @@ snapshots: loupe: 3.1.1 tinyrainbow: 1.2.0 + '@vscode/vscode-languagedetection@1.0.22': {} + '@xmldom/xmldom@0.8.10': {} '@yornaath/batshit-devtools@1.7.1': {} diff --git a/src/env.ts b/src/env.ts index 3b188f3851..ffd31986e4 100644 --- a/src/env.ts +++ b/src/env.ts @@ -16,11 +16,19 @@ export const env = createEnv({ }, emptyStringAsUndefined: true, - runtimeEnv: - "process" in globalThis ? process.env : injectExternalEnv(import.meta.env), + runtimeEnv: getRuntimeEnv(), + skipValidation: !isDev, }) +function getRuntimeEnv() { + try { + return injectExternalEnv(import.meta.env) + } catch { + return process.env + } +} + function injectExternalEnv(originEnv: T): T { if (!("document" in globalThis)) { return originEnv diff --git a/src/main/index.ts b/src/main/index.ts index 9fb1e13ce6..90276e9f74 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -1,5 +1,3 @@ -import "dotenv/config" - import { electronApp, optimizer } from "@electron-toolkit/utils" import { APP_PROTOCOL, DEEPLINK_SCHEME } from "@shared/constants" import { extractElectronWindowOptions } from "@shared/electron" diff --git a/src/main/tipc/reader.ts b/src/main/tipc/reader.ts index f894d2ac75..fad711ef9e 100644 --- a/src/main/tipc/reader.ts +++ b/src/main/tipc/reader.ts @@ -1,6 +1,9 @@ +import { createRequire } from "node:module" + import { readability } from "../lib/readability" import { t } from "./_instance" +const require = createRequire(import.meta.url) export const readerRoute = { readability: t.procedure .input<{ url: string }>() @@ -12,6 +15,14 @@ export const readerRoute = { } const result = await readability(url) + return result + }), + detectCodeStringLanguage: t.procedure + .input<{ codeString: string }>() + .action(async ({ input }) => { + const { ModelOperations } = require("@vscode/vscode-languagedetection") + const modulOperations = new ModelOperations() + const result = await modulOperations.runModel(input.codeString) return result }), } diff --git a/src/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx b/src/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx index 22989abb30..95b6936f7a 100644 --- a/src/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx +++ b/src/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx @@ -1,7 +1,14 @@ import { useUISettingSelector } from "@renderer/atoms/settings/ui" +import { tipcClient } from "@renderer/lib/client" import { cn } from "@renderer/lib/utils" import type { FC } from "react" -import { useLayoutEffect, useMemo, useRef, useState } from "react" +import { + useInsertionEffect, + useLayoutEffect, + useMemo, + useRef, + useState, +} from "react" import type { BundledLanguage, BundledTheme, @@ -16,10 +23,7 @@ import { shikiTransformers } from "./shared" import styles from "./shiki.module.css" const shiki = await createHighlighterCore({ - themes: [ - - import("shiki/themes/github-dark.mjs"), - ], + themes: [import("shiki/themes/github-dark.mjs")], langs: [], loadWasm: getWasm, }) @@ -42,15 +46,49 @@ let langModule: Record< > | null = null let themeModule: Record | null = null - +let bundledLanguagesKeysSet: Set | null = null export const ShikiHighLighter: FC = (props) => { const { code, language, className, theme: overrideTheme } = props + const [currentLanguage, setCurrentLanguage] = useState( + language || "plaintext", + ) + + useInsertionEffect(() => { + if (language || !ELECTRON) return + + if (!bundledLanguagesKeysSet) { + import("shiki/langs") + .then(({ bundledLanguages }) => { + langModule = bundledLanguages + bundledLanguagesKeysSet = new Set(Object.keys(bundledLanguages)) + }) + .then(guessLanguage) + } else { + guessLanguage() + } + + function guessLanguage() { + tipcClient + ?.detectCodeStringLanguage({ codeString: code }) + .then((result) => { + for (const item of result) { + if (bundledLanguagesKeysSet?.has(item.languageId)) { + setCurrentLanguage(item.languageId) + break + } + } + }) + } + }, []) + const loadThemesRef = useRef([] as string[]) const loadLanguagesRef = useRef([] as string[]) const [loaded, setLoaded] = useState(false) - const codeTheme = useUISettingSelector((s) => overrideTheme || s.codeHighlightTheme) + const codeTheme = useUISettingSelector( + (s) => overrideTheme || s.codeHighlightTheme, + ) useLayoutEffect(() => { let isMounted = true setLoaded(false) @@ -69,7 +107,7 @@ export const ShikiHighLighter: FC = (props) => { } async function register() { - if (!language || !codeTheme) return + if (!currentLanguage || !codeTheme) return const [{ bundledLanguages }, { bundledThemes }] = langModule && themeModule ? @@ -85,20 +123,20 @@ export const ShikiHighLighter: FC = (props) => { themeModule = bundledThemes if ( - language && - loadLanguagesRef.current.includes(language) && + currentLanguage && + loadLanguagesRef.current.includes(currentLanguage) && codeTheme && - (loadThemesRef.current.includes(codeTheme)) + loadThemesRef.current.includes(codeTheme) ) { return } return Promise.all([ (async () => { - if (language) { - const importFn = (bundledLanguages as any)[language] + if (currentLanguage) { + const importFn = (bundledLanguages as any)[currentLanguage] if (!importFn) return - await loadShikiLanguage(language || "", importFn) - loadLanguagesRef.current.push(language) + await loadShikiLanguage(currentLanguage || "", importFn) + loadLanguagesRef.current.push(currentLanguage) } })(), (async () => { @@ -119,7 +157,7 @@ export const ShikiHighLighter: FC = (props) => { return () => { isMounted = false } - }, [codeTheme, language]) + }, [codeTheme, currentLanguage]) if (!loaded) { return ( @@ -128,13 +166,16 @@ export const ShikiHighLighter: FC = (props) => { ) } - return + return ( + + ) } -const ShikiCode: FC = ({ code, language, codeTheme, className, transparent }) => { +const ShikiCode: FC< + ShikiProps & { + codeTheme: string + } +> = ({ code, language, codeTheme, className, transparent }) => { const rendered = useMemo(() => { try { return shiki.codeToHtml(code, { @@ -159,9 +200,19 @@ const ShikiCode: FC +
- +
) } diff --git a/src/renderer/src/lib/parse-html.ts b/src/renderer/src/lib/parse-html.ts index a5bd954293..644d9be0ae 100644 --- a/src/renderer/src/lib/parse-html.ts +++ b/src/renderer/src/lib/parse-html.ts @@ -92,14 +92,13 @@ export const parseHtml = async ( pre: ({ node, ...props }) => { if (!props.children) return null - let language = "plaintext" + let language = "" let codeString = null as string | null if (props.className?.includes("language-")) { language = props.className.replace("language-", "") } if (typeof props.children !== "object") { - language = "plaintext" codeString = props.children.toString() } else { if ( @@ -115,9 +114,8 @@ export const parseHtml = async ( const code = "props" in props.children && props.children.props.children if (!code) return null - const $text = document.createElement("div") - $text.innerHTML = renderToString(code) - codeString = $text.textContent + + codeString = extractCodeFromHtml(renderToString(code)) } if (!codeString) return null @@ -127,17 +125,18 @@ export const parseHtml = async ( language: language.toLowerCase(), }) }, - table: ({ node, ...props }) => createElement( - "div", - { - className: "w-full overflow-x-auto", - }, + table: ({ node, ...props }) => + createElement( + "div", + { + className: "w-full overflow-x-auto", + }, - createElement("table", { - ...props, - className: tw`w-full my-0`, - }), - ), + createElement("table", { + ...props, + className: tw`w-full my-0`, + }), + ), }, }), } @@ -161,3 +160,22 @@ const Img: Components["img"] = ({ node, ...props }) => { return createElement(MarkdownBlockImage, nextProps) } + +function extractCodeFromHtml(htmlString: string) { + const tempDiv = document.createElement("div") + tempDiv.innerHTML = htmlString + + const divElements = tempDiv.querySelectorAll("div") + + let code = "" + + divElements.forEach((div) => { + code += `${div.textContent}\n` + }) + + if (divElements.length === 0) { + return tempDiv.textContent + } + + return code +}