PageSourceSearch

https://cdn.vidwud.com/web/js/cjs/browser/tfjs-2.6.0.js

js vidwud.com collected 2026-09-28 06:04:10 UTC 1,109,353 bytes, 18 lines download raw bytes

vendor: 4,365 bytes, lines 1-17
1/**
2 * @license
3 * Copyright 2020 Google LLC. All Rights Reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 * =============================================================================
16 */
17!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).tf=e.tf||{})}(this,(function(e){"use strict";var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function n(e,t){return e(t={exports:{}},t.exports),t.exports}var r=function(e){return e&&e.Math==Math&&e},a=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||Function("return this")(),i=function(e){try{return!!e()}catch(e){return!0}},o=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),s={}.propertyIsEnumerable,u=Object.getOwnPropertyDescriptor,l={f:u&&!s.call({1:2},1)?function(e){var t=u(this,e);return!!t&&t.enumerable}:s},c=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},p={}.toString,h=function(e){return p.call(e).slice(8,-1)},f="".split,d=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==h(e)?f.call(e,""):Object(e)}:Object,m=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},v=function(e){return d(m(e))},g=function(e){return"object"==typeof e?null!==e:"function"==typeof e},y=function(e,t){if(!g(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!g(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!g(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!g(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},b={}.hasOwnProperty,x=function(e,t){return b.call(e,t)},w=a.document,k=g(w)&&g(w.createElement),S=function(e){return k?w.createElement(e):{}},N=!o&&!i((function(){return 7!=Object.defineProperty(S("div"),"a",{get:function(){return 7}}).a})),I=Object.getOwnPropertyDescriptor,C={f:o?I:function(e,t){if(e=v(e),t=y(t,!0),N)try{return I(e,t)}catch(e){}if(x(e,t))return c(!l.f.call(e,t),e[t])}},R=function(e){if(!g(e))throw TypeError(String(e)+" is not an object");return e},E=Object.defineProperty,A={f:o?E:function(e,t,n){if(R(e),t=y(t,!0),R(n),N)try{return E(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},T=o?function(e,t,n){return A.f(e,t,c(1,n))}:function(e,t,n){return e[t]=n,e},D=function(e,t){try{T(a,e,t)}catch(n){a[e]=t}return t},_=a["__core-js_shared__"]||D("__core-js_shared__",{}),F=Function.toString;"function"!=typeof _.inspectSource&&(_.inspectSource=function(e){return F.call(e)});var O,M,L,z=_.inspectSource,B=a.WeakMap,P="function"==typeof B&&/native code/.test(z(B)),W=n((function(e){(e.exports=function(e,t){return _[e]||(_[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.6.5",mode:"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),V=0,U=Math.random(),G=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++V+U).toString(36)},j=W("keys"),H=function(e){return j[e]||(j[e]=G(e))},q={},K=a.WeakMap;if(P){var X=new K,Y=X.get,J=X.has,Z=X.set;O=function(e,t){return Z.call(X,e,t),t},M=function(e){return Y.call(X,e)||{}},L=function(e){return J.call(X,e)}}else{var Q=H("state");q[Q]=!0,O=function(e,t){return T(e,Q,t),t},M=function(e){return x(e,Q)?e[Q]:{}},L=function(e){return x(e,Q)}}var $,ee={set:O,get:M,has:L,enforce:function(e){return L(e)?M(e):O(e,{})},getterFor:function(e){return function(t){var n;if(!g(t)||(n=M(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},te=n((function(e){var t=ee.get,n=ee.enforce,r=String(String).split("String");
vendor: 5,089 bytes, line 17
17(e.exports=function(e,t,i,o){var s=!!o&&!!o.unsafe,u=!!o&&!!o.enumerable,l=!!o&&!!o.noTargetGet;"function"==typeof i&&("string"!=typeof t||x(i,"name")||T(i,"name",t),n(i).source=r.join("string"==typeof t?t:"")),e!==a?(s?!l&&e[t]&&(u=!0):delete e[t],u?e[t]=i:T(e,t,i)):u?e[t]=i:D(t,i)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||z(this)}))})),ne=a,re=function(e){return"function"==typeof e?e:void 0},ae=function(e,t){return arguments.length<2?re(ne[e])||re(a[e]):ne[e]&&ne[e][t]||a[e]&&a[e][t]},ie=Math.ceil,oe=Math.floor,se=function(e){return isNaN(e=+e)?0:(e>0?oe:ie)(e)},ue=Math.min,le=function(e){return e>0?ue(se(e),9007199254740991):0},ce=Math.max,pe=Math.min,he=function(e,t){var n=se(e);return n<0?ce(n+t,0):pe(n,t)},fe=function(e){return function(t,n,r){var a,i=v(t),o=le(i.length),s=he(r,o);if(e&&n!=n){for(;o>s;)if((a=i[s++])!=a)return!0}else for(;o>s;s++)if((e||s in i)&&i[s]===n)return e||s||0;return!e&&-1}},de={includes:fe(!0),indexOf:fe(!1)},me=de.indexOf,ve=function(e,t){var n,r=v(e),a=0,i=[];for(n in r)!x(q,n)&&x(r,n)&&i.push(n);for(;t.length>a;)x(r,n=t[a++])&&(~me(i,n)||i.push(n));return i},ge=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],ye=ge.concat("length","prototype"),be={f:Object.getOwnPropertyNames||function(e){return ve(e,ye)}},xe={f:Object.getOwnPropertySymbols},we=ae("Reflect","ownKeys")||function(e){var t=be.f(R(e)),n=xe.f;return n?t.concat(n(e)):t},ke=function(e,t){for(var n=we(t),r=A.f,a=C.f,i=0;i<n.length;i++){var o=n[i];x(e,o)||r(e,o,a(t,o))}},Se=/#|\.prototype\./,Ne=function(e,t){var n=Ce[Ie(e)];return n==Ee||n!=Re&&("function"==typeof t?i(t):!!t)},Ie=Ne.normalize=function(e){return String(e).replace(Se,".").toLowerCase()},Ce=Ne.data={},Re=Ne.NATIVE="N",Ee=Ne.POLYFILL="P",Ae=Ne,Te=C.f,De=function(e,t){var n,r,i,o,s,u=e.target,l=e.global,c=e.stat;if(n=l?a:c?a[u]||D(u,{}):(a[u]||{}).prototype)for(r in t){if(o=t[r],i=e.noTargetGet?(s=Te(n,r))&&s.value:n[r],!Ae(l?r:u+(c?".":"#")+r,e.forced)&&void 0!==i){if(typeof o==typeof i)continue;ke(o,i)}(e.sham||i&&i.sham)&&T(o,"sham",!0),te(n,r,o,e)}},_e=!!Object.getOwnPropertySymbols&&!i((function(){return!String(Symbol())})),Fe=_e&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Oe=Array.isArray||function(e){return"Array"==h(e)},Me=function(e){return Object(m(e))},Le=Object.keys||function(e){return ve(e,ge)},ze=o?Object.defineProperties:function(e,t){R(e);for(var n,r=Le(t),a=r.length,i=0;a>i;)A.f(e,n=r[i++],t[n]);return e},Be=ae("document","documentElement"),Pe=H("IE_PROTO"),We=function(){},Ve=function(e){return"<script>"+e+"<\/script>"},Ue=function(){try{$=document.domain&&new ActiveXObject("htmlfile")}catch(e){}var e,t;Ue=$?function(e){e.write(Ve("")),e.close();var t=e.parentWindow.Object;return e=null,t}($):((t=S("iframe")).style.display="none",Be.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(Ve("document.F=Object")),e.close(),e.F);for(var n=ge.length;n--;)delete Ue.prototype[ge[n]];return Ue()};q[Pe]=!0;var Ge=Object.create||function(e,t){var n;return null!==e?(We.prototype=R(e),n=new We,We.prototype=null,n[Pe]=e):n=Ue(),void 0===t?n:ze(n,t)},je=be.f,He={}.toString,qe="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],Ke={f:function(e){return qe&&"[object Window]"==He.call(e)?function(e){try{return je(e)}catch(e){return qe.slice()}}(e):je(v(e))}},Xe=W("wks"),Ye=a.Symbol,Je=Fe?Ye:Ye&&Ye.withoutSetter||G,Ze=function(e){return x(Xe,e)||(_e&&x(Ye,e)?Xe[e]=Ye[e]:Xe[e]=Je("Symbol."+e)),Xe[e]},Qe={f:Ze},$e=A.f,et=function(e){var t=ne.Symbol||(ne.Symbol={});x(t,e)||$e(t,e,{value:Qe.f(e)})},tt=A.f,nt=Ze("toStringTag"),rt=function(e,t,n){e&&!x(e=n?e:e.prototype,nt)&&tt(e,nt,{configurable:!0,value:t})},at=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},it=function(e,t,n){if(at(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,a){return e.call(t,n,r,a)}}return function(){return e.apply(t,arguments)}},ot=Ze("species"),st=function(e,t){var n;return Oe(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!Oe(n.prototype)?g(n)&&null===(n=n[ot])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)},ut=[].push,lt=function(e){var t=1==e,n=2==e,r=3==e,a=4==e,i=6==e,o=5==e||i;return function(s,u,l,c){for(var p,h,f=Me(s),m=d(f),v=it(u,l,3),g=le(m.length),y=0,b=c||st,x=t?b(s,g):n?b(s,0):void 0;g>y;y++)if((o||y in m)&&(h=v(p=m[y],y,f),e))if(t)x[y]=h;else if(h)switch(e){case 3:return!0;case 5:return p;case 6:return y;case 2:ut.call(x,p)}else if(a)return!1;return i?-1:r||a?a:x}},ct={forEach:lt(0),map:lt(1),filter:lt(2),some:lt(3),every:lt(4),find:lt(5),findIndex:lt(6)},pt=ct.forEach,ht=H("hidden"),ft=Ze("toPrimitive"),dt=ee.set,mt=ee.getterFor("Symbol"),vt=Object.prototype,gt=a.Symbol,yt=ae("JSON","stringify"),bt=C.f,xt=A.f,wt=Ke.f,kt=l.f,St=W("symbols"),Nt=W("op-symbol
17s"),It=W("string-to-symbol-registry"),Ct=W("symbol-to-string-registry"),Rt=W("wks"),Et=a.QObject,At=!Et||!Et.prototype||!Et.prototype.findChild,Tt=o&&i((function(){return 7!=Ge(xt({},"a",{get:function(){return xt(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=bt(vt,t);r&&delete vt[t],xt(e,t,n),r&&e!==vt&&xt(vt,t,r)}:xt,Dt=function(e,t){var n=St[e]=Ge(gt.prototype);return dt(n,{type:"Symbol",tag:e,description:t}),o||(n.description=t),n},_t=Fe?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof gt},Ft=function(e,t,n){e===vt&&Ft(Nt,t,n),R(e);var r=y(t,!0);return R(n),x(St,r)?(n.enumerable?(x(e,ht)&&e[ht][r]&&(e[ht][r]=!1),n=Ge(n,{enumerable:c(0,!1)})):(x(e,ht)||xt(e,ht,c(1,{})),e[ht][r]=!0),Tt(e,r,n)):xt(e,r,n)},Ot=function(e,t){R(e);var n=v(t),r=Le(n).concat(Bt(n));return pt(r,(function(t){o&&!Mt.call(n,t)||Ft(e,t,n[t])})),e},Mt=function(e){var t=y(e,!0),n=kt.call(this,t);return!(this===vt&&x(St,t)&&!x(Nt,t))&&(!(n||!x(this,t)||!x(St,t)||x(this,ht)&&this[ht][t])||n)},Lt=function(e,t){var n=v(e),r=y(t,!0);if(n!==vt||!x(St,r)||x(Nt,r)){var a=bt(n,r);return!a||!x(St,r)||x(n,ht)&&n[ht][r]||(a.enumerable=!0),a}},zt=function(e){var t=wt(v(e)),n=[];return pt(t,(function(e){x(St,e)||x(q,e)||n.push(e)})),n},Bt=function(e){var t=e===vt,n=wt(t?Nt:v(e)),r=[];return pt(n,(function(e){!x(St,e)||t&&!x(vt,e)||r.push(St[e])})),r};if(_e||(te((gt=function(){if(this instanceof gt)throw TypeError("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,t=G(e),n=function e(n){this===vt&&e.call(Nt,n),x(this,ht)&&x(this[ht],t)&&(this[ht][t]=!1),Tt(this,t,c(1,n))};return o&&At&&Tt(vt,t,{configurable:!0,set:n}),Dt(t,e)}).prototype,"toString",(function(){return mt(this).tag})),te(gt,"withoutSetter",(function(e){return Dt(G(e),e)})),l.f=Mt,A.f=Ft,C.f=Lt,be.f=Ke.f=zt,xe.f=Bt,Qe.f=function(e){return Dt(Ze(e),e)},o&&(xt(gt.prototype,"description",{configurable:!0,get:function(){return mt(this).description}}),te(vt,"propertyIsEnumerable",Mt,{unsafe:!0}))),De({global:!0,wrap:!0,forced:!_e,sham:!_e},{Symbol:gt}),pt(Le(Rt),(function(e){et(e)})),De({target:"Symbol",stat:!0,forced:!_e},{for:function(e){var t=String(e);if(x(It,t))return It[t];var n=gt(t);return It[t]=n,Ct[n]=t,n},keyFor:function(e){if(!_t(e))throw TypeError(e+" is not a symbol");if(x(Ct,e))return Ct[e]}
17,useSetter:function(){At=!0},useSimple:function(){At=!1}}),De({target:"Object",stat:!0,forced:!_e,sham:!o},{create:function(e,t){return void 0===t?Ge(e):Ot(Ge(e),t)},defineProperty:Ft,defineProperties:Ot,getOwnPropertyDescriptor:Lt}),De({target:"Object",stat:!0,forced:!_e},{getOwnPropertyNames:zt,getOwnPropertySymbols:Bt}),De({target:"Object",stat:!0,forced:i((function(){xe.f(1)}))},{getOwnPropertySymbols:function(e){return xe.f(Me(e))}}),yt){var Pt=!_e||i((function(){var e=gt();return"[null]"!=yt([e])||"{}"!=yt({a:e})||"{}"!=yt(Object(e))}));De({target:"JSON",stat:!0,forced:Pt},{stringify:function(e,t,n){for(var r,a=[e],i=1;arguments.length>i;)a.push(arguments[i++]);if(r=t,(g(t)||void 0!==e)&&!_t(e))return Oe(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!_t(t))return t}),a[1]=t,yt.apply(null,a)}})}gt.prototype[ft]||T(gt.prototype,ft,gt.prototype.valueOf),rt(gt,"Symbol"),q[ht]=!0,et("asyncIterator");var Wt=A.f,Vt=a.Symbol;if(o&&"function"==typeof Vt&&(!("description"in Vt.prototype)||void 0!==Vt().description)){var Ut={},Gt=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),t=this instanceof Gt?new Vt(e):void 0===e?Vt():Vt(e);return""===e&&(Ut[t]=!0),t};ke(Gt,Vt);var jt=Gt.prototype=Vt.prototype;jt.constructor=Gt;var Ht=jt.toString,qt="Symbol(test)"==String(Vt("test")),Kt=/^Symbol\((.*)\)[^)]+$/;Wt(jt,"description",{configurable:!0,get:function(){var e=g(this)?this.valueOf():this,t=Ht.call(e);if(x(Ut,e))return"";var n=qt?t.slice(7,-1):t.replace(Kt,"$1");return""===n?void 0:n}}),De({global:!0,forced:!0},{Symbol:Gt})}et("hasInstance"),et("isConcatSpreadable"),et("iterator"),et("match"),et("matchAll"),et("replace"),et("search"),et("species"),et("split"),et("toPrimitive"),et("toStringTag"),et("unscopables");var Xt=Object.assign,Yt=Object.defineProperty,Jt=!Xt||i((function(){if(o&&1!==Xt({b:1},Xt(Yt({},"a",{enumerable:!0,get:function(){Yt(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol();return e[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),7!=Xt({},e)[n]||"abcdefghijklmnopqrst"!=Le(Xt({},t)).join("")}))?function(e,t){for(var n=Me(e),r=arguments.length,a=1,i=xe.f,s=l.f;r>a;)for(var u,c=d(arguments[a++]),p=i?Le(c).concat(i(c)):Le(c),h=p.length,f=0;h>f;)u=p[f++],o&&!s.call(c,u)||(n[u]=c[u]);return n}:Xt;De({target:"Object",stat:!0,forced:Object.assign!==Jt},{assign:Jt}),De({target:"Object",stat:!0,sham:!o},{create:Ge}),De({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperty:A.f}),De({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperties:ze});var Zt=l.f,Qt=function(e){return function(t){for(var n,r=v(t),a=Le(r),i=a.length,s=0,u=[];i>s;)n=a[s++],o&&!Zt.call(r,n)||u.push(e?[n,r[n]]:r[n]);return u}},$t={entries:Qt(!0),values:Qt(!1)},en=$t.entries;De({target:"Object",stat:!0},{entries:function(e){return en(e)}});var tn=!i((function(){return Object.isExtensible(Object.preventExtensions({}))})),nn=n((function(e){var t=A.f,n=G("meta"),r=0,a=Object.isExtensible||function(){return!0},i=function(e){t(e,n,{value:{objectID:"O"+ ++r,weakData:{}}})},o=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!g(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!x(e,n)){if(!a(e))return"F";if(!t)return"E";i(e)}return e[n].objectID},getWeakData:function(e,t){if(!x(e,n)){if(!a(e))return!0;if(!t)return!1;i(e)}return e[n].weakData},onFreeze:function(e){return tn&&o.REQUIRED&&a(e)&&!x(e,n)&&i(e),e}};q[n]=!0})),rn=(nn.REQUIRED,nn.fastKey,nn.getWeakData,nn.onFreeze,nn.onFreeze),an=Object.freeze,on=i((function(){an(1)}));De({target:"Object",stat:!0,forced:on,sham:!tn},{freeze:function(e){return an&&g(e)?an(rn(e)):e}});var sn={},un=Ze("iterator"),ln=Array.prototype,cn=function(e){return void 0!==e&&(sn.Array===e||ln[un]===e)},pn={};pn[Ze("toStringTag")]="z";var hn="[object z]"===String(pn),fn=Ze("toStringTag"),dn="Arguments"==h(function(){return arguments}()),mn=hn?h:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),fn))?n:dn?h(t):"Object"==(r=h(t))&&"function"==typeof t.callee?"Arguments":r},vn=Ze("iterator"),gn=function(e){if(null!=e)return e[vn]||e["@@iterator"]||sn[mn(e)]},yn=function(e,t,n,r){try{return r?t(R(n)[0],n[1]):t(n)}catch(t){var a=e.return;throw void 0!==a&&R(a.call(e)),t}},bn=n((function(e){var t=function(e,t){this.stopped=e,this.result=t};
17(e.exports=function(e,n,r,a,i){var o,s,u,l,c,p,h,f=it(n,r,a?2:1);if(i)o=e;else{if("function"!=typeof(s=gn(e)))throw TypeError("Target is not iterable");if(cn(s)){for(u=0,l=le(e.length);l>u;u++)if((c=a?f(R(h=e[u])[0],h[1]):f(e[u]))&&c instanceof t)return c;return new t(!1)}o=s.call(e)}for(p=o.next;!(h=p.call(o)).done;)if("object"==typeof(c=yn(o,f,h.value,a))&&c&&c instanceof t)return c;return new t(!1)}).stop=function(e){return new t(!0,e)}})),xn=function(e,t,n){var r=y(t);r in e?A.f(e,r,c(0,n)):e[r]=n};De({target:"Object",stat:!0},{fromEntries:function(e){var t={};return bn(e,(function(e,n){xn(t,e,n)}),void 0,!0),t}});var wn=C.f,kn=i((function(){wn(1)}));De({target:"Object",stat:!0,forced:!o||kn,sham:!o},{getOwnPropertyDescriptor:function(e,t){return wn(v(e),t)}}),De({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(e){for(var t,n,r=v(e),a=C.f,i=we(r),o={},s=0;i.length>s;)void 0!==(n=a(r,t=i[s++]))&&xn(o,t,n);return o}});var Sn=Ke.f,Nn=i((function(){return!Object.getOwnPropertyNames(1)}));De({target:"Object",stat:!0,forced:Nn},{getOwnPropertyNames:Sn});var In=!i((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),Cn=H("IE_PROTO"),Rn=Object.prototype,En=In?Object.getPrototypeOf:function(e){return e=Me(e),x(e,Cn)?e[Cn]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?Rn:null},An=i((function(){En(1)}));De({target:"Object",stat:!0,forced:An,sham:!In},{getPrototypeOf:function(e){return En(Me(e))}});var Tn=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t};De({target:"Object",stat:!0},{is:Tn});var Dn=Object.isExtensible,_n=i((function(){Dn(1)}));De({target:"Object",stat:!0,forced:_n},{isExtensible:function(e){return!!g(e)&&(!Dn||Dn(e))}});var Fn=Object.isFrozen,On=i((function(){Fn(1)}));De({target:"Object",stat:!0,forced:On},{isFrozen:function(e){return!g(e)||!!Fn&&Fn(e)}});var Mn=Object.isSealed,Ln=i((function(){Mn(1)}));De({target:"Object",stat:!0,forced:Ln},{isSealed:function(e){return!g(e)||!!Mn&&Mn(e)}});var zn=i((function(){Le(1)}));De({target:"Object",stat:!0,forced:zn},{keys:function(e){return Le(Me(e))}});var Bn=nn.onFreeze,Pn=Object.preventExtensions,Wn=i((function(){Pn(1)}));De({target:"Object",stat:!0,forced:Wn,sham:!tn},{preventExtensions:function(e){return Pn&&g(e)?Pn(Bn(e)):e}});var Vn=nn.onFreeze,Un=Object.seal,Gn=i((function(){Un(1)}));De({target:"Object",stat:!0,forced:Gn,sham:!tn},{seal:function(e){return Un&&g(e)?Un(Vn(e)):e}});var jn=function(e){if(!g(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},Hn=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return R(n),jn(r),t?e.call(n,r):n.__proto__=r,n}}():void 0);De({target:"Object",stat:!0},{setPrototypeOf:Hn});var qn=$t.values;De({target:"Object",stat:!0},{values:function(e){return qn(e)}});var Kn=hn?{}.toString:function(){return"[object "+mn(this)+"]"};hn||te(Object.prototype,"toString",Kn,{unsafe:!0});var Xn=!i((function(){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete a[e]}));o&&De({target:"Object",proto:!0,forced:Xn},{__defineGetter__:function(e,t){A.f(Me(this),e,{get:at(t),enumerable:!0,configurable:!0})}}),o&&De({target:"Object",proto:!0,forced:Xn},{__defineSetter__:function(e,t){A.f(Me(this),e,{set:at(t),enumerable:!0,configurable:!0})}});var Yn=C.f;o&&De({target:"Object",proto:!0,forced:Xn},{__lookupGetter__:function(e){var t,n=Me(this),r=y(e,!0);do{if(t=Yn(n,r))return t.get}while(n=En(n))}});var Jn=C.f;o&&De({target:"Object",proto:!0,forced:Xn},{__lookupSetter__:function(e){var t,n=Me(this),r=y(e,!0);do{if(t=Jn(n,r))return t.set}while(n=En(n))}});var Zn=[].slice,Qn={},$n=function(e,t,n){if(!(t in Qn)){for(var r=[],a=0;a<t;a++)r[a]="a["+a+"]";Qn[t]=Function("C,a","return new C("+r.join(",")+")")}return Qn[t](e,n)},er=Function.bind||function(e){var t=at(this),n=Zn.call(arguments,1),r=function(){var a=n.concat(Zn.call(arguments));return this instanceof r?$n(t,a.length,a):t.apply(e,a)};return g(t.prototype)&&(r.prototype=t.prototype),r};De({target:"Function",proto:!0},{bind:er});var tr=A.f,nr=Function.prototype,rr=nr.toString,ar=/^\s*function ([^ (]*)/;o&&!("name"in nr)&&tr(nr,"name",{configurable:!0,get:function(){try{return rr.call(this).match(ar)[1]}catch(e){return""}}});var ir=Ze("hasInstance"),or=Function.prototype;ir in or||A.f(or,ir,{value:function(e){if("function"!=typeof this||!g(e))return!1;if(!g(this.prototype))return e instanceof this;for(;e=En(e);)if(this.prototype===e)return!0;return!1}}),De({global:!0},{globalThis:a});var sr=function(e){var t,n,r,a,i,o,s=Me(e),u="function"==typeof this?this:Array,l=arguments.length,c=l>1?arguments[1]:void 0,p=void 0!==c,h=gn(s),f=0;if(p&&(c=it(c,l>2?arguments[2]:void 0,2)),null==h||u==Array&&cn(h))for(n=new u(t=le(s.length));t>f;f++)o=p?c(s[f],f):s[f],xn(n,f,o);else for(i=(a=h.call(s)).next,n=new u;!(r=i.call(a)).done;f++)o=p?yn(a,c,[r.value,f],!0):r.value,xn(n,f,o);return n.length=f,n},ur=Ze("iterator"),lr=!1;try{var cr=0,pr={next:function(){return{done:!!cr++}},return:function(){lr=!0}};pr[ur]=function(){return this},Array.from(pr,(function(){throw 2}))}catch(e){}var hr=function(e,t){if(!t&&!lr)return!1;var n=!1;try{var r={};r[ur]=function(){return{next:function(){return{done:n=!0}}}},e(r)}catch(e){}return n},fr=!hr((function(e){Array.from(e)}));De({target:"Array",stat:!0,forced:fr},{from:sr}),De({target:"Array",stat:!0},{isArray:Oe});var dr=i((function(){function e(){}return!(Array.of.call(e)instanceof e)}));De({target:"Array",stat:!0,forced:dr},{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)xn(n,e,arguments[e++]);return n.length=t,n}});var mr,vr,gr=ae("navigator","userAgent")||"",yr=a.process,br=yr&&yr.ver
17sions,xr=br&&br.v8;xr?vr=(mr=xr.split("."))[0]+mr[1]:gr&&(!(mr=gr.match(/Edge\/(\d+)/))||mr[1]>=74)&&(mr=gr.match(/Chrome\/(\d+)/))&&(vr=mr[1]);var wr=vr&&+vr,kr=Ze("species"),Sr=function(e){return wr>=51||!i((function(){var t=[];return(t.constructor={})[kr]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},Nr=Ze("isConcatSpreadable"),Ir=wr>=51||!i((function(){var e=[];return e[Nr]=!1,e.concat()[0]!==e})),Cr=Sr("concat"),Rr=function(e){if(!g(e))return!1;var t=e[Nr];return void 0!==t?!!t:Oe(e)};De({target:"Array",proto:!0,forced:!Ir||!Cr},{concat:function(e){var t,n,r,a,i,o=Me(this),s=st(o,0),u=0;for(t=-1,r=arguments.length;t<r;t++)if(i=-1===t?o:arguments[t],Rr(i)){if(u+(a=le(i.length))>9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n<a;n++,u++)n in i&&xn(s,u,i[n])}else{if(u>=9007199254740991)throw TypeError("Maximum allowed index exceeded");xn(s,u++,i)}return s.length=u,s}});var Er=Math.min,Ar=[].copyWithin||function(e,t){var n=Me(this),r=le(n.length),a=he(e,r),i=he(t,r),o=arguments.length>2?arguments[2]:void 0,s=Er((void 0===o?r:he(o,r))-i,r-a),u=1;for(i<a&&a<i+s&&(u=-1,i+=s-1,a+=s-1);s-- >0;)i in n?n[a]=n[i]:delete n[a],a+=u,i+=u;return n},Tr=Ze("unscopables"),Dr=Array.prototype;null==Dr[Tr]&&A.f(Dr,Tr,{configurable:!0,value:Ge(null)});var _r=function(e){Dr[Tr][e]=!0};De({target:"Array",proto:!0},{copyWithin:Ar}),_r("copyWithin");var Fr=function(e,t){var n=[][e];return!!n&&i((function(){n.call(null,t||function(){throw 1},1)}))},Or=Object.defineProperty,Mr={},Lr=function(e){throw e},zr=function(e,t){if(x(Mr,e))return Mr[e];t||(t={});var n=[][e],r=!!x(t,"ACCESSORS")&&t.ACCESSORS,a=x(t,0)?t[0]:Lr,s=x(t,1)?t[1]:void 0;return Mr[e]=!!n&&!i((function(){if(r&&!o)return!0;var e={length:-1};r?Or(e,1,{enumerable:!0,get:Lr}):e[1]=1,n.call(e,a,s)}))},Br=ct.every,Pr=Fr("every"),Wr=zr("every");De({target:"Array",proto:!0,forced:!Pr||!Wr},{every:function(e){return Br(this,e,arguments.length>1?arguments[1]:void 0)}});var Vr=function(e){for(var t=Me(this),n=le(t.length),r=arguments.length,a=he(r>1?arguments[1]:void 0,n),i=r>2?arguments[2]:void 0,o=void 0===i?n:he(i,n);o>a;)t[a++]=e;return t};De({target:"Array",proto:!0},{fill:Vr}),_r("fill");var Ur=ct.filter,Gr=Sr("filter"),jr=zr("filter");De({target:"Array",proto:!0,forced:!Gr||!jr},{filter:function(e){return Ur(this,e,arguments.length>1?arguments[1]:void 0)}});var Hr=ct.find,qr=!0,Kr=zr("find");"find"in[]&&Array(1).find((function(){qr=!1})),De({target:"Array",proto:!0,forced:qr||!Kr},{find:function(e){return Hr(this,e,arguments.length>1?arguments[1]:void 0)}}),_r("find");var Xr=ct.findIndex,Yr=!0,Jr=zr("findIndex");"findIndex"in[]&&Array(1).findIndex((function(){Yr=!1})),De({target:"Array",proto:!0,forced:Yr||!Jr},{findIndex:function(e){return Xr(this,e,arguments.length>1?arguments[1]:void 0)}}),_r("findIndex");var Zr=function e(t,n,r,a,i,o,s,u){for(var l,c=i,p=0,h=!!s&&it(s,u,3);p<a;){if(p in r){if(l=h?h(r[p],p,n):r[p],o>0&&Oe(l))c=e(t,n,l,le(l.length),c,o-1)-1;else{if(c>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[c]=l}c++}p++}return c};De({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=Me(this),n=le(t.length),r=st(t,0);return r.length=Zr(r,t,t,n,0,void 0===e?1:se(e)),r}}),De({target:"Array",proto:!0},{flatMap:function(e){var t,n=Me(this),r=le(n.length);return at(e),(t=st(n,0)).length=Zr(t,n,n,r,0,1,e,arguments.length>1?arguments[1]:void 0),t}});var Qr=ct.forEach,$r=Fr("forEach"),ea=zr("forEach"),ta=$r&&ea?[].forEach:function(e){return Qr(this,e,arguments.length>1?arguments[1]:void 0)};De({target:"Array",proto:!0,forced:[].forEach!=ta},{forEach:ta});var na=de.includes,ra=zr("indexOf",{ACCESSORS:!0,1:0});De({target:"Array",proto:!0,forced:!ra},{includes:function(e){return na(this,e,arguments.length>1?arguments[1]:void 0)}}),_r("includes");var aa=de.indexOf,ia=[].indexOf,oa=!!ia&&1/[1].indexOf(1,-0)<0,sa=Fr("indexOf"),ua=zr("indexOf",{ACCESSORS:!0,1:0});De({target:"Array",proto:!0,forced:oa||!sa||!ua},{indexOf:function(e){return oa?ia.apply(this,arguments)||0:aa(this,e,arguments.length>1?arguments[1]:void 0)}});var la=[].join,ca=d!=Object,pa=Fr("join",",");De({target:"Array",proto:!0,forced:ca||!pa},{join:function(e){return la.call(v(this),void 0===e?",":e)}});var ha=Math.min,fa=[].lastIndexOf,da=!!fa&&1/[1].lastIndexOf(1,-0)<0,ma=Fr("lastIndexOf"),va=zr("indexOf",{ACCESSORS:!0,1:0}),ga=da||!ma||!va?function(e){if(da)return fa.apply(this,arguments)||0;var t=v(this),n=le(t.length),r=n-1;for(arguments.length>1&&(r=ha(r,se(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in t&&t[r]===e)return r||0;return-1}:fa;De({target:"Array",proto:!0,forced:ga!==[].lastIndexOf},{lastIndexOf:ga});var ya=ct.map,ba=Sr("map"),xa=zr("map");De({target:"Array",proto:!0,forced:!ba||!xa},{map:function(e){return ya(this,e,arguments.length>1?arguments[1]:void 0)}});var wa=function(e){return function(t,n,r,a){at(n);var i=Me(t),o=d(i),s=le(i.length),u=e?s-1:0,l=e?-1:1;if(r<2)for(;;){if(u in o){a=o[u],u+=l;break}
17if(u+=l,e?u<0:s<=u)throw TypeError("Reduce of empty array with no initial value")}for(;e?u>=0:s>u;u+=l)u in o&&(a=n(a,o[u],u,i));return a}},ka={left:wa(!1),right:wa(!0)},Sa=ka.left,Na=Fr("reduce"),Ia=zr("reduce",{1:0});De({target:"Array",proto:!0,forced:!Na||!Ia},{reduce:function(e){return Sa(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}});var Ca=ka.right,Ra=Fr("reduceRight"),Ea=zr("reduce",{1:0});De({target:"Array",proto:!0,forced:!Ra||!Ea},{reduceRight:function(e){return Ca(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}});var Aa=[].reverse,Ta=[1,2];De({target:"Array",proto:!0,forced:String(Ta)===String(Ta.reverse())},{reverse:function(){return Oe(this)&&(this.length=this.length),Aa.call(this)}});var Da=Sr("slice"),_a=zr("slice",{ACCESSORS:!0,0:0,1:2}),Fa=Ze("species"),Oa=[].slice,Ma=Math.max;De({target:"Array",proto:!0,forced:!Da||!_a},{slice:function(e,t){var n,r,a,i=v(this),o=le(i.length),s=he(e,o),u=he(void 0===t?o:t,o);if(Oe(i)&&("function"!=typeof(n=i.constructor)||n!==Array&&!Oe(n.prototype)?g(n)&&null===(n=n[Fa])&&(n=void 0):n=void 0,n===Array||void 0===n))return Oa.call(i,s,u);for(r=new(void 0===n?Array:n)(Ma(u-s,0)),a=0;s<u;s++,a++)s in i&&xn(r,a,i[s]);return r.length=a,r}});var La=ct.some,za=Fr("some"),Ba=zr("some");De({target:"Array",proto:!0,forced:!za||!Ba},{some:function(e){return La(this,e,arguments.length>1?arguments[1]:void 0)}});var Pa=[],Wa=Pa.sort,Va=i((function(){Pa.sort(void 0)})),Ua=i((function(){Pa.sort(null)})),Ga=Fr("sort");De({target:"Array",proto:!0,forced:Va||!Ua||!Ga},{sort:function(e){return void 0===e?Wa.call(Me(this)):Wa.call(Me(this),at(e))}});var ja=Sr("splice"),Ha=zr("splice",{ACCESSORS:!0,0:0,1:2}),qa=Math.max,Ka=Math.min;De({target:"Array",proto:!0,forced:!ja||!Ha},{splice:function(e,t){var n,r,a,i,o,s,u=Me(this),l=le(u.length),c=he(e,l),p=arguments.length;if(0===p?n=r=0:1===p?(n=0,r=l-c):(n=p-2,r=Ka(qa(se(t),0),l-c)),l+n-r>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(a=st(u,r),i=0;i<r;i++)(o=c+i)in u&&xn(a,i,u[o]);if(a.length=r,n<r){for(i=c;i<l-r;i++)s=i+n,(o=i+r)in u?u[s]=u[o]:delete u[s];for(i=l;i>l-r+n;i--)delete u[i-1]}else if(n>r)for(i=l-r;i>c;i--)s=i+n-1,(o=i+r-1)in u?u[s]=u[o]:delete u[s];for(i=0;i<n;i++)u[i+c]=arguments[i+2];return u.length=l-r+n,a}});var Xa=Ze("species"),Ya=function(e){var t=ae(e),n=A.f;o&&t&&!t[Xa]&&n(t,Xa,{configurable:!0,get:function(){return this}})};Ya("Array"),_r("flat"),_r("flatMap");var Ja,Za,Qa,$a=Ze("iterator"),ei=!1;[].keys&&("next"in(Qa=[].keys())?(Za=En(En(Qa)))!==Object.prototype&&(Ja=Za):ei=!0),null==Ja&&(Ja={}),x(Ja,$a)||T(Ja,$a,(function(){return this}));var ti={IteratorPrototype:Ja,BUGGY_SAFARI_ITERATORS:ei},ni=ti.IteratorPrototype,ri=function(){return this},ai=function(e,t,n){var r=t+" Iterator";return e.prototype=Ge(ni,{next:c(1,n)}),rt(e,r,!1),sn[r]=ri,e},ii=ti.IteratorPrototype,oi=ti.BUGGY_SAFARI_ITERATORS,si=Ze("iterator"),ui=function(){return this},li=function(e,t,n,r,a,i,o){ai(n,t,r);var s,u,l,c=function(e){if(e===a&&m)return m;if(!oi&&e in f)return f[e];switch(e){case"keys":case"values":case"entries":return function(){return new n(this,e)}}return function(){return new n(this)}},p=t+" Iterator",h=!1,f=e.prototype,d=f[si]||f["@@iterator"]||a&&f[a],m=!oi&&d||c(a),v="Array"==t&&f.entries||d;if(v&&(s=En(v.call(new e)),ii!==Object.prototype&&s.next&&(En(s)!==ii&&(Hn?Hn(s,ii):"function"!=typeof s[si]&&T(s,si,ui)),rt(s,p,!0))),"values"==a&&d&&"values"!==d.name&&(h=!0,m=function(){return d.call(this)}),f[si]!==m&&T(f,si,m),sn[t]=m,a)if(u={values:c("values"),keys:i?m:c("keys"),entries:c("entries")},o)for(l in u)(oi||h||!(l in f))&&te(f,l,u[l]);else De({target:t,proto:!0,forced:oi||h},u);return u},ci=ee.set,pi=ee.getterFor("Array Iterator"),hi=li(Array,"Array",(function(e,t){ci(this,{type:"Array Iterator",target:v(e),index:0,kind:t})}),(function(){var e=pi(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values");sn.Arguments=sn.Array,_r("keys"),_r("values"),_r("entries");var fi=String.fromCharCode,di=String.fromCodePoint,mi=!!di&&1!=di.length;De({target:"String",stat:!0,forced:mi},{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,a=0;r>a;){if(t=+arguments[a++],he(t,1114111)!==t)throw RangeError(t+" is not a valid code point");
17n.push(t<65536?fi(t):fi(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}}),De({target:"String",stat:!0},{raw:function(e){for(var t=v(e.raw),n=le(t.length),r=arguments.length,a=[],i=0;n>i;)a.push(String(t[i++])),i<r&&a.push(String(arguments[i]));return a.join("")}});var vi=function(e){return function(t,n){var r,a,i=String(m(t)),o=se(n),s=i.length;return o<0||o>=s?e?"":void 0:(r=i.charCodeAt(o))<55296||r>56319||o+1===s||(a=i.charCodeAt(o+1))<56320||a>57343?e?i.charAt(o):r:e?i.slice(o,o+2):a-56320+(r-55296<<10)+65536}},gi={codeAt:vi(!1),charAt:vi(!0)},yi=gi.codeAt;De({target:"String",proto:!0},{codePointAt:function(e){return yi(this,e)}});var bi,xi=Ze("match"),wi=function(e){var t;return g(e)&&(void 0!==(t=e[xi])?!!t:"RegExp"==h(e))},ki=function(e){if(wi(e))throw TypeError("The method doesn't accept regular expressions");return e},Si=Ze("match"),Ni=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[Si]=!1,"/./"[e](t)}catch(e){}}return!1},Ii=C.f,Ci="".endsWith,Ri=Math.min,Ei=Ni("endsWith"),Ai=!(Ei||(bi=Ii(String.prototype,"endsWith"),!bi||bi.writable));De({target:"String",proto:!0,forced:!Ai&&!Ei},{endsWith:function(e){var t=String(m(this));ki(e);var n=arguments.length>1?arguments[1]:void 0,r=le(t.length),a=void 0===n?r:Ri(le(n),r),i=String(e);return Ci?Ci.call(t,i,a):t.slice(a-i.length,a)===i}}),De({target:"String",proto:!0,forced:!Ni("includes")},{includes:function(e){return!!~String(m(this)).indexOf(ki(e),arguments.length>1?arguments[1]:void 0)}});var Ti=function(){var e=R(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t};function Di(e,t){return RegExp(e,t)}var _i={UNSUPPORTED_Y:i((function(){var e=Di("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),BROKEN_CARET:i((function(){var e=Di("^r","gy");return e.lastIndex=2,null!=e.exec("str")}))},Fi=RegExp.prototype.exec,Oi=String.prototype.replace,Mi=Fi,Li=function(){var e=/a/,t=/b*/g;return Fi.call(e,"a"),Fi.call(t,"a"),0!==e.lastIndex||0!==t.lastIndex}(),zi=_i.UNSUPPORTED_Y||_i.BROKEN_CARET,Bi=void 0!==/()??/.exec("")[1];(Li||Bi||zi)&&(Mi=function(e){var t,n,r,a,i=this,o=zi&&i.sticky,s=Ti.call(i),u=i.source,l=0,c=e;return o&&(-1===(s=s.replace("y","")).indexOf("g")&&(s+="g"),c=String(e).slice(i.lastIndex),i.lastIndex>0&&(!i.multiline||i.multiline&&"\n"!==e[i.lastIndex-1])&&(u="(?: "+u+")",c=" "+c,l++),n=new RegExp("^(?:"+u+")",s)),Bi&&(n=new RegExp("^"+u+"$(?!\\s)",s)),Li&&(t=i.lastIndex),r=Fi.call(o?n:i,c),o?r?(r.input=r.input.slice(l),r[0]=r[0].slice(l),r.index=i.lastIndex,i.lastIndex+=r[0].length):i.lastIndex=0:Li&&r&&(i.lastIndex=i.global?r.index+r[0].length:t),Bi&&r&&r.length>1&&Oi.call(r[0],n,(function(){for(a=1;a<arguments.length-2;a++)void 0===arguments[a]&&(r[a]=void 0)})),r});var Pi=Mi;De({target:"RegExp",proto:!0,forced:/./.exec!==Pi},{exec:Pi});var Wi=Ze("species"),Vi=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),Ui="$0"==="a".replace(/./,"$0"),Gi=Ze("replace"),ji=!!/./[Gi]&&""===/./[Gi]("a","$0"),Hi=!i((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),qi=function(e,t,n,r){var a=Ze(e),o=!i((function(){var t={};return t[a]=function(){return 7},7!=""[e](t)})),s=o&&!i((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[Wi]=function(){return n},n.flags="",n[a]=/./[a]),n.exec=function(){return t=!0,null},n[a](""),!t}));if(!o||!s||"replace"===e&&(!Vi||!Ui||ji)||"split"===e&&!Hi){var u=/./[a],l=n(a,""[e],(function(e,t,n,r,a){return t.exec===Pi?o&&!a?{done:!0,value:u.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:Ui,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:ji}),c=l[0],p=l[1];te(String.prototype,e,c),te(RegExp.prototype,a,2==t?function(e,t){return p.call(e,this,t)}:function(e){return p.call(e,this)})}r&&T(RegExp.prototype[a],"sham",!0)},Ki=gi.charAt,Xi=function(e,t,n){return t+(n?Ki(e,t).length:1)},Yi=function(e,t){var n=e.exec;if("function"==typeof n){var r=n.call(e,t);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==h(e))throw TypeError("RegExp#exec called on incompatible receiver");return Pi.call(e,t)};qi("match",1,(function(e,t,n){return[function(t){var n=m(this),r=null==t?void 0:t[e];return void 0!==r?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var a=R(e),i=String(this);if(!a.global)return Yi(a,i);var o=a.unicode;a.lastIndex=0;for(var s,u=[],l=0;null!==(s=Yi(a,i));){var c=String(s[0]);u[l]=c,""===c&&(a.lastIndex=Xi(i,le(a.lastIndex),o)),l++}return 0===l?null:u}]}));var Ji=Ze("species"),Zi=function(e,t){var n,r=R(e).constructor;return void 0===r||null==(n=R(r)[Ji])?t:at(n)},Qi=Ze("matchAll"),$i=ee.set,eo=ee.getterFor("RegExp String Iterator"),to=RegExp.prototype,no=to.exec,ro="".matchAll,ao=!!ro&&!i((function(){"a".matchAll(/./)})),io=ai((function(e,t,n,r){$i(this,{type:"RegExp String Iterator",regexp:e,string:t,global:n,unicode:r,done:!1})}),"RegExp String",(function(){var e=eo(this);if(e.done)return{value:void 0,done:!0};var t=e.regexp,n=e.string,r=function(e,t){var n,r=e.exec;if("function"==typeof r){if("object"!=typeof(n=r.call(e,t)))throw TypeError("Incorrect exec result");return n}return no.call(e,t)}(t,n);return null===r?{value:void 0,done:e.done=!0}:e.global?(""==String(r[0])&&(t.lastIndex=Xi(n,le(t.lastIndex),e.unicode)),{value:r,done:!1}):(e.done=!0,{value:r,done:!1})})),oo=function(e){var t,n,r,a,i,o,s=R(this),u=String(e);return t=Zi(s,RegExp),void 0===(n=s.flags)&&s instanceof RegExp&&!("flags"in to)&&(n=T
vendor: 4,700 bytes, line 17
17i.call(s)),r=void 0===n?"":String(n),a=new t(t===RegExp?s.source:s,r),i=!!~r.indexOf("g"),o=!!~r.indexOf("u"),a.lastIndex=le(s.lastIndex),new io(a,u,i,o)};De({target:"String",proto:!0,forced:ao},{matchAll:function(e){var t,n,r=m(this);if(null!=e){if(wi(e)&&!~String(m("flags"in to?e.flags:Ti.call(e))).indexOf("g"))throw TypeError("`.matchAll` does not allow non-global regexes");if(ao)return ro.apply(r,arguments);if(null!=(n=e[Qi]))return at(n).call(e,r)}else if(ao)return ro.apply(r,arguments);return t=String(r),new RegExp(e,"g")[Qi](t)}}),Qi in to||T(to,Qi,oo);var so="".repeat||function(e){var t=String(m(this)),n="",r=se(e);if(r<0||r==1/0)throw RangeError("Wrong number of repetitions");for(;r>0;(r>>>=1)&&(t+=t))1&r&&(n+=t);return n},uo=Math.ceil,lo=function(e){return function(t,n,r){var a,i,o=String(m(t)),s=o.length,u=void 0===r?" ":String(r),l=le(n);return l<=s||""==u?o:(a=l-s,(i=so.call(u,uo(a/u.length))).length>a&&(i=i.slice(0,a)),e?o+i:i+o)}},co={start:lo(!1),end:lo(!0)},po=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(gr),ho=co.end;De({target:"String",proto:!0,forced:po},{padEnd:function(e){return ho(this,e,arguments.length>1?arguments[1]:void 0)}});var fo=co.start;De({target:"String",proto:!0,forced:po},{padStart:function(e){return fo(this,e,arguments.length>1?arguments[1]:void 0)}}),De({target:"String",proto:!0},{repeat:so});var mo=Math.max,vo=Math.min,go=Math.floor,yo=/\$([$&'`]|\d\d?|<[^>]*>)/g,bo=/\$([$&'`]|\d\d?)/g;qi("replace",2,(function(e,t,n,r){var a=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,i=r.REPLACE_KEEPS_$0,o=a?"$":"$0";return[function(n,r){var a=m(this),i=null==n?void 0:n[e];return void 0!==i?i.call(n,a,r):t.call(String(a),n,r)},function(e,r){if(!a&&i||"string"==typeof r&&-1===r.indexOf(o)){var u=n(t,e,this,r);if(u.done)return u.value}var l=R(e),c=String(this),p="function"==typeof r;p||(r=String(r));var h=l.global;if(h){var f=l.unicode;l.lastIndex=0}for(var d=[];;){var m=Yi(l,c);if(null===m)break;if(d.push(m),!h)break;""===String(m[0])&&(l.lastIndex=Xi(c,le(l.lastIndex),f))}for(var v,g="",y=0,b=0;b<d.length;b++){m=d[b];for(var x=String(m[0]),w=mo(vo(se(m.index),c.length),0),k=[],S=1;S<m.length;S++)k.push(void 0===(v=m[S])?v:String(v));var N=m.groups;if(p){var I=[x].concat(k,w,c);void 0!==N&&I.push(N);var C=String(r.apply(void 0,I))}else C=s(x,c,w,k,N,r);w>=y&&(g+=c.slice(y,w)+C,y=w+x.length)}return g+c.slice(y)}];function s(e,n,r,a,i,o){var s=r+e.length,u=a.length,l=bo;return void 0!==i&&(i=Me(i),l=yo),t.call(o,l,(function(t,o){var l;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,r);case"'":return n.slice(s);case"<":l=i[o.slice(1,-1)];break;default:var c=+o;if(0===c)return t;if(c>u){var p=go(c/10);return 0===p?t:p<=u?void 0===a[p-1]?o.charAt(1):a[p-1]+o.charAt(1):t}l=a[c-1]}return void 0===l?"":l}))}})),qi("search",1,(function(e,t,n){return[function(t){var n=m(this),r=null==t?void 0:t[e];return void 0!==r?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var a=R(e),i=String(this),o=a.lastIndex;Tn(o,0)||(a.lastIndex=0);var s=Yi(a,i);return Tn(a.lastIndex,o)||(a.lastIndex=o),null===s?-1:s.index}]}));var xo=[].push,wo=Math.min,ko=!i((function(){return!RegExp(4294967295,"y")}));qi("split",2,(function(e,t,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var r=String(m(this)),a=void 0===n?4294967295:n>>>0;if(0===a)return[];if(void 0===e)return[r];if(!wi(e))return t.call(r,e,a);for(var i,o,s,u=[],l=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),c=0,p=new RegExp(e.source,l+"g");(i=Pi.call(p,r))&&!((o=p.lastIndex)>c&&(u.push(r.slice(c,i.index)),i.length>1&&i.index<r.length&&xo.apply(u,i.slice(1)),s=i[0].length,c=o,u.length>=a));)p.lastIndex===i.index&&p.lastIndex++;return c===r.length?!s&&p.test("")||u.push(""):u.push(r.slice(c)),u.length>a?u.slice(0,a):u}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var a=m(this),i=null==t?void 0:t[e];return void 0!==i?i.call(t,a,n):r.call(String(a),t,n)},function(e,a){var i=n(r,e,this,a,r!==t);if(i.done)return i.value;var o=R(e),s=String(this),u=Zi(o,RegExp),l=o.unicode,c=(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.unicode?"u":"")+(ko?"y":"g"),p=new u(ko?o:"^(?:"+o.source+")",c),h=void 0===a?4294967295:a>>>0;if(0===h)return[];if(0===s.length)return null===Yi(p,s)?[s]:[];for(var f=0,d=0,m=[];d<s.length;){p.lastIndex=ko?d:0;var v,g=Yi(p,ko?s:s.slice(d));if(null===g||(v=wo(le(p.lastIndex+(ko?0:d)),s.length))===f)d=Xi(s,d,l);
17else{if(m.push(s.slice(f,d)),m.length===h)return m;for(var y=1;y<=g.length-1;y++)if(m.push(g[y]),m.length===h)return m;d=f=v}}return m.push(s.slice(f)),m}]}),!ko);var So=C.f,No="".startsWith,Io=Math.min,Co=Ni("startsWith"),Ro=!Co&&!!function(){var e=So(String.prototype,"startsWith");return e&&!e.writable}();De({target:"String",proto:!0,forced:!Ro&&!Co},{startsWith:function(e){var t=String(m(this));ki(e);var n=le(Io(arguments.length>1?arguments[1]:void 0,t.length)),r=String(e);return No?No.call(t,r,n):t.slice(n,n+r.length)===r}});var Eo="\t\n\v\f\r                 \u2028\u2029\ufeff",Ao="["+Eo+"]",To=RegExp("^"+Ao+Ao+"*"),Do=RegExp(Ao+Ao+"*$"),_o=function(e){return function(t){var n=String(m(t));return 1&e&&(n=n.replace(To,"")),2&e&&(n=n.replace(Do,"")),n}},Fo={start:_o(1),end:_o(2),trim:_o(3)},Oo=function(e){return i((function(){return!!Eo[e]()||"​…᠎"!="​…᠎"[e]()||Eo[e].name!==e}))},Mo=Fo.trim;De({target:"String",proto:!0,forced:Oo("trim")},{trim:function(){return Mo(this)}});var Lo=Fo.start,zo=Oo("trimStart"),Bo=zo?function(){return Lo(this)}:"".trimStart;De({target:"String",proto:!0,forced:zo},{trimStart:Bo,trimLeft:Bo});var Po=Fo.end,Wo=Oo("trimEnd"),Vo=Wo?function(){return Po(this)}:"".trimEnd;De({target:"String",proto:!0,forced:Wo},{trimEnd:Vo,trimRight:Vo});var Uo=gi.charAt,Go=ee.set,jo=ee.getterFor("String Iterator");li(String,"String",(function(e){Go(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=jo(this),n=t.string,r=t.index;return r>=n.length?{value:void 0,done:!0}:(e=Uo(n,r),t.index+=e.length,{value:e,done:!1})}));var Ho=/"/g,qo=function(e,t,n,r){var a=String(m(e)),i="<"+t;return""!==n&&(i+=" "+n+'="'+String(r).replace(Ho,"&quot;")+'"'),i+">"+a+"</"+t+">"},Ko=function(e){return i((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))};De({target:"String",proto:!0,forced:Ko("anchor")},{anchor:function(e){return qo(this,"a","name",e)}}),De({target:"String",proto:!0,forced:Ko("big")},{big:function(){return qo(this,"big","","")}}),De({target:"String",proto:!0,forced:Ko("blink")},{blink:function(){return qo(this,"blink","","")}}),De({target:"String",proto:!0,forced:Ko("bold")},{bold:function(){return qo(this,"b","","")}}),De({target:"String",proto:!0,forced:Ko("fixed")},{fixed:function(){return qo(this,"tt","","")}}),De({target:"String",proto:!0,forced:Ko("fontcolor")},{fontcolor:function(e){return qo(this,"font","color",e)}}),De({target:"String",proto:!0,forced:Ko("fontsize")},{fontsize:function(e){return qo(this,"font","size",e)}}),De({target:"String",proto:!0,forced:Ko("italics")},{italics:function(){return qo(this,"i","","")}}),De({target:"String",proto:!0,forced:Ko("link")},{link:function(e){return qo(this,"a","href",e)}}),De({target:"String",proto:!0,forced:Ko("small")},{small:function(){return qo(this,"small","","")}}),De({target:"String",proto:!0,forced:Ko("strike")},{strike:function(){return qo(this,"strike","","")}}),De({target:"String",proto:!0,forced:Ko("sub")},{sub:function(){return qo(this,"sub","","")}}),De({target:"String",proto:!0,forced:Ko("sup")},{sup:function(){return qo(this,"sup","","")}});var Xo=function(e,t,n){var r,a;return Hn&&"function"==typeof(r=t.constructor)&&r!==n&&g(a=r.prototype)&&a!==n.prototype&&Hn(e,a),e},Yo=A.f,Jo=be.f,Zo=ee.set,Qo=Ze("match"),$o=a.RegExp,es=$o.prototype,ts=/a/g,ns=/a/g,rs=new $o(ts)!==ts,as=_i.UNSUPPORTED_Y;if(o&&Ae("RegExp",!rs||as||i((function(){return ns[Qo]=!1,$o(ts)!=ts||$o(ns)==ns||"/a/i"!=$o(ts,"i")})))){for(var is=function(e,t){var n,r=this instanceof is,a=wi(e),i=void 0===t;if(!r&&a&&e.constructor===is&&i)return e;rs?a&&!i&&(e=e.source):e instanceof is&&(i&&(t=Ti.call(e)),e=e.source),as&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var o=Xo(rs?new $o(e,t):$o(e,t),r?this:es,is);return as&&n&&Zo(o,{sticky:n}),o},os=function(e){e in is||Yo(is,e,{configurable:!0,get:function(){return $o[e]},set:function(t){$o[e]=t}})},ss=Jo($o),us=0;ss.length>us;)os(ss[us++]);es.constructor=is,is.prototype=es,te(a,"RegExp",is)}Ya("RegExp"),o&&("g"!=/./g.flags||_i.UNSUPPORTED_Y)&&A.f(RegExp.prototype,"flags",{configurable:!0,get:Ti});var ls=_i.UNSUPPORTED_Y,cs=A.f,ps=ee.get,hs=RegExp.prototype;o&&ls&&cs(RegExp.prototype,"sticky",{configurable:!0,get:function(){if(this!==hs){if(this instanceof RegExp)return!!ps(this).sticky;throw TypeError("Incompatible receiver, RegExp required")}}});var fs=function(){var e=!1,t=/[ac]/;return t.exec=function(){return e=!0,/./.exec.apply(this,arguments)},!0===t.test("abc")&&e}(),ds=/./.test;De({target:"RegExp",proto:!0,forced:!fs},{test:function(e){if("function"!=typeof this.exec)return ds.call(this,e);var t=this.exec(e);if(null!==t&&!g(t))throw new Error("RegExp exec method returned something other than an Object or null");return!!t}});var ms=RegExp.prototype,vs=ms.toString,gs=i((function(){return"/a/b"!=vs.call({
17source:"a",flags:"b"})})),ys="toString"!=vs.name;(gs||ys)&&te(RegExp.prototype,"toString",(function(){var e=R(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(void 0===n&&e instanceof RegExp&&!("flags"in ms)?Ti.call(e):n)}),{unsafe:!0});var bs=Fo.trim,xs=a.parseInt,ws=/^[+-]?0[Xx]/,ks=8!==xs(Eo+"08")||22!==xs(Eo+"0x16")?function(e,t){var n=bs(String(e));return xs(n,t>>>0||(ws.test(n)?16:10))}:xs;De({global:!0,forced:parseInt!=ks},{parseInt:ks});var Ss=Fo.trim,Ns=a.parseFloat,Is=1/Ns(Eo+"-0")!=-1/0?function(e){var t=Ss(String(e)),n=Ns(t);return 0===n&&"-"==t.charAt(0)?-0:n}:Ns;De({global:!0,forced:parseFloat!=Is},{parseFloat:Is});var Cs=be.f,Rs=C.f,Es=A.f,As=Fo.trim,Ts=a.Number,Ds=Ts.prototype,_s="Number"==h(Ge(Ds)),Fs=function(e){var t,n,r,a,i,o,s,u,l=y(e,!1);if("string"==typeof l&&l.length>2)if(43===(t=(l=As(l)).charCodeAt(0))||45===t){if(88===(n=l.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(l.charCodeAt(1)){case 66:case 98:r=2,a=49;break;case 79:case 111:r=8,a=55;break;default:return+l}for(o=(i=l.slice(2)).length,s=0;s<o;s++)if((u=i.charCodeAt(s))<48||u>a)return NaN;return parseInt(i,r)}return+l};if(Ae("Number",!Ts(" 0o1")||!Ts("0b1")||Ts("+0x1"))){for(var Os,Ms=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof Ms&&(_s?i((function(){Ds.valueOf.call(n)})):"Number"!=h(n))?Xo(new Ts(Fs(t)),n,Ms):Fs(t)},Ls=o?Cs(Ts):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),zs=0;Ls.length>zs;zs++)x(Ts,Os=Ls[zs])&&!x(Ms,Os)&&Es(Ms,Os,Rs(Ts,Os));Ms.prototype=Ds,Ds.constructor=Ms,te(a,"Number",Ms)}De({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)});var Bs=a.isFinite,Ps=Number.isFinite||function(e){return"number"==typeof e&&Bs(e)};De({target:"Number",stat:!0},{isFinite:Ps});var Ws=Math.floor,Vs=function(e){return!g(e)&&isFinite(e)&&Ws(e)===e};De({target:"Number",stat:!0},{isInteger:Vs}),De({target:"Number",stat:!0},{isNaN:function(e){return e!=e}});var Us=Math.abs;De({target:"Number",stat:!0},{isSafeInteger:function(e){return Vs(e)&&Us(e)<=9007199254740991}}),De({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991}),De({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991}),De({target:"Number",stat:!0,forced:Number.parseFloat!=Is},{parseFloat:Is}),De({target:"Number",stat:!0,forced:Number.parseInt!=ks},{parseInt:ks});var Gs=function(e){if("number"!=typeof e&&"Number"!=h(e))throw TypeError("Incorrect invocation");return+e},js=1..toFixed,Hs=Math.floor,qs=function e(t,n,r){return 0===n?r:n%2==1?e(t,n-1,r*t):e(t*t,n/2,r)},Ks=js&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!i((function(){js.call({})}));De({target:"Number",proto:!0,forced:Ks},{toFixed:function(e){var t,n,r,a,i=Gs(this),o=se(e),s=[0,0,0,0,0,0],u="",l="0",c=function(e,t){for(var n=-1,r=t;++n<6;)r+=e*s[n],s[n]=r%1e7,r=Hs(r/1e7)},p=function(e){for(var t=6,n=0;--t>=0;)n+=s[t],s[t]=Hs(n/e),n=n%e*1e7},h=function(){for(var e=6,t="";--e>=0;)if(""!==t||0===e||0!==s[e]){var n=String(s[e]);t=""===t?n:t+so.call("0",7-n.length)+n}return t};if(o<0||o>20)throw RangeError("Incorrect fraction digits");if(i!=i)return"NaN";if(i<=-1e21||i>=1e21)return String(i);if(i<0&&(u="-",i=-i),i>1e-21)if(n=(t=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t}(i*qs(2,69,1))-69)<0?i*qs(2,-t,1):i/qs(2,t,1),n*=4503599627370496,(t=52-t)>0){for(c(0,n),r=o;r>=7;)c(1e7,0),r-=7;for(c(qs(10,r,1),0),r=t-1;r>=23;)p(1<<23),r-=23;p(1<<r),c(1,1),p(2),l=h()}else c(0,n),c(1<<-t,0),l=h()+so.call("0",o);return l=o>0?u+((a=l.length)<=o?"0."+so.call("0",o-a)+l:l.slice(0,a-o)+"."+l.slice(a-o)):u+l}});var Xs=1..toPrecision,Ys=i((function(){return"1"!==Xs.call(1,void 0)}))||!i((function(){Xs.call({})}));De({target:"Number",proto:!0,forced:Ys},{toPrecision:function(e){return void 0===e?Xs.call(Gs(this)):Xs.call(Gs(this),e)}});var Js=Math.log,Zs=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:Js(1+e)},Qs=Math.acosh,$s=Math.log,eu=Math.sqrt,tu=Math.LN2,nu=!Qs||710!=Math.floor(Qs(Number.MAX_VALUE))||Qs(1/0)!=1/0;De({target:"Math",stat:!0,forced:nu},{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?$s(e)+tu:Zs(e-1+eu(e-1)*eu(e+1))}});var ru=Math.asinh,au=Math.log,iu=Math.sqrt;De({target:"Math",stat:!0,forced:!(ru&&1/ru(0)>0)},{asinh:function e(t){return isFinite(t=+t)&&0!=t?t<0?-e(-t):au(t+iu(t*t+1)):t}});var ou=Math.atanh,su=Math.log;De({target:"Math",stat:!0,forced:!(ou&&1/ou(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:su((1+e)/(1-e))/2}});var uu=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1},lu=Math.abs,cu=Math.pow;De({target:"Math",stat:!0},{cbrt:function(e){return uu(e=+e)*cu(lu(e),1/3)}});var pu=Math.floor,hu=Math.log,fu=Math.LOG2E;De({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-pu(hu(e+.5)*fu):32}});var du=Math.expm1,mu=Math.exp,vu=!du||du(10)>22025.465794806718||du(10)<22025.465794806718||-2e-17!=du(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:mu(e)-1}:du,gu=Math.cosh,yu=Math.abs,bu=Math.E;De({target:"Math",stat:!0,forced:!gu||gu(710)===1/0},{cosh:function(e){var t=vu(yu(e)-1)+1;return(t+1/(t*bu*bu))*(bu/2)}}),De({target:"Math",stat:!0,forced:vu!=Math.expm1},{expm1:vu});var xu=Math.abs,wu=Math.pow,ku=wu(2,-52),Su=wu(2,-23),Nu=wu(2,127)*(2-Su),Iu=wu(2,-126),Cu=Math.fround||function(e){var t,n,r=xu(e),a=uu(e);return r<Iu?a*(r/Iu/Su+1/ku-1/ku)*Iu*Su:(n=(t=(1+Su/ku)*r)-(t-r))>Nu||n!=n?a*(1/0):a*n};De({target:"Math",stat:!0},{fround:Cu});var Ru=Math.hypot,Eu=Math.abs,Au=Math.sqrt,Tu=!!Ru&&Ru(1/0,NaN)!==1/0;De({target:"Math",stat:!0,forced:Tu},{hypot:function(e,t){for(var n,r,a=0,i=0,o=arguments.length,s=0;i<o;)s<(n=Eu(arguments[i++]))?(a=a*(r=s/n)*r+1,s=n):a+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*Au(a)}});
17var Du=Math.imul,_u=i((function(){return-5!=Du(4294967295,5)||2!=Du.length}));De({target:"Math",stat:!0,forced:_u},{imul:function(e,t){var n=+e,r=+t,a=65535&n,i=65535&r;return 0|a*i+((65535&n>>>16)*i+a*(65535&r>>>16)<<16>>>0)}});var Fu=Math.log,Ou=Math.LOG10E;De({target:"Math",stat:!0},{log10:function(e){return Fu(e)*Ou}}),De({target:"Math",stat:!0},{log1p:Zs});var Mu=Math.log,Lu=Math.LN2;De({target:"Math",stat:!0},{log2:function(e){return Mu(e)/Lu}}),De({target:"Math",stat:!0},{sign:uu});var zu=Math.abs,Bu=Math.exp,Pu=Math.E,Wu=i((function(){return-2e-17!=Math.sinh(-2e-17)}));De({target:"Math",stat:!0,forced:Wu},{sinh:function(e){return zu(e=+e)<1?(vu(e)-vu(-e))/2:(Bu(e-1)-Bu(-e-1))*(Pu/2)}});var Vu=Math.exp;De({target:"Math",stat:!0},{tanh:function(e){var t=vu(e=+e),n=vu(-e);return t==1/0?1:n==1/0?-1:(t-n)/(Vu(e)+Vu(-e))}}),rt(Math,"Math",!0);var Uu=Math.ceil,Gu=Math.floor;De({target:"Math",stat:!0},{trunc:function(e){return(e>0?Gu:Uu)(e)}}),De({target:"Date",stat:!0},{now:function(){return(new Date).getTime()}});var ju=i((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}));De({target:"Date",proto:!0,forced:ju},{toJSON:function(e){var t=Me(this),n=y(t);return"number"!=typeof n||isFinite(n)?t.toISOString():null}});var Hu=co.start,qu=Math.abs,Ku=Date.prototype,Xu=Ku.getTime,Yu=Ku.toISOString,Ju=i((function(){return"0385-07-25T07:06:39.999Z"!=Yu.call(new Date(-50000000000001))}))||!i((function(){Yu.call(new Date(NaN))}))?function(){if(!isFinite(Xu.call(this)))throw RangeError("Invalid time value");var e=this.getUTCFullYear(),t=this.getUTCMilliseconds(),n=e<0?"-":e>9999?"+":"";return n+Hu(qu(e),n?6:4,0)+"-"+Hu(this.getUTCMonth()+1,2,0)+"-"+Hu(this.getUTCDate(),2,0)+"T"+Hu(this.getUTCHours(),2,0)+":"+Hu(this.getUTCMinutes(),2,0)+":"+Hu(this.getUTCSeconds(),2,0)+"."+Hu(t,3,0)+"Z"}:Yu;De({target:"Date",proto:!0,forced:Date.prototype.toISOString!==Ju},{toISOString:Ju});var Zu=Date.prototype,Qu=Zu.toString,$u=Zu.getTime;new Date(NaN)+""!="Invalid Date"&&te(Zu,"toString",(function(){var e=$u.call(this);return e==e?Qu.call(this):"Invalid Date"}));var el=Ze("toPrimitive"),tl=Date.prototype;el in tl||T(tl,el,(function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint");return y(R(this),"number"!==e)}));var nl=ae("JSON","stringify"),rl=/[\uD800-\uDFFF]/g,al=/^[\uD800-\uDBFF]$/,il=/^[\uDC00-\uDFFF]$/,ol=function(e,t,n){var r=n.charAt(t-1),a=n.charAt(t+1);return al.test(e)&&!il.test(a)||il.test(e)&&!al.test(r)?"\\u"+e.charCodeAt(0).toString(16):e},sl=i((function(){return'"\\udf06\\ud834"'!==nl("\udf06\ud834")||'"\\udead"'!==nl("\udead")}));nl&&De({target:"JSON",stat:!0,forced:sl},{stringify:function(e,t,n){var r=nl.apply(null,arguments);return"string"==typeof r?r.replace(rl,ol):r}}),rt(a.JSON,"JSON",!0);var ul,ll,cl,pl=a.Promise,hl=function(e,t,n){for(var r in t)te(e,r,t[r],n);return e},fl=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e},dl=/(iphone|ipod|ipad).*applewebkit/i.test(gr),ml=a.location,vl=a.setImmediate,gl=a.clearImmediate,yl=a.process,bl=a.MessageChannel,xl=a.Dispatch,wl=0,kl={},Sl=function(e){if(kl.hasOwnProperty(e)){var t=kl[e];delete kl[e],t()}},Nl=function(e){return function(){Sl(e)}},Il=function(e){Sl(e.data)},Cl=function(e){a.postMessage(e+"",ml.protocol+"//"+ml.host)};vl&&gl||(vl=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return kl[++wl]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},ul(wl),wl},gl=function(e){delete kl[e]},"process"==h(yl)?ul=function(e){yl.nextTick(Nl(e))}:xl&&xl.now?ul=function(e){xl.now(Nl(e))}:bl&&!dl?(cl=(ll=new bl).port2,ll.port1.onmessage=Il,ul=it(cl.postMessage,cl,1)):!a.addEventListener||"function"!=typeof postMessage||a.importScripts||i(Cl)||"file:"===ml.protocol?ul="onreadystatechange"in S("script")?function(e){Be.appendChild(S("script")).onreadystatechange=function(){Be.removeChild(this),Sl(e)}}:function(e){setTimeout(Nl(e),0)}:(ul=Cl,a.addEventListener("message",Il,!1)));var Rl,El,Al,Tl,Dl,_l,Fl,Ol,Ml={set:vl,clear:gl},Ll=C.f,zl=Ml.set,Bl=a.MutationObserver||a.WebKitMutationObserver,Pl=a.process,Wl=a.Promise,Vl="process"==h(Pl),Ul=Ll(a,"queueMicrotask"),Gl=Ul&&Ul.value;Gl||(Rl=function(){var e,t;for(Vl&&(e=Pl.domain)&&e.exit();El;){t=El.fn,El=El.next;try{t()}catch(e){throw El?Tl():Al=void 0,e}}Al=void 0,e&&e.enter()},Vl?Tl=function(){Pl.nextTick(Rl)}:Bl&&!dl?(Dl=!0,_l=document.createTextNode(""),new Bl(Rl).observe(_l,{characterData:!0}
vendor: 22,370 bytes, line 17
17),Tl=function(){_l.data=Dl=!Dl}):Wl&&Wl.resolve?(Fl=Wl.resolve(void 0),Ol=Fl.then,Tl=function(){Ol.call(Fl,Rl)}):Tl=function(){zl.call(a,Rl)});var jl,Hl,ql,Kl,Xl=Gl||function(e){var t={fn:e,next:void 0};Al&&(Al.next=t),El||(El=t,Tl()),Al=t},Yl=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=at(t),this.reject=at(n)},Jl={f:function(e){return new Yl(e)}},Zl=function(e,t){if(R(e),g(t)&&t.constructor===e)return t;var n=Jl.f(e);return(0,n.resolve)(t),n.promise},Ql=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}},$l=Ml.set,ec=Ze("species"),tc="Promise",nc=ee.get,rc=ee.set,ac=ee.getterFor(tc),ic=pl,oc=a.TypeError,sc=a.document,uc=a.process,lc=ae("fetch"),cc=Jl.f,pc=cc,hc="process"==h(uc),fc=!!(sc&&sc.createEvent&&a.dispatchEvent),dc=Ae(tc,(function(){if(!(z(ic)!==String(ic))){if(66===wr)return!0;if(!hc&&"function"!=typeof PromiseRejectionEvent)return!0}if(wr>=51&&/native code/.test(ic))return!1;var e=ic.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[ec]=t,!(e.then((function(){}))instanceof t)})),mc=dc||!hr((function(e){ic.all(e).catch((function(){}))})),vc=function(e){var t;return!(!g(e)||"function"!=typeof(t=e.then))&&t},gc=function(e,t,n){if(!t.notified){t.notified=!0;var r=t.reactions;Xl((function(){for(var a=t.value,i=1==t.state,o=0;r.length>o;){var s,u,l,c=r[o++],p=i?c.ok:c.fail,h=c.resolve,f=c.reject,d=c.domain;try{p?(i||(2===t.rejection&&wc(e,t),t.rejection=1),!0===p?s=a:(d&&d.enter(),s=p(a),d&&(d.exit(),l=!0)),s===c.promise?f(oc("Promise-chain cycle")):(u=vc(s))?u.call(s,h,f):h(s)):f(a)}catch(e){d&&!l&&d.exit(),f(e)}}t.reactions=[],t.notified=!1,n&&!t.rejection&&bc(e,t)}))}},yc=function(e,t,n){var r,i;fc?((r=sc.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),a.dispatchEvent(r)):r={promise:t,reason:n},(i=a["on"+e])?i(r):"unhandledrejection"===e&&function(e,t){var n=a.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}("Unhandled promise rejection",n)},bc=function(e,t){$l.call(a,(function(){var n,r=t.value;if(xc(t)&&(n=Ql((function(){hc?uc.emit("unhandledRejection",r,e):yc("unhandledrejection",e,r)})),t.rejection=hc||xc(t)?2:1,n.error))throw n.value}))},xc=function(e){return 1!==e.rejection&&!e.parent},wc=function(e,t){$l.call(a,(function(){hc?uc.emit("rejectionHandled",e):yc("rejectionhandled",e,t.value)}))},kc=function(e,t,n,r){return function(a){e(t,n,a,r)}},Sc=function(e,t,n,r){t.done||(t.done=!0,r&&(t=r),t.value=n,t.state=2,gc(e,t,!0))},Nc=function e(t,n,r,a){if(!n.done){n.done=!0,a&&(n=a);try{if(t===r)throw oc("Promise can't be resolved itself");var i=vc(r);i?Xl((function(){var a={done:!1};try{i.call(r,kc(e,t,a,n),kc(Sc,t,a,n))}catch(e){Sc(t,a,e,n)}})):(n.value=r,n.state=1,gc(t,n,!1))}catch(e){Sc(t,{done:!1},e,n)}}};dc&&(ic=function(e){fl(this,ic,tc),at(e),jl.call(this);var t=nc(this);try{e(kc(Nc,this,t),kc(Sc,this,t))}catch(e){Sc(this,t,e)}},(jl=function(e){rc(this,{type:tc,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=hl(ic.prototype,{then:function(e,t){var n=ac(this),r=cc(Zi(this,ic));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=hc?uc.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&gc(this,n,!1),r.promise},catch:function(e){return this.then(void 0,e)}}),Hl=function(){var e=new jl,t=nc(e);this.promise=e,this.resolve=kc(Nc,e,t),this.reject=kc(Sc,e,t)},Jl.f=cc=function(e){return e===ic||e===ql?new Hl(e):pc(e)},"function"==typeof pl&&(Kl=pl.prototype.then,te(pl.prototype,"then",(function(e,t){var n=this;return new ic((function(e,t){Kl.call(n,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof lc&&De({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return Zl(ic,lc.apply(a,arguments))}}))),De({global:!0,wrap:!0,forced:dc},{Promise:ic}),rt(ic,tc,!1),Ya(tc),ql=ae(tc),De({target:tc,stat:!0,forced:dc},{reject:function(e){var t=cc(this);return t.reject.call(void 0,e),t.promise}}),De({target:tc,stat:!0,forced:dc},{resolve:function(e){return Zl(this,e)}}),De({target:tc,stat:!0,forced:mc},{all:function(e){var t=this,n=cc(t),r=n.resolve,a=n.reject,i=Ql((function(){var n=at(t.resolve),i=[],o=0,s=1;bn(e,(function(e){var u=o++,l=!1;i.push(void 0),s++,n.call(t,e).then((function(e){l||(l=!0,i[u]=e,--s||r(i))}),a)})),--s||r(i)}));return i.error&&a(i.value),n.promise},race:function(e){var t=this,n=cc(t),r=n.reject,a=Ql((function(){var a=at(t.resolve);bn(e,(function(e){a.call(t,e).then(n.resolve,r)}))}));return a.error&&r(a.value),n.promise}}),De({target:"Promise",stat:!0},{allSettled:function(e){var t=this,n=Jl.f(t),r=n.resolve,a=n.reject,i=Ql((function(){var n=at(t.resolve),a=[],i=0,o=1;bn(e,(function(e){var s=i++,u=!1;a.push(void 0),o++,n.call(t,e).then((function(e){u||(u=!0,a[s]={status:"fulfilled",value:e},--o||r(a))}),(function(e){u||(u=!0,a[s]={status:"rejected",reason:e},--o||r(a))}))})),--o||r(a)}));return i.error&&a(i.value),n.promise}});var Ic=!!pl&&i((function(){pl.prototype.finally.call({then:function(){}},(function(){}))}));De({target:"Promise",proto:!0,real:!0,forced:Ic},{finally:function(e){var t=Zi(this,ae("Promise")),n="function"==typeof e;return this.then(n?function(n){return Zl(t,e()).then((function(){return n}))}:e,n?function(n){return Zl(t,e()).then((function(){throw n}))}:e)}}),"function"!=typeof pl||pl.prototype.finally||te(pl.prototype,"finally",ae("Promise").prototype.finally);var Cc=function(e,t,n){var r=-1!==e.indexOf("Map"),o=-1!==e.indexOf("Weak"),s=r?"set":"add",u=a[e],l=u&&u.prototype,c=u,p={},h=function(e){var t=l[e];te(l,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(o&&!g(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return o&&!g(e)?void 0:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(o&&!g(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(Ae(e,"function"!=typeof u||!(o||l.forEach&&!i((function(){(new u).entries().next()})))))c=n.getConstructor(t,e,r,s),nn.REQUIRED=!0;else if(Ae(e,!0)){var f=new c,d=f[s](o?{}:-0,1)!=f,m=i((function(){f.has(1)})),v=hr((function(e){new u(e)})),y=!o&&i((function(){for(var e=new u,t=5;t--;)e[s](t,t);return!e.has(-0)}));v||((c=t((function(t,n){fl(t,c,e);var a=Xo(new u,t,c);return null!=n&&bn(n,a[s],a,r),a}))).prototype=l,l.constructor=c),(m||y)&&(h("delete"),h("has"),r&&h("get")),(y||d)&&h(s),o&&l.clear&&delete l.clear}return p[e]=c,De({global:!0,forced:c!=u},p),rt(c,e),o||n.setStrong(c,e,r),c},Rc=A.f,Ec=nn.fastKey,Ac=ee.set,Tc=ee.getterFor,Dc={getConstructor:function(e,t,n,r){var a=e((function(e,i){fl(e,a,t),Ac(e,{type:t,index:Ge(null),first:void 0,last:void 0,size:0}),o||(e.size=0),null!=i&&bn(i,e[r],e,n)})),i=Tc(t),s=function(e,t,n){var r,a,s=i(e),l=u(e,t);return l?l.value=n:(s.last=l={index:a=Ec(t,!0),key:t,value:n,previous:r=s.last,next:void 0,removed:!1},s.first||(s.first=l),r&&(r.next=l),o?s.size++:e.size++,"F"!==a&&(s.index[a]=l)),e},u=function(e,t){var n,r=i(e),a=Ec(t);if("F"!==a)return r.index[a];for(n=r.first;n;n=n.next)if(n.key==t)return n};return hl(a.prototype,{clear:function(){for(var e=i(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,o?e.size=0:this.size=0},delete:function(e){var t=i(this),n=u(this,e);if(n){var r=n.next,a=n.previous;delete t.index[n.index],n.removed=!0,a&&(a.next=r),r&&(r.previous=a),t.first==n&&(t.first=r),t.last==n&&(t.last=a),o?t.size--:this.size--}return!!n},forEach:function(e){for(var t,n=i(this),r=it(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!u(this,e)}}),hl(a.prototype,n?{get:function(e){var t=u(this,e);return t&&t.value},set:function(e,t){return s(this,0===e?0:e,t)}}:{add:function(e){return s(this,e=0===e?0:e,e)}}),o&&Rc(a.prototype,"size",{get:function(){return i(this).size}}),a},setStrong:function(e,t,n){var r=t+" Iterator",a=Tc(t),i=Tc(r);li(e,t,(function(e,t){Ac(this,{type:r,target:e,state:a(e),kind:t,last:void 0})}),(function(){for(var e=i(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),Ya(t)}},_c=(Cc("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),Dc),Cc("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),Dc),nn.getWeakData),Fc=ee.set,Oc=ee.getterFor,Mc=ct.find,Lc=ct.findIndex,zc=0,Bc=function(e){return e.frozen||(e.frozen=new Pc)},Pc=function(){this.entries=[]},Wc=function(e,t){return Mc(e.entries,(function(e){return e[0]===t}))};Pc.prototype={get:function(e){var t=Wc(this,e);if(t)return t[1]},has:function(e){return!!Wc(this,e)},set:function(e,t){var n=Wc(this,e);n?n[1]=t:this.entries.push([e,t])},delete:function(e){var t=Lc(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}};var Vc={getConstructor:function(e,t,n,r){var a=e((function(e,i){fl(e,a,t),Fc(e,{type:t,id:zc++,frozen:void 0}),null!=i&&bn(i,e[r],e,n)})),i=Oc(t),o=function(e,t,n){var r=i(e),a=_c(R(t),!0);return!0===a?Bc(r).set(t,n):a[r.id]=n,e};return hl(a.prototype,{delete:function(e){var t=i(this);if(!g(e))return!1;var n=_c(e);return!0===n?Bc(t).delete(e):n&&x(n,t.id)&&delete n[t.id]},has:function(e){var t=i(this);if(!g(e))return!1;var n=_c(e);return!0===n?Bc(t).has(e):n&&x(n,t.id)}}),hl(a.prototype,n?{get:function(e){var t=i(this);if(g(e)){var n=_c(e);return!0===n?Bc(t).get(e):n?n[t.id]:void 0}},set:function(e,t){return o(this,e,t)}}:{add:function(e){return o(this,e,!0)}}),a}};n((function(e){var t,n=ee.enforce,r=!a.ActiveXObject&&"ActiveXObject"in a,i=Object.isExtensible,o=function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},s=e.exports=Cc("WeakMap",o,Vc);if(P&&r){t=Vc.getConstructor(o,"WeakMap",!0),nn.REQUIRED=!0;var u=s.prototype,l=u.delete,c=u.has,p=u.get,h=u.set;hl(u,{delete:function(e){if(g(e)&&!i(e)){var r=n(this);return r.frozen||(r.frozen=new t),l.call(this,e)||r.frozen.delete(e)}return l.call(this,e)},has:function(e){if(g(e)&&!i(e)){var r=n(this);return r.frozen||(r.frozen=new t),c.call(this,e)||r.frozen.has(e)}return c.call(this,e)},get:function(e){if(g(e)&&!i(e)){var r=n(this);return r.frozen||(r.frozen=new t),c.call(this,e)?p.call(this,e):r.frozen.get(e)}return p.call(this,e)},set:function(e,r){if(g(e)&&!i(e)){var a=n(this);a.frozen||(a.frozen=new t),c.call(this,e)?h.call(this,e,r):a.frozen.set(e,r)}else h.call(this,e,r);return this}})}}));Cc("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),Vc);var Uc="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,Gc=function(e){if(void 0===e)return 0;var t=se(e),n=le(t);if(t!==n)throw RangeError("Wrong length or index");return n},jc=Math.abs,Hc=Math.pow,qc=Math.floor,Kc=Math.log,Xc=Math.LN2,Yc=function(e,t,n){var r,a,i,o=new Array(n),s=8*n-t-1,u=(1<<s)-1,l=u>>1,c=23===t?Hc(2,-24)-Hc(2,-77):0,p=e<0||0===e&&1/e<0?1:0,h=0;for((e=jc(e))!=e||e===1/0?(a=e!=e?1:0,r=u):(r=qc(Kc(e)/Xc),e*(i=Hc(2,-r))<1&&(r--,i*=2),(e+=r+l>=1?c/i:c*Hc(2,1-l))*i>=2&&(r++,i/=2),r+l>=u?(a=0,r=u):r+l>=1?(a=(e*i-1)*Hc(2,t),r+=l):(a=e*Hc(2,l-1)*Hc(2,t),r=0));t>=8;o[h++]=255&a,a/=256,t-=8);for(r=r<<t|a,s+=t;s>0;o[h++]=255&r,r/=256,s-=8);return o[--h]|=128*p,o},Jc=function(e,t){var n,r=e.length,a=8*r-t-1,i=(1<<a)-1,o=i>>1,s=a-7,u=r-1,l=e[u--],c=127&l;for(l>>=7;s>0;c=256*c+e[u],u--,s-=8);for(n=c&(1<<-s)-1,c>>=-s,s+=t;s>0;n=256*n+e[u],u--,s-=8);if(0===c)c=1-o;else{if(c===i)return n?NaN:l?-1/0:1/0;n+=Hc(2,t),c-=o}return(l?-1:1)*n*Hc(2,c-t)},Zc=be.f,Qc=A.f,$c=ee.get,ep=ee.set,tp=a.ArrayBuffer,np=tp,rp=a.DataView,ap=rp&&rp.prototype,ip=Object.prototype,op=a.RangeError,sp=Yc,up=Jc,lp=function(e){return[255&e]},cp=function(e){return[255&e,e>>8&255]},pp=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},hp=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},fp=function(e){return sp(e,23,4)},dp=function(e){return sp(e,52,8)},mp=function(e,t){Qc(e.prototype,t,{get:function(){return $c(this)[t]}})},vp=function(e,t,n,r){var a=Gc(n),i=$c(e);if(a+t>i.byteLength)throw op("Wrong index");var o=$c(i.buffer).bytes,s=a+i.byteOffset,u=o.slice(s,s+t);return r?u:u.reverse()},gp=function(e,t,n,r,a,i){var o=Gc(n),s=$c(e);if(o+t>s.byteLength)throw op("Wrong index");for(var u=$c(s.buffer).bytes,l=o+s.byteOffset,c=r(+a),p=0;p<t;p++)u[l+p]=c[i?p:t-p-1]};if(Uc){if(!i((function(){tp(1)}))||!i((function(){new tp(-1)}))||i((function(){return new tp,new tp(1.5),new tp(NaN),"ArrayBuffer"!=tp.name}))){for(var yp,bp=(np=function(e){return fl(this,np),new tp(Gc(e))}).prototype=tp.prototype,xp=Zc(tp),wp=0;xp.length>wp;)(yp=xp[wp++])in np||T(np,yp,tp[yp]);bp.constructor=np}Hn&&En(ap)!==ip&&Hn(ap,ip);var kp=new rp(new np(2)),Sp=ap.setInt8;kp.setInt8(0,2147483648),kp.setInt8(1,2147483649),!kp.getInt8(0)&&kp.getInt8(1)||hl(ap,{setInt8:function(e,t){Sp.call(this,e,t<<24>>24)},setUint8:function(e,t){Sp.call(this,e,t<<24>>24)}},{unsafe:!0})}else np=function(e){fl(this,np,"ArrayBuffer");var t=Gc(e);ep(this,{bytes:Vr.call(new Array(t),0),byteLength:t}),o||(this.byteLength=t)},rp=function(e,t,n){fl(this,rp,"DataView"),fl(e,np,"DataView");var r=$c(e).byteLength,a=se(t);if(a<0||a>r)throw op("Wrong offset");if(a+(n=void 0===n?r-a:le(n))>r)throw op("Wrong length");ep(this,{buffer:e,byteLength:n,byteOffset:a}),o||(this.buffer=e,this.byteLength=n,this.byteOffset=a)},o&&(mp(np,"byteLength"),mp(rp,"buffer"),mp(rp,"byteLength"),mp(rp,"byteOffset")),hl(rp.prototype,{getInt8:function(e){return vp(this,1,e)[0]<<24>>24},getUint8:function(e){return vp(this,1,e)[0]},getInt16:function(e){var t=vp(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=vp(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return hp(vp(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return hp(vp(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return up(vp(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return up(vp(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){gp(this,1,e,lp,t)},setUint8:function(e,t){gp(this,1,e,lp,t)},setInt16:function(e,t){gp(this,2,e,cp,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){gp(this,2,e,cp,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){gp(this,4,e,pp,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){gp(this,4,e,pp,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){gp(this,4,e,fp,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){gp(this,8,e,dp,t,arguments.length>2?arguments[2]:void 0)}});rt(np,"ArrayBuffer"),rt(rp,"DataView");var Np={ArrayBuffer:np,DataView:rp},Ip=Np.ArrayBuffer,Cp=a.ArrayBuffer;De({global:!0,forced:Cp!==Ip},{ArrayBuffer:Ip}),Ya("ArrayBuffer");var Rp,Ep=A.f,Ap=a.Int8Array,Tp=Ap&&Ap.prototype,Dp=a.Uint8ClampedArray,_p=Dp&&Dp.prototype,Fp=Ap&&En(Ap),Op=Tp&&En(Tp),Mp=Object.prototype,Lp=Mp.isPrototypeOf,zp=Ze("toStringTag"),Bp=G("TYPED_ARRAY_TAG"),Pp=Uc&&!!Hn&&"Opera"!==mn(a.opera),Wp=!1,Vp={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Up=function(e){return g(e)&&x(Vp,mn(e))};for(Rp in Vp)a[Rp]||(Pp=!1);if((!Pp||"function"!=typeof Fp||Fp===Function.prototype)&&(Fp=function(){throw TypeError("Incorrect invocation")},Pp))for(Rp in Vp)a[Rp]&&Hn(a[Rp],Fp);if((!Pp||!Op||Op===Mp)&&(Op=Fp.prototype,Pp))for(Rp in Vp)a[Rp]&&Hn(a[Rp].prototype,Op);if(Pp&&En(_p)!==Op&&Hn(_p,Op),o&&!x(Op,zp))for(Rp in Wp=!0,Ep(Op,zp,{get:function(){return g(this)?this[Bp]:void 0}}),Vp)a[Rp]&&T(a[Rp],Bp,Rp);var Gp={NATIVE_ARRAY_BUFFER_VIEWS:Pp,TYPED_ARRAY_TAG:Wp&&Bp,aTypedArray:function(e){if(Up(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(Hn){if(Lp.call(Fp,e))return e}else for(var t in Vp)if(x(Vp,Rp)){var n=a[t];if(n&&(e===n||Lp.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(o){if(n)for(var r in Vp){var i=a[r];i&&x(i.prototype,e)&&delete i.prototype[e]}Op[e]&&!n||te(Op,e,n?t:Pp&&Tp[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var r,i;if(o){if(Hn){if(n)for(r in Vp)(i=a[r])&&x(i,e)&&delete i[e];if(Fp[e]&&!n)return;try{return te(Fp,e,n?t:Pp&&Ap[e]||t)}catch(e){}}for(r in Vp)!(i=a[r])||i[e]&&!n||te(i,e,t)}},isView:function(e){var t=mn(e);return"DataView"===t||x(Vp,t)},isTypedArray:Up,TypedArray:Fp,TypedArrayPrototype:Op};De({target:"ArrayBuffer",stat:!0,forced:!Gp.NATIVE_ARRAY_BUFFER_VIEWS},{isView:Gp.isView});var jp=Np.ArrayBuffer,Hp=Np.DataView,qp=jp.prototype.slice,Kp=i((function(){return!new jp(2).slice(1,void 0).byteLength}));De({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:Kp},{slice:function(e,t){if(void 0!==qp&&void 0===t)return qp.call(R(this),e);for(var n=R(this).byteLength,r=he(e,n),a=he(void 0===t?n:t,n),i=new(Zi(this,jp))(le(a-r)),o=new Hp(this),s=new Hp(i),u=0;r<a;)s.setUint8(u++,o.getUint8(r++));return i}}),De({global:!0,forced:!Uc},{DataView:Np.DataView});var Xp=Gp.NATIVE_ARRAY_BUFFER_VIEWS,Yp=a.ArrayBuffer,Jp=a.Int8Array,Zp=!Xp||!i((function(){Jp(1)}))||!i((function(){new Jp(-1)}))||!hr((function(e){new Jp,new Jp(null),new Jp(1.5),new Jp(e)}),!0)||i((function(){return 1!==new Jp(new Yp(2),1,void 0).length})),Qp=function(e,t){var n=function(e){var t=se(e);if(t<0)throw RangeError("The argument can't be less than 0");return t}(e);if(n%t)throw RangeError("Wrong offset");return n},$p=Gp.aTypedArrayConstructor,eh=function(e){var t,n,r,a,i,o,s=Me(e),u=arguments.length,l=u>1?arguments[1]:void 0,c=void 0!==l,p=gn(s);if(null!=p&&!cn(p))for(o=(i=p.call(s)).next,s=[];!(a=o.call(i)).done;)s.push(a.value);for(c&&u>2&&(l=it(l,arguments[2],2)),n=le(s.length),r=new($p(this))(n),t=0;n>t;t++)r[t]=c?l(s[t],t):s[t];return r},th=n((function(e){var t=be.f,n=ct.forEach,r=ee.get,i=ee.set,s=A.f,u=C.f,l=Math.round,p=a.RangeError,h=Np.ArrayBuffer,f=Np.DataView,d=Gp.NATIVE_ARRAY_BUFFER_VIEWS,m=Gp.TYPED_ARRAY_TAG,v=Gp.TypedArray,b=Gp.TypedArrayPrototype,w=Gp.aTypedArrayConstructor,k=Gp.isTypedArray,S=function(e,t){for(var n=0,r=t.length,a=new(w(e))(r);r>n;)a[n]=t[n++];return a},N=function(e,t){s(e,t,{get:function(){return r(this)[t]}})},I=function(e){var t;return e instanceof h||"ArrayBuffer"==(t=mn(e))||"SharedArrayBuffer"==t},R=function(e,t){return k(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},E=function(e,t){return R(e,t=y(t,!0))?c(2,e[t]):u(e,t)},D=function(e,t,n){return!(R(e,t=y(t,!0))&&g(n)&&x(n,"value"))||x(n,"get")||x(n,"set")||n.configurable||x(n,"writable")&&!n.writable||x(n,"enumerable")&&!n.enumerable?s(e,t,n):(e[t]=n.value,e)};o?(d||(C.f=E,A.f=D,N(b,"buffer"),N(b,"byteOffset"),N(b,"byteLength"),N(b,"length")),De({target:"Object",stat:!0,forced:!d},{getOwnPropertyDescriptor:E,defineProperty:D}),e.exports=function(e,o,u){var c=e.match(/\d+$/)[0]/8,y=e+(u?"Clamped":"")+"Array",x="get"+e,w="set"+e,N=a[y],C=N,R=C&&C.prototype,E={},A=function(e,t){s(e,t,{get:function(){return function(e,t){var n=r(e);return n.view[x](t*c+n.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,n){var a=r(e);u&&(n=(n=l(n))<0?0:n>255?255:255&n),a.view[w](t*c+a.byteOffset,n,!0)}(this,t,e)},enumerable:!0})};d?Zp&&(C=o((function(e,t,n,r){return fl(e,C,y),Xo(g(t)?I(t)?void 0!==r?new N(t,Qp(n,c),r):void 0!==n?new N(t,Qp(n,c)):new N(t):k(t)?S(C,t):eh.call(C,t):new N(Gc(t)),e,C)})),Hn&&Hn(C,v),n(t(N),(function(e){e in C||T(C,e,N[e])})),C.prototype=R):(C=o((function(e,t,n,r){fl(e,C,y);var a,o,s,u=0,l=0;if(g(t)){if(!I(t))return k(t)?S(C,t):eh.call(C,t);a=t,l=Qp(n,c);var d=t.byteLength;if(void 0===r){if(d%c)throw p("Wrong length");if((o=d-l)<0)throw p("Wrong length")}else if((o=le(r)*c)+l>d)throw p("Wrong length");s=o/c}else s=Gc(t),a=new h(o=s*c);for(i(e,{buffer:a,byteOffset:l,byteLength:o,length:s,view:new f(a)});u<s;)A(e,u++)})),Hn&&Hn(C,v),R=C.prototype=Ge(b)),R.constructor!==C&&T(R,"constructor",C),m&&T(R,m,y),E[y]=C,De({global:!0,forced:C!=N,sham:!d},E),"BYTES_PER_ELEMENT"in C||T(C,"BYTES_PER_ELEMENT",c),"BYTES_PER_ELEMENT"in R||T(R,"BYTES_PER_ELEMENT",c),Ya(y)}):e.exports=function(){}}));th("Int8",(function(e){return function(t,n,r){return e(this,t,n,r)}})),th("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}})),th("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}),!0),th("Int16",(function(e){return function(t,n,r){return e(this,t,n,r)}})),th("Uint16",(function(e){return function(t,n,r){return e(this,t,n,r)}})),th("Int32",(function(e){return function(t,n,r){return e(this,t,n,r)}})),th("Uint32",(function(e){return function(t,n,r){return e(this,t,n,r)}})),th("Float32",(function(e){return function(t,n,r){return e(this,t,n,r)}})),th("Float64",(function(e){return function(t,n,r){return e(this,t,n,r)}})),(0,Gp.exportTypedArrayStaticMethod)("from",eh,Zp);var nh=Gp.aTypedArrayConstructor;(0,Gp.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(nh(this))(t);t>e;)n[e]=arguments[e++];return n}),Zp);var rh=Gp.aTypedArray;(0,Gp.exportTypedArrayMethod)("copyWithin",(function(e,t){return Ar.call(rh(this),e,t,arguments.length>2?arguments[2]:void 0)}));var ah=ct.every,ih=Gp.aTypedArray;(0,Gp.exportTypedArrayMethod)("every",(function(e){return ah(ih(this),e,arguments.length>1?arguments[1]:void 0)}));var oh=Gp.aTypedArray;(0,Gp.exportTypedArrayMethod)("fill",(function(e){return Vr.apply(oh(this),arguments)}));var sh=ct.filter,uh=Gp.aTypedArray,lh=Gp.aTypedArrayConstructor;(0,Gp.exportTypedArrayMethod)("filter",(function(e){for(var t=sh(uh(this),e,arguments.length>1?arguments[1]:void 0),n=Zi(this,this.constructor),r=0,a=t.length,i=new(lh(n))(a);a>r;)i[r]=t[r++];return i}));var ch=ct.find,ph=Gp.aTypedArray;(0,Gp.exportTypedArrayMethod)("find",(function(e){return ch(ph(this),e,arguments.length>1?arguments[1]:void 0)}));var hh=ct.findIndex,fh=Gp.aTypedArray;(0,Gp.exportTypedArrayMethod)("findIndex",(function(e){return hh(fh(this),e,arguments.length>1?arguments[1]:void 0)}));var dh=ct.forEach,mh=Gp.aTypedArray;
17(0,Gp.exportTypedArrayMethod)("forEach",(function(e){dh(mh(this),e,arguments.length>1?arguments[1]:void 0)}));var vh=de.includes,gh=Gp.aTypedArray;(0,Gp.exportTypedArrayMethod)("includes",(function(e){return vh(gh(this),e,arguments.length>1?arguments[1]:void 0)}));var yh=de.indexOf,bh=Gp.aTypedArray;(0,Gp.exportTypedArrayMethod)("indexOf",(function(e){return yh(bh(this),e,arguments.length>1?arguments[1]:void 0)}));var xh=Ze("iterator"),wh=a.Uint8Array,kh=hi.values,Sh=hi.keys,Nh=hi.entries,Ih=Gp.aTypedArray,Ch=Gp.exportTypedArrayMethod,Rh=wh&&wh.prototype[xh],Eh=!!Rh&&("values"==Rh.name||null==Rh.name),Ah=function(){return kh.call(Ih(this))};Ch("entries",(function(){return Nh.call(Ih(this))})),Ch("keys",(function(){return Sh.call(Ih(this))})),Ch("values",Ah,!Eh),Ch(xh,Ah,!Eh);var Th=Gp.aTypedArray,Dh=[].join;(0,Gp.exportTypedArrayMethod)("join",(function(e){return Dh.apply(Th(this),arguments)}));var _h=Gp.aTypedArray;(0,Gp.exportTypedArrayMethod)("lastIndexOf",(function(e){return ga.apply(_h(this),arguments)}));var Fh=ct.map,Oh=Gp.aTypedArray,Mh=Gp.aTypedArrayConstructor;(0,Gp.exportTypedArrayMethod)("map",(function(e){return Fh(Oh(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(Mh(Zi(e,e.constructor)))(t)}))}));var Lh=ka.left,zh=Gp.aTypedArray;(0,Gp.exportTypedArrayMethod)("reduce",(function(e){return Lh(zh(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var Bh=ka.right,Ph=Gp.aTypedArray;(0,Gp.exportTypedArrayMethod)("reduceRight",(function(e){return Bh(Ph(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var Wh=Gp.aTypedArray,Vh=Gp.exportTypedArrayMethod,Uh=Math.floor;Vh("reverse",(function(){for(var e,t=Wh(this).length,n=Uh(t/2),r=0;r<n;)e=this[r],this[r++]=this[--t],this[t]=e;return this}));var Gh=Gp.aTypedArray;(0,Gp.exportTypedArrayMethod)("set",(function(e){Gh(this);var t=Qp(arguments.length>1?arguments[1]:void 0,1),n=this.length,r=Me(e),a=le(r.length),i=0;if(a+t>n)throw RangeError("Wrong length");for(;i<a;)this[t+i]=r[i++]}),i((function(){new Int8Array(1).set({})})));var jh=Gp.aTypedArray,Hh=Gp.aTypedArrayConstructor,qh=[].slice;(0,Gp.exportTypedArrayMethod)("slice",(function(e,t){for(var n=qh.call(jh(this),e,t),r=Zi(this,this.constructor),a=0,i=n.length,o=new(Hh(r))(i);i>a;)o[a]=n[a++];return o}),i((function(){new Int8Array(1).slice()})));var Kh=ct.some,Xh=Gp.aTypedArray;(0,Gp.exportTypedArrayMethod)("some",(function(e){return Kh(Xh(this),e,arguments.length>1?arguments[1]:void 0)}));var Yh=Gp.aTypedArray,Jh=[].sort;(0,Gp.exportTypedArrayMethod)("sort",(function(e){return Jh.call(Yh(this),e)}));var Zh=Gp.aTypedArray;(0,Gp.exportTypedArrayMethod)("subarray",(function(e,t){var n=Zh(this),r=n.length,a=he(e,r);return new(Zi(n,n.constructor))(n.buffer,n.byteOffset+a*n.BYTES_PER_ELEMENT,le((void 0===t?r:he(t,r))-a))}));var Qh=a.Int8Array,$h=Gp.aTypedArray,ef=Gp.exportTypedArrayMethod,tf=[].toLocaleString,nf=[].slice,rf=!!Qh&&i((function(){tf.call(new Qh(1))}));ef("toLocaleString",(function(){return tf.apply(rf?nf.call($h(this)):$h(this),arguments)}),i((function(){return[1,2].toLocaleString()!=new Qh([1,2]).toLocaleString()}))||!i((function(){Qh.prototype.toLocaleString.call([1,2])})));var af=Gp.exportTypedArrayMethod,of=a.Uint8Array,sf=of&&of.prototype||{},uf=[].toString,lf=[].join;i((function(){uf.call({})}))&&(uf=function(){return lf.call(this)});var cf=sf.toString!=uf;af("toString",uf,cf);var pf=ae("Reflect","apply"),hf=Function.apply,ff=!i((function(){pf((function(){}))}));De({target:"Reflect",stat:!0,forced:ff},{apply:function(e,t,n){return at(e),R(n),pf?pf(e,t,n):hf.call(e,t,n)}});var df=ae("Reflect","construct"),mf=i((function(){function e(){}return!(df((function(){}),[],e)instanceof e)})),vf=!i((function(){df((function(){}))})),gf=mf||vf;De({target:"Reflect",stat:!0,forced:gf,sham:gf},{construct:function(e,t){at(e),R(t);var n=arguments.length<3?e:at(arguments[2]);if(vf&&!mf)return df(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}
17var r=[null];return r.push.apply(r,t),new(er.apply(e,r))}var a=n.prototype,i=Ge(g(a)?a:Object.prototype),o=Function.apply.call(e,i,t);return g(o)?o:i}});var yf=i((function(){Reflect.defineProperty(A.f({},1,{value:1}),1,{value:2})}));De({target:"Reflect",stat:!0,forced:yf,sham:!o},{defineProperty:function(e,t,n){R(e);var r=y(t,!0);R(n);try{return A.f(e,r,n),!0}catch(e){return!1}}});var bf=C.f;De({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=bf(R(e),t);return!(n&&!n.configurable)&&delete e[t]}}),De({target:"Reflect",stat:!0},{get:function e(t,n){var r,a,i=arguments.length<3?t:arguments[2];return R(t)===i?t[n]:(r=C.f(t,n))?x(r,"value")?r.value:void 0===r.get?void 0:r.get.call(i):g(a=En(t))?e(a,n,i):void 0}}),De({target:"Reflect",stat:!0,sham:!o},{getOwnPropertyDescriptor:function(e,t){return C.f(R(e),t)}}),De({target:"Reflect",stat:!0,sham:!In},{getPrototypeOf:function(e){return En(R(e))}}),De({target:"Reflect",stat:!0},{has:function(e,t){return t in e}});var xf=Object.isExtensible;De({target:"Reflect",stat:!0},{isExtensible:function(e){return R(e),!xf||xf(e)}}),De({target:"Reflect",stat:!0},{ownKeys:we}),De({target:"Reflect",stat:!0,sham:!tn},{preventExtensions:function(e){R(e);try{var t=ae("Object","preventExtensions");return t&&t(e),!0}catch(e){return!1}}});var wf=i((function(){var e=A.f({},"a",{configurable:!0});return!1!==Reflect.set(En(e),"a",1,e)}));De({target:"Reflect",stat:!0,forced:wf},{set:function e(t,n,r){var a,i,o=arguments.length<4?t:arguments[3],s=C.f(R(t),n);if(!s){if(g(i=En(t)))return e(i,n,r,o);s=c(0)}if(x(s,"value")){if(!1===s.writable||!g(o))return!1;if(a=C.f(o,n)){if(a.get||a.set||!1===a.writable)return!1;a.value=r,A.f(o,n,a)}else A.f(o,n,c(0,r));return!0}return void 0!==s.set&&(s.set.call(o,r),!0)}}),Hn&&De({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){R(e),jn(t);try{return Hn(e,t),!0}catch(e){return!1}}});var kf={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0};for(var Sf in kf){var Nf=a[Sf],If=Nf&&Nf.prototype;if(If&&If.forEach!==ta)try{T(If,"forEach",ta)}catch(e){If.forEach=ta}}var Cf=Ze("iterator"),Rf=Ze("toStringTag"),Ef=hi.values;for(var Af in kf){var Tf=a[Af],Df=Tf&&Tf.prototype;if(Df){if(Df[Cf]!==Ef)try{T(Df,Cf,Ef)}catch(e){Df[Cf]=Ef}if(Df[Rf]||T(Df,Rf,Af),kf[Af])for(var _f in hi)if(Df[_f]!==hi[_f])try{T(Df,_f,hi[_f])}catch(e){Df[_f]=hi[_f]}}}var Ff=!a.setImmediate||!a.clearImmediate;De({global:!0,bind:!0,enumerable:!0,forced:Ff},{setImmediate:Ml.set,clearImmediate:Ml.clear});var Of=a.process,Mf="process"==h(Of);De({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){var t=Mf&&Of.domain;Xl(t?t.bind(e):e)}});var Lf=[].slice,zf=/MSIE .\./.test(gr),Bf=function(e){return function(t,n){var r=arguments.length>2,a=r?Lf.call(arguments,2):void 0;return e(r?function(){("function"==typeof t?t:Function(t)).apply(this,a)}:t,n)}};De({global:!0,bind:!0,forced:zf},{setTimeout:Bf(a.setTimeout),setInterval:Bf(a.setInterval)});var Pf=Ze("iterator"),Wf=!i((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n="";return e.pathname="c%20d",t.forEach((function(e,r){t.delete("b"),n+=r+e})),!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[Pf]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host})),Vf=/[^\0-\u007E]/,Uf=/[.\u3002\uFF0E\uFF61]/g,Gf="Overflow: input needs wider integers to process",jf=Math.floor,Hf=String.fromCharCode,qf=function(e){return e+22+75*(e<26)},Kf=function(e,t,n){var r=0;for(e=n?jf(e/700):e>>1,e+=jf(e/t);e>455;r+=36)e=jf(e/35);return jf(r+36*e/(e+38))},Xf=function(e){var t,n,r=[],a=(e=function(e){for(var t=[],n=0,r=e.length;n<r;){var a=e.charCodeAt(n++);if(a>=55296&&a<=56319&&n<r){var i=e.charCodeAt(n++);56320==(64512&i)?t.push(((1023&a)<<10)+(1023&i)+65536):(t.push(a),n--)}else t.push(a)}return t}(e)).length,i=128,o=0,s=72;for(t=0;t<e.length;t++)(n=e[t])<128&&r.push(Hf(n));var u=r.length,l=u;for(u&&r.push("-");l<a;){var c=2147483647;for(t=0;t<e.length;t++)(n=e[t])>=i&&n<c&&(c=n);var p=l+1;
vendor: 10,462 bytes, line 17
17if(c-i>jf((2147483647-o)/p))throw RangeError(Gf);for(o+=(c-i)*p,i=c,t=0;t<e.length;t++){if((n=e[t])<i&&++o>2147483647)throw RangeError(Gf);if(n==i){for(var h=o,f=36;;f+=36){var d=f<=s?1:f>=s+26?26:f-s;if(h<d)break;var m=h-d,v=36-d;r.push(Hf(qf(d+m%v))),h=jf(m/v)}r.push(Hf(qf(h))),s=Kf(o,p,l==u),o=0,++l}}++o,++i}return r.join("")},Yf=function(e){var t=gn(e);if("function"!=typeof t)throw TypeError(String(e)+" is not iterable");return R(t.call(e))},Jf=ae("fetch"),Zf=ae("Headers"),Qf=Ze("iterator"),$f=ee.set,ed=ee.getterFor("URLSearchParams"),td=ee.getterFor("URLSearchParamsIterator"),nd=/\+/g,rd=Array(4),ad=function(e){return rd[e-1]||(rd[e-1]=RegExp("((?:%[\\da-f]{2}){"+e+"})","gi"))},id=function(e){try{return decodeURIComponent(e)}catch(t){return e}},od=function(e){var t=e.replace(nd," "),n=4;try{return decodeURIComponent(t)}catch(e){for(;n;)t=t.replace(ad(n--),id);return t}},sd=/[!'()~]|%20/g,ud={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},ld=function(e){return ud[e]},cd=function(e){return encodeURIComponent(e).replace(sd,ld)},pd=function(e,t){if(t)for(var n,r,a=t.split("&"),i=0;i<a.length;)(n=a[i++]).length&&(r=n.split("="),e.push({key:od(r.shift()),value:od(r.join("="))}))},hd=function(e){this.entries.length=0,pd(this.entries,e)},fd=function(e,t){if(e<t)throw TypeError("Not enough arguments")},dd=ai((function(e,t){$f(this,{type:"URLSearchParamsIterator",iterator:Yf(ed(e).entries),kind:t})}),"Iterator",(function(){var e=td(this),t=e.kind,n=e.iterator.next(),r=n.value;return n.done||(n.value="keys"===t?r.key:"values"===t?r.value:[r.key,r.value]),n})),md=function(){fl(this,md,"URLSearchParams");var e,t,n,r,a,i,o,s,u,l=arguments.length>0?arguments[0]:void 0,c=this,p=[];if($f(c,{type:"URLSearchParams",entries:p,updateURL:function(){},updateSearchParams:hd}),void 0!==l)if(g(l))if("function"==typeof(e=gn(l)))for(n=(t=e.call(l)).next;!(r=n.call(t)).done;){if((o=(i=(a=Yf(R(r.value))).next).call(a)).done||(s=i.call(a)).done||!i.call(a).done)throw TypeError("Expected sequence with length 2");p.push({key:o.value+"",value:s.value+""})}else for(u in l)x(l,u)&&p.push({key:u,value:l[u]+""});else pd(p,"string"==typeof l?"?"===l.charAt(0)?l.slice(1):l:l+"")},vd=md.prototype;hl(vd,{append:function(e,t){fd(arguments.length,2);var n=ed(this);n.entries.push({key:e+"",value:t+""}),n.updateURL()},delete:function(e){fd(arguments.length,1);for(var t=ed(this),n=t.entries,r=e+"",a=0;a<n.length;)n[a].key===r?n.splice(a,1):a++;t.updateURL()},get:function(e){fd(arguments.length,1);for(var t=ed(this).entries,n=e+"",r=0;r<t.length;r++)if(t[r].key===n)return t[r].value;return null},getAll:function(e){fd(arguments.length,1);for(var t=ed(this).entries,n=e+"",r=[],a=0;a<t.length;a++)t[a].key===n&&r.push(t[a].value);return r},has:function(e){fd(arguments.length,1);for(var t=ed(this).entries,n=e+"",r=0;r<t.length;)if(t[r++].key===n)return!0;return!1},set:function(e,t){fd(arguments.length,1);for(var n,r=ed(this),a=r.entries,i=!1,o=e+"",s=t+"",u=0;u<a.length;u++)(n=a[u]).key===o&&(i?a.splice(u--,1):(i=!0,n.value=s));i||a.push({key:o,value:s}),r.updateURL()},sort:function(){var e,t,n,r=ed(this),a=r.entries,i=a.slice();for(a.length=0,n=0;n<i.length;n++){for(e=i[n],t=0;t<n;t++)if(a[t].key>e.key){a.splice(t,0,e);break}t===n&&a.push(e)}r.updateURL()},forEach:function(e){for(var t,n=ed(this).entries,r=it(e,arguments.length>1?arguments[1]:void 0,3),a=0;a<n.length;)r((t=n[a++]).value,t.key,this)},keys:function(){return new dd(this,"keys")},values:function(){return new dd(this,"values")},entries:function(){return new dd(this,"entries")}},{enumerable:!0}),te(vd,Qf,vd.entries),te(vd,"toString",(function(){for(var e,t=ed(this).entries,n=[],r=0;r<t.length;)e=t[r++],n.push(cd(e.key)+"="+cd(e.value));return n.join("&")}),{enumerable:!0}),rt(md,"URLSearchParams"),De({global:!0,forced:!Wf},{URLSearchParams:md}),Wf||"function"!=typeof Jf||"function"!=typeof Zf||De({global:!0,enumerable:!0,forced:!0},{fetch:function(e){var t,n,r,a=[e];return arguments.length>1&&(t=arguments[1],g(t)&&(n=t.body,"URLSearchParams"===mn(n)&&((r=t.headers?new Zf(t.headers):new Zf).has("content-type")||r.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),t=Ge(t,{body:c(0,String(n)),headers:c(0,r)}))),a.push(t)),Jf.apply(this,a)}});var gd,yd={URLSearchParams:md,getState:ed},bd=gi.codeAt,xd=a.URL,wd=yd.URLSearchParams,kd=yd.getState,Sd=ee.set,Nd=ee.getterFor("URL"),Id=Math.floor,Cd=Math.pow,Rd=/[A-Za-z]/,Ed=/[\d+-.A-Za-z]/,Ad=/\d/,Td=/^(0x|0X)/,Dd=/^[0-7]+$/,_d=/^\d+$/,Fd=/^[\dA-Fa-f]+$/,Od=/[\u0000\u0009\u000A\u000D #%/:?@[\\]]/,Md=/[\u0000\u0009\u000A\u000D #/:?@[\\]]/,Ld=/^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,zd=/[\u0009\u000A\u000D]/g,Bd=function(e,t){var n,r,a;if("["==t.charAt(0)){if("]"!=t.charAt(t.length-1))return"Invalid host";if(!(n=Wd(t.slice(1,-1))))return"Invalid host";e.host=n}else if(Xd(e)){if(t=function(e){var t,n,r=[],a=e.toLowerCase().replace(Uf,".").split(".");for(t=0;t<a.length;t++)n=a[t],r.push(Vf.test(n)?"xn--"+Xf(n):n);return r.join(".")}(t),Od.test(t))return"Invalid host";if(null===(n=Pd(t)))return"Invalid host";e.host=n}else{if(Md.test(t))return"Invalid host";for(n="",r=sr(t),a=0;a<r.length;a++)n+=qd(r[a],Ud);e.host=n}},Pd=function(e){var t,n,r,a,i,o,s,u=e.split(".");if(u.length&&""==u[u.length-1]&&u.pop(),(t=u.length)>4)return e;for(n=[],r=0;r<t;r++){if(""==(a=u[r]))return e;if(i=10,a.length>1&&"0"==a.charAt(0)&&(i=Td.test(a)?16:8,a=a.slice(8==i?1:2)),""===a)o=0;else{if(!(10==i?_d:8==i?Dd:Fd).test(a))return e;o=parseInt(a,i)}n.push(o)}for(r=0;r<t;r++)if(o=n[r],r==t-1){if(o>=Cd(256,5-t))return null}else if(o>255)return null;for(s=n.pop(),r=0;r<n.length;r++)s+=n[r]*Cd(256,3-r);return s},Wd=function(e){var t,n,r,a,i,o,s,u=[0,0,0,0,0,0,0,0],l=0,c=null,p=0,h=function(){return e.charAt(p)};if(":"==h()){if(":"!=e.charAt(1))return;p+=2,c=++l}for(;h();){if(8==l)return;if(":"!=h()){for(t=n=0;n<4&&Fd.test(h());)t=16*t+parseInt(h(),16),p++,n++;if("."==h()){if(0==n)return;if(p-=n,l>6)return;for(r=0;h();){if(a=null,r>0){if(!("."==h()&&r<4))return;p++}if(!Ad.test(h()))return;for(;Ad.test(h());){if(i=parseInt(h(),10),null===a)a=i;else{if(0==a)return;a=10*a+i}if(a>255)return;p++}u[l]=256*u[l]+a,2!=++r&&4!=r||l++}if(4!=r)return;break}if(":"==h()){if(p++,!h())return}else if(h())return;u[l++]=t}else{if(null!==c)return;p++,c=++l}}if(null!==c)for(o=l-c,l=7;0!=l&&o>0;)s=u[l],u[l--]=u[c+o-1],u[c+--o]=s;else if(8!=l)return;return u},Vd=function(e){var t,n,r,a;if("number"==typeof e){for(t=[],n=0;n<4;n++)t.unshift(e%256),e=Id(e/256);return t.join(".")}if("object"==typeof e){for(t="",r=function(e){for(var t=null,n=1,r=null,a=0,i=0;i<8;i++)0!==e[i]?(a>n&&(t=r,n=a),r=null,a=0):(null===r&&(r=i),++a);return a>n&&(t=r,n=a),t}(e),n=0;n<8;n++)a&&0===e[n]||(a&&(a=!1),r===n?(t+=n?":":"::",a=!0):(t+=e[n].toString(16),n<7&&(t+=":")));return"["+t+"]"}return e},Ud={},Gd=Jt({},Ud,{" ":1,'"':1,"<":1,">":1,"`":1}),jd=Jt({},Gd,{"#":1,"?":1,"{":1,"}":1}),Hd=Jt({},jd,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),qd=function(e,t){var n=bd(e,0);return n>32&&n<127&&!x(t,e)?e:encodeURIComponent(e)},Kd={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Xd=function(e){return x(Kd,e.scheme)},Yd=function(e){return""!=e.username||""!=e.password},Jd=function(e){return!e.host||e.cannotBeABaseURL||"file"==e.scheme},Zd=function(e,t){var n;return 2==e.length&&Rd.test(e.charAt(0))&&(":"==(n=e.charAt(1))||!t&&"|"==n)},Qd=function(e){var t;return e.length>1&&Zd(e.slice(0,2))&&(2==e.length||"/"===(t=e.charAt(2))||"\\"===t||"?"===t||"#"===t)},$d=function(e){var t=e.path,n=t.length;!n||"file"==e.scheme&&1==n&&Zd(t[0],!0)||t.pop()},em=function(e){return"."===e||"%2e"===e.toLowerCase()},tm={},nm={},rm={},am={},im={},om={},sm={},um={},lm={},cm={},pm={},hm={},fm={},dm={},mm={},vm={},gm={},ym={},bm={},xm={},wm={},km=function(e,t,n,r){var a,i,o,s,u,l=n||tm,c=0,p="",h=!1,f=!1,d=!1;for(n||(e.scheme="",e.username="",e.password="",e.host=null,e.port=null,e.path=[],e.query=null,e.fragment=null,e.cannotBeABaseURL=!1,t=t.replace(Ld,"")),t=t.replace(zd,""),a=sr(t);c<=a.length;){switch(i=a[c],l){case tm:if(!i||!Rd.test(i)){if(n)return"Invalid scheme";l=rm;continue}p+=i.toLowerCase(),l=nm;break;case nm:if(i&&(Ed.test(i)||"+"==i||"-"==i||"."==i))p+=i.toLowerCase();else{if(":"!=i){if(n)return"Invalid scheme";p="",l=rm,c=0;continue}if(n&&(Xd(e)!=x(Kd,p)||"file"==p&&(Yd(e)||null!==e.port)||"file"==e.scheme&&!e.host))return;if(e.scheme=p,n)return void(Xd(e)&&Kd[e.scheme]==e.port&&(e.port=null));p="","file"==e.scheme?l=dm:Xd(e)&&r&&r.scheme==e.scheme?l=am:Xd(e)?l=um:"/"==a[c+1]?(l=im,c++):(e.cannotBeABaseURL=!0,e.path.push(""),l=bm)}break;case rm:if(!r||r.cannotBeABaseURL&&"#"!=i)return"Invalid scheme";if(r.cannotBeABaseURL&&"#"==i){e.scheme=r.scheme,e.path=r.path.slice(),e.query=r.query,e.fragment="",e.cannotBeABaseURL=!0,l=wm;break}l="file"==r.scheme?dm:om;continue;case am:if("/"!=i||"/"!=a[c+1]){l=om;continue}l=lm,c++;break;case im:if("/"==i){l=cm;break}l=ym;continue;case om:if(e.scheme=r.scheme,i==gd)e.username=r.username,e.password=r.password,e.host=r.host,e.port=r.port,e.path=r.path.slice(),e.query=r.query;else if("/"==i||"\\"==i&&Xd(e))l=sm;else if("?"==i)e.username=r.username,e.password=r.password,e.host=r.host,e.port=r.port,e.path=r.path.slice(),e.query="",l=xm;else{if("#"!=i){e.username=r.username,e.password=r.password,e.host=r.host,e.port=r.port,e.path=r.path.slice(),e.path.pop(),l=ym;continue}e.username=r.username,e.password=r.password,e.host=r.host,e.port=r.port,e.path=r.path.slice(),e.query=r.query,e.fragment="",l=wm}break;case sm:if(!Xd(e)||"/"!=i&&"\\"!=i){if("/"!=i){e.username=r.username,e.password=r.password,e.host=r.host,e.port=r.port,l=ym;continue}l=cm}else l=lm;break;case um:if(l=lm,"/"!=i||"/"!=p.charAt(c+1))continue;c++;break;case lm:if("/"!=i&&"\\"!=i){l=cm;continue}break;case cm:if("@"==i){h&&(p="%40"+p),h=!0,o=sr(p);for(var m=0;m<o.length;m++){var v=o[m];if(":"!=v||d){var g=qd(v,Hd);d?e.password+=g:e.username+=g}else d=!0}p=""}else if(i==gd||"/"==i||"?"==i||"#"==i||"\\"==i&&Xd(e)){if(h&&""==p)return"Invalid authority";c-=sr(p).length+1,p="",l=pm}else p+=i;break;case pm:case hm:if(n&&"file"==e.scheme){l=vm;continue}if(":"!=i||f){if(i==gd||"/"==i||"?"==i||"#"==i||"\\"==i&&Xd(e)){if(Xd(e)&&""==p)return"Invalid host";if(n&&""==p&&(Yd(e)||null!==e.port))return;if(s=Bd(e,p))return s;if(p="",l=gm,n)return;continue}"["==i?f=!0:"]"==i&&(f=!1),p+=i}else{if(""==p)return"Invalid host";if(s=Bd(e,p))return s;if(p="",l=fm,n==hm)return}break;
vendor: 4,734 bytes, line 17
17case fm:if(!Ad.test(i)){if(i==gd||"/"==i||"?"==i||"#"==i||"\\"==i&&Xd(e)||n){if(""!=p){var y=parseInt(p,10);if(y>65535)return"Invalid port";e.port=Xd(e)&&y===Kd[e.scheme]?null:y,p=""}if(n)return;l=gm;continue}return"Invalid port"}p+=i;break;case dm:if(e.scheme="file","/"==i||"\\"==i)l=mm;else{if(!r||"file"!=r.scheme){l=ym;continue}if(i==gd)e.host=r.host,e.path=r.path.slice(),e.query=r.query;else if("?"==i)e.host=r.host,e.path=r.path.slice(),e.query="",l=xm;else{if("#"!=i){Qd(a.slice(c).join(""))||(e.host=r.host,e.path=r.path.slice(),$d(e)),l=ym;continue}e.host=r.host,e.path=r.path.slice(),e.query=r.query,e.fragment="",l=wm}}break;case mm:if("/"==i||"\\"==i){l=vm;break}r&&"file"==r.scheme&&!Qd(a.slice(c).join(""))&&(Zd(r.path[0],!0)?e.path.push(r.path[0]):e.host=r.host),l=ym;continue;case vm:if(i==gd||"/"==i||"\\"==i||"?"==i||"#"==i){if(!n&&Zd(p))l=ym;else if(""==p){if(e.host="",n)return;l=gm}else{if(s=Bd(e,p))return s;if("localhost"==e.host&&(e.host=""),n)return;p="",l=gm}continue}p+=i;break;case gm:if(Xd(e)){if(l=ym,"/"!=i&&"\\"!=i)continue}else if(n||"?"!=i)if(n||"#"!=i){if(i!=gd&&(l=ym,"/"!=i))continue}else e.fragment="",l=wm;else e.query="",l=xm;break;case ym:if(i==gd||"/"==i||"\\"==i&&Xd(e)||!n&&("?"==i||"#"==i)){if(".."===(u=(u=p).toLowerCase())||"%2e."===u||".%2e"===u||"%2e%2e"===u?($d(e),"/"==i||"\\"==i&&Xd(e)||e.path.push("")):em(p)?"/"==i||"\\"==i&&Xd(e)||e.path.push(""):("file"==e.scheme&&!e.path.length&&Zd(p)&&(e.host&&(e.host=""),p=p.charAt(0)+":"),e.path.push(p)),p="","file"==e.scheme&&(i==gd||"?"==i||"#"==i))for(;e.path.length>1&&""===e.path[0];)e.path.shift();"?"==i?(e.query="",l=xm):"#"==i&&(e.fragment="",l=wm)}else p+=qd(i,jd);break;case bm:"?"==i?(e.query="",l=xm):"#"==i?(e.fragment="",l=wm):i!=gd&&(e.path[0]+=qd(i,Ud));break;case xm:n||"#"!=i?i!=gd&&("'"==i&&Xd(e)?e.query+="%27":e.query+="#"==i?"%23":qd(i,Ud)):(e.fragment="",l=wm);break;case wm:i!=gd&&(e.fragment+=qd(i,Gd))}c++}},Sm=function(e){var t,n,r=fl(this,Sm,"URL"),a=arguments.length>1?arguments[1]:void 0,i=String(e),s=Sd(r,{type:"URL"});if(void 0!==a)if(a instanceof Sm)t=Nd(a);else if(n=km(t={},String(a)))throw TypeError(n);if(n=km(s,i,null,t))throw TypeError(n);var u=s.searchParams=new wd,l=kd(u);l.updateSearchParams(s.query),l.updateURL=function(){s.query=String(u)||null},o||(r.href=Im.call(r),r.origin=Cm.call(r),r.protocol=Rm.call(r),r.username=Em.call(r),r.password=Am.call(r),r.host=Tm.call(r),r.hostname=Dm.call(r),r.port=_m.call(r),r.pathname=Fm.call(r),r.search=Om.call(r),r.searchParams=Mm.call(r),r.hash=Lm.call(r))},Nm=Sm.prototype,Im=function(){var e=Nd(this),t=e.scheme,n=e.username,r=e.password,a=e.host,i=e.port,o=e.path,s=e.query,u=e.fragment,l=t+":";return null!==a?(l+="//",Yd(e)&&(l+=n+(r?":"+r:"")+"@"),l+=Vd(a),null!==i&&(l+=":"+i)):"file"==t&&(l+="//"),l+=e.cannotBeABaseURL?o[0]:o.length?"/"+o.join("/"):"",null!==s&&(l+="?"+s),null!==u&&(l+="#"+u),l},Cm=function(){var e=Nd(this),t=e.scheme,n=e.port;if("blob"==t)try{return new URL(t.path[0]).origin}catch(e){return"null"}return"file"!=t&&Xd(e)?t+"://"+Vd(e.host)+(null!==n?":"+n:""):"null"},Rm=function(){return Nd(this).scheme+":"},Em=function(){return Nd(this).username},Am=function(){return Nd(this).password},Tm=function(){var e=Nd(this),t=e.host,n=e.port;return null===t?"":null===n?Vd(t):Vd(t)+":"+n},Dm=function(){var e=Nd(this).host;return null===e?"":Vd(e)},_m=function(){var e=Nd(this).port;return null===e?"":String(e)},Fm=function(){var e=Nd(this),t=e.path;return e.cannotBeABaseURL?t[0]:t.length?"/"+t.join("/"):""},Om=function(){var e=Nd(this).query;return e?"?"+e:""},Mm=function(){return Nd(this).searchParams},Lm=function(){var e=Nd(this).fragment;return e?"#"+e:""},zm=function(e,t){return{get:e,set:t,configurable:!0,enumerable:!0}};if(o&&ze(Nm,{href:zm(Im,(function(e){var t=Nd(this),n=String(e),r=km(t,n);if(r)throw TypeError(r);kd(t.searchParams).updateSearchParams(t.query)})),origin:zm(Cm),protocol:zm(Rm,(function(e){var t=Nd(this);km(t,String(e)+":",tm)})),username:zm(Em,(function(e){var t=Nd(this),n=sr(String(e));if(!Jd(t)){t.username="";for(var r=0;r<n.length;r++)t.username+=qd(n[r],Hd)}})),password:zm(Am,(function(e){var t=Nd(this),n=sr(String(e));if(!Jd(t)){t.password="";for(var r=0;r<n.length;r++)t.password+=qd(n[r],Hd)}})),host:zm(Tm,(function(e){var t=Nd(this);t.cannotBeABaseURL||km(t,String(e),pm)})),hostname:zm(Dm,(function(e){var t=Nd(this);t.cannotBeABaseURL||km(t,String(e),hm)})),port:zm(_m,(function(e){var t=Nd(this);Jd(t)||(""==(e=String(e))?t.port=null:km(t,e,fm))})),pathname:zm(Fm,(function(e){var t=Nd(this);t.cannotBeABaseURL||(t.path=[],km(t,e+"",gm))})),search:zm(Om,(function(e){var t=Nd(this);""==(e=String(e))?t.query=null:("?"==e.charAt(0)&&(e=e.slice(1)),t.query="",km(t,e,xm)),
vendor: 4,370 bytes, line 17
17kd(t.searchParams).updateSearchParams(t.query)})),searchParams:zm(Mm),hash:zm(Lm,(function(e){var t=Nd(this);""!=(e=String(e))?("#"==e.charAt(0)&&(e=e.slice(1)),t.fragment="",km(t,e,wm)):t.fragment=null}))}),te(Nm,"toJSON",(function(){return Im.call(this)}),{enumerable:!0}),te(Nm,"toString",(function(){return Im.call(this)}),{enumerable:!0}),xd){var Bm=xd.createObjectURL,Pm=xd.revokeObjectURL;Bm&&te(Sm,"createObjectURL",(function(e){return Bm.apply(xd,arguments)})),Pm&&te(Sm,"revokeObjectURL",(function(e){return Pm.apply(xd,arguments)}))}rt(Sm,"URL"),De({global:!0,forced:!Wf,sham:!o},{URL:Sm}),De({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return URL.prototype.toString.call(this)}});n((function(e){var t=function(e){var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function s(e,t,n,r){var a=t&&t.prototype instanceof c?t:c,i=Object.create(a.prototype),o=new k(r||[]);return i._invoke=function(e,t,n){var r="suspendedStart";return function(a,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw i;return N()}for(n.method=a,n.arg=i;;){var o=n.delegate;if(o){var s=b(o,n);if(s){if(s===l)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=u(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===l)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}(e,n,o),i}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var l={};function c(){}function p(){}function h(){}var f={};f[a]=function(){return this};var d=Object.getPrototypeOf,m=d&&d(d(S([])));m&&m!==t&&n.call(m,a)&&(f=m);var v=h.prototype=c.prototype=Object.create(f);function g(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function y(e,t){var r;this._invoke=function(a,i){function o(){return new t((function(r,o){!function r(a,i,o,s){var l=u(e[a],e,i);if("throw"!==l.type){var c=l.arg,p=c.value;return p&&"object"==typeof p&&n.call(p,"__await")?t.resolve(p.__await).then((function(e){r("next",e,o,s)}),(function(e){r("throw",e,o,s)})):t.resolve(p).then((function(e){c.value=e,o(c)}),(function(e){return r("throw",e,o,s)}))}s(l.arg)}(a,i,r,o)}))}return r=r?r.then(o,o):o()}}function b(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,b(e,t),"throw"===t.method))return l;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var r=u(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,l;var a=r.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,l):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,l)}function x(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function w(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function S(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:N}}function N(){return{value:void 0,done:!0}}return p.prototype=v.constructor=h,h.constructor=p,h[o]=p.displayName="GeneratorFunction",e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,h):(e.__proto__=h,o in e||(e[o]="GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},g(y.prototype),y.prototype[i]=function(){return this},e.AsyncIterator=y,e.async=function(t,n,r,a,i){void 0===i&&(i=Prom
17ise);var o=new y(s(t,n,r,a),i);return e.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},g(v),v[o]="Generator",v[a]=function(){return this},v.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=S,k.prototype={constructor:k,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(w),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return o.type="throw",o.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],o=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(s&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,l):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),l},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),w(n),l}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;w(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:S(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),l}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}}));function Wm(e){this.wrapped=e}function Vm(e){var t,n;function r(t,n){try{var i=e[t](n),o=i.value,s=o instanceof Wm;Promise.resolve(s?o.wrapped:o).then((function(e){s?r("return"===t?"return":"next",e):a(i.done?"return":"normal",e)}),(function(e){r("throw",e)}))}catch(e){a("throw",e)}}function a(e,a){switch(e){case"return":t.resolve({value:a,done:!0});break;case"throw":t.reject(a);break;default:t.resolve({value:a,done:!1})}(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,a){return new Promise((function(i,o){var s={key:e,arg:a,resolve:i,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,a))}))},"function"!=typeof e.return&&(this.return=void 0)}function Um(e,t,n,r,a,i,o){try{var s=e[i](o),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,a)}function Gm(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var i=e.apply(t,n);function o(e){Um(i,r,a,o,s,"next",e)}function s(e){Um(i,r,a,o,s,"throw",e)}o(void 0)}))}}function jm(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Hm(e,t,n){return t&&jm(e.prototype,t),n&&jm(e,n),e}function qm(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function Km(e){return(Km=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Xm(e,t){return(Xm=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Ym(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function Jm(e,t,n){return(Jm=Ym()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&Xm(a,n.prototype),a}).apply(null,arguments)}function Zm(e){var t="function"==typeof Map?new Map:void 0;return(Zm=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return Jm(e,arguments,Km(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),Xm(r,e)})(e)}function Qm(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function $m(e,t){if(e){if("string"==typeof e)return ev(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ev(e,t):void 0}}function ev(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function tv(e){var t=0;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=$m(e)))return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(t=e[Symbol.iterator]()).next.bind(t)}"function"==typeof Symbol&&Symbol.asyncIterator&&(Vm.prototype[Symbol.asyncIterator]=function(){return this}),Vm.prototype.next=function(e){return this._invoke("next",e)},Vm.prototype.throw=function(e){return this._invoke("throw",e)},Vm.prototype.return=function(e){return this._invoke("return",e)};var nv=function(){function e(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}var t=e.prototype;return t.get=function(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)},t.set=function(e,t){this.dataIdsCount++,this.data.set(e,t)},t.has=function(e){return this.data.has(e)},t.delete=function(e){return this.dataIdsCount--,this.data.delete(e)},t.numDataIds=function(){return this.dataIdsCount},e}(),rv=function(){function e(){}var t=e.prototype;return t.time=function(e){return av("time")},t.read=function(e){return av("read")},t.readSync=function(e){return av("readSync")},t.numDataIds=function(){return av("numDataIds")}
17,t.disposeData=function(e){return av("disposeData")},t.write=function(e,t,n){return av("write")},t.move=function(e,t,n,r){return av("move")},t.memory=function(){return av("memory")},t.floatPrecision=function(){return av("floatPrecision")},t.epsilon=function(){return 32===this.floatPrecision()?1e-7:1e-4},t.batchMatMul=function(e,t,n,r){return av("batchMatMul")},t.fusedBatchMatMul=function(e){e.a,e.b,e.transposeA,e.transposeB,e.bias,e.activation,e.preluActivationWeights;return av("fusedBatchMatMul")},t.slice=function(e,t,n){return av("slice")},t.stridedSlice=function(e,t,n,r){return av("stridedSlice")},t.unstack=function(e,t){return av("unstack")},t.reverse=function(e,t){return av("reverse")},t.concat=function(e,t){return av("concat")},t.neg=function(e){return av("neg")},t.add=function(e,t){return av("add")},t.addN=function(e){return av("addN")},t.subtract=function(e,t){return av("subtract")},t.multiply=function(e,t){return av("multiply")},t.realDivide=function(e,t){return av("realDivide")},t.floorDiv=function(e,t){return av("floorDiv")},t.sum=function(e,t){return av("sum")},t.prod=function(e,t){return av("prod")},t.unsortedSegmentSum=function(e,t,n){return av("unsortedSegmentSum")},t.argMin=function(e,t){return av("argMin")},t.argMax=function(e,t){return av("argMax")},t.equal=function(e,t){return av("equal")},t.notEqual=function(e,t){return av("notEqual")},t.less=function(e,t){return av("less")},t.lessEqual=function(e,t){return av("lessEqual")},t.greater=function(e,t){return av("greater")},t.greaterEqual=function(e,t){return av("greaterEqual")},t.logicalNot=function(e){return av("logicalNot")},t.logicalAnd=function(e,t){return av("logicalAnd")},t.logicalOr=function(e,t){return av("logicalOr")},t.where=function(e){return av("where")},t.select=function(e,t,n){return av("select")},t.topk=function(e,t,n){return av("topk")},t.min=function(e,t){return av("min")},t.minimum=function(e,t){return av("minimum")},t.mod=function(e,t){return av("mod")},t.max=function(e,t){return av("max")},t.maximum=function(e,t){return av("maximum")},t.all=function(e,t){return av("all")},t.any=function(e,t){return av("any")},t.squaredDifference=function(e,t){return av("squaredDifference")},t.ceil=function(e){return av("ceil")},t.floor=function(e){return av("floor")},t.round=function(e){return av("round")},t.sign=function(e){return av("sign")},t.isNaN=function(e){return av("isNaN")},t.isInf=function(e){return av("isInf")},t.isFinite=function(e){return av("isFinite")},t.pow=function(e,t){return av("pow")},t.exp=function(e){return av("exp")},t.expm1=function(e){return av("expm1")},t.softmax=function(e,t){return av("softmax")},t.log=function(e){return av("log")},t.log1p=function(e){return av("log1p")},t.sqrt=function(e){return av("sqrt")},t.rsqrt=function(e){return av("rsqrt")},t.square=function(e){return av("square")},t.reciprocal=function(e){return av("reciprocal")},t.relu=function(e){return av("relu")},t.relu6=function(e){return av("relu6")},t.prelu=function(e,t){return av("prelu")},t.elu=function(e){return av("elu")},t.eluDer=function(e,t){return av("eluDer")},t.selu=function(e){return av("selu")},t.int=function(e){return av("int")},t.clip=function(e,t,n){return av("clip")},t.abs=function(e){return av("abs")},t.complexAbs=function(e){return av("complexAbs")},t.sigmoid=function(e){return av("sigmoid")},t.softplus=function(e){return av("softplus")},t.sin=function(e){return av("sin")},t.cos=function(e){return av("cos")},t.tan=function(e){return av("tan")},t.asin=function(e){return av("asin")},t.acos=function(e){return av("acos")},t.atan=function(e){return av("atan")},t.atan2=function(e,t){return av("atan2")},t.sinh=function(e){return av("sinh")},t.cosh=function(e){return av("cosh")},t.tanh=function(e){return av("tanh")},t.asinh=function(e){return av("asinh")},t.acosh=function(e){return av("acosh")},t.atanh=function(e){return av("atanh")},t.erf=function(e){return av("erf")},t.step=function(e,t){return av("step")},t.fusedConv2d=function(e){e.input,e.filter,e.convInfo,e.bias,e.activation,e.preluActivationWeights;return av("fusedConv2d")},t.conv2d=function(e,t,n){return av("conv2d")}
17,t.conv2dDerInput=function(e,t,n){return av("conv2dDerInput")},t.conv2dDerFilter=function(e,t,n){return av("conv2dDerFilter")},t.fusedDepthwiseConv2D=function(e){e.input,e.filter,e.convInfo,e.bias,e.activation,e.preluActivationWeights;return av("fusedDepthwiseConv2D")},t.depthwiseConv2D=function(e,t,n){return av("depthwiseConv2D")},t.depthwiseConv2DDerInput=function(e,t,n){return av("depthwiseConv2DDerInput")},t.depthwiseConv2DDerFilter=function(e,t,n){return av("depthwiseConv2DDerFilter")},t.conv3d=function(e,t,n){return av("conv3d")},t.conv3dDerInput=function(e,t,n){return av("conv3dDerInput")},t.conv3dDerFilter=function(e,t,n){return av("conv3dDerFilter")},t.maxPool=function(e,t){return av("maxPool")},t.maxPoolBackprop=function(e,t,n,r){return av("maxPoolBackprop")},t.avgPool=function(e,t){return av("avgPool")},t.avgPoolBackprop=function(e,t,n){return av("avgPoolBackprop")},t.avgPool3d=function(e,t){return av("avgPool3d")},t.avgPool3dBackprop=function(e,t,n){return av("avgPool3dBackprop")},t.maxPool3d=function(e,t){return av("maxPool3d")},t.maxPool3dBackprop=function(e,t,n,r){return av("maxPool3dBackprop")},t.reshape=function(e,t){return av("reshape")},t.cast=function(e,t){return av("cast")},t.tile=function(e,t){return av("tile")},t.pad=function(e,t,n){return av("pad")},t.transpose=function(e,t){return av("transpose")},t.gather=function(e,t,n){return av("gather")},t.gatherND=function(e,t){return av("gatherND")},t.scatterND=function(e,t,n){return av("scatterND")},t.batchToSpaceND=function(e,t,n){return av("batchToSpaceND")},t.spaceToBatchND=function(e,t,n){return av("spaceToBatchND")},t.resizeBilinear=function(e,t,n,r){return av("resizeBilinear")},t.resizeBilinearBackprop=function(e,t,n){return av("resizeBilinearBackprop")},t.resizeNearestNeighbor=function(e,t,n,r){return av("resizeNearestNeighbor")},t.resizeNearestNeighborBackprop=function(e,t,n){return av("resizeNearestNeighborBackprop")},t.batchNorm=function(e,t,n,r,a,i){return av("batchNorm")},t.localResponseNormalization4D=function(e,t,n,r,a){return av("localResponseNormalization4D")},t.LRNGrad=function(e,t,n,r,a,i,o){return av("LRNGrad")},t.multinomial=function(e,t,n,r){return av("multinomial")},t.oneHot=function(e,t,n,r){return av("oneHot")},t.cumsum=function(e,t,n,r){return av("cumsum")},t.nonMaxSuppression=function(e,t,n,r,a){return av("nonMaxSuppression")},t.fft=function(e){return av("fft")},t.ifft=function(e){return av("ifft")},t.complex=function(e,t){return av("complex")},t.real=function(e){return av("real")},t.imag=function(e){return av("imag")},t.cropAndResize=function(e,t,n,r,a,i){return av("cropAndResize")},t.depthToSpace=function(e,t,n){return av("depthToSpace")},t.split=function(e,t,n){return av("split")},t.sparseToDense=function(e,t,n,r){return av("sparseToDense")},t.diag=function(e){return av("diag")},t.fill=function(e,t,n){return av("fill")},t.onesLike=function(e){return av("onesLike")},t.zerosLike=function(e){return av("zerosLike")},t.linspace=function(e,t,n){return av("linspace")},t.dispose=function(){return av("dispose")},e}();function av(e){throw new Error("'"+e+"' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen")}var iv,ov=function(){function e(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.populateURLFlags()}var t=e.prototype;return t.setPlatform=function(e,t){null!=this.platform&&console.warn("Platform "+this.platformName+" has already been set. Overwriting the platform with "+t+"."),this.platformName=e,this.platform=t},t.registerFlag=function(e,t,n){if(this.flagRegistry[e]={evaluationFn:t,setHook:n},null!=this.urlFlags[e]){var r=this.urlFlags[e];console.warn("Setting feature override from URL "+e+": "+r+"."),this.set(e,r)}},t.getAsync=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t in this.flags)){e.next=2;break}return e.abrupt("return",this.flags[t]);case 2:return e.next=4,this.evaluateFlag(t);case 4:return this.flags[t]=e.sent,e.abrupt("return",this.flags[t]);case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.get=function(e){if(e in this.flags)return this.flags[e];var t=this.evaluateFlag(e);if(t instanceof Promise)throw new Error("Flag "+e+" cannot be synchronously evaluated. Please use getAsync() instead.");return this.flags[e]=t,this.flags[e]},t.getNumber=function(e){return this.get(e)},t.getBool=function(e){return this.get(e)},t.getFlags=function(){return this.flags},t.set=function(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)},t.evaluateFlag=function(e){if(null==this.flagRegistry[e])throw new Error("Cannot evaluate flag '"+e+"': no evaluation function found.");return this.flagRegistry[e].evaluationFn()},t.setFlags=function(e){this.flags=Object.assign({},e)},t.reset=function(){this.flags={},this.urlFlags={},this.populateURLFlags()},t.populateURLFlags=function(){var e=this;if(void 0!==this.global&&void 0!==this.global.location&&void 0!==this.global.location.search){var t,n,r=(t=this.global.location.search,n={},t.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),a=1;a<t;a++)r[a-1]=arguments[a];return sv(n,r[0],r[1]),r.join("=")})),n);if("tfjsflags"in r)r.tfjsflags.split(",").forEach((function(t){var n=t.split(":"),r=n[0],a=n[1];e.urlFlags[r]=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+".")}(r,a)}))}},Hm(e,[{key:"features",get:function(){return this.flags}}]),e}();function sv(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function uv(){return e.ENV}function lv(){if(null==iv){var 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}iv=e}return iv}
17function cv(e,t){var n,r=(null==(n=lv())._tfGlobals&&(n._tfGlobals=new Map),n._tfGlobals);if(r.has(e))return r.get(e);var a=t();return r.set(e,a),r.get(e)}e.ENV=null;var pv="Add",hv="Cos",fv="Div",dv="Sin",mv="Tan",vv=cv("kernelRegistry",(function(){return new Map})),gv=cv("gradRegistry",(function(){return new Map}));function yv(e,t){var n=Sv(e,t);return vv.get(n)}function bv(e){return gv.get(e)}function xv(e){for(var t=vv.entries(),n=[];;){var r=t.next(),a=r.done,i=r.value;if(a)break;var o=i[0],s=i[1];o.split("_")[0]===e&&n.push(s)}return n}function wv(e){var t=e.kernelName,n=e.backendName,r=Sv(t,n);vv.has(r)&&console.warn("The kernel '"+t+"' for backend '"+n+"' is already registered"),vv.set(r,e)}function kv(e){var t=e.kernelName;gv.has(t)&&uv().getBool("DEBUG")&&console.warn("Overriding the gradient for '"+t+"'"),gv.set(t,e)}function Sv(e,t){return t+"_"+e}function Nv(e){for(var t=e.length,n=0,r=0;t>0;)r=Math.random()*t|0,n=e[--t],e[t]=e[r],e[r]=n}function Iv(e,t,n){return Math.max(e,Math.min(t,n))}function Cv(e){return e%2==0?e:e+1}function Rv(e){for(var t=0,n=0;n<e.length;n++)t+=e[n];return t}function Ev(e,t){if(!e)throw new Error("string"==typeof t?t:t())}function Av(e,t,n){void 0===n&&(n=""),Ev(Fv(e,t),(function(){return n+" Shapes "+e+" and "+t+" must match"}))}function Tv(e){Ev(null!=e,(function(){return"The input to the tensor constructor must be a non-null value."}))}function Dv(e,t,n){if(void 0===t&&(t=[]),void 0===n&&(n=!1),null==t&&(t=[]),Array.isArray(e)||qv(e)&&!n)for(var r=0;r<e.length;++r)Dv(e[r],t,n);else t.push(e);return t}function _v(e){if(0===e.length)return 1;for(var t=e[0],n=1;n<e.length;n++)t*=e[n];return t}function Fv(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Ov(e){return e%1==0}function Mv(e){var t=Math.ceil(Math.sqrt(e));return[t,Math.ceil(e/t)]}function Lv(e,t){return t<=e.length?e:e+" ".repeat(t-e.length)}function zv(e,t,n){return void 0===t&&(t=function(e){return 0}),new Promise((function(r,a){var i=0;!function o(){if(e())r();else{i++;var s=t(i);null!=n&&i>=n?a():setTimeout(o,s)}}()}))}function Bv(e,t){for(var n=1,r=-1,a=0;a<e.length;++a)if(e[a]>=0)n*=e[a];else if(-1===e[a]){if(-1!==r)throw Error("Shapes can only have 1 implicit size. Found -1 at dim "+r+" and dim "+a);r=a}else if(e[a]<0)throw Error("Shapes can not be < 0. Found "+e[a]+" at dim "+a);if(-1===r){if(t>0&&t!==n)throw Error("Size("+t+") must match the product of shape "+e);return e}if(0===n)throw Error("Cannot infer the missing size in ["+e+"] when there are 0 elements");if(t%n!=0)throw Error("The implicit shape can't be a fractional number. Got "+t+" / "+n);var i=e.slice();return i[r]=t/n,i}function Pv(e,t){var n=t.length;return Ev((e=null==e?t.map((function(e,t){return t})):[].concat(e)).every((function(e){return e>=-n&&e<n})),(function(){return"All values in axis param must be in range [-"+n+", "+n+") but got axis "+e})),Ev(e.every((function(e){return Ov(e)})),(function(){return"All values in axis param must be integers but got axis "+e})),e.map((function(e){return e<0?n+e:e}))}function Wv(e,t){for(var n=[],r=[],a=null!=t&&Array.isArray(t)&&0===t.length,i=null==t||a?null:Pv(t,e).sort(),o=0,s=0;s<e.length;++s){if(null!=i){if(i[o]===s&&1!==e[s])throw new Error("Can't squeeze axis "+s+" since its dim '"+e[s]+"' is not 1");(null==i[o]||i[o]>s)&&1===e[s]&&(n.push(e[s]),r.push(s)),i[o]<=s&&o++}1!==e[s]&&(n.push(e[s]),r.push(s))}return{newShape:n,keptDims:r}}function Vv(e,t){var n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else{if("bool"!==e)throw new Error("Unknown data type "+e);n=new Uint8Array(t)}return n}function Uv(e,t){var n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else if("bool"===e)n=new Uint8Array(t);else{if("string"!==e)throw new Error("Unknown data type "+e);n=new Array(t)}return n}function Gv(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(isNaN(r)||!isFinite(r))throw Error("A tensor of type "+t+" being uploaded contains "+r+".")}}function jv(e){return"bool"===e||"complex64"===e||"float32"===e||"int32"===e||"string"===e}function Hv(e,t){return"complex64"!==t&&(("float32"!==t||"complex64"===e)&&(("int32"!==t||"float32"===e||"complex64"===e)&&("bool"!==t||"bool"!==e)))}function qv(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array}function Kv(e){if("float32"===e||"int32"===e)return 4;if("complex64"===e)return 8;if("bool"===e)return 1;throw new Error("Unknown dtype "+e)}function Xv(e){if(null==e)return 0;var t=0;return e.forEach((function(e){return t+=e.length})),t}function Yv(e){return"string"==typeof e||e instanceof String}function Jv(e){return"boolean"==typeof e}function Zv(e){return"number"==typeof e}function Qv(e){return Array.isArray(e)?Qv(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":Zv(e)?"float32":Yv(e)?"string":Jv(e)?"bool":"float32"}function $v(e){return!!(e&&e.constructor&&e.call&&e.apply)}function eg(e,t){for(var n=t;n<e;++n)if(e%n==0)return n;return e}function tg(e){var t=e.length;if(t<2)return[];var n=new Array(t-1);n[t-2]=e[t-1];for(var r=t-3;r>=0;--r)n[r]=n[r+1]*e[r+1];return n}function ng(e,t){return"string"===t?pg(e):rg([e],t)}function rg(e,t){if("string"===t)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Dv(e)),uv().getBool("DEBUG")&&Gv(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){for(var n=new Uint8Array(e.length),r=0;r<n.length;++r)0!==Math.round(e[r])&&(n[r]=1);return n}throw new Error("Unknown data type "+t)}function ag(e,t){if(0===e.length)return t[0];var n=e.reduce((function(e,t){return e*t}));if(0===n)return[];if(n!==t.length)throw new Error("["+e+"] does not match the input size "+t.length+".");return function e(t,n,r){var a=new Array;
17if(1===n.length)for(var i=n[0],o=0;o<i;o++)a[o]=r[t+o];else for(var s=n[0],u=n.slice(1),l=u.reduce((function(e,t){return e*t})),c=0;c<s;c++)a[c]=e(t+c*l,u,r);return a}(0,e,t)}function ig(e,t){for(var n=og(e,t),r=0;r<n.length;r++)n[r]=1;return n}function og(e,t){if(null==t||"float32"===t||"complex64"===t)return new Float32Array(e);if("int32"===t)return new Int32Array(e);if("bool"===t)return new Uint8Array(e);throw new Error("Unknown data type "+t)}function sg(e,t){var n=e.reduce((function(e,t){return e*t}),1);if(null==t||"float32"===t)return ag(e,new Float32Array(n));if("int32"===t)return ag(e,new Int32Array(n));if("bool"===t)return ag(e,new Uint8Array(n));throw new Error("Unknown data type "+t)}function ug(){return uv().platform.now()}function lg(e){e.forEach((function(t){Ev(Number.isInteger(t)&&t>=0,(function(){return"Tensor must have a shape comprised of positive integers but got shape ["+e+"]."}))}))}function cg(e,t){return uv().platform.fetch(e,t)}function pg(e,t){return void 0===t&&(t="utf-8"),t=t||"utf-8",uv().platform.encode(e,t)}function hg(e,t){return void 0===t&&(t="utf-8"),t=t||"utf-8",uv().platform.decode(e,t)}function fg(e,t,n){if(0===t)return 0;if(1===t)return e[0];for(var r=e[e.length-1],a=0;a<e.length-1;++a)r+=n[a]*e[a];return r}function dg(e,t,n){if(0===t)return[];if(1===t)return[e];for(var r=new Array(t),a=0;a<r.length-1;++a)r[a]=Math.floor(e/n[a]),e-=r[a]*n[a];return r[r.length-1]=e,r}var mg={__proto__:null,shuffle:Nv,clamp:Iv,nearestLargerEven:Cv,sum:Rv,randUniform:function(e,t){var n=Math.random();return t*n+(1-n)*e},distSquared:function(e,t){for(var n=0,r=0;r<e.length;r++){var a=Number(e[r])-Number(t[r]);n+=a*a}return n},assert:Ev,assertShapesMatch:Av,assertNonNull:Tv,flatten:Dv,sizeFromShape:_v,isScalarShape:function(e){return 0===e.length},arraysEqual:Fv,isInt:Ov,tanh:function(e){if(null!=Math.tanh)return Math.tanh(e);if(e===1/0)return 1;if(e===-1/0)return-1;var t=Math.exp(2*e);return(t-1)/(t+1)},sizeToSquarishShape:Mv,createShuffledIndices:function(e){for(var t=new Uint32Array(e),n=0;n<e;++n)t[n]=n;return Nv(t),t},rightPad:Lv,repeatedTry:zv,inferFromImplicitShape:Bv,parseAxisParam:Pv,squeezeShape:Wv,getTypedArrayFromDType:Vv,getArrayFromDType:Uv,checkConversionForErrors:Gv,isValidDtype:jv,hasEncodingLoss:Hv,isTypedArray:qv,bytesPerElement:Kv,bytesFromStringArray:Xv,isString:Yv,isBoolean:Jv,isNumber:Zv,inferDtype:Qv,isFunction:$v,nearestDivisor:eg,computeStrides:tg,createScalarValue:ng,toTypedArray:rg,toNestedArray:ag,makeOnesTypedArray:ig,makeZerosTypedArray:og,makeZerosNestedTypedArray:sg,now:ug,assertNonNegativeIntegerDimensions:lg,fetch:cg,encodeString:pg,decodeString:hg,locToIndex:fg,indexToLoc:dg},vg=function(){function e(e,t){this.backendTimer=e,this.logger=t,null==t&&(this.logger=new gg)}var t=e.prototype;return t.profileKernel=function(e,t,n){for(var r,a=this.backendTimer.time((function(){r=n()})),i=function(t){var n=r[t];n.data().then((function(t){!function(e,t,n){if("float32"!==t)return!1;for(var r=0;r<e.length;r++){var a=e[r];if(isNaN(a)||!isFinite(a))return console.warn("Found "+a+" in the result of '"+n+"'"),!0}}(t,n.dtype,e)}))},o=0;o<r.length;o++)i(o);return{kernelName:e,outputs:r,inputs:t,timeMs:a.then((function(e){return e.kernelMs})),extraInfo:a.then((function(e){return null!=e.getExtraProfileInfo?e.getExtraProfileInfo():""}))}},t.logKernelProfile=function(e){var t=this,n=e.kernelName,r=e.outputs,a=e.timeMs,i=e.inputs,o=e.extraInfo;r.forEach((function(e){Promise.all([e.data(),a,o]).then((function(r){t.logger.logKernelProfile(n,e,r[0],r[1],i,r[2])}))}))},e}();var gg=function(){function e(){}return e.prototype.logKernelProfile=function(e,t,n,r,a,i){var o="number"==typeof r?Lv(r+"ms",9):r.error,s=Lv(e,25),u=t.rank,l=t.size,c=Lv(t.shape.toString(),14),p="";for(var h in a){var f=a[h];if(null!=f){var d=f.shape||t.shape,m=d.length;p+=h+": "+m+"D "+(m>0?d:"")+" "}}console.log("%c"+s+"\t%c"+o+"\t%c"+u+"D "+c+"\t%c"+l+"\t%c"+p+"\t%c"+i,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")},e}();function yg(e,t,n,r){var a=tg(t),i=function(e,t,n,r){var a=_v(t),i=r[r.length-1],o=new Array(i).fill(0),s=t.length,u="complex64"===n?wg(e):e;if(s>1)for(var l=0;l<a/i;l++)for(var c=l*i,p=0;p<i;p++)o[p]=Math.max(o[p],bg(u[c+p],0,n).length);return o}(e,t,n,a),o=t.length,s=function e(t,n,r,a,i,o){void 0===o&&(o=!0);var s="complex64"===r?2:1,u=n[0],l=n.length;if(0===l){return"complex64"===r?[bg(wg(t)[0],0,r)]:"bool"===r?[xg(t[0])]:[t[0].toString()]}if(1===l){if(u>20){var c=3*s,p=Array.from(t.slice(0,c)),h=Array.from(t.slice((u-3)*s,u*s));return"complex64"===r&&(p=wg(p),h=wg(h)),["["+p.map((function(e,t){return bg(e,i[t],r)})).join(", ")+", ..., "+h.map((function(e,t){return bg(e,i[u-3+t],r)})).join(", ")+"]"]}return["["+("complex64"===r?wg(t):Array.from(t)).map((function(e,t){return bg(e,i[t],r)})).join(", ")+"]"]}var f=n.slice(1),d=a.slice(1),m=a[0]*s,v=[];
17if(u>20){for(var g=0;g<3;g++){var y=g*m,b=y+m;v.push.apply(v,e(t.slice(y,b),f,r,d,i,!1))}v.push("...");for(var x=u-3;x<u;x++){var w=x*m,k=w+m;v.push.apply(v,e(t.slice(w,k),f,r,d,i,x===u-1))}}else for(var S=0;S<u;S++){var N=S*m,I=N+m;v.push.apply(v,e(t.slice(N,I),f,r,d,i,S===u-1))}var C=2===l?",":"";v[0]="["+v[0]+C;for(var R=1;R<v.length-1;R++)v[R]=" "+v[R]+C;for(var E=",\n",A=2;A<l;A++)E+="\n";return v[v.length-1]=" "+v[v.length-1]+"]"+(o?"":E),v}(e,t,n,a,i),u=["Tensor"];return r&&(u.push("  dtype: "+n),u.push("  rank: "+o),u.push("  shape: ["+t+"]"),u.push("  values:")),u.push(s.map((function(e){return"    "+e})).join("\n")),u.join("\n")}function bg(e,t,n){return Lv(Array.isArray(e)?parseFloat(e[0].toFixed(7))+" + "+parseFloat(e[1].toFixed(7))+"j":Yv(e)?"'"+e+"'":"bool"===n?xg(e):parseFloat(e.toFixed(7)).toString(),t)}function xg(e){return 0===e?"false":"true"}function wg(e){for(var t=[],n=0;n<e.length;n+=2)t.push([e[n],e[n+1]]);return t}var kg=function(){function e(e,t,n){var r=this;if(this.dtype=t,this.shape=e.slice(),this.size=_v(e),null!=n){var a=n.length;Ev(a===this.size,(function(){return"Length of values '"+a+"' does not match the size inferred by the shape '"+r.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=n||Uv(t,this.size),this.strides=tg(e)}var t=e.prototype;return t.set=function(e){for(var t=this,n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];0===r.length&&(r=[0]),Ev(r.length===this.rank,(function(){return"The number of provided coordinates ("+r.length+") must match the rank ("+t.rank+")"}));var i=this.locToIndex(r);this.values[i]=e},t.get=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];0===t.length&&(t=[0]);for(var r=0,a=0,i=t;a<i.length;a++){var o=i[a];if(o<0||o>=this.shape[r]){var s="Requested out of range element at "+t+".   Buffer shape="+this.shape;throw new Error(s)}r++}for(var u=t[t.length-1],l=0;l<t.length-1;++l)u+=this.strides[l]*t[l];return this.values[u]},t.locToIndex=function(e){if(0===this.rank)return 0;if(1===this.rank)return e[0];for(var t=e[e.length-1],n=0;n<e.length-1;++n)t+=this.strides[n]*e[n];return t},t.indexToLoc=function(e){if(0===this.rank)return[];if(1===this.rank)return[e];for(var t=new Array(this.shape.length),n=0;n<t.length-1;++n)t[n]=Math.floor(e/this.strides[n]),e-=t[n]*this.strides[n];return t[t.length-1]=e,t},t.toTensor=function(){return Sg().makeTensor(this.values,this.shape,this.dtype)},Hm(e,[{key:"rank",get:function(){return this.shape.length}}]),e}(),Sg=null,Ng=null;var Ig=function(){function e(e,t,n,r){this.kept=!1,this.isDisposedInternal=!1,this.shape=e.slice(),this.dtype=t||"float32",this.size=_v(e),this.strides=tg(e),this.dataId=n,this.id=r,this.rankType=this.rank<5?this.rank.toString():"higher"}var t=e.prototype;return t.buffer=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.data();case 2:return t=e.sent,e.abrupt("return",Ng.buffer(this.shape,this.dtype,t));case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.bufferSync=function(){return Ng.buffer(this.shape,this.dtype,this.dataSync())},t.array=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.data();case 2:return t=e.sent,e.abrupt("return",ag(this.shape,t));case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.arraySync=function(){return ag(this.shape,this.dataSync())},t.data=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.throwIfDisposed(),t=Sg().read(this.dataId),"string"!==this.dtype){e.next=13;break}return e.next=5,t;case 5:return n=e.sent,e.prev=6,e.abrupt("return",n.map((function(e){return hg(e)})));case 10:throw e.prev=10,e.t0=e.catch(6),new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().");case 13:return e.abrupt("return",t);case 14:case"end":return e.stop()}}),e,this,[[6,10]])})));return function(){return e.apply(this,arguments)}}(),t.dataSync=function(){this.throwIfDisposed();var e=Sg().readSync(this.dataId);if("string"===this.dtype)try{return e.map((function(e){return hg(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},t.bytes=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.throwIfDisposed(),e.next=3,Sg().read(this.dataId);case 3:if(t=e.sent,"string"!==this.dtype){e.next=8;break}return e.abrupt("return",t);case 8:return e.abrupt("return",new Uint8Array(t.buffer));case 9:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.dispose=function(){this.isDisposed||(Sg().disposeTensor(this),this.isDisposedInternal=!0)},t.throwIfDisposed=function(){if(this.isDisposed)throw new Error("Tensor is disposed.")},t.print=function(e){return void 0===e&&(e=!1),Ng.print(this,e)},t.clone=function(){return this.throwIfDisposed(),Ng.clone(this)},t.toString=function(e){return void 0===e&&(e=!1),yg(this.dataSync(),this.shape,this.dtype,e)},t.cast=function(e){return this.throwIfDisposed(),Ng.cast(this,e)},t.variable=function(e,t,n){return void 0===e&&(e=!0),this.throwIfDisposed(),Sg().makeVariable(this,e,t,n)},Hm(e,[{key:"rank",get:function(){return this.shape.length}},{key:"isDisposed",get:function(){return this.isDisposedInternal}}]),e}();Object.defineProperty(Ig,Symbol.hasInstance,{value:function(e){return!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed}});var Cg,Rg,Eg,Ag,Tg,Dg=function(e){function t(t,n,r,a){var i;return(i=e.call(this,t.shape,t.dtype,t.dataId,a)||this).trainable=n,i.name=r,i}qm(t,e);var n=t.prototype;return n.assign=function(e){if(e.dtype!==this.dtype)throw new Error("dtype of the new value ("+e.dtype+") and previous value ("+this.dtype+") must match");if(!Fv(e.shape,this.shape))throw new Error("shape of the new value ("+e.shape+") and previous value ("+this.shape+") must match");Sg().disposeTensor(this),this.dataId=e.dataId,Sg().incRef(this,null)},n.dispose=function(){Sg().disposeVariable(this),this.isDisposedInternal=!0},t}(Ig);Object.defineProperty(Dg,Symbol.hasInstance,{value:function(e){return e instanceof Ig&&null!=e.assign&&e.assign instanceof Function}}),(Cg=e.Rank||(e.Rank={})).R0="R0",Cg.R1="R1",Cg.R2="R2",Cg.R3="R3",Cg.R4="R4",Cg.R5="R5",Cg.R6="R6",function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"}(Rg||(Rg={})),function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"}(Eg||(Eg={})),function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"}(Ag||(Ag={})),function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"}(Tg||(Tg={}));var _g={float32:Ag,int32:Rg,bool:Eg,complex64:Tg};function Fg(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw new Error("Can not upcast "+e+" with "+t)}return _g[e][t]}function Og(e){return Fg(e,"int32")}function Mg(e,t){if(e.dtype===t.dtype)return[e,t];var n=Fg(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function Lg(e,t){Ev(e.dtype===t.dtype,(function(){return"The dtypes of the first("+e.dtype+") and second("+t.dtype+") input must match"}))}function zg(e,t){return t.some((function(t){return t.id===e.id}))}function Bg(e){var t=[];return function e(t,n,r){if(null==t)return;if(t instanceof Ig)return void n.push(t);if(a=t,!Array.isArray(a)&&"object"!=typeof a)return;var a;var i=t;for(var o in i){var s=i[o];r.has(s)||(r.add(s),e(s,n,r))}}(e,t,new Set),t}var Pg={__proto__:null,makeTypesMatch:Mg,assertTypesMatch:Lg,isTensorInList:zg,getTensorsInContainer:Bg},Wg=function(){function e(){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}}return e.prototype.dispose=function(){for(var e in this.registeredVariables)this.registeredVariables[e].dispose()},e}(),Vg=function(){function e(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Wg}var t=e.prototype;return t.ready=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null==this.pendingBackendInit){e.next=2;break}return e.abrupt("return",this.pendingBackendInit.then((function(){})));case 2:if(null==this.backendInstance){e.next=4;break}return e.abrupt("return");case 4:t=this.getSortedBackends(),n=0;case 6:if(!(n<t.length)){e.next=18;break}return r=t[n],e.next=10,this.initializeBackend(r).success;case 10:if(!e.sent){e.next=15;break}return e.next=14,this.setBackend(r);case 14:return e.abrupt("return");case 15:n++,e.next=6;break;case 18:throw new Error("Could not initialize any backends, all backend initializations failed.");case 19:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.backendNames=function(){return Object.keys(this.registryFactory)},t.findBackend=function(e){if(!(e in this.registry)){if(!(e in this.registryFactory))return null;if(this.initializeBackend(e).asyncInit)return null}return this.registry[e]},t.findBackendFactory=function(e){return e in this.registryFactory?this.registryFactory[e].factory:null},t.registerBackend=function(e,t,n){return void 0===n&&(n=1),e in this.registryFactory?(console.warn(e+" backend was already registered. Reusing existing backend factory."),!1):(this.registryFactory[e]={factory:t,priority:n},!0)},t.setBackend=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!=this.registryFactory[t]){e.next=2;break}throw new Error("Backend name '"+t+"' not found in registry");case 2:if(this.backendName=t,null!=this.registry[t]){e.next=16;break}if(this.backendInstance=null,n=this.initializeBackend(t),r=n.success,!n.asyncInit){e.next=12;break}return e.next=9,r;case 9:e.t0=e.sent,e.next=13;break;case 12:e.t0=r;case 13:if(e.t0){e.next=16;break}return e.abrupt("return",!1);case 16:return this.backendInstance=this.registry[t],this.setupRegisteredKernels(),this.profiler=new vg(this.backendInstance),e.abrupt("return",!0);case 20:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.setupRegisteredKernels=function(){var e=this;xv(this.backendName).forEach((function(t){null!=t.setupFunc&&t.setupFunc(e.backendInstance)}))},t.disposeRegisteredKernels=function(e){var t=this;xv(e).forEach((function(n){null!=n.disposeFunc&&n.disposeFunc(t.registry[e])}))},t.initializeBackend=function(e){var t=this,n=this.registryFactory[e];if(null==n)throw new Error("Cannot initialize backend "+e+", no registration found.");try{var r=n.factory();if(!r||r instanceof rv||"function"!=typeof r.then)return this.registry[e]=r,{success:!0,asyncInit:!1};var a=++this.pendingBackendInitId,i=r.then((function(n){return!(a<t.pendingBackendInitId)&&(t.registry[e]=n,t.pendingBackendInit=null,!0)})).catch((function(n){return a<t.pendingBackendInitId||(t.pendingBackendInit=null,console.warn("Initialization of backend "+e+" failed"),console.warn(n.stack||n.message)),!1}));return this.pendingBackendInit=i,{success:i,asyncInit:!0}}catch(t){return console.warn("Initialization of backend "+e+" failed"),console.warn(t.stack||t.message),{success:!1,asyncInit:!1}}},t.removeBackend=function(e){if(!(e in this.registryFactory))throw new Error(e+" backend not found in registry");this.backendName===e&&null!=this.pendingBackendInit&&this.pendingBackendInitId++,e in this.registry&&(this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e]),delete this.registryFactory[e],this.backendName===e&&(this.pendingBackendInit=null,this.backendName=null,this.backendInstance=null)},t.getSortedBackends=function(){var e=this;if(0===Object.keys(this.registryFactory).length)throw new Error("No backend found in registry.");return Object.keys(this.registryFactory).sort((function(t,n){return e.registryFactory[n].priority-e.registryFactory[t].priority}))},t.initializeBackendsAndReturnBest=function(){for(var e=this.getSortedBackends(),t=0;t<e.length;t++){var n=e[t],r=this.initializeBackend(n),a=r.success,i=r.asyncInit;if(i||a)return{name:n,asyncInit:i}}throw new Error("Could not initialize any backends, all backend initializations failed.")},t.moveData=function(e,t){var n=this.state.tensorInfo.get(t),r=n.backend,a=this.readSync(t);r.disposeData(t),n.backend=e,e.move(t,a,n.shape,n.dtype),this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack[this.state.numDataMovesStack.length-1]++},t.tidy=function(e,t){var n,r=this,a=null;if(null==t){if("function"!=typeof e)throw new Error("Please provide a function to tidy()");t=e}else{if("string"!=typeof e&&!(e instanceof String))throw new Error("When calling with two arguments, the first argument to tidy() must be a string");if("function"!=typeof t)throw new Error("When calling with two arguments, the 2nd argument to tidy() must be a function");a=e}return this.scopedRun((function(){return r.startScope(a)}),(function(){return r.endScope(n)}),(function(){return(n=t())instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n}))},t.scopedRun=function(e,t,n){e();try{var r=n();return t(),r}catch(e){throw t(),e}},t.nextTensorId=function(){return e.nextTensorId++},t.nextVariableId=function(){return e.nextVariableId++},t.clone=function(e){var t=this.makeTensorFromDataId(e.dataId,e.shape,e.dtype),n={x:e};return this.addTapeNode(this.state.activeScope.name,n,[t],(function(e){return{x:function(){var t={x:e},n={dtype:"float32"};return Gg.runKernelFunc((function(t){return t.cast(e,"float32")}),t,null,"Cast",n)}}}),[],{}),t},t.runKernel=function(e,t,n,r,a){return this.runKernelFunc(null,t,null,e,n,r,a)},t.shouldCheckForMemLeaks=function(){return this.ENV.getBool("IS_TEST")},t.checkKernelForMemLeak=function(e,t,n){var r=this.backend.numDataIds(),a=0;
17n.forEach((function(e){a+="complex64"===e.dtype?3:1}));var i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=r-t-a-i;if(o>0)throw new Error("Backend '"+this.backendName+"' has an internal memory leak ("+o+" data ids) after running '"+e+"'")},t.runKernelFunc=function(e,t,n,r,a,i,o){var s,u=this,l=[],c=this.isTapeOn();null==r&&(r=null!=this.state.activeScope?this.state.activeScope.name:"");var p,h=this.state.numBytes,f=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);var d,m,v=yv(r,this.backendName);if(null!=v)p=function(){var e=u.backend.numDataIds();d=v.kernelFunc({inputs:t,attrs:a,backend:u.backend});var n=Array.isArray(d)?d:[d];u.shouldCheckForMemLeaks()&&u.checkKernelForMemLeak(r,e,n);var s=n.map((function(e){var t=e.dataId,n=e.shape,r=e.dtype;return u.makeTensorFromDataId(t,n,r)}));if(c){var p=u.getTensorsForGradient(r,t,s);if(null==p){null==o&&(o=[]);var h=s.filter((function(e,t){return o[t]}));p=(i||[]).slice().concat(h)}l=u.saveTensorsForBackwardMode(p)}return s};else{var g=function(e){c&&(l=e.map((function(e){return u.keep(u.clone(e))})))};p=function(){var t=u.backend.numDataIds();d=u.tidy((function(){return e(u.backend,g)}));var n=Array.isArray(d)?d:[d];return u.shouldCheckForMemLeaks()&&u.checkKernelForMemLeak(r,t,n),n}}return this.scopedRun((function(){return u.state.kernelDepth++}),(function(){return u.state.kernelDepth--}),(function(){u.ENV.getBool("DEBUG")||u.state.profiling?(m=u.profiler.profileKernel(r,t,(function(){return p()})),u.ENV.getBool("DEBUG")&&u.profiler.logKernelProfile(m),s=m.outputs):s=p()})),c&&this.addTapeNode(r,t,s,n,l,a),this.state.profiling&&this.state.activeProfile.kernels.push({name:r,bytesAdded:this.state.numBytes-h,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-f,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(t).map((function(e){return null!=t[e]?t[e].shape:null})),outputShapes:s.map((function(e){return e.shape})),kernelTimeMs:m.timeMs,extraInfo:m.extraInfo}),Array.isArray(d)?s:s[0]},t.saveTensorsForBackwardMode=function(e){var t=this;return e.map((function(e){return t.keep(t.clone(e))}))},t.getTensorsForGradient=function(e,t,n){var r=bv(e);if(null!=r){var a,i=r.inputsToSave||[],o=r.outputsToSave||[];r.saveAllInputs?(Ev(Array.isArray(t),(function(){return"saveAllInputs is true, expected inputs to be an array."})),a=Object.keys(t).map((function(e){return t[e]}))):a=i.map((function(e){return t[e]}));var s=n.filter((function(e,t){return o[t]}));return a.concat(s)}return null},t.makeTensor=function(e,t,n,r){if(null==e)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",r=r||this.backend;var a=e;"string"===n&&Yv(e[0])&&(a=e.map((function(e){return pg(e)})));var i=r.write(a,t,n),o=new Ig(t,n,i,this.nextTensorId());if(this.incRef(o,r),"string"===n){var s=this.state.tensorInfo.get(i),u=Xv(a);this.state.numBytes+=u-s.bytes,s.bytes=u}return o},t.makeTensorFromDataId=function(e,t,n,r){var a=new Ig(t,n=n||"float32",e,this.nextTensorId());return this.incRef(a,r),a},t.makeVariable=function(e,t,n,r){void 0===t&&(t=!0),n=n||this.nextVariableId().toString(),null!=r&&r!==e.dtype&&(e=e.cast(r));var a=new Dg(e,t,n,this.nextTensorId());if(null!=this.state.registeredVariables[a.name])throw new Error("Variable with name "+a.name+" was already registered");return this.state.registeredVariables[a.name]=a,this.incRef(a,this.backend),a},t.incRef=function(e,t){var n=this.state.tensorInfo.has(e.dataId)?this.state.tensorInfo.get(e.dataId).refCount:0;if(this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++,0===n){this.state.numDataBuffers++;var r=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(r=e.size*Kv(e.dtype)),this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:r,refCount:0}),this.state.numBytes+=r}this.state.tensorInfo.get(e.dataId).refCount++,e instanceof Dg||this.track(e)},t.disposeTensor=function(e){if(this.state.tensorInfo.has(e.dataId)){this.state.numTensors--,"string"===e.dtype&&this.state.numStringTensors--;var t=this.state.tensorInfo.get(e.dataId);t.refCount<=1?("complex64"!==e.dtype&&(this.state.numBytes-=t.bytes),this.state.numDataBuffers--,t.backend.disposeData(e.dataId),this.state.tensorInfo.delete(e.dataId)):this.state.tensorInfo.get(e.dataId).refCount--}},t.disposeVariables=function(){for(var e in this.state.registeredVariables){var t=this.state.registeredVariables[e];this.disposeVariable(t)}
17},t.disposeVariable=function(e){this.disposeTensor(e),null!=this.state.registeredVariables[e.name]&&delete this.state.registeredVariables[e.name]},t.memory=function(){var 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},t.profile=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r,a,i,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.state.profiling=!0,n=this.state.numBytes,r=this.state.numTensors,this.state.activeProfile.kernels=[],e.next=6,t();case 6:this.state.activeProfile.result=e.sent,this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max.apply(Math,this.state.activeProfile.kernels.map((function(e){return e.totalBytesSnapshot}))),this.state.activeProfile.newBytes=this.state.numBytes-n,this.state.activeProfile.newTensors=this.state.numTensors-r,a=tv(this.state.activeProfile.kernels);case 12:if((i=a()).done){e.next=22;break}return o=i.value,e.next=16,o.kernelTimeMs;case 16:return o.kernelTimeMs=e.sent,e.next=19,o.extraInfo;case 19:o.extraInfo=e.sent;case 20:e.next=12;break;case 22:return e.abrupt("return",this.state.activeProfile);case 23:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.isTapeOn=function(){return this.state.gradientDepth>
170&&0===this.state.kernelDepth},t.addTapeNode=function(e,t,n,r,a,i){var o=this,s={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:a},u=bv(e);null!=u&&(r=u.gradFunc),null!=r&&(s.gradient=function(e){return e=e.map((function(e,t){if(null==e){var r=n[t],a=og(r.size,r.dtype);return o.makeTensor(a,r.shape,r.dtype)}return e})),r(e.length>1?e:e[0],a,i)}),this.state.activeTape.push(s)},t.keep=function(e){return e.kept=!0,e},t.startTape=function(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++},t.endTape=function(){this.state.gradientDepth--},t.startScope=function(e){var t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t},t.endScope=function(e){for(var t=this,n=Bg(e),r=new Set(n.map((function(e){return e.id}))),a=0;a<this.state.activeScope.track.length;a++){var i=this.state.activeScope.track[a];i.kept||r.has(i.id)||i.dispose()}var o=this.state.scopeStack.pop();this.state.activeScope=0===this.state.scopeStack.length?null:this.state.scopeStack[this.state.scopeStack.length-1],n.forEach((function(e){e.kept||e.scopeId!==o.id||t.track(e)}))},t.gradients=function(e,t,n,r){var a=this;if(void 0===r&&(r=!1),Ev(t.length>0,(function(){return"gradients() received an empty list of xs."})),null!=n&&"float32"!==n.dtype)throw new Error("dy must have 'float32' dtype, but has '"+n.dtype+"'");var i=this.scopedRun((function(){return a.startTape()}),(function(){return a.endTape()}),(function(){return a.tidy("forward",e)}));Ev(i instanceof Ig,(function(){return"The result y returned by f() must be a tensor."}));var o=function(e,t,n){for(var r={},a={},i=0;i<t.length;i++)r[t[i].id]=!0;for(var o=0;o<e.length;o++){var s=e[o],u=s.inputs;for(var l in u){for(var c=u[l],p=!1,h=0;h<t.length;h++)if(r[c.id]){s.outputs.forEach((function(e){return r[e.id]=!0})),p=!0,a[s.id]=!0;break}if(p)break}}var f={};f[n.id]=!0;for(var d={},m=e.length-1;m>=0;m--)for(var v=e[m],g=v.inputs,y=0;y<v.outputs.length;y++)if(f[v.outputs[y].id]){for(var b in g)f[g[b].id]=!0,d[v.id]=!0;break}for(var x=[],w=0;w<e.length;w++){var k=e[w];if(a[k.id]&&d[k.id]){var S={};for(var N in k.inputs){var I=k.inputs[N];r[I.id]&&(S[N]=I)}var C=Object.assign({},k);C.inputs=S,C.outputs=k.outputs,x.push(C)}}return x}(this.state.activeTape,t,i);if(!r&&0===o.length&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",(function(){var e,r,s={};s[i.id]=null==n?(e=i.shape,r=ig(_v(e),"float32"),Gg.makeTensor(r,e,"float32")):n,function(e,t,n,r){for(var a=function(a){var i=t[a],o=[];if(i.outputs.forEach((function(t){var n=e[t.id];null!=n?o.push(n):o.push(null)})),null==i.gradient)throw new Error("Cannot compute gradient: gradient function not found for "+i.kernelName+".");var s=i.gradient(o),u=function(t){if(!(t in s))throw new Error("Cannot backprop through input "+t+". Available gradients found: "+Object.keys(s)+".");var a=n((function(){return s[t]()}));if("float32"!==a.dtype)throw new Error("Error in gradient for op "+i.kernelName+". The gradient of input "+t+" must have 'float32' dtype, but has '"+a.dtype+"'");var o=i.inputs[t];if(!Fv(a.shape,o.shape))throw new Error("Error in gradient for op "+i.kernelName+". The gradient of input '"+t+"' has shape '"+a.shape+"', which does not match the shape of the input '"+o.shape+"'");if(null==e[o.id])e[o.id]=a;else{var u=e[o.id];e[o.id]=r(u,a),u.dispose()}};for(var l in i.inputs)u(l)},i=t.length-1;i>=0;i--)a(i)}(s,o,(function(e){return a.tidy(e)}),jg);var u=t.map((function(e){return s[e.id]}));return 0===a.state.gradientDepth&&(a.state.activeTape.forEach((function(e){for(var t,n=tv(e.saved);!(t=n()).done;){t.value.dispose()}})),a.state.activeTape=null),{value:i,grads:u}}))},t.customGrad=function(e){var t=this;return Ev($v(e),(function(){return"The f passed in customGrad(f) must be a function."})),function(){for(var n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];var i;Ev(r.every((function(e){return e instanceof Ig})),(function(){return"The args passed in customGrad(f)(x1, x2,...) must all be tensors"}));var o={};return r.forEach((function(e,t){o[t]=e})),t.runKernelFunc((function(t,n){return Ev((i=e.apply(void 0,[].concat(r,[n]))).value instanceof Ig,(function(){return"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"})),Ev($v(i.gradFunc),(function(){return"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."})),i.value}),o,(function(e,t){var n=i.gradFunc(e,t),a=Array.isArray(n)?n:[n];Ev(a.length===r.length,(function(){return"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(...)."})),Ev(a.every((function(e){return e instanceof Ig})),(function(){return"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors."}));var o={};return a.forEach((function(e,t){o[t]=function(){return e}})),o}))}},t.readSync=function(e){return this.state.tensorInfo.get(e).backend.readSync(e)},t.read=function(e){return this.state.tensorInfo.get(e).backend.read(e)},t.time=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=ug(),e.next=3,this.backend.time(t);case 3:return(r=e.sent).wallMs=ug()-n,e.abrupt("return",r);case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.track=function(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e},t.reset=function(){for(var e in this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Wg,this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null},Hm(e,[{key:"backend",get:function(){if(null!=this.pendingBackendInit)throw new Error("Backend '"+this.backendName+"' has not yet been initialized. Make sure to await tf.ready() or await tf.setBackend() before calling other methods");if(null==this.backendInstance){var e=this.initializeBackendsAndReturnBest(),t=e.name;if(e.asyncInit)throw new Error("The highest priority backend '"+t+"' has not yet been initialized. Make sure to await tf.ready() or await tf.setBackend() before calling other methods");this.setBackend(t)}return this.backendInstance}},{key:"registeredVariables",get:function(){return this.state.registeredVariables}}]),e}();function Ug(){var t=lv();if(null==t._tfengine){var n=new ov(t);t._tfengine=new Vg(n)}return function(t){e.ENV=t}(t._tfengine.ENV),Sg=function(){return t._tfengine},t._tfengine}
17Vg.nextTensorId=0,Vg.nextVariableId=0;var Gg=Ug();function jg(e,t){var n={a:e,b:t};return Gg.runKernelFunc((function(n,r){var a=n.add(e,t);return r([e,t]),a}),n,null,pv)}function Hg(){if("undefined"!=typeof navigator&&null!=navigator){var e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function qg(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}var Kg={__proto__:null,isMobile:Hg,isBrowser:qg},Xg=uv();function Yg(e,t){var n=e;if(qv(e))return"string"===t?[]:[e.length];if(!Array.isArray(e))return[];for(var r=[];Array.isArray(n)||qv(n)&&"string"!==t;)r.push(n.length),n=n[0];return Array.isArray(e)&&uv().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&function e(t,n,r){if(r=r||[],!Array.isArray(t)&&!qv(t))return void Ev(0===n.length,(function(){return"Element arr["+r.join("][")+"] is a primitive, but should be an array/TypedArray of "+n[0]+" elements"}));Ev(n.length>0,(function(){return"Element arr["+r.join("][")+"] should be a primitive, but is an array of "+t.length+" elements"})),Ev(t.length===n[0],(function(){return"Element arr["+r.join("][")+"] should have "+n[0]+" elements, but has "+t.length+" elements"}));for(var a=n.slice(1),i=0;i<t.length;++i)e(t[i],a,r.concat(i))}(e,r,[]),r}function Jg(e,t,n,r){if(null!=e&&("numeric"!==e&&e!==t||"numeric"===e&&"string"===t))throw new Error("Argument '"+n+"' passed to '"+r+"' must be "+e+" tensor, but got "+t+" tensor")}function Zg(e,t,n,r){if(void 0===r&&(r="numeric"),e instanceof Ig)return Jg(r,e.dtype,t,n),e;var a=Qv(e);if("string"!==a&&["bool","int32","float32"].indexOf(r)>=0&&(a=r),Jg(r,a,t,n),null==e||!qv(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){var i=null==e?"null":e.constructor.name;throw new Error("Argument '"+t+"' passed to '"+n+"' must be a Tensor or TensorLike, but got '"+i+"'")}var o=Yg(e,a);qv(e)||Array.isArray(e)||(e=[e]);var s="string"!==a?rg(e,a):Dv(e,[],!0);return Gg.makeTensor(s,o,a)}function Qg(e,t,n,r){if(void 0===r&&(r="numeric"),!Array.isArray(e))throw new Error("Argument "+t+" passed to "+n+" must be a `Tensor[]` or `TensorLike[]`");return e.map((function(e,r){return Zg(e,t+"["+r+"]",n)}),r)}Xg.registerFlag("DEBUG",(function(){return!1}),(function(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.")}
17)),Xg.registerFlag("IS_BROWSER",(function(){return qg()})),Xg.registerFlag("IS_NODE",(function(){return"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node})),Xg.registerFlag("IS_CHROME",(function(){return"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)})),Xg.registerFlag("PROD",(function(){return!1})),Xg.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(function(){return Xg.getBool("DEBUG")})),Xg.registerFlag("DEPRECATION_WARNINGS_ENABLED",(function(){return!0})),Xg.registerFlag("IS_TEST",(function(){return!1}));function $g(e){var 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.");var n=t[0],r=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n+="__op";var a=function(){Gg.startScope(n);try{var e=r.apply(void 0,arguments);return e instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),Gg.endScope(e),e}catch(e){throw Gg.endScope(null),e}};return Object.defineProperty(a,"name",{value:n,configurable:!0}),a}var ey=$g({complex_:function(e,t){var n=Zg(e,"real","complex"),r=Zg(t,"imag","complex");Av(n.shape,r.shape,"real and imag shapes, "+n.shape+" and "+r.shape+", must match in call to tf.complex().");var a={real:n,imag:r};return Gg.runKernelFunc((function(e){return e.complex(n,r)}),a,null,"Complex")}});function ty(e,t,n,r){if(null==r&&(r=Qv(e)),"complex64"===r)throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!qv(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){lg(t);var a=_v(t),i=_v(n);Ev(a===i,(function(){return"Based on the provided shape, ["+t+"], the tensor should have "+a+" values but has "+i}));for(var o=0;o<n.length;++o){var s=n[o],u=o!==n.length-1||s!==_v(t.slice(o));Ev(n[o]===t[o]||!u,(function(){return"Error creating a new Tensor. Inferred shape ("+n+") does not match the provided shape ("+t+"). "}))}}return qv(e)||Array.isArray(e)||(e=[e]),t=t||n,e="string"!==r?rg(e,r):Dv(e,[],!0),Gg.makeTensor(e,t,r)}function ny(e,t,n){return ty(e,t,Yg(e,n),n)}var ry={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};function ay(e,t){return iy.apply(this,arguments)}function iy(){return(iy=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i,o,s,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(r=[],a=[],i=Array.isArray(t)?t.map((function(e){return e.name})):Object.keys(t),o=function(e){var o=i[e],s=Array.isArray(t)?t[e].tensor:t[o];if("float32"!==s.dtype&&"int32"!==s.dtype&&"bool"!==s.dtype&&"string"!==s.dtype&&"complex64"!==s.dtype)throw new Error("Unsupported dtype in weight '"+o+"': "+s.dtype);var u={name:o,shape:s.shape,dtype:s.dtype};if("string"===s.dtype){var l=new Promise(function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r,a,i,o,u,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,s.bytes();case 2:for(n=e.sent,r=n.reduce((function(e,t){return e+t.length}),0)+4*n.length,a=new Uint8Array(r),i=0,o=0;o<n.length;o++)u=n[o],l=new Uint8Array(new Uint32Array([u.length]).buffer),a.set(l,i),i+=4,a.set(u,i),i+=u.length;t(a);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());a.push(l)}else a.push(s.data());null!=n&&(u.group=n),r.push(u)},s=0;s<i.length;++s)o(s);return e.next=7,Promise.all(a);case 7:return u=e.sent,e.abrupt("return",{data:sy(u),specs:r});case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function oy(e,t){for(var n,r,a={},i=0,o=tv(t);!(r=o()).done;){var s=r.value,u=s.name,l=s.dtype,c=s.shape,p=_v(c),h=void 0;if("quantization"in s){var f=s.quantization;if("uint8"===f.dtype||"uint16"===f.dtype){if(!("min"in f)||!("scale"in f))throw new Error("Weight "+s.name+" with quantization "+f.dtype+" doesn't have corresponding metadata min and scale.")}else{if("float16"!==f.dtype)throw new Error("Weight "+s.name+" has unknown quantization dtype "+f.dtype+". Supported quantization dtypes are: 'uint8', 'uint16', and 'float16'.");if("float32"!==l)throw new Error("Weight "+s.name+" is quantized with "+f.dtype+" which only supports weights of type float32 not "+l+".")}var d=ry[f.dtype],m=e.slice(i,i+p*d),v="uint8"===f.dtype?new Uint8Array(m):new Uint16Array(m);if("float32"===l)if("uint8"===f.dtype||"uint16"===f.dtype){h=new Float32Array(v.length);for(var g=0;g<v.length;g++){var y=v[g];h[g]=y*f.scale+f.min}}else{if("float16"!==f.dtype)throw new Error("Unsupported quantization type "+f.dtype+" for weight type float32.");void 0===n&&(n=my()),h=n(v)}else{if("int32"!==l)throw new Error("Unsupported dtype in weight '"+u+"': "+l);if("uint8"!==f.dtype&&"uint16"!==f.dtype)throw new Error("Unsupported quantization type "+f.dtype+" for weight type int32.");h=new Int32Array(v.length);for(var b=0;b<v.length;b++){var x=v[b];h[b]=Math.round(x*f.scale+f.min)}}i+=p*d}else if("string"===l){var w=_v(s.shape);h=[];for(var k=0;k<w;k++){var S=new Uint32Array(e.slice(i,i+4))[0];i+=4;var N=new Uint8Array(e.slice(i,i+S));h.push(N),i+=S}}else{var I=ry[l],C=e.slice(i,i+p*I);if("float32"===l)h=new Float32Array(C);else if("int32"===l)h=new Int32Array(C);else if("bool"===l)h=new Uint8Array(C);else{if("complex64"!==l)throw new Error("Unsupported dtype in weight '"+u+"': "+l);h=new Float32Array(C);for(var R=new Float32Array(h.length/2),E=new Float32Array(h.length/2),A=0;A<R.length;
17A++)R[A]=h[2*A],E[A]=h[2*A+1];var T=ny(R,c,"float32"),D=ny(E,c,"float32");a[u]=ey(T,D)}i+=p*I}"complex64"!==l&&(a[u]=ny(h,c,l))}return a}function sy(e){if(null===e)throw new Error("Invalid input value: "+JSON.stringify(e));var t=0,n=[];e.forEach((function(e){if(t+=e.byteLength,n.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)}));var r=new Uint8Array(t),a=0;return n.forEach((function(e){r.set(new Uint8Array(e.buffer),a),a+=e.byteLength})),r.buffer}var uy="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function ly(e){return uy?Buffer.byteLength(e):new Blob([e]).size}function cy(e){if(uy)return Buffer.from(e).toString("base64");for(var t=new Uint8Array(e),n="",r=0,a=t.length;r<a;r++)n+=String.fromCharCode(t[r]);return btoa(n)}function py(e){if(uy){var t=Buffer.from(e,"base64");return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}for(var n=atob(e),r=new Uint8Array(n.length),a=0;a<n.length;++a)r.set([n.charCodeAt(a)],a);return r.buffer}function hy(e){if(1===e.length)return e[0];var t=0;e.forEach((function(e){t+=e.byteLength}));var n=new Uint8Array(t),r=0;return e.forEach((function(e){n.set(new Uint8Array(e),r),r+=e.byteLength})),n.buffer}function fy(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);var t=e.split("/");return t[t.length-1]}function dy(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:ly(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:ly(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:e.weightData.byteLength}}function my(){var e=function(){var e=function(e){for(var t=e<<13,n=0;0==(8388608&t);)n-=8388608,t<<=1;return(t&=-8388609)|(n+=947912704)},t=new Uint32Array(2048);t[0]=0;for(var n=1;n<1024;n++)t[n]=e(n);for(var r=1024;r<2048;r++)t[r]=939524096+(r-1024<<13);return t}(),t=function(){var e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(var t=1;t<31;t++)e[t]=t<<23;for(var n=33;n<63;n++)e[n]=2147483648+(n-32<<23);return e}(),n=function(){for(var e=new Uint32Array(64),t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}();return function(r){for(var a=new ArrayBuffer(4*r.length),i=new Uint32Array(a),o=0;o<r.length;o++){var s=r[o],u=e[n[s>>10]+(1023&s)]+t[s>>10];i[o]=u}return new Float32Array(a)}}var vy=function(){function e(){this.saveRouters=[],this.loadRouters=[]}return e.getInstance=function(){return null==e.instance&&(e.instance=new e),e.instance},e.registerSaveRouter=function(t){e.getInstance().saveRouters.push(t)},e.registerLoadRouter=function(t){e.getInstance().loadRouters.push(t)},e.getSaveHandlers=function(t){return e.getHandlers(t,"save")},e.getLoadHandlers=function(t,n){return e.getHandlers(t,"load",n)},e.getHandlers=function(t,n,r){var a=[];return("load"===n?e.getInstance().loadRouters:e.getInstance().saveRouters).forEach((function(e){var n=e(t,r);null!==n&&a.push(n)})),a},e}(),gy=function(e){return vy.getSaveHandlers(e)},yy=function(e,t){return vy.getLoadHandlers(e,t)};function by(){if(!uv().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");var 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 xy(e){var t=e.result;t.createObjectStore("models_store",{keyPath:"modelPath"}),t.createObjectStore("model_info_store",{keyPath:"modelPath"})}var wy=function(){function e(e){if(this.indexedDB=by(),null==e||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}var t=e.prototype;return t.save=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t.modelTopology instanceof ArrayBuffer)){e.next=2;break}throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");case 2:return e.abrupt("return",this.databaseAction(this.modelPath,t));case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.load=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.databaseAction(this.modelPath));case 1:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.databaseAction=function(e,t){var n=this;return new Promise((function(e,r){var a=n.indexedDB.open("tensorflowjs",1);a.onupgradeneeded=function(){return xy(a)},a.onsuccess=function(){var i=a.result;if(null==t){var o=i.transaction("models_store","readonly"),s=o.objectStore("models_store").get(n.modelPath);s.onsuccess=function(){if(null==s.result)return i.close(),r(new Error("Cannot find model with path '"+n.modelPath+"' in IndexedDB."));e(s.result.modelArtifacts)},s.onerror=function(e){return i.close(),r(s.error)},o.oncomplete=function(){return i.close()}}else{var u,l=dy(t),c=i.transaction("model_info_store","readwrite"),p=c.objectStore("model_info_store"),h=p.put({modelPath:n.modelPath,modelArtifactsInfo:l});h.onsuccess=function(){var a=(u=i.transaction("models_store","readwrite")).objectStore("models_store").put({modelPath:n.modelPath,modelArtifacts:t,modelArtifactsInfo:l});a.onsuccess=function(){return e({modelArtifactsInfo:l})},a.onerror=function(e){var t=(p=c.objectStore("model_info_store")).delete(n.modelPath);t.onsuccess=function(){return i.close(),r(a.error)},t.onerror=function(e){return i.close(),r(a.error)}}},h.onerror=function(e){return i.close(),r(h.error)},c.oncomplete=function(){null==u?i.close():u.oncomplete=function(){return i.close()}}}},a.onerror=function(e){return r(a.error)}}))},e}();wy.URL_SCHEME="indexeddb://";
17var ky=function(e){return uv().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(wy.URL_SCHEME)?(t=e.slice(wy.URL_SCHEME.length),new wy(t)):null;var t};function Sy(e){return e.startsWith(wy.URL_SCHEME)?e.slice(wy.URL_SCHEME.length):e}vy.registerSaveRouter(ky),vy.registerLoadRouter(ky);var Ny=function(){function e(){this.indexedDB=by()}var t=e.prototype;return t.listModels=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e,n){var r=t.indexedDB.open("tensorflowjs",1);r.onupgradeneeded=function(){return xy(r)},r.onsuccess=function(){var t=r.result,a=t.transaction("model_info_store","readonly"),i=a.objectStore("model_info_store").getAll();i.onsuccess=function(){for(var t,n={},r=tv(i.result);!(t=r()).done;){var a=t.value;n[a.modelPath]=a.modelArtifactsInfo}e(n)},i.onerror=function(e){return t.close(),n(i.error)},a.oncomplete=function(){return t.close()}},r.onerror=function(e){return n(r.error)}})));case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),t.removeModel=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=Sy(t),e.abrupt("return",new Promise((function(e,r){var a=n.indexedDB.open("tensorflowjs",1);a.onupgradeneeded=function(){return xy(a)},a.onsuccess=function(){var n,i=a.result,o=i.transaction("model_info_store","readwrite"),s=o.objectStore("model_info_store"),u=s.get(t);u.onsuccess=function(){if(null==u.result)return i.close(),r(new Error("Cannot find model with path '"+t+"' in IndexedDB."));var a=s.delete(t),o=function(){var a=(n=i.transaction("models_store","readwrite")).objectStore("models_store").delete(t);a.onsuccess=function(){return e(u.result.modelArtifactsInfo)},a.onerror=function(e){return r(u.error)}};a.onsuccess=o,a.onerror=function(e){return o(),i.close(),r(u.error)}},u.onerror=function(e){return i.close(),r(u.error)},o.oncomplete=function(){null==n?i.close():n.oncomplete=function(){return i.close()}}},a.onerror=function(e){return r(a.error)}})));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),e}(),Iy="tensorflowjs_models",Cy="info",Ry="model_topology",Ey="weight_specs",Ay="weight_data",Ty="model_metadata";function Dy(e){return{info:[Iy,e,Cy].join("/"),topology:[Iy,e,Ry].join("/"),weightSpecs:[Iy,e,Ey].join("/"),weightData:[Iy,e,Ay].join("/"),modelMetadata:[Iy,e,Ty].join("/")}}function _y(e){var t=e.split("/");if(t.length<3)throw new Error("Invalid key format: "+e);return t.slice(1,t.length-1).join("/")}function Fy(e){return e.startsWith(Oy.URL_SCHEME)?e.slice(Oy.URL_SCHEME.length):e}var Oy=function(){function e(e){if(!uv().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=Dy(this.modelPath)}var t=e.prototype;return t.save=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t.modelTopology instanceof ArrayBuffer)){e.next=4;break}throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");case 4:return n=JSON.stringify(t.modelTopology),r=JSON.stringify(t.weightSpecs),a=dy(t),e.prev=7,this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,n),this.LS.setItem(this.keys.weightSpecs,r),this.LS.setItem(this.keys.weightData,cy(t.weightData)),this.LS.setItem(this.keys.modelMetadata,JSON.stringify({format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,userDefinedMetadata:t.userDefinedMetadata})),e.abrupt("return",{modelArtifactsInfo:a});case 16:throw e.prev=16,e.t0=e.catch(7),this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error("Failed to save model '"+this.modelPath+"' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes="+a.modelTopologyBytes+", weightSpecsBytes="+a.weightSpecsBytes+", weightDataBytes="+a.weightDataBytes+".");case 24:case"end":return e.stop()}}),e,this,[[7,16]])})));return function(t){return e.apply(this,arguments)}}(),t.load=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r,a,i,o,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!=(t=JSON.parse(this.LS.getItem(this.keys.info)))){e.next=3;break}throw new Error("In local storage, there is no model with name '"+this.modelPath+"'");case 3:if("JSON"===t.modelTopologyType){e.next=5;break}throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");case 5:if(n={},null!=(r=JSON.parse(this.LS.getItem(this.keys.topology)))){e.next=9;break}throw new Error("In local storage, the topology of model '"+this.modelPath+"' is missing.");case 9:if(n.modelTopology=r,null!=(a=JSON.parse(this.LS.getItem(this.keys.weightSpecs)))){e.next=13;break}throw new Error("In local storage, the weight specs of model '"+this.modelPath+"' are missing.");case 13:if(n.weightSpecs=a,null!=(i=this.LS.getItem(this.keys.modelMetadata))&&(o=JSON.parse(i),n.format=o.format,n.generatedBy=o.generatedBy,n.convertedBy=o.convertedBy,n.userDefinedMetadata=o.userDefinedMetadata),null!=(s=this.LS.getItem(this.keys.weightData))){e.next=19;break}throw new Error("In local storage, the binary weight values of model '"+this.modelPath+"' are missing.");case 19:return n.weightData=py(s),e.abrupt("return",n);case 21:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),e}();Oy.URL_SCHEME="localstorage://";
17var My=function(e){return uv().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Oy.URL_SCHEME)?(t=e.slice(Oy.URL_SCHEME.length),new Oy(t)):null;var t};vy.registerSaveRouter(My),vy.registerLoadRouter(My);var Ly=function(){function e(){Ev(uv().getBool("IS_BROWSER"),(function(){return"Current environment is not a web browser"})),Ev("undefined"==typeof window||void 0!==window.localStorage,(function(){return"Current browser does not appear to support localStorage"})),this.LS=window.localStorage}var t=e.prototype;return t.listModels=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r,a,i,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(t={},n=Iy+"/",r="/"+Cy,a=0;a<this.LS.length;++a)(i=this.LS.key(a)).startsWith(n)&&i.endsWith(r)&&(o=_y(i),t[o]=JSON.parse(this.LS.getItem(i)));return e.abrupt("return",t);case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.removeModel=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=Fy(t),n=Dy(t),null!=this.LS.getItem(n.info)){e.next=4;break}throw new Error("Cannot find model at path '"+t+"'");case 4:return r=JSON.parse(this.LS.getItem(n.info)),this.LS.removeItem(n.info),this.LS.removeItem(n.topology),this.LS.removeItem(n.weightSpecs),this.LS.removeItem(n.weightData),e.abrupt("return",r);case 10:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),e}(),zy=function(){function e(){this.managers={}}return e.getInstance=function(){return null==e.instance&&(e.instance=new e),e.instance},e.registerManager=function(t,n){Ev(null!=t,(function(){return"scheme must not be undefined or null."})),t.endsWith("://")&&(t=t.slice(0,t.indexOf("://"))),Ev(t.length>0,(function(){return"scheme must not be an empty string."}));var r=e.getInstance();Ev(null==r.managers[t],(function(){return"A model store manager is already registered for scheme '"+t+"'."})),r.managers[t]=n},e.getManager=function(e){var t=this.getInstance().managers[e];if(null==t)throw new Error("Cannot find model manager for scheme '"+e+"'");return t},e.getSchemes=function(){return Object.keys(this.getInstance().managers)},e}();function By(e){if(-1===e.indexOf("://"))throw new Error("The url string provided does not contain a scheme. Supported schemes are: "+zy.getSchemes().join(","));return{scheme:e.split("://")[0],path:e.split("://")[1]}}function Py(e,t,n){return Wy.apply(this,arguments)}function Wy(){return(Wy=Gm(regeneratorRuntime.mark((function e(t,n,r){var a,i,o,s,u,l,c,p,h;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r=!1),Ev(t!==n,(function(){return"Old path and new path are the same: '"+t+"'"})),Ev((a=vy.getLoadHandlers(t)).length>0,(function(){return"Copying failed because no load handler is found for source URL "+t+"."})),Ev(a.length<2,(function(){return"Copying failed because more than one ("+a.length+") load handlers for source URL "+t+"."})),i=a[0],Ev((o=vy.getSaveHandlers(n)).length>0,(function(){return"Copying failed because no save handler is found for destination URL "+n+"."})),Ev(o.length<2,(function(){return"Copying failed because more than one ("+a.length+") save handlers for destination URL "+n+"."})),s=o[0],u=By(t).scheme,l=By(t).path,c=u===By(t).scheme,e.next=15,i.load();case 15:if(p=e.sent,!r||!c){e.next=19;break}return e.next=19,zy.getManager(u).removeModel(l);case 19:return e.next=21,s.save(p);case 21:if(h=e.sent,!r||c){e.next=25;break}return e.next=25,zy.getManager(u).removeModel(l);case 25:return e.abrupt("return",h.modelArtifactsInfo);case 26:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Vy(){return(Vy=Gm(regeneratorRuntime.mark((function e(){var t,n,r,a,i,o,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=zy.getSchemes(),n={},r=tv(t);case 3:if((a=r()).done){e.next=11;break}return i=a.value,e.next=7,zy.getManager(i).listModels();case 7:for(s in o=e.sent)n[i+"://"+s]=o[s];case 9:e.next=3;break;case 11:return e.abrupt("return",n);case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Uy(){return(Uy=Gm(regeneratorRuntime.mark((function e(t){var n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=By(t),r=zy.getManager(n.scheme),e.abrupt("return",r.removeModel(n.path));case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Gy(){return(Gy=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return!1,e.abrupt("return",Py(t,n,!1));case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function jy(){return(jy=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return!0,e.abrupt("return",Py(t,n,!0));case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Hy=function(){function e(){}var t=e.prototype;return t.fetch=function(e){function t(t,n){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e,t){return fetch(e,t)})),t.now=function(){return performance.now()},t.encode=function(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)},t.decode=function(e,t){return new TextDecoder(t).decode(e)},e}();
17if(uv().get("IS_BROWSER")){uv().setPlatform("browser",new Hy);try{zy.registerManager(Oy.URL_SCHEME,new Ly)}catch(e){}try{zy.registerManager(wy.URL_SCHEME,new Ny)}catch(e){}}var qy,Ky=function(){return require("node-fetch")};var Xy=function(){function e(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}var t=e.prototype;return t.fetch=function(e,t){return null!=uv().global.fetch?uv().global.fetch(e,t):(null==qy&&(qy=Ky()),qy(e,t))},t.now=function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6},t.encode=function(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)},t.decode=function(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)},e}();function Yy(e,t,n){return void 0===t&&(t="float32"),t=t||"float32",lg(e),new kg(e,t,n)}uv().get("IS_NODE")&&uv().setPlatform("node",new Xy);var Jy=$g({cast_:function(e,t){var n=Zg(e,"x","cast");if(!jv(t))throw new Error("Failed to cast to unknown dtype "+t);if("string"===t&&"string"!==n.dtype||"string"!==t&&"string"===n.dtype)throw new Error("Only strings can be casted to strings");var r={x:n},a={dtype:t};return Gg.runKernelFunc((function(e){return e.cast(n,t)}),r,null,"Cast",a)}});var Zy=$g({clone_:function(e){var t=Zg(e,"x","clone",null),n={x:t};return Gg.runKernelFunc((function(){return Gg.makeTensorFromDataId(t.dataId,t.shape,t.dtype)}),n,null,"Identity")}});function Qy(e,t){void 0===t&&(t=!1),console.log(e.toString(t))}Ug(),Ng={buffer:Yy,cast:Jy,clone:Zy,print:Qy};function $y(e){return new Promise((function(e){return setTimeout(e)})).then(e)}var eb=function(){function e(t){if(!uv().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(e.URL_SCHEME)&&(t=t.slice(e.URL_SCHEME.length)),null!=t&&0!==t.length||(t="model"),this.modelTopologyFileName=t+".json",this.weightDataFileName=t+".weights.bin"}return e.prototype.save=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r,a,i,o,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("undefined"!=typeof document){e.next=2;break}throw new Error("Browser downloads are not supported in this environment since `document` is not present");case 2:if(n=window.URL.createObjectURL(new Blob([t.weightData],{type:"application/octet-stream"})),!(t.modelTopology instanceof ArrayBuffer)){e.next=7;break}throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");case 7:return r=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],a={modelTopology:t.modelTopology,format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,weightsManifest:r},i=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),(o=null==this.jsonAnchor?document.createElement("a"):this.jsonAnchor).download=this.modelTopologyFileName,o.href=i,e.next=15,$y((function(){return o.dispatchEvent(new MouseEvent("click"))}));case 15:if(null==t.weightData){e.next=21;break}return(s=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor).download=this.weightDataFileName,s.href=n,e.next=21,$y((function(){return s.dispatchEvent(new MouseEvent("click"))}));case 21:return e.abrupt("return",{modelArtifactsInfo:dy(t)});case 22:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),e}();eb.URL_SCHEME="downloads://";var tb=function(){function e(e){if(null==e||e.length<1)throw new Error("When calling browserFiles, at least 1 file is required, but received "+e);this.files=e}var t=e.prototype;return t.load=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.files[0],n=this.files.slice(1),e.abrupt("return",new Promise((function(e,a){var i=new FileReader;i.onload=function(i){var o=JSON.parse(i.target.result),s=o.modelTopology;if(null!=s){0===n.length&&e({modelTopology:s});var u=o.weightsManifest;if(null!=u){var l;try{l=r.checkManifestAndWeightFiles(u,n)}catch(e){return void a(e)}var c=[],p=[],h=[];u.forEach((function(e){e.paths.forEach((function(e){p.push(e),h.push(null)})),c.push.apply(c,e.weights)})),u.forEach((function(t){t.paths.forEach((function(t){var n=new FileReader;n.onload=function(n){var r=n.target.result,a=p.indexOf(t);h[a]=r,-1===h.indexOf(null)&&e({modelTopology:s,weightSpecs:c,weightData:hy(h
17),format:o.format,generatedBy:o.generatedBy,convertedBy:o.convertedBy,userDefinedMetadata:o.userDefinedMetadata})},n.onerror=function(e){return a("Failed to weights data from file of path '"+t+"'.")},n.readAsArrayBuffer(l[t])}))}))}else a(new Error("weightManifest field is missing from file "+t.name))}else a(new Error("modelTopology field is missing from file "+t.name))},i.onerror=function(e){return a("Failed to read model topology and weights manifest JSON from file '"+t.name+"'. BrowserFiles supports loading Keras-style tf.Model artifacts only.")},i.readAsText(t)})));case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.checkManifestAndWeightFiles=function(e,t){for(var n,r=[],a=t.map((function(e){return fy(e.name)})),i={},o=tv(e);!(n=o()).done;){n.value.paths.forEach((function(e){var n=fy(e);if(-1!==r.indexOf(n))throw new Error("Duplicate file basename found in weights manifest: '"+n+"'");if(r.push(n),-1===a.indexOf(n))throw new Error("Weight file with basename '"+n+"' is not provided.");i[e]=t[a.indexOf(n)]}))}if(r.length!==t.length)throw new Error("Mismatch in the number of files in weights manifest ("+r.length+") and the number of weight files provided ("+t.length+").");return i},e}();function nb(e,t,n,r){!function(e){Ev(null!=e&&Array.isArray(e)&&e.length>0,(function(){return"promises must be a none empty array"}))}(e),function(e,t){Ev(e>=0&&e<=1,(function(){return"Progress fraction must be in range [0, 1], but got startFraction "+e})),Ev(t>=0&&t<=1,(function(){return"Progress fraction must be in range [0, 1], but got endFraction "+t})),Ev(t>=e,(function(){return"startFraction must be no more than endFraction, but got startFraction "+e+" and endFraction "+t}))}(n=null==n?0:n,r=null==r?1:r);var a=0;return Promise.all(e.map((function(i){return i.then((function(i){var o=n+ ++a/e.length*(r-n);return t(o),i})),i})))}function rb(e,t){return ab.apply(this,arguments)}function ab(){return(ab=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i,o,s,u,l,c,p;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null==n&&(n={}),r=null==n.fetchFunc?uv().platform.fetch:n.fetchFunc,a=t.map((function(e){return r(e,n.requestInit,{isBinary:!0})})),i=0,o=.5,null!=n.onProgress){e.next=11;break}return e.next=8,Promise.all(a);case 8:e.t0=e.sent,e.next=14;break;case 11:return e.next=13,nb(a,n.onProgress,i,o);case 13:e.t0=e.sent;case 14:if(s=e.t0,u=s.map((function(e){return e.arrayBuffer()})),l=.5,c=1,null!=n.onProgress){e.next=24;break}return e.next=21,Promise.all(u);case 21:e.t1=e.sent,e.next=27;break;case 24:return e.next=26,nb(u,n.onProgress,l,c);case 26:e.t1=e.sent;case 27:return p=e.t1,e.abrupt("return",p);case 29:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ib(e,t,n,r){return ob.apply(this,arguments)}function ob(){return(ob=Gm(regeneratorRuntime.mark((function e(t,n,r,a){var i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===n&&(n=""),i=sb((function(e){return rb(e,{requestInit:a})})),e.abrupt("return",i(t,n,r));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function sb(e){return function(){var t=Gm(regeneratorRuntime.mark((function t(n,r,a){var i,o,s,u,l,c,p,h,f,d;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(void 0===r&&(r=""),i=n.map((function(){return!1})),o={},s=null!=a?a.map((function(){return!1})):[],u=[],n.forEach((function(e,t){var n=0;e.weights.forEach((function(e){var r="quantization"in e?e.quantization.dtype:e.dtype,l=ry[r]*_v(e.shape),c=function(){i[t]=!0,null==o[t]&&(o[t]=[]),o[t].push({manifestEntry:e,groupOffset:n,sizeBytes:l})};null!=a?a.forEach((function(t,n){t===e.name&&(c(),s[n]=!0)})):c(),u.push(e.name),n+=l}))})),s.every((function(e){return e}))){t.next=9;break}throw l=a.filter((function(e,t){return!s[t]})),new Error("Could not find weights in manifest with names: "+l.join(", ")+". \nManifest JSON has weights with names: "+u.join(", ")+".");case 9:return c=i.reduce((function(e,t,n){return t&&e.push(n),e}
17),[]),p=[],c.forEach((function(e){n[e].paths.forEach((function(e){var t=r+(r.endsWith("/")?"":"/")+e;p.push(t)}))})),t.next=14,e(p);case 14:return h=t.sent,f={},d=0,c.forEach((function(e){for(var t=n[e].paths.length,r=0,a=0;a<t;a++)r+=h[d+a].byteLength;for(var i=new ArrayBuffer(r),s=new Uint8Array(i),u=0,l=0;l<t;l++){var c=new Uint8Array(h[d+l]);s.set(c,u),u+=c.byteLength}o[e].forEach((function(e){var t=oy(i.slice(e.groupOffset,e.groupOffset+e.sizeBytes),[e.manifestEntry]);for(var n in t)f[n]=t[n]})),d+=t})),t.abrupt("return",f);case 19:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}()}vy.registerSaveRouter((function(e){return uv().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(eb.URL_SCHEME)?function(e){void 0===e&&(e="model");return new eb(e)}(e.slice(eb.URL_SCHEME.length)):null}));var ub=function(){function e(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?(Ev("function"==typeof t.fetchFunc,(function(){return"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=uv().platform.fetch,Ev(null!=e&&e.length>0,(function(){return"URL path for http must not be null, undefined or empty."})),Array.isArray(e)&&Ev(2===e.length,(function(){return"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||{}}var t=e.prototype;return t.save=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r,a,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t.modelTopology instanceof ArrayBuffer)){e.next=2;break}throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");case 2:return(n=Object.assign({method:this.DEFAULT_METHOD},this.requestInit)).body=new FormData,r=[{paths:["./model.weights.bin"],weights:t.weightSpecs}],a={modelTopology:t.modelTopology,format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,userDefinedMetadata:t.userDefinedMetadata,weightsManifest:r},n.body.append("model.json",new Blob([JSON.stringify(a)],{type:"application/json"}),"model.json"),null!=t.weightData&&n.body.append("model.weights.bin",new Blob([t.weightData],{type:"application/octet-stream"}),"model.weights.bin"),e.next=10,this.fetch(this.path,n);case 10:if(!(i=e.sent).ok){e.next=15;break}return e.abrupt("return",{modelArtifactsInfo:dy(t),responses:[i]});case 15:throw new Error("BrowserHTTPRequest.save() failed due to HTTP response status "+i.status+".");case 16:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.load=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r,a,i,o,s,u,l,c,p,h,f,d;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.fetch(this.path,this.requestInit);case 2:if((t=e.sent).ok){e.next=5;break}throw new Error("Request to "+this.path+" failed with status code "+t.status+". Please verify this URL points to the model JSON of the model to load.");case 5:return e.prev=5,e.next=8,t.json();case 8:n=e.sent,e.next=16;break;case 11:throw e.prev=11,e.t0=e.catch(5),r="Failed to parse model JSON of response from "+this.path+".",this.path.endsWith(".pb")?r+=" 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.":r+=" Please make sure the server is serving valid JSON for this request.",new Error(r);case 16:if(a=n.modelTopology,i=n.weightsManifest,o=n.generatedBy,s=n.convertedBy,u=n.format,l=n.userDefinedMetadata,null!=a||null!=i){e.next=24;break}throw new Error("The JSON from HTTP path "+this.path+" contains 
17neither model topology or manifest for weights.");case 24:if(null==i){e.next=30;break}return e.next=27,this.loadWeights(i);case 27:h=e.sent,c=h[0],p=h[1];case 30:return f={modelTopology:a,weightSpecs:c,weightData:p,userDefinedMetadata:l,generatedBy:o,convertedBy:s,format:u},(d=n.modelInitializer)&&(f.modelInitializer=d),e.abrupt("return",f);case 34:case"end":return e.stop()}}),e,this,[[5,11]])})));return function(){return e.apply(this,arguments)}}(),t.loadWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r,a,i,o,s,u,l,c,p,h,f,d,m,v,g,y,b;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(n=Array.isArray(this.path)?this.path[1]:this.path,r=lb(n),a=r[0],i=r[1],o=this.weightPathPrefix||a,s=[],u=tv(t);!(l=u()).done;)c=l.value,s.push.apply(s,c.weights);for(p=[],h=[],f=tv(t);!(d=f()).done;)for(m=d.value,v=tv(m.paths);!(g=v()).done;)y=g.value,null!=this.weightUrlConverter?h.push(this.weightUrlConverter(y)):p.push(o+y+i);if(!this.weightUrlConverter){e.next=15;break}return e.t0=p.push,e.t1=p,e.next=13,Promise.all(h);case 13:e.t2=e.sent,e.t0.apply.call(e.t0,e.t1,e.t2);case 15:return e.next=17,rb(p,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});case 17:return b=e.sent,e.abrupt("return",[s,hy(b)]);case 19:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),e}();function lb(e){var t=e.lastIndexOf("/"),n=e.lastIndexOf("?");return[e.substring(0,t)+"/",n>t?e.substring(n):""]}function cb(e){return null!=e.match(ub.URL_SCHEME_REGEX)}ub.URL_SCHEME_REGEX=/^https?:\/\//;var pb=function(e,t){if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc))return null;return(Array.isArray(e)?e.every((function(e){return cb(e)})):cb(e))?hb(e,t):null};function hb(e,t){return new ub(e,t)}function fb(e,t){return hb(e,t)}vy.registerSaveRouter(pb),vy.registerLoadRouter(pb);var db=function(){function e(e){this.modelArtifacts=e}return e.prototype.load=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.modelArtifacts);case 1:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),e}(),mb=function(){function e(e){this.saveHandler=e}return e.prototype.save=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.saveHandler(t));case 1:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),e}();var vb={__proto__:null,browserFiles:function(e){return new tb(e)},browserHTTPRequest:fb,concatenateArrayBuffers:hy,decodeWeights:oy,encodeWeights:ay,fromMemory:function(e,t,n,r){if(1===arguments.length){var a=null!=e.modelTopology||null!=e.weightSpecs;return a?new db(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 db({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 db({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:r})},getLoadHandlers:yy,getModelArtifactsInfoForJSON:dy,getSaveHandlers:gy,http:hb,isHTTPScheme:cb,loadWeights:ib,registerLoadRouter:function(e){return vy.registerLoadRouter(e)},registerSaveRouter:function(e){return vy.registerSaveRouter(e)},weightsLoaderFactory:sb,withSaveHandler:function(e){return new mb(e)},copyModel:function(e,t){return Gy.apply(this,arguments)},listModels:function(){return Vy.apply(this,arguments)},moveModel:function(e,t){return jy.apply(this,arguments)},removeModel:function(e){return Uy.apply(this,arguments)}};var gb=$g({reshape_:function(e,t){var n=Zg(e,"x","reshape",null),r={x:n},a={shape:t};return Gg.runKernelFunc((function(e,r){return t=Bv(t,n.size),Ev(n.size===_v(t),(function(){return"new shape and old shape must have the same number of elements."})),r([n]),e.reshape(n,t)}),r,null,"Reshape",a)}});var yb=$g({matMul_:function(e,t,n,r){void 0===n&&(n=!1),void 0===r&&(r=!1);var a=Zg(e,"a","matMul"),i=Zg(t,"b","matMul"),o=Mg(a,i);a=o[0],i=o[1],Ev(a.rank>=2&&i.rank>=2&&a.rank===i.rank,(function(){return"Error in matMul: inputs must have the same rank of at least 2, got ranks "+a.rank+" and "+i.rank+"."}));var s=n?a.shape[a.rank-2]:a.shape[a.rank-1],u=r?i.shape[i.rank-1]:i.shape[i.rank-2],l=n?a.shape[a.rank-1]:a.shape[a.rank-2],c=r?i.shape[i.rank-2]:i.shape[i.rank-1],p=a.shape.slice(0,-2),h=i.shape.slice(0,-2),f=_v(p),d=_v(h);Ev(Fv(p,h),(function(){return"Error in matMul: outer dimensions ("+p+") and ("+h+") of Tensors with shapes "+a.shape+" and "+i.shape+" must match."})),Ev(s===u,(function(){return"Error in matMul: inner shapes ("+s+") and ("+u+") of Tensors with shapes "+a.shape+" and "+i.shape+" and transposeA="+n+" and transposeB="+r+" must match."}));var m=a.shape.slice(0,-2).concat([l,c]),v=gb(a,n?[f,s,l]:[f,l,s]),g=gb(i,r?[d,c,u]:[d,u,c]),y={a:v,b:g},b={transposeA:n,transposeB:r},x=Gg.runKernelFunc((function(e,t){return t([v,g]),e.batchMatMul(v,g,n,r)}),y,null,"BatchMatMul",b);return gb(x,m)}});var bb=$g({oneHot_:function(e,t,n,r){if(void 0===n&&(n=1),void 0===r&&(r=0),t<2)throw new Error("Error in oneHot: depth must be >=2, but it is "+t);var a=Zg(e,"indices","oneHot","int32"),i=[].concat(a.shape,[t]),o={indices:a},s={depth:t,onValue:n,offValue:r};return Gg.runKernelFunc((function(e,o){return o([a]),gb(e.oneHot(gb(a,[a.size]),t,n,r),i)}),o,null,"OneHot",s)}});var xb=$g({transpose_:function(e,t){var n=Zg(e,"x","transpose");if(null==t&&(t=n.shape.map((function(e,t){return t})).reverse()),Ev(n.rank===t.length,(function(){return"Error in transpose: rank of input "+n.rank+" must match length of perm "+t+"."})),t.forEach((function(e){Ev(e>
17=0&&e<n.rank,(function(){return"All entries in 'perm' must be between 0 and "+(n.rank-1)+" but got "+t}))})),n.rank<=1)return n.clone();var r={x:n},a={perm:t};return Gg.runKernelFunc((function(e){return e.transpose(n,t)}),r,null,"Transpose",a)}});var wb,kb={__proto__:null,confusionMatrix:$g({confusionMatrix_:function(e,t,n){var r=Zg(e,"labels","confusionMatrix"),a=Zg(t,"predictions","confusionMatrix");Ev(null==n||n>0&&Number.isInteger(n),(function(){return"If provided, numClasses must be a positive integer, but got "+n})),Ev(1===r.rank,(function(){return"Expected the rank of labels to be 1, but got "+r.rank})),Ev(1===a.rank,(function(){return"Expected the rank of predictions to be 1, but got "+a.rank})),Ev(r.shape[0]===a.shape[0],(function(){return"Mismatch in the number of examples: "+r.shape[0]+" vs. "+a.shape[0]+". Labels and predictions should have the same number of elements."})),Ev(n>0&&Number.isInteger(n),(function(){return"numClasses is required to be a positive integer, but got "+n}));var i=bb(Jy(r,"int32"),n),o=bb(Jy(a,"int32"),n),s=xb(i);return Jy(yb(s,o),"int32")}})};function Sb(e,t,n){if(Tv(e),null!=t&&3!==t.length)throw new Error("tensor3d() requires shape to have three numbers");var r=Yg(e,n);if(3!==r.length&&1!==r.length)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return ty(e,t,r,n)}function Nb(){return(Nb=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i,o,s,u,l,c,p,h,f,d,m,v,g,y;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=Zg(t,"img","toPixels"),t instanceof Ig||(r=Jy(a=r,"int32"),a.dispose()),2===r.rank||3===r.rank){e.next=4;break}throw new Error("toPixels only supports rank 2 or 3 tensors, got rank "+r.rank+".");case 4:if(i=r.shape.slice(0,2),o=i[0],s=i[1],!((u=2===r.rank?1:r.shape[2])>4||2===u)){e.next=8;break}throw new Error("toPixels only supports depth of size 1, 3 or 4 but got "+u);case 8:if("float32"===r.dtype||"int32"===r.dtype){e.next=10;break}throw new Error("Unsupported type for toPixels: "+r.dtype+". Please use float32 or int32 tensors.");case 10:return e.next=12,r.data();case 12:l=e.sent,c="float32"===r.dtype?255:1,p=new Uint8ClampedArray(s*o*4),h=0;case 16:if(!(h<o*s)){e.next=41;break}f=[0,0,0,255],d=0;case 19:if(!(d<u)){e.next=33;break}if(m=l[h*u+d],"float32"!==r.dtype){e.next=26;break}if(!(m<0||m>1)){e.next=24;break}throw new Error("Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered "+m+".");case 24:e.next=29;break;case 26:if("int32"!==r.dtype){e.next=29;break}if(!(m<0||m>255)){e.next=29;break}throw new Error("Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered "+m+".");case 29:1===u?(f[0]=m*c,f[1]=m*c,f[2]=m*c):f[d]=m*c;case 30:d++,e.next=19;break;case 33:p[(v=4*h)+0]=Math.round(f[0]),p[v+1]=Math.round(f[1]),p[v+2]=Math.round(f[2]),p[v+3]=Math.round(f[3]);case 38:++h,e.next=16;break;case 41:return null!=n&&(n.width=s,n.height=o,g=n.getContext("2d"),y=new ImageData(p,s,o),g.putImageData(y,0,0)),r!==t&&r.dispose(),e.abrupt("return",p);case 44:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Ib=$g({fromPixels_:function(e,t){if(void 0===t&&(t=3),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");var n=!1,r=!1,a=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)r=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)a=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)i=!0;else{if(null==e.getContext)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);o=!0}if(a){if(a&&e.readyState<2)throw new Error("The video element has not loaded data yet. Please wait for `loadeddata` event on the <video> element.")}if(null!=yv("FromPixels",Gg.backendName)){var s={pixels:e},u={numChannels:t};return Gg.runKernel("FromPixels",s,u)}var l,c,p=a?[e.videoWidth,e.videoHeight]:[e.width,e.height],h=p[0],f=p[1];if(o?l=e.getContext("2d").getImageData(0,0,h,f).data:r||n?l=e.data:(i||a)&&(null==wb&&(wb=document.createElement("canvas").getContext("2d")),wb.canvas.width=h,wb.canvas.height=f,wb.drawImage(e,0,0,h,f),l=wb.getImageData(0,0,h,f).data),4===t)c=new Int32Array(l);else{var d=h*f;c=new Int32Array(d*t);for(var m=0;m<d;m++)for(var v=0;v<t;++v)c[m*t+v]=l[4*m+v]}return Sb(c,[f,h,t],"int32")}}),Cb={__proto__:null,toPixels:function(e,t){return Nb.apply(this,arguments)},fromPixels:Ib};function Rb(e,t){if(e.rank<1)throw new Error("tf.gatherND() expects the input to be rank 1 or higher, but the rank was "+e.rank+".");if(t.rank<1)throw new Error("tf.gatherND() expects the indices to be rank 1 or higher, but the rank was "+t.rank+".");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[t.rank-1]>e.rank)throw new Error("index innermost dimension length must be <= tensor rank; saw: "+t.shape[t.rank-1]+" vs. "+e.rank);if(0===e.size)throw new Error("Requested more than 0 entries, but input is empty. Input shape: "+e.shape+".");for(var n=t.shape,r=n[n.length-1],a=1,i=0;i<n.length-1;++i)a*=n[i];var o=e.shape,s=n.slice();s.pop();for(var u=1,l=r;l<e.rank;++l)u*=o[l],s.push(o[l]);var c=[].concat(tg(e.shape).map((function(e){return e/u})),[1]).slice(0,r);return[s,a,u,c]}var Eb={__proto__:null,prepareAndValidate:Rb};function Ab(e,t,n){var r=t.rank>1?t.shape[t.rank-1]:1,a=t.rank>1?t.rank-1:1,i="Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: "+n.shape+", indices.shape: "+t.shape+", shape: "+e+", sliceDim: "+r+", and batchDim: "+a+".";if(n.rank<a)throw new Error(i+" update.rank < "+a+". ");
17if(e.length<r+(n.rank-a))throw new Error(i+" Output shape length < "+(r+(n.rank-a)));if(n.rank!==a+e.length-r)throw new Error(i+" update.rank != "+(a+e.length-r));for(var o=0;o<a;++o)if(n.shape[o]!==t.shape[o])throw new Error(i+" updates.shape["+o+"] ("+n.shape[o]+") != indices.shape["+o+"] ("+t.shape[o]+").");for(var s=0;s<n.rank-a;++s)if(n.shape[s+a]!==e[s+r])throw new Error(i+" updates.shape["+(s+a)+"] ("+n.shape[s+a]+") != shape["+(s+a)+"] ("+e[s+a]+")")}function Tb(e,t,n){if(t.rank<1)throw new Error("tf.scatterND() expects the indices to be rank 1 or higher, but the rank was "+t.rank+".");if(e.rank<1)throw new Error("tf.scatterND() expects the updates to be rank 1 or higher, but the rank was "+e.rank+".");if("int32"!==t.dtype)throw new Error("The dtype of 'indices' should be int32, but got dtype: "+t.dtype);if(n.length<1)throw new Error("Output rank must be greater or equal to 1, but got shape: "+n);if(0===n.length){if(0===t.size)throw new Error("Indices specified for empty output. indices shape: "+t.shape);if(0===e.size)throw new Error("Updates specified for empty output. updates shape: "+e.shape)}Ab(n,t,e)}function Db(e,t,n){for(var r=t.shape.length,a=r>1?t.shape[r-1]:1,i=n.length,o=1,s=a;s<i;++s)o*=n[s];var u=a<1?1:a;return{sliceRank:a,numUpdates:_v(t.shape)/u,sliceSize:o,strides:[].concat(tg(n.slice(0,a)),[1]),outputSize:_v(n)}}var _b={__proto__:null,validateUpdateShape:Ab,validateInput:Tb,calculateShapes:Db};function Fb(e,t,n){var r=e.shape.length;Ev(r===t.length,(function(){return"Error in slice"+r+"D: Length of begin "+t+" must match the rank of the array ("+r+")."})),Ev(r===n.length,(function(){return"Error in slice"+r+"D: Length of size "+n+" must match the rank of the array ("+r+")."}));for(var a=function(a){Ev(t[a]+n[a]<=e.shape[a],(function(){return"Error in slice"+r+"D: begin["+a+"] + size["+a+"] ("+(t[a]+n[a])+") would overflow input.shape["+a+"] ("+e.shape[a]+")"}))},i=0;i<r;++i)a(i)}function Ob(e){for(var t=[],n=0;e>0;)1&e&&t.push(n),e/=2,n++;return t}function Mb(e,t,n){for(var r=[],a=0;a<e.length;a++)r[a]=Math.ceil((t[a]-e[a])/n[a]);return r}function Lb(e,t,n,r){for(var a=[].concat(e),i=a.length;i<r.length;i++)a.push(1);for(var o=0;o<n;o++)0===o?a[t]=1:(a.splice(t,0,1),a.pop());return a}function zb(e,t,n){return n<=e?n:n-(t-1)}function Bb(e,t){for(var n=[],r=0;r<e;r++)n.push(t+r);return n}function Pb(e,t,n,r,a,i,o,s,u){var l=e.length,c=new Array(l),p=new Array(l),h=new Array(l);if(t.length&&n>0){var f=t[0],d=n+1;c=Wb(o,f,d,r,e),p=Vb(s,f,d,a,e),h=Lb(i,f,d,e)}else for(var m=0;m<l;m++)c[m]=Gb(o,r,i,e,m,u),p[m]=jb(s,a,i,e,m,u),h[m]=Ub(i,m,u);return{begin:c,end:p,strides:h}}function Wb(e,t,n,r,a){for(var i=[].concat(a),o=Bb(n,t),s=0;s<i.length;s++)if(o.indexOf(s)>-1)i[s]=0;else{var u=zb(t,n,s),l=r[u];e&1<<u&&(l=0),i[s]=l}return i}function Vb(e,t,n,r,a){for(var i=[].concat(a),o=Bb(n,t),s=0;s<i.length;s++)if(o.indexOf(s)>-1)i[s]=Number.MAX_SAFE_INTEGER;else{var u=zb(t,n,s),l=r[u];e&1<<u&&(l=Number.MAX_SAFE_INTEGER),i[s]=l}for(var c=0;c<i.length;c++){var p=a[c];i[c]<0&&(i[c]+=p),i[c]=Iv(0,i[c],a[c])}return i}function Ub(e,t,n){var r=e[t];return(n&1<<t||null==r)&&(r=1),r}function Gb(e,t,n,r,a,i){var o=t[a],s=n[a]||1;(e&1<<a||i&1<<a||null==o)&&(o=s>0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);var u=r[a];return o<0&&(o+=u),o=Iv(0,o,u-1)}function jb(e,t,n,r,a,i){var o=t[a],s=n[a]||1;(e&1<<a||i&1<<a||null==o)&&(o=s>0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);var u=r[a];return o<0&&(o+=u),o=s>0?Iv(0,o,u):Iv(-1,o,u-1)}function Hb(e,t,n){for(var r=n.length,a=0;a<n.length;a++)if(n[a]>1){r=a;break}for(var i=r+1;i<n.length;i++)if(t[i]>0||n[i]!==e[i])return!1;return!0}function qb(e,t){for(var n=e.length>0?e[e.length-1]:1,r=0;r<e.length-1;r++)n+=e[r]*t[r];return n}function Kb(e,t,n){var r,a,i=e.shape.length;return(r="number"==typeof t?[t].concat(new Array(i-1).fill(0)):t.length<i?t.concat(new Array(i-t.length).fill(0)):t.slice()).forEach((function(e){Ev(-1!==e,(function(){return"slice() does not support negative begin indexing."}))})),a=(a=null==n?new Array(i).fill(-1):"number"==typeof n?[n].concat(new Array(i-1).fill(-1)):n.length<i?n.concat(new Array(i-n.length).fill(-1)):n).map((function(t,n){return t>=0?t:(Ev(-1===t,(function(){return"Negative size values should be exactly -1 but got "+t+" for the slice() size at index "+n+"."})),e.shape[n]-r[n])})),[r,a]}var Xb={__proto__:null,assertParamsValid:Fb,maskToAxes:Ob,computeOutShape:Mb,stridesWithElidedDims:Lb,getNormalizedAxes:Pb,startIndicesWithElidedDims:Wb,stopIndicesWithElidedDims:Vb,stridesForAxis:Ub,startForAxis:Gb,stopForAxis:jb,isSliceContinous:Hb,computeFlatOffset:qb,parseSliceParams:Kb},Yb=function(){function e(){}return e.prototype.getClassName=function(){return this.constructor.className},e.fromConfig=function(e,t){return new e(t)},e}(),Jb=function(){function e(){this.classNameMap={}}return e.getMap=function(){return null==e.instance&&(e.instance=new e),e.instance},e.register=function(t){e.getMap().classNameMap[t.className]=[t,t.fromConfig]},e}();function Zb(e){Ev(null!=e.className,(function(){return"Class being registered does not have the static className property defined."})),Ev("string"==typeof e.className,(function(){return"className is required to be a string, but got type "+typeof e.className})),Ev(e.className.length>0,(function(){return"Class being registered has an empty-string as its className, which is disallowed."})),Jb.register(e)}var Qb={__proto__:null,Serializable:Yb,SerializationMap:Jb,registerClass:Zb};function $b(){return 32===Gg.backend.floatPrecision()?.001:.1}function ex(e,t,n){var r=!0;if((qv(e)||qv(t))&&(r=!1),qv(e)&&qv(t)&&(r=!0),r){var a=e.constructor.name,i=t.constructor.name;if(a!==i)throw new Error("Arrays are of different type. Actual: "+a+". Expected: "+i)}if(Array.isArray(e)&&Array.isArray(t)){var o=Yg(e),s=Yg(t);if(!Fv(o,s))throw new Error("Arrays have different shapes. Actual: ["+o+"]. Expected: ["+s+"]")}var u=qv(e)?e:Dv(e),l=qv(t)?t:Dv(t);if(u.length!==l.length)throw new Error("Arrays have different lengths actual: "+u.length+" vs expected: "+l.length+".\nActual:   "+u+".\nExpected: "+l+".");for(var c=0;c<l.length;++c){var p=u[c],h=l[c];if(!n(p,h))throw new Error("Arrays differ: actual["+c+"] = "+p+", expected["+c+"] = "+h+".\nActual:   "+u+".\nExpected: "+l+".")}}
17function tx(e,t,n){if(null==n&&(n=$b()),!nx(e,t,n))throw new Error("Numbers differ: actual === "+e+", expected === "+t)}function nx(e,t,n){return!isFinite(e)&&!isFinite(t)||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}var rx={__proto__:null,TEST_EPSILON_FLOAT16:.1,expectArraysClose:function(e,t,n){return null==n&&(n=$b()),ex(e,t,(function(e,t){return nx(e,t,n)}))},testEpsilon:$b,expectPromiseToFail:function(e,t){e().then((function(){return t.fail()}),(function(){return t()}))},expectArraysEqual:function(e,t){var n="string"==typeof t||"number"==typeof t||"boolean"==typeof t?[t]:t;return Yv(e)||Yv(e[0])||Yv(t)||Yv(t[0])?ex(e,n,(function(e,t){return e==t})):ex(e,t,(function(e,t){return nx(e,t,0)}))},expectNumbersClose:tx,expectValuesInRange:function(e,t,n){for(var r=0;r<e.length;r++)if(e[r]<t||e[r]>n)throw new Error("Value out of range:"+e[r]+" low: "+t+", high: "+n)},expectArrayBuffersEqual:function(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}};function ax(e){uv().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}function ix(){return Gg}function ox(){return Gg.memory()}function sx(e,t){return Gg.tidy(e,t)}function ux(e){Bg(e).forEach((function(e){return e.dispose()}))}function lx(e){return Gg.keep(e)}function cx(e){return Gg.setBackend(e)}function px(e,t,n){return void 0===n&&(n=1),Gg.registerBackend(e,t,n)}function hx(){return Gg.backend}var fx=$g({add_:function(e,t){var n=Zg(e,"a","add"),r=Zg(t,"b","add"),a=Mg(n,r);n=a[0],r=a[1];var i={a:n,b:r};return Gg.runKernelFunc((function(e,t){var a=e.add(n,r);return t([n,r]),a}),i,null,pv)}});var dx=$g({floorDiv_:function(e,t){var n=Zg(e,"a","floorDiv"),r=Zg(t,"b","floorDiv"),a=Mg(n,r);n=a[0],r=a[1];var i={a:n,b:r};return Gg.runKernelFunc((function(e,t){var a=e.floorDiv(n,r);return t([n,r]),a}),i,null,"FloorDiv")}});var mx=$g({div_:function(e,t){var n=Zg(e,"a","div"),r=Zg(t,"b","div"),a=Mg(n,r);if(n=a[0],r=a[1],"int32"===n.dtype&&"int32"===r.dtype)return dx(n,r);var i={a:n,b:r};return Gg.runKernelFunc((function(e,t){var a=e.realDivide(n,r);return t([n,r]),a}),i,null,fv,{})}});var vx=$g({mul_:function(e,t){var n=Zg(e,"a","mul"),r=Zg(t,"b","mul"),a=Mg(n,r);n=a[0],r=a[1];var i={a:n,b:r};return Gg.runKernelFunc((function(e,t){var a=e.multiply(n,r);return t([n,r]),a}),i,null,"Multiply")}});var gx=$g({abs_:function(e){var t=Zg(e,"x","abs"),n={x:t};return Gg.runKernelFunc((function(e,n){return n([t]),"complex64"===t.dtype?e.complexAbs(t):e.abs(t)}),n,null,"Abs")}});var yx=$g({acos_:function(e){var t=Zg(e,"x","acos"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.acos(t);return n([t]),r}),n,null,"Acos")}});var bx=$g({acosh_:function(e){var t=Zg(e,"x","acosh"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.acosh(t);return n([t]),r}),n,null,"Acosh")}});var xx=$g({addN_:function(e){Ev(Array.isArray(e),(function(){return"The argument passed to tf.addN() must be a list of tensors"})),Ev(e.length>=1,(function(){return"Must pass at least one tensor to tf.addN(), but got "+e.length}));var t=e.map((function(e,t){return Zg(e,"tensors"+t,"addN")})),n=t[0];t.forEach((function(e){if(e.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")})),t.forEach((function(e){if(!Fv(e.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")}));var r=t;return Gg.runKernelFunc((function(e,n){var r=e.addN(t);return n(t),r}),r,null,"AddN")}});function wx(e,t){for(var n=0;n<e.length;++n)if(e[e.length-n-1]!==t-1-n)return!1;return!0}function kx(e,t,n){for(var r=e.length+t.length,a=[],i=0,o=0,s=0;s<r;s++)-1===n.indexOf(s)?a.push(e[i++]):a.push(t[o++]);return a}function Sx(e,t){for(var n=[],r=e.length,a=0;a<r;a++)-1===t.indexOf(a)&&n.push(e[a]);return[n,t.map((function(t){return e[t]}))]}function Nx(e,t){return kx(e,t.map((function(e){return 1})),t)}function Ix(e,t,n){Ev(wx(t,n),(function(){return e+" supports only inner-most axes for now. Got axes "+t+" and rank-"+n+" input."}))}function Cx(e,t){if(wx(e,t))return null;for(var n=[],r=0;r<t;++r)-1===e.indexOf(r)&&n.push(r);return e.forEach((function(e){return n.push(e)})),n}function Rx(e){return e.map((function(e,t){return[t,e]})).sort((function(e,t){return e[1]-t[1]})).map((function(e){return e[0]}))}function Ex(e,t){for(var n=[],r=t-e;r<t;++r)n.push(r);return n}var Ax=$g({all_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Zg(e,"x","all","bool"),a={x:r},i={axis:t,keepDims:n};return Gg.runKernelFunc((function(e){var a=Pv(t,r.shape),i=a,o=Cx(i,r.rank);null!=o&&(r=xb(r,o),i=Ex(i.length,r.rank));var s=e.all(r,i);if(n){var u=Nx(s.shape,a);return gb(s,u)}return s}
17),a,null,"All",i)}});var Tx=$g({any_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Zg(e,"x","any","bool"),a={x:r},i={axis:t,keepDims:n};return Gg.runKernelFunc((function(e){var a=Pv(t,r.shape),i=a,o=Cx(i,r.rank);null!=o&&(r=xb(r,o),i=Ex(i.length,r.rank));var s=e.any(r,i);if(n){var u=Nx(s.shape,a);return gb(s,u)}return s}),a,null,"Any",i)}});var Dx=$g({argMax_:function(e,t){void 0===t&&(t=0);var n=Zg(e,"x","argMax"),r={x:n},a={axis:t};return Gg.runKernelFunc((function(e,r){r([n]);var a=Pv(t,n.shape),i=Cx(a,n.rank);return null!=i&&(n=xb(n,i),a=Ex(a.length,n.rank)),e.argMax(n,a[0])}),r,null,"ArgMax",a)}});var _x=$g({argMin_:function(e,t){void 0===t&&(t=0);var n=Zg(e,"x","argMin"),r={x:n},a={axis:t};return Gg.runKernelFunc((function(e,r){r([n]),null==t&&(t=0);var a=Pv(t,n.shape),i=Cx(a,n.rank);return null!=i&&(n=xb(n,i),a=Ex(a.length,n.rank)),e.argMin(n,a[0])}),r,null,"ArgMin",a)}});var Fx=$g({asin_:function(e){var t=Zg(e,"x","asin"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.asin(t);return n([t]),r}),n,null,"Asin")}});var Ox=$g({asinh_:function(e){var t=Zg(e,"x","asinh"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.asinh(t);return n([t]),r}),n,null,"Asinh")}});var Mx=$g({atan_:function(e){var t=Zg(e,"x","atan"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.atan(t);return n([t]),r}),n,null,"Atan")}});var Lx=$g({atan2_:function(e,t){var n=Zg(e,"a","atan2"),r=Zg(t,"b","atan2"),a=Mg(n,r);n=a[0],r=a[1];var i={a:n,b:r};return Gg.runKernelFunc((function(e,t){var a=e.atan2(n,r);return t([n,r]),a}),i,null,"Atan2")}});var zx=$g({atanh_:function(e){var t=Zg(e,"x","atanh"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.atanh(t);return n([t]),r}),n,null,"Atanh")}});function Bx(e,t,n,r,a,i){void 0===a&&(a="NHWC");var o=e[3];return Vx(e,[].concat(t,[o]),n,i,r,null,null,Jx(a))}function Px(e,t,n,r,a,i,o){void 0===o&&(o="channelsLast");var s,u=jx(t),l=u[0],c=u[1];if("channelsLast"===o)s=[l,c,e[3],e[3]];else{if("channelsFirst"!==o)throw new Error("Unknown dataFormat "+o);s=[l,c,e[1],e[1]]}return Vx(e,s,n,r,a,i,!1,o)}function Wx(e,t,n,r,a,i,o){void 0===o&&(o="NDHWC");var s,u,l=Hx(t),c=l[0],p=l[1],h=l[2];if("NDHWC"===o)u="channelsLast",s=[c,p,h,e[4],e[4]];else{if("NCDHW"!==o)throw new Error("Unknown dataFormat "+o);u="channelsFirst",s=[c,p,h,e[1],e[1]]}return Ux(e,s,n,r,a,!1,u,i)}function Vx(e,t,n,r,a,i,o,s){void 0===o&&(o=!1),void 0===s&&(s="channelsLast");var u=-1,l=-1,c=-1,p=-1;if("channelsLast"===s)u=e[0],l=e[1],c=e[2],p=e[3];else{if("channelsFirst"!==s)throw new Error("Unknown dataFormat "+s);u=e[0],p=e[1],l=e[2],c=e[3]}var h,f=t[0],d=t[1],m=t[3],v=jx(n),g=v[0],y=v[1],b=jx(r),x=b[0],w=b[1],k=qx(f,x),S=qx(d,w),N=function(e,t,n,r,a,i,o,s,u){var l,c,p;if("number"==typeof e){l={top:e,bottom:e,left:e,right:e,type:0===e?"VALID":"NUMBER"};var h=function(e,t,n,r,a){null==r&&(r=Gx(e,t,n));var i=e[0],o=e[1],s=Kx((i-t+2*r)/n+1,a);Ev(Ov(s),(function(){return"The output # of rows ("+s+") must be an integer. Change the stride and/or zero pad parameters"}));var u=Kx((o-t+2*r)/n+1,a);return Ev(Ov(u),(function(){return"The output # of columns ("+u+") must be an integer. Change the stride and/or zero pad parameters"})),[s,u]}([t,n],i,r,e,s);c=h[0],p=h[1]}else if("same"===e){c=Math.ceil(t/r),p=Math.ceil(n/a);var f=Math.max(0,(c-1)*r+i-t),d=Math.max(0,(p-1)*a+o-n),m=Math.floor(f/2),v=f-m,g=Math.floor(d/2);l={top:m,bottom:v,left:g,right:d-g,type:"SAME"}}else if("valid"===e)l={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-i+1)/r),p=Math.ceil((n-o+1)/a);else{if("object"!=typeof e)throw Error("Unknown padding parameter: "+e);var y="channelsLast"===u?e[1][0]:e[2][0],b="channelsLast"===u?e[1][1]:e[2][1],x="channelsLast"===u?e[2][0]:e[3][0],w="channelsLast"===u?e[2][1]:e[3][1];l={top:y,bottom:b,left:x,right:w,type:0===y&&0===b&&0===x&&0===w?"VALID":"EXPLICIT"},c=Kx((t-i+y+b)/r+1,s),p=Kx((n-o+x+w)/a+1,s)}return{padInfo:l,outHeight:c,outWidth:p}}(a,l,c,g,y,k,S,i,s),I=N.padInfo,C=N.outHeight,R=N.outWidth,E=o?m*p:m;return"channelsFirst"===s?h=[u,E,C,R]:"channelsLast"===s&&(h=[u,C,R,E]),{batchSize:u,dataFormat:s,inHeight:l,inWidth:c,inChannels:p,outHeight:C,outWidth:R,outChannels:E,padInfo:I,str
17ideHeight:g,strideWidth:y,filterHeight:f,filterWidth:d,effectiveFilterHeight:k,effectiveFilterWidth:S,dilationHeight:x,dilationWidth:w,inShape:e,outShape:h,filterShape:t}}function Ux(e,t,n,r,a,i,o,s){void 0===i&&(i=!1),void 0===o&&(o="channelsLast");var u=-1,l=-1,c=-1,p=-1,h=-1;if("channelsLast"===o)u=e[0],l=e[1],c=e[2],p=e[3],h=e[4];else{if("channelsFirst"!==o)throw new Error("Unknown dataFormat "+o);u=e[0],h=e[1],l=e[2],c=e[3],p=e[4]}var f,d=t[0],m=t[1],v=t[2],g=t[4],y=Hx(n),b=y[0],x=y[1],w=y[2],k=Hx(r),S=k[0],N=k[1],I=k[2],C=qx(d,S),R=qx(m,N),E=qx(v,I),A=function(e,t,n,r,a,i,o,s,u,l,c){var p,h,f,d;if("number"==typeof e){p={top:e,bottom:e,left:e,right:e,front:e,back:e,type:0===e?"VALID":"NUMBER"};var m=function(e,t,n,r,a,i){null==a&&(a=Gx(e,t,r));var o=e[0],s=e[1],u=e[2],l=Kx((o-t+2*a)/r+1,i);Ev(Ov(l),(function(){return"The output # of depths ("+l+") must be an integer. Change the stride and/or zero pad parameters"}));var c=Kx((s-t+2*a)/r+1,i);Ev(Ov(c),(function(){return"The output # of rows ("+c+") must be an integer. Change the stride and/or zero pad parameters"}));var p=Kx((u-t+2*a)/r+1,i);return Ev(Ov(p),(function(){return"The output # of columns ("+p+") must be an integer. Change the stride and/or zero pad parameters"})),[l,c,p,n]}([t,n,r,1],s,1,a,e,c);h=m[0],f=m[1],d=m[2]}else if("same"===e){h=Math.ceil(t/a),f=Math.ceil(n/i),d=Math.ceil(r/o);var v=(h-1)*a+s-t,g=(f-1)*i+u-n,y=(d-1)*o+l-r,b=Math.floor(v/2),x=v-b,w=Math.floor(g/2),k=g-w,S=Math.floor(y/2);p={top:w,bottom:k,left:S,right:y-S,front:b,back:x,type:"SAME"}}else{if("valid"!==e)throw Error("Unknown padding parameter: "+e);p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},h=Math.ceil((t-s+1)/a),f=Math.ceil((n-u+1)/i),d=Math.ceil((r-l+1)/o)}return{padInfo:p,outDepth:h,outHeight:f,outWidth:d}}(a,l,c,p,b,x,w,C,R,E,s),T=A.padInfo,D=A.outDepth,_=A.outHeight,F=A.outWidth,O=i?g*h:g;return"channelsFirst"===o?f=[u,O,D,_,F]:"channelsLast"===o&&(f=[u,D,_,F,O]),{batchSize:u,dataFormat:o,inDepth:l,inHeight:c,inWidth:p,inChannels:h,outDepth:D,outHeight:_,outWidth:F,outChannels:O,padInfo:T,strideDepth:b,strideHeight:x,strideWidth:w,filterDepth:d,filterHeight:m,filterWidth:v,effectiveFilterDepth:C,effectiveFilterHeight:R,effectiveFilterWidth:E,dilationDepth:S,dilationHeight:N,dilationWidth:I,inShape:e,outShape:f,filterShape:t}}function Gx(e,t,n,r){void 0===r&&(r=1);var a=qx(t,r);return Math.floor((e[0]*(n-1)-n+a)/2)}function jx(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function Hx(e){return"number"==typeof e?[e,e,e]:e}function qx(e,t){return t<=1?e:e+(e-1)*(t-1)}function Kx(e,t){if(!t)return 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 Xx(e){var t=jx(e),n=t[0],r=t[1],a=t[2];return 1===n&&1===r&&1===a}function Yx(e,t){return Xx(e)||Xx(t)}function Jx(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw new Error("Unknown dataFormat "+e)}var Zx=$g({avgPool_:function(e,t,n,r,a){var i=Zg(e,"x","avgPool","float32");Ev(Yx(n,1),(function(){return"Error in avgPool: Either strides or dilations must be 1. Got strides "+n+" and dilations '1'"}));var o=i,s=!1;3===i.rank&&(s=!0,o=gb(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Ev(4===o.rank,(function(){return"Error in avgPool: x must be rank 4 but got rank "+o.rank+"."})),null!=a&&Ev(Ov(r),(function(){return"Error in avgPool: pad must be an integer when using, dimRoundingMode "+a+" but got pad "+r+"."}));var u={x:o},l={filterSize:t,strides:n,pad:r,dimRoundingMode:a},c=Gg.runKernelFunc((function(e,i){var s=Px(o.shape,t,n,1,r,a);return i([o]),1===s.filterWidth&&1===s.filterHeight&&Fv(s.inShape,s.outShape)?o.clone():e.avgPool(o,s)}),u,null,"AvgPool",l);return c=Jy(c,i.dtype),s?gb(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});var Qx=$g({avgPool3d_:function(e,t,n,r,a,i,o){void 0===i&&(i="NDHWC"),null==o?o=[1,1,1]:ax("dilations is deprecated, this field will be gone in v3.0.0.");var s=Zg(e,"x","avgPool3d","float32"),u=s,l=!1;4===s.rank&&(l=!0,u=gb(s,[1,s.shape[0],s.shape[1],s.shape[2],s.shape[3]])),Ev(5===u.rank,(function(){return"Error in avgPool3d: x must be rank 5 but got rank "+u.rank+"."})),Ev("NDHWC"===i,(function(){return"Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of "+i})),Ev(Yx(n,o),(function(){return"Error in avgPool3d: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+o+"'"})),null!=a&&Ev(Ov(r),(function(){return"Error in avgPool3d: pad must be an integer when using, dimRoundingMode "+a+" but got pad "+r
17+"."}));var c={x:u},p={filterSize:t,strides:n,pad:r,dimRoundingMode:a,dataFormat:i,dilations:o},h=Gg.runKernelFunc((function(e,s){null==o&&(o=[1,1,1]);var l=Wx(u.shape,t,n,o,r,a,i);return s([u]),e.avgPool3d(u,l)}),c,null,"AvgPool3D",p);return h=Jy(h,u.dtype),l?gb(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}});function $x(e,t){var n=e[0].length;e.forEach((function(e,t){Ev(e.length===n,(function(){return"Error in concat"+n+"D: rank of tensors["+t+"] must be the same as the rank of the rest ("+n+")"}))})),Ev(t>=0&&t<n,(function(){return"Error in concat"+n+"D: axis must be between 0 and "+(n-1)+"."}));var r=e[0];e.forEach((function(e,a){for(var i=0;i<n;i++)Ev(i===t||e[i]===r[i],(function(){return"Error in concat"+n+"D: Shape of tensors["+a+"] ("+e+") does not match the shape of the rest ("+r+") along the non-concatenated axis "+a+"."}))}))}function ew(e,t){for(var n=e[0].slice(),r=1;r<e.length;r++)n[t]+=e[r][t];return n}var tw=$g({concat_:function(e,t){void 0===t&&(t=0),Ev(e.length>=1,(function(){return"Pass at least one tensor to concat"}));var n=Qg(e,"tensors","concat");
17"complex64"===n[0].dtype&&n.forEach((function(e){if("complex64"!==e.dtype)throw new Error("Cannot concatenate complex64 tensors with a tensor\n          with dtype "+e.dtype+". ")}));var r=n,a={axis:t};return Gg.runKernelFunc((function(e,r){var a=Pv(t,n[0].shape)[0],i=ew(n.map((function(e){return e.shape})),a);if(0===_v(i))return ny([],i);if(1===(n=n.filter((function(e){return e.size>0}))).length)return n[0];$x(n.map((function(e){return e.shape})),a);var o=e.concat(n,a);return r(n),o}),r,null,"Concat",a)}});var nw=$g({sigmoid_:function(e){var t=Zg(e,"x","sigmoid"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.sigmoid(t);return n([r]),r}),n,null,"Sigmoid")}});var rw=$g({slice_:function(e,t,n){var r=Zg(e,"x","slice");if(0===r.rank)throw new Error("Slicing scalar is not possible");var a={x:r},i={begin:t,size:n};return Gg.runKernelFunc((function(e,a){var i=Kb(r,t,n),o=i[0],s=i[1];return Fb(r,o,s),a([r]),e.slice(r,o,s)}),a,null,"Slice",i)}});var aw=$g({tanh_:function(e){var t=Zg(e,"x","tanh"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.tanh(t);return n([r]),r}),n,null,"Tanh")}});var iw=$g({basicLSTMCell_:function(e,t,n,r,a,i){var o=Zg(e,"forgetBias","basicLSTMCell"),s=Zg(t,"lstmKernel","basicLSTMCell"),u=Zg(n,"lstmBias","basicLSTMCell"),l=Zg(r,"data","basicLSTMCell"),c=Zg(a,"c","basicLSTMCell"),p=Zg(i,"h","basicLSTMCell"),h=tw([l,p],1),f=yb(h,s),d=fx(f,u),m=d.shape[0],v=d.shape[1]/4,g=[m,v],y=rw(d,[0,0],g),b=rw(d,[0,v],g),x=rw(d,[0,2*v],g),w=rw(d,[0,3*v],g),k=fx(vx(nw(y),aw(b)),vx(c,nw(fx(o,x))));return[k,vx(aw(k),nw(w))]}});var ow=$g({batchToSpaceND_:function(e,t,n){var r=Zg(e,"x","batchToSpaceND"),a=t.reduce((function(e,t){return e*t}));Ev(r.rank>=1+t.length,(function(){return"input rank is "+r.rank+" but should be > than blockShape.length "+t.length})),Ev(n.length===t.length,(function(){return"crops.length is "+n.length+" but should be equal to blockShape.length  "+t.length})),Ev(r.shape[0]%a==0,(function(){return"input tensor batch is "+r.shape[0]+" but is not divisible by the product of the elements of blockShape "+t.join(" * ")+" === "+a}));var i={x:r},o={blockShape:t,crops:n};return Gg.runKernelFunc((function(e){return e.batchToSpaceND(r,t,n)}),i,null,"BatchToSpaceND",o)}});function sw(e){return null==e?null:0===e.rank?gb(e,[e.size]):1===e.rank?e:2===e.rank?gb(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?gb(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e}var uw=$g({batchNorm_:function(e,t,n,r,a,i){null==i&&(i=.001);var o,s,u=Zg(e,"x","batchNorm"),l=Zg(t,"mean","batchNorm"),c=Zg(n,"variance","batchNorm");null!=a&&(o=Zg(a,"scale","batchNorm")),null!=r&&(s=Zg(r,"offset","batchNorm")),Ev(l.rank===c.rank,(function(){return"Batch normalization gradient requires mean and variance to have equal ranks."})),Ev(null==s||l.rank===s.rank,(function(){return"Batch normalization gradient requires mean and offset to have equal ranks."})),Ev(null==o||l.rank===o.rank,(function(){return"Batch normalization gradient requires mean and scale to have equal ranks."}));var p=function(e){return 0===e.rank||1===e.rank?gb(e,[1,1,1,e.size]):2===e.rank?gb(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?gb(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e}(u),h={x:p,scale:o,offset:s,mean:l,variance:c},f={varianceEpsilon:i},d=Gg.runKernelFunc((function(e,t){return t([p,l,c,o]),e.batchNorm(p,sw(l),sw(c),sw(s),sw(o),i)}),h,null,"FusedBatchNorm",f);return gb(d,u.shape)}});var lw=$g({batchNorm2d_:function(e,t,n,r,a,i){var o,s,u=Zg(e,"x","batchNorm"),l=Zg(t,"mean","batchNorm"),c=Zg(n,"variance","batchNorm");return null!=a&&(o=Zg(a,"scale","batchNorm")),null!=r&&(s=Zg(r,"offset","batchNorm")),Ev(2===u.rank,(function(){return"Error in batchNorm2D: x must be rank 2 but got rank "+u.rank+"."})),Ev(2===l.rank||1===l.rank,(function(){return"Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank "+l.rank+"."})),Ev(2===c.rank||1===c.rank,(function(){return"Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank "+c.rank+"."})),null!=o&&Ev(2===o.rank||1===o.rank,(function(){return"Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank "+o.rank+"."})),null!=s&&Ev(2===s.rank||1===s.rank,(function(){return"Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank "+s.rank+"."})),uw(u,l,c,s,o,i)}});var cw=$g({batchNorm3d_:function(e,t,n,r,a,i){var o,s,u=Zg(e,"x","batchNorm"),l=Zg(t,"mean","batchNorm"),c=Zg(n,"variance","batchNorm");return null!=a&&(o=Zg(a,"scale","batchNorm")),null!=r&&(s=Zg(r,"offset","batchNorm")),Ev(3===u.rank,(function(){return"Error in batchNorm3D: x must be rank 3 but got rank "+u.rank+"."})),Ev(3===l.rank||1===l.rank,(function(){return"Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank "+l.rank+"."})),Ev(3===c.rank||1===c.rank,(function(){return"Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank "+c.rank+"."})),null!=o&&Ev(3===o.rank||1===o.rank,(function(){return"Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank "+o.rank+"."})),null!=s&&Ev(3===s.rank||1===s.rank,(function(){return"Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank "+s.rank+"."})),uw(u,l,c,s,o,i)}});var pw=$g({batchNorm4d_:function(e,t,n,r,a,i){var o,s,u=Zg(e,"x","batchNorm"),l=Zg(t,"mean","batchNorm"),c=Zg(n,"variance","batchNorm");return null!=a&&(o=Zg(a,"scale","batchNorm")),null!=r&&(s=Zg(r,"offset","batchNorm")),Ev(4===u.rank,(function(){return"Error in batchNorm4D: x must be rank 4 but got rank "+u.rank+"."})),Ev(4===l.rank||1===l.rank,(function(){return"Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank "+l.rank+"."})),Ev(4===c.rank||1===c.rank,(function(){return"Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank "+c.rank+"."})),null!=o&&Ev(4===o.rank||1===o.rank,(function(){return"Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank "+o.rank+"."})),null!=s&&Ev(4===s.rank||1===s.rank,(function(){return"Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank "+s.rank+"."})),uw(u,l,c,s,o,i)}});var hw=$g({broadcastTo_:function(e,t){var n=Zg(e,"broadcastTo","x"),r=n.shape;if(t.some((function(e){return!(e>0)||e%1!=0})))throw new Error("broadcastTo(): Invalid broadcast shape ["+t+"].");if(t.length<n.rank)throw new Error("broadcastTo(): shape.length="+t.length+" < input.rank="+n.rank+".");if(t.length>n.rank){for(var a=n.shape.slice();a.length<t.length;)a.unshift(1);n=gb(n,a)}for(var i=n.shape,o=Array.from(t),s=t.length-1;s>=0;s--)if(i[s]===t[s])o[s]=1;else if(1!==n.shape[s])throw new Error("broadcastTo(): ["+r+"] cannot be broadcast to ["+t+"].");if(0===o.map((function(e,t){return e>1?t:-1})).filter((function(e){return e>=0})).length)return Zy(n);var u={x:n},l={shape:t,inputShape:i};return Gg.runKernelFunc((function(e){return e.tile(n,o)}),u,null,"BroadcastTo",l)}});var fw=$g({ceil_:function(e){var t=Zg(e,"x","ceil"),n={x:t};return Gg.runKernelFunc((function(e){return e.ceil(t)}),n,null,"Ceil")}});var dw=$g({clipByValue_:function(e,t,n){var r=Zg(e,"x","clipByValue");Ev(t<=n,(function(){return"Error in clip: min ("+t+") must be less than or equal to max ("+n+")."}));var a={x:r},i={clipValueMin:t,clipValueMax:n};return Gg.runKernelFunc((function(e,a){var i=e.clip(r,t,n);return a([r]),i}),a,null,"ClipByValue",i)}});var mw=$g({concat1d_:function(e){return tw(e,0)}});var vw=$g({concat2d_:function(e,t){return tw(e,t)}});var gw=$g({concat3d_:function(e,t){return tw(e,t)}});var yw=$g({concat4d_:function(e,t){return tw(e,t)}});var bw=$g({conv2d_:function(e,t,n,r,a,i,o){void 0===a&&(a="NHWC"),void 0===i&&(i=[1,1]);var s=Zg(e,"x","conv2d"),u=Zg(t,"filter","conv2d"),l=s,c=!1;3===s.rank&&(c=!0,l=gb(s,[1,s.shape[0],s.shape[1],s.shape[2]])),Ev(4===l.rank,(function(){return"Error in conv2d: input must be rank 4, but got rank "+l.rank+"."})),Ev(4===u.rank,(function(){return"Error in conv2d: filter must be rank 4, but got rank "+u.rank+"."})),null!=o&&Ev(Ov(r),(function(){return"Error in conv2d: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+r
17+"."}));var p="NHWC"===a?l.shape[3]:l.shape[1];Ev(p===u.shape[2],(function(){return"Error in conv2d: depth of input ("+p+") must match input depth for filter "+u.shape[2]+"."})),Ev(Yx(n,i),(function(){return"Error in conv2D: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+i+"'"}));var h={x:l,filter:u},f={strides:n,pad:r,dataFormat:a,dilations:i,dimRoundingMode:o},d=Gg.runKernelFunc((function(e,t){var s=Jx(a),c=Vx(l.shape,u.shape,n,i,r,o,!1,s),p=e.conv2d(l,u,c);return t([l,u]),p}),h,null,"Conv2D",f);return c?gb(d,[d.shape[1],d.shape[2],d.shape[3]]):d}});var xw=$g({conv1d_:function(e,t,n,r,a,i,o){void 0===a&&(a="NWC"),void 0===i&&(i=1);var s=Zg(e,"x","conv1d"),u=Zg(t,"filter","conv1d"),l=s,c=!1;2===s.rank&&(c=!0,l=gb(s,[1,s.shape[0],s.shape[1]])),Ev(3===l.rank,(function(){return"Error in conv1d: input must be rank 3, but got rank "+l.rank+"."})),Ev(3===u.rank,(function(){return"Error in conv1d: filter must be rank 3, but got rank "+u.rank+"."})),null!=o&&Ev(Ov(r),(function(){return"Error in conv1d: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+r+"."})),Ev(l.shape[2]===u.shape[1],(function(){return"Error in conv1d: depth of input ("+l.shape[2]+") must match input depth for filter "+u.shape[1]+"."})),Ev(Yx(n,i),(function(){return"Error in conv1D: Either stride or dilation must be 1. Got stride "+n+" and dilation '"+i+"'"})),Ev("NWC"===a,(function(){return"Error in conv1d: got dataFormat of "+a+" but only NWC is currently supported."}));var p=gb(u,[1,u.shape[0],u.shape[1],u.shape[2]]),h=gb(l,[l.shape[0],1,l.shape[1],l.shape[2]]),f=bw(h,p,[1,n],r,"NHWC",[1,i],o);return gb(f,c?[f.shape[2],f.shape[3]]:[f.shape[0],f.shape[2],f.shape[3]])}});var ww=$g({conv2DBackpropInput_:function(e,t,n,r,a,i,o){void 0===i&&(i="NHWC"),Ev(e.length===t.rank,(function(){return"Length of inShape ("+e.length+") and rank of dy ("+t.rank+") must match"}));var s=e,u=t,l=!1;3===t.rank&&(l=!0,u=gb(t,[1,t.shape[0],t.shape[1],t.shape[2]]),s=[1,e[0],e[1],e[2]]),Ev(4===s.length,(function(){return"Error in conv2dDerInput: inShape must be length 4, but got length "+s.length+"."})),Ev(4===u.rank,(function(){return"Error in conv2dDerInput: dy must be rank 4, but got rank "+u.rank})),Ev(4===n.rank,(function(){return"Error in conv2dDerInput: filter must be rank 4, but got rank "+n.rank}));var c="NHWC"===i?s[3]:s[1],p="NHWC"===i?u.shape[3]:u.shape[1];Ev(c===n.shape[2],(function(){return"Error in conv2dDerInput: depth of input ("+c+") must match input depth for filter "+n.shape[2]+"."})),Ev(p===n.shape[3],(function(){return"Error in conv2dDerInput: depth of output ("+p+") must match output depth for filter "+n.shape[3]+"."})),null!=o&&Ev(Ov(a),(function(){return"Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+a+"."}));var h={dy:u,filter:n},f={strides:r,pad:a,dataFormat:i,dimRoundingMode:o,inputShape:s},d=Gg.runKernelFunc((function(e,t){var l=Jx(i),c=Vx(s,n.shape,r,1,a,o,!1,l),p=e.conv2dDerInput(u,n,c);return t([u,n]),p}),h,null,"Conv2DBackpropInput",f);return l?gb(d,[d.shape[1],d.shape[2],d.shape[3]]):d}});var kw=$g({conv2dTranspose_:function(e,t,n,r,a,i){var o=Zg(e,"x","conv2dTranspose"),s=Zg(t,"filter","conv2dTranspose");return ww(n,o,s,r,a,"NHWC",i)}});var Sw=$g({conv3d_:function(e,t,n,r,a,i){void 0===a&&(a="NDHWC"),void 0===i&&(i=[1,1,1]);var o=Zg(e,"x","conv3d"),s=Zg(t,"filter","conv3d"),u=o,l=!1;4===o.rank&&(l=!0,u=gb(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),Ev(5===u.rank,(function(){return"Error in conv3d: input must be rank 5, but got rank "+u.rank+"."})),Ev(5===s.rank,(function(){return"Error in conv3d: filter must be rank 5, but got rank "+s.rank+"."})),Ev(u.shape[4]===s.shape[3],(function(){return"Error in conv3d: depth of input ("+u.shape[4]+") must match input depth for filter "+s.shape[3]+"."})),Ev(Yx(n,i),(function(){return"Error in conv3D: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+i+"'"})),Ev("NDHWC"===a,(function(){return"Error in conv3d: got dataFormat of "+a+" but only NDHWC is currently supported."}));var c={x:u,filter:s},p={strides:n,pad:r,dataFormat:a,dilations:i},h=Gg.runKernelFunc((function(e,t){var a=Ux(u.shape,s.shape,n,i,r),o=e.conv3d(u,s,a);return t([u,s]),o}),c,null,"Conv3D",p);return l?gb(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}});var Nw=$g({conv3DBackpropInput_:function(e,t,n,r,a){Ev(e.length===t.rank,(function(){return"Length of inShape ("+e.length+") and rank of dy ("+t.rank+") must match"}));var i=e,o=t,s=!1;4===t.rank&&(s=!0,o=gb(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),i=[1,e[0],e[1],e[2],e[3]]);var u=i[4],l=o.shape[4];Ev(5===i.length,(function(){return"Error in conv3dDerInput: inShape must be length 5, but got length "+i.length+"."})),Ev(5===o.rank,(function(){return"Error in conv3dDerInput: dy must be rank 5, but got rank "+o.rank})),Ev(5===n.rank,(function(){return"Error in conv3dDerInput: filter must be rank 5, but got rank "+n.rank})),Ev(u===n.shape[3],(function(){return"Error in conv3dDerInput: depth of input ("+u+") must match input depth for filter "+n.shape[3]+"."})),Ev(l===n.shape[4],(function(){return"Error in conv3dDerInput: depth of output ("+l+") must match output depth for filter "+n.shape[4]+"."}));var c={dy:o},p={pad:a},h=Gg.runKernelFunc((function(e){var t=Ux(i,n.shape,r,1,a);return e.conv3dDerInput(o,n,t)}),c,null,"Conv3DBackpropInputV2",p);return s?gb(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}});var Iw=$g({conv3dTranspose_:function(e,t,n,r,a){var i=Zg(e,"x","conv3dTranspose"),o=Zg(t,"filter","conv3dTranspose");return Nw(n,i,o,r,a)}});var Cw=$g({cos_:function(e){var t=Zg(e,"x","cos"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.cos(t);return n([t]),r}),n,null,hv)}});var Rw=$g({cosh_:function(e){var t=Zg(e,"x","cosh"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.cosh(t);return n([t]),r}),n,null,"Cosh")}});var Ew=$g({cumsum_:function(e,t,n,r){void 0===t&&(t=0),void 0===n&&(n=!1),void 0===r&&(r=!1);var a=Zg(e,"x","cumsum"),i={x:a},o={axis:t,exclusive:n,reverse:r};return Gg.runKernelFunc((function(e,i){var o=Cx([t],a.rank),s=a;null!=o&&(s=xb(a,o));var u=Ex(1,a.rank)[0],l=e.cumsum(s,u,n,r);
17if(i([a]),null!=o){var c=Rx(o);l=xb(l,c)}return l}),i,null,"Cumsum",o)}});var Aw=$g({depthToSpace_:function(e,t,n){void 0===n&&(n="NHWC");var r=Zg(e,"x","depthToSpace"),a="NHWC"===n?r.shape[1]:r.shape[2],i="NHWC"===n?r.shape[2]:r.shape[3],o="NHWC"===n?r.shape[3]:r.shape[1];Ev(a*t>=0,(function(){return"Negative dimension size caused by overflow when multiplying\n    "+a+" and "+t+"  for depthToSpace with input shape\n    "+r.shape})),Ev(i*t>=0,(function(){return"Negative dimension size caused by overflow when multiplying\n    "+i+" and "+t+" for depthToSpace with input shape\n        "+r.shape})),Ev(o%(t*t)==0,(function(){return"Dimension size must be evenly divisible by "+t*t+" but is "+o+" for depthToSpace with input shape "+r.shape}));var s={x:r},u={blockSize:t,dataFormat:n};return Gg.runKernelFunc((function(e){return e.depthToSpace(r,t,n)}),s,null,"DepthToSpace",u)}});var Tw=$g({depthwiseConv2d_:function(e,t,n,r,a,i,o){void 0===a&&(a="NHWC"),void 0===i&&(i=[1,1]);var s=Zg(e,"x","depthwiseConv2d"),u=Zg(t,"filter","depthwiseConv2d"),l=s,c=!1;3===s.rank&&(c=!0,l=gb(s,[1,s.shape[0],s.shape[1],s.shape[2]])),Ev(4===l.rank,(function(){return"Error in depthwiseConv2d: input must be rank 4, but got rank "+l.rank+"."})),Ev(4===u.rank,(function(){return"Error in depthwiseConv2d: filter must be rank 4, but got rank "+u.rank+"."})),Ev(l.shape[3]===u.shape[2],(function(){return"Error in depthwiseConv2d: number of input channels ("+l.shape[3]+") must match the inChannels dimension in filter "+u.shape[2]+"."})),null!=o&&Ev(Ov(r),(function(){return"Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+r+"."}));var p={x:l,filter:u},h={strides:n,pad:r,dataFormat:a,dilations:i,dimRoundingMode:o},f=Gg.runKernelFunc((function(e,t){null==i&&(i=[1,1]),Ev(Yx(n,i),(function(){return"Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+i+"'"}));var a=Vx(l.shape,u.shape,n,i,r,o,!0),s=e.depthwiseConv2D(l,u,a);return t([l,u]),s}),p,null,"DepthwiseConv2dNative",h);return c?gb(f,[f.shape[1],f.shape[2],f.shape[3]]):f}});var Dw=$g({diag_:function(e){var t=Zg(e,"x","diag"),n={x:t};return Gg.runKernelFunc((function(n){var r=gb(t,[t.size]),a=n.diag(r),i=[].concat(e.shape,e.shape);return gb(a,i)}),n,null,"Diag")}});var _w=$g({dilation2d_:function(e,t,n,r,a,i){void 0===a&&(a=[1,1]),void 0===i&&(i="NHWC");var o=Zg(e,"x","dilation2d"),s=Zg(t,"filter","dilation2d");Ev(3===o.rank||4===o.rank,(function(){return"Error in dilation2d: input must be rank 3 or 4, but got rank "+o.rank+"."})),Ev(3===s.rank,(function(){return"Error in dilation2d: filter must be rank 3, but got rank "+s.rank+"."})),Ev("NHWC"===i,(function(){return"Error in dilation2d: Only NHWC is currently supported, but got dataFormat of "+i}));var u=o,l=!1;3===o.rank&&(u=gb(o,[1,o.shape[0],o.shape[1],o.shape[2]]),l=!0);var c={x:u,filter:s},p={strides:n,pad:r,dilations:a},h=Gg.runKernel("Dilation2D",c,p);return l?gb(h,[h.shape[1],h.shape[2],h.shape[3]]):h}});function Fw(e,t){for(var n=e.length,r=[],a=0;a<n;a++){var i=n-1-a,o=e[i]||1;(t[t.length-1-a]||1)>1&&1===o&&r.unshift(i)}return r}function Ow(e,t){for(var n=[],r=0;r<t.length;r++){var a=e[e.length-r-1],i=t.length-r-1,o=t[i];(null==a||1===a&&o>1)&&n.unshift(i)}return n}function Mw(e,t){for(var n=[],r=Math.max(e.length,t.length),a=0;a<r;a++){var i=e[e.length-a-1];null==i&&(i=1);var o=t[t.length-a-1];if(null==o&&(o=1),1===i)n.unshift(o);else if(1===o)n.unshift(i);else{if(i!==o)throw Error("Operands could not be broadcast together with shapes "+e+" and "+t+".");n.unshift(i)}}return n}var Lw=$g({equal_:function(e,t){var n=Zg(e,"a","equal"),r=Zg(t,"b","equal"),a=Mg(n,r);n=a[0],r=a[1],Mw(n.shape,r.shape);var i={a:n,b:r};return Gg.runKernelFunc((function(e){return e.equal(n,r)}),i,null,"Equal")}});var zw=$g({where_:function(e,t,n){var r=Zg(t,"a","where"),a=Zg(n,"b","where"),i=Zg(e,"condition","where","bool"),o=Mw(r.shape,a.shape),s=hw(r,o),u=hw(a,o);1===i.rank&&Ev(i.shape[0]===r.shape[0],(function(){return"The first dimension of `a` must match the size of `condition`."})),1!==i.rank&&Av(i.shape,u.shape,"Error in where: ");var l={condition:i,t:s,e:u};return Gg.runKernelFunc((function(e,t){var n=e.select(i,s,u);return t([i]),n}),l,null,"SelectV2")}});var Bw=$g({zerosLike_:function(e){var t=Zg(e,"x","zerosLike"),n={x:t};return Gg.runKernelFunc((function(e){return e.zerosLike(t)}),n,null,"ZerosLike")}});var Pw=$g({divNoNan_:function(e,t){var n=Zg(e,"a","div"),r=Zg(t,"b","div"),a=Mg(n,r);n=a[0],r=a[1];var i=mx(n,r),o=Bw(i),s=Lw(r,o);return zw(s,o,i)}});var Ww=$g({dot_:function(e,t){var n=Zg(e,"t1","dot"),r=Zg(t,"t2","dot");Ev(!(1!==n.rank&&2!==n.rank||1!==r.rank&&2!==r.rank),(function(){return"Error in dot: inputs must all be rank 1 or 2, but got ranks "+n.rank+" and "+r.rank+"."}));var a=1===n.rank?n.size:n.shape[1],i=1===r.rank?r.size:r.shape[0];if(Ev(a===i,(function(){return"Error in dot: inner dimensions of inputs must match, but got "+a+" and "+i+"."})),1===n.rank&&1===r.rank){var o=gb(n,[1,-1]),s=gb(r,[-1,1]),u=yb(o,s);return gb(u,[])}if(1===n.rank&&2===r.rank){var l=gb(n,[1,-1]),c=gb(r,[r.shape[0],r.shape[1]]),p=yb(l,c);return gb(p,[p.size])}if(2===n.rank&&1===r.rank){var h=gb(r,[-1,1]),f=yb(n,h);return gb(f,[f.size])}var d=gb(r,[r.shape[0],r.shape[1]]);
17return yb(n,d)}});var Vw=$g({elu_:function(e){var t=Zg(e,"x","elu"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.elu(t);return n([r]),r}),n,null,"Elu")}});var Uw=$g({erf_:function(e){var t=Zg(e,"x","erf");Ev("int32"===t.dtype||"float32"===t.dtype,(function(){return"Input dtype must be `int32` or `float32`."})),"int32"===t.dtype&&(t=Jy(t,"float32"));var n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.erf(t);return n([t]),r}),n,null,"Erf")}});var Gw=$g({exp_:function(e){var t=Zg(e,"x","exp"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.exp(t);return n([r]),r}),n,null,"Exp")}});var jw=$g({expandDims_:function(e,t){void 0===t&&(t=0);var n=Zg(e,"x","expandDims",null);Ev(t<=n.rank,(function(){return"Axis must be <= rank of the tensor"}));var r=n.shape.slice();return t<0&&(Ev(-(n.rank+1)<=t,(function(){return"Axis must be in the interval ["+-(n.rank+1)+", "+n.rank+"]"})),t=n.rank+t+1),r.splice(t,0,1),gb(n,r)}});var Hw=$g({expm1_:function(e){var t=Zg(e,"x","expm1"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.expm1(t);return n([t]),r}),n,null,"Expm1")}});var qw=$g({tile_:function(e,t){var n=Zg(e,"x","tile",null);Ev(n.rank===t.length,(function(){return"Error in transpose: rank of input "+n.rank+" must match length of reps "+t+"."}));var r=[n],a={x:n},i={reps:t};return Gg.runKernelFunc((function(e,r){var a=e.tile(n,t);return r([n]),a}),a,null,"Tile",i,r)}});var Kw=$g({eye_:function(e,t,n,r){void 0===r&&(r="float32"),null==t&&(t=e);for(var a=Yy([e,t],r),i=e<=t?e:t,o=0;o<i;++o)a.set(1,o,o);var s=gb(a.toTensor(),[e,t]);if(null==n)return s;if(1===n.length)return qw(jw(s,0),[n[0],1,1]);if(2===n.length)return qw(jw(jw(s,0),0),[n[0],n[1],1,1]);if(3===n.length)return qw(jw(jw(jw(s,0),0),0),[n[0],n[1],n[2],1,1]);throw new Error("eye() currently supports only 1D and 2D batchShapes, but received "+n.length+"D.")}});function Xw(e,t,n){var r={shape:e,value:t,dtype:n};return Gg.runKernelFunc((function(r){return r.fill(e,t,n)}),{},null,"Fill",r)}var Yw=$g({floor_:function(e){var t=Zg(e,"x","floor"),n={x:t};return Gg.runKernelFunc((function(e){return e.floor(t)}),n,null,"Floor")}});function Jw(e){return e<=30?e:eg(e,Math.floor(Math.sqrt(e)))}function Zw(e,t,n){for(var r=e.shape[n],a=[],i=1,o=1,s=0;s<n;s++)a.push(e.shape[s]),i*=e.shape[s];for(var u=0;u<t.rank;u++)a.push(t.shape[u]);for(var l=n+1;l<e.rank;l++)a.push(e.shape[l]),o*=e.shape[l];return{batchSize:i,sliceSize:o,dimSize:r,outputShape:a}}var Qw={__proto__:null,segOpComputeOptimalWindowSize:function(e,t){var n,r=!1;for(e<=30?(n=e,r=!0):n=eg(e,Math.floor(Math.sqrt(e)));!r;)n>t||n===e?r=!0:n=eg(e,n+1);return n},computeOutShape:function(e,t,n){for(var r=[],a=e.length,i=0;i<a;i++)i!==t?r.push(e[i]):r.push(n);return r},collectGatherOpShapeInfo:Zw};var $w=$g({gather_:function(e,t,n){void 0===n&&(n=0);var r=Zg(e,"x","gather"),a=Zg(t,"indices","gather","int32"),i={x:r,indices:a},o={axis:n};return Gg.runKernelFunc((function(e,t){var i=Pv(n,r.shape)[0],o=Zw(r,a,i),s=e.gather(r,gb(a,[a.size]),i);return t([r,a]),gb(s,o.outputShape)}),i,null,"GatherV2",o)}});var ek=$g({greater_:function(e,t){var n=Zg(e,"a","greater"),r=Zg(t,"b","greater"),a=Mg(n,r);n=a[0],r=a[1],Mw(n.shape,r.shape);var i={a:n,b:r};return Gg.runKernelFunc((function(e){return e.greater(n,r)}),i,null,"Greater")}});var tk=$g({greaterEqual_:function(e,t){var n=Zg(e,"a","greaterEqual"),r=Zg(t,"b","greaterEqual"),a=Mg(n,r);n=a[0],r=a[1],Mw(n.shape,r.shape);var i={a:n,b:r};return Gg.runKernelFunc((function(e,t){var a=e.greaterEqual(n,r);return t([n,r]),a}),i,null,"GreaterEqual")}});var nk=$g({imag_:function(e){var t=Zg(e,"input","imag"),n={input:t};return Gg.runKernelFunc((function(e){return e.imag(t)}),n,null,"Imag")}});var rk=$g({isFinite_:function(e){var t=Zg(e,"x","isFinite"),n={x:t};return Gg.runKernelFunc((function(e){return e.isFinite(t)}),n,null,"IsFinite")}});var ak=$g({isInf_:function(e){var t=Zg(e,"x","isInf"),n={x:t};return Gg.runKernelFunc((function(e){return e.isInf(t)}),n,null,"IsInf")}});var ik=$g({isNaN_:function(e){var t=Zg(e,"x","isNaN"),n={x:t};return Gg.runKernelFunc((function(e){return e.isNaN(t)}),n,null,"IsNan")}});var ok=$g({maximum_:function(e,t){var n=Zg(e,"a","maximum"),r=Zg(t,"b","maximum"),a=Mg(n,r);n=a[0],r=a[1],"bool"===n.dtype&&(n=Jy(n,"int32"),r=Jy(r,"int32")),Mw(n.shape,r.shape);var i={a:n,b:r};return Gg.runKernelFunc((function(e,t){var a=e.maximum(n,r);return t([n,r]),a}),i,null,"Maximum")}});function sk(e,t){if((qv(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&&qv(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return ty(e,[],[],t)}var uk=$g({leakyRelu_:function(e,t){void 0===t&&(t=.2);var n=Zg(e,"x","leakyRelu");return ok(vx(sk(t),n),n)}});var lk=$g({less_:function(e,t){var n=Zg(e,"a","less"),r=Zg(t,"b","less"),a=Mg(n,r);n=a[0],r=a[1],Mw(n.shape,r.shape);var i={a:n,b:r};return Gg.runKernelFunc((function(e){return e.less(n,r)}),i,null,"Less")}});var ck=$g({lessEqual_:function(e,t){var n=Zg(e,"a","lessEqual"),r=Zg(t,"b","lessEqual"),a=Mg(n,r);n=a[0],r=a[1],Mw(n.shape,r.shape);var i={a:n,b:r};return Gg.runKernelFunc((function(e,t){var a=e.lessEqual(n,r);return t([n,r]),a}),i,null,"LessEqual")}});function pk(e,t,n){if(n<=0)throw new Error("The number of values should be positive.");var r={start:e,stop:t,num:n};return Gg.runKernelFunc((function(r){return r.linspace(e,t,n)}),{},null,"LinSpace",r)}var hk=$g({localResponseNormalization_:function(e,t,n,r,a){void 0===t&&(t=5),void 0===n&&(n=1),void 0===r&&(r=1),void 0===a&&(a=.5);var i=Zg(e,"x","localResponseNormalization");Ev(4===i.rank||3===i.rank,(function(){return"Error in localResponseNormalization: x must be rank 3 or 4 but got\n               rank "+i.rank+"."})),Ev(Ov(t),(function(){return"Error in localResponseNormalization: depthRadius must be an integer but got depthRadius "+t+"."}));var o=i,s=!1;3===i.rank&&(s=!0,o=gb(i,[1,i.shape[0],i.shape[1],i.shape[2]]));var u={x:o},l={depthRadius:t,bias:n,alpha:r,beta:a},c=Gg.runKernelFunc((function(e,i){var s=e.localResponseNormalization4D(o,t,n,r,a);return i([o,s]),s}),u,null,"LRN",l);return s?gb(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});var fk=$g({log_:function(e){var t=Zg(e,"x","log"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.log(t);return n([t]),r}),n,null,"Log")}});var dk=$g({log1p_:function(e){var t=Zg(e,"x","log1p"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.log1p(t);return n([t]),r}),n,null,"Log1p")}});function mk(e,t){Ev($v(e),(function(){return"The f passed in variableGrads(f) must be a function"})),Ev(null==t||Array.isArray(t)&&t.every((function(e){return e instanceof Dg})),(function(){return"The varList passed in variableGrads(f, varList) must be an array of variables"}));var n=null!=t;if(!n)for(var r in t=[],Gg.registeredVariables)t.push(Gg.registeredVariables[r]);var a=n?t.filter((function(e){return!e.trainable})):null,i=t.length;Ev((t=t.filter((function(e){return e.trainable}))).length>0,(function(){return"variableGrads() expects at least one of the input variables to be trainable, but none of the "+i+" variables is trainable."}));var o=Gg.gradients(e,t,null,!0),s=o.value,u=o.grads;Ev(u.some((function(e){return null!=e})),(function(){return"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()."})),Ev(0===s.rank,(function(){return"The f passed in variableGrads(f) must return a scalar, but it returned a rank-"+s.rank+" tensor"}));var l={};return t.forEach((function(e,t){null!=u[t]&&(l[e.name]=u[t])})),null!=a&&a.forEach((function(e){return l[e.name]=null})),{value:s,grads:l}}function vk(e){return Gg.customGrad(e)}function gk(e){if(e.filter((function(e){return 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.")}var yk=$g({neg_:function(e){var t=Zg(e,"x","neg"),n={x:t};return Gg.runKernelFunc((function(e){return e.neg(t)}),n,null,"Negate")}});var bk=$g({softplus_:function(e){var t=Zg(e,"x","softplus"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.softplus(t);return n([t]),r}),n,null,"Softplus")}});var xk=$g({logSigmoid_:function(e){var t=Zg(e,"x","logSigmoid");return vk((function(e){return{value:yk(bk(yk(e))),gradFunc:function(t){return vx(t,nw(yk(e)))}}}))(t)}});var wk=$g({max_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Zg(e,"x","max"),a={x:r},i={reductionIndices:t,keepDims:n};return Gg.runKernelFunc((function(e,a){var i=Pv(t,r.shape),o=Cx(i,r.rank),s=r;null!=o&&(s=xb(r,o),i=Ex(i.length,s.rank));var u=e.max(s,i);null!=o&&s.dispose();var l=u;if(n){var c=Nx(l.shape,Pv(t,r.shape));l=gb(l,c),u.dispose()}return a([r,l]),l}),a,null,"Max",i)}});var kk=$g({sub_:function(e,t){var n=Zg(e,"a","sub"),r=Zg(t,"b","sub"),a=Mg(n,r);n=a[0],r=a[1];var i={a:n,b:r};return Gg.runKernelFunc((function(e,t){var a=e.subtract(n,r);return t([n,r]),a}),i,null,"Sub")}});var Sk=$g({sum_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Zg(e,"x","sum");"bool"===r.dtype&&(r=Jy(r,"int32"));var a={x:r},i={axis:t,keepDims:n};return Gg.runKernelFunc((function(e,a){a([r]);var i=Pv(t,r.shape),o=Cx(i,r.rank),s=i,u=r;null!=o&&(u=xb(r,o),s=Ex(s.length,r.rank));var l=e.sum(u,s);if(n){var c=Nx(l.shape,i);l=gb(l,c)}return l}),a,null,"Sum",i)}});var Nk=$g({logSoftmax_:function(e,t){void 0===t&&(t=-1);var n=Zg(e,"logits","logSoftmax");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error("Log Softmax along a non-last dimension is not yet supported. Logits was rank "+n.rank+" and axis was "+t);var r={logits:n},a={axis:t};return Gg.runKernelFunc((function(n,r){var a=wk(e,t,!0),i=kk(e,a),o=kk(Jy(i,"float32"),fk(Sk(Gw(i),t,!0)));return r([o]),o}),r,null,"LogSoftmax",a)}});var Ik=$g({logSumExp_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Zg(e,"x","logSumExp"),a=Pv(t,r.shape),i=wk(r,a,!0),o=kk(r,i),s=Gw(o),u=Sk(s,a),l=fk(u),c=fx(gb(i,l.shape),l);if(n){var p=Nx(c.shape,a);return gb(c,p)}return c}});var Ck=$g({logicalAnd_:function(e,t){var n=Zg(e,"a","logicalAnd","bool"),r=Zg(t,"b","logicalAnd","bool");Mw(n.shape,r.shape);var a={a:n,b:r};return Gg.runKernelFunc((function(e){return e.logicalAnd(n,r)}),a,null,"LogicalAnd")}});var Rk=$g({logicalNot_:function(e){var t=Zg(e,"x","logicalNot","bool"),n={x:t};return Gg.runKernelFunc((function(e){return e.logicalNot(t)}),n,null,"LogicalNot")}});var Ek=$g({logicalOr_:function(e,t){var n=Zg(e,"a","logicalOr","bool"),r=Zg(t,"b","logicalOr","bool");Mw(n.shape,r.shape);var a={a:n,b:r};return Gg.runKernelFunc((function(e){return e.logicalOr(n,r)}),a,null,"LogicalOr")}});var Ak=$g({logicalXor_:function(e,t){var n=Zg(e,"a","logicalXor","bool"),r=Zg(t,"b","logicalXor","bool");return Mw(n.shape,r.shape),Ck(Ek(e,t),Rk(Ck(e,t)))}});var Tk=$g({maxPool_:function(e,t,n,r,a){var i=Zg(e,"x","maxPool"),o=i,s=!1;3===i.rank&&(s=!0,o=gb(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Ev(4===o.rank,(function(){return"Error in maxPool: input must be rank 4 but got rank "+o.rank+"."})),Ev(Yx(n,1),(function(){return"Error in maxPool: Either strides or dilations must be 1. Got strides "+n+" and dilations '1'"})),null!=a&&Ev(Ov(r),(function(){return"Error in maxPool: pad must be an integer when using, dimRoundingMode "+a+" but got pad "+r
17+"."}));var u={x:o},l={filterSize:t,strides:n,pad:r,dimRoundingMode:a},c=Gg.runKernelFunc((function(e,i){var s,u=Px(o.shape,t,n,1,r,a);return s=1===u.filterWidth&&1===u.filterHeight&&Fv(u.inShape,u.outShape)?o.clone():e.maxPool(o,u),i([o,s]),s}),u,null,"MaxPool",l);return s?gb(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});var Dk=$g({maxPool3d_:function(e,t,n,r,a,i,o){void 0===t&&(t=[1,1,1]),void 0===i&&(i="NDHWC"),null==o?o=[1,1,1]:ax("dilations is deprecated, this field will be gone in v3.0.0.");var s=Zg(e,"x","maxPool3d"),u=s,l=!1;4===s.rank&&(l=!0,u=gb(s,[1,s.shape[0],s.shape[1],s.shape[2],s.shape[3]])),Ev(5===u.rank,(function(){return"Error in maxPool3d: x must be rank 5 but got rank "+u.rank+"."})),Ev("NDHWC"===i,(function(){return"Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of "+i})),Ev(Yx(n,o),(function(){return"Error in maxPool3d: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+o+"'"})),null!=a&&Ev(Ov(r),(function(){return"Error in maxPool3d: pad must be an integer when using, dimRoundingMode "+a+" but got pad "+r+"."}));var c={x:u},p={filterSize:t,strides:n,pad:r,dimRoundingMode:a,dataFormat:i,dilations:o},h=Gg.runKernelFunc((function(e,s){null==o&&(o=[1,1,1]);var l=Wx(u.shape,t,n,o,r,a,i),c=e.maxPool3d(u,l);return s([u,c]),c}),c,null,"MaxPool3D",p);return l?gb(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}});var _k=$g({maxPoolWithArgmax_:function(e,t,n,r,a){void 0===a&&(a=!1);var i={x:Zg(e,"x","maxPoolWithArgmax")},o={filterSize:t,strides:n,pad:r,includeBatchInIndex:a},s=Gg.runKernel("MaxPoolWithArgmax",i,o);return{result:s[0],indexes:s[1]}}});function Fk(e,t){if(void 0===t&&(t="float32"),"complex64"===t){var n=Fk(e,"float32"),r=Fk(e,"float32");return ey(n,r)}var a=og(_v(e),t);return Gg.makeTensor(a,e,t)}function Ok(e,t){if(void 0===t&&(t="float32"),"complex64"===t){var n=Ok(e,"float32"),r=Fk(e,"float32");return ey(n,r)}var a=ig(_v(e),t);return Gg.makeTensor(a,e,t)}var Mk=$g({mean_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Zg(e,"x","mean"),a=Pv(t,r.shape),i=_v(Sx(r.shape,a)[1]);return vk((function(e){var r=sk(i),o=r.dtype===e.dtype?e:Jy(e,r.dtype),s=mx(o,r);return{value:Sk(s,t,n),gradFunc:function(t){var n=e.shape.slice();a.forEach((function(e){n[e]=1}));var r=gb(t,n);return mx(vx(r,Ok(e.shape,"float32")),i)}}}))(r)}});var Lk=$g({min_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Zg(e,"x","min"),a={x:r},i={axis:t,keepDims:n};return Gg.runKernelFunc((function(e,a){var i=Pv(t,r.shape),o=i,s=Cx(o,r.rank),u=r;null!=s&&(u=xb(r,s),o=Ex(o.length,r.rank));var l=e.min(u,o);null!=s&&u.dispose();var c=l;if(n){var p=Nx(c.shape,i);c=gb(l,p),l.dispose()}return a([r,c]),c}),a,null,"Min",i)}});var zk=$g({minimum_:function(e,t){var n=Zg(e,"a","minimum"),r=Zg(t,"b","minimum"),a=Mg(n,r);n=a[0],r=a[1],"bool"===n.dtype&&(n=Jy(n,"int32"),r=Jy(r,"int32")),Mw(n.shape,r.shape);var i={a:n,b:r};return Gg.runKernelFunc((function(e,t){var a=e.minimum(n,r);return t([n,r]),a}),i,null,"Minimum")}});var Bk=$g({mod_:function(e,t){var n=Zg(e,"a","mod"),r=Zg(t,"b","mod"),a=Mg(n,r);n=a[0],r=a[1];var i={a:n,b:r};return Gg.runKernelFunc((function(e,t){var a=e.mod(n,r);return t([n,r]),a}),i,null,"Mod")}});var Pk=$g({square_:function(e){var t=Zg(e,"x","square"),n=[t];return Gg.runKernelFunc((function(e,n){return n([t]),e.square(t)}),{x:t},null,"Square",{},n,[])}});var Wk=$g({moments_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Pv(t,(e=Zg(e,"x","moments")).shape),a=Mk(e,r,n),i=a.shape;n||(i=Nx(a.shape,r));var o=Pk(kk(Jy(e,"float32"),gb(a,i)));return{mean:a,variance:Mk(o,r,n)}}});var Vk=$g({multiRNNCell_:function(e,t,n,r){for(var a=Zg(t,"data","multiRNNCell"),i=Qg(n,"c","multiRNNCell"),o=Qg(r,"h","multiRNNCell"),s=a,u=[],l=0;l<e.length;l++){var c=e[l](s,i[l],o[l]);u.push(c[0]),u.push(c[1]),s=c[1]}for(var p=[],h=[],f=0;f<u.length;f+=2)p.push(u[f]),h.push(u[f+1]);return[p,h]}});var Uk=$g({multinomial_:function(e,t,n,r){void 0===r&&(r=!1);var a=Zg(e,"logits","multinomial"),i=a.size,o=a.rank;if(i<2)throw new Error("Error in multinomial: you need at least 2 outcomes, but got "+i+".");if(o>2)throw new Error("Rank of probabilities must be 1 or 2, but is "+o);n=n||Math.random();var s=1===o?gb(a,[1,-1]):a,u=Gg.runKernelFunc((function(e){return e.multinomial(s,r,t,n)}),{logits2D:s});return 1===o?gb(u,[u.size]):u}});var Gk=$g({notEqual_:function(e,t){var n=Zg(e,"a","notEqual"),r=Zg(t,"b","notEqual"),a=Mg(n,r);n=a[0],r=a[1],Mw(n.shape,r.shape);var i={a:n,b:r};return Gg.runKernelFunc((function(e){return e.notEqual(n,r)}),i,null,"NotEqual")}});var jk=$g({real_:function(e){var t=Zg(e,"input","real"),n={input:t};return Gg.runKernelFunc((function(e){return e.real(t)}),n,null,"Real")}});var Hk=$g({onesLike_:function(e){var t=Zg(e,"x","onesLike"),n={x:t};return Gg.runKernelFunc((function(e,n){if("complex64"===t.dtype){var r=Hk(jk(t)),a=Bw(nk(t));return ey(r,a)}return e.onesLike(t)}),n,null,"OnesLike")}});var qk=$g({outerProduct_:function(e,t){var n=Zg(e,"v1","outerProduct"),r=Zg(t,"v2","outerProduct");Ev(1===n.rank&&1===r.rank,(function(){return"Error in outerProduct: inputs must be rank 1, but got ranks "+n.rank+" and "+r.rank+"."}));var a=gb(n,[-1,1]),i=gb(r,[1,-1]);
17return yb(a,i)}});var Kk=$g({pad_:function(e,t,n){void 0===n&&(n=0);var r=Zg(e,"x","pad");if(0===r.rank)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");var a={paddings:t,constantValue:n},i={x:r};return Gg.runKernelFunc((function(e,a){return a([r]),e.pad(r,t,n)}),i,null,"PadV2",a)}});var Xk=$g({pad1d_:function(e,t,n){return void 0===n&&(n=0),Ev(2===t.length,(function(){return"Invalid number of paddings. Must be length of 2."})),Kk(e,[t],n)}});var Yk=$g({pad2d_:function(e,t,n){return void 0===n&&(n=0),Ev(2===t.length&&2===t[0].length&&2===t[1].length,(function(){return"Invalid number of paddings. Must be length of 2 each."})),Kk(e,t,n)}});var Jk=$g({pad3d_:function(e,t,n){return void 0===n&&(n=0),Ev(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,(function(){return"Invalid number of paddings. Must be length of 2 each."})),Kk(e,t,n)}});var Zk=$g({pad4d_:function(e,t,n){return void 0===n&&(n=0),Ev(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,(function(){return"Invalid number of paddings. Must be length of 2 each."})),Kk(e,t,n)}});var Qk=$g({spaceToBatchND_:function(e,t,n){var r=Zg(e,"x","spaceToBatchND");Ev(r.rank>=1+t.length,(function(){return"input rank "+r.rank+" should be > than [blockShape] "+t.length})),Ev(n.length===t.length,(function(){return"paddings.shape[0] "+n.length+" must be equal to [blockShape] "+t.length})),Ev(r.shape.reduce((function(e,r,a){return a>0&&a<=t.length?e&&(r+n[a-1][0]+n[a-1][1])%t[a-1]==0:e}),!0),(function(){return"input spatial dimensions "+r.shape.slice(1)+" with paddings "+n.toString()+" must be divisible by blockShapes "+t.toString()}));var a={x:r},i={blockShape:t,paddings:n};return Gg.runKernelFunc((function(e){return e.spaceToBatchND(r,t,n)}),a,null,"SpaceToBatchND",i)}});var $k=$g({pool_:function(e,t,n,r,a,i){null==a&&(a=[1,1]),null==i&&(i=1),0===r&&(r="valid");var o=Zg(e,"x","maxPool"),s=o,u=!1;3===o.rank&&(u=!0,s=gb(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Ev(Yx(i,a),(function(){return"Error in pool: Either strides or dilations must be 1. Got strides "+i+" and dilations '"+a+"'"}));var l,c=Px(s.shape,t,i,a,r),p=[c.dilationHeight,c.dilationWidth];l="same"===r?function(e,t){var n=e.map((function(e,n){return e+(e-1)*(t[n]-1)})).map((function(e){return e-1})),r=n.map((function(e){return Math.floor(e/2)})),a=n.map((function(e,t){return e-r[t]}));return n.map((function(e,t){return[r[t],a[t]]}))}([c.filterHeight,c.filterWidth],p):[[0,0],[0,0]];var h=1===p[0]&&1===p[1],f=function(e,t,n){var r=n.map((function(e){return e[0]})),a=n.map((function(e){return e[1]})),i=e.concat(r,a),o=t.map((function(e,t){return(e-i[t]%e)%e})),s=a.map((function(e,t){return e+o[t]})),u=t.map((function(e,t){return[r[t],s[t]]})),l=t.map((function(e,t){return[0,o[t]]}));return[u,l]}([c.inHeight,c.inWidth],p,l),d=f[0],m=f[1],v=h?r:"valid",g=h?s:Qk(s,p,d),y=("avg"===n?function(){return Zx(g,t,i,v)}:function(){return Tk(g,t,i,v)})(),b=h?y:ow(y,p,m);return u?gb(b,[b.shape[1],b.shape[2],b.shape[3]]):b}});var eS=$g({pow_:function(e,t){var n=Zg(e,"base","pow"),r=Zg(t,"exp","pow"),a=Mg(n,r);n=a[0],r=a[1];var i={a:n,b:r};return Gg.runKernelFunc((function(e,t){var a=e.pow(n,r);return t([n,r,a]),a}),i,null,"Pow")}});var tS=$g({prelu_:function(e,t){var n=Zg(e,"x","prelu"),r=Zg(t,"alpha","prelu"),a={x:n,alpha:r};return Gg.runKernelFunc((function(e,t){var a=e.prelu(n,r);return t([n,r]),a}),a,null,"Prelu")}});var nS=$g({prod_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=Zg(e,"x","prod"),a={x:r},i={axis:t,keepDims:n};return Gg.runKernelFunc((function(e){"bool"===r.dtype&&(r=Jy(r,"int32"));var a=Pv(t,r.shape),i=Cx(a,r.rank),o=a,s=r;null!=i&&(s=xb(r,i),o=Ex(o.length,r.rank));var u=e.prod(s,o);if(n){var l=Nx(u.shape,a);u=gb(u,l)}return u}),a,null,"Prod",i)}});var rS=$g({rand_:function(e,t,n){var r=_v(e),a=null;if(null==n||"float32"===n)a=new Float32Array(r);else if("int32"===n)a=new Int32Array(r);else{if("bool"!==n)throw new Error("Unknown data type "+n);a=new Uint8Array(r)}for(var i=0;i<r;i++)a[i]=t();return Gg.makeTensor(a,e,n)}}),aS=n((function(e){!function(e,t,n){function r(e){var t,n=this,r=(t=4022871197,function(e){e=e.toString();for(var n=0;n<e.length;n++){var r=.02519603282416938*(t+=e.charCodeAt(n));r-=t=r>>>0,t=(r*=t)>>>0,t+=4294967296*(r-=t)}return 2.3283064365386963e-10*(t>>>0)});n.next=function(){var e=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=e-(n.c=0|e)},n.c=1,n.s0=r(" "),n.s1=r(" "),n.s2=r(" "),n.s0-=r(e),n.s0<0&&(n.s0+=1),n.s1-=r(e),n.s1<0&&(n.s1+=1),n.s2-=r(e),n.s2<0&&(n.s2+=1),r=null}function a(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function i(e,t){var n=new r(e),i=t&&t.state,o=n.next;return o.int32=function(){return 4294967296*n.next()|0},o.double=function(){return o()+11102230246251565e-32*(2097152*o()|0)},o.quick=o,i&&("object"==typeof i&&a(i,n),o.state=function(){return a(n,{})}),o}t&&t.exports?t.exports=i:n&&n.amd?n((function(){return i})):this.alea=i}(0,e,!1)})),iS=n((function(e){!function(e,t,n){function r(e){var t=this,n="";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:n+=e;for(var r=0;r<n.length+64;
17r++)t.x^=0|n.charCodeAt(r),t.next()}function a(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function i(e,t){var n=new r(e),i=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,i&&("object"==typeof i&&a(i,n),o.state=function(){return a(n,{})}),o}t&&t.exports?t.exports=i:n&&n.amd?n((function(){return i})):this.xor128=i}(0,e,!1)})),oS=n((function(e){!function(e,t,n){function r(e){var t=this,n="";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:n+=e;for(var r=0;r<n.length+64;r++)t.x^=0|n.charCodeAt(r),r==n.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function a(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 i(e,t){var n=new r(e),i=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,i&&("object"==typeof i&&a(i,n),o.state=function(){return a(n,{})}),o}t&&t.exports?t.exports=i:n&&n.amd?n((function(){return i})):this.xorwow=i}(0,e,!1)})),sS=n((function(e){!function(e,t,n){function r(e){var t=this;t.next=function(){var e,n,r=t.x,a=t.i;return e=r[a],n=(e^=e>>>7)^e<<24,n^=(e=r[a+1&7])^e>>>10,n^=(e=r[a+3&7])^e>>>3,n^=(e=r[a+4&7])^e<<7,e=r[a+7&7],n^=(e^=e<<13)^e<<9,r[a]=n,t.i=a+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=""+t,n=0;n<t.length;++n)r[7&n]=r[7&n]<<15^t.charCodeAt(n)+r[n+1&7]<<13;for(;r.length<8;)r.push(0);for(n=0;n<8&&0===r[n];++n);for(8==n?r[7]=-1:r[n],e.x=r,e.i=0,n=256;n>0;--n)e.next()}(t,e)}function a(e,t){return t.x=e.x.slice(),t.i=e.i,t}function i(e,t){null==e&&(e=+new Date);var n=new r(e),i=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,i&&(i.x&&a(i,n),o.state=function(){return a(n,{})}),o}t&&t.exports?t.exports=i:n&&n.amd?n((function(){return i})):this.xorshift7=i}(0,e,!1)})),uS=n((function(e){!function(e,t,n){function r(e){var t=this;t.next=function(){var e,n,r=t.w,a=t.X,i=t.i;return t.w=r=r+1640531527|0,n=a[i+34&127],e=a[i=i+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=a[i]=n^e,t.i=i,n+(r^r>>>16)|0},function(e,t){var n,r,a,i,o,s=[],u=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,u=Math.max(u,t.length)),a=0,i=-32;i<u;++i)t&&(r^=t.charCodeAt((i+32)%t.length)),0===i&&(o=r),r^=r<<10,r^=r>>>15,r^=r<<4,r^=r>>>13,i>=0&&(o=o+1640531527|0,a=0==(n=s[127&i]^=r+o)?a+1:0);for(a>=128&&(s[127&(t&&t.length||0)]=-1),a=127,i=512;i>0;--i)r=s[a+34&127],n=s[a=a+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[a]=r^n;e.w=o,e.X=s,e.i=a}(t,e)}function a(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function i(e,t){null==e&&(e=+new Date);var n=new r(e),i=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,i&&(i.X&&a(i,n),o.state=function(){return a(n,{})}),o}t&&t.exports?t.exports=i:n&&n.amd?n((function(){return i})):this.xor4096=i}(0,e,!1)})),lS=n((function(e){!function(e,t,n){function r(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,r=t.d,a=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^a,a=a-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^a,t.a=a-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):n+=e;for(var r=0;r<n.length+20;r++)t.b^=0|n.charCodeAt(r),t.next()}function a(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function i(e,t){var n=new r(e),i=t&&t.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=n.next,o.quick=o,i&&("object"==typeof i&&a(i,n),o.state=function(){return a(n,{})}),o}t&&t.exports?t.exports=i:n&&n.amd?n((function(){return i})):this.tychei=i}(0,e,!1)})),cS=n((function(e){!function(t,n){var r,a=this,i=n.pow(256,6),o=n.pow(2,52),s=2*o;function u(e,u,f){var d=[],m=p(function e(t,n){var r,a=[],i=typeof t;if(n&&"object"==i)for(r in t)try{a.push(e(t[r],n-1))}catch(e){}return a.length?a:"string"==i?t:t+"\0"}((u=1==u?{entropy:!0}:u||{}).entropy?[e,h(t)]:null==e?function(){try{var e;return r&&(e=r.randomBytes)?e=e(256):(e=new Uint8Array(256),(a.crypto||a.msCrypto).getRandomValues(e)),h(e)}catch(e){var n=a.navigator,i=n&&n.plugins;return[+new Date,a,i,a.screen,h(t)]}}():e,3),d),v=new l(d),g=function(){for(var e=v.g(6),t=i,n=0;e<o;)e=256*(e+n),t*=256,n=v.g(1);for(;e>=s;)e/=2,t/=2,n>>>=1;return(e+n)/t};return g.int32=function(){return 0|v.g(4)},g.quick=function(){return v.g(4)/4294967296},g.double=g,p(h(v.S),t),(u.pass||f||function(e,t,r,a){return a&&(a.S&&c(a,v),e.state=function(){return c(v,{})}),r?(n.random=e,t):e})(g,m,"global"in u?u.global:this==n,u.state)}function l(e){var t,n=e.length,r=this,a=0,i=r.i=r.j=0,o=r.S=[];for(n||(e=[n++]);a<256;)o[a]=a++;for(a=0;a<256;a++)o[a]=o[i=255&i+e[a%n]+(t=o[a])],o[i]=t;(r.g=function(e){for(var t,n=0,a=r.i,i=r.j,o=r.S;e--;)t=o[a=255&a+1],n=256*n+o[255&(o[a]=o[i=255&i+t])+(o[i]=t)];return r.i=a,r.j=i,n})(256)}function c(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function p(e,t){for(var n,r=e+"",a=0;a<r.length;)t[255&a]=255&(n^=19*t[255&a])+r.charCodeAt(a++);return h(t)}function h(e){return String.fromCharCode.apply(0,e)}if(n.seedrandom=u,p(n.random(),t),e.exports){e.exports=u;try{r=require("crypto")}catch(e){}}else 0}([],Math)}));cS.alea=aS,cS.xor128=iS,cS.xorwow=oS,cS.xorshift7=sS,cS.xor4096=uS,cS.tychei=lS;var pS=cS.alea,hS=function(){function e(e,t,n,r,a){this.mean=e,this.stdDev=t,this.dtype=n,this.nextVal=NaN,this.truncated=r,this.truncated&&(this.upper=this.mean+2*this.stdDev,this.lower=this.mean-2*this.stdDev);var i=a||Math.random();this.random=pS(i.toString())}var t=e.prototype;return t.nextValue=function(){if(!isNaN(this.nextVal)){var e=this.nextVal;return this.nextVal=NaN,e}for(var t,n,r=!1;!r;){var a=void 0,i=void 0,o=void 0;do{o=(a=2*this.random()-1)*a+(i=2*this.random()-1)*i}while(o>=1||0===o);var s=Math.sqrt(-2*Math.log(o)/o);t=this.mean+this.stdDev*a*s,n=this.mean+this.stdDev*i*s,this.truncated&&!this.isValidTruncated(t)||(r=!0)}return this.truncated&&!this.isValidTruncated(n)||(this.nextVal=this.convertValue(n)),this.convertValue(t)},t.convertValue=function(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)},t.isValidTruncated=function(e){return e<=this.upper&&e>=this.lower},e}(),fS=function(){function e(e,t,n,r){this.alpha=e,this.beta=1/t,this.dtype=n;var a=r||Math.random();this.randu=pS(a.toString()),this.randn=new hS(0,1,n,!1,this.randu()),this.d=e<1?e+2/3:e-1/3,this.c=1/Math.sqrt(9*this.d)}var t=e.prototype;return t.nextValue=function(){for(var e,t,n,r,a,i;;){do{r=this.randn.nextValue(),i=1+this.c*r}while(i<=0);if(i*=i*i,t=1-.331*(e=r*r)*e,n=.5*e+this.d*(1-i+Math.log(i)),(a=this.randu())<t||Math.log(a)<n)break}return i=1/this.beta*this.d*i,this.alpha<1&&(i*=Math.pow(this.randu(),1/this.alpha)),this.convertValue(i)},t.convertValue=function(e){return"float32"===this.dtype?e:Math.round(e)},e}(),dS=function(){function e(e,t,n,r){var a=this;if(void 0===e&&(e=0),void 0===t&&(t=1),this.canReturnFloat=function(){return null==a.dtype||"float32"===a.dtype},this.min=e,this.range=t-e,this.dtype=n,null==r&&(r=Math.random()),"number"==typeof r&&(r=r.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error("The difference between "+e+" - "+t+" <= 1 and dtype is not float");this.random=pS(r)}var t=e.prototype;return t.convertValue=function(e){return this.canReturnFloat()?e:Math.round(e)},t.nextValue=function(){return this.convertValue(this.min+this.range*this.random())},e}();var mS=$g({randomGamma_:function(e,t,n,r,a){if(void 0===n&&(n=1),void 0===r&&(r="float32"),null==n&&(n=1),null==r&&(r="float32"),"float32"!==r&&"int32"!==r)throw new Error("Unsupported data type "+r);for(var i=new fS(t,n,r,a),o=Yy(e,r),s=0;s<o.values.length;s++)o.values[s]=i.nextValue();return o.toTensor()}});var vS=$g({randomNormal_:function(e,t,n,r,a){if(void 0===t&&(t=0),void 0===n&&(n=1),null!=r&&"bool"===r)throw new Error("Unsupported data type "+r);for(var i=new hS(t,n,r,!1,a),o=Yy(e,r),s=0;s<o.values.length;s++)o.values[s]=i.nextValue();return o.toTensor()}});var gS=$g({randomUniform_:function(e,t,n,r,a){void 0===t&&(t=0),void 0===n&&(n=1),void 0===r&&(r="float32");for(var i=Yy(e,r),o=new dS(t,n,null,a),s=0;s<i.values.length;s++)i.values[s]=o.nextValue();return i.toTensor()}});function yS(e,t){Tv(e);var n=Yg(e,t);if(1!==n.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return ty(e,null,n,t)}function bS(e,t,n,r){if(void 0===n&&(n=1),void 0===r&&(r="float32"),0===n)throw new Error("Cannot have a step of zero");var a={start:e,stop:t,step:n,dtype:r};return Gg.runKernelFunc((function(){if(e===t||e<t&&n<0||t<e&&n>1)return Fk([0],r);var a=og(Math.abs(Math.ceil((t-e)/n)),r);t<e&&1===n&&(n=-1),a[0]=e;for(var i=1;i<a.length;i++)a[i]=a[i-1]+n;return yS(a,r)}),{},null,"Range",a)}var xS=$g({reciprocal_:function(e){var t=Zg(e,"x","reciprocal"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.reciprocal(t);return n([t]),r}),n,null,"Reciprocal")}});var wS=$g({relu_:function(e){var t=Zg(e,"x","relu"),n={x:t};return Gg.runKernelFunc((function(e,n){return n([t]),"bool"===t.dtype?Jy(t,"int32"):e.relu(t)}),n,null,"Relu")}});var kS=$g({relu6_:function(e){var t=Zg(e,"x","relu6"),n={x:t};return Gg.runKernelFunc((function(e,n){return n([t]),"bool"===t.dtype?Jy(t,"int32"):e.relu6(t)}),n,null,"Relu6")}});var SS=$g({reverse_:function(e,t){var n=Zg(e,"x","reverse"),r={x:n},a={dims:t};return Gg.runKernelFunc((function(e){var r=Pv(t,n.shape);if(0===n.rank)return Zy(n);var a=e.reverse(n,r);return gb(a,n.shape)}),r,null,"Reverse",a)}});var NS=$g({reverse1d_:function(e){var t=Zg(e,"x","reverse");return Ev(1===t.rank,(function(){return"Error in reverse1D: x must be rank 1 but got rank "+t.rank+"."})),SS(t,0)}});var IS=$g({reverse2d_:function(e,t){var n=Zg(e,"x","reverse");return Ev(2===n.rank,(function(){return"Error in reverse2D: x must be rank 2 but got rank "+n.rank+"."})),SS(n,t)}});var CS=$g({reverse3d_:function(e,t){var n=Zg(e,"x","reverse");return Ev(3===n.rank,(function(){return"Error in reverse3D: x must be rank 3 but got rank "+n.rank+"."})),SS(n,t)}});var RS=$g({reverse4d_:function(e,t){var n=Zg(e,"x","reverse");return Ev(4===n.rank,(function(){return"Error in reverse4D: x must be rank 4 but got rank "+n.rank+"."})),SS(n,t)}});var ES=$g({round_:function(e){var t=Zg(e,"x","round"),n={x:t};return Gg.runKernelFunc((function(e){return e.round(t)}),n,null,"Round")}});var AS=$g({rsqrt_:function(e){var t=Zg(e,"x","rsqrt"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.rsqrt(t);return n([t]),r}),n,null,"Rsqrt")}});var TS=$g({selu_:function(e){var t=Zg(e,"x","selu"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.selu(t);return n([t]),r}),n,null,"Selu")}});var DS=$g({separableConv2d_:function(e,t,n,r,a,i,o){void 0===i&&(i=[1,1]),void 0===o&&(o="NHWC");var s=Zg(e,"x","separableConv2d"),u=Zg(t,"depthwiseFilter","separableConv2d"),l=Zg(n,"pointwiseFilter","separableConv2d"),c=s,p=!1;if(3===s.rank&&(p=!0,c=gb(s,[1,s.shape[0],s.shape[1],s.shape[2]])),"NCHW"===o)throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");Ev(4===c.rank,(function(){return"Error in separableConv2d: input must be rank 4, but got rank "+c.rank+"."})),Ev(4===u.rank,(function(){return"Error in separableConv2d: depthwise filter must be rank 4, but got rank "+u.rank+"."})),Ev(4===l.rank,(function(){return"Error in separableConv2d: pointwise filter must be rank 4, but got rank "+u.rank+"."})),Ev(1===l.shape[0],(function(){return"Error in separableConv2d: the first dimension of pointwise filter  must be 1, but got "+l.shape[0]+"."})),Ev(1===l.shape[1],(function(){return"Error in separableConv2d: the second dimension of pointwise filter must be 1, but got "+l.shape[1]+"."}));var h=u.shape[2],f=u.shape[3];Ev(l.shape[2]===h*f,(function(){return"Error in separableConv2d: the third dimension of pointwise filter must be "+h*f+", but got "+l.shape[2]+"."}));var d=Tw(c,u,r,a,o,i),m=bw(d,l,1,"valid",o);return p?gb(m,[m.shape[1],m.shape[2],m.shape[3]]):m}});function _S(){return(_S=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i,o,s,u,l,c,p,h,f;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=Zg(t,"x","setdiff1d"),a=Zg(n,"y","setdiff1d"),Ev(r.dtype===a.dtype,(function(){return"x and y should have the same dtype, but got x ("+r.dtype+") and y ("+a.dtype+")."})),Ev(1===r.rank,(function(){return"x should be 1D tensor, but got x ("+r.shape+")."})),Ev(1===a.rank,(function(){return"y should be 1D tensor, but got y ("+a.shape+")."})),e.next=7,r.data();case 7:return i=e.sent,e.next=10,a.data();case 10:for(o=e.sent,s=new Set(o),u=0,l=0;l<i.length;l++)s.has(i[l])||u++;for(c=new kg([u],r.dtype),p=new kg([u],"int32"),h=0,f=0;h<i.length;h++)s.has(i[h])||(c.values[f]=i[h],p.values[f]=h,f++);return e.abrupt("return",[c.toTensor(),p.toTensor()]);case 18:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var FS=function(e,t){return _S.apply(this,arguments)};var OS=$g({sign_:function(e){var t=Zg(e,"x","sign"),n={x:t};return Gg.runKernelFunc((function(e){return e.sign(t)}),n,null,"Sign")}});var MS=$g({sin_:function(e){var t=Zg(e,"x","sin"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.sin(t);return n([t]),r}),n,null,dv)}});var LS=$g({sinh_:function(e){var t=Zg(e,"x","sinh"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.sinh(t);return n([t]),r}),n,null,"Sinh")}});var zS=$g({slice1d_:function(e,t,n){var r=Zg(e,"x","slice1d");return Ev(1===r.rank,(function(){return"slice1d expects a rank-1 tensor, but got a rank-"+r.rank+" tensor"})),rw(r,[t],[n])}});var BS=$g({slice2d_:function(e,t,n){var r=Zg(e,"x","slice2d");return Ev(2===r.rank,(function(){return"slice2d expects a rank-2 tensor, but got a rank-"+r.rank+" tensor"})),rw(r,t,n)}});var PS=$g({slice3d_:function(e,t,n){var r=Zg(e,"x","slice3d");return Ev(3===r.rank,(function(){return"slice3d expects a rank-3 tensor, but got a rank-"+r.rank+" tensor"})),rw(r,t,n)}});var WS=$g({slice4d_:function(e,t,n){var r=Zg(e,"x","slice4d");return Ev(4===r.rank,(function(){return"slice4d expects a rank-4 tensor, but got a rank-"+r.rank+" tensor"})),rw(r,t,n)}});var VS=$g({softmax_:function(e,t){void 0===t&&(t=-1);var n=Zg(e,"logits","softmax","float32");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error("Softmax along a non-last dimension is not yet supported. Logits was rank "+n.rank+" and dim was "+t);var r={logits:n},a={dim:t};return Gg.runKernelFunc((function(e,r){var a=e.softmax(n,t);return r([a]),a}),r,null,"Softmax",a)}});var US=$g({fft_:function(e){Ev("complex64"===e.dtype,(function(){return"The dtype for tf.spectral.fft() must be complex64 but got "+e.dtype+"."}));var t={input:e};return Gg.runKernelFunc((function(t){var n=e.shape[e.shape.length-1],r=e.size/n,a=e.as2D(r,n);return t.fft(a).reshape(e.shape)}),t,null,"FFT")}});var GS=$g({ifft_:function(e){Ev("complex64"===e.dtype,(function(){return"The dtype for tf.spectral.ifft() must be complex64 but got "+e.dtype+"."}));var t={input:e};return Gg.runKernelFunc((function(t){var n=e.shape[e.shape.length-1],r=e.size/n,a=gb(e,[r,n]),i=t.ifft(a
17);return gb(i,e.shape)}),t,null,"IFFT")}});var jS=$g({irfft_:function(e){var t,n=e.shape[e.shape.length-1],r=e.size/n;if(n<=2){var a=gb(e,[r,n]);t=GS(a)}else{var i=[r,2*(n-1)],o=gb(jk(e),[r,n]),s=gb(nk(e),[r,n]),u=SS(rw(o,[0,1],[r,n-2]),1),l=vx(SS(rw(s,[0,1],[r,n-2]),1),sk(-1)),c=tw([o,u],1),p=tw([s,l],1),h=gb(ey(c,p),[i[0],i[1]]);t=GS(h)}if(t=jk(t),3===e.rank&&0!==e.shape[0]){var f=t,d=e.shape[0];t=gb(t,[d,t.shape[0]/d,t.shape[1]]),f.dispose()}return t}});function HS(e,t,n){void 0===n&&(n=0);var r=[];if("number"==typeof t)Ev(e.shape[n]%t==0,(function(){return"Number of splits must evenly divide the axis."})),r=new Array(t).fill(e.shape[n]/t);else{Ev(t.reduce((function(e,t){return-1===t&&(e+=1),e}),0)<=1,(function(){return"There should be only one negative value in split array."}));var a=t.indexOf(-1);if(-1!==a){var i=t.reduce((function(e,t){return t>0?e+t:e}));t[a]=e.shape[n]-i}Ev(e.shape[n]===t.reduce((function(e,t){return e+t})),(function(){return"The sum of sizes must match the size of the axis dimension."})),r=t}return r}var qS=$g({split_:function(e,t,n){void 0===n&&(n=0);var r=Zg(e,"x","split"),a={x:r},i={numOrSizeSplits:t,axis:n};return Gg.runKernelFunc((function(e,a){var i=Pv(n,r.shape)[0],o=HS(r,t,i);return e.split(r,o,i)}),a,null,"SplitV",i)}});var KS=$g({rfft_:function(e,t){Ev("float32"===e.dtype,(function(){return"The dtype for rfft() must be real value but got "+e.dtype}));var n,r=e.shape[e.shape.length-1],a=e.size/r;if(null!=t&&t<r){var i=e.shape.map((function(e){return 0})),o=e.shape.map((function(e){return e}));o[e.shape.length-1]=t,n=rw(e,i,o),r=t}else if(null!=t&&t>r){var s=e.shape.map((function(e){return e}));s[e.shape.length-1]=t-r,n=tw([e,Fk(s)],e.shape.length-1),r=t}else n=e;var u=Bw(n),l=gb(ey(n,u),[a,r]),c=US(l),p=Math.floor(r/2)+1,h=jk(c),f=nk(c),d=qS(h,[p,r-p],h.shape.length-1),m=qS(f,[p,r-p],f.shape.length-1),v=n.shape.slice();return v[n.shape.length-1]=p,gb(ey(d[0],m[0]),v)}});var XS=$g({sqrt_:function(e){var t=Zg(e,"x","sqrt"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.sqrt(t);return n([t]),r}),n,null,"Sqrt")}});var YS=$g({squaredDifference_:function(e,t){var n=Zg(e,"a","squaredDifference"),r=Zg(t,"b","squaredDifference"),a=Mg(n,r);n=a[0],r=a[1],Mw(n.shape,r.shape);var i={a:n,b:r};return Gg.runKernelFunc((function(e,t){var a=e.squaredDifference(n,r);return t([n,r]),a}),i,null,"SquaredDifference",{})}});var JS=$g({squeeze_:function(e,t){var n=Zg(e,"x","squeeze");return gb(n,Wv(n.shape,t).newShape)}});var ZS=$g({stack_:function(e,t){void 0===t&&(t=0);var n=Qg(e,"tensors","stack");if(Ev(n.length>=1,(function(){return"Pass at least one tensor to tf.stack"})),1===n.length)return jw(n[0],t);var r=n[0].rank,a=n[0].shape,i=n[0].dtype;Ev(t<=r,(function(){return"Axis must be <= rank of the tensor"})),n.forEach((function(e){Av(a,e.shape,"All tensors passed to stack must have matching shapes"),Ev(i===e.dtype,(function(){return"All tensors passed to stack must have matching dtypes"}))}));var o=n.map((function(e){return jw(e,t)}));return tw(o,t)}});var QS=$g({step_:function(e,t){void 0===t&&(t=0);var n=Zg(e,"x","step"),r={x:n},a={alpha:t};return Gg.runKernelFunc((function(e){return e.step(n,t)}),r,null,"Step",a)}});var $S=$g({stridedSlice_:function(e,t,n,r,a,i,o,s,u){void 0===a&&(a=0),void 0===i&&(i=0),void 0===o&&(o=0),void 0===s&&(s=0),void 0===u&&(u=0);var l=Zg(e,"x","stridedSlice"),c={x:l},p={begin:t,end:n,strides:r,beginMask:a,endMask:i,ellipsisMask:o,newAxisMask:s,shrinkAxisMask:u};return Gg.runKernelFunc((function(e){null==r&&(r=new Array(t.length));var c=Ob(o);if(c.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(0!==o&&0!==s)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(0!==o&&0!==u)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");var p=l.rank-t.length,h=Ob(s),f=l.shape.slice();h.forEach((function(e){t[e]=0,n[e]=1,f.splice(e,0,1)}));var d=Pb((l=gb(l,f)).shape,c,p,t,n,r,a,i,o),m=d.begin,v=d.end,g=d.strides;t=m,n=v,r=g;var y=Ob(u);y.forEach((function(e){n[e]=t[e]+1,r[e]=1}));var b=Mb(t,n,r),x=b.filter((function(e,t){return-1===y.indexOf(t)}));if(r.every((function(e){return 1===e})))return gb(rw(l,t,b),x);var w=e.stridedSlice(l,t,n,r);return gb(w,x)}),c,null,"StridedSlice",p)}});var eN=$g({tan_:function(e){var t=Zg(e,"x","tan"),n={x:t};return Gg.runKernelFunc((function(e,n){var r=e.tan(t);return n([t]),r}),n,null,mv)}});function tN(e,t,n){if(Tv(e),null!=t&&2!==t.length)throw new Error("tensor2d() requires shape to have tw
17o numbers");var r=Yg(e,n);if(2!==r.length&&1!==r.length)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return ty(e,t,r,n)}function nN(e,t,n){if(Tv(e),null!=t&&4!==t.length)throw new Error("tensor4d() requires shape to have four numbers");var r=Yg(e,n);if(4!==r.length&&1!==r.length)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return ty(e,t,r,n)}var rN=$g({topk_:function(e,t,n){void 0===t&&(t=1),void 0===n&&(n=!0);var r=Zg(e,"x","topk");if(0===r.rank)throw new Error("topk() expects the input to be of rank 1 or higher");var a=r.shape[r.shape.length-1];if(t>a)throw new Error("'k' passed to topk() must be <= the last dimension ("+a+") but got "+t);var i={x:r},o={k:t,sorted:n},s=Gg.runKernelFunc((function(e){return e.topk(r,t,n)}),i,null,"TopK",o);return{values:s[0],indices:s[1]}}});var aN=$g({truncatedNormal_:function(e,t,n,r,a){if(void 0===t&&(t=0),void 0===n&&(n=1),null!=r&&"bool"===r)throw new Error("Unsupported data type $ { dtype }");for(var i=new hS(t,n,r,!0,a),o=Yy(e,r),s=0;s<o.values.length;s++)o.values[s]=i.nextValue();return o.toTensor()}});var iN=$g({unique_:function(e,t){void 0===t&&(t=0);var n=Zg(e,"x","unique",null);Ev(n.rank>0,(function(){return"The input tensor must be at least 1D"}));var r={x:n},a={axis:t},i=Gg.runKernel("Unique",r,a);return{values:i[0],indices:i[1]}}});var oN=$g({unsortedSegmentSum_:function(e,t,n){var r=Zg(e,"x","unsortedSegmentSum"),a=Zg(t,"segmentIds","unsortedSegmentSum","int32");Ev(Ov(n),(function(){return"numSegments must be of dtype int"}));var i={x:r,segmentIds:a},o={numSegments:n};return Gg.runKernelFunc((function(e,t){var i=e.unsortedSegmentSum(r,a,n);return t([a]),i}),i,null,"UnsortedSegmentSum",o)}});var sN=$g({unstack_:function(e,t){void 0===t&&(t=0);var n=Zg(e,"x","unstack");Ev(t>=-n.shape.length&&t<n.shape.length,(function(){return"Axis = "+t+" is not in [-"+n.shape.length+", "+n.shape.length+")"})),t<0&&(t+=n.shape.length);var r={value:n},a={axis:t};return Gg.runKernelFunc((function(e){return e.unstack(n,t)}),r,null,"Unpack",a)}});function uN(e,t,n,r){return void 0===t&&(t=!0),Gg.makeVariable(e,t,n,r)}function lN(e,t){for(var n=[],r=0;r<t.length;r++)t[r]&&n.push(r);for(var a=Yy(e,"int32"),i=Yy([n.length,e.length],"int32"),o=0;o<n.length;o++){var s=a.indexToLoc(n[o]),u=o*e.length;i.values.set(s,u)}return i.toTensor()}function cN(){return(cN=Gm(regeneratorRuntime.mark((function e(t){var n,r,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=Zg(t,"condition","whereAsync","bool"),e.next=3,n.data();case 3:return r=e.sent,a=lN(n.shape,r),t!==n&&n.dispose(),e.abrupt("return",a);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var pN=function(e){return cN.apply(this,arguments)};function hN(){return(hN=Gm(regeneratorRuntime.mark((function e(t,n,r){var a,i,o,s,u,l,c,p,h,f,d,m,v;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(a=Zg(t,"tensor","boolMask"),i=Zg(n,"mask","boolMask","bool"),o=null==r?0:r,s=i.rank,u=a.shape,Ev(s>0,(function(){return"mask cannot be scalar"})),Av(u.slice(o,o+s),i.shape,"mask's shape must match the first K dimensions of tensor's shape,"),l=1,c=o;c<o+s;c++)l*=u[c];return p=u.slice(0,o).concat([l],u.slice(o+s)),h=gb(a,p),f=gb(i,[-1]),e.next=14,pN(f);case 14:return d=e.sent,m=JS(d,[1]),v=$w(h,m,o),t!==a&&a.dispose(),n!==i&&i.dispose(),m.dispose(),h.dispose(),f.dispose(),d.dispose(),e.abrupt("return",v);case 24:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var fN=function(e,t,n){return hN.apply(this,arguments)};var dN=$g({equalStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","equalStrict"),r=Zg(t,"b","equalStrict");return Av(n.shape,r.shape,"Error in equalStrict: "),Lw(n,r)}}),mN=$g({greaterEqualStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","greaterEqualStrict"),r=Zg(t,"b","greaterEqualStrict");return Av(n.shape,r.shape,"Error in greaterEqualStrict: "),tk(n,r)}}),vN=$g({greaterStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","greaterStrict"),r=Zg(t,"b","greaterStrict");return Av(n.shape,r.shape,"Error in greaterStrict: "),ek(n,r)}}),gN=$g({lessEqualStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","lessEqualStrict"),r=Zg(t,"b","lessEqualStrict");return Av(n.shape,r.shape,"Error in lessEqualStrict: "),ck(n,r)}}),yN=$g({lessStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","lessStrict"),r=Zg(t,"b","lessStrict");return Av(n.shape,r.shape,"Error in lessStrict: "),lk(n,r)}}),bN=$g({notEqualStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","notEqualStrict"),r=Zg(t,"b","notEqualStrict");return Av(n.shape,r.shape,"Error in notEqualStrict: "),Gk(n,r)}});var xN=$g({addStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","addStrict"),r=Zg(t,"b","addStrict");return Av(n.shape,r.shape,"Error in addStrict: "),fx(n,r)}}),wN=$g({divStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","div"),r=Zg(t,"b","div");return Av(n.shape,r.shape,"Error in divideStrict: "),mx(n,r)}}),kN=$g({maximumStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","maximumStrict"),r=Zg(t,"b","maximumStrict");return Av(n.shape,r.shape,"Error in maximumStrict: "),ok(n,r)}}),SN=$g({minimumStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","minimumStrict"),r=Zg(t,"b","minimumStrict");return Av(n.shape,r.shape,"Error in minimumStrict: "),zk(n,r)}}),NN=$g({modStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","modStrict"),r=Zg(t,"b","modStrict");return Av(n.shape,r.shape,"Error in modStrict: "),Bk(n,r)}}),IN=$g({mulStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","mul"),r=Zg(t,"b","mul");return Av(n.shape,r.shape,"Error in multiplyStrict: "),vx(n,r)}}),CN=$g({powStrict_:function(e,t){return ax("strict variants of ops have been deprecated and will be removed in future"),Av(e.shape,t.shape,"Error in powStrict: "),eS(e,t)}}),RN=$g({squaredDifferenceStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","squaredDifferenceStrict"),r=Zg(t,"b","squaredDifferenceStrict");return Av(n.shape,r.shape,"Error in squaredDifferenceStrict: "),YS(n,r)}}),EN=$g({subStrict_:function(e,t){ax("strict variants of ops have been deprecated and will be removed in future");var n=Zg(e,"a","subStrict"),r=Zg(t,"b","subStrict");return Av(n.shape,r.shape,"Error in subStrict: "),kk(n,r)}});var AN=$g({norm_:function(e,t,n,r){void 0===t&&(t="euclidean"),void 0===n&&(n=null),void 0===r&&(r=!1);var a=function e(t,n,r){void 0===r&&(r=null);if(0===t.rank)return gx(t);if(1!==t.rank&&null===r)return e(gb(t,[-1]),n,r);
17if(1===t.rank||"number"==typeof r||Array.isArray(r)&&1===r.length){if(1===n)return Sk(gx(t),r);if(n===1/0)return wk(gx(t),r);if(n===-1/0)return Lk(gx(t),r);if("euclidean"===n||2===n)return XS(Sk(eS(gx(t),sk(2,"int32")),r));throw new Error("Error in norm: invalid ord value: "+n)}if(Array.isArray(r)&&2===r.length){if(1===n)return wk(Sk(gx(t),r[0]),r[1]-1);if(n===1/0)return wk(Sk(gx(t),r[1]),r[0]);if(n===-1/0)return Lk(Sk(gx(t),r[1]),r[0]);if("fro"===n||"euclidean"===n)return XS(Sk(Pk(t),r));throw new Error("Error in norm: invalid ord value: "+n)}throw new Error("Error in norm: invalid axis: "+r)}(e=Zg(e,"x","norm"),t,n),i=a.shape;if(r){var o=Pv(n,e.shape);i=Nx(a.shape,o)}return gb(a,i)}});var TN=$g({movingAverage_:function(e,t,n,r,a){void 0===a&&(a=!0);var i=Zg(e,"v","movingAverage"),o=Zg(t,"x","movingAverage"),s=Zg(n,"decay","movingAverage");Lg(i,o),Ev(Fv(i.shape,o.shape),(function(){return"Shape mismatch in v and x"}));var u=sk(1),l=kk(u,s),c=vx(kk(o,i),l);if(a){Ev(null!=r,(function(){return"When using zeroDebias: true, step is required."}));var p=Zg(r,"step","movingAverage");c=mx(c,kk(u,eS(s,p)))}return fx(i,c)}});var DN=$g({scatterND_:function(e,t,n){var r=Zg(e,"indices","scatterND","int32"),a=Zg(t,"updates","scatterND");Tb(a,r,n);var i={indices:r,updates:a},o={shape:n};return Gg.runKernelFunc((function(e){return e.scatterND(r,a,n)}),i,null,"ScatterNd",o)}});var _N=$g({sparseToDense_:function(e,t,n,r){void 0===r&&(r=0);var a=Zg(e,"sparseIndices","sparseToDense","int32"),i=Zg(t,"sparseValues","sparseToDense"),o=Zg(r,"defaultValue","sparseToDense",i.dtype);!function(e,t,n,r){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+".");var a=e.rank>0?e.shape[0]:1,i=e.rank>1?e.shape[1]:1;if(n.length!==i)throw new Error("outputShape has incorrect number of elements:, "+n.length+", should be: "+i+".");var o=t.size;if(0!==t.rank&&(1!==t.rank||o!==a))throw new Error("sparseValues has incorrect shape "+t.shape+", should be [] or ["+a+"]");if(t.dtype!==r.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}(a,i,n,o);var s={sparseIndices:a,sparseValues:i,defaultValue:o},u={outputShape:n};return Gg.runKernelFunc((function(e){return e.sparseToDense(a,i,n,o)}),s,null,"SparseToDense",u)}});var FN=$g({gatherND_:function(e,t){var n=Zg(t,"indices","gatherND","int32"),r=Zg(e,"x","gatherND"),a={params:r,indices:n};return Gg.runKernelFunc((function(e){return e.gatherND(r,n)}),a,null,"GatherNd")}});var ON=$g({dropout_:function(e,t,n,r){var a=Zg(e,"x","dropout");if(Ev("float32"===a.dtype,(function(){return"x has to be a floating point tensor since it's going to be scaled, but got a "+a.dtype+" tensor instead."})),Ev(t>=0&&t<1,(function(){return"rate must be a float in the range [0, 1), but got "+t+"."})),0===t)return e instanceof Ig?a.clone():a;var i=function(e,t){if(null==t)return e.shape.slice();if(Fv(e.shape,t))return t;if(e.shape.length===t.length){for(var n=[],r=0;r<e.shape.length;r++)null==t[r]&&null!=e.shape[r]?n.push(e.shape[r]):n.push(t[r]);return n}return t}(a,n),o=1-t,s=mx(Yw(fx(gS(i,0,1,"float32",r),o)),o);return vx(a,s)}});function MN(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function LN(e,t,n){for(var r=1-e%2,a=new Float32Array(e),i=0;i<e;++i){var o=2*Math.PI*i/(e+r-1);a[i]=t-n*Math.cos(o)}return yS(a,"float32")}function zN(){return(zN=Gm(regeneratorRuntime.mark((function e(t,n,r){var a,i,o,s,u,l,c,p,h,f,d,m,v,g;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r=1),a=Zg(t,"predictions","inTopK"),i=Zg(n,"targets","inTopK"),Ev(a.rank>1,(function(){return"inTopK() expects the predictions to be of rank 2 or higher, but got "+a.rank})),Ev(a.rank-1===i.rank,(function(){return"predictions rank should be 1 larger than targets rank, but got predictions rank "+a.rank+" and targets rank "+i.rank})),Av(a.shape.slice(0,a.shape.length-1),i.shape,"predictions's shape should be align with the targets' shape, except the last dimension."),o=a.shape[a.shape.length-1],Ev(r>0&&r<=o,(function(){return"'k' passed to inTopK() must be > 0 && <= the predictions last dimension ("+o+"), but got "+r})),e.next=10,a.data();case 10:return s=e.sent,e.next=13,i.data();case 13:u=e.sent,l=s.length/o,c=o,p=Vv("bool",l),h=0;case 17:if(!(h<l)){e.next=35;break}for(f=h*c,d=s.subarray(f,f+c),m=[],v=0;v<d.length;v++)m.push({value:d[v],index:v});m.sort((function(e,t){return t.value-e.value})),p[h]=0,g=0;case 25:if(!(g<r)){e.next=32;break}if(m[g].index!==u[h]){e.next=29;break}return p[h]=1,e.abrupt("break",32);case 29:g++,e.next=25;break;case 32:h++,e.next=17;break;case 35:return t!==a&&a.dispose(),n!==i&&i.dispose(),e.abrupt("return",ny(p,i.shape,"bool"));case 38:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var BN=function(e,t,n){return zN.apply(this,arguments)};var PN=$g({conv2DBackpropFilter_:function(e,t,n,r,a,i,o){void 0===i&&(i="NHWC");var s=e;3===e.rank&&(s=gb(e,[1,e.shape[0],e.shape[1],e.shape[2]]));var u=t;3===u.rank&&(u=gb(t,[1,t.shape[0],t.shape[1],t.shape[2]])),Ev(4===s.rank,(function(){return"Error in conv2dDerFilter: input must be rank 4, but got shape "+s.shape+"."})),Ev(4===u.rank,(function(){return"Error in conv2dDerFilter: dy must be rank 4, but got shape "+u.shape+"."})),Ev(4===n.length,(function(){return"Error in conv2dDerFilter: filterShape must be length 4, but got "+n+"."}));var l="NHWC"===i?s.shape[3]:s.shape[1],c="NHWC"===i?u.shape[3]:u.shape[1];Ev(l===n[2],(function(){return"Error in conv2dDerFilter: depth of input "+l+") must match input depth in filter ("+n[2]+"."})),Ev(c===n[3],(function(){return"Error in conv2dDerFilter: depth of dy ("+c+") must match output depth for filter ("+n[3]+")."})),null!=o&&Ev(Ov(a),(function(){return"Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+a+"."}));var p={x:s,dy:u},h={strides:r,pad:a,dataFormat:i,dimRoundingMode:o};return Gg.runKernelFunc((function(e){var t=Jx(i),l=Vx(s.shape,n,r,1,a,o,!1,t);return e.conv2dDerFilter(s,u,l)}),p,null,"Conv2DBackpropFilter",h)}});function WN(e,t,n){if(null==n||"linear"===n)return e;if("relu"===n)return vx(e,QS(t));throw new Error("Cannot compute gradient for fused activation "+n+".")}function VN(e,t){var n=t,r=Ow(e.shape,t.shape);return r.length>0&&(n=Sk(n,r)),gb(n,e.shape)}function UN(e,t,n){if("linear"===t)return e;if("relu"===t)return wS(e);if("elu"===t)return Vw(e);if("relu6"===t)return kS(e);if("prelu"===t)return tS(e,n);throw new Error("Unknown fused activation "+t+".")}var GN=function(e,t){return!(e>0)||"linear"===t};var jN=$g({fusedConv2d_:function(e){var t=e.x,n=e.filter,r=e.strides,a=e.pad,i=e.dataFormat,o=void 0===i?"NHWC":i,s=e.dilations,u=void 0===s?[1,1]:s,l=e.dimRoundingMode,c=e.b
17ias,p=e.activation,h=void 0===p?"linear":p,f=e.preluActivationWeights;if(h=h||"linear",!1===GN(Gg.state.gradientDepth,h)){var d=bw(t,n,r,a,o,u,l);return null!=c&&(d=fx(d,c)),UN(d,h,f)}var m=Zg(t,"x","conv2d"),v=Zg(n,"filter","conv2d"),g=m,y=!1;3===m.rank&&(y=!0,g=gb(m,[1,m.shape[0],m.shape[1],m.shape[2]])),Ev(4===g.rank,(function(){return"Error in fused conv2d: input must be rank 4, but got rank "+g.rank+"."})),Ev(4===v.rank,(function(){return"Error in fused conv2d: filter must be rank 4, but got rank "+v.rank+"."})),null!=l&&Ev(Ov(a),(function(){return"Error in fused conv2d: pad must be an integer when using, dimRoundingMode "+l+" but got pad "+a+"."})),Ev(g.shape[3]===v.shape[2],(function(){return"Error in conv2d: depth of input ("+g.shape[3]+") must match input depth for filter "+v.shape[2]+"."})),Ev(Yx(r,u),(function(){return"Error in conv2D: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+u+"'"})),Ev("NHWC"===o,(function(){return"Error in conv2d: got dataFormat of "+o+" but only NHWC is currently supported."}));var b,x,w=Vx(g.shape,v.shape,r,u,a,l);if(null!=c){var k=Mg(b=Zg(c,"bias","fused conv2d"),m);b=k[0],Mw(w.outShape,b.shape)}null!=f&&(x=Zg(f,"prelu weights","fused conv2d"));var S=function(e,t){var n=t[0],i=t[1],o=t[2],s=t[3],l=WN(e,o,h);Ev(Xx(u),(function(){return"Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+u+"'"}));var c=[ww(i.shape,l,n,r,a),PN(i,l,n.shape,r,a)];if(null!=s){var p=VN(s,l);c.push(p)}return c},N=function(e){return e.fusedConv2d({input:g,filter:v,convInfo:w,bias:b,activation:h,preluActivationWeights:x})},I={x:g,filter:v,bias:b,preluActivationWeights:x},C={strides:r,pad:a,dataFormat:o,dilations:u,dimRoundingMode:l,activation:h};return null==c?vk((function(e,t,n){var r=Gg.runKernelFunc(N,I,null,"FusedConv2D",C);return n([t,e,r]),y&&(r=gb(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:S}}))(g,v):vk((function(e,t,n,r){var a=Gg.runKernelFunc(N,I,null,"FusedConv2D",C);return r([t,e,a,n]),y&&(a=gb(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:S}}))(g,v,b)}});var HN=$g({depthwiseConv2dNativeBackpropFilter_:function(e,t,n,r){var a=e;3===e.rank&&(a=gb(e,[1,e.shape[0],e.shape[1],e.shape[2]]));var i=t;3===i.rank&&(i=gb(t,[1,t.shape[0],t.shape[1],t.shape[2]]));var o={x:a,dy:i};return Gg.runKernelFunc((function(e){return e.depthwiseConv2DDerFilter(a,i,r)}),o,null,"DepthwiseConv2dNativeBackpropFilter")}});var qN=$g({depthwiseConv2dNativeBackpropInput_:function(e,t,n,r){var a=t,i=!1;3===t.rank&&(i=!0,a=gb(t,[1,t.shape[0],t.shape[1],t.shape[2]]));var o={dy:a},s=Gg.runKernelFunc((function(e){return e.depthwiseConv2DDerInput(a,n,r)}),o,null,"DepthwiseConv2dNativeBackpropInput");return i?gb(s,[s.shape[1],s.shape[2],s.shape[3]]):s}});var KN=$g({fusedDepthwiseConv2d_:function(e){var t=e.x,n=e.filter,r=e.strides,a=e.pad,i=e.dataFormat,o=void 0===i?"NHWC":i,s=e.dilations,u=void 0===s?[1,1]:s,l=e.dimRoundingMode,c=e.bias,p=e.activation,h=void 0===p?"linear":p,f=e.preluActivationWeights;if(!1===GN(Gg.state.gradientDepth,h)){var d=Tw(t,n,r,a,o,u,l);return null!=c&&(d=fx(d,c)),UN(d,h,f)}var m=Zg(t,"x","depthwiseConv2d"),v=Zg(n,"filter","depthwiseConv2d"),g=m,y=!1;3===m.rank&&(y=!0,g=gb(m,[1,m.shape[0],m.shape[1],m.shape[2]])),Ev(4===g.rank,(function(){return"Error in fused depthwiseConv2d: input must be rank 4, but got rank "+g.rank+"."})),Ev(4===v.rank,(function(){return"Error in fused depthwiseConv2d: filter must be rank 4, but got rank "+v.rank+"."})),Ev(g.shape[3]===v.shape[2],(function(){return"Error in fused depthwiseConv2d: number of input channels ("+g.shape[3]+") must match the inChannels dimension in filter "+v.shape[2]+"."})),null==u&&(u=[1,1]),Ev(Yx(r,u),(function(){return"Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+u+"'"})),null!=l&&Ev(Ov(a),(function(){return"Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode "+l+" but got pad "+a+"."}));var b,x,w=Vx(g.shape,v.shape,r,u,a,l,!0);if(null!=c){var k=Mg(b=Zg(c,"bias","fused conv2d"),m);b=k[0],Mw(w.outShape,b.shape)}null!=f&&(x=Zg(f,"prelu weights","fused depthwiseConv2d"));var S=function(e,t){Ev(Xx(u),(function(){return"Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '"+u+"'"}));
17var n=t[0],r=t[1],a=t[2],i=t[3],o=WN(e,a,h),s=qN(r.shape,o,n,w),l=HN(r,o,n.shape,w);return null!=i?[s,l,VN(b,o)]:[s,l]},N=function(e){return e.fusedDepthwiseConv2D({input:g,filter:v,convInfo:w,bias:b,activation:h,preluActivationWeights:x})},I={x:g,filter:v,bias:b,preluActivationWeights:x},C={strides:r,pad:a,dataFormat:o,dilations:u,dimRoundingMode:l,activation:h};return null==c?vk((function(e,t,n){var r=Gg.runKernelFunc(N,I,null,"FusedDepthwiseConv2D",C);return n([t,e,r]),y&&(r=gb(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:S}}))(g,v):vk((function(e,t,n,r){var a=Gg.runKernelFunc(N,I,null,"FusedDepthwiseConv2D",C);return r([t,e,a,n]),y&&(a=gb(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:S}}))(g,v,b)}});var XN=$g({fusedMatMul_:function(e){var t=e.a,n=e.b,r=e.transposeA,a=void 0!==r&&r,i=e.transposeB,o=void 0!==i&&i,s=e.bias,u=e.activation,l=void 0===u?"linear":u,c=e.preluActivationWeights;if(!1===GN(Gg.state.gradientDepth,l)){var p=yb(t,n,a,o);return null!=s&&(p=fx(p,s)),UN(p,l,c)}var h=Zg(t,"a","fused matMul"),f=Zg(n,"b","fused matMul"),d=Mg(h,f);h=d[0],f=d[1];var m=a?h.shape[h.rank-2]:h.shape[h.rank-1],v=o?f.shape[f.rank-1]:f.shape[f.rank-2],g=a?h.shape[h.rank-1]:h.shape[h.rank-2],y=o?f.shape[f.rank-2]:f.shape[f.rank-1],b=h.shape.slice(0,-2),x=f.shape.slice(0,-2),w=_v(b),k=_v(x);Ev(h.rank>=2&&f.rank>=2&&h.rank===f.rank,(function(){return"Error in fused matMul: inputs must have the same rank of at least 2, got ranks "+h.rank+" and "+f.rank+"."})),Ev(Fv(b,x),(function(){return"Error in fused matMul: outer dimensions ("+b+") and ("+x+") of Tensors with shapes "+h.shape+" and "+f.shape+" must match."})),Ev(m===v,(function(){return"Error in fused matMul: inner shapes ("+m+") and ("+v+") of Tensors with shapes "+h.shape+" and "+f.shape+" and transposeA="+a+" and transposeB="+o+" must match."}));var S,N,I=h.shape.slice(0,-2).concat([g,y]),C=gb(h,a?[w,m,g]:[w,g,m]),R=gb(f,o?[k,y,v]:[k,v,y]);if(null!=s){var E=Mg(S=Zg(s,"bias","fused matMul"),h);S=E[0],Mw(I,S.shape)}null!=c&&(N=Zg(c,"prelu weights","fused matMul"));var A=function(e,t){var n,r,i=t[0],u=t[1],c=t[2],p=t[3],h=WN(gb(e,c.shape),c,l);return a||o?!a&&o?(n=yb(h,u,!1,!1),r=yb(h,i,!0,!1)):a&&!o?(n=yb(u,h,!1,!0),r=yb(i,h,!1,!1)):(n=yb(u,h,!0,!0),r=yb(h,i,!0,!0)):(n=yb(h,u,!1,!0),r=yb(i,h,!0,!1)),null!=s?[n,r,VN(p,h)]:[n,r]},T=function(e){return e.fusedBatchMatMul({a:C,b:R,transposeA:a,transposeB:o,bias:S,activation:l,preluActivationWeights:N})},D={a:C,b:R,bias:S,preluActivationWeights:N},_={transposeA:a,transposeB:o,activation:l};return null==s?vk((function(e,t,n){var r=Gg.runKernelFunc(T,D,null,"_FusedMatMul",_);return n([e,t,r]),{value:gb(r,I),gradFunc:A}}))(C,R):vk((function(e,t,n,r){var a=Gg.runKernelFunc(T,D,null,"_FusedMatMul",_);return r([e,t,a,n]),{value:gb(a,I),gradFunc:A}}))(C,R,S)}}),YN={__proto__:null,conv2d:jN,depthwiseConv2d:KN,matMul:XN};var JN=$g({hammingWindow_:function(e){return LN(e,.54,.46)}});var ZN=$g({hannWindow_:function(e){return LN(e,.5,.5)}});var QN=$g({frame_:function(e,t,n,r,a){void 0===r&&(r=!1),void 0===a&&(a=0);for(var i=0,o=[];i+t<=e.size;)o.push(rw(e,i,t)),i+=n;if(r)for(;i<e.size;){var s=i+t-e.size,u=tw([rw(e,i,t-s),Xw([s],a)]);o.push(u),i+=n}return 0===o.length?tN([],[0,t]):gb(tw(o),[o.length,t])}});var $N=$g({stft_:function(e,t,n,r,a){void 0===a&&(a=ZN),null==r&&(r=MN(t));for(var i=QN(e,t,n),o=vx(i,a(t)),s=[],u=0;u<i.shape[0];u++)s.push(KS(rw(o,[u,0],[1,t]),r));return tw(s)}});var eI=$g({cropAndResize_:function(e,t,n,r,a,i){var o=Zg(e,"image","cropAndResize"),s=Zg(t,"boxes","cropAndResize","float32"),u=Zg(n,"boxInd","cropAndResize","int32");a=a||"bilinear",i=i||0;var l=s.shape[0];Ev(4===o.rank,(function(){return"Error in cropAndResize: image must be rank 4,but got rank "+o.rank+"."})),Ev(2===s.rank&&4===s.shape[1],(function(){return"Error in cropAndResize: boxes must be have size ["+l+",4] but had shape "+s.shape+"."})),Ev(1===u.rank&&u.shape[0]===l,(function(){return"Error in cropAndResize: boxInd must be have size ["+l+"] but had shape "+s.shape+"."})),Ev(2===r.length,(function(){return"Error in cropAndResize: cropSize must be of length 2, but got length "+r.length+"."})),Ev(r[0]>=1&&r[1]>=1,(function(){return"cropSize must be atleast [1,1], but was "+r})),Ev("bilinear"===a||"nearest"===a,(function(){return"method must be bilinear or nearest, but was "+a}));var c={image:o,boxes:s,boxInd:u},p={method:a,extrapolationValue:i,cropSize:r};return Gg.runKernelFunc((function(e){return e.cropAndResize(o,s,u,r,a,i)}),c,null,"CropAndResize",p)}});var tI=$g({flipLeftRight_:function(e){var t=Zg(e,"image","flipLeftRight","float32");Ev(4===t.rank,(function(){return"Error in flipLeftRight: image must be rank 4,but got rank "+t.rank+"."}));var n={image:t};return Gg.runKernel("FlipLeftRight",n,{})}});var nI=$g({rotateWithOffset_:function(e,t,n,r){void 0===n&&(n=0),void 0===r&&(r=.5);var a=Zg(e,"image","rotateWithOffset","float32");Ev(4===a.rank,(function(){return"Error in rotateWithOffset: image must be rank 4,but got rank "+a.rank+"."}));var i={image:a},o={radians:t,fillValue:n,center:r};return Gg.runKernel("RotateWithOffset",i,o)}});function rI(e,t,n,r,a,i){null==r&&(r=.5),null==a&&(a=Number.NEGATIVE_INFINITY),null==i&&(i=0);var o=e.shape[0];return n=Math.min(n,o),Ev(0<=r&&r<=1,(function(){return"iouThreshold must be in [0, 1], but was '"+r+"'"})),Ev(2===e.rank,(function(){return"boxes must be a 2D tensor, but was of rank '"+e.rank+"'"})),Ev(4===e.shape[1],(function(){return"boxes must have 4 columns, but 2nd dimension was "+e.shape[1]})),Ev(1===t.rank,(function(){return"scores must be a 1D tensor"})),Ev(t.shape[0]===o,(function(){return"scores has incompatible shape with boxes. Expected "+o+", but was "+t.shape[0]})),Ev(0<=i&&i<=1,(function(){return"softNmsSigma must be in [0, 1], but was '"+i+"'"})),{maxOutputSize:n,iouThreshold:r,scoreThreshold:a,softNmsSigma:i}}var aI=$g({nonMaxSuppression_:function(e,t,n,r,a){void 0===r&&(r=.5),void 0===a&&(a=Number.NEGATIVE_INFINITY);var i=Zg(e,"boxes","nonMaxSuppression"),o=Zg(t,"scores","nonMaxSuppression"),s=rI(i,o,n,r,a);n=s.maxOutputSize,r=s.iouThreshold,a=s.scoreThreshold;var u={maxOutputSize:n,iouThreshold:r,scoreThreshold:a};return Gg.runKernelFunc((function(e){return e.nonMaxSuppression(i,o,n,r,a)}),{boxes:i,scores:o},null,"NonMaxSuppressionV3",u)}});function iI(e,t,n){var r=function(e,t,n){return function(e,t,n){var r=0,a=e.length,i=0,o=!1;for(;r<a;){var s=n(t,e[i=r+(a-r>>>1)]);s>0?r=i+1:(a=i,o=!s)}return o?r:-r-1}(e,t,n||oI)}
17(e,t,n),a=r<0?-(r+1):r;e.splice(a,0,t)}function oI(e,t){return e>t?1:e<t?-1:0}function sI(e,t,n,r,a){return cI(e,t,n,r,a,0).selectedIndices}function uI(e,t,n,r,a,i){return cI(e,t,n,r,a,0,!1,i,!0)}function lI(e,t,n,r,a,i){return cI(e,t,n,r,a,i,!0)}function cI(e,t,n,r,a,i,o,s,u){void 0===o&&(o=!1),void 0===s&&(s=!1),void 0===u&&(u=!1);for(var l=[],c=0;c<t.length;c++)t[c]>a&&l.push({score:t[c],boxIndex:c,suppressBeginIndex:0});l.sort(fI);for(var p=i>0?-.5/i:0,h=[],f=[];h.length<n&&l.length>0;){var d=l.pop(),m=d.score,v=d.boxIndex,g=d.suppressBeginIndex;if(m<a)break;for(var y=!1,b=h.length-1;b>=g;--b){var x=pI(e,v,h[b]);if(x>=r){y=!0;break}if(d.score=d.score*hI(r,p,x),d.score<=a)break}d.suppressBeginIndex=h.length,y||(d.score===m?(h.push(v),f.push(d.score)):d.score>a&&iI(l,d,fI))}var w=h.length,k=n-w;s&&k>0&&(h.push.apply(h,new Array(k).fill(0)),f.push.apply(f,new Array(k).fill(0)));var S={selectedIndices:yS(h,"int32")};return o&&(S.selectedScores=yS(f,"float32")),u&&(S.validOutputs=sk(w,"int32")),S}function pI(e,t,n){var r=e.subarray(4*t,4*t+4),a=e.subarray(4*n,4*n+4),i=Math.min(r[0],r[2]),o=Math.min(r[1],r[3]),s=Math.max(r[0],r[2]),u=Math.max(r[1],r[3]),l=Math.min(a[0],a[2]),c=Math.min(a[1],a[3]),p=Math.max(a[0],a[2]),h=Math.max(a[1],a[3]),f=(s-i)*(u-o),d=(p-l)*(h-c);if(f<=0||d<=0)return 0;var m=Math.max(i,l),v=Math.max(o,c),g=Math.min(s,p),y=Math.min(u,h),b=Math.max(g-m,0)*Math.max(y-v,0);return b/(f+d-b)}function hI(e,t,n){var r=Math.exp(t*n*n);return n<=e?r:0}function fI(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}function dI(){return(dI=Gm(regeneratorRuntime.mark((function e(t,n,r,a,i){var o,s,u,l,c,p,h;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===a&&(a=.5),void 0===i&&(i=Number.NEGATIVE_INFINITY),o=Zg(t,"boxes","nonMaxSuppressionAsync"),s=Zg(n,"scores","nonMaxSuppressionAsync"),u=rI(o,s,r,a,i),r=u.maxOutputSize,a=u.iouThreshold,i=u.scoreThreshold,e.next=10,Promise.all([o.data(),s.data()]);case 10:return l=e.sent,c=l[0],p=l[1],h=sI(c,p,r,a,i),o!==t&&o.dispose(),s!==n&&s.dispose(),e.abrupt("return",h);case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var mI=function(e,t,n,r,a){return dI.apply(this,arguments)};var vI=$g({nonMaxSuppressionWithScore_:function(e,t,n,r,a,i){void 0===r&&(r=.5),void 0===a&&(a=Number.NEGATIVE_INFINITY),void 0===i&&(i=0);var o=Zg(e,"boxes","nonMaxSuppression"),s=Zg(t,"scores","nonMaxSuppression"),u=rI(o,s,n,r,a,i),l={boxes:o,scores:s},c={maxOutputSize:n=u.maxOutputSize,iouThreshold:r=u.iouThreshold,scoreThreshold:a=u.scoreThreshold,softNmsSigma:i=u.softNmsSigma},p=Gg.runKernel("NonMaxSuppressionV5",l,c);return{selectedIndices:p[0],selectedScores:p[1]}}});function gI(){return(gI=Gm(regeneratorRuntime.mark((function e(t,n,r,a,i,o){var s,u,l,c,p,h,f;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===a&&(a=.5),void 0===i&&(i=Number.NEGATIVE_INFINITY),void 0===o&&(o=0),s=Zg(t,"boxes","nonMaxSuppressionAsync"),u=Zg(n,"scores","nonMaxSuppressionAsync"),l=rI(s,u,r,a,i,o),r=l.maxOutputSize,a=l.iouThreshold,i=l.scoreThreshold,o=l.softNmsSigma,e.next=12,Promise.all([s.data(),u.data()]);case 12:return c=e.sent,p=c[0],h=c[1],f=lI(p,h,r,a,i,o),s!==t&&s.dispose(),u!==n&&u.dispose(),e.abrupt("return",f);case 19:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var yI=function(e,t,n,r,a,i){return gI.apply(this,arguments)};var bI=$g({nonMaxSuppressionPadded_:function(e,t,n,r,a,i){void 0===r&&(r=.5),void 0===a&&(a=Number.NEGATIVE_INFINITY),void 0===i&&(i=!1);var o=Zg(e,"boxes","nonMaxSuppression"),s=Zg(t,"scores","nonMaxSuppression"),u=rI(o,s,n,r,a,null),l={boxes:o,scores:s},c={maxOutputSize:u.maxOutputSize,iouThreshold:u.iouThreshold,scoreThreshold:u.scoreThreshold,padToMaxOutputSize:i},p=Gg.runKernel("NonMaxSuppressionV4",l,c);return{selectedIndices:p[0],validOutputs:p[1]}}});function xI(){return(xI=Gm(regeneratorRuntime.mark((function e(t,n,r,a,i,o){var s,u,l,c,p,h,f,d,m,v;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===a&&(a=.5),void 0===i&&(i=Number.NEGATIVE_INFINITY),void 0===o&&(o=!1),s=Zg(t,"boxes","nonMaxSuppressionAsync"),u=Zg(n,"scores","nonMaxSuppressionAsync"),l=rI(s,u,r,a,i,null),c=l.maxOutputSize,p=l.iouThreshold,h=l.scoreThreshold,e.next=11,Promise.all([s.data(),u.data()]);case 11:return f=e.sent,d=f[0],m=f[1],v=uI(d,m,c,p,h,o),s!==t&&s.dispose(),u!==n&&u.dispose(),e.abrupt("return",v);case 18:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var wI=function(e,t,n,r,a,i){return xI.apply(this,arguments)};var kI=$g({resizeBilinear_:function(e,t,n){void 0===n&&(n=!1);var r=Zg(e,"images","resizeBilinear");Ev(3===r.rank||4===r.rank,(function(){return"Error in resizeBilinear: x must be rank 3 or 4, but got rank "+r.rank+"."})),Ev(2===t.length,(function(){return"Error in resizeBilinear: new shape must 2D, but got shape "+t+"."}));
17var a=r,i=!1;3===r.rank&&(i=!0,a=gb(r,[1,r.shape[0],r.shape[1],r.shape[2]]));var o=t[0],s=t[1],u={images:a},l={alignCorners:n,size:t},c=Gg.runKernelFunc((function(e,t){return t([a]),e.resizeBilinear(a,o,s,n)}),u,null,"ResizeBilinear",l);return i?gb(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});var SI=$g({resizeNearestNeighbor_:function(e,t,n){void 0===n&&(n=!1);var r=Zg(e,"images","resizeNearestNeighbor");Ev(3===r.rank||4===r.rank,(function(){return"Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank "+r.rank+"."})),Ev(2===t.length,(function(){return"Error in resizeNearestNeighbor: new shape must 2D, but got shape "+t+"."})),Ev("float32"===r.dtype||"int32"===r.dtype,(function(){return"`images` must have `int32` or `float32` as dtype"}));var a=r,i=!1;3===r.rank&&(i=!0,a=gb(r,[1,r.shape[0],r.shape[1],r.shape[2]]));var o=t[0],s=t[1],u={images:a},l={alignCorners:n,size:t},c=Gg.runKernelFunc((function(e,t){return t([a]),e.resizeNearestNeighbor(a,o,s,n)}),u,null,"ResizeNearestNeighbor",l);return i?gb(c,[c.shape[1],c.shape[2],c.shape[3]]):c}});var NI=$g({bandPart_:function(e,t,n){Ev(t%1==0,(function(){return"bandPart(): numLower must be an integer, got "+t+"."})),Ev(n%1==0,(function(){return"bandPart(): numUpper must be an integer, got "+n+"."}));var r=Zg(e,"a","bandPart");Ev(r.rank>=2,(function(){return"bandPart(): Rank must be at least 2, got "+r.rank+"."}));var a=r.shape,i=r.shape.slice(-2),o=i[0],s=i[1];if(!(t<=o))throw new Error("bandPart(): numLower ("+t+") must not be greater than the number of rows ("+o+").");if(!(n<=s))throw new Error("bandPart(): numUpper ("+n+") must not be greater than the number of columns ("+s+").");t<0&&(t=o),n<0&&(n=s);var u=gb(bS(0,o,1,"int32"),[-1,1]),l=bS(0,s,1,"int32"),c=kk(u,l),p=Ck(ck(c,sk(+t,"int32")),tk(c,sk(-n,"int32"))),h=Fk([o,s],r.dtype);return gb(ZS(sN(gb(r,[-1,o,s])).map((function(e){return zw(p,e,h)}))),a)}});var II=$g({gramSchmidt_:function(e){var t;Array.isArray(e)?function(){t=!1,Ev(null!=e&&e.length>0,(function(){return"Gram-Schmidt process: input must not be null, undefined, or empty"}));for(var n=e[0].shape[0],r=function(t){Ev(e[t].shape[0]===n,(function(){return"Gram-Schmidt: Non-unique lengths found in the input vectors: ("+e[t].shape[0]+" vs. "+n+")"}))},a=1;a<e.length;++a)r(a)}():(t=!0,e=qS(e,e.shape[0],0).map((function(e){return JS(e,[0])}))),Ev(e.length<=e[0].shape[0],(function(){return"Gram-Schmidt: Number of vectors ("+e.length+") exceeds number of dimensions ("+e[0].shape[0]+")."}));for(var n=[],r=e,a=function(e){n.push(Gg.tidy((function(){var t=r[e];if(e>0)for(var a=0;a<e;++a){var i=vx(Sk(vx(n[a],t)),n[a]);t=kk(t,i)}return mx(t,AN(t,"euclidean"))})))},i=0;i<e.length;++i)a(i);return t?ZS(n,0):n}});function CI(e,t){return void 0===t&&(t=!1),Gg.tidy((function(){Ev(2===e.shape.length,(function(){return"qr2d() requires a 2D Tensor, but got a "+e.shape.length+"D Tensor."}));for(var n=e.shape[0],r=e.shape[1],a=Kw(n),i=Zy(e),o=tN([[1]],[1,1]),s=Zy(o),u=n>=r?r:n,l=function(e){var t=i,u=s,l=a,c=Gg.tidy((function(){var t=rw(i,[e,e],[n-e,1]),u=AN(t),l=rw(i,[e,e],[1,1]),c=zw(ek(l,0),tN([[-1]]),tN([[1]])),p=kk(l,vx(c,u)),h=mx(t,p);s=1===h.shape[0]?Zy(o):tw([o,rw(h,[1,0],[h.shape[0]-1,h.shape[1]])],0);var f=yk(mx(yb(c,p),u)),d=rw(i,[e,0],[n-e,r]),m=vx(f,s),v=xb(s);if(0===e)i=kk(d,yb(m,yb(v,d)));else{var g=kk(d,yb(m,yb(v,d)));i=tw([rw(i,[0,0],[e,r]),g],0)}var y=xb(m),b=rw(a,[0,e],[n,a.shape[1]-e]);if(0===e)a=kk(b,yb(yb(b,s),y));else{var x=kk(b,yb(yb(b,s),y));a=tw([rw(a,[0,0],[n,e]),x],1)}return[s,i,a]}));s=c[0],i=c[1],a=c[2],ux([t,u,l])},c=0;c<u;++c)l(c);return!t&&n>r&&(a=rw(a,[0,0],[n,r]),i=rw(i,[0,0],[r,r])),[a,i]}))}var RI,EI=$g({qr_:function(e,t){if(void 0===t&&(t=!1),Ev(e.rank>=2,(function(){return"qr() requires input tensor to have a rank >= 2, but got rank "+e.rank})),2===e.rank)return CI(e,t);var n=e.shape.slice(0,e.shape.length-2).reduce((function(e,t){return e*t})),r=sN(gb(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),a=[],i=[];return r.forEach((function(e){var n=CI(e,t),r=n[0],o=n[1];a.push(r),i.push(o)})),[gb(ZS(a,0),e.shape),gb(ZS(i,0),e.shape)]}});(RI=e.Reduction||(e.Reduction={}))[RI.NONE=0]="NONE",RI[RI.MEAN=1]="MEAN",RI[RI.SUM=2]="SUM",RI[RI.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS";var AI=$g({computeWeightedLoss_:function(t,n,r){void 0===r&&(r=e.Reduction.SUM_BY_NONZERO_WEIGHTS);var a=Zg(t,"losses","computeWeightedLoss"),i=null;null!=n&&(i=Zg(n,"weights","computeWeightedLoss"));var o=null==i?a:vx(a,i);if(r===e.Reduction.NONE)return o;if(r===e.Reduction.SUM)return Sk(o);if(r===e.Reduction.MEAN){if(null==i)return Mk(o);var s=a.size/i.size,u=mx(Sk(o),Sk(i));return s>1?mx(u,sk(s)):u}if(r===e.Reduction.SUM_BY_NONZERO_WEIGHTS){if(null==i)return mx(Sk(o),sk(a.size));var l=vx(i,Ok(a.shape)),c=Jy(Sk(Gk(l,sk(0))),"float32");return mx(Sk(o),c)}throw Error("Unknown reduction: "+r)}});var TI=$g({absoluteDifference_:function(t,n,r,a){void 0===a&&(a=e.Reduction.SUM_BY_NONZERO_WEIGHTS);var i=Zg(t,"labels","absoluteDifference"),o=Zg(n,"predictions","absoluteDifference"),s=null;null!=r&&(s=Zg(r,"weights","absoluteDifference")),Av(i.shape,o.shape,"Error in absoluteDifference: ");var u=gx(kk(i,o));return AI(u,s,a)}});var DI=$g({cosineDistance_:function(t,n,r,a,i){void 0===i&&(i=e.Reduction.SUM_BY_NONZERO_WEIGHTS);var o=Zg(t,"labels","cosineDistance"),s=Zg(n,"predictions","cosineDistance"),u=null;null!=a&&(u=Zg(a,"weights","cosineDistance")),Av(o.shape,s.shape,"Error in cosineDistance: ");var l=sk(1),c=kk(l,Sk(vx(o,s),r,!0));return AI(c,u,i)}});var _I=$g({hingeLoss_:function(t,n,r,a){void 0===a&&(a=e.Reduction.SUM_BY_NONZERO_WEIGHTS);var i=Zg(t,"labels","hingeLoss"),o=Zg(n,"predictions","hingeLoss"),s=null;null!=r&&(s=Zg(r,"weights","hingeLoss")),Av(i.shape,o.shape,"Error in hingeLoss: ");var u=sk(1);i=kk(vx(sk(2),i),u);var l=wS(kk(u,vx(i,o)));return AI(l,s,a)}});var FI=$g({huberLoss_:function(t,n,r,a,i){void 0===a&&(a=1),void 0===i&&(i=e.Reduction.SUM_BY_NONZERO_WEIGHTS);var o=Zg(t,"labels","huberLoss"),s=Zg(n,"predictions","huberLoss"),u=null;null!=r&&(u=Zg(r,"weights","huberLoss")),Av(o.shape,s.shape,"Error in huberLoss: ");var l=sk(a),c=gx(kk(s,o)),p=zk(c,l),h=kk(c,p),f=fx(vx(sk(.5),Pk(p)),vx(l,h));return AI(f,u,i)}});var OI=$g({logLoss_:function(t,n,r,a,i){void 0===a&&(a=1e-7),void 0===i&&(i=e.Reduction.SUM_BY_NONZERO_WEIGHTS);var o=Zg(t,"labels","logLoss"),s=Zg(n,"predictions","logLoss"),u=null;null!=r&&(u=Zg(r,"weights","logLoss")),Av(o.shape,s.shape,"Error in logLoss: ");var l=sk(1),c=sk(a),p=yk(vx(o,fk(fx(s,c)))),h=vx(kk(l,o),fk(fx(kk(l,s),c))),f=kk(p,h);return AI(f,u,i)}});var MI=$g({meanSquaredError_:function(t,n,r,a){void 0===a&&(a=e.Reduction.SUM_BY_NONZERO_WEIGHTS);var i=Zg(t,"labels","meanSquaredError"),o=Zg(n,"predictions","meanSquaredError"),s=null;null!=r&&(s=Zg(r,"weights","meanSquaredError")),Av(i.shape,o.shape,"Error in meanSquaredError: ");var u=YS(i,o);return AI(u,s,a)}});var LI=$g({sigmoidCrossEntropy_:function(t,n,r,a,i){void 0===a&&(a=0),void 0===i&&(i=e.Reduction.SUM_BY_NONZERO_WEIGHTS);var o=Zg(t,"multiClassLabels","sigmoidCrossEntropy"),s=Zg(n,"logits","sigmoidCrossEntropy"),u=null;if(null!=r&&(u=Zg(r,"weights","sigmoidCrossEntropy")),Av(o.shape,s.shape,"Error in sigmoidCrossEntropy: "),a>0){var l=sk(a),c=sk(1),p=sk(.5);o=fx(vx(o,kk(c,l)),vx(p,l))}var h=function(e,t){var n=Zg(e,"labels","sigmoidCrossEntropyWithLogits"),r=Zg(t,"logits","sigmoidCrossEntropyWithLogits");Av(n.shape,r.shape,"Error in sigmoidCrossEntropyWithLogits: ");var a=wS(r),i=vx(r,n),o=dk(Gw(yk(gx(r))));return fx(kk(a,i),o)}(o,s);return AI(h,u,i)}});var zI=$g({softmaxCrossEntropy_:function(t,n,r,a,i){void 0===a&&(a=0),void 0===i&&(i=e.Reduction.SUM_BY_NONZERO_WEIGHTS);var o=Zg(t,"onehotLabels","softmaxCrossEntropy"),s=Zg(n,"logits","softmaxCrossEntropy"),u=null;if(null!=r&&(u=Zg(r,"weights","softmaxCrossEntropy")),Av(o.shape,s.shape,"Error in softmaxCrossEntropy: "),a>0){var l=sk(a),c=sk(1),p=sk(o.shape[1]);o=fx(vx(o,kk(c,l)),mx(l,p))}var h=function(e,t,n){if(void 0===n&&(n=-1),-1===n&&(n=t.rank-1),n!==t.rank-1)throw Error("Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank "+t.rank+" and dim was "+n);return vk((function(e,t,r){var a=Ik(t,[n],!0),i=kk(Jy(t,"float32"),a);r([e,i]);var o=yk(vx(i,e));return{value:Sk(o,[n]),gradFunc:function(e,t){var r=t[0],a=t[1],i=Nx(e.shape,[n]);return[vx(gb(e,i),kk(Jy(r,"float32"),Gw(a))),vx(gb(e,i),kk(Gw(a),Jy(r,"float32")))]}}}))(e,t)}(o,s);return AI(h,u,i)}}),BI={fft:US,ifft:GS,rfft:KS,irfft:jS},PI={hammingWindow:JN,hannWindow:ZN,frame:QN,stft:$N},WI={flipLeftRight:tI,resizeNearestNeighbor:SI,resizeBilinear:kI,rotateWithOffset:nI,cropAndResize:eI,nonMaxSuppression:aI,nonMaxSuppressionAsync:mI,nonMaxSuppressionWithScore:vI,nonMaxSuppressionWithScoreAsync:yI,nonMaxSuppressionPadded:bI,nonMaxSuppressionPaddedAsync:wI}
17,VI={bandPart:NI,gramSchmidt:II,qr:EI},UI={absoluteDifference:TI,computeWeightedLoss:AI,cosineDistance:DI,hingeLoss:_I,huberLoss:FI,logLoss:OI,meanSquaredError:MI,sigmoidCrossEntropy:LI,softmaxCrossEntropy:zI},GI=function(e){function t(){return e.apply(this,arguments)||this}qm(t,e);var n=t.prototype;return n.minimize=function(e,t,n){void 0===t&&(t=!1);var r=this.computeGradients(e,n),a=r.value,i=r.grads;if(null!=n){var o=n.map((function(e){return{name:e.name,tensor:i[e.name]}}));this.applyGradients(o)}else this.applyGradients(i);return ux(i),t?a:(a.dispose(),null)},n.incrementIterations=function(){this.iterations_=this.iterations+1},n.computeGradients=function(e,t){return mk(e,t)},n.dispose=function(){null!=this.iterations_&&ux(this.iterations_)},n.saveIterations=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return null==this.iterations_&&(this.iterations_=0),e.abrupt("return",{name:"iter",tensor:sk(this.iterations_,"int32")});case 2:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.getWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("getWeights() is not implemented for this optimizer yet.");case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),n.setWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("setWeights() is not implemented for this optimizer class "+this.getClassName());case 1:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.extractIterations=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t[0].tensor.data();case 2:return this.iterations_=e.sent[0],e.abrupt("return",t.slice(1));case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),Hm(t,[{key:"iterations",get:function(){return null==this.iterations_&&(this.iterations_=0),this.iterations_}}]),t}(Yb);Object.defineProperty(GI,Symbol.hasInstance,{value:function(e){return null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients}});var jI=function(e){function t(t,n,r){var a;return void 0===r&&(r=null),(a=e.call(this)||this).learningRate=t,a.rho=n,a.epsilon=r,a.accumulatedGrads=[],a.accumulatedUpdates=[],null==r&&(a.epsilon=Gg.backend.epsilon()),a}qm(t,e);var n=t.prototype;return n.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var a=Gg.registeredVariables[n];null==t.accumulatedGrads[r]&&(t.accumulatedGrads[r]={originalName:n+"/accum_grad",variable:sx((function(){return Bw(a).variable(!1)}))}),null==t.accumulatedUpdates[r]&&(t.accumulatedUpdates[r]={originalName:n+"/accum_var",variable:sx((function(){return Bw(a).variable(!1)}))});var i=Array.isArray(e)?e[r].tensor:e[n];if(null!=i){var o=t.accumulatedGrads[r].variable,s=t.accumulatedUpdates[r].variable;sx((function(){var e=fx(vx(o,t.rho),vx(Pk(i),1-t.rho)),n=vx(mx(XS(fx(s,t.epsilon)),XS(fx(o,t.epsilon))),i),r=fx(vx(s,t.rho),vx(Pk(n),1-t.rho));o.assign(e),s.assign(r);var u=fx(vx(n,-t.learningRate),a);a.assign(u)}))}})),this.incrementIterations()},n.dispose=function(){null!=this.accumulatedUpdates&&(ux(this.accumulatedGrads.map((function(e){return e.variable}))),ux(this.accumulatedUpdates.map((function(e){return e.variable}))))},n.getWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=[].concat(this.accumulatedGrads,this.accumulatedUpdates),e.next=3,this.saveIterations();case 3:return e.t0=e.sent,e.abrupt("return",[e.t0].concat(t.map((function(e){return{name:e.originalName,tensor:e.variable}}))));case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.setWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.extractIterations(t);case 2:t=e.sent,n=t.length/2,!1,this.accumulatedGrads=t.slice(0,n).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),this.accumulatedUpdates=t.slice(n,2*n).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}}));case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.getConfig=function(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}},t.fromConfig=function(e,t){return new e(t.learningRate,t.rho,t.epsilon)},t}(GI);jI.className="Adadelta",Zb(jI);var HI=function(e){function t(t,n){var r;return void 0===n&&(n=.1),(r=e.call(this)||this).learningRate=t,r.initialAccumulatorValue=n,r.accumulatedGrads=[],r}qm(t,e);var n=t.prototype;return n.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name}
17)):Object.keys(e)).forEach((function(n,r){var a=Gg.registeredVariables[n];if(null==t.accumulatedGrads[r]){t.accumulatedGrads[r]={originalName:n+"/accumulator",variable:sx((function(){return Xw(a.shape,t.initialAccumulatorValue).variable(!1)}))}}var i=Array.isArray(e)?e[r].tensor:e[n];if(null!=i){var o=t.accumulatedGrads[r].variable;sx((function(){var e=fx(o,Pk(i));o.assign(e);var n=fx(vx(mx(i,XS(fx(e,Gg.backend.epsilon()))),-t.learningRate),a);a.assign(n)}))}})),this.incrementIterations()},n.dispose=function(){null!=this.accumulatedGrads&&ux(this.accumulatedGrads.map((function(e){return e.variable})))},n.getWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.saveIterations();case 2:return e.t0=e.sent,e.abrupt("return",[e.t0].concat(this.accumulatedGrads.map((function(e){return{name:e.originalName,tensor:e.variable}}))));case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.setWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.extractIterations(t);case 2:t=e.sent,!1,this.accumulatedGrads=t.map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}}));case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.getConfig=function(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}},t.fromConfig=function(e,t){return new e(t.learningRate,t.initialAccumulatorValue)},t}(GI);HI.className="Adagrad",Zb(HI);var qI=function(e){function t(t,n,r,a){var i;return void 0===a&&(a=null),(i=e.call(this)||this).learningRate=t,i.beta1=n,i.beta2=r,i.epsilon=a,i.accumulatedFirstMoment=[],i.accumulatedSecondMoment=[],sx((function(){i.accBeta1=sk(n).variable(),i.accBeta2=sk(r).variable()})),null==a&&(i.epsilon=Gg.backend.epsilon()),i}qm(t,e);var n=t.prototype;return n.applyGradients=function(e){var t=this,n=Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e);sx((function(){var r=kk(1,t.accBeta1),a=kk(1,t.accBeta2);n.forEach((function(n,i){var o=Gg.registeredVariables[n];null==t.accumulatedFirstMoment[i]&&(t.accumulatedFirstMoment[i]={originalName:n+"/m",variable:sx((function(){return Bw(o).variable(!1)}))}),null==t.accumulatedSecondMoment[i]&&(t.accumulatedSecondMoment[i]={originalName:n+"/v",variable:sx((function(){return Bw(o).variable(!1)}))});var s=Array.isArray(e)?e[i].tensor:e[n];if(null!=s){var u=t.accumulatedFirstMoment[i].variable,l=t.accumulatedSecondMoment[i].variable,c=fx(vx(u,t.beta1),vx(s,1-t.beta1)),p=fx(vx(l,t.beta2),vx(Pk(s),1-t.beta2)),h=mx(c,r),f=mx(p,a);u.assign(c),l.assign(p);var d=fx(vx(mx(h,fx(XS(f),t.epsilon)),-t.learningRate),o);o.assign(d)}})),t.accBeta1.assign(vx(t.accBeta1,t.beta1)),t.accBeta2.assign(vx(t.accBeta2,t.beta2))})),this.incrementIterations()},n.dispose=function(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&ux(this.accumulatedFirstMoment.map((function(e){return e.variable}))),null!=this.accumulatedSecondMoment&&ux(this.accumulatedSecondMoment.map((function(e){return e.variable})))},n.getWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=[].concat(this.accumulatedFirstMoment,this.accumulatedSecondMoment),e.next=3,this.saveIterations();case 3:return e.t0=e.sent,e.abrupt("return",[e.t0].concat(t.map((function(e){return{name:e.originalName,tensor:e.variable}}))));case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.setWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.extractIterations(t);case 2:t=e.sent,sx((function(){r.accBeta1.assign(eS(r.beta1,r.iterations_+1)),r.accBeta2.assign(eS(r.beta2,r.iterations_+1))})),n=t.length/2,!1,this.accumulatedFirstMoment=t.slice(0,n).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),this.accumulatedSecondMoment=t.slice(n,2*n).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}}));case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}},t.fromConfig=function(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)},t}(GI);qI.className="Adam",Zb(qI);var KI=function(e){function t(t,n,r,a,i){var o;return void 0===a&&(a=null),void 0===i&&(i=0),(o=e.call(this)||this).learningRate=t,o.beta1=n,o.beta2=r,o.epsilon=a,o.decay=i,o.accumulatedFirstMoment=[],o.accumulatedWeightedInfNorm=[],sx((function(){o.iteration=sk(0).variable(),o.accBeta1=sk(n).variable()})),null==a&&(o.epsilon=Gg.backend.epsilon()),o}qm(t,e);var n=t.prototype;return n.applyGradients=function(e){var t=this,n=Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e);sx((function(){var r=kk(1,t.accBeta1),a=mx(-t.learningRate,fx(vx(t.iteration,t.decay),1));
17n.forEach((function(n,i){var o=Gg.registeredVariables[n];null==t.accumulatedFirstMoment[i]&&(t.accumulatedFirstMoment[i]={originalName:n+"/m",variable:Bw(o).variable(!1)}),null==t.accumulatedWeightedInfNorm[i]&&(t.accumulatedWeightedInfNorm[i]={originalName:n+"/v",variable:Bw(o).variable(!1)});var s=Array.isArray(e)?e[i].tensor:e[n];if(null!=s){var u=t.accumulatedFirstMoment[i].variable,l=t.accumulatedWeightedInfNorm[i].variable,c=fx(vx(u,t.beta1),vx(s,1-t.beta1)),p=vx(l,t.beta2),h=gx(s),f=ok(p,h);u.assign(c),l.assign(f);var d=fx(vx(mx(a,r),mx(c,fx(f,t.epsilon))),o);o.assign(d)}})),t.iteration.assign(fx(t.iteration,1)),t.accBeta1.assign(vx(t.accBeta1,t.beta1))})),this.incrementIterations()},n.dispose=function(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&ux(this.accumulatedFirstMoment.map((function(e){return e.variable}))),null!=this.accumulatedWeightedInfNorm&&ux(this.accumulatedWeightedInfNorm.map((function(e){return e.variable})))},n.getWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("getWeights() is not implemented for Adamax yet.");case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),n.setWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("setWeights() is not implemented for Adamax yet.");case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),n.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}},t.fromConfig=function(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)},t}(GI);KI.className="Adamax",Zb(KI);var XI=function(e){function t(t){var n;return(n=e.call(this)||this).learningRate=t,n.setLearningRate(t),n}qm(t,e);var n=t.prototype;return n.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var a=Array.isArray(e)?e[r].tensor:e[n];if(null!=a){var i=Gg.registeredVariables[n];sx((function(){var e=fx(vx(t.c,a),i);i.assign(e)}))}})),this.incrementIterations()},n.setLearningRate=function(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=lx(sk(-e))},n.dispose=function(){this.c.dispose()},n.getWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.saveIterations();case 2:return e.t0=e.sent,e.abrupt("return",[e.t0]);case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.setWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.extractIterations(t);case 2:if(0===(t=e.sent).length){e.next=5;break}throw new Error("SGD optimizer does not have settable weights.");case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.getConfig=function(){return{learningRate:this.learningRate}},t.fromConfig=function(e,t){return new e(t.learningRate)},t}(GI);XI.className="SGD",Zb(XI);var YI=function(e){function t(t,n,r){var a;return void 0===r&&(r=!1),(a=e.call(this,t)||this).learningRate=t,a.momentum=n,a.useNesterov=r,a.accumulations=[],a.m=sk(a.momentum),a}qm(t,e);var n=t.prototype;return n.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var a=Gg.registeredVariables[n];if(null==t.accumulations[r]){t.accumulations[r]={originalName:n+"/momentum",variable:sx((function(){return Bw(a).variable(!1)}))}}var i=t.accumulations[r].variable,o=Array.isArray(e)?e[r].tensor:e[n];null!=o&&sx((function(){var e,n=fx(vx(t.m,i),o);e=t.useNesterov?fx(vx(t.c,fx(o,vx(n,t.m))),a):fx(vx(t.c,n),a),i.assign(n),a.assign(e)}))})),this.incrementIterations()},n.dispose=function(){this.m.dispose(),null!=this.accumulations&&ux(this.accumulations.map((function(e){return e.variable}
17)))},n.setMomentum=function(e){this.momentum=e},n.getWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.saveIterations();case 2:return e.t0=e.sent,e.abrupt("return",[e.t0].concat(this.accumulations.map((function(e){return{name:e.originalName,tensor:e.variable}}))));case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.setWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.extractIterations(t);case 2:t=e.sent,!1,this.accumulations=t.map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}}));case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.getConfig=function(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}},t.fromConfig=function(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)},t}(XI);YI.className="Momentum",Zb(YI);var JI=function(e){function t(t,n,r,a,i){var o;if(void 0===n&&(n=.9),void 0===r&&(r=0),void 0===a&&(a=null),void 0===i&&(i=!1),(o=e.call(this)||this).learningRate=t,o.decay=n,o.momentum=r,o.epsilon=a,o.accumulatedMeanSquares=[],o.accumulatedMoments=[],o.accumulatedMeanGrads=[],o.centered=i,null==a&&(o.epsilon=Gg.backend.epsilon()),null==t)throw new Error("learningRate for RMSPropOptimizer must be defined.");return o}qm(t,e);var n=t.prototype;return n.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var a=Gg.registeredVariables[n];null==t.accumulatedMeanSquares[r]&&(t.accumulatedMeanSquares[r]={originalName:n+"/rms",variable:sx((function(){return Bw(a).variable(!1)}))}),null==t.accumulatedMoments[r]&&(t.accumulatedMoments[r]={originalName:n+"/momentum",variable:sx((function(){return Bw(a).variable(!1)}))}),null==t.accumulatedMeanGrads[r]&&t.centered&&(t.accumulatedMeanGrads[r]={originalName:n+"/mg",variable:sx((function(){return Bw(a).variable(!1)}))});var i=Array.isArray(e)?e[r].tensor:e[n];if(null!=i){var o=t.accumulatedMeanSquares[r].variable,s=t.accumulatedMoments[r].variable;sx((function(){var e=fx(vx(o,t.decay),vx(Pk(i),1-t.decay));if(t.centered){var n=t.accumulatedMeanGrads[r].variable,u=fx(vx(n,t.decay),vx(i,1-t.decay)),l=mx(vx(i,t.learningRate),XS(kk(e,fx(Pk(u),t.epsilon)))),c=fx(vx(s,t.momentum),l);o.assign(e),n.assign(u),s.assign(c);var p=kk(a,c);a.assign(p)}else{var h=fx(vx(o,t.decay),vx(Pk(i),1-t.decay)),f=fx(vx(s,t.momentum),mx(vx(i,t.learningRate),XS(fx(h,t.epsilon))));o.assign(h),s.assign(f);var d=kk(a,f);a.assign(d)}}))}})),this.incrementIterations()},n.dispose=function(){null!=this.accumulatedMeanSquares&&ux(this.accumulatedMeanSquares.map((function(e){return e.variable}))),null!=this.accumulatedMeanGrads&&this.centered&&ux(this.accumulatedMeanGrads.map((function(e){return e.variable}))),null!=this.accumulatedMoments&&ux(this.accumulatedMoments.map((function(e){return e.variable})))},n.getWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=[].concat(this.accumulatedMeanSquares,this.accumulatedMoments),this.centered&&t.push.apply(t,this.accumulatedMeanGrads),e.next=4,this.saveIterations();case 4:return e.t0=e.sent,e.abrupt("return",[e.t0].concat(t.map((function(e){return{name:e.originalName,tensor:e.variable}}))));case 6:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.setWeights=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.extractIterations(t);case 2:t=e.sent,n=this.centered?t.length/3:t.length/2,!1,this.accumulatedMeanSquares=t.slice(0,n).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),this.accumulatedMoments=t.slice(n,2*n).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),this.centered&&(this.accumulatedMeanGrads=t.slice(2*n,3*n).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})));case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.getConfig=function(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}},t.fromConfig=function(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)},t}(GI);JI.className="RMSProp",Zb(JI);var ZI=function(){function e(){}return e.sgd=function(e){return new XI(e)},e.momentum=function(e,t,n){return void 0===n&&(n=!1),new YI(e,t,n)},e.rmsprop=function(e,t,n,r,a){return void 0===t&&(t=.9),void 0===n&&(n=0),void 0===r&&(r=null),void 0===a&&(a=!1),new JI(e,t,n,r,a)},e.adam=function(e,t,n,r){return void 0===e&&(e=.001),void 0===t&&(t=.9),void 0===n&&(n=.999),void 0===r&&(r=null),new qI(e,t,n,r)},e.adadelta=function(e,t,n){return void 0===e&&(e=.001),void 0===t&&(t=.95),void 0===n&&(n=null),new jI(e,t,n)},e.adamax=function(e,t,n,r,a){return void 0===e&&(e=.002),void 0===t&&(t=.9),void 0===n&&(n=.999),void 0===r&&(r=null),void 0===a&&(a=0),new KI(e,t,n,r,a)},e.adagrad=function(e,t){return void 0===t&&(t=.1),new HI(e,t)},e}(),QI={sgd:ZI.sgd,momentum:ZI.momentum,adadelta:ZI.adadelta,adagrad:ZI.adagrad,rmsprop:ZI.rmsprop,adamax:ZI.adamax,adam:ZI.adam},$I="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:function(e){return e()};function eC(){return new Promise((function(e){return $I((function(){return e()}))}))}
17function tC(e,t,n){return[n*("number"==typeof e?e:e[0]),t*("number"==typeof e?e:e[1])]}function nC(e,t,n,r){void 0===r&&(r=!0);var a=[];if(r)(a=a.concat(t.slice(0))).push(e[0]/n),a=a.concat(e.slice(1));else{a=a.concat(e[0]);for(var i=t.length,o=0;o<i;++o)a=a.concat([e[o+1]/t[o],t[o]]);a=a.concat(e.slice(i+1))}return a}function rC(e,t,n){void 0===n&&(n=!0);var r=[];if(n){r.push(t);for(var a=t+1;a<e;++a)a<=2*t?(r.push(a),r.push(a-(t+1))):r.push(a)}else{for(var i=[],o=[],s=1;s<e;++s)s>=2*t+1||s%2==1?o.push(s):i.push(s);r.push.apply(r,i),r.push(0),r.push.apply(r,o)}return r}function aC(e,t,n,r){void 0===r&&(r=!0);var a=[];r?a.push(e[0]/n):a.push(e[0]*n);for(var i=1;i<e.length;++i)i<=t.length?r?a.push(t[i-1]*e[i]):a.push(e[i]/t[i-1]):a.push(e[i]);return a}function iC(e,t){for(var n=[0],r=0;r<t;++r)n.push(e[r][0]);return n}function oC(e,t,n){for(var r=e.slice(0,1),a=0;a<n;++a)r.push(e[a+1]-t[a][0]-t[a][1]);return r}var sC=1.0507009873554805;function uC(){var e;uv().getBool("IS_TEST")||(e=console).warn.apply(e,arguments)}function lC(e,t){if(e.length!==t.length)throw new Error("Cannot merge real and imag arrays of different lengths. real:"+e.length+", imag: "+t.length+".");for(var n=new Float32Array(2*e.length),r=0;r<n.length;r+=2)n[r]=e[r/2],n[r+1]=t[r/2];return n}function cC(e){for(var t=new Float32Array(e.length/2),n=new Float32Array(e.length/2),r=0;r<e.length;r+=2)t[r/2]=e[r],n[r/2]=e[r+1];return{real:t,imag:n}}function pC(e){for(var t=Math.ceil(e.length/4),n=new Float32Array(t),r=new Float32Array(t),a=0;a<e.length;a+=4)n[Math.floor(a/4)]=e[a],r[Math.floor(a/4)]=e[a+1];return{real:n,imag:r}}function hC(e){for(var t=Math.floor(e.length/4),n=new Float32Array(t),r=new Float32Array(t),a=2;a<e.length;a+=4)n[Math.floor(a/4)]=e[a],r[Math.floor(a/4)]=e[a+1];return{real:n,imag:r}}function fC(e,t){return{real:e[2*t],imag:e[2*t+1]}}function dC(e,t,n,r){e[2*r]=t,e[2*r+1]=n}function mC(e,t){for(var n=new Float32Array(e/2),r=new Float32Array(e/2),a=0;a<Math.ceil(e/2);a++){var i=(t?2:-2)*Math.PI*(a/e);n[a]=Math.cos(i),r[a]=Math.sin(i)}return{real:n,imag:r}}function vC(e,t,n){var r=(n?2:-2)*Math.PI*(e/t);return{real:Math.cos(r),imag:Math.sin(r)}}function gC(e,t,n){if("complex64"===t){if("complex64"===e.dtype)return e.clone();var r=Fk(e.shape),a=Jy(e,"float32"),i=n.complex(a,r);return r.dispose(),a.dispose(),i}if(!Hv(e.dtype,t))return Gg.makeTensorFromDataId(e.dataId,e.shape,t);if("complex64"===e.dtype){var o=n.real(e),s=Jy(o,t);return o.dispose(),s}if("int32"===t)return n.int(e);if("bool"===t){var u=sk(0,e.dtype),l=n.notEqual(e,u);return u.dispose(),l}throw new Error("Error in Cast: failed to cast "+e.dtype+" to "+t)}function yC(e,t){return Gg.makeTensorFromDataId(e.dataId,t,e.dtype)}function bC(e,t,n){var r=(t-e)/(n-1),a=og(n,"float32");a[0]=e;for(var i=1;i<a.length;i++)a[i]=a[i-1]+r;return yS(a,"float32")}var xC={__proto__:null,slice_util:Xb,segment_util:Qw,castTensor:gC,reshapeTensor:yC,linspaceImpl:bC,upcastType:Fg,axesAreInnerMostDims:wx,combineLocations:kx,computeOutAndReduceShapes:Sx,expandShapeToKeepDim:Nx,assertAxesAreInnerMostDims:Ix,getAxesPermutation:Cx,getUndoAxesPermutation:Rx,getInnerMostAxes:Ex,getBroadcastDims:Fw,getReductionAxes:Ow,assertAndGetBroadcastShape:Mw,assertParamsConsistent:$x,computeOutShape:ew,computeDilation2DInfo:Bx,computePool2DInfo:Px,computePool3DInfo:Wx,computeConv2DInfo:Vx,computeConv3DInfo:Ux,computeDefaultPad:Gx,tupleValuesAreOne:Xx,eitherStridesOrDilationsAreOne:Yx,convertConv2DDataFormat:Jx,getFusedDyActivation:WN,getFusedBiasGradient:VN,applyActivation:UN,shouldFuse:GN,PARALLELIZE_THRESHOLD:30,computeOptimalWindowSize:Jw,getImageCenter:tC,getReshaped:nC,getPermuted:rC,getReshapedPermuted:aC,getSliceBeginCoords:iC,getSliceSize:oC,prepareAndValidate:Rb,validateUpdateShape:Ab,validateInput:Tb,calculateShapes:Db,SELU_SCALEALPHA:1.7580993408473768,SELU_SCALE:sC,ERF_P:.3275911,ERF_A1:.254829592,ERF_A2:-.284496736,ERF_A3:1.421413741,ERF_A4:-1.453152027,ERF_A5:1.061405429,warn:uC,log:function(){var e;uv().getBool("IS_TEST")||(e=console).log.apply(e,arguments)},mergeRealAndImagArrays:lC,splitRealAndImagArrays:cC,complexWithEvenIndex:
17pC,complexWithOddIndex:hC,getComplexWithIndex:fC,assignToTypedArray:dC,exponents:mC,exponent:vC,prepareSplitSize:HS};function wC(e,t,n){var r=new Array(e.rank).fill(0),a=e.shape.slice();return t.map((function(t){var i=[].concat(a);i[n]=t;var o=rw(e,r,i);return r[n]+=t,o}))}function kC(e,t){for(var n=new Array(e.rank),r=0;r<n.length;r++)n[r]=e.shape[r]*t[r];for(var a=Yy(n,e.dtype),i=0;i<a.values.length;++i){for(var o=a.indexToLoc(i),s=new Array(e.rank),u=0;u<s.length;u++)s[u]=o[u]%e.shape[u];var l=e.locToIndex(s);a.values[i]=e.values[l]}return a.toTensor()}function SC(e,t,n,r,a){for(var i=t[t.length-1],o=e.length/i,s=i,u=Vv(n,o*r),l=Vv("int32",o*r),c=0;c<o;c++){for(var p=c*s,h=e.subarray(p,p+s),f=[],d=0;d<h.length;d++)f.push({value:h[d],index:d});f.sort((function(e,t){return t.value-e.value}));for(var m=c*r,v=u.subarray(m,m+r),g=l.subarray(m,m+r),y=0;y<r;y++)v[y]=f[y].value,g[y]=f[y].index}var b=t.slice();return b[b.length-1]=r,[ny(u,b,n),ny(l,b,"int32")]}var NC={__proto__:null,nonMaxSuppressionV3Impl:sI,nonMaxSuppressionV4Impl:uI,nonMaxSuppressionV5Impl:lI,split:wC,tile:kC,topkImpl:SC,whereImpl:lN},IC={kernelName:"Abs",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return vx(e,QS(Jy(n,"float32"),-1))}}}},CC={kernelName:"Acos",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){var t=Pk(Jy(n,"float32")),r=XS(kk(sk(1),t));return yk(mx(e,r))}}}},RC={kernelName:"Acosh",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){var t=XS(kk(Pk(Jy(n,"float32")),1));return mx(e,t)}}}},EC={kernelName:pv,inputsToSave:["a","b"],gradFunc:function(e,t){var n=t[0],r=t[1],a=Mw(n.shape,r.shape);return{a:function(){var t=e,r=Ow(n.shape,a);return r.length>0&&(t=Sk(t,r)),gb(t,n.shape)},b:function(){var t=e,n=Ow(r.shape,a);return n.length>0&&(t=Sk(t,n)),gb(t,r.shape)}}}},AC={kernelName:"AddN",saveAllInputs:!0,gradFunc:function(e,t){var n={};return t.forEach((function(t,r){n[r]=function(){return e.clone()}})),n}},TC={kernelName:"ArgMax",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return Bw(n)}}}},DC={kernelName:"ArgMin",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return Bw(n)}}}},_C={kernelName:"Asin",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return mx(e,XS(kk(sk(1),Pk(Jy(n,"float32")))))}}}},FC={kernelName:"Asinh",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){var t=XS(fx(sk(1),Pk(Jy(n,"float32"))));return mx(e,t)}}}},OC={kernelName:"Atan2",inputsToSave:["a","b"],gradFunc:function(e,t){var n=t[0],r=t[1],a=Mw(n.shape,r.shape);return{a:function(){var t=fx(Pk(n),Pk(r)),i=vx(e,mx(r,t)),o=Ow(n.shape,a);return o.length>0&&(i=Sk(i,o)),gb(i,n.shape)},b:function(){var t=fx(Pk(n),Pk(r)),i=yk(vx(e,mx(n,t))),o=Ow(r.shape,a);return o.length>0&&(i=Sk(i,o)),gb(i,r.shape)}}}},MC={kernelName:"Atan",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return mx(e,fx(Pk(Jy(n,"float32")),1))}}}},LC={kernelName:"Atanh",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return mx(e,kk(sk(1),Pk(Jy(n,"float32"))))}}}};var zC=$g({avgPool3dBackprop_:function(e,t,n,r,a,i,o){void 0===a&&(a=[1,1,1]);var s=Zg(e,"dy","avgPool3dBackprop"),u=Zg(t,"input","avgPool3dBackprop"),l=s,c=u,p=!1;4===u.rank&&(p=!0,l=gb(s,[1,s.shape[0],s.shape[1],s.shape[2],s.shape[3]]),c=gb(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),Ev(5===l.rank,(function(){return"Error in avgPool3dBackprop: dy must be rank 5 but got rank "+l.rank+"."})),Ev(5===c.rank,(function(){return"Error in avgPool3dBackprop: input must be rank 5 but got rank "+c.rank+"."})),Ev(Yx(r,a),(function(){return"Error in avgPool3dBackprop: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+a+"'"})),null!=o&&Ev(Ov(i),(function(){return"Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+i+"."}));var h={dy:l,input:c},f={filterSize:n,strides:r,dilations:a,pad:i,dimRoundingMode:o},d=Gg.runKernelFunc((function(e){var t=Wx(c.shape,n,r,a,i,o);return e.avgPool3dBackprop(l,c,t)}),h,null,"AvgPool3DBackprop",f);return p?gb(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}}),BC={kernelName:"AvgPool3D",inputsToSave:["x"],gradFunc:function(e,t,n){var r=t[0],a=n.filterSize,i=n.strides,o=n.dilations,s=n.pad,u=n.dimRoundingMode,l=null==o?[1,1,1]:o;return{x:function(){return zC(e,r,a,i,l,s,u)}}}};var PC=$g({avgPoolBackprop_:function(e,t,n,r,a){var i=Zg(e,"dy","avgPoolBackprop"),o=Zg(t,"input","avgPoolBackprop");Ev(o.rank===i.rank,(function(){return"Rank of input ("+o.rank+") does not match rank of dy ("+i.rank+")"}));var s=o,u=i,l=!1;3===o.rank&&(l=!0,s=gb(o,[1,o.shape[0],o.shape[1],o.shape[2]]),u=gb(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Ev(4===u.rank,(function(){return"Error in avgPoolBackprop: dy must be rank 4 but got rank "+u.rank+"."})),Ev(4===s.rank,(function(){return"Error in avgPoolBackprop: input must be rank 4 but got rank "+s.rank+"."}));var c={dy:u,input:s},p={filterSize:n,strides:r,pad:a},h=Gg.runKernelFunc((function(e){var t=Px(s.shape,n,r,1,a);return e.avgPoolBackprop(u,s,t)}),c,null,"AvgPoolBackprop",p);return l?gb(h,[h.shape[1],h.shape[2],h.shape[3]]):h}}
17),WC={kernelName:"AvgPool",inputsToSave:["x"],gradFunc:function(e,t,n){var r=t[0],a=n.filterSize,i=n.strides,o=n.pad;return{x:function(){return PC(e,r,a,i,o)}}}},VC={kernelName:"BatchMatMul",inputsToSave:["a","b"],gradFunc:function(e,t,n){var r=t[0],a=t[1],i=n.transposeA,o=n.transposeB;return i||o?!i&&o?{a:function(){return yb(e,a,!1,!1)},b:function(){return yb(e,r,!0,!1)}}:i&&!o?{a:function(){return yb(a,e,!1,!0)},b:function(){return yb(r,e,!1,!1)}}:{a:function(){return yb(a,e,!0,!0)},b:function(){return yb(e,r,!0,!0)}}:{a:function(){return yb(e,a,!1,!0)},b:function(){return yb(r,e,!0,!1)}}}},UC={kernelName:"BatchToSpaceND",gradFunc:function(e,t,n){var r=n.blockShape,a=n.crops;return{x:function(){return Qk(e,r,a)}}}},GC={kernelName:"BroadcastTo",gradFunc:function(e,t,n){for(var r=n,a=r.inputShape,i=r.shape,o=Array.from(i),s=a.length-1;s>=0;s--)if(a[s]===i[s])o[s]=1;else if(1!==a[s])throw new Error("broadcastTo(): ["+a+"] cannot be broadcast to ["+i+"].");for(var u=[],l=0;l<o.length;l++)o[l]>1&&u.push(l);return{x:function(){return Sk(e,u,!0)}}}},jC={kernelName:"Cast",gradFunc:function(e){return{x:function(){return e.clone()}}}},HC={kernelName:"Ceil",gradFunc:function(e){return{x:function(){return Bw(e)}}}},qC={kernelName:"ClipByValue",inputsToSave:["x"],gradFunc:function(e,t,n){var r=t[0],a=n.clipValueMin,i=n.clipValueMax;return{x:function(){return zw(Ck(tk(r,a),ck(r,i)),e,Bw(e))}}}},KC={kernelName:"Concat",saveAllInputs:!0,gradFunc:function(e,t,n){var r=t.map((function(e){return e.shape})),a=Pv(n.axis,t[0].shape)[0],i=r.map((function(e){return e[a]}));return qS(e,i,a).map((function(e){return function(){return e}}))}},XC={kernelName:"Conv2D",inputsToSave:["x","filter"],gradFunc:function(e,t,n){var r=t[0],a=t[1],i=n.dilations,o=n.strides,s=n.pad,u=n.dataFormat;return Ev(Xx(i),(function(){return"Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+i+"'"})),{x:function(){return ww(r.shape,e,a,o,s,u)},filter:function(){return PN(r,e,a.shape,o,s,u)}}}},YC={kernelName:"Conv2DBackpropInput",inputsToSave:["dy","filter"],gradFunc:function(e,t,n){var r=t[0],a=t[1],i=n.strides,o=n.pad,s=n.dataFormat,u=n.dimRoundingMode;return{dy:function(){return bw(e,a,i,o,s,1,u)},filter:function(){return PN(e,r,a.shape,i,o,s,u)}}}};var JC=$g({conv3DBackpropFilter_:function(e,t,n,r,a){var i=e;4===e.rank&&(i=gb(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));var o=t;4===o.rank&&(o=gb(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),Ev(5===i.rank,(function(){return"Error in conv3dDerFilter: input must be rank 5, but got shape "+i.shape+"."})),Ev(5===o.rank,(function(){return"Error in conv3dDerFilter: dy must be rank 5, but got shape "+o.shape+"."})),Ev(5===n.length,(function(){return"Error in conv3dDerFilter: filterShape must be length 5, but got "+n+"."})),Ev(i.shape[4]===n[3],(function(){return"Error in conv3dDerFilter: depth of input "+i.shape[4]+") must match input depth in filter ("+n[3]+"."})),Ev(o.shape[4]===n[4],(function(){return"Error in conv3dDerFilter: depth of dy ("+o.shape[4]+") must match output depth for filter ("+n[4]+")."}));var s={x:i,y:o},u={strides:r,pad:a};return Gg.runKernelFunc((function(e){var t=Ux(i.shape,n,r,1,a);return e.conv3dDerFilter(i,o,t)}),s,null,"Conv3DBackpropFilterV2",u)}}),ZC={kernelName:"Conv3D",inputsToSave:["x","filter"],gradFunc:function(e,t,n){var r=n.dilations,a=n.strides,i=n.pad;Ev(Xx(r),(function(){return"Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+r+"'"}));var o=t[0],s=t[1];return{x:function(){return Nw(o.shape,e,s,a,i)},filter:function(){return JC(o,e,s.shape,a,i)}}}},QC={kernelName:hv,inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return vx(yk(MS(Jy(n,"float32"))),e)}}}},$C={kernelName:"Cosh",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return vx(LS(Jy(n,"float32")),e)}}}},eR={kernelName:"Cumsum",inputsToSave:["x"],gradFunc:function(e,t,n){var r=t[0],a=n.axis,i=n.exclusive,o=n.reverse;return{x:function(){var t=Cx([a],r.rank),n=Ew(e,a,i,!o);return null!=t&&(n=xb(n,t)),n}}}},tR={kernelName:"DepthwiseConv2dNative",inputsToSave:["x","filter"],gradFunc:function(e,t,n){var r=n.dilations,a=n.strides,i=n.pad,o=n.dimRoundingMode,s=null==r?[1,1]:r;Ev(Xx(s),(function(){return"Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '"+s+"'"}));var u=t[0],l=t[1];Ev(4===u.rank,(function(){return"Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank "+u.rank+"."})),Ev(4===l.rank,(function(){return"Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank "+l.rank+"."})),Ev(u.shape[3]===l.shape[2],(function(){return"Error in gradient of depthwiseConv2d: number of input channels ("+u.shape[3]+") must match the inChannels dimension in filter "+l.shape[2]+"."})),Ev(Yx(a,s),(function(){return"Error in gradient of depthwiseConv2d: Either strides or dilations must be  1. Got strides "+a+" and dilations '"+s+"'."})),null!=o&&Ev(Ov(i),(function(){return"Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+i+"."}));var c=Vx(u.shape,l.shape,a,s,i,o,!0);return{x:function(){return qN(u.shape,e,l,c)}
vendor: 4,170 bytes, line 17
17,filter:function(){return HN(u,e,l.shape,c)}}}},nR={kernelName:"Dilation2D",inputsToSave:["x","filter"],gradFunc:function(e,t,n){var r=t[0],a=t[1],i={x:r,filter:a,dy:e},o={x:r,filter:a,dy:e};return{x:function(){return Gg.runKernel("Dilation2DBackpropInput",i,n)},filter:function(){return Gg.runKernel("Dilation2DBackpropFilter",o,n)}}}},rR={kernelName:fv,inputsToSave:["a","b"],gradFunc:function(e,t){var n=t[0],r=t[1],a=Mw(n.shape,r.shape);return{a:function(){var t=mx(e,Jy(r,"float32")),i=Ow(n.shape,a);return i.length>0?gb(Sk(t,i),n.shape):t},b:function(){var t=vx(e,Jy(n,"float32")),i=Ow(r.shape,a);i.length>0&&(t=gb(Sk(t,i),r.shape));var o=Pk(r);return yk(mx(t,Jy(o,"float32")))}}}},aR={kernelName:"Elu",outputsToSave:[!0],gradFunc:function(e,t){var n=t[0],r=function(t){return t.eluDer(e,n)},a={dy:e,y:n};return{x:function(){return Gg.runKernelFunc(r,a,null,"EluGrad")}}}},iR={kernelName:"Erf",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0],r=vx(Gw(yk(Pk(n))),2/Math.sqrt(Math.PI));return{x:function(){return vx(e,r)}}}},oR={kernelName:"Exp",outputsToSave:[!0],gradFunc:function(e,t){var n=t[0];return{x:function(){return vx(e,n)}}}},sR={kernelName:"Expm1",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return vx(e,Gw(n))}}}},uR={kernelName:"Floor",gradFunc:function(e){return{x:function(){return Bw(e)}}}},lR={kernelName:"FloorDiv",inputsToSave:["a","b"],gradFunc:function(e,t){var n=t[0],r=t[1],a=Mw(n.shape,r.shape);return{a:function(){var t=mx(e,Jy(r,"float32")),i=Ow(n.shape,a);return i.length>0?gb(Sk(t,i),n.shape):t},b:function(){var t=vx(e,Jy(n,"float32")),i=Ow(r.shape,a);i.length>0&&(t=gb(Sk(t,i),r.shape));var o=Pk(r);return yk(mx(t,Jy(o,"float32")))}}}},cR={kernelName:"FusedBatchNorm",inputsToSave:["x","mean","variance","scale"],gradFunc:function(e,t,n){var r=n.varianceEpsilon,a=t[0],i=t[1],o=t[2],s=t[3],u=null==s?sk(1):s,l=Ow(i.shape,a.shape),c=[];if(1===i.rank){for(var p=0;p<a.shape.length-1;++p)c.push(a.shape[p]);c.push(1)}var h=kk(a,i),f=vx(e,u),d=AS(fx(o,sk(r))),m=vx(vx(vx(d,d),d),sk(-.5));return{x:function(){return 1===i.rank?gb(vx(vx(e,qw(gb(d,[1,1,1,i.shape[0]]),c)),u),a.shape):gb(vx(vx(e,d),u),a.shape)},mean:function(){var e=vx(vx(d,sk(-1)),f);return 1===i.rank&&(e=Sk(e,l)),gb(e,i.shape)},variance:function(){var e=vx(vx(m,h),f);return 1===i.rank&&(e=Sk(e,l)),gb(e,i.shape)},scale:function(){var t=vx(h,d),n=vx(e,t);return 1===i.rank&&(n=Sk(n,l)),gb(n,i.shape)},offset:function(){var t=e;return 1===i.rank&&(t=Sk(t,l)),gb(t,i.shape)}}}},pR={kernelName:"GatherV2",inputsToSave:["x","indices"],gradFunc:function(e,t,n){var r=t[0],a=t[1],i=n.axis,o=Pv(i,r.shape)[0];return{x:function(){var t=r.shape,n=a.size,s=t.slice(0,o),u=s.length,l=t.slice(i,t.length).slice(1),c=l.length,p=hR(0,u),h=hR(u+1,u+1+c),f=fR([s,[n],l]),d=gb(e,f),m=gb(a,[n]),v=fR([[u],p,h]),g=xb(d,v),y=oN(g,m,r.shape[o]),b=Rx(v);return y=xb(y,b)},indices:function(){return a}}}};function hR(e,t){for(var n=[],r=e;r<t;++r)n.push(r);return n}function fR(e){for(var t=[],n=0;n<e.length;++n)for(var r=0;r<e[n].length;++r)t.push(e[n][r]);return t}var dR={kernelName:"GreaterEqual",inputsToSave:["a","b"],gradFunc:function(e,t){var n=t[0],r=t[1];return{a:function(){return Bw(n)},b:function(){return Bw(r)}}}},mR={kernelName:"Identity",gradFunc:function(e){return{x:function(){return Jy(e,"float32")}}}},vR={kernelName:"IsFinite",gradFunc:function(e){return{x:function(){return Bw(e)}}}},gR={kernelName:"IsInf",gradFunc:function(e){return{x:function(){return Bw(e)}}}},yR={kernelName:"IsNan",gradFunc:function(e){return{x:function(){return Bw(e)}}}},bR={kernelName:"Log1p",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return mx(e,fx(n,1))}}}},xR={kernelName:"Log",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return mx(e,Jy(n,"float32"))}}}},wR={kernelName:"LogSoftmax",inputsToSave:[],outputsToSave:[!0],gradFunc:function(e,t,n){var r=t[0],a=n.axis;return{logits:function(){var t=Gw(r);return kk(e,vx(Sk(e,a,!0),t))}}}};var kR=$g({localResponseNormalizationBackprop_:function(e,t,n,r,a,i,o){void 0===r&&(r=5),void 0===a&&(a=1),void 0===i&&(i=1),void 0===o&&(o=.5);var s={x:e,y:t,dy:n}
17,u={depthRadius:r,bias:a,alpha:i,beta:o};return Gg.runKernelFunc((function(s){return s.LRNGrad(n,e,t,r,a,i,o)}),s,null,"LRNBackprop",u)}}),SR={kernelName:"LRN",inputsToSave:["x"],outputsToSave:[!0],gradFunc:function(e,t,n){var r=t[0],a=t[1],i=n.depthRadius,o=n.bias,s=n.alpha,u=n.beta;return{x:function(){return kR(r,a,e,i,o,s,u)}}}};function NR(e,t,n,r,a){return t.rank<n.rank&&(t=gb(t,Nx(t.shape,r))),e.rank<n.rank&&(e=gb(e,Nx(e.shape,r))),{x:function(){var r=vx(e,Jy(Lw(n,t),e.dtype));return null==a?r:xb(r,a)}}}var IR={kernelName:"Max",inputsToSave:["x"],outputsToSave:[!0],gradFunc:function(e,t,n){var r=n.reductionIndices,a=t[0],i=t[1],o=Pv(r,a.shape),s=Cx(o,a.rank),u=NR(e,i,a,o,s);return{x:function(){var e=u.x();return null!=s&&(e=xb(e)),e}}}},CR={kernelName:"Maximum",inputsToSave:["a","b"],gradFunc:function(e,t){var n=t[0],r=t[1];return{a:function(){return vx(e,Jy(tk(n,r),"float32"))},b:function(){return vx(e,Jy(lk(n,r),"float32"))}}}};var RR=$g({maxPool3dBackprop_:function(e,t,n,r,a,i,o,s){void 0===i&&(i=[1,1,1]);var u=Zg(e,"dy","maxPool3dBackprop"),l=Zg(t,"input","maxPool3dBackprop"),c=Zg(n,"output","maxPool3dBackprop"),p=u,h=l,f=c,d=!1;4===l.rank&&(d=!0,p=gb(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),h=gb(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),f=gb(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]])),Ev(5===p.rank,(function(){return"Error in maxPool3dBackprop: dy must be rank 5 but got rank "+p.rank+"."})),Ev(5===h.rank,(function(){return"Error in maxPool3dBackprop: input must be rank 5 but got rank "+h.rank+"."})),Ev(5===f.rank,(function(){return"Error in maxPool3dBackprop: output must be rank 5 but got rank "+f.rank+"."})),Ev(Yx(a,i),(function(){return"Error in maxPool3dBackprop: Either strides or dilations must be 1. Got strides "+a+" and dilations '"+i+"'"})),null!=s&&Ev(Ov(o),(function(){return"Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode "+s+" but got pad "+o+"."}));var m={dy:p,input:h,output:f},v={filterSize:r,strides:a,dilations:i,pad:o,dimRoundingMode:s},g=Gg.runKernelFunc((function(e){var t=Wx(h.shape,r,a,i,o,s);return e.maxPool3dBackprop(p,h,f,t)}),m,null,"MaxPool3DBackprop",v);return d?gb(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}}),ER={kernelName:"MaxPool3D",inputsToSave:["x"],outputsToSave:[!0],gradFunc:function(e,t,n){var r=t[0],a=t[1],i=n.filterSize,o=n.strides,s=n.dilations,u=n.pad,l=n.dimRoundingMode,c=null==s?[1,1,1]:s;return{x:function(){return RR(e,r,a,i,o,c,u,l)}}}};var AR=$g({maxPoolBackprop_:function(e,t,n,r,a,i,o){var s=Zg(e,"dy","maxPoolBackprop"),u=Zg(t,"input","maxPoolBackprop"),l=Zg(n,"output","maxPoolBackprop");Ev(u.rank===s.rank,(function(){return"Rank of input ("+u.rank+") does not match rank of dy ("+s.rank+")"})),Ev(4===s.rank,(function(){return"Error in maxPoolBackprop: dy must be rank 4 but got rank "+s.rank+"."})),Ev(4===u.rank,(function(){return"Error in maxPoolBackprop: input must be rank 4 but got rank "+u.rank+"."})),null!=o&&Ev(Ov(i),(function(){return"Error in maxPoolBackprop: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+i+"."}));var c={dy:s,input:u,output:l},p={filterSize:r,strides:a,pad:i,dimRoundingMode:o};return Gg.runKernelFunc((function(e){var t=Px(u.shape,r,a,1,i,o);return e.maxPoolBackprop(s,u,l,t)}),c,null,"MaxPoolBackprop",p)}}),TR={kernelName:"PadV2",inputsToSave:["x"],gradFunc:function(e,t,n){var r=t[0],a=n.paddings.map((function(e){return e[0]}));return{x:function(){return rw(e,a,r.shape)}}}},DR={kernelName:"SpaceToBatchND",gradFunc:function(e,t,n){var r=n.blockShape,a=n.paddings;return{x:function(){return ow(e,r,a)}}}},_R={kernelName:"SplitV",gradFunc:function(e,t,n){var r=n.axis;return{x:function(){return tw(e,r)}}}},FR={kernelName:"Tile",inputsToSave:["x"],gradFunc:function(e,t,n){var r=t[0],a=n.reps;return{x:function(){var t=Bw(r);if(1===r.rank)for(var n=0;n<a[0];++n)t=fx(t,rw(e,[n*r.shape[0]],[r.shape[0]]));else if(2===r.rank)for(var i=0;i<a[0];++i)for(var o=0;o<a[1];++o)t=fx(t,rw(e,[i*r.shape[0],o*r.shape[1]],[r.shape[0],r.shape[1]]));else if(3===r.rank)for(var s=0;s<a[0];++s)for(var u=0;u<a[1];++u)for(var l=0;l<a[2];++l)t=fx(t,rw(e,[s*r.shape[0],u*r.shape[1],l*r.shape[2]],[r.shape[0],r.shape[1],r.shape[2]]));else{if(4!==r.rank)throw new Error("Gradient for tile operation is not implemented for rank-"+r.rank+" tensors yet.");for(var c=0;c<a[0];++c)for(var p=0;p<a[1];++p)for(var h=0;h<a[2];++h)for(var f=0;f<a[3];++f)t=fx(t,rw(e,[c*r.shape[0],p*r.shape[1],h*r.shape[2],f*r.shape[3]],[r.shape[0],r.shape[1],r.shape[2],r.shape[3]]))}return t}}}};for(var OR,MR=0,LR=[IC,CC,RC,EC,AC,TC,DC,_C,FC,OC,MC,LC,BC,WC,VC,UC,GC,jC,HC,qC,KC,YC,XC,ZC,QC,$C,eR,tR,nR,rR,aR,iR,oR,sR,lR,uR,cR,pR,dR,mR,vR,gR,yR,bR,xR,wR,SR,IR,IR,CR,ER,{kernelName:"MaxPool",input
17sToSave:["x"],outputsToSave:[!0],gradFunc:function(e,t,n){var r=t[0],a=t[1],i=n.filterSize,o=n.strides,s=n.pad;return{x:function(){return AR(e,r,a,i,o,s)}}}},{kernelName:"Min",inputsToSave:["x"],outputsToSave:[!0],gradFunc:function(e,t,n){var r=n.axis,a=t[0],i=t[1],o=Pv(r,a.shape),s=Cx(o,a.rank),u=NR(e,i,a,o,s);return{x:function(){var e=u.x();return null!=s&&(e=xb(e)),e}}}},{kernelName:"Minimum",inputsToSave:["a","b"],gradFunc:function(e,t){var n=t[0],r=t[1];return{a:function(){return vx(e,Jy(ck(n,r),"float32"))},b:function(){return vx(e,Jy(ek(n,r),"float32"))}}}},{kernelName:"Mod",inputsToSave:["a","b"],gradFunc:function(e,t){var n=t[0],r=t[1],a=Mw(n.shape,r.shape);return{a:function(){var t=Ow(n.shape,a);return t.length>0?gb(Sk(e,t),n.shape):e},b:function(){var t=vx(e,yk(Yw(mx(n,r)))),i=Ow(r.shape,a);return i.length>0?gb(Sk(t,i),r.shape):t}}}},{kernelName:"Multiply",inputsToSave:["a","b"],gradFunc:function(e,t){var n=t[0],r=t[1],a=Mw(n.shape,r.shape);return{a:function(){var t=vx(e,Jy(r,"float32")),i=Ow(n.shape,a);return i.length>0?gb(Sk(t,i),n.shape):t},b:function(){var t=vx(e,Jy(n,"float32")),i=Ow(r.shape,a);return i.length>0?gb(Sk(t,i),r.shape):t}}}},{kernelName:"Negate",gradFunc:function(e){return{x:function(){return yk(e)}}}},{kernelName:"OneHot",inputsToSave:["indices"],gradFunc:function(e,t){var n=t[0];return{indices:function(){return Fk(n.shape,"float32")}}}},{kernelName:"OnesLike",gradFunc:function(e){return{x:function(){return Bw(e)}}}},TR,TR,{kernelName:"Pow",inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:function(e,t){var n=t[0],r=t[1],a=t[2],i=n,o=r,s=Mw(i.shape,o.shape);return{a:function(){var t=Jy(o,"float32"),n=vx(e,vx(t,eS(i,kk(t,sk(1))))),r=Ow(i.shape,s);return r.length>0&&(n=Sk(n,r)),gb(n,i.shape)},b:function(){var t=ek(i,0),n=zw(t,fk(i),Bw(i)),r=vx(e,vx(a,n)),u=Ow(o.shape,s);return u.length>0&&(r=Sk(r,u)),gb(r,o.shape)}}}},{kernelName:"Prelu",inputsToSave:["x","alpha"],gradFunc:function(e,t){var n=t[0],r=t[1],a=ek(n,0);return{x:function(){return zw(a,e,vx(e,r))},alpha:function(){var t=zw(a,Bw(e),vx(e,n)),i=Ow(r.shape,e.shape);return i.length>0&&(t=Sk(t,i)),gb(t,r.shape)}}}},{kernelName:"Reciprocal",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return mx(e,yk(Pk(n)))}}}},{kernelName:"Relu6",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0],r=vx(ck(n,6),QS(n));return{x:function(){return vx(e,Jy(r,"float32"))}}}},{kernelName:"Relu",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return vx(e,Jy(QS(n),"float32"))}}}},{kernelName:"Reshape",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return gb(e,n.shape)}}}},{kernelName:"ResizeBilinear",inputsToSave:["images"],gradFunc:function(e,t,n){var r=t[0],a=function(t){var a=n.alignCorners;return t.resizeBilinearBackprop(e,r,a)},i={images:r};return{images:function(){return Gg.runKernelFunc(a,i,null,"ResizeBilinearGrad",n)}}}},{kernelName:"ResizeNearestNeighbor",inputsToSave:["images"],gradFunc:function(e,t,n){var r=t[0],a=function(t){var a=n.alignCorners;return t.resizeNearestNeighborBackprop(e,r,a)},i={images:r};return{images:function(){return Gg.runKernelFunc(a,i,null,"ResizeNearestNeighborGrad",n)}}}},{kernelName:"Reverse",gradFunc:function(e,t,n){var r=Pv(n.dims,e.shape);return{x:function(){return SS(e,r)}}}},{kernelName:"Round",gradFunc:function(e){return{x:function(){return Bw(e)}}}},{kernelName:"Rsqrt",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return yk(mx(e,vx(eS(n,1.5),2)))}}}},{kernelName:"SelectV2",inputsToSave:["condition"],gradFunc:function(e,t){var n=t[0];return{condition:function(){return Jy(Bw(n),"float32")},t:function(){return vx(e,Jy(n,e.dtype))},e:function(){return vx(e,Jy(Rk(n),e.dtype))}}}},{kernelName:"Selu",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){var t=ek(n,sk(0)),r=sk(1.7580993408473768),a=sk(sC),i=vx(e,a),o=vx(vx(e,r),Gw(Jy(n,"float32")));return zw(t,i,o)}}}},{kernelName:"Sigmoid",outputsToSave:[!0],gradFunc:function(e,t){var n=t[0];return{x:function(){return vx(e,vx(n,kk(sk(1),n)))}}}},{kernelName:"Sign",gradFunc:function(e){return{x:function(){return Bw(e)}}}},{kernelName:dv,inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return vx(Cw(Jy(n,"float32")),e)}}}},{kernelName:"Sinh",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return vx(Rw(Jy(n,"float32")),e)}}}}
17,{kernelName:"Slice",inputsToSave:["x"],gradFunc:function(e,t,n){for(var r=t[0],a=n.begin,i=n.size,o=r.shape,s=Kb(r,a,i),u=s[0],l=s[1],c=[],p=0;p<e.rank;p++)c.push([u[p],o[p]-u[p]-l[p]]);return{x:function(){return Kk(e,c)}}}},{kernelName:"Softmax",outputsToSave:[!0],gradFunc:function(e,t,n){var r=t[0],a=n.dim,i=vx(e,r);return{logits:function(){return kk(i,vx(Sk(i,[a],!0),r))}}}},{kernelName:"Softplus",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return vx(e,nw(n))}}}},DR,DR,_R,_R,{kernelName:"Sqrt",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return mx(e,vx(XS(Jy(n,"float32")),2))}}}},{kernelName:"SquaredDifference",inputsToSave:["a","b"],gradFunc:function(e,t){var n=t[0],r=t[1],a=sk(2);return{a:function(){return vx(e,vx(a,kk(n,r)))},b:function(){return vx(e,vx(a,kk(r,n)))}}}},{kernelName:"Square",inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return vx(e,vx(Jy(n,"float32"),2))}}}},{kernelName:"Step",gradFunc:function(e){return{x:function(){return Bw(e)}}}},{kernelName:"Sub",inputsToSave:["a","b"],gradFunc:function(e,t){var n=t[0],r=t[1],a=Mw(n.shape,r.shape);return{a:function(){var t=e,r=Ow(n.shape,a);return r.length>0&&(t=Sk(t,r)),gb(t,n.shape)},b:function(){var t=e,n=Ow(r.shape,a);return n.length>0&&(t=Sk(t,n)),gb(yk(t),r.shape)}}}},{kernelName:"Sum",inputsToSave:["x"],gradFunc:function(e,t,n){var r=t[0],a=r.shape.slice();Pv(n.axis,r.shape).forEach((function(e){a[e]=1}));var i=gb(e,a),o=vx(i,Ok(r.shape,"float32"));return{x:function(){return o}}}},{kernelName:mv,inputsToSave:["x"],gradFunc:function(e,t){var n=t[0];return{x:function(){return mx(e,Pk(Cw(n)))}}}},{kernelName:"Tanh",outputsToSave:[!0],gradFunc:function(e,t){var n=t[0];return{x:function(){return vx(kk(sk(1),Pk(n)),e)}}}},FR,{kernelName:"Transpose",gradFunc:function(e,t,n){var r=Rx(n.perm);return{x:function(){return xb(e,r)}}}},{kernelName:"Unpack",gradFunc:function(e,t,n){var r=n.axis;return{value:function(){return ZS(e,r)}}}},{kernelName:"UnsortedSegmentSum",inputsToSave:["segmentIds"],gradFunc:function(e,t){var n=t[0];return{x:function(){return function(e,t){for(var n=ok(t,Bw(t)),r=$w(e,n),a=tk(t,sk(0,"int32")),i=r.rank-a.rank,o=0;o<i;++o)a=jw(a,o+1);a=Ck(a,Ok(r.shape,"bool"));var s=Bw(r);return zw(a,r,s)}(e,n)}}}},{kernelName:"ZerosLike",gradFunc:function(e){return{x:function(){return Bw(e)}}}}];MR<LR.length;MR++){kv(LR[MR])}function zR(){return null==OR&&(OR=hx().epsilon()),OR}Ig.prototype.abs=function(){return this.throwIfDisposed(),gx(this)},Ig.prototype.acos=function(){return this.throwIfDisposed(),yx(this)},Ig.prototype.acosh=function(){return this.throwIfDisposed(),bx(this)},Ig.prototype.addStrict=function(e){return this.throwIfDisposed(),xN(this,e)},Ig.prototype.add=function(e){return this.throwIfDisposed(),fx(this,e)},Ig.prototype.all=function(e,t){return this.throwIfDisposed(),Ax(this,e,t)},Ig.prototype.any=function(e,t){return this.throwIfDisposed(),Tx(this,e,t)},Ig.prototype.argMax=function(e){return this.throwIfDisposed(),Dx(this,e)},Ig.prototype.argMin=function(e){return this.throwIfDisposed(),_x(this,e)},Ig.prototype.asScalar=function(){return this.throwIfDisposed(),Ev(1===this.size,(function(){return"The array must have only 1 element."})),gb(this,[])},Ig.prototype.asType=function(e){return this.throwIfDisposed(),Jy(this,e)},Ig.prototype.as1D=function(){return this.throwIfDisposed(),gb(this,[this.size])},Ig.prototype.as2D=function(e,t){return this.throwIfDisposed(),gb(this,[e,t])},Ig.prototype.as3D=function(e,t,n){return this.throwIfDisposed(),gb(this,[e,t,n])},Ig.prototype.as4D=function(e,t,n,r){return this.throwIfDisposed(),gb(this,[e,t,n,r])},Ig.prototype.as5D=function(e,t,n,r,a){return this.throwIfDisposed(),gb(this,[e,t,n,r,a])},Ig.prototype.asin=function(){return this.throwIfDisposed(),Fx(this)},Ig.prototype.asinh=function(){return this.throwIfDisposed(),Ox(this)},Ig.prototype.atan=function(){return this.throwIfDisposed(),Mx(this)},Ig.prototype.atan2=function(e){return this.throwIfDisposed(),Lx(this,e)},Ig.prototype.atanh=function(){return this.throwIfDisposed(),zx(this)},Ig.prototype.avgPool=function(e,t,n,r){return this.throwIfDisposed(),Zx(this,e,t,n,r)},Ig.prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),ow(this,e,t)},Ig.prototype.batchNorm=function(e,t,n,r,a){return this.throwIfDisposed(),uw(this,e,t,n,r,a)},Ig.prototype.broadcastTo=function(e){return this.throwIfDisposed(),hw(this,e)},Ig.prototype.cast=function(e){return this.throwIfDisposed(),Jy(this,e)},Ig.prototype.ceil=function(){return this.throwIfDisposed(),fw(this)},Ig.prototype.clipByValue=function(e,t){return this.throwIfDisposed(),dw(this,e,t)},Ig.prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ig&&(e=[e]),tw([this].concat(e),t)},Ig.prototype.conv1d=function(e,t,n,r,a,i){return this.throwIfDisposed(),xw(this,e,t,n,r,a,i)},Ig.prototype.conv2dTranspose=function(e,t,n,r,a){return this.throwIfDisposed(),kw(this,e,t,n,r,a)},Ig.prototype.conv2d=function(e,t,n,r,a,i){return this.throwIfDisposed(),bw(this,e,t,n,r,a,i)},Ig.prototype.cos=function(){return this.throwIfDisposed(),Cw(this)},Ig.prototype.cosh=function(){return this.throwIfDisposed(),Rw(this)},Ig.prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Ew(this,e,t,n)},Ig.prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Aw(this,e,t)},Ig.prototype.depthwiseConv2D=function(e,t,n,r,a,i){return ax("depthwiseConv2D is deprecated, use depthwiseConv2d instead"),this.throwIfDisposed(),Tw(this,e,t,n,r,a,i)},Ig.prototype.depthwiseConv2d=function(e,t,n,r,a,i){return this.throwIfDisposed(),Tw(this,e,t,n,r,a,i)},Ig.prototype.dilation2d=function(e,t,n,r,a){return this.throwIfDisposed(),_w(this,e,t,n,r,a)},Ig.prototype.divNoNan=function(e){return this.throwIfDisposed(),Pw(this,e)},Ig.prototype.divStrict=function(e){return this.throwIfDisposed(),wN(this,e)},Ig.prototype.div=function(e){return this.throwIfDisposed(),mx(this,e)},Ig.prototype.dot=function(e){return this.throwIfDisposed(),Ww(this,e)},Ig.prototype.elu=function(){return this.throwIfDisposed(),Vw(this)},Ig.prototype.equalStrict=function(e){return this.throwIfDisposed(),dN(this,e)},Ig.prototype.equal=function(e){return this.throwIfDisposed(),Lw(this,e)},Ig.prototype.erf=function(){return this.throwIfDisposed(),Uw(this)},Ig.prototype.exp=function(){return this.throwIfDisposed(),Gw(this)},Ig.prototype.expandDims=function(e){return this.throwIfDisposed(),jw(this,e)},Ig.prototype.expm1=function(){return this.throwIfDisposed(),Hw(this)},Ig.prototype.fft=function(){return this.throwIfDisposed(),US(this)},Ig.prototype.flatten=function(){return this.throwIfDisposed(),gb(this,[this.size])},Ig.prototype.floor=function(){return this.throwIfDisposed(),Yw(this)},Ig.prototype.floorDiv=function(e){return this.throwIfDisposed(),dx(this,e)},Ig.prototype.gather=function(e,t){return this.throwIfDisposed(),$w(this,e,t)},Ig.prototype.greaterEqualStrict=function(e){return this.throwIfDisposed(),mN(this,e)},Ig.prototype.greaterEqual=function(e){return this.throwIfDisposed(),tk(this,e)},Ig.prototype.greaterStrict=function(e){return this.throwIfDisposed(),vN(this,e)},Ig.prototype.greater=function(e){return this.throwIfDisposed(),ek(this,e)},Ig.prototype.ifft=function(){return this.throwIfDisposed(),GS(this)},Ig.prototype.irfft=function(){return this.throwIfDisposed(),jS(this)},Ig.prototype.isFinite=function(){return this.throwIfDisposed(),rk(this)},Ig.prototype.isInf=function(){return this.throwIfDisposed(),ak(this)},Ig.prototype.isNaN=function(){return this.throwIfDisposed(),ik(this)},Ig.prototype.leakyRelu=function(e){return this.throwIfDisposed(),uk(this,e)},Ig.prototype.lessEqualStrict=function(e){return this.throwIfDisposed(),gN(this,e)},Ig.prototype.lessEqual=function(e){return this.throwIfDisposed(),ck(this,e)},Ig.prototype.lessStrict=function(e){return this.throwIfDisposed(),yN(this,e)},Ig.prototype.less=function(e){return this.throwIfDisposed(),lk(this,e)},Ig.prototype.localResponseNormalization=function(e,t,n,r){return this.throwIfDisposed(),hk(this,e,t,n,r)},Ig.prototype.logSigmoid=function(){return this.throwIfDisposed(),xk(this)},Ig.prototype.logSoftmax=function(e){return this.throwIfDisposed(),Nk(this,e)},Ig.prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Ik(this,e,t)},Ig.prototype.log=function(){return this.throwIfDisposed(),fk(this)},Ig.prototype.log1p=function(){return this.throwIfDisposed(),dk(this)},Ig.prototype.logicalAnd=function(e){return this.throwIfDisposed(),Ck(this,e)},Ig.prototype.logicalNot=function(){return this.throwIfDisposed(),Rk(this)},Ig.prototype.logicalOr=function(e){return this.throwIfDisposed(),Ek(this,e)},Ig.prototype.logicalXor=function(e){return this.throwIfDisposed(),Ak(this,e)},Ig.prototype.matMul=function(e,t,n){return this.throwIfDisposed(),yb(this,e,t,n)},Ig.prototype.maxPool=function(e,t,n,r){return this.throwIfDisposed(),Tk(this,e,t,n,r)},Ig.prototype.max=function(e,t){return this.throwIfDisposed(),wk(this,e,t)},Ig.prototype.maximumStrict=function(e){return this.throwIfDisposed(),kN(this,e)},Ig.prototype.maximum=function(e){return this.throwIfDisposed(),ok(this,e)},Ig.prototype.mean=function(e,t){return this.throwIfDisposed(),Mk(this,e,t)},Ig.prototype.min=function(e,t){return this.throwIfDisposed(),Lk(this,e,t)},Ig.prototype.minimumStrict=function(e){return this.throwIfDisposed(),SN(this,e)},Ig.prototype.minimum=function(e){return this.throwIfDisposed(),zk(this,e)},Ig.prototype.modStrict=function(e){return this.throwIfDisposed(),NN(this,e)},Ig.prototype.mod=function(e){return this.throwIfDisposed(),Bk(this,e)},Ig.prototype.mulStrict=function(e){return this.throwIfDisposed(),IN(this,e)},Ig.prototype.mul=function(e){return this.throwIfDisposed(),vx(this,e)},Ig.prototype.neg=function(){return this.throwIfDisposed(),yk(this)},Ig.prototype.norm=function(e,t,n){return this.throwIfDisposed(),AN(this,e,t,n)},Ig.prototype.notEqualStrict=function(e){return this.throwIfDisposed(),bN(this,e)},Ig.prototype.notEqual=function(e){return this.throwIfDisposed(),Gk(this,e)},Ig.prototype.oneHot=function(e,t,n){return void 0===t&&(t=1),void 0===n&&(n=0),this.throwIfDisposed(),bb(this,e,t,n)},Ig.prototype.onesLike=function(){return this.throwIfDisposed(),Hk(this)},Ig.prototype.pad=function(e,t){return this.throwIfDisposed(),Kk(this,e,t)},Ig.prototype.pool=function(e,t,n,r,a){return this.throwIfDisposed(),$k(this,e,t,n,r,a)},Ig.prototype.powStrict=function(e){return this.throwIfDisposed(),CN(this,e)},Ig.prototype.pow=function(e){return this.throwIfDisposed(),eS(this,e)},Ig.prototype.prelu=function(e){return this.throwIfDisposed(),tS(this,e)},Ig.prototype.prod=function(e,t){return this.throwIfDisposed(),nS(this,e,t)},Ig.prototype.reciprocal=function(){return this.throwIfDisposed(),xS(this)},Ig.prototype.relu=function(){return this.throwIfDisposed(),wS(this)},Ig.prototype.relu6=function(){return this.throwIfDisposed(),kS(this)},Ig.prototype.reshapeAs=function(e){return this.throwIfDisposed(),gb(this,e.shape)},Ig.prototype.reshape=function(e){return this.throwIfDisposed(),gb(this,e)},Ig.prototype.resizeBilinear=function(e,t){return this.throwIfDisposed(),kI(this,e,t)},Ig.prototype.resizeNearestNeighbor=function(e,t){return this.throwIfDisposed(),SI(this,e,t)},Ig.prototype.reverse=function(e){return this.throwIfDisposed(),SS(this,e)},Ig.prototype.rfft=function(){return this.throwIfDisposed(),KS(this)},Ig.prototype.round=function(){return this.throwIfDisposed(),ES(this)},Ig.prototype.rsqrt=function(){return this.throwIfDisposed(),AS(this)},Ig.prototype.selu=function(){return this.throwIfDisposed(),TS(this)},Ig.prototype.separableConv2d=function(e,t,n,r,a,i){return this.throwIfDisposed(),DS(this,e,t,n,r,a,i)},Ig.prototype.sigmoid=function(){return this.throwIfDisposed(),nw(this)},Ig.prototype.sign=function(){return this.throwIfDisposed(),OS(this)},Ig.prototype.sin=function(){return this.throwIfDisposed(),MS(this)},Ig.prototype.sinh=function(){return this.throwIfDisposed(),LS(this)},Ig.prototype.slice=function(e,t){return this.throwIfDisposed(),rw(this,e,t)},Ig.prototype.softmax=function(e){return this.throwIfDisposed(),VS(this,e)},Ig.prototype.softplus=function(){return this.throwIfDisposed(),bk(this)},Ig.prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Qk(this,e,t)},Ig.prototype.split=function(e,t){return this.throwIfDisposed(),qS(this,e,t)},Ig.prototype.sqrt=function(){return this.throwIfDisposed(),XS(this)},Ig.prototype.square=function(){return this.throwIfDisposed(),Pk(this)},Ig.prototype.squaredDifference=function(e){return this.throwIfDisposed(),YS(this,e)},Ig.prototype.squaredDifferenceStrict=function(e){return this.throwIfDisposed(),RN(this,e)},Ig.prototype.squeeze=function(e){return this.throwIfDisposed(),JS(this,e)},Ig.prototype.stack=function(e,t){this.throwIfDisposed();var n=e instanceof Ig?[this,e]:[this].concat(e);return ZS(n,t)},Ig.prototype.step=function(e){return this.throwIfDisposed(),QS(this,e)},Ig.prototype.stridedSlice=function(e,t,n,r,a,i,o,s){return this.throwIfDisposed(),$S(this,e,t,n,r,a,i,o,s)},Ig.prototype.subStrict=function(e){return this.throwIfDisposed(),EN(this,e)},Ig.prototype.sub=function(e){return this.throwIfDisposed(),kk(this,e)},Ig.prototype.sum=function(e,t){return this.throwIfDisposed(),Sk(this,e,t)},Ig.prototype.tan=function(){return this.throwIfDisposed(),eN(this)},Ig.prototype.tanh=function(){return this.throwIfDisposed(),aw(this)},Ig.prototype.tile=function(e){return this.throwIfDisposed(),qw(this,e)},Ig.prototype.toBool=function(){return this.throwIfDisposed(),Jy(this,"bool")},Ig.prototype.toFloat=function(){return this.throwIfDisposed(),Jy(this,"float32")},Ig.prototype.toInt=function(){return this.throwIfDisposed(),Jy(this,"int32")},Ig.prototype.topk=function(e,t){return this.throwIfDisposed(),rN(this,e,t)},Ig.prototype.transpose=function(e){return this.throwIfDisposed(),xb(this,e)},Ig.prototype.unique=function(e){return this.throwIfDisposed(),iN(this,e)},Ig.prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),oN(this,e,t)},Ig.prototype.unstack=function(e){return this.throwIfDisposed(),sN(this,e)},Ig.prototype.where=function(e,t){return this.throwIfDisposed(),zw(e,this,t)},Ig.prototype.zerosLike=function(){return this.throwIfDisposed(),Bw(this)};var BR=function(e){function t(n){var r;return r=e.call(this,n)||this,Object.setPrototypeOf(Qm(r),t.prototype),r}return qm(t,e),t}(Zm(Error)),PR=function(e){function t(n){var r;return r=e.call(this,n)||this,Object.setPrototypeOf(Qm(r),t.prototype),r}return qm(t,e),t}(Zm(Error)),WR=function(e){function t(n){var r;return r=e.call(this,n)||this,Object.setPrototypeOf(Qm(r),t.prototype),r}return qm(t,e),t}(Zm(Error)),VR=function(e){function t(n){var r;return r=e.call(this,n)||this,Object.setPrototypeOf(Qm(r),t.prototype),r}return qm(t,e),t}(Zm(Error)),UR=function(e){function t(n){var r;return r=e.call(this,n)||this,Object.setPrototypeOf(Qm(r),t.prototype),r}return qm(t,e),t}(Zm(Error));Error;function GR(e,t){if(Array.isArray(e)){for(var n=[],r=0;r<t;r++)n=n.concat(e);return n}var a=new Array(t);return a.fill(e),a}function jR(e,t){if(!e)throw new UR(t)}function HR(e,t){for(var n,r=0,a=tv(e);!(n=a()).done;){n.value===t&&r++}return r}function qR(e){return 1===e.length?e[0]:e}function KR(e){return Array.isArray(e)?e:[e]}function XR(e){var t=e.replace(/(.)([A-Z][a-z0-9]+)/g,"$1_$2").replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase();return"_"!==t[0]?t:"private"+t}function YR(e){return e.length<=1||-1===e.indexOf("_")?e:e.replace(/[_]+(\w|$)/g,(function(e,t){return t.toUpperCase()}))}var JR={};function ZR(e){if(null==e)return null;var t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function QR(e,t,n,r,a){if(void 0===t&&(t={}),void 0===n&&(n={}),void 0===r&&(r="object"),void 0===a&&(a=!1),"string"==typeof e){var i,o=e;if(o in n)i=n[o];else if(o in JR)i=JR[o];else if(null==(i=t[o]))throw new WR("Unknown "+r+": "+e+". This may be due to one of the following reasons:\n1. The "+r+" is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom "+r+" is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().");return i}var s=e;if(null==s.className||null==s.config)throw new WR(r+": Improper config format: "+JSON.stringify(s)+".\n'className' and 'config
17' must set.");var u,l,c=s.className;if(c in n){var p=n[c];u=p[0],l=p[1]}else if(c in JR){var h=JR.className;u=h[0],l=h[1]}else if(c in t){var f=t[c];u=f[0],l=f[1]}if(null==u)throw new WR("Unknown "+r+": "+c+". This may be due to one of the following reasons:\n1. The "+r+" is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom "+r+" is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().");if(null!=l){for(var d={},m=0,v=Object.keys(JR);m<v.length;m++){var g=v[m];d[g]=JR[g]}for(var y=0,b=Object.keys(n);y<b.length;y++){var x=b[y];d[x]=n[x]}s.config.customObjects=d;for(var w=Object.assign({},JR),k=0,S=Object.keys(n);k<S.length;k++){var N=S[k];JR[N]=n[N]}!function e(t){if(null!=t&&"object"==typeof t)if(Array.isArray(t))t.forEach((function(t){return e(t)}));else for(var n=0,r=Object.keys(t);n<r.length;n++){var a=r[n],i=t[a];null!=i&&"object"==typeof i&&(Array.isArray(i)||"ndarray"!==i.type||"number"!=typeof i.value?e(i):t[a]=i.value)}}(s.config);var I=l(u,s.config,n,a);return JR=Object.assign({},w),I}for(var C=Object.assign({},JR),R=0,E=Object.keys(n);R<E.length;R++){var A=E[R];JR[A]=n[A]}var T=new u(s.config);return JR=Object.assign({},C),T}function $R(e,t){return-1*function(e,t){return e<t?-1:e>t?1:0}(e,t)}function eE(e){if(null==e)return e;for(var t,n=[],r=tv(e);!(t=r()).done;){var a=t.value;-1===n.indexOf(a)&&n.push(a)}return n}function tE(e){if(null==e)throw new WR("Invalid value in obj: "+JSON.stringify(e));for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}function nE(e,t,n){if(null!=n&&e.indexOf(n)<0)throw new WR(n+" is not a valid "+t+".  Valid values are "+e+" or null/undefined.")}function rE(e,t,n,r){return void 0===n&&(n=0),void 0===r&&(r=1/0),jR(n>=0),jR(r>=n),Array.isArray(e)&&e.length>=n&&e.length<=r&&e.every((function(e){return typeof e===t}))}function aE(e,t){Array.isArray(e)?(Ev(e.length>0,(function(){return t+" is unexpectedly an empty array."})),e.forEach((function(e,n){return aE(e,"element "+(n+1)+" of "+t)}))):Ev(Number.isInteger(e)&&e>0,(function(){return"Expected "+t+" to be a positive integer, but got "+function e(t){return null===t?"null":Array.isArray(t)?"["+t.map((function(t){return e(t)})).join(",")+"]":"string"==typeof t?'"'+t+'"':""+t}(e)+"."}))}function iE(e){return"relu"===e?"relu":"linear"===e?"linear":"elu"===e?"elu":null}function oE(e,t){return sx((function(){return XS(Sk(vx(e,e),t,!0))}))}var sE=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.getConfig=function(){return{}},t}(Yb),uE=function(e){function t(t){var n;return(n=e.call(this)||this).defaultMaxValue=2,n.defaultAxis=0,n.maxValue=null!=t.maxValue?t.maxValue:n.defaultMaxValue,n.axis=null!=t.axis?t.axis:n.defaultAxis,n}qm(t,e);var n=t.prototype;return n.apply=function(e){var t=this;return sx((function(){var n=oE(e,t.axis),r=dw(n,0,t.maxValue);return vx(e,mx(r,fx(zR(),n)))}))},n.getConfig=function(){return{maxValue:this.maxValue,axis:this.axis}},t}(sE);uE.className="MaxNorm",Zb(uE);var lE=function(e){function t(t){var n;return(n=e.call(this)||this).defaultAxis=0,n.axis=null!=t.axis?t.axis:n.defaultAxis,n}qm(t,e);var n=t.prototype;return n.apply=function(e){var t=this;return sx((function(){return mx(e,fx(zR(),oE(e,t.axis)))}))},n.getConfig=function(){return{axis:this.axis}},t}(sE);lE.className="UnitNorm",Zb(lE);var cE=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e){return wS(e)},t}(sE);cE.className="NonNeg",Zb(cE);var pE=function(e){function t(t){var n;return(n=e.call(this)||this).defaultMinValue=0,n.defaultMaxValue=1,n.defaultRate=1,n.defaultAxis=0,n.minValue=null!=t.minValue?t.minValue:n.defaultMinValue,n.maxValue=null!=t.maxValue?t.maxValue:n.defaultMaxValue,n.rate=null!=t.rate?t.rate:n.defaultRate,n.axis=null!=t.axis?t.axis:n.defaultAxis,n}qm(t,e);var n=t.prototype;return n.apply=function(e){var t=this;return sx((function(){var n=oE(e,t.axis),r=fx(vx(t.rate,dw(n,t.minValue,t.maxValue)),vx(1-t.rate,n));return vx(e,mx(r,fx(zR(),n)))}))},n.getConfig=function(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}},t}(sE);pE.className="MinMaxNorm",Zb(pE);
17var hE={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function fE(e){return ZR(e)}function dE(e,t){return void 0===t&&(t={}),QR(e,Jb.getMap().classNameMap,t,"constraint")}function mE(e){return null==e?null:"string"==typeof e?dE({className:e in hE?hE[e]:e,config:{}}):e instanceof sE?e:dE(e)}var vE={__proto__:null,maxNorm:function(e){return new uE(e)},unitNorm:function(e){return new lE(e)},nonNeg:function(){return new cE},minMaxNorm:function(e){return new pE(e)}},gE=["channelsFirst","channelsLast"],yE=["valid","same","causal"],bE=["max","avg"],xE=["sum","mul","concat","ave"],wE=new Map;function kE(e){nE(gE,"DataFormat",e)}function SE(e){nE(yE,"PaddingMode",e)}function NE(e){nE(bE,"PoolMode",e)}var IE=[];function CE(e,t){IE.push(e);try{var n=t();return IE.pop(),n}catch(e){throw IE.pop(),e}}function RE(e){if(!TE(e))throw new Error("Not a valid tensor name: '"+e+"'");return(0===IE.length?"":IE.join("/")+"/")+e}function EE(e){if(!TE(e))throw new Error("Not a valid tensor name: '"+e+"'");wE.has(e)||wE.set(e,0);var t=wE.get(e);if(wE.set(e,wE.get(e)+1),t>0){var n=e+"_"+t;return wE.set(n,1),n}return e}var AE=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function TE(e){return!!e.match(AE)}function DE(e,t,n){null==t&&(t=0),null==n&&(n=e.length);for(var r=1,a=t;a<n;++a)r*=e[a];return r}function _E(e){return yS(e=Array.isArray(e)?new Float32Array(e):e)}function FE(e){return Lk(_E(e)).dataSync()[0]}function OE(e){return wk(_E(e)).dataSync()[0]}function ME(e,t){if(t<e)throw new WR("end ("+t+") < begin ("+e+") is forbidden.");for(var n=[],r=e;r<t;++r)n.push(r);return n}function LE(e,t){return e.asType(t)}function zE(e,t){void 0===t&&(t=-1);var n=e.shape.slice();return t<0&&(t=n.length+t+1),n.splice(t,0,1),e.reshape(n)}function BE(e,t,n){return sx((function(){switch(e.rank){case 1:return zS(e,t,n);case 2:return BS(e,[t,0],[n,e.shape[1]]);case 3:return PS(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return WS(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return rw(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return rw(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new WR("sliceAlongFirstAxis() received an unsupported tensor rank: "+e.rank)}}))}function PE(e,t,n){return sx((function(){switch(e.rank){case 1:return zS(e,t,n);case 2:return BS(e,[0,t],[e.shape[0],n]);case 3:return PS(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return WS(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new WR("sliceAlongLastAxis() received an unsupported tensor rank: "+e.rank)}}))}function WE(e,t,n,r){return sx((function(){switch(e.rank){case 1:return zS(e,t,n);case 2:switch(r){case 1:return BE(e,t,n);case 2:return PE(e,t,n);default:throw new WR("The axis is not within the rank of the tensor "+r)}case 3:switch(r){case 1:return BE(e,t,n);case 2:return PS(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return PE(e,t,n);default:throw new WR("The axis is not within the rank of the tensor "+r)}case 4:switch(r){case 1:return BE(e,t,n);case 2:return WS(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return WS(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return PE(e,t,n);default:throw new WR("The axis is not within the rank of the tensor "+r)}default:throw new WR("sliceAlongLastAxis() received an unsupported tensor rank: "+e.rank)}}))}function VE(e,t){var n;return void 0===t&&(t=-1),t<0&&(t=0!==(n=e[0].rank)?n:0),t===e[0].rank&&(t=-1),tw(e,t)}function UE(e,t){switch(e.rank){case 1:return mw([e,t]);case 2:return vw([e,t],0);case 3:return gw([e,t],0);case 4:return yw([e,t],0);default:throw new WR("concatAlongFirstAxis() received an unsupported tensor rank: "+e.rank)}}function GE(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new WR("The length of input n ("+t.length+") does not match the number of dimensions in input x ("+e.rank+")");return qw(e,t)}function jE(e,t,n,r,a){return void 0===t&&(t=0),void 0===n&&(n=1),vS(e,t,n,r,a)}function HE(e,t,n,r){if(e.rank<2||t.rank<2)throw new VR("dot requires both inputs to be rank >
17= 2 but got x shape = "+e.shape+" and y shape = "+t.shape);if(t.rank>=3&&e.shape.slice(-1)[0]!==t.shape.slice(-2)[0])throw new VR("If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = "+e.shape+" and  y shape = "+t.shape);if(2===e.rank&&2===t.rank){return XN({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?XE(e.rank,r,"channelsLast"):null,activation:n})}var a=e.shape.slice(),i=a.pop();e=e.reshape([-1,i]);var o=t.shape.slice(),s=o.pop(),u=o.pop(),l=[].concat(o,[s]),c=Array.from({length:t.rank},(function(e,n){return 0===n?t.rank-2:n<=t.rank-2?n-1:n}));t=t.transpose(c).reshape([u,-1]);var p=[].concat(a,l);return XN({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?XE(e.rank,r,"channelsLast"):null,activation:n}).reshape(p)}function qE(e,t,n){return sx((function(){return t=Array.isArray(t)?yS(t,"int32"):t.toInt(),$w(e,t,n)}))}function KE(e){return vx(e,e)}function XE(e,t,n){var r=t.shape;if(1!==t.rank&&t.rank!==e)throw new WR("Unexpected bias dimensions: "+t.rank+"; expected it to be 1 or "+e);if(5===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1,1,1]):t.reshape([1,r[3],r[0],r[1],r[2]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,1,1,r[0]]):t.reshape([1].concat(r))}else if(4===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1,1]):t.reshape([1,r[2],r[0],r[1]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,1,r[0]]):t.reshape([1].concat(r))}else if(3===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1]):t.reshape([1,r[1],r[0]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,r[0]]):t.reshape([1].concat(r))}else if(e<3)return t;throw new WR("Unsupported input rank by biasAdd: "+t.rank)}function YE(e,t,n){return sx((function(){return null==n&&(n="channelsLast"),kE(n),e.add(XE(e.rank,t,n))}))}function JE(e,t,n,r){return sx((function(){return ON(e,t,n,r)}))}function ZE(e,t,n){return void 0===n&&(n=!1),n?e():t()}var QE=["fanIn","fanOut","fanAvg"],$E=["normal","uniform","truncatedNormal"];var eA=function(e){function t(){return e.apply(this,arguments)||this}qm(t,e);var n=t.prototype;return n.fromConfigUsesCustomObjects=function(){return!1},n.getConfig=function(){return{}},t}(Yb),tA=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e,t){return Fk(e,t)},t}(eA);tA.className="Zeros",Zb(tA);var nA=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e,t){return Ok(e,t)},t}(eA);nA.className="Ones",Zb(nA);var rA=function(e){function t(t){var n;if(n=e.call(this)||this,"object"!=typeof t)throw new WR("Expected argument of type ConstantConfig but got "+t);if(void 0===t.value)throw new WR("config must have value set but got "+t);return n.value=t.value,n}qm(t,e);var n=t.prototype;return n.apply=function(e,t){var n=this;return sx((function(){return vx(sk(n.value),Ok(e,t))}))},n.getConfig=function(){return{value:this.value}},t}(eA);rA.className="Constant",Zb(rA);var aA=function(e){function t(t){var n;return(n=e.call(this)||this).DEFAULT_MINVAL=-.05,n.DEFAULT_MAXVAL=.05,n.minval=t.minval||n.DEFAULT_MINVAL,n.maxval=t.maxval||n.DEFAULT_MAXVAL,n.seed=t.seed,n}qm(t,e);var n=t.prototype;return n.apply=function(e,t){return gS(e,this.minval,this.maxval,t)},n.getConfig=function(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}},t}(eA);aA.className="RandomUniform",Zb(aA);var iA=function(e){function t(t){var n;return(n=e.call(this)||this).DEFAULT_MEAN=0,n.DEFAULT_STDDEV=.05,n.mean=t.mean||n.DEFAULT_MEAN,n.stddev=t.stddev||n.DEFAULT_STDDEV,n.seed=t.seed,n}qm(t,e);var n=t.prototype;return n.apply=function(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new VR("randomNormal does not support dType "+t+".");return jE(e,this.mean,this.stddev,t,this.seed)},n.getConfig=function(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}},t}(eA);iA.className="RandomNormal",Zb(iA);var oA=function(e){function t(t){var n;return(n=e.call(this)||this).DEFAULT_MEAN=0,n.DEFAULT_STDDEV=.05,n.mean=t.mean||n.DEFAULT_MEAN,n.stddev=t.stddev||n.DEFAULT_STDDEV,n.seed=t.seed,n}qm(t,e);var n=t.prototype;return n.apply=function(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new VR("truncatedNormal does not support dType "+t+".");return aN(e,this.mean,this.stddev,t,this.seed)},n.getConfig=function(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}},t}(eA);oA.className="TruncatedNormal",Zb(oA);var sA=function(e){function t(t){var n;return(n=e.call(this)||this).gain=null!=t.gain?t.gain:1,n}qm(t,e);var n=t.prototype;return n.apply=function(e,t){var n=this;return sx((function(){if(2!==e.length||e[0]!==e[1])throw new WR("Identity matrix initializer can only be used for 2D square matrices.");return vx(n.gain,Kw(e[0]))}))},n.getConfig=function(){return{gain:this.gain}},t}(eA);sA.className="Identity",Zb(sA);var uA=function(e){function t(t){var n,r;if(n=e.call(this)||this,t.scale<0)throw new WR("scale must be a positive float. Got: "+t.scale);return n.scale=null==t.scale?1:t.scale,n.mode=null==t.mode?"fanIn":t.mode,r=n.mode,nE(QE,"FanMode",r),n.distribution=null==t.distribution?"normal":t.distribution,function(e){nE($E,"Distribution",e)}(n.distribution),n.seed=t.seed,n}qm(t,e);var n=t.prototype;return n.apply=function(e,t){var n=function(e,t){var n,r;if(void 0===t&&(t="channelsLast"),kE(t),2===e.length)n=e[0],r=e[1];else if(-1!==[3,4,5].indexOf(e.length)){if("channelsFirst"===t){var a=DE(e,2);n=e[1]*a,r=e[0]*a}else if("channelsLast"===t){var i=DE(e,0,e.length-2);n=e[e.length-2]*i,r=e[e.length-1]*i}}else{var o=DE(e);n=Math.sqrt(o),r=Math.sqrt(o)}return[n,r]}(e),r=n[0],a=n[1],i=this.scale;if("fanIn"===this.mode?i/=Math.max(1,r):"fanOut"===this.mode?i/=Math.max(1,a):i/=Math.max(1,(r+a)/2),"normal"===this.distribution){var o=Math.sqrt(i);if("float32"!==(t=t||"float32")&&"int32"!==t)throw new VR(this.getClassName()+" does not support dType "+t+".");return aN(e,0,o,t,this.seed)}var s=Math.sqrt(3*i);return gS(e,-s,s,t)},n.getConfig=function(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}},t}(eA);uA.className="VarianceScaling",Zb(uA);var lA=function(e){function t(t){return e.call(this,{scale:1,mode:"fanAvg",distribution:"uniform",seed:null==t?null:t.seed})||this}return qm(t,e),t.prototype.getClassName=function(){return uA.className},t}(uA);lA.className="GlorotUniform",Zb(lA);var cA=function(e){function t(t){return e.call(this,{scale:1,mode:"fanAvg",distribution:"normal",seed:null==t?null:t.seed})||this}return qm(t,e),t.prototype.getClassName=function(){return uA.className},t}(uA);cA.className="GlorotNormal",Zb(cA);var pA=function(e){function t(t){return e.call(this,{scale:2,mode:"fanIn",distribution:"normal",seed:null==t?null:t.seed})||this}return qm(t,e),t.prototype.getClassName=function(){return uA.className},t}(uA);pA.className="HeNormal",Zb(pA);var hA=function(e){function t(t){return e.call(this,{scale:2,mode:"fanIn",distribution:"uniform",seed:null==t?null:t.seed})||this}return qm(t,e),t.prototype.getClassName=function(){return uA.className},t}(uA);hA.className="HeUniform",Zb(hA);var fA=function(e){function t(t){return e.call(this,{scale:1,mode:"fanIn",distribution:"normal",seed:null==t?null:t.seed})||this}return qm(t,e),t.prototype.getClassName=function(){return uA.className},t}(uA);fA.className="LeCunNormal",Zb(fA);var dA=function(e){function t(t){return e.call(this,{scale:1,mode:"fanIn",distribution:"uniform",seed:null==t?null:t.seed})||this}return qm(t,e),t.prototype.getClassName=function(){return uA.className},t}(uA);dA.className="LeCunNormal",Zb(dA);var mA=function(e){function t(t){var n;if((n=e.call(this)||this).DEFAULT_GAIN=1,n.gain=null==t.gain?n.DEFAULT_GAIN:t.gain,n.seed=t.seed,null!=n.seed)throw new VR("Random seed is not implemented for Orthogonal Initializer yet.");return n}qm(t,e);var n=t.prototype;return n.apply=function(e,t){var n=this;return sx((function(){if(e.length<2)throw new VR("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn("Orthogonal initializer is being called on a matrix with more than 2000 ("+e[0]*e[1]+") elements: Slowness may result.");var t=jE(e[0]>
17e[1]?[e[1],e[0]]:e,0,1,"float32"),r=VI.gramSchmidt(t);return e[0]>e[1]&&(r=r.transpose()),vx(n.gain,r)}))},n.getConfig=function(){return{gain:this.gain,seed:this.seed}},t}(eA);mA.className="Orthogonal",Zb(mA);var vA={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function gA(e,t){return void 0===t&&(t={}),QR(e,Jb.getMap().classNameMap,t,"initializer")}function yA(e){return ZR(e)}function bA(e){if("string"==typeof e){var t=e in vA?vA[e]:e;if("GlorotNormal"===t)return new cA;if("GlorotUniform"===t)return new lA;if("HeNormal"===t)return new pA;if("HeUniform"===t)return new hA;if("LeCunNormal"===t)return new fA;if("LeCunUniform"===t)return new dA;var n={};return n.className=t,n.config={},gA(n)}return e instanceof eA?e:gA(e)}var xA={__proto__:null,zeros:function(){return new tA},ones:function(){return new nA},constant:function(e){return new rA(e)},randomUniform:function(e){return new aA(e)},randomNormal:function(e){return new iA(e)},truncatedNormal:function(e){return new oA(e)},identity:function(e){return new sA(e)},varianceScaling:function(e){return new uA(e)},glorotUniform:function(e){return new lA(e)},glorotNormal:function(e){return new cA(e)},heNormal:function(e){return new pA(e)},heUniform:function(e){return new hA(e)},leCunNormal:function(e){return new fA(e)},leCunUniform:function(e){return new dA(e)},orthogonal:function(e){return new mA(e)}},wA=0;function kA(){return wA++}var SA={};function NA(e){return void 0===e&&(e=""),e in SA||(SA[e]=0),SA[e]+=1,e+SA[e].toString()}function IA(e){return Array.isArray(e)&&Array.isArray(e[0])}function CA(e){return 0===e.length?[]:Array.isArray(e[0])?e:[e]}function RA(e){var t;if(Array.isArray(e)){if(1!==e.length)throw new WR("Expected Tensor length to be 1; got "+e.length);t=e[0]}else t=e;return t}function EA(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(1===e.length)return(e=e)[0];throw new WR("Expected exactly 1 Shape; got "+e.length)}return e}function AA(e){for(var t,n=0,r=tv(e);!(t=r()).done;){var a=t.value;0===a.shape.length?n+=1:n+=a.shape.reduce((function(e,t){return e*t}))}return n}var TA=function(){function e(e,t,n,r,a){void 0===t&&(t="float32"),void 0===n&&(n="Variable"),void 0===r&&(r=!0),void 0===a&&(a=null),this.dtype=null==t?"float32":t,this.shape=e.shape,this.id=kA(),n=null==n?"Variable":n,this.originalName=RE(n),this.name=EE(this.originalName),this.trainable_=r,this.constraint=a,this.val=uN(e,this.trainable_,this.name,this.dtype)}var t=e.prototype;return t.read=function(){return this.assertNotDisposed(),this.val},t.write=function(e){return this.assertNotDisposed(),function(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}(this.val,e),this.val.id!==e.id&&(this.val.assign(e),null!=this.constraint&&this.val.assign(this.constraint.apply(this.val))),this},t.dispose=function(){this.assertNotDisposed(),this.val.dispose()},t.assertNotDisposed=function(){if(this.val.isDisposed)throw new Error("LayersVariable "+this.name+" is already disposed.")},Hm(e,[{key:"trainable",get:function(){return this.trainable_},set:function(e){this.trainable_=e,this.val.trainable=e}}]),e}();function DA(e){return e.map((function(e){return e.read()}))}function _A(e){e.forEach((function(e){e[0].write(e[1])}))}var FA=function(e){this.dtype=e.dtype,this.shape=e.shape,null!=e.shape?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}},OA=function(e,t,n,r,a,i,o){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=r,this.callArgs=a,this.outputTensorIndex=o,this.id=kA(),null!=i&&(this.originalName=RE(i),this.name=EE(this.originalName)),this.rank=t.length},MA=0,LA=function(){function e(e,t){this.callArgs=t,this.id=MA++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(var n,r=tv(e.inboundLayers);!(n=r()).done;){var a=n.value;null!=a&&a.outboundNodes.push(this)}e.outboundLayer.inboundNodes.push(this)}return e.prototype.getConfig=function(){for(var e,t=[],n=tv(this.inboundLayers);!(e=n()).done;){var r=e.value;null!=r?t.push(r.name):t.push(null)}return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inbou
17ndLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}},e}(),zA=0,BA=function(e){function t(t){var n;void 0===t&&(t={}),(n=e.call(this)||this)._callHook=null,n._addedWeightNames=[],n._stateful=!1,n.id=zA++,n.activityRegularizer=null,n.inputSpec=null,n.supportsMasking=!1,n._trainableWeights=[],n._nonTrainableWeights=[],n._losses=[],n._updates=[],n._built=!1,n.inboundNodes=[],n.outboundNodes=[];var r=t.name;if(!r){var a=n.getClassName();r=XR(a)+"_"+NA(a)}if(n.name=r,n.trainable_=null==t.trainable||t.trainable,null!=t.inputShape||null!=t.batchInputShape){var i;if(null!=t.batchInputShape)i=t.batchInputShape;else if(null!=t.inputShape){var o=null;null!=t.batchSize&&(o=t.batchSize),i=[o].concat(t.inputShape)}n.batchInputShape=i;var s=t.dtype;null==s&&(s=t.inputDType),null==s&&(s="float32"),n.dtype=s}return null!=t.weights?n.initialWeights=t.weights:n.initialWeights=null,n._refCount=null,n.fastWeightInitDuringBuild=!1,n}qm(t,e),t.nodeKey=function(e,t){return e.name+"_ib-"+t.toString()};var n=t.prototype;return n.getNodeAtIndex=function(e,t){if(0===this.inboundNodes.length)throw new PR("The layer has never been called and thus has no defined "+t+".");if(this.inboundNodes.length<=e)throw new WR("Asked to get "+t+" at node "+e+", but the layer has only "+this.inboundNodes.length+" inbound nodes.");return this.inboundNodes[e]},n.getInputAt=function(e){return qR(this.getNodeAtIndex(e,"input").inputTensors)},n.getOutputAt=function(e){return qR(this.getNodeAtIndex(e,"output").outputTensors)},n.calculateLosses=function(){return this.losses.map((function(e){return e()}))},n.resetStates=function(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")},n.assertInputCompatibility=function(e){if(e=KR(e),null!=this.inputSpec&&0!==this.inputSpec.length){var t=KR(this.inputSpec);if(e.length!==t.length)throw new WR("Layer "+this.name+" expects "+t.length+" inputs, but it received "+e.length+" input tensors. Input received: "+e);for(var n=0;n<e.length;n++){var r=e[n],a=t[n];if(null!=a){var i=r.rank;if(null!=a.ndim&&i!==a.ndim)throw new WR("Input "+n+" is incompatible with layer "+this.name+": expected ndim="+a.ndim+", found ndim="+i);if(null!=a.maxNDim&&i>a.maxNDim)throw new WR("Input "+n+" is incompatible with layer "+this.name+": expected max_ndim="+a.maxNDim+", found ndim="+i);if(null!=a.minNDim&&i<a.minNDim)throw new WR("Input "+n+" is incompatible with layer "+this.name+": expected min_ndim="+a.minNDim+", found ndim="+i+".");if(null!=a.dtype&&r.dtype!==a.dtype)throw new WR("Input "+n+" is incompatible with layer "+this.name+" : expected dtype="+a.dtype+", found dtype="+r.dtype+".");if(a.axes){var o=r.shape;for(var s in a.axes){var u=Number(s),l=a.axes[s],c=u>=0?o[u]:o[o.length+u];if(null!=l&&-1===[l,null].indexOf(c))throw new WR("Input "+n+" is incompatible with layer "+this.name+": expected axis "+u+" of input shape to have value "+l+" but got shape "+o+".")}}if(null!=a.shape)for(var p=0;p<a.shape.length;++p){var h=a.shape[p],f=r.shape[p];if(null!=h&&null!=f&&h!==f)throw new WR("Input "+n+" is incompatible with layer "+this.name+": expected shape="+a.shape+", found shape="+r.shape+".")}}}}},n.call=function(e,t){return e},n.invokeCallHook=function(e,t){null!=this._callHook&&this._callHook(e,t)},n.setCallHook=function(e){this._callHook=e},n.clearCallHook=function(){this._callHook=null},n.apply=function(e,t){var n=this;t=t||{},this.assertNotDisposed();for(var r,a=KR(e),i=!0,o=tv(a);!(r=o()).done;){if(!(r.value instanceof OA)){i=!1;break}}for(var s,u=!0,l=tv(a);!(s=l()).done;){if(s.value instanceof OA){u=!1;break}}if(i===u)throw new WR("Arguments to apply() must be all SymbolicTensors or all Tensors");return CE(this.name,(function(){if(!n.built){n.assertInputCompatibility(e);for(var r,i=[],o=tv(KR(e));!(r=o()).done;){var s=r.value;i.push(s.shape)}n.build(qR(i)),n.built=!0,n.initialWeights&&n.setWeights(n.initialWeights),null===n._refCount&&u&&(n._refCount=1)}if(n.assertInputCompatibility(e),u){for(var l,c=n.call(e,t),p=[],h=tv(KR(c));!(l=h()).done;){var f=l.value;-1!==a.indexOf(f)&&(f=f.clone()),p.push(f)}if(c=qR(p),null!=n.activityRegularizer)throw new VR("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return c}var d,m=function(e){e=KR(e);for(var t,n=[],r=tv(e);!(t=r()).done;){var a=t.value;n.push(a.shape)}return qR(n)}(e),v=n.computeOutputShape(m);
17if(n.warnOnIncompatibleInputShape(Array.isArray(e)?m[0]:m),d=null!=v&&v.length>0&&Array.isArray(v[0])?v.map((function(r,a){return new OA("float32",r,n,KR(e),t,n.name,a)})):new OA("float32",v,n,KR(e),t,n.name),n.addInboundNode(e,d,null,null,m,v,t),n._refCount++,null!=n.activityRegularizer)throw new VR("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return d}))},n.warnOnIncompatibleInputShape=function(e){if(null!=this.batchInputShape)if(e.length!==this.batchInputShape.length)console.warn("The rank of the input tensor provided (shape: "+JSON.stringify(e)+") does not match that of the batchInputShape ("+JSON.stringify(this.batchInputShape)+") of the layer "+this.name);else{var t=!1;this.batchInputShape.forEach((function(n,r){null!=n&&null!=e[r]&&e[r]!==n&&(t=!0)})),t&&console.warn("The shape of the input tensor ("+JSON.stringify(e)+") does not match the expectation of layer "+this.name+": "+JSON.stringify(this.batchInputShape))}},n.countParams=function(){if(!this.built)throw new PR("You tried to call countParams() on "+this.name+", but the layer is not built yet. Build it first by calling build(batchInputShape).");return AA(this.weights)},n.build=function(e){this.built=!0},n.getWeights=function(e){return void 0===e&&(e=!1),DA(e?this.trainableWeights:this.weights)},n.setWeights=function(e){var t=this;sx((function(){var n=t.weights;if(n.length!==e.length)throw new WR('You called setWeights(weights) on layer "'+t.name+'" with a weight list of length '+e.length+", but the layer was expecting "+n.length+" weights. Provided weights: "+e+"...");if(0!==n.length){for(var r=[],a=DA(n),i=0;i<a.length;++i){var o=a[i],s=n[i],u=e[i];if(!Fv(o.shape,u.shape))throw new WR("Layer weight shape "+o.shape+" not compatible with provided weight shape "+u.shape);r.push([s,u])}_A(r)}}))},n.addWeight=function(e,t,n,r,a,i,o){if(-1!==this._addedWeightNames.indexOf(e))throw new WR("Duplicate weight name "+e+" for layer "+this.name);this._addedWeightNames.push(e),null==n&&(n="float32"),this.fastWeightInitDuringBuild&&(r=bA("zeros"));var s=r.apply(t,n),u=new TA(s,n,e,i,o);return s.dispose(),null!=a&&this.addLoss((function(){return a.apply(u.read())})),null==i&&(i=!0),i?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u},n.setFastWeightInitDuringBuild=function(e){this.fastWeightInitDuringBuild=e},n.addLoss=function(e){var t;null==e||Array.isArray(e)&&0===e.length||(e=KR(e),void 0!==this._losses&&null!==this._losses&&(t=this.losses).push.apply(t,e))},n.computeOutputShape=function(e){return e},n.computeMask=function(e,t){var n=this;if(!this.supportsMasking){if(null!=t){if(!Array.isArray(t))throw new TypeError("Layer "+this.name+" does not support masking, but was passed an inputMask.");t.forEach((function(e){if(null!=e)throw new TypeError("Layer "+n.name+" does not support masking, but was passed an inputMask.")}))}return null}return t},n.addInboundNode=function(e,t,n,r,a,i,o){void 0===o&&(o=null);var s=KR(e);t=KR(t),n=KR(n),r=KR(r),a=CA(a),i=CA(i);for(var u,l=[],c=[],p=[],h=tv(s);!(u=h()).done;){var f=u.value;l.push(f.sourceLayer),c.push(f.nodeIndex),p.push(f.tensorIndex)}new LA({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:p,inputTensors:s,outputTensors:t,inputMasks:n,outputMasks:r,inputShapes:a,outputShapes:i},o);for(var d=0;d<t.length;d++)t[d].sourceLayer=this,t[d].nodeIndex=this.inboundNodes.length-1,t[d].tensorIndex=d},n.getConfig=function(){var e={name:this.name,trainable:this.trainable};return null!=this.batchInputShape&&(e.batchInputShape=this.batchInputShape),null!=this.dtype&&(e.dtype=this.dtype),e},n.disposeWeights=function(){return this.weights.forEach((function(e){return e.dispose()})),this.weights.length},n.assertNotDisposed=function(){if(0===this._refCount)throw new Error("Layer '"+this.name+"' is already disposed.")},n.dispose=function(){if(!this.built)throw new Error("Cannot dispose Layer "+this.name+" because it has not been built yet.");if(null===this._refCount)throw new Error("Cannot dispose Layer "+this.name+" because it has not been used yet.");this.assertNotDisposed();var e=0;return 0==--this._refCount&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}},Hm(t,[{key:"input",get:function(){if(this.inboundNodes.length>1)throw new BR("Layer "+this.name+' has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use `getInputAt(nodeIndex)` instead.');
17if(0===this.inboundNodes.length)throw new BR("Layer "+this.name+" is not connected, no input to return.");return qR(this.getNodeAtIndex(0,"input").inputTensors)}},{key:"output",get:function(){if(0===this.inboundNodes.length)throw new BR("Layer "+this.name+" has no inbound nodes.");if(this.inboundNodes.length>1)throw new BR("Layer "+this.name+' has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use `getOutputAt(nodeIndex)` instead.');return qR(this.getNodeAtIndex(0,"output").outputTensors)}},{key:"losses",get:function(){return this._losses}},{key:"updates",get:function(){return this._updates}},{key:"built",get:function(){return this._built},set:function(e){this._built=e}},{key:"trainable",get:function(){return this.trainable_},set:function(e){this._trainableWeights.forEach((function(t){return t.trainable=e})),this.trainable_=e}},{key:"trainableWeights",get:function(){return this.trainable_?this._trainableWeights.filter((function(e){return e.trainable})):[]},set:function(e){this._trainableWeights=e}},{key:"nonTrainableWeights",get:function(){return this.trainable?this._trainableWeights.filter((function(e){return!e.trainable})).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)},set:function(e){this._nonTrainableWeights=e}},{key:"weights",get:function(){return this.trainableWeights.concat(this.nonTrainableWeights)}},{key:"stateful",get:function(){return this._stateful}},{key:"outputShape",get:function(){if(null==this.inboundNodes||0===this.inboundNodes.length)throw new BR("The layer "+this.name+" has never been called and thus has no defined output shape.");for(var e,t=[],n=tv(this.inboundNodes);!(e=n()).done;){var r=e.value,a=JSON.stringify(r.outputShapes);-1===t.indexOf(a)&&t.push(a)}if(1===t.length){var i=this.inboundNodes[0].outputShapes;return Array.isArray(i)&&Array.isArray(i[0])&&1===i.length?i[0]:i}throw new BR("The layer "+this.name+' has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.')}}]),t}(Yb);var PA,WA=function(e){function t(t){var n;if(n=e.call(this,{dtype:t.dtype,name:null!=t.name?t.name:NA("input").toString()})||this,null==t.batchSize&&(t.batchSize=null),null==t.sparse&&(t.sparse=!1),n.trainable=!1,n.built=!0,n.sparse=t.sparse,null!=t.inputShape&&null!=t.batchInputShape)throw new WR("Only provide the inputShape OR batchInputShape argument to inputLayer, not both at the same time.");var r=t.batchInputShape;if(null==r){if(null==t.inputShape)throw new WR("An InputLayer should be passed either a `batchInputShape` or an `inputShape`.");r=[t.batchSize].concat(t.inputShape)}else if(null!=t.batchSize)throw new WR("Cannot specify batchSize if batchInputShape is specified when creating an InputLayer.");var a=t.dtype||"float32";n.batchInputShape=r,n.dtype=a,n.inputSpec=[{shape:r}];var i=new OA(n.dtype,n.batchInputShape,Qm(n),[],{},n.name);return i.nodeIndex=0,i.tensorIndex=0,new LA({outboundLayer:Qm(n),inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:[i],outputTensors:[i],inputMasks:[null],outputMasks:[null],inputShapes:[r],outputShapes:[r]}),n}qm(t,e);var n=t.prototype;return n.apply=function(e,t){throw new WR("Cannot pass any input to an InputLayer's apply() method. InputLayer name: "+this.name)},n.dispose=function(){return{refCountAfterDispose:this._refCount,numDisposedVariables:0}},n.getConfig=function(){return{batchInputShape:this.batchInputShape,dtype:this.dtype,sparse:this.sparse,name:this.name}},t}(BA);function VA(e){if(null==e.batchShape&&null==e.shape)throw new Error("Please provide to Input either a `shape` or a `batchShape` argument. Note that `shape` does not include the batch dimension.");if(null!=e.batchShape&&null!=e.shape)throw new WR("Please provide either a `shape` or `batchShape` argument to Input, but not both.");var t=e.batchShape;null!=e.shape&&null==t&&(t=[null].concat(e.shape));var n=e.dtype;return null==n&&(n="float32"),new WA({batchInputShape:t,name:e.name,dtype:n,sparse:e.sparse}).inboundNodes[0].outputTensors[0]}function UA(e){return GA.apply(this,arguments)}function GA(){return(GA=Gm(regeneratorRuntime.mark((function e(t){var n,r,a,i,o,s,u,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!=t){e.next=2;break}return e.abrupt("return");case 2:for(i in n=[],r=[],a=[],t)"number"!=typeof(o=t[i])&&(s=o,n.push(s.data()),r.push(i),a.push(s));if(!(n.length>0)){e.next=12;break}return e.next=9,Promise.all(n);case 9:for(u=e.sent,l=0;l<u.length;++l)t[r[l]]=u[l][0];ux(a);case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function jA(e){if(null!=e)for(var t in e){var n=e[t];"number"!=typeof n&&n.dispose()}}WA.className="InputLayer",Zb(WA),function(e){e[e.SILENT=0]="SILENT",e[e.VERBOSE=1]="VERBOSE"}(PA||(PA={}));var HA=function(){function e(){this.validationData=null}var t=e.prototype;return t.setParams=function(e){this.params=e},t.onEpochBegin=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),t.onEpochEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),t.onBatchBegin=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),t.onBatchEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),t.onTrainBegin=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),t.onTrainEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),t.setModel=function(e){},e}(),qA=function(){function e(e,t){void 0===t&&(t=10),null==e&&(e=[]),this.callbacks=e,this.queueLength=t}var t=e.prototype;return t.append=function(e){this.callbacks.push(e)},t.setParams=function(e){for(var t,n=tv(this.callbacks);!(t=n()).done;){t.value.setParams(e)}},t.setModel=function(e){for(var t,n=tv(this.callbacks);!(t=n()).done;){t.value.setModel(e)}},t.onEpochBegin=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:null==n&&(n={}),r=tv(this.callbacks);case 2:if((a=r()).done){e.next=8;break}return i=a.value,e.next=6,i.onEpochBegin(t,n);case 6:e.next=2;break;case 8:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.onEpochEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:null==n&&(n={}),r=tv(this.callbacks);case 2:if((a=r()).done){e.next=8;break}
17return i=a.value,e.next=6,i.onEpochEnd(t,n);case 6:e.next=2;break;case 8:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.onBatchBegin=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:null==n&&(n={}),r=tv(this.callbacks);case 2:if((a=r()).done){e.next=8;break}return i=a.value,e.next=6,i.onBatchBegin(t,n);case 6:e.next=2;break;case 8:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.onBatchEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:null==n&&(n={}),r=tv(this.callbacks);case 2:if((a=r()).done){e.next=8;break}return i=a.value,e.next=6,i.onBatchEnd(t,n);case 6:e.next=2;break;case 8:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.onTrainBegin=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:null==t&&(t={}),n=tv(this.callbacks);case 2:if((r=n()).done){e.next=8;break}return a=r.value,e.next=6,a.onTrainBegin(t);case 6:e.next=2;break;case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.onTrainEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:null==t&&(t={}),n=tv(this.callbacks);case 2:if((r=n()).done){e.next=8;break}return a=r.value,e.next=6,a.onTrainEnd(t);case 6:e.next=2;break;case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),e}(),KA=function(e){function t(){return e.call(this)||this}qm(t,e);var n=t.prototype;return n.onEpochBegin=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.seen=0,this.totals={};case 2:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.onBatchEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i,o=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(i in null==n&&(n={}),r=null==n.size?0:n.size,this.seen+=r,a=function(e){var t=n[e];if("number"==typeof t)o.totals.hasOwnProperty(e)||(o.totals[e]=0),o.totals[e]=o.totals[e]+t*r;else{var a;e in o.totals?a=o.totals[e]:o.totals[e]=0;var i=sx((function(){return fx(o.totals[e],vx(t,r))}));o.totals[e]=i,null!=a&&a.dispose()}},n)a(i);case 5:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.onEpochEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i,o=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null==n){e.next=9;break}r=function(){var e=i.value;if(null==o.totals[e])return"continue";"number"==typeof o.totals[e]?n[e]=o.totals[e]/o.seen:sx((function(){var t=vx(mx(1,o.seen),o.totals[e]);n[e]=t,o.totals[e].dispose(),lx(n[e])}))},a=tv(this.params.metrics);case 3:if((i=a()).done){e.next=9;break}if("continue"!==r()){e.next=7;break}return e.abrupt("continue",7);case 7:e.next=3;break;case 9:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t}(HA),XA=function(e){function t(){return e.apply(this,arguments)||this}qm(t,e);var n=t.prototype;return n.onTrainBegin=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.epoch=[],this.history={};case 2:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.onEpochEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(r in null==n&&(n={}),this.epoch.push(t),n)null==this.history[r]&&(this.history[r]=[]),this.history[r].push(n[r]);case 3:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.syncData=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r,a,i,o,s,u,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(a in t=[],n=[],r=[],this.history)for(i=this.history[a],o=0;o<i.length;++o)"number"!=typeof i[o]&&(s=i[o],t.push(s.data()),n.push(a),r.push(o));return e.next=6,Promise.all(t);case 6:for(u=e.sent,l=0;l<u.length;++l)this.history[n[l]][r[l]].dispose(),this.history[n[l]][r[l]]=u[l][0];case 8:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(HA),YA=function(e){function t(t,n){var r;if((r=e.call(this)||this).currentEpoch=0,r.yieldEvery=n||"auto","auto"===r.yieldEvery&&(r.yieldEvery=125),"never"===r.yieldEvery&&null!=t.onYield)throw new Error("yieldEvery is `never` but you provided an `onYield` callback. Either change `yieldEvery` or remove the callback");return Zv(r.yieldEvery)&&(r.maybeWait=function(e,t){var n,r=ug();return function(){var a=ug();return a-r<t?n:(r=a,n=e.apply(void 0,arguments))}}(r.maybeWait.bind(Qm(r)),r.yieldEvery)),r.trainBegin=t.onTrainBegin,r.trainEnd=t.onTrainEnd,r.epochBegin=t.onEpochBegin,r.epochEnd=t.onEpochEnd,r.batchBegin=t.onBatchBegin,r.batchEnd=t.onBatchEnd,r.yield=t.onYield,r}qm(t,e);var n=t.prototype;return n.maybeWait=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n,r){var a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=[],null==this.yield){e.next=5;break}return e.next=4,UA(r);case 4:a.push(this.yield(t,n,r));case 5:return a.push(eC()),e.next=8,Promise.all(a);case 8:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),n.onEpochBegin=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.currentEpoch=t,null==this.epochBegin){e.next=6;break}return e.next=4,UA(n);case 4:return e.next=6,this.epochBegin(t,n);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.onEpochEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=[],null==this.epochEnd){e.next=5;break}return e.next=4,UA(n);
17case 4:r.push(this.epochEnd(t,n));case 5:return"epoch"===this.yieldEvery&&r.push(eC()),e.next=8,Promise.all(r);case 8:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.onBatchBegin=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null==this.batchBegin){e.next=5;break}return e.next=3,UA(n);case 3:return e.next=5,this.batchBegin(t,n);case 5:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.onBatchEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=[],null==this.batchEnd){e.next=5;break}return e.next=4,UA(n);case 4:r.push(this.batchEnd(t,n));case 5:return"batch"===this.yieldEvery?r.push(eC()):Zv(this.yieldEvery)&&r.push(this.maybeWait(this.currentEpoch,t,n)),e.next=8,Promise.all(r);case 8:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.onTrainBegin=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null==this.trainBegin){e.next=5;break}return e.next=3,UA(t);case 3:return e.next=5,this.trainBegin(t);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.onTrainEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null==this.trainEnd){e.next=5;break}return e.next=3,UA(t);case 3:return e.next=5,this.trainEnd(t);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t}(HA);function JA(e,t){return null==e&&(e={}),e instanceof HA?[e]:Array.isArray(e)&&e[0]instanceof HA?e:KR(e).map((function(e){return new YA(e,t)}))}var ZA=function(){function e(){}return e.registerCallbackConstructor=function(t,n){Ev(t>=0&&Number.isInteger(t),(function(){return"Verbosity level is expected to be an integer >= 0, but got "+t})),e.checkForDuplicate(n),null==e.constructors[t]&&(e.constructors[t]=[]),e.constructors[t].push(n)},e.checkForDuplicate=function(t){for(var n in e.constructors){e.constructors[+n].forEach((function(e){if(e===t)throw new WR("Duplicate callback constructor.")}))}},e.clear=function(){e.constructors={}},e.createCallbacks=function(t){var n=[];for(var r in e.constructors){var a=+r;t>=a&&n.push.apply(n,e.constructors[a])}return n.map((function(e){return new e}))},e}();function QA(e,t,n,r,a,i,o,s,u){var l=new XA,c=[new KA].concat(ZA.createCallbacks(t));null!=e&&c.push.apply(c,e),c.push(l);var p=new qA(c);return p.setParams({epochs:n,initialEpoch:r,samples:a,steps:i,batchSize:o,verbose:t,doValidation:s,metrics:u}),{callbackList:p,history:l}}function $A(e,t,n){return void 0===t&&(t={}),void 0===n&&(n=!1),QR(e,Jb.getMap().classNameMap,t,"layer",n)}function eT(e,t){return sx((function(){"float32"!==e.dtype&&(e=e.asType("float32"));var n=Sk(KE(e),t,!0),r=Xw(n.shape,zR()),a=XS(ok(n,r));return mx(e,a)}))}function tT(e,t){return sx((function(){return Mk(KE(kk(t,e)),-1)}))}function nT(e,t){return sx((function(){return Mk(gx(kk(t,e)),-1)}))}function rT(e,t){return sx((function(){var n=kk(e,t),r=dw(gx(e),zR(),Number.MAX_VALUE),a=gx(mx(n,r));return vx(100,Mk(a,-1))}))}function aT(e,t){return sx((function(){var n=dw(t,zR(),Number.MAX_VALUE),r=fk(fx(1,n)),a=dw(e,zR(),Number.MAX_VALUE),i=fk(fx(1,a));return Mk(KE(kk(r,i)),-1)}))}function iT(e,t,n){return void 0===n&&(n=!1),sx((function(){if(n)t=VS(t);else{var r=Sk(t,t.shape.length-1,!0);t=mx(t,r)}return t=dw(t,zR(),1-zR()),yk(Sk(vx(e.toFloat(),fk(t)),t.shape.length-1))}))}function oT(e,t,n){return void 0===n&&(n=!1),sx((function(){var r,a,i=Yw((r=e,a=[DE(r.shape)],r.reshape(a))).toInt(),o=(t=dw(t,zR(),1-zR())).shape;return iT(bb(i,o[o.length-1]).reshape(o),t,n)}))}function sT(e,t){return sx((function(){var n;return n=dw(t,zR(),1-zR()),n=fk(mx(n,kk(1,n))),Mk(function(e,t){if(!Fv(e.shape,t.shape))throw new WR("logits and labels must have the same shape, but got shapes "+JSON.stringify(e.shape)+" and "+JSON.stringify(t.shape));return sx((function(){var n=t.relu(),r=t.abs().neg();return n.sub(t.mul(e)).add(r.exp().log1p())}))}(e,n),-1)}))}function uT(e,t){return sx((function(){var n=dw(e,zR(),1),r=dw(t,zR(),1);return Sk(vx(e,fk(mx(n,r))),-1)}))}function lT(e,t){return sx((function(){var n=eT(e,-1),r=eT(t,-1),a=vx(n,r);return yk(Sk(a,-1))}))}ZA.constructors={};var cT={meanSquaredError:tT,meanAbsoluteError:nT,meanAbsolutePercentageError:rT,meanSquaredLogarithmicError:aT,squaredHinge:function(e,t){return sx((function(){var n=ok(0,kk(1,vx(e,t)));return Mk(KE(n),-1)}))},hinge:function(e,t){return sx((function(){var n=ok(0,kk(1,vx(e,t)));return Mk(n,-1)}))},categoricalHinge:function(e,t){return sx((function(){var n=Sk(vx(e,t),-1),r=wk(vx(kk(1,e),t),-1);return ok(0,fx(1,kk(r,n)))}))},logcosh:function(e,t){return sx((function(){var n=Math.log(2),r=kk(t,e),a=kk(fx(r,bk(vx(-2,r))),n);return Mk(a,-1)}))},categoricalCrossentropy:iT,sparseCategoricalCrossentropy:oT,binaryCrossentropy:sT,kullbackLeiblerDivergence:uT,poisson:function(e,t){return sx((function(){var n=fk(fx(zR(),t));return Mk(kk(t,vx(e,n)),-1)}))},cosineProximity:lT};function pT(e){if("string"==typeof e){if(e in cT)return cT[e];var t="Unknown loss "+e;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t="Unknown loss "+e+'. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy'),new WR(t)}return e}function hT(e,t){return sx((function(){var n=vx(.5,Hk(t)),r=LE(ek(t,n),e.dtype);return Mk(Lw(e,r),-1)}))}function fT(e,t){return sx((function(){return LE(Lw(Dx(e,-1),Dx(t,-1)),"float32")}))}function dT(e,t){return sx((function(){return Ck(e.equal(1),t.equal(1)).sum().cast("float32")}))}function mT(e,t){return sx((function(){var n=dT(e,t),r=function(e,t){return sx((function(){return Ck(e.equal(0),t.equal(1)).sum().cast("float32")}))}(e,t),a=n.add(r);return zw(ek(a,0),n.div(a),0).cast("float32")}))}function vT(e,t){return sx((function(){var n=dT(e,t),r=function(e,t){return sx((function(){return Ck(e.equal(1),t.equal(0)).sum().cast("float32")}))}(e,t),a=n.add(r);return zw(ek(a,0),n.div(a),0).cast("float32")}))}function gT(e,t){return sT(e,t)}function yT(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1]
17)),(t=t.argMax(-1)).dtype!==e.dtype&&(t=t.asType(e.dtype)),Lw(e,t).asType("float32")}var bT=iT,xT=oT,wT={binaryAccuracy:hT,categoricalAccuracy:fT,precision:mT,categoricalCrossentropy:bT,sparseCategoricalCrossentropy:xT,mse:tT,MSE:tT,mae:nT,MAE:nT,mape:rT,MAPE:rT,cosine:lT};function kT(e){if("string"==typeof e&&e in wT)return wT[e];if("string"!=typeof e&&null!=e)return e;throw new WR("Unknown metric "+e)}function ST(e){if(jR(null!==e,"Unknown LossOrMetricFn "+e),"string"==typeof e)return e;for(var t,n=0,r=Object.keys(cT);n<r.length;n++){var a=r[n];if(cT[a]===e){t=a;break}}if(void 0!==t)return t;for(var i=0,o=Object.keys(wT);i<o.length;i++){var s=o[i];if(wT[s]===e){t=s;break}}return void 0!==t?t:e.name}function NT(e,t,n){if(void 0===n&&(n=!1),null==e||"object"!=typeof e||Object.getPrototypeOf(e)!==Object.prototype||!function e(t){if(null===t)return!0;if("object"==typeof t){if(Object.getPrototypeOf(t)===Object.prototype){for(var n=Object.keys(t),r=0,a=n;r<a.length;r++){var i=a[r];if("string"!=typeof i)return!1;if(!e(t[i]))return!1}return!0}if(Array.isArray(t)){for(var o,s=tv(t);!(o=s()).done;){var u=o.value;if(!e(u))return!1}return!0}return!1}var l=typeof t;return"string"===l||"number"===l||"boolean"===l}(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){var r=JSON.stringify(e);r.length>1048576&&console.warn('User-defined metadata of model "'+t+'" is too large in size (length='+r.length+" when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= 1048576.")}}function IT(e,t,n,r){void 0===r&&(r=console.log);var a,i=function(e){var t=!0,n=[],r=[];for(var a in e.nodesByDepth)n.push(e.nodesByDepth[a]);for(var i=0,o=n;i<o.length;i++){var s=o[i];if(s.length>1||1===s.length&&s[0].inboundLayers.length>1){t=!1;break}r.push.apply(r,s)}if(t)for(var u,l=tv(e.layers);!(u=l()).done;){for(var c,p=u.value,h=!1,f=tv(p.inboundNodes);!(c=f()).done;){var d=c.value;if(-1!==r.indexOf(d)){if(h){t=!1;break}h=!0}}if(!t)break}return t}(e),o=["Layer (type)","Output shape","Param #"];if(i?(t=t||65,n=n||[.45,.85,1]):(t=t||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map((function(e){return Math.floor(t*e)}))),!i)for(var s in o.push("Receives inputs"),a=[],e.nodesByDepth){var u;(u=a).push.apply(u,e.nodesByDepth[s])}r("_".repeat(t)),CT(o,n,r),r("=".repeat(t));for(var l=e.layers,c=0;c<l.length;++c)i?RT(l[c],n,r):ET(l[c],n,a,r),r((c===l.length-1?"=":"_").repeat(t));e.checkTrainableWeightsConsistency();var p=function(e){var t;t=null!=e.collectedTrainableWeights?AA(e.collectedTrainableWeights):AA(e.trainableWeights);return t}(e),h=AA(e.nonTrainableWeights);r("Total params: "+(p+h)),r("Trainable params: "+p),r("Non-trainable params: "+h),r("_".repeat(t))}function CT(e,t,n){void 0===n&&(n=console.log);for(var r="",a=0;a<e.length;++a)a>0&&(r=r.slice(0,r.length-1)+" "),r=(r+=e[a]).slice(0,t[a]),r+=" ".repeat(t[a]-r.length);n(r)}function RT(e,t,n){var r;try{r=JSON.stringify(e.outputShape)}catch(e){r="multiple"}CT([e.name+" ("+e.getClassName()+")",r,e.countParams().toString()],t,n)}function ET(e,t,n,r){var a;try{a=JSON.stringify(e.outputShape)}catch(e){a="multiple"}for(var i,o=[],s=tv(e.inboundNodes);!(i=s()).done;){var u=i.value;if(!(null!=n&&n.length>0&&-1===n.indexOf(u)))for(var l=0;l<u.inboundLayers.length;++l){var c=u.inboundLayers[l].name,p=u.nodeIndices[l],h=u.tensorIndices[l];o.push(c+"["+p+"]["+h+"]")}}var f=e.name,d=e.getClassName(),m=0===o.length?"":o[0];CT([f+" ("+d+")",a,e.countParams().toString(),m],t,r);for(var v=1;v<o.length;++v)CT(["","","",o[v]],t,r)}function AT(e,t,n){return("inboundNodes"===e||"outputLayers"===e||"inputLayers"===e)&&0===t&&"string"==typeof n}function TT(e,t){if(null===e)return null;if("string"==typeof e)return YR(e);if("number"==typeof e||"boolean"==typeof e)return e;if(e instanceof Array){for(var n=[],r=e.length,a=0;a<r;++a){var i=e[a];AT(t,a,i)?n.push(i):n.push(TT(i,t))}return n}for(var o={},s=0,u=Object.keys(e);s<u.length;s++){var l=u[s],c=e[l];if("name"===l&&"string"==typeof c)o[l]=c;else{var p=YR(l);o[p]=TT(c,p)}}return o}var DT=function(){function e(t){if(this.id2Value={},this.id2Mask={},this.name2Id={},t instanceof e)for(var n in t.id2Value)this.id2Value[n]=t.id2Value[n],n in t.id2Mask&&(this.id2Mask[n]=t.id2Mask[n]);else{if(null==t)return;for(var r,a=tv(t);!(r=a()).done;){var i=r.value;this.add(i.key,i.value)}}}var t=e.prototype;return t.add=function(e,t,n){if(null!=this.id2Value[e.id])throw new WR("Duplicate key: name="+e.name+", id="+e.id);return this.id2Value[e.id]=function(e,t){if(null==e.dtype||e.dtype===t.dtype)return t;try{return Jy(t,e.dtype)}catch(n){throw new WR("The dtype of the feed ("+t.dtype+") can not be cast to the dtype of the key '"+e.name+"' ("+e.dtype+").")}}(e,t),this.name2Id[e.name]=e.id,null!=n&&(this.id2Mask[e.id]=n),this},t.addFeed=function(e){this.add(e.key,e.value)},t.hasKey=function(e){return null!=this.id2Value[e.id]},t.names=function(){return Object.keys(this.name2Id)},t.getValue=function(e){if(e instanceof OA){if(null==this.id2Value[e.id])throw new WR("Nonexistent key: "+e.name);return this.id2Value[e.id]}var t=this.name2Id[e];if(null==t)throw new WR("Feed dict has no SymbolicTensor name: "+e);return this.id2Value[t]},t.getMask=function(e){if(e instanceof OA){if(null==this.id2Value[e.id])throw new WR("Nonexistent key: "+e.name);return this.id2Mask[e.id]}var t=this.name2Id[e];if(null==t)throw new WR("Feed dict has no SymbolicTensor name: "+e);return this.id2Mask[t]}
17,t.disposeMasks=function(){null!=this.id2Mask&&ux(this.id2Mask)},e}(),_T={},FT={};function OT(e,t,n,r){for(var a,i=null!=n&&n.training,o=Array.isArray(e),s=o?e:[e],u=s.map((function(e){return e.name})),l=[],c=t.names(),p=tv(u);!(a=p()).done;){var h=a.value;-1!==c.indexOf(h)?l.push(t.getValue(h)):l.push(null)}null!=r&&(r.maxNumTensors=-1/0,r.minNumTensors=1/0);var f,d,m=u.join(",")+"|"+t.names().join(",");if(null==_T[m]){var v=function(e,t){Ev(null!=e&&e.length>0,(function(){return"Expected at least one fetch, got none"}));var n=[],r={};if(1===e.length){var a=LT(e[0],t);n=a.sorted,r=a.recipientMap}else for(var i,o=new Set,s=tv(e);!(i=s()).done;){for(var u,l=LT(i.value,t),c=l.sorted,p=l.recipientMap,h=tv(c);!(u=h()).done;){var f=u.value;o.has(f.name)||(n.push(f),o.add(f.name))}var d=function(e){null==r[e]&&(r[e]=new Set),p[e].forEach((function(t){return r[e].add(t)}))};for(var m in p)d(m)}return{sorted:n,recipientCounts:MT(r)}}(s,t);f=v.sorted,d=v.recipientCounts,_T[m]=f,FT[m]=d}f=_T[m],d={},i||Object.assign(d,FT[m]);for(var g=new DT(t),y=0;y<f.length;++y){if(null!=r){var b=ox().numTensors;b>r.maxNumTensors&&(r.maxNumTensors=b),b<r.minNumTensors&&(r.minNumTensors=b)}var x=f[y],w=x.sourceLayer;if(!(w instanceof WA)){for(var k,S=[],N=[],I=[],C=!1,R=tv(x.inputs);!(k=R()).done;){var E=k.value,A=g.getValue(E),T=g.getMask(E);S.push(A),N.push(T),null!=T&&(C=!0),i||(d[E.name]--,0!==d[E.name]||t.hasKey(E)||-1!==u.indexOf(E.name)||A.isDisposed||!0===E.sourceLayer.stateful||I.push(A))}C&&((n=n||{}).mask=N[0]);var D=KR(w.apply(S,n)),_=null;w.supportsMasking&&(_=w.computeMask(S,N));for(var F=zT(x),O=Array.isArray(F)?F:[F],M=0;M<O.length;++M){g.hasKey(O[M])||g.add(O[M],D[M],Array.isArray(_)?_[0]:_);var L=u.indexOf(O[M].name);-1!==L&&(l[L]=D[M])}i||ux(I)}}return g.disposeMasks(),o?l:l[0]}function MT(e){var t={};for(var n in e)t[n]=e[n].size;return t}function LT(e,t){for(var n,r=new Set,a=[],i={},o=tv(t.names());!(n=o()).done;){var s=n.value;r.add(s)}var u=[],l=[];for(u.push(e);u.length>0;){var c=u[u.length-1];if(r.has(c.name))u.pop();else{var p=l[l.length-1]===u.length-1;if(0===c.inputs.length||p)u.pop(),a.push(c),r.add(c.name),p&&l.pop();else{l.push(u.length-1);for(var h,f=tv(c.inputs);!(h=f()).done;){var d=h.value;null==i[d.name]&&(i[d.name]=new Set),i[d.name].add(c.name),r.has(d.name)||u.push(d)}}}}return{sorted:a,recipientMap:i}}function zT(e){var t;
17if(1===e.sourceLayer.inboundNodes.length)t=e.sourceLayer.output;else{for(var n=null,r=0;r<e.sourceLayer.inboundNodes.length;++r)for(var a,i=tv(e.sourceLayer.inboundNodes[r].outputTensors);!(a=i()).done;){if(a.value.id===e.id){n=r;break}}t=e.sourceLayer.getOutputAt(n)}return t}function BT(e,t,n){var r=t.length;if(null==e||Array.isArray(e)&&0===e.length)return t.map((function(e){return null}));if(1===r)return Array.isArray(e)&&1===e.length?e:"object"==typeof e&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==r)throw new Error("Provided "+n+" is an array of "+e.length+" element(s), but the model has "+r+" outputs. Make sure a set of weights is provided for each model output.");return e}if("object"==typeof e&&Object.keys(e).length>0&&"object"==typeof e[Object.keys(e)[0]]){var a=[];return t.forEach((function(t){t in e?a.push(e[t]):a.push(null)})),a}throw new Error("The model has multiple ("+r+") outputs, so "+n+" must be either an array with "+r+" elements or an object with "+t+" keys. Provided "+n+" not understood: "+JSON.stringify(e))}function PT(e,t){return BT(e,t,"classWeight")}function WT(e,t,n,r){return VT.apply(this,arguments)}function VT(){return(VT=Gm(regeneratorRuntime.mark((function e(t,n,r,a){var i,o,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null==n&&null==a){e.next=2;break}throw new Error("Support sampleWeight is not implemented yet");case 2:if(null==r){e.next=15;break}return i=sx((function(){if(1===t.shape.length)return t.clone();if(2===t.shape.length){if(t.shape[1]>1){return t.argMax(1)}if(1===t.shape[1])return t.reshape([t.shape[0]]);throw new Error("Encountered unexpected last-dimension size ("+t.shape[1]+") during handling of class weights. The size is expected to be >= 1.")}throw new Error("Unexpected rank of target (y) tensor ("+t.rank+") during handling of class weights. The rank is expected to be 1 or 2.")})),e.t0=Array,e.next=7,i.data();case 7:return e.t1=e.sent,o=e.t0.from.call(e.t0,e.t1),ux(i),s=[],o.forEach((function(e){if(null==r[e])throw new Error("classWeight must contain all classes in the training data. The class "+e+" exists in the data but not in classWeight");s.push(r[e])})),e.abrupt("return",yS(s,"float32"));case 15:return e.abrupt("return",null);case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function UT(e,t){return vx(e,t)}function GT(e,t){var n,r,a=t;n=a.xs,r=a.ys,Ev(null!=n&&null!=r,(function(){return"A Dataset iterator for fitDataset() is expected to generate objects of the form `{xs: xVal, ys: yVal}`, where the two values may be `tf.Tensor`, an array of Tensors, or a map of string to Tensor.  The provided Dataset instead generates "+t}));var i=jT("input",e.inputNames,n),o=jT("output",e.outputNames,r),s=i[0].shape[0];Ev(i.length===e.inputs.length,(function(){return"LayersModel has "+e.inputs.length+" inputs, but the dataset provides "+i.length+" inputs.  (Expected input keys: "+JSON.stringify(e.inputNames)+")"})),Ev(o.length===e.outputs.length,(function(){return"LayersModel has "+e.outputs.length+" outputs, but the dataset provides "+o.length+" outputs.  (Expected output keys: "+JSON.stringify(e.outputNames)+")"}));for(var u=function(t){Ev(i[t].shape[0]===s,(function(){return"Batch size mismatch: input "+e.inputNames[t]+" has "+i[t].shape[0]+"; expected  "+s+" based on input "+e.inputNames[0]+"."}))},l=0;l<i.length;l++)u(l);for(var c=function(t){Ev(o[t].shape[0]===s,(function(){return"Batch size mismatch: output "+e.outputNames[t]+" has "+o[t].shape[0]+"; expected  "+s+" based on input "+e.inputNames[0]+"."}))},p=0;p<o.length;p++)c(p);return{xs:i,ys:o}}function jT(e,t,n){if(n instanceof Ig)return[n];if(Array.isArray(n))return Ev(n.length===t.length,(function(){return"Received an array of "+n.length+" Tensors, but expected "+t.length+" to match the "+e+" keys "+t+"."})),n;for(var r,a=[],i=tv(t);!(r=i()).done;){var o=r.value;if(null==n[o])throw new WR("The feature data generated by the dataset lacks the required "+e+" key '"+o+"'.");a.push(n[o])}return a}function HT(e){if(3===e.length)throw new VR("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}function qT(e,t,n){return KT.apply(this,arguments)}function KT(){return(KT=Gm(regeneratorRuntime.mark((function e(t,n,r){var a,i,o,s,u,l,c,p,h,f,d,m,v,g,y,b,x,w,k,S,N,I,C,R,E,A,T,D,_,F,O,M,L;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=null!=r.batchesPerEpoch,Ev(null!=t.optimizer,(function(){return"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."})),Ev(null!=r,(function(){return"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."})),Ev(null!=r.epochs&&r.epochs>0&&Number.isInteger(r.epochs),(function(){return"For fitDataset(), config.epochs is expected to be a positive integer, but got "+r.epochs})),Ev(!a||r.batchesPerEpoch>0&&Number.isInteger(r.batchesPerEpoch),(function(){return"For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got "+r.batchesPerEpoch}
17)),Ev(null==r.validationSplit,(function(){return"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."})),!t.isTraining){e.next=8;break}throw new Error("Cannot start training because another fit() call is ongoing.");case 8:return t.isTraining=!0,e.prev=9,(i=null!=r.validationData)&&(YT(r.validationData)?Ev(null==r.validationBatches||r.validationBatches>0&&Number.isInteger(r.validationBatches),(function(){return"For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got "+r.validationBatches})):(u=HT(r.validationData),o=u.xs,s=u.ys)),l=t.makeTrainFunction(),c=t.getDedupedMetricsNames(),p=i?c.slice().concat(c.map((function(e){return"val_"+e}))):c.slice(),h=JA(r.callbacks,r.yieldEvery),f=null==r.verbose?1:r.verbose,d=QA(h,f,r.epochs,null,null,XT(n,r),null,i,p),m=d.callbackList,v=d.history,m.setModel(t),t.history=v,e.next=22,m.onTrainBegin();case 22:return t.stopTraining_=!1,g=null==r.initialEpoch?0:r.initialEpoch,e.next=26,n.iterator();case 26:y=e.sent;case 27:if(!(g<r.epochs)){e.next=98;break}return b={},e.next=31,m.onEpochBegin(g);case 31:if(x=0,w=0,a){e.next=37;break}return e.next=36,n.iterator();case 36:y=e.sent;case 37:if(a&&!(x<r.batchesPerEpoch)){e.next=91;break}return e.next=40,y.next();case 40:if(k=e.sent,!a||!k.done){e.next=44;break}return console.warn("You provided `batchesPerEpoch` as "+r.batchesPerEpoch+", but your dataset iterator ran out of data after "+x+" batches; interrupting training. Make sure that your dataset can generate at least `batchesPerEpoch * epochs` batches (in this case, "+r.batchesPerEpoch*r.epochs+" batches). You may need to use the repeat() function when building your dataset."),e.abrupt("break",91);case 44:if(null==k.value){e.next=73;break}return S=GT(t,k.value),N=S.xs,I=S.ys,(C={}).batch=w,C.size=N[0].shape[0],e.next=51,m.onBatchBegin(w,C);case 51:if(R=[],null==r.classWeight){e.next=64;break}E=PT(r.classWeight,t.outputNames),A=0;case 55:if(!(A<E.length)){e.next=64;break}return e.t0=R,e.next=59,WT(I[A],null,E[A]);case 59:e.t1=e.sent,e.t0.push.call(e.t0,e.t1);case 61:++A,e.next=55;break;case 64:for(T=N.concat(I).concat(R),D=l(T),ux(T),_=0;_<c.length;++_)F=c[_],O=D[_],C[F]=O,lx(O);return e.next=70,m.onBatchEnd(w,C);case 70:jA(C),w++,x++;case 73:if(!(a?x>=r.batchesPerEpoch:k.done)){e.next=87;break}if(!i){e.next=86;break}if(M=void 0,!YT(r.validationData)){e.next=84;break}return e.t2=KR,e.next=80,t.evaluateDataset(r.validationData,{batches:r.validationBatches});case 80:e.t3=e.sent,M=(0,e.t2)(e.t3),e.next=85;break;case 84:M=KR(t.evaluate(o,s,{batchSize:null==r.validationBatchSize?32:r.validationBatchSize,verbose:0}));case 85:for(L=0;L<t.metricsNames.length;++L)b["val_"+t.metricsNames[L]]=M[L];case 86:return e.abrupt("break",91);case 87:if(!t.stopTraining_){e.next=89;break}return e.abrupt("break",91);case 89:e.next=37;break;case 91:return e.next=93,m.onEpochEnd(g,b);case 93:if(g++,!t.stopTraining_){e.next=96;break}return e.abrupt("break",98);case 96:e.next=27;break;case 98:return e.next=100,m.onTrainEnd();case 100:return e.next=102,t.history.syncData();case 102:return e.abrupt("return",t.history);case 103:return e.prev=103,t.isTraining=!1,e.finish(103);case 106:case"end":return e.stop()}}),e,null,[[9,,103,106]])})))).apply(this,arguments)}function XT(e,t){var n=null;return null!=t.batchesPerEpoch?n=t.batchesPerEpoch:Number.isFinite(e.size)&&(n=e.size),n}function YT(e){return"function"==typeof e.iterator}function JT(e){return"function"==typeof e.next}function ZT(e,t,n){return QT.apply(this,arguments)}function QT(){return(QT=Gm(regeneratorRuntime.mark((function e(t,n,r){var a,i,o,s,u,l,c,p,h;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=null!=(r=r||{}).batches,i=t.testFunction,o=[],!(r.verbose>0)){e.next=6;break}throw new VR("Verbose mode is not implemented yet.");case 6:if(Ev(!a||r.batches>0&&Number.isInteger(r.batches),(function(){return"Test loop expects `batches` to be a positive integer, but received "+JSON.stringify(r.batches)})),!JT(n)){e.next=11;break}e.t0=n,e.next=14;break;case 11:return e.next=13,n.iterator();case 13:e.t0=e.sent;case 14:s=e.t0,u=0,l=0,c=regeneratorRuntime.mark((function e(){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,s.next();case 2:if(n=e.sent,o=sx((function(){return n.value&&function(){var e=GT(t,n.value),r=e.xs,a=e.
17ys,s=r.concat(a),c=sx((function(){return i(s)}));if(ux(s),0===l)for(var p=0;p<c.length;++p)o.push(sk(0));for(var h=s[0].shape[0],f=function(e){var t=c[e],n=o[e];o[e]=sx((function(){return fx(o[e],vx(h,t))})),l>0&&ux(n)},d=0;d<c.length;++d)f(d);ux(c),u+=h,++l}(),o})),!n.done){e.next=7;break}return a&&console.warn("Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least `batches` batches (in this case, "+r.batches+" batches). You may need to use the repeat() function when building your dataset."),e.abrupt("return","break");case 7:case"end":return e.stop()}}),e)}));case 18:if(a&&!(l<r.batches)){e.next=25;break}return e.delegateYield(c(),"t1",20);case 20:if("break"!==e.t1){e.next=23;break}return e.abrupt("break",25);case 23:e.next=18;break;case 25:for(p=0;p<o.length;++p)h=o[p],o[p]=mx(o[p],u),ux(h);return e.abrupt("return",qR(o));case 27:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function $T(e){Ev(e>0&&Number.isInteger(e),(function(){return"batchSize is required to be a positive integer, but got "+e}))}function eD(e,t,n){return null==e?[null]:Array.isArray(e)?e.map((function(e){return BE(e,t,n-t)})):BE(e,t,n-t)}function tD(e,t){return sx((function(){return null==e?null:Array.isArray(e)?e.map((function(e){return tD(e,t)})):qE(e,"int32"===t.dtype?t:t.toInt())}))}function nD(e,t){for(var n=[],r=0,a=null;r<e;)(a=r+t)>=e&&(a=e),n.push([r,a]),r=a;return n}function rD(e,t,n,r,a,i,o,s,u,l,c,p,h,f,d){return aD.apply(this,arguments)}function aD(){return(aD=Gm(regeneratorRuntime.mark((function e(t,n,r,a,i,o,s,u,l,c,p,h,f,d,m){var v,g,y,b,x,w,k,S;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null==i&&(i=32),null==o&&(o=1),null==p&&(p=!0),null==f&&(f=0),v=!1,null!=l&&null!=c&&(v=!0),null==m){e.next=10;break}if(v=!0,null!=d){e.next=10;break}throw new WR("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");case 10:return null!=(g=t.checkNumSamples(r,i,d,"steps_per_epoch"))&&(y=ME(0,g)),null==s&&(s=1),b=QA(u,s,o,f,g,d,i,v,h),x=b.callbackList,w=b.history,x.setModel(t),t.history=w,e.next=18,x.onTrainBegin();case 18:t.stopTraining_=!1,k=regeneratorRuntime.mark((function e(o){var s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,x.onEpochBegin(o);case 2:if(s={},null==d){e.next=7;break}throw new VR("stepsPerEpoch mode is not implemented yet.");case 7:return e.delegateYield(regeneratorRuntime.mark((function e(){var o,u,h,f;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("batch"!==p){e.next=4;break}throw new VR("batch shuffling is not implemneted yet");case 4:p&&Nv(y);case 5:o=yS(y),u=nD(g,i),h=regeneratorRuntime.mark((function e(p){var h;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return h={},e.next=3,x.onBatchBegin(p,h);case 3:return sx((function(){var e=u[p][0],f=u[p][1],d=BE(o,e,f-e);h.batch=p,h.size=f-e;for(var m=tD(r,d),g=n(m),y=0;y<a.length;++y){var b=a[y],x=g[y];h[b]=x,lx(x)}if(p===u.length-1&&v)for(var w=t.testLoop(l,c,i),k=0;k<a.length;++k){var S=a[k],N=w[k];lx(N),s["val_"+S]=N}})),e.next=6,x.onBatchEnd(p,h);case 6:if(jA(h),!t.stopTraining_){e.next=9;break}return e.abrupt("return","break");case 9:case"end":return e.stop()}}),e)})),f=0;case 9:if(!(f<u.length)){e.next=17;break}return e.delegateYield(h(f),"t0",11);case 11:if("break"!==e.t0){e.next=14;break}return e.abrupt("break",17);case 14:++f,e.next=9;break;case 17:o.dispose();case 18:case"end":return e.stop()}}),e)}))(),"t0",8);case 8:return e.next=10,x.onEpochEnd(o,s);case 10:if(!t.stopTraining_){e.next=12;break}return e.abrupt("return","break");case 12:case"end":return e.stop()}}),e)})),S=f;case 21:if(!(S<o)){e.next=29;break}return e.delegateYield(k(S),"t0",23);case 23:if("break"!==e.t0){e.next=26;break}return e.abrupt("break",29);case 26:++S,e.next=21;break;case 29:return e.next=31,x.onTrainEnd();case 31:return e.next=33,t.history.syncData();case 33:return e.abrupt("return",t.history);case 34:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function iD(e,t,n,r){return oD.apply(this,arguments)}function oD(){return(oD=Gm(regeneratorRuntime.mark((function e(t,n,r,a){var i,o,s,u,l,c,p,h,f,d,m,v,g,y,b,x,w,k,S,N,I;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===a&&(a={}),!t.isTraining){e.next=3;break}throw new Error("Cannot start training because another fit() call is ongoing.");case 3:return t.isTraining=!0,e.prev=4,$T(h=null==a.batchSize?32:a.batchSize),!1,e.next=10,t.standardizeUserData(n,r,a.sampleWeight,a.classWeight,!1,h);case 10:if(f=e.sent,i=f[0],o=f[1],p=f[2],d=!1,!(null!=a.validationData&&a.validationData.length>0)){e.next=36;break}if(d=!0,2!==a.validationData.length){e.next=22;break}s=a.validationData[0],u=a.validationData[1],e.next=27;break;case 22:if(3!==a.validationData.length){e.next=26;break}throw new VR("validationData including sample weights is not supported yet.");case 26:throw new WR("When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items;
17 "+a.validationData+" is invalid.");case 27:return!0,e.next=30,t.standardizeUserData(s,u,null,null,!0,h);case 30:v=e.sent,l=v[0],c=v[1],m=l.concat(c),e.next=37;break;case 36:null!=a.validationSplit&&a.validationSplit>0&&a.validationSplit<1?(d=!0,g=Math.floor(i[0].shape[0]*(1-a.validationSplit)),y=i[0].shape[0],l=eD(i,g,y),i=eD(i,0,g),c=eD(o,g,y),o=eD(o,0,g),m=l.concat(c)):null!=a.validationSteps&&(d=!0);case 37:return b=i.concat(o).concat(p),t.checkTrainableWeightsConsistency(),x=t.makeTrainFunction(),w=t.getDedupedMetricsNames(),d?(t.makeTestFunction(),k=t.testFunction,S=w.slice().concat(w.map((function(e){return"val_"+e})))):(k=null,m=[],S=w.slice()),N=JA(a.callbacks,a.yieldEvery),e.next=45,rD(t,x,b,w,h,a.epochs,a.verbose,N,k,m,a.shuffle,S,a.initialEpoch,null,null);case 45:return I=e.sent,e.abrupt("return",I);case 47:return e.prev=47,t.isTraining=!1,uD(i,n),uD(o,r),uD(l,s),uD(c,u),null!=p&&ux(p),e.finish(47);case 55:case"end":return e.stop()}}),e,null,[[4,,47,55]])})))).apply(this,arguments)}function sD(e){var t=[];e instanceof Ig&&(e=[e]);for(var n=0;n<e.length;++n){var r=e[n];if(1===r.rank)t.push(zE(r,1));else{if(0===r.rank)throw new Error("Expected tensor to be at least 1D, but received a 0D tensor (scalar).");t.push(r)}}return t}function uD(e,t){if(null!=e){var n=[];if(t instanceof Ig)n.push(t.id);else if(Array.isArray(t))t.forEach((function(e){return n.push(e.id)}));else if(null!=t)for(var r in t){var a=t[r];n.push(a.id)}var i=[];if(e instanceof Ig)-1===n.indexOf(e.id)&&i.push(e);else if(Array.isArray(e))e.forEach((function(e){-1===n.indexOf(e.id)&&i.push(e)}));else if(null!=e)for(var o in e){var s=e[o];-1===n.indexOf(s.id)&&i.push(s)}i.forEach((function(e){e.isDisposed||e.dispose()}))}}function lD(e){return Array.isArray(e)}function cD(e){return!function(e){return e instanceof Ig}(e)&&!lD(e)}function pD(e,t,n,r,a){if(void 0===r&&(r=!0),void 0===a&&(a=""),null==t||0===t.length){if(null!=e){var i=!1;if(lD(e)&&e.length>0)i=!0;else if(cD(e)){for(var o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new WR("Error when checking model "+a+" expected no data, but got "+e)}return[]}if(null==e)return t.map((function(e){return null}));var s;if(cD(e)){e=e,s=[];for(var u,l=tv(t);!(u=l()).done;){var c=u.value;if(null==e[c])throw new WR('No data provided for "'+c+'". Need data for each key in: '+t);s.push(e[c])}}else if(lD(e)){if((e=e).length!==t.length)throw new WR("Error when checking model "+a+": the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see "+t.length+" Tensor(s), but instead got the following list of Tensor(s): "+e);s=e}else{if(e=e,t.length>1)throw new WR("The model "+a+" expects "+t.length+" Tensor(s), but only received one Tensor. Found: Tensor with shape "+e.shape);s=[e]}if(s=sD(s),null!=n)for(var p=0;p<t.length;++p)if(null!=n[p]){var h=s[p];if(h.shape.length!==n[p].length)throw new WR("Error when checking "+a+": expected "+t[p]+" to have "+n[p].length+" dimension(s). but got array with shape "+h.shape);for(var f=0;f<n[p].length;++f)if(0!==f||r){var d=h.shape[f],m=n[p][f];if(null!=m&&m>=0&&d!==m)throw new WR("Error when checking "+a+": expected "+t[p]+" to have shape ["+n[p]+"], but got array with shape ["+h.shape+"].")}}return s}function hD(e,t,n,r,a){var i;if(void 0===r&&(r=!0),void 0===a&&(a=""),Array.isArray(e)){if(e.length!==t.length)throw new WR("Error when checking model "+a+": the Array of Tensors that you are passing to your model is not the size the the model expected. Expected to see "+t.length+" Tensor(s), but instead got "+e.length+" Tensors(s).");i=e}else{if(t.length>1)throw new WR("The model expects "+t.length+" "+a+" Tensors, but only received one Tensor. Found: array with shape "+JSON.stringify(e.shape)+".");i=[e]}if(null!=n)for(var o=0;o<t.length;++o)if(null!=n[o]){var s=i[o];if(s.shape.length!==n[o].length)throw new WR("Error when checking "+a+": expected "+t[o]+" to have "+n[o].length+" dimension(s), but got array with shape "+JSON.stringify(s.shape));for(var u=0;u<n[o].length;++u)if(0!==u||r){var l=s.shape[u],c=n[o][u];if(null!=c&&c!==l)throw new WR("Error when checking "+a+": expected "+t[o]+" to have shape "+JSON.stringify(n[o])+" but got array with shape "+JSON.stringify(s.shape)+".")}}}var fD=function(e){function t(t){var n;return(n=e.call(this,t)||this).isTraining=!1,n}qm(t,e);var n=t.prototype;return n.summary=function(e,t,n){if(void 0===n&&(n=console.log),!this.built)throw new WR("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");IT(this,e,t,n)},n.compile=function(e){var t=this;if(null==e.loss&&(e.loss=[]),this.loss=e.loss,"string"==typeof e.o
17ptimizer)this.optimizer_=function(e){var t={Adagrad:function(){return QI.adagrad(.01)},Adadelta:function(){return QI.adadelta(1,.95,zR())},Adam:function(){return QI.adam(.001,.9,.999,zR())},Adamax:function(){return QI.adamax(.002,.9,.999,zR(),0)},RMSProp:function(){return QI.rmsprop(.001,.9,0,zR())},SGD:function(){return QI.sgd(.01)}};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new WR("Unknown Optimizer "+e)}(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof GI))throw new WR("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}var n=[];if(Array.isArray(e.loss)||"string"==typeof e.loss||"function"==typeof e.loss)if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new WR("When passing an Array as loss, it should have one entry per model output. The model has "+this.outputs.length+" output(s), but you passed loss="+e.loss+".");var r=e.loss;n=r.map((function(e){return pT(e)}))}else{var a=pT(e.loss);this.outputs.forEach((function(e){n.push(a)}))}else{for(var i in e.loss=e.loss,e.loss)if(-1===this.outputNames.indexOf(i))throw new WR('Unknown entry in loss dictionary: "'+i+'". Only expected the following keys: '+this.outputNames);for(var o,s=tv(this.outputNames);!(o=s()).done;){var u=o.value;null==e.loss[u]&&console.warn('Output "'+u+'" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to '+u+" during training"),n.push(pT(e.loss[u]))}}this.lossFunctions=n,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(var l=0;l<this.outputs.length;++l){var c=this.internalOutputShapes[l],p=this.outputNames[l];this.feedOutputNames.push(p),this.feedOutputShapes.push(c),this.feedLossFns.push(this.lossFunctions[l])}var h=[];this.metrics=e.metrics,this.metricsNames=["loss"],this.metricsTensors=[],CE("loss",(function(){for(var e=0;e<t.outputs.length;++e)if(-1===h.indexOf(e)){var n=t.lossFunctions[e];t.outputs.length>1&&(t.metricsTensors.push([n,e]),t.metricsNames.push(t.outputNames[e]+"_loss"))}}));var f=function(e,t){if(null==e||Array.isArray(e)&&0===e.length)return t.map((function(e){return[]}));var n;if("string"==typeof e||"function"==typeof e)n=[e];else{if(!Array.isArray(e)&&"object"!=typeof e)throw new TypeError("Type of metrics argument not understood. Expected an string,function, Array, or Object, found: "+e);n=e}if(Array.isArray(n))return t.map((function(e){return n}));for(var r,a=[],i=tv(t);!(r=i()).done;){var o=r.value,s=n.hasOwnProperty(o)?n[o]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}(e.metrics,this.outputNames),d=function(e,n,r){t.outputNames.length>1&&(n=t.outputNames[e]+"_"+n),t.metricsNames.push(n),t.metricsTensors.push([r,e])};CE("metric",(function(){for(var e=function(e){if(-1!==h.indexOf(e))return"continue";!function(n){for(var r,a,i,o,s=tv(n);!(o=s()).done;){var u=o.value;if("string"==typeof u&&-1!==["accuracy","acc","crossentropy","ce"].indexOf(u)){var l=t.internalOutputShapes[e];1===l[l.length-1]||t.lossFunctions[e]===sT?-1!==["accuracy","acc"].indexOf(u)?a=hT:-1!==["crossentropy","ce"].indexOf(u)&&(a=gT):t.lossFunctions[e]===oT?-1!==["accuracy","acc"].indexOf(u)?a=yT:-1!==["crossentropy","ce"].indexOf(u)&&(a=xT):-1!==["accuracy","acc"].indexOf(u)?a=fT:-1!==["crossentropy","ce"].indexOf(u)&&(a=bT);var c=void 0;-1!==["accuracy","acc"].indexOf(u)?c="acc":-1!==["crossentropy","ce"].indexOf(u)&&(c="ce"),i=a,r=""+c}else{var p=kT(u);i=p,r=""+ST(u)}var h=void 0;CE(r,(function(){h=i})),d(e,r,h)}}(f[e])},n=0;n<t.outputs.length;++n)e(n)})),this.collectedTrainableWeights=this.trainableWeights},n.checkTrainableWeightsConsistency=function(){null!=this.collectedTrainableWeights&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")},n.evaluate=function(e,t,n){void 0===n&&(n={});var r=null==n.batchSize?32:n.batchSize;$T(r);var a=this.standardizeUserDataXY(e,t,!0,r);try{var i=a[0].concat(a[1]);this.makeTestFunction();var o=this.testFunction;return qR(this.testLoop(o,i,r,n.verbose,n.steps))}finally{uD(a[0],e),uD(a[1],t)}},n.evaluateDataset=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.makeTestFunction(),e.abrupt("return",ZT(this,t,n));case 2:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.checkNumSamples=function(e,t,n,r){var a;if(void 0===r&&(r="steps"),null!=n){if(a=null,null!=t)throw new WR("If "+r+" is set, batchSize must be null or undefined.Got batchSize = "+t)}else{if(null==e)throw new WR("Either the input data should have a defined shape, or "+r+" shoud be specified.");a=Array.isArray(e)?e[0].shape[0]:e.shape[0]}return a},n.execute=function(e,t){if(Array.isArray(t)&&0===t.length)throw new WR("`outputs` is an empty Array, which is not allowed.");var n=Array.isArray(t),r=n?t:[t],a=this.retrieveSymbolicTensors(r),i=new DT;if(e instanceof Ig&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new WR("The number of inputs provided ("+e.length+") does not match the number of inputs of this model ("+this.inputs.length+").");for(var o=0;o<this.inputs.length;++o)i.add(this.inputs[o],e[o])}else for(var s,u=tv(this.inputs);!(s=u()).done;){var l=s.value,c=e[l.name];if(null==c)throw new WR("No value is provided for the model's input "+l.name);i.add(l,c)}var p=OT(a,i);return n?p:p[0]},n.retrieveSymbolicTensors=function(e){for(var t,n=GR(null,e.length),r=e.length,a=tv(this.layers);!(t=a()).done;){for(var i=t.value,o=Array.isArray(i.output)?i.output:[i.output],s=o.map((function(e){return e.name})),u=0;u<e.length;++u){var l=s.indexOf(e[u]);if(-1!==l&&(n[u]=o[l],r--),0===r)break}if(0===r)break}if(r>0){var c=[];
17throw n.forEach((function(t,n){null==t&&c.push(e[n])})),new WR("Cannot find SymbolicTensors for output name(s): "+JSON.stringify(c))}return n},n.predictLoop=function(e,t,n){var r=this;return void 0===t&&(t=32),void 0===n&&(n=!1),sx((function(){var a=r.checkNumSamples(e);if(n)throw new VR("Verbose predictLoop() is not implemented yet.");for(var i=nD(a,t),o=r.outputs.map((function(e){return[]})),s=function(t){sx((function(){var n=i[t][0],a=i[t][1],o=eD(e,n,a),s=[];if(Array.isArray(o))for(var u=0;u<o.length;++u)s.push({key:r.inputs[u],value:o[u]});else s.push({key:r.inputs[0],value:o});var l=new DT(s);return OT(r.outputs,l)})).forEach((function(e,t){return o[t].push(e)}))},u=0;u<i.length;++u)s(u);return qR(o.map((function(e){return tw(e,0)})))}))},n.predict=function(e,t){void 0===t&&(t={});var n=sD(e);hD(n,this.inputNames,this.feedInputShapes,!1);try{var r=null==t.batchSize?32:t.batchSize;return $T(r),this.predictLoop(n,r)}finally{uD(n,e)}},n.predictOnBatch=function(e){hD(e,this.inputNames,this.feedInputShapes,!0);var t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)},n.standardizeUserDataXY=function(e,t,n,r){if(void 0===n&&(n=!0),null==this.optimizer_)throw new PR("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");for(var a=[],i=0;i<this.feedOutputShapes.length;++i){var o=this.feedOutputShapes[i];this.feedLossFns[i]===oT?a.push(o.slice(0,o.length-1).concat([1])):a.push(o)}if(function(e,t,n){var r=eE(e.map((function(e){return e.shape[0]})));r.sort();var a=eE(t.map((function(e){return e.shape[0]})));if(a.sort(),r.length>1)throw new WR("All input Tensors (x) should have the same number of samples. Got array shapes: "+JSON.stringify(e.map((function(e){return e.shape}))));if(a.length>1)throw new WR("All target Tensors (y) should have the same number of samples. Got array shapes: "+JSON.stringify(t.map((function(e){return e.shape}))));if(r.length>0&&a.length>0&&!Fv(r,a))throw new WR("Input Tensors should have the same number of samples as target Tensors. Found "+r[0]+" input sample(s) and "+a[0]+" target sample(s).")}(e=pD(e,this.feedInputNames,this.feedInputShapes,!1,"input"),t=pD(t,this.feedOutputNames,a,!1,"target")),function(e,t,n){for(var r=[tT,sT,iT],a=0;a<e.length;++a){var i=e[a],o=t[a],s=n[a];if(null!=o){if(o===iT&&1===i.shape[i.shape.length-1])throw new WR("You are passing a target array of shape "+i.shape+" while using a loss 'categorical_crossentropy'. 'categorical_crossentropy'expects targets to be binary matrices (1s and 0s) of shape [samples, classes].");if(-1!==r.indexOf(o))for(var u=i.shape.slice(1),l=s.slice(1),c=0;c<u.length;++c){var p=u[c],h=l[c];if(null!=h&&p!==h)throw new WR("A target Tensor with shape "+i.shape+" was passed for an output of shape "+s+", while using a loss function that expects targets to have the same shape as the output.")}}}}(t,this.feedLossFns,this.feedOutputShapes),this.stateful&&null!=r&&r>0&&e[0].shape[0]%r!=0)throw new WR("In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size "+r+". Found: "+e[0].shape[0]+" sample(s).");return[e,t]},n.standardizeUserData=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n,r,a,i,o){var s,u,l,c,p,h;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===i&&(i=!0),s=this.standardizeUserDataXY(t,n,i,o),u=s[0],l=s[1],null==r){e.next=4;break}throw new Error("sample weight is not supported yet.");case 4:if(c=null,null==a){e.next=18;break}p=PT(a,this.outputNames),c=[],h=0;case 9:if(!(h<p.length)){e.next=18;break}return e.t0=c,e.next=13,WT(l[h],null,p[h]);case 13:e.t1=e.sent,e.t0.push.call(e.t0,e.t1);case 15:++h,e.next=9;break;case 18:return e.abrupt("return",[u,l,c]);case 19:case"end":return e.stop()}}),e,this)})));return function(t,n,r,a,i,o){return e.apply(this,arguments)}}(),n.testLoop=function(e,t,n,r,a){var i=this;return void 0===r&&(r=0),sx((function(){var o=i.checkNumSamples(t,n,a,"steps"),s=[];if(r>0)throw new VR("Verbose mode is not implemented yet.");if(null!=a)throw new VR("steps mode in testLoop() is not implemented yet");for(var u=nD(o,n),l=yS(ME(0,o)),c=0;c<u.length;++c){var p=u[c][0],h=u[c][1],f=BE(l,p,h-p),d=tD(t,f),m=e(d);if(0===c)for(var v=0;v<m.length;++v)s.push(sk(0));for(var g=0;g<m.length;++g){var y=m[g];s[g]=fx(s[g],vx(h-p,y))}}for(var b=0;b<s.length;++b)s[b]=mx(s[b],o);return s}))},n.getDedupedMetricsNames=function(){for(var e=this.metricsNames,t=[],n=0;n<e.length;++n){var r=e[n],a=r;if(HR(e,r)>1)a+="_"+HR(e.slice(0,n),r);t.push(a)}return t},n.makeTrainFunction=function(){var e=this;return function(t){var n=[],r=t.slice(0,e.inputs.length),a=t.slice(e.input
17s.length,e.inputs.length+e.outputs.length),i=t.slice(e.inputs.length+e.outputs.length,e.inputs.length+2*e.outputs.length),o=[],s=e.collectedTrainableWeights.map((function(e){return e.read()}));return[e.optimizer_.minimize((function(){for(var t=[],s=0;s<e.inputs.length;++s)t.push({key:e.inputs[s],value:r[s]});for(var u,l=new DT(t),c=OT(e.outputs,l,{training:!0}),p=0;p<e.lossFunctions.length;++p){var h=(0,e.lossFunctions[p])(a[p],c[p]);null!=i[p]&&(h=UT(h,i[p]));var f=Mk(h);n.push(f),u=0===p?h:fx(u,h)}for(var d=0;d<e.metricsTensors.length;++d){var m=void 0;if(e.outputs.length>1&&d<e.outputs.length)m=n[d];else{var v=e.metricsTensors[d][0],g=e.metricsTensors[d][1];m=Mk(v(a[g],c[g]))}lx(m),o.push(m)}return u=Mk(u),e.calculateLosses().forEach((function(e){u=fx(u,e)})),u}),!0,s)].concat(o)}},n.makeTestFunction=function(){var e=this;this.testFunction=function(t){return sx((function(){for(var n,r=[],a=t.slice(0,e.inputs.length),i=t.slice(e.inputs.length,e.inputs.length+e.outputs.length),o=[],s=0;s<e.inputs.length;++s)o.push({key:e.inputs[s],value:a[s]});for(var u=new DT(o),l=OT(e.outputs,u),c=0;c<e.lossFunctions.length;++c){var p=e.lossFunctions[c],h=Mk(p(i[c],l[c]));n=0===c?h:fx(n,h),r.push(n)}for(var f=0;f<e.metricsTensors.length;++f){var d=e.metricsTensors[f][0],m=e.metricsTensors[f][1],v=Mk(d(i[m],l[m]));r.push(v)}return r}))}},n.fit=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n,r){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.abrupt("return",iD(this,t,n,r));case 2:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),n.fitDataset=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",qT(this,t,n));case 1:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.trainOnBatch=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i,o,s,u,l,c,p,h;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.standardizeUserData(t,n);case 2:r=e.sent,a=r[0],i=r[1],o=this.makeTrainFunction(),s=o(a.concat(i)),u=[],l=tv(s);case 9:if((c=l()).done){e.next=17;break}return p=c.value,e.next=13,p.data();case 13:h=e.sent,u.push(h[0]);case 15:e.next=9;break;case 17:return ux(s),e.abrupt("return",qR(u));case 19:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.getNamedWeights=function(e){for(var t=[],n=null!=e&&e.trainableOnly,r=n?this.trainableWeights:this.weights,a=this.getWeights(n),i=0;i<r.length;++i)n&&!r[i].trainable||t.push({name:r[i].originalName,tensor:a[i]});return t},n.dispose=function(){var t=e.prototype.dispose.call(this);if(0===t.refCountAfterDispose&&null!=this.optimizer&&this.isOptimizerOwned){var n=ox().numTensors;this.optimizer_.dispose(),t.numDisposedVariables+=n-ox().numTensors}return t},n.getLossIdentifiers=function(){var e;if("string"==typeof this.loss)e=XR(this.loss);else if(Array.isArray(this.loss)){for(var t,n=tv(this.loss);!(t=n()).done;){if("string"!=typeof t.value)throw new Error("Serialization of non-string loss is not supported.")}e=this.loss.map((function(e){return XR(e)}))}else{var r=Object.keys(this.loss);e={};for(var a=this.loss,i=0,o=r;i<o.length;i++){var s=o[i];if("string"!=typeof a[s])throw new Error("Serialization of non-string loss is not supported.");e[s]=XR(a[s])}}return e},n.getMetricIdentifiers=function(){if("string"==typeof this.metrics||"function"==typeof this.metrics)return[XR(ST(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map((function(e){return XR(ST(e))}));var e={};for(var t in this.metrics)e[t]=XR(ST(this.metrics[t]));return e},n.getTrainingConfig=function(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}},n.loadTrainingConfig=function(e){if(null!=e.weighted_metrics)throw new Error("Loading weight_metrics is not supported yet.");if(null!=e.loss_weights)throw new Error("Loading loss_weights is not supported yet.");if(null!=e.sample_weight_mode)throw new Error("Loading sample_weight_mode is not supported yet.");var t,n,r=$A(TT(e.optimizer_config));if("string"==typeof e.loss)t=YR(e.loss);else if(Array.isArray(e.loss))t=e.loss.map((function(e){return YR(e)}));else if(null!=e.loss)for(var a in t={},e.loss)t[a]=YR(e.loss[a]);if(Array.isArray(e.metrics))n=e.metrics.map((function(e){return YR(e)}));else if(null!=e.metrics)for(var i in n={},e.metrics)n[i]=YR(e.metrics[i]);this.compile({loss:t,metrics:n,optimizer:r})},n.save=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i,o,s,u,l,c,p;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!=typeof t){e.next=9;break}if(0!==(r=gy(t)).length){e.next=6;break}throw new WR("Cannot find any save handlers for URL '"+t+"'");case 6:if(!(r.length>1)){e.next=8;break}throw new WR("Found more than one ("+r.length+") save handlers for URL '"+t+"'");case 8:t=r[0];case 9:if(null!=t.save){e.next=11;break}throw new WR("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");case 11:return e.next=13,ay(this.getNamedWeights(n));case 13:if(a=e.sent,!1,null,i=this.toJSON(null,!1),o={modelTopology:i,format:"layers-model",generatedBy:"TensorFlow.js tfjs-layers v2.6.0",convertedBy:null},!(null!=n&&n.includeOptimizer)||null==this.optimizer){e.next=34;break}return o.trainingConfig=this.getTrainingConfig(),u="optimizer",e.t0=vb,e.next=25,this.optimizer.getWeights();case 25:return e.t1=e.sent,e.t2=u,e.next=29,e.t0.encodeWeights.call(e.t0,e.t1,e.t2);case 29:l=e.sent,c=l.data,p=l.specs,(s=a.specs).push.apply(s,p),a.data=hy([a.data,c]);case 34:return null!=this.userDefinedMetadata&&(!0,NT(this.userDefinedMetadata,this.name,!0),o.userDefinedMetadata=this.userDefinedMetadata),o.weightData=a.data,o.weightSpecs=a.specs,e.abrupt("return",t.save(o));case 38:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.setUserDefinedMetadata=function(e){NT(e,this.name),this.userDefinedMetadata=e},n.getUserDefinedMetadata=function(){return this.userDefinedMetadata},Hm(t,[{key:"stopTraining",set:function(e){this.stopTraining_=e},get:function(){return this.stopTraining_}},{key:"optimizer",get:function(){return this.optimizer_},set:function(e){this.optimizer_!==e&&(this.optimizer_=e,this.isOptimizerOwned=!1)}}]),t}(function(e){function t(n){var r;if((r=e.call(this,{})||this).containerNodes=new Set,r.name=n.name,null==r.name){var a=r.getClassName().toLowerCase();r.name=NA(a)}if(r.supportsMasking=!1,r.trainable_=!0,Array.isArray(n.inputs)?r.input
17s=n.inputs.slice():r.inputs=[n.inputs],Array.isArray(n.outputs)?r.outputs=n.outputs.slice():r.outputs=[n.outputs],eE(r.inputs).length!==r.inputs.length)throw new WR("The list of inputs passed to the model is redundant. All inputs should only appear once. Found: "+r.inputs.map((function(e){return e.name})));eE(r.outputs).length!==r.outputs.length&&console.warn("The list of outputs passed to the model is redundant. All outputs should only appear once. Found: "+r.outputs.map((function(e){return e.name}))),r.inputLayers=[],r.inputLayersNodeIndices=[],r.inputLayersTensorIndices=[],r.outputLayers=[],r.outputLayersNodeIndices=[],r.outputLayersTensorIndices=[],r.layers=[],r.internalContainerRefs=[];for(var i,o=tv(r.outputs);!(i=o()).done;){var s=i.value,u=s.sourceLayer,l=s.nodeIndex,c=s.tensorIndex;r.outputLayers.push(u),r.outputLayersNodeIndices.push(l),r.outputLayersTensorIndices.push(c)}for(var p,h=tv(r.inputs);!(p=h()).done;){var f=p.value,d=f.sourceLayer,m=f.nodeIndex,v=f.tensorIndex;jR(0===m,"input layer has >1 nodes"),jR(0===v,"input layer has >1 tensors"),r.inputLayers.push(d),r.inputLayersNodeIndices.push(m),r.inputLayersTensorIndices.push(v)}r.inputNames=[],r.outputNames=[],r.feedInputShapes=[],r.feedInputNames=[],r.feedOutputNames=[];for(var g=0;g<r.inputLayers.length;g++){var y=r.inputLayers[g];if(!(y instanceof WA))throw new TypeError("Input layers to a LayersModel must be InputLayer objects. Received inputs: "+n.inputs+". Input "+g+" (0-based) originates from layer type "+y.getClassName()+".");r.inputNames.push(y.name),r.feedInputShapes.push(y.batchInputShape),r.feedInputNames.push(y.name)}for(var b,x=tv(r.outputLayers);!(b=x()).done;){var w=b.value;r.outputNames.push(w.name)}r.internalInputShapes=r.inputs.map((function(e){return e.shape})),r.internalOutputShapes=r.outputs.map((function(e){return e.shape}));for(var k,S={},N={},I={},C={},R={},E=[],A=function e(n,a,i,o,s,u){null!=o&&null!=s&&null!=u||(o=n.sourceLayer,s=n.nodeIndex,u=n.tensorIndex);var l=o.inboundNodes[s];if(-1!==i.indexOf(l))throw new PR("The tensor "+n.name+' at layer "'+o.name+'" is part of a cycle.');if(-1===a.indexOf(l)){r.containerNodes.add(t.nodeKey(o,s)),o.id in R||(R[o.id]=Object.keys(R).length),-1===i.indexOf(l)&&i.push(l);for(var c=l.inboundLayers.length,p=0;p<c;p++){e(l.inputTensors[p],a,i,l.inboundLayers[p],l.nodeIndices[p],l.tensorIndices[p])}for(a.push(l);i.indexOf(l)>=0;)i.splice(i.indexOf(l),1);E.push(l)}},T=[],D=[],_=tv(r.outputs);!(k=_()).done;){A(k.value,T,D)}for(var F,O=tv(E.slice().reverse());!(F=O()).done;){var M=F.value;N[M.id]=M,M.id in S||(S[M.id]=0);var L=S[M.id],z=null==I[M.outboundLayer.id]?0:I[M.outboundLayer.id];L=Math.max(L,z),I[M.outboundLayer.id]=L,C[M.outboundLayer.id]=M.outboundLayer,S[M.id]=L;for(var B=0;B<M.inboundLayers.length;B++){var P=M.inboundLayers[B],W=M.nodeIndices[B],V=P.inboundNodes[W],U=null==S[V.id]?0:S[V.id];S[V.id]=Math.max(L+1,U),N[V.id]=V}}var G={};for(var j in S){var H=S[j];H in G||(G[H]=[]),G[H].push(N[j])}var q={};for(var K in I){var X=I[K];X in q||(q[X]=[]),q[X].push(C[K])}var Y=Object.keys(q).map((function(e){return parseInt(e,10)})).sort($R);r.layers=[];for(var J,Z=tv(Y);!(J=Z()).done;){var Q=q[J.value];Q.sort((function(e,t){var n=R[e.id],r=R[t.id];return n<r?-1:n>r?1:0}));for(var $,ee=tv(Q);!($=ee()).done;){var te=$.value;te instanceof t&&r.internalContainerRefs.push(te),r.layers.push(te)}}r.layersByDepth=q,Y=Object.keys(G).map((function(e){return parseInt(e,10)})).sort($R);for(var ne,re=r.inputs.slice(),ae=[],ie=tv(Y);!(ne=ie()).done;)for(var oe,se=tv(G[ne.value]);!(oe=se()).done;){var ue=oe.value,le=ue.outboundLayer;if(null!=le){for(var ce,pe=tv(ue.inputTensors);!(ce=pe()).done;){var he=ce.value;if(-1===re.indexOf(he))throw new PR("Graph disconnected: cannot obtain value for tensor "+he+' at layer "'+le.name+'". The following previous layers were accessed without issue: '+ae)}for(var fe,de=tv(ue.outputTensors);!(fe=de()).done;){var me=fe.value;re.push(me)}ae.push(le.name)}}r.nodesByDepth=G;for(var ve,ge=r.layers.map((function(e){return e.name})),ye=function(){var e=ve.value,t=ge.filter((function(t){return t===e})).length;if(1!==t)throw new PR('The name "'+e+'" is used '+t+" times in the model. All layer names should be unique. Layer names: "+JSON.stringify(ge))},be=tv(ge);!(ve=be()).done;)ye();return r.outboundNodes=[],r.inboundNodes=[],new LA({outboundLayer:Qm(r),inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:r.inputs,outputTensors:r.outputs,inputMasks:r.inputs.map((function(e){return null})),outputMasks:r.outputs.map((function(e){return null})),inputShapes:r.inputs.map((function(e){return e.shape})),outputShapes:r.outputs.map((function(e){return e.shape}))}),r.built=!0,r._refCount=1,r}
17qm(t,e);var n=t.prototype;return n.assertNotDisposed=function(){if(0===this._refCount)throw new Error("Container '"+this.name+"' is already disposed.")},n.dispose=function(){this.assertNotDisposed();var e={refCountAfterDispose:null,numDisposedVariables:0};if(0==--this._refCount){for(var t,n=tv(this.layers);!(t=n()).done;){var r=t.value;e.numDisposedVariables+=r.dispose().numDisposedVariables}for(var a,i=tv(this.internalContainerRefs);!(a=i()).done;){var o=a.value;e.numDisposedVariables+=o.dispose().numDisposedVariables}}return e.refCountAfterDispose=this._refCount,e},n.loadWeights=function(e,t){void 0===t&&(t=!0);for(var n,r={},a=0,i=tv(this.layers);!(n=i()).done;)for(var o,s=tv(n.value.weights);!(o=s()).done;){var u=o.value;if(null!=r[u.originalName])throw new WR("Duplicate weight name: "+u.originalName);r[u.originalName]=u,a++}var l=[];for(var c in e){var p=c;if(null==r[c]){var h=c.split("/");p=h.slice(0,-2).concat([h[h.length-1]]).join("/")}if(null!=r[p])l.push([r[p],e[c]]);else if(t)throw new WR("Provided weight data has no target variable: "+c);delete r[p]}if(t){var f=[];for(var d in r)f.push(d);if(f.length>0)throw new WR(f.length+" of "+a+" weights are not set: "+f)}_A(l)},n.updatedConfig=function(){var e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion="tfjs-layers 2.6.0",t.backend="TensorFlow.js",t},n.toJSON=function(e,t){void 0===t&&(t=!0);var n=function e(t,n){if(null==t)return null;if("string"==typeof t)return XR(t);if("number"==typeof t||"boolean"==typeof t)return t;if(t instanceof Array){for(var r=[],a=t.length,i=0;i<a;++i){var o=t[i];AT(n,i,o)?r.push(o):r.push(e(o,n))}return r}for(var s={},u=0,l=Object.keys(t);u<l.length;u++){var c=l[u],p=t[c],h=XR(c);s[h]="name"!==c&&"className"!==c||"string"!=typeof p?e(p,c):p}return s}(this.updatedConfig());return t?JSON.stringify(n):n},n.call=function(e,t){var n=this;return sx((function(){e=KR(e);for(var r=new DT,a=0;a<n.inputs.length;++a)r.add(n.inputs[a],e[a]);return OT(n.outputs,r,t)}))},n.computeMask=function(e,t){var n=this;return sx((function(){var r;return e=KR(e),r=null==t?GR(null,e.length):KR(t),n.runInternalGraph(e,r)[1]}))},n.computeOutputShape=function(e){var t=CA(e);if(t.length!==this.inputLayers.length)throw new WR("Invalid inputShape argument "+e+": model has "+this.inputLayers.length+" tensor inputs.");for(var n={},r=0;r<t.length;r++){var a=this.inputLayers[r],i=t[r];n[a.name+"_0_0"]=i}var o=Object.keys(this.nodesByDepth).map((function(e){return parseInt(e,10)})).sort($R);if(o.length>1)for(var s,u=tv(o);!(s=u()).done;)for(var l,c=s.value,p=tv(this.nodesByDepth[c]);!(l=p()).done;){var h=l.value,f=h.outboundLayer;if(-1===this.inputLayers.map((function(e){return e.id})).indexOf(f.id)){for(var d=[],m=0;m<h.inboundLayers.length;m++){var v=h.inboundLayers[m],g=h.nodeIndices[m],y=h.tensorIndices[m],b=n[v.name+"_"+g+"_"+y];d.push(b)}for(var x=CA(f.computeOutputShape(qR(d))),w=f.inboundNodes.indexOf(h),k=0;k<x.length;k++){n[f.name+"_"+w+"_"+k]=x[k]}}}for(var S=[],N=[],I=0;I<this.outputLayers.length;I++){var C=this.outputLayers[I],R=this.outputLayersNodeIndices[I],E=this.outputLayersTensorIndices[I],A=C.name+"_"+R+"_"+E;N.push(A)}for(var T=0;T<N.length;T++){var D=N[T];jR(D in n),S.push(n[D])}return qR(S)},n.runInternalGraph=function(e,t){null==t&&(t=GR(null,e.length));for(var n={},r=0;r<this.inputs.length;++r){var a=this.inputs[r],i=e[r],o=t[r];n[a.id]=[i,o]}for(var s,u=tv(Object.keys(this.nodesByDepth).map((function(e){return parseInt(e,10)})).sort($R));!(s=u()).done;)for(var l,c=s.value,p=tv(this.nodesByDepth[c]);!(l=p()).done;){for(var h,f=l.value,d=f.outboundLayer,m=f.inputTensors,v=f.outputTensors,g=new Array,y=tv(m);!(h=y()).done;){var b=h.value;b.id in n&&g.push(n[b.id])}if(g.length===m.length){var x={},w=void 0,k=void 0,S=void 0,N=void 0;if(null!=f.callArgs&&(x=f.callArgs),1===g.length){var I=g[0],C=I[0],R=I[1];null==x.mask&&(x.mask=R),S=KR(d.call(C,x)),N=KR(d.computeMask(C,R)),w=[C],k=[R]}else w=g.map((function(e){return e[0]})),k=g.map((function(e){return e[1]})),null==x.mask&&(x.mask=k),S=KR(d.call(w,x)),N=KR(d.computeMask(w,k));if(d.activityRegularizer)throw new VR("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(var E=0;E<v.length;++E){var A=v[E],T=S[E],D=N[E];n[A.id]=[T,D]}}}for(var _,F=[],O=[],M=[],L=tv(this.outputs);!(_=L()).done;){var z=_.value;jR(z.id in n,"Could not compute output "+z.name+" : "+z.id);var B=n[z.id],P=B[0],W=B[1];M.push(P.shape),F.push(P),O.push(W)}return[F,O,M]},n.buildNodeConversionMap=function(e){for(var n,r,a={},i=tv(this.layers);!(r=i()).done;){var o=r.value;n=o instanceof t?1:0;for(var s=0;s<o.inboundNodes.length;s++){var u=t.nodeKey(o,s);this.containerNodes.has(u)&&(a[u]=n,n+=1)}}return a},n.getLayer=function(e,t){if(null!=t){if(this.layers.length<=t)throw new WR("Was asked to retrieve layer at index "+t+", but model only has "+this.layers.length+" layer(s).");return this.layers[t]}if(null==e)throw new WR("Provide either a layer name or layer index");for(var n,r=tv(this.layers);!(n=r()).done;){var a=n.value;if(a.name===e)return a}throw new WR("No such layer: "+e)},n.calculateLosses=function(){var e=this;
17return sx((function(){for(var n,r=[],a=tv(e.layers);!(n=a()).done;)for(var i=n.value,o=0;o<i.inboundNodes.length;++o){var s=t.nodeKey(i,o);e.containerNodes.has(s)&&r.push.apply(r,i.calculateLosses())}return r}))},n.getConfig=function(){for(var e,n={name:this.name},r=this.buildNodeConversionMap(this.layers),a=[],i=tv(this.layers);!(e=i()).done;){for(var o=e.value,s=o.getClassName(),u=o.getConfig(),l=[],c=0;c<o.inboundNodes.length;c++){var p=o.inboundNodes[c],h=t.nodeKey(o,c),f={};if(this.containerNodes.has(h)){if(p.callArgs)try{JSON.stringify(p.callArgs),f=p.callArgs}catch(e){console.warn("Layer "+o.name+" was passed non-serializable keyword arguments: "+p.callArgs+". They will not be included in the serialized model (and thus will be missing at deserialization time)."),f={}}if(p.inboundLayers.length>0){for(var d=[],m=0;m<p.inboundLayers.length;m++){var v=p.inboundLayers[m],g=p.nodeIndices[m],y=p.tensorIndices[m],b=r[t.nodeKey(v,g)];null==b&&(b=0),d.push([v.name,b,y,f])}l.push(d)}}}var x={};x.name=o.name,x.className=s,x.config=u,x.inboundNodes=l,a.push(x)}n.layers=a;for(var w=[],k=0;k<this.inputLayers.length;k++){var S=this.inputLayers[k],N=this.inputLayersNodeIndices[k],I=t.nodeKey(S,N);if(this.containerNodes.has(I)){var C=r[I];null==C&&(C=0);var R=this.inputLayersTensorIndices[k];w.push([S.name,C,R])}}n.inputLayers=w;for(var E=[],A=0;A<this.outputLayers.length;A++){var T=this.outputLayers[A],D=this.outputLayersNodeIndices[A],_=t.nodeKey(T,D);if(this.containerNodes.has(_)){var F=r[_];null==F&&(F=0);var O=this.outputLayersTensorIndices[A];E.push([T.name,F,O])}}return n.outputLayers=E,n},t.fromConfig=function(e,t,n,r){void 0===n&&(n={}),void 0===r&&(r=!1);var a={},i={};function o(e,t){e.name in i?i[e.name].push(t):i[e.name]=[t]}function s(e,t){for(var n,r,i=[],s=tv(t);!(r=s()).done;){var u=r.value,l=u[0],c=u[1],p=u[2];if(n=null==u[3]?{}:u[3],!(l in a))return void o(e,t);var h=a[l];if(h.inboundNodes.length<=c)return void o(e,t);var f=h.inboundNodes[c];i.push(f.outputTensors[p])}i.length>0&&e.apply(qR(i),n)}function u(e){var n=e.name,i=$A(e,null!=t.customObjects?t.customObjects:{});i.setFastWeightInitDuringBuild(r),a[n]=i,e.inboundNodes.forEach((function(e){if(!(e instanceof Array))throw new WR("Corrupted configuration, expected array for nodeData: "+e);o(i,e)}))}for(var l,c=t.name,p=t.layers,h=tv(p);!(l=h()).done;){u(l.value)}for(;!tE(i);)for(var f,d=tv(p);!(f=d()).done;){var m=f.value,v=a[m.name];if(v.name in i){var g=i[v.name];delete i[v.name];for(var y,b=tv(g);!(y=b()).done;){s(v,y.value)}}}for(var x,w=[],k=[],S=tv(t.inputLayers);!(x=S()).done;){var N=x.value,I=N[0],C=N[1],R=N[2];jR(I in a);var E=a[I].inboundNodes[C].outputTensors;w.push(E[R])}for(var A,T=tv(t.outputLayers);!(A=T()).done;){var D=A.value,_=D[0],F=D[1],O=D[2];jR(_ in a);var M=a[_].inboundNodes[F].outputTensors;k.push(M[O])}return new e({inputs:w,outputs:k,name:c})},n.resetStates=function(){var e=this;sx((function(){e.layers.forEach((function(e){e.stateful&&e.resetStates()}))}))},Hm(t,[{key:"trainable",get:function(){return this.trainable_},set:function(e){this.layers.forEach((function(t){t._trainableWeights.forEach((function(t){return t.trainable=e}))})),this.trainable_=e}},{key:"trainableWeights",get:function(){if(this._trainableWeights.length>0)throw new WR("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];for(var e,t=[],n=tv(this.layers);!(e=n()).done;){var r=e.value;t=t.concat(r.trainableWeights)}return t}},{key:"nonTrainableWeights",get:function(){for(var e,t=[],n=tv(this.layers);!(e=n()).done;){var r=e.value;t.push.apply(t,r.nonTrainableWeights)}if(!this.trainable){for(var a,i=[],o=tv(this.layers);!(a=o()).done;){var s=a.value;i.push.apply(i,s.trainableWeights)}return i.concat(t)}return t}},{key:"weights",get:function(){return this.trainableWeights.concat(this.nonTrainableWeights)}},{key:"stateful",get:function(){if(this._stateful)throw new WR("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(var e,t=tv(this.layers);!(e=t()).done;){if(e.value.stateful)return!0}return!1}}]),t}(BA));fD.className="Model",Zb(fD);var dD=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t}(fD);function mD(){return(mD=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i,o,s,u,l,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("modelTopology"in t||(t={modelTopology:t}),null!=(r=(t=t).modelTopology).model_config&&(r=r.model_config),a=TT(r),i=$A(a,n),null==t.
17weightsManifest){e.next=14;break}return e.next=9,ib(t.weightsManifest,t.pathPrefix,i.weights.map((function(e){return e.originalName})));case 9:for(o=e.sent,s={},u=tv(i.weights);!(l=u()).done;)c=l.value,s[c.originalName]=o[c.originalName];i.loadWeights(s),ux(o);case 14:return e.abrupt("return",i);case 15:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function vD(){return(vD=Gm(regeneratorRuntime.mark((function e(t,n){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null==n&&(n={}),"string"!=typeof t){e.next=10;break}if(0!==(r=yy(t,n)).length){e.next=7;break}r.push(fb(t,n)),e.next=9;break;case 7:if(!(r.length>1)){e.next=9;break}throw new WR("Found more than one ("+r.length+") load handlers for URL '"+t+"'");case 9:t=r[0];case 10:return e.abrupt("return",gD(t,void 0,n));case 11:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function gD(e,t,n){return yD.apply(this,arguments)}function yD(){return(yD=Gm(regeneratorRuntime.mark((function e(t,n,r){var a,i,o,s,u,l,c,p,h;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null==r&&(r={}),null!=t.load){e.next=3;break}throw new WR("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");case 3:return e.next=5,t.load();case 5:if(a=e.sent,null!=(i=a.modelTopology).model_config&&(i=i.model_config),o=null==r.strict||r.strict,s=null!=a.weightData&&null!=a.weightSpecs&&o,u=$A(TT(i),n,s),null!=(l=a.trainingConfig)&&u.loadTrainingConfig(l),null!=a.userDefinedMetadata&&u.setUserDefinedMetadata(a.userDefinedMetadata),null==a.weightData){e.next=24;break}if(null!=a.weightSpecs){e.next=17;break}throw new WR("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");case 17:if(c=bD(a.weightData,a.weightSpecs),p=c.modelWeights,h=c.optimizerWeights,u.loadWeights(p,o),!(null!=u.optimizer&&h.length>0)){e.next=22;break}return e.next=22,u.optimizer.setWeights(h);case 22:ux(p),ux(h.map((function(e){return e.tensor})));case 24:return e.abrupt("return",u);case 25:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function bD(e,t){var n=oy(e,t),r={},a=[];return t.forEach((function(e){"optimizer"===e.group?a.push({name:e.name,tensor:n[e.name]}):r[e.name]=n[e.name]})),{modelWeights:r,optimizerWeights:a}}dD.className="Functional",Zb(dD);var xD=function(e){function t(t){var n;if(t=t||{},(n=e.call(this,{inputs:[],outputs:[]})||this).trainable=!0,n.built=!1,n.name=null!=t.name?t.name:NA("sequential_"),null!=t.layers)for(var r,a=tv(t.layers);!(r=a()).done;){var i=r.value;n.add(i)}return n}qm(t,e);var n=t.prototype;return n.checkShape=function(e){if(e.inboundNodes[0].outputTensors[0].shape.some((function(e){return e<0})))throw new WR("Negative dimension size caused by adding layer "+e.name+" with input shape ["+e.inboundNodes[0].inputTensors[0].shape+"]")},n.add=function(e){var n,r=e instanceof t||e instanceof fD;if(r){if(1!==(n=e).outputs.length)throw new WR("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(1!==n.inputs.length)throw new WR("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(0===this.outputs.length){if(0===e.inboundNodes.length){if(null==e.batchInputShape)throw new WR("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");var a=VA({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(r)this.outputs=n.outputs,this.inputs=n.inputs;else{if(1!==e.inboundNodes.length)throw new WR("A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer "+e.name+" which has "+e.inboundNodes.length+" pre-existing inbound connections.");if(1!==e.inboundNodes[0].outputTensors.length)throw new WR("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=function e(t,n,r){if((null==n||null!=r&&r>0)&&(n=t.sourceLayer,r=t.nodeIndex),0===n.inboundNodes.length)return[t];var a=n.inboundNodes[r];if(0===a.inboundLayers.length)return a.inputTensors;for(var i=[],o=0;o<a.inboundLayers.length;o++)for(var s,u=tv(e(a.inputTensors[o],a.inboundLayers[o],a.nodeIndices[o]));!(s=u()).done;){var l=s.value;-1===i.indexOf(l)&&i.push(l)}return i}(this.outputs[0])}this.inboundNodes=[],new LA({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:GR(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map((function(e){return e.shape})),outputShapes:this.outputs[0].shape})}else{var i=e.apply(this.outputs[0]);if(Array.isArray(i))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[i],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1},n.pop=function(){if(0===this.layers.length)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),0===this.layers.length)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{var e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}},n.call=function(e,t){return null==this.model&&this.build(),this.model.call(e,t)},n.build=function(e){if(EA(e),0===this.inputs.length||0===this.outputs.length)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");
17this.model=new fD({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0},n.countParams=function(){return this.built||this.build(),e.prototype.countParams.call(this)},n.summary=function(t,n,r){void 0===r&&(r=console.log),this.built||this.build(),e.prototype.summary.call(this,t,n,r)},n.setWeights=function(e){null==this.model&&this.build(),this.model.setWeights(e)},n.evaluate=function(e,t,n){if(void 0===n&&(n={}),!this.built)throw new PR("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)},n.evaluateDataset=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.built){e.next=2;break}throw new PR("The model needs to be compiled before being used.");case 2:return e.abrupt("return",this.model.evaluateDataset(t,n));case 3:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.predict=function(e,t){return void 0===t&&(t={}),null==this.model&&this.build(),this.model.predict(e,t)},n.predictOnBatch=function(e){return null==this.model&&this.build(),this.model.predictOnBatch(e)},n.compile=function(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames},n.fit=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n,r){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===r&&(r={}),this.built){e.next=3;break}throw new PR("The model needs to be compiled before being used.");case 3:return e.abrupt("return",this.model.fit(t,n,r));case 4:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),n.fitDataset=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.built){e.next=2;break}throw new PR("The model needs to be compiled before being used.");case 2:return e.abrupt("return",this.model.fitDataset(t,n));case 3:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.trainOnBatch=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.model.trainOnBatch(t,n));case 1:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.fromConfig=function(e,n,r,a){var i;void 0===r&&(r={}),void 0===a&&(a=!1);var o={};if(n instanceof Array){if(null==n[0].className||"Merge"===n[0].className)throw new WR("Legacy serialization format not supported yet.");i=n}else Ev(null!=n.layers,(function(){return"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."})),i=n.layers,delete n.layers,o=n;var s=new e(o);if(!(s instanceof t))throw new VR("Sequential.fromConfig called on non-Sequential input: "+s);for(var u,l=tv(i);!(u=l()).done;){var c=$A(u.value,void 0,a);a&&c.setFastWeightInitDuringBuild(!0),s.add(c)}return s},n.getConfig=function(){for(var e,t=[],n=tv(this.layers);!(e=n()).done;){var r=e.value,a={};a.className=r.getClassName(),a.config=r.getConfig(),t.push(a)}return{name:this.name,layers:t}},Hm(t,[{key:"optimizer",get:function(){return null==this.model?void 0:this.model.optimizer}
17,set:function(e){this.model.optimizer=e}},{key:"stopTraining",set:function(e){if(null==this.model)throw new WR("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e},get:function(){if(null==this.model)throw new WR("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}}]),t}(fD);function wD(e){return VA(e)}xD.className="Sequential",Zb(xD);var kD=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.getConfig=function(){return{}},t}(Yb),SD=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e,t){return void 0===t&&(t=1),function(e,t){if(void 0===t&&(t=1),1!==t)throw new VR("Support for alpha values other than 1 ("+t+") is not implemented yet.");return Vw(e)}(e,t)},t}(kD);SD.className="elu",Zb(SD);var ND=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e){return TS(e)},t}(kD);ND.className="selu",Zb(ND);var ID=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e){return wS(e)},t}(kD);ID.className="relu",Zb(ID);var CD=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e){return sx((function(){return zk(6,wS(e))}))},t}(kD);CD.className="relu6",Zb(CD);var RD=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e){return e},t}(kD);RD.className="linear",Zb(RD);var ED=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e){return nw(e)},t}(kD);ED.className="sigmoid",Zb(ED);var AD=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e){return function(e){return sx((function(){var t=fx(.5,vx(.2,e));return dw(t,0,1)}))}(e)},t}(kD);AD.className="hardSigmoid",Zb(AD);var TD=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e){return bk(e)},t}(kD);TD.className="softplus",Zb(TD);var DD=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e){return function(e){return sx((function(){return mx(e,gx(e).add(1))}))}(e)},t}(kD);DD.className="softsign",Zb(DD);var _D=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e){return aw(e)},t}(kD);_D.className="tanh",Zb(_D);var FD=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e,t){return void 0===t&&(t=-1),VS(e,t)},t}(kD);FD.className="softmax",Zb(FD);var OD=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e,t){return void 0===t&&(t=-1),Nk(e,t)},t}(kD);OD.className="logSoftmax",Zb(OD);var MD=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e,t){return void 0===t&&(t=1),sx((function(){return nw(e.mul(t)).mul(e)}))},t}(kD);function LD(e){return e.getClassName()}function zD(e,t){return void 0===t&&(t={}),QR(e,Jb.getMap().classNameMap,t,"activation")}function BD(e){if(null==e){var t={className:"linear",config:{}};return zD(t)}if("string"==typeof e){var n={};return n.className=e,n.config={},zD(n)}return e instanceof kD?e:zD(e)}function PD(e){if(null!=e&&"object"!=typeof e)throw new Error("Argument to L1L2 regularizer's constructor is expected to be an object, but received: "+e)}MD.className="swish",Zb(MD);var WD=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t}(Yb),VD=function(e){function t(t){var n;return n=e.call(this)||this,PD(t),n.l1=null==t||null==t.l1?.01:t.l1,n.l2=null==t||null==t.l2?.01:t.l2,n.hasL1=0!==n.l1,n.hasL2=0!==n.l2,n}qm(t,e);var n=t.prototype;return n.apply=function(e){var t=this;return sx((function(){var n=Fk([1]);return t.hasL1&&(n=fx(n,Sk(vx(t.l1,gx(e))))),t.hasL2&&(n=fx(n,Sk(vx(t.l2,KE(e))))),n.asScalar()}))},n.getConfig=function(){return{l1:this.l1,l2:this.l2}},t.fromConfig=function(e,t){return new e({l1:t.l1,l2:t.l2})},t}(WD);VD.className="L1L2",Zb(VD);var UD={l1l2:"L1L2"};function GD(e){return ZR(e)}function jD(e,t){return void 0===t&&(t={}),QR(e,Jb.getMap().classNameMap,t,"regularizer")}function HD(e){return null==e?null:"string"==typeof e?jD({className:e in UD?UD[e]:e,config:{}}):e instanceof WD?e:jD(e)}var qD=function(e){function t(t){var n;return(n=e.call(this,null==t?{}:t)||this).supportsMasking=!0,null!=t&&(n.maxValue=t.maxValue),n}qm(t,e);var n=t.prototype;return n.call=function(e,t){e=RA(e);var n=wS(e);return null!=this.maxValue&&(n=dw(n,0,this.maxValue)),n},n.computeOutputShape=function(e){return e},n.getConfig=function(){var t={maxValue:this.maxValue},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);qD.className="ReLU",Zb(qD);var KD=function(e){function t(t){var n;return(n=e.call(this,null==t?{}:t)||this).DEFAULT_ALPHA=.3,null==t&&(t={}),n.alpha=null==t.alpha?n.DEFAULT_ALPHA:t.alpha,n}qm(t,e);var n=t.prototype;return n.call=function(e,t){var n=RA(e);return uk(n,this.alpha)},n.computeOutputShape=function(e){return e},n.getConfig=function(){var t={alpha:this.alpha},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);KD.className="LeakyReLU",Zb(KD);var XD=function(e){function t(t){var n;if((n=e.call(this,null==t?{}:t)||this).DEFAULT_ALPHA_INITIALIZER="zeros",null==t&&(t={}),n.supportsMasking=!0,n.alphaInitializer=bA(t.alphaInitializer||n.DEFAULT_ALPHA_INITIALIZER),n.alphaRegularizer=HD(t.alphaRegularizer),n.alphaConstraint=mE(t.alphaConstraint),null==t.sharedAxes)n.sharedAxes=null;else if(Array.isArray(t.sharedAxes))n.sharedAxes=t.sharedAxes;else{if("number"!=typeof t.sharedAxes)throw new WR("Expected sharedAxes to be a number or an array of numbers, but got "+t.sharedAxes);n.sharedAxes=[t.sharedAxes]}return n}qm(t,e);var n=t.prototype;return n.build=function(e){var t=(e=EA(e)).slice(1);if(null!=this.sharedAxes)for(var n,r=tv(this.sharedAxes);!(n=r()).done;){t[n.value-1]=1}this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);var a={};if(null!=this.sharedAxes)for(var i=1;i<e.length;++i)a[i]=e[i];this.inputSpec=[new FA({ndim:e.length,axes:a})],this.built=!0},n.call=function(e,t){return e=RA(e),tS(e,this.alpha.read())},n.getConfig=function(){var t={alphaInitializer:yA(this.alphaInitializer),alphaRegularizer:GD(this.alphaRegularizer),alphaConstraint:fE(this.alphaConstraint),sharedAxes:this.sharedAxes},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);XD.className="PReLU",Zb(XD);var YD=function(e){function t(t){var n;if((n=e.call(this,null==t?{}:t)||this).DEFAULT_ALPHA=1,null==t&&(t={}),null!=t.alpha&&t.alpha!==n.DEFAULT_ALPHA)throw new VR("Non-default alpha value ("+t.alpha+") is not supported by the ELU layer yet.");
17return n.alpha=null==t.alpha?n.DEFAULT_ALPHA:t.alpha,n}qm(t,e);var n=t.prototype;return n.call=function(e,t){var n=RA(e);return Vw(n)},n.computeOutputShape=function(e){return e},n.getConfig=function(){var t={alpha:this.alpha},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);YD.className="ELU",Zb(YD);var JD=function(e){function t(t){var n;return(n=e.call(this,null==t?{}:t)||this).DEFAULT_THETA=1,null==t&&(t={}),n.theta=null==t.theta?n.DEFAULT_THETA:t.theta,n}qm(t,e);var n=t.prototype;return n.call=function(e,t){var n=RA(e);return n.mul(LE(n.greater(this.theta),"float32"))},n.computeOutputShape=function(e){return e},n.getConfig=function(){var t={theta:this.theta},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);JD.className="ThresholdedReLU",Zb(JD);var ZD=function(e){function t(t){var n;return(n=e.call(this,null==t?{}:t)||this).DEFAULT_AXIS=1,null==t&&(t={}),n.softmax=(new FD).apply,n.axis=null==t.axis?n.DEFAULT_AXIS:t.axis,n}qm(t,e);var n=t.prototype;return n.call=function(e,t){var n=RA(e);return this.softmax(n,this.axis)},n.computeOutputShape=function(e){return e},n.getConfig=function(){var t={axis:this.axis},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);function QD(e,t,n){if("number"==typeof e)return GR(e,t);if(e.length!==t)throw new WR("The "+n+" argument must be an integer or tuple of "+t+" integers. Received: "+e.length+" elements.");for(var r=0;r<t;++r){var a=e[r];if((i=a)!==parseInt(i.toString(),10))throw new WR("The "+n+" argument must be an integer or tuple of "+t+" integers. Received: "+JSON.stringify(e)+" including a non-integer number "+a)}return e;var i}function $D(e,t,n,r,a){return void 0===a&&(a=1),null==e?e:(i="same"===n?e:e-(t+(t-1)*(a-1))+1,Math.floor((i+r-1)/r));var i}function e_(e,t,n,r){if(null==e)return null;if("valid"===r)e=e*t+OE([n-t,0]);else{if("same"!==r)throw new WR("Unsupport padding mode: "+r+".");e*=t}return e}function t_(e,t){return sx((function(){return kE(t),"channelsFirst"===t?xb(e,[0,2,3,1]):e}))}function n_(e,t){return sx((function(){return kE(t),"channelsFirst"===t?xb(e,[0,2,3,4,1]):e}))}function r_(e,t,n,r,a,i,o){return void 0===r&&(r=1),void 0===a&&(a="valid"),void 0===o&&(o=1),sx((function(){if(null==i&&(i="channelsLast"),kE(i),3!==e.shape.length)throw new WR("The input of a conv1dWithBias operation should be 3, but is "+e.shape.length+" instead.");if(3!==t.shape.length)throw new WR("The kernel for a conv1dWithBias operation should be 3, but is "+t.shape.length+" instead");if(null!=n&&1!==n.shape.length)throw new WR("The bias for a conv1dWithBias operation should be 1, but is "+t.shape.length+" instead");if("channelsFirst"===i&&(e=xb(e,[0,2,1])),"causal"===a)throw new VR("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");var s=xw(e,t,r,"same"===a?"same":"valid","NWC",o);return null!=n&&(s=YE(s,n)),s}))}function a_(e,t,n,r,a,i,o,s){return void 0===r&&(r=[1,1]),void 0===a&&(a="valid"),void 0===s&&(s=null),sx((function(){if(null==i&&(i="channelsLast"),kE(i),3!==e.rank&&4!==e.rank)throw new WR("conv2dWithBiasActivation expects input to be of rank 3 or 4, but received "+e.rank+".");if(3!==t.rank&&4!==t.rank)throw new WR("conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received "+e.rank+".");var u=t_(e,i);if("causal"===a)throw new VR("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return u=jN({x:u,filter:t,strides:r,pad:"same"===a?"same":"valid",dilations:o,dataFormat:"NHWC",bias:n,activation:s}),"channelsFirst"===i&&(u=xb(u,[0,3,1,2])),u}))}function i_(e,t,n,r,a,i,o){return void 0===r&&(r=[1,1,1]),void 0===a&&(a="valid"),sx((function(){if(null==i&&(i="channelsLast"),kE(i),4!==e.rank&&5!==e.rank)throw new WR("conv3dWithBias expects input to be of rank 4 or 5, but received "+e.rank+".");if(4!==t.rank&&5!==t.rank)throw new WR("conv3dWithBias expects kernel to be of rank 4 or 5, but received "+e.rank+".");var s=n_(e,i);if("causal"===a)throw new VR("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return s=Sw(s,t,r,"same"===a?"same":"valid","NDHWC",o),null!=n&&(s=YE(s,n)),"channelsFirst"===i&&(s=xb(s,[0,4,1,2,3])),s}))}ZD.className="Softmax",Zb(ZD);var o_=function(e){function t(n,r){var a;if((a=e.call(this,r)||this).bias=null,a.DEFAULT_KERNEL_INITIALIZER="glorotNormal",a.DEFAULT_BIAS_INITIALIZER="zeros",t.verifyArgs(r),a.rank=n,aE(a.rank,"rank"),1!==a.rank&&2!==a.rank&&3!==a.rank)throw new VR("Convolution layer for rank other than 1, 2, or 3 ("+
17a.rank+") is not implemented yet.");if(a.kernelSize=QD(r.kernelSize,n,"kernelSize"),a.strides=QD(null==r.strides?1:r.strides,n,"strides"),a.padding=null==r.padding?"valid":r.padding,SE(a.padding),a.dataFormat=null==r.dataFormat?"channelsLast":r.dataFormat,kE(a.dataFormat),a.activation=BD(r.activation),a.useBias=null==r.useBias||r.useBias,a.biasInitializer=bA(r.biasInitializer||a.DEFAULT_BIAS_INITIALIZER),a.biasConstraint=mE(r.biasConstraint),a.biasRegularizer=HD(r.biasRegularizer),a.activityRegularizer=HD(r.activityRegularizer),a.dilationRate=QD(null==r.dilationRate?1:r.dilationRate,n,"dilationRate"),1===a.rank&&Array.isArray(a.dilationRate)&&1!==a.dilationRate.length)throw new WR("dilationRate must be a number or an array of a single number for 1D convolution, but received "+JSON.stringify(a.dilationRate));if(2===a.rank){if("number"==typeof a.dilationRate)a.dilationRate=[a.dilationRate,a.dilationRate];else if(2!==a.dilationRate.length)throw new WR("dilationRate must be a number or array of two numbers for 2D convolution, but received "+JSON.stringify(a.dilationRate))}else if(3===a.rank)if("number"==typeof a.dilationRate)a.dilationRate=[a.dilationRate,a.dilationRate,a.dilationRate];else if(3!==a.dilationRate.length)throw new WR("dilationRate must be a number or array of three numbers for 3D convolution, but received "+JSON.stringify(a.dilationRate));return a}return qm(t,e),t.verifyArgs=function(e){if(jR("kernelSize"in e,"required key 'kernelSize' not in config"),"number"!=typeof e.kernelSize&&!rE(e.kernelSize,"number",1,3))throw new WR("BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received "+JSON.stringify(e.kernelSize)+".")},t.prototype.getConfig=function(){var t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:LD(this.activation),useBias:this.useBias,biasInitializer:yA(this.biasInitializer),biasRegularizer:GD(this.biasRegularizer),activityRegularizer:GD(this.activityRegularizer),biasConstraint:fE(this.biasConstraint)},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA),s_=function(e){function t(n,r){var a;return(a=e.call(this,n,r)||this).kernel=null,t.verifyArgs(r),a.filters=r.filters,aE(a.filters,"filters"),a.kernelInitializer=bA(r.kernelInitializer||a.DEFAULT_KERNEL_INITIALIZER),a.kernelConstraint=mE(r.kernelConstraint),a.kernelRegularizer=HD(r.kernelRegularizer),a}qm(t,e);var n=t.prototype;return n.build=function(e){var t;e=EA(e);var n="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[n])throw new WR("The channel dimension of the input should be defined. Found "+e[n]);var r=e[n],a=this.kernelSize.concat([r,this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:(t={},t[n]=r,t)}],this.built=!0},n.call=function(e,t){var n=this;return sx((function(){var t;e=RA(e);var r=null==n.bias?null:n.bias.read(),a=iE(n.activation.getClassName());if(null!=a&&2===n.rank)t=a_(e,n.kernel.read(),r,n.strides,n.padding,n.dataFormat,n.dilationRate,a);else{if(1===n.rank)t=r_(e,n.kernel.read(),r,n.strides[0],n.padding,n.dataFormat,n.dilationRate[0]);else if(2===n.rank)t=a_(e,n.kernel.read(),r,n.strides,n.padding,n.dataFormat,n.dilationRate);else{if(3!==n.rank)throw new VR("convolutions greater than 3D are not implemented yet.");t=i_(e,n.kernel.read(),r,n.strides,n.padding,n.dataFormat,n.dilationRate)}null!=n.activation&&(t=n.activation.apply(t))}return t}))},n.computeOutputShape=function(e){e=EA(e);for(var t=[],n="channelsLast"===this.dataFormat?e.slice(1,e.length-1):e.slice(2),r=0;r<n.length;++r){var a=$D(n[r],this.kernelSize[r],this.padding,this.strides[r],"number"==typeof this.dilationRate?this.dilationRate:this.dilationRate[r]);t.push(a)}var i=[e[0]];return"channelsLast"===this.dataFormat?(i=i.concat(t)).push(this.filters):(i.push(this.filters),i=i.concat(t)),i},n.getConfig=function(){var t={filters:this.filters,kernelInitializer:yA(this.kernelInitializer),kernelRegularizer:GD(this.kernelRegularizer),kernelConstraint:fE(this.kernelConstraint)},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t.verifyArgs=function(e){if(!("filters"in e)||"number"!=typeof e.filters||e.filters<1)throw new WR("Convolution layer expected config.filters to be a 'number' > 0 but got "+JSON.stringify(e.filters))},t}(o_),u_=function(e){function t(n){var r;return r=e.call(this,2,n)||this,t.verifyArgs(n),r}return qm(t,e),t.prototype.getConfig=function(){var t=e.prototype.getConfig.call(this);return delete t.rank,t},t.verifyArgs=function(e){if("number"!=typeof e.kernelSize&&!rE(e.kernelSize,"number",1,2))throw new WR("Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received "+JSON.stringify(e.kernelSize)+".")},t}(s_);u_.className="Conv2D",Zb(u_);var l_=function(e){function t(n){var r;return r=e.call(this,3,n)||this,t.verifyArgs(n),r}return qm(t,e),t.prototype.getConfig=function(){var t=e.prototype.getConfig.call(this);return delete t.rank,t},t.verifyArgs=function(e){if("number"!=typeof e.kernelSize&&(!Array.isArray(e.kernelSize)||1!==e.kernelSize.length&&3!==e.kernelSize.length))throw new WR("Conv3D expects config.kernelSize to be number or [number, number, number], but received "+JSON.stringify(e.kernelSize)+".")},t}(s_);l_.className="Conv3D",Zb(l_);var c_=function(e){function t(t){var n;if((n=e.call(this,t)||this).inputSpec=[new FA({ndim:4})],"same"!==n.padding&&"valid"!==n.padding)throw new WR("Conv2DTranspose currently supports only padding modes '
17same' and 'valid', but received padding mode "+n.padding);return n}qm(t,e);var n=t.prototype;return n.build=function(e){var t;if(4!==(e=EA(e)).length)throw new WR("Input should have rank 4; Received input shape: "+JSON.stringify(e));var n="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[n])throw new WR("The channel dimension of the inputs should be defined. Found `None`.");var r=e[n],a=this.kernelSize.concat([this.filters,r]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new FA({ndim:4,axes:(t={},t[n]=r,t)})],this.built=!0},n.call=function(e,t){var n=this;return sx((function(){var t=RA(e);if(4!==t.shape.length)throw new WR("Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-"+t.shape.length);var r,a,i=t.shape,o=i[0];"channelsFirst"===n.dataFormat?(r=2,a=3):(r=1,a=2);var s=i[r],u=i[a],l=n.kernelSize[0],c=n.kernelSize[1],p=n.strides[0],h=n.strides[1],f=[o,e_(s,p,l,n.padding),e_(u,h,c,n.padding),n.filters];"channelsLast"!==n.dataFormat&&(t=xb(t,[0,2,3,1]));var d=kw(t,n.kernel.read(),f,n.strides,n.padding);return"channelsLast"!==n.dataFormat&&(d=xb(d,[0,3,1,2])),null!=n.bias&&(d=YE(d,n.bias.read(),n.dataFormat)),null!=n.activation&&(d=n.activation.apply(d)),d}))},n.computeOutputShape=function(e){var t,n,r,a=(e=EA(e)).slice();"channelsFirst"===this.dataFormat?(t=1,n=2,r=3):(t=3,n=1,r=2);var i=this.kernelSize[0],o=this.kernelSize[1],s=this.strides[0],u=this.strides[1];return a[t]=this.filters,a[n]=e_(a[n],s,i,this.padding),a[r]=e_(a[r],u,o,this.padding),a},n.getConfig=function(){var t=e.prototype.getConfig.call(this);return delete t.dilationRate,t},t}(u_);c_.className="Conv2DTranspose",Zb(c_);var p_=function(e){function t(t,n){var r;if((r=e.call(this,t,n)||this).DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",r.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",r.depthwiseKernel=null,r.pointwiseKernel=null,null==n.filters)throw new WR("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(null!=n.kernelInitializer||null!=n.kernelRegularizer||null!=n.kernelConstraint)throw new WR("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(null!=n.padding&&"same"!==n.padding&&"valid"!==n.padding)throw new WR("SeparableConv"+r.rank+"D supports only padding modes: 'same' and 'valid', but received "+JSON.stringify(n.padding));return r.depthMultiplier=null==n.depthMultiplier?1:n.depthMultiplier,r.depthwiseInitializer=bA(n.depthwiseInitializer||r.DEFAULT_DEPTHWISE_INITIALIZER),r.depthwiseRegularizer=HD(n.depthwiseRegularizer),r.depthwiseConstraint=mE(n.depthwiseConstraint),r.pointwiseInitializer=bA(n.depthwiseInitializer||r.DEFAULT_POINTWISE_INITIALIZER),r.pointwiseRegularizer=HD(n.pointwiseRegularizer),r.pointwiseConstraint=mE(n.pointwiseConstraint),r}qm(t,e);var n=t.prototype;return n.build=function(e){var t;if((e=EA(e)).length<this.rank+2)throw new WR("Inputs to SeparableConv"+this.rank+"D should have rank "+(this.rank+2)+", but received input shape: "+JSON.stringify(e));var n="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[n]||e[n]<0)throw new WR("The channel dimension of the inputs should be defined, but found "+JSON.stringify(e[n]));for(var r=e[n],a=this.kernelSize.concat([r,this.depthMultiplier]),i=[],o=0;o<this.rank;++o)i.push(1);i.push(r*this.depthMultiplier,this.filters);this.depthwiseKernel=this.addWeight("depthwise_kernel",a,"float32",this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.pointwiseKernel=this.addWeight("pointwise_kernel",i,"float32",this.pointwiseInitializer,this.pointwiseRegularizer,!0,this.pointwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.inputSpec=[new FA({ndim:this.rank+2,axes:(t={},t[n]=r,t)})],this.built=!0},n.call=function(e,t){var n=this;return sx((function(){var t;if(e=RA(e),1===n.rank)throw new VR("1D separable convolution is not implemented yet.");return 2===n.rank&&("channelsFirst"===n.dataFormat&&(e=xb(e,[0,2,3,1])),t=DS(e,n.depthwiseKernel.read(),n.pointwiseKernel.read(),n.strides,n.padding,n.dilationRate,"NHWC")),n.useBias&&(t=YE(t,n.bias.read(),n.dataFormat)),null!=n.activation&&(t=n.activation.apply(t)),"channelsFirst"===n.dataFormat&&(t=xb(t,[0,3,1,2])),t}))},n.getConfig=function(){var t=e.prototype.getConfig.call(this);return delete t.rank,delete t.kernelInitializer,delete t.kernelRegularizer,delete t.kernelConstraint,t.depthwiseInitializer=yA(this.depthwiseInitializer),t.pointwiseInitializer=yA(this.pointwiseInitializer),t.depthwiseRegularizer=GD(this.depthwiseRegularizer),t.pointwiseRegularizer=GD(this.pointwiseRegularizer),t.depthwiseConstraint=fE(this.depthwiseConstraint),t.pointwiseConstraint=fE(this.pointwiseConstraint),t},t}(s_);p_.className="SeparableConv";var h_=function(e){function t(t){return e.call(this,2,t)||this}return qm(t,e),t}(p_);h_.className="SeparableConv2D",Zb(h_);var f_=function(e){function t(n){var r;return r=e.call(this,1,n)||this,t.verifyArgs(n),r.inputSpec=[{ndim:3}],r}return qm(t,e),t.prototype.getConfig=function(){var t=e.prototype.getConfig.call(this);return delete t.rank,delete t.dataFormat,t},t.verifyArgs=function(e){if("number"!=typeof e.kernelSize&&!rE(e.kernelSize,"number",1,1))throw new WR("Conv1D expects config.kernelSize to be number or number[] with length 1, but received "+JSON.stringify(e.kernelSize)+".")},t}(s_);f_.className="Conv1D",Zb(f_);var d_=function(e){function t(t){var n;return n=e.call(this,t)||this,"number"==typeof t.cropping?n.cropping=[[t.cropping,t.cropping],[t.cropping,t.cropping]]:"number"==typeof t.cropping[0]?n.cropping=[[t.cropping[0],t.cropping[0]],[t.cropping[1],t.cropping[1]]]:n.cropping=t.cropping,n.dataFormat=void 0===t.dataFormat?"channelsLast":t.dataFormat,n.inputSpec=[{ndim:4}],n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){return"channelsFirst"===this.dataFormat?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]},n.call=function(e,t){var n=this;return sx((function(){if(e=RA(e),"channelsLast"===n.dataFormat){var t=WE(e,n.cropping[0][0],e.shape[1]-n.cropping[0][0]-n.cropping[0][1],2);return WE(t,n.cropping[1][0],e.shape[2]-n.cropping[1][1]-n.cropping[1][0],3)}var r=WE(e,n.cropping[0][0],e.shape[2]-n.cropping[0][0]-n.cropping[0][1],3);return WE(r,n.cropping[1][0],e.shape[3]-n.cropping[1][1]-n.cropping[1][0],4)}))},n.getConfig=function(){var t={cropping:this.cropping,dataFormat:this.dataFormat},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);d_.className="Cropping2D",Zb(d_);var m_=function(e){function t(t){var n;return(n=e.call(this,t)||this).DEFAULT_SIZE=[2,2],n.inputSpec=[{ndim:4}],n.size=null==t.size?n.DEFAULT_SIZE:t.size,n.dataFormat=null==t.dataFormat?"channelsLast":t.dataFormat,n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){if("channelsFirst"===this.dataFormat){var t=null==e[2]?null:this.size[0]*e[2],n=null==e[3]?null:this.size[1]*e[3];return[e[0],e[1],t,n]}
17var r=null==e[1]?null:this.size[0]*e[1],a=null==e[2]?null:this.size[1]*e[2];return[e[0],r,a,e[3]]},n.call=function(e,t){var n=this;return sx((function(){var t=RA(e),r=t.shape;if("channelsFirst"===n.dataFormat){t=xb(t,[0,2,3,1]);var a=n.size[0]*r[2],i=n.size[1]*r[3],o=t.resizeNearestNeighbor([a,i]);return xb(o,[0,3,1,2])}var s=n.size[0]*r[1],u=n.size[1]*r[2];return t.resizeNearestNeighbor([s,u])}))},n.getConfig=function(){var t={size:this.size,dataFormat:this.dataFormat},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);m_.className="UpSampling2D",Zb(m_);var v_=function(e){function t(t){var n;return(n=e.call(this,2,t)||this).depthwiseKernel=null,n.depthMultiplier=null==t.depthMultiplier?1:t.depthMultiplier,n.depthwiseInitializer=bA(t.depthwiseInitializer||n.DEFAULT_KERNEL_INITIALIZER),n.depthwiseConstraint=mE(t.depthwiseConstraint),n.depthwiseRegularizer=HD(t.depthwiseRegularizer),n}qm(t,e);var n=t.prototype;return n.build=function(e){if((e=EA(e)).length<4)throw new WR("Inputs to DepthwiseConv2D should have rank 4. Received input shape: "+JSON.stringify(e)+".");var t="channelsFirst"===this.dataFormat?1:3;if(null==e[t]||e[t]<0)throw new WR("The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not ("+e[t]+").");var n=e[t],r=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",r,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0},n.call=function(e,t){var n=this;return sx((function(){e=RA(e);var t,r,a,i,o,s,u=(t=e,r=n.depthwiseKernel.read(),a=n.strides,i=n.padding,o=n.dataFormat,s=null,void 0===a&&(a=[1,1]),void 0===i&&(i="valid"),sx((function(){null==o&&(o="channelsLast"),kE(o);var e=t_(t,o);if(4!==t.rank)throw new WR("Input for depthwiseConv2d is required to be 4-D, but is instead "+t.rank+"-D");if(4!==r.rank)throw new WR("depthwiseKernel is required to be 4-D, but is instead "+r.rank+"-D");return e=Tw(e,r,a,"same"===i?"same":"valid","NHWC",s),"channelsFirst"===o&&(e=xb(e,[0,3,1,2])),e})));return n.useBias&&(u=YE(u,n.bias.read(),n.dataFormat)),null!=n.activation&&(u=n.activation.apply(u)),u}))},n.computeOutputShape=function(e){e=EA(e);var t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],r="channelsFirst"===this.dataFormat?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,a=$D(t,this.kernelSize[0],this.padding,this.strides[0]),i=$D(n,this.kernelSize[1],this.padding,this.strides[1]);return"channelsFirst"===this.dataFormat?[e[0],r,a,i]:[e[0],a,i,r]},n.getConfig=function(){var t=e.prototype.getConfig.call(this);return t.depthMultiplier=this.depthMultiplier,t.depthwiseInitializer=yA(this.depthwiseInitializer),t.depthwiseRegularizer=GD(this.depthwiseRegularizer),t.depthwiseConstraint=fE(this.depthwiseRegularizer),t},t}(o_);function g_(e,t,n,r){if(Array.isArray(e)){if(null!=t||null!=n)throw new WR("When inputs is an array, neither initialState or constants should be provided");null!=r&&(n=e.slice(e.length-r,e.length),e=e.slice(0,e.length-r)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function a(e){return null==e||Array.isArray(e)?e:[e]}return{inputs:e,initialState:t=a(t),constants:n=a(n)}}function y_(e,t,n,r,a,i,o,s){return void 0===r&&(r=!1),void 0===o&&(o=!1),void 0===s&&(s=!1),sx((function(){var u=t.shape.length;if(u<3)throw new WR("Input should be at least 3D, but is "+u+"D.");var l=[1,0].concat(ME(2,u));if(t=xb(t,l),null!=i)throw new VR("The rnn() functoin of the deeplearn.js backend does not support constants yet.");o&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),null!=a&&((a=a.asType("bool").asType("float32")).rank===u-1&&(a=jw(a,-1)),a=xb(a,l)),r&&(t=SS(t,0),null!=a&&(a=SS(a,0)));var c,p,h=[],f=n,d=t.shape[0],m=sN(t);null!=a&&(p=sN(a));for(var v,g=function(t){var n=m[t],r=sx((function(){return e(n,f)}));if(null==a)c=r[0],f=r[1];else{var i=sx((function(){var e=p[t],n=Hk(e).sub(e);return{output:r[0].mul(e).add(f[0].mul(n)),newStates:f.map((function(t,a){return r[1][a].mul(e).add(t.mul(n))}))}}));c=i.output,f=i.newStates}s&&h.push(c)},y=0;y<d;++y)g(y);if(s){v=ZS(h,1)}return[c,v,f]}))}v_.className="DepthwiseConv2D",Zb(v_);var b_=function(e){function t(t){var n,r;if(n=e.call(this,t)||this,null==t.cell)throw new WR("cell property is missing for the constructor of RNN.");if(null==(r=Array.isArray(t.cell)?new R_({cells:t.cell}):t.cell).stateSize)throw new WR("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");return n.cell=r,n.returnSequences=null!=t.returnSequences&&t.returnSequences,n.returnState=null!=t.returnState&&t.returnState,n.goBackwards=null!=t.goBackwards&&t.goBackwards,n._stateful=null!=t.stateful&&t.stateful,n.unroll=null!=t.unroll&&t.unroll,n.supportsMasking=!0,n.inputSpec=[new FA({ndim:3})],n.stateSpec=null,n.states_=null,n.numConstants=null,n.keptStates=[],n}qm(t,e);var n=t.prototype;return n.getStates=function(){return null==this.states_?ME(0,Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1).map((function(e){return null})):this.states_},n.setStates=function(e){this.states_=e},n.computeOutputShape=function(e){IA(e)&&(e=e[0]),e=e;var t=this.cell.stateSize;Array.isArray(t)||(t=[t]);var n,r=t[0];if(n=this.returnSequences?[e[0],e[1],r]:[e[0],r],this.returnState){for(var a,i=[],o=tv(t);!(a=o()).done;){var s=a.value;i.push([e[0],s])}return[n].concat(i)}return n},n.computeMask=function(e,t){var n=this;return sx((function(){Array.isArray(t)&&(t=t[0]);var e=n.returnSequences?t:null;if(n.returnState){var r=n.states.map((function(e){return null}));return[e].concat(r)}return e}))},n.build=function(e){if(null!=this.numConstants)throw new VR("Constants support is not implemented in RNN yet.");IA(e)&&(e=e[0]),e=e;var t=this.stateful?e[0]:null,n=e.slice(2);this.inputSpec[0]=new FA({shape:[t,null].concat(n)});var r,a=[e[0]].concat(e.slice(2));if(this.cell.build(a),r=Array.isArray(this.cell.stateSize)?this.cell.stateSize:[this.cell.stateSize],null!=this.stateSpec){if(!Fv(this.stateSpec.map((function(e){return e.shape[e.shape.length-1]})),r))throw new WR("An initialState was passed that is not compatible with cell.stateSize. Received stateSpec="+this.stateSpec+"; However cell.stateSize is "+this.cell.stateSize)}else this.stateSpec=r.map((function(e){return new FA({shape:[null,e]})}));this.stateful&&this.resetStates()},n.resetStates=function(e,t){var n=this;void 0===t&&(t=!1),sx((function(){if(!n.stateful)throw new BR("Cannot call resetStates() on an RNN Layer that is not stateful.");var r=n.inputSpec[0].shape[0];if(null==r)throw new WR("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==n.states_)Array.isArray(n.cell.stateSize)?n.states_=n.cell.stateSize.map((function(e){return Fk([r,e])})):n.states_=[Fk([r,n.cell.stateSize])];else if(null==e)ux(n.states_),null!=n.keptStates&&(ux(n.keptStates),n.keptStates=[]),Array.isArray(n.cell.stateSize)?n.states_=n.cell.stateSize.map((function(e){return Fk([r,e])})):n.states_[0]=Fk([r,n.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==n.states_.length)throw new WR("Layer "+n.name+" expects "+n.states_.length+" state(s), but it received "+e.length+" state value(s). Input received: "+e);!0===t?n.keptStates.push(n.states_.slice()):ux(n.states_);for(var a=0;a<n.states_.length;++a){var i=e[a],o=Array.isArray(n.cell.stateSize)?n.cell.stateSize[a]:n.cell.stateSize,s=[r,o];if(!Fv(i.shape,s))throw new WR("State "+a+" is incompatible with layer "+n.name+": expected shape="+s+", received shape="+i.shape);n.states_[a]=i}}n.states_=n.states_.map((function(e){return lx(e.clone())}))}))},n.apply=function(t,n){var r=null==n?null:n.initialState,a=null==n?null:n.constants;null==n&&(n={});var i=g_(t,r,a,this.numConstants);t=i.inputs,r=i.initialState,a=i.constants;var o=[],s=[];if(null!=r){n.initialState=r,o=o.concat(r),this.stateSpec=[];for(var u,l=tv(r);!(u=l()).done;){var c=u.value;this.stateSpec.push(new FA({shape:c.shape}))}s=s.concat(this.stateSpec)}if(null!=a&&(n.constants=a,o=o.concat(a),this.numConstants=a.length),o[0]instanceof OA){var p=[t].concat(o),h=this.inputSpec.concat(s),f=this.inputSpec;this.inputSpec=h;var d=e.prototype.apply.call(this,p,n);return this.inputSpec=f,d}return e.prototype.apply.call(this,t,n)},n.call=function(e,t){var n=this;return sx((function(){var r=null==t?null:t.mask,a=null==t?null:t.training,i=null==t?null:t.initialState;e=RA(e),null==i&&(i=n.stateful?n.states_:n.getInitialState(e));var o=Array.isArray(n.cell.stateSize)?n.cell.stateSize.length:1;if(i.length!==o)throw new WR("RNN Layer has "+o+" state(s) but was passed "+i.length+" initial state(s).");n.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");var s={training:a},u=y_((function(e,t){var r=n.cell.call([e].concat(t),s);return[r[0],r.slice(1)]}),e,i,n.goBackwards,r,null,n.unroll,n.returnSequences),l=u[0],c=u[1],p=u[2];n.stateful&&n.resetStates(p,a);var h=n.returnSequences?c:l;return n.returnState?[h].concat(p):h}))},n.getInitialState=function(e){var t=this;return sx((function(){var n=Fk(e.shape);return n=zE(n=Sk(n,[1,2])),Array.isArray(t.cell.stateSize)?t.cell.stateSize.map((function(e){return e>1?GE(n,[1,e]):n})):t.cell.stateSize>1?[GE(n,[1,t.cell.stateSize])]:[n]}))},n.setFastWeightInitDuringBuild=function(t){e.prototype.setFastWeightInitDuringBuild.call(this,t),null!=this.cell&&this.cell.setFastWeightInitDuringBuild(t)},n.getConfig=function(){var n=e.prototype.getConfig.call(this),r={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};
17null!=this.numConstants&&(r.numConstants=this.numConstants);var a=this.cell.getConfig();return this.getClassName()===t.className&&(r.cell={className:this.cell.getClassName(),config:a}),Object.assign({},a,n,r)},t.fromConfig=function(e,t,n){void 0===n&&(n={});var r=$A(t.cell,n);return new e(Object.assign(t,{cell:r}))},Hm(t,[{key:"states",get:function(){if(null==this.states_){for(var e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[],n=0;n<e;++n)t.push(null);return t}return this.states_},set:function(e){this.states_=e}},{key:"trainableWeights",get:function(){return this.trainable?this.cell.trainableWeights:[]}},{key:"nonTrainableWeights",get:function(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}}]),t}(BA);b_.className="RNN",Zb(b_);var x_=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t}(BA),w_=function(e){function t(t){var n;return(n=e.call(this,t)||this).DEFAULT_ACTIVATION="tanh",n.DEFAULT_KERNEL_INITIALIZER="glorotNormal",n.DEFAULT_RECURRENT_INITIALIZER="orthogonal",n.DEFAULT_BIAS_INITIALIZER="zeros",n.units=t.units,aE(n.units,"units"),n.activation=BD(null==t.activation?n.DEFAULT_ACTIVATION:t.activation),n.useBias=null==t.useBias||t.useBias,n.kernelInitializer=bA(t.kernelInitializer||n.DEFAULT_KERNEL_INITIALIZER),n.recurrentInitializer=bA(t.recurrentInitializer||n.DEFAULT_RECURRENT_INITIALIZER),n.biasInitializer=bA(t.biasInitializer||n.DEFAULT_BIAS_INITIALIZER),n.kernelRegularizer=HD(t.kernelRegularizer),n.recurrentRegularizer=HD(t.recurrentRegularizer),n.biasRegularizer=HD(t.biasRegularizer),n.kernelConstraint=mE(t.kernelConstraint),n.recurrentConstraint=mE(t.recurrentConstraint),n.biasConstraint=mE(t.biasConstraint),n.dropout=FE([1,OE([0,null==t.dropout?0:t.dropout])]),n.recurrentDropout=FE([1,OE([0,null==t.recurrentDropout?0:t.recurrentDropout])]),n.stateSize=n.units,n.dropoutMask=null,n.recurrentDropoutMask=null,n}qm(t,e);var n=t.prototype;return n.build=function(e){e=EA(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0},n.call=function(e,t){var n=this;return sx((function(){if(2!==(e=e).length)throw new WR("SimpleRNNCell expects 2 input Tensors, got "+e.length+".");var r=e[1];e=e[0];var a,i=null!=t.training&&t.training;0<n.dropout&&n.dropout<1&&null==n.dropoutMask&&(n.dropoutMask=E_({ones:function(){return Hk(e)},rate:n.dropout,training:i})),0<n.recurrentDropout&&n.recurrentDropout<1&&null==n.recurrentDropoutMask&&(n.recurrentDropoutMask=E_({ones:function(){return Hk(r)},rate:n.recurrentDropout,training:i}));var o=n.dropoutMask,s=n.recurrentDropoutMask;a=HE(null!=o?vx(e,o):e,n.kernel.read()),null!=n.bias&&(a=YE(a,n.bias.read())),null!=s&&(r=vx(r,s));var u=fx(a,HE(r,n.recurrentKernel.read()));return null!=n.activation&&(u=n.activation.apply(u)),[u,u]}))},n.getConfig=function(){var t=e.prototype.getConfig.call(this),n={units:this.units,activation:LD(this.activation),useBias:this.useBias,kernelInitializer:yA(this.kernelInitializer),recurrentInitializer:yA(this.recurrentInitializer),biasInitializer:yA(this.biasInitializer),kernelRegularizer:GD(this.kernelRegularizer),recurrentRegularizer:GD(this.recurrentRegularizer),biasRegularizer:GD(this.biasRegularizer),activityRegularizer:GD(this.activityRegularizer),kernelConstraint:fE(this.kernelConstraint),recurrentConstraint:fE(this.recurrentConstraint),biasConstraint:fE(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},t,n)},t}(x_);w_.className="SimpleRNNCell",Zb(w_);var k_=function(e){function t(t){return t.cell=new w_(t),e.call(this,t)||this}return qm(t,e),t.prototype.call=function(t,n){var r=this;return sx((function(){null!=r.cell.dropoutMask&&(ux(r.cell.dropoutMask),r.cell.dropoutMask=null),null!=r.cell.recurrentDropoutMask&&(ux(r.cell.recurrentDropoutMask),r.cell.recurrentDropoutMask=null);var a=null==n?null:n.mask,i=null==n?null:n.training,o=null==n?null:n.initialState;return e.prototype.call.call(r,t,{mask:a,training:i,initialState:o})}))},t.fromConfig=function(e,t){return new e(t)},t}(b_);k_.className="SimpleRNN",Zb(k_);var S_=function(e){function t(t){var n;if((n=e.call(this,t)||this).DEFAULT_ACTIVATION="tanh",n.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",n.DEFAULT_KERNEL_INITIALIZER="glorotNormal",n.DEFAULT_RECURRENT_INITIALIZER="orthogonal",n.DEFAULT_BIAS_INITIALIZER="zeros",t.resetAfter)throw new WR("GRUCell does not support reset_after parameter set to true.");return n.units=t.units,aE(n.units,"units"),n.activation=BD(void 0===t.activation?n.DEFAULT_ACTIVATION:t.activation),n.recurrentActivation=BD(void 0===t.recurrentActivation?n.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),n.useBias=null==t.useBias||t.useBias,n.kernelInitializer=bA(t.kernelInitializer||n.DEFAULT_KERNEL_INITIALIZER),n.recurrentInitializer=bA(t.recurrentInitializer||n.DEFAULT_RECURRENT_INITIALIZER),n.biasInitializer=bA(t.biasInitializer||n.DEFAULT_BIAS_INITIALIZER),n.kernelRegularizer=HD(t.kernelRegularizer),n.recurrentRegularizer=HD(t.recurrentRegularizer),n.biasRegularizer=HD(t.biasRegularizer),n.kernelConstraint=mE(t.kernelConstraint),n.recurrentConstraint=mE(t.recurrentConstraint),n.biasConstraint=mE(t.biasConstraint),n.dropout=FE([1,OE([0,null==t.dropout?0:t.dropout])]),n.recurrentDropout=FE([1,OE([0,null==t.recurrentDropout?0:t.recurrentDropout])]),n.implementation=t.implementation,n.stateSize=n.units,n.dropoutMask=null,n.recurrentDropoutMask=null,n}qm(t,e);var n=t.prototype;return n.build=function(e){var t=(e=EA(e))[e.length-1];this.kernel=this.addWeight("kernel",[t,3*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,3*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[3*this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0},n.call=function(e,t){var n=this;return sx((function(){if(2!==(e=e).length)throw new WR("GRUCell expects 2 input Tensors (inputs, h, c), got "+e.length+".");var r=null!=t.training&&t.training,a=e[1];e=e[0],0<n.dropout&&n.dropout<1&&null==n.dropoutMask&&(n.dropoutMask=E_({ones:function(){return Hk(e)},rate:n.dropout,training:r,count:3})),0<n.recurrentDropout&&n.recurrentDropout<1&&null==n.recurrentDropoutMask&&(n.recurrentDropoutMask=E_({ones:function(){return Hk(a)},rate:n.recurrentDropout,training:r,count:3}));var i,o,s,u=n.dropoutMask,l=n.recurrentDropoutMask;0<n.dropout&&n.dropout<1&&(e=vx(e,u[0]));var c=HE(e,n.kernel.read());n.useBias&&(c=YE(c,n.bias.read())),0<n.recurrentDropout&&n.recurrentDropout<1&&(a=vx(a,l[0]));var p=n.recurrentKernel.read(),h=qS(p,[2*n.units,n.units],p.rank-1),f=h[0],d=h[1],m=HE(a,f),v=qS(c,3,c.rank-1),g=v[0],y=v[1],b=v[2],x=qS(m,2,m.rank-1),w=x[0],k=x[1];i=n.recurrentActivation.apply(fx(g,w)),o=n.recurrentActivation.apply(fx(y,k));var S=HE(vx(o,a),d);s=n.activation.apply(fx(b,S));var N=fx(vx(i,a),vx(fx(1,yk(i)),s));return[N,N]}))},n.getConfig=function(){var t=e.prototype.getConfig.call(this),n={units:this.units,activation:LD(this.activation),recurrentActivation:LD(this.recurrentActivation),useBias:this.useBias,kernelInitializer:yA(this.kernelInitializer),recurrentInitializer:yA(this.recurrentInitializer),biasInitializer:yA(this.biasInitializer),kernelRegularizer:GD(this.kernelRegularizer),recurrentRegularizer:GD(this.recurrentRegularizer),biasRegularizer:GD(this.biasRegularizer),activityRegularizer:GD(this.activityRegularizer),kernelConstraint:fE(this.kernelConstraint),recurrentConstraint:fE(this.recurrentConstraint),biasConstraint:fE(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout,implementation:this.implementation,resetAfter:!1};return Object.assign({},t,n)},t}(x_);S_.className="GRUCell",Zb(S_);var N_=function(e){function t(t){return 0===t.implementation&&console.warn("`implementation=0` has been deprecated, and now defaults to `implementation=1`. Please update your layer call."),t.cell=new S_(t),e.call(this,t)||this}return qm(t,e),t.prototype.call=function(t,n){var r=this;return sx((function(){null!=r.cell.dropoutMask&&(ux(r.cell.dropoutMask),r.cell.dropoutMask=null),null!=r.cell.recurrentDropoutMask&&(ux(r.cell.recurrentDropoutMask),r.cell.recurrentDropoutMask=null);var a=null==n?null:n.mask,i=null==n?null:n.training,o=null==n?null:n.initialState;return e.prototype.call.call(r,t,{mask:a,training:i,initialState:o})}))},t.fromConfig=function(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)},t}(b_);N_.className="GRU",Zb(N_);var I_=function(e){function t(t){var n;return(n=e.call(this,t)||this).DEFAULT_ACTIVATION="tanh",n.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",n.DEFAULT_KERNEL_INITIALIZER="glorotNormal",n.DEFAULT_RECURRENT_INITIALIZER="orthogonal",n.DEFAULT_BIAS_INITIALIZER="zeros",n.units=t.units,aE(n.units,"units"),n.activation=BD(void 0===t.activation?n.DEFAULT_ACTIVATION:t.activation),n.recurrentActivation=BD(void 0===t.recurrentActivation?n.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),n.useBias=null==t.useBias||t.useBias,n.kernelInitializer=bA(t.kernelInitializer||n.DEFAULT_KERNEL_INITIALIZER),n.recurrentInitializer=bA(t.recurrentInitializer||n.DEFAULT_RECURRENT_INITIALIZER),n.biasInitializer=bA(t.biasInitializer||n.DEFAULT_BIAS_INITIALIZER),n.unitForgetBias=t.unitForgetBias,n.kernelRegularizer=HD(t.kernelRegularizer),n.recurrentRegularizer=HD(t.recurrentRegularizer),n.biasRegularizer=HD(t.biasRegularizer),n.kernelConstraint=mE(t.kernelConstraint),n.recurrentConstraint=mE(t.recurrentConstraint),n.biasConstraint=mE(t.biasConstraint),n.dropout=FE([1,OE([0,null==t.dropout?0:t.dropout])]),n.recurrentDropout=FE([1,OE([0,null==t.recurrentDropout?0:t.recurrentDropout])]),n.implementation=t.implementation,n.stateSize=[n.units,n.units],n.dropoutMask=null,n.recurrentDropoutMask=null,n}qm(t,e);var n=t.prototype;
17return n.build=function(e){var t,n,r=(e=EA(e))[e.length-1];if(this.kernel=this.addWeight("kernel",[r,4*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,4*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){if(this.unitForgetBias){var a=this.biasInitializer,i=this.units;n=new((t=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e,t){var n=a.apply([i]),r=(new nA).apply([i]),o=a.apply([2*i]);return UE(UE(n,r),o)},t}(eA)).className="CustomInit",t)}else n=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.units],null,n,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0},n.call=function(e,t){var n=this;return sx((function(){var r=null!=t.training&&t.training;if(3!==(e=e).length)throw new WR("LSTMCell expects 3 input Tensors (inputs, h, c), got "+e.length+".");var a=e[1],i=e[2];e=e[0],0<n.dropout&&n.dropout<1&&null==n.dropoutMask&&(n.dropoutMask=E_({ones:function(){return Hk(e)},rate:n.dropout,training:r,count:4})),0<n.recurrentDropout&&n.recurrentDropout<1&&null==n.recurrentDropoutMask&&(n.recurrentDropoutMask=E_({ones:function(){return Hk(a)},rate:n.recurrentDropout,training:r,count:4}));var o,s,u,l,c=n.dropoutMask,p=n.recurrentDropoutMask;0<n.dropout&&n.dropout<1&&(e=vx(e,c[0]));var h=HE(e,n.kernel.read());0<n.recurrentDropout&&n.recurrentDropout<1&&(a=vx(a,p[0])),h=fx(h,HE(a,n.recurrentKernel.read())),n.useBias&&(h=YE(h,n.bias.read()));var f=qS(h,4,h.rank-1),d=f[0],m=f[1],v=f[2],g=f[3];o=n.recurrentActivation.apply(d),s=n.recurrentActivation.apply(m),u=fx(vx(s,i),vx(o,n.activation.apply(v))),l=n.recurrentActivation.apply(g);var y=vx(l,n.activation.apply(u));return[y,y,u]}))},n.getConfig=function(){var t=e.prototype.getConfig.call(this),n={units:this.units,activation:LD(this.activation),recurrentActivation:LD(this.recurrentActivation),useBias:this.useBias,kernelInitializer:yA(this.kernelInitializer),recurrentInitializer:yA(this.recurrentInitializer),biasInitializer:yA(this.biasInitializer),unitForgetBias:this.unitForgetBias,kernelRegularizer:GD(this.kernelRegularizer),recurrentRegularizer:GD(this.recurrentRegularizer),biasRegularizer:GD(this.biasRegularizer),activityRegularizer:GD(this.activityRegularizer),kernelConstraint:fE(this.kernelConstraint),recurrentConstraint:fE(this.recurrentConstraint),biasConstraint:fE(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout,implementation:this.implementation};return Object.assign({},t,n)},t}(x_);I_.className="LSTMCell",Zb(I_);var C_=function(e){function t(t){return 0===t.implementation&&console.warn("`implementation=0` has been deprecated, and now defaults to `implementation=1`. Please update your layer call."),t.cell=new I_(t),e.call(this,t)||this}return qm(t,e),t.prototype.call=function(t,n){var r=this;return sx((function(){null!=r.cell.dropoutMask&&(ux(r.cell.dropoutMask),r.cell.dropoutMask=null),null!=r.cell.recurrentDropoutMask&&(ux(r.cell.recurrentDropoutMask),r.cell.recurrentDropoutMask=null);var a=null==n?null:n.mask,i=null==n?null:n.training,o=null==n?null:n.initialState;return e.prototype.call.call(r,t,{mask:a,training:i,initialState:o})}))},t.fromConfig=function(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)},t}(b_);C_.className="LSTM",Zb(C_);var R_=function(e){function t(t){var n;return(n=e.call(this,t)||this).cells=t.cells,n}qm(t,e);var n=t.prototype;return n.call=function(e,t){var n=this;return sx((function(){for(var r,a=(e=e).slice(1),i=[],o=tv(n.cells.slice().reverse());!(r=o()).done;){var s=r.value;Array.isArray(s.stateSize)?i.push(a.splice(0,s.stateSize.length)):i.push(a.splice(0,1))}i.reverse();for(var u,l=[],c=0;c<n.cells.length;++c){var p=n.cells[c];a=i[c],u=0===c?[e[0]].concat(a):[u[0]].concat(a),u=p.call(u,t),l.push(u.slice(1))}a=[];for(var h,f=tv(l.slice().reverse());!(h=f()).done;){var d,m=h.value;(d=a).push.apply(d,m)}return[u[0]].concat(a)}))},n.build=function(e){var t;
17IA(e)&&(e=e[0]),e=e,this.cells.forEach((function(n,r){CE("RNNCell_"+r,(function(){n.build(e),t=Array.isArray(n.stateSize)?n.stateSize[0]:n.stateSize,e=[e[0],t]}))})),this.built=!0},n.getConfig=function(){var t=e.prototype.getConfig.call(this),n={cells:this.cells.map((function(e){return{className:e.getClassName(),config:e.getConfig()}}))};return Object.assign({},t,n)},t.fromConfig=function(e,t,n){void 0===n&&(n={});for(var r,a=[],i=tv(t.cells);!(r=i()).done;){var o=r.value;a.push($A(o,n))}return new e({cells:a})},n.getWeights=function(){for(var e,t=[],n=tv(this.cells);!(e=n()).done;){var r=e.value;t.push.apply(t,r.weights)}return DA(t)},n.setWeights=function(e){for(var t,n=[],r=tv(this.cells);!(t=r()).done;)for(var a=t.value,i=a.weights.length,o=e.splice(i),s=0;s<a.weights.length;++s)n.push([a.weights[s],o[s]]);_A(n)},Hm(t,[{key:"stateSize",get:function(){for(var e,t=[],n=tv(this.cells.slice().reverse());!(e=n()).done;){var r=e.value;Array.isArray(r.stateSize)?t.push.apply(t,r.stateSize):t.push(r.stateSize)}return t}},{key:"trainableWeights",get:function(){if(!this.trainable)return[];for(var e,t=[],n=tv(this.cells);!(e=n()).done;){var r=e.value;t.push.apply(t,r.trainableWeights)}return t}},{key:"nonTrainableWeights",get:function(){for(var e,t=[],n=tv(this.cells);!(e=n()).done;){var r=e.value;t.push.apply(t,r.nonTrainableWeights)}if(!this.trainable){for(var a,i=[],o=tv(this.cells);!(a=o()).done;){var s=a.value;i.push.apply(i,s.trainableWeights)}return i.concat(t)}return t}}]),t}(x_);function E_(e){var t=e.ones,n=e.rate,r=e.training,a=void 0!==r&&r,i=e.count,o=void 0===i?1:i,s=function(){return JE(t(),n)},u=function(){return ZE(s,t,a)};return!o||o<=1?lx(u().clone()):Array(o).fill(void 0).map(u).map((function(e){return lx(e.clone())}))}R_.className="StackedRNNCells",Zb(R_);var A_=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},T_=function(e){function t(t){var n;if(t.unroll)throw new VR("Unrolling is not possible with convolutional RNNs.");if(Array.isArray(t.cell))throw new VR("It is not possible at the moment to stack convolutional cells.");return(n=e.call(this,t)||this).inputSpec=[new FA({ndim:5})],n}qm(t,e);var n=t.prototype;return n.call=function(t,n){var r=this;return sx((function(){if(null!=r.cell.dropoutMask&&(ux(r.cell.dropoutMask),r.cell.dropoutMask=null),null!=r.cell.recurrentDropoutMask&&(ux(r.cell.recurrentDropoutMask),r.cell.recurrentDropoutMask=null),n&&n.constants)throw new WR("ConvRNN2D cell does not support constants");var a=null==n?null:n.mask,i=null==n?null:n.training,o=null==n?null:n.initialState;return e.prototype.call.call(r,t,{mask:a,training:i,initialState:o})}))},n.computeOutputShape=function(e){var t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0]].concat(t.slice(2))),this.returnState&&(t=[t].concat(Array(2).fill([e[0]].concat(t.slice(-3))))),t},n.getInitialState=function(e){var t=this;return sx((function(){var n=t.cell.stateSize,r=e.shape,a=t.computeSingleOutputShape(r),i=Fk([a[0]].concat(a.slice(2)));return Array.isArray(n)?Array(n.length).fill(i):[i]}))},n.resetStates=function(e,t){var n=this;void 0===t&&(t=!1),sx((function(){if(!n.stateful)throw new BR("Cannot call resetStates() on an RNN Layer that is not stateful.");var r=n.inputSpec[0].shape,a=n.computeSingleOutputShape(r),i=[a[0]].concat(a.slice(2));if(null==r[0])throw new WR("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==n.getStates())Array.isArray(n.cell.stateSize)?n.states_=n.cell.stateSize.map((function(){return Fk(i)})):n.states_=[Fk(i)];else if(null==e)ux(n.states_),null!=n.keptStates&&(ux(n.keptStates),n.keptStates=[]),Array.isArray(n.cell.stateSize)?n.states_=n.cell.stateSize.map((function(){return Fk(i)})):n.states_[0]=Fk(i);else{if(Array.isArray(e)||(e=[e]),e.length!==n.states_.length)throw new WR("Layer "+n.name+" expects "+n.states_.length+" state(s), but it received "+e.length+" state value(s). Input received: "+e);t?n.keptStates.push(n.states_.slice()):ux(n.states_);for(var o=0;o<n.states_.length;++o){var s=e[o],u=i;if(!Fv(s.shape,u))throw new WR("State "+o+" is incompatible with layer "+n.name+": expected shape="+u+", received shape="+s.shape);n.states_[o]=s}}n.states_=n.states_.map((function(e){return lx(e.clone())}))}))},n.computeSingleOutputShape=function(e){var t=this.cell,n=t.dataFormat,r=t.filters,a=t.kernelSize,i=t.padding,o=t.strides,s=t.dilationRate,u="channelsFirst"===n,l=e[u?3:2],c=e[u?4:3],p=$D(l,a[0],i,o[0],s[0]),h=$D(c,a[1],i,o[1],s[1]);return[].concat(e.slice(0,2),u?[r,p,h]:[p,h,r])},t}(b_);T_.className="ConvRNN2D";var D_=function(e){function t(t){var n,r=t.filters,a=t.kernelSize,i=t.strides,o=t.padding,s=t.dataFormat,u=t.dilationRate;return(n=e.call(this,Object.assign({},t,{units:r}))||this).filters=r,aE(n.filters,"filters"),n.kernelSize=QD(a,2,"kernelSize"),n.kernelSize.forEach((function(e){return aE(e,"kernelSize")}
17)),n.strides=QD(i||1,2,"strides"),n.strides.forEach((function(e){return aE(e,"strides")})),n.padding=o||"valid",SE(n.padding),n.dataFormat=s||"channelsLast",kE(n.dataFormat),n.dilationRate=QD(u||1,2,"dilationRate"),n.dilationRate.forEach((function(e){return aE(e,"dilationRate")})),n}qm(t,e);var n=t.prototype;return n.build=function(e){var t;e=EA(e);var n="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[n])throw new WR("The channel dimension of the input should be defined. Found "+e[n]);var r=e[n],a=this.kernelSize.concat([r,4*this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);var i=this.kernelSize.concat([this.filters,4*this.filters]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){var o;if(this.unitForgetBias){var s=this.biasInitializer,u=this.filters;o=new((t=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.apply=function(e,t){return VE([s.apply([u]),Ok([u]),s.apply([2*u])])},t}(eA)).className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.filters],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0},n.call=function(e,t){var n=this;return sx((function(){if(3!==e.length)throw new WR("ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got "+e.length+".");var r=t.training||!1,a=e[0],i=e[1],o=e[2];0<n.dropout&&n.dropout<1&&null==n.dropoutMask&&(n.dropoutMask=E_({ones:function(){return Hk(a)},rate:n.dropout,training:r,count:4}));var s=n.dropoutMask,u=function(e,t,n){return t&&t[n]?vx(t[n],e):e},l=u(a,s,0),c=u(a,s,1),p=u(a,s,2),h=u(a,s,3);0<n.recurrentDropout&&n.recurrentDropout<1&&null==n.recurrentDropoutMask&&(n.recurrentDropoutMask=E_({ones:function(){return Hk(i)},rate:n.recurrentDropout,training:r,count:4}));var f=n.recurrentDropoutMask,d=u(i,f,0),m=u(i,f,1),v=u(i,f,2),g=u(i,f,3),y=qS(n.kernel.read(),4,3),b=y[0],x=y[1],w=y[2],k=y[3],S=n.useBias?qS(n.bias.read(),4):[null,null,null,null],N=S[0],I=S[1],C=S[2],R=S[3];l=n.inputConv(l,b,N,n.padding),c=n.inputConv(c,x,I,n.padding),p=n.inputConv(p,w,C,n.padding),h=n.inputConv(h,k,R,n.padding);var E=qS(n.recurrentKernel.read(),4,3),A=E[0],T=E[1],D=E[2],_=E[3];d=n.recurrentConv(d,A),m=n.recurrentConv(m,T),v=n.recurrentConv(v,D),g=n.recurrentConv(g,_);var F=n.recurrentActivation.apply(fx(l,d)),O=n.recurrentActivation.apply(fx(c,m)),M=fx(vx(O,o),vx(F,n.activation.apply(fx(p,v)))),L=vx(n.recurrentActivation.apply(fx(h,g)),n.activation.apply(M));return[L,L,M]}))},n.getConfig=function(){var t=e.prototype.getConfig.call(this),n=(t.units,A_(t,["units"])),r={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,r)},n.inputConv=function(e,t,n,r){var a=bw(e,t,this.strides,r||"valid","channelsFirst"===this.dataFormat?"NCHW":"NHWC",this.dilationRate);return n?YE(a,n,this.dataFormat):a},n.recurrentConv=function(e,t){return bw(e,t,1,"same","channelsFirst"===this.dataFormat?"NCHW":"NHWC")},t}(I_);D_.className="ConvLSTM2DCell",Zb(D_);var __=function(e){function t(t){var n=new D_(t);return e.call(this,Object.assign({},t,{cell:n}))||this}return qm(t,e),t.fromConfig=function(e,t){return new e(t)},t}(T_);__.className="ConvLSTM2D",Zb(__);var F_=function(e){function t(t){var n;return(n=e.call(this,t)||this).rate=Math.max(Math.min(t.rate,1),0),n.noiseShape=t.noiseShape,n.seed=t.seed,n.supportsMasking=!0,n}qm(t,e);var n=t.prototype;return n.getNoiseShape=function(e){if(null==this.noiseShape)return this.noiseShape;for(var t=e.shape,n=[],r=0;r<this.noiseShape.length;++r)n.push(null==this.noiseShape[r]?t[r]:this.noiseShape[r]);return n},n.call=function(e,t){var n=this;return sx((function(){n.invokeCallHook(e,t);var r=RA(e);if(0<n.rate&&n.rate<1){var a=null!=t.training&&t.training,i=n.getNoiseShape(r);return ZE((function(){return JE(r,n.rate,i,n.seed)}),(function(){return r}),a)}return e}))},n.getConfig=function(){var t={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},n.dispose=function(){return e.prototype.dispose.call(this)},t}(BA);F_.className="Dropout",Zb(F_);var O_=function(e){function t(t){var n;return(n=e.call(this,t)||this).inputSpec=[{ndim:3}],n}return qm(t,e),t.prototype.getNoiseShape=function(e){var t=e.shape;return[t[0],1,t[2]]},t}(F_);O_.className="SpatialDropout1D",Zb(O_);var M_=function(e){function t(t){var n;if((n=e.call(this,t)||this).activation=null,n.useBias=!0,n.kernel=null,n.bias=null,n.DEFAULT_KERNEL_INITIALIZER="glorotNormal",n.DEFAULT_BIAS_INITIALIZER="zeros",null==t.batchInputShape&&null==t.inputShape&&null!=t.inputDim){var r=null;null!=t.batchSize&&(r=t.batchSize),n.batchInputShape=[r,t.inputDim]}return n.units=t.units,aE(n.units,"units"),n.activation=BD(t.activation),null!=t.useBias&&(n.useBias=t.useBias),n.kernelInitializer=bA(t.kernelInitializer||n.DEFAULT_KERNEL_INITIALIZER),n.biasInitializer=bA(t.biasInitializer||n.DEFAULT_BIAS_INITIALIZER),n.kernelConstraint=mE(t.kernelConstraint),n.biasConstraint=mE(t.biasConstraint),n.kernelRegularizer=HD(t.kernelRegularizer),n.biasRegularizer=HD(t.biasRegularizer),n.activityRegularizer=HD(t.activityRegularizer),n.supportsMasking=!0,n.inputSpec=[{minNDim:2}],n}qm(t,e);var n=t.prototype;return n.build=function(e){var t,n=(e=EA(e))[e.length-1];null==this.kernel&&(this.kernel=this.addWeight("kernel",[n,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:(t={},t[-1]=n,t)}],this.built=!0},n.computeOutputShape=function(e){var t=(e=EA(e)).slice();return t[t.length-1]=this.units,t},n.call=function(e,t){var n=this;return sx((function(){n.invokeCallHook(e,t);var r,a=RA(e),i=iE(n.activation.getClassName());
17return null!=i?r=HE(a,n.kernel.read(),i,n.bias?n.bias.read():null):(r=HE(a,n.kernel.read()),null!=n.bias&&(r=YE(r,n.bias.read())),null!=n.activation&&(r=n.activation.apply(r))),r}))},n.getConfig=function(){var t={units:this.units,activation:LD(this.activation),useBias:this.useBias,kernelInitializer:yA(this.kernelInitializer),biasInitializer:yA(this.biasInitializer),kernelRegularizer:GD(this.kernelRegularizer),biasRegularizer:GD(this.biasRegularizer),activityRegularizer:GD(this.activityRegularizer),kernelConstraint:fE(this.kernelConstraint),biasConstraint:fE(this.biasConstraint)},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);M_.className="Dense",Zb(M_);var L_=function(e){function t(t){var n;return t=t||{},(n=e.call(this,t)||this).inputSpec=[{minNDim:3}],n.dataFormat=t.dataFormat,n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){for(var t,n=tv((e=EA(e)).slice(1));!(t=n()).done;){if(null==t.value)throw new WR('The shape of the input to "Flatten" is not fully defined (got '+e.slice(1)+'). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.')}return[e[0],DE(e,1)]},n.call=function(e,t){var n=this;return sx((function(){n.invokeCallHook(e,t);var r=RA(e);if("channelsFirst"===n.dataFormat&&r.rank>1){for(var a=[0],i=2;i<r.rank;++i)a.push(i);a.push(1),r=r.transpose(a)}return function(e){if(e.rank<=1)throw new WR("batchFlatten requires a minimum rank of 2. Got rank: "+e.rank+".");var t=[e.shape[0],DE(e.shape,1)];return e.reshape(t)}(r)}))},n.getConfig=function(){var t={};null!=this.dataFormat&&(t.dataFormat=this.dataFormat);var n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);L_.className="Flatten",Zb(L_);var z_=function(e){function t(t){var n;return(n=e.call(this,t)||this).supportsMasking=!0,n.activation=BD(t.activation),n}qm(t,e);var n=t.prototype;return n.call=function(e,t){var n=this;return sx((function(){n.invokeCallHook(e,t);var r=RA(e);return n.activation.apply(r)}))},n.getConfig=function(){var t={activation:LD(this.activation)},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);z_.className="Activation",Zb(z_);var B_=function(e){function t(t){var n;return(n=e.call(this,t)||this).n=t.n,n.inputSpec=[{ndim:2}],n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){return[e[0],this.n,e[1]]},n.call=function(e,t){var n=this;return sx((function(){return e=RA(e),t=e,r=n.n,sx((function(){if(2!==t.shape.length)throw new WR("repeat() expects a rank-2 tensor, but received a rank-"+t.shape.length+" tensor.");return GE(zE(t,1),[1,r,1])}));var t,r}))},n.getConfig=function(){var t={n:this.n},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);B_.className="RepeatVector",Zb(B_);var P_=function(e){function t(t){var n;(n=e.call(this,t)||this).targetShape=t.targetShape;for(var r=0;r<n.targetShape.length;++r)n.isUnknown(n.targetShape[r])&&(n.targetShape[r]=null);return n}qm(t,e);var n=t.prototype;return n.isUnknown=function(e){return e<0||null==e},n.fixUnknownDimension=function(e,t){for(var n="Total size of new array must be unchanged.",r=t.slice(),a=1,i=null,o=0;o<r.length;++o){var s=r[o];if(this.isUnknown(s)){if(null!==i)throw new WR("Can only specifiy one unknown dimension.");i=o}else a*=s}var u=DE(e);if(null!==i){if(0===a||u%a!=0)throw new WR(n);r[i]=u/a}else if(u!==a)throw new WR(n);return r},n.computeOutputShape=function(e){for(var t=!1,n=0;n<e.length;++n)if(this.isUnknown(e[n])){t=!0;break}return t?e.slice(0,1).concat(this.targetShape):e.slice(0,1).concat(this.fixUnknownDimension(e.slice(1),this.targetShape))},n.call=function(e,t){var n=this;return sx((function(){n.invokeCallHook(e,t);var r=RA(e),a=r.shape,i=a.slice(0,1).concat(n.fixUnknownDimension(a.slice(1),n.targetShape));return r.reshape(i)}))},n.getConfig=function(){var t={targetShape:this.targetShape},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);P_.className="Reshape",Zb(P_);var W_=function(e){function t(t){var n;if(n=e.call(this,t)||this,null==t.dims)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(t.dims))throw new Error("Permute constructor requires `dims` to be an Array, but received "+t.dims+" instead.");var r=ME(1,t.dims.length+1);if(!Fv(t.dims.slice().sort(),r))throw new Error("Invalid permutation `dims`: "+JSON.stringify(t.dims)+" `dims` must contain consecutive integers starting from 1.");return n.dims=t.dims,n.dimsIncludingBatch=[0].concat(n.dims),n.inputSpec=[new FA({ndim:n.dims.length+1})],n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){var t=(e=EA(e)).slice();
17return this.dims.forEach((function(n,r){t[r+1]=e[n]})),t},n.call=function(e,t){return xb(RA(e),this.dimsIncludingBatch)},n.getConfig=function(){var t={dims:this.dims},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);W_.className="Permute",Zb(W_);var V_=function(e){function t(t){var n;return(n=e.call(this,null==t?{}:t)||this).supportsMasking=!0,n.maskValue=null!=t?null==t.maskValue?0:t.maskValue:0,n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){return e},n.getConfig=function(){var t=e.prototype.getConfig.call(this),n={maskValue:this.maskValue};return Object.assign(n,t),n},n.computeMask=function(e,t){var n=RA(e);return Tx(Gk(n,this.maskValue),-1)},n.call=function(e,t){var n=this;return sx((function(){n.invokeCallHook(e,t);var r=RA(e),a=Tx(Gk(r,n.maskValue),-1,!0);return r.mul(a.asType(r.dtype))}))},t}(BA);V_.className="Masking",Zb(V_);var U_=function(e){function t(t){var n;if((n=e.call(this,t)||this).embeddings=null,n.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",null==t.batchInputShape&&null==t.inputShape){var r=null;null!=t.batchSize&&(r=t.batchSize),null==t.inputLength?n.batchInputShape=[r,null]:n.batchInputShape=[r].concat(KR(t.inputLength))}return n.inputDim=t.inputDim,aE(n.inputDim,"inputDim"),n.outputDim=t.outputDim,aE(n.outputDim,"outputDim"),n.embeddingsInitializer=bA(t.embeddingsInitializer||n.DEFAULT_EMBEDDINGS_INITIALIZER),n.embeddingsRegularizer=HD(t.embeddingsRegularizer),n.activityRegularizer=HD(t.activityRegularizer),n.embeddingsConstraint=mE(t.embeddingsConstraint),n.maskZero=t.maskZero,n.supportsMasking=t.maskZero,n.inputLength=t.inputLength,n}qm(t,e);var n=t.prototype;return n.build=function(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0},n.warnOnIncompatibleInputShape=function(e){},n.computeMask=function(e,t){var n=this;return sx((function(){return n.maskZero?(e=RA(e),Gk(e,Bw(e))):null}))},n.computeOutputShape=function(e){if(e=EA(e),null==this.inputLength)return[].concat(e,[this.outputDim]);var t=KR(this.inputLength);if(t.length!==e.length-1)throw new WR('"inputLength" is '+this.inputLength+", but received input shape has shape "+e);for(var n=0,r=0;r<t.length;++r){var a=t[r],i=e[r+1];if(null!=a&&null!=i&&a!==i)throw new WR('"inputLength" is '+this.inputLength+", but received input shape has shape "+e);null==a&&(t[n]=i),n++}return[e[0]].concat(t,[this.outputDim])},n.call=function(e,t){var n=this;return sx((function(){n.invokeCallHook(e,t);var r=RA(e);return"int32"!==r.dtype&&(r=LE(r,"int32")),qE(n.embeddings.read(),r.as1D()).reshape(EA(n.computeOutputShape(r.shape)))}))},n.getConfig=function(){var t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:yA(this.embeddingsInitializer),embeddingsRegularizer:GD(this.embeddingsRegularizer),activityRegularizer:GD(this.activityRegularizer),embeddingsConstraint:fE(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);U_.className="Embedding",Zb(U_);var G_=function(e){function t(t){var n;return(n=e.call(this,t||{})||this).supportsMasking=!0,n}qm(t,e);var n=t.prototype;return n.mergeFunction=function(e){throw new VR},n.computeElementwiseOpOutputShape=function(e,t){if(null==e||null==t)return null;if(e.length<t.length)return this.computeElementwiseOpOutputShape(t,e);if(0===t.length)return e;for(var n=e.slice(0,e.length-t.length),r=0;r<t.length;++r){var a=e[e.length-t.length+r],i=t[r];if(null==a||null==i||a<0||i<0)n.push(null);else if(1===a)n.push(i);else if(1===i)n.push(a);else{if(a!==i)throw new WR("Operands could not be broadcast together with shapes "+JSON.stringify(e)+" "+JSON.stringify(t));n.push(a)}}return n},n.build=function(e){if(Array.isArray(e)&&!Array.isArray(e[0])&&(e=[EA(e)]),(e=e).length<2)throw new WR("A merge layer should be called on an Array of at least 2 inputs. Got "+e.length+" input(s).");for(var t,n=[],r=tv(e);!(t=r()).done;){var a=t.value;null!=a&&null!==a[0]&&n.push(a[0])}if((n=eE(n)).length>1)throw new WR("Can not merge tensors with different batch sizes. Got tensors with shapes: "+JSON.stringify(e)+".");for(var i=null==e[0]?null:e[0].slice(1),o=1;o<e.length;++o){var s=null==e[o]?null:e[o].slice(1);i=this.computeElementwiseOpOutputShape(i,s)}var u=e.map((function(e){return e.length}));-1===e.indexOf(null)&&1===eE(u).length?this.reshapeRequired=!1:this.reshapeRequired=!0},n.call=function(e,t){var n=this;return sx((function(){if(e=e,n.reshapeRequired){var t=[],r=e.map((function(e){return e.rank}));if(-1===r.indexOf(null)){for(var a,i=OE(r),o=tv(e);!(a=o()).done;){for(var s=a.value,u=s.rank,l=0;l<i-u;++l)s=zE(s,1);t.push(s)}return n.mergeFunction(t)}for(var c,p=!1,h=tv(e);!(c=h()).done;){var f=c.value,d=f.rank;if(null==d){var m=f.shape,v=m[0],g=m.slice(1).concat([v]),y=f.reshape([v].concat(DE(m.slice(1))));y=(y=xb(y,[1,0])).reshape(g),t.push(y),p=!0}else if(d>
171){var b=ME(1,d).concat([0]);t.push(xb(f,b)),p=!0}else t.push(f)}var x=n.mergeFunction(t),w=x.rank;if(p)if(null==w){var k=x.shape,S=k[k.length-1],N=[S].concat(k.slice(0,k.length-1));x=xb(x.reshape([-1,S]),[1,0]).reshape(N)}else if(w>1){var I=[w-1].concat(ME(0,w-1));x=xb(x,I)}return x}return n.mergeFunction(e)}))},n.computeOutputShape=function(e){var t;t=null==(e=e)[0]?null:e[0].slice(1);for(var n=1;n<e.length;++n){var r=null==e[n]?null:e[n].slice(1);t=this.computeElementwiseOpOutputShape(t,r)}for(var a,i=[],o=tv(e);!(a=o()).done;){var s=a.value;null!=s&&null!==s[0]&&i.push(s[0])}return t=1===(i=eE(i)).length?i.concat(t):[null].concat(t)},n.computeMask=function(e,t){return sx((function(){if(null==t)return null;if(!Array.isArray(t))throw new WR("`mask` should be an Array");if(!Array.isArray(e))throw new WR("`inputs` should be an Array");if(t.length!==e.length)throw new WR("The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths ("+e.length+" vs "+t.length+")");if(t.every((function(e){return null==e})))return null;for(var n=(t=t.map((function(e){return null==e?e:jw(e,0)})))[0],r=1;r<t.length-1;++r)n=Ck(n,t[r]);return n}))},t}(BA),j_=function(e){function t(t){return e.call(this,t)||this}return qm(t,e),t.prototype.mergeFunction=function(e){return sx((function(){for(var t=e[0].clone(),n=1;n<e.length;++n)t=fx(t,e[n]);return t}))},t}(G_);j_.className="Add",Zb(j_);var H_=function(e){function t(t){return e.call(this,t)||this}return qm(t,e),t.prototype.mergeFunction=function(e){return sx((function(){for(var t=e[0].clone(),n=1;n<e.length;++n)t=vx(t,e[n]);return t}))},t}(G_);H_.className="Multiply",Zb(H_);var q_=function(e){function t(t){return e.call(this,t)||this}return qm(t,e),t.prototype.mergeFunction=function(e){return sx((function(){for(var t=e[0].clone(),n=1;n<e.length;++n)t=fx(t,e[n]);return vx(1/e.length,t)}))},t}(G_);q_.className="Average",Zb(q_);var K_=function(e){function t(t){return e.call(this,t)||this}return qm(t,e),t.prototype.mergeFunction=function(e){return sx((function(){for(var t=e[0],n=1;n<e.length;++n)t=ok(t,e[n]);return t}))},t}(G_);K_.className="Maximum",Zb(K_);var X_=function(e){function t(t){return e.call(this,t)||this}return qm(t,e),t.prototype.mergeFunction=function(e){return sx((function(){for(var t=e[0],n=1;n<e.length;++n)t=zk(t,e[n]);return t}))},t}(G_);X_.className="Minimum",Zb(X_);var Y_=function(e){function t(t){var n;return(n=e.call(this,t)||this).DEFAULT_AXIS=-1,null==t&&(t={}),n.axis=null==t.axis?n.DEFAULT_AXIS:t.axis,n.supportsMasking=!0,n.reshapeRequired=!1,n}qm(t,e);var n=t.prototype;return n.build=function(e){if(!Array.isArray(e)||!Array.isArray(e[0])||1===e.length)throw new WR("A `Concatenate` layer should be called on a list of at least 2 inputs");for(var t,n=!0,r=tv(e=e);!(t=r()).done;){if(null!=t.value){n=!1;break}}if(!n){for(var a=[],i=0;i<e.length;++i){var o=e[i].slice();o.splice(this.axis,1);for(var s,u=!1,l=tv(a);!(s=l()).done;){if(Fv(s.value,o)){u=!0;break}}u||a.push(o)}if(a.length>1)throw new WR("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}},n.mergeFunction=function(e){var t=this;return sx((function(){return VE(e,t.axis)}))},n.computeOutputShape=function(e){if(!Array.isArray(e)||!Array.isArray(e[0]))throw new WR("A `Concatenate` layer should be called on a list of inputs.");for(var t,n=e,r=n[0].slice(),a=this.axis<0?r.length+this.axis:this.axis,i=tv(n.slice(1));!(t=i()).done;){var o=t.value;if(null==r[a]||null==o[a]){r[a]=null;break}r[a]+=o[a]}return r},n.computeMask=function(e,t){var n=this;if(null==t)return null;if(!Array.isArray(t))throw new WR("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new WR("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new WR("Mismatch in the length of mask ("+t.length+") and the legnth of inputs ("+e.length+")");return sx((function(){var r=!0;if(t.forEach((function(e){null==e||(r=!1)})),r)return null;for(var a=[],i=0;i<e.length;++i)null==t[i]?a.push(Hk(e[i]).asType("bool")):t[i].rank<e[i].rank?a.push(jw(t[i],-1)):a.push(t[i]);var o=tw(a,n.axis);return Ax(o,-1,!1)}))},n.getConfig=function(){var t={axis:this.axis},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(G_);function J_(e,t){for(;e<0;)e+=t;return e}Y_.className="Concatenate",Zb(Y_);var Z_=function(e){function t(t){var n;return(n=e.call(this,t)||this).axes=t.axes,n.normalize=null!=t.normalize&&t.normalize,n.supportsMasking=!0,n.reshapeRequired=!1,n}qm(t,e);var n=t.prototype;return n.build=function(e){Ev(Array.isArray(e)&&2===e.length&&Array.isArray(e[0])&&Array.isArray(e[1]),(function(){return"A `Dot` layer should be called on a list of exactly 2 inputs."}));var t=e[0],n=e[1];if(t.length>3||n.length>3)throw new VR("Dot layer does not support tensors of 4D or higher rank yet.");var r=this.interpretAxes(t,n);if(t[r[0]]!==n[r[1]])throw new WR("Dimension incompatibility: "+t[r[0]]+" !== "+n[r[1]])},n.mergeFunction=function(e){if(2!==e.length)throw new WR("A `Dot` layer must be called on exactly 2 inputs, but received "+e.length+" input(s).");var t,n=e[0],r=e[1];return t=Array.isArray(this.axes)?this.axes.map((function(t,n){return J_(t,e[n].shape.length)})):[J_(this.axes,n.shape.length),J_(this.axes,r.shape.length)],this.normalize&&(n=eT(n,t[0]),r=eT(r,t[1])),function(e,t,n){if(e.shape.length>3||t.shape.length>3)throw new VR("batchDot is not implemented for tensors of 4D or higher rank yet");if(Ev(e.shape.length>=2,(function(){return"batchDot requires the rank of x to be >= 2, but got "+e.shape.length})),Ev(e.shape.length>=2,(function(){return"batchDot requires the rank of y to be >= 2, but got "+t.shape.length})),"number"==typeof n&&(n=[n,n]),"complex64"===e.dtype||"complex64"===t.dtype)throw new VR("batchDot is not implemented for complex64-type Tensors yet.");var r=e.shape.length,a=t.shape.length;null==n&&(n=[r-1,a-2]);var i=n;return sx((function(){var n,o;if(r>a){n=r-a;for(var s=[],u=0;u<n;++u)s.push(1);
17t=t.reshape(t.shape.concat(s))}else if(a>r){n=a-r;for(var l=[],c=0;c<n;++c)l.push(1);e=e.reshape(e.shape.concat(l))}else n=0;if(2===e.shape.length&&2===t.shape.length)o=i[0]===i[1]?e.mul(t).sum(i[0]):e.transpose([1,0]).mul(t).sum(i[1]);else{var p=i[0]!==e.shape.length-1,h=i[1]===t.shape.length-1;o=e.matMul(t,p,h)}if(n>0){for(var f,d=[],m=f=r>a?r+a-3:r-1;m<f+n;++m)d.push(m);o=o.squeeze(d)}return 1===o.shape.length&&(o=o.expandDims(1)),o}))}(n,r,t)},n.interpretAxes=function(e,t){return Array.isArray(this.axes)?this.axes:[J_(this.axes,e.length),J_(this.axes,t.length)]},n.computeOutputShape=function(e){Ev(Array.isArray(e)&&2===e.length&&Array.isArray(e[0])&&Array.isArray(e[1]),(function(){return"A `Dot` layer should be called on a list of exactly 2 inputs."}));var t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new VR("Dot layer does not support tensors of 4D or higher rank yet.");var r=this.interpretAxes(t,n);t.splice(r[0],1),n.splice(r[1],1),n.splice(0,1);var a=t.concat(n);return 1===a.length&&a.push(1),a},n.computeMask=function(e,t){return null},n.getConfig=function(){var t={axes:this.axes,normalize:this.normalize},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(G_);Z_.className="Dot",Zb(Z_);var Q_=function(e){function t(t){var n;return(n=e.call(this,t)||this).supportsMasking=!0,n.stddev=t.stddev,n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){return e},n.getConfig=function(){var t=e.prototype.getConfig.call(this),n={stddev:this.stddev};return Object.assign(n,t),n},n.call=function(e,t){var n=this;return sx((function(){n.invokeCallHook(e,t);var r=RA(e);return ZE((function(){return jE(r.shape,0,n.stddev).add(r)}),(function(){return r}),t.training||!1)}))},t}(BA);Q_.className="GaussianNoise",Zb(Q_);var $_=function(e){function t(t){var n;return(n=e.call(this,t)||this).supportsMasking=!0,n.rate=t.rate,n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){return e},n.getConfig=function(){var t=e.prototype.getConfig.call(this),n={rate:this.rate};return Object.assign(n,t),n},n.call=function(e,t){var n=this;return sx((function(){n.invokeCallHook(e,t);var r=RA(e);if(n.rate>0&&n.rate<1){return ZE((function(){var e=Math.sqrt(n.rate/(1-n.rate));return r.mul(jE(r.shape,1,e))}),(function(){return r}),t.training||!1)}return r}))},t}(BA);$_.className="GaussianDropout",Zb($_);var eF=function(e){function t(t){var n;return(n=e.call(this,t)||this).supportsMasking=!0,n.rate=t.rate,n.noiseShape=t.noiseShape,n}qm(t,e);var n=t.prototype;return n._getNoiseShape=function(e){return this.noiseShape||RA(e).shape},n.computeOutputShape=function(e){return e},n.getConfig=function(){var t=e.prototype.getConfig.call(this),n={rate:this.rate};return Object.assign(n,t),n},n.call=function(e,t){var n=this;return sx((function(){if(n.rate<1&&n.rate>0){var r=n._getNoiseShape(e);return ZE((function(){var t=RA(e),a=-1.7580993408473766,i=tk(gS(r),n.rate);i=LE(i,"float32");var o=Math.pow((1-n.rate)*(1+n.rate*Math.pow(a,2)),-.5),s=-o*a*n.rate;return t.mul(i).add(i.add(-1).mul(a)).mul(o).add(s)}),(function(){return RA(e)}),t.training||!1)}return e}))},t}(BA);function tF(e,t,n,r,a,i){var o;if(void 0===i&&(i=.001),2===e.rank)o=lw(e,t,n,r,a,i);else if(3===e.rank)o=cw(e,t,n,r,a,i);else{if(4!==e.rank)throw new VR("batchNormalization is not implemented for array of rank "+e.rank+" yet");o=pw(e,t,n,r,a,i)}return o}function nF(e,t,n,r,a){return void 0===a&&(a=.001),Fv(r.slice().sort(),ME(0,e.rank-1))?function(e,t,n,r,a){return void 0===a&&(a=.001),sx((function(){var i=Wk(e,r),o=i.mean,s=i.variance;return[tF(e,o,s,n,t,a),o,s]}))}(e,t,n,r,a):function(e,t,n,r,a){return void 0===a&&(a=.001),sx((function(){for(var i,o=Wk(e,r),s=o.mean,u=o.variance,l=[],c=tv(ME(0,e.rank));!(i=c()).done;){var p=i.value;-1!==r.indexOf(p)?l.push(1):l.push(e.shape[p])}var h=s.reshape(l),f=u.reshape(l),d=null==t?null:t.reshape(l),m=null==n?null:n.reshape(l);return[tF(e,h,f,m,d,a),s,u]}))}(e,t,n,r,a)}eF.className="AlphaDropout",Zb(eF);var rF=function(e){function t(t){var n;return null==t&&(t={}),(n=e.call(this,t)||this).supportsMasking=!0,n.axis=null==t.axis?-1:t.axis,n.momentum=null==t.momentum?.99:t.momentum,n.epsilon=null==t.epsilon?.001:t.epsilon,n.center=null==t.center||t.center,n.scale=null==t.scale||t.scale,n.betaInitializer=bA(t.betaInitializer||"zeros"),n.gammaInitializer=bA(t.gammaInitializer||"ones"),n.movingMeanInitializer=bA(t.movingMeanInitializer||"zeros"),n.movingVarianceInitializer=bA(t.movingVarianceInitializer||"ones"),n.betaConstraint=mE(t.betaConstraint),n.gammaConstraint=mE(t.gammaConstraint),n.betaRegularizer=HD(t.betaRegularizer),n.gammaRegularizer=HD(t.gammaRegularizer),n}qm(t,e);var n=t.prototype;return n.build=function(e){var t;e=EA(e);var n=this.axis>=0?this.axis:this.axis+e.length,r=e[n];if(null==r)throw new WR("Axis "+n+" of input tensor should have a defined dimension but the layer received an input with shape "+JSON.stringify(e)+".");this.inputSpec=[new FA({ndim:e.length,axes:(t={},t[n]=r,t)})];var a=[r];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0},n.call=function(e,t){var n=this;return sx((function(){var r=null!=t.training&&t.training,a=RA(e),i=a.shape,o=i.length,s=ME(0,o),u=n.axis>=0?n.axis:n.axis+o;s.splice(u,1);var l=GR(1,o);l[u]=i[u];var c=s.slice();c.sort();var p=!Fv(c,ME(0,o).slice(0,o-1));if(!r)return function(){if(p){var e=n.movingMean.read().reshape(l),t=n.movingVariance.read().reshape(l),r=n.center?n.beta.read().reshape(l):null,i=n.scale?n.gamma.read().reshape(l):null;return tF(a,e,t,r,i,n.epsilon)}return tF(a,n.movingMean.read(),n.movingVariance.read(),null==n.beta?null:n.beta.read(),null==n.gamma?null:n.gamma.read(),n.epsilon)}();var h=nF(a,n.gamma.read(),n.beta.read(),s,n.epsilon),f=h[0],d=h[1],m=h[2],v=function(e,t,n){sx((function(){var r=1-n,a=e.read(),i=a.sub(t).mul(r);e.write(a.sub(i))}))};return v(n.movingMean,d,n.momentum),v(n.movingVariance,m,n.momentum),f}))},n.getConfig=function(){var t={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:yA(this.betaInitializer),gammaInitializer:yA(this.gammaInitializer),movingMeanInitializer:yA(this.movingMeanInitializer),movingVarianceInitializer:yA(this.movingVarianceInitializer),betaRegularizer:GD(this.betaRegularizer),gammaRegularizer:GD(this.gammaRegularizer),betaConstraint:fE(this.betaConstraint),gammaConstraint:fE(this.gammaConstraint)},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);rF.className="BatchNormalization",Zb(rF);var aF=function(e){function t(t){var n;if(null==t&&(t={}),(n=e.call(this,t)||this).axis=null==t.axis?-1:t.axis,"number"==typeof n.axis){if(!Number.isInteger(n.axis))throw new Error("Expected axis to be an integer, but received "+n.axis)}else{if(!Array.isArray(n.axis))throw new Error("Expected axis to be an integer or an array of integers, but received "+JSON.stringify(n.axis));for(var r,a=tv(n.axis);!(r=a()).done;){var i=r.value;if(!Number.isInteger(i))throw new Error("Expected axis to be an array of integers, but received "+JSON.stringify(n.axis))}}return n.epsilon=null==t.epsilon?.001:t.epsilon,n.center=null==t.center||t.center,n.scale=null==t.scale||t.scale,n.betaInitializer=bA(t.betaInitializer||"zeros"),n.gammaInitializer=bA(t.gammaInitializer||"ones"),n.betaRegularizer=HD(t.betaRegularizer),n.gammaRegularizer=HD(t.gammaRegularizer),n.supportsMasking=!0,n}qm(t,e);var n=t.prototype;return n.build=function(e){var t=(e=EA(e)).length;"number"==typeof this.axis&&(this.axis=[this.axis]);for(var n=0;n<this.axis.length;++n)this.axis[n]<0&&(this.axis[n]+=t);for(var r,a=tv(this.axis);!(r=a()).done;){var i=r.value;if(i<0||i>=t)throw new Error("Invalid axis: "+i)}if(this.axis.length!==eE(this.axis).length)throw new Error("Found duplicate axes in: "+this.axis);var o=this.axis.map((function(t){return e[t]}));this.scale?this.gamma=this.addWeight("gamma",o,"float32",this.gammaInitializer,this.gammaRegularizer,!0):this.gamma=null,this.center?this.beta=this.addWeight("beta",o,"float32",this.betaInitializer,this.betaRegularizer,!0):this.beta=null,this.built=!0},n.call=function(e,t){var n=this,r=RA(e),a=r.shape,i=a.length;return sx((function(){for(var e,t=Wk(r,n.axis,!0),o=t.mean,s=t.variance,u=GR(1,i),l=tv(n.axis);!(e=l()).done;){var c=e.value;u[c]=a[c]}for(var p=function(e){return null!=e&&e.shape.length!==i&&n.axis!==[i-1]?e.reshape(u):e},h=p(n.gamma.read()),f=p(n.beta.read()),d=[],m=[],v=0;v<i;++v)-1!==n.axis.indexOf(v)?(d.push(a[v]),m.push(1)):(d.push(1),m.push(a[v]));
17return o=o.tile(d),s=s.tile(d),h=h.tile(m),f=f.tile(m),tF(r,o,s,f,h,n.epsilon)}))},n.getConfig=function(){var t={axis:this.axis,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:yA(this.betaInitializer),gammaInitializer:yA(this.gammaInitializer),betaRegularizer:GD(this.betaRegularizer),gammaRegularizer:GD(this.gammaRegularizer)},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);aF.className="LayerNormalization",Zb(aF);var iF=function(e){function t(t){var n;if(null==t&&(t={}),(n=e.call(this,t)||this).dataFormat=null==t.dataFormat?"channelsLast":t.dataFormat,null==t.padding)n.padding=[[1,1],[1,1]];else if("number"==typeof t.padding)n.padding=[[t.padding,t.padding],[t.padding,t.padding]];else{if(t.padding=t.padding,2!==t.padding.length)throw new WR("ZeroPadding2D expects padding to be a length-2 array, but received a length-"+t.padding.length+" array.");var r,a;if("number"==typeof t.padding[0])r=[t.padding[0],t.padding[0]],a=[t.padding[1],t.padding[1]];else{if(t.padding=t.padding,2!==t.padding[0].length)throw new WR("ZeroPadding2D expects height padding to be a length-2 array, but received a length-"+t.padding[0].length+" array.");if(r=t.padding[0],2!==t.padding[1].length)throw new WR("ZeroPadding2D expects width padding to be a length-2 array, but received a length-"+t.padding[1].length+" array.");a=t.padding[1]}n.padding=[r,a]}return n.inputSpec=[new FA({ndim:4})],n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){var t,n;return e=EA(e),"channelsFirst"===this.dataFormat?(t=null!=e[2]&&e[2]>=0?e[2]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[3]&&e[3]>=0?e[3]+this.padding[1][0]+this.padding[1][1]:null,[e[0],e[1],t,n]):(t=null!=e[1]&&e[1]>=0?e[1]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[2]&&e[2]>=0?e[2]+this.padding[1][0]+this.padding[1][1]:null,[e[0],t,n,e[3]])},n.call=function(e,t){var n=this;return sx((function(){return t=RA(e),r=n.padding,a=n.dataFormat,sx((function(){if(4!==t.rank)throw new WR("temporalPadding expects input tensor to be 4-D, but received a "+t.rank+"-D tensor.");if(null==r&&(r=[[1,1],[1,1]]),2!==r.length||2!==r[0].length||2!==r[1].length)throw new WR("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(null==a&&(a="channelsLast"),"channelsLast"!==a&&"channelsFirst"!==a)throw new WR("Unknown data format: "+a+". Supported data formats are 'channelsLast' and 'channelsFirst.");var e;return e="channelsFirst"===a?[[0,0],[0,0],r[0],r[1]]:[[0,0],r[0],r[1],[0,0]],Kk(t,e)}));var t,r,a}))},n.getConfig=function(){var t={padding:this.padding,dataFormat:this.dataFormat},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA);function oF(e,t,n,r,a,i){return sx((function(){var o;kE(a),NE(i),SE(r),null==n&&(n=[1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==i&&(i="max"),e=t_(e,a);var s="same"===r?"same":"valid";return o="max"===i?Tk(e,t,n,s):Zx(e,t,n,s),"channelsFirst"===a&&(o=xb(o,[0,3,1,2])),o}))}function sF(e,t,n,r,a,i){return sx((function(){var o;kE(a),NE(i),SE(r),null==n&&(n=[1,1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==i&&(i="max"),e=n_(e,a);var s="same"===r?"same":"valid";return o="max"===i?Dk(e,t,n,s):Qx(e,t,n,s),"channelsFirst"===a&&(o=xb(o,[0,4,1,2,3])),o}))}iF.className="ZeroPadding2D",Zb(iF);var uF=function(e){function t(t){var n;if(null==t.poolSize&&(t.poolSize=2),n=e.call(this,t)||this,"number"==typeof t.poolSize)n.poolSize=[t.poolSize];else{if(!Array.isArray(t.poolSize)||1!==t.poolSize.length||"number"!=typeof t.poolSize[0])throw new WR("poolSize for 1D convolutional layer must be a number or an Array of a single number, but received "+JSON.stringify(t.poolSize));n.poolSize=t.poolSize}if(aE(n.poolSize,"poolSize"),null==t.strides)n.strides=n.poolSize;else if("number"==typeof t.strides)n.strides=[t.strides];else{if(!Array.isArray(t.strides)||1!==t.strides.length||"number"!=typeof t.strides[0])throw new WR("strides for 1D convolutional layer must be a number or an Array of a single number, but received "+JSON.stringify(t.strides));n.strides=t.strides}return aE(n.strides,"strides"),n.padding=null==t.padding?"valid":t.padding,SE(n.padding),n.inputSpec=[new FA({ndim:3})],n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){var t=$D((e=EA(e))[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]},n.call=function(e,t){var n=this;return sx((function(){n.invokeCallHook(e,t),e=zE(RA(e),2);var r=n.poolingFunction(RA(e),[n.poolSize[0],1],[n.strides[0],1],n.padding,"channelsLast");return JS(r,[2])}))},n.getConfig=function(){var t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA),lF=function(e){function t(t){return e.call(this,t)||this}return qm(t,e),t.prototype.poolingFunction=function(e,t,n,r,a){return kE(a),SE(r),oF(e,t,n,r,a,"max")},t}(uF);lF.className="MaxPooling1D",Zb(lF);var cF=function(e){function t(t){return e.call(this,t)||this}return qm(t,e),t.prototype.poolingFunction=function(e,t,n,r,a){return kE(a),SE(r),oF(e,t,n,r,a,"avg")},t}(uF);cF.className="AveragePooling1D",Zb(cF);var pF=function(e){function t(t){var n;if(null==t.poolSize&&(t.poolSize=[2,2]),(n=e.call(this,t)||this).poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize],null==t.strides)n.strides=n.poolSize;else if(Array.isArray(t.strides)){if(2!==t.strides.length)throw new WR("If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length "+t.strides.length+".");
17n.strides=t.strides}else n.strides=[t.strides,t.strides];return aE(n.poolSize,"poolSize"),aE(n.strides,"strides"),n.padding=null==t.padding?"valid":t.padding,n.dataFormat=null==t.dataFormat?"channelsLast":t.dataFormat,kE(n.dataFormat),SE(n.padding),n.inputSpec=[new FA({ndim:4})],n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){e=EA(e);var t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2];return t=$D(t,this.poolSize[0],this.padding,this.strides[0]),n=$D(n,this.poolSize[1],this.padding,this.strides[1]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n]:[e[0],t,n,e[3]]},n.call=function(e,t){var n=this;return sx((function(){return n.invokeCallHook(e,t),n.poolingFunction(RA(e),n.poolSize,n.strides,n.padding,n.dataFormat)}))},n.getConfig=function(){var t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA),hF=function(e){function t(t){return e.call(this,t)||this}return qm(t,e),t.prototype.poolingFunction=function(e,t,n,r,a){return kE(a),SE(r),oF(e,t,n,r,a,"max")},t}(pF);hF.className="MaxPooling2D",Zb(hF);var fF=function(e){function t(t){return e.call(this,t)||this}return qm(t,e),t.prototype.poolingFunction=function(e,t,n,r,a){return kE(a),SE(r),oF(e,t,n,r,a,"avg")},t}(pF);fF.className="AveragePooling2D",Zb(fF);var dF=function(e){function t(t){var n;if(null==t.poolSize&&(t.poolSize=[2,2,2]),(n=e.call(this,t)||this).poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize,t.poolSize],null==t.strides)n.strides=n.poolSize;else if(Array.isArray(t.strides)){if(3!==t.strides.length)throw new WR("If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length "+t.strides.length+".");n.strides=t.strides}else n.strides=[t.strides,t.strides,t.strides];return aE(n.poolSize,"poolSize"),aE(n.strides,"strides"),n.padding=null==t.padding?"valid":t.padding,n.dataFormat=null==t.dataFormat?"channelsLast":t.dataFormat,kE(n.dataFormat),SE(n.padding),n.inputSpec=[new FA({ndim:5})],n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){e=EA(e);var t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],r="channelsFirst"===this.dataFormat?e[4]:e[3];return t=$D(t,this.poolSize[0],this.padding,this.strides[0]),n=$D(n,this.poolSize[1],this.padding,this.strides[1]),r
17=$D(r,this.poolSize[2],this.padding,this.strides[2]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n,r]:[e[0],t,n,r,e[4]]},n.call=function(e,t){var n=this;return sx((function(){return n.invokeCallHook(e,t),n.poolingFunction(RA(e),n.poolSize,n.strides,n.padding,n.dataFormat)}))},n.getConfig=function(){var t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA),mF=function(e){function t(t){return e.call(this,t)||this}return qm(t,e),t.prototype.poolingFunction=function(e,t,n,r,a){return kE(a),SE(r),sF(e,t,n,r,a,"max")},t}(dF);mF.className="MaxPooling3D",Zb(mF);var vF=function(e){function t(t){return e.call(this,t)||this}return qm(t,e),t.prototype.poolingFunction=function(e,t,n,r,a){return kE(a),SE(r),sF(e,t,n,r,a,"avg")},t}(dF);vF.className="AveragePooling3D",Zb(vF);var gF=function(e){function t(t){var n;return(n=e.call(this,t)||this).inputSpec=[new FA({ndim:3})],n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){return[e[0],e[2]]},n.call=function(e,t){throw new VR},t}(BA),yF=function(e){function t(t){return e.call(this,t||{})||this}return qm(t,e),t.prototype.call=function(e,t){return sx((function(){var t=RA(e);return Mk(t,1)}))},t}(gF);yF.className="GlobalAveragePooling1D",Zb(yF);var bF=function(e){function t(t){return e.call(this,t||{})||this}return qm(t,e),t.prototype.call=function(e,t){return sx((function(){var t=RA(e);return wk(t,1)}))},t}(gF);bF.className="GlobalMaxPooling1D",Zb(bF);var xF=function(e){function t(t){var n;return(n=e.call(this,t)||this).dataFormat=null==t.dataFormat?"channelsLast":t.dataFormat,kE(n.dataFormat),n.inputSpec=[new FA({ndim:4})],n}qm(t,e);var n=t.prototype;return n.computeOutputShape=function(e){return e=e,"channelsLast"===this.dataFormat?[e[0],e[3]]:[e[0],e[1]]},n.call=function(e,t){throw new VR},n.getConfig=function(){var t={dataFormat:this.dataFormat},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t}(BA),wF=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.call=function(e,t){var n=this;return sx((function(){var t=RA(e);return"channelsLast"===n.dataFormat?Mk(t,[1,2]):Mk(t,[2,3])}))},t}(xF);wF.className="GlobalAveragePooling2D",Zb(wF);var kF=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.call=function(e,t){var n=this;return sx((function(){var t=RA(e);return"channelsLast"===n.dataFormat?wk(t,[1,2]):wk(t,[2,3])}))},t}(xF);kF.className="GlobalMaxPooling2D",Zb(kF);var SF=function(e){function t(t){var n;return(n=e.call(this,t)||this).layer=t.layer,n}qm(t,e);var n=t.prototype;return n.build=function(e){this.built=!0},n.getWeights=function(){return this.layer.getWeights()},n.setWeights=function(e){this.layer.setWeights(e)},n.getConfig=function(){var t={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},n.setFastWeightInitDuringBuild=function(t){e.prototype.setFastWeightInitDuringBuild.call(this,t),null!=this.layer&&this.layer.setFastWeightInitDuringBuild(t)},t.fromConfig=function(e,t,n){void 0===n&&(n={});var r=$A(t.layer,n);delete t.layer;var a={layer:r};return Object.assign(a,t),new e(a)},Hm(t,[{key:"trainable",get:function(){return null!=this.layer&&this.layer.trainable},set:function(e){null!=this.layer&&(this.layer.trainable=e)}},{key:"trainableWeights",get:function(){return this.layer.trainableWeights}},{key:"nonTrainableWeights",get:function(){return this.layer.nonTrainableWeights}},{key:"updates",get:function(){return this.layer._updates}},{key:"losses",get:function(){return this.layer.losses}}]),t}(BA),NF=function(e){function t(t){var n;return(n=e.call(this,t)||this).supportsMasking=!0,n}qm(t,e);var n=t.prototype;return n.build=function(t){if((t=EA(t)).length<3)throw new WR("TimeDistributed layer expects an input shape >= 3D, but received input shape "+JSON.stringify(t));this.inputSpec=[{shape:t}];var n=[t[0]].concat(t.slice(2));this.layer.built||(this.layer.build(n),this.layer.built=!0),e.prototype.build.call(this,t)},n.computeOutputShape=function(e){var t=[(e=EA(e))[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),r=e[1];return[n[0],r].concat(n.slice(1))},n.call=function(e,t){var n=this;return sx((function(){return y_((function(e,r){return[RA(n.layer.call(e,t)),[]]}),e=RA(e),[],!1,null,null,!1,!0)[1]}))},t}(SF);NF.className="TimeDistributed",Zb(NF);var IF=function(e){function t(t){var n;n=e.call(this,t)||this;var r=t.layer.getConfig(),a={};a.className=t.layer.getClassName(),a.config=r,n.forwardLayer=$A(a),r.goBackwards=!0!==r.goBackwards;var i,o={};if(o.className=t.layer.getClassName(),o.config=r,n.backwardLayer=$A(
17o),n.forwardLayer.name="forward_"+n.forwardLayer.name,n.backwardLayer.name="backward_"+n.backwardLayer.name,n.mergeMode=void 0===t.mergeMode?"concat":t.mergeMode,i=n.mergeMode,nE(xE,"BidirectionalMergeMode",i),t.weights)throw new VR("weights support is not implemented for Bidirectional layer yet.");return n._stateful=t.layer.stateful,n.returnSequences=t.layer.returnSequences,n.returnState=t.layer.returnState,n.supportsMasking=!0,n._trainable=!0,n.inputSpec=t.layer.inputSpec,n.numConstants=null,n}qm(t,e);var n=t.prototype;return n.getWeights=function(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())},n.setWeights=function(e){var t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))},n.computeOutputShape=function(e){var t,n,r,a=this.forwardLayer.computeOutputShape(e);return Array.isArray(a)&&Array.isArray(a[0])||(a=[a]),a=a,this.returnState?(r=a.slice(1),t=a[0]):t=a[0],t=t,"concat"===this.mergeMode?(t[t.length-1]*=2,n=[t]):n=null==this.mergeMode?[t,t.slice()]:[t],this.returnState?null==this.mergeMode?n.concat(r).concat(r.slice()):[t].concat(r).concat(r.slice()):qR(n)},n.apply=function(t,n){var r=null==n?null:n.initialState,a=null==n?null:n.constants;null==n&&(n={});var i=g_(t,r,a,this.numConstants);if(t=i.inputs,r=i.initialState,a=i.constants,Array.isArray(t)&&(r=t.slice(1),t=t[0]),(null==r||0===r.length)&&null==a)return e.prototype.apply.call(this,t,n);var o=[],s=[];if(null!=r){var u=r.length;if(u%2>0)throw new WR("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");n.initialState=r,o.push.apply(o,r);var l=r.map((function(e){return new FA({shape:e.shape})}));this.forwardLayer.stateSpec=l.slice(0,u/2),this.backwardLayer.stateSpec=l.slice(u/2),s.push.apply(s,l)}if(null!=a)throw new VR("Support for constants in Bidirectional layers is not implemented yet.");for(var c=o[0]instanceof OA,p=0,h=o;p<h.length;p++){if(h[p]instanceof OA!==c)throw new WR("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors")}if(c){var f=[t].concat(o),d=this.inputSpec.concat(s),m=this.inputSpec;this.inputSpec=d;var v=e.prototype.apply.call(this,f,n);return this.inputSpec=m,v}return e.prototype.apply.call(this,t,n)},n.call=function(e,t){var n=this;return sx((function(){var r,a,i,o,s=t.initialState;if(null==s)r=n.forwardLayer.call(e,t),a=n.backwardLayer.call(e,t);else{var u=s.slice(0,s.length/2),l=s.slice(s.length/2);r=n.forwardLayer.call(e,Object.assign(t,{initialState:u})),a=n.backwardLayer.call(e,Object.assign(t,{initialState:l}))}return n.returnState&&(Array.isArray(r)&&(i=r.slice(1).concat(a.slice(1))),r=r[0],a=a[0]),n.returnSequences&&(a=SS(a,1)),"concat"===n.mergeMode?o=VE([r,a]):"sum"===n.mergeMode?o=fx(r,a):"ave"===n.mergeMode?o=vx(.5,fx(r,a)):"mul"===n.mergeMode?o=vx(r,a):null==n.mergeMode&&(o=[r,a]),n.returnState?null==n.mergeMode?o.concat(i):[o].concat(i):o}))},n.resetStates=function(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()},n.build=function(e){var t=this;CE(this.forwardLayer.name,(function(){t.forwardLayer.build(e)})),CE(this.backwardLayer.name,(function(){t.backwardLayer.build(e)})),this.built=!0},n.computeMask=function(e,t){var n;if(Array.isArray(t)&&(t=t[0]),n=this.returnSequences?null==this.mergeMode?[t,t]:t:null==this.mergeMode?[null,null]:null,this.returnState){var r=this.forwardLayer.states.map((function(e){return null}));return Array.isArray(n)?n.concat(r).concat(r):[n].concat(r).concat(r)}return n},n.setFastWeightInitDuringBuild=function(t){e.prototype.setFastWeightInitDuringBuild.call(this,t),null!=this.forwardLayer&&this.forwardLayer.setFastWeightInitDuringBuild(t),null!=this.backwardLayer&&this.backwardLayer.setFastWeightInitDuringBuild(t)},n.getConfig=function(){var t={mergeMode:this.mergeMode},n=e.prototype.getConfig.call(this);return Object.assign(t,n),t},t.fromConfig=function(e,t){var n=$A(t.layer);if(delete t.layer,null!=t.numConstants)throw new VR("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");var r=t;return r.layer=n,new e(r)},Hm(t,[{key:"trainable",get:function(){return this._trainable},set:function(e){this._trainable=e,null!=this.forwardLayer&&(this.forwardLayer.trainable=e),null!=this.backwardLayer&&(this.backwardLayer.trainable=e)}},{key:"trainableWeights",get:function(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}},{key:"nonTrainableWeights",get:function(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}}]),t}(SF);function CF(e){return new cF(e)}function RF(e){return new fF(e)}function EF(e){return new vF(e)}function AF(e){return new bF(e)}function TF(e){return new kF(e)}function DF(e){return new lF(e)}function _F(e){return new hF(e)}IF.className="Bidirectional",Zb(IF);var FF={__proto__:null,inputLayer:function(e){return new WA(e)},elu:function(e){return new YD(e)},reLU:function(e){return new qD(e)},leakyReLU:function(e){return new KD(e)},prelu:function(e){return new XD(e)},softmax:function(e){return new ZD(e)},thresholdedReLU:function(e){return new JD(e)},conv1d:function(e){return new f_(e)},conv2d:function(e){return new u_(e)}
17,conv2dTranspose:function(e){return new c_(e)},conv3d:function(e){return new l_(e)},separableConv2d:function(e){return new h_(e)},cropping2D:function(e){return new d_(e)},upSampling2d:function(e){return new m_(e)},depthwiseConv2d:function(e){return new v_(e)},activation:function(e){return new z_(e)},dense:function(e){return new M_(e)},dropout:function(e){return new F_(e)},spatialDropout1d:function(e){return new O_(e)},flatten:function(e){return new L_(e)},repeatVector:function(e){return new B_(e)},reshape:function(e){return new P_(e)},permute:function(e){return new W_(e)},embedding:function(e){return new U_(e)},add:function(e){return new j_(e)},average:function(e){return new q_(e)},concatenate:function(e){return new Y_(e)},maximum:function(e){return new K_(e)},minimum:function(e){return new X_(e)},multiply:function(e){return new H_(e)},dot:function(e){return new Z_(e)},batchNormalization:function(e){return new rF(e)},layerNormalization:function(e){return new aF(e)},zeroPadding2d:function(e){return new iF(e)},averagePooling1d:CF,avgPool1d:function(e){return CF(e)},avgPooling1d:function(e){return CF(e)},averagePooling2d:RF,avgPool2d:function(e){return RF(e)},avgPooling2d:function(e){return RF(e)},averagePooling3d:EF,avgPool3d:function(e){return EF(e)},avgPooling3d:function(e){return EF(e)},globalAveragePooling1d:function(e){return new yF(e)},globalAveragePooling2d:function(e){return new wF(e)},globalMaxPooling1d:AF,globalMaxPooling2d:TF,maxPooling1d:DF,maxPooling2d:_F,maxPooling3d:function(e){return new mF(e)},gru:function(e){return new N_(e)},gruCell:function(e){return new S_(e)},lstm:function(e){return new C_(e)},lstmCell:function(e){return new I_(e)},simpleRNN:function(e){return new k_(e)},simpleRNNCell:function(e){return new w_(e)},convLstm2d:function(e){return new __(e)},convLstm2dCell:function(e){return new D_(e)},rnn:function(e){return new b_(e)},stackedRNNCells:function(e){return new R_(e)},bidirectional:function(e){return new IF(e)},timeDistributed:function(e){return new NF(e)},globalMaxPool1d:AF,globalMaxPool2d:TF,maxPool1d:DF,maxPool2d:_F,Layer:BA,RNN:b_,RNNCell:x_,input:wD,gaussianNoise:function(e){return new Q_(e)},gaussianDropout:function(e){return new $_(e)},alphaDropout:function(e){return new eF(e)},masking:function(e){return new V_(e)}};var OF={__proto__:null,binaryAccuracy:function(e,t){return hT(e,t)},binaryCrossentropy:function(e,t){return gT(e,t)},sparseCategoricalAccuracy:function(e,t){return yT(e,t)},categoricalAccuracy:function(e,t){return fT(e,t)},categoricalCrossentropy:function(e,t){return bT(e,t)},precision:function(e,t){return mT(e,t)},recall:function(e,t){return vT(e,t)},cosineProximity:function(e,t){return lT(e,t)},meanAbsoluteError:function(e,t){return nT(e,t)},meanAbsolutePercentageError:function(e,t){return rT(e,t)},MAPE:function(e,t){return rT(e,t)},mape:function(e,t){return rT(e,t)},meanSquaredError:function(e,t){return tT(e,t)},MSE:function(e,t){return tT(e,t)},mse:function(e,t){return tT(e,t)}},MF={__proto__:null,modelFromJSON:function(e,t){return mD.apply(this,arguments)}};var LF={__proto__:null,l1l2:function(e){return new VD(e)},l1:function(e){return PD(t=e),new VD({l1:null!=t?t.l1:null,l2:0});var t},l2:function(e){return PD(t=e),new VD({l2:null!=t?t.l2:null,l1:0});var t}},zF=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).model=null,t}return qm(t,e),t.prototype.setModel=function(e){if(!(e instanceof fD))throw new Error("model must be a LayersModel, not some other Container");this.model=e},t}(HA);function BF(e,t){return e<t}function PF(e,t){return e>t}var WF=function(e){function t(t){var n;if(n=e.call(this)||this,null==t&&(t={}),t.restoreBestWeights)throw new VR("restoreBestWeights = True is not implemented in EarlyStopping yet.");return n.monitor=t.monitor||"val_loss",n.minDelta=Math.abs(t.minDelta||0),n.patience=t.patience||0,n.verbose=t.verbose||0,n.mode=t.mode||"auto",n.baseline=t.baseline,-1===["auto","min","max"].indexOf(n.mode)&&(console.warn("EarlyStopping mode '"+n.mode+"' is invalid. Falling back to mode 'auto'."),n.mode="auto"),"min"===n.mode?n.monitorFunc=BF:"max"===n.mode||-1!==n.monitor.indexOf("acc")?n.monitorFunc=PF:n.monitorFunc=BF,n.monitorFunc===BF&&(n.minDelta*=-1),n}qm(t,e);var n=t.prototype;return n.onTrainBegin=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.wait=0,this.stoppedEpoch=0,null!=this.baseline?this.best=this.baseline:this.best=this.monitorFunc===BF?1/0:-1/0;case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.onEpochEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,UA(n);case 2:if(null!=(r=this.getMonitorValue(n))){e.next=5;break}return e.abrupt("return");case 5:this.monitorFunc(r-this.minDelta,this.best)?(this.best=r,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=t,this.model.stopTraining=!0));case 6:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.onTrainEnd=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.stoppedEpoch>0&&this.verbose&&console.log("Epoch "+this.stoppedEpoch+": early stopping.");case 1:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.getMonitorValue=function(e){null==e&&(e={});var t=e[this.monitor];return null==t&&console.warn("Metric for EarlyStopping "+this.monitor+" is not available. Available metrics are: "+Object.keys(e)),t},t}(zF);var VF,UF,GF={earlyStopping:function(e){return new WF(e)}};!function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"}(VF||(VF={})),function(e){!function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"}(e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))}(UF||(UF={}));var jF={};function HF(e){return jF[e]}function qF(e,t,n,r){var a=t.inputParams[e];if(a&&void 0!==a.inputIndexStart){var i=a.inputIndexStart,o=0===a.inputIndexEnd?void 0:void 0===a.inputIndexEnd?i+1:a.inputIndexEnd;if("tensor"===a.type)return KF(t.inputNames[a.inputIndexStart],n,r);if("tensors"===a.type)return t.inputNames.slice(i,o).map((function(e){return KF(e,n,r)}));var s=KF(t.inputNames.slice(i)[0],n,r),u=s.dataSync();return"number"===a.type?u[0]:ag(s.shape,u)}var l=t.attrParams[e];return l&&l.value}
17function KF(e,t,n){var r=JF(e),a=r[0],i=r[1],o=n.currentContextIds.find((function(e){return!!t[YF(a,e)]}));return void 0!==o?t[YF(a,o)][i]:void 0}function XF(e,t){var n=JF(e),r=n[0],a=n[1];return[YF(r,t&&t.currentContextId),a]}function YF(e,t){return t?e+"-"+t:e}function JF(e){var t=e.split(":");return 1===t.length?[e,0]:[t[0],Number(t[t.length-1])]}function ZF(e,t,n){var r=qF("pad",e,t,n);if("explicit"===r){r=qF("explicitPaddings",e,t,n);for(var a=[[0,0],[0,0],[0,0],[0,0]],i=0;i<4;i++)a[i][0]=r[2*i],a[i][1]=r[2*i+1];return a}return r}function QF(e){return e.kept?e:Zy(e)}var $F={__proto__:null,json:[{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}]},{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"}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}]},{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}]}]},eO={__proto__:null,json:[{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}
17]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"clip_value_min",name:"clipValueMin",type:"number"},{tfName:"clip_value_max",name:"clipValueMax",type:"number"}]},{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},{tfName:"clipValueMin",name:"clipValueMin",type:"number",defaultValue:0},{tfName:"clipValueMax",name:"clipValueMax",type:"number",defaultValue:6}]},{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}
17]},{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}]}]},tO={__proto__:null,json:[
vendor: 6,508 bytes, line 17
17{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:"TensorList
17PopBack",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"}]}]},nO={__proto__:null,json:[{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:"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}]},{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}
vendor: 4,298 bytes, line 17
17,{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{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:[]}]},{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"}]}]},rO={__proto__:null,json:[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0}
17,{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"}]}]},aO={__proto__:null,json:[{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}]}]},iO={__proto__:null,json:[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}]},oO={__proto__:null,json:[{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"}]}]},sO={__proto__:null,json:[{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:"T",name:"dtype",type:"dtype",notSupported:!0}
17]},{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:"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"}]}]},uO={__proto__:null,json:[{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}]}]},lO={__proto__:null,json:[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}
vendor: 4,817 bytes, line 17
17]},{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}]}]},cO={__proto__:null,json:[{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}]}]},pO={__proto__:null,json:[{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}]},hO={__proto__:null,json:[{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}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}
17]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool",notSupported:!0}]},{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}]}]},fO={__proto__:null,json:[{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}]}]},dO={__proto__:null,json:[{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:"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:[]}]},mO=function(){function e(){var e,t=[$F,eO,tO,nO,rO,aO,iO,uO,sO,oO,lO,cO,pO,hO,fO,dO],n=(e=[]).concat.apply(e,t.map((function(e){return e.json})));this.opMappers=n.reduce((function(e,t){return e[t.tfOpName]=t,e}),{})}Hm(e,null,[{key:"Instance",get:function(){return this._instance||(this._instance=new this)}}]);var t=e.prototype;return t.transformGraph=function(e,t){var n=this;void 0===t&&(t={});var r=e.node,a=[],i=[],o=[],s=r.reduce((function(e,t){return e[t.name]=n.mapNode(t),t.op.startsWith("Placeholder")?a.push(e[t.name]):"Const"===t.op?i.push(e[t.name]):null!=t.input&&0!==t.input.length||o.push(e[t.name]),e}),{}),u=[],l=[],c={},p={};null!=t&&(c=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));var h=Object.keys(s);h.forEach((function(e){var t=s[e];
17t.inputNames.forEach((function(e){var n=XF(e)[0];t.inputs.push(s[n]),s[n].children.push(t)}))})),0===Object.keys(p).length?h.forEach((function(e){var t=s[e];0===t.children.length&&l.push(t)})):Object.keys(p).forEach((function(e){var t=XF(e)[0],n=s[t];null!=n&&(n.signatureKey=p[e],l.push(n))})),Object.keys(c).length>0?Object.keys(c).forEach((function(e){var t=XF(e)[0],n=s[t];n&&(n.signatureKey=c[e],u.push(n))})):u=a;var f={};null!=e.library&&null!=e.library.function&&(f=e.library.function.reduce((function(e,t){return e[t.signature.name]=n.mapFunction(t),e}),{}));var d={nodes:s,inputs:u,outputs:l,weights:i,placeholders:a,signature:t,functions:f};return o.length>0&&(d.initNodes=o),d},t.mapSignatureEntries=function(e){return Object.keys(e||{}).reduce((function(t,n){return t[e[n].name]=n,t}),{})},t.mapNode=function(e){var t=HF(e.op)||this.opMappers[e.op]||{};null==e.attr&&(e.attr={});var n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map((function(e){return e.startsWith("^")?e.substr(1):e})),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return null!=t.inputs&&(n.inputParams=t.inputs.reduce((function(e,t){return e[t.name]={type:t.type,inputIndexStart:t.start,inputIndexEnd:t.end},e}),{})),null!=t.attrs&&(n.attrParams=t.attrs.reduce((function(t,n){var r=n.type,a=void 0;switch(n.type){case"string":void 0===(a=gO(e.attr,n.tfName,n.defaultValue))&&n.tfDeprecatedName&&(a=gO(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"string[]":void 0===(a=RO(e.attr,n.tfName,n.defaultValue))&&n.tfDeprecatedName&&(a=RO(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number":void 0===(a=bO(e.attr,n.tfName,n.defaultValue||0))&&n.tfDeprecatedName&&(a=bO(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number[]":void 0===(a=CO(e.attr,n.tfName,n.defaultValue))&&n.tfDeprecatedName&&(a=CO(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool":void 0===(a=yO(e.attr,n.tfName,n.defaultValue))&&n.tfDeprecatedName&&(a=yO(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool[]":void 0===(a=AO(e.attr,n.tfName,n.defaultValue))&&n.tfDeprecatedName&&(a=AO(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape":void 0===(a=IO(e.attr,n.tfName,n.defaultValue))&&n.tfDeprecatedName&&(a=IO(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape[]":void 0===(a=EO(e.attr,n.tfName,n.defaultValue))&&n.tfDeprecatedName&&(a=EO(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype":void 0===(a=kO(e.attr,n.tfName,n.defaultValue))&&n.tfDeprecatedName&&(a=kO(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype[]":void 0===(a=SO(e.attr,n.tfName,n.defaultValue))&&n.tfDeprecatedName&&(a=SO(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"func":void 0===(a=wO(e.attr,n.tfName,n.defaultValue))&&n.tfDeprecatedName&&(a=wO(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error("Unsupported param type: "+n.type+" for op: "+e.op)}return t[n.name]={value:a,type:r},t}),{})),n},t.mapFunction=function(e){var t=this,n=e.nodeDef,r=[],a={};null!=n&&(a=n.reduce((function(e,n){return e[n.name]=t.mapNode(n),"Const"===n.op&&r.push(e[n.name]),e}),{}));var i=[],o=[];e.signature.inputArg.forEach((function(e){var t=XF(e.name)[0],n={name:t,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:xO(e.type),type:"dtype"}},children:[]};n.signatureKey=e.name,i.push(n),a[t]=n})),Object.keys(a).forEach((function(e){var t=a[e];t.inputNames.forEach((function(e){var n=XF(e)[0];t.inputs.push(a[n]),a[n].children.push(t)}))}));var s=e.ret;e.signature.outputArg.forEach((function(e){var t=XF(s[e.name]),n=t[0],r=t[1],i=a[n];null!=i&&(i.defaultOutput=r,o.push(i))}));var u=this.mapArgsToSignature(e);return{nodes:a,inputs:i,outputs:o,weights:r,placeholders:[],signature:u}},t.mapArgsToSignature=function(e){var t=this;return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((function(e,n){return e[n.name]=t.mapArgToTensorInfo(n),e}),{}),outputs:e.signature.outputArg.reduce((function(n,r){return n[r.name]=t.mapArgToTensorInfo(r,e.ret),n}),{})}},t.mapArgToTensorInfo=function(e,t){var n=e.name;return null!=t&&(n=t[n]),{name:n,dtype:e.type}},e}();function vO(e,t){var n=Array.isArray(e)?String.fromCharCode.apply(null,e):function(e){var t=uv().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?n:n.toLowerCase()}function gO(e,t,n,r){void 0===r&&(r=!1);var a=e[t];return null!=a?vO(a.s,r):n}function yO(e,t,n){var r=e[t];return r?r.b:n}function bO(e,t,n){var r=e[t]||{},a=null!=r.i?r.i:null!=r.f?r.f:n;return"number"==typeof a?a:parseInt(a,10)}function xO(e){switch("string"==typeof e&&(e=VF[e]),e){case VF.DT_FLOAT:return"float32";case VF.DT_INT32:case VF.DT_INT64:case VF.DT_INT8:case VF.DT_UINT8:return"int32";case VF.DT_BOOL:return"bool";case VF.DT_DOUBLE:return"float32";case VF.DT_STRING:return"string";default:return null}}function wO(e,t,n){var r=e[t];return r&&r.func?r.func.name:n}function kO(e,t,n){var r=e[t];return r&&r.type?xO(r.type):n}function SO(e,t,n){var r=e[t];return r&&r.list&&r.list.type?r.list.type.map((function(e){return xO(e)})):n}function NO(e){if(!e.unknownRank)return null!=e.dim?e.dim.map((function(e){return"number"==typeof e.size?e.size:parseInt(e.size,10)})):[]}function IO(e,t,n){var r=e[t];return r&&r.shape?NO(r.shape):n}function CO(e,t,n){var r=e[t];return r?((r.list.f&&r.list.f.length?r.list.f:r.list.i)||[]).map((function(e){return"number"==typeof e?e:parseInt(e,10)})):n}function RO(e,t,n,r){void 0===r&&(r=!1);var a=e[t];return a&&a.list&&a.list.s?a.list.s.map((function(e){return vO(e,r)})):n}function EO(e,t,n){var r=e[t];return r&&r.list&&r.list.shape?r.list.shape.map((function(e){return NO(e)})):n}function AO(e,t,n){var r=e[t];return r&&r.list&&r.list.b?r.list.b:n}var TO=function(){function e(e,t,n){var r=this;this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map((function(e){return r.getInput(e)})),null!=e.rawAttrs&&(this.attrs=Object.keys(e.rawAttrs).reduce((function(e,t){return e[t]=r.getAttr(t),e}),{}))}var t=e.prototype;return t.getInput=function(e){return KF(e,this.tensorMap,this.context)},t.getAttr=function(e,t){var n=this.node.rawAttrs[e];if(null!=n.tensor)return KF(e,this.tensorMap,this.context);if(null!=n.i||null!=n.f)return bO(this.node.rawAttrs,e,t);if(null!=n.s)return gO(this.node.rawAttrs,e,t);if(null!=n.b)return yO(this.node.rawAttrs,e,t);if(null!=n.shape)return IO(this.node.rawAttrs,e,t);if(null!=n.type)return kO(this.node.rawAttrs,e,t);if(null!=n.list){if(null!=n.list.i||null!=n.list.f)return CO(this.node.rawAttrs,e,t);if(null!=n.list.s)return RO(this.node.rawAttrs,e,t);if(null!=n.list.shape)return EO(this.node.rawAttrs,e,t);if(null!=n.list.b)return AO(this.node.rawAttrs,e,t);if(null!=n.list.type)return SO(this.node.rawAttrs,e,t)}return t},e}();function DO(e,t,n){void 0===n&&(n=""),Ev(function(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(-1!==e[n]&&-1!==t[n]&&e[n]!==t[n])return!1;return!0}(e,t),(function(){return n+" Shapes "+e+" and "+t+" must match"}))}var _O=function(){function e(e,t,n,r,a,i,o){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=r,this.identicalElementShapes=a,this.dynamicSize=i,this.clearAfterRead=o,this.tensors=[],this.closed_
17=!1,this.idTensor=sk(0),lx(this.idTensor)}var t=e.prototype;return t.clearAndClose=function(e){this.tensors.forEach((function(t){null!=e&&e.has(t.tensor.id)||t.tensor.dispose()})),this.tensors=[],this.closed_=!0,this.idTensor.dispose()},t.size=function(){return this.tensors.length},t.read=function(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());var 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},t.readMany=function(e){var t=this;return e.map((function(e){return t.read(e)}))},t.write=function(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);var n=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),DO(this.elementShape,t.shape,"TensorArray "+this.name+": Could not write to TensorArray index "+e+"."),n.read)throw new Error("TensorArray "+this.name+": Could not write to TensorArray index "+e+", because it has already been read.");if(n.written)throw new Error("TensorArray "+this.name+": Could not write to TensorArray index "+e+", because it has already been written.");n.tensor=t,lx(t),n.written=!0,this.tensors[e]=n},t.writeMany=function(e,t){var n=this;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((function(e,r){return n.write(e,t[r])}))},t.gather=function(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(var n=0;n<this.size();n++)e.push(n)}if(0===e.length)return ny([],[0].concat(this.elementShape));var r=this.readMany(e);return DO(this.elementShape,r[0].shape,"TensorArray shape mismatch: "),ZS(r,0)},t.concat=function(e){if(e&&e!==this.dtype)throw new Error("TensorArray dtype is "+this.dtype+" but concat requested dtype "+e);if(0===this.size())return ny([],[0].concat(this.elementShape));for(var t=[],n=0;n<this.size();n++)t.push(n);var r=this.readMany(t);return DO(this.elementShape,r[0].shape,"TensorArray shape mismatch: tensor array shape ("+this.elementShape+") vs first tensor shape ("+r[0].shape+")"),tw(r,0)},t.scatter=function(e,t){if(t.dtype!==this.dtype)throw new Error("TensorArray dtype is "+this.dtype+" but tensor has dtype "+t.dtype);if(e.length!==t.shape[0])throw new Error("Expected len(indices) == tensor.shape[0], but saw: "+e.length+" vs. "+t.shape[0]);var n=Math.max.apply(Math,e);if(!this.dynamicSize&&n>=this.maxSize)throw new Error("Max index must be < array size ("+n+"  vs. "+this.maxSize+")");this.writeMany(e,sN(t,0))},t.split=function(e,t){var n=this;if(t.dtype!==this.dtype)throw new Error("TensorArray dtype is "+this.dtype+" but tensor has dtype "+t.dtype);var r=0,a=e.map((function(e){return r+=e}));if(r!==t.shape[0])throw new Error("Expected sum of lengths to be equal to\n          tensor.shape[0], but sum of lengths is\n        "+r+", 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");var i=0===r?0:t.size/r,o=[];sx((function(){t=gb(t,[1,r,i]);for(var s=0;s<e.length;++s){var u=[0,0===s?0:a[s-1],0],l=[1,e[s],i];o[s]=gb(rw(t,u,l),n.elementShape)}return o}
17));for(var s=[],u=0;u<e.length;u++)s[u]=u;this.writeMany(s,o)},Hm(e,[{key:"id",get:function(){return this.idTensor.id}},{key:"closed",get:function(){return this.closed_}}]),e}(),FO=function(){function e(e,t,n,r){void 0===r&&(r=-1),this.tensors=e,this.elementShape=t,this.elementDtype=n,null!=e&&e.forEach((function(e){if(n!==e.dtype)throw new Error("Invalid data types; op elements "+n+", but list elements "+e.dtype);DO(t,e.shape,"TensorList shape mismatch: "),lx(e)})),this.idTensor=sk(0),this.maxNumElements=r,lx(this.idTensor)}var t=e.prototype;return t.copy=function(){return new e([].concat(this.tensors),this.elementShape,this.elementDtype)},t.clearAndClose=function(e){this.tensors.forEach((function(t){null!=e&&e.has(t.id)||t.dispose()})),this.tensors.length=0,this.idTensor.dispose()},t.size=function(){return this.tensors.length},t.stack=function(e,t,n){var r=this;if(void 0===n&&(n=-1),t!==this.elementDtype)throw new Error("Invalid data types; op elements "+t+", but list elements "+this.elementDtype);if(-1!==n&&this.tensors.length!==n)throw new Error("Operation expected a list with "+n+" elements but got a list with "+this.tensors.length+" elements.");return DO(e,this.elementShape,"TensorList shape mismatch: "),sx((function(){var t=r.tensors.map((function(t){return gb(t,e)}));return ZS(t,0)}))},t.popBack=function(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.");var n=this.tensors.pop();return DO(n.shape,e,"TensorList shape mismatch: "),gb(n,e)},t.pushBack=function(e){if(e.dtype!==this.elementDtype)throw new Error("Invalid data types; op elements "+e.dtype+", but list elements "+this.elementDtype);if(DO(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");lx(e),this.tensors.push(e)},t.resize=function(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+".");this.tensors.length=e},t.getItem=function(e,t,n){if(n!==this.elementDtype)throw new Error("Invalid data types; op elements "+n+", but list elements "+this.elementDtype);if(e<0||e>this.tensors.length)throw new Error("Trying to access element "+e+" in a list with "+this.tensors.length+" elements.");if(null==this.tensors[e])throw new Error("element at index "+e+" is null.");return DO(this.tensors[e].shape,t,"TensorList shape mismatch: "),this.tensors[e]},t.setItem=function(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.");DO(this.elementShape,t.shape,"TensorList shape mismatch: "),lx(t),this.tensors[e]=t},t.gather=function(e,t,n){var r=this;if(t!==this.elementDtype)throw new Error("Invalid data types; op elements "+t+", but list elements "+this.elementDtype);return DO(this.elementShape,n,"TensorList shape mismatch: "),0===(e=e.slice(0,this.size())).length?ny([],[0].concat(this.elementShape)):sx((function(){var t=e.map((function(e){return gb(r.tensors[e],n)}));return ZS(t,0)}))},t.concat=function(e,t){var n=this;if(e&&e!==this.elementDtype)throw new Error("TensorList dtype is "+this.elementDtype+" but concat requested dtype "+e);return DO(this.elementShape,t,"TensorList shape mismatch: "),0===this.size()?ny([],[0].concat(this.elementShape)):sx((function(){var e=n.tensors.map((function(e){return gb(e,t)}));return tw(e,0)}))},Hm(e,[{key:"id",get:function(){return this.idTensor.id}}]),e}();function OO(e,t,n){var r=e.dtype;if(e.shape.length<1)throw new Error("Tensor must be at least a vector, but saw shape: "+e.shape);if(e.dtype!==n)throw new Error("Invalid data types; op elements "+e.dtype+", but list elements "+n);DO(e.shape.slice(1),t,"TensorList shape mismatch: ");var a=sN(e);return new FO(a,t,r)}function MO(e,t,n){return new FO([],e,t,n)}function LO(e,t,n,r){if(t.length!==e.shape[0])throw new Error("Expected len(indices) == tensor.shape[0], but saw: "+t.length+" vs. "+e.shape[0]);var a=Math.max.apply(Math,t);if(null!=r&&-1!==r&&a>
17=r)throw new Error("Max index must be < array size ("+a+"  vs. "+r+")");var i=new FO([],n,e.dtype,r),o=sN(e,0);return t.forEach((function(e,t){i.setItem(e,o[t])})),i}function zO(e,t,n){var r=0,a=t.map((function(e){return r+=e}));if(r!==e.shape[0])throw new Error("Expected sum of lengths to be equal to\n          tensor.shape[0], but sum of lengths is\n        "+r+", and tensor's shape is: "+e.shape);for(var i=0===r?0:e.size/r,o=sx((function(){var o=[];e=gb(e,[1,r,i]);for(var s=0;s<t.length;++s){var u=[0,0===s?0:a[s-1],0],l=[1,t[s],i];o[s]=gb(rw(e,u,l),n)}return e.dispose(),o})),s=new FO([],n,e.dtype,t.length),u=0;u<o.length;u++)s.setItem(u,o[u]);return s}var BO=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n,r){var a,i,o,s,u,l,c,p,h,f,d,m,v,g,y,b,x,w,k,S,N,I,C,R,E,A,T,D,_,F,O,M,L,z,B,P,W,V,U,G,j,H,q,K,X,Y,J,Z,Q,$,ee,te,ne,re,ae,ie,oe,se,ue,le,ce,pe,he,fe,de,me,ve,ge,ye,be,xe,we,ke,Se,Ne,Ie,Ce,Re,Ee,Ae,Te,De,_e,Fe,Oe,Me,Le,ze,Be,Pe,We,Ve,Ue,Ge,je;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=t.op,e.next="If"===e.t0||"StatelessIf"===e.t0?3:"While"===e.t0||"StatelessWhile"===e.t0?15:"LoopCond"===e.t0?19:"Switch"===e.t0?21:"Merge"===e.t0?32:"Enter"===e.t0?37:"Exit"===e.t0?41:"NextIteration"===e.t0?44:"TensorArrayV3"===e.t0?47:"TensorArrayWriteV3"===e.t0?57:"TensorArrayReadV3"===e.t0?63:"TensorArrayGatherV3"===e.t0?67:"TensorArrayScatterV3"===e.t0?72:"TensorArrayConcatV3"===e.t0?78:"TensorArraySplitV3"===e.t0?82:"TensorArraySizeV3"===e.t0?88:"TensorArrayCloseV3"===e.t0?91:"TensorListSetItem"===e.t0?95:"TensorListGetItem"===e.t0?101:"TensorListScatterV2"===e.t0||"TensorListScatter"===e.t0?107:"TensorListReserve"===e.t0?114:"TensorListGather"===e.t0?120:"TensorListStack"===e.t0?126:"TensorListFromTensor"===e.t0?132:"TensorListConcat"===e.t0?138:"TensorListPushBack"===e.t0?143:"TensorListPopBack"===e.t0?148:"TensorListSplit"===e.t0?153:159;break;case 3:return a=qF("thenBranch",t,n,r),i=qF("elseBranch",t,n,r),o=qF("cond",t,n,r),s=qF("args",t,n,r),e.next=9,o.data();case 9:if(!e.sent[0]){e.next=14;break}return e.abrupt("return",r.functionMap[a].executeFunctionAsync(s,r.tensorArrayMap,r.tensorListMap));case 14:return e.abrupt("return",r.functionMap[i].executeFunctionAsync(s,r.tensorArrayMap,r.tensorListMap));case 15:return e.delegateYield(regeneratorRuntime.mark((function e(){var a,i,o,s,u,l,c,p;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=qF("body",t,n,r),i=qF("cond",t,n,r),o=qF("args",t,n,r),e.next=5,r.functionMap[i].executeFunctionAsync(o,r.tensorArrayMap,r.tensorListMap);case 5:return s=e.sent,u=o.map((function(e){return e.id})),e.next=9,s[0].data();case 9:l=e.sent,s.forEach((function(e){e.kept||-1!==u.indexOf(e.id)||e.dispose()})),c=o,p=regeneratorRuntime.mark((function e(){var t,n,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=c,e.next=3,r.functionMap[a].executeFunctionAsync(c,r.tensorArrayMap,r.tensorListMap);case 3:return c=e.sent,n=c.map((function(e){return e.id})),t.forEach((function(e){e.kept||-1!==u.indexOf(e.id)||-1!==n.indexOf(e.id)||e.dispose()})),e.next=8,r.functionMap[i].executeFunctionAsync(c,r.tensorArrayMap,r.tensorListMap);case 8:return o=e.sent,e.next=11,o[0].data();case 11:l=e.sent,o.forEach((function(e){e.kept||-1!==u.indexOf(e.id)||-1!==n.indexOf(e.id)||e.dispose()}));case 13:case"end":return e.stop()}}),e)}));case 13:if(!l[0]){e.next=17;break}return e.delegateYield(p(),"t0",15);case 15:e.next=13;break;case 17:return e.abrupt("return",{v:c});case 18:case"end":return e.stop()}}),e)}))(),"t1",16);case 16:if("object"!=typeof(u=e.t1)){e.next=19;break}return e.abrupt("return",u.v);case 19:return l=qF("pred",t,n,r),e.abrupt("return",[QF(l)]);case 21:return c=qF("pred",t,n,r),(p=qF("data",t,n,r)).kept||(p=QF(p)),e.next=26,c.data();case 26:if(!e.sent[0]){e.next=30;break}e.t2=[void 0,p],e.next=31;break;case 30:e.t2=[p,void 0];case 31:return e.abrupt("return",e.t2);case 32:if(!(h=t.inputNames.find((function(e){return void 0!==KF(e,n,r)})))){e.next=36;break}return f=KF(h,n,r),e.abrupt("return",[QF(f)]);case 36:return e.abrupt("return",void 0);case 37:return d=qF("frameName",t,n,r),m=qF("tensor",t,n,r),r.enterFrame
vendor: 4,063 bytes, line 17
17(d),e.abrupt("return",[QF(m)]);case 41:return v=qF("tensor",t,n,r),r.exitFrame(),e.abrupt("return",[QF(v)]);case 44:return g=qF("tensor",t,n,r),r.nextIteration(),e.abrupt("return",[QF(g)]);case 47:return y=qF("size",t,n,r),b=qF("dtype",t,n,r),x=qF("elementShape",t,n,r),w=qF("dynamicSize",t,n,r),k=qF("clearAfterRead",t,n,r),S=qF("identicalElementShapes",t,n,r),N=qF("name",t,n,r),I=new _O(N,b,y,x,S,w,k),r.addTensorArray(I),e.abrupt("return",[I.idTensor,sk(1)]);case 57:return C=qF("tensorArrayId",t,n,r),R=qF("index",t,n,r),E=qF("tensor",t,n,r),(A=r.getTensorArray(C.id)).write(R,E),e.abrupt("return",[A.idTensor]);case 63:return T=qF("tensorArrayId",t,n,r),D=qF("index",t,n,r),_=r.getTensorArray(T.id),e.abrupt("return",[_.read(D)]);case 67:return F=qF("tensorArrayId",t,n,r),O=qF("indices",t,n,r),M=qF("dtype",t,n,r),L=r.getTensorArray(F.id),e.abrupt("return",[L.gather(O,M)]);case 72:return z=qF("tensorArrayId",t,n,r),B=qF("indices",t,n,r),P=qF("tensor",t,n,r),(W=r.getTensorArray(z.id)).scatter(B,P),e.abrupt("return",[W.idTensor]);case 78:return V=qF("tensorArrayId",t,n,r),U=r.getTensorArray(V.id),G=qF("dtype",t,n,r),e.abrupt("return",[U.concat(G)]);case 82:return j=qF("tensorArrayId",t,n,r),H=qF("tensor",t,n,r),q=qF("lengths",t,n,r),(K=r.getTensorArray(j.id)).split(q,H),e.abrupt("return",[K.idTensor]);case 88:return X=qF("tensorArrayId",t,n,r),Y=r.getTensorArray(X.id),e.abrupt("return",[sk(Y.size(),"int32")]);case 91:return J=qF("tensorArrayId",t,n,r),(Z=r.getTensorArray(J.id)).clearAndClose(),e.abrupt("return",[Z.idTensor]);case 95:return Q=qF("tensorListId",t,n,r),$=qF("index",t,n,r),ee=qF("tensor",t,n,r),(te=r.getTensorList(Q.id)).setItem($,ee),e.abrupt("return",[te.idTensor]);case 101:return ne=qF("tensorListId",t,n,r),re=qF("index",t,n,r),ae=qF("elementShape",t,n,r),ie=qF("elementDType",t,n,r),oe=r.getTensorList(ne.id),e.abrupt("return",[oe.getItem(re,ae,ie)]);case 107:return se=qF("indices",t,n,r),ue=qF("tensor",t,n,r),le=qF("elementShape",t,n,r),ce=qF("numElements",t,n,r),pe=LO(ue,se,le,ce),r.addTensorList(pe),e.abrupt("return",[pe.idTensor]);case 114:return he=qF("elementShape",t,n,r),fe=qF("elementDType",t,n,r),de=qF("numElements",t,n,r),me=MO(he,fe,de),r.addTensorList(me),e.abrupt("return",[me.idTensor]);case 120:return ve=qF("tensorListId",t,n,r),ge=qF("indices",t,n,r),ye=qF("elementShape",t,n,r),be=qF("elementDType",t,n,r),xe=r.getTensorList(ve.id),e.abrupt("return",[xe.gather(ge,be,ye)]);case 126:return we=qF("tensorListId",t,n,r),ke=qF("elementShape",t,n,r),Se=qF("elementDType",t,n,r),Ne=qF("numElements",t,n,r),Ie=r.getTensorList(we.id),e.abrupt("return",[Ie.stack(ke,Se,Ne)]);case 132:return Ce=qF("tensor",t,n,r),Re=qF("elementShape",t,n,r),Ee=qF("elementDType",t,n,r),Ae=OO(Ce,Re,Ee),r.addTensorList(Ae),e.abrupt("return",[Ae.idTensor]);case 138:return Te=qF("tensorListId",t,n,r),De=r.getTensorList(Te.id),_e=qF("dtype",t,n,r),Fe=qF("elementShape",t,n,r),e.abrupt("return",[De.concat(_e,Fe)]);case 143:return Oe=qF("tensorListId",t,n,r),Me=qF("tensor",t,n,r),(Le=r.getTensorList(Oe.id)).pushBack(Me),e.abrupt("return",[Le.idTensor]);case 148:return ze=qF("tensorListId",t,n,r),Be=qF("elementShape",t,n,r),Pe=qF("elementDType",t,n,r),We=r.getTensorList(ze.id),e.abrupt("return",[We.popBack(Be,Pe)]);case 153:return Ve=qF("tensor",t,n,r),Ue=qF("elementShape",t,n,r),Ge=qF("lengths",t,n,r),je=zO(Ve,Ge,Ue),r.addTensorList(je),e.abrupt("return",[je.idTensor]);case 159:throw TypeError("Node type "+t.op+" is not implemented");case 160:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}();function PO(e,t,n){var r=qF("fusedOps",e,t,n),a=r[0],i=r[1],o="biasadd"===a,s="prelu"===i,u="fusedbatchnorm"===a,l=qF("numArgs",e,t,n);if(o){if(s&&2!==l)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!s&&1!==l)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(u)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");
17var c=qF("strides",e,t,n),p=ZF(e,t,n),h=qF("dataFormat",e,t,n).toUpperCase(),f=qF("dilations",e,t,n),d=qF("args",e,t,n);return{stride:c,pad:p,dataFormat:h,dilations:f,biasArg:d[0],preluArg:d[1],activationFunc:i}}function WO(e,t,n){return{boxes:qF("boxes",e,t,n),scores:qF("scores",e,t,n),maxOutputSize:qF("maxOutputSize",e,t,n),iouThreshold:qF("iouThreshold",e,t,n),scoreThreshold:qF("scoreThreshold",e,t,n),softNmsSigma:qF("softNmsSigma",e,t,n)}}var VO=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n,r){var a,i,o,s,u,l,c,p,h,f,d,m,v,g,y,b,x,w,k,S,N,I,C,R;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=t.op,e.next="NonMaxSuppressionV5"===e.t0?3:"NonMaxSuppressionV4"===e.t0?8:"NonMaxSuppressionV3"===e.t0||"NonMaxSuppressionV2"===e.t0?14:"Where"===e.t0?19:"ListDiff"===e.t0?26:27;break;case 3:return a=WO(t,n,r),i=a.boxes,o=a.scores,s=a.maxOutputSize,u=a.iouThreshold,l=a.scoreThreshold,c=a.softNmsSigma,e.next=6,WI.nonMaxSuppressionWithScoreAsync(i,o,s,u,l,c);case 6:return p=e.sent,e.abrupt("return",[p.selectedIndices,p.selectedScores]);case 8:return h=WO(t,n,r),f=h.boxes,d=h.scores,m=h.maxOutputSize,v=h.iouThreshold,g=h.scoreThreshold,y=qF("padToMaxOutputSize",t,n,r),e.next=12,WI.nonMaxSuppressionPaddedAsync(f,d,m,v,g,y);case 12:return b=e.sent,e.abrupt("return",[b.selectedIndices,b.validOutputs]);case 14:return x=WO(t,n,r),w=x.boxes,k=x.scores,S=x.maxOutputSize,N=x.iouThreshold,I=x.scoreThreshold,e.next=17,WI.nonMaxSuppressionAsync(w,k,S,N,I);case 17:return e.t1=e.sent,e.abrupt("return",[e.t1]);case 19:return C=Jy(qF("condition",t,n,r),"bool"),e.next=22,pN(C);case 22:return e.t2=e.sent,R=[e.t2],C.dispose(),e.abrupt("return",R);case 26:return e.abrupt("return",FS(qF("x",t,n,r),qF("y",t,n,r)));case 27:throw TypeError("Node type "+t.op+" is not implemented");case 28:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}();function UO(e,t,n){var r=function(e,t,n){switch(e.category){case"arithmetic":return sx((function(){return function(e,t,n){switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[fx(qF("a",e,t,n),qF("b",e,t,n))];case"AddN":return[xx(qF("tensors",e,t,n))];case"FloorMod":case"Mod":return[Bk(qF("a",e,t,n),qF("b",e,t,n))];case"Mul":return[vx(qF("a",e,t,n),qF("b",e,t,n))];case"RealDiv":case"Div":return[mx(qF("a",e,t,n),qF("b",e,t,n))];case"DivNoNan":return[Pw(qF("a",e,t,n),qF("b",e,t,n))];case"FloorDiv":return[dx(qF("a",e,t,n),qF("b",e,t,n))];case"Sub":return[kk(qF("a",e,t,n),qF("b",e,t,n))];case"Minimum":return[zk(qF("a",e,t,n),qF("b",e,t,n))];case"Maximum":return[ok(qF("a",e,t,n),qF("b",e,t,n))];case"Pow":return[eS(qF("a",e,t,n),qF("b",e,t,n))];case"SquaredDifference":return[YS(qF("a",e,t,n),qF("b",e,t,n))];default:throw TypeError("Node type "+e.op+" is not implemented")}}(e,t,n)}));case"basic_math":return sx((function(){return function(e,t,n){switch(e.op){case"Abs":case"ComplexAbs":return[gx(qF("x",e,t,n))];case"Acos":return[yx(qF("x",e,t,n))];case"Acosh":return[bx(qF("x",e,t,n))];case"Asin":return[Fx(qF("x",e,t,n))];case"Asinh":return[Ox(qF("x",e,t,n))];case"Atan":return[Mx(qF("x",e,t,n))];case"Atan2":return[Lx(qF("x",e,t,n),qF("y",e,t,n))];case"Atanh":return[zx(qF("x",e,t,n))];case"Ceil":return[fw(qF("x",e,t,n))];case"Complex":return[ey(qF("real",e,t,n),qF("imag",e,t,n))];case"Cos":return[Cw(qF("x",e,t,n))];case"Cosh":return[Rw(qF("x",e,t,n))];case"Elu":return[Vw(qF("x",e,t,n))];case"Erf":return[Uw(qF("x",e,t,n))];case"Exp":return[Gw(qF("x",e,t,n))];case"Expm1":return[Hw(qF("x",e,t,n))];case"Floor":return[Yw(qF("x",e,t,n))];case"Log":return[fk(qF("x",e,t,n))];case"Log1p":return[dk(qF("x",e,t,n))];case"Imag":return[nk(qF("x",e,t,n))];case"Neg":return[yk(qF("x",e,t,n))];case"Reciprocal":return[xS(qF("x",e,t,n))];case"Real":return[jk(qF("x",e,t,n))];case"Relu":return[wS(qF("x",e,t,n))];case"Round":return[ES(qF("x",e,t,n))];case"Selu":return[TS(qF("x",e,t,n))];case"Sigmoid":return[nw(qF("x",e,t,n))];case"Sin":return[MS(qF("x",e,t,n))];case"Sign":return[OS(qF("x",e,t,n))];case"Sinh":return[LS(qF("x",e,t,n))];case"Softplus":return[bk(qF("x",e,t,n))];case"Sqrt":return[XS(qF("x",e,t,n))];case"Square":return[Pk(qF("x",e,t,n))];case"Tanh":return[aw(qF("x",e,t,n))];case"Tan":return[eN(qF("x",e,t,n))];case"Relu6":case"ClipByValue":return[dw(qF("x",e,t,n),qF("clipValueMin",e,t,n),qF("clipValueMax",e,t,n))];case"Rsqrt":return[AS(KF(e.inputNames[0],t,n))];case"Prod":return[nS(qF("x",e,t,n),qF("axes",e,t,n))];case"LeakyRelu":return[uk(qF("x",e,t,n),qF("alpha",e,t,n))];case"Prelu":return[tS(qF("x",e,t,n),qF("alpha",e,t,n))];default:throw TypeError("Node type "+e.op+" is not implemented")}}
17(e,t,n)}));case"control":return BO(e,t,n);case"convolution":return sx((function(){return function(e,t,n){switch(e.op){case"Conv1D":var r=qF("stride",e,t,n),a=qF("pad",e,t,n),i=qF("dataFormat",e,t,n).toUpperCase(),o=qF("dilation",e,t,n);return[xw(qF("x",e,t,n),qF("filter",e,t,n),r,a,i,o)];case"Conv2D":var s=qF("strides",e,t,n),u=ZF(e,t,n),l=qF("dataFormat",e,t,n).toUpperCase(),c=qF("dilations",e,t,n);return[bw(qF("x",e,t,n),qF("filter",e,t,n),[s[1],s[2]],u,l,[c[1],c[2]])];case"_FusedConv2D":var p=PO(e,t,n),h=p.stride,f=p.pad,d=p.dataFormat,m=p.dilations,v=p.biasArg,g=p.preluArg,y=p.activationFunc;return[jN({x:qF("x",e,t,n),filter:qF("filter",e,t,n),strides:[h[1],h[2]],pad:f,dataFormat:d,dilations:[m[1],m[2]],bias:v,activation:y,preluActivationWeights:g})];case"FusedDepthwiseConv2dNative":var b=PO(e,t,n),x=b.stride,w=b.pad,k=b.dataFormat,S=b.dilations,N=b.biasArg,I=b.preluArg,C=b.activationFunc;return[KN({x:qF("x",e,t,n),filter:qF("filter",e,t,n),strides:[x[1],x[2]],pad:w,dataFormat:k,dilations:[S[1],S[2]],bias:N,activation:C,preluActivationWeights:I})];case"Conv2DBackpropInput":case"Conv2dTranspose":var R=qF("outputShape",e,t,n),E=qF("strides",e,t,n),A=ZF(e,t,n);return[kw(qF("x",e,t,n),qF("filter",e,t,n),R,[E[1],E[2]],A)];case"DepthwiseConv2dNative":case"DepthwiseConv2d":var T=qF("strides",e,t,n),D=ZF(e,t,n),_=qF("dilations",e,t,n),F=qF("dataFormat",e,t,n).toUpperCase();return[Tw(qF("input",e,t,n),qF("filter",e,t,n),[T[1],T[2]],D,F,[_[1],_[2]])];case"Conv3D":var O=qF("strides",e,t,n),M=qF("pad",e,t,n),L=qF("dataFormat",e,t,n).toUpperCase(),z=qF("dilations",e,t,n);return[Sw(qF("x",e,t,n),qF("filter",e,t,n),[O[1],O[2],O[3]],M,L,[z[1],z[2],z[3]])];case"AvgPool":var B=qF("strides",e,t,n),P=qF("pad",e,t,n),W=qF("kernelSize",e,t,n);return[Zx(qF("x",e,t,n),[W[1],W[2]],[B[1],B[2]],P)];case"MaxPool":var V=qF("strides",e,t,n),U=qF("pad",e,t,n),G=qF("kernelSize",e,t,n);return[Tk(qF("x",e,t,n),[G[1],G[2]],[V[1],V[2]],U)];case"MaxPoolWithArgmax":var j=qF("strides",e,t,n),H=qF("pad",e,t,n),q=qF("kernelSize",e,t,n),K=qF("includeBatchInIndex",e,t,n),X=_k(qF("x",e,t,n),[q[1],q[2]],[j[1],j[2]],H,K);
17return[X.result,X.indexes];case"AvgPool3D":var Y=qF("strides",e,t,n),J=qF("pad",e,t,n),Z=qF("kernelSize",e,t,n);return[Qx(qF("x",e,t,n),[Z[1],Z[2],Z[3]],[Y[1],Y[2],Y[3]],J)];case"MaxPool3D":var Q=qF("strides",e,t,n),$=qF("pad",e,t,n),ee=qF("kernelSize",e,t,n);return[Dk(qF("x",e,t,n),[ee[1],ee[2],ee[3]],[Q[1],Q[2],Q[3]],$)];case"Dilation2D":var te=qF("strides",e,t,n),ne=qF("pad",e,t,n),re=qF("dilations",e,t,n),ae=te[1],ie=te[2],oe=re[1],se=re[2];return[_w(qF("x",e,t,n),qF("filter",e,t,n),[ae,ie],ne,[oe,se],"NHWC")];default:throw TypeError("Node type "+e.op+" is not implemented")}}(e,t,n)}));case"creation":return sx((function(){return function(e,t,n){switch(e.op){case"Fill":var r=qF("shape",e,t,n),a=qF("dtype",e,t,n);return[Xw(r,qF("value",e,t,n),a)];case"LinSpace":return[pk(qF("start",e,t,n),qF("stop",e,t,n),qF("num",e,t,n))];case"Multinomial":var i=qF("logits",e,t,n),o=qF("numSamples",e,t,n),s=qF("seed",e,t,n);return[Uk(i,o,s)];case"OneHot":var u=qF("indices",e,t,n),l=qF("depth",e,t,n),c=qF("onValue",e,t,n),p=qF("offValue",e,t,n);return[bb(u,l,c,p)];case"Ones":return[Ok(qF("shape",e,t,n),qF("dtype",e,t,n))];case"OnesLike":return[Hk(qF("x",e,t,n))];case"RandomUniform":return[gS(qF("shape",e,t,n),qF("minval",e,t,n),qF("maxval",e,t,n),qF("dtype",e,t,n))];case"Range":return[bS(qF("start",e,t,n),qF("stop",e,t,n),qF("step",e,t,n),qF("dtype",e,t,n))];case"TruncatedNormal":var h=qF("shape",e,t,n),f=qF("mean",e,t,n),d=qF("stdDev",e,t,n),m=qF("seed",e,t,n);return[aN(h,f,d,qF("dtype",e,t,n),m)];case"Zeros":return[Fk(qF("shape",e,t,n),qF("dtype",e,t,n))];case"ZerosLike":return[Bw(qF("x",e,t,n))];default:throw TypeError("Node type "+e.op+" is not implemented")}}(e,t,n)}));case"dynamic":return VO(e,t,n);case"evaluation":return sx((function(){return function(e,t,n){switch(e.op){case"TopKV2":var r=qF("x",e,t,n),a=qF("k",e,t,n),i=qF("sorted",e,t,n),o=rN(r,a,i);return[o.values,o.indices];case"Unique":var s=qF("x",e,t,n),u=iN(s);return[u.values,u.indices];case"UniqueV2":var l=qF("x",e,t,n),c=qF("axis",e,t,n),p=iN(l,c);return[p.values,p.indices];default:throw TypeError("Node type "+e.op+" is not implemented")}}(e,t,n)}));case"image":return sx((function(){return function(e,t,n){switch(e.op){case"ResizeBilinear":var r=qF("images",e,t,n),a=qF("size",e,t,n),i=qF("alignCorners",e,t,n);return[WI.resizeBilinear(r,[a[0],a[1]],i)];case"ResizeNearestNeighbor":var o=qF("images",e,t,n),s=qF("size",e,t,n),u=qF("alignCorners",e,t,n);return[WI.resizeNearestNeighbor(o,[s[0],s[1]],u)];case"CropAndResize":var l=qF("image",e,t,n),c=qF("boxes",e,t,n),p=qF("boxInd",e,t,n),h=qF("cropSize",e,t,n),f=qF("method",e,t,n),d=qF("extrapolationValue",e,t,n);return[WI.cropAndResize(l,c,p,h,f,d)];default:throw TypeError("Node type "+e.op+" is not implemented")}}(e,t,n)}));case"graph":return sx((function(){return function(e,t,n){switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":var r=qF("default",e,t,n);return[KF(e.name,t,n)||r];case"Placeholder":return[KF(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":return[QF(qF("x",e,t,n))];case"IdentityN":return qF("x",e,t,n).map((function(e){return QF(e)}));case"Snapshot":return[QF(qF("x",e,t,n))];case"Shape":return[yS(qF("x",e,t,n).shape,"int32")];case"ShapeN":return qF("x",e,t,n).map((function(e){return yS(e.shape)}));case"Size":return[sk(qF("x",e,t,n).size,"int32")];case"Rank":return[sk(qF("x",e,t,n).rank,"int32")];case"NoOp":return[sk(1)];case"Print":var a=qF("x",e,t,n),i=qF("data",e,t,n),o=qF("message",e,t,n),s=qF("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(o);for(var u=0;u<i.length;u++)console.log(Array.prototype.slice.call(i[u].dataSync()).slice(0,s));return[a];default:throw TypeError("Node type "+e.op+" is not implemented")}}(e,t,n)}));case"logical":return sx((function(){return function(e,t,n){switch(e.op){case"Equal":return[Lw(qF("a",e,t,n),qF("b",e,t,n))];case"NotEqual":return[Gk(qF("a",e,t,n),qF("b",e,t,n))];case"Greater":return[ek(qF("a",e,t,n),qF("b",e,t,n))];case"GreaterEqual":return[tk(qF("a",e,t,n),qF("b",e,t,n))];case"Less":return[lk(qF("a",e,t,n),qF("b",e,t,n))];case"LessEqual":return[ck(qF("a",e,t,n),qF("b",e,t,n))];case"LogicalAnd":return[Ck(qF("a",e,t,n),qF("b",e,t,n))];case"LogicalNot":return[Rk(qF("a",e,t,n))];case"LogicalOr":return[Ek(qF("a",e,t,n),qF("b",e,t,n))];case"Select":case"SelectV2":return[zw(qF("condition",e,t,n),qF("a",e,t,n),qF("b",e,t,n))];default:throw TypeError("Node type "+e.op+" is not implemented")}}
17(e,t,n)}));case"matrices":return sx((function(){return function(e,t,n){switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[yb(qF("a",e,t,n),qF("b",e,t,n),qF("transposeA",e,t,n),qF("transposeB",e,t,n))];case"Transpose":return[xb(qF("x",e,t,n),qF("perm",e,t,n))];case"_FusedMatMul":var r=qF("fusedOps",e,t,n),a=r[0],i=r[1],o="biasadd"===a,s="prelu"===i,u=qF("numArgs",e,t,n);if(o){if(s&&2!==u)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!s&&1!==u)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}var l=qF("args",e,t,n),c=l[0],p=l[1];return[XN({a:qF("a",e,t,n),b:qF("b",e,t,n),transposeA:qF("transposeA",e,t,n),transposeB:qF("transposeB",e,t,n),bias:c,activation:i,preluActivationWeights:p})];default:throw TypeError("Node type "+e.op+" is not implemented")}}(e,t,n)}));case"normalization":return sx((function(){return function(e,t,n){switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":case"FusedBatchNormV3":return[uw(qF("x",e,t,n),qF("mean",e,t,n),qF("variance",e,t,n),qF("offset",e,t,n),qF("scale",e,t,n),qF("epsilon",e,t,n))];case"LRN":return[hk(qF("x",e,t,n),qF("radius",e,t,n),qF("bias",e,t,n),qF("alpha",e,t,n),qF("beta",e,t,n))];case"Softmax":return[VS(qF("x",e,t,n))];case"LogSoftmax":return[Nk(qF("x",e,t,n))];case"SparseToDense":return[_N(qF("sparseIndices",e,t,n),qF("outputShape",e,t,n),qF("sparseValues",e,t,n),qF("defaultValue",e,t,n))];default:throw TypeError("Node type "+e.op+" is not implemented")}}(e,t,n)}));case"reduction":return sx((function(){return function(e,t,n){switch(e.op){case"Max":var r=qF("axis",e,t,n),a=qF("keepDims",e,t,n);return[wk(qF("x",e,t,n),r,a)];case"Mean":var i=qF("axis",e,t,n),o=qF("keepDims",e,t,n);return[Mk(qF("x",e,t,n),i,o)];case"Min":var s=qF("axis",e,t,n),u=qF("keepDims",e,t,n);return[Lk(qF("x",e,t,n),s,u)];case"Sum":var l=qF("axis",e,t,n),c=qF("keepDims",e,t,n);return[Sk(qF("x",e,t,n),l,c)];case"All":var p=qF("axis",e,t,n),h=qF("keepDims",e,t,n);return[Ax(qF("x",e,t,n),p,h)];case"Any":var f=qF("axis",e,t,n),d=qF("keepDims",e,t,n);return[Tx(qF("x",e,t,n),f,d)];case"ArgMax":var m=qF("axis",e,t,n);return[Dx(qF("x",e,t,n),m)];case"ArgMin":var v=qF("axis",e,t,n);return[_x(qF("x",e,t,n),v)];case"Prod":var g=qF("axis",e,t,n),y=qF("keepDims",e,t,n);return[nS(qF("x",e,t,n),g,y)];case"Cumsum":var b=qF("axis",e,t,n),x=qF("exclusive",e,t,n),w=qF("reverse",e,t,n);return[Ew(qF("x",e,t,n),b,x,w)];default:throw TypeError("Node type "+e.op+" is not implemented")}}(e,t,n)}));case"slice_join":return sx((function(){return function(e,t,n){switch(e.op){case"ConcatV2":case"Concat":var r=qF("n",e,t,n),a=qF("axis",e,t,n),i=qF("tensors",e,t,n);return i=i.slice(0,r),[tw(i,a)];case"GatherV2":case"Gather":var o=qF("axis",e,t,n),s=qF("x",e,t,n),u=qF("indices",e,t,n);return[$w(s,Jy(u,"int32"),o)];case"ReverseV2":case"Reverse":var l=qF("axis",e,t,n),c=qF("x",e,t,n);return[SS(c,l)];case"Slice":var p=qF("begin",e,t,n),h=qF("size",e,t,n);return[rw(qF("x",e,t,n),p,h)];case"StridedSlice":var f=qF("begin",e,t,n),d=qF("end",e,t,n),m=qF("strides",e,t,n),v=qF("beginMask",e,t,n),g=qF("endMask",e,t,n),y=qF("ellipsisMask",e,t,n),b=qF("newAxisMask",e,t,n),x=qF("shrinkAxisMask",e,t,n),w=qF("x",e,t,n);return[$S(w,f,d,m,v,g,y,b,x)];case"Pack":return sx((function(){var r=qF("axis",e,t,n),a=qF("tensors",e,t,n),i=a[0].shape,o=JS(a[0]).shape,s=a.map((function(e){var t=Fv(e.shape,i);if(!t&&!Fv(JS(e).shape,o))throw new Error("the input tensors shape does not match");return t?e:gb(e,i)}));return[ZS(s,r)]}));case"Unpack":var k=qF("axis",e,t,n),S=qF("tensor",e,t,n);return sN(S,k);case"Tile":var N=qF("reps",e,t,n);return[qw(qF("x",e,t,n),N)];case"Split":case"SplitV":var I=qF("axis",e,t,n),C=qF("numOrSizeSplits",e,t,n),R=qF("x",e,t,n);return qS(R,C,I);case"ScatterNd":var E=qF("indices",e,t,n),A=qF("values",e,t,n),T=qF("shape",e,t,n);return[DN(E,A,T)];case"GatherNd":var D=qF("x",e,t,n),_=qF("indices",e,t,n);return[FN(D,_)];case"SparseToDense":var F=qF("sparseIndices",e,t,n),O=qF("outputShape",e,t,n),M=qF("sparseValues",e,t,n),L=qF("defaultValue",e,t,n);return[_N(F,M,O,M.dtype===L.dtype?L:Jy(L,M.dtype))];default:throw TypeError("Node type "+e.op+" is not implemented")}}
17(e,t,n)}));case"spectral":return sx((function(){return function(e,t,n){switch(e.op){case"FFT":return[US(qF("x",e,t,n))];case"IFFT":return[GS(qF("x",e,t,n))];case"RFFT":return[KS(qF("x",e,t,n))];case"IRFFT":return[jS(qF("x",e,t,n))];default:throw TypeError("Node type "+e.op+" is not implemented")}}(e,t,n)}));case"transformation":return sx((function(){return function(e,t,n){switch(e.op){case"Cast":return[Jy(qF("x",e,t,n),qF("dtype",e,t,n))];case"ExpandDims":var r=qF("axis",e,t,n);return[jw(qF("x",e,t,n),r)];case"Squeeze":var a=qF("axis",e,t,n);return[JS(qF("x",e,t,n),a)];case"Reshape":return[gb(qF("x",e,t,n),qF("shape",e,t,n))];case"PadV2":case"Pad":return[Kk(qF("x",e,t,n),qF("padding",e,t,n),qF("constantValue",e,t,n))];case"SpaceToBatchND":var i=qF("blockShape",e,t,n),o=qF("paddings",e,t,n);return[Qk(qF("x",e,t,n),i,o)];case"BatchToSpaceND":var s=qF("blockShape",e,t,n),u=qF("crops",e,t,n);return[ow(qF("x",e,t,n),s,u)];case"DepthToSpace":var l=qF("blockSize",e,t,n),c=qF("dataFormat",e,t,n).toUpperCase();return[Aw(qF("x",e,t,n),l,c)];case"BroadcastTo":return[hw(qF("x",e,t,n),qF("shape",e,t,n))];default:throw TypeError("Node type "+e.op+" is not implemented")}}(e,t,n)}));case"custom":var r=HF(e.op);if(r&&r.customExecutor)return r.customExecutor(new TO(e,t,n));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,n);return r instanceof Promise?r.then((function(e){return[].concat(e)})):[].concat(r)}var GO=function(){function e(e,t,n,r){void 0===e&&(e={}),void 0===t&&(t={}),void 0===n&&(n={}),void 0===r&&(r={}),this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=r,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}var t=e.prototype;return t.newFrame=function(e,t){return{id:e,frameName:t,iterationId:0}},t.generateCurrentContextIds=function(){for(var e=[],t=0;t<this.contexts.length-1;t++){var n=this.contexts.slice(0,this.contexts.length-t);e.push(this.contextIdforContexts(n))}e.push(""),this._currentContextIds=e},t.contextIdforContexts=function(e){return e?e.map((function(e){return 0===e.id&&0===e.iterationId?"":e.frameName+"-"+e.iterationId})).join("/"):""},t.enterFrame=function(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)))},t.exitFrame=function(){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()},t.nextIteration=function(){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++;var 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))},t.getWeight=function(e){return this.weightMap[e]},t.addTensorArray=function(e){this.tensorArrayMap[e.id]=e},t.getTensorArray=function(e){return this.tensorArrayMap[e]},t.addTensorList=function(e){this.tensorListMap[e.id]=e},t.getTensorList=function(e){return this.tensorListMap[e]},t.dispose=function(e){for(var t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(var n in this.tensorListMap)this.tensorListMap[n].clearAndClose(e)},Hm(e,[{key:"currentContext",set:function(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())},get:function(){return this.contexts}},{key:"currentContextId",get:function(){return this._currentContextIds[0]}},{key:"currentContextIds",get:function(){return this._currentContextIds}}]),e}();function jO(e,t,n,r){var a=new Set,i=[],o=null,s=null,u=new Set,l=Object.keys(e).map((function(e){return JF(e)[0]})),c=[];null!=r&&(c=r.map((function(e){return JF(e.name)[0]})));for(var p=[].concat(t);p.length>0;){var h=p.pop();(KO(h)||XO(h))&&null==o&&(s=(o=h).children.map((function(e){return e.name})).filter((function(e){return a.has(e)}))),a.add(h.name),null==n[h.name]&&(-1===l.indexOf(h.name)&&-1===c.indexOf(h.name)&&(0!==h.inputs.length?h.inputs.forEac
17h((function(e){u.has(e.name)||(u.add(e.name),p.push(e))})):i.push(h.name)))}return{inputs:e,outputs:t,usedNodes:a,missingInputs:i,dynamicNode:o,syncInputs:s}}var HO=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],qO=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"];function KO(e){return HO.indexOf(e.op)>=0}function XO(e){return qO.indexOf(e.op)>=0}var YO=function(){function e(t,n){var r=this;this.graph=t,this.parent=n,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,null!=t.functions&&Object.keys(t.functions).forEach((function(n){r._functionExecutorMap[n]=new e(t.functions[n],r)}))}var t=e.prototype;return t.getCompilationKey=function(e,t){var n=e.map((function(e){return e.name})).sort(),r=t.map((function(e){return e.name})).sort();return n.join(this.SEPERATOR)+"--"+r.join(this.SEPERATOR)},t.compile=function(e,t){var n=jO(e,t,this.weightMap,this._initNodes),r=n.missingInputs,a=n.dynamicNode,i=n.syncInputs;if(null!=a)throw new Error("This execution contains the node '"+a.name+"', which has the dynamic op '"+a.op+"'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs ["+i+"]");if(r.length>0){var o=t.map((function(e){return e.name})),s=Object.keys(e);throw new Error("Cannot compute the outputs ["+o+"] from the provided inputs ["+s+"]. Missing the following inputs: ["+r+"]")}return function(e,t,n){var r=n.usedNodes,a=n.inputs,i=[],o=Object.keys(a).map((function(e){return JF(e)[0]})).map((function(t){return e.nodes[t]})),s=e.initNodes;o.forEach((function(e){r.has(e.name)&&i.push(e)})),e.weights.forEach((function(e){r.has(e.name)&&i.push(e)})),null!=s&&s.forEach((function(e){r.has(e.name)&&i.push(e)}));for(var u=new Set,l=[];i.length>0;){var c=i.pop();u.add(c.name),t[c.name]||l.push(c),c.children.forEach((function(e){!u.has(e.name)&&r.has(e.name)&&e.inputs.every((function(e){return u.has(e.name)}))&&i.push(e)}))}return l}(this.graph,this.weightMap,n)},t.execute=function(e,t){var n=this;e=this.mapInputs(e);var r=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);var a=r.map((function(e){return n.graph.nodes[JF(e)[0]]})),i=t.map((function(e){return JF(e)[0]})),o=i.map((function(e){return n.graph.nodes[e]}));0===o.length&&(o=this._outputs);var s=this.getCompilationKey(a,o),u=this.compiledMap.get(s);null==u&&(u=this.compile(e,o),this.compiledMap.set(s,u));var l={},c={};return sx((function(){var r=new GO(n.weightMap,l,c,n.functionExecutorMap),a=Object.assign({},n.weightMap);Object.keys(e).forEach((function(t){var n=JF(t),r=n[0],i=[];i[n[1]]=e[t],a[r]=i}));for(var o=n.getFrozenTensorIds(a),s={},p=0;p<u.length;p++){var h=u[p];if(!a[h.name]){var f=UO(h,a,r);if(f instanceof Promise)throw new Error("The execution of the op '"+h.op+"' returned a promise. Please use model.executeAsync() instead.");a[h.name]=f,n.checkTensorForDisposal(h.name,h,a,r,o,i,s)}}return null==n.parent&&r.dispose(o),t.map((function(e){return KF(e,a,r)}))}))},t.getFrozenTensorIds=function(e){var t=[].concat.apply([],Object.keys(e).map((function(t){return e[t]})).map((function(e){return e.map((function(e){return e.id}))})));return new Set(t)},t.checkTensorForDisposal=function(e,t,n,r,a,i,o){"control"!==t.category&&-1===i.indexOf(e)&&(n[e].forEach((function(e){null!=e&&(o[e.id]=(o[e.id]||0)+t.children.length)})),t.inputs.forEach((function(e){if("control"!==e.category){var t=function(e,t,n){return t[YF(e,n.currentContextId)]}(e.name,n,r);null!=t&&t.forEach((function(e){if(e&&!a.has(e.id)){var t=o[e.id];1===t?(e.dispose(),delete o[e.id]):null!=t&&o[e.id]--}}))}})))},t.executeAsync=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this._executeAsync(t,n));case 1:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t._executeAsync=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n,r,a,i){var o,s,u,l,c,p;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r=!1),void 0===a&&(a={}),void 0===i&&(i={}
17),r||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),n=this.mapOutputs(n),this.checkOutputs(n)),o=new GO(this.weightMap,a,i,this.functionExecutorMap),e.next=7,this.executeWithControlFlow(t,o,n,r);case 7:return s=e.sent,u=n.map((function(e){return KF(e,s,o)})),l=u.map((function(e){return e.id})),c=Object.keys(t).map((function(e){return t[e].id})),p=new Set([].concat(l,c,this.weightIds)),Object.keys(s).forEach((function(e){s[e].forEach((function(e){!e||e.isDisposed||p.has(e.id)||e.dispose()}))})),null==this.parent&&o.dispose(p),e.abrupt("return",u);case 15:case"end":return e.stop()}}),e,this)})));return function(t,n,r,a,i){return e.apply(this,arguments)}}(),t.executeFunctionAsync=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n,r){var a,i=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.reduce((function(e,t,n){return e[i.inputs[n].name]=t,e}),{}),e.abrupt("return",this._executeAsync(a,this.outputNodes,!0,n,r));case 2:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),t.executeWithControlFlow=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n,r,a){var i,o,s,u,l,c,p,h,f,d,m,v,g,y,b,x,w,k=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=Object.keys(t),o=i.map((function(e){return k.graph.nodes[JF(e)[0]]})),s=r.map((function(e){return JF(e)[0]})),u=s.map((function(e){return k.graph.nodes[e]})),l=jO(t,u,this.weightMap),c=l.usedNodes,p=l.missingInputs,h=l.dynamicNode,f=l.syncInputs,d=[].concat(o,this.graph.weights).map((function(e){return{node:e,contexts:n.currentContext}})),m=Object.assign({},this.weightMap),Object.keys(t).forEach((function(e){var n=JF(e),r=n[0],a=[];a[n[1]]=t[e],m[r]=a})),v={},g=this.getFrozenTensorIds(m),y={};case 11:if(!(d.length>0)){e.next=17;break}return b=this.processStack(o,d,n,m,y,g,s,v,c),e.next=15,Promise.all(b);case 15:e.next=11;break;case 17:if(null!=h||a||console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead."),!((x=u.filter((function(e){return!KO(e)&&!KF(e.name,m,n)})).map((function(e){return e.name}))).length>0)){e.next=23;break}throw w="",null!=h&&(w="Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs ["+f+"]"),new Error("Cannot compute the outputs ["+x+"] from the provided inputs ["+i+"]. Consider providing the following inputs: ["+p+"]. "+w);case 23:return e.abrupt("return",m);case 24:case"end":return e.stop()}}),e,this)})));return function(t,n,r,a){return e.apply(this,arguments)}}(),t.processStack=function(e,t,n,r,a,i,o,s,u){for(var l=this,c=[],p=function(){var p=t.pop();n.currentContext=p.contexts;var h="";if("Enter"===p.node.op&&qF("isConstant",p.node,r,n)){var f=XF(p.node.name,n);h=f[0]}if(-1===e.indexOf(p.node)){var d=UO(p.node,r,n);if(!h){var m=XF(p.node.name,n);h=m[0]}var v=n.currentContext;d instanceof Promise?c.push(d.then((function(e){return r[h]=e,n.currentContext=v,l.checkTensorForDisposal(h,p.node,r,n,i,o,s),l.processChildNodes(p.node,t,n,r,a,u),e}))):(r[h]=d,l.checkTensorForDisposal(h,p.node,r,n,i,o,s),l.processChildNodes(p.node,t,n,r,a,u))}else l.processChildNodes(p.node,t,n,r,a,u)};t.length>0;)p();return c},t.processChildNodes=function(e,t,n,r,a,i){e.children.forEach((function(e){var o=XF(e.name,n)[0];!a[o]&&i.has(e.name)&&("Merge"===e.op?e.inputNames.some((function(e){return!!KF(e,r,n)}))&&(a[o]=!0,t.push({contexts:n.currentContext,node:e})):e.inputNames.every((function(e){return!!KF(e,r,n)}))&&(a[o]=!0,t.push({contexts:n.currentContext,node:e})))}))},t.dispose=function(){var e=this;Object.keys(this.weightMap).forEach((function(t){return e.weightMap[t].forEach((function(e){return e.dispose()}))}))},t.checkInputShapeAndType=function(e){var t=this;Object.keys(e).forEach((function(n){var r=e[n],a=JF(n)[0],i=t.graph.nodes[a];if(i.attrParams.shape&&i.attrParams.shape.value){var o=i.attrParams.shape.value;Ev(o.length===r.shape.length&&r.shape.every((function(e,t){return-1===o[t]||o[t]===e})),(function(){return"The shape of dict['"+i.name+"'] provided in model.execute(dict) must be ["+o+"], but was ["+r.shape+"]"}))}i.attrParams.dtype&&i.attrParams.dtype.value&&Ev(r.dtype===i.attrParams.dtype.value,(function(){return"The dtype of dict['"+i.name+"'] provided in model.execute(dict) must be "+i.attrParams.dtype.value+", but was "+r.dtype}))}))}
17,t.mapInputs=function(e){var t={};for(var n in e){if(null!=this._signature&&null!=this._signature.inputs&&null!=this._signature.inputs[n])t[this._signature.inputs[n].name]=e[n];else t[n]=e[n]}return t},t.checkInputs=function(e){var t=this,n=Object.keys(e).filter((function(e){var n=JF(e)[0];return null==t.graph.nodes[n]}));if(n.length>0)throw new Error("The dict provided in model.execute(dict) has keys: ["+n+"] that are not part of graph")},t.mapOutputs=function(e){var t=this;return e.map((function(e){return null!=t._signature&&null!=t._signature.outputs&&null!=t._signature.outputs[e]?t._signature.outputs[e].name:e}),{})},t.checkOutputs=function(e){var t=this;e.forEach((function(e){var n=JF(e)[0];if(!t.graph.nodes[n])throw new Error("The output '"+e+"' is not found in the graph")}))},Hm(e,[{key:"weightIds",get:function(){return this.parent?this.parent.weightIds:this._weightIds}},{key:"functionExecutorMap",get:function(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}},{key:"weightMap",get:function(){return this.parent?this.parent.weightMap:this._weightMap},set:function(e){var t,n=Object.keys(e).map((function(t){return e[t].map((function(e){return e.id}))}));this._weightIds=(t=[]).concat.apply(t,n),this._weightMap=e}},{key:"inputs",get:function(){return this._inputs.map((function(e){return{name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}}))}},{key:"outputs",get:function(){return this._outputs.map((function(e){return{name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}}))}},{key:"inputNodes",get:function(){return this._inputs.map((function(e){return e.signatureKey||e.name}))}},{key:"outputNodes",get:function(){return this._outputs.map((function(e){var t=e.signatureKey||e.name;return e.defaultOutput?t+":"+e.defaultOutput:t}))}},{key:"functions",get:function(){var e=this;return Object.keys(this._functions).reduce((function(t,n){return t[n]=e._functions[n].signature,t}),{})}}]),e}(),JO=function(){function e(e,t){void 0===t&&(t={}),this.modelUrl=e,this.loadOptions=t,this.version="n/a",null==t&&(this.loadOptions={})}var t=e.prototype;return t.findIOHandler=function(){var e=this.modelUrl;if(null!=e.load)this.handler=e;else if(null!=this.loadOptions.requestInit)this.handler=fb(e,this.loadOptions);else{var t=yy(e,this.loadOptions);if(0===t.length)t.push(fb(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]}},t.load=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.findIOHandler(),null!=this.handler.load){e.next=3;break}throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");case 3:return e.next=5,this.handler.load();case 5:return t=e.sent,e.abrupt("return",this.loadSync(t));case 7:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.loadSync=function(e){this.artifacts=e;var t=this.artifacts.modelTopology,n={};null!=this.artifacts.userDefinedMetadata&&(n=this.artifacts.userDefinedMetadata.signature),this.version=t.versions.producer+"."+t.versions.minConsumer;var r=oy(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new YO(mO.Instance.transformGraph(t,n)),this.executor.weightMap=this.convertTensorMapToTensorsMap(r),null!=e.modelInitializer){var a=mO.Instance.transformGraph(e.modelInitializer);this.initializer=new YO(a),this.initializer.weightMap=this.executor.weightMap,this.initializer.execute({},[])}return!0},t.save=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!=typeof t){e.next=9;break}if(0!==(r=gy(t)).length){e.next=6;break}throw new Error("Cannot find any save handlers for URL '"+t+"'");case 6:if(!(r.length>1)){e.next=8;break}throw new Error("Found more than one ("+r.length+") save handlers for URL '"+t+"'");case 8:t=r[0];case 9:if(null!=t.save){e.next=11;break}throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");case 11:return e.abrupt("return",t.save(this.artifacts));case 12:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.predict=function(e,t){return this.execute(e,this.outputNodes)},t.normalizeInputs=function(e){if(!(e instanceof Ig||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((function(t,n,r){return t[n]=e[r],t}),{})},t.normalizeOutputs=function(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]},t.execute=function(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);var n=this.executor.execute(e,t);return n.length>1?n:n[0]},t.executeAsync=function(){var e=Gm(regeneratorRuntime.mark((function e(t,n){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.normalizeInputs(t),n=this.normalizeOutputs(n),e.next=4,this.executor.executeAsync(t,n);case 4:return r=e.sent,e.abrupt("return",r.length>1?r:r[0]);case 6:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.convertTensorMapToTensorsMap=function(e){return Object.keys(e).reduce((function(t,n){return t[n]=[e[n]],t}),{})},t.dispose=function(){this.executor.dispose(),this.initializer&&this.initializer.dispose()},Hm(e,[{key:"modelVersion",get:function(){return this.version}},{key:"inputNodes",get:function(){return this.executor.inputNodes}},{key:"outputNodes",get:function(){return this.executor.outputNodes}},{key:"inputs",get:function(){return this.executor.inputs}},{key:"outputs",get:function(){return this.executor.outputs}},{key:"weights",get:function(){return this.executor.weightMap}}]),e}();function ZO(){return(ZO=Gm(regeneratorRuntime.mark((function e(t,n){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===n&&(n={}),null!=t){e.next=3;break}throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");case 3:return null==n&&(n={}),n.fromTFHub&&null==t.load&&(t.endsWith("/")||(t+="/"),t+="model.json?tfjs-format=file"),r=new JO(t,n),e.next=8,r.load();case 8:return e.abrupt("return",r);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function QO(e,t,n,r){if(void 0===n&&(n=new Map),void 0===r&&(r=new Set),null==e)return null;if(r.has(e))throw new Error("Circular references are not supported.");
17if(n.has(e))return n.get(e);var a=t(e);if(a.recurse&&null!==a.value)throw new Error("A deep map function may not return both a value and recurse=true.");if(a.recurse){if(rM(e)){var i=Array.isArray(e)?[]:{};for(var o in r.add(e),e){var s=QO(e[o],t,n,r);i[o]=s}return r.delete(e),i}throw new Error("Can't recurse into non-iterable type: "+e)}return n.set(e,a.value),a.value}function $O(e,t){return void 0===t&&(t=eM),function e(t,n,r){void 0===r&&(r=new Set);var a=t[0];if(r.has(a))throw new Error("Circular references are not supported.");var i=n(t);if(i.recurse&&null!==i.value)throw new Error("A deep zip function may not return both a value and recurse=true.");if(i.recurse){if(rM(a)){var o=Array.isArray(a)?[]:{};r.add(a);var s=function(a){var i=t.map((function(e){return e[a]})),s=e(i,n,r);o[a]=s};for(var u in a)s(u);return r.delete(a),o}throw new Error("Can't recurse into non-iterable type: "+a)}return i.value}(e,t)}function eM(e){return null===e?null:rM(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}function tM(e,t){return nM.apply(this,arguments)}function nM(){return(nM=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i,o,s,u,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=new Map,QO(t,n,r),a=0,i=Array.from(r.keys());case 3:if(!(a<i.length)){e.next=14;break}if(o=i[a],!((s=r.get(o))instanceof Promise)){e.next=11;break}return e.next=9,s;case 9:u=e.sent,r.set(o,u);case 11:a++,e.next=3;break;case 14:return l=QO(t,n,r),e.abrupt("return",l);case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function rM(e){return null!=e&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||"object"==typeof e&&!(e instanceof Ig))}function aM(e){return function(e,t){return QO(e,t)}(e,iM)}function iM(e){return e instanceof Ig?{value:e.clone(),recurse:!1}:rM(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var oM=function(){function e(e){if(this.capacity=e,this.begin=0,this.end=0,null==e)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}var t=e.prototype;return t.wrap=function(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity},t.get=function(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]},t.set=function(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t},t.length=function(){var e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e},t.isFull=function(){return this.length()===this.capacity},t.isEmpty=function(){return 0===this.length()},t.push=function(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)},t.pushAll=function(e){for(var t,n=tv(e);!(t=n()).done;){var r=t.value;this.push(r)}},t.pop=function(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);var e=this.get(this.end);return this.set(this.end,void 0),e},t.unshift=function(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)},t.shift=function(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");var e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e},t.shuffleExcise=function(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");var t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n},e}(),sM=function(e){function t(){return e.call(this,t.INITIAL_CAPACITY)||this}qm(t,e);var n=t.prototype;return n.isFull=function(){return!1},n.push=function(t){e.prototype.isFull.call(this)&&this.expand(),e.prototype.push.call(this,t)},n.unshift=function(t){e.prototype.isFull.call(this)&&this.expand(),e.prototype.unshift.call(this,t)},n.expand=function(){for(var e=2*this.capacity,t=new Array(e),n=this.length(),r=0;r<n;r++)t[r]=this.get(this.wrap(this.begin+r));this.data=t,this.capacity=e,this.doubledCapacity=2*this.capacity,this.begin=0,this.end=n},t}(oM);function uM(e){return new dM(e)}function lM(e){return new mM(e)}function cM(e,t){return new CM(e,t)}function pM(e,t){return void 0===t&&(t=hM.FAIL),new RM(e,t)}sM.INITIAL_CAPACITY=32;var hM,fM=function(){function e(){}var t=e.prototype;return t.toArray=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=[],e.next=3,this.next();case 3:n=e.sent;case 4:if(n.done){e.next=11;break}return t.push(n.value),e.next=8,this.next();case 8:n=e.sent,e.next=4;break;case 11:return e.abrupt("return",t);case 12:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.toArrayForTest=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.prefetch(100),n=[],e.next=4,t.next();case 4:r=e.sent;case 5:if(r.done){e.next=12;break}return n.push(r.value),e.next=9,t.next();case 9:r=e.sent,e.next=5;break;case 12:return e.abrupt("return",n);case 13:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.resolveFully=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.next();case 2:t=e.sent;case 3:if(t.done){e.next=9;break}return e.next=6,this.next();case 6:t=e.sent,e.next=3;break;case 9:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.resolveWhile=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.next();case 2:n=e.sent,r=t(n.value);case 4:if(n.done||!r){e.next=11;break}return e.next=7,this.next();case 7:n=e.sent,r=t(n.value),e.next=4;break;case 11:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.handleErrors=function(e){return new kM(this,e)},t.filter=function(e){return new xM(this,e)},t.map=function(e){return new wM(this,e)},t.mapAsync=function(e){return new SM(this,e)},t.serialMapAsync=function(e){return new SM(this,e).serial()},t.flatmap=function(e){return new IM(this,e)},t.forEachAsync=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.map(t).resolveFully());case 1:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.serialForEach=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.serialMapAsync(t).resolveWhile((function(e){return!0===e})));case 1:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.rowMajorBatch=function(e,t){return void 0===t&&(t=!0),new bM(this,e,t)},t.columnMajorBatch=function(e,t,n){return void 0===t&&(t=!0),void 0===n&&(n=eM),this.rowMajorBatch(e,t).map((function(e){return $O(e,n)}))},t.concatenate=function(e,t){return new CM(uM([this,e]),t)},t.take=function(e){return e<0||null==e?this:new yM(this,e)},t.skip=function(e){return e<0||null==e?this:new gM(this,e)},t.prefetch=function(e){return new EM(this,e)},t.shuffle=function(e,t){return new AM(this,e,t)},t.serial=function(){return new vM(this)},e}(),dM=function(e){function t(t){var n;return(n=e.call(this)||this).items=t,n.trav=0,n}qm(t,e);var n=t.prototype;return n.summary=function(){return"Array of "+this.items.length+" items"},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(this.trav>=this.items.length)){e.next=2;break}return e.abrupt("return",{value:null,done:!0});case 2:return t=this.items[this.trav],this.trav++,e.abrupt("return",{value:aM(t),done:!1});case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(fM),mM=function(e){function t(t){var n;return(n=e.call(this)||this).nextFn=t,n}qm(t,e);var n=t.prototype;return n.summary=function(){return"Function call"},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.abrupt("return",this.nextFn());case 4:throw e.prev=4,e.t0=e.catch(0),e.t0.message="Error thrown while iterating through a dataset: "+e.t0.message,e.t0;case 8:case"end":return e.stop()}}),e,this,[[0,4]])})));return function(){return e.apply(this,arguments)}}(),t}(fM),vM=function(e){function t(t){var n;return(n=e.call(this)||this).upstream=t,n.lastRead=Promise.resolve({value:null,done:!1}),n}qm(t,e);var n=t.prototype;return n.summary=function(){return this.upstream.summary()+" -> Serial"},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.lastRead=this.lastRead.then((function(){return t.serialNext()})),e.abrupt("return",this.lastRead);case 2:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.serialNext=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.upstream.next());case 1:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(fM),gM=function(e){function t(t,n){var r;return(r=e.call(this)||this).upstream=t,r.maxCount=n,r.count=0,r.lastRead=Promise.resolve({value:null,done:!1}),r}qm(t,e);var n=t.prototype;return n.summary=function(){return this.upstream.summary()+" -> Skip"},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.lastRead=this.lastRead.then((function(){return t.serialNext()})),e.abrupt("return",this.lastRead);case 2:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.serialNext=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(this.count++<this.maxCount)){e.next=9;break}return e.next=3,this.upstream.next();case 3:if(!(t=e.sent).done){e.next=6;break}return e.abrupt("return",t);case 6:ux(t.value),e.next=0;break;case 9:return e.abrupt("return",this.upstream.next());case 10:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(fM),yM=function(e){function t(t,n){var r;return(r=e.call(this)||this).upstream=t,r.maxCount=n,r.count=0,r}
17qm(t,e);var n=t.prototype;return n.summary=function(){return this.upstream.summary()+" -> Take"},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(this.count++>=this.maxCount)){e.next=2;break}return e.abrupt("return",{value:null,done:!0});case 2:return e.abrupt("return",this.upstream.next());case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(fM),bM=function(e){function t(t,n,r){var a;return void 0===r&&(r=!0),(a=e.call(this)||this).upstream=t,a.batchSize=n,a.enableSmallLastBatch=r,a.lastRead=Promise.resolve({value:null,done:!1}),a}qm(t,e);var n=t.prototype;return n.summary=function(){return this.upstream.summary()+" -> RowMajorBatch"},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.lastRead=this.lastRead.then((function(){return t.serialNext()})),e.abrupt("return",this.lastRead);case 2:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.serialNext=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=[];case 1:if(!(t.length<this.batchSize)){e.next=12;break}return e.next=4,this.upstream.next();case 4:if(!(n=e.sent).done){e.next=9;break}if(!(this.enableSmallLastBatch&&t.length>0)){e.next=8;break}return e.abrupt("return",{value:t,done:!1});case 8:return e.abrupt("return",{value:null,done:!0});case 9:t.push(n.value),e.next=1;break;case 12:return e.abrupt("return",{value:t,done:!1});case 13:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(fM),xM=function(e){function t(t,n){var r;return(r=e.call(this)||this).upstream=t,r.predicate=n,r.lastRead=Promise.resolve({value:null,done:!1}),r}qm(t,e);var n=t.prototype;return n.summary=function(){return this.upstream.summary()+" -> Filter"},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.lastRead=this.lastRead.then((function(){return t.serialNext()})),e.abrupt("return",this.lastRead);case 2:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.serialNext=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=3,this.upstream.next();case 3:if(!(t=e.sent).done&&!this.predicate(t.value)){e.next=6;break}return e.abrupt("return",t);case 6:ux(t.value),e.next=0;break;case 9:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(fM),wM=function(e){function t(t,n){var r;return(r=e.call(this)||this).upstream=t,r.transform=n,r}qm(t,e);var n=t.prototype;return n.summary=function(){return this.upstream.summary()+" -> Map"},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r,a,i,o,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.upstream.next();case 2:if(!(t=e.sent).done){e.next=5;break}return e.abrupt("return",{value:null,done:!0});case 5:for(n=Bg(t.value),r=this.transform(t.value),a=Bg(r),i=tv(n);!(o=i()).done;)zg(s=o.value,a)||s.dispose();return e.abrupt("return",{value:r,done:!1});case 10:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(fM),kM=function(e){function t(t,n){var r;return(r=e.call(this)||this).upstream=t,r.handler=n,r.count=0,r.lastRead=Promise.resolve({value:null,done:!1}),r}qm(t,e);var n=t.prototype;return n.summary=function(){return this.upstream.summary()+" -> handleErrors"},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.lastRead=this.lastRead.then((function(){return t.serialNext()})),e.abrupt("return",this.lastRead);case 2:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.serialNext=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=1,e.next=4,this.upstream.next();case 4:return e.abrupt("return",e.sent);case 7:if(e.prev=7,e.t0=e.catch(1),this.handler(e.t0)){e.next=11;break}return e.abrupt("return",{value:null,done:!0});case 11:e.next=0;break;case 13:case"end":return e.stop()}}),e,this,[[1,7]])})));return function(){return e.apply(this,arguments)}}(),t}(fM),SM=function(e){function t(t,n){var r;return(r=e.call(this)||this).upstream=t,r.transform=n,r}qm(t,e);var n=t.prototype;return n.summary=function(){return this.upstream.summary()+" -> AsyncMap"},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r,a,i,o,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.upstream.next();case 2:if(!(t=e.sent).done){e.next=5;break}return e.abrupt("return",{value:null,done:!0});case 5:return n=Bg(t.value),e.next=8,this.transform(t.value);case 8:for(r=e.sent,a=Bg(r),i=tv(n);!(o=i()).done;)zg(s=o.value,a)||s.dispose();return e.abrupt("return",{value:r,done:!1});case 12:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(fM),NM=function(e){function t(){var t;return(t=e.call(this)||this).outputQueue=new sM,t.lastRead=Promise.resolve({value:null,done:!1}),t}qm(t,e);var n=t.prototype;return n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.lastRead=this.lastRead.then((function(){return t.serialNext()})),e.abrupt("return",this.lastRead);case 2:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.serialNext=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==this.outputQueue.length()){e.
17next=7;break}return e.next=3,this.pump();case 3:if(e.sent){e.next=5;break}return e.abrupt("return",{value:null,done:!0});case 5:e.next=0;break;case 7:return e.abrupt("return",{value:this.outputQueue.shift(),done:!1});case 8:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(fM),IM=function(e){function t(t,n){var r;return(r=e.call(this)||this).upstream=t,r.transform=n,r}qm(t,e);var n=t.prototype;return n.summary=function(){return this.upstream.summary()+" -> Flatmap"},n.pump=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r,a,i,o,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.upstream.next();case 2:if(!(t=e.sent).done){e.next=5;break}return e.abrupt("return",!1);case 5:for(n=Bg(t.value),r=this.transform(t.value),a=Bg(r),this.outputQueue.pushAll(r),i=tv(n);!(o=i()).done;)zg(s=o.value,a)||s.dispose();return e.abrupt("return",!0);case 11:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(NM),CM=function(e){function t(t,n){var r;return(r=e.call(this)||this).baseErrorHandler=n,r.lastRead=null,r.iterator=null,r.moreIterators=t,r}qm(t,e);var n=t.prototype;return n.summary=function(){return"TODO: fill in upstream of chained summaries -> Chained"},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.lastRead=this.readFromChain(this.lastRead),e.abrupt("return",this.lastRead);case 2:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.readFromChain=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t;case 2:if(null!=this.iterator){e.next=10;break}return e.next=5,this.moreIterators.next();case 5:if(!(n=e.sent).done){e.next=8;break}return e.abrupt("return",{value:null,done:!0});case 8:this.iterator=n.value,null!=this.baseErrorHandler&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler));case 10:return e.next=12,this.iterator.next();case 12:if(!(r=e.sent).done){e.next=16;break}return this.iterator=null,e.abrupt("return",this.readFromChain(t));case 16:return e.abrupt("return",r);case 17:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t}(fM);!function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"}(hM||(hM={}));var RM=function(e){function t(t,n){var r;return void 0===n&&(n=hM.FAIL),(r=e.call(this)||this).iterators=t,r.mismatchMode=n,r.count=0,r.currentPromise=null,r}qm(t,e);var n=t.prototype;return n.summary=function(){return"{TODO: fill in upstream of zip summaries} -> Zip"},n.nextState=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r,a,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=function(e){return e instanceof fM?{value:e.next().then((function(e){return n++,e.done&&r++,e.value})),recurse:!1}:{value:null,recurse:!0}},e.next=3,t;case 3:return n=0,r=0,e.next=7,tM(this.iterators,a);case 7:if(i=e.sent,n!==r){e.next=10;break}return e.abrupt("return",{value:null,done:!0});case 10:if(!(r>0)){e.next=16;break}e.t0=this.mismatchMode,e.next=e.t0===hM.FAIL?14:e.t0===hM.SHORTEST?15:(e.t0,hM.LONGEST,16);break;case 14:throw new Error("Zipped streams should have the same length. Mismatched at element "+this.count+".");case 15:return e.abrupt("return",{value:null,done:!0});case 16:return this.count++,e.abrupt("return",{value:i,done:!1});case 18:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.currentPromise=this.nextState(this.currentPromise),e.abrupt("return",this.currentPromise);case 2:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(fM),EM=function(e){function t(t,n){var r;return(r=e.call(this)||this).upstream=t,r.bufferSize=n,r.buffer=new oM(n),r}qm(t,e);var n=t.prototype;return n.summary=function(){return this.upstream.summary()+" -> Prefetch"},n.refill=function(){for(;!this.buffer.isFull();){var e=this.upstream.next();this.buffer.push(e)}},n.next=function(){return this.refill(),this.buffer.shift()},t}(fM),AM=function(e){function t(t,n,r){var a;return(a=e.call(this,t,n)||this).upstream=t,a.windowSize=n,a.upstreamExhausted=!1,a.random=pS(r||ug().toString()),a.lastRead=Promise.resolve({value:null,done:!1}),a}qm(t,e);var n=t.prototype;return n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.lastRead=this.lastRead.then((function(){return t.serialNext()})),e.abrupt("return",this.lastRead);case 2:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.randomInt=function(e){return Math.floor(this.random()*e)},n.chooseIndex=function(){return this.randomInt(this.buffer.length())},n.serialNext=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.upstreamExhausted||this.refill();case 1:if(this.buffer.isEmpty()){e.next=14;break}return t=this.chooseIndex(),e.next=5,this.buffer.shuffleExcise(t);case 5:if(!(n=e.sent).done){e.next=10;break}this.upstreamExhausted=!0,e.next=12;break;case 10:return this.refill(),e.abrupt("return",n);case 12:e.next=1;break;case 14:return e.abrupt("return",{value:null,done:!0});case 15:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(EM),TM=function(){function e(){this.size=null}var t=e.prototype;return t.batch=function(e,t){void 0===t&&(t=!0);var n,r=this;return Ev(e>0,(function(){return"batchSize needs to be positive, but it is\n      "+e})),n=this.size===1/0||null==this.size?this.size:t?Math.ceil(this.size/e):Math.floor(this.size/e),DM(Gm(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,r.iterator();case 2:return n.abrupt("return",n.sent.columnMajorBatch(e,t,_M));case 3:case"end":return n.stop()}}),n)}))),n)},t.concatenate=function(e){var t,n=this;return t=this.size===1/0||e.size===1/0?1/0:null!=this.size&&null!=e.size?this.size+e.size:null,DM(Gm(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.iterator();case 2:return t.t0=t.sent,t.next=5,e.iterator();case 5:return t.t1=t.sent,t.abrupt("return",t.t0.concatenate.call(t.t0,t.t1));case 7:case"end":return t.stop()}}),t)}))),t)},t.filter=function(e){var t,n=this;return t=this.size===1/0?1/0:null,DM(Gm(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.iterator();case 2:return t.abrupt("return",t.sent.filter((function(t){return sx((function(){return e(t)}))}
17)));case 3:case"end":return t.stop()}}),t)}))),t)},t.forEachAsync=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.iterator();case 2:return e.abrupt("return",e.sent.forEachAsync(t));case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.map=function(e){var t=this;return DM(Gm(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.iterator();case 2:return n.abrupt("return",n.sent.map((function(t){return sx((function(){return e(t)}))})));case 3:case"end":return n.stop()}}),n)}))),this.size)},t.mapAsync=function(e){var t=this;return DM(Gm(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.iterator();case 2:return n.abrupt("return",n.sent.mapAsync(e));case 3:case"end":return n.stop()}}),n)}))),this.size)},t.prefetch=function(e){if(null==e)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");var t=this;return DM(Gm(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.iterator();case 2:return n.abrupt("return",n.sent.prefetch(e));case 3:case"end":return n.stop()}}),n)}))),this.size)},t.repeat=function(e){var t,n=this;return t=null!=this.size&&e>0?this.size*e:0===e?0:null!=this.size&&(void 0===e||e<0)?1/0:null,DM(Gm(regeneratorRuntime.mark((function t(){var r;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=lM(Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.iterator();case 2:return e.t0=e.sent,e.abrupt("return",{value:e.t0,done:!1});case 4:case"end":return e.stop()}}),e)})))),t.abrupt("return",cM(r.take(e)));case 2:case"end":return t.stop()}}),t)}))),t)},t.skip=function(e){var t,n=this;return t=null!=this.size&&e>=0&&this.size>=e?this.size-e:null!=this.size&&(this.size<e||void 0===e||e<0)?0:null,DM(Gm(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.iterator();case 2:return t.abrupt("return",t.sent.skip(e));case 3:case"end":return t.stop()}}),t)}))),t)},t.shuffle=function(e,t,n){if(void 0===n&&(n=!0),null==e||e<0)throw null==this.size?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError("`Dataset.shuffle()` requires bufferSize to be specified.  If your data fits in main memory (for regular JS objects), and/or GPU memory (for `tf.Tensor`s), consider setting bufferSize to the dataset size ("+this.size+" elements)");var r=this,a=pS(t||ug().toString());return DM(Gm(regeneratorRuntime.mark((function t(){var i;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=a.int32(),n&&(i+=a.int32()),t.next=4,r.iterator();case 4:return t.abrupt("return",t.sent.shuffle(e,i.toString()));case 5:case"end":return t.stop()}}),t)}))),this.size)},t.take=function(e){var t,n=this;return t=null!=this.size&&this.size>e?e:null!=this.size&&this.size<=e?this.size:null,DM(Gm(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.iterator();case 2:return t.abrupt("return",t.sent.take(e));case 3:case"end":return t.stop()}}),t)}))),t)},t.toArray=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.size!==1/0){e.next=2;break}throw new Error("Can not convert infinite data stream to array.");case 2:return e.next=4,this.iterator();case 4:return e.abrupt("return",e.sent.toArray());case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.toArrayForTest=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.size!==1/0){e.next=2;break}throw new Error("Can not convert infinite data stream to array.");case 2:return e.next=4,this.iterator();case 4:return e.abrupt("return",e.sent.toArrayForTest());case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),e}();function DM(e,t){return void 0===t&&(t=null),new(function(n){function r(){var e;return(e=n.apply(this,arguments)||this).size=t,e}return qm(r,n),r.prototype.iterator=function(){var t=Gm(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e());case 1:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}(),r}(TM))}function _M(e){return null===e?null:function(e){return null==e||(null===(t=e)||"object"!=typeof t&&"function"!=typeof t)||Array.isArray(e)||"object"==typeof e&&e instanceof Ig||qv(e);var t}(e[0])?{value:function(e){if(0===e.length)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ig?ZS(e):ny(e)}(e),recurse:!1}:{value:null,recurse:!0}}TM.MAX_BUFFER_SIZE=1e4;var FM=function(e){function t(t){var n;return(n=e.call(this)||this).input=t,n}return qm(t,e),t.prototype.iterator=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.input.iterator();
17case 2:return t=e.sent,n=t.decodeUTF8(),r=n.split("\n").map((function(e){return e.endsWith("\r")&&(e=e.slice(0,-1)),e})),e.abrupt("return",r);case 6:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(TM),OM=Symbol("out"),MM=Symbol("field"),LM=Symbol("quote"),zM=Symbol("quoteafterquote"),BM=Symbol("quoteinquote"),PM=function(e){function t(t,n){var r;return(r=e.call(this)||this).input=t,r.hasHeader=!0,r.fullColumnNames=null,r.columnNamesValidated=!1,r.columnConfigs=null,r.configuredColumnsOnly=!1,r.delimiter=",",r.delimWhitespace=!1,r.base=new FM(t),n||(n={}),r.hasHeader=!1!==n.hasHeader,r.fullColumnNames=n.columnNames,r.columnConfigs=n.columnConfigs,r.configuredColumnsOnly=n.configuredColumnsOnly,n.delimWhitespace?(Ev(null==n.delimiter,(function(){return"Delimiter should not be provided when delimWhitespace is true."})),r.delimWhitespace=!0,r.delimiter=" "):r.delimiter=n.delimiter?n.delimiter:",",r}qm(t,e);var n=t.prototype;return n.columnNames=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.columnNamesValidated){e.next=3;break}return e.next=3,this.setColumnNames();case 3:return e.abrupt("return",this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames);case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.setColumnNames=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r,a,i,o,s=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.maybeReadHeaderLine();case 2:if(t=e.sent,this.fullColumnNames||t){e.next=7;break}throw new Error("Column names must be provided if there is no header line.");case 7:this.fullColumnNames&&t&&Ev(t.length===this.fullColumnNames.length,(function(){return"The length of provided columnNames ("+s.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+t.length.toString()+")."}));case 8:if(this.fullColumnNames||(this.fullColumnNames=t),n=this.fullColumnNames.reduce((function(e,t){return e[t]=e[t]+1||1,e}),{}),Ev(0===(r=Object.keys(n).filter((function(e){return n[e]>1}))).length,(function(){return"Duplicate column names found: "+r.toString()})),!this.columnConfigs){e.next=22;break}a=0,i=Object.keys(this.columnConfigs);case 14:if(!(a<i.length)){e.next=22;break}if(o=i[a],-1!==this.fullColumnNames.indexOf(o)){e.next=19;break}throw new Error('The key "'+o+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").");case 19:a++,e.next=14;break;case 22:this.columnNamesValidated=!0;case 23:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.maybeReadHeaderLine=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.hasHeader){e.next=14;break}return e.next=3,this.base.iterator();case 3:return t=e.sent,e.next=6,t.next();case 6:if(!(n=e.sent).done){e.next=9;break}throw new Error("No data was found for CSV parsing.");case 9:return r=n.value,a=this.parseRow(r,!1),e.abrupt("return",a);case 14:return e.abrupt("return",null);case 15:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.iterator=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.columnNamesValidated){e.next=3;break}return e.next=3,this.setColumnNames();case 3:return e.next=5,this.base.iterator();case 5:return t=e.sent,this.hasHeader&&(t=t.skip(1)),e.abrupt("return",t.map((function(e){return n.makeDataElement(e)})));case 8:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.makeDataElement=function(e){for(var t=this.parseRow(e),n={},r={},a=0;a<this.fullColumnNames.length;a++){var i=this.fullColumnNames[a],o=this.columnConfigs?this.columnConfigs[i]:null;if(!this.configuredColumnsOnly||o){var s=t[a],u=null;if(""===s)if(o&&void 0!==o.default)u=o.default;else{if(o&&(o.required||o.isLabel))throw new Error("Required column "+i+" is empty in this line: "+e);u=void 0}else{var l=Number(s);if(isNaN(l))u=o&&"bool"===o.dtype?this.getBoolean(s):s;else if(o&&o.dtype)switch(o.dtype){case"float32":u=l;break;case"int32":u=Math.floor(l);break;case"bool":u=this.getBoolean(s);break;default:u=l}else u=l}o&&o.isLabel?r[i]=u:n[i]=u}}return 0===Object.keys(r).length?n:{xs:n,ys:r}},n.getBoolean=function(e){return"1"===e||"true"===e.toLowerCase()?1:0},n.parseRow=function(e,t){void 0===t&&(t=!0);for(var n=[],r=0,a=e.length,i=OM,o=0;o<a;o++)switch(i){case OM:switch(e.charAt(o)){case'"':r=o+1,i=LM;break;case this.delimiter:if(r=o+1," "===this.delimiter&&this.delimWhitespace)break;n.push(""),i=OM;break;default:i=MM,r=o}break;case MM:switch(e.charAt(o)){case this.delimiter:n.push(e.substring(r,o)),i=OM,r=o+1}break;case LM:switch(e.charAt(o)){case'"':i=zM}break;case zM:switch(e.charAt(o)){case this.delimiter:n.push(e.substring(r,o-1)),i=OM,r=o+1;break;case'"':i=LM;break;default:i=BM}break;case BM:switch(e.charAt(o)){case'"':i=LM}}if(i===zM?n.push(e.substring(r,a-1)):n.push(e.substring(r)),t&&n.length!==this.fullColumnNames.length)throw new Error("Invalid row in csv file. Should have "+this.fullColumnNames.length+" elements in a row, but got "+n);return n},t}(TM),WM=function(e){function t(t){var n;(n=e.call(this)||this).microphoneConfig=t,n.isClosed=!1,n.fftSize=t.fftSize||1024;var r=Math.log2(n.fftSize);
17if(n.fftSize<0||r<4||r>14||!Number.isInteger(r))throw new Error("Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got "+n.fftSize);if(n.numFrames=t.numFramesPerSpectrogram||43,n.sampleRateHz=t.sampleRateHz,n.columnTruncateLength=t.columnTruncateLength||n.fftSize,n.audioTrackConstraints=t.audioTrackConstraints,n.smoothingTimeConstant=t.smoothingTimeConstant||0,n.includeSpectrogram=!1!==t.includeSpectrogram,n.includeWaveform=!0===t.includeWaveform,!n.includeSpectrogram&&!n.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.");return n}qm(t,e);var n=t.prototype;return n.summary=function(){return"microphone"},t.create=function(){var e=Gm(regeneratorRuntime.mark((function e(n){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===n&&(n={}),!uv().get("IS_NODE")){e.next=3;break}throw new Error("microphone API is only supported in browser environment.");case 3:return r=new t(n),e.next=6,r.start();case 6:return e.abrupt("return",r);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),n.start=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,navigator.mediaDevices.getUserMedia({audio:null==this.audioTrackConstraints||this.audioTrackConstraints,video:!1});case 3:this.stream=e.sent,e.next=9;break;case 6:throw e.prev=6,e.t0=e.catch(0),new Error("Error thrown while initializing video stream: "+e.t0.message);case 9:if(this.stream){e.next=11;break}throw new Error("Could not obtain audio from microphone.");case 11:if(t=window.AudioContext||window.webkitAudioContext,this.audioContext=new t,this.sampleRateHz){e.next=17;break}this.sampleRateHz=this.audioContext.sampleRate,e.next=19;break;case 17:if(this.audioContext.sampleRate===this.sampleRateHz){e.next=19;break}throw new Error("Mismatch in sampling rate: Expected: "+this.sampleRateHz+"; Actual: "+this.audioContext.sampleRate);case 19:return n=this.audioContext.createMediaStreamSource(this.stream),this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=2*this.fftSize,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,n.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize),e.abrupt("return");case 27:case"end":return e.stop()}}),e,this,[[0,6]])})));return function(){return e.apply(this,arguments)}}(),n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r,a,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.isClosed){e.next=2;break}return e.abrupt("return",{value:null,done:!0});case 2:return e.next=4,this.getAudioData();case 4:return r=e.sent,this.includeSpectrogram&&(a=this.flattenQueue(r.freqDataQueue),t=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])),this.includeWaveform&&(i=this.flattenQueue(r.timeDataQueue),n=this.getTensorFromAudioDataArray(i,[this.numFrames*this.fftSize,1])),e.abrupt("return",{value:{spectrogram:t,waveform:n},done:!1});case 8:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.capture=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.next();case 2:return e.abrupt("return",e.sent.value);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.getAudioData=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r,a=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=[],n=[],r=0,e.abrupt("return",new Promise((function(e){var i=setInterval((function(){a.includeSpectrogram&&(a.analyser.getFloatFrequencyData(a.freqData),a.freqData[0]===-1/0&&e({freqDataQueue:t,timeDataQueue:n}),t.push(a.freqData.slice(0,a.columnTruncateLength))),a.includeWaveform&&(a.analyser.getFloatTimeDomainData(a.timeData),n.push(a.timeData.slice())),++r===a.numFrames&&(clearInterval(i),e({freqDataQueue:t,timeDataQueue:n}))}),a.fftSize/a.sampleRateHz*1e3)})));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),n.stop=function(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),null!=this.stream&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())},n.toArray=function(){throw new Error("Can not convert infinite audio stream to array.")},n.getSampleRate=function(){return this.sampleRateHz},n.flattenQueue=function(e){var t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((function(e,r){return n.set(e,r*t)})),n},n.getTensorFromAudioDataArray=function(e,t){var n=new Float32Array(_v(t));return n.set(e,n.length-e.length),ny(n,t)},t}(fM),VM=function(e){function t(t,n){var r;if((r=e.call(this)||this).webcamVideoElement=t,r.webcamConfig=n,r.isClosed=!0,r.resize=!1,r.needToResize())if(r.resize=!0,r.cropSize=[r.webcamConfig.resizeHeight,r.webcamConfig.resizeWidth],r.cropBoxInd=yS([0],"int32"),r.webcamConfig.centerCrop){var a=1*r.webcamConfig.resizeWidth/r.webcamVideoElement.width,i=1*r.webcamConfig.resizeHeight/r.webcamVideoElement.height,o=(1-a)/2,s=(1-i)/2,u=o+a,l=i+s;r.cropBox=tN([s,o,l,u],[1,4])}else r.cropBox=tN([0,0,1,1],[1,4]);return r}qm(t,e);var n=t.prototype;return n.summary=function(){return"webcam"},t.create=function(){var e=Gm(regeneratorRuntime.mark((function e(n,r){var a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===r&&(r={}),!uv().get("IS_NODE")){e.next=3;break}throw new Error("tf.data.webcam is only supported in browser environment.");case 3:if(n){e.next=9;break}if(n=document.createElement("video"),r.resizeWidth&&r.resizeHeight){e.next=7;break}throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");case 7:n.width=r.resizeWidth,n.height=r.resizeHeight;case 9:return a=new t(n,r),e.next=12,a.start();case 12:return e.abrupt("return",a);case 13:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),n.start=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.webcamConfig.facingMode&&Ev("user"===this.webcamConfig.facingMode||"environment"===this.webcamConfig.facingMode,(function(){return"Invalid webcam facing mode: "+t.webcamConfig.facingMode+". Please provide 'user' or 'environment'"})),e.prev=1,e.next=4,navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}});case 4:this.stream=e.sent,e.next=11;break;case 7:throw e.prev=7,e.t0=e.catch(1),e.t0.message="Error thrown while initializing video stream
17: "+e.t0.message,e.t0;case 11:if(this.stream){e.next=13;break}throw new Error("Could not obtain video from webcam.");case 13:try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,e.abrupt("return",new Promise((function(e){t.webcamVideoElement.onloadedmetadata=function(){e()}})));case 17:case"end":return e.stop()}}),e,this,[[1,7]])})));return function(){return e.apply(this,arguments)}}(),n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.isClosed){e.next=2;break}return e.abrupt("return",{value:null,done:!0});case 2:e.prev=2,t=Ib(this.webcamVideoElement),e.next=9;break;case 6:throw e.prev=6,e.t0=e.catch(2),new Error("Error thrown converting video to pixels: "+JSON.stringify(e.t0));case 9:if(!this.resize){e.next=22;break}return e.prev=10,e.abrupt("return",{value:this.cropAndResizeFrame(t),done:!1});case 14:throw e.prev=14,e.t1=e.catch(10),new Error("Error thrown cropping the video: "+e.t1.message);case 17:return e.prev=17,t.dispose(),e.finish(17);case 20:e.next=23;break;case 22:return e.abrupt("return",{value:t,done:!1});case 23:case"end":return e.stop()}}),e,this,[[2,6],[10,14,17,20]])})));return function(){return e.apply(this,arguments)}}(),n.needToResize=function(){return!(!this.webcamConfig.resizeWidth||!this.webcamConfig.resizeHeight||this.webcamVideoElement.width===this.webcamConfig.resizeWidth&&this.webcamVideoElement.height===this.webcamConfig.resizeHeight)},n.cropAndResizeFrame=function(e){var t=this;return sx((function(){var n,r=e.toFloat().expandDims(0),a=(n=WI.cropAndResize(r,t.cropBox,t.cropBoxInd,t.cropSize,"bilinear")).shape;return n.reshape(a.slice(1))}))},n.capture=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.next();case 2:return e.abrupt("return",e.sent.value);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),n.stop=function(){this.stream.getTracks().forEach((function(e){return e.stop()}));try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0},n.toArray=function(){throw new Error("Can not convert infinite video stream to array.")},t}(fM),UM=function(){},GM=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.split=function(e){return new jM(this,e)},t}(fM),jM=function(e){function t(t,n){var r;return(r=e.call(this)||this).upstream=t,r.impl=new HM(t,n),r}qm(t,e);var n=t.prototype;return n.summary=function(){return this.impl.summary()},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.impl.next());case 1:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(GM),HM=function(e){function t(t,n){var r;return(r=e.call(this)||this).upstream=t,r.separator=n,r.carryover="",r}qm(t,e);var n=t.prototype;return n.summary=function(){return this.upstream.summary()+" -> Split('"+this.separator+"')"},n.pump=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r,a,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.upstream.next();case 2:if(!(t=e.sent).done){e.next=9;break}if(""!==this.carryover){e.next=6;break}return e.abrupt("return",!1);case 6:return this.outputQueue.push(this.carryover),this.carryover="",e.abrupt("return",!0);case 9:for((n=t.value.split(this.separator))[0]=this.carryover+n[0],r=tv(n.slice(0,-1));!(a=r()).done;)i=a.value,this.outputQueue.push(i);return this.carryover=n[n.length-1],e.abrupt("return",!0);case 14:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(NM),qM=function(e){function t(){return e.apply(this,arguments)||this}return qm(t,e),t.prototype.decodeUTF8=function(){return new KM(this)},t}(fM),KM=function(e){function t(t){var n;return(n=e.call(this)||this).upstream=t,n.impl=new XM(t),n}qm(t,e);var n=t.prototype;return n.summary=function(){return this.impl.summary()},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.impl.next());case 1:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(GM),XM=function(e){function t(t){var n;
17if((n=e.call(this)||this).upstream=t,uv().get("IS_BROWSER"))n.decoder=new TextDecoder("utf-8");else{var r=require("string_decoder").StringDecoder;n.decoder=new r("utf8")}return n}qm(t,e);var n=t.prototype;return n.summary=function(){return this.upstream.summary()+" -> Utf8"},n.pump=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.upstream.next();case 2:if(!(t=e.sent).done){e.next=7;break}return e.abrupt("return",!1);case 7:n=t.value;case 8:return r=uv().get("IS_BROWSER")?this.decoder.decode(n,{stream:!0}):this.decoder.write(Buffer.from(n.buffer)),this.outputQueue.push(r),e.abrupt("return",!0);case 11:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(NM),YM=function(e){function t(t,n){var r;return void 0===n&&(n={}),(r=e.call(this)||this).file=t,r.options=n,Ev(t instanceof Uint8Array||!!uv().get("IS_BROWSER")&&(t instanceof File||t instanceof Blob),(function(){return"FileChunkIterator only supports File, Blob and Uint8Array right now."})),r.offset=n.offset||0,r.chunkSize=n.chunkSize||1048576,r}qm(t,e);var n=t.prototype;return n.summary=function(){return"FileChunks "+this.file},n.next=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t,n=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size))){e.next=2;break}return e.abrupt("return",{value:null,done:!0});case 2:return t=new Promise((function(e,t){var r=n.offset+n.chunkSize;if(n.file instanceof Uint8Array)e(new Uint8Array(n.file.slice(n.offset,r)));else{var a=new FileReader;a.onload=function(n){var r=a.result;if(r instanceof ArrayBuffer&&(r=new Uint8Array(r)),!(r instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(r)},a.onabort=function(e){return t(new Error("Aborted"))},a.onerror=function(e){return t(new Error(e.type))};var i=n.file.slice(n.offset,r);a.readAsArrayBuffer(i)}n.offset=r})),e.next=5,t;case 5:return e.t0=e.sent,e.abrupt("return",{value:e.t0,done:!1});case 7:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(qM);function JM(e,t){return ZM.apply(this,arguments)}function ZM(){return(ZM=Gm(regeneratorRuntime.mark((function e(t,n){var r,a,i,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===n&&(n={}),"string"==typeof t?r=t:(r=t.url,a=QM(t)),e.next=4,cg(r,a);case 4:if(!(i=e.sent).ok){e.next=14;break}return e.t0=Uint8Array,e.next=9,i.arrayBuffer();case 9:return e.t1=e.sent,o=new e.t0(e.t1),e.abrupt("return",new YM(o,n));case 14:throw new Error(i.statusText);case 15:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var QM=function(e){return{method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity}};function $M(e){return"string"==typeof e&&"file://"===e.substr(0,7)}var eL=function(e){function t(t,n){var r;return void 0===n&&(n={}),(r=e.call(this)||this).input=t,r.options=n,r}return qm(t,e),t.prototype.iterator=function(){var e=Gm(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return $M(this.input)&&uv().get("IS_NODE")&&(t=require("fs"),this.input=t.readFileSync(this.input.substr(7))),e.abrupt("return",new YM(this.input,this.options));case 2:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(UM),tL=function(e){function t(t,n){var r;return void 0===n&&(n={}),(r=e.call(this)||this).url=t,r.fileOptions=n,r}return qm(t,e),t.prototype.iterator=function(){var e=Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!$M(this.url)){e.next=4;break}return e.abrupt("return",new eL(this.url,this.fileOptions).iterator());case 4:return e.abrupt("return",JM(this.url,this.fileOptions));case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(UM);function nL(){return(nL=Gm(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",VM.create(t,n));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function rL(){return(rL=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",WM.create(t));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var aL={__proto__:null,array:function(e){return DM(Gm(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",uM(e));case 1:case"end":return t.stop()}}),t)}))),e.length)},Dataset:TM,zip:function(e){if(!rM(e))throw new Error("The argument to zip() must be an object or array.");var t;if(Array.isArray(e))for(var n=0;n<e.length;n++)t=null==t?e[n].size:Math.min(t,e[n].size);else if(e instanceof Object)for(var r in e)t=null==t?e[r].size:Math.min(t,e[r].size);return DM(Gm(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,tM(e,(function(e){if(e instanceof TM)return{value:e.iterator(),recurse:!1};if(rM(e))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")}));case 2:return n=t.sent,t.abrupt("return",pM(n,hM.SHORTEST));case 4:case"end":return t.stop()}}),t)}))),t)},CSVDataset:PM,TextLineDataset:FM,csv:function(e,t){return void 0===t&&(t={}),new PM(new tL(e),t)},func:function(e){var t=lM(e);return DM(Gm(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t);case 1:case"end":return e.stop()}}),e)}))))},generator:function(e){return DM(Gm(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e();case 2:return n=t.sent,t.abrupt("return",lM((function(){return n.next()})));case 4:case"end":return t.stop()}}),t)}))))},microphone:function(e){return rL.apply(this,arguments)},webcam:function(e,t){return nL.apply(this,arguments)},FileDataSource:eL,URLDataSource:tL,version_data:"2.6.0"};function iL(e,t){Array.isArray(e)||(e=[e]),e.forEach((function(e){null!=e&&Ev("complex64"!==e.dtype,(function(){return t+" does not support complex64 tensors in the CPU backend."}))}))}var oL=sI,sL=wC,uL=kC,lL=SC,cL=lN;function pL(e,t,n,r){if("linear"===n)return e.linear(t);if("relu"===n)return e.relu(t);if("elu"===n)return Vw(t);if("relu6"===n)return e.relu6(t);if("prelu"===n)return e.prelu(t,r);throw new Error("Activation "+n+" has not been implemented for the CPU backend.")}var hL=function(e){function t(){var t;return(t=e.call(this)||this).blockSize=48,t.firstUse=!0,t.data=new nv(Qm(t),ix()),t}qm(t,e);var n=t.prototype;return n.write=function(e,t,n){this.firstUse&&(this.firstUse=!1,uv().get("IS_NODE")&&uC("\n============================\nHi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details.\n============================"));var r={};return this.data.set(r,{values:e,dtype:n,refCount:1}),r},n.makeTensorInfo=function(e,t,n){return{dataId:this.write(n,e,t),shape:e,dtype:t}},n.incRef=function(e){this.data.get(e).refCount++},n.decRef=function(e){this.data.has(e)&&this.data.get(e).refCount--},n.move=function(e,t,n,r){this.data.set(e,{values:t,dtype:r,refCount:1})},n.numDataIds=function(){return this.data.numDataIds()},n.read=function(){var e=Gm(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.readSync(t));case 1:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.readSync=function(e){var t=this.data.get(e),n=t.dtype,r=t.complexTensorInfos;return"complex64"===n?lC(this.readSync(r.real.dataId),this.readSync(r.imag.dataId)):this.data.get(e).values},n.bufferSync=function(e){var t=this.readSync(e.dataId),n=t;if("string"===e.dtype)try{n=t.map((function(e){return hg(e)}))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Yy(e.shape,e.dtype,n)},n.makeOutput=function(e,t,n){var r=this.write(e,t,n);return ix().makeTensorFromDataId(r,t,n,this)},n.disposeData=function(e){if(this.data.has(e)){var t=this.data.get(e).
17complexTensorInfos;null!=t&&(this.disposeData(t.real.dataId),this.disposeData(t.imag.dataId)),this.data.delete(e)}},n.disposeIntermediateTensorInfo=function(e){var t=e.dataId;if(this.data.has(t)){var n=this.data.get(t);n.refCount--,n.refCount<1&&this.disposeData(t)}},n.time=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=ug(),t(),r=ug()-n,e.abrupt("return",{kernelMs:r});case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),n.memory=function(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}},n.stridedSlice=function(e,t,n,r){iL(e,"stridedSlice");var a=Mb(t,n,r);if(a.some((function(e){return 0===e})))return ny([],a);for(var i=Yy(a,e.dtype),o=this.bufferSync(e),s=0;s<i.size;s++){for(var u=i.indexToLoc(s),l=new Array(u.length),c=0;c<l.length;c++)l[c]=u[c]*r[c]+t[c];i.set.apply(i,[o.get.apply(o,l)].concat(u))}return i.toTensor()},n.diag=function(e){for(var t=this.readSync(e.dataId),n=Yy([e.size,e.size],e.dtype),r=n.values,a=0;a<t.length;a++)r[a*e.size+a]=t[a];return n.toTensor()},n.unstack=function(e,t){for(var n=e.shape[t],r=new Array(e.rank-1),a=0,i=0;i<e.rank;i++)i!==t&&(r[a++]=e.shape[i]);var o=new Array(e.rank).fill(0),s=e.shape.slice();s[t]=1;for(var u=new Array(n),l=0;l<u.length;l++)o[t]=l,u[l]=rw(e,o,s).reshape(r);return u},n.reverse=function(e,t){iL(e,"reverse");for(var n=Yy(e.shape,e.dtype),r=this.bufferSync(e),a=function(a){var i=n.indexToLoc(a),o=i.slice();t.forEach((function(t){return o[t]=e.shape[t]-1-o[t]})),n.set.apply(n,[r.get.apply(r,o)].concat(i))},i=0;i<n.size;i++)a(i);return n.toTensor()},n.neg=function(e){return iL(e,"neg"),vx(sk(-1),e)},n.addN=function(e){var t=this;iL(e,"addN");for(var n=e.map((function(e){return t.readSync(e.dataId)})),r=Yy(e[0].shape,e[0].dtype),a=r.values,i=0;i<e.length;i++)for(var o=n[i],s=0;s<a.length;s++)a[s]+=o[s];return r.toTensor()},n.softmax=function(e,t){var n=Pv([t],e.shape),r=wk(e,n),a=Nx(r.shape,n),i=kk(e,r.reshape(a)),o=Gw(i),s=this.sum(o,n).reshape(a);return mx(o,s)},n.pow=function(e,t){return iL([e,t],"pow"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return Math.pow(e,t)}))},n.batchMatMul=function(e,t,n,r){iL([e,t],"matMul");for(var a=n?e.shape[1]:e.shape[2],i=n?e.shape[2]:e.shape[1],o=r?t.shape[1]:t.shape[2],s=e.shape[0],u=this.readSync(e.dataId),l=this.readSync(t.dataId),c=n?[e.strides[0],1,e.strides[1]]:[e.strides[0],e.strides[1],1],p=c[0],h=c[1],f=c[2],d=r?[1,t.strides[1],t.strides[0]]:[t.strides[1],1,t.strides[0]],m=d[0],v=d[1],g=d[2],y=i*o,b=Yy([s,i,o],e.dtype),x=b.values,w=this.blockSize,k=0;k<s;k++)for(var S=0;S<i;S+=w)for(var N=0;N<o;N+=w)for(var I=0;I<a;I+=w)for(var C=Math.min(S+w,i),R=Math.min(N+w,o),E=Math.min(I+w,a),A=S;A<C;A++)for(var T=N;T<R;T++){for(var D=0,_=I;_<E;_++)D+=u[k*p+A*h+_*f]*l[_*m+T*v+k*g];x[k*y+(A*o+T)]+=D}return b.toTensor()},n.fusedBatchMatMul=function(e){var t=e.a,n=e.b,r=e.transposeA,a=e.transposeB,i=e.bias,o=e.activation,s=e.preluActivationWeights,u=this.batchMatMul(t,n,r,a);return i&&(u=fx(u,i)),o&&(u=pL(this,u,o,s)),u},n.floorDiv=function(e,t){iL([e,t],"floorDiv");return this.broadcastedBinaryOp(e,t,"int32",(function(e,t){return Math.floor(e/t)}))},n.sum=function(e,t){iL(e,"sum"),Ix("sum",t,e.rank);for(var n=Sx(e.shape,t),r=n[0],a=n[1],i=Fk(r,Fg(e.dtype,"int32")),o=_v(a),s=this.readSync(i.dataId),u=this.readSync(e.dataId),l=0;l<s.length;++l){for(var c=l*o,p=0,h=0;h<o;++h)p+=u[c+h];s[l]=p}return i},n.prod=function(e,t){iL(e,"sum");for(var n=Sx(e.shape,t),r=n[0],a=n[1],i=Fk(r,Fg(e.dtype,"int32")),o=_v(a),s=this.readSync(i.dataId),u=this.readSync(e.dataId),l=0;l<s.length;++l){for(var c=l*o,p=1,h=0;h<o;++h)p*=u[c+h];s[l]=p}return i},n.unsortedSegmentSum=function(e,t,n){iL(e,"unsortedSegmentSum");for(var r=[],a=e.rank-t.rank,i=0;i<a;++i)t=t.expandDims(i+1);for(var o=0;o<n;++o){var s=sk(o,"int32"),u=Lw(s,t).asType("float32").mul(e).sum(0);r.push(u)}return ZS(r)},n.argMin=function(e,t){iL(e,"argMin");var n=[t];Ix("argMin",n,e.rank);for(var r=Sx(e.shape,n),a=r[0],i=r[1],o=Fk(a,"int32"),s=_v(i),u=this.readSync(o.dataId),l=this.readSync(e.dataId),c=0;c<u.length;++c){for(var p=c*s,h=l[p],f=0,d=0;d<s;++d){var m=l[p+d];m<h&&(h=m,f=d)}u[c]=f}return o},n.argMax=function(e,t){iL(e,"argMax");var n=[t];Ix("argMax",n,e.rank);for(var r=Sx(e.shape,n),a=r[0],i=r[1],o=Fk(a,"int32"),s=_v(i),u=this.readSync(o.dataId),l=this.readSync(e.dataId),c=0;c<u.length;++c){for(var p=c*s,h=l[p],f=0,d=0;d<s;++d){var m=l[p+d];m>h&&(h=m,f=d)}u[c]=f}return o},n.cumsum=function(e,t,n,r){if(iL(e,"cumsum"),t!==e.rank-1)throw new Error("backend.cumsum in CPU expects an inner-most axis="+(e.rank-1)+" but got axis="+t);for(var a=Fg(e.dtype,"int32"),i=Fk(e.shape,a),o=this.readSync(i.dataId),s=this.readSync(e.dataId),u=e.shape[e.rank-1],l=r?function(e,t){return e+u-t-1}:function(e,t){return e+t},c=0;c<s.length;c+=u)for(var p=0;p<u;p++){var h=l(c,p);if(0===p)o[h]=n?0:s[h];else{var f=l(c,p-1);o[h]=n?s[f]+o[f]:s[h]+o[f]}}return i},n.equal=function(e,t){return iL([e,t],"equal"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e===t?1:0}))},n.notEqual=function(e,t){return iL([e,t],"notEqual"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e!==t?1:0}))},n.less=function(e,t){return iL([e,t],"less"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e<t?1:0}))},n.lessEqual=function(e,t){return iL([e,t],"lessEqual"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e<=t?1:0}))},n.greater=function(e,t){return iL([e,t],"greater"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e>t?1:0}))},n.greaterEqual=function(e,t){return iL([e,t],"greaterEqual"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e>=t?1:0}))},n.logicalAnd=function(e,t){return iL([e,t],"logicalAnd"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e&&t}))},n.logicalOr=function(e,t){return iL([e,t],"logicalOr"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e||t}))},n.select=function(e,t,n){iL([e,t,n],"select");for(var r=this.readSync(e.dataId),a=this.readSync(t.dataId),i=this.readSync(n.dataId),o=Fk(t.shape,Fg(t.dtype,n.dtype)),s=this.readSync(o.dataId),u=0,l=0===e.rank||e.rank>1||1===t.rank?1:_v(t.shape.slice(1)),c=0;c<r.length;c++)for(var p=0;p<l;p++)1===r[c]?s[u++]=a[c]:s[u++]=i[c];return o},n.where=function(e){iL([e],"where");var t=this.readSync(e.dataId);return cL(e.shape,t)},n.topk=function(e,t,n){iL(e,"topk");var r=this.readSync(e.dataId);return lL(r,e.shape,e.dtype,t,n)},n.min=function(e,t){iL(e,"min"),Ix("min",t,e.rank);for(var n=Sx(e.shape,t),r=n[0],a=n[1],i=Fk(r,e.dtype),o=_v(a),s=this.readSync(i.dataId),u=this.readSync(e.dataId),l=0;l<s.length;++l){for(var c=l*o,p=u[c],h=0;h<o;++h){var f=u[c+h];f<p&&(p=f)}s[l]=p}return i},n.minimum=function(e,t){return iL([e,t],"minimum"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return Math.min(e,t)}))},n.mod=function(e,t){return iL([e,t],"mod"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){var n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}))},n.maximum=function(e,t){return iL([e,t],"maximum"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return Math.max(e,t)}))},n.all=function(e,t){iL(e,"all"),Ix("all",t,e.rank);for(var n=Sx(e.shape,t),r=n[0],a=n[1],i=Fk(r,e.dtype),o=_v(a),s=this.readSync(i.dataId),u=this.readSync(e.dataId),l=0;l<s.length;++l){for(var c=l*o,p=u[c],h=0;h<o;++h){var f=u[c+h];p=p&&f}s[l]=p}return i},n.any=function(e,t){iL(e,"any"),Ix("any",t,e.rank);for(var n=Sx(e.shape,t),r=n[0],a=n[1],i=Fk(r,e.dtype),o=_v(a),s=this.readSync(i.dataId),u=this.readSync(e.dataId),l=0;l<s.length;++l){for(var c=l*o,p=u[c],h=0;h<o;++h){var f=u[c+h];p=p||f}s[l]=p}return i},n.squaredDifference=function(e,t){return iL([e,t],"squaredDifference"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){var n=e-t;return n*n}))},n.linear=function(e){return e},n.relu=function(e){iL(e,"relu");for(var t=Fk(e.shape,e.dtype),n=this.readSync(t.dataId),r=this.readSync(e.dataId),a=0;a<r.length;++a)n[a]=Math.max(0,r[a]);return t},n.relu6=function(e){iL(e,"relu");for(var t=Fk(e.shape,e.dtype),n=this.readSync(t.dataId),r=this.readSync(e.dataId),a=0;a<r.length;++a)n[a]=Math.min(Math.max(0,r[a]),6);return t},n.prelu=function(e,t){return iL([e,t],"prelu"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return e<0?t*e:e}))},n.eluDer=function(e,t){iL([e,t],"eluDer");for(var n=new Float32Array(t.size),r=this.readSync(t.dataId),a=this.readSync(e.dataId),i=0;i<r.length;++i){var o=r[i];n[i]=o>=1?a[i]:a[i]*(o+1)}return this.makeOutput(n,t.shape,"float32")},n.atan2=function(e,t){return iL([e,t],"atan2"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return Math.atan2(e,t)}))}
vendor: 5,364 bytes, line 17
17,n.fusedConv2d=function(e){var t=e.input,n=e.filter,r=e.convInfo,a=e.bias,i=e.activation,o=e.preluActivationWeights,s=this.conv2d(t,n,r);return a&&(s=fx(s,a)),i&&(s=pL(this,s,i,o)),s},n.conv2d=function(e,t,n){iL([e,t],"conv2d");for(var r=n.filterHeight,a=n.filterWidth,i=n.dilationHeight,o=n.dilationWidth,s=n.padInfo.left,u=n.padInfo.top,l="channelsLast"===n.dataFormat,c=Yy(n.outShape,e.dtype),p=e.strides[0],h=l?e.strides[1]:e.strides[2],f=l?e.strides[2]:1,d=l?1:e.strides[1],m=c.strides[0],v=l?c.strides[1]:c.strides[2],g=l?c.strides[2]:1,y=l?1:c.strides[1],b=this.readSync(e.dataId),x=this.readSync(t.dataId),w=c.values,k=0;k<n.batchSize;++k)for(var S=k*p,N=k*m,I=0;I<n.outHeight;++I)for(var C=N+I*v,R=I*n.strideHeight-u,E=0;E<r;E++){var A=R+E*i;if(!(A<0||A>=n.inHeight))for(var T=E*t.strides[0],D=S+A*h,_=0;_<n.outWidth;++_)for(var F=C+_*g,O=_*n.strideWidth-s,M=0;M<a;M++){var L=O+M*o;if(!(L<0||L>=n.inWidth))for(var z=D+L*f,B=T+M*t.strides[1],P=0;P<n.inChannels;++P){for(var W=b[z+P*d],V=0;V<n.outChannels;++V)w[F+V*y]+=W*x[B+V];B+=n.outChannels}}}return c.toTensor()},n.conv3d=function(e,t,n){for(var r=n.filterDepth,a=n.filterHeight,i=n.filterWidth,o=n.dilationDepth,s=n.dilationHeight,u=n.dilationWidth,l=n.padInfo.front,c=n.padInfo.left,p=n.padInfo.top,h=Yy(n.outShape,e.dtype),f=this.readSync(e.dataId),d=this.readSync(t.dataId),m=h.values,v=0;v<n.batchSize;++v)for(var g=v*e.strides[0],y=v*h.strides[0],b=0;b<n.outDepth;++b)for(var x=y+b*h.strides[1],w=b*n.strideDepth-l,k=0;k<r;k++){var S=w+k*o;if(!(S<0||S>=n.inDepth))for(var N=k*t.strides[0],I=g+S*e.strides[1],C=0;C<n.outHeight;++C)for(var R=x+C*h.strides[2],E=C*n.strideHeight-p,A=0;A<a;A++){var T=E+A*s;if(!(T<0||T>=n.inHeight))for(var D=N+A*t.strides[1],_=I+T*e.strides[2],F=0;F<n.outWidth;++F)for(var O=R+F*n.outChannels,M=F*n.strideWidth-c,L=0;L<i;L++){var z=M+L*u;if(!(z<0||z>=n.inWidth))for(var B=D+L*t.strides[2],P=_+z*n.inChannels,W=B,V=0;V<n.inChannels;++V){for(var U=f[P+V],G=0;G<n.outChannels;++G)m[O+G]+=U*d[W+G];W+=n.outChannels}}}}return h.toTensor()},n.conv2dDerInput=function(e,t,n){iL([e,t],"conv2dDerInput");for(var r=Yy(n.inShape,"float32"),a=r.values,i=this.readSync(e.dataId),o=this.readSync(t.dataId),s=t.strides,u=s[0],l=s[1],c=s[2],p=n.batchSize,h=n.filterHeight,f=n.filterWidth,d=n.inChannels,m=n.inHeight,v=n.inWidth,g=n.outChannels,y=n.outHeight,b=n.outWidth,x=n.strideHeight,w=n.strideWidth,k=n.dataFormat,S=h-1-n.padInfo.top,N=f-1-n.padInfo.left,I="channelsLast"===k,C=r.strides[0],R=I?r.strides[1]:r.strides[2],E=I?r.strides[2]:1,A=I?1:r.strides[1],T=e.strides[0],D=I?e.strides[1]:e.strides[2],_=I?e.strides[2]:1,F=I?1:e.strides[1],O=0;O<p;++O)for(var M=0;M<d;++M)for(var L=0;L<m;++L)for(var z=L-S,B=Math.max(0,Math.ceil(z/x)),P=Math.min(y,(h+z)/x),W=0;W<v;++W){for(var V=W-N,U=Math.max(0,Math.ceil(V/w)),G=Math.min(b,(f+V)/w),j=0,H=B;H<P;++H)for(var q=H*x-z,K=U;K<G;++K)for(var X=T*O+D*H+_*K,Y=u*(h-1-q)+l*(f-1-(K*w-V))+c*M,J=0;J<g;++J){j+=i[X+F*J]*o[Y+J]}a[C*O+R*L+E*W+A*M]=j}return r.toTensor()},n.conv3dDerInput=function(e,t,n){for(var r=Yy(n.inShape,"float32"),a=r.values,i=r.strides,o=i[0],s=i[1],u=i[2],l=i[3],c=this.readSync(e.dataId),p=e.strides,h=p[0],f=p[1],d=p[2],m=p[3],v=this.readSync(t.dataId),g=t.strides,y=g[0],b=g[1],x=g[2],w=g[3],k=n.batchSize,S=n.filterDepth,N=n.filterHeight,I=n.filterWidth,C=n.inChannels,R=n.inDepth,E=n.inHeight,A=n.inWidth,T=n.outChannels,D=n.outDepth,_=n.outHeight,F=n.outWidth,O=n.strideDepth,M=n.strideHeight,L=n.strideWidth,z=S-1-n.padInfo.front,B=N-1-n.padInfo.top,P=I-1-n.padInfo.left,W=0;W<k;++W)for(var V=0;V<C;++V)for(var U=0;U<R;++U)for(var G=U-z,j=Math.max(0,Math.ceil(G/O)),H=Math.min(D,(S+G)/O),q=0;q<E;++q)for(var K=q-B,X=Math.max(0,Math.ceil(K/M)),Y=Math.min(_,(N+K)/M),J=0;J<A;++J){for(var Z=J-P,Q=Math.max(0,Math.ceil(Z/L)),$=Math.min(F,(I+Z)/L),ee=0,te=j;te<H;++te)for(var ne=te*O-G,re=X;re<Y;++re)for(var ae=re*M-K,ie=Q;ie<$;++ie)for(var oe=h*W+f*te+d*re+m*ie,se=y*(S-1-ne)+b*(N-1-ae)+x*(I-1-(ie*L-Z))+w*V,ue=0;ue<T;++ue){ee+=c[oe+ue]*v[se+ue]}a[o*W+s*U+u*q+l*J+V]=ee}return r.toTensor()},n.conv2dDerFilter=function(e,t,n){iL([e,t],"conv2dDerFilter");for(var r=n.strideHeight,a=n.strideWidth,i=n.filterHeight,o=n.filterWidth,s="channelsLast"===n.dataFormat,u=Yy(n.filterShape,"float32"),l=n.padInfo.left,c=n.padInfo.top,p=this.bufferSync(e),h=this.bufferSync(t),f=0;f<i;++f)for(var d=Math.max(0,Math.ceil((c-f)/r)),m=Math.min(n.outHeight,(n.inHeight+c-f)/r),v=0;v<o;++v)for(var g=Math.max(0,Math.ceil((l-v)/a)),y=Math.min(n.outWidth,(n.inWidth+l-v)/a),b=0;b<n.inChannels;++b)for(var x=0;x<n.outChannels;++x){for(var w=0,k=0;k<n.batchSize;++k)for(var S=d;S<m;++S)for(var N=f+S*r-c,I=g;I<y;++I){var C=v+I*a-l;w+=s?p.get(k,N,C,b)*h.get(k,S,I,x):p.get(k,b,N,C)*h.get(k,x,S,I)}u.set(w,f,v,b,x)}return u.toTensor()},n.conv3dDerFilter=function(e,t,n){for(var r=n.strideDepth,a=n.strideHeight,i=n.strideWidth,o=n.filterDepth,s=n.filterHeight,u=n.filterWidth,l=Yy(n.filterShape,"float32"),c=l.values,p=l.strides,h=p[0],f=p[1],d=p[2],m=p[3],v=this.readSync(t.dataId),g=t.strides,y=g[0],b=g[1],x=g[2],w=g[3],k=this.readSync(e.dataId),S=e.strides,N=S[0],I=S[1],C=S[2],R=S[3],E=n.padInfo.front,A=n.padInfo.left,T=n.padInfo.top,D=0;D<o;++D)for(var _=Math.max(0,Math.ceil((E-D)/r)),F=Math.min(n.outDepth,(n.inDepth+E-D)/r),O=D*h,M=0;M<s;++M)for(var L=Math.max(0,Math.ceil((T-M)/a)),z=Math.min(n.outHeight,(n.inHeight+T-M)
17/a),B=M*f+O,P=0;P<u;++P)for(var W=Math.max(0,Math.ceil((A-P)/i)),V=Math.min(n.outWidth,(n.inWidth+A-P)/i),U=P*d+B,G=0;G<n.inChannels;++G)for(var j=G*m+U,H=0;H<n.outChannels;++H){for(var q=0,K=0;K<n.batchSize;++K)for(var X=K*N,Y=K*y,J=_;J<F;++J)for(var Z=(D+J*r-E)*I+X,Q=J*b+Y,$=L;$<z;++$)for(var ee=(M+$*a-T)*C+Z,te=$*x+Q,ne=W;ne<V;++ne){var re=ne*w+te;q+=k[(P+ne*i-A)*R+ee+G]*v[re+H]}c[j+H]=q}return l.toTensor()},n.fusedDepthwiseConv2D=function(e){var t=e.input,n=e.filter,r=e.convInfo,a=e.bias,i=e.activation,o=e.preluActivationWeights,s=this.depthwiseConv2D(t,n,r);return a&&(s=fx(s,a)),i&&(s=pL(this,s,i,o)),s},n.depthwiseConv2D=function(e,t,n){iL([e,t],"depthwiseConv2D");for(var r=n.filterHeight,a=n.filterWidth,i=n.dilationHeight,o=n.dilationWidth,s=n.padInfo.left,u=n.padInfo.top,l=n.outChannels/n.inChannels,c=Yy(n.outShape,e.dtype),p=this.readSync(e.dataId),h=this.readSync(t.dataId),f=c.values,d=0;d<n.batchSize;++d)for(var m=d*e.strides[0],v=d*c.strides[0],g=0;g<n.outHeight;++g)for(var y=v+g*c.strides[1],b=g*n.str
vendor: 4,778 bytes, line 17
17ideHeight-s,x=0;x<r;++x){var w=b+x*i;if(!(w<0||w>=n.inHeight))for(var k=x*t.strides[0],S=m+w*e.strides[1],N=0;N<n.outWidth;++N)for(var I=y+N*c.strides[2],C=N*n.strideWidth-u,R=0;R<a;++R){var E=C+R*o;if(!(E<0||E>=n.inWidth))for(var A=k+R*t.strides[1],T=S+E*n.inChannels,D=I,_=A,F=0;F<n.inChannels;++F){for(var O=p[T+F],M=0;M<l;++M)f[D+M]+=O*h[_+M];D+=l,_+=l}}}return c.toTensor()},n.depthwiseConv2DDerInput=function(e,t,n){iL([e,t],"depthwiseConv2DDerInput");for(var r=Yy(n.inShape,"float32"),a=r.values,i=r.strides,o=i[0],s=i[1],u=i[2],l=this.readSync(e.dataId),c=e.strides,p=c[0],h=c[1],f=c[2],d=this.readSync(t.dataId),m=t.strides,v=m[0],g=m[1],y=m[2],b=n.batchSize,x=n.filterHeight,w=n.filterWidth,k=n.inChannels,S=n.inHeight,N=n.inWidth,I=n.outChannels,C=n.outHeight,R=n.outWidth,E=n.strideHeight,A=n.strideWidth,T=x-1-n.padInfo.top,D=w-1-n.padInfo.left,_=I/k,F=0;F<b;++F)for(var O=0;O<k;++O)for(var M=0;M<S;++M)for(var L=M-T,z=Math.max(0,Math.ceil(L/E)),B=Math.min(C,(x+L)/E),P=0;P<N;++P){for(var W=P-D,V=Math.max(0,Math.ceil(W/A)),U=Math.min(R,(w+W)/A),G=0,j=z;j<B;++j)for(var H=j*E-L,q=V;q<U;++q)for(var K=p*F+h*j+f*q,X=v*(x-1-H)+g*(w-1-(q*A-W))+y*O,Y=0;Y<_;++Y){G+=l[K+(O*_+Y)]*d[X+Y]}a[o*F+s*M+u*P+O]=G}return r.toTensor()},n.depthwiseConv2DDerFilter=function(e,t,n){iL([e,t],"depthwiseConv2DDerFilter");for(var r=n.strideHeight,a=n.strideWidth,i=n.filterHeight,o=n.filterWidth,s=Yy(n.filterShape,"float32"),u=n.padInfo.left,l=n.padInfo.top,c=n.outChannels/n.inChannels,p=this.bufferSync(e),h=this.bufferSync(t),f=0;f<i;++f)for(var d=Math.max(0,Math.ceil((l-f)/r)),m=Math.min(n.outHeight,(n.inHeight+l-f)/r),v=0;v<o;++v)for(var g=Math.max(0,Math.ceil((u-v)/a)),y=Math.min(n.outWidth,(n.inWidth+u-v)/a),b=0;b<n.outChannels;++b){for(var x=Math.trunc(b/c),w=b%c,k=0,S=0;S<n.batchSize;++S)for(var N=d;N<m;++N)for(var I=f+N*r-l,C=g;C<y;++C){var R=v+C*a-u;k+=p.get(S,I,R,x)*h.get(S,N,C,b)}s.set(k,f,v,x,w)}return s.toTensor()},n.tile=function(e,t){return iL(e,"tile"),uL(this.bufferSync(e),t)},n.gather=function(e,t,n){iL([e,t],"gather");var r=e.shape.slice(),a=this.readSync(t.dataId);r[n]=a.length;for(var i=Yy(r,e.dtype),o=this.bufferSync(e),s=0;s<i.size;++s){var u=i.indexToLoc(s),l=u.slice();l[n]=a[u[n]];var c=o.locToIndex(l);i.values[s]=o.values[c]}return i.toTensor()},n.batchToSpaceND=function(e,t,n){iL([e],"batchToSpaceND");var r=t.reduce((function(e,t){return e*t})),a=nC(e.shape,t,r),i=rC(a.length,t.length),o=aC(e.shape,t,r),s=iC(n,t.length),u=oC(o,n,t.length);return xb(e.reshape(a),i).reshape(o).slice(s,u)},n.pool3d=function(e,t,n){iL(e,"pool3d");for(var r=t.strideDepth,a=t.strideHeight,i=t.strideWidth,o=t.dilationDepth,s=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,h=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left,m="max"===n?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,v=this.readSync(e.dataId),g=Yy(t.outShape,e.dtype),y=g.values,b=t.outShape[1]*t.outShape[2]*t.outShape[3]*t.outShape[4],x=t.outShape[2]*t.outShape[3]*t.outShape[4],w=t.outShape[3]*t.outShape[4],k=t.outShape[4],S=0;S<t.batchSize;++S)for(var N=S*b,I=S*e.strides[0],C=0;C<t.inChannels;++C)for(var R=0;R<t.outDepth;++R){for(var E=R*r-h,A=E;A<0;)A+=o;for(var T=Math.min(t.inDepth,l+E),D=N+R*x,_=0;_<t.outHeight;++_){for(var F=_*a-f,O=F;O<0;)O+=s;for(var M=Math.min(t.inHeight,c+F),L=D+_*w,z=0;z<t.outWidth;++z){for(var B=z*i-d,P=B;P<0;)P+=u;for(var W=Math.min(t.inWidth,p+B),V=L+z*k,U=m,G=0,j=0,H=A;H<T;H+=o){for(var q=I+H*e.strides[1],K=O;K<M;K+=s){for(var X=q+K*e.strides[2],Y=P;Y<W;Y+=u){var J=v[X+Y*e.strides[3]+C];if("max"===n&&J>U?U=J:"avg"===n&&(G+=J,j++),isNaN(U))break}if(isNaN(U))break}if(isNaN(U))break}y[V+C]="avg"===n?G/j:U}}}return g.toTensor()},n.avgPool3d=function(e,t){return iL(e,"avgPool3d"),this.pool3d(e,t,"avg").toFloat()},n.avgPool3dBackprop=function(e,t,n){iL([e,t],"avgPool3dBackprop");for(var r=n.strideDepth,a=n.strideHeight,i=n.strideWidth,o=n.filterDepth,s=n.filterHeight,u=n.filterWidth,l=n.dilationDepth,c=n.dilationHeight,p=n.dilationWidth,h=n.effectiveFilterDepth,f=n.effectiveFilterHeight,d=n.effectiveFilterWidth,m=h-1-n.padInfo.front,v=d-1-n.padInfo.left,g=f-1-n.padInfo.top,y=Yy(t.shape,"float32"),b=1/(o*s*u),x=this.bufferSync(e),w=0;w<n.batchSize;++w)for(var k=0;k<n.inChannels;++k)for(var S=0;S<n.inDepth;++S)for(var N=0;N<n.inHeight;++N)for(var I=0;I<n.inWidth;++I){for(var C=S-m,R=N-g,E=I-v,A=0,T=0;T<h;T+=l){var D=(C+T)/r;if(!(D<0||D>=n.outDepth||Math.floor(D)!==D))for(var _=0;_<f;_+=c){var F=(R+_)/a;if(!(F<0||F>=n.outHeight||Math.floor(F)!==F))for(var O=0;O<d;O+=p){var M=(E+O)/i;if(!(M<0||M>=n.outWidth||Math.floor(M)!==M))A+=x.get(w,D,F,M,k)}}}y.set(A*b,w,S,N,I,k)}return y.toTensor()},n.maxPool3d=function(e,t){return iL(e,"maxPool3d"),this.pool3d(e,t,"max").toFloat
vendor: 4,964 bytes, line 17
17()},n.maxPool3dPositions=function(e,t){for(var n=Yy(t.outShape,"int32"),r=t.strideDepth,a=t.strideHeight,i=t.strideWidth,o=t.dilationDepth,s=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,h=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left,m=this.bufferSync(e),v=0;v<t.batchSize;++v)for(var g=0;g<t.inChannels;++g)for(var y=0;y<t.outDepth;++y){for(var b=y*r-h,x=b;x<0;)x+=o;for(var w=Math.min(t.inDepth,l+b),k=0;k<t.outHeight;++k){for(var S=k*a-f,N=S;N<0;)N+=s;for(var I=Math.min(t.inHeight,c+S),C=0;C<t.outWidth;++C){for(var R=C*i-d,E=R;E<0;)E+=u;for(var A=Math.min(t.inWidth,p+R),T=Number.NEGATIVE_INFINITY,D=-1,_=x;_<w;_+=o)for(var F=_-b,O=N;O<I;O+=s)for(var M=O-S,L=E;L<A;L+=u){var z=L-R,B=m.get(v,_,O,L,g);B>=T&&(T=B,D=F*c*p+M*c+z)}n.set(D,v,y,k,C,g)}}}return n.toTensor()},n.maxPool3dBackprop=function(e,t,n,r){iL([t,n],"maxPool3dBackprop");for(var a=this.maxPool3dPositions(t,r),i=r.strideDepth,o=r.strideHeight,s=r.strideWidth,u=r.dilationDepth,l=r.dilationHeight,c=r.dilationWidth,p=r.effectiveFilterDepth,h=r.effectiveFilterHeight,f=r.effectiveFilterWidth,d=p-1-r.padInfo.front,m=f-1-r.padInfo.left,v=h-1-r.padInfo.top,g=Yy(t.shape,"float32"),y=this.bufferSync(a),b=this.bufferSync(e),x=0;x<r.batchSize;++x)for(var w=0;w<r.inChannels;++w)for(var k=0;k<r.inDepth;++k)for(var S=0;S<r.inHeight;++S)for(var N=0;N<r.inWidth;++N){for(var I=k-d,C=S-v,R=N-m,E=0,A=0;A<p;A+=u){var T=(I+A)/i;if(!(T<0||T>=r.outDepth||Math.floor(T)!==T))for(var D=0;D<h;D+=l){var _=(C+D)/o;if(!(_<0||_>=r.outHeight||Math.floor(_)!==_))for(var F=0;F<f;F+=c){var O=(R+F)/s;if(!(O<0||O>=r.outWidth||Math.floor(O)!==O)){var M=p*h*f-1-y.get(x,T,_,O,w)===A*h*f+D*f+F?1:0;if(0!==M)E+=b.get(x,T,_,O,w)*M}}}}g.set(E,x,k,S,N,w)}return g.toTensor()},n.resizeBilinear=function(e,t,n,r){iL(e,"resizeBilinear");for(var a=e.shape,i=a[0],o=a[1],s=a[2],u=a[3],l=this.readSync(e.dataId),c=new Float32Array(_v([i,t,n,u])),p=[r&&t>1?o-1:o,r&&n>1?s-1:s],h=[r&&t>1?t-1:t,r&&n>1?n-1:n],f=0,d=p[0]/h[0],m=p[1]/h[1],v=0;v<i;v++)for(var g=0;g<t;g++)for(var y=d*g,b=Math.floor(y),x=y-b,w=Math.min(o-1,Math.ceil(y)),k=v*e.strides[0]+b*e.strides[1],S=v*e.strides[0]+w*e.strides[1],N=0;N<n;N++)for(var I=m*N,C=Math.floor(I),R=I-C,E=Math.min(s-1,Math.ceil(I)),A=k+C*e.strides[2],T=S+C*e.strides[2],D=k+E*e.strides[2],_=S+E*e.strides[2],F=0;F<u;F++){var O=l[A+F],M=l[T+F],L=O+(l[D+F]-O)*R,z=L+(M+(l[_+F]-M)*R-L)*x;c[f++]=z}return ny(c,[i,t,n,u])},n.resizeBilinearBackprop=function(e,t,n){iL([e,t],"resizeBilinearBackprop");for(var r=t.shape,a=r[0],i=r[1],o=r[2],s=r[3],u=e.shape,l=u[1],c=u[2],p=new Float32Array(a*i*o*s),h=[n&&l>1?i-1:i,n&&c>1?o-1:o],f=[n&&l>1?l-1:l,n&&c>1?c-1:c],d=h[0]/f[0],m=h[1]/f[1],v=this.readSync(e.dataId),g=0,y=0;y<a;y++)for(var b=y*t.strides[0],x=0;x<l;x++)for(var w=x*d,k=Math.floor(w),S=Math.min(Math.ceil(w),i-1),N=b+k*t.strides[1],I=b+S*t.strides[1],C=w-k,R=1-C,E=0;E<c;E++)for(var A=E*m,T=Math.floor(A),D=Math.min(Math.ceil(A),o-1),_=A-T,F=1-_,O=N+T*t.strides[2],M=N+D*t.strides[2],L=I+T*t.strides[2],z=I+D*t.strides[2],B=R*F,P=R*_,W=C*F,V=C*_,U=0;U<s;U++){var G=v[g++];p[O+U]+=G*B,p[M+U]+=G*P,p[L+U]+=G*W,p[z+U]+=G*V}return nN(p,[a,o,i,s],t.dtype)},n.resizeNearestNeighbor=function(e,t,n,r){iL(e,"resizeNearestNeighbor");for(var a=e.shape,i=a[0],o=a[1],s=a[2],u=a[3],l=this.readSync(e.dataId),c=new Float32Array(i*t*n*u),p=[r&&t>1?o-1:o,r&&n>1?s-1:s],h=[r&&t>1?t-1:t,r&&n>1?n-1:n],f=p[0]/h[0],d=p[1]/h[1],m=0,v=0;v<i;v++)for(var g=v*e.strides[0],y=0;y<t;y++)for(var b=f*y,x=g+Math.min(o-1,r?Math.round(b):Math.floor(b))*e.strides[1],w=0;w<n;w++)for(var k=d*w,S=x+Math.min(s-1,r?Math.round(k):Math.floor(k))*e.strides[2],N=0;N<u;N++){var I=l[S+N];c[m++]=I}return ny(c,[i,t,n,u],e.dtype)},n.resizeNearestNeighborBackprop=function(e,t,n){iL([e,t],"resizeNearestNeighborBackprop");for(var r=t.shape,a=r[0],i=r[1],o=r[2],s=r[3],u=e.shape,l=u[1],c=u[2],p=new Float32Array(a*i*o*s),h=this.readSync(e.dataId),f=[n&&l>1?i-1:i,n&&c>1?o-1:o],d=[n&&l>1?l-1:l,n&&c>1?c-1:c],m=f[0]/d[0],v=f[1]/d[1],g=1/m,y=1/v,b=2*Math.ceil(g)+2,x=2*Math.ceil(y)+2,w=0;w<a;w++)for(var k=w*t.strides[0],S=0;S<i;S++)for(var N=k+S*t.strides[1],I=Math.floor(S*g),C=Math.floor(I-b/2),R=0;R<o;R++)for(var E=N+R*t.strides[2],A=Math.floor(R*y),T=Math.floor(A-x/2),D=0;D<s;D++){for(var _=0,F=0;F<b;F++){var O=F+C;if(!(O<0||O>=l)){var M=k+O*e.strides[1],L=O*m;if(S===Math.min(i-1,n?Math.round(L):Math.floor(L)))for(var z=0;z<x;z++){var B=z+T;if(!(B<0||B>=c)){var P=M+B*e.strides[2],W=B*v;R===Math.min(o-1,n?Math.round(W):Math.floor(W))&&(_+=h[P+D])}}}}p[E+D]=_}return nN(p,t.shape,t.dtype)},n.localResponseNormalization4D=function(e,t,n,r,a){iL(e,"localResponseNormalization4D");var i=e.shape[3],o=i-1,s=this.readSync(e.dataId),u=e.size,l=new Float32Array(u);function c(e){for(var n=e%i,r=e-n+Math.max(0,n-t),a=e-n+Math.min(n+t,o),u=0;r<=a;r++){var l=s[r];u+=l*l}return u}for(var p=0;p<u;p++){var h=c(p),f=s[p]*Math.pow(n+r*h,-a);l[p]=f}return nN(l,e.shape)}
17,n.LRNGrad=function(e,t,n,r,a,i,o){iL(e,"LRNGrad");for(var s=e.shape[3],u=this.readSync(e.dataId),l=this.readSync(t.dataId),c=this.readSync(n.dataId),p=new Float32Array(e.size),h=e.size,f=0;f<h;f++){for(var d=f%s,m=f-d+Math.max(0,d-r),v=f-d+Math.min(s,d+r+1),g=0,y=m;y<v;y++)g+=Math.pow(l[y],2);g=i*g+a;for(var b=m;b<v;b++){var x=-2*i*o*l[b]*c[f]/g;f===b&&(x+=Math.pow(g,-o)),x*=u[f],p[b]+=x}}return nN(p,e.shape)},n.multinomial=function(e,t,n,r){iL(e,"multinomial");for(var a=t?e:VS(e),i=a.shape[0],o=a.shape[1],s=Fk([i,n],"int32"),u=this.readSync(s.dataId),l=this.readSync(a.dataId),c=0;c<i;++c){var p=c*o,h=new Float32Array(o-1);h[0]=l[p];for(var f=1;f<h.length;++f)h[f]=h[f-1]+l[p+f];for(var d=pS(r.toString()),m=c*n,v=0;v<n;++v){var g=d();u[m+v]=h.length;for(var y=0;y<h.length;y++)if(g<h[y]){u[m+v]=y;break}}}return s},n.oneHot=function(e,t,n,r){iL(e,"oneHot");var a=new Float32Array(e.size*t);a.fill(r);for(var i=this.readSync(e.dataId),o=0;o<e.size;++o)i[o]>=0&&i[o]<t&&(a[o*t+i[o]]=n);return tN(a,[e.size,t],"int32")},n.nonMaxSuppression=function(e,t,n,r,a){iL(e,"nonMaxSuppression");var i=this.readSync(e.dataId),o=this.readSync(t.dataId);return oL(i,o,n,r,a)},n.depthToSpace=function(e,t,n){Ev("NHWC"===n,(function(){return"Only NHWC dataFormat supported on CPU for depthToSpace. Got "+n})),Ev(t>1,(function(){return"blockSize should be > 1 for depthToSpace, but was: "+t}));for(var r=e.shape[0],a=e.shape[1],i=e.shape[2],o=e.shape[3],s=a*t,u=i*t,l=o/(t*t),c=this.readSync(e.dataId),p=new Float32Array(r*s*u*l),h=0,f=0;f<r;++f)for(var d=0;d<s;++d)for(var m=Math.floor(d/t),v=d%t,g=0;g<u;++g)for(var y=Math.floor(g/t),b=(v*t+g%t)*l,x=0;x<l;++x){var w=x+b+o*(y+i*(m+a*f));p[h++]=c[w]}return nN(p,[r,s,u,l])},n.broadcastedBinaryOp=function(e,t,n,r){var a=Mw(e.shape,t.shape),i=Yy(a,n),o=this.readSync(e.dataId),s=this.readSync(t.dataId),u=Fw(e.shape,a),l=Fw(t.shape,a),c=i.values;if(u.length+l.length===0)for(var p=0;p<c.length;++p)c[p]=r(o[p%o.length],s[p%s.length]);else for(var h=this.bufferSync(e),f=this.bufferSync(t),d=function(n){var a=i.indexToLoc(n),p=a.slice(-e.rank);u.forEach((function(e){return p[e]=0}));var d=h.locToIndex(p),m=a.slice(-t.rank);l.forEach((function(e){return m[e]=0}));var v=f.locToIndex(m);c[n]=r(o[d],s[v])},m=0;m<c.length;++m)d(m);return i.toTensor()},n.split=function(e,t,n){return sL(e,t,n)},n.dispose=function(){},n.floatPrecision=function(){return 32},n.epsilon=function(){return e.prototype.epsilon.call(this)},n.cropAndResize=function(e,t,n,r,a,i){for(var o=e.shape,s=o[0],u=o[1],l=o[2],c=o[3],p=t.shape[0],h=r[0],f=r[1],d=Yy([p,h,f,c],"float32"),m=this.readSync(t.dataId),v=this.readSync(n.dataId),g=this.readSync(e.dataId),y=e.strides,b=d.strides,x=0;x<p;x++){var w=4*x,k=m[w],S=m[w+1],N=m[w+2],I=m[w+3],C=v[x];if(!(C>=s))for(var R=h>1?(N-k)*(u-1)/(h-1):0,E=f>1?(I-S)*(l-1)/(f-1):0,A=0;A<h;A++){var T=h>1?k*(u-1)+A*R:.5*(k+N)*(u-1);if(T<0||T>u-1)for(var D=0;D<f;D++)for(var _=0;_<c;_++){var F=_+D*b[2]+A*b[1]+x*b[0];d.values[F]=i}else if("bilinear"===a)for(var O=Math.floor(T),M=Math.ceil(T),L=T-O,z=0;z<f;z++){var B=f>1?S*(l-1)+z*E:.5*(S+I)*(l-1);if(B<0||B>l-1)for(var P=0;P<c;P++){var W=P+z*b[2]+A*b[1]+x*b[0];d.values[W]=i}else for(var V=Math.floor(B),U=Math.ceil(B),G=B-V,j=0;j<c;j++){var H=j+V*y[2]+O*y[1]+C*y[0],q=g[H],K=g[H=j+U*y[2]+O*y[1]+C*y[0]],X=g[H=j+V*y[2]+M*y[1]+C*y[0]],Y=q+(K-q)*G,J=X+(g[H=j+U*y[2]+M*y[1]+C*y[0]]-X)*G;H=j+z*b[2]+A*b[1]+x*b[0],d.values[H]=Y+(J-Y)*L}}else for(var Z=0;Z<f;++Z){var Q=f>1?S*(l-1)+Z*E:.5*(S+I)*(l-1);if(Q<0||Q>l-1)for(var $=0;$<c;$++){var ee=$+Z*b[2]+A*b[1]+x*b[0];d.values[ee]=i}else for(var te=Math.round(Q),ne=Math.round(T),re=0;re<c;re++){var ae=re+te*y[2]+ne*y[1]+C*y[0],ie=re+Z*b[2]+A*b[1]+x*b[0];d.values[ie]=g[ae]}}}}return d.toTensor()},n.sparseToDense=function(e,t,n,r){var a=Db(0,e,n),i=a.sliceRank,o=a.numUpdates,s=a.sliceSize,u=a.strides,l=a.outputSize;return this.scatter(e,t,n,l,s,o,i,u,r,!1)},n.gatherND=function(e,t){var n=t.shape,r=n[n.length-1],a=Rb(e,t),i=a[0],o=a[1],s=a[2],u=a[3];if(0===o)return ny([],i,e.dtype);for(var l=new kg([o,s],e.dtype),c=this.readSync(t.dataId),p=this.readSync(e.dataId),h=0;h<o;h++){for(var f=[],d=0,m=0;m<r;m++){var v=c[h*r+m];d+=v*u[m],f.push(v)}if(d<0||d>=e.size/s)throw new Error("Invalid indices: "+f+" does not index into "+e.shape);for(var g=0;g<s;g++)l.values[h*s+g]=p[d*s+g]}return l.toTensor().reshape(i)},n.scatterND=function(e,t,n){var r=Db(0,e,n),a=r.sliceRank,i=r.numUpdates,o=r.sliceSize,s=r.strides,u=r.outputSize,l=sk(0);return this.scatter(e,t,n,u,o,i,a,s,l,!0)},n.fill=function(e,t,n){var r=Uv(n=n||Qv(t),_v(e));return r.fill(t),ix().makeTensor(r,e,n,this)},n.onesLike=function(e){if("string"===e.dtype)throw new Error("onesLike is not supported for string tensors");return this.fill(e.shape,1,e.dtype)},n.zerosLike=function(e){var t=Uv(e.dtype,_v(e.shape));return this.makeOutput(t,e.shape,e.dtype)}
17,n.linspace=function(e,t,n){return bC(e,t,n)},n.scatter=function(e,t,n,r,a,i,o,s,u,l){var c=[r/a,a],p=this.readSync(e.dataId),h=this.readSync(t.dataId);if(0===r)return ny([],n,t.dtype);var f=new kg(c,t.dtype);f.values.fill(this.readSync(u.dataId)[0]);for(var d=0;d<i;d++){for(var m=[],v=0,g=0;g<o;g++){var y=p[d*o+g];m.push(y),v+=y*s[g]}if(v<0||v>=r/a)throw new Error("Invalid indices: "+m+" does not index into "+n);for(var b=0;b<a;b++)l?f.values[v*a+b]+=h[d*a+b]:f.values[v*a+b]=0===t.rank?h[0]:h[d*a+b]}return f.toTensor().reshape(n)},t}(rv);function fL(e){for(var t=new Float32Array(e.length),n=0;n<e.length;++n)t[n]=Math.abs(e[n]);return t}var dL={kernelName:"Abs",backendName:"cpu",kernelFunc:function(e){var t=e.inputs.x,n=e.backend,r=new Float32Array(_v(t.shape));if("complex64"!==t.dtype)r=fL(n.data.get(t.dataId).values);else for(var a=n.data.get(t.dataId),i=a.complexTensorInfos.real,o=a.complexTensorInfos.imag,s=n.data.get(i.dataId).values,u=n.data.get(o.dataId).values,l=0;l<s.length;l++){var c=s[l],p=u[l];r[l]=Math.hypot(c,p)}return n.makeOutput(r,t.shape,"float32")}};function mL(e){return function(t,n,r,a,i){var o=Mw(t,n),s=o.length,u=tg(o),l=Vv(i,_v(o)),c=t.length,p=n.length,h=tg(t),f=tg(n),d=Fw(t,o),m=Fw(n,o);if(d.length+m.length===0)for(var v=0;v<l.length;++v)l[v]=e(r[v%r.length],a[v%a.length]);else for(var g=function(t){var n=dg(t,s,u),i=n.slice(-c);d.forEach((function(e){return i[e]=0}));var o=fg(i,c,h),v=n.slice(-p);m.forEach((function(e){return v[e]=0}));var g=fg(v,p,f);l[t]=e(r[o],a[g])},y=0;y<l.length;++y)g(y);return[l,o]}}function vL(e){var t=e.inputs,n=e.backend,r=t.real,a=t.imag,i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values,s=n.makeTensorInfo(r.shape,"complex64");return n.data.get(s.dataId).complexTensorInfos={real:n.makeTensorInfo(r.shape,"float32",i),imag:n.makeTensorInfo(a.shape,"float32",o)},s}var gL={kernelName:"Complex",backendName:"cpu",kernelFunc:vL};function yL(e){var t=e.inputs,n=e.backend,r=t.x;return n.incRef(r.dataId),{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}var bL={kernelName:"Identity",backendName:"cpu",kernelFunc:yL};function xL(e){var t=e.inputs,n=e.backend,r=t.input,a=n.data.get(r.dataId).complexTensorInfos.real,i=n.data.get(a.dataId).values;return n.makeTensorInfo(a.shape,a.dtype,i)}var wL={kernelName:"Real",backendName:"cpu",kernelFunc:xL};function kL(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.x,i=r.dtype;if("complex64"===i){if("complex64"===a.dtype)return yL({inputs:{x:a},backend:n});var o=Fk(a.shape),s=kL({inputs:{x:a},backend:n,attrs:{dtype:"float32"}}),u=vL({inputs:{real:s,imag:o},backend:n});return o.dispose(),n.disposeIntermediateTensorInfo(s),u}if("complex64"===a.dtype){var l=xL({inputs:{input:a},backend:n}),c=kL({inputs:{x:l},backend:n,attrs:{dtype:i}});return n.disposeIntermediateTensorInfo(l),c}if(!Hv(a.dtype,i)){var p=yL({inputs:{x:a},backend:n});return{dataId:p.dataId,shape:p.shape,dtype:i}}if("int32"===i){var h=n.data.get(a.dataId).values,f=Int32Array.from(h);return n.makeTensorInfo(a.shape,"int32",f)}if("bool"===i){var d=n.data.get(a.dataId).values,m=rg([0],a.dtype),v=mL((function(e,t){return e!==t?1:0}))(a.shape,[],d,m,"bool"),g=v[0],y=v[1];return n.makeTensorInfo(y,"bool",g)}throw new Error("Error in Cast: failed to cast "+a.dtype+" to "+i)}var SL={kernelName:"Cast",backendName:"cpu",kernelFunc:kL};function NL(e,t,n,r){return null==n?function(n){var a=n.inputs,i=n.backend,o=a.a,s=a.b,u=i;iL([o,s],e);var l=u.data.get(o.dataId).values,c=u.data.get(s.dataId).values,p=r||o.dtype,h=t(o.shape,s.shape,l,c,p),f=h[0],d=h[1];return u.makeTensorInfo(d,p,f)}:function(e){var a=e.inputs,i=e.backend,o=a.a,s=a.b,u=i;if("complex64"===o.dtype||"complex64"===s.dtype){var l=kL({input
17s:{x:o},backend:u,attrs:{dtype:"complex64"}}),c=u.data.get(l.dataId),p=c.complexTensorInfos.real,h=c.complexTensorInfos.imag,f=u.data.get(p.dataId).values,d=u.data.get(h.dataId).values,m=kL({inputs:{x:s},backend:u,attrs:{dtype:"complex64"}}),v=u.data.get(m.dataId),g=v.complexTensorInfos.real,y=v.complexTensorInfos.imag,b=u.data.get(g.dataId).values,x=u.data.get(y.dataId).values,w=n(o.shape,s.shape,f,d,b,x),k=w[0],S=w[1],N=w[2],I=u.makeTensorInfo(N,"float32",k),C=u.makeTensorInfo(N,"float32",S),R=vL({inputs:{real:I,imag:C},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(m),u.disposeIntermediateTensorInfo(I),u.disposeIntermediateTensorInfo(C),R}var E=u.data.get(o.dataId).values,A=u.data.get(s.dataId).values,T=r||o.dtype,D=t(o.shape,s.shape,E,A,T),_=D[0],F=D[1];return u.makeTensorInfo(F,T,_)}}function IL(e){return function(t,n,r,a,i,o){var s=Mw(t,n),u=_v(s),l=s.length,c=tg(s),p=Vv("float32",u),h=Vv("float32",u),f=Fw(t,s),d=Fw(n,s),m=lC(r,a),v=lC(i,o),g=t.length,y=tg(t),b=n.length,x=tg(n);if(f.length+d.length===0)for(var w=0;w<p.length;w++){var k=w%m.length,S=w%v.length,N=e(m[2*k],m[2*k+1],v[2*S],v[2*S+1]);p[w]=N.real,h[w]=N.imag}else for(var I=function(t){var n=dg(t,l,c),r=n.slice(-g);f.forEach((function(e){return r[e]=0}));var a=fg(r,g,y),i=n.slice(-b);d.forEach((function(e){return i[e]=0}));var o=fg(i,b,x),s=e(m[2*a],m[2*a+1],v[2*o],v[2*o+1]);p[t]=s.real,h[t]=s.imag},C=0;C<p.length;C++)I(C);return[p,h,s]}}var CL=mL((function(e,t){return e+t})),RL=IL((function(e,t,n,r){return{real:e+n,imag:t+r}})),EL=NL(pv,CL,RL),AL={kernelName:pv,backendName:"cpu",kernelFunc:EL};function TL(e){return function(t,n,r){for(var a=Vv(n,t.length),i=0;i<t.length;++i)a[i]=e(t[i],r);return a}}function DL(e,t,n){return function(r){var a=r.inputs,i=r.attrs,o=r.backend,s=a.x;if(iL(s,e),"string"===s.dtype||"string"===n)throw new Error("unaryKernelFunc does not support string input/output");for(var u=o,l=u.data.get(s.dataId).values,c=_v(s.shape),p=n||s.dtype,h=Uv(p,c),f=0;f<c;++f)h[f]=t(l[f],i);return u.makeTensorInfo(s.shape,p,h)}}
17function _L(e,t,n){return function(r){var a=r.inputs,i=r.attrs,o=r.backend,s=a.x;if(iL(s,e),"string"===s.dtype||"string"===n)throw new Error("unaryKernelFunc does not support string input/output");var u=o,l=u.data.get(s.dataId).values,c=n||s.dtype,p=t(l,c,i);return u.makeTensorInfo(s.shape,c,p)}}var FL=TL((function(e){return Math.ceil(e)})),OL={kernelName:"Ceil",backendName:"cpu",kernelFunc:_L("Ceil",FL)},ML=TL((function(e){return Math.exp(e)})),LL={kernelName:"Exp",backendName:"cpu",kernelFunc:_L("Exp",ML)},zL=TL((function(e){return Math.expm1(e)})),BL={kernelName:"Expm1",backendName:"cpu",kernelFunc:_L("Expm1",zL)},PL=TL((function(e){return Math.floor(e)})),WL={kernelName:"Floor",backendName:"cpu",kernelFunc:_L("Floor",PL)},VL=TL((function(e){return Math.log(e)})),UL={kernelName:"Log",backendName:"cpu",kernelFunc:_L("Log",VL)};function GL(e,t,n,r){for(var a=Vv(r,_v(n)),i=0;i<a.length;++i){for(var o=i*t,s=e[o],u=0;u<t;++u){var l=e[o+u];l>s&&(s=l)}a[i]=s}return a}var jL=mL((function(e,t){return e*t})),HL=NL("Multiply",jL,IL((function(e,t,n,r){return{real:e*n-t*r,imag:e*r+t*n}}))),qL={kernelName:"Multiply",backendName:"cpu",kernelFunc:HL},KL=TL((function(e){return 1/Math.sqrt(e)})),XL={kernelName:"Rsqrt",backendName:"cpu",kernelFunc:_L("Rsqrt",KL)};function YL(e,t,n,r,a){var i=Hb(r,t,n),o=_v(n),s=tg(r);if(i){var u=qb(t,s);return e.subarray(u,u+o)}for(var l=Vv(a,o),c=0;c<o;++c){var p=fg(dg(c,n.length,tg(n)).map((function(e,n){return e+t[n]})),r.length,s);l[c]=e[p]}return l}function JL(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.x,i=r.begin,o=r.size;iL(a,"slice");var s=Kb(a,i,o),u=s[0],l=s[1];Fb(a,u,l);var c=YL(n.data.get(a.dataId).values,u,l,a.shape,a.dtype);return n.makeTensorInfo(l,a.dtype,c)}var ZL={kernelName:"Slice",backendName:"cpu",kernelFunc:JL},QL=mL((function(e,t){return e-t})),$L=NL("Sub",QL,IL((function(e,t,n,r){return{real:e-n,imag:t-r}}))),ez={kernelName:"Sub",backendName:"cpu",kernelFunc:$L};function tz(e,t,n,r,a){for(var i=t.length,o=_v(t),s=tg(t),u=tg(a),l=Vv(n,_v(a)),c=0;c<o;++c){for(var p=dg(c,i,s),h=new Array(p.length),f=0;f<h.length;f++)h[f]=p[r[f]];l[fg(h,i,u)]=e[c]}return l}function nz(e,t,n,r){for(var a=Pv(t,n)[0],i=[1,n[0],1],o=0;o<a;o++)i[0]*=n[o];i[1]=n[a];for(var s=a+1;s<n.length;s++)i[2]*=n[s];for(var u={},l=new Int32Array(n[a]),c=new kg(i,r,e),p=[],h=1===i[0]&&1===i[2],f=0;f<n[a];f++){var d=void 0;if(h)d=e[f].toString();else{for(var m=[],v=0;v<i[0];v++)for(var g=0;g<i[2];g++)m.push(c.get(v,f,g));d=m.join(",")}if(void 0!==u[d])l[f]=u[d];else{var y=Object.keys(u).length;u[d]=y,l[f]=y,p.push(f)}}var b=i.slice();b[1]=Object.keys(u).length;var x=new kg(b,r);p.forEach((function(e,t){for(var n=0;n<i[0];n++)for(var r=0;r<i[2];r++)x.set(c.get(n,e,r),n,t,r)}));var w=n.slice();return w[a]=b[1],{outputValues:x.values,outputShape:w,indices:l}}px("cpu",(function(){return new hL}),1);var rz={kernelName:"Acos",backendName:"cpu",kernelFunc:DL("Acos",(function(e){return Math.acos(e)}))},az={kernelName:"Acosh",backendName:"cpu",kernelFunc:DL("Acosh",(function(e){return Math.acosh(e)}))},iz={kernelName:"Asin",backendName:"cpu",kernelFunc:DL("Asin",(function(e){return Math.asin(e)}))},oz={kernelName:"Asinh",backendName:"cpu",kernelFunc:DL("Asinh",(function(e){return Math.asinh(e)}))},sz={kernelName:"Atan",backendName:"cpu",kernelFunc:DL("Atan",(function(e){return Math.atan(e)}))},uz={kernelName:"Atanh",backendName:"cpu",kernelFunc:DL("Atanh",(function(e){return Math.atanh(e)}))};function lz(e,t,n,r,a,i){for(var o=a.strideHeight,s=a.strideWidth,u=a.dilationHeight,l=a.dilationWidth,c=a.effectiveFilterHeight,p=a.effectiveFilterWidth,h=a.padInfo.top,f=a.padInfo.left,d="max"===i?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,m=Yy(a.outShape,n),v=m.values,g=a.outShape[1]*a.outShape[2]*a.outShape[3],y=a.outShape[2]*a.outShape[3],b=a.outShape[3],x=0;x<a.batchSize;++x)for(var w=x*g,k=x*r[0],S=0;S<a.inChannels;++S)for(var N=0;N<a.outHeight;++N)for(var I=N*o-h,C=Math.max(0,I),R=Math.min(a.inHeight,c+I),E=w+N*y,A=0;A<a.outWidth;++A){for(var T=A*s-f,D=Math.max(0,T),_=Math.min(a.inWidth,p+T),F=d,O=0,M=0,L=C;L<R;L+=u){for(var z=k+L*r[1],B=D;B<_;B+=l){var P=e[z+B*r[2]+S];"max"===i&&P>F?F=P:"avg"===i&&(O+=P,M++)}if(isNaN(F))break}v[E+A*b+S]="avg"===i?O/M:F}return m}function cz(e,t,n,r,a,i){void 0===a&&(a=!1),void 0===i&&(i=!1);for(var o=Yy(r.outShape,"int32"),s=r.strideHeight,u=r.strideWidth,l=r.dilationHeight,c=r.dilationWidth,p=r.effectiveFilterHeight,h=r.effectiveFilterWidth,f=r.padInfo.top,d=r.padInfo.left,m=Yy(t,n,e),v=0;v<r.batchSize;++v)for(var g=0;g<r.inChannels;++g)for(var y=0;y<r.outHeight;++y){for(var b=y*s-f,x=b;x<0;)x+=l;for(var w=Math.min(r.inHeight,p+b),k=0;k<r.outWidth;++k){for(var S=k*u-d,N=S;N<0;)N+=c;for(var I=Math.min(r.inWidth,h+S),C=Number.NEGATIVE_INFINITY,R=-1,E=x;E<w;E+=l)for(var A=E-b,T=N;T<I;T+=c){var D=T-S,_=m.get(v,E,T,g);_>C&&(C=_,R=a?i?((v*r.inHeight+E)*r.inWidth+T)*r.inChannels+g:(E*r.inWidth+T)*r.inChannels+g:A*h+D)}o.set(R,v,y,k,g)}}return o}var pz={kernelName:"AvgPool",backendName:"cpu",kernelFunc:function(e){var t=e.input
17s,n=e.backend,r=e.attrs,a=t.x;iL(a,"avgPool");var i=r.filterSize,o=r.strides,s=r.pad,u=r.dimRoundingMode;Ev(Yx(o,1),(function(){return"Error in avgPool: Either strides or dilations must be 1. Got strides "+o+" and dilations '1'"}));var l,c=Px(a.shape,i,o,1,s,u);if(1===c.filterWidth&&1===c.filterHeight&&Fv(c.inShape,c.outShape))l=yL({inputs:{x:a},backend:n});else{var p=n.data.get(a.dataId).values,h=tg(a.shape),f=lz(p,a.shape,a.dtype,h,c,"avg");l=n.makeTensorInfo(c.outShape,a.dtype,f.values)}return l}};var hz={kernelName:"AvgPoolBackprop",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.dy,i=t.input,o=i;iL([a,i],"avgPoolBackprop");for(var s=r.filterSize,u=r.strides,l=r.pad,c=Px(o.shape,s,u,1,l),p=c.strideHeight,h=c.strideWidth,f=c.filterHeight,d=c.filterWidth,m=c.dilationHeight,v=c.dilationWidth,g=c.effectiveFilterHeight,y=c.effectiveFilterWidth,b=y-1-c.padInfo.left,x=g-1-c.padInfo.top,w=Yy(o.shape,"float32"),k=1/(f*d),S=n.data.get(a.dataId).values,N=Yy(a.shape,"float32",S),I=0;I<c.batchSize;++I)for(var C=0;C<c.inChannels;++C)for(var R=0;R<c.inHeight;++R)for(var E=0;E<c.inWidth;++E){for(var A=R-x,T=E-b,D=0,_=0;_<g;_+=m){var F=(A+_)/p;if(!(F<0||F>=c.outHeight||Math.floor(F)!==F))for(var O=0;O<y;O+=v){var M=(T+O)/h;if(!(M<0||M>=c.outWidth||Math.floor(M)!==M))D+=N.get(I,F,M,C)}}w.set(D*k,I,R,E,C)}return n.makeTensorInfo(w.shape,w.dtype,w.values)}};var fz={kernelName:"FusedBatchNorm",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.x,i=t.scale,o=t.offset,s=t.mean,u=t.variance;Ev(s.shape.length===u.shape.length,(function(){return"Batch normalization gradient requires mean and variance to have equal ranks."})),Ev(null==o||s.shape.length===o.shape.length,(function(){return"Batch normalization gradient requires mean and offset to have equal ranks."})),Ev(null==i||s.shape.length===i.shape.length,(function(){return"Batch normalization gradient requires mean and scale to have equal ranks."})),iL([a,s,u,i,o],"batchNorm");var l=r.varianceEpsilon;null==l&&(l=.001);for(var c=n.data.get(a.dataId).values,p=n.data.get(s.dataId).values,h=n.data.get(u.dataId).values,f=i?n.data.get(i.dataId).values:new Float32Array([1]),d=o?n.data.get(o.dataId).values:new Float32Array([0]),m=new Float32Array(c.length),v=d.length,g=f.length,y=h.length,b=p.length,x=0,w=0,k=0,S=0,N=0;N<c.length;++N)m[N]=d[x++]+(c[N]-p[w++])*f[k++]/Math.sqrt(h[S++]+l),x>=v&&(x=0),w>=b&&(w=0),k>=g&&(k=0),S>=y&&(S=0);return n.makeTensorInfo(a.shape,a.dtype,m)}},dz={kernelName:"ClipByValue",backendName:"cpu",kernelFunc:DL("ClipByValue",(function(e,t){var n=t;return e>n.clipValueMax?n.clipValueMax:e<n.clipValueMin?n.clipValueMin:e}))};function mz(e){var t=e.inputs,n=e.backend,r=t.input,a=n.data.get(r.dataId).complexTensorInfos.imag,i=n.data.get(a.dataId).values;return n.makeTensorInfo(a.shape,a.dtype,i)}var vz={kernelName:"Imag",backendName:"cpu",kernelFunc:mz};function gz(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.x,i=r.shape,o=_v(a.shape),s=Bv(i,o),u=_v(s);Ev(o===u,(function(){return"The new shape ("+s+") has "+u+" elements and the old shape ("+a.shape+") has "+o+" elements. The new shape and old shape must have the same number of elements."})),n.incRef(a.dataId);var l=n.data.get(a.dataId);if(null!=l.complexTensorInfos){var c=l.complexTensorInfos.real,p=l.complexTensorInfos.imag;c.shape=s,p.shape=s}return{dataId:a.dataId,shape:s,dtype:a.dtype}}var yz={kernelName:"Reshape",backendName:"cpu",kernelFunc:gz};function bz(e){var t=e.inputs,n=e.backend,r=e.attrs.axis,a=Pv(r,t[0].shape)[0],i=ew(t.map((function(e){return e.shape})),a);if(0===_v(i))return n.makeTensorInfo(i,t[0].dtype,[]);var o=t.filter((function(e){return _v(e.shape)>0}));if(1===o.length)return o[0];if($x(o.map((function(e){return e.shape})),a),"complex64"===o[0].dtype){var s=o.map((function(e){return xL({inputs:{input:e},backend:n})})),u=o.map((function(e){return mz({inputs:{input:e},backend:n})})),l=bz({inputs:s,backend:n,attrs:{axis:r}}),c=bz({inputs:u,backend:n,attrs:{axis:r}}),p=vL({inputs:{real:l,imag:c},backend:n});return s.forEach((function(e){return n.disposeIntermediateTensorInfo(e)})),u.forEach((function(e){return n.disposeIntermediateTensorInfo(e)})),n.disposeIntermediateTensorInfo(l),n.disposeIntermediateTensorInfo(c),p}var h=o.map((function(e){var t=_v(e.shape.slice(a));return gz({inputs:{x:e},backend:n,attrs:{shape:[-1,t]}})}));i=ew(h.map((function(e){return e.shape})),1);var f=Vv(o[0].dtype,_v(i));if(1===h[0].shape[0]){var d=0;h.forEach((function(e){var t=n.data.get(e.dataId).values,r=_v(e.shape);f.set(t,d),d+=r}))}else{var m=0;h.forEach((function(e){for(var t=n.data.get(e.dataId).values,r=0,a=0;a<e.shape[0];++a)for(var o=a*i[1]+m,s=0;s<e.shape[1];++s)f[o+s]=t[r++];m+=e.shape[1]}))}var v=ew(o.map((function(e){return e.shape})),a),g=n.makeTensorInfo(v,t[0].dtype,f);return h.forEach((function(e){return n.disposeIntermediateTensorInfo(e)})),g}var xz={kernelName:"Concat",backendName:"cpu",kernelFunc:bz}
vendor: 4,727 bytes, line 17
17,wz=DL(hv,(function(e){return Math.cos(e)})),kz={kernelName:hv,backendName:"cpu",kernelFunc:wz},Sz={kernelName:"Cosh",backendName:"cpu",kernelFunc:DL("Cosh",(function(e){return Math.cosh(e)}))},Nz={kernelName:"Dilation2D",backendName:"cpu",kernelFunc:function(e){for(var t=e.inputs,n=e.backend,r=e.attrs,a=t.x,i=t.filter,o=r.strides,s=r.pad,u=r.dilations,l=n,c=l.data.get(a.dataId).values,p=a.shape.length,h=l.data.get(i.dataId).values,f=i.shape.length,d=Bx(a.shape,i.shape,o,s,"NHWC",u),m=d.batchSize,v=d.inHeight,g=d.inWidth,y=d.inChannels,b=d.outHeight,x=d.outWidth,w=d.padInfo,k=d.strideHeight,S=d.strideWidth,N=d.filterHeight,I=d.filterWidth,C=d.dilationHeight,R=d.dilationWidth,E=d.outShape,A=_v(E),T=E.length,D=Uv(a.dtype,A),_=0;_<m;++_)for(var F=0;F<b;++F)for(var O=F*k-w.top,M=0;M<x;++M)for(var L=M*S-w.left,z=0;z<y;++z){for(var B=Number.MIN_SAFE_INTEGER,P=0;P<N;++P){var W=O+P*C;if(W>=0&&W<v)for(var V=0;V<I;++V){var U=L+V*R;if(U>=0&&U<g){var G=fg([_,W,U,z],p,tg(a.shape)),j=fg([P,V,z],f,tg(i.shape)),H=c[G]+h[j];H>B&&(B=H)}}}D[fg([_,F,M,z],T,tg(E))]=B}return{dataId:l.write(rg(D,a.dtype),E,a.dtype),shape:E,dtype:a.dtype}}},Iz={kernelName:"Dilation2DBackpropFilter",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.x,i=t.filter,o=t.dy,s=r.strides,u=r.pad,l=r.dilations,c=n,p=ag(a.shape,c.data.get(a.dataId).values),h=ag(i.shape,c.data.get(i.dataId).values),f=Bx(a.shape,i.shape,s,u,"NHWC",l),d=f.batchSize,m=f.inHeight,v=f.inWidth,g=f.inChannels,y=f.outHeight,b=f.outWidth,x=f.padInfo,w=f.strideHeight,k=f.strideWidth,S=f.filterHeight,N=f.filterWidth,I=f.dilationHeight,C=f.dilationWidth,R=f.outShape;Ev(o.rank===R.length,(function(){return"Error in Dilation2DBackpropFilter, dy must have the same rank as output "+R.length+", but got "+o.rank}));for(var E=ag(R,c.data.get(o.dataId).values),A=sg(i.shape,i.dtype),T=0;T<d;++T)for(var D=0;D<y;++D)for(var _=D*w-x.top,F=0;F<b;++F)for(var O=F*k-x.left,M=0;M<g;++M){for(var L=Number.MIN_SAFE_INTEGER,z=0,B=0,P=0;P<S;++P){var W=_+P*I;if(W>=0&&W<m)for(var V=0;V<N;++V){var U=O+V*C;if(U>=0&&U<v){var G=p[T][W][U][M]+h[P][V][M];G>L&&(L=G,z=P,B=V)}}}A[z][B][M]+=E[T][D][F][M]}return{dataId:c.write(rg(A,a.dtype),i.shape,i.dtype),shape:i.shape,dtype:i.dtype}}},Cz={kernelName:"Dilation2DBackpropInput",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.x,i=t.filter,o=t.dy,s=r.strides,u=r.pad,l=r.dilations,c=n,p=ag(a.shape,c.data.get(a.dataId).values),h=ag(i.shape,c.data.get(i.dataId).values),f=Bx(a.shape,i.shape,s,u,"NHWC",l),d=f.batchSize,m=f.inHeight,v=f.inWidth,g=f.inChannels,y=f.outHeight,b=f.outWidth,x=f.padInfo,w=f.strideHeight,k=f.strideWidth,S=f.filterHeight,N=f.filterWidth,I=f.dilationHeight,C=f.dilationWidth,R=f.outShape;Ev(o.rank===R.length,(function(){return"Error in Dilation2DBackpropInput, dy must have the same rank as output "+R.length+", but got "+o.rank}));for(var E=ag(R,c.data.get(o.dataId).values),A=sg(a.shape,a.dtype),T=0;T<d;++T)for(var D=0;D<y;++D)for(var _=D*w-x.top,F=0;F<b;++F)for(var O=F*k-x.left,M=0;M<g;++M){for(var L=Number.MIN_SAFE_INTEGER,z=_<0?0:_,B=O<0?0:O,P=0;P<S;++P){var W=_+P*I;if(W>=0&&W<m)for(var V=0;V<N;++V){var U=O+V*C;if(U>=0&&U<v){var G=p[T][W][U][M]+h[P][V][M];G>L&&(L=G,z=W,B=U)}}}A[T][z][B][M]+=E[T][D][F][M]}return{dataId:c.write(rg(A,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}},Rz=mL((function(e,t){return e/t})),Ez=NL(fv,Rz),Az={kernelName:fv,backendName:"cpu",kernelFunc:Ez},Tz={kernelName:"Elu",backendName:"cpu",kernelFunc:DL("Elu",(function(e){return e>=0?e:Math.exp(e)-1}))},Dz={kernelName:"Erf",backendName:"cpu",kernelFunc:DL("Erf",(function(e){var t=Math.sign(e),n=Math.abs(e),r=1/(1+.3275911*n);return t*(1-((((1.061405429*r-1.453152027)*r+1.421413741)*r-.284496736)*r+.254829592)*r*Math.exp(-n*n))}))};function _z(e,t,n){for(var r=e.shape,a=r[0],i=r[1],o=n.data.get(e.dataId),s=o.complexTensorInfos.real,u=o.complexTensorInfos.imag,l=[a,i],c=_v(l),p=Vv("float32",c),h=Vv("float32",c),f=0;f<a;f++){for(var d=JL({inputs:{x:s},backend:n,attrs:{begin:[f,0],size:[1,i]}}),m=JL({inputs:{x:u},backend:n,attrs:{begin:[f,0],size:[1,i]}}),v=vL({inputs:{real:d,imag:m},backend:n}),g=Fz(v,t,n),y=lC(g.real,g.imag),b=0;b<i;b++){var x=fC(y,b);p[f*i+b]=x.real,h[f*i+b]=x.imag}n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(v)}var w=n.makeTensorInfo(l,"float32",p),k=n.makeTensorInfo(l,"float32",h),S=vL({inputs:{real:w,imag:k},backend:n});return n.disposeIntermediateTensorInfo(w),n.disposeIntermediateTensorInfo(k),S}function Fz(e,t,n){var r,a=_v(e.shape),i=n.data.get(e.dataId),o=n.data.get(i.complexTensorInfos.real.dataId).values,s=n.data.get(i.complexTensorInfos.imag.dataId).values;
17if(0==((r=a)&r-1)){var u=function e(t,n,r,a,i){if(1===r)return{real:t,imag:n};var o=lC(t,n),s=r/2,u=pC(o),l=u.real,c=u.imag,p=[l.length],h=i.makeTensorInfo(p,"float32",l),f=i.makeTensorInfo(p,"float32",c),d=vL({inputs:{real:h,imag:f},backend:i}),m=hC(o),v=m.real,g=m.imag,y=[v.length],b=i.makeTensorInfo(y,"float32",v),x=i.makeTensorInfo(y,"float32",g),w=vL({inputs:{real:b,imag:x},backend:i}),k=e(l,c,s,a,i),S=k.real,N=k.imag,I=[S.length],C=i.makeTensorInfo(I,"float32",S),R=i.makeTensorInfo(I,"float32",N),E=vL({inputs:{real:C,imag:R},backend:i}),A=e(v,g,s,a,i),T=A.real,D=A.imag,_=[T.length],F=i.makeTensorInfo(_,"float32",T),O=i.makeTensorInfo(_,"float32",D),M=vL({inputs:{real:F,imag:O},backend:i}),L=mC(r,a),z=[L.real.length],B=i.makeTensorInfo(z,"float32",L.real),P=i.makeTensorInfo(z,"float32",L.imag),W=vL({inputs:{real:B,imag:P},backend:i}),V=HL({inputs:{a:W,b:M},backend:i}),U=EL({inputs:{a:E,b:V},backend:i}),G=$L({inputs:{a:E,b:V},backend:i}),j=xL({inputs:{input:U},backend:i}),H=xL({inputs:{input:G},backend:i}),q=mz({inputs:{input:U},backend:i}),K=mz({inputs:{input:G},backend:i}),X=bz({inputs:[j,H],backend:i,attrs:{axis:0}}),Y=bz({inputs:[q,K],backend:i,attrs:{axis:0}}),J=i.data.get(X.dataId).values,Z=i.data.get(Y.dataId).values;return i.disposeIntermediateTensorInfo(h),i.disposeIntermediateTensorInfo(f),i.disposeIntermediateTensorInfo(d),i.disposeIntermediateTensorInfo(b),i.disposeIntermediateTensorInfo(x),i.disposeIntermediateTensorInfo(w),i.disposeIntermediateTensorInfo(C),i.disposeIntermediateTensorInfo(R),i.disposeIntermediateTensorInfo(E),i.disposeIntermediateTensorInfo(F),i.disposeIntermediateTensorInfo(O),i.disposeIntermediateTensorInfo(M),i.disposeIntermediateTensorInfo(B),i.disposeIntermediateTensorInfo(P),i.disposeIntermediateTensorInfo(W),i.disposeIntermediateTensorInfo(V),i.disposeIntermediateTensorInfo(U),i.disposeIntermediateTensorInfo(G),i.disposeIntermediateTensorInfo(j),i.disposeIntermediateTensorInfo(q),i.disposeIntermediateTensorInfo(H),i.disposeIntermediateTensorInfo(K),i.disposeIntermediateTensorInfo(X),i.disposeIntermediateTensorInfo(Y),{real:J,imag:Z}}(o,s,a,t,n),l=[e.shape[0],e.shape[1]];if(t){var c=n.makeTensorInfo(l,"float32",u.real),p=n.makeTensorInfo(l,"float32",u.imag),h=n.makeTensorInfo([],"float32",ng(a,"float32")),f=yL({inputs:{x:h},backend:n}),d=Az.kernelFunc({inputs:{a:c,b:h},backend:n}),m=Az.kernelFunc({inputs:{a:p,b:f},backend:n}),v=n.data.get(d.dataId).values,g=n.data.get(m.dataId).values;return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(m),{real:v,imag:g}}return u}return cC(function(e,t,n){for(var r=new Float32Array(2*t),a=0;a<t;a++){for(var i=0,o=0,s=0;s<t;s++){var u=vC(a*s,t,n),l=fC(e,s);i+=l.real*u.real-l.imag*u.imag,o+=l.real*u.imag+l.imag*u.real}n&&(i/=t,o/=t),dC(r,i,o,a)}return r}(lC(o,s),a,t))}var Oz={kernelName:"FFT",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=t.input,a=_v(r.shape),i=r.shape[r.shape.length-1],o=gz({inputs:{x:r},backend:n,attrs:{shape:[a/i,i]}}),s=_z(o,!1,n),u=gz({inputs:{x:s},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(s),u}},Mz={kernelName:"FlipLeftRight",backendName:"cpu",kernelFunc:function(e){for(var t=e.inputs,n=(e.attrs,e.backend),r=t.image,a=n,i=Vv(r.dtype,_v(r.shape)),o=r.shape,s=o[0],u=o[1],l=o[2],c=o[3],p=a.data.get(r.dataId).values,h=0;h<s;h++)for(var f=h*l*u*c,d=0;d<u;d++)for(var m=d*(l*c),v=0;v<l;v++)for(var g=v*c,y=0;y<c;y++){var b=[s,d,v,y][2],x=Math.round(l-b),w=f+m+g+y,k=p[w];if(x>=0&&x<l)k=p[f+m+x*c+y];i[w]=k}return{dataId:a.write(i,r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}};var Lz={kernelName:"IFFT",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=t.input,a=_v(r.shape),i=r.shape[r.shape.length-1],o=gz({inputs:{x:r},backend:n,attrs:{shape:[a/i,i]}}),s=_z(o,!0,n),u=gz({inputs:{x:s},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(s),u}},zz={kernelName:"IsFinite",backendName:"cpu",kernelFunc:DL("IsFinite",(function(e){return Number.isFinite(e)?1:0}),"bool")},Bz={kernelName:"IsInf",backendName:"cpu",kernelFunc:DL("IsInf",(function(e){return Math.abs(e)===1/0?1:0}),"bool")},Pz={kernelName:"IsNan",backendName:"cpu",kernelFunc:DL("IsNan",(function(e){return Number.isNaN(e)?1:0}),"bool")},Wz={kernelName:"Log1p",backendName:"cpu",kernelFunc:DL("Log1p",(function(e){return Math.log1p(e)}))},Vz={kernelName:"LogicalNot",backendName:"cpu",kernelFunc:DL("LogicalNot",(function(e){return e?0:1}),"bool")},Uz={kernelName:"Max",backendName:"cpu",kernelFunc:function(e){var t=e.input
17s,n=e.attrs,r=e.backend,a=t.x,i=n.reductionIndices,o=n.keepDims,s=r,u=a.shape,l=u.length,c=Pv(i,u),p=c,h=Cx(p,l),f=s.data.get(a.dataId).values;if(null!=h){for(var d=new Array(l),m=0;m<d.length;m++)d[m]=u[h[m]];f=tz(f,u,a.dtype,h,d),p=Ex(p.length,l),u=d}iL(a,"max"),Ix("max",p,l);var v=Sx(u,p),g=v[0],y=GL(f,_v(v[1]),g,a.dtype),b=s.write(y,g,a.dtype),x=g;o&&(x=Nx(g,c));return{dataId:b,shape:x,dtype:a.dtype}}};var Gz={kernelName:"MaxPool",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.x;iL(a,"maxPool");var i=r.filterSize,o=r.strides,s=r.pad,u=r.dimRoundingMode;Ev(Yx(o,1),(function(){return"Error in maxPool: Either strides or dilations must be 1. Got strides "+o+" and dilations '1'"}));var l,c=Px(a.shape,i,o,1,s,u);if(1===c.filterWidth&&1===c.filterHeight&&Fv(c.inShape,c.outShape))l=yL({inputs:{x:a},backend:n});else{var p=n.data.get(a.dataId).values,h=tg(a.shape),f=lz(p,a.shape,a.dtype,h,c,"max");l=n.makeTensorInfo(c.outShape,a.dtype,f.values)}return l}};var jz={kernelName:"MaxPoolBackprop",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.dy,i=t.input,o=i;iL([i,t.output],"maxPoolBackprop");for(var s=r.filterSize,u=r.strides,l=r.pad,c=r.dimRoundingMode,p=Px(o.shape,s,u,1,l,c),h=n.data.get(o.dataId).values,f=Yy(p.outShape,o.dtype,cz(h,o.shape,o.dtype,p).values),d=p.strideHeight,m=p.strideWidth,v=p.dilationHeight,g=p.dilationWidth,y=p.effectiveFilterHeight,b=p.effectiveFilterWidth,x=b-1-p.padInfo.left,w=y-1-p.padInfo.top,k=Yy(o.shape,"float32"),S=n.data.get(a.dataId).values,N=Yy(a.shape,"float32",S),I=0;I<p.batchSize;++I)for(var C=0;C<p.inChannels;++C)for(var R=0;R<p.inHeight;++R)for(var E=0;E<p.inWidth;++E){for(var A=R-w,T=E-x,D=0,_=0;_<y;_+=v){var F=(A+_)/d;if(!(F<0||F>=p.outHeight||Math.floor(F)!==F))for(var O=0;O<b;O+=g){var M=(T+O)/m;if(!(M<0||M>=p.outWidth||Math.floor(M)!==M)){var L=y*b-1-f.get(I,F,M,C)===_*b+O?1:0;if(0!==L)D+=N.get(I,F,M,C)*L}}}k.set(D,I,R,E,C)}return n.makeTensorInfo(k.shape,k.dtype,k.values)}};var Hz={kernelName:"MaxPoolWithArgmax",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.attrs,r=e.backend,a=t.x,i=n.filterSize,o=n.strides,s=n.pad,u=n.includeBatchInIndex,l=r;iL(a,"MaxPoolWithArgmax");var c=l.data.get(a.dataId).values,p=Px(a.shape,i,o,[1,1],s),h=function(e,t,n,r,a){var i=lz(e,0,n,tg(t),a,"max"),o=cz(e,t,n,a,!0,r);return[i.values,o.values]}(c,a.shape,a.dtype,u,p),f=h[0],d=h[1],m=l.write(f,p.outShape,a.dtype),v=l.write(d,p.outShape,a.dtype);return[{dataId:m,shape:p.outShape,dtype:a.dtype},{dataId:v,shape:p.outShape,dtype:"int32"}]}},qz=uI,Kz={kernelName:"NonMaxSuppressionV4",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.boxes,i=t.scores,o=r.maxOutputSize,s=r.iouThreshold,u=r.scoreThreshold,l=r.padToMaxOutputSize,c=n;iL(a,"NonMaxSuppressionPadded");var p=c.data.get(a.dataId).values,h=c.data.get(i.dataId).values,f=qz(p,h,o,s,u,l);return[f.selectedIndices,f.validOutputs]}},Xz=lI,Yz={kernelName:"NonMaxSuppressionV5",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.boxes,i=t.scores,o=r.maxOutputSize,s=r.iouThreshold,u=r.scoreThreshold,l=r.softNmsSigma,c=n;iL(a,"NonMaxSuppressionWithScore");var p=c.data.get(a.dataId).values,h=c.data.get(i.dataId).values,f=Xz(p,h,o,s,u,l);return[f.selectedIndices,f.selectedScores]}},Jz={kernelName:"NotEqual",backendName:"cpu",kernelFunc:NL("NotEqual",mL((function(e,t){return e!==t?1:0})),null,"bool")};var Zz={kernelName:"PadV2",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.x,i=r.paddings,o=r.constantValue;iL(a,"pad");var s=i.map((function(e,t){return e[0]+a.shape[t]+e[1]})),u=i.map((function(e){return e[0]})),l=n.data.get(a.dataId).values,c=_v(a.shape),p=a.shape.length,h=tg(a.shape),f=_v(s),d=s.length,m=tg(s),v=Vv(a.dtype,f);0!==o&&v.fill(o);for(var g=0;g<c;g++){v[fg(dg(g,p,h).map((function(e,t){return e+u[t]})),d,m)]=l[g]}return{dataId:n.write(v,s,a.dtype),shape:s,dtype:a.dtype}}},Qz={kernelName:"Reciprocal",backendName:"cpu",kernelFunc:DL("Reciprocal",(function(e){return 1/e}))},$z={kernelName:"RotateWithOffset",backendName:"cpu",kernelFunc:function(e){for(var t=e.input
17s,n=e.attrs,r=e.backend,a=t.image,i=n.radians,o=n.fillValue,s=n.center,u=r,l=Vv(a.dtype,_v(a.shape)),c=a.shape,p=c[0],h=c[1],f=c[2],d=c[3],m=tC(s,h,f),v=m[0],g=m[1],y=Math.sin(i),b=Math.cos(i),x=u.data.get(a.dataId).values,w=0;w<p;w++)for(var k=w*f*h*d,S=0;S<h;S++)for(var N=S*(f*d),I=0;I<f;I++)for(var C=I*d,R=0;R<d;R++){var E=[p,S,I,R],A=E[2],T=E[1],D=(A-v)*b-(T-g)*y,_=(A-v)*y+(T-g)*b;D=Math.round(D+v),_=Math.round(_+g);var F=o;if("number"!=typeof o&&(F=3===R?255:o[R]),D>=0&&D<f&&_>=0&&_<h)F=x[k+_*(f*d)+D*d+R];l[k+N+C+R]=F}return{dataId:u.write(l,a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}},eB={kernelName:"Round",backendName:"cpu",kernelFunc:DL("Round",(function(e){var t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1}))},tB={kernelName:"Selu",backendName:"cpu",kernelFunc:DL("Selu",(function(e){return e>=0?1.0507009873554805*e:1.7580993408473768*(Math.exp(e)-1)}))},nB={kernelName:"Sigmoid",backendName:"cpu",kernelFunc:DL("Sigmoid",(function(e){return 1/(1+Math.exp(-e))}))},rB={kernelName:"Sign",backendName:"cpu",kernelFunc:DL("Sign",(function(e){return e<0?-1:e>0?1:0}))},aB=DL(dv,(function(e){return Math.sin(e)})),iB={kernelName:dv,backendName:"cpu",kernelFunc:aB},oB={kernelName:"Sinh",backendName:"cpu",kernelFunc:DL("Sinh",(function(e){return Math.sinh(e)}))},sB=Math.log(1.1920928955078125e-7)+2,uB={kernelName:"Softplus",backendName:"cpu",kernelFunc:DL("Softplus",(function(e){var t=e>-sB,n=e<sB,r=Math.exp(e);return n?r:t?e:Math.log(1+r)}))};function lB(e){var t=e.inputs,n=e.attrs,r=e.backend,a=t.x,i=n.perm;iL(a,"transpose");for(var o=a.shape.length,s=new Array(o),u=0;u<s.length;u++)s[u]=a.shape[i[u]];var l=tz(r.data.get(a.dataId).values,a.shape,a.dtype,i,s);return{dataId:r.write(l,s,a.dtype),shape:s,dtype:a.dtype}}var cB={kernelName:"Transpose",backendName:"cpu",kernelFunc:lB};var pB={kernelName:"SpaceToBatchND",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.x,i=r.blockShape,o=r.paddings;iL([a],"spaceToBatchND");var s=_v(i),u=[[0,0]];u.push.apply(u,o);for(var l=1+i.length;l<a.shape.length;++l)u.push([0,0]);var c=Zz.kernelFunc({inputs:{x:a},backend:n,attrs:{paddings:u,constantValue:0}}),p=nC(c.shape,i,s,!1),h=rC(p.length,i.length,!1),f=aC(c.shape,i,s,!1),d=gz({inputs:{x:c},backend:n,attrs:{shape:p}}),m=lB({inputs:{x:d},backend:n,attrs:{perm:h}}),v=gz({inputs:{x:m},backend:n,attrs:{shape:f}});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(m),v}},hB={kernelName:"Sqrt",backendName:"cpu",kernelFunc:DL("Sqrt",(function(e){return Math.sqrt(e)}))},fB={kernelName:"Square",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=t.x,a=n;iL(r,"square");for(var i=a.data.get(r.dataId).values,o=new Float32Array(i.length),s=0;s<i.length;++s){var u=i[s];o[s]=u*u}return{dataId:a.write(o,r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},dB={kernelName:"SquaredDifference",backendName:"cpu",kernelFunc:NL("SquaredDifference",mL((function(e,t){var n=e-t;return n*n})))},mB={kernelName:"Step",backendName:"cpu",kernelFunc:DL("Step",(function(e,t){var n=t;return isNaN(e)?NaN:e>0?1:n.alpha}))},vB=DL(mv,(function(e){return Math.tan(e)})),gB={kernelName:mv,backendName:"cpu",kernelFunc:vB},yB=DL("Tanh",(function(e){return Math.tanh(e)}));for(var bB=0,xB=[dL,rz,az,AL,iz,oz,sz,uz,pz,hz,fz,SL,OL,dz,gL,xz,kz,Sz,Nz,Cz,Iz,Az,Tz,Dz,LL,BL,Oz,Mz,WL,bL,Lz,vz,zz,Bz,Pz,UL,Wz,Vz,Gz,jz,Hz,Uz,qL,Kz,Yz,Jz,Zz,wL,Qz,yz,$z,eB,XL,tB,nB,rB,iB,oB,ZL,uB,pB,hB,fB,dB,mB,ez,gB,{kernelName:"Tanh",backendName:"cpu",kernelFunc:yB},cB,{kernelName:"Unique",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.attrs,r=e.backend,a=n.axis,i=t.x;iL(i,"unique");var o=nz(r.data.get(i.dataId).values,a,i.shape,i.dtype),s=o.outputValues,u=o.outputShape,l=o.indices;return[r.makeTensorInfo(u,i.dtype,s),r.makeTensorInfo([l.length],"int32",l)]}}];bB<xB.length;bB++){wv(xB[bB])}var wB,kB,SB,NB={},IB={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function CB(e){if(!(e in NB)){var t=function(e){if(1!==e&&2!==e)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");var t=function(e){if("undefined"!=typeof OffscreenCanvas&&2===e)return new OffscreenCanvas(300,150);if("undefined"!=typeof document)return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}(e);if(t.addEventListener("webglcontextlost",(function(t){t.preventDefault(),delete NB[e]}),!1),1===e)return t.getContext("webgl",IB)||t.getContext("experimental-webgl",IB);return t.getContext("webgl2",IB)}(e);if(null===t)return console.log("Could not get context for WebGL version",e),null;NB[e]=t}var n=NB[e];return n.isContextLost()?(delete NB[e],CB(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),NB[e])}function RB(e,t){return[t,e]}function EB(e){var t=_v(e);return Mv(Math.ceil(t/4))}function AB(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function TB(e,t){var n,r,a,i,o,s,u,l,c,p=e;return 2===uv().getNumber("WEBGL_VERSION")?(n=p.R32F,r=p.R16F,a=p.RGBA16F,i=p.RGBA32F,o=p.RED,s=4,u=1,l=p.HALF_FLOAT,c=p.FLOAT):(n=e.RGBA,r=e.RGBA,a=e.RGBA,i=p.RGBA,o=e.RGBA,s=4,u=4,l=null!=t?t.HALF_FLOAT_OES:null,c=e.FLOAT),{internalFormatFloat:n,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:a,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:e.RGBA,downloadUnpackNumChannels:s,defaultNumChannels:u,textureTypeHalfFloat:l,textureTypeFloat:c}}function DB(e,t){var n=t();return uv().getBool("DEBUG")&&function(e){var t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+function(e,t){switch(t){case e.NO_ERROR:return"NO_ERROR";case e.INVALID_ENUM:return"INVALID_ENUM";case e.INVALID_VALUE:return"INVALID_VALUE";case e.INVALID_OPERATION:return"INVALID_OPERATION";case e.INVALID_FRAMEBUFFER_OPERATION:return"INVALID_FRAMEBUFFER_OPERATION";case e.OUT_OF_MEMORY:return"OUT_OF_MEMORY";case e.CONTEXT_LOST_WEBGL:return"CONTEXT_LOST_WEBGL";default:return"Unknown error code "+t}}(e,t))}(e),n}!function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"}(wB||(wB={})),function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"}(kB||(kB={})),function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"}(SB||(SB={}));function _B(e){return!!(uv().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===e||5.96e-8<Math.abs(e)&&Math.abs(e)<65504)}function FB(e,t){return jB(e,(function(){return e.getExtension(t)}),'Extension "'+t+'" not supported on this browser.')}function OB(e,t){var n=jB(e,(function(){return e.createShader(e.FRAGMENT_SHADER)}),"Unable to create fragment WebGLShader.");if(DB(e,(function(){return e.shaderSource(n,t)})),DB(e,(function(){return e.compileShader(n)})),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw function(e,t){var n=zB.exec(t);if(null==n)return console.log("Couldn't parse line number in error: "+t),void console.log(e);for(var r=+n[1],a=e.split("\n"),i=a.length.toString().length+2,o=a.map((function(e,t){return Lv((t+1).toString(),i)+e})),s=0,u=0;u<o.length;u++)s=Math.max(o[u].length,s);var l=o.slice(0,r-1),c=o.slice(r-1,r),p=o.slice(r);console.log(l.join("\n")),console.log(t.split("\n")[0]),console.log("%c "+Lv(c[0],s),"border:1px solid red; background-color:#e3d2d2; color:#a61717"),console.log(p.join("\n"))}(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var MB,LB,zB=/ERROR: [0-9]+:([0-9]+):/g;function BB(e,t){if(DB(e,(function(){return e.validateProgram(t)})),!1===e.getProgramParameter(t,e.VALIDATE_STATUS))throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function PB(e,t,n,r,a,i,o){var s=e.getAttribLocation(t,n);return-1!==s&&(DB(e,(function(){return e.bindBuffer(e.ARRAY_BUFFER,r)})),DB(e,(function(){return e.vertexAttribPointer(s,a,e.FLOAT,!1,i,o)})),DB(e,(function(){return e.enableVertexAttribArray(s)})),!0)}function WB(e,t,n,r){DB(e,(function(){return function(e,t,n){HB(e,n
17),DB(e,(function(){return e.activeTexture(e.TEXTURE0+n)})),DB(e,(function(){return e.bindTexture(e.TEXTURE_2D,t)}))}(e,t,r)})),DB(e,(function(){return e.uniform1i(n,r)}))}function VB(e,t,n){DB(e,(function(){return e.bindFramebuffer(e.FRAMEBUFFER,n)})),DB(e,(function(){return e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0)}))}function UB(e,t){DB(e,(function(){return e.bindFramebuffer(e.FRAMEBUFFER,t)})),DB(e,(function(){return e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0)}))}function GB(e){var t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+function(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return"unknown error "+t}}(e,t))}function jB(e,t,n){var r=DB(e,(function(){return t()}));if(null==r)throw new Error(n);return r}function HB(e,t){var n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,r=t+e.TEXTURE0;if(r<e.TEXTURE0||r>n)throw new Error("textureUnit must be in "+("[gl.TEXTURE0, gl.TEXTURE"+n+"]")+".")}function qB(e,t){return void 0===t&&(t=2),_v(e.slice(0,e.length-t))}function KB(e){if(0===e.length)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function XB(e){var t=[1,1,1];return 0===e.length||1===e.length&&1===e[0]||(t=[qB(e)].concat(KB(e))),t}function YB(e){return e%2==0}function JB(e,t){if(Fv(e=e.slice(-2),t=t.slice(-2)))return!0;if(!e.length||!t.length)return!0;if(0===e[0]||0===e[1]||0===t[0]||0===t[1])return!0;if(e.length!==t.length){var n=e.slice(-1)[0],r=t.slice(-1)[0];if(n===r)return!0;if(YB(n)&&YB(r)&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&YB(e[0])&&YB(t[0])}function ZB(e,t){return null!=e.getExtension(t)}function QB(e){try{if(null!=CB(e))return!0}catch(e){return console.log("Error when getting WebGL context: ",e),!1}return!1}function $B(e){if(0===e)return!1;var t=CB(e);if(1!==e){if(ZB(t,"EXT_color_buffer_float"))return eP(t);if(ZB(t,"EXT_color_buffer_half_float")){var n=t.getExtension("EXT_color_buffer_half_float");return function(e,t){var n=TB(e,t),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r);e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,1,1,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);var a=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,a),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);var i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(a),i}(t,n)}return!1}return!!ZB(t,"OES_texture_float")&&(!!ZB(t,"WEBGL_color_buffer_float")&&eP(t))}function eP(e){var t=TB(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);var r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);var a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(r),a}function tP(e,t){Array.isArray(e)||(e=[e]),e.forEach((function(e){null!=e&&Ev("complex64"!==e.dtype,(function(){return t+" does not support complex64 tensors in the WebGL backend."}))}))}var nP=uv();nP.registerFlag("HAS_WEBGL",(function(){return nP.getNumber("WEBGL_VERSION")>0})),nP.registerFlag("WEBGL_VERSION",(function(){return QB(2)?2:QB(1)?1:0})),nP.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",(function(){return!1})),nP.registerFlag("WEBGL_BUFFER_SUPPORTED",(function(){return 2===nP.get("WEBGL_VERSION")})),nP.registerFlag("WEBGL_CPU_FORWARD",(function(){return!0})),nP.registerFlag("WEBGL_FORCE_F16_TEXTURES",(function(){return!1})),nP.registerFlag("WEBGL_PACK",(function(){return nP.getBool("HAS_WEBGL")})),nP.registerFlag("WEBGL_PACK_NORMALIZATION",(function(){return nP.getBool("WEBGL_PACK")})),nP.registerFlag("WEBGL_PACK_CLIP",(function(){return nP.getBool("WEBGL_PACK")})),nP.registerFlag("WEBGL_PACK_DEPTHWISECONV",(function(){return!1})),nP.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",(function(){return nP.getBool("WEBGL_PACK")})),nP.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",(function(){return nP.getBool("WEBGL_PACK")})),nP.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",(function(){return nP.getBool("WEBGL_PACK")})),nP.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",(function(){return nP.getBool("WEBGL_PACK")})),nP.registerFlag("WEBGL_PACK_REDUCE",(function(){return nP.getBool("WEBGL_PACK")})),nP.registerFlag("WEBGL_LAZILY_UNPACK",(function(){return nP.getBool("WEBGL_PACK")})),nP.registerFlag("WEBGL_CONV_IM2COL",(function(){return nP.getBool("WEBGL_PACK")})),nP.registerFlag("WEBGL_MAX_TEXTURE_SIZE",(function(){return function(e){if(null==MB){var t=CB(e);MB=t.getParameter(t.MAX_TEXTURE_SIZE)}return MB}(nP.getNumber("WEBGL_VERSION"))})),nP.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",(function(){return function(e){if(null==LB){var t=CB(e);LB=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,LB)}(nP.getNumber("WEBGL_VERSION"))})),nP.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",(function(){var e=nP.getNumber("WEBGL_VERSION");return 0===e?0:function(e){if(0===e)return 0;var t=CB(e);return ZB(t,"EXT_disjoint_timer_query_webgl2")&&2===e?2:ZB(t,"EXT_disjoint_timer_query")?1:0}(e)})),nP.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",(function(){return nP.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Hg()})),nP.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",(function(){return function(e){if(0===e)return!1;var t=CB(e);if(1===e){if(!ZB(t,"OES_texture_float"))return!1}else if(!ZB(t,"EXT_color_buffer_float"))return!1;return eP(t)}(nP.getNumber("WEBGL_VERSION"))})),nP.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",(function(){return!nP.getBool("WEBGL_FORCE_F16_TEXTURES")&&nP.getBool("WEBGL_RENDER_FLOAT32_CAPABLE")})),nP.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",(function(){return $B(nP.getNumber("WEBGL_VERSION"))})),nP.registerFlag("WEBGL_FENCE_API_ENABLED",(function(){return 2===(e=nP.getNumber("WEBGL_VERSION"))&&null!=CB(e).fenceSync;var e})),nP.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",(function(){return nP.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0}
17)),nP.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",(function(){return-1}),(function(e){if(e<0&&-1!==e)throw new Error("WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got "+e+".")}));var rP=fL,aP=CL,iP=FL,oP=ML,sP=zL,uP=PL,lP=VL,cP=GL,pP=jL,hP=KL,fP=YL,dP=QL,mP=tz,vP=nz,gP=function(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((function(e,t){return"T"+t}));var n=[];this.variableNames.forEach((function(e){n.push("float v"+e+" = get"+e+"AtOutCoords();")}));var r=this.variableNames.map((function(e){return"v"+e})).join(" + ");this.userCode="\n      void main() {\n        "+n.join("\n        ")+"\n\n        float result = "+r+";\n        setOutput(result);\n      }\n    "},yP=function(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((function(e,t){return"T"+t}));var n=[];this.variableNames.forEach((function(e){n.push("vec4 v"+e+" = get"+e+"AtOutCoords();")}));var r=this.variableNames.map((function(e){return"v"+e})).join(" + ");this.userCode="\n      void main() {\n        "+n.join("\n        ")+"\n\n        vec4 result = "+r+";\n        setOutput(result);\n      }\n    "},bP=function(e,t,n){this.variableNames=["A"];var r=e.windowSize,a=e.batchSize,i=e.outSize;n||this.variableNames.push("bestIndicesA"),this.outputShape=[a,i];var o="max"===t?">":"<",s=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode="\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int batch = coords[0];\n        int outIdx = coords[1];\n        int inOffset = outIdx * "+r+";\n\n        int bestIndex = inOffset;\n        float bestValue = getA(batch, bestIndex);\n\n        for (int i = 0; i < "+r+"; i++) {\n          int inIdx = "+s+";\n          float candidate = getA(batch, inIdx);\n          if (candidate "+o+" bestValue) {\n            bestValue = candidate;\n            bestIndex = inIdx;\n          }\n        }\n        setOutput(float(bestIndex));\n      }\n    "};function xP(e,t){return["x","y","z","w","u","v"].slice(0,t).map((function(t){return e+"."+t}))}function wP(e,t){return 1===t?[e]:xP(e,t)}function kP(){var e,t,n,r,a,i,o,s,u,l;return 2===uv().getNumber("WEBGL_VERSION")?(e="#version 300 es",t="in",n="out",r="in",a="texture",i="outputColor",o="out vec4 outputColor;",s="\n      bool isnan_custom(float val) {\n        return (val > 0.0 || val < 0.0) ? false : val != 0.0;\n      }\n\n      bvec4 isnan_custom(vec4 val) {\n        return bvec4(isnan_custom(val.x),\n          isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n      }\n\n      #define isnan(value) isnan_custom(value)\n    ",u="",l="\n      #define round(value) newRound(value)\n      int newRound(float value) {\n        return int(floor(value + 0.5));\n      }\n\n      ivec4 newRound(vec4 value) {\n        return ivec4(floor(value + vec4(0.5)));\n      }\n    "):(e="",t="attribute",n="varying",r="varying",a="texture2D",i="gl_FragColor",o="",s="\n      #define isnan(value) isnan_custom(value)\n      bool isnan_custom(float val) {\n        return (val > 0. || val < 1. || val == 0.) ? false : true;\n      }\n      bvec4 isnan_custom(vec4 val) {\n        return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n      }\n    ",u="\n      uniform float INFINITY;\n\n      bool isinf(float val) {\n        return abs(val) == INFINITY;\n      }\n      bvec4 isinf(vec4 val) {\n        return equal(abs(val), vec4(INFINITY));\n      }\n    ",l="\n      int round(float value) {\n        return int(floor(value + 0.5));\n      }\n\n      ivec4 round(vec4 value) {\n        return ivec4(floor(value + vec4(0.5)));\n      }\n    "),{version:e,attribute:t,varyingVs:n,varyingFs:r,texture2D:a,output:i,defineOutput:o,defineSpecialNaN:s,defineSpecialInf:u,defineRound:l}}function SP(e,t,n){void 0===n&&(n="index");var r=tg(t);return r.map((function(t,a){return"int "+e[a]+" = "+n+" / "+t+"; "+(a===r.length-1?"int "+e[a+1]+" = "+n+" - "+e[a]+" * "+t:"index -= "+e[a]+" * "+t)+";"})).join("")}function NP(e){var t=tg(e).map((function(e){return e.toString()}));return"\n  int getFlatIndex(ivec3 coords) {\n    return coords.x * "+t[0]+" + coords.y * "+t[1]+" + coords.z;\n  }\n"}var IP="\n  const float FLOAT_MAX = 1.70141184e38;\n  const float FLOAT_MIN = 1.17549435e-38;\n\n  lowp vec4 encode_float(highp float v) {\n    if (isnan(v)) {\n      return vec4(255, 255, 255, 255);\n    }\n\n    highp float av = abs(v);\n\n    if(av < FLOAT_MIN) {\n      return vec4(0.0, 0.0, 0.0, 0.0);\n    } else if(v > FLOAT_MAX) {\n      return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n    } else if(v < -FLOAT_MAX) {\n      return vec4(0.0, 0.0,  128.0, 255.0) / 255.0;\n    }\n\n    highp vec4 c = vec4(0,0,0,0);\n\n    highp float e = floor(log2(av));\n    highp float m = exp2(fract(log2(av))) - 1.0;\n\n    c[2] = floor(128.0 * m);\n    m -= c[2] / 128.0;\n    c[1] = floor(32768.0 * m);\n    m -= c[1] / 32768.0;\n    c[0] = floor(8388608.0 * m);\n\n    highp float ebias = e + 127.0;\n    c[3] = floor(ebias / 2.0);\n    ebias -= c[3] * 2.0;\n    c[2] += floor(ebias) * 128.0;\n\n    c[3] += 128.0 * step(0.0, -v);\n\n    return c / 255.0;\n  }\n",CP=Fw;function RP(e,t,n,r){var a=[];e.forEach((function(e){var t=_v(e.shapeInfo.logicalShape);e.shapeInfo.isUniform?a.push("uniform float "+e.name+(t>1?"["+t+"]":"")+";"):(a.push("uniform sampler2D "+e.name+";"),a.push("uniform int offset"+e.name+";"))}));var i,o,s=a.join("\n"),u=e.map((function(e){return function(e,t,n){void 0===n&&(n=!1);var r="";r+=n?AP(e):EP(e);var a=e.shapeInfo.logicalShape,i=t.logicalShape;a.length<=i.length&&(r+=n?function(e,t){var n,r=e.name,a=r.charAt(0).toUpperCase()+r.slice(1),i="get"+a+"AtOutCoords",o=e.shapeInfo.logicalShape.length,s=t.logicalShape.length,u=CP(e.shapeInfo.logicalShape,t.logicalShape),l=LP(s),c=s-o,p=["x","y","z","w","u","v"];n=0===o?"":s<2&&u.length>=1?"coords = 0;":u.map((function(e){return"coords."+p[e+c]+" = 0;"})).join("\n");var h="";h=s<2&&o>0?"coords":e.shapeInfo.logicalShape.map((function(e,t){return"coords."+p[t+c]})).join(", ");var f="return outputValue;",d=1===_v(e.shapeInfo.logicalShape),m=1===_v(t.logicalShape);if(1!==o||d||m){if(d&&!m)f=1===s?"\n        return vec4(outputValue.x, outputValue.x, 0., 0.);\n      ":"\n        return vec4(outputValue.x);\n      ";else if(u.length){var v=o-2,g=o-1;u.indexOf(v)>-1&&u.indexOf(g)>-1?f="return vec4(outputValue.x);":u.indexOf(v)>-1?f="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":u.indexOf(g)>-1&&(f="return vec4(outputValue.xx, outputValue.zz);")}}else f="\n      return vec4(outputValue.xy, outputValue.xy);\n    ";return"\n    vec4 "+i+"() {\n      "+l+" coords = getOutputCoords();
17\n      "+n+"\n      vec4 outputValue = get"+a+"("+h+");\n      "+f+"\n    }\n  "}(e,t):function(e,t){var n=e.name,r=n.charAt(0).toUpperCase()+n.slice(1),a="get"+r+"AtOutCoords",i=t.texShape,o=e.shapeInfo.texShape,s=e.shapeInfo.logicalShape.length,u=t.logicalShape.length;if(!e.shapeInfo.isUniform&&s===u&&null==e.shapeInfo.flatOffset&&Fv(o,i))return"\n      float "+a+"() {\n        return sampleTexture("+n+", resultUV);\n      }\n    ";var l,c=LP(u),p=CP(e.shapeInfo.logicalShape,t.logicalShape),h=u-s,f=["x","y","z","w","u","v"];l=0===s?"":u<2&&p.length>=1?"coords = 0;":p.map((function(e){return"coords."+f[e+h]+" = 0;"})).join("\n");var d="";d=u<2&&s>0?"coords":e.shapeInfo.logicalShape.map((function(e,t){return"coords."+f[t+h]})).join(", ");return"\n    float "+a+"() {\n      "+c+" coords = getOutputCoords();\n      "+l+"\n      return get"+r+"("+d+");\n    }\n  "}(e,t));return r}(e,t,r)})).join("\n"),l=t.texShape,c=kP(),p=function(e){return"\n    float sampleTexture(sampler2D textureSampler, vec2 uv) {\n      return "+e.texture2D+"(textureSampler, uv).r;\n    }\n  "}(c),h=function(e){return e.version+"\n    precision highp float;\n    precision highp int;\n    precision highp sampler2D;\n    "+e.varyingFs+" vec2 resultUV;\n    "+e.defineOutput+"\n    const vec2 halfCR = vec2(0.5, 0.5);\n\n    struct ivec5\n    {\n      int x;\n      int y;\n      int z;\n      int w;\n      int u;\n    };\n\n    struct ivec6\n    {\n      int x;\n      int y;\n      int z;\n      int w;\n      int u;\n      int v;\n    };\n\n    uniform float NAN;\n    "+e.defineSpecialNaN+"\n    "+e.defineSpecialInf+"\n    "+e.defineRound+"\n\n    int imod(int x, int y) {\n      return x - y * (x / y);\n    }\n\n    int idiv(int a, int b, float sign) {\n      int res = a / b;\n      int mod = imod(a, b);\n      if (sign < 0. && mod != 0) {\n        res -= 1;\n      }\n      return res;\n    }\n\n    //Based on the work of Dave Hoskins\n    //https://www.shadertoy.com/view/4djSRW\n    #define HASHSCALE1 443.8975\n    float random(float seed){\n      vec2 p = resultUV * seed;\n      vec3 p3  = fract(vec3(p.xyx) * HASHSCALE1);\n      p3 += dot(p3, p3.yzx + 19.19);\n      return fract((p3.x + p3.y) * p3.z);\n    }\n\n    "+TP+"\n    "+DP+"\n    "+_P+"\n  "}(c);return t.isPacked?(i=function(e,t){switch(e.length){case 0:return"\n    int getOutputCoords() {\n      return 0;\n    }\n  ";case 1:return function(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(1===n[0])return"\n      int getOutputCoords() {\n        return 2 * int(resultUV.x * "+n[1]+".0);\n      }\n    ";if(1===n[1])return"\n      int getOutputCoords() {\n        return 2 * int(resultUV.y * "+n[0]+".0);\n      }\n    ";return"\n    int getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2("+n[0]+", "+n[1]+"));\n      return 2 * (resTexRC.x * "+n[1]+" + resTexRC.y);\n    }\n  "}(0,t);case 2:return function(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(Fv(e,t))return"\n      ivec2 getOutputCoords() {\n        return 2 * ivec2(resultUV.yx * vec2("+n[0]+", "+n[1]+"));\n      }\n    ";var r=Math.ceil(e[1]/2);return"\n    ivec2 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2("+n[0]+", "+n[1]+"));\n\n      int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n      int r = 2 * (index / "+r+");\n      int c = imod(index, "+r+") * 2;\n\n      return ivec2(r, c);\n    }\n  "}(e,t);case 3:return n=e,r=t,a=[Math.ceil(r[0]/2),Math.ceil(r[1]/2)],i=Math.ceil(n[2]/2),o=i*Math.ceil(n[1]/2),"\n    ivec3 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2("+a[0]+", "+a[1]+"));\n      int index = resTexRC.x * "+a[1]+" + resTexRC.y;\n\n      int b = index / "+o+";\n      index -= b * "+o+";\n\n      int r = 2 * (index / "+i+");\n      int c = imod(index, "+i+") * 2;\n\n      return ivec3(b, r, c);\n    }\n  ";default:return function(e,t){for(var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[e.length-1]/2),a=r*Math.ceil(e[e.length-2]/2),i=a,o="",s="b, r, c",u=2;u<e.length-1;u++)i*=e[e.length-u-1],o="\n      int b"+u+" = index / "+i+";\n      index -= b"+u+" * "+i+";\n    "+o,s="b"+u+", "+s;return"\n    ivec"+e.length+" getOutputCoords() {\n      ivec2 resTexRC = ive
17c2(resultUV.yx *\n                             vec2("+n[0]+", "+n[1]+"));\n      int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n\n      "+o+"\n\n      int b = index / "+a+";\n      index -= b * "+a+";\n\n      int r = 2 * (index / "+r+");\n      int c = imod(index, "+r+") * 2;\n\n      return ivec"+e.length+"("+s+");\n    }\n  "}(e,t)}var n,r,a,i,o}(t.logicalShape,l),o=function(e){return"\n    void setOutput(vec4 val) {\n      "+e.output+" = val;\n    }\n  "}(c)):(i=function(e,t){switch(e.length){case 0:return"\n    int getOutputCoords() {\n      return 0;\n    }\n  ";case 1:return function(e,t){if(1===t[0])return"\n      int getOutputCoords() {\n        return int(resultUV.x * "+t[1]+".0);\n      }\n    ";if(1===t[1])return"\n      int getOutputCoords() {\n        return int(resultUV.y * "+t[0]+".0);\n      }\n    ";return"\n    int getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2("+t[0]+", "+t[1]+"));\n      return resTexRC.x * "+t[1]+" + resTexRC.y;\n    }\n  "}(0,t);case 2:return function(e,t){if(Fv(e,t))return"\n      ivec2 getOutputCoords() {\n        return ivec2(resultUV.yx * vec2("+t[0]+", "+t[1]+"));\n      }\n    ";if(1===e[1])return"\n      ivec2 getOutputCoords() {\n        ivec2 resTexRC = ivec2(resultUV.yx *\n                               vec2("+t[0]+", "+t[1]+"));\n        int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n        return ivec2(index, 0);\n      }\n    ";if(1===e[0])return"\n      ivec2 getOutputCoords() {\n        ivec2 resTexRC = ivec2(resultUV.yx *\n                               vec2("+t[0]+", "+t[1]+"));\n        int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n        return ivec2(0, index);\n      }\n    ";return"\n    ivec2 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2("+t[0]+", "+t[1]+"));\n      int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n      int r = index / "+e[1]+";\n      int c = index - r * "+e[1]+";\n      return ivec2(r, c);\n    }\n  "}(e,t);case 3:return n=t,r=SP(["r","c","d"],e),"\n    ivec3 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2("+n[0]+", "+n[1]+"));\n      int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n      "+r+"\n      return ivec3(r, c, d);\n    }\n  ";case 4:return function(e,t){var n=SP(["r","c","d","d2"],e);return"\n    ivec4 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n        vec2("+t[0]+", "+t[1]+"));\n      int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n      "+n+"\n      return ivec4(r, c, d, d2);\n    }\n  "}(e,t);case 5:return function(e,t){var n=SP(["r","c","d","d2","d3"],e);return"\n    ivec5 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx * vec2("+t[0]+",\n                             "+t[1]+"));\n\n      int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n\n      "+n+"\n\n      ivec5 outShape = ivec5(r, c, d, d2, d3);\n      return outShape;\n    }\n  "}(e,t);case 6:return function(e,t){var n=SP(["r","c","d","d2","d3","d4"],e);return"\n    ivec6 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n        vec2("+t[0]+", "+t[1]+"));\n      int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n\n      "+n+"\n\n      ivec6 result = ivec6(r, c, d, d2, d3, d4);\n      return result;\n    }\n  "}(e,t);default:throw new Error(e.length+"-D output sampling is not yet supported")}var n,r}(t.logicalShape,l),o=function(e){return"\n    void setOutput(float val) {\n      "+e.output+" = vec4(val, 0, 0, 0);\n    }\n  "}(c)),r&&(h+=FP),[h,p,o,s,i,u,n].join("\n")}function EP(e){var t=e.shapeInfo.logicalShape;switch(t.length){case 0:return function(e){var t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1);if(e.shapeInfo.isUniform)return"float "+n+"() {return "+t+";}";var r=e.shapeInfo.texShape,a=r[0],i=r[1];if(1===a&&1===i)return"\n      float "+n+"() {\n        return sampleTexture("+t+", halfCR);\n      }\n    ";var o=e.shapeInfo.texShape,s=o[0],u=o[1],l=OP(t);return"\n    float "+n+"() {\n      vec2 uv = uvFromFlat("+s+", "+u+", "+l+");\n      return sampleTexture("+t+", uv);\n    }\n  "}(e);case 1:return function(e){var t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1);if(e.shapeInfo.isUniform)return"\n      float "+n+"(int index) {\n        "+MP(e)+"\n      }\n    ";var r=e.shapeInfo.texShape,a=r[0],i=r[1];if(1===i&&1===a)return"\n      float "+n+"(int index) {\n        return sampleTexture("+t+", halfCR
17);\n      }\n    ";var o=OP(t);if(1===i)return"\n      float "+n+"(int index) {\n        vec2 uv = vec2(0.5, (float(index + "+o+") + 0.5) / "+a+".0);\n        return sampleTexture("+t+", uv);\n      }\n    ";if(1===a)return"\n      float "+n+"(int index) {\n        vec2 uv = vec2((float(index + "+o+") + 0.5) / "+i+".0, 0.5);\n        return sampleTexture("+t+", uv);\n      }\n    ";return"\n    float "+n+"(int index) {\n      vec2 uv = uvFromFlat("+a+", "+i+", index + "+o+");\n      return sampleTexture("+t+", uv);\n    }\n  "}(e);case 2:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),a=e.shapeInfo.texShape;if(null!=a&&Fv(t,a)){var i=a[0],o=a[1];return"\n    float "+r+"(int row, int col) {\n      vec2 uv = (vec2(col, row) + halfCR) / vec2("+o+".0, "+i+".0);\n      return sampleTexture("+n+", uv);\n    }\n  "}var s=Wv(t),u=s.newShape,l=s.keptDims,c=u;if(c.length<t.length){var p=zP(e,c);return"\n      "+EP(p)+"\n      float "+r+"(int row, int col) {\n        return "+r+"("+BP(["row","col"],l)+");\n      }\n    "}if(e.shapeInfo.isUniform)return"\n      float "+r+"(int row, int col) {\n        int index = round(dot(vec2(row, col), vec2("+t[1]+", 1)));\n        "+MP(e)+"\n      }\n    ";var h=a[0],f=a[1],d=OP(n);if(1===f)return"\n    float "+r+"(int row, int col) {\n      float index = dot(vec3(row, col, "+d+"), vec3("+t[1]+", 1, 1));\n      vec2 uv = vec2(0.5, (index + 0.5) / "+h+".0);\n      return sampleTexture("+n+", uv);\n    }\n  ";if(1===h)return"\n    float "+r+"(int row, int col) {\n      float index = dot(vec3(row, col, "+d+"), vec3("+t[1]+", 1, 1));\n      vec2 uv = vec2((index + 0.5) / "+f+".0, 0.5);\n      return sampleTexture("+n+", uv);\n    }\n  ";return"\n  float "+r+"(int row, int col) {\n    // Explicitly use integer operations as dot() only works on floats.\n    int index = row * "+t[1]+" + col + "+d+";\n    vec2 uv = uvFromFlat("+h+", "+f+", index);\n    return sampleTexture("+n+", uv);\n  }\n"}(e);case 3:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),a=t[1]*t[2],i=t[2],o=Wv(t),s=o.newShape,u=o.keptDims,l=s;if(l.length<t.length){var c=zP(e,l);return"\n        "+EP(c)+"\n        float "+r+"(int row, int col, int depth) {\n          return "+r+"("+BP(["row","col","depth"],u)+");\n        }\n      "}if(e.shapeInfo.isUniform)return"\n      float "+r+"(int row, int col, int depth) {\n        int index = round(dot(vec3(row, col, depth),\n                          vec3("+a+", "+i+", 1)));\n        "+MP(e)+"\n      }\n    ";var p=e.shapeInfo.texShape,h=p[0],f=p[1],d=e.shapeInfo.flatOffset;if(f===a&&null==d)return"\n        float "+r+"(int row, int col, int depth) {\n          float texR = float(row);\n          float texC = dot(vec2(col, depth), vec2("+i+", 1));\n          vec2 uv = (vec2(texC, texR) + halfCR) /\n                     vec2("+f+".0, "+h+".0);\n          return sampleTexture("+n+", uv);\n        }\n      ";if(f===i&&null==d)return"\n    float "+r+"(int row, int col, int depth) {\n      float texR = dot(vec2(row, col), vec2("+t[1]+", 1));\n      float texC = float(depth);\n      vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+f+".0, "+h+".0);\n      return sampleTexture("+n+", uv);\n    }\n  ";var m=OP(n);return"\n      float "+r+"(int row, int col, int depth) {\n        // Explicitly use integer operations as dot() only works on floats.\n        int index = row * "+a+" + col * "+i+" + depth + "+m+";\n        vec2 uv = uvFromFlat("+h+", "+f+", index);\n        return sampleTexture("+n+", uv);\n      }\n  "}(e);case 4:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),a=t[3],i=t[2]*a,o=t[1]*i,s=Wv(t),u=s.newShape,l=s.keptDims;if(u.length<t.length){var c=zP(e,u);return"\n      "+EP(c)+"\n      float "+r+"(int row, int col, int depth, int depth2) {\n        return "+r+"("+BP(["row","col","depth","depth2"],l)+");\n      }\n    "}if(e.shapeInfo.isUniform)return"\n      float "+r+"(int row, int col, int depth, int depth2) {\n        int index = round(dot(vec4(row, col, depth, depth2),\n                          vec4("+o+", "+i+", "+a+", 1)));\n        "+MP(e)+"\n      }\n    ";var p=e.shapeInfo.flatOffset,h=e.shapeInfo.texShape,f=h[0],d=h[1];if(d===o&&null==p)return"\n      float "+r+"(int row, int col, int depth, int depth2) {\n        float texR = float(row);\n        float texC =\n            dot(vec3(col, depth, depth2),\n                vec3("+i+", "+a+", 1));\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                   vec2("+d+".0, "+f+".0);\n        return sampleTexture("+n+", uv);\n      }\n    ";if(d===a&&null==p)return"\n      float "+r+"(int row, int col, int depth, int depth2) {\n        float texR = dot
17(vec3(row, col, depth),\n                         vec3("+t[1]*t[2]+", "+t[2]+", 1));\n        float texC = float(depth2);\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                  vec2("+d+".0, "+f+".0);\n        return sampleTexture("+n+", uv);\n      }\n    ";var m=OP(n);return"\n    float "+r+"(int row, int col, int depth, int depth2) {\n      // Explicitly use integer operations as dot() only works on floats.\n      int index = row * "+o+" + col * "+i+" +\n          depth * "+a+" + depth2;\n      vec2 uv = uvFromFlat("+f+", "+d+", index + "+m+");\n      return sampleTexture("+n+", uv);\n    }\n  "}(e);case 5:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),a=t[4],i=t[3]*a,o=t[2]*i,s=t[1]*o,u=Wv(t),l=u.newShape,c=u.keptDims;if(l.length<t.length){var p=zP(e,l);return"\n      "+EP(p)+"\n      float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n        return "+r+"("+BP(["row","col","depth","depth2","depth3"],c)+");\n      }\n    "}if(e.shapeInfo.isUniform)return"\n      float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n        float index = dot(\n          vec4(row, col, depth, depth2),\n          vec4("+s+", "+o+", "+i+", "+a+")) +\n          depth3;\n        "+MP(e)+"\n      }\n    ";var h=e.shapeInfo.flatOffset,f=e.shapeInfo.texShape,d=f[0],m=f[1];if(m===s&&null==h)return"\n      float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n        int texR = row;\n        float texC = dot(vec4(col, depth, depth2, depth3),\n                         vec4("+o+", "+i+", "+a+", 1));\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                   vec2("+m+".0, "+d+".0);\n        return sampleTexture("+n+", uv);\n      }\n    ";if(m===a&&null==h)return"\n      float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n        float texR = dot(\n          vec4(row, col, depth, depth2),\n          vec4("+t[1]*t[2]*t[3]+",\n               "+t[2]*t[3]+", "+t[3]+", 1));\n        int texC = depth3;\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                  vec2("+m+".0, "+d+".0);\n        return sampleTexture("+n+", uv);\n      }\n    ";var v=OP(n);return"\n    float "+r+"(int row, int col, int depth, int depth2, int depth3) {\n      // Explicitly use integer operations as dot() only works on floats.\n      int index = row * "+s+" + col * "+o+" + depth * "+i+" +\n          depth2 * "+a+" + depth3 + "+v+";\n      vec2 uv = uvFromFlat("+d+", "+m+", index);\n      return sampleTexture("+n+", uv);\n    }\n  "}(e);case 6:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),a=Wv(t),i=a.newShape,o=a.keptDims;if(i.length<t.length){var s=zP(e,i);return"\n      "+EP(s)+"\n      float "+r+"(int row, int col, int depth,\n                    int depth2, int depth3, int depth4) {\n        return "+r+"("+BP(["row","col","depth","depth2","depth3","depth4"],o)+");\n      }\n    "}var u=t[5],l=t[4]*u,c=t[3]*l,p=t[2]*c,h=t[1]*p;if(e.shapeInfo.isUniform)return"\n      float "+r+"(int row, int col, int depth,\n                  int depth2, int depth3, int depth4) {\n        int index = round(dot(\n          vec4(row, col, depth, depth2),\n          vec4("+h+", "+p+", "+c+", "+l+")) +\n          dot(\n            vec2(depth3, depth4),\n            vec2("+u+", 1)));\n        "+MP(e)+"\n      }\n    ";var f=e.shapeInfo.flatOffset,d=e.shapeInfo.texShape,m=d[0],v=d[1];if(v===h&&null==f)return"\n      float "+r+"(int row, int col, int depth,\n                    int depth2, int depth3, int depth4) {\n        int texR = row;\n        float texC = dot(vec4(col, depth, depth2, depth3),\n          vec4("+p+", "+c+", "+l+", "+u+")) +\n               float(depth4);\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                   vec2("+v+".0, "+m+".0);\n        return sampleTexture("+n+", uv);\n      }\n    ";if(v===u&&null==f)return"\n      float "+r+"(int row, int col, int depth,\n                    int depth2, int depth3, int depth4) {\n        float texR = dot(vec4(row, col, depth, depth2),\n          vec4("+t[1]*t[2]*t[3]*t[4]+",\n               "+t[2]*t[3]*t[4]+",\n               "+t[3]*t[4]+",\n               "+t[4]+")) + float(depth3);\n        int texC = depth4;\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                  vec2("+v+".0, "+m+".0);\n        return sampleTexture("+n+", uv);\n      }\n    ";var g=OP(n);return"\n    float "+r+"(int row, int col, int depth,\n                  int depth2, int depth3, int depth4) {\n      // Explicitly use integer operations as dot() only w
17orks on floats.\n      int index = row * "+h+" + col * "+p+" + depth * "+c+" +\n          depth2 * "+l+" + depth3 * "+u+" + depth4 + "+g+";\n      vec2 uv = uvFromFlat("+m+", "+v+", index);\n      return sampleTexture("+n+", uv);\n    }\n  "}(e);default:throw new Error(t.length+"-D input sampling is not yet supported")}}function AP(e){var t,n,r;switch(e.shapeInfo.logicalShape.length){case 0:return t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),r=kP(),"\n    vec4 "+n+"() {\n      return "+r.texture2D+"("+t+", halfCR);\n    }\n  ";case 1:return function(e){var t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),r=e.shapeInfo.texShape,a=[Math.ceil(r[0]/2),Math.ceil(r[1]/2)],i=kP();return"\n    vec4 "+n+"(int index) {\n      vec2 uv = packedUVfrom1D(\n        "+a[0]+", "+a[1]+", index);\n      return "+i.texture2D+"("+t+", uv);\n    }\n  "}(e);case 2:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),a=e.shapeInfo.texShape,i=a[0],o=a[1],s=kP();if(null!=a&&Fv(t,a))return"\n      vec4 "+r+"(int row, int col) {\n        vec2 uv = (vec2(col, row) + halfCR) / vec2("+o+".0, "+i+".0);\n\n        return "+s.texture2D+"("+n+", uv);\n      }\n    ";var u=[Math.ceil(a[0]/2),Math.ceil(a[1]/2)],l=Math.ceil(t[1]/2);return"\n    vec4 "+r+"(int row, int col) {\n      vec2 uv = packedUVfrom2D("+l+", "+u[0]+", "+u[1]+", row, col);\n      return "+s.texture2D+"("+n+", uv);\n    }\n  "}(e);case 3:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),a=e.shapeInfo.texShape,i=[Math.ceil(a[0]/2),Math.ceil(a[1]/2)];if(1===t[0]){var o=t.slice(1),s=zP(e,o);return"\n        "+AP(s)+"\n        vec4 "+r+"(int b, int row, int col) {\n          return "+r+"("+BP(["b","row","col"],[1,2])+");\n        }\n      "}var u=i[0],l=i[1],c=Math.ceil(t[2]/2),p=c*Math.ceil(t[1]/2),h=kP();return"\n    vec4 "+r+"(int b, int row, int col) {\n      vec2 uv = packedUVfrom3D(\n        "+u+", "+l+", "+p+", "+c+", b, row, col);\n      return "+h.texture2D+"("+n+", uv);\n    }\n  "}(e);default:return function(e){for(var t=e.shapeInfo.logicalShape,n=t.length,r=e.name,a="get"+r.charAt(0).toUpperCase()+r.slice(1),i=e.shapeInfo.texShape,o=[Math.ceil(i[0]/2),Math.ceil(i[1]/2)],s=o[0],u=o[1],l=Math.ceil(t[n-1]/2),c=l*Math.ceil(t[n-2]/2),p="int b, int row, int col",h="b * "+c+" + (row / 2) * "+l+" + (col / 2)",f=2;f<n-1;f++)p="int b"+f+", "+p,c*=t[n-f-1],h="b"+f+" * "+c+" + "+h;var d=kP();return"\n    vec4 "+a+"("+p+") {\n      int index = "+h+";\n      int texR = index / "+u+";\n      int texC = index - texR * "+u+";\n      vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+u+", "+s+");\n      return "+d.texture2D+"("+r+", uv);\n    }\n  "}(e)}}var TP="\nvec2 uvFromFlat(int texNumR, int texNumC, int index) {\n  int texR = index / texNumC;\n  int texC = index - texR * texNumC;\n  return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n  int texelIndex = index / 2;\n  int texR = texelIndex / texNumC;\n  int texC = texelIndex - texR * texNumC;\n  return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",DP="\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\n  int texNumC, int row, int col) {\n  int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n  int texR = texelIndex / texNumC;\n  int texC = texelIndex - texR * texNumC;\n  return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",_P="\nvec2 packedUVfrom3D(int texNumR, int texNumC,\n    int texelsInBatch, int texelsInLogicalRow, int b,\n    int row, int col) {\n  int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n  int texR = index / texNumC;\n  int texC = index - texR * texNumC;\n  return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",FP="\n  float getChannel(vec4 frag, vec2 innerDims) {\n    vec2 modCoord = mod(innerDims, 2.);\n    return modCoord.x == 0. ?\n      (modCoord.y == 0. ? frag.r : frag.g) :\n      (modCoord.y == 0. ? frag.b : frag.a);\n  }\n  float getChannel(vec4 frag, int dim) {\n    float modCoord = mod(float(dim), 2.);\n    return modCoord == 0. ? frag.r : frag.g;\n  }\n";function OP(e){return"offset"+e}function MP(e){var t=e.name,n=_v(e.shapeInfo.logicalShape);return n<2?"return "+t+";":"\n    for (int i = 0; i < "+n+";
17 i++) {\n      if (i == index) {\n        return "+t+"[i];\n      }\n    }\n  "}function LP(e){if(e<=1)return"int";if(2===e)return"ivec2";if(3===e)return"ivec3";if(4===e)return"ivec4";if(5===e)return"ivec5";if(6===e)return"ivec6";throw Error("GPU for rank "+e+" is not yet supported")}function zP(e,t){var n=JSON.parse(JSON.stringify(e));return n.shapeInfo.logicalShape=t,n}function BP(e,t){return t.map((function(t){return e[t]})).join(", ")}var PP=function(e,t,n,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,Ev(e.length>2,(function(){return"Packed arg"+(n.charAt(0).toUpperCase()+n.slice(1))+" supports only inputs with rank above 2."}));var a=e[e.length-1],i=Math.ceil(a/t);this.outputShape=e.slice(0,-1),i>1&&this.outputShape.push(i),r||this.variableNames.push("bestIndicesA");var o,s,u=this.outputShape,l=u.length,c=LP(l),p=wP("coords",l);if(1===i){var h=LP(s=l+1);o="\n        "+h+" sourceLocR = "+h+"("+p.join()+", 0);\n        ++"+p[l-1]+";\n        "+h+" sourceLocG = "+h+"("+p.join()+", 0);\n        ++"+p[l-2]+";\n        "+h+" sourceLocA = "+h+"("+p.join()+", 0);\n        --"+p[l-1]+";\n        "+h+" sourceLocB = "+h+"("+p.join()+", 0);\n        --"+p[l-2]+";"}else s=l,o="\n        "+c+" sourceLocR = coords;\n        ++"+p[l-1]+";\n        "+c+" sourceLocG = coords;\n        ++"+p[l-2]+";\n        "+c+" sourceLocA = coords;\n        --"+p[l-1]+";\n        "+c+" sourceLocB = coords;\n        --"+p[l-2]+";";var f=["x","y","z","w","u","v"].slice(0,s),d="."+f[s-1],m=f.map((function(e){return"int "+e})),v=wP("sourceLocR",s-1).concat("inIdx.r"),g=wP("sourceLocG",s-1).concat("inIdx.g"),y=wP("sourceLocB",s-1).concat("inIdx.b"),b=wP("sourceLocA",s-1).concat("inIdx.a"),x="max"===n?"greaterThan":"lessThan",w=r?"":"\n          inIdx = round(vec4(getBestIndicesAChannel("+v.join()+"),\n                             getBestIndicesAChannel("+g.join()+"),\n                             getBestIndicesAChannel("+y.join()+"),\n                             getBestIndicesAChannel("+b.join()+")));",k="vec4(\n            getAChannel("+v.join()+"),\n            hasNextCol ? getAChannel("+g.join()+") : 0.,\n            hasNextRow ? getAChannel("+y.join()+") : 0.,\n            hasNextRow && hasNextCol ? getAChannel("+b.join()+") : 0.)",S=r?"":"\n      float getBestIndicesAChannel("+m.join()+") {\n        return getChannel(getBestIndicesA("+f.join()+"),\n                                          vec2("+f.slice(-2).join()+"));\n      }";this.userCode="\n      float getAChannel("+m.join()+") {\n        return getChannel(getA("+f.join()+"),\n                               vec2("+f.slice(-2).join()+"));\n      }\n      "+S+"\n      void main() {\n        "+c+" coords = getOutputCoords();\n        bool hasNextCol = "+p[l-1]+" < "+(u[l-1]-1)+";\n        bool hasNextRow = "+p[l-2]+" < "+(u[l-2]-1)+";\n        "+o+"\n        ivec4 srcIdx = ivec4(sourceLocR"+d+", sourceLocG"+d+",\n          sourceLocB"+d+", sourceLocA"+d+") * "+t+";\n        ivec4 inIdx = srcIdx;\n        vec4 bestIndex = vec4(inIdx);\n        vec4 bestValue = "+k+";\n\n        for (int i = 0; i < "+t+"; i++) {\n          inIdx = srcIdx;\n          "+w+"\n          vec4 candidate = "+k+";\n          bvec4 nan = isnan(candidate);\n          bvec4 replace = bvec4(\n            vec4("+x+"(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n          bestValue = vec4(replace.x  ? candidate.x : bestValue.x,\n                           replace.y  ? candidate.y : bestValue.y,\n                           replace.z  ? candidate.z : bestValue.z,\n                           replace.w  ? candidate.w : bestValue.w);\n          bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n          srcIdx++;\n        }\n        setOutput(bestIndex);\n      }\n    "},WP=function(e){this.variableNames=["dy"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,i=e.dilationHeight,o=e.dilationWidth,s=e.effectiveFilterHeight,u=e.effectiveFilterWidth,l=s-1-e.padInfo.top,c=u-1-e.padInfo.left,p=1/(t*n);this.userCode="\n      const ivec2 pads = ivec2("+l+", "+c+");\n      const float avgMultiplier = float("+p+");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n\n        ivec2 dyRCCorner = coords.yz - pads;\n        int dyRCorner = dyRCCorner.x;\n        int dyCCorner = dyRCCorner.y;\n\n        // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        for (int wR = 0; wR < "+s+";\n            wR += "+i+") {\n          float dyR = float(dyRCorner + wR) / "+r+".0;\n\n          if (dyR < 0.0 || dyR >= "+e.outHeight+".0 || fract(dyR) > 0.0) {\n            continue;\n          }\n          int idyR = int(dyR);\n\n          for (int wC = 0; wC < "+u+";\n            wC+= "+o+") {\n            float dyC = float(dyCCorner + wC) / "+a+".0;\n\n            if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n                fract(dyC) > 0.0) {\n              continue;\n            }\n            int idyC = int(dyC);\n\n            float dyValue = getDy(b, idyR, idyC, d);\n\n            dotProd += dyValue * avgMultiplier;\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},VP=function(e){this.variableNames=["dy"],this.outputShape=e.inShape;var t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,a=e.strideDepth,i=e.strideHeight,o=e.strideWidth,s=e.dilationDepth,u=e.dilationHeight,l=e.dilationWidth,c=e.effectiveFilterDepth,p=e.effectiveFilterHeight,h=e.effectiveFilterWidth,f=c-1-e.padInfo.front,d=p-1-e.padInfo.top,m=h-1-e.padInfo.left,v=1/(t*n*r);this.userCode="\n      const ivec3 pads = ivec3("+f+", "+d+", "+m+");\n      const float avgMultiplier = float("+v+");\n\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int batch = coords.x;\n        int ch = coords.u;\n\n        ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n        int dyDCorner = dyCorner.x;\n        int dyRCorner = dyCorner.y;\n        int dyCCorner = dyCorner.z;\n\n        // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n        // dx(x
17D, xR, xC, ch).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n\n        for (int wD = 0; wD < "+c+";\n            wD += "+s+") {\n          float dyD = float(dyDCorner + wD) / "+a+".0;\n\n          if (dyD < 0.0 || dyD >= "+e.outDepth+".0 || fract(dyD) > 0.0) {\n            continue;\n          }\n          int idyD = int(dyD);\n\n          for (int wR = 0; wR < "+p+";\n              wR += "+u+") {\n            float dyR = float(dyRCorner + wR) / "+i+".0;\n\n            if (dyR < 0.0 || dyR >= "+e.outHeight+".0 ||\n                fract(dyR) > 0.0) {\n              continue;\n            }\n            int idyR = int(dyR);\n\n            for (int wC = 0; wC < "+h+";\n                wC += "+l+") {\n              float dyC = float(dyCCorner + wC) / "+o+".0;\n\n              if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n                  fract(dyC) > 0.0) {\n                continue;\n              }\n              int idyC = int(dyC);\n\n              float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n              dotProd += dyValue * avgMultiplier;\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},UP="return areal * breal - aimag * bimag;",GP="return areal * bimag + aimag * breal;",jP=function(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=Mw(t,n),this.userCode="\n      float binaryOpComplex(\n          float areal, float aimag, float breal, float bimag) {\n        "+e+"\n      }\n\n      void main() {\n        float areal = getARealAtOutCoords();\n        float aimag = getAImagAtOutCoords();\n        float breal = getBRealAtOutCoords();\n        float bimag = getBImagAtOutCoords();\n        setOutput(binaryOpComplex(areal, aimag, breal, bimag));\n      }\n    "},HP="return a + b;",qP="return a - b;",KP="return a * b;",XP="return (a < 0.) ? b * a : a;",YP=function(e,t,n){this.variableNames=["A","B"],this.outputShape=Mw(t,n),this.userCode="\n      float binaryOperation(float a, float b) {\n        "+e+"\n      }\n\n      void main() {\n        float a = getAAtOutCoords();\n        float b = getBAtOutCoords();\n        setOutput(binaryOperation(a, b));\n      }\n    "},JP="\n  vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));
17\n  return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",ZP=function(e,t,n,r){void 0===r&&(r=!1),this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=Mw(t,n);var a=this.outputShape.length,i="";if(r)if(0===a||1===_v(this.outputShape))i="\n          result.y = 0.;\n          result.z = 0.;\n          result.w = 0.;\n        ";else if(i="\n          "+LP(a)+" coords = getOutputCoords();\n        ",1===a)i+="\n            result.y = (coords + 1) >= "+this.outputShape[0]+" ? 0. : result.y;\n            result.z = 0.;\n            result.w = 0.;\n          ";else{var o=wP("coords",a);i+="\n            bool nextRowOutOfBounds =\n              ("+o[a-2]+" + 1) >= "+this.outputShape[a-2]+";\n            bool nextColOutOfBounds =\n              ("+o[a-1]+" + 1) >= "+this.outputShape[a-1]+";\n            result.y = nextColOutOfBounds ? 0. : result.y;\n            result.z = nextRowOutOfBounds ? 0. : result.z;\n            result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n          "}this.userCode="\n      vec4 binaryOperation(vec4 a, vec4 b) {\n        "+e+"\n      }\n\n      void main() {\n        vec4 a = getAAtOutCoords();\n        vec4 b = getBAtOutCoords();\n\n        vec4 result = binaryOperation(a, b);\n        "+i+"\n\n        setOutput(result);\n      }\n    "},QP=function(){function e(e){this.variableNames=["A"],this.outputShape=e,this.userCode="\n      uniform float minVal;\n      uniform float maxVal;\n\n      void main() {\n        float value = getAAtOutCoords();\n        if (isnan(value)) {\n          setOutput(value);\n          return;\n        }\n\n        setOutput(clamp(value, minVal, maxVal));\n      }\n    "}return e.prototype.getCustomSetupFunc=function(e,t){var n=this;return function(r,a){null==n.minLoc&&(n.minLoc=r.getUniformLocationNoThrow(a,"minVal"),n.maxLoc=r.getUniformLocationNoThrow(a,"maxVal")),r.gl.uniform1f(n.minLoc,e),r.gl.uniform1f(n.maxLoc,t)}},e}(),$P=function(){function e(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode="\n      uniform float minVal;\n      uniform float maxVal;\n\n      void main() {\n        vec4 value = getAAtOutCoords();\n\n        if (any(isnan(value))) {\n          setOutput(value);\n          return;\n        }\n\n        setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n      }\n    "}return e.prototype.getCustomSetupFunc=function(e,t){var n=this;return function(r,a){null==n.minLoc&&(n.minLoc=r.getUniformLocationNoThrow(a,"minVal"),n.maxLoc=r.getUniformLocationNoThrow(a,"maxVal")),r.gl.uniform1f(n.minLoc,e),r.gl.uniform1f(n.maxLoc,t)}},e}(),eW=function(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode="\n      void main() {\n        float re = abs(getRealAtOutCoords());\n        float im = abs(getImagAtOutCoords());\n        float mx = max(re, im);\n\n        // sadly the length function in glsl is not underflow-safe\n        // (at least not on Intel GPUs). So the safe solution is\n        // to ensure underflow-safety in all cases.\n        setOutput(\n          mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n        );\n      }\n    "},tW=function(e){this.outputShape=[],this.outputShape=ew(e,1),this.variableNames=e.map((function(e,t){return"T"+t}));var t=new Array(e.length-1);t[0]=e[0][1];for(var n=1;n<t.length;n++)t[n]=t[n-1]+e[n][1];for(var r=["if (yC < "+t[0]+") setOutput(getT0(yR, yC));"],a=1;a<t.length;a++){var i=t[a-1];r.push("else if (yC < "+t[a]+") setOutput(getT"+a+"(yR, yC-"+i+"));")}var o=t.length,s=t[t.length-1];r.push("else setOutput(getT"+o+"(yR, yC-"+s+"));"),this.userCode="\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int yR = coords.x;\n        int yC = coords.y;\n\n        "+r.join("\n        ")+"\n      }\n    "},nW=function(e,t){this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[],this.outputShape=ew(e,t);var n=this.outputShape,r=n.length,a=LP(r),i=wP("coords",r),o=["x","y","z","w","u","v"].slice(0,r);this.variableNames=e.map((function(e,t){return"T"+t}));var s=new Array(e.length-1);s[0]=e[0][t];for(var u=1;u<s.length;u++)s[u]=s[u-1]+e[u][t];for(var l=o[t],c=o.slice(-2),p=o.join(),h="if ("+l+" < "+s[0]+") {\n        return getChannel(\n            getT0("+p+"), vec2("+c.join()+"));\n        }",f=1;f<s.length;f++){var d=s[f-1];h+="\n        if ("+l+" < "+s[f]+"  && "+l+" >= "+s[f-1]+") {\n          return getChannel(\n            getT"+f+"("+rW(o,l,d)+"),\n            vec2("+rW(c,l,d)+"));\n        }"}var m=s.length,v=s[s.length-1];h+="\n        return getChannel(\n          getT"+m+"("+rW(o,l,v)+"),\n          vec2("+rW(c,l,v)+"));",this.userCode="\n      float getValue("+o.map((function(e){return"int "+e}))+") {\n        "+h+"\n      }\n\n      void main() {\n        "+a+" coords = getOutputCoords();\n        vec4 result = vec4(getValue("+i+"), 0., 0., 0.);\n\n        "+i[r-1]+" = "+i[r-1]+" + 1;\n        if ("+i[r-1]+" < "+n[r-1]+") {\n          result.g = getValue("+i+");\n        }\n\n        "+i[r-2]+" = "+i[r-2]+" + 1;\n        if ("+i[r-2]+" < "+n[r-2]+") {\n          result.a = getValue("+i+");\n        }\n\n        "+i[r-1]+" = "+i[r-1]+" - 1;\n        if ("+i[r-2]+" < "+n[r-2]+" &&\n            "+i[r-1]+" < "+n[r-1]+") {\n          result.b = getValue("+i+");\n        }\n        setOutput(result);\n      }\n    "};function rW(e,t,n){var r=e.indexOf(t);return e.map((function(e,t){return t===r?e+" - "+n:e})).join()}var aW=function(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;var t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,a=e.padInfo.left,i="channelsLast"===e.dataFormat;this.userCode="\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int wR = coords.x;\n        int wC = coords.y;\n        int d1 = coords.z;\n        int d2 = coords.w;\n\n        // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n\n        for (int b = 0; b < "+e.batchSize+"; b++) {\n          for (int yR = 0; yR < "+e.outHeight+"; yR++) {\n            int xR = wR + yR * "+t+" - "+r+";\n\n            if (xR < 0 || xR >= "+e.inHeight+") {\n              continue;\n            }\n\n            for (int yC = 0; yC < "+e.outWidth+"; yC++) {\n              int xC = wC + yC * "+n+" - "+a+";\n\n              if (xC < 0 || xC >= "+e.inWidth+") {\n                continue;\n              }\n\n              if ("+i+") {\n                float dyValue = getDy(b, yR, yC, d2);\n                float xValue = getX(b, xR, xC, d1);\n                dotProd += (xValue * dyValue);\n              } else {\n                float dyValue = getDy(b, d2, yR, yC);\n                float xValue = getX(b, d1, xR, xC);\n                dotProd += (xValue * dyValue);\n              }\n\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},iW=function(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,i="channelsLast"===e.dataFormat,o=t-1-e.padInfo.top,s=n-1-e.padInfo.left,u=i?1:2,l=i?2:3,c=i?3:1;this.userCode="\n      const ivec2 pads = ivec2("+o+", "+s+");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords[0];\n        int d1 = coords["+c+"];\n\n        ivec2 dyCorner = ivec2(coords["+u+"], coords["+l+"]) - pads;\n        int dyRCorner = dyCorner.x;\n        int dyCCorner = dyCorner.y;\n\n        // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        for (int wR = 0; wR < "+t+"; wR++) {\n          float dyR = float(dyRCorner + wR) / "+r+".0;\n\n          if (dyR < 0.0 || dyR >= "+e.outHeight+".0 || fract(dyR) > 0.0) {\n            continue;\n          }\n          int idyR = int(dyR);\n\n          int wRPerm = "+t+" - 1 - wR;\n\n          for (int wC = 0; wC < "+n+"; wC++) {\n            float dyC = float(dyCCorner + wC) / "+a+".0;\n\n            if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n                fract(dyC) > 0.0) {\n              continue;\n            }\n            int idyC = int(dyC);\n\n            int wCPerm = "+n+" - 1 - wC;\n\n            for (int d2 = 0; d2 < "+e.outChannels+"; d2++) {\n\n              if ("+i+") {\n                float xValue = getDy(batch, idyR, idyC, d2);\n                float wValue = getW(wRPerm, wCPerm, d1, d2);\n                dotProd += xValue * wValue;\n              } else {\n                float xValue = getDy(batch, d2, idyR, idyC);\n                float wValue = getW(wRPerm, wCPerm, d1, d2);\n                dotProd += xValue * wValue;\n              }\n\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},oW=function(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;var t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,a=e.padInfo.front,i=e.padInfo.top,o=e.padInfo.left;this.userCode="\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int wF = coords.x;\n        int wR = coords.y;\n        int wC = coords.z;\n        int d1 = coords.w;\n        int d2 = coords.u;\n\n        float dotProd = 0.0;\n\n        for (int b = 0; b < "+e.batchSize+"; b++) {\n          for (int yF = 0; yF < "+e.outDepth+";
17 yF++) {\n            int xF = wF + yF * "+t+" - "+a+";\n\n            if (xF < 0 || xF >= "+e.inDepth+") {\n              continue;\n            }\n\n            for (int yR = 0; yR < "+e.outHeight+"; yR++) {\n              int xR = wR + yR * "+n+" - "+i+";\n\n              if (xR < 0 || xR >= "+e.inHeight+") {\n                continue;\n              }\n\n              for (int yC = 0; yC < "+e.outWidth+"; yC++) {\n                int xC = wC + yC * "+r+" - "+o+";\n\n                if (xC < 0 || xC >= "+e.inWidth+") {\n                  continue;\n                }\n\n                float dyValue = getDy(b, yF, yR, yC, d2);\n                float xValue = getX(b, xF, xR, xC, d1);\n                dotProd += (xValue * dyValue);\n              }\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},sW=function(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;var t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,a=e.strideDepth,i=e.strideHeight,o=e.strideWidth,s=t-1-e.padInfo.front,u=n-1-e.padInfo.top,l=r-1-e.padInfo.left;this.userCode="\n      const ivec3 pads = ivec3("+s+", "+u+", "+l+");\n\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int batch = coords.x;\n        int d1 = coords.u;\n\n\n        ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n        int dyFCorner = dyCorner.x;\n        int dyRCorner = dyCorner.y;\n        int dyCCorner = dyCorner.z;\n\n        float dotProd = 0.0;\n        for (int wF = 0; wF < "+t+"; wF++) {\n          float dyF = float(dyFCorner + wF) / "+a+".0;\n\n          if (dyF < 0.0 || dyF >= "+e.outDepth+".0 || fract(dyF) > 0.0) {\n            continue;\n          }\n          int idyF = int(dyF);\n\n          int wFPerm = "+t+" - 1 - wF;\n\n          for (int wR = 0; wR < "+n+"; wR++) {\n            float dyR = float(dyRCorner + wR) / "+i+".0;\n\n            if (dyR < 0.0 || dyR >= "+e.outHeight+".0 ||\n              fract(dyR) > 0.0) {\n              continue;\n            }\n            int idyR = int(dyR);\n\n            int wRPerm = "+n+" - 1 - wR;\n\n            for (int wC = 0; wC < "+r+"; wC++) {\n              float dyC = float(dyCCorner + wC) / "+o+".0;\n\n              if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n                  fract(dyC) > 0.0) {\n                continue;\n              }\n              int idyC = int(dyC);\n\n              int wCPerm = "+r+" - 1 - wC;\n\n              for (int d2 = 0; d2 < "+e.outChannels+"; d2++) {\n                float xValue = getDy(batch, idyF, idyR, idyC, d2);\n                float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n                dotProd += xValue * wValue;\n              }\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},uW=function(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;var t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,a=e.padInfo.left,i=e.outChannels/e.inChannels;this.userCode="\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int wR = coords.x;\n        int wC = coords.y;\n        int d1 = coords.z;\n        int dm = coords.w;\n        int d2 = d1 * "+i+" + dm;\n\n        float dotProd = 0.0;\n\n        // TO DO: Vec4 over the batch size\n        for (int b = 0; b < "+e.batchSize+"; b++) {\n          for (int yR = 0; yR < "+e.outHeight+"; yR++) {\n            int xR = wR + yR * "+t+" - "+r+";\n\n            if (xR < 0 || xR >= "+e.inHeight+") {\n              continue;\n            }\n\n            for (int yC = 0; yC < "+e.outWidth+"; yC++) {\n              int xC = wC + yC * "+n+" - "+a+";\n\n              if (xC < 0 || xC >= "+e.inWidth+") {\n                continue;\n              }\n\n              float dyValue = getDy(b, yR, yC, d2);\n              float xValue = getX(b, xR, xC, d1);\n              dotProd += (xValue * dyValue);\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},lW=function(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode="\n      const ivec2 pads = ivec2("+i+", "+o+");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords[0];\n        int d1 = coords[3];\n        ivec2 dyCorner = coords.yz - pads;\n        int dyRCorner = dyCorner.x;\n        int dyCCorner = dyCorner.y;\n\n        float dotProd = 0.0;\n\n        for (int wR = 0; wR < "+t+"; wR++) {\n          float dyR = float(dyRCorner + wR) / "+r+".0;\n\n          if (dyR < 0.0 || dyR >= "+e.outHeight+".0 || fract(dyR) > 0.0) {\n            continue;\n          }\n          int idyR = int(dyR);\n\n          int wRPerm = "+t+" - 1 - wR;\n\n          for (int wC = 0; wC < "+n+"; wC++) {\n            float dyC = float(dyCCorner + wC) / "+a+".0;\n\n            if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n                fract(dyC) > 0.0) {\n              continue;\n            }\n            int idyC = int(dyC);\n\n            int wCPerm = "+n+" - 1 - wC;\n\n            // TO DO: Vec4 over the channelMul\n            for (int dm = 0; dm < "+s+"; dm++) {\n              int d2 = d1 * "+s+" + dm;\n              float xValue = getDy(batch, idyR, idyC, d2);\n              float wValue = getW(wRPerm, wCPerm, d1, dm);\n              dotProd += xValue * wValue;\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},cW=function(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=null),void 0===r&&(r=!1),this.variableNames=["x","W"],this.outputShape=e.outShape;var a=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,s=e.strideWidth,u=e.dilationHeight,l=e.dilationWidth,c=e.filterHeight,p=e.filterWidth,h=4*Math.floor(e.inChannels/4),f=e.inChannels%4,d="channelsLast"===e.dataFormat,m=d?1:2,v=d?2:3,g=d?3:1,y="",b="";n&&(y=r?"float activation(float a) {\n          float b = getPreluActivationWeightsAtOutCoords();
17\n          "+n+"\n        }":"\n          float activation(float x) {\n            "+n+"\n          }\n        ",b="result = activation(result);");var x=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),this.userCode="\n      "+y+"\n\n      const ivec2 strides = ivec2("+o+", "+s+");\n      const ivec2 pads = ivec2("+a+", "+i+");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords[0];\n        int d2 = coords["+g+"];\n\n        ivec2 xRCCorner =\n            ivec2(coords["+m+"], coords["+v+"]) * strides - pads;\n        int xRCorner = xRCCorner.x;\n        int xCCorner = xRCCorner.y;\n\n        // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        for (int wR = 0; wR < "+c+"; wR++) {\n          int xR = xRCorner + wR * "+u+";\n\n          if (xR < 0 || xR >= "+e.inHeight+") {\n            continue;\n          }\n\n          for (int wC = 0; wC < "+p+"; wC++) {\n            int xC = xCCorner + wC * "+l+";\n\n            if (xC < 0 || xC >= "+e.inWidth+") {\n              continue;\n            }\n\n            for (int d1 = 0; d1 < "+h+"; d1 += 4) {\n              vec4 wValues = vec4(\n                getW(wR, wC, d1, d2),\n                getW(wR, wC, d1 + 1, d2),\n                getW(wR, wC, d1 + 2, d2),\n                getW(wR, wC, d1 + 3, d2)\n              );\n\n              if ("+d+") {\n                vec4 xValues = vec4(\n                  getX(batch, xR, xC, d1),\n                  getX(batch, xR, xC, d1 + 1),\n                  getX(batch, xR, xC, d1 + 2),\n                  getX(batch, xR, xC, d1 + 3)\n                );\n                dotProd += dot(xValues, wValues);\n              } else {\n                vec4 xValues = vec4(\n                  getX(batch, d1, xR, xC),\n                  getX(batch, d1 + 1, xR, xC),\n                  getX(batch, d1 + 2, xR, xC),\n                  getX(batch, d1 + 3, xR, xC)\n                );\n                dotProd += dot(xValues, wValues);\n              }\n            }\n\n            if ("+(1===f)+") {\n\n              if ("+d+") {\n                dotProd +=\n                    getX(batch, xR, xC, "+h+") *\n                    getW(wR, wC, "+h+", d2);\n              } else {\n                dotProd +=\n                    getX(batch, "+h+", xR, xC) *\n                    getW(wR, wC, "+h+", d2);\n              }\n\n            } else if ("+(2===f)+") {\n              vec2 wValues = vec2(\n                getW(wR, wC, "+h+", d2),\n                getW(wR, wC, "+h+" + 1, d2)\n              );\n\n              if ("+d+") {\n                vec2 xValues = vec2(\n                  getX(batch, xR, xC, "+h+"),\n                  getX(batch, xR, xC, "+h+" + 1)\n                );\n                dotProd += dot(xValues, wValues);\n              } else {\n                vec2 xValues = vec2(\n                  getX(batch, "+h+", xR, xC),\n                  getX(batch, "+h+" + 1, xR, xC)\n                );\n                dotProd += dot(xValues, wValues);\n              }\n\n            } else if ("+(3===f)+") {\n              vec3 wValues = vec3(\n                getW(wR, wC, "+h+", d2),\n                getW(wR, wC, "+h+" + 1, d2),\n                getW(wR, wC, "+h+" + 2, d2)\n              );\n\n              if ("+d+") {\n                vec3 xValues = vec3(\n                  getX(batch, xR, xC, "+h+"),\n                  getX(batch, xR, xC, "+h+" + 1),\n                  getX(batch, xR, xC, "+h+" + 2)\n                );\n                dotProd += dot(xValues, wValues);\n              } else {\n                vec3 xValues = vec3(\n                  getX(batch, "+h+", xR, xC),\n                  getX(batch, "+h+" + 1, xR, xC),\n                  getX(batch, "+h+" + 2, xR, xC)\n                );\n                dotProd += dot(xValues, wValues);\n              }\n\n            }\n          }\n        }\n\n        float result = dotProd;\n        "+x+"\n        "+b+"\n        setOutput(result);\n      }\n    "},pW=function(e){this.variableNames=["x","W"],this.outputShape=e.outShape;var t=e.padInfo.front,n=e.padInfo.top,r=e.padInfo.left,a=e.strideDepth,i=e.strideHeight,o=e.strideWidth,s=e.dilationDepth,u=e.dilationHeight,l=e.dilationWidth,c=e.filterDepth,p=e.filterHeight,h=e.filterWidth,f=4*Math.floor(e.inChannels/4),d=e.inChannels%4;this.userCode="\n      const ivec3 strides = ivec3("+a+", "+i+", "+o+");\n      const ivec3 pads = ivec3("+t+", "+n+", "+r+");\n\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int batch = coords.x;\n        int d2 = coords.u;\n\n        ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n        int xFCorner = xFRCCorner.x;\n        int xRCorner = xFRCCorner.y;\n        int xCCorner = xFRCCorner.z;\n\n        // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n        // y(yF, yR, yC, d2). ? = to be determined. : = across all\n        // values in that axis.\n        float dotProd = 0.0;\n        for (int wF = 0; wF < "+c+";
17 wF++) {\n          int xF = xFCorner + wF * "+s+";\n\n          if (xF < 0 || xF >= "+e.inDepth+") {\n            continue;\n          }\n\n          for (int wR = 0; wR < "+p+"; wR++) {\n            int xR = xRCorner + wR * "+u+";\n\n            if (xR < 0 || xR >= "+e.inHeight+") {\n              continue;\n            }\n\n            for (int wC = 0; wC < "+h+"; wC++) {\n              int xC = xCCorner + wC * "+l+";\n\n              if (xC < 0 || xC >= "+e.inWidth+") {\n                continue;\n              }\n\n              for (int d1 = 0; d1 < "+f+"; d1 += 4) {\n                vec4 xValues = vec4(\n                  getX(batch, xF, xR, xC, d1),\n                  getX(batch, xF, xR, xC, d1 + 1),\n                  getX(batch, xF, xR, xC, d1 + 2),\n                  getX(batch, xF, xR, xC, d1 + 3)\n                );\n                vec4 wValues = vec4(\n                  getW(wF, wR, wC, d1, d2),\n                  getW(wF, wR, wC, d1 + 1, d2),\n                  getW(wF, wR, wC, d1 + 2, d2),\n                  getW(wF, wR, wC, d1 + 3, d2)\n                );\n\n                dotProd += dot(xValues, wValues);\n              }\n\n              if ("+(1===d)+") {\n                dotProd +=\n                  getX(batch, xF, xR, xC, "+f+") *\n                  getW(wF, wR, wC, "+f+", d2);\n              } else if ("+(2===d)+") {\n                vec2 xValues = vec2(\n                  getX(batch, xF, xR, xC, "+f+"),\n                  getX(batch, xF, xR, xC, "+f+" + 1)\n                );\n                vec2 wValues = vec2(\n                  getW(wF, wR, wC, "+f+", d2),\n                  getW(wF, wR, wC, "+f+" + 1, d2)\n                );\n                dotProd += dot(xValues, wValues);\n              } else if ("+(3===d)+") {\n                vec3 xValues = vec3(\n                  getX(batch, xF, xR, xC, "+f+"),\n                  getX(batch, xF, xR, xC, "+f+" + 1),\n                  getX(batch, xF, xR, xC, "+f+" + 2)\n                );\n                vec3 wValues = vec3(\n                  getW(wF, wR, wC, "+f+", d2),\n                  getW(wF, wR, wC, "+f+" + 1, d2),\n                  getW(wF, wR, wC, "+f+" + 2, d2)\n                );\n                dotProd += dot(xValues, wValues);\n              }\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},hW=function(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=null),void 0===r&&(r=!1),this.variableNames=["x","W"],this.outputShape=e.outShape;var a=e.inHeight,i=e.inWidth,o=e.padInfo.top,s=e.padInfo.left,u=e.strideHeight,l=e.strideWidth,c=e.dilationHeight,p=e.dilationWidth,h=e.filterHeight,f=e.filterWidth,d=e.outChannels/e.inChannels,m="",v="";n&&(m=r?"float activation(float a) {\n          float b = getPreluActivationWeightsAtOutCoords();
17\n          "+n+"\n        }":"\n          float activation(float x) {\n            "+n+"\n          }\n        ",v="result = activation(result);");var g=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),this.userCode="\n      "+m+"\n\n      const ivec2 strides = ivec2("+u+", "+l+");\n      const ivec2 pads = ivec2("+o+", "+s+");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords.x;\n        ivec2 xRCCorner = coords.yz * strides - pads;\n        int d2 = coords.w;\n        int d1 = d2 / "+d+";\n        int q = d2 - d1 * "+d+";\n\n        int xRCorner = xRCCorner.x;\n        int xCCorner = xRCCorner.y;\n\n        // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n        for (int wR = 0; wR < "+h+"; wR++) {\n          int xR = xRCorner + wR * "+c+";\n\n          if (xR < 0 || xR >= "+a+") {\n            continue;\n          }\n\n          for (int wC = 0; wC < "+f+"; wC++) {\n            int xC = xCCorner + wC * "+p+";\n\n            if (xC < 0 || xC >= "+i+") {\n              continue;\n            }\n\n            float xVal = getX(batch, xR, xC, d1);\n            float wVal = getW(wR, wC, d1, q);\n            dotProd += xVal * wVal;\n          }\n        }\n\n        float result = dotProd;\n        "+g+"\n        "+v+"\n        setOutput(result);\n      }\n    "},fW=function(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=null),void 0===r&&(r=!1),this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;for(var a=e.inHeight,i=e.inWidth,o=e.padInfo.top,s=e.padInfo.left,u=e.strideHeight,l=e.strideWidth,c=e.dilationHeight,p=e.dilationWidth,h=e.filterHeight,f=e.filterWidth,d=f,m="int xR; int xC; int xCOffset;",v=0;v<h;v++)for(var g=0;g<f;g++)m+="\n          vec4 xTexelR"+v+"C"+2*g+" = vec4(0.);\n          vec4 wR"+v+"C"+g+" = vec4(0.);\n          vec4 xR"+v+"C"+g+" = vec4(0.);";for(var y=0;y<h;y++)for(var b=0;b<d;b++){var x=2*b;if(m+="\n          xR = xRCorner + "+y*c+";\n          xC = xCCorner + "+x*p+";\n        ",1===l){if(x<f&&(m+=s%2==1?"\n                xCOffset = xC + 1;\n                if(xR >= 0 && xR < "+a+" && xCOffset >= 0 && xCOffset < "+i+") {\n                  xTexelR"+y+"C"+x+" = getX(batch, xR, xCOffset, d1);\n\n                  // Need to manually clear unused channels in case\n                  // we're reading from recycled texture.\n                  if(xCOffset + 1 >= "+i+") {\n                    xTexelR"+y+"C"+x+".zw = vec2(0.);\n                  }\n                } else {\n                  xTexelR"+y+"C"+x+" = vec4(0.);\n                }\n\n                xCOffset = xC + 1 - 2;\n                if(xR >= 0 && xR < "+a+" && xCOffset >= 0 && xCOffset < "+i+") {\n                  vec4 previous = getX(batch, xR, xCOffset, d1);\n\n                  // Need to manually clear unused channels in case\n                  // we're reading from recycled texture.\n                  if(xCOffset + 1 >= "+i+") {\n                    previous.zw = vec2(0.);\n                  }\n\n                  xR"+y+"C"+x+" = vec4(previous.zw, xTexelR"+y+"C"+x+".xy);\n                } else {\n                  xR"+y+"C"+x+" = vec4(0, 0, xTexelR"+y+"C"+x+".xy);\n                }\n              ":"\n                if(xR >= 0 && xR < "+a+" && xC >= 0 && xC < "+i+") {\n                  xTexelR"+y+"C"+x+" = getX(batch, xR, xC, d1);\n                } else {\n                  xTexelR"+y+"C"+x+" = vec4(0.);\n                }\n\n                xR"+y+"C"+x+" = xTexelR"+y+"C"+x+";\n              ",x+1<f)){var w=s%2==0?Cv(p):p;p%2==0&&s%2==1||p%2!=0&&s%2!=1?(m+="\n                  xCOffset = xC + "+s%2+" + "+w+";\n\n                  if(xR >= 0 && xR < "+a+" &&\n                    xCOffset >= 0 && xCOffset < "+i+") {\n                    xTexelR"+y+"C"+(x+2)+" = getX(batch, xR, xCOffset, d1);\n                  }\n                ",p>1&&(m+="\n                    xCOffset -= 2;\n                    if(xR >
17= 0 && xR < "+a+" &&\n                      xCOffset >= 0 && xCOffset < "+i+") {\n                      xTexelR"+y+"C"+x+" = getX(batch, xR, xCOffset, d1);\n                    } else {\n                      xTexelR"+y+"C"+x+" = vec4(0.);\n                    }\n                  "),m+="\n                  xR"+y+"C"+(x+1)+" = vec4(\n                    xTexelR"+y+"C"+x+".zw, xTexelR"+y+"C"+(x+2)+".xy);\n                "):m+="\n                  xCOffset = xC + "+w+";\n\n                  if(xR >= 0 && xR < "+a+" &&\n                    xCOffset >= 0 && xCOffset < "+i+") {\n                    xTexelR"+y+"C"+(x+2)+" = getX(batch, xR, xCOffset, d1);\n                  }\n\n                  xR"+y+"C"+(x+1)+" = xTexelR"+y+"C"+(x+2)+";\n                "}}else x<f&&(m+="\n              if(xR >= 0 && xR < "+a+") {\n            ",s%2==1?(m+="\n                xCOffset = xC + 1 - "+l+";\n                if(xCOffset >= 0 && xCOffset < "+i+") {\n                  xTexelR"+y+"C"+x+" = getX(batch, xR, xCOffset, d1);\n                } else {\n                  xTexelR"+y+"C"+x+" = vec4(0.);\n                }\n\n                if(xC + 1 >= 0 && xC + 1 < "+i+") {\n                  xTexelR"+y+"C"+(x+2)+" = getX(batch, xR, xC + 1, d1);\n                } else {\n                  xTexelR"+y+"C"+(x+2)+" = vec4(0.);\n                }\n\n                xR"+y+"C"+x+" = vec4(\n                  xTexelR"+y+"C"+x+".zw, xTexelR"+y+"C"+(x+2)+".zw);\n              ",x+1<f&&(m+="\n                  vec4 final = vec4(0.);\n                  xCOffset = xC + 1 + "+l+";\n                  if(xCOffset >= 0 && xCOffset < "+i+") {\n                    final = getX(batch, xR, xCOffset, d1);\n                  }\n                  xR"+y+"C"+(x+1)+" = vec4(xTexelR"+y+"C"+(x+2)+".xy, final.xy);\n                ")):(m+="\n                if(xC >= 0 && xC < "+i+") {\n                  xTexelR"+y+"C"+x+" = getX(batch, xR, xC, d1);\n                } else {\n                  xTexelR"+y+"C"+x+" = vec4(0.);\n                }\n\n                xCOffset = xC + "+l+";\n                if(xCOffset >= 0 && xCOffset < "+i+") {\n                  xTexelR"+y+"C"+(x+2)+" = getX(batch, xR, xCOffset, d1);\n                } else {\n                  xTexelR"+y+"C"+(x+2)+" = vec4(0.);\n                }\n\n                xR"+y+"C"+x+" = vec4(\n                  xTexelR"+y+"C"+x+".xy, xTexelR"+y+"C"+(x+2)+".xy);\n              ",x+1<f&&(m+="\n                  xR"+y+"C"+(x+1)+" = vec4(\n                    xTexelR"+y+"C"+x+".zw, xTexelR"+y+"C"+(x+2)+".zw);\n                ")),m+="}");x<f&&(m+="\n            vec4 wTexelR"+y+"C"+x+" = getW("+y+", "+x+", d1, q);\n            wR"+y+"C"+x+" = vec4(wTexelR"+y+"C"+x+".xz, wTexelR"+y+"C"+x+".xz);\n          ",x+1<f&&(m+="\n              vec4 wTexelR"+y+"C"+(x+1)+" = getW("+y+", "+(x+1)+", d1, q);\n              wR"+y+"C"+(x+1)+" =\n                vec4(wTexelR"+y+"C"+(x+1)+".xz, wTexelR"+y+"C"+(x+1)+".xz);"))}for(var k=0;k<h;k++)for(var S=0;S<f;S++)m+="dotProd += xR"+k+"C"+S+" * wR"+k+"C"+S+";";var N="",I="";n&&(N=r?"vec4 activation(vec4 a) {\n          vec4 b = getPreluActivationWeightsAtOutCoords();
17\n          "+n+"\n        }":"vec4 activation(vec4 x) {\n          "+n+"\n        }",I="result = activation(result);");var C=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),this.userCode="\n      "+N+"\n\n      const ivec2 strides = ivec2("+u+", "+l+");\n      const ivec2 pads = ivec2("+o+", "+s+");\n\n      void main() {\n\n        ivec4 coords = getOutputCoords();\n        int batch = coords.x;\n        ivec2 xRCCorner = coords.yz * strides - pads;\n        int d2 = coords.w;\n        int d1 = d2;\n        int q = 0;\n        int xRCorner = xRCCorner.x;\n        int xCCorner = xRCCorner.y;\n\n        vec4 dotProd = vec4(0.);\n\n        "+m+"\n\n        vec4 result = dotProd;\n        "+C+"\n        "+I+"\n        setOutput(result);\n      }\n    "},dW=function(e,t,n,r,a){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];var i=e[0],o=e[1],s=e[2],u=e[3],l=t[0],c=n[0],p=n[1];this.outputShape=[l,c,p,u];var h="bilinear"===r?1:0,f=o-1+".0",d=s-1+".0",m=c>1?[""+(o-1)/(c-1),"(y2-y1) * height_ratio","y1*"+f+" + float(y)*(height_scale)"]:["0.0","0.0","0.5 * (y1+y2) * "+f],v=m[0],g=m[1],y=m[2],b=p>1?[""+(s-1)/(p-1),"(x2-x1) * width_ratio","x1*"+d+" + float(x)*(width_scale)"]:["0.0","0.0","0.5 * (x1+x2) * "+d],x=b[0],w=b[1],k=b[2];this.userCode="\n      const float height_ratio = float("+v+");\n      const float width_ratio = float("+x+");\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int y = coords[1];\n        int x = coords[2];\n        int d = coords[3];\n\n        // get box vals\n        float y1 = getBoxes(b,0);\n        float x1 = getBoxes(b,1);\n        float y2 = getBoxes(b,2);\n        float x2 = getBoxes(b,3);\n\n        // get image in batch index\n        int bInd = round(getBoxInd(b));\n        if(bInd < 0 || bInd >= "+i+") {\n          return;\n        }\n\n        float height_scale = "+g+";\n        float width_scale = "+w+";\n\n        float in_y = "+y+";\n        if( in_y < 0.0 || in_y > "+f+" ) {\n          setOutput(float("+a+"));\n          return;\n        }\n        float in_x = "+k+";\n        if( in_x < 0.0 || in_x > "+d+" ) {\n          setOutput(float("+a+"));\n          return;\n        }\n\n        vec2 sourceFracIndexCR = vec2(in_x,in_y);\n        if("+h+" == 1) {\n          // Compute the four integer indices.\n          ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n          ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n          float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n          float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n          float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n          float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n          vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n          float top = topLeft + (topRight - topLeft) * fracCR.x;\n          float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n          float newValue = top + (bottom - top) * fracCR.y;\n          setOutput(newValue);\n        } else {\n          // Compute the coordinators of nearest neighbor point.\n          ivec2 sourceNearestCR = ivec2(floor(\n            sourceFracIndexCR + vec2(0.5,0.5)));\n          float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n          setOutput(newValue);\n        }\n      }\n    "},mW=function(){function e(e,t,n){this.variableNames=["x"],this.outputShape=e;var r=e.length,a=t?"0.0":"getX("+vW(r,"coords")+")",i=e[e.length-1],o="",s="";t?(o=n?"end != "+(i-1):"end != 0",s=n?"end + 1":"end - 1"):(o=n?"end + pow2 < "+i:"end >= pow2",s=n?"end + pow2":"end - pow2"),this.userCode="\n      uniform float index;\n      void main() {\n        "+LP(r)+" coords = getOutputCoords();\n        int end = "+gW(r,"coords")+";\n        float val = "+a+";\n        int pow2 = int(pow(2.0, index));\n        if ("+o+") {\n          int idx = "+s+";\n          "+gW(r,"coords")+" = idx;\n          val += getX("+vW(r,"coords")+");\n        }\n        setOutput(val);\n      }\n    "}return e.prototype.getCustomSetupFunc=function(e){var t=this;return function(n,r){null==t.index&&(t.index=n.getUniformLocation(r,"index")),n.gl.uniform1f(t.index,e)}},e}();function vW(e,t){if(1===e)return""+t;if(2===e)return t+".x, "+t+".y";if(3===e)return t+".x, "+t+".y, "+t+".z";if(4===e)return t+".x, "+t+".y, "+t+".z, "+t+".w";throw Error("Cumulative sum for rank "+e+" is not yet supported")}function gW(e,t){if(1===e)return""+t;if(2===e)return t+".y";if(3===e)return t+".z";if(4===e)return t+".w";throw Error("Cumulative sum for rank "+e+" is not yet supported")}var yW=function(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=wB.DENSE;var t=EB(e),n=kP();this.outputShape=e,this.userCode="\n      ivec3 outCoordsFromFlatIndex(int index) {\n        "+SP(["r","c","d"],e)+"\
17n        return ivec3(r, c, d);\n      }\n\n      void main() {\n        ivec2 resTexRC = ivec2(resultUV.yx *\n          vec2("+t[0]+", "+t[1]+"));\n        int index = 4 * (resTexRC.x * "+t[1]+" + resTexRC.y);\n\n        vec4 result = vec4(0.);\n\n        for (int i=0; i<4; i++) {\n          int flatIndex = index + i;\n          ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n          result[i] = getA(rc.x, rc.y, rc.z);\n        }\n\n        "+n.output+" = result;\n      }\n    "},bW=function(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=wB.DENSE;var t=EB(e),n=kP();this.outputShape=e,this.userCode="\n      ivec3 outCoordsFromFlatIndex(int index) {\n        "+SP(["r","c","d"],e)+"\n        return ivec3(r, c, d);\n      }\n\n      void main() {\n        ivec2 resTexRC = ivec2(resultUV.yx *\n          vec2("+t[0]+", "+t[1]+"));\n        int index = 4 * (resTexRC.x * "+t[1]+" + resTexRC.y);\n\n        vec4 result = vec4(0.);\n\n        for (int i=0; i<4; i++) {\n          int flatIndex = index + i;\n          ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n          result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n        }\n\n        "+n.output+" = result;\n      }\n    "},xW=function(){function e(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode="\n    void main() {\n      ivec4 coords = getOutputCoords();\n      int b = coords[0];\n      int h = "+this.getHeightCoordString()+";\n      int w = "+this.getWidthCoordString()+";\n      int d = "+this.getDepthCoordString()+";\n\n      int in_h = h / "+t+";\n      int offset_h = imod(h, "+t+");\n      int in_w = w / "+t+";\n      int offset_w = imod(w, "+t+");\n      int offset_d = (offset_h * "+t+" + offset_w) *\n        "+this.getOutputDepthSize()+";\n      int in_d = d + offset_d;\n\n      float result = "+this.getInputSamplingString()+";\n      setOutput(result);\n    }\n  "}var t=e.prototype;return t.getHeightCoordString=function(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"},t.getWidthCoordString=function(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"},t.getDepthCoordString=function(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"},t.getOutputDepthSize=function(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]},t.getInputSamplingString=function(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"},e}(),wW=function(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode="\n      void main() {\n          ivec2 coords = getOutputCoords();\n          float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n          setOutput(val);\n      }\n    "},kW=function(e){this.variableNames=["A"],this.outTexUsage=kB.DOWNLOAD;var t=kP();this.outputShape=e,this.userCode="\n      "+IP+"\n\n      void main() {\n        float x = getAAtOutCoords();\n        "+t.output+" = encode_float(x);\n      }\n    "},SW=function(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=kB.DOWNLOAD;var t=kP();this.outputShape=e,this.userCode="\n      "+IP+"\n\n      void main() {\n        ivec3 coords = getOutputCoords();\n        float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n        "+t.output+" = encode_float(x);\n      }\n    "},NW=function(e,t,n){void 0===n&&(n=!1),this.variableNames=["A"];var r=kP(),a=t[0],i=t[1];this.outputShape=e;var o="result";n&&(o="floor(result * 255. + 0.5)"),this.userCode="\n      "+NP(e)+"\n\n      void main() {\n        ivec3 coords = getOutputCoords();\n\n        int flatIndex = getFlatIndex(coords);\n        int offset = imod(flatIndex, 4);\n\n        flatIndex = idiv(flatIndex, 4, 1.);\n\n        int r = flatIndex / "+i+";\n        int c = imod(flatIndex, "+i+");\n        vec2 uv = (vec2(c, r) + halfCR) / vec2("+i+".0, "+a+".0);\n        vec4 values = "+r.texture2D+"(A, uv);\n\n        float result;\n\n        if(offset == 0) {\n          result = values[0];\n        } else if(offset == 1) {\n          result = values[1];\n        } else if(offset == 2) {\n          result = values[2];\n        } else {\n          result = values[3];\n        }\n\n        "+r.output+" = vec4("+o+", 0., 0., 0.);\n      }\n    "},IW=function(e,t,n){void 0===n&&(n=!1),this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;var r=kP(),a=t[0],i=t[1];this.outputShape=e;var o="",s="result";n&&(s="floor(result * 255. + 0.5)");for(var u=0;u<=1;u++)for(var l=0;l<=1;l++){var c=2*u+l;o+="\n          localCoords = coords;\n          if(localCoords[2] + "+l+" < "+e[2]+") {\n            localCoords[2] += "+l+";\n            if(localCoords[1] + "+u+" < "+e[1]+") {\n              localCoords[1] += "+u+";\n\n              flatIndex = getFlatIndex(localCoords);\n              offset = imod(flatIndex, 4);\n\n              flatIndex = idiv(flatIndex, 4, 1.);\n\n              r = flatIndex / "+i+";\n              c = imod(flatIndex, "+i+");\n              uv = (vec2(c, r) + halfCR) / vec2("+i+".0, "+a+".0);\n              values = "+r.texture2D+"(A, uv);\n\n              if(offset == 0) {\n                result["+c+"] = values[0];\n              } else if(offset == 1) {\n                result["+c+"] = values[1];\n              } else if(offset == 2) {\n                result["+c+"] = values[2];\n              } else {\n                result["+c+"] = values[3];\n              }\n            }\n          }\n        "}this.userCode="\n      "+NP(e)+"\n\n      void main() {\n        ivec3 coords = getOutputCoords();\n\n        vec4 result = vec4(0.);\n        int flatIndex, r, c, offset;\n        ivec3 localCoords;\n        vec2 uv;\n        vec4 values;\n\n        "+o+"\n\n        "+r.output+" = "+s+";\n      }\n    "},CW="return real * expR - imag * expI;",RW="return real * expI + imag * expR;",EW=function(e,t,n){this.variableNames=["real","imag"];var r=t[1];this.outputShape=t;var a=n?"2.0 * "+Math.PI:"-2.0 * "+Math.PI,i=n?r+".0":"1.0";this.userCode="\n      const float exponentMultiplier = "+a+";\n\n      float unaryOpComplex(float real, float expR, float imag, float expI) {\n        "+e+"\n      }\n\n      float mulMatDFT(int batch, int index) {\n        float indexRatio = float(index) / float("+r+");\n        float exponentMultiplierTimesIndexRatio =\n            exponentMultiplier * indexRatio;\n\n        float result = 0.0;\n\n        for (int i = 0; i < "+r+";
17 i++) {\n          // x = (-2|2 * PI / N) * index * i;\n          float x = exponentMultiplierTimesIndexRatio * float(i);\n          float expR = cos(x);\n          float expI = sin(x);\n          float real = getReal(batch, i);\n          float imag = getImag(batch, i);\n\n          result +=\n              unaryOpComplex(real, expR, imag, expI) / "+i+";\n        }\n\n        return result;\n      }\n\n      void main() {\n        ivec2 coords = getOutputCoords();\n        setOutput(mulMatDFT(coords[0], coords[1]));\n      }\n    "},AW=function(){function e(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode="\n      uniform float value;\n      void main() {\n        // Input can be obtained from uniform value.\n        setOutput(value);\n      }\n    "}return e.prototype.getCustomSetupFunc=function(e){var t=this;return function(n,r){null==t.valueLoc&&(t.valueLoc=n.getUniformLocationNoThrow(r,"value")),n.gl.uniform1f(t.valueLoc,e)}},e}(),TW=function(e,t,n){this.variableNames=["A","indices"];var r=e.slice();r[n]=t,this.outputShape=r,this.rank=r.length;var a=LP(this.rank),i=function(e,t){var n=e.length;if(n>4)throw Error("Gather for rank "+n+" is not yet supported");if(1===n)return"int(getIndices(resRC))";for(var r=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[],i=0;i<e.length;i++)i===t?a.push("int(getIndices("+r[i]+"))"):a.push(""+r[i]);return a.join()}(e,n);this.userCode="\n      void main() {\n        "+a+" resRC = getOutputCoords();\n        setOutput(getA("+i+"));\n      }\n    "};var DW=function(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;var r=LP(t.length),a=LP(n.length),i=this.sliceDim>1?"strides[j]":"strides";this.userCode="\n        "+r+" strides = "+r+"("+this.strides+");\n         void main() {\n          "+a+" coords = getOutputCoords();\n          int flattenIndex = 0;\n          for (int j = 0; j < "+this.sliceDim+";
17 j++) {\n            int index = round(getIndices(coords[0], j));\n            flattenIndex += index * "+i+";\n          }\n          setOutput(getX(flattenIndex, coords[1]));\n        }\n      "};function _W(e){var t=kP();return function(e,t){var n=jB(e,(function(){return e.createShader(e.VERTEX_SHADER)}),"Unable to create vertex WebGLShader.");if(DB(e,(function(){return e.shaderSource(n,t)})),DB(e,(function(){return e.compileShader(n)})),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}(e,t.version+"\n    precision highp float;\n    "+t.attribute+" vec3 clipSpacePos;\n    "+t.attribute+" vec2 uv;\n    "+t.varyingVs+" vec2 resultUV;\n\n    void main() {\n      gl_Position = vec4(clipSpacePos, 1);\n      resultUV = uv;\n    }")}function FW(e){return function(e,t){var n=jB(e,(function(){return e.createBuffer()}),"Unable to create WebGLBuffer");return DB(e,(function(){return e.bindBuffer(e.ARRAY_BUFFER,n)})),DB(e,(function(){return e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)})),n}(e,new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]))}function OW(e){return function(e,t){var n=jB(e,(function(){return e.createBuffer()}),"Unable to create WebGLBuffer");return DB(e,(function(){return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)})),DB(e,(function(){return e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)})),n}(e,new Uint16Array([0,1,2,2,1,3]))}function MW(e,t,n,r,a,i){!function(e,t){var n=uv().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0)throw new Error("Requested texture size "+("["+e+"x"+t+"]")+" is invalid.");if(e>n||t>n)throw new Error("Requested texture size "+("["+e+"x"+t+"]")+" greater than WebGL maximum on this browser / GPU "+("["+n+"x"+n+"]")+".")}(t,n);var o=function(e){return jB(e,(function(){return e.createTexture()}),"Unable to create WebGLTexture.")}(e),s=e.TEXTURE_2D;return DB(e,(function(){return e.bindTexture(s,o)})),DB(e,(function(){return e.texParameteri(s,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)})),DB(e,(function(){return e.texParameteri(s,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)})),DB(e,(function(){return e.texParameteri(s,e.TEXTURE_MIN_FILTER,e.NEAREST)})),DB(e,(function(){return e.texParameteri(s,e.TEXTURE_MAG_FILTER,e.NEAREST)})),DB(e,(function(){return e.texImage2D(s,0,r,t,n,0,a,i,null)})),DB(e,(function(){return e.bindTexture(e.TEXTURE_2D,null)})),o}function LW(e){return e.internalFormatFloat}function zW(e){return e.internalFormatHalfFloat}function BW(e){return e.downloadTextureFormat}function PW(e){return e.internalFormatPackedFloat}function WW(e){return e.internalFormatPackedHalfFloat}function VW(e,t,n,r,a,i,o,s){var u=e,l=new Float32Array(function(e,t){var n=AB(e,t);return n[0]*n[1]*4}(i,o));return u.bindBuffer(u.PIXEL_PACK_BUFFER,t),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,l),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),l}var UW=function(){function e(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];var t=uv().getNumber("WEBGL_VERSION");null!=e?(this.gl=e,function(e,t){NB[e]=t}(t,e)):this.gl=CB(t);var n="WEBGL_color_buffer_float";if(1===uv().getNumber("WEBGL_VERSION")){if(this.textureFloatExtension=FB(this.gl,"OES_texture_float"),ZB(this.gl,"OES_texture_half_float"))this.textureHalfFloatExtension=FB(this.gl,"OES_texture_half_float");else if(uv().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),ZB(this.gl,"EXT_color_buffer_half_float"))this.colorBufferHalfFloatExtension=FB(this.gl,"EXT_color_buffer_half_float");else if(uv().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",ZB(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else{if(!ZB(this.gl,"EXT_color_buffer_half_float"))throw new Error("GL context does not support color renderable floats");this.colorBufferHalfFloatExtension=this.gl.getExtension("EXT_color_buffer_half_float")}this.vertexBuffer=FW(this.gl),this.indexBuffer=OW(this.gl),this.framebuffer=function(e){return jB(e,(function(){return e.createFramebuffer()}),"Unable to create WebGLFramebuffer.")}(this.gl),this.textureConfig=TB(this.gl,this.textureHalfFloatExtension)}var t=e.prototype;return t.dispose=function(){var e=this;if(!this.disposed){null!=this.program&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),null!=this.outputTexture&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture.  This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");var t=this.gl;DB(t,(function(){return t.finish()})),DB(t,(function(){return t.bindFramebuffer(t.FRAMEBUFFER,null)})),DB(t,(function(){return t.deleteFramebuffer(e.framebuffer)})),DB(t,(function(){return t.bindBuffer(t.ARRAY_BUFFER,null)})),DB(t,(function(){return t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)})),DB(t,(function(){return t.deleteBuffer(e.indexBuffer)})),this.disposed=!0}},t.createFloat32MatrixTexture=function(e,t){return this.throwIfDisposed(),function(e,t,n,r){var a=RB(t,n);return MW(e,a[0],a[1],LW(r),r.textureFormatFloat,e.FLOAT)}(this.gl,e,t,this.textureConfig)},t.createFloat16MatrixTexture=function(e,t){return this.throwIfDisposed(),function(e,t,n,r){var a=RB(t,n);return MW(e,a[0],a[1],zW(r),r.textureFormatFloat,r.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)},t.createUnsignedBytesMatrixTexture=function(e,t){return this.throwIfDisposed(),function(e,t,n,r){var a=RB(t,n);return MW(e,a[0],a[1],BW(r),e.RGBA,e.UNSIGNED_BYTE)}(this.gl,e,t,this.textureConfig)},t.uploadPixelDataToTexture=function(e,t){this.throwIfDisposed(),function(e,t,n){DB(e,(function(){return e.bindTexture(e.TEXTURE_2D,t)})),n.data instanceof Uint8Array?DB(e,(function(){return e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)})):DB(e,(function(){return e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)})),DB(e,(function(){return e.bindTexture(e.TEXTURE_2D,null)}))}(this.gl,e,t)},t.uploadDenseMatrixToTexture=function(e,t,n,r){this.throwIfDisposed(),function(e,t,n,r,a,i){var o,s,u;DB(e,(function(){return e.bindTexture(e.TEXTURE_2D,t)})),a instanceof Uint8Array?(o=new Uint8Array(n*r*4),s=e.UNSIGNED_BYTE,u=e.RGBA):(o=new Float32Array(n*r*4),s=e.FLOAT,u=i.internalFormatPackedFloat),o.set(a),DB(e,(function(){return e.texImage2D(e.TEXTURE_2D,0,u,n,r,0,e.RGBA,s,o)})),DB(e,(function(){return e.bindTexture(e.TEXTURE_2D,null)}))}(this.gl,e,t,n,r,this.textureConfig)},t.createFloat16PackedMatrixTexture=function(e,t){return this.throwIfDisposed(),function(e,t,n,r){var a=AB(t,n);return MW(e,a[0],a[1],WW(r),e.RGBA,r.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)},t.createPackedMatrixTexture=function(e,t){return this.throwIfDisposed(),function(e,t,n,r){var a=AB(t,n);return MW(e,a[0],a[1],PW(r),e.RGBA,e.FLOAT)}(this.gl,e,t,this.textureConfig)},t.deleteMatrixTexture=function(e){var t=this;this.throwIfDisposed(),this.outputTexture===e&&(UB(this.gl,this.framebuffer),this.outputTexture=null),DB(this.gl,(function(){return t.gl.deleteTexture(e)}))},t.downloadByteEncodedFloatMatrixFromOutputTexture=function(e,t,n){var r=this;return this.downloadMatrixDriver(e,(function(){return function(e,t,n,r){var a=RB(t,n),i=a[0],o=a[1],s=new Uint8Array(t*n*4);return DB(e,(function(){return e.readPixels(0,0,i,o,r.downloadTextureFormat,e.UNSIGNED_BYTE,s)})),new Float32Array(s.buffer)}(r.gl,t,n,r.textureConfig)}))},t.downloadPackedMatrixFromBuffer=function(e,t,n,r,a,i){return VW(this.gl,e,0,0,0,a,i,this.textureConfig)},t.downloadFloat32MatrixFromBuffer=function(e,t){return function(e,t,n){var r=e,a=new Float32Array(n);return r.bindBuffer(r.PIXEL_PACK_BUFFER,t),r.getBufferSubData(r.PIXEL_PACK_BUFFER,0,a),r.bindBuffer(r.PIXEL_PACK_BUFFER,null),a}(this.gl,e,t)},t.createBufferFromTexture=function(e,t,n){this.bindTextureToFrameBuffer(e);var r=function(e,t,n,r){var a=e.createBuffer();DB(e,(function(){return e.bindBuffer(e.PIXEL_PACK_BUFFER,a)}));var i=16*t*n;return DB(e,(function(){return e.bufferData(e.PIXEL_PACK_BUFFER,i,e.STREAM_READ)})),DB(e,(function(){return e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)})),DB(e,(function(){return e.bindBuffer(e.PIXEL_PACK_BUFFER,null)})),a}(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),r},t.createAndWaitForFence=function(){var e=this.createFence(this.gl);
17return this.pollFence(e)},t.createFence=function(e){var t,n,r=this;if(uv().getBool("WEBGL_FENCE_API_ENABLED")){var a=e,i=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=function(){var e=a.clientWaitSync(i,0,0);return e===a.ALREADY_SIGNALED||e===a.CONDITION_SATISFIED},t=i}else uv().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=function(){return r.isQueryAvailable(t,uv().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}):n=function(){return!0};return{query:t,isFencePassed:n}},t.downloadMatrixFromPackedTexture=function(e,t,n){var r=this;return this.downloadMatrixDriver(e,(function(){return function(e,t,n){var r=new Float32Array(t*n*4);return DB(e,(function(){return e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,r)})),r}(r.gl,t,n)}))},t.createProgram=function(e){this.throwIfDisposed();var t=this.gl,n=OB(t,e),r=_W(t),a=function(e){return jB(e,(function(){return e.createProgram()}),"Unable to create WebGLProgram.")}(t);return DB(t,(function(){return t.attachShader(a,r)})),DB(t,(function(){return t.attachShader(a,n)})),function(e,t){if(DB(e,(function(){return e.linkProgram(t)})),!1===e.getProgramParameter(t,e.LINK_STATUS))throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}(t,a),this.debug&&BB(t,a),this.vertexAttrsAreBound||(this.setProgram(a),this.vertexAttrsAreBound=function(e,t,n){return DB(e,(function(){return e.bindBuffer(e.ARRAY_BUFFER,n)})),PB(e,t,"clipSpacePos",n,3,20,0)&&PB(e,t,"uv",n,2,20,12)}(t,this.program,this.vertexBuffer)),a},t.deleteProgram=function(e){var t=this;this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&DB(this.gl,(function(){return t.gl.deleteProgram(e)}))},t.setProgram=function(e){var t=this;this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&BB(this.gl,this.program),DB(this.gl,(function(){return t.gl.useProgram(e)}))},t.getUniformLocation=function(e,t,n){return void 0===n&&(n=!0),this.throwIfDisposed(),n?function(e,t,n){return jB(e,(function(){return e.getUniformLocation(t,n)}),'uniform "'+n+'" not present in program.')}(this.gl,e,t):function(e,t,n){return e.getUniformLocation(t,n)}(this.gl,e,t)},t.getAttributeLocation=function(e,t){var n=this;return this.throwIfDisposed(),DB(this.gl,(function(){return n.gl.getAttribLocation(e,t)}))},t.getUniformLocationNoThrow=function(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)},t.setInputMatrixTexture=function(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),WB(this.gl,e,t,n)},t.setOutputMatrixTexture=function(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)},t.setOutputPackedMatrixTexture=function(e,t,n){this.throwIfDisposed();var r=AB(t,n),a=r[0],i=r[1];this.setOutputMatrixTextureDriver(e,a,i)},t.setOutputMatrixWriteRegion=function(e,t,n,r){this.setOutputMatrixWriteRegionDriver(n,e,r,t)},t.setOutputPackedMatrixWriteRegion=function(e,t,n,r){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")},t.debugValidate=function(){null!=this.program&&BB(this.gl,this.program),GB(this.gl)},t.executeProgram=function(){this.throwIfDisposed(),this.throwIfNoProgram();var e=this.gl;this.debug&&this.debugValidate(),DB(e,(function(){return e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)}))},t.blockUntilAllProgramsCompleted=function(){var e=this;this.throwIfDisposed(),DB(this.gl,(function(){return e.gl.finish()}))},t.getQueryTimerExtension=function(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=FB(this.gl,2===uv().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension},t.getQueryTimerExtensionWebGL2=function(){return this.getQueryTimerExtension()},t.getQueryTimerExtensionWebGL1=function(){return this.getQueryTimerExtension()},t.beginQuery=function(){if(2===uv().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){var e=this.gl,t=this.getQueryTimerExtensionWebGL2(),n=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,n),n}var r=this.getQueryTimerExtensionWebGL1(),a=r.createQueryEXT();return r.beginQueryEXT(r.TIME_ELAPSED_EXT,a),a},t.endQuery=function(){if(2!==uv().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){var e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}else{var t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT)}},t.waitForQueryAndGetTime=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,zv((function(){return n.disposed||n.isQueryAvailable(t,uv().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}));case 2:return e.abrupt("return",this.getQueryTime(t,uv().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")));case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getQueryTime=function(e,t){if(0===t)return null;if(2===t){var n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}
17var r=this.getQueryTimerExtensionWebGL1();return r.getQueryObjectEXT(e,r.QUERY_RESULT_EXT)/1e6},t.isQueryAvailable=function(e,t){if(0===t)return!0;if(2===t){var n=this.gl,r=this.getQueryTimerExtensionWebGL2(),a=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),a&&!this.disjoint}var i=this.getQueryTimerExtensionWebGL1(),o=i.getQueryObjectEXT(e,i.QUERY_RESULT_AVAILABLE_EXT);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(i.GPU_DISJOINT_EXT)),o&&!this.disjoint},t.pollFence=function(e){var t=this;return new Promise((function(n){t.addItemToPoll((function(){return e.isFencePassed()}),(function(){return n()}))}))},t.pollItems=function(){for(var e=function(e){for(var t=0;t<e.length;++t){if(!e[t]())break}return t-1}(this.itemsToPoll.map((function(e){return e.isDoneFn}))),t=0;t<=e;++t){(0,this.itemsToPoll[t].resolveFn)()}this.itemsToPoll=this.itemsToPoll.slice(e+1)},t.addItemToPoll=function(e,t){var n=this;this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1||zv((function(){return n.pollItems(),0===n.itemsToPoll.length}))},t.bindTextureToFrameBuffer=function(e){this.throwIfDisposed(),VB(this.gl,e,this.framebuffer),this.debug&&GB(this.gl)},t.unbindTextureToFrameBuffer=function(){null!=this.outputTexture?(VB(this.gl,this.outputTexture,this.framebuffer),this.debug&&GB(this.gl)):UB(this.gl,this.framebuffer)},t.downloadMatrixDriver=function(e,t){this.bindTextureToFrameBuffer(e);var n=t();return this.unbindTextureToFrameBuffer(),n},t.setOutputMatrixTextureDriver=function(e,t,n){this.throwIfDisposed();var r=this.gl;VB(r,e,this.framebuffer),this.debug&&GB(r),this.outputTexture=e,DB(r,(function(){return r.viewport(0,0,t,n)})),DB(r,(function(){return r.scissor(0,0,t,n)}))},t.setOutputMatrixWriteRegionDriver=function(e,t,n,r){var a=this;this.throwIfDisposed(),DB(this.gl,(function(){return a.gl.scissor(e,t,n,r)}))},t.throwIfDisposed=function(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")},t.throwIfNoProgram=function(){if(null==this.program)throw new Error("No GPU program is currently set.")},Hm(e,[{key:"debug",get:function(){return uv().getBool("DEBUG")}}]),e}();function GW(e,t){if(e.length!==t.length)throw Error("Binary was compiled with "+e.length+" inputs, but was executed with "+t.length+" inputs");e.forEach((function(e,n){var r=e.logicalShape,a=t[n],i=a.shape;if(!Fv(r,i))throw Error("Binary was compiled with different shapes than the current args. Shapes "+r+" and "+i+" must match");if(!e.isUniform||!a.isUniform){var o=e.texShape,s=a.isUniform?null:a.texData.texShape;if(!Fv(o,s))throw Error("Binary was compiled with different texture shapes than the current args. Shape "+o+" and "+s+" must match")}}))}var jW=function(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;for(var r=n.filterWidth,a=n.inChannels,i=n.strideWidth,o=n.strideHeight,s=n.padInfo,u=n.outWidth,l=n.dilationWidth,c=n.dilationHeight,p=n.dataFormat,h=s.left,f=s.top,d=a*r,m=kP(),v="channelsLast"===p,g=v?0:1,y=v?1:2,b="",x=0;x<=1;x++)for(var w=0;w<=1;w++)b+="\n          blockIndex = rc.y + "+w+";\n          pos = rc.x + "+x+";\n\n          if(blockIndex < "+e[1]+" && pos < "+e[0]+") {\n            offsetY = int(blockIndex / ("+u+")) * "+o+" - "+f+";\n            d0 = offsetY + "+c+" * (pos / "+d+");\n\n            if(d0 < "+t[g]+" && d0 >= 0) {\n\n              offsetX = int(mod(float(blockIndex), "+u+".) * "+i+". - "+h+".);\n              d1 = offsetX + "+l+" * (int(mod(float(pos), "+d+".) / "+a+".));\n\n              if(d1 < "+t[y]+" && d1 >= 0) {\n\n                ch = int(mod(float(pos), "+a+".));\n\n                if ("+v+") {\n                  innerDims = vec2(d1, ch);\n                  result["+(2*x+w)+"] = getChannel(\n                    getA(d0, int(innerDims.x),\n                    int(innerDims.y)), innerDims);\n                } else {\n                  innerDims = vec2(d0, d1);\n                  result["+(2*x+w)+"] = getChannel(\n                    getA(ch, int(innerDims.x),\n                    int(innerDims.y)), innerDims);\n                }\n              }\n            }\n          }\n        ";this.userCode="\n      void main() {\n        ivec2 rc = getOutputCoords();\n\n        vec4 result = vec4(0);\n\n        int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n        vec2 innerDims;\n\n        "+b+"\n\n        "+m.output+" = result;\n      }\n    "},HW=function(e,t,n,r,a){this.variableNames=["x"],this.outputShape=[];var i,o=t,s=e[3]-1;this.outputShape=e;var u="float("+n+") + float("+r+") * sum";i=.5===a?"inversesqrt("+u+")":1===a?"1.0/("+u+")":"exp(log("+u+") * float(-"+a+"));",this.userCode="\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int r = coords[1];\n        int c = coords[2];\n        int d = coords[3];\n        float x = getX(b, r, c, d);\n        float sum = 0.0;
17\n        for (int j = -"+o+"; j <= "+o+"; j++) {\n          int idx = d + j;\n          if (idx >= 0 && idx <=  "+s+") {\n            float z = getX(b, r, c, idx);\n            sum += z * z;\n          }\n        }\n        float val = x * "+i+";\n        setOutput(val);\n      }\n    "},qW=function(e,t,n,r,a){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=r,this.beta=a,this.userCode="\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int r = coords[1];\n        int c = coords[2];\n\n        float result = 0.0;\n        for (int d = 0; d < "+this.depth+"; ++d) {\n          int depthBegin = int(max(0.0, float(d - "+t+")));\n          int depthEnd = int(min(float("+this.depth+"),\n              float(d + "+t+" + 1)));\n\n          const int MIN_DEPTH_BEGIN = 0;\n          const int MAX_DEPTH_END = "+this.depth+";\n\n          float norm = 0.0;\n          for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n            if (k < depthBegin){\n              continue;\n            }\n            else if (k >= depthBegin && k < depthEnd) {\n              norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n            }\n            else {\n              break;\n            }\n          }\n\n          norm = float("+r+") * norm + float("+n+");\n\n          for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n            if (k < depthBegin){\n              continue;\n            }\n            else if (k >= depthBegin && k < depthEnd){\n              float dyi = -2.0 * float("+r+")\n                * float("+a+")\n                * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n                / norm;\n              if (k == d) {\n                dyi += pow(norm, -1.0 * "+a+");\n              }\n              if (k == coords[3]) {\n                dyi *= getDy(b, r, c, d);\n                result += dyi;\n              }\n            }\n            else {\n              break;\n            }\n          }\n      }\n      setOutput(result);\n      }\n    "},KW=function(e,t,n,r,a){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;var i,o=t,s=e[3]-1;this.outputShape=e;var u="float("+n+") + float("+r+") * sum";i=.5===a?"inversesqrt("+u+")":1===a?"1.0/("+u+")":"exp(log("+u+") * float(-"+a+"));",this.userCode="\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords.x;\n        int r = coords.y;\n        int c = coords.z;\n        int d = coords.w;\n\n        bool hasNextCol = d < "+this.outputShape[3]+";\n        bool hasNextRow = c < "+this.outputShape[2]+";\n\n        vec4 sum = vec4(0.);\n        vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n        vec4 xAtOutputCoords = vec4(\n          getChannel(xFragAtOutputCoords, vec2(c, d)),\n          hasNextCol ?\n            getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n          hasNextRow ?\n            getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n        );\n\n        int firstChannel = d - "+o+";\n        vec2 cache = vec2(0.);\n        if(firstChannel >= 0){\n          vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n          cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n            if(hasNextRow){\n              cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n            }\n        }\n\n        ivec2 depth = ivec2(d, d + 1);\n        for (int j = - "+o+"; j <= "+o+"; j++) {\n          ivec2 idx = depth + j;\n          bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n          bvec2 belowUpperBound = lessThanEqual(idx, ivec2("+s+"));\n\n          bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n          bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n          if(depthInRange || depthPlusOneInRange){\n            vec4 z = vec4(0.);\n            vec4 xFragAtCurrentDepth;\n            z.xz = cache.xy;\n            if(depthPlusOneInRange && hasNextCol){\n              xFragAtCurrentDepth = idx.y != d ?\n                getX(b, r, c, idx.y) : xFragAtOutputCoords;\n              z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n              if(hasNextRow){\n                z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n              }\n            }\n            cache.xy = z.yw;\n            sum += z * z;\n          }\n        }\n        vec4 result = xAtOutputCoords * "+i+";\n        setOutput(result);\n      }\n    "},XW=function(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;var t=e.strideHeight,n=e.strideWidth,r=e.dilationHeight,a=e.effectiveFilterHeight,i=e.effectiveFilterWidth,o=a-1-e.padInfo.top,s=i-1-e.padInfo.left,u=a*i-1;this.userCode="\n      const ivec2 pads = ivec2("+o+", "+s+");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n\n        ivec2 dyRCCorner = coords.yz - pads;\n        int dyRCorner = dyRCCorner.x;\n        int dyCCorner = dyRCCorner.y;\n\n        // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        for (int wR = 0; wR < "+a+";\n          wR += "+r+") {\n          float dyR = float(dyRCorner + wR) / "+t+".0;\n\n          if (dyR < 0.0 || dyR >= "+e.outHeight+".0 || fract(dyR) > 0.0) {\n            continue;\n          }\n          int idyR = int(dyR);\n\n          for (int wC = 0; wC < "+i+"; wC++) {\n            float dyC = float(dyCCorner + wC) / "+n+".0;\n\n            if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n                fract(dyC) > 0.0) {\n              continue;\n            }\n            int idyC = int(dyC);\n\n            float dyValue = getDy(b, idyR, idyC, d);\n            int maxPosValue = "+u+" - int(getMaxPos(b, idyR, idyC, d));\n\n            // Get the current value, check it against the value from the\n            // position matrix.\n            int curPosValue = wR * "+i+" + wC;\n            float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n            dotProd += dyValue * mask;\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},YW=function(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;var t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,a=e.dilationDepth,i=e.dilationHeight,o=e.dilationWidth,s=e.effectiveFilterDepth,u=e.effectiveFilterHeight,l=e.effectiveFilterWidth,c=s-1-e.padInfo.front,p=u-1-e.padInfo.top,h=l-1-e.padInfo.left,f=s*u*l-1;this.userCode="\n      const ivec3 pads = ivec3("+c+", "+p+", "+h+");\n\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int batch = coords.x;\n        int ch = coords.u;\n\n        ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n        int dyDCorner = dyCorner.x;\n        int dyRCorner = dyCorner.y;\n        int dyCCorner = dyCorner.z;\n\n        // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n        // dx(x
17D, xR, xC, ch).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n\n        for (int wD = 0; wD < "+s+";\n           wD += "+a+") {\n          float dyD = float(dyDCorner + wD) / "+t+".0;\n\n          if (dyD < 0.0 || dyD >= "+e.outDepth+".0 || fract(dyD) > 0.0) {\n            continue;\n          }\n          int idyD = int(dyD);\n\n          for (int wR = 0; wR < "+u+";\n              wR += "+i+") {\n            float dyR = float(dyRCorner + wR) / "+n+".0;\n\n            if (dyR < 0.0 || dyR >= "+e.outHeight+".0 ||\n                fract(dyR) > 0.0) {\n              continue;\n            }\n            int idyR = int(dyR);\n\n            for (int wC = 0; wC < "+l+";\n                wC += "+o+") {\n              float dyC = float(dyCCorner + wC) / "+r+".0;\n\n              if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n                  fract(dyC) > 0.0) {\n                continue;\n              }\n              int idyC = int(dyC);\n\n              float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n              int maxPosValue = "+f+" -\n                  int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n              // Get the current value, check it against the value from the\n              // position matrix.\n              int curPosValue =\n                  wD * "+u+" * "+l+" +\n                  wR * "+l+" + wC;\n              float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n              dotProd += dyValue * mask;\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    "},JW=function(e,t,n,r,a,i,o){void 0===n&&(n=!1),void 0===r&&(r=!1),void 0===a&&(a=!1),void 0===i&&(i=null),void 0===o&&(o=!1),this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t;var s=n?e[1]:e[2],u=Math.ceil(s/2),l=n?"i * 2, rc.y":"rc.y, i * 2",c=r?"rc.z, i * 2":"i * 2, rc.z",p=n?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],h=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",d="";i&&(f=o?"vec4 activation(vec4 a) {\n          vec4 b = getPreluActivationWeightsAtOutCoords();\n          "+i+"\n        }":"vec4 activation(vec4 x) {\n          "+i+"\n        }",d="result = activation(result);");var m=a?"result += getBiasAtOutCoords();":"";a&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),this.userCode="\n      "+f+"\n\n      const float sharedDimension = "+u+".0;\n\n      vec4 dot2x2ARowBCol(ivec3 rc) {\n        vec4 result = vec4(0);\n        for (int i = 0; i < "+u+"; i++) {\n          vec4 a = getMatrixA(rc.x, "+l+");\n          vec4 b = getMatrixB(rc.x, "+c+");\n\n          // These swizzled products need to be separately added.\n          // See: https://github.com/tensorflow/tfjs/issues/1735\n          result += ("+p[0]+" * "+h[0]+");\n          result += ("+p[1]+" * "+h[1]+");\n        }\n        return result;\n      }\n\n      void main() {\n        ivec3 rc = getOutputCoords();\n        vec4 result = dot2x2ARowBCol(rc);\n\n        "+m+"\n\n        "+d+"\n\n        setOutput(result);\n      }\n    "},ZW=function(){function e(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode="\n      uniform float seed;\n\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int batch = coords[0];\n\n        float r = random(seed);\n        float cdf = 0.0;\n\n        for (int i = 0; i < "+(t-1)+"; i++) {\n          cdf += getProbs(batch, i);\n\n          if (r < cdf) {\n            setOutput(float(i));\n            return;\n          }\n        }\n\n        // If no other event happened, last event happened.\n        setOutput(float("+(t-1)+"));\n      }\n    "}return e.prototype.getCustomSetupFunc=function(e){var t=this;return function(n,r){null==t.seedLoc&&(t.seedLoc=n.getUniformLocation(r,"seed")),n.gl.uniform1f(t.seedLoc,e)}},e}(),QW=function(e,t,n,r){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode="\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int index = round(getIndices(coords.x));\n        setOutput(mix(float("+r+"), float("+n+"),\n                      float(index == coords.y)));\n      }\n    "},$W=function(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e;var t=e.length;if(0===t)this.userCode="\n        void main() {\n          setOutput(vec4(getA(), 0., 0., 0.));\n        }\n      ";else{var n=wP("rc",t),r=LP(t),a=function(e,t,n){if(1===e)return"rc > "+t[0];for(var r="",a=e-2;a<e;a++)r+=n[a]+" >= "+t[a],a<e-1&&(r+="||");return r}(t,e,n),i=function(e,t,n,r){if(1===e)return"";var a=r.slice(-2);return"\n    int r = "+a[0]+";\n    int c = "+a[1]+";\n    int rp1 = r + 1;\n    int cp1 = c + 1;\n\n    bool cEdge = cp1 >= "+t+";\n    bool rEdge = rp1 >= "+n+";\n  "}(t,e[e.length-1],e[e.length-2],n),o=function(e,t){var n=e.length,r=function(e,t){for(var n=[],r=0;r<=1;r++)for(var a=0;a<=1;a++){for(var i=(0===r?"r":"rp1")+", "+(0===a?"c":"cp1"),o=2;o<e;o++)i=t[t.length-1-o]+","+i;n.push(i)}return n}(n,t);if(1===n)return"getA(rc),\n            rc + 1 >= "+e[0]+" ? 0. : getA(rc + 1),\n            0, 0";return"getA("+r[0]+"),\n          cEdge ? 0. : getA("+r[1]+"),\n          rE
17dge ? 0. : getA("+r[2]+"),\n          rEdge || cEdge ? 0. : getA("+r[3]+")"}(e,n);this.userCode="\n        void main() {\n          "+r+" rc = getOutputCoords();\n\n          if("+a+") {\n            setOutput(vec4(0));\n          } else {\n            "+i+"\n\n            setOutput(vec4("+o+"));\n          }\n        }\n      "}};var eV=function(e,t,n){this.variableNames=["x"],this.outputShape=t.map((function(t,n){return t[0]+e[n]+t[1]}));var r=e.length,a=LP(r),i=t.map((function(e){return e[0]})).join(","),o=t.map((function(t,n){return t[0]+e[n]})).join(","),s=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r);this.userCode=1!==r?"\n      "+a+" start = "+a+"("+i+");\n      "+a+" end = "+a+"("+o+");\n\n      void main() {\n        "+a+" outC = getOutputCoords();\n        if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n          setOutput(float("+n+"));\n        } else {\n          "+a+" coords = outC - start;\n          setOutput(getX("+s+"));\n        }\n      }\n    ":"\n        int start = "+i+";\n        int end = "+o+";\n\n        void main() {\n          int outC = getOutputCoords();\n          if (outC < start || outC >= end) {\n            setOutput(float("+n+"));\n          } else {\n            setOutput(getX(outC - start));\n          }\n        }\n      "},tV=function(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((function(t,n){return t[0]+e[n]+t[1]}));for(var r=e.length,a=LP(r),i=t.map((function(e){return e[0]})).join(","),o=t.map((function(t,n){return t[0]+e[n]})).join(","),s=wP("rc",r),u=wP("source",r),l=s[r-1]+" < "+this.outputShape[r-1],c=1===r?"source":"vec2("+u.slice(-2).join()+")",p=[a+" rc = outputLoc;",s[r-1]+" += 1;\n       if("+l+") {\n      ",1===r?"":"}\n       rc = outputLoc;\n       "+s[r-2]+" += 1;\n       if("+s[r-2]+" < "+this.outputShape[r-2]+") {",1===r?"":"  "+s[r-1]+" += 1;\n         if("+l+") {"],h=1===r?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))",f="",d=0,m=1===r?2:4;d<m;d++)f+="\n        "+p[d]+"\n        if ("+h+") {\n          result["+d+"] = float("+n+");\n        } else {\n          "+a+" source = rc - start;\n          result["+d+"] = getChannel(getX("+u.join()+"), "+c+");\n        }\n      ";f+=1===r?"} ":"}}",this.userCode="\n      const "+a+" start = "+a+"("+i+");\n      const "+a+" end = "+a+"("+o+");\n\n      void main() {\n        "+a+" outputLoc = getOutputCoords();\n        vec4 result = vec4(0.);\n        "+f+"\n        setOutput(result);\n      }\n    "},nV=function(e,t,n,r,a){if(void 0===r&&(r=!1),void 0===a&&(a=!1),this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");var i=e.filterWidth,o=e.strideHeight,s=e.strideWidth,u=e.dilationHeight,l=e.dilationWidth,c=e.effectiveFilterHeight,p=e.effectiveFilterWidth,h=e.padInfo.top,f=e.padInfo.left;this.outputShape=e.outShape;var d="avg"===t,m="((batch  * "+e.inHeight+" + xR) * "+e.inWidth+" + xC) * "+e.inChannels+" + d",v="(xR * "+e.inWidth+" + xC) * "+e.inChannels+" + d",g="0.0";if(d||(g="-1.0 / 1e-20"),n){this.userCode="\n        const ivec2 strides = ivec2("+o+", "+s+");\n        const ivec2 pads = ivec2("+h+", "+f+");\n\n        void main() {\n          ivec4 coords = getOutputCoords();\n          int batch = coords[0];\n          int d = coords[3];\n\n          ivec2 xRCCorner = coords.yz * strides - pads;\n          int xRCorner = xRCCorner.x;\n          int xCCorner = xRCCorner.y;\n\n          // max/min x(?, ?, d) to get y(yR, yC, d).\n          // ? = to be determined\n          float minMaxValue = 0.0;\n          float minMaxValueFound = 0.0;\n          int minMaxPosition = 0;\n          float avgValue = 0.0;\n\n          for (int wR = 0; wR < "+c+";\n              wR += "+u+") {\n            int xR = xRCorner + wR;\n\n            if (xR < 0 || xR >= "+e.inHeight+") {\n              continue;\n            }\n\n            for (int wC = 0; wC < "+p+";\n                wC += "+l+") {\n              int xC = xCCorner + wC;\n\n              if (xC < 0 || xC >= "+e.inWidth+") {\n                continue;\n              }\n\n              float value = getX(batch, xR, xC, d);\n\n              // If a min / max value has already been found, use it. If not,\n              // use the current value.\n              float currMinMaxValue = mix(\n                  value, minMaxValue, minMaxValueFound);\n              if (value >= currMinMaxValue) {\n                minMaxValue = value;\n                minMaxValueFound = 1.0;\n                minMaxPosition = "+(r?a?m:v:"wR * "+p+" + wC")+";\n              }\n            }\n          }\n          setOutput(float(minMaxPosition));\n        }\n      "}
17else{var y=t+"("+t+"("+t+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"avg"===t&&(y="avgValue / count");var b=4*Math.floor(i/4),x=i%4,w="\n      if ("+d+") {\n        avgValue += dot(values, ones);\n      } else {\n        minMaxValue = max(values, minMaxValue);\n      }\n    ";this.userCode="\n      const ivec2 strides = ivec2("+o+", "+s+");\n      const ivec2 pads = ivec2("+h+", "+f+");\n      const float initializationValue = "+g+";\n      const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n      float count = 0.0;\n\n      float getValue(int batch, int xR, int xC, int d) {\n        if (xC < 0 || xC >= "+e.inWidth+") {\n          return initializationValue;\n        }\n        count += 1.0;\n        return getX(batch, xR, xC, d);\n      }\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords[0];\n        int d = coords[3];\n\n        ivec2 xRCCorner = coords.yz * strides - pads;\n        int xRCorner = xRCCorner.x;\n        int xCCorner = xRCCorner.y;\n\n        // max/min x(?, ?, d) to get y(yR, yC, d).\n        // ? = to be determined\n        vec4 minMaxValue = vec4("+g+");\n        float avgValue = 0.0;\n        count = 0.0;\n\n        for (int wR = 0; wR < "+c+";\n            wR += "+u+") {\n          int xR = xRCorner + wR;\n\n          if (xR < 0 || xR >= "+e.inHeight+") {\n            continue;\n          }\n\n          for (int wC = 0; wC < "+b+"; wC += 4) {\n            int xC = xCCorner + wC * "+l+";\n\n            vec4 values = vec4(\n              getValue(batch, xR, xC, d),\n              getValue(batch, xR, xC + "+l+", d),\n              getValue(batch, xR, xC + 2 * "+l+", d),\n              getValue(batch, xR, xC + 3 * "+l+", d)\n            );\n\n            "+w+"\n          }\n\n          int xC = xCCorner + "+b+";\n          if ("+(1===x)+") {\n            vec4 values = vec4(\n              getValue(batch, xR, xC, d),\n              initializationValue,\n              initializationValue,\n              initializationValue\n            );\n\n            "+w+"\n          } else if ("+(2===x)+") {\n            vec4 values = vec4(\n              getValue(batch, xR, xC, d),\n              getValue(batch, xR, xC + "+l+", d),\n              initializationValue,\n              initializationValue\n            );\n\n            "+w+"\n          } else if ("+(3===x)+") {\n            vec4 values = vec4(\n              getValue(batch, xR, xC, d),\n              getValue(batch, xR, xC + "+l+", d),\n              getValue(batch, xR, xC + 2 * "+l+", d),\n              initializationValue\n            );\n\n            "+w+"\n          }\n        }\n        setOutput("+y+");\n      }\n    "}},rV=function(e,t,n,r,a){if(void 0===r&&(r=!1),void 0===a&&(a=!1),this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");var i=e.filterWidth,o=e.strideDepth,s=e.strideHeight,u=e.strideWidth,l=e.dilationDepth,c=e.dilationHeight,p=e.dilationWidth,h=e.effectiveFilterDepth,f=e.effectiveFilterHeight,d=e.effectiveFilterWidth,m=e.padInfo.front,v=e.padInfo.top,g=e.padInfo.left;this.outputShape=e.outShape;var y="avg"===t,b="0.0";if(y||(b="-1.0 / 1e-20"),n){this.userCode="\n        const ivec3 strides =\n            ivec3("+o+", "+s+", "+u+");\n        const ivec3 pads = ivec3("+m+", "+v+", "+g+");\n\n        void main() {\n          ivec5 coords = getOutputCoords();\n          int batch = coords.x;\n          int ch = coords.u;\n\n          ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n          int xDCorner = xCorner.x;\n          int xRCorner = xCorner.y;\n          int xCCorner = xCorner.z;\n\n          // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n          // ? = to be determined\n          float minMaxValue = 0.0;\n          float minMaxValueFound = 0.0;\n          int minMaxPosition = 0;\n\n          for (int wD = 0; wD < "+h+";\n              wD += "+l+") {\n            int xD = xDCorner + wD;\n\n            if (xD < 0 || xD >= "+e.inDepth+") {\n              continue;\n            }\n\n            for (int wR = 0; wR < "+f+";\n                wR += "+c+") {\n              int xR = xRCorner + wR;\n\n              if (xR < 0 || xR >= "+e.inHeight+") {\n                continue;\n              }\n\n              for (int wC = 0; wC < "+d+";\n                  wC += "+p+") {\n                int xC = xCCorner + wC;\n\n                if (xC < 0 || xC >= "+e.inWidth+") {\n                  continue;\n                }\n\n                float value = getX(batch, xD, xR, xC, ch);\n\n                // If a min / max value has already been found, use it. If not,\n                // use the current value.\n                float currMinMaxValue = mix(\n                    value, minMaxValue, minMaxValueFound);\n                if (value >= currMinMaxValue) {\n                  minMaxValue = value;\n                  minMaxValueFound = 1.0;\n                  minMaxPosition = "+(r?a?"(((batch * "+e.inDepth+" + xD) * "+e.inHeight+" + xR) * "+e.inWidth+" + xC) * "+e.inChannels+" 
17+ ch":"((xD * "+e.inHeight+" + xR) * "+e.inWidth+" + xC) * "+e.inChannels+" + ch":"wD * "+f+" * "+d+" +\n                      wR * "+d+" + wC")+";\n                }\n              }\n            }\n          }\n          setOutput(float(minMaxPosition));\n        }\n      "}else{var x=t+"("+t+"("+t+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"avg"===t&&(x="avgValue / count");var w=4*Math.floor(i/4),k=i%4,S="\n      if ("+y+") {\n        avgValue += dot(values, ones);\n      } else {\n        minMaxValue = max(values, minMaxValue);\n      }\n    ";this.userCode="\n      const ivec3 strides =\n        ivec3("+o+", "+s+", "+u+");\n      const ivec3 pads = ivec3("+m+", "+v+", "+g+");\n      const float initializationValue = "+b+";\n      const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n      float count = 0.0;\n\n      float getValue(int batch, int xD, int xR, int xC, int ch) {\n        if (xC < 0 || xC >= "+e.inWidth+") {\n          return initializationValue;\n        }\n        count += 1.0;\n        return getX(batch, xD, xR, xC, ch);\n      }\n\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int batch = coords.x;\n        int ch = coords.u;\n\n        ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n        int xDCorner = xCorner.x;\n        int xRCorner = xCorner.y;\n        int xCCorner = xCorner.z;\n\n        // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n        // ? = to be determined\n        vec4 minMaxValue = vec4("+b+");\n        float avgValue = 0.0;\n        count = 0.0;\n\n        for (int wD = 0; wD < "+h+";\n            wD += "+l+") {\n          int xD = xDCorner + wD;\n\n          if (xD < 0 || xD >= "+e.inDepth+") {\n            continue;\n          }\n\n          for (int wR = 0; wR < "+f+";\n            wR += "+c+") {\n            int xR = xRCorner + wR;\n\n            if (xR < 0 || xR >= "+e.inHeight+") {\n              continue;\n            }\n\n            for (int wC = 0; wC < "+w+"; wC += 4) {\n              int xC = xCCorner + wC * "+p+";\n\n              vec4 values = vec4(\n                getValue(batch, xD, xR, xC, ch),\n                getValue(batch, xD, xR, xC + "+p+", ch),\n                getValue(batch, xD, xR, xC + 2 * "+p+", ch),\n                getValue(batch, xD, xR, xC + 3 * "+p+", ch)\n              );\n\n              "+S+"\n            }\n\n            int xC = xCCorner + "+w+";\n            if ("+(1===k)+") {\n              vec4 values = vec4(\n                getValue(batch, xD, xR, xC, ch),\n                initializationValue,\n                initializationValue,\n                initializationValue\n              );\n\n              "+S+"\n            } else if ("+(2===k)+") {\n              vec4 values = vec4(\n                getValue(batch, xD, xR, xC, ch),\n                getValue(batch, xD, xR, xC + "+p+", ch),\n                initializationValue,\n                initializationValue\n              );\n\n              "+S+"\n            } else if ("+(3===k)+") {\n              vec4 values = vec4(\n                getValue(batch, xD, xR, xC, ch),\n                getValue(batch, xD, xR, xC + "+p+", ch),\n                getValue(batch, xD, xR, xC + 2 * "+p+", ch),\n                initializationValue\n              );\n\n              "+S+"\n            }\n          }\n          setOutput("+x+");\n        }\n      }\n    "}},aV=function(e,t){this.variableNames=["x"];var n=e.windowSize,r=e.batchSize,a=e.inSize,i=e.outSize;this.outputShape=[r,i];var o="0.0",s="";"prod"===t?o="1.0":"min"===t?(o="1.0 / 1e-20",s="min"):"max"===t&&(o="-1.0 / 1e-20",s="max");var u=t+"("+t+"("+t+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"sum"===t?u="sumValue":"prod"===t?u="prodValue":"all"===t?u="allValue":"any"===t&&(u="anyValue");var l=4*Math.floor(n/4),c=n%4,p="\n      if ("+("sum"===t)+") {\n        sumValue += dot(values, ones);\n      } else if ("+("prod"===t)+") {\n        vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n        prodValue *= tmp[0] * tmp[1];\n      } else {\n        minMaxValue = "+s+"(values, minMaxValue);\n      }\n    ",h="vec4";"all"===t?(o="1.0",p="\n        bool reducedAllValue = all(values);\n        float floatedReducedAllValue = float(reducedAllValue);\n        allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n      ",h="bvec4"):"any"===t&&(o="0.0",p="\n        bool reducedAnyValue = any(values);\n        float floatedReducedAnyValue = float(reducedAnyValue);\n        anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n      ",h="bvec4");var f="";a%n>0&&(f="\n        if (inIdx < 0 || inIdx >= "+a+") {\n          return initializationValue;\n        }\n      "),this.userCode="\n      const float initializationValue = "+o+";\n      const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n      float getValue(int batch, int inIdx) {\n        "+f+"\n        return getX(batch, inIdx);\n      }\n\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int batch = coords[0];\n        int outIdx = coords[1];\n        int inOffset = outIdx * "+n+";\n\n        vec4 minMaxValue = vec4("+o+");\n        float prodValue = 1.0;\n        float sumValue = 0.0;\n        float allValue = 1.0;\n        float anyValue = 0.0;\n\n        for (int i = 0; i < "+l+"; i += 4) {\n          int inIdx = inOffset + i;\n          "+h+" values = "+h+"(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2),\n            getValue(batch, inIdx + 3)\n          );\n\n          "+p+"\n        }\n\n        int inIdx = inOffset + "+l+";\n        if ("+(1===c)+") {\n          "+h+" values = "+h+"(\n            getValue(batch, inIdx),\n            initializationValue,\n            initializationValue,\n            initializationValue\n          );\n\n          "+p+"\n        } else if ("+(2===c)+") {\n          "+h+" values = "+h+"(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            initializationValue,\n            initializationValue\n          );\n\n          "+p+"\n        } else if ("+(3===c)+") {\n          "+h+" values = "+h+"(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2),\n            initializationValue\n          );\n\n          "+p+"\n        }\n        setOutput("+u+");\n      }\n    "},iV=function(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;for(var n="",r=0;r<4;r++){var a="thisRC = rc;";r%2==1&&(a+="thisRC.z += 1;"),r>1&&(a+="thisRC.y += 1;"),n+="\n        "+a+"\n        "+(r>0?"if(thisRC.y < rows && thisRC.z < cols){":"")+"\n          int flatIndex = getFlatIndex(thisRC);
17\n\n          ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n          vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n          result["+r+"] =\n            getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n        "+(r>0?"}":"")+"\n      "}this.userCode="\n      "+("\n    ivec3 inputCoordsFromReshapedOutCoords(int index) {\n      "+SP(["r","c","d"],t)+"\n      return ivec3(r, c, d);\n    }\n  \n      ")+NP(e)+"\n\n      void main() {\n        ivec3 rc = getOutputCoords();\n\n        vec4 result = vec4(0.);\n\n        ivec3 thisRC;\n        int rows = "+e[1]+";\n        int cols = "+e[2]+";\n\n        "+n+"\n\n        setOutput(result);\n      }\n    "};var oV=function(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;var r=t.shape,a=r[1],i=r[2],o=e.shape,s=o[1],u=o[2],l=[n&&s>1?a-1:a,n&&u>1?i-1:i],c=[n&&s>1?s-1:s,n&&u>1?u-1:u],p=l[0]/c[0],h=l[1]/c[1],f=1/p,d=1/h,m=2*Math.ceil(f)+2,v=2*Math.ceil(d)+2;this.userCode="\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        int r = coords[1];\n        int c = coords[2];\n\n        float accumulator = 0.0;\n\n        const float heightScale = float("+p+");\n        const float widthScale = float("+h+");\n\n        const float invHeightScale = float("+f+");\n        const float invWidthScale = float("+d+");\n\n        const int winHeight = int("+m+");\n        const int winWidth = int("+v+");\n\n        // Compute bounds for where in dy we will look\n        float startRLerp = floor(float(r) * invHeightScale);\n        int startDyR = int(startRLerp - float(winHeight / 2));\n\n        float startCLerp = floor(float(c) * invWidthScale);\n        int startDyC = int(startCLerp - float(winWidth / 2));\n\n        // Loop over dy\n        for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n          int dyR = dyROffset + startDyR;\n\n          // Guard against the window exceeding the bounds of dy\n          if (dyR < 0 || dyR >= "+s+") {\n            continue;\n          }\n\n          for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n            int dyC = dyCOffset + startDyC;\n\n            // Guard against the window exceeding the bounds of dy\n            if (dyC < 0 || dyC >= "+u+") {\n              continue;\n            }\n\n            float dxR = float(dyR) * heightScale;\n            int topDxRIndex = int(floor(dxR));\n            int bottomDxRIndex = int(min(ceil(dxR), "+(a-1)+".0));\n            float dxRLerp = dxR - float(topDxRIndex);\n            float inverseDxRLerp = 1.0 - dxRLerp;\n\n            float dxC = float(dyC) * widthScale;\n            int leftDxCIndex = int(floor(dxC));\n            int rightDxCIndex = int(min(ceil(dxC), "+(i-1)+".0));\n            float dxCLerp = dxC - float(leftDxCIndex);\n            float inverseDxCLerp = 1.0 - dxCLerp;\n\n            if (r == topDxRIndex && c == leftDxCIndex) {\n              // topLeft\n              accumulator +=\n                getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n            }\n\n            if (r == topDxRIndex && c == rightDxCIndex) {\n              // topRight\n              accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n            }\n\n            if (r == bottomDxRIndex && c == leftDxCIndex) {\n              // bottomLeft\n              accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n            }\n\n            if (r == bottomDxRIndex && c == rightDxCIndex) {\n              // bottomRight\n              accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n            }\n          }\n        }\n        // End loop over dy\n\n        setOutput(accumulator);\n      }\n    "},sV=function(e,t,n,r){this.variableNames=["A"],this.outputShape=[];var a=e[0],i=e[1],o=e[2],s=e[3];this.outputShape=[a,t,n,s];var u=[r&&t>1?i-1:i,r&&n>1?o-1:o],l=[r&&t>1?t-1:t,r&&n>1?n-1:n];this.userCode="\n      const vec2 effectiveInputOverOutputRatioRC = vec2(\n          "+u[0]/l[0]+",\n          "+u[1]/l[1]+");\n      const vec2 inputShapeRC = vec2("+i+".0, "+o+".0);\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        ivec2 yRC = coords.yz;\n\n        // Fractional source index.\n        vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\n\n        // Compute the four integer indices.\n        ivec2 sourceFloorRC = ivec2(sourceFracIndexRC);\n        ivec2 sourceCeilRC = ivec2(\n          min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n        float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n        float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n        float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n        float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n        vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n        float top = topLeft + (topRight - topLeft) * fracRC.y;\n        float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n        float newValue = top + (bottom - top) * fracRC.x;\n\n        setOutput(newValue);\n      }\n    "},uV=function(e,t,n,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];var a=e[0],i=e[1],o=e[2],s=e[3];this.outputShape=[a,t,n,s];var u=[r&&t>1?i-1:i,r&&n>1?o-1:o],l=[r&&t>1?t-1:t,r&&n>1?n-1:n];this.userCode="\n      const vec3 effectiveInputOverOutputRatioRC = vec3(\n          "+u[0]/l[0]+",\n          "+u[1]/l[1]+",\n          "+u[1]/l[1]+");\n      const vec3 inputShapeRC = vec3("+i+".0, "+o+".0,\n                                     "+o+".0);\n\n      float getAValue(int b, int r, int c, int d) {\n        return getChannel(getA(b, r, c, d), vec2(c, d));\n      }\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        // Calculate values for next column in yRC.z.\n        ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n        // Fractional source index.\n        vec3 sourceFracIndexRC = vec3(yRC) * effectiveInputOverOutputRatioRC;\n\n        // Compute the four integer indices.\n        ivec3 sourceFloorRC = ivec3(sourceFracIndexRC);\n        ivec3 sourceCeilRC = ivec3(\n          min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n        // Should we calculate next column and row elements in 2x2 packed cell.\n        bool hasNextCol = d < "+(s-1)+";\n        bool hasNextRow = coords.z < "+(n-1)+"
vendor: 2,064 bytes, line 17
17;\n\n        // In parallel, construct four corners for all four components in\n        // packed 2x2 cell.\n        vec4 topLeft = vec4(\n          getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n          hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n                     : 0.0,\n          hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n                     : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n        vec4 bottomLeft = vec4(\n          getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n          hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n                     : 0.0,\n          hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n                     : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n        vec4 topRight = vec4(\n          getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n          hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n                     : 0.0,\n          hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n                     : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n        vec4 bottomRight = vec4(\n          getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n          hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n                     : 0.0,\n          hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n                     : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n        vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n        vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n        vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n        vec4 newValue = mix(top, bottom, fracRC.x);\n\n        setOutput(newValue);\n      }\n    
17"},lV=function(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;var r=t.shape,a=r[1],i=r[2],o=e.shape,s=o[1],u=o[2],l=[n&&s>1?a-1:a,n&&u>1?i-1:i],c=[n&&s>1?s-1:s,n&&u>1?u-1:u],p=l[0]/c[0],h=l[1]/c[1],f=1/p,d=1/h,m=2*Math.ceil(f)+2,v=2*Math.ceil(d)+2;this.userCode="\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        int r = coords[1];\n        int c = coords[2];\n\n        float accumulator = 0.0;\n\n        const float heightScale = float("+p+");\n        const float widthScale = float("+h+");\n\n        const float invHeightScale = float("+f+");\n        const float invWidthScale = float("+d+");\n\n        const int winHeight = int("+m+");\n        const int winWidth = int("+v+");\n\n        // Compute bounds for where in dy we will look\n        float startRLerp = floor(float(r) * invHeightScale);\n        int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n        float startCLerp = floor(float(c) * invWidthScale);\n        int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n        // Loop over dy\n        for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n          int dyR = dyROffset + startDyR;\n\n          // Guard against the window exceeding the bounds of dy\n          if (dyR < 0 || dyR >= "+s+") {\n            continue;\n          }\n\n          for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n            int dyC = dyCOffset + startDyC;\n\n            // Guard against the window exceeding the bounds of dy\n            if (dyC < 0 || dyC >= "+u+") {\n              continue;\n            }\n\n            float sourceFracRow =\n              float("+l[0]+") *\n                (float(dyR) / float("+c[0]+"));\n\n            float sourceFracCol =\n                float("+l[1]+") *\n                  (float(dyC) / float("+c[1]+"));\n\n            int sourceNearestRow = int(min(\n                float(int("+a+") - 1),\n                "+n+" ? float(round(sourceFracRow)) :\n                                  float(floor(sourceFracRow))));\n\n            int sourceNearestCol = int(min(\n                float(int("+i+") - 1),\n                "+n+" ? float(round(sourceFracCol)) :\n                                  float(floor(sourceFracCol))));\n\n            if (r == sourceNearestRow && c == sourceNearestCol) {\n              accumulator += getDy(b, dyR, dyC, d);\n            }\n          }\n        }\n        // End loop over dy\n\n        setOutput(accumulator);\n      }\n    "},cV=function(e,t,n,r){this.variableNames=["A"],this.outputShape=[];var a=e[0],i=e[1],o=e[2],s=e[3];this.outputShape=[a,t,n,s];var u=[r&&t>1?i-1:i,r&&n>1?o-1:o],l=[r&&t>1?t-1:t,r&&n>1?n-1:n],c=r?"0.5":"0.0";this.userCode="\n      const vec2 effectiveInputOverOutputRatioRC = vec2(\n          "+u[0]/l[0]+",\n          "+u[1]/l[1]+");\n      const vec2 inputShapeRC = vec2("+i+".0, "+o+".0);\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        ivec2 yRC = coords.yz;\n\n        // Fractional source index.\n        vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\n\n        // Compute the coordinators of nearest neighbor point.\n        ivec2 sourceNearestRC = ivec2(\n          min(inputShapeRC - 1.0, floor(sourceFracIndexRC + "+c+")));\n\n        float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n        setOutput(newValue);\n      }\n    "},pV=function(e,t){this.variableNames=["x"];var n=e.length;if(n>4)throw new Error("WebGL backend: Reverse of rank-"+n+" tensor is not yet supported");if(this.outputShape=e,1!==n){var r=e.map((function(n,r){return function(n){return-1!==t.indexOf(n)&&1!==e[n]?e[n]+" - coords["+n+"] - 1":"coords["+n+"]"}(r)})).join(","),a=LP(n);this.userCode="\n      void main() {\n        "+a+" coords = getOutputCoords();\n        setOutput(getX("+r+"));\n      }\n    "}else this.userCode="\n        void main() {\n          int coord = getOutputCoords();\n          setOutput(getX("+e[0]+" - coord - 1));\n        }\n      "},hV=function(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;var n=e.length;if(n>4)throw new Error("WebGL backend: Reverse of rank-"+n+" tensor is not yet supported");this.outputShape=e;var r=wP("rc",n),a=r[n-1]+" + 1 < "+this.outputShape[n-1],i=r[n-2]+" + 1 < "+this.outputShape[n-2],o=LP(n);function s(n){var r=e.map((function(r,a){return function(n,r){return-1!==t.indexOf(n)&&1!==e[n]?e[n]+" - "+r[n]+" - 1":""+r[n]}(a,n)}));return"getChannel(getX("+r.join(",")+"), vec2("+r.slice(-2).join(",")+"))"}this.userCode=1===n?"\n        void main(){\n          int rc = getOutputCoords();\n          vec4 result = vec4(0.);\n          result.r = getChannel(getX("+e[0]+" - rc - 1),\n            "+e[0]+" - rc - 1);\n          if("+a+"){\n              result.g = getChannel(getX("+e[0]+" - (rc  + 1) - 1),\n                "+e[0]+" - (rc  + 1) - 1);\n          }\n          setOutput(result);\n        }\n      ":"\n        void main() {\n          "+o+" rc = getOutputCoords();\n          vec4 result = vec4(0.);\n          result.r = "+function(e){return s(e)}(r.slice())+";\n          if("+a+"){\n            result.g = "+function(e){return e[n-1]="("+e[n-1]+" + 1)",s(e)}(r.slice())+";\n          }\n          if("+i+") {\n            result.b = "+function(e){return e[n-2]="("+e[n-2]+" + 1)",s(e)}(r.slice())+";\n            if("+a+") {\n              result.a = "+function(e){return e[n-1]="("+e[n-1]+" + 1)",e[n-2]="("+e[n-2]+" + 1)",s(e)}(r.slice())+";\n            }\n          }\n          setOutput(result);\n        }\n    "},fV=function(e,t,n,r,a,i,o){void 0===o&&(o=!0),this.variableNames=["updates","indices","defaultValue"],this.outputShape=i;var s=LP(a.length),u=LP(i.length),l="";1===n?l="i":2===n&&(l="i, j");var c="getIndices("+l+")",p="";1===r?p="i":2===r&&(p="i, coords[1]");
vendor: 6,394 bytes, line 17
17var h="getUpdates("+p+")",f=t>1?"strides[j]":"strides";this.userCode="\n        "+s+" strides = "+s+"("+a+");\n\n        void main() {\n          "+u+" coords = getOutputCoords();\n          float sum = 0.0;\n          bool found = false;\n          for (int i = 0; i < "+e+"; i++) {\n            int flattenedIndex = 0;\n            for (int j = 0; j < "+t+"; j++) {\n              int index = round("+c+");\n              flattenedIndex += index * "+f+";\n            }\n            if (flattenedIndex == coords[0]) {\n              sum += "+h+";\n              found = true;\n            }\n          }\n          setOutput(mix(getDefaultValue(), sum, float(found)));\n        }\n      "},dV=function(e,t){this.variableNames=["x","segmentIds"];var n=e.windowSize,r=e.batchSize,a=e.inSize,i=e.numSegments,o=i*Math.ceil(a/n);this.outputShape=[r,o];var s=4*Math.floor(n/4),u=n%4,l="\n        sumValue += dot(values, segFilter);\n    ",c="";a%n>0&&(c="\n        if (inIdx < 0 || inIdx >= "+a+") {\n          return initializationValue;\n        }\n      ");var p="";a%n>0&&(p="\n        if (inIdx < 0 || inIdx >= "+a+") {\n          return -1.0;\n        }\n      "),this.userCode="\n      const float initializationValue = 0.0;\n\n      float getValue(int batch, int inIdx) {\n        "+c+"\n        return getX(batch, inIdx);\n      }\n\n      float getSegmentIdAtIndex(int inIdx) {\n        "+p+"\n        return getSegmentIds(inIdx);\n      }\n\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int batch = coords[0];\n        int outIdx = coords[1];\n        int inOffset = int(floor(float(outIdx) / float(\n          "+i+")) * float("+n+"));\n        int currentSeg = int(mod(float(outIdx), float("+i+")));\n\n        float sumValue = 0.0;\n\n        for (int i = 0; i < "+s+"; i += 4) {\n          int inIdx = inOffset + i;\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2),\n            getValue(batch, inIdx + 3)\n          );\n\n          vec4 segFilter = vec4(\n            int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n          );\n\n          "+l+"\n        }\n\n        int inIdx = inOffset + "+s+";\n        if ("+(1===u)+") {\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            initializationValue,\n            initializationValue,\n            initializationValue\n          );\n\n          int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n          vec4 segFilter = vec4(\n            int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n            0,\n            0,\n            0\n          );\n\n          "+l+"\n        } else if ("+(2===u)+") {\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            initializationValue,\n            initializationValue\n          );\n\n          vec4 segFilter = vec4(\n            int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n              0,\n              0\n          );\n\n          "+l+"\n        } else if ("+(3===u)+") {\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2),\n            initializationValue\n          );\n\n          vec4 segFilter = vec4(\n            int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n            0\n          );\n\n          "+l+"\n        }\n        setOutput(sumValue);\n      }\n    "},mV=function(e,t,n){var r,a;if(this.variableNames=["c","a","b"],this.outputShape=t,n>4)throw Error("Where for rank "+n+" is not yet supported");if(1===n)a="resRC",r="resRC";else{for(var i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],s=[],u=0;u<t.length;u++)s.push(""+i[u]),u<e&&o.push(""+i[u]);r=o.join(),a=s.join()}var l=LP(n);this.userCode="\n      void main() {\n        "+l+" resRC = getOutputCoords();\n        float cVal = getC("+r+");\n        if (cVal >= 1.0) {\n          setOutput(getA("+a+"));\n        } else {\n          setOutput(getB("+a+"));\n        }\n      }\n    "},vV=function(){function e(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;var t,n=LP(this.rank),r="uniform int start["+this.rank+"];",a=function(e){if(1===e)return"sourceLoc";if(e<=6)return gV.slice(0,e).map((function(e){return"sourceLoc."+e})).join(",");throw Error("Slicing for rank "+e+" is not yet supported")}(this.rank);t="\n        "+n+" sourceLoc;\n        "+n+" coords = getOutputCoords();\n        "+e.map((function(e,t){return"sourceLoc."+gV[t]+" = start["+t+"] + coords."+gV[t]+";"})).join("\n")+"\n      ",this.userCode="\n      "+r+"\n      void main() {\n        "+t+"\n        setOutput(getSource("+a+"));\n      }\n    "}return e.prototype.getCustomSetupFunc=function(e){var t=this;if(e.length!==this.rank)throw Error("The rank ("+this.rank+") of the program must match the length of start ("+e.length+")");return function(n,r){null==t.startLoc&&(t.startLoc=n.getUniformLocationNoThrow(r,"start"),null==t.startLoc)||n.gl.uniform1iv(t.startLoc,e)}},e}(),gV=["x","y","z","w","u","v"];var yV=function(){function e(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;var t=LP(this.rank),n=wP("coords",this.rank),r=wP("sourceLoc",this.rank),a=1===this.rank?"sourceLoc":"vec2("+r.slice(-2).join()+")",i="getChannel(getSource("+r.join()+"), "+a+")",o="\n      result.x = "+i+";\n      if (++"+n[this.rank-1]+" < "+e[this.rank-1]+") {\n        ++"+r[this.rank-1]+";\n        result.y = "+i+";\n        --"+r[this.rank-1]+";\n      }\n    ",s=1===this.rank?"":"\n      --"+n[this.rank-1]+";\n      if (++"+n[this.rank-2]+" < "+e[this.rank-2]+") {\n        ++"+r[this.rank-2]+";\n        result.z = "+i+";\n        if (++"+n[this.rank-1]+" < "+e[this.rank-1]+") {\n          ++"+r[this.rank-1]+";\n          result.w = "+i+";\n        }\n      }
17\n    ",u=this.rank<=4?"sourceLoc = coords +\n            "+t+"("+e.map((function(e,t){return"start["+t+"]"})).join()+");":e.map((function(e,t){return r[t]+" = "+n[t]+" + start["+t+"];"})).join("\n");this.userCode="\n      uniform int start["+this.rank+"];\n      void main() {\n        "+t+" coords = getOutputCoords();\n        "+t+" sourceLoc;\n        "+u+"\n        vec4 result = vec4(0.);\n        "+o+"\n        "+s+"\n        setOutput(result);\n      }\n    "}return e.prototype.getCustomSetupFunc=function(e){var t=this;if(e.length!==this.rank)throw Error("The rank ("+this.rank+") of the program must match the length of start ("+e.length+")");return function(n,r){null==t.startLoc&&(t.startLoc=n.getUniformLocationNoThrow(r,"start"),null==t.startLoc)||n.gl.uniform1iv(t.startLoc,e)}},e}(),bV=function(e,t,n){this.variableNames=["x"],this.outputShape=n;var r=n.length,a=LP(n.length),i=LP(n.length),o="";if(1===r)o="coords * strides + begin";else{var s=0;o=n.map((function(e,t){return s++,1===n.length?"coords * strides["+t+"] + begin["+t+"]":"coords["+(s-1)+"] * strides["+t+"] + begin["+t+"]"})).join(",")}this.userCode="\n      "+a+" begin = "+a+"("+e+");\n      "+a+" strides = "+a+"("+t+");\n\n      void main() {\n        "+i+" coords = getOutputCoords();\n        setOutput(getX("+o+"));\n      }\n    "},xV=function(){function e(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}var t=e.prototype;return t.acquireTexture=function(e,t,n){var r=kV(t,n),a=SV(e,r,n);a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]);var i,o=wV(e,r,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=o,this.log();var s=this.freeTextures[a].shift();return this.usedTextures[a].push(s),s}return r===SB.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):r===SB.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):r===SB.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):r===SB.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):r===SB.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[a].push(i),this.numUsedTextures++,this._numBytesAllocated+=o,this.log(),i},t.releaseTexture=function(e,t,n,r){if(null!=this.freeTextures){var a=kV(n,r),i=SV(t,a,r);i in this.freeTextures||(this.freeTextures[i]=[]);var o=wV(t,a,this.gpgpu.gl,this.gpgpu.textureConfig,r),s=uv().get("WEBGL_DELETE_TEXTURE_THRESHOLD");-1!==s&&this._numBytesAllocated>s?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=o):(this.freeTextures[i].push(e),this.numFreeTextures++,this._numBytesFree+=o),this.numUsedTextures--;var u=this.usedTextures[i],l=u.indexOf(e);if(l<0)throw new Error("Cannot release a texture that was never provided by this texture manager");u.splice(l,1),this.log()}},t.log=function(){if(this.logEnabled){var e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",this.numFreeTextures+" / "+this.numUsedTextures,"("+e+")");var t=this._numBytesFree/this._numBytesAllocated;console.log("Bytes allocated: "+this._numBytesAllocated),console.log("Bytes unused: "+this._numBytesFree+" ("+Math.round(100*t)+"%)")}},t.getNumUsedTextures=function(){return this.numUsedTextures},t.getNumFreeTextures=function(){return this.numFreeTextures},t.dispose=function(){var e=this;if(null!=this.freeTextures){for(var t in this.freeTextures)this.freeTextures[t].forEach((function(t){e.gpgpu.deleteMatrixTexture(t)}));
17for(var n in this.usedTextures)this.usedTextures[n].forEach((function(t){e.gpgpu.deleteMatrixTexture(t)}));this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}},Hm(e,[{key:"numBytesAllocated",get:function(){return this._numBytesAllocated}},{key:"numBytesFree",get:function(){return this._numBytesFree}}]),e}();function wV(e,t,n,r,a){var i,o=function(e,t){switch(e){case SB.PACKED_2X2_FLOAT32:return PW(t);case SB.PACKED_2X2_FLOAT16:return WW(t);case SB.UNPACKED_FLOAT32:return LW(t);case SB.UNPACKED_FLOAT16:return zW(t);case SB.PACKED_4X1_UNSIGNED_BYTE:return BW(t);default:throw new Error("Unknown physical texture type "+e)}}(t,r);if(a){var s=AB(e[0],e[1]);i=s[0]*s[1]}else{var u=RB(e[0],e[1]);i=u[0]*u[1]}return i*function(e,t){var n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;throw new Error("Unknown internal format "+t)}(n,o)}function kV(e,t){if(e===kB.UPLOAD)return SB.PACKED_2X2_FLOAT32;if(e===kB.RENDER||null==e)return function(e){return uv().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?SB.PACKED_2X2_FLOAT32:SB.UNPACKED_FLOAT32:e?SB.PACKED_2X2_FLOAT16:SB.UNPACKED_FLOAT16}(t);if(e===kB.DOWNLOAD||e===kB.PIXELS)return SB.PACKED_4X1_UNSIGNED_BYTE;throw new Error("Unknown logical texture type "+e)}function SV(e,t,n){return e[0]+"_"+e[1]+"_"+t+"_"+n}var NV=function(e,t){this.variableNames=["A"];for(var n=new Array(e.length),r=0;r<n.length;r++)n[r]=e[r]*t[r];this.outputShape=n,this.rank=n.length;var a=LP(this.rank),i=function(e){var t=e.length;if(t>5)throw Error("Tile for rank "+t+" is not yet supported");if(1===t)return"imod(resRC, "+e[0]+")";for(var n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],r=[],a=0;a<e.length;a++)r.push("imod("+n[a]+", "+e[a]+")");return r.join()}(e);this.userCode="\n      void main() {\n        "+a+" resRC = getOutputCoords();\n        setOutput(getA("+i+"));\n      }\n    "};var IV=function(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode="\n      float unaryOperation(float x) {\n        "+t+"\n      }\n\n      void main() {\n        float x = getAAtOutCoords();\n        float y = unaryOperation(x);\n\n        setOutput(y);\n      }\n    "},CV="if (isnan(x)) return x;",RV="return abs(x);",EV=CV+"\n  return (x < 0.0) ? 0.0 : x;\n",AV=CV+"\n  return (x < 0.0) ? 0.0 : min(6.0, x);\n",TV="return (x >= 0.0) ? x : (exp(x) - 1.0);";var DV="return -x;",_V="return ceil(x);",FV="return floor(x);",OV="return exp(x);",MV="return exp(x) - 1.0;",LV="return x;",zV="\n  vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n  bvec4 isNaN = isnan(x);\n\n  result.r = isNaN.r ? x.r : result.r;\n  result.g = isNaN.g ? x.g : result.g;\n  result.b = isNaN.b ? x.b : result.b;\n  result.a = isNaN.a ? x.a : result.a;\n\n  return result;\n",BV="\n  vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n  bvec4 isNaN = isnan(x);\n\n  result.r = isNaN.r ? x.r : result.r;\n  result.g = isNaN.g ? x.g : result.g;\n  result.b = isNaN.b ? x.b : result.b;\n  result.a = isNaN.a ? x.a : result.a;\n\n  return result;\n",PV="\n  vec4 result;\n\n  result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n  result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n  result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n  result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n  return result;\n",WV=function(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode="\n      vec4 unaryOperation(vec4 x) {\n        "+t+"\n      }\n\n      void main() {\n        vec4 x = getAAtOutCoords();\n        vec4 y = unaryOperation(x);\n\n        setOutput(y);\n      }\n    "},VV=function(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;var t=e.length,n=wP("rc",t),r=LP(t),a=function(e,t){if(1===e)return"rc";for(var n="",r=0;r<e;r++)n+=t[r],r<e-1&&(n+=",");return n}(t,n),i=n.slice(-2),o=t<=1?"rc":"vec2("+i.join(",")+")";this.userCode="\n      void main() {\n        "+r+" rc = getOutputCoords();\n        vec4 packedInput = getA("+a+");\n\n        setOutput(getChannel(packedInput, "+o+"));\n      }\n    "},UV=Qw,GV=wC,jV=kC,HV=SC,qV=lN,KV={};function XV(e,t){if(void 0===t&&(t=!1),"linear"===e)return"return x;";if("relu"===e)return t?zV:EV;
17if("elu"===e)return t?PV:TV;if("relu6"===e)return t?BV:AV;if("prelu"===e)return t?JP:XP;throw new Error("Activation "+e+" has not been implemented for the WebGL backend.")}var YV=function(e){function t(t){var n,r;if((n=e.call(this)||this).pendingRead=new WeakMap,n.pendingDisposal=new WeakSet,n.dataRefCount=new WeakMap,n.numBytesInGPU=0,n.uploadWaitMs=0,n.downloadWaitMs=0,n.warnedAboutMemory=!1,n.warnedAboutCPUBackend=!1,n.pendingDeletes=0,n.disposed=!1,!uv().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(null==t){var a=CB(uv().getNumber("WEBGL_VERSION"));n.binaryCache=((r=uv().getNumber("WEBGL_VERSION"))in KV||(KV[r]={}),KV[r]),n.gpgpu=new UW(a),n.canvas=a.canvas,n.gpgpuCreatedLocally=!0}else n.gpgpu=t,n.binaryCache={},n.gpgpuCreatedLocally=!1,n.canvas=t.gl.canvas;return n.textureManager=new xV(n.gpgpu),n.numMBBeforeWarning=null==uv().global.screen?1024:uv().global.screen.height*uv().global.screen.width*window.devicePixelRatio*600/1024/1024,n.texData=new nv(Qm(n),ix()),n}qm(t,e);var n=t.prototype;return n.numDataIds=function(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes},n.write=function(e,t,n){if((uv().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||uv().getBool("DEBUG"))&&this.checkNumericalProblems(e),"complex64"===n&&null!=e)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");var r={};return this.texData.set(r,{shape:t,dtype:n,values:e,usage:kB.UPLOAD,refCount:1}),r},n.incRef=function(e){this.texData.get(e).refCount++},n.decRef=function(e){this.texData.has(e)&&this.texData.get(e).refCount--},n.move=function(e,t,n,r){if(uv().getBool("DEBUG")&&this.checkNumericalProblems(t),"complex64"===r)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:r,values:t,usage:kB.UPLOAD,refCount:1})},n.disposeIntermediateTensorInfo=function(e){var t=e.dataId;if(this.texData.has(t)){var n=this.texData.get(t);n.refCount--,n.refCount<1&&this.disposeData(t)}},n.readSync=function(e){var t=this.texData.get(e),n=t.values,r=t.dtype,a=t.complexTensors,i=t.slice,o=t.shape,s=t.isPacked;if(null!=i){var u;u=s?new WV(o,LV):new IV(o,LV);var l=this.runWebGLProgram(u,[{dataId:e,shape:o,dtype:r}],r),c=this.readSync(l.dataId);return this.disposeIntermediateTensorInfo(l),c}if(null!=n)return this.convertAndCacheOnCPU(e);if("string"===r)return n;var p,h,f=null!=this.activeTimers;(f&&(p=ug()),"complex64"===r)?h=lC(a.real.dataSync(),a.imag.dataSync()):h=this.getValuesFromTexture(e);return f&&(this.downloadWaitMs+=ug()-p),this.convertAndCacheOnCPU(e,h)},n.read=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r,a,i,o,s,u,l,c,p,h,f,d,m,v,g,y,b,x,w,k,S;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.pendingRead.has(t)){e.next=3;break}return n=this.pendingRead.get(t),e.abrupt("return",new Promise((function(e){return n.push(e)})));case 3:if(r=this.texData.get(t),a=r.values,i=r.shape,o=r.slice,s=r.dtype,u=r.complexTensors,l=r.isPacked,null==o){e.next=11;break}return c=l?new WV(i,LV):new IV(i,LV),p=this.runWebGLProgram(c,[{dataId:t,shape:i,dtype:s}],s),h=this.read(p.dataId),this.disposeIntermediateTensorInfo(p),e.abrupt("return",h);case 11:if(null==a){e.next=13;break}return e.abrupt("return",this.convertAndCacheOnCPU(t));case 13:if(uv().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")||2!==uv().getNumber("WEBGL_VERSION")){e.next=15;break}throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");case 15:if(f=null,"complex64"!==s&&uv().get("WEBGL_BUFFER_SUPPORTED")&&(d=this.decode(t),v=this.texData.get(d.dataId),f=(m=this.gpgpu).createBufferFromTexture.apply(m,[v.texture].concat(EB(i)))),this.pendingRead.set(t,[]),"complex64"===s){e.next=21;break}return e.next=21,this.gpgpu.createAndWaitForFence();case 21:if("complex64"!==s){e.next=30;break}return e.next=24,Promise.all([u.real.data(),u.imag.data()]);case 24:y=e.sent,b=y[0],x=y[1],g=lC(b,x),e.next=31;break;case 30:null==f?g=this.getValuesFromTexture(t):(w=_v(i),g=this.gpgpu.downloadFloat32MatrixFromBuffer(f,w));case 31:return null!=d&&this.disposeIntermediateTensorInfo(d),k=this.convertAndCacheOnCPU(t,g),S=this.pendingRead.get(t),this.pendingRead.delete(t),S.forEac
17h((function(e){return e(k)})),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t),this.pendingDeletes--),e.abrupt("return",k);case 38:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.checkNumericalProblems=function(e){if(null!=e)for(var t=0;t<e.length;t++){var n=e[t];if(!_B(n)){if(uv().getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))throw Error("The value "+n+" cannot be represented with your current settings. Consider enabling float32 rendering: 'tf.env().set('WEBGL_RENDER_FLOAT32_ENABLED', true);'");throw Error("The value "+n+" cannot be represented on this device.")}}},n.getValuesFromTexture=function(e){var t=this.texData.get(e),n=t.shape,r=t.dtype,a=t.isPacked,i=_v(n);if(uv().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")){var o,s=this.decode(e),u=this.texData.get(s.dataId),l=(o=this.gpgpu).downloadMatrixFromPackedTexture.apply(o,[u.texture].concat(EB(n))).subarray(0,i);return this.disposeIntermediateTensorInfo(s),l}var c=uv().getBool("WEBGL_PACK")&&!0===a,p=c?XB(n):n,h=c?new SW(p):new kW(p),f=this.runWebGLProgram(h,[{shape:p,dtype:r,dataId:e}],"float32"),d=this.texData.get(f.dataId),m=this.gpgpu.downloadByteEncodedFloatMatrixFromOutputTexture(d.texture,d.texShape[0],d.texShape[1]).subarray(0,i);return this.disposeIntermediateTensorInfo(f),m},n.time=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n,r,a,i,o,s,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.activeTimers,r=[],a=!1,null==this.programTimersStack?(this.programTimersStack=r,a=!0):this.activeTimers.push(r),this.activeTimers=r,t(),i=Dv(this.activeTimers.map((function(e){return e.query}))).filter((function(e){return null!=e})),o=Dv(this.activeTimers.map((function(e){return e.name}))).filter((function(e){return null!=e})),this.activeTimers=n,a&&(this.programTimersStack=null),s={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null},!(uv().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)){e.next=19;break}return e.next=14,Promise.all(i);case 14:u=e.sent,s.kernelMs=Rv(u),s.getExtraProfileInfo=function(){return u.map((function(e,t){return{name:o[t],ms:e}})).map((function(e){return e.name+": "+e.ms})).join(", ")},e.next=20;break;case 19:s.kernelMs={error:"WebGL query timers are not supported in this environment."};case 20:return this.uploadWaitMs=0,this.downloadWaitMs=0,e.abrupt("return",s);case 23:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.memory=function(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}},n.startTimer=function(){return uv().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:ug(),endMs:null}},n.endTimer=function(e){return uv().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=ug(),e)},n.getQueryTime=function(){var e=Gm(regeneratorRuntime.mark((function e(t){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(uv().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)){e.next=2;break}return e.abrupt("return",this.gpgpu.waitForQueryAndGetTime(t));case 2:return n=t,e.abrupt("return",n.endMs-n.startMs);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),n.disposeData=function(e){if(!this.pendingDisposal.has(e)){if(this.pendingRead.has(e))return this.pendingDisposal.add(e),void this.pendingDeletes++;if(this.texData.has(e)){this.releaseGPUData(e);var t=this.texData.get(e).complexTensors;null!=t&&(t.real.dispose(),t.imag.dispose()),this.texData.delete(e)}}},n.releaseGPUData=function(e){var t=this.texData.get(e),n=t.texture,r=t.dtype,a=t.texShape,i=t.usage,o=t.isPacked,s=t.slice,u=s&&s.origDataId||e,l=this.dataRefCount.get(u);l>1?this.dataRefCount.set(u,l-1):(this.dataRefCount.delete(u),null!=n&&(this.numBytesInGPU-=this.computeBytes(a,r),this.textureManager.releaseTexture(n,a,i,o)));var c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null},n.getTexture=function(e){return this.uploadToGPU(e),this.texData.get(e).texture},n.getDataInfo=function(e){return this.texData.get(e)},n.getCPUBackend=function(){return uv().getBool("WEBGL_CPU_FORWARD")?(null==this.cpuBackend&&(this.cpuBackend=ix().findBackend("cpu")),this.cpuBackend):null},n.shouldExecuteOnCPU=function(e,t){var n=this;void 0===t&&(t=128);var r=this.getCPUBackend();return this.warnedAboutCPUBackend||null!=r||(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),null!=r&&e.every((function(e){return null==n.texData.get(e.dataId).texture&&_v(e.shape)<t}))},n.getGPGPUContext=function(){return this.gpgpu}
17,n.complex=function(e,t){var n=this.makeOutput(e.shape,"complex64");return this.texData.get(n.dataId).complexTensors={real:ix().keep(e.clone()),imag:ix().keep(t.clone())},n},n.real=function(e){return this.texData.get(e.dataId).complexTensors.real.clone()},n.imag=function(e){return this.texData.get(e.dataId).complexTensors.imag.clone()},n.slice=function(e,t,n){if(this.shouldExecuteOnCPU([e])){var r=fP(this.texData.get(e.dataId).values,t,n,e.shape,e.dtype);return this.makeOutput(n,e.dtype,r)}if(0===_v(n))return ny([],n,e.dtype);var a=this.texData.get(e.dataId).isPacked,i=Hb(e.shape,t,n);if(a||!i){var o=uv().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new yV(n):new vV(n),s=o.getCustomSetupFunc(t);return this.compileAndRun(o,[e],null,s)}return this.uploadToGPU(e.dataId),this.shallowSlice(e,t,n)},n.shallowSlice=function(e,t,n){var r=this.texData.get(e.dataId),a=this.makeOutput(n,e.dtype),i=this.texData.get(a.dataId);Object.assign(i,r),i.shape=n,i.dtype=e.dtype;var o=qb(t,e.strides);r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};var s=this.dataRefCount.get(i.slice.origDataId)||1;return this.dataRefCount.set(i.slice.origDataId,s+1),a},n.stridedSlice=function(e,t,n,r){var a=this,i=this.tryRunOnCpuOrThrow([e],(function(){return a.cpuBackend.stridedSlice(e,t,n,r)}));if(i)return i;var o=Mb(t,n,r);if(o.some((function(e){return 0===e})))return ny([],o);var s=new bV(t,r,o);return this.compileAndRun(s,[e])},n.reverse=function(e,t){var n=uv().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new hV(e.shape,t):new pV(e.shape,t);return this.compileAndRun(n,[e])},n.concat=function(e,t){if("complex64"===e[0].dtype){var n=e.map((function(e){return jk(e)})),r=e.map((function(e){return nk(e)}));return ey(this.concat(n,t),this.concat(r,t))}if(1===e.length)return e[0];if(e.length>uv().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){var a=Math.floor(e.length/2),i=this.concat(e.slice(0,a),t),o=this.concat(e.slice(a),t);return this.concat([i,o],t)}if(uv().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].rank>1){var s=new nW(e.map((function(e){return e.shape})),t);return this.compileAndRun(s,e)}var u=ew(e.map((function(e){return e.shape})),t),l=e.map((function(e){return e.as2D(-1,_v(e.shape.slice(t)))})),c=new tW(l.map((function(e){return e.shape})));return this.compileAndRun(c,l).reshape(u)},n.neg=function(e){var t=this,n=this.tryRunOnCpuOrThrow([e],(function(){return t.cpuBackend.neg(e)}));if(n)return n;if(uv().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,DV,e.dtype);var r=new IV(e.shape,DV);return this.compileAndRun(r,[e])},n.batchMatMul=function(e,t,n,r){var a=n?e.shape[2]:e.shape[1],i=r?t.shape[1]:t.shape[2],o=n?e.shape[1]:e.shape[2],s=e.shape[0];if((1===a||1===i)&&o>1e3){n&&(e=xb(e,[0,2,1])),r&&(t=xb(t,[0,2,1]));var u=1===i?e:e.as3D(s,o,1),l=1===i?2:1,c=1===i?t.as3D(s,1,o):t;return this.multiply(u,c).sum(l,!0)}var p=Fg(e.dtype,t.dtype),h=new JW(e.shape,[s,a,i],n,r);return this.compileAndRun(h,[e,t],p)},n.fusedBatchMatMul=function(e){var t=e.a,n=e.b,r=e.transposeA,a=e.transposeB,i=e.bias,o=e.activation,s=e.preluActivationWeights,u=r?t.shape[2]:t.shape[1],l=a?n.shape[1]:n.shape[2],c=t.shape[0],p=Fg(t.dtype,n.dtype),h=null!=i,f=null!=s,d=o?XV(o,!0):null,m=new JW(t.shape,[c,u,l],r,a,h,d,f),v=[t,n];return i&&v.push(i),s&&v.push(s),this.compileAndRun(m,v,p)},n.multiply=function(e,t){if("complex64"===e.dtype){var n=this.texData.get(e.dataId),r=this.texData.get(t.dataId),a=new jP(UP,e.shape,t.shape),i=new jP(GP,e.shape,t.shape),o=[this.makeComplexComponentTensorInfo(e,n.complexTensors.real),this.makeComplexComponentTensorInfo(e,n.complexTensors.imag),this.makeComplexComponentTensorInfo(t,r.complexTensors.real),this.makeComplexComponentTensorInfo(t,r.complexTensors.imag)],s=this.compileAndRun(a,o),u=this.compileAndRun(i,o),l=this.complex(s,u);return s.dispose(),u.dispose(),l}var c=Fg(e.dtype,t.dtype);if(this.shouldExecuteOnCPU([e,t])){var p=this.texData.get(e.dataId),h=this.texData.get(t.dataId),f=pP(e.shape,t.shape,p.values,h.values,c),d=f[0],m=f[1];return this.makeOutput(m,c,d)}if(uv().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,KP,e.dtype);var v=new YP(KP,e.shape,t.shape);return this.compileAndRun(v,[e,t],e.dtype)},n.localResponseNormalization4D=function(e,t,n,r,a){var i=uv().getBool("WEBGL_PACK_NORMALIZATION")?new KW(e.shape,t,n,r,a):new HW(e.shape,t,n,r,a);return this.compileAndRun(i,[e])}
17,n.LRNGrad=function(e,t,n,r,a,i,o){var s=new qW(t.shape,r,a,i,o);return this.compileAndRun(s,[t,n,e])},n.tile=function(e,t){if("string"===e.dtype){var n=this.readSync(e.dataId).map((function(e){return hg(e)})),r=Yy(e.shape,e.dtype,n);return jV(r,t)}var a=new NV(e.shape,t);return this.compileAndRun(a,[e])},n.pad=function(e,t,n){var r=uv().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new tV(e.shape,t,n):new eV(e.shape,t,n);return this.compileAndRun(r,[e])},n.gather=function(e,t,n){var r=this,a=this.tryRunOnCpuOrThrow([e,t],(function(){return r.cpuBackend.gather(e,t,n)}));if(a)return a;var i=new TW(e.shape,t.size,n);return this.compileAndRun(i,[e,t])},n.batchToSpaceND=function(e,t,n){Ev(e.rank<=4,(function(){return"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet"}));var r=t.reduce((function(e,t){return e*t})),a=nC(e.shape,t,r),i=rC(a.length,t.length),o=aC(e.shape,t,r),s=iC(n,t.length),u=oC(o,n,t.length);return xb(e.reshape(a),i).reshape(o).slice(s,u)},n.spaceToBatchND=function(e,t,n){Ev(e.rank<=4,(function(){return"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet"}));var r=t.reduce((function(e,t){return e*t})),a=[[0,0]];a.push.apply(a,n);for(var i=1+t.length;i<e.shape.length;++i)a.push([0,0]);var o=e.pad(a),s=nC(o.shape,t,r,!1),u=rC(s.length,t.length,!1),l=aC(o.shape,t,r,!1),c=xb(o.reshape(s),u);return gb(c,l)},n.reduce=function(e,t,n){var r=e.shape[0],a=e.shape[1],i=Jw(a),o=Math.ceil(a/i),s=new aV({windowSize:i,inSize:a,batchSize:r,outSize:o},t),u=this.compileAndRun(s,[e],n);return 1===u.shape[1]?u:this.reduce(u,t,n)},n.argReduce=function(e,t,n){void 0===n&&(n=null);var r=e.shape[0],a=e.shape[1];null!=n&&(r=n.shape[0],a=n.shape[1]);var i=Jw(a),o={windowSize:i,inSize:a,batchSize:r,outSize:Math.ceil(a/i)},s=new bP(o,t,null==n),u=[e];null!=n&&u.push(n);var l=this.compileAndRun(s,u,"int32");return 1===l.shape[1]?l:this.argReduce(e,t,l)},n.argReducePacked=function(e,t,n){void 0===n&&(n=null);var r=null!=n?n.shape:e.shape,a=Jw(r[r.length-1]),i=new PP(r,a,t,null==n),o=null==n?[e]:[e,n],s=this.compileAndRun(i,o,"int32");return s.rank===e.rank?this.argReducePacked(e,t,s):s},n.sum=function(e,t){Ix("sum",t,e.rank);var n=Sx(e.shape,t),r=n[0],a=_v(n[1]),i=e.as2D(-1,a),o=Og(e.dtype);return this.reduce(i,"sum",o).reshape(r)},n.prod=function(e,t){var n=this,r=this.tryRunOnCpuOrThrow([e],(function(){return n.cpuBackend.prod(e,t)}));if(r)return r;var a=Sx(e.shape,t),i=a[0],o=_v(a[1]),s=e.as2D(-1,o),u=Og(e.dtype);return this.reduce(s,"prod",u).reshape(i)},n.unsortedSegmentSum=function(e,t,n){var r=0,a=Cx([r],e.rank),i=e;null!=a&&(i=xb(e,a),r=Ex(1,e.rank)[0]);var o=UV.computeOutShape(i.shape,r,n),s=_v([i.shape[r]]),u=i.as2D(-1,s),l=Og(e.dtype),c=this.segOpCompute(u,"unsortedSegmentSum",t,l,n).reshape(o);return null!=a&&(c=xb(c,Rx(a))),c},n.segOpCompute=function(e,t,n,r,a){var i=e.shape[0],o=e.shape[1],s=UV.segOpComputeOptimalWindowSize(o,a),u=new dV({windowSize:s,inSize:o,batchSize:i,numSegments:a},t),l=this.compileAndRun(u,[e,n],r);return l.shape[1]===a?l:(n=bS(0,a).tile([o/s]),this.segOpCompute(l,t,n,r,a))},n.argMinMaxReduce=function(e,t,n){var r=[t];if(Ix("arg"+n.charAt(0).toUpperCase()+n.slice(1),r,e.rank),!uv().getBool("WEBGL_PACK_REDUCE")||e.rank<=2){var a=Sx(e.shape,r),i=a[0],o=_v(a[1]),s=e.as2D(-1,o);return this.argReduce(s,n).reshape(i)}return this.argReducePacked(e,n)},n.argMin=function(e,t){return this.argMinMaxReduce(e,t,"min")},n.argMax=function(e,t){return this.argMinMaxReduce(e,t,"max")},n.cumsum=function(e,t,n,r){if(t!==e.rank-1)throw new Error("WebGL cumsum shader expects an inner-most axis="+(e.rank-1)+" but got axis="+t);for(var a=e.shape[t],i=e,o=0;o<=Math.ceil(Math.log2(a))-1;o++){var s=new mW(e.shape,!1,r),u=s.getCustomSetupFunc(o),l=i;i=this.compileAndRun(s,[i],i.dtype,u),l.dispose()}if(n){var c=new mW(e.shape,n,r),p=i;i=this.compileAndRun(c,[i]),p.dispose()}return i},n.equal=function(e,t){if(uv().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n  return vec4(equal(a, b));\n","bool");var n=new YP("return float(a == b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},n.notEqual=function(e,t){if(uv().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n  return vec4(notEqual(a, b));\n","bool");var n=new YP("return float(a != b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},n.less=function(e,t){var n=this,r=this.tryRunOnCpuOrThrow([e,t],(function(){return n.cpuBackend.less(e,t)}));if(r)return r;if(uv().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n  return vec4(lessThan(a, b));\n","bool");var a=new YP("return float(a < b);",e.shape,t.shape);return this.compileAndRun(a,[e,t],"bool")},n.lessEqual=function(e,t){if(uv().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n  return vec4(lessThanEqual(a, b));\n","bool");var n=new YP("return float(a <= b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},n.greater=function(e,t){var n=this,r=this.tryRunOnCpuOrThrow([e,t],(function(){return n.cpuBackend.greater(e,t)}));if(r)return r;if(uv().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n  return vec4(greaterThan(a, b));\n","bool");var a=new YP("return float(a > b);",e.shape,t.shape);return this.compileAndRun(a,[e,t],"bool")},n.greaterEqual=function(e,t){if(uv().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n  return vec4(greaterThanEqual(a, b));\n","bool");var n=new YP("return float(a >= b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},n.logicalNot=function(e){var t=new IV(e.shape,"return float(!(x >= 1.0));");return this.compileAndRun(t,[e])},n.logicalAnd=function(e,t){if(uv().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n  return vec4(\n    vec4(greaterThanEqual(a, vec4(1.0))) *\n    vec4(greaterThanEqual(b, vec4(1.0))));\n","bool");var n=new YP("return float(a >= 1.0 && b >= 1.0);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},n.logicalOr=function(e,t){if(uv().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n  return min(\n    vec4(greaterThanEqual(a, vec4(1.0))) +\n    vec4(greaterThanEqual(b, vec4(1.0))),\n    vec4(1.0));\n","bool");var n=new YP("return float(a >= 1.0 || b >= 1.0);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},n.select=function(e,t,n){var r=new mV(e.rank,t.shape,t.rank);return this.compileAndRun(r,[e,t,n],Fg(t.dtype,n.dtype))},n.where=function(e){uC("tf.where() in webgl locks the UI thread. Call tf.whereAsync() instead");var t=e.dataSync();return qV(e.shape,t)},n.topk=function(e,t,n){var r=e.dataSync();return HV(r,e.shape,e.dtype,t,n)},n.min=function(e,t){Ix("min",t,e.rank);var n=Sx(e.shape,t),r=n[0],a=_v(n[1]),i=e.as2D(-1,a);return this.reduce(i,"min",i.dtype).reshape(r)},n.minimum=function(e,t){var n=this,r=this.tryRunOnCpuOrThrow([e,t],(function(){return n.cpuBackend.minimum(e,t)}));if(r)return r;var a=uv().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ZP("\n  vec4 result = vec4(min(a, b));\n  vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n  \n  result.r = isNaN.r > 0. ? NAN : result.r;\n  result.g = isNaN.g > 0. ? NAN : result.g;\n  result.b = isNaN.b > 0. ? NAN : result.b;\n  result.a = isNaN.a > 0. ? NAN : result.a;\n\n  return result;\n",e.shape,t.shape):new YP("\n  if (isnan(a)) return a;\n  if (isnan(b)) return b;\n\n  return min(a, b);\n",e.shape,t.shape);return this.compileAndRun(a,[e,t])},n.mod=function(e,t){var n=uv().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ZP("\n  vec4 result = mod(a, b);\n  vec4 isNaN = vec4(equal(b, vec4(0.0)));\n  \n  result.r = isNaN.r > 0. ? NAN : result.r;\n  result.g = isNaN.g > 0. ? NAN : result.g;\n  result.b = isNaN.b > 0. ? NAN : result.b;\n  result.a = isNaN.a > 0. ? NAN : result.a;\n\n  return result;\n",e.shape,t.shape):new YP("if (b == 0.0) return NAN;\n  return mod(a, b);",e.shape,t.shape);return this.compileAndRun(n,[e,t])},n.maximum=function(e,t){var n=this,r=this.tryRunOnCpuOrThrow([e,t],(function(){return n.cpuBackend.maximum(e,t)}));if(r)return r;var a=uv().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ZP("\n  vec4 result = vec4(max(a, b));\n  vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n  \n  result.r = isNaN.r > 0. ? NAN : result.r;\n  result.g = isNaN.g > 0. ? NAN : result.g;\n  result.b = isNaN.b > 0. ? NAN : result.b;\n  result.a = isNaN.a > 0. ? NAN : result.a;\n\n  return result;\n",e.shape,t.shape):new YP("\n  if (isnan(a)) return a;\n  if (isnan(b)) return b;\n\n  return max(a, b);\n",e.shape,t.shape);return this.compileAndRun(a,[e,t])},n.all=function(e,t){Ix("all",t,e.rank);var n=Sx(e.shape,t),r=n[0],a=_v(n[1]),i=e.as2D(-1,a);return this.reduce(i,"all",i.dtype).reshape(r)},n.any=function(e,t){Ix("any",t,e.rank);var n=Sx(e.shape,t),r=n[0],a=_v(n[1]),i=e.as2D(-1,a);return this.reduce(i,"any",i.dtype).reshape(r)},n.floorDiv=function(e,t){if(uv().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n  ivec4 ia = round(a);\n  ivec4 ib = round(b);\n  bvec4 cond = notEqual(ib, ivec4(0));\n  ivec4 result = ivec4(0);\n  vec4 s = sign(a) * sign(b);\n\n  // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n  if (cond[0]) {\n    result[0] = idiv(ia[0], ib[0], s[0]);\n  }\n  if (cond[1]) {\n    result[1] = idiv(ia[1], ib[1], s[1]);\n  }\n  if (cond[2]) {\n    result[2] = idiv(ia[2], ib[2], s[2]);\n  }\n  if (cond[3]) {\n    result[3] = idiv(ia[3], ib[3], s[3]);\n  }\n  return vec4(result);\n","int32");var n=new YP("\n  float s = sign(a) * sign(b);\n  int ia = round(a);\n  int ib = round(b);\n  if (ib != 0) {\n    // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n    return float(idiv(ia, ib, s));\n  } else {\n    return NAN;\n  }\n",e.shape,t.shape);return this.compileAndRun(n,[e,t],"int32")},n.add=function(e,t){if("complex64"===e.dtype&&"complex64"===t.dtype)return this.complexSeparableBinaryOp(e,t,HP);var n=Fg(e.dtype,t.dtype);if(this.shouldExecuteOnCPU([e,t])){var r=this.texData.get(e.dataId),a=this.texData.get(t.dataId),i=aP(e.shape,t.shape,r.values,a.values,n),o=i[0],s=i[1];return this.makeOutput(s,n,o)}if(uv().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,HP,n);var u=new YP(HP,e.shape,t.shape);return this.compileAndRun(u,[e,t],n)},n.packedUnaryOp=function(e,t,n){var r=new WV(e.shape,t);return this.compileAndRun(r,[e],n)},n.packedBinaryOp=function(e,t,n,r,a){void 0===a&&(a=!1);var i=new ZP(n,e.shape,t.shape,a);return this.compileAndRun(i,[e,t],r)},n.complexSeparableBinaryOp=function(e,t,n){var r=this,a=this.texData.get(e.dataId),i=this.texData.get(t.dataId),o=[[a.complexTensors.real,i.complexTensors.real],[a.
17complexTensors.imag,i.complexTensors.imag]].map((function(a){var i=a[0],o=a[1],s=r.makeComplexComponentTensorInfo(e,i),u=r.makeComplexComponentTensorInfo(t,o),l=new YP(n,e.shape,t.shape);return r.compileAndRun(l,[s,u],Fg(i.dtype,o.dtype))})),s=o[0],u=o[1],l=this.complex(s,u);return s.dispose(),u.dispose(),l},n.makeComplexComponentTensorInfo=function(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}},n.addN=function(e){if(1===e.length)return e[0];if(e.length>uv().get("WEBGL_MAX_TEXTURES_IN_SHADER")){var t=Math.floor(e.length/2),n=this.addN(e.slice(0,t)),r=this.addN(e.slice(t));return this.addN([n,r])}var a=e.map((function(e){return e.dtype})).reduce((function(e,t){return Fg(e,t)})),i=e.map((function(e){return e.shape})),o=uv().getBool("WEBGL_PACK")?new yP(e[0].shape,i):new gP(e[0].shape,i);return this.compileAndRun(o,e,a)},n.subtract=function(e,t){if("complex64"===e.dtype&&"complex64"===t.dtype)return this.complexSeparableBinaryOp(e,t,qP);var n=Fg(e.dtype,t.dtype);if(this.shouldExecuteOnCPU([e,t])){var r=this.texData.get(e.dataId),a=this.texData.get(t.dataId),i=dP(e.shape,t.shape,r.values,a.values,n),o=i[0],s=i[1];return this.makeOutput(s,n,o)}if(uv().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,qP,e.dtype);var u=new YP(qP,e.shape,t.shape);return this.compileAndRun(u,[e,t],n)},n.pow=function(e,t){var n=uv().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ZP("\n  // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n  vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n  vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n  vec4 result = multiplier * pow(abs(a), b);\n\n  // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n  bvec4 isExpZero = equal(b, vec4(0.0));\n  result.r = isExpZero.r ? 1.0 : result.r;\n  result.g = isExpZero.g ? 1.0 : result.g;\n  result.b = isExpZero.b ? 1.0 : result.b;\n  result.a = isExpZero.a ? 1.0 : result.a;\n\n  vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b));\n  \n  result.r = isNaN.r > 0. ? NAN : result.r;\n  result.g = isNaN.g > 0. ? NAN : result.g;\n  result.b = isNaN.b > 0. ? NAN : result.b;\n  result.a = isNaN.a > 0. ? NAN : result.a;\n\n  return result;\n",e.shape,t.shape):new YP("\nif(a < 0.0 && floor(b) < b){\n  return NAN;\n}\nif (b == 0.0) {\n  return 1.0;\n}\nreturn (round(mod(b, 2.0)) != 1) ?\n    pow(abs(a), b) : sign(a) * pow(abs(a), b);\n",e.shape,t.shape),r=Fg(e.dtype,t.dtype);return this.compileAndRun(n,[e,t],r)},n.ceil=function(e){if(this.shouldExecuteOnCPU([e])){var t=iP(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,t)}if(uv().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,_V,e.dtype);var n=new IV(e.shape,_V);return this.compileAndRun(n,[e])},n.floor=function(e){if(this.shouldExecuteOnCPU([e])){var t=uP(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,t)}if(uv().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,FV,e.dtype);var n=new IV(e.shape,FV);return this.compileAndRun(n,[e])},n.sign=function(e){var t=new IV(e.shape,"\n  if (isnan(x)) { return 0.0; }\n  return sign(x);\n");return this.compileAndRun(t,[e])},n.isNaN=function(e){var t=new IV(e.shape,"return float(isnan(x));");return this.compileAndRun(t,[e],"bool")},n.isInf=function(e){var t=new IV(e.shape,"return float(isinf(x));");return this.compileAndRun(t,[e],"bool")},n.isFinite=function(e){var t=new IV(e.shape,"return float(!isnan(x) && !isinf(x));");return this.compileAndRun(t,[e],"bool")},n.round=function(e){var t=new IV(e.shape,"\n  // OpenGL ES does not support round function.\n  // The algorithm is based on banker's rounding.\n  float base = floor(x);\n  if ((x - base) < 0.5) {\n    return floor(x);\n  } else if ((x - base) > 0.5) {\n    return ceil(x);\n  } else {\n    if (mod(base, 2.0) == 0.0) {\n      return base;\n    } else {\n      return base + 1.0;\n    }\n  }\n");return this.compileAndRun(t,[e])},n.exp=function(e){if(this.shouldExecuteOnCPU([e])){var t=oP(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,t)}if(uv().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,OV,e.dtype);var n=new IV(e.shape,OV);return this.compileAndRun(n,[e])},n.expm1=function(e){if(this.shouldExecuteOnCPU([e])){var t=sP(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,t)}if(uv().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,MV,e.dtype);var n=new IV(e.shape,MV);return this.compileAndRun(n,[e])},n.softmax=function(e,t){var n=Pv([t],e.shape),r=wk(e,n),a=Nx(r.shape,n),i=this.subtract(e,r.reshape(a)),o=this.exp(i),s=this.sum(o,n).reshape(a);return mx(o,s)},n.log=function(e){if(this.shouldExecuteOnCPU([e])){var t=lP(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,t)}if(uv().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,"\n  vec4 result = log(x);\n  vec4 isNaN = vec4(lessThan(x, vec4(0.0)));\n  result.r = isNaN.r == 1.0 ? NAN : result.r;\n  result.g = isNaN.g == 1.0 ? NAN : result.g;\n  result.b = isNaN.b == 1.0 ? NAN : result.b;\n  result.a = isNaN.a == 1.0 ? NAN : result.a;\n\n  return result;\n",e.dtype);var n=new IV(e.shape,"if (x < 0.0) return NAN;\n  return log(x);");return this.compileAndRun(n,[e])},n.log1p=function(e){var t=new IV(e.shape,"return log(1.0 + x);");return this.compileAndRun(t,[e])},n.sqrt=function(e){var t=new IV(e.shape,"return sqrt(x);");return this.compileAndRun(t,[e])},n.rsqrt=function(e){if(this.shouldExecuteOnCPU([e])){var t=hP(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,t)}var n=new IV(e.shape,"return inversesqrt(x);");return this.compileAndRun(n,[e])},n.reciprocal=function(e){var t=new IV(e.shape,"return 1.0 / x;");return this.compileAndRun(t,[e])},n.relu=function(e){var t;return t=uv().getBool("WEBGL_PACK")?new WV(e.shape,zV):new IV(e.shape,EV),this.compileAndRun(t,[e])},n.relu6=function(e){var t;return t=uv().getBool("WEBGL_PACK")?new WV(e.shape,BV):new IV(e.shape,AV),this.compileAndRun(t,[e])},n.prelu=function(e,t){var n=uv().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ZP(JP,e.shape,t.shape):new YP(XP,e.shape,t.shape);return this.compileAndRun(n,[e,t])},n.elu=function(e){if(uv().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,PV,e.dtype);var t=new IV(e.shape,TV);return this.compileAndRun(t,[e])},n.eluDer=function(e,t){var n=uv().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ZP("\n  vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));
17\n  return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n",e.shape,t.shape):new YP("return (b >= 1.0) ? a : a * (b + 1.0);",e.shape,t.shape);return this.compileAndRun(n,[e,t])},n.selu=function(e){var t=new IV(e.shape,"\n  // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n  // see: https://arxiv.org/abs/1706.02515\n  float scaleAlpha = 1.7580993408473768;\n  float scale = 1.0507009873554805;\n  return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n");return this.compileAndRun(t,[e])},n.int=function(e){var t=new IV(e.shape,"return float(int(x));");return this.compileAndRun(t,[e],"int32")},n.clip=function(e,t,n){var r,a=(r=uv().getBool("WEBGL_PACK_CLIP")?new $P(e.shape):new QP(e.shape)).getCustomSetupFunc(t,n);return this.compileAndRun(r,[e],null,a)},n.abs=function(e){if(this.shouldExecuteOnCPU([e])&&"complex64"!==e.dtype){var t=rP(this.texData.get(e.dataId).values);return this.makeOutput(e.shape,e.dtype,t)}if(uv().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,RV,e.dtype);var n=new IV(e.shape,RV);return this.compileAndRun(n,[e])},n.complexAbs=function(e){var t=this.texData.get(e.dataId),n=new eW(e.shape),r=[this.makeComplexComponentTensorInfo(e,t.complexTensors.real),this.makeComplexComponentTensorInfo(e,t.complexTensors.imag)];return this.compileAndRun(n,r)},n.sigmoid=function(e){var t=new IV(e.shape,"return 1.0 / (1.0 + exp(-1.0 * x));");return this.compileAndRun(t,[e])},n.softplus=function(e){var t=new IV(e.shape,"\n  float epsilon = 1.1920928955078125e-7;\n  float threshold = log(epsilon) + 2.0;\n\n  bool too_large = x > -threshold;\n  bool too_small = x < threshold;\n\n  float result;\n  float exp_x = exp(x);\n\n  if (too_large){\n    result = x;\n  }\n  else if (too_small){\n    result = exp_x;\n  }\n  else{\n    result = log(exp_x + 1.0);\n  }\n  return result;\n");return this.compileAndRun(t,[e])},n.asin=function(e){var t=new IV(e.shape,"if (isnan(x)) return x;\n  if (abs(x) > 1.) {\n    return NAN;\n  }\n  return asin(x);\n");return this.compileAndRun(t,[e])},n.acos=function(e){var t=new IV(e.shape,"if (isnan(x)) return x;\n  if (abs(x) > 1.) {\n    return NAN;\n  }\n  return acos(x);\n");return this.compileAndRun(t,[e])},n.atan=function(e){var t=new IV(e.shape,"if (isnan(x)) return x;\n  return atan(x);\n");return this.compileAndRun(t,[e])},n.sinh=function(e){var t=new IV(e.shape,"\n  float e2x = exp(x);\n  return (e2x - 1.0 / e2x) / 2.0;\n");return this.compileAndRun(t,[e])},n.cosh=function(e){var t=new IV(e.shape,"\n  float e2x = exp(-x);\n  return (e2x + 1.0 / e2x) / 2.0;\n");return this.compileAndRun(t,[e])},n.tanh=function(e){var t=new IV(e.shape,"\n  float e2x = exp(-2.0 * abs(x));\n  return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n");return this.compileAndRun(t,[e])},n.asinh=function(e){var t=new IV(e.shape,"if (isnan(x)) return x;return log(x + sqrt(x * x + 1.0));");return this.compileAndRun(t,[e])},n.acosh=function(e){var t=new IV(e.shape,"if (isnan(x)) return x;\n  if (x < 1.0) return NAN;\n  return log(x + sqrt(x * x - 1.0));");return this.compileAndRun(t,[e])},n.atanh=function(e){var t=new IV(e.shape,"if (isnan(x)) return x;\n  if ((x < -1.0) || (x > 1.0)) return NAN;\n  return (log(1.0 + x) - log(1.0 - x)) / 2.0;");return this.compileAndRun(t,[e])},n.erf=function(e){var t=new IV(e.shape,'\n  // Error function is calculated approximately with elementary function.\n  // See "Handbook of Mathematical Functions with Formulas,\n  // Graphs, and Mathematical Tables", Abramowitz and Stegun.\n  float p = 0.3275911;\n  float a1 = 0.254829592;\n  float a2 = -0.284496736;\n  float a3 = 1.421413741;\n  float a4 = -1.453152027;\n  float a5 = 1.061405429;\n\n  float sign = sign(x);\n  x = abs(x);\n  float t = 1.0 / (1.0 + p * x);\n  return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n');return this.compileAndRun(t,[e])},n.step=function(e,t){var n=new IV(e.shape,function(e){return void 0===e&&(e=0),CV+"\n    return x > 0.0 ? 1.0 : float("+e+");\n  "}(t));return this.compileAndRun(n,[e])},n.conv2dByMatMul=function(e,t,n,r,a,i){var o=e.shape,s=this.texData.get(e.dataId),u=n.inChannels,l=o[0]*o[1]*o[2],c=n.outChannels,p="channelsLast"===n.dataFormat,h=(1===l||1===c)&&u>1e3,f=o[2]%2!=0&&!!s.isPacked;if(h||!uv().getBool("WEBGL_LAZILY_UNPACK")||!uv().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!f){var d=p?o[0]*o[1]*o[2]:o[0]
vendor: 7,099 bytes, line 17
17*o[2]*o[3],m=gb(e,[1,d,n.inChannels]),v=gb(t,[1,n.inChannels,n.outChannels]),g=this.fusedBatchMatMul({a:m,b:v,transposeA:!1,transposeB:!1,bias:r,activation:a,preluActivationWeights:i});return gb(g,n.outShape)}var y=p?o[0]*o[1]*(o[2]+1):o[0]*o[2]*(o[3]+1),b={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},x=s.shape;s.shape=s.shape.slice(),s.shape[s.shape.length-2]++,Ev(JB(s.shape,b.shape),(function(){return"packed reshape "+s.shape+" to "+b.shape+" isn't free"}));var w=gb(t,[1,n.inChannels,n.outChannels]),k=this.fusedBatchMatMul({a:b,b:w,transposeA:!1,transposeB:!1,bias:r,activation:a,preluActivationWeights:i}),S=this.texData.get(k.dataId);return Ev(S.isPacked,(function(){return"batchMatMul result is expected to be packed"})),s.shape=x,S.shape=n.outShape,ix().makeTensorFromDataId(k.dataId,n.outShape,k.dtype)},n.conv2dWithIm2Row=function(e,t,n,r,a,i){var o=n.filterWidth,s=n.filterHeight,u=n.inChannels,l=n.outWidth,c=n.outHeight,p="channelsLast"===n.dataFormat,h=o*s*u,f=c*l,d=[h,f],m=e.squeeze([0]),v=t.reshape([1,h,-1]),g=new jW(d,m.shape,n),y=this.compileAndRun(g,[m]).reshape([1,d[0],d[1]]),b=null!=r,x=null!=i,w=a?XV(a,!0):null,k=new JW(y.shape,[1,f,n.outChannels],!0,!1,b,w,x),S=[y,v];r&&S.push(r),x&&S.push(i);var N=this.compileAndRun(k,S);return p?N.reshape([1,c,l,n.outChannels]):N.reshape([1,n.outChannels,c,l])},n.fusedConv2d=function(e){var t=e.input,n=e.filter,r=e.convInfo,a=e.bias,i=e.activation,o=e.preluActivationWeights;if(1===r.filterHeight&&1===r.filterWidth&&1===r.dilationHeight&&1===r.dilationWidth&&1===r.strideHeight&&1===r.strideWidth&&("SAME"===r.padInfo.type||"VALID"===r.padInfo.type))return this.conv2dByMatMul(t,n,r,a,i,o);if(uv().getBool("WEBGL_CONV_IM2COL")&&1===t.shape[0])return this.conv2dWithIm2Row(t,n,r,a,i,o);var s=null!=a,u=null!=o,l=i?XV(i,!1):null,c=new cW(r,s,l,u),p=[t,n];return a&&p.push(a),o&&p.push(o),this.compileAndRun(c,p)},n.conv2d=function(e,t,n){if(1===n.filterHeight&&1===n.filterWidth&&1===n.dilationHeight&&1===n.dilationWidth&&1===n.strideHeight&&1===n.strideWidth&&("SAME"===n.padInfo.type||"VALID"===n.padInfo.type))return this.conv2dByMatMul(e,t,n);if(uv().getBool("WEBGL_CONV_IM2COL")&&1===e.shape[0])return this.conv2dWithIm2Row(e,t,n);var r=new cW(n);return this.compileAndRun(r,[e,t])},n.conv2dDerInput=function(e,t,n){var r=new iW(n);return this.compileAndRun(r,[e,t])},n.conv2dDerFilter=function(e,t,n){var r=new aW(n);return this.compileAndRun(r,[e,t])},n.fusedDepthwiseConv2D=function(e){var t,n=e.input,r=e.filter,a=e.convInfo,i=e.bias,o=e.activation,s=e.preluActivationWeights,u=uv().getBool("WEBGL_PACK_DEPTHWISECONV")&&a.strideWidth<=2&&a.outChannels/a.inChannels==1,l=o?XV(o,u):null,c=[n,r],p=null!=i,h=null!=s;return p&&c.push(i),h&&c.push(s),u?(t=new fW(a,p,l,h),this.compileAndRun(t,c)):(t=new hW(a,p,l,h),this.compileAndRun(t,c))},n.depthwiseConv2D=function(e,t,n){var r;return uv().getBool("WEBGL_PACK_DEPTHWISECONV")&&n.strideWidth<=2&&n.outChannels/n.inChannels==1?(r=new fW(n),this.compileAndRun(r,[e,t])):(r=new hW(n),this.compileAndRun(r,[e,t]))},n.depthwiseConv2DDerInput=function(e,t,n){var r=new lW(n);return this.compileAndRun(r,[e,t])},n.depthwiseConv2DDerFilter=function(e,t,n){var r=new uW(n);return this.compileAndRun(r,[e,t])},n.conv3d=function(e,t,n){var r=new pW(n);return this.compileAndRun(r,[e,t])},n.conv3dDerInput=function(e,t,n){var r=new sW(n);return this.compileAndRun(r,[e,t])},n.conv3dDerFilter=function(e,t,n){var r=new oW(n);return this.compileAndRun(r,[e,t])},n.cast=function(e,t){return gC(e,t,this)},n.unstack=function(e,t){for(var n=e.shape[t],r=new Array(e.rank-1),a=0,i=0;i<e.rank;i++)i!==t&&(r[a++]=e.shape[i]);var o=new Array(e.rank).fill(0),s=e.shape.slice();s[t]=1;for(var u=new Array(n),l=0;l<u.length;l++)o[t]=l,u[l]=this.slice(e,o,s).reshape(r);return u},n.avgPool3d=function(e,t){var n=new rV(t,"avg",!1);return this.compileAndRun(n,[e],"float32")},n.avgPool3dBackprop=function(e,t,n){var r=new VP(n);return this.compileAndRun(r,[e],t.dtype)},n.maxPool3d=function(e,t){var n=new rV(t,"max",!1);return this.compileAndRun(n,[e],"float32")},n.maxPool3dBackprop=function(e,t,n,r){var a=new rV(r,"max",!0),i=this.compileAndRun(a,[t]),o=new YW(r),s=this.compileAndRun(o,[e,i],t.dtype);return i.dispose(),s},n.resizeBilinear=function(e,t,n,r){var a=uv().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new uV(e.shape,t,n,r):new sV(e.shape,t,n,r);return this.compileAndRun(a,[e],"float32")},n.resizeBilinearBackprop=function(e,t,n){var r=new oV(e,t,n);return this.compileAndRun(r,[e])},n.resizeNearestNeighbor=function(e,t,n,r){var a=new cV(e.shape,t,n,r);return this.compileAndRun(a,[e])},n.resizeNearestNeighborBackprop=function(e,t,n){var r=new lV(e,t,n);return this.compileAndRun(r,[e])},n.multinomial=function(e,t,n,r){var a=t?e:VS(e),i=a.shape[0],o=a.shape[1],s=new ZW(i,o,n),u=s.getCustomSetupFunc(r);return this.compileAndRun(s,[a],"int32",u)},n.oneHot=function(e,t,n,r){var a=new QW(e.size,t,n,r);return this.compileAndRun(a,[e])},n.diag=function(e){var t=new wW(e.size);return this.compileAndRun(t,[e])},n.cropAndResize=function(e,t,n,r,a,i){var o=new dW(e.shape,t.shape,r,a,i);return this.compileAndRun(o,[e,t,n],"float32")},n.depthToSpace=function(e,t,n){Ev(t>1,(function(){return"blockSize should be > 1 for depthToSpace, but was: "+t}));var r=e.shape[0],a="NHWC"===n?e.shape[1]:e.shape[2],i="NHWC"===n?e.shape[2]:e.shape[3],o="NHWC"===n?e.shape[3]:e.shape[1],s=a*t,u=i*t,l=o/(t*t),c=new xW("NHWC"===n?[r,s,u,l]:[r,l,s,u],t,n);return this.compileAndRun(c,[e])},n.split=function(e,t,n){return GV(e,t,n)},n.scatterND=function(e,t,n){var r=Db(0,e,n),a=r.sliceRank,i=r.numUpdates,o=r.sliceSize,s=r.strides,u=r.outputSize,l=[u/o,o],c=e.reshape([i,a]),p=t.reshape([i,o]);if(0===u)return yC(ny([]),n);var h=sk(0),f=new fV(i,a,c.rank,p.rank,s,l);return this.compileAndRun(f,[p,c,h]).reshape(n)},n.sparseToDense=function(e,t,n,r){var a=Db(0,e,n),i=a.sliceRank,o=a.numUpdates,s=a.strides,u=a.outputSize,l=new fV(o,i,e.rank,t.rank,s,[u,1],!1);return this.compileAndRun(l,[t,e,r]).reshape(n)},n.fft=function(e){return this.fftImpl(e,!1)},n.ifft=function(e){return this.fftImpl(e,!0)},n.fftImpl=function(e,t){var n=this.texData.get(e.dataId),r=new EW(CW,e.shape,t),a=new EW(RW,e.shape,t),i=[this.makeComplexComponentTensorInfo(e,n.complexTensors.real),this.makeComplexComponentTensorInfo(e,n.complexTensors.imag)],o=this.compileAndRun(r,i),s=this.compileAndRun(a,i),u=this.complex(o,s).as2D(e.shape[0],e.shape[1]);return o.dispose(),s.dispose(),u},n.gatherND=function(e,t){var n=t.shape,r=n[n.length-1],a=Rb(e,t),i=a[0],o=a[1],s=a[2],u=a[3],l=t.reshape([o,r]),c=e.reshape([e.size/s,s]),p=new DW(r,u,[o,s]);return this.compileAndRun(p,[c,l]).reshape(i)},n.fill=function(e,t,n){if("string"===(n=n||Qv(t))){var r=Uv(n,_v(e));return r.fill(t),ix().makeTensor(r,e,n,this)}var a=new AW(e,t),i=a.getCustomSetupFunc(t);return this.compileAndRun(a,[],n,i)},n.onesLike=function(e){if("string"===e.dtype)throw new Error("onesLike is not supported under string dtype");return this.fill(e.shape,1,e.dtype)},n.zerosLike=function(e){return this.fill(e.shape,"string"===e.dtype?"":0,e.dtype)}
17,n.linspace=function(e,t,n){return bC(e,t,n)},n.makeTensorInfo=function(e,t,n){var r=this.write(n,e,t);return this.texData.get(r).usage=null,{dataId:r,shape:e,dtype:t}},n.makeOutput=function(e,t,n){var r=this.makeTensorInfo(e,t,n).dataId;return ix().makeTensorFromDataId(r,e,t,this)},n.unpackTensor=function(e){var t=new VV(e.shape);return this.runWebGLProgram(t,[e],e.dtype)},n.packTensor=function(e){var t=new $W(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)},n.packedReshape=function(e,t){var n=[qB(e.shape)].concat(KB(e.shape)),r={dtype:e.dtype,shape:n,dataId:e.dataId},a=[qB(t)].concat(KB(t)),i=new iV(a,n),o=this.runWebGLProgram(i,[r],e.dtype,null,!0);return{dataId:o.dataId,shape:t,dtype:o.dtype}},n.decode=function(e){var t,n=this.texData.get(e),r=n.isPacked,a=n.shape,i=n.dtype,o=XB(a);t=r?new bW(o):new yW(o);return{dtype:i,shape:a,dataId:this.runWebGLProgram(t,[{shape:o,dtype:i,dataId:e}],i,null,!0).dataId}},n.runWebGLProgram=function(e,t,n,r,a){var i=this;void 0===a&&(a=!1);var o=this.makeTensorInfo(e.outputShape,n),s=this.texData.get(o.dataId);if(e.packedOutput&&(s.isPacked=!0),e.outPackingScheme===wB.DENSE){var u=EB(e.outputShape);s.texShape=u.map((function(e){return 2*e}))}if(null!=e.outTexUsage&&(s.usage=e.outTexUsage),0===_v(o.shape))return s.values=Vv(o.dtype,0),o;var l=[],c=t.map((function(t){if("complex64"===t.dtype)throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");var n=i.texData.get(t.dataId);if(null==n.texture){if(!e.packedInputs&&_v(t.shape)<=uv().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:t.shape,texData:null,isUniform:!0,uniformValues:n.values};e.packedInputs&&(n.isPacked=!0,n.shape=t.shape)}else if(!!n.isPacked!=!!e.packedInputs)t=n.isPacked?i.unpackTensor(t):i.packTensor(t),l.push(t),n=i.texData.get(t.dataId);else if(n.isPacked&&!JB(n.shape,t.shape)){var r=t,a=t.shape;t.shape=n.shape,t=i.packedReshape(t,a),l.push(t),n=i.texData.get(t.dataId),r.shape=a}return i.uploadToGPU(t.dataId),{shape:t.shape,texData:n,isUniform:!1}}));this.uploadToGPU(o.dataId);var p,h={shape:o.shape,texData:s,isUniform:!1},f=function(e,t,n){var r="";t.concat(n).forEach((function(e){var t=null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0,n=e.isUniform?"uniform":e.texData.texShape;r+=e.shape+"_"+n+"_"+t}));var a=e.userCode,i=e.constructor.name;return i+="_"+r+"_"+a}(e,c,h),d=this.getAndSaveBinary(f,(function(){return function(e,t,n,r){var a=t.userCode,i=n.map((function(e,n){var r={logicalShape:e.shape,texShape:e.isUniform?null:e.texData.texShape,isUniform:e.isUniform,isPacked:!e.isUniform&&e.texData.isPacked,flatOffset:null};return null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0&&(r.flatOffset=e.texData.slice.flatOffset),{name:t.variableNames[n],shapeInfo:r}})),o=i.map((function(e){return e.shapeInfo})),s={logicalShape:r.shape,texShape:r.texData.texShape,isUniform:!1,isPacked:r.texData.isPacked,flatOffset:null},u=RP(i,s,a,t.packedInputs),l=e.createProgram(u),c=null,p=e.getUniformLocation(l,"NAN",!1);1===uv().getNumber("WEBGL_VERSION")&&(c=e.getUniformLocation(l,"INFINITY",!1));for(var h={},f=0;f<t.variableNames.length;f++){var d=t.variableNames[f];h[d]=e.getUniformLocation(l,d,!1),h["offset"+d]=e.getUniformLocation(l,"offset"+d,!1)}return{program:t,source:u,webGLProgram:l,uniformLocations:h,inShapeInfos:o,outShapeInfo:s,infLoc:c,nanLoc:p}}(i.gpgpu,e,c,h)})),m=null!=this.activeTimers;if(m&&(p=this.startTimer()),function(e,t,n,r,a){GW(t.inShapeInfos,n),GW([t.outShapeInfo],[r]);var i=r.texData.texture,o=r.texData.texShape;r.texData.isPacked?e.setOutputPackedMatrixTexture(i,o[0],o[1]):e.setOutputMatrixTexture(i,o[0],o[1]),e.setProgram(t.webGLProgram),1===uv().getNumber("WEBGL_VERSION")&&null!==t.infLoc&&e.gl.uniform1f(t.infLoc,1/0),null!==t.nanLoc&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((function(n,r){var a=t.program.variableNames[r],i=t.uniformLocations[a],o=t.uniformLocations["offset"+a];if(null!=i)if(n.isUniform)if(_v(n.shape)<2)e.gl.uniform1f(i,n.uniformValues[0]);else{var s=n.uniformValues;s instanceof Float32Array||(s=new Float32Array(s)),e.gl.uniform1fv(i,s)}else null!=n.texData.slice&&null!=o&&e.gl.uniform1i(o,n.texData.slice.flatOffset),e.setInputMatrixTexture(n.texData.texture,i,r)})),null!=a&&a(e,t.webGLProgram),e.executeProgram()}(this.gpgpu,d,c,h,r),l.forEach((function(e){return i.disposeIntermediateTensorInfo(e)})),m&&(p=this.endTimer(p),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(p)})),!uv().getBool("WEBGL_LAZILY_UNPACK")&&s.isPacked&&!1===a){var v=this.unpackTensor(o);return this.disposeIntermediateTensorInfo(o),v}return o},n.compileAndRun=function(e,t,n,r,a){void 0===a&&(a=!1),n=n||t[0].dtype;var i=this.runWebGLProgram(e,t,n,r,a);return ix().makeTensorFromDataId(i.dataId,i.shape,i.dtype)},n.getAndSaveBinary=function(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]},n.getTextureManager=function(){return this.textureManager},n.dispose=function(){var e=this;if(!this.disposed){if(!uv().getBool("IS_TEST"))Object.keys(this.binaryCache).forEach((function(t){e.gpgpu.deleteProgram(e.binaryCache[t].webGLProgram),delete e.binaryCache[t]}
17));this.textureManager.dispose(),null!=this.canvas&&"undefined"!=typeof HTMLCanvasElement&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0}},n.floatPrecision=function(){var e=this;return null==this.floatPrecisionValue&&(this.floatPrecisionValue=sx((function(){if(!uv().get("WEBGL_RENDER_FLOAT32_ENABLED")){var t=uv().getBool("DEBUG");uv().set("DEBUG",!1);var n=e.abs(sk(1e-8)).dataSync()[0];if(uv().set("DEBUG",t),n>0)return 32}return 16}))),this.floatPrecisionValue},n.epsilon=function(){return 32===this.floatPrecision()?1e-7:1e-4},n.uploadToGPU=function(e){var t=this.texData.get(e),n=t.shape,r=t.dtype,a=t.values,i=t.texture,o=t.usage,s=t.isPacked;if(null==i){var u,l=null!=this.activeTimers;l&&(u=ug());var c=t.texShape;if(null==c&&(c=function(e,t){void 0===t&&(t=!1);var n=uv().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t&&(n*=2,1===(e=e.map((function(t,n){return n>=e.length-2?Cv(e[n]):e[n]}))).length&&(e=[2,e[0]])),2!==e.length){var r=Wv(e);e=r.newShape}var a=_v(e);if(e.length<=1&&a<=n)return[1,a];if(2===e.length&&e[0]<=n&&e[1]<=n)return e;if(3===e.length&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(3===e.length&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(4===e.length&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(4===e.length&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){var i=qB(e),o=2,s=2;if(e.length){var u=KB(e);o=u[0],s=u[1]}return Mv(a=i*(o/2)*(s/2)).map((function(e){return 2*e}))}return Mv(a)}(n,s),t.texShape=c),null!=a){var p,h=XB(n),f=c[1],d=c[0],m=a instanceof Uint8Array;
17if(s){var v=AB(c[0],c[1]);f=v[0],d=v[1],p=new IW(h,[d,f],m)}else p=new NW(h,[d,f],m);var g=this.makeTensorInfo([d,f],r);this.texData.get(g.dataId).usage=m?kB.PIXELS:kB.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),f,d,a);var y=this.runWebGLProgram(p,[g],r,null,!0),b=this.texData.get(y.dataId);t.texture=b.texture,t.texShape=b.texShape,t.isPacked=b.isPacked,t.usage=b.usage,this.disposeIntermediateTensorInfo(g),this.texData.delete(y.dataId),t.values=null,l&&(this.uploadWaitMs+=ug()-u)}else{var x=this.acquireTexture(c,o,r,s);t.texture=x}}},n.convertAndCacheOnCPU=function(e,t){var n=this.texData.get(e),r=n.dtype;return this.releaseGPUData(e),null!=t&&(n.values=function(e,t){if("float32"===t||"complex64"===t)return e;if("int32"===t||"bool"===t){for(var n="int32"===t?new Int32Array(e.length):new Uint8Array(e.length),r=0;r<n.length;++r)n[r]=Math.round(e[r]);return n}throw new Error("Unknown dtype "+t)}(t,r)),n.values},n.acquireTexture=function(e,t,n,r){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>1024*this.numMBBeforeWarning*1024){var a=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn("High memory usage in GPU: "+a+" MB, most likely due to a memory leak")}return this.textureManager.acquireTexture(e,t,r)},n.computeBytes=function(e,t){return e[0]*e[1]*Kv(t)},n.tryRunOnCpuOrThrow=function(e,t){if(this.shouldExecuteOnCPU(e))try{return t()}catch(e){if(uv().getBool("IS_TEST"))throw new Error("CPU forwarding failed")}return null},t}(rv);qg()&&px("webgl",(function(){return new YV}),2);function JV(e){return function(t){var n=t.inputs,r=t.backend,a=n.x,i=r,o=new IV(a.shape,e);return i.runWebGLProgram(o,[a],a.dtype)}}function ZV(e,t,n,r){return function(a){var i=a.inputs,o=a.backend,s=i.a,u=i.b,l=o,c=uv().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ZP(t,s.shape,u.shape,!!n):new YP(e,s.shape,u.shape),p=r||s.dtype;return l.runWebGLProgram(c,[s,u],p)}}var QV={kernelName:"Atan2",backendName:"webgl",kernelFunc:ZV("\n  if (isnan(a)) return a;\n  if (isnan(b)) return b;\n\n  return atan(a, b);\n","\n  vec4 result = atan(a, b);\n  vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n  \n  result.r = isNaN.r > 0. ? NAN : result.r;\n  result.g = isNaN.g > 0. ? NAN : result.g;\n  result.b = isNaN.b > 0. ? NAN : result.b;\n  result.a = isNaN.a > 0. ? NAN : result.a;\n\n  return result;\n")};function $V(e){var t=e.inputs,n=e.backend,r=t.x;return n.incRef(r.dataId),{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}var eU={kernelName:"Identity",backendName:"webgl",kernelFunc:$V};var tU={kernelName:"AvgPool",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.x;tP(a,"avgPool");var i=r.filterSize,o=r.strides,s=r.pad,u=r.dimRoundingMode;Ev(Yx(o,1),(function(){return"Error in avgPool: Either strides or dilations must be 1. Got strides "+o+" and dilations '1'"}));var l=Px(a.shape,i,o,1,s,u);if(1===l.filterWidth&&1===l.filterHeight&&Fv(l.inShape,l.outShape))return $V({inputs:{x:a},backend:n});var c=new nV(l,"avg",!1);return n.runWebGLProgram(c,[a],"float32")}};var nU,rU={kernelName:"AvgPoolBackprop",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.dy,i=t.input,o=i;tP([a,i],"avgPoolBackprop");var s=r.filterSize,u=r.strides,l=r.pad,c=Px(o.shape,s,u,1,l),p=new WP(c);return n.runWebGLProgram(p,[a],o.dtype)}},aU=function(e,t,n,r,a,i){this.outputShape=[],this.variableNames=["x","mean","variance"],Mw(e,t),Mw(e,n);var o="0.0";null!=r&&(Mw(e,r),this.variableNames.push("offset"),o="getOffsetAtOutCoords()");var s="1.0";null!=a&&(Mw(e,a),this.variableNames.push("scale"),s="getScaleAtOutCoords()"),this.outputShape=e,this.userCode="\n      void main() {\n        float x = getXAtOutCoords();\n        float mean = getMeanAtOutCoords();\n        float variance = getVarianceAtOutCoords();\n        float offset = "+o+";\n        float scale = "+s+";\n        float inv = scale * inversesqrt(variance + float("+i+"));\n        setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n      }\n    "},iU=function(e,t,n,r,a,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],Mw(e,t),Mw(e,n);var o="vec4(0.0)";null!=r&&(Mw(e,r),this.variableNames.push("offset"),o="getOffsetAtOutCoords()");var s="vec4(1.0)";null!=a&&(Mw(e,a),this.variableNames.push("scale"),s="getScaleAtOutCoords()"),this.outputShape=e,this.userCode="\n      void main() {\n        vec4 offset = "+o+";\n        vec4 scale = "+s+";\n\n        vec4 x = getXAtOutCoords();\n        vec4 mean = getMeanAtOutCoords();\n        vec4 variance = getVarianceAtOutCoords();\n\n        vec4 inv = scale * inversesqrt(variance + vec4("+i+"));\n\n        setOutput((x - mean) * inv + offset);\n      }\n    "},oU={kernelName:"FusedBatchNorm",backendName:"webgl",kernelFunc:function(e){var t=e.input
17s,n=e.backend,r=e.attrs,a=t.x,i=t.mean,o=t.variance,s=t.offset,u=t.scale;Ev(i.shape.length===o.shape.length,(function(){return"Batch normalization gradient requires mean and variance to have equal ranks."})),Ev(null==s||i.shape.length===s.shape.length,(function(){return"Batch normalization gradient requires mean and offset to have equal ranks."})),Ev(null==u||i.shape.length===u.shape.length,(function(){return"Batch normalization gradient requires mean and scale to have equal ranks."}));var l=r.varianceEpsilon;null==l&&(l=.001);var c=[a,i,o],p=null;null!=s&&(p=s.shape,c.push(s));var h=null;null!=u&&(h=u.shape,c.push(u));var f=uv().getBool("WEBGL_PACK_NORMALIZATION")?new iU(a.shape,i.shape,o.shape,p,h,l):new aU(a.shape,i.shape,o.shape,p,h,l);return n.runWebGLProgram(f,c,c[0].dtype)}},sU=JV("if (isnan(x)) return x;\n  return cos(x);\n"),uU={kernelName:hv,backendName:"webgl",kernelFunc:sU},lU=ZV("\nif (a == b) {\n  return 1.0;\n};\nreturn a / b;","\n  // vec4 one = vec4(equal(a, b));\n  // return one + (vec4(1.0) - one) * a / b;\n  vec4 result = a / b;\n  if(a.x == b.x) {\n    result.x = 1.;\n  }\n  if(a.y == b.y) {\n    result.y = 1.;\n  }\n  if(a.z == b.z) {\n    result.z = 1.;\n  }\n  if(a.w == b.w) {\n    result.w = 1.;\n  }\n\n  return result;\n",!0),cU={kernelName:fv,backendName:"webgl",kernelFunc:lU},pU=function(e){this.variableNames=["Image"],this.outputShape=[];var t=e[2];this.outputShape=e,this.userCode="\n        void main() {\n          ivec4 coords = getOutputCoords();\n          int x = coords[2];\n\n          int coordX = "+t+" - x;\n          float outputValue;\n          if(coordX >= 0 && coordX < "+t+") {\n            outputValue = getImage(coords[0], coords[1], coordX, coords[3]);\n          } else {\n            outputValue = getImage(coords[0], coords[1], coords[2], coords[3]);\n          }\n          setOutput(outputValue);\n        }\n    "},hU={kernelName:"FlipLeftRight",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=t.image,a=n,i=new pU(r.shape);return a.runWebGLProgram(i,[r],r.dtype)}},fU=function(e){this.variableNames=["A"];var t=kP(),n=e[0],r=e[1];this.outputShape=e,this.userCode="\n      void main() {\n        ivec3 coords = getOutputCoords();\n        int texR = coords[0];\n        int texC = coords[1];\n        int depth = coords[2];\n        vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+r+".0, "+n+".0);\n\n        vec4 values = "+t.texture2D+"(A, uv);\n        float value;\n        if (depth == 0) {\n          value = values.r;\n        } else if (depth == 1) {\n          value = values.g;\n        } else if (depth == 2) {\n          value = values.b;\n        } else if (depth == 3) {\n          value = values.a;\n        }\n\n        setOutput(floor(value * 255.0 + 0.5));\n      }\n    "},dU=function(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;var t=kP(),n=e[0],r=e[1];this.outputShape=e,this.userCode="\n      void main() {\n        ivec3 coords = getOutputCoords();\n        int texR = coords[0];\n        int texC = coords[1];\n        int depth = coords[2];\n\n        vec4 result = vec4(0.);\n\n        for(int row=0; row<=1; row++) {\n          for(int col=0; col<=1; col++) {\n            texC = coords[1] + row;\n            depth = coords[2] + col;\n\n            vec2 uv = (vec2(texC, texR) + halfCR) /\n                       vec2("+r+".0, "+n+".0);\n            vec4 values = "+t.texture2D+"(A, uv);\n            float value;\n            if (depth == 0) {\n              value = values.r;\n            } else if (depth == 1) {\n              value = values.g;\n            } else if (depth == 2) {\n              value = values.b;\n            } else if (depth == 3) {\n              value = values.a;\n            }\n\n            result[row * 2 + col] = floor(value * 255.0 + 0.5);\n          }\n        }\n\n        "+t.output+" = result;\n      }\n    "},mU={kernelName:"FromPixels",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.pixels,i=r.numChannels,o="undefined"!=typeof HTMLVideoElement&&a instanceof HTMLVideoElement,s="undefined"!=typeof HTMLImageElement&&a instanceof HTMLImageElement,u=o?[a.videoWidth,a.videoHeight]:[a.width,a.height],l=u[0],c=u[1],p=[c,l],h=[c,l,i];(s||o)&&(null==nU&&(nU=document.createElement("canvas").getContext("2d")),nU.canvas.width=l,nU.canvas.height=c,nU.drawImage(a,0,0,l,c),a=nU.canvas);var f=n.makeTensorInfo(p,"int32");n.texData.get(f.dataId).usage=kB.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(f.dataId),a);var d=uv().getBool("WEBGL_PACK")?new dU(h):new fU(h),m=n.runWebGLProgram(d,[f],"int32");return n.disposeData(f.dataId),m}};function vU(e,t,n,r){for(var a=function(e){for(var t=[];0===t.length||1!==t[t.length-1].outSize;){var n=t.length?t[t.length-1].outSize:e[1],r=Jw(n);t.push({inSize:n,windowSize:r,outSize:Math.ceil(n/r)})}return t}(e.shape),i=e,o=0;o<a.length;o++){var s=a[o],u=s.inSize,l=s.windowSize,c=s.outSize,p=new aV({windowSize:l,inSize:u,batchSize:e.shape[0],outSize:c},n),h=i;i=r.runWebGLProgram(p,[i],t),h.dataId!==e.dataId&&r.disposeData(h.dataId)}return i}
17function gU(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.x,i=r.shape,o=n,s=_v(a.shape),u=Bv(i,s),l=_v(u);Ev(s===l,(function(){return"The new shape ("+u+") has "+l+" elements and the old shape ("+a.shape+") has "+s+" elements. The new shape and old shape must have the same number of elements."}));var c=o.texData.get(a.dataId);return!c.isPacked||JB(a.shape,u)||null!==c.texture&&JB(c.shape,u)?(o.incRef(a.dataId),{dataId:a.dataId,shape:u,dtype:a.dtype}):function(e,t,n){var r=[qB(e.shape)].concat(KB(e.shape)),a={dtype:e.dtype,shape:r,dataId:e.dataId},i=[qB(t)].concat(KB(t)),o=new iV(i,r),s=n.runWebGLProgram(o,[a],e.dtype,null,!0);return{dataId:s.dataId,shape:t,dtype:s.dtype}}(a,u,o)}var yU={kernelName:"Reshape",backendName:"webgl",kernelFunc:gU};var bU=function(e,t){this.variableNames=["A"];for(var n=new Array(e.length),r=0;r<n.length;r++)n[r]=e[t[r]];this.outputShape=n,this.rank=n.length;var a=LP(this.rank),i=function(e){var t=e.length;if(t>6)throw Error("Transpose for rank "+t+" is not yet supported");for(var n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],r=new Array(t),a=0;a<e.length;a++)r[e[a]]=n[a];return r.join()}(t);this.userCode="\n    void main() {\n      "+a+" resRC = getOutputCoords();\n      setOutput(getA("+i+"));\n    }\n    "};var xU=function(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0;for(var n=new Array(e.length),r=0;r<n.length;r++)n[r]=e[t[r]];if(this.outputShape=n,this.rank=n.length,this.rank>6)throw Error("Packed transpose for rank "+this.rank+" is not yet supported.");for(var a=LP(this.rank),i=xP("rc",this.rank),o=new Array(this.rank),s=0;s<t.length;s++)o[t[s]]=i[s];var u="vec2("+o.slice(-2).join()+")",l="++"+i[this.rank-1]+" < "+n[this.rank-1],c="getChannel(getA("+o.join()+"), "+u+")";this.userCode="\n    void main() {\n      "+a+" rc = getOutputCoords();\n      vec4 result = vec4(0.);\n      result[0] = "+c+";\n      if("+l+") {\n        result[1] = "+c+";\n      }\n      --"+i[this.rank-1]+";\n      if(++"+i[this.rank-2]+" < "+n[this.rank-2]+") {\n        result[2] = "+c+";\n        if("+l+") {\n          result[3] = "+c+";\n        }\n      }\n      setOutput(result);\n    }\n    "};function wU(e,t,n){var r=uv().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new xU(e.shape,t):new bU(e.shape,t);return n.runWebGLProgram(r,[e],e.dtype)}var kU={kernelName:"Max",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.attrs,r=e.backend,a=t.x,i=n.reductionIndices,o=n.keepDims,s=r,u=a.shape.length,l=Pv(i,a.shape),c=l,p=Cx(c,u),h=null!=p,f=s.shouldExecuteOnCPU([a]),d=a;if(h){if(f){for(var m=s.texData.get(d.dataId).values,v=new Array(u),g=0;g<v.length;g++)v[g]=a.shape[p[g]];var y=mP(m,a.shape,a.dtype,p,v);d=s.makeTensorInfo(v,a.dtype),s.texData.get(d.dataId).values=y}else d=wU(a,p,s);c=Ex(c.length,u)}Ix("max",c,u);var b,x=Sx(d.shape,c),w=x[0],k=x[1],S=w;if(o&&(S=Nx(w,l)),f){var N=s.texData.get(d.dataId).values,I=cP(N,_v(k),S,a.dtype);b=s.makeTensorInfo(S,a.dtype),s.texData.get(b.dataId).values=I}else b=function(e,t,n,r){var a=_v(t),i=gU({inputs:{x:e},attrs:{shape:[_v(e.shape)/a,a]},backend:r}),o=vU(i,e.dtype,"max",r),s=gU({inputs:{x:o},attrs:{shape:n},backend:r});return r.disposeIntermediateTensorInfo(i),r.disposeIntermediateTensorInfo(o),s}(d,k,S,s);return h&&s.disposeIntermediateTensorInfo(d),b}};var SU={kernelName:"MaxPool",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.x;tP(a,"maxPool");var i=r.filterSize,o=r.strides,s=r.pad,u=r.dimRoundingMode;Ev(Yx(o,1),(function(){return"Error in maxPool: Either strides or dilations must be 1. Got strides "+o+" and dilations '1'"}));var l=Px(a.shape,i,o,1,s,u);if(1===l.filterWidth&&1===l.filterHeight&&Fv(l.inShape,l.outShape))return $V({inputs:{x:a},backend:n});var c=new nV(l,"max",!1);return n.runWebGLProgram(c,[a],a.dtype)}};var NU={kernelName:"MaxPoolBackprop",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,a=t.dy,i=t.input,o=i;tP([i,t.output],"maxPoolBackprop");var s=r.filterSize,u=r.strides,l=r.pad,c=r.dimRoundingMode,p=Px(o.shape,s,u,1,l,c),h=new nV(p,"max",!0),f=n.runWebGLProgram(h,[o
17],o.dtype),d=new XW(p),m=n.runWebGLProgram(d,[a,f],o.dtype);return n.disposeIntermediateTensorInfo(f),m}};var IU={kernelName:"MaxPoolWithArgmax",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.attrs,r=e.backend,a=t.x,i=n.filterSize,o=n.strides,s=n.pad,u=n.includeBatchInIndex,l=r;Ev(4===a.shape.length,(function(){return"Error in maxPool: input must be rank 4 but got rank "+a.shape.length+"."}));var c=[1,1];Ev(Yx(o,c),(function(){return"Error in maxPool: Either strides or dilations must be 1. Got strides "+o+" and dilations '"+c+"'"}));var p=Px(a.shape,i,o,c,s),h=function(e,t,n,r){var a=new nV(n,"max",!1),i=r.runWebGLProgram(a,[e],"float32");return a=new nV(n,"max",!0,!0,t),[i,r.runWebGLProgram(a,[e],"float32")]}(a,u,p,l);return[h[0],h[1]]}},CU={kernelName:"NonMaxSuppressionV3",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs;uC("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");var a=t.boxes,i=t.scores,o=r.maxOutputSize,s=r.iouThreshold,u=r.scoreThreshold,l=n;return sI(l.readSync(a.dataId),l.readSync(i.dataId),o,s,u)}},RU=uI,EU={kernelName:"NonMaxSuppressionV4",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs;uC("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");var a=t.boxes,i=t.scores,o=r.maxOutputSize,s=r.iouThreshold,u=r.scoreThreshold,l=r.padToMaxOutputSize,c=n,p=c.readSync(a.dataId),h=c.readSync(i.dataId),f=RU(p,h,o,s,u,l);return[f.selectedIndices,f.validOutputs]}},AU=lI,TU={kernelName:"NonMaxSuppressionV5",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs;uC("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");var a=t.boxes,i=t.scores,o=r.maxOutputSize,s=r.iouThreshold,u=r.scoreThreshold,l=r.softNmsSigma,c=n,p=c.readSync(a.dataId),h=c.readSync(i.dataId),f=AU(p,h,o,s,u,l);return[f.selectedIndices,f.selectedScores]}},DU=function(e,t,n,r){this.variableNames=["Image"],this.outputShape=[];var a=e[1],i=e[2],o=Math.sin(t).toFixed(3),s=Math.cos(t).toFixed(3);this.outputShape=e;var u=tC(r,a,i),l=u[0],c=u[1],p=l.toFixed(3),h=c.toFixed(3),f="";f="number"==typeof n?"float outputValue = "+n.toFixed(2)+";":"\n        vec3 fill = vec3("+n.join(",")+");\n        float outputValue = fill[coords[3]];",this.userCode="\n        void main() {\n          ivec4 coords = getOutputCoords();\n          int x = coords[2];\n          int y = coords[1];\n          float coordXFloat = (float(x) - "+p+") * "+s+" - (float(y) - "+h+") * "+o+";\n          float coordYFloat = (float(x) - "+p+") * "+o+" + (float(y) - "+h+") * "+s+";
17\n          int coordX = int(round(coordXFloat + "+p+"));\n          int coordY = int(round(coordYFloat + "+h+"));\n          "+f+"\n          if(coordX >= 0 && coordX < "+i+" && coordY >= 0 && coordY < "+a+") {\n            outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n          }\n          setOutput(outputValue);\n        }\n    "},_U={kernelName:"RotateWithOffset",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.attrs,r=e.backend,a=t.image,i=n.radians,o=n.fillValue,s=n.center,u=r,l=new DU(a.shape,i,o,s);return u.runWebGLProgram(l,[a],a.dtype)}},FU=JV("if (isnan(x)) return x;\n  return sin(x);\n"),OU={kernelName:dv,backendName:"webgl",kernelFunc:FU},MU={kernelName:"Square",backendName:"webgl",kernelFunc:JV("return x * x;")},LU={kernelName:"SquaredDifference",backendName:"webgl",kernelFunc:ZV("return (a - b) * (a - b);","return (a - b) * (a - b);")},zU=JV("return tan(x);");for(var BU=0,PU=[QV,tU,rU,oU,uU,cU,hU,mU,eU,kU,SU,NU,IU,CU,EU,TU,yU,_U,OU,MU,LU,{kernelName:mv,backendName:"webgl",kernelFunc:zU},{kernelName:"Transpose",backendName:"webgl",kernelFunc:function(e){for(var t,n=e.inputs,r=e.attrs,a=e.backend,i=n.x,o=r.perm,s=a,u=i.shape.length,l=new Array(u),c=0;c<l.length;c++)l[c]=i.shape[o[c]];if(s.shouldExecuteOnCPU([i])){var p=s.texData.get(i.dataId).values,h=mP(p,i.shape,i.dtype,o,l);t=s.makeTensorInfo(l,i.dtype),s.texData.get(t.dataId).values=h}else t=wU(i,o,s);return t}},{kernelName:"Unique",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.attrs,r=e.backend,a=n.axis,i=t.x;tP(i,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");var o=r.readSync(i.dataId),s=vP(o,a,i.shape,i.dtype),u=s.outputValues,l=s.outputShape,c=s.indices;return[r.makeTensorInfo(l,i.dtype,u),r.makeTensorInfo([c.length],"int32",c)]}}];BU<PU.length;BU++){wv(PU[BU])}var WU={"tfjs-core":"2.6.0","tfjs-backend-cpu":"2.6.0","tfjs-backend-webgl":"2.6.0","tfjs-data":"2.6.0","tfjs-layers":"2.6.0","tfjs-converter":"2.6.0",tfjs:"2.6.0"};e.Abs="Abs",e.Acos="Acos",e.Acosh="Acosh",e.AdadeltaOptimizer=jI,e.AdagradOptimizer=HI,e.AdamOptimizer=qI,e.AdamaxOptimizer=KI,e.Add=pv,e.AddN="AddN",e.All="All",e.Any="Any",e.ArgMax="ArgMax",e.ArgMin="ArgMin",e.Asin="Asin",e.Asinh="Asinh",e.Atan="Atan",e.Atan2="Atan2",e.Atanh="Atanh",e.AvgPool="AvgPool",e.AvgPool3D="AvgPool3D",e.AvgPool3DBackprop="AvgPool3DBackprop",e.AvgPoolBackprop="AvgPoolBackprop",e.BatchMatMul="BatchMatMul",e.BatchToSpaceND="BatchToSpaceND",e.BroadcastTo="BroadcastTo",e.Callback=zF,e.CallbackList=qA,e.Cast="Cast",e.Ceil="Ceil",e.ClipByValue="ClipByValue",e.Complex="Complex",e.Concat="Concat",e.Conv2D="Conv2D",e.Conv2DBackpropFilter="Conv2DBackpropFilter",e.Conv2DBackpropInput="Conv2DBackpropInput",e.Conv3D="Conv3D",e.Conv3DBackpropFilterV2="Conv3DBackpropFilterV2",e.Conv3DBackpropInputV2="Conv3DBackpropInputV2",e.Cos=hv,e.Cosh="Cosh",e.CropAndResize="CropAndResize",e.Cumsum="Cumsum",e.CustomCallback=YA,e.DataStorage=nv,e.DepthToSpace="DepthToSpace",e.DepthwiseConv2dNative="DepthwiseConv2dNative",e.DepthwiseConv2dNativeBackpropFilter="DepthwiseConv2dNativeBackpropFilter",e.DepthwiseConv2dNativeBackpropInput="DepthwiseConv2dNativeBackpropInput",e.Diag="Diag",e.Dilation2D="Dilation2D",e.Dilation2DBackpropFilter="Dilation2DBackpropFilter",e.Dilation2DBackpropInput="Dilation2DBackpropInput",e.Div=fv,e.EarlyStopping=WF,e.Elu="Elu",e.EluGrad="EluGrad",e.Environment=ov,e.Equal="Equal",e.Erf="Erf",e.Exp="Exp",e.Expm1="Expm1",e.FFT="FFT",e.Fill="Fill",e.FlipLeftRight="FlipLeftRight",e.Floor="Floor",e.FloorDiv="FloorDiv",e.FromPixels="FromPixels",e.FusedBatchNorm="FusedBatchNorm",e.FusedConv2D="FusedConv2D",e.FusedDepthwiseConv2D="FusedDepthwiseConv2D",e.GatherNd="GatherNd",e.GatherV2="GatherV2",e.GraphModel=JO,e.Greater="Greater",e.GreaterEqual="GreaterEqual",e.History=XA,e.IFFT="IFFT",e.Identity="Identity",e.Imag="Imag",e.InputSpec=FA,e.IsFinite="IsFinite",e.IsInf="IsInf",e.IsNan="IsNan",e.KernelBackend=rv,e.LRN="LRN",e.LRNBackprop="LRNBackprop",e.LayerVariable=TA,e.LayersModel=fD,e.Less="Less",e.LessEqual="LessEqual",e.LinSpace="LinSpace",e.Log="Log",e.Log1p="Log1p",e.LogSoftmax="LogSoftmax",e.LogicalAnd="LogicalAnd",e.LogicalNot="LogicalNot",e.LogicalOr="LogicalOr",e.Max="Max",e.Ma
17xPool="MaxPool",e.MaxPool3D="MaxPool3D",e.MaxPool3DBackprop="MaxPool3DBackprop",e.MaxPoolBackprop="MaxPoolBackprop",e.MaxPoolWithArgmax="MaxPoolWithArgmax",e.Maximum="Maximum",e.Mean="Mean",e.Min="Min",e.Minimum="Minimum",e.Mod="Mod",e.MomentumOptimizer=YI,e.Multiply="Multiply",e.Negate="Negate",e.NonMaxSuppressionV3="NonMaxSuppressionV3",e.NonMaxSuppressionV4="NonMaxSuppressionV4",e.NonMaxSuppressionV5="NonMaxSuppressionV5",e.NotEqual="NotEqual",e.OP_SCOPE_SUFFIX="__op",e.OneHot="OneHot",e.OnesLike="OnesLike",e.Optimizer=GI,e.PadV2="PadV2",e.Pool="Pool",e.Pow="Pow",e.Prelu="Prelu",e.Prod="Prod",e.RMSPropOptimizer=JI,e.RNN=b_,e.Range="Range",e.Real="Real",e.Reciprocal="Reciprocal",e.Relu="Relu",e.Relu6="Relu6",e.Reshape="Reshape",e.ResizeBilinear="ResizeBilinear",e.ResizeBilinearGrad="ResizeBilinearGrad",e.ResizeNearestNeighbor="ResizeNearestNeighbor",e.ResizeNearestNeighborGrad="ResizeNearestNeighborGrad",e.Reverse="Reverse",e.RotateWithOffset="RotateWithOffset",e.Round="Round",e.Rsqrt="Rsqrt",e.SGDOptimizer=XI,e.ScatterNd="ScatterNd",e.SelectV2="SelectV2",e.Selu="Selu",e.Sequential=xD,e.Sigmoid="Sigmoid",e.Sign="Sign",e.Sin=dv,e.Sinh="Sinh",e.Slice="Slice",e.Softmax="Softmax",e.Softplus="Softplus",e.SpaceToBatchND="SpaceToBatchND",e.SparseToDense="SparseToDense",e.SplitV="SplitV",e.Sqrt="Sqrt",e.Square="Square",e.SquaredDifference="SquaredDifference",e.Step="Step",e.StridedSlice="StridedSlice",e.Sub="Sub",e.Sum="Sum",e.SymbolicTensor=OA,e.Tan=mv,e.Tanh="Tanh",e.Tensor=Ig,e.TensorBuffer=kg,e.Tile="Tile",e.TopK="TopK",e.Transpose="Transpose",e.Unique="Unique",e.Unpack="Unpack",e.UnsortedSegmentSum="UnsortedSegmentSum",e.Variable=Dg,e.ZerosLike="ZerosLike",e._FusedMatMul="_FusedMatMul",e.abs=gx,e.acos=yx,e.acosh=bx,e.add=fx,e.addN=xx,e.addStrict=xN,e.all=Ax,e.any=Tx,e.argMax=Dx,e.argMin=_x,e.asin=Fx,e.asinh=Ox,e.atan=Mx,e.atan2=Lx,e.atanh=zx,e.avgPool=Zx,e.avgPool3d=Qx,e.backend=hx,e.backend_util=xC,e.basicLSTMCell=iw,e.batchNorm=uw,e.batchNorm2d=lw,e.batchNorm3d=cw,e.batchNorm4d=pw,e.batchToSpaceND=ow,e.booleanMaskAsync=fN,e.broadcastTo=hw,e.browser=Cb,e.buffer=Yy,e.callbacks=GF,e.cast=Jy,e.ceil=fw,e.clipByValue=dw,e.clone=Zy,e.complex=ey,e.concat=tw,e.concat1d=mw,e.concat2d=vw,e.concat3d=gw,e.concat4d=yw,e.constraints=vE,e.conv1d=xw,e.conv2d=bw,e.conv2dTranspose=kw,e.conv3d=Sw,e.conv3dTranspose=Iw,e.copyRegisteredKernels=function(e,t){xv(e).forEach((function(e){wv(Object.assign({},e,{backendName:t}))}))},e.cos=Cw,e.cosh=Rw,e.cosineWindow=LN,e.cumsum=Ew,e.customGrad=vk,e.data=aL,e.deprecationWarn=ax,e.depthToSpace=Aw,e.depthwiseConv2d=Tw,e.deregisterOp=function(e){delete jF[e]},e.device_util=Kg,e.diag=Dw,e.dilation2d=_w,e.disableDeprecationWarnings=function(){uv().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")},e.dispose=ux,e.disposeVariables=function(){Gg.disposeVariables()},e.div=mx,e.divNoNan=Pw,e.divStrict=wN,e.dot=Ww,e.dropout=ON,e.elu=Vw,e.enableDebugMode=function(){uv().set("DEBUG",!0)},e.enableProdMode=function(){uv().set("PROD",!0)},e.enclosingPowerOfTwo=MN,e.engine=ix,e.env=uv,e.equal=Lw,e.equalStrict=dN,e.erf=Uw,e.exp=Gw,e.expandDims=jw,e.expm1=Hw,e.eye=Kw,e.fft=US,e.fill=Xw,e.findBackend=function(e){return Gg.findBackend(e)},e.findBackendFactory=function(e){return Gg.findBackendFactory(e)},e.floor=Yw,e.floorDiv=dx,e.fused=YN,e.gather=$w,e.gatherND=FN,e.gather_util=Eb,e.getBackend=function(){return Gg.backendName},e.getGradient=bv,e.getKernel=yv,e.getKernelsForBackend=xv,e.grad=function(e){return Ev($v(e),(function(){return"The f passed in grad(f) must be a function"})),function(t,n){var r=Zg(t,"x","tf.grad",null),a=null!=n?Zg(n,"dy","tf.grad"):null;return Gg.tidy((function(){var t=Gg.gradients((function(){return e(r)}),[r],a),n=t.value,i=t.grads;return null!=a&&Av(n.shape,a.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),gk(i),i[0]}))}},e.grads=function(e){return Ev($v(e),(function(){return"The f passed in grads(f) must be a function"})),function(t,n){Ev(Array.isArray(t),(function(){return"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s"}));var r=Qg(t,"args","tf.grads",null),a=null!=n?Zg(n,"dy","tf.grads"):null;return Gg.tidy((function(){var t=Gg.gradients((function(){return e.apply(void 0,r)}),r,a),n=t.value,i=t.grads;return null!=a&&Av(n.shape,a.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),gk(i),i}))}},e.greater=ek,e.greaterEqual=tk,e.greaterEqualStrict=mN,e.greaterStrict=vN,e.ifft=GS,e.imag=nk,e.image=WI,e.inTopKAsync=BN,e.initializer
17s=xA,e.input=wD,e.io=vb,e.irfft=jS,e.isFinite=rk,e.isInf=ak,e.isNaN=ik,e.keep=lx,e.kernel_impls=NC,e.layers=FF,e.leakyRelu=uk,e.less=lk,e.lessEqual=ck,e.lessEqualStrict=gN,e.lessStrict=yN,e.linalg=VI,e.linspace=pk,e.loadGraphModel=function(e,t){return ZO.apply(this,arguments)},e.loadLayersModel=function(e,t){return null==t&&(t={}),function(e,t){return vD.apply(this,arguments)}(e,t)},e.localResponseNormalization=hk,e.log=fk,e.log1p=dk,e.logSigmoid=xk,e.logSoftmax=Nk,e.logSumExp=Ik,e.logicalAnd=Ck,e.logicalNot=Rk,e.logicalOr=Ek,e.logicalXor=Ak,e.losses=UI,e.matMul=yb,e.math=kb,e.max=wk,e.maxPool=Tk,e.maxPool3d=Dk,e.maxPoolWithArgmax=_k,e.maximum=ok,e.maximumStrict=kN,e.mean=Mk,e.memory=ox,e.metrics=OF,e.min=Lk,e.minimum=zk,e.minimumStrict=SN,e.mod=Bk,e.modStrict=NN,e.model=function(e){return new fD(e)},e.models=MF,e.moments=Wk,e.movingAverage=TN,e.mul=vx,e.mulStrict=IN,e.multiRNNCell=Vk,e.multinomial=Uk,e.neg=yk,e.nextFrame=eC,e.norm=AN,e.notEqual=Gk,e.notEqualStrict=bN,e.oneHot=bb,e.ones=Ok,e.onesLike=Hk,e.op=$g,e.outerProduct=qk,e.pad=Kk,e.pad1d=Xk,e.pad2d=Yk,e.pad3d=Jk,e.pad4d=Zk,e.pool=$k,e.pow=eS,e.powStrict=CN,e.prelu=tS,e.print=Qy,e.prod=nS,e.profile=function(e){return Gg.profile(e)},e.rand=rS,e.randomGamma=mS,e.randomNormal=vS,e.randomUniform=gS,e.range=bS,e.ready=function(){return Gg.ready()},e.real=jk,e.reciprocal=xS,e.registerBackend=px,e.registerCallbackConstructor=function(e,t){ZA.registerCallbackConstructor(e,t)},e.registerGradient=kv,e.registerKernel=wv,e.registerOp=function(e,t){var n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};jF[e]=n},e.regularizers=LF,e.relu=wS,e.relu6=kS,e.removeBackend=function(e){Gg.removeBackend(e)},e.reshape=gb,e.reverse=SS,e.reverse1d=NS,e.reverse2d=IS,e.reverse3d=CS,e.reverse4d=RS,e.rfft=KS,e.round=ES,e.rsqrt=AS,e.scalar=sk,e.scatterND=DN,e.scatter_util=_b,e.selu=TS,e.separableConv2d=DS,e.sequential=function(e){return new xD(e)},e.serialization=Qb,e.setBackend=cx,e.setPlatform=function(e,t){uv().setPlatform(e,t)},e.setdiff1dAsync=FS,e.sigmoid=nw,e.sign=OS,e.signal=PI,e.sin=MS,e.sinh=LS,e.slice=rw,e.slice1d=zS,e.slice2d=BS,e.slice3d=PS,e.slice4d=WS,e.slice_util=Xb,e.softmax=VS,e.softplus=bk,e.spaceToBatchND=Qk,e.sparseToDense=_N,e.spectral=BI,e.split=qS,e.sqrt=XS,e.square=Pk,e.squaredDifference=YS,e.squaredDifferenceStrict=RN,e.squeeze=JS,e.stack=ZS,e.step=QS,e.stridedSlice=$S,e.sub=kk,e.subStrict=EN,e.sum=Sk,e.sumOutType=Og,e.tan=eN,e.tanh=aw,e.tensor=ny,e.tensor1d=yS,e.tensor2d=tN,e.tensor3d=Sb,e.tensor4d=nN,e.tensor5d=function(e,t,n){if(Tv(e),null!=t&&5!==t.length)throw new Error("tensor5d() requires shape to have five numbers");var r=Yg(e,n);if(5!==r.length&&1!==r.length)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return ty(e,t,r,n)},e.tensor6d=function(e,t,n){if(Tv(e),null!=t&&6!==t.length)throw new Error("tensor6d() requires shape to have six numbers");var r=Yg(e,n);if(6!==r.length&&1!==r.length)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return ty(e,t=t||r,r,n)},e.tensor_util=Pg,e.test_util=rx,e.tidy=sx,e.tile=qw,e.time=function(e){return Gg.time(e)},e.topk=rN,e.train=QI,e.transpose=xb,e.truncatedNormal=aN,e.unique=iN,e.unregisterGradient=function(e){if(!gv.has(e))throw new Error("The gradient '"+e+"' for backend is not registered");gv.delete(e)},e.unregisterKernel=function(e,t){var n=Sv(e,t);if(!vv.has(n))throw new Error("The kernel '"+e+"' for backend '"+t+"' is not registered");vv.delete(n)},e.unsortedSegmentSum=oN,e.unstack=sN,e.upcastType=Fg,e.util=mg,e.valueAndGrad=function(e){return Ev($v(e),(function(){return"The f passed in valueAndGrad(f) must be a function"})),function(t,n){Ev(t instanceof Ig,(function(){return"The x passed in valueAndGrad(f)(x) must be a tensor"})),Ev(null==n||n instanceof Ig,(function(){return"The dy passed in valueAndGrad(f)(x, dy) must be a tensor"}));var r=Gg.gradients((function(){return e(t)}),[t],n),a=r.grads,i=r.value;return gk(a),{grad:a[0],value:i}}},e.valueAndGrads=function(e){return Ev($v(e),(function(){return"The f passed in valueAndGrads(f) must be a function"})),function(t,n){Ev(Array.isArray(t)&&t.every((function(e){return e instanceof Ig})),(function(){return"The args passed in valueAndGrads(f)(args) must be array of tensors"})),Ev(null==n||n instanceof Ig,(function(){return"The dy passed in valueAndGrads(f)(args, dy) must be a tensor"}));var r=Gg.gradients((function(){return e.apply(void 0,t)}),t,n);return null!=n&&Av(r.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),gk(r.grads),r}}
17,e.variable=uN,e.variableGrads=mk,e.version=WU,e.version_converter="2.6.0",e.version_core="2.6.0",e.version_layers="2.6.0",e.where=zw,e.whereAsync=pN,e.zeros=Fk,e.zerosLike=Bw,Object.defineProperty(e,"__esModule",{value:!0})}));
18//# sourceMappingURL=tf.min.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.