@guihz/trading-vue-editor-tes 0.0.219 → 0.0.221

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,13 @@
1
- var K2=Object.defineProperty;var G2=(Vt,Kt,Se)=>Kt in Vt?K2(Vt,Kt,{enumerable:!0,configurable:!0,writable:!0,value:Se}):Vt[Kt]=Se;var $=(Vt,Kt,Se)=>(G2(Vt,typeof Kt!="symbol"?Kt+"":Kt,Se),Se),Wl=(Vt,Kt,Se)=>{if(!Kt.has(Vt))throw TypeError("Cannot "+Se)};var Qr=(Vt,Kt,Se)=>(Wl(Vt,Kt,"read from private field"),Se?Se.call(Vt):Kt.get(Vt)),Yl=(Vt,Kt,Se)=>{if(Kt.has(Vt))throw TypeError("Cannot add the same private member more than once");Kt instanceof WeakSet?Kt.add(Vt):Kt.set(Vt,Se)},ba=(Vt,Kt,Se,Kn)=>(Wl(Vt,Kt,"write to private field"),Kn?Kn.call(Vt,Se):Kt.set(Vt,Se),Se);var Vl=(Vt,Kt,Se)=>(Wl(Vt,Kt,"access private method"),Se);(function(){"use strict";var cs,Hl,Ri,tr;var Vt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Kt(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}function Se(i){if(i.__esModule)return i;var t=i.default;if(typeof t=="function"){var e=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};e.prototype=t.prototype}else e={};return Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(i).forEach(function(r){var n=Object.getOwnPropertyDescriptor(i,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:function(){return i[r]}})}),e}var Kn={exports:{}};/**
1
+ var K2=Object.defineProperty;var G2=(Vt,Kt,Se)=>Kt in Vt?K2(Vt,Kt,{enumerable:!0,configurable:!0,writable:!0,value:Se}):Vt[Kt]=Se;var $=(Vt,Kt,Se)=>(G2(Vt,typeof Kt!="symbol"?Kt+"":Kt,Se),Se),Wl=(Vt,Kt,Se)=>{if(!Kt.has(Vt))throw TypeError("Cannot "+Se)};var tn=(Vt,Kt,Se)=>(Wl(Vt,Kt,"read from private field"),Se?Se.call(Vt):Kt.get(Vt)),Yl=(Vt,Kt,Se)=>{if(Kt.has(Vt))throw TypeError("Cannot add the same private member more than once");Kt instanceof WeakSet?Kt.add(Vt):Kt.set(Vt,Se)},ba=(Vt,Kt,Se,Kn)=>(Wl(Vt,Kt,"write to private field"),Kn?Kn.call(Vt,Se):Kt.set(Vt,Se),Se);var Vl=(Vt,Kt,Se)=>(Wl(Vt,Kt,"access private method"),Se);(function(){"use strict";var cs,Hl,Ri,tr;var Vt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Kt(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}function Se(i){if(i.__esModule)return i;var t=i.default;if(typeof t=="function"){var e=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};e.prototype=t.prototype}else e={};return Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(i).forEach(function(r){var n=Object.getOwnPropertyDescriptor(i,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:function(){return i[r]}})}),e}var Kn={exports:{}};/**
2
2
  * @license
3
3
  * Lodash <https://lodash.com/>
4
4
  * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
5
5
  * Released under MIT license <https://lodash.com/license>
6
6
  * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
7
7
  * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
8
- */Kn.exports,function(i,t){(function(){var e,r="4.17.21",n=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",u="Invalid `variable` option passed into `_.template`",c="__lodash_hash_undefined__",f=500,d="__lodash_placeholder__",h=1,p=2,g=4,y=1,_=2,w=1,v=2,x=4,b=8,N=16,E=32,C=64,F=128,S=256,I=512,A=30,O="...",L=800,z=16,q=1,j=2,P=3,Z=1/0,W=9007199254740991,X=17976931348623157e292,J=NaN,ct=4294967295,gt=ct-1,st=ct>>>1,yt=[["ary",F],["bind",w],["bindKey",v],["curry",b],["curryRight",N],["flip",I],["partial",E],["partialRight",C],["rearg",S]],Dt="[object Arguments]",Nt="[object Array]",xt="[object AsyncFunction]",ue="[object Boolean]",Tt="[object Date]",St="[object DOMException]",fe="[object Error]",ne="[object Function]",qt="[object GeneratorFunction]",Xt="[object Map]",Le="[object Number]",Dr="[object Null]",ze="[object Object]",mn="[object Promise]",Ln="[object Proxy]",gn="[object RegExp]",br="[object Set]",Rn="[object String]",R="[object Symbol]",H="[object Undefined]",K="[object WeakMap]",nt="[object WeakSet]",ot="[object ArrayBuffer]",rt="[object DataView]",ft="[object Float32Array]",lt="[object Float64Array]",ht="[object Int8Array]",ut="[object Int16Array]",Qt="[object Int32Array]",ie="[object Uint8Array]",xe="[object Uint8ClampedArray]",Ye="[object Uint16Array]",qe="[object Uint32Array]",xr=/\b__p \+= '';/g,Er=/\b(__p \+=) '' \+/g,Pn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ui=/&(?:amp|lt|gt|quot|#39);/g,Bo=/[&<>"']/g,fu=RegExp(ui.source),hu=RegExp(Bo.source),du=/<%-([\s\S]+?)%>/g,pu=/<%([\s\S]+?)%>/g,To=/<%=([\s\S]+?)%>/g,_u=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,mu=/^\w*$/,gu=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,fs=/[\\^$.*+?()[\]{}|]/g,vu=RegExp(fs.source),hs=/^\s+/,yu=/\s/,wu=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Du=/\{\n\/\* \[wrapped with (.+)\] \*/,bu=/,? & /,xu=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Eu=/[()=,{}\[\]\/\s]/,Au=/\\(\\)?/g,Cu=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Io=/\w*$/,Mu=/^[-+]0x[0-9a-f]+$/i,Fu=/^0b[01]+$/i,Nu=/^\[object .+?Constructor\]$/,Su=/^0o[0-7]+$/i,Ou=/^(?:0|[1-9]\d*)$/,Bu=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Pi=/($^)/,li=/['\n\r\u2028\u2029\\]/g,Zt="\\ud800-\\udfff",er="\\u0300-\\u036f",Tu="\\ufe20-\\ufe2f",ki="\\u20d0-\\u20ff",kn=er+Tu+ki,$o="\\u2700-\\u27bf",Jh="a-z\\xdf-\\xf6\\xf8-\\xff",YD="\\xac\\xb1\\xd7\\xf7",VD="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",HD="\\u2000-\\u206f",ZD=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xh="A-Z\\xc0-\\xd6\\xd8-\\xde",Qh="\\ufe0e\\ufe0f",t0=YD+VD+HD+ZD,Iu="['’]",KD="["+Zt+"]",e0="["+t0+"]",Lo="["+kn+"]",r0="\\d+",GD="["+$o+"]",n0="["+Jh+"]",i0="[^"+Zt+t0+r0+$o+Jh+Xh+"]",$u="\\ud83c[\\udffb-\\udfff]",JD="(?:"+Lo+"|"+$u+")",s0="[^"+Zt+"]",Lu="(?:\\ud83c[\\udde6-\\uddff]){2}",Ru="[\\ud800-\\udbff][\\udc00-\\udfff]",zi="["+Xh+"]",o0="\\u200d",a0="(?:"+n0+"|"+i0+")",XD="(?:"+zi+"|"+i0+")",u0="(?:"+Iu+"(?:d|ll|m|re|s|t|ve))?",l0="(?:"+Iu+"(?:D|LL|M|RE|S|T|VE))?",c0=JD+"?",f0="["+Qh+"]?",QD="(?:"+o0+"(?:"+[s0,Lu,Ru].join("|")+")"+f0+c0+")*",tb="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",eb="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",h0=f0+c0+QD,rb="(?:"+[GD,Lu,Ru].join("|")+")"+h0,nb="(?:"+[s0+Lo+"?",Lo,Lu,Ru,KD].join("|")+")",ib=RegExp(Iu,"g"),sb=RegExp(Lo,"g"),Pu=RegExp($u+"(?="+$u+")|"+nb+h0,"g"),ob=RegExp([zi+"?"+n0+"+"+u0+"(?="+[e0,zi,"$"].join("|")+")",XD+"+"+l0+"(?="+[e0,zi+a0,"$"].join("|")+")",zi+"?"+a0+"+"+u0,zi+"+"+l0,eb,tb,r0,rb].join("|"),"g"),ab=RegExp("["+o0+Zt+kn+Qh+"]"),ub=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,lb=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],cb=-1,we={};we[ft]=we[lt]=we[ht]=we[ut]=we[Qt]=we[ie]=we[xe]=we[Ye]=we[qe]=!0,we[Dt]=we[Nt]=we[ot]=we[ue]=we[rt]=we[Tt]=we[fe]=we[ne]=we[Xt]=we[Le]=we[ze]=we[gn]=we[br]=we[Rn]=we[K]=!1;var me={};me[Dt]=me[Nt]=me[ot]=me[rt]=me[ue]=me[Tt]=me[ft]=me[lt]=me[ht]=me[ut]=me[Qt]=me[Xt]=me[Le]=me[ze]=me[gn]=me[br]=me[Rn]=me[R]=me[ie]=me[xe]=me[Ye]=me[qe]=!0,me[fe]=me[ne]=me[K]=!1;var fb={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},hb={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},db={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},pb={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},_b=parseFloat,mb=parseInt,d0=typeof Vt=="object"&&Vt&&Vt.Object===Object&&Vt,gb=typeof self=="object"&&self&&self.Object===Object&&self,Je=d0||gb||Function("return this")(),ku=t&&!t.nodeType&&t,ci=ku&&!0&&i&&!i.nodeType&&i,p0=ci&&ci.exports===ku,zu=p0&&d0.process,$r=function(){try{var Y=ci&&ci.require&&ci.require("util").types;return Y||zu&&zu.binding&&zu.binding("util")}catch{}}(),_0=$r&&$r.isArrayBuffer,m0=$r&&$r.isDate,g0=$r&&$r.isMap,v0=$r&&$r.isRegExp,y0=$r&&$r.isSet,w0=$r&&$r.isTypedArray;function Ar(Y,Q,G){switch(G.length){case 0:return Y.call(Q);case 1:return Y.call(Q,G[0]);case 2:return Y.call(Q,G[0],G[1]);case 3:return Y.call(Q,G[0],G[1],G[2])}return Y.apply(Q,G)}function vb(Y,Q,G,vt){for(var Bt=-1,ee=Y==null?0:Y.length;++Bt<ee;){var Ue=Y[Bt];Q(vt,Ue,G(Ue),Y)}return vt}function Lr(Y,Q){for(var G=-1,vt=Y==null?0:Y.length;++G<vt&&Q(Y[G],G,Y)!==!1;);return Y}function yb(Y,Q){for(var G=Y==null?0:Y.length;G--&&Q(Y[G],G,Y)!==!1;);return Y}function D0(Y,Q){for(var G=-1,vt=Y==null?0:Y.length;++G<vt;)if(!Q(Y[G],G,Y))return!1;return!0}function zn(Y,Q){for(var G=-1,vt=Y==null?0:Y.length,Bt=0,ee=[];++G<vt;){var Ue=Y[G];Q(Ue,G,Y)&&(ee[Bt++]=Ue)}return ee}function Ro(Y,Q){var G=Y==null?0:Y.length;return!!G&&qi(Y,Q,0)>-1}function qu(Y,Q,G){for(var vt=-1,Bt=Y==null?0:Y.length;++vt<Bt;)if(G(Q,Y[vt]))return!0;return!1}function Ee(Y,Q){for(var G=-1,vt=Y==null?0:Y.length,Bt=Array(vt);++G<vt;)Bt[G]=Q(Y[G],G,Y);return Bt}function qn(Y,Q){for(var G=-1,vt=Q.length,Bt=Y.length;++G<vt;)Y[Bt+G]=Q[G];return Y}function Uu(Y,Q,G,vt){var Bt=-1,ee=Y==null?0:Y.length;for(vt&&ee&&(G=Y[++Bt]);++Bt<ee;)G=Q(G,Y[Bt],Bt,Y);return G}function wb(Y,Q,G,vt){var Bt=Y==null?0:Y.length;for(vt&&Bt&&(G=Y[--Bt]);Bt--;)G=Q(G,Y[Bt],Bt,Y);return G}function ju(Y,Q){for(var G=-1,vt=Y==null?0:Y.length;++G<vt;)if(Q(Y[G],G,Y))return!0;return!1}var Db=Wu("length");function bb(Y){return Y.split("")}function xb(Y){return Y.match(xu)||[]}function b0(Y,Q,G){var vt;return G(Y,function(Bt,ee,Ue){if(Q(Bt,ee,Ue))return vt=ee,!1}),vt}function Po(Y,Q,G,vt){for(var Bt=Y.length,ee=G+(vt?1:-1);vt?ee--:++ee<Bt;)if(Q(Y[ee],ee,Y))return ee;return-1}function qi(Y,Q,G){return Q===Q?$b(Y,Q,G):Po(Y,x0,G)}function Eb(Y,Q,G,vt){for(var Bt=G-1,ee=Y.length;++Bt<ee;)if(vt(Y[Bt],Q))return Bt;return-1}function x0(Y){return Y!==Y}function E0(Y,Q){var G=Y==null?0:Y.length;return G?Vu(Y,Q)/G:J}function Wu(Y){return function(Q){return Q==null?e:Q[Y]}}function Yu(Y){return function(Q){return Y==null?e:Y[Q]}}function A0(Y,Q,G,vt,Bt){return Bt(Y,function(ee,Ue,pe){G=vt?(vt=!1,ee):Q(G,ee,Ue,pe)}),G}function Ab(Y,Q){var G=Y.length;for(Y.sort(Q);G--;)Y[G]=Y[G].value;return Y}function Vu(Y,Q){for(var G,vt=-1,Bt=Y.length;++vt<Bt;){var ee=Q(Y[vt]);ee!==e&&(G=G===e?ee:G+ee)}return G}function Hu(Y,Q){for(var G=-1,vt=Array(Y);++G<Y;)vt[G]=Q(G);return vt}function Cb(Y,Q){return Ee(Q,function(G){return[G,Y[G]]})}function C0(Y){return Y&&Y.slice(0,S0(Y)+1).replace(hs,"")}function Cr(Y){return function(Q){return Y(Q)}}function Zu(Y,Q){return Ee(Q,function(G){return Y[G]})}function ds(Y,Q){return Y.has(Q)}function M0(Y,Q){for(var G=-1,vt=Y.length;++G<vt&&qi(Q,Y[G],0)>-1;);return G}function F0(Y,Q){for(var G=Y.length;G--&&qi(Q,Y[G],0)>-1;);return G}function Mb(Y,Q){for(var G=Y.length,vt=0;G--;)Y[G]===Q&&++vt;return vt}var Fb=Yu(fb),Nb=Yu(hb);function Sb(Y){return"\\"+pb[Y]}function Ob(Y,Q){return Y==null?e:Y[Q]}function Ui(Y){return ab.test(Y)}function Bb(Y){return ub.test(Y)}function Tb(Y){for(var Q,G=[];!(Q=Y.next()).done;)G.push(Q.value);return G}function Ku(Y){var Q=-1,G=Array(Y.size);return Y.forEach(function(vt,Bt){G[++Q]=[Bt,vt]}),G}function N0(Y,Q){return function(G){return Y(Q(G))}}function Un(Y,Q){for(var G=-1,vt=Y.length,Bt=0,ee=[];++G<vt;){var Ue=Y[G];(Ue===Q||Ue===d)&&(Y[G]=d,ee[Bt++]=G)}return ee}function ko(Y){var Q=-1,G=Array(Y.size);return Y.forEach(function(vt){G[++Q]=vt}),G}function Ib(Y){var Q=-1,G=Array(Y.size);return Y.forEach(function(vt){G[++Q]=[vt,vt]}),G}function $b(Y,Q,G){for(var vt=G-1,Bt=Y.length;++vt<Bt;)if(Y[vt]===Q)return vt;return-1}function Lb(Y,Q,G){for(var vt=G+1;vt--;)if(Y[vt]===Q)return vt;return vt}function ji(Y){return Ui(Y)?Pb(Y):Db(Y)}function Kr(Y){return Ui(Y)?kb(Y):bb(Y)}function S0(Y){for(var Q=Y.length;Q--&&yu.test(Y.charAt(Q)););return Q}var Rb=Yu(db);function Pb(Y){for(var Q=Pu.lastIndex=0;Pu.test(Y);)++Q;return Q}function kb(Y){return Y.match(Pu)||[]}function zb(Y){return Y.match(ob)||[]}var qb=function Y(Q){Q=Q==null?Je:Wi.defaults(Je.Object(),Q,Wi.pick(Je,lb));var G=Q.Array,vt=Q.Date,Bt=Q.Error,ee=Q.Function,Ue=Q.Math,pe=Q.Object,Gu=Q.RegExp,Ub=Q.String,Rr=Q.TypeError,zo=G.prototype,jb=ee.prototype,Yi=pe.prototype,qo=Q["__core-js_shared__"],Uo=jb.toString,le=Yi.hasOwnProperty,Wb=0,O0=function(){var o=/[^.]+$/.exec(qo&&qo.keys&&qo.keys.IE_PROTO||"");return o?"Symbol(src)_1."+o:""}(),jo=Yi.toString,Yb=Uo.call(pe),Vb=Je._,Hb=Gu("^"+Uo.call(le).replace(fs,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Wo=p0?Q.Buffer:e,jn=Q.Symbol,Yo=Q.Uint8Array,B0=Wo?Wo.allocUnsafe:e,Vo=N0(pe.getPrototypeOf,pe),T0=pe.create,I0=Yi.propertyIsEnumerable,Ho=zo.splice,$0=jn?jn.isConcatSpreadable:e,ps=jn?jn.iterator:e,fi=jn?jn.toStringTag:e,Zo=function(){try{var o=mi(pe,"defineProperty");return o({},"",{}),o}catch{}}(),Zb=Q.clearTimeout!==Je.clearTimeout&&Q.clearTimeout,Kb=vt&&vt.now!==Je.Date.now&&vt.now,Gb=Q.setTimeout!==Je.setTimeout&&Q.setTimeout,Ko=Ue.ceil,Go=Ue.floor,Ju=pe.getOwnPropertySymbols,Jb=Wo?Wo.isBuffer:e,L0=Q.isFinite,Xb=zo.join,Qb=N0(pe.keys,pe),je=Ue.max,rr=Ue.min,tx=vt.now,ex=Q.parseInt,R0=Ue.random,rx=zo.reverse,Xu=mi(Q,"DataView"),_s=mi(Q,"Map"),Qu=mi(Q,"Promise"),Vi=mi(Q,"Set"),ms=mi(Q,"WeakMap"),gs=mi(pe,"create"),Jo=ms&&new ms,Hi={},nx=gi(Xu),ix=gi(_s),sx=gi(Qu),ox=gi(Vi),ax=gi(ms),Xo=jn?jn.prototype:e,vs=Xo?Xo.valueOf:e,P0=Xo?Xo.toString:e;function B(o){if(Ne(o)&&!It(o)&&!(o instanceof Yt)){if(o instanceof Pr)return o;if(le.call(o,"__wrapped__"))return kd(o)}return new Pr(o)}var Zi=function(){function o(){}return function(l){if(!Me(l))return{};if(T0)return T0(l);o.prototype=l;var m=new o;return o.prototype=e,m}}();function Qo(){}function Pr(o,l){this.__wrapped__=o,this.__actions__=[],this.__chain__=!!l,this.__index__=0,this.__values__=e}B.templateSettings={escape:du,evaluate:pu,interpolate:To,variable:"",imports:{_:B}},B.prototype=Qo.prototype,B.prototype.constructor=B,Pr.prototype=Zi(Qo.prototype),Pr.prototype.constructor=Pr;function Yt(o){this.__wrapped__=o,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=ct,this.__views__=[]}function ux(){var o=new Yt(this.__wrapped__);return o.__actions__=hr(this.__actions__),o.__dir__=this.__dir__,o.__filtered__=this.__filtered__,o.__iteratees__=hr(this.__iteratees__),o.__takeCount__=this.__takeCount__,o.__views__=hr(this.__views__),o}function lx(){if(this.__filtered__){var o=new Yt(this);o.__dir__=-1,o.__filtered__=!0}else o=this.clone(),o.__dir__*=-1;return o}function cx(){var o=this.__wrapped__.value(),l=this.__dir__,m=It(o),D=l<0,M=m?o.length:0,T=bE(0,M,this.__views__),k=T.start,U=T.end,V=U-k,tt=D?U:k-1,et=this.__iteratees__,at=et.length,pt=0,wt=rr(V,this.__takeCount__);if(!m||!D&&M==V&&wt==V)return ud(o,this.__actions__);var Ct=[];t:for(;V--&&pt<wt;){tt+=l;for(var Pt=-1,Mt=o[tt];++Pt<at;){var Ut=et[Pt],Ht=Ut.iteratee,Nr=Ut.type,ur=Ht(Mt);if(Nr==j)Mt=ur;else if(!ur){if(Nr==q)continue t;break t}}Ct[pt++]=Mt}return Ct}Yt.prototype=Zi(Qo.prototype),Yt.prototype.constructor=Yt;function hi(o){var l=-1,m=o==null?0:o.length;for(this.clear();++l<m;){var D=o[l];this.set(D[0],D[1])}}function fx(){this.__data__=gs?gs(null):{},this.size=0}function hx(o){var l=this.has(o)&&delete this.__data__[o];return this.size-=l?1:0,l}function dx(o){var l=this.__data__;if(gs){var m=l[o];return m===c?e:m}return le.call(l,o)?l[o]:e}function px(o){var l=this.__data__;return gs?l[o]!==e:le.call(l,o)}function _x(o,l){var m=this.__data__;return this.size+=this.has(o)?0:1,m[o]=gs&&l===e?c:l,this}hi.prototype.clear=fx,hi.prototype.delete=hx,hi.prototype.get=dx,hi.prototype.has=px,hi.prototype.set=_x;function vn(o){var l=-1,m=o==null?0:o.length;for(this.clear();++l<m;){var D=o[l];this.set(D[0],D[1])}}function mx(){this.__data__=[],this.size=0}function gx(o){var l=this.__data__,m=ta(l,o);if(m<0)return!1;var D=l.length-1;return m==D?l.pop():Ho.call(l,m,1),--this.size,!0}function vx(o){var l=this.__data__,m=ta(l,o);return m<0?e:l[m][1]}function yx(o){return ta(this.__data__,o)>-1}function wx(o,l){var m=this.__data__,D=ta(m,o);return D<0?(++this.size,m.push([o,l])):m[D][1]=l,this}vn.prototype.clear=mx,vn.prototype.delete=gx,vn.prototype.get=vx,vn.prototype.has=yx,vn.prototype.set=wx;function yn(o){var l=-1,m=o==null?0:o.length;for(this.clear();++l<m;){var D=o[l];this.set(D[0],D[1])}}function Dx(){this.size=0,this.__data__={hash:new hi,map:new(_s||vn),string:new hi}}function bx(o){var l=ha(this,o).delete(o);return this.size-=l?1:0,l}function xx(o){return ha(this,o).get(o)}function Ex(o){return ha(this,o).has(o)}function Ax(o,l){var m=ha(this,o),D=m.size;return m.set(o,l),this.size+=m.size==D?0:1,this}yn.prototype.clear=Dx,yn.prototype.delete=bx,yn.prototype.get=xx,yn.prototype.has=Ex,yn.prototype.set=Ax;function di(o){var l=-1,m=o==null?0:o.length;for(this.__data__=new yn;++l<m;)this.add(o[l])}function Cx(o){return this.__data__.set(o,c),this}function Mx(o){return this.__data__.has(o)}di.prototype.add=di.prototype.push=Cx,di.prototype.has=Mx;function Gr(o){var l=this.__data__=new vn(o);this.size=l.size}function Fx(){this.__data__=new vn,this.size=0}function Nx(o){var l=this.__data__,m=l.delete(o);return this.size=l.size,m}function Sx(o){return this.__data__.get(o)}function Ox(o){return this.__data__.has(o)}function Bx(o,l){var m=this.__data__;if(m instanceof vn){var D=m.__data__;if(!_s||D.length<n-1)return D.push([o,l]),this.size=++m.size,this;m=this.__data__=new yn(D)}return m.set(o,l),this.size=m.size,this}Gr.prototype.clear=Fx,Gr.prototype.delete=Nx,Gr.prototype.get=Sx,Gr.prototype.has=Ox,Gr.prototype.set=Bx;function k0(o,l){var m=It(o),D=!m&&vi(o),M=!m&&!D&&Zn(o),T=!m&&!D&&!M&&Xi(o),k=m||D||M||T,U=k?Hu(o.length,Ub):[],V=U.length;for(var tt in o)(l||le.call(o,tt))&&!(k&&(tt=="length"||M&&(tt=="offset"||tt=="parent")||T&&(tt=="buffer"||tt=="byteLength"||tt=="byteOffset")||xn(tt,V)))&&U.push(tt);return U}function z0(o){var l=o.length;return l?o[cl(0,l-1)]:e}function Tx(o,l){return da(hr(o),pi(l,0,o.length))}function Ix(o){return da(hr(o))}function tl(o,l,m){(m!==e&&!Jr(o[l],m)||m===e&&!(l in o))&&wn(o,l,m)}function ys(o,l,m){var D=o[l];(!(le.call(o,l)&&Jr(D,m))||m===e&&!(l in o))&&wn(o,l,m)}function ta(o,l){for(var m=o.length;m--;)if(Jr(o[m][0],l))return m;return-1}function $x(o,l,m,D){return Wn(o,function(M,T,k){l(D,M,m(M),k)}),D}function q0(o,l){return o&&an(l,Ve(l),o)}function Lx(o,l){return o&&an(l,pr(l),o)}function wn(o,l,m){l=="__proto__"&&Zo?Zo(o,l,{configurable:!0,enumerable:!0,value:m,writable:!0}):o[l]=m}function el(o,l){for(var m=-1,D=l.length,M=G(D),T=o==null;++m<D;)M[m]=T?e:$l(o,l[m]);return M}function pi(o,l,m){return o===o&&(m!==e&&(o=o<=m?o:m),l!==e&&(o=o>=l?o:l)),o}function kr(o,l,m,D,M,T){var k,U=l&h,V=l&p,tt=l&g;if(m&&(k=M?m(o,D,M,T):m(o)),k!==e)return k;if(!Me(o))return o;var et=It(o);if(et){if(k=EE(o),!U)return hr(o,k)}else{var at=nr(o),pt=at==ne||at==qt;if(Zn(o))return fd(o,U);if(at==ze||at==Dt||pt&&!M){if(k=V||pt?{}:Sd(o),!U)return V?dE(o,Lx(k,o)):hE(o,q0(k,o))}else{if(!me[at])return M?o:{};k=AE(o,at,U)}}T||(T=new Gr);var wt=T.get(o);if(wt)return wt;T.set(o,k),sp(o)?o.forEach(function(Mt){k.add(kr(Mt,l,m,Mt,o,T))}):np(o)&&o.forEach(function(Mt,Ut){k.set(Ut,kr(Mt,l,m,Ut,o,T))});var Ct=tt?V?Dl:wl:V?pr:Ve,Pt=et?e:Ct(o);return Lr(Pt||o,function(Mt,Ut){Pt&&(Ut=Mt,Mt=o[Ut]),ys(k,Ut,kr(Mt,l,m,Ut,o,T))}),k}function Rx(o){var l=Ve(o);return function(m){return U0(m,o,l)}}function U0(o,l,m){var D=m.length;if(o==null)return!D;for(o=pe(o);D--;){var M=m[D],T=l[M],k=o[M];if(k===e&&!(M in o)||!T(k))return!1}return!0}function j0(o,l,m){if(typeof o!="function")throw new Rr(a);return Cs(function(){o.apply(e,m)},l)}function ws(o,l,m,D){var M=-1,T=Ro,k=!0,U=o.length,V=[],tt=l.length;if(!U)return V;m&&(l=Ee(l,Cr(m))),D?(T=qu,k=!1):l.length>=n&&(T=ds,k=!1,l=new di(l));t:for(;++M<U;){var et=o[M],at=m==null?et:m(et);if(et=D||et!==0?et:0,k&&at===at){for(var pt=tt;pt--;)if(l[pt]===at)continue t;V.push(et)}else T(l,at,D)||V.push(et)}return V}var Wn=md(on),W0=md(nl,!0);function Px(o,l){var m=!0;return Wn(o,function(D,M,T){return m=!!l(D,M,T),m}),m}function ea(o,l,m){for(var D=-1,M=o.length;++D<M;){var T=o[D],k=l(T);if(k!=null&&(U===e?k===k&&!Fr(k):m(k,U)))var U=k,V=T}return V}function kx(o,l,m,D){var M=o.length;for(m=Rt(m),m<0&&(m=-m>M?0:M+m),D=D===e||D>M?M:Rt(D),D<0&&(D+=M),D=m>D?0:ap(D);m<D;)o[m++]=l;return o}function Y0(o,l){var m=[];return Wn(o,function(D,M,T){l(D,M,T)&&m.push(D)}),m}function Xe(o,l,m,D,M){var T=-1,k=o.length;for(m||(m=ME),M||(M=[]);++T<k;){var U=o[T];l>0&&m(U)?l>1?Xe(U,l-1,m,D,M):qn(M,U):D||(M[M.length]=U)}return M}var rl=gd(),V0=gd(!0);function on(o,l){return o&&rl(o,l,Ve)}function nl(o,l){return o&&V0(o,l,Ve)}function ra(o,l){return zn(l,function(m){return En(o[m])})}function _i(o,l){l=Vn(l,o);for(var m=0,D=l.length;o!=null&&m<D;)o=o[un(l[m++])];return m&&m==D?o:e}function H0(o,l,m){var D=l(o);return It(o)?D:qn(D,m(o))}function or(o){return o==null?o===e?H:Dr:fi&&fi in pe(o)?DE(o):IE(o)}function il(o,l){return o>l}function zx(o,l){return o!=null&&le.call(o,l)}function qx(o,l){return o!=null&&l in pe(o)}function Ux(o,l,m){return o>=rr(l,m)&&o<je(l,m)}function sl(o,l,m){for(var D=m?qu:Ro,M=o[0].length,T=o.length,k=T,U=G(T),V=1/0,tt=[];k--;){var et=o[k];k&&l&&(et=Ee(et,Cr(l))),V=rr(et.length,V),U[k]=!m&&(l||M>=120&&et.length>=120)?new di(k&&et):e}et=o[0];var at=-1,pt=U[0];t:for(;++at<M&&tt.length<V;){var wt=et[at],Ct=l?l(wt):wt;if(wt=m||wt!==0?wt:0,!(pt?ds(pt,Ct):D(tt,Ct,m))){for(k=T;--k;){var Pt=U[k];if(!(Pt?ds(Pt,Ct):D(o[k],Ct,m)))continue t}pt&&pt.push(Ct),tt.push(wt)}}return tt}function jx(o,l,m,D){return on(o,function(M,T,k){l(D,m(M),T,k)}),D}function Ds(o,l,m){l=Vn(l,o),o=Id(o,l);var D=o==null?o:o[un(qr(l))];return D==null?e:Ar(D,o,m)}function Z0(o){return Ne(o)&&or(o)==Dt}function Wx(o){return Ne(o)&&or(o)==ot}function Yx(o){return Ne(o)&&or(o)==Tt}function bs(o,l,m,D,M){return o===l?!0:o==null||l==null||!Ne(o)&&!Ne(l)?o!==o&&l!==l:Vx(o,l,m,D,bs,M)}function Vx(o,l,m,D,M,T){var k=It(o),U=It(l),V=k?Nt:nr(o),tt=U?Nt:nr(l);V=V==Dt?ze:V,tt=tt==Dt?ze:tt;var et=V==ze,at=tt==ze,pt=V==tt;if(pt&&Zn(o)){if(!Zn(l))return!1;k=!0,et=!1}if(pt&&!et)return T||(T=new Gr),k||Xi(o)?Md(o,l,m,D,M,T):yE(o,l,V,m,D,M,T);if(!(m&y)){var wt=et&&le.call(o,"__wrapped__"),Ct=at&&le.call(l,"__wrapped__");if(wt||Ct){var Pt=wt?o.value():o,Mt=Ct?l.value():l;return T||(T=new Gr),M(Pt,Mt,m,D,T)}}return pt?(T||(T=new Gr),wE(o,l,m,D,M,T)):!1}function Hx(o){return Ne(o)&&nr(o)==Xt}function ol(o,l,m,D){var M=m.length,T=M,k=!D;if(o==null)return!T;for(o=pe(o);M--;){var U=m[M];if(k&&U[2]?U[1]!==o[U[0]]:!(U[0]in o))return!1}for(;++M<T;){U=m[M];var V=U[0],tt=o[V],et=U[1];if(k&&U[2]){if(tt===e&&!(V in o))return!1}else{var at=new Gr;if(D)var pt=D(tt,et,V,o,l,at);if(!(pt===e?bs(et,tt,y|_,D,at):pt))return!1}}return!0}function K0(o){if(!Me(o)||NE(o))return!1;var l=En(o)?Hb:Nu;return l.test(gi(o))}function Zx(o){return Ne(o)&&or(o)==gn}function Kx(o){return Ne(o)&&nr(o)==br}function Gx(o){return Ne(o)&&ya(o.length)&&!!we[or(o)]}function G0(o){return typeof o=="function"?o:o==null?_r:typeof o=="object"?It(o)?Q0(o[0],o[1]):X0(o):vp(o)}function al(o){if(!As(o))return Qb(o);var l=[];for(var m in pe(o))le.call(o,m)&&m!="constructor"&&l.push(m);return l}function Jx(o){if(!Me(o))return TE(o);var l=As(o),m=[];for(var D in o)D=="constructor"&&(l||!le.call(o,D))||m.push(D);return m}function ul(o,l){return o<l}function J0(o,l){var m=-1,D=dr(o)?G(o.length):[];return Wn(o,function(M,T,k){D[++m]=l(M,T,k)}),D}function X0(o){var l=xl(o);return l.length==1&&l[0][2]?Bd(l[0][0],l[0][1]):function(m){return m===o||ol(m,o,l)}}function Q0(o,l){return Al(o)&&Od(l)?Bd(un(o),l):function(m){var D=$l(m,o);return D===e&&D===l?Ll(m,o):bs(l,D,y|_)}}function na(o,l,m,D,M){o!==l&&rl(l,function(T,k){if(M||(M=new Gr),Me(T))Xx(o,l,k,m,na,D,M);else{var U=D?D(Ml(o,k),T,k+"",o,l,M):e;U===e&&(U=T),tl(o,k,U)}},pr)}function Xx(o,l,m,D,M,T,k){var U=Ml(o,m),V=Ml(l,m),tt=k.get(V);if(tt){tl(o,m,tt);return}var et=T?T(U,V,m+"",o,l,k):e,at=et===e;if(at){var pt=It(V),wt=!pt&&Zn(V),Ct=!pt&&!wt&&Xi(V);et=V,pt||wt||Ct?It(U)?et=U:Be(U)?et=hr(U):wt?(at=!1,et=fd(V,!0)):Ct?(at=!1,et=hd(V,!0)):et=[]:Ms(V)||vi(V)?(et=U,vi(U)?et=up(U):(!Me(U)||En(U))&&(et=Sd(V))):at=!1}at&&(k.set(V,et),M(et,V,D,T,k),k.delete(V)),tl(o,m,et)}function td(o,l){var m=o.length;if(m)return l+=l<0?m:0,xn(l,m)?o[l]:e}function ed(o,l,m){l.length?l=Ee(l,function(T){return It(T)?function(k){return _i(k,T.length===1?T[0]:T)}:T}):l=[_r];var D=-1;l=Ee(l,Cr(At()));var M=J0(o,function(T,k,U){var V=Ee(l,function(tt){return tt(T)});return{criteria:V,index:++D,value:T}});return Ab(M,function(T,k){return fE(T,k,m)})}function Qx(o,l){return rd(o,l,function(m,D){return Ll(o,D)})}function rd(o,l,m){for(var D=-1,M=l.length,T={};++D<M;){var k=l[D],U=_i(o,k);m(U,k)&&xs(T,Vn(k,o),U)}return T}function tE(o){return function(l){return _i(l,o)}}function ll(o,l,m,D){var M=D?Eb:qi,T=-1,k=l.length,U=o;for(o===l&&(l=hr(l)),m&&(U=Ee(o,Cr(m)));++T<k;)for(var V=0,tt=l[T],et=m?m(tt):tt;(V=M(U,et,V,D))>-1;)U!==o&&Ho.call(U,V,1),Ho.call(o,V,1);return o}function nd(o,l){for(var m=o?l.length:0,D=m-1;m--;){var M=l[m];if(m==D||M!==T){var T=M;xn(M)?Ho.call(o,M,1):dl(o,M)}}return o}function cl(o,l){return o+Go(R0()*(l-o+1))}function eE(o,l,m,D){for(var M=-1,T=je(Ko((l-o)/(m||1)),0),k=G(T);T--;)k[D?T:++M]=o,o+=m;return k}function fl(o,l){var m="";if(!o||l<1||l>W)return m;do l%2&&(m+=o),l=Go(l/2),l&&(o+=o);while(l);return m}function kt(o,l){return Fl(Td(o,l,_r),o+"")}function rE(o){return z0(Qi(o))}function nE(o,l){var m=Qi(o);return da(m,pi(l,0,m.length))}function xs(o,l,m,D){if(!Me(o))return o;l=Vn(l,o);for(var M=-1,T=l.length,k=T-1,U=o;U!=null&&++M<T;){var V=un(l[M]),tt=m;if(V==="__proto__"||V==="constructor"||V==="prototype")return o;if(M!=k){var et=U[V];tt=D?D(et,V,U):e,tt===e&&(tt=Me(et)?et:xn(l[M+1])?[]:{})}ys(U,V,tt),U=U[V]}return o}var id=Jo?function(o,l){return Jo.set(o,l),o}:_r,iE=Zo?function(o,l){return Zo(o,"toString",{configurable:!0,enumerable:!1,value:Pl(l),writable:!0})}:_r;function sE(o){return da(Qi(o))}function zr(o,l,m){var D=-1,M=o.length;l<0&&(l=-l>M?0:M+l),m=m>M?M:m,m<0&&(m+=M),M=l>m?0:m-l>>>0,l>>>=0;for(var T=G(M);++D<M;)T[D]=o[D+l];return T}function oE(o,l){var m;return Wn(o,function(D,M,T){return m=l(D,M,T),!m}),!!m}function ia(o,l,m){var D=0,M=o==null?D:o.length;if(typeof l=="number"&&l===l&&M<=st){for(;D<M;){var T=D+M>>>1,k=o[T];k!==null&&!Fr(k)&&(m?k<=l:k<l)?D=T+1:M=T}return M}return hl(o,l,_r,m)}function hl(o,l,m,D){var M=0,T=o==null?0:o.length;if(T===0)return 0;l=m(l);for(var k=l!==l,U=l===null,V=Fr(l),tt=l===e;M<T;){var et=Go((M+T)/2),at=m(o[et]),pt=at!==e,wt=at===null,Ct=at===at,Pt=Fr(at);if(k)var Mt=D||Ct;else tt?Mt=Ct&&(D||pt):U?Mt=Ct&&pt&&(D||!wt):V?Mt=Ct&&pt&&!wt&&(D||!Pt):wt||Pt?Mt=!1:Mt=D?at<=l:at<l;Mt?M=et+1:T=et}return rr(T,gt)}function sd(o,l){for(var m=-1,D=o.length,M=0,T=[];++m<D;){var k=o[m],U=l?l(k):k;if(!m||!Jr(U,V)){var V=U;T[M++]=k===0?0:k}}return T}function od(o){return typeof o=="number"?o:Fr(o)?J:+o}function Mr(o){if(typeof o=="string")return o;if(It(o))return Ee(o,Mr)+"";if(Fr(o))return P0?P0.call(o):"";var l=o+"";return l=="0"&&1/o==-Z?"-0":l}function Yn(o,l,m){var D=-1,M=Ro,T=o.length,k=!0,U=[],V=U;if(m)k=!1,M=qu;else if(T>=n){var tt=l?null:gE(o);if(tt)return ko(tt);k=!1,M=ds,V=new di}else V=l?[]:U;t:for(;++D<T;){var et=o[D],at=l?l(et):et;if(et=m||et!==0?et:0,k&&at===at){for(var pt=V.length;pt--;)if(V[pt]===at)continue t;l&&V.push(at),U.push(et)}else M(V,at,m)||(V!==U&&V.push(at),U.push(et))}return U}function dl(o,l){return l=Vn(l,o),o=Id(o,l),o==null||delete o[un(qr(l))]}function ad(o,l,m,D){return xs(o,l,m(_i(o,l)),D)}function sa(o,l,m,D){for(var M=o.length,T=D?M:-1;(D?T--:++T<M)&&l(o[T],T,o););return m?zr(o,D?0:T,D?T+1:M):zr(o,D?T+1:0,D?M:T)}function ud(o,l){var m=o;return m instanceof Yt&&(m=m.value()),Uu(l,function(D,M){return M.func.apply(M.thisArg,qn([D],M.args))},m)}function pl(o,l,m){var D=o.length;if(D<2)return D?Yn(o[0]):[];for(var M=-1,T=G(D);++M<D;)for(var k=o[M],U=-1;++U<D;)U!=M&&(T[M]=ws(T[M]||k,o[U],l,m));return Yn(Xe(T,1),l,m)}function ld(o,l,m){for(var D=-1,M=o.length,T=l.length,k={};++D<M;){var U=D<T?l[D]:e;m(k,o[D],U)}return k}function _l(o){return Be(o)?o:[]}function ml(o){return typeof o=="function"?o:_r}function Vn(o,l){return It(o)?o:Al(o,l)?[o]:Pd(se(o))}var aE=kt;function Hn(o,l,m){var D=o.length;return m=m===e?D:m,!l&&m>=D?o:zr(o,l,m)}var cd=Zb||function(o){return Je.clearTimeout(o)};function fd(o,l){if(l)return o.slice();var m=o.length,D=B0?B0(m):new o.constructor(m);return o.copy(D),D}function gl(o){var l=new o.constructor(o.byteLength);return new Yo(l).set(new Yo(o)),l}function uE(o,l){var m=l?gl(o.buffer):o.buffer;return new o.constructor(m,o.byteOffset,o.byteLength)}function lE(o){var l=new o.constructor(o.source,Io.exec(o));return l.lastIndex=o.lastIndex,l}function cE(o){return vs?pe(vs.call(o)):{}}function hd(o,l){var m=l?gl(o.buffer):o.buffer;return new o.constructor(m,o.byteOffset,o.length)}function dd(o,l){if(o!==l){var m=o!==e,D=o===null,M=o===o,T=Fr(o),k=l!==e,U=l===null,V=l===l,tt=Fr(l);if(!U&&!tt&&!T&&o>l||T&&k&&V&&!U&&!tt||D&&k&&V||!m&&V||!M)return 1;if(!D&&!T&&!tt&&o<l||tt&&m&&M&&!D&&!T||U&&m&&M||!k&&M||!V)return-1}return 0}function fE(o,l,m){for(var D=-1,M=o.criteria,T=l.criteria,k=M.length,U=m.length;++D<k;){var V=dd(M[D],T[D]);if(V){if(D>=U)return V;var tt=m[D];return V*(tt=="desc"?-1:1)}}return o.index-l.index}function pd(o,l,m,D){for(var M=-1,T=o.length,k=m.length,U=-1,V=l.length,tt=je(T-k,0),et=G(V+tt),at=!D;++U<V;)et[U]=l[U];for(;++M<k;)(at||M<T)&&(et[m[M]]=o[M]);for(;tt--;)et[U++]=o[M++];return et}function _d(o,l,m,D){for(var M=-1,T=o.length,k=-1,U=m.length,V=-1,tt=l.length,et=je(T-U,0),at=G(et+tt),pt=!D;++M<et;)at[M]=o[M];for(var wt=M;++V<tt;)at[wt+V]=l[V];for(;++k<U;)(pt||M<T)&&(at[wt+m[k]]=o[M++]);return at}function hr(o,l){var m=-1,D=o.length;for(l||(l=G(D));++m<D;)l[m]=o[m];return l}function an(o,l,m,D){var M=!m;m||(m={});for(var T=-1,k=l.length;++T<k;){var U=l[T],V=D?D(m[U],o[U],U,m,o):e;V===e&&(V=o[U]),M?wn(m,U,V):ys(m,U,V)}return m}function hE(o,l){return an(o,El(o),l)}function dE(o,l){return an(o,Fd(o),l)}function oa(o,l){return function(m,D){var M=It(m)?vb:$x,T=l?l():{};return M(m,o,At(D,2),T)}}function Ki(o){return kt(function(l,m){var D=-1,M=m.length,T=M>1?m[M-1]:e,k=M>2?m[2]:e;for(T=o.length>3&&typeof T=="function"?(M--,T):e,k&&ar(m[0],m[1],k)&&(T=M<3?e:T,M=1),l=pe(l);++D<M;){var U=m[D];U&&o(l,U,D,T)}return l})}function md(o,l){return function(m,D){if(m==null)return m;if(!dr(m))return o(m,D);for(var M=m.length,T=l?M:-1,k=pe(m);(l?T--:++T<M)&&D(k[T],T,k)!==!1;);return m}}function gd(o){return function(l,m,D){for(var M=-1,T=pe(l),k=D(l),U=k.length;U--;){var V=k[o?U:++M];if(m(T[V],V,T)===!1)break}return l}}function pE(o,l,m){var D=l&w,M=Es(o);function T(){var k=this&&this!==Je&&this instanceof T?M:o;return k.apply(D?m:this,arguments)}return T}function vd(o){return function(l){l=se(l);var m=Ui(l)?Kr(l):e,D=m?m[0]:l.charAt(0),M=m?Hn(m,1).join(""):l.slice(1);return D[o]()+M}}function Gi(o){return function(l){return Uu(mp(_p(l).replace(ib,"")),o,"")}}function Es(o){return function(){var l=arguments;switch(l.length){case 0:return new o;case 1:return new o(l[0]);case 2:return new o(l[0],l[1]);case 3:return new o(l[0],l[1],l[2]);case 4:return new o(l[0],l[1],l[2],l[3]);case 5:return new o(l[0],l[1],l[2],l[3],l[4]);case 6:return new o(l[0],l[1],l[2],l[3],l[4],l[5]);case 7:return new o(l[0],l[1],l[2],l[3],l[4],l[5],l[6])}var m=Zi(o.prototype),D=o.apply(m,l);return Me(D)?D:m}}function _E(o,l,m){var D=Es(o);function M(){for(var T=arguments.length,k=G(T),U=T,V=Ji(M);U--;)k[U]=arguments[U];var tt=T<3&&k[0]!==V&&k[T-1]!==V?[]:Un(k,V);if(T-=tt.length,T<m)return xd(o,l,aa,M.placeholder,e,k,tt,e,e,m-T);var et=this&&this!==Je&&this instanceof M?D:o;return Ar(et,this,k)}return M}function yd(o){return function(l,m,D){var M=pe(l);if(!dr(l)){var T=At(m,3);l=Ve(l),m=function(U){return T(M[U],U,M)}}var k=o(l,m,D);return k>-1?M[T?l[k]:k]:e}}function wd(o){return bn(function(l){var m=l.length,D=m,M=Pr.prototype.thru;for(o&&l.reverse();D--;){var T=l[D];if(typeof T!="function")throw new Rr(a);if(M&&!k&&fa(T)=="wrapper")var k=new Pr([],!0)}for(D=k?D:m;++D<m;){T=l[D];var U=fa(T),V=U=="wrapper"?bl(T):e;V&&Cl(V[0])&&V[1]==(F|b|E|S)&&!V[4].length&&V[9]==1?k=k[fa(V[0])].apply(k,V[3]):k=T.length==1&&Cl(T)?k[U]():k.thru(T)}return function(){var tt=arguments,et=tt[0];if(k&&tt.length==1&&It(et))return k.plant(et).value();for(var at=0,pt=m?l[at].apply(this,tt):et;++at<m;)pt=l[at].call(this,pt);return pt}})}function aa(o,l,m,D,M,T,k,U,V,tt){var et=l&F,at=l&w,pt=l&v,wt=l&(b|N),Ct=l&I,Pt=pt?e:Es(o);function Mt(){for(var Ut=arguments.length,Ht=G(Ut),Nr=Ut;Nr--;)Ht[Nr]=arguments[Nr];if(wt)var ur=Ji(Mt),Sr=Mb(Ht,ur);if(D&&(Ht=pd(Ht,D,M,wt)),T&&(Ht=_d(Ht,T,k,wt)),Ut-=Sr,wt&&Ut<tt){var Te=Un(Ht,ur);return xd(o,l,aa,Mt.placeholder,m,Ht,Te,U,V,tt-Ut)}var Xr=at?m:this,Cn=pt?Xr[o]:o;return Ut=Ht.length,U?Ht=$E(Ht,U):Ct&&Ut>1&&Ht.reverse(),et&&V<Ut&&(Ht.length=V),this&&this!==Je&&this instanceof Mt&&(Cn=Pt||Es(Cn)),Cn.apply(Xr,Ht)}return Mt}function Dd(o,l){return function(m,D){return jx(m,o,l(D),{})}}function ua(o,l){return function(m,D){var M;if(m===e&&D===e)return l;if(m!==e&&(M=m),D!==e){if(M===e)return D;typeof m=="string"||typeof D=="string"?(m=Mr(m),D=Mr(D)):(m=od(m),D=od(D)),M=o(m,D)}return M}}function vl(o){return bn(function(l){return l=Ee(l,Cr(At())),kt(function(m){var D=this;return o(l,function(M){return Ar(M,D,m)})})})}function la(o,l){l=l===e?" ":Mr(l);var m=l.length;if(m<2)return m?fl(l,o):l;var D=fl(l,Ko(o/ji(l)));return Ui(l)?Hn(Kr(D),0,o).join(""):D.slice(0,o)}function mE(o,l,m,D){var M=l&w,T=Es(o);function k(){for(var U=-1,V=arguments.length,tt=-1,et=D.length,at=G(et+V),pt=this&&this!==Je&&this instanceof k?T:o;++tt<et;)at[tt]=D[tt];for(;V--;)at[tt++]=arguments[++U];return Ar(pt,M?m:this,at)}return k}function bd(o){return function(l,m,D){return D&&typeof D!="number"&&ar(l,m,D)&&(m=D=e),l=An(l),m===e?(m=l,l=0):m=An(m),D=D===e?l<m?1:-1:An(D),eE(l,m,D,o)}}function ca(o){return function(l,m){return typeof l=="string"&&typeof m=="string"||(l=Ur(l),m=Ur(m)),o(l,m)}}function xd(o,l,m,D,M,T,k,U,V,tt){var et=l&b,at=et?k:e,pt=et?e:k,wt=et?T:e,Ct=et?e:T;l|=et?E:C,l&=~(et?C:E),l&x||(l&=~(w|v));var Pt=[o,l,M,wt,at,Ct,pt,U,V,tt],Mt=m.apply(e,Pt);return Cl(o)&&$d(Mt,Pt),Mt.placeholder=D,Ld(Mt,o,l)}function yl(o){var l=Ue[o];return function(m,D){if(m=Ur(m),D=D==null?0:rr(Rt(D),292),D&&L0(m)){var M=(se(m)+"e").split("e"),T=l(M[0]+"e"+(+M[1]+D));return M=(se(T)+"e").split("e"),+(M[0]+"e"+(+M[1]-D))}return l(m)}}var gE=Vi&&1/ko(new Vi([,-0]))[1]==Z?function(o){return new Vi(o)}:ql;function Ed(o){return function(l){var m=nr(l);return m==Xt?Ku(l):m==br?Ib(l):Cb(l,o(l))}}function Dn(o,l,m,D,M,T,k,U){var V=l&v;if(!V&&typeof o!="function")throw new Rr(a);var tt=D?D.length:0;if(tt||(l&=~(E|C),D=M=e),k=k===e?k:je(Rt(k),0),U=U===e?U:Rt(U),tt-=M?M.length:0,l&C){var et=D,at=M;D=M=e}var pt=V?e:bl(o),wt=[o,l,m,D,M,et,at,T,k,U];if(pt&&BE(wt,pt),o=wt[0],l=wt[1],m=wt[2],D=wt[3],M=wt[4],U=wt[9]=wt[9]===e?V?0:o.length:je(wt[9]-tt,0),!U&&l&(b|N)&&(l&=~(b|N)),!l||l==w)var Ct=pE(o,l,m);else l==b||l==N?Ct=_E(o,l,U):(l==E||l==(w|E))&&!M.length?Ct=mE(o,l,m,D):Ct=aa.apply(e,wt);var Pt=pt?id:$d;return Ld(Pt(Ct,wt),o,l)}function Ad(o,l,m,D){return o===e||Jr(o,Yi[m])&&!le.call(D,m)?l:o}function Cd(o,l,m,D,M,T){return Me(o)&&Me(l)&&(T.set(l,o),na(o,l,e,Cd,T),T.delete(l)),o}function vE(o){return Ms(o)?e:o}function Md(o,l,m,D,M,T){var k=m&y,U=o.length,V=l.length;if(U!=V&&!(k&&V>U))return!1;var tt=T.get(o),et=T.get(l);if(tt&&et)return tt==l&&et==o;var at=-1,pt=!0,wt=m&_?new di:e;for(T.set(o,l),T.set(l,o);++at<U;){var Ct=o[at],Pt=l[at];if(D)var Mt=k?D(Pt,Ct,at,l,o,T):D(Ct,Pt,at,o,l,T);if(Mt!==e){if(Mt)continue;pt=!1;break}if(wt){if(!ju(l,function(Ut,Ht){if(!ds(wt,Ht)&&(Ct===Ut||M(Ct,Ut,m,D,T)))return wt.push(Ht)})){pt=!1;break}}else if(!(Ct===Pt||M(Ct,Pt,m,D,T))){pt=!1;break}}return T.delete(o),T.delete(l),pt}function yE(o,l,m,D,M,T,k){switch(m){case rt:if(o.byteLength!=l.byteLength||o.byteOffset!=l.byteOffset)return!1;o=o.buffer,l=l.buffer;case ot:return!(o.byteLength!=l.byteLength||!T(new Yo(o),new Yo(l)));case ue:case Tt:case Le:return Jr(+o,+l);case fe:return o.name==l.name&&o.message==l.message;case gn:case Rn:return o==l+"";case Xt:var U=Ku;case br:var V=D&y;if(U||(U=ko),o.size!=l.size&&!V)return!1;var tt=k.get(o);if(tt)return tt==l;D|=_,k.set(o,l);var et=Md(U(o),U(l),D,M,T,k);return k.delete(o),et;case R:if(vs)return vs.call(o)==vs.call(l)}return!1}function wE(o,l,m,D,M,T){var k=m&y,U=wl(o),V=U.length,tt=wl(l),et=tt.length;if(V!=et&&!k)return!1;for(var at=V;at--;){var pt=U[at];if(!(k?pt in l:le.call(l,pt)))return!1}var wt=T.get(o),Ct=T.get(l);if(wt&&Ct)return wt==l&&Ct==o;var Pt=!0;T.set(o,l),T.set(l,o);for(var Mt=k;++at<V;){pt=U[at];var Ut=o[pt],Ht=l[pt];if(D)var Nr=k?D(Ht,Ut,pt,l,o,T):D(Ut,Ht,pt,o,l,T);if(!(Nr===e?Ut===Ht||M(Ut,Ht,m,D,T):Nr)){Pt=!1;break}Mt||(Mt=pt=="constructor")}if(Pt&&!Mt){var ur=o.constructor,Sr=l.constructor;ur!=Sr&&"constructor"in o&&"constructor"in l&&!(typeof ur=="function"&&ur instanceof ur&&typeof Sr=="function"&&Sr instanceof Sr)&&(Pt=!1)}return T.delete(o),T.delete(l),Pt}function bn(o){return Fl(Td(o,e,Ud),o+"")}function wl(o){return H0(o,Ve,El)}function Dl(o){return H0(o,pr,Fd)}var bl=Jo?function(o){return Jo.get(o)}:ql;function fa(o){for(var l=o.name+"",m=Hi[l],D=le.call(Hi,l)?m.length:0;D--;){var M=m[D],T=M.func;if(T==null||T==o)return M.name}return l}function Ji(o){var l=le.call(B,"placeholder")?B:o;return l.placeholder}function At(){var o=B.iteratee||kl;return o=o===kl?G0:o,arguments.length?o(arguments[0],arguments[1]):o}function ha(o,l){var m=o.__data__;return FE(l)?m[typeof l=="string"?"string":"hash"]:m.map}function xl(o){for(var l=Ve(o),m=l.length;m--;){var D=l[m],M=o[D];l[m]=[D,M,Od(M)]}return l}function mi(o,l){var m=Ob(o,l);return K0(m)?m:e}function DE(o){var l=le.call(o,fi),m=o[fi];try{o[fi]=e;var D=!0}catch{}var M=jo.call(o);return D&&(l?o[fi]=m:delete o[fi]),M}var El=Ju?function(o){return o==null?[]:(o=pe(o),zn(Ju(o),function(l){return I0.call(o,l)}))}:Ul,Fd=Ju?function(o){for(var l=[];o;)qn(l,El(o)),o=Vo(o);return l}:Ul,nr=or;(Xu&&nr(new Xu(new ArrayBuffer(1)))!=rt||_s&&nr(new _s)!=Xt||Qu&&nr(Qu.resolve())!=mn||Vi&&nr(new Vi)!=br||ms&&nr(new ms)!=K)&&(nr=function(o){var l=or(o),m=l==ze?o.constructor:e,D=m?gi(m):"";if(D)switch(D){case nx:return rt;case ix:return Xt;case sx:return mn;case ox:return br;case ax:return K}return l});function bE(o,l,m){for(var D=-1,M=m.length;++D<M;){var T=m[D],k=T.size;switch(T.type){case"drop":o+=k;break;case"dropRight":l-=k;break;case"take":l=rr(l,o+k);break;case"takeRight":o=je(o,l-k);break}}return{start:o,end:l}}function xE(o){var l=o.match(Du);return l?l[1].split(bu):[]}function Nd(o,l,m){l=Vn(l,o);for(var D=-1,M=l.length,T=!1;++D<M;){var k=un(l[D]);if(!(T=o!=null&&m(o,k)))break;o=o[k]}return T||++D!=M?T:(M=o==null?0:o.length,!!M&&ya(M)&&xn(k,M)&&(It(o)||vi(o)))}function EE(o){var l=o.length,m=new o.constructor(l);return l&&typeof o[0]=="string"&&le.call(o,"index")&&(m.index=o.index,m.input=o.input),m}function Sd(o){return typeof o.constructor=="function"&&!As(o)?Zi(Vo(o)):{}}function AE(o,l,m){var D=o.constructor;switch(l){case ot:return gl(o);case ue:case Tt:return new D(+o);case rt:return uE(o,m);case ft:case lt:case ht:case ut:case Qt:case ie:case xe:case Ye:case qe:return hd(o,m);case Xt:return new D;case Le:case Rn:return new D(o);case gn:return lE(o);case br:return new D;case R:return cE(o)}}function CE(o,l){var m=l.length;if(!m)return o;var D=m-1;return l[D]=(m>1?"& ":"")+l[D],l=l.join(m>2?", ":" "),o.replace(wu,`{
8
+ */Kn.exports,function(i,t){(function(){var e,r="4.17.21",n=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",u="Invalid `variable` option passed into `_.template`",c="__lodash_hash_undefined__",f=500,d="__lodash_placeholder__",h=1,p=2,g=4,y=1,_=2,w=1,v=2,x=4,b=8,N=16,E=32,C=64,F=128,S=256,I=512,A=30,O="...",L=800,z=16,q=1,j=2,P=3,Z=1/0,W=9007199254740991,X=17976931348623157e292,J=NaN,ct=4294967295,gt=ct-1,st=ct>>>1,yt=[["ary",F],["bind",w],["bindKey",v],["curry",b],["curryRight",N],["flip",I],["partial",E],["partialRight",C],["rearg",S]],Dt="[object Arguments]",Nt="[object Array]",xt="[object AsyncFunction]",ue="[object Boolean]",Tt="[object Date]",St="[object DOMException]",fe="[object Error]",ne="[object Function]",qt="[object GeneratorFunction]",Xt="[object Map]",Le="[object Number]",Dr="[object Null]",ze="[object Object]",mn="[object Promise]",Ln="[object Proxy]",gn="[object RegExp]",br="[object Set]",Rn="[object String]",R="[object Symbol]",H="[object Undefined]",K="[object WeakMap]",nt="[object WeakSet]",ot="[object ArrayBuffer]",rt="[object DataView]",ft="[object Float32Array]",lt="[object Float64Array]",ht="[object Int8Array]",ut="[object Int16Array]",Qt="[object Int32Array]",ie="[object Uint8Array]",xe="[object Uint8ClampedArray]",Ye="[object Uint16Array]",qe="[object Uint32Array]",xr=/\b__p \+= '';/g,Er=/\b(__p \+=) '' \+/g,Pn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ui=/&(?:amp|lt|gt|quot|#39);/g,Bo=/[&<>"']/g,fu=RegExp(ui.source),hu=RegExp(Bo.source),du=/<%-([\s\S]+?)%>/g,pu=/<%([\s\S]+?)%>/g,To=/<%=([\s\S]+?)%>/g,_u=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,mu=/^\w*$/,gu=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,fs=/[\\^$.*+?()[\]{}|]/g,vu=RegExp(fs.source),hs=/^\s+/,yu=/\s/,wu=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Du=/\{\n\/\* \[wrapped with (.+)\] \*/,bu=/,? & /,xu=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Eu=/[()=,{}\[\]\/\s]/,Au=/\\(\\)?/g,Cu=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Io=/\w*$/,Mu=/^[-+]0x[0-9a-f]+$/i,Fu=/^0b[01]+$/i,Nu=/^\[object .+?Constructor\]$/,Su=/^0o[0-7]+$/i,Ou=/^(?:0|[1-9]\d*)$/,Bu=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Pi=/($^)/,li=/['\n\r\u2028\u2029\\]/g,Zt="\\ud800-\\udfff",er="\\u0300-\\u036f",Tu="\\ufe20-\\ufe2f",ki="\\u20d0-\\u20ff",kn=er+Tu+ki,$o="\\u2700-\\u27bf",Jh="a-z\\xdf-\\xf6\\xf8-\\xff",YD="\\xac\\xb1\\xd7\\xf7",VD="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",HD="\\u2000-\\u206f",ZD=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xh="A-Z\\xc0-\\xd6\\xd8-\\xde",Qh="\\ufe0e\\ufe0f",t0=YD+VD+HD+ZD,Iu="['’]",KD="["+Zt+"]",e0="["+t0+"]",Lo="["+kn+"]",r0="\\d+",GD="["+$o+"]",n0="["+Jh+"]",i0="[^"+Zt+t0+r0+$o+Jh+Xh+"]",$u="\\ud83c[\\udffb-\\udfff]",JD="(?:"+Lo+"|"+$u+")",s0="[^"+Zt+"]",Lu="(?:\\ud83c[\\udde6-\\uddff]){2}",Ru="[\\ud800-\\udbff][\\udc00-\\udfff]",zi="["+Xh+"]",o0="\\u200d",a0="(?:"+n0+"|"+i0+")",XD="(?:"+zi+"|"+i0+")",u0="(?:"+Iu+"(?:d|ll|m|re|s|t|ve))?",l0="(?:"+Iu+"(?:D|LL|M|RE|S|T|VE))?",c0=JD+"?",f0="["+Qh+"]?",QD="(?:"+o0+"(?:"+[s0,Lu,Ru].join("|")+")"+f0+c0+")*",tb="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",eb="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",h0=f0+c0+QD,rb="(?:"+[GD,Lu,Ru].join("|")+")"+h0,nb="(?:"+[s0+Lo+"?",Lo,Lu,Ru,KD].join("|")+")",ib=RegExp(Iu,"g"),sb=RegExp(Lo,"g"),Pu=RegExp($u+"(?="+$u+")|"+nb+h0,"g"),ob=RegExp([zi+"?"+n0+"+"+u0+"(?="+[e0,zi,"$"].join("|")+")",XD+"+"+l0+"(?="+[e0,zi+a0,"$"].join("|")+")",zi+"?"+a0+"+"+u0,zi+"+"+l0,eb,tb,r0,rb].join("|"),"g"),ab=RegExp("["+o0+Zt+kn+Qh+"]"),ub=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,lb=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],cb=-1,we={};we[ft]=we[lt]=we[ht]=we[ut]=we[Qt]=we[ie]=we[xe]=we[Ye]=we[qe]=!0,we[Dt]=we[Nt]=we[ot]=we[ue]=we[rt]=we[Tt]=we[fe]=we[ne]=we[Xt]=we[Le]=we[ze]=we[gn]=we[br]=we[Rn]=we[K]=!1;var me={};me[Dt]=me[Nt]=me[ot]=me[rt]=me[ue]=me[Tt]=me[ft]=me[lt]=me[ht]=me[ut]=me[Qt]=me[Xt]=me[Le]=me[ze]=me[gn]=me[br]=me[Rn]=me[R]=me[ie]=me[xe]=me[Ye]=me[qe]=!0,me[fe]=me[ne]=me[K]=!1;var fb={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},hb={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},db={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},pb={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},_b=parseFloat,mb=parseInt,d0=typeof Vt=="object"&&Vt&&Vt.Object===Object&&Vt,gb=typeof self=="object"&&self&&self.Object===Object&&self,Je=d0||gb||Function("return this")(),ku=t&&!t.nodeType&&t,ci=ku&&!0&&i&&!i.nodeType&&i,p0=ci&&ci.exports===ku,zu=p0&&d0.process,$r=function(){try{var Y=ci&&ci.require&&ci.require("util").types;return Y||zu&&zu.binding&&zu.binding("util")}catch{}}(),_0=$r&&$r.isArrayBuffer,m0=$r&&$r.isDate,g0=$r&&$r.isMap,v0=$r&&$r.isRegExp,y0=$r&&$r.isSet,w0=$r&&$r.isTypedArray;function Ar(Y,Q,G){switch(G.length){case 0:return Y.call(Q);case 1:return Y.call(Q,G[0]);case 2:return Y.call(Q,G[0],G[1]);case 3:return Y.call(Q,G[0],G[1],G[2])}return Y.apply(Q,G)}function vb(Y,Q,G,vt){for(var Bt=-1,ee=Y==null?0:Y.length;++Bt<ee;){var Ue=Y[Bt];Q(vt,Ue,G(Ue),Y)}return vt}function Lr(Y,Q){for(var G=-1,vt=Y==null?0:Y.length;++G<vt&&Q(Y[G],G,Y)!==!1;);return Y}function yb(Y,Q){for(var G=Y==null?0:Y.length;G--&&Q(Y[G],G,Y)!==!1;);return Y}function D0(Y,Q){for(var G=-1,vt=Y==null?0:Y.length;++G<vt;)if(!Q(Y[G],G,Y))return!1;return!0}function zn(Y,Q){for(var G=-1,vt=Y==null?0:Y.length,Bt=0,ee=[];++G<vt;){var Ue=Y[G];Q(Ue,G,Y)&&(ee[Bt++]=Ue)}return ee}function Ro(Y,Q){var G=Y==null?0:Y.length;return!!G&&qi(Y,Q,0)>-1}function qu(Y,Q,G){for(var vt=-1,Bt=Y==null?0:Y.length;++vt<Bt;)if(G(Q,Y[vt]))return!0;return!1}function Ee(Y,Q){for(var G=-1,vt=Y==null?0:Y.length,Bt=Array(vt);++G<vt;)Bt[G]=Q(Y[G],G,Y);return Bt}function qn(Y,Q){for(var G=-1,vt=Q.length,Bt=Y.length;++G<vt;)Y[Bt+G]=Q[G];return Y}function Uu(Y,Q,G,vt){var Bt=-1,ee=Y==null?0:Y.length;for(vt&&ee&&(G=Y[++Bt]);++Bt<ee;)G=Q(G,Y[Bt],Bt,Y);return G}function wb(Y,Q,G,vt){var Bt=Y==null?0:Y.length;for(vt&&Bt&&(G=Y[--Bt]);Bt--;)G=Q(G,Y[Bt],Bt,Y);return G}function ju(Y,Q){for(var G=-1,vt=Y==null?0:Y.length;++G<vt;)if(Q(Y[G],G,Y))return!0;return!1}var Db=Wu("length");function bb(Y){return Y.split("")}function xb(Y){return Y.match(xu)||[]}function b0(Y,Q,G){var vt;return G(Y,function(Bt,ee,Ue){if(Q(Bt,ee,Ue))return vt=ee,!1}),vt}function Po(Y,Q,G,vt){for(var Bt=Y.length,ee=G+(vt?1:-1);vt?ee--:++ee<Bt;)if(Q(Y[ee],ee,Y))return ee;return-1}function qi(Y,Q,G){return Q===Q?$b(Y,Q,G):Po(Y,x0,G)}function Eb(Y,Q,G,vt){for(var Bt=G-1,ee=Y.length;++Bt<ee;)if(vt(Y[Bt],Q))return Bt;return-1}function x0(Y){return Y!==Y}function E0(Y,Q){var G=Y==null?0:Y.length;return G?Vu(Y,Q)/G:J}function Wu(Y){return function(Q){return Q==null?e:Q[Y]}}function Yu(Y){return function(Q){return Y==null?e:Y[Q]}}function A0(Y,Q,G,vt,Bt){return Bt(Y,function(ee,Ue,pe){G=vt?(vt=!1,ee):Q(G,ee,Ue,pe)}),G}function Ab(Y,Q){var G=Y.length;for(Y.sort(Q);G--;)Y[G]=Y[G].value;return Y}function Vu(Y,Q){for(var G,vt=-1,Bt=Y.length;++vt<Bt;){var ee=Q(Y[vt]);ee!==e&&(G=G===e?ee:G+ee)}return G}function Hu(Y,Q){for(var G=-1,vt=Array(Y);++G<Y;)vt[G]=Q(G);return vt}function Cb(Y,Q){return Ee(Q,function(G){return[G,Y[G]]})}function C0(Y){return Y&&Y.slice(0,S0(Y)+1).replace(hs,"")}function Cr(Y){return function(Q){return Y(Q)}}function Zu(Y,Q){return Ee(Q,function(G){return Y[G]})}function ds(Y,Q){return Y.has(Q)}function M0(Y,Q){for(var G=-1,vt=Y.length;++G<vt&&qi(Q,Y[G],0)>-1;);return G}function F0(Y,Q){for(var G=Y.length;G--&&qi(Q,Y[G],0)>-1;);return G}function Mb(Y,Q){for(var G=Y.length,vt=0;G--;)Y[G]===Q&&++vt;return vt}var Fb=Yu(fb),Nb=Yu(hb);function Sb(Y){return"\\"+pb[Y]}function Ob(Y,Q){return Y==null?e:Y[Q]}function Ui(Y){return ab.test(Y)}function Bb(Y){return ub.test(Y)}function Tb(Y){for(var Q,G=[];!(Q=Y.next()).done;)G.push(Q.value);return G}function Ku(Y){var Q=-1,G=Array(Y.size);return Y.forEach(function(vt,Bt){G[++Q]=[Bt,vt]}),G}function N0(Y,Q){return function(G){return Y(Q(G))}}function Un(Y,Q){for(var G=-1,vt=Y.length,Bt=0,ee=[];++G<vt;){var Ue=Y[G];(Ue===Q||Ue===d)&&(Y[G]=d,ee[Bt++]=G)}return ee}function ko(Y){var Q=-1,G=Array(Y.size);return Y.forEach(function(vt){G[++Q]=vt}),G}function Ib(Y){var Q=-1,G=Array(Y.size);return Y.forEach(function(vt){G[++Q]=[vt,vt]}),G}function $b(Y,Q,G){for(var vt=G-1,Bt=Y.length;++vt<Bt;)if(Y[vt]===Q)return vt;return-1}function Lb(Y,Q,G){for(var vt=G+1;vt--;)if(Y[vt]===Q)return vt;return vt}function ji(Y){return Ui(Y)?Pb(Y):Db(Y)}function Gr(Y){return Ui(Y)?kb(Y):bb(Y)}function S0(Y){for(var Q=Y.length;Q--&&yu.test(Y.charAt(Q)););return Q}var Rb=Yu(db);function Pb(Y){for(var Q=Pu.lastIndex=0;Pu.test(Y);)++Q;return Q}function kb(Y){return Y.match(Pu)||[]}function zb(Y){return Y.match(ob)||[]}var qb=function Y(Q){Q=Q==null?Je:Wi.defaults(Je.Object(),Q,Wi.pick(Je,lb));var G=Q.Array,vt=Q.Date,Bt=Q.Error,ee=Q.Function,Ue=Q.Math,pe=Q.Object,Gu=Q.RegExp,Ub=Q.String,Rr=Q.TypeError,zo=G.prototype,jb=ee.prototype,Yi=pe.prototype,qo=Q["__core-js_shared__"],Uo=jb.toString,le=Yi.hasOwnProperty,Wb=0,O0=function(){var o=/[^.]+$/.exec(qo&&qo.keys&&qo.keys.IE_PROTO||"");return o?"Symbol(src)_1."+o:""}(),jo=Yi.toString,Yb=Uo.call(pe),Vb=Je._,Hb=Gu("^"+Uo.call(le).replace(fs,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Wo=p0?Q.Buffer:e,jn=Q.Symbol,Yo=Q.Uint8Array,B0=Wo?Wo.allocUnsafe:e,Vo=N0(pe.getPrototypeOf,pe),T0=pe.create,I0=Yi.propertyIsEnumerable,Ho=zo.splice,$0=jn?jn.isConcatSpreadable:e,ps=jn?jn.iterator:e,fi=jn?jn.toStringTag:e,Zo=function(){try{var o=mi(pe,"defineProperty");return o({},"",{}),o}catch{}}(),Zb=Q.clearTimeout!==Je.clearTimeout&&Q.clearTimeout,Kb=vt&&vt.now!==Je.Date.now&&vt.now,Gb=Q.setTimeout!==Je.setTimeout&&Q.setTimeout,Ko=Ue.ceil,Go=Ue.floor,Ju=pe.getOwnPropertySymbols,Jb=Wo?Wo.isBuffer:e,L0=Q.isFinite,Xb=zo.join,Qb=N0(pe.keys,pe),je=Ue.max,rr=Ue.min,tx=vt.now,ex=Q.parseInt,R0=Ue.random,rx=zo.reverse,Xu=mi(Q,"DataView"),_s=mi(Q,"Map"),Qu=mi(Q,"Promise"),Vi=mi(Q,"Set"),ms=mi(Q,"WeakMap"),gs=mi(pe,"create"),Jo=ms&&new ms,Hi={},nx=gi(Xu),ix=gi(_s),sx=gi(Qu),ox=gi(Vi),ax=gi(ms),Xo=jn?jn.prototype:e,vs=Xo?Xo.valueOf:e,P0=Xo?Xo.toString:e;function B(o){if(Ne(o)&&!It(o)&&!(o instanceof Yt)){if(o instanceof Pr)return o;if(le.call(o,"__wrapped__"))return kd(o)}return new Pr(o)}var Zi=function(){function o(){}return function(l){if(!Me(l))return{};if(T0)return T0(l);o.prototype=l;var m=new o;return o.prototype=e,m}}();function Qo(){}function Pr(o,l){this.__wrapped__=o,this.__actions__=[],this.__chain__=!!l,this.__index__=0,this.__values__=e}B.templateSettings={escape:du,evaluate:pu,interpolate:To,variable:"",imports:{_:B}},B.prototype=Qo.prototype,B.prototype.constructor=B,Pr.prototype=Zi(Qo.prototype),Pr.prototype.constructor=Pr;function Yt(o){this.__wrapped__=o,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=ct,this.__views__=[]}function ux(){var o=new Yt(this.__wrapped__);return o.__actions__=hr(this.__actions__),o.__dir__=this.__dir__,o.__filtered__=this.__filtered__,o.__iteratees__=hr(this.__iteratees__),o.__takeCount__=this.__takeCount__,o.__views__=hr(this.__views__),o}function lx(){if(this.__filtered__){var o=new Yt(this);o.__dir__=-1,o.__filtered__=!0}else o=this.clone(),o.__dir__*=-1;return o}function cx(){var o=this.__wrapped__.value(),l=this.__dir__,m=It(o),D=l<0,M=m?o.length:0,T=bE(0,M,this.__views__),k=T.start,U=T.end,V=U-k,tt=D?U:k-1,et=this.__iteratees__,at=et.length,pt=0,wt=rr(V,this.__takeCount__);if(!m||!D&&M==V&&wt==V)return ud(o,this.__actions__);var Ct=[];t:for(;V--&&pt<wt;){tt+=l;for(var Pt=-1,Mt=o[tt];++Pt<at;){var Ut=et[Pt],Ht=Ut.iteratee,Nr=Ut.type,ur=Ht(Mt);if(Nr==j)Mt=ur;else if(!ur){if(Nr==q)continue t;break t}}Ct[pt++]=Mt}return Ct}Yt.prototype=Zi(Qo.prototype),Yt.prototype.constructor=Yt;function hi(o){var l=-1,m=o==null?0:o.length;for(this.clear();++l<m;){var D=o[l];this.set(D[0],D[1])}}function fx(){this.__data__=gs?gs(null):{},this.size=0}function hx(o){var l=this.has(o)&&delete this.__data__[o];return this.size-=l?1:0,l}function dx(o){var l=this.__data__;if(gs){var m=l[o];return m===c?e:m}return le.call(l,o)?l[o]:e}function px(o){var l=this.__data__;return gs?l[o]!==e:le.call(l,o)}function _x(o,l){var m=this.__data__;return this.size+=this.has(o)?0:1,m[o]=gs&&l===e?c:l,this}hi.prototype.clear=fx,hi.prototype.delete=hx,hi.prototype.get=dx,hi.prototype.has=px,hi.prototype.set=_x;function vn(o){var l=-1,m=o==null?0:o.length;for(this.clear();++l<m;){var D=o[l];this.set(D[0],D[1])}}function mx(){this.__data__=[],this.size=0}function gx(o){var l=this.__data__,m=ta(l,o);if(m<0)return!1;var D=l.length-1;return m==D?l.pop():Ho.call(l,m,1),--this.size,!0}function vx(o){var l=this.__data__,m=ta(l,o);return m<0?e:l[m][1]}function yx(o){return ta(this.__data__,o)>-1}function wx(o,l){var m=this.__data__,D=ta(m,o);return D<0?(++this.size,m.push([o,l])):m[D][1]=l,this}vn.prototype.clear=mx,vn.prototype.delete=gx,vn.prototype.get=vx,vn.prototype.has=yx,vn.prototype.set=wx;function yn(o){var l=-1,m=o==null?0:o.length;for(this.clear();++l<m;){var D=o[l];this.set(D[0],D[1])}}function Dx(){this.size=0,this.__data__={hash:new hi,map:new(_s||vn),string:new hi}}function bx(o){var l=ha(this,o).delete(o);return this.size-=l?1:0,l}function xx(o){return ha(this,o).get(o)}function Ex(o){return ha(this,o).has(o)}function Ax(o,l){var m=ha(this,o),D=m.size;return m.set(o,l),this.size+=m.size==D?0:1,this}yn.prototype.clear=Dx,yn.prototype.delete=bx,yn.prototype.get=xx,yn.prototype.has=Ex,yn.prototype.set=Ax;function di(o){var l=-1,m=o==null?0:o.length;for(this.__data__=new yn;++l<m;)this.add(o[l])}function Cx(o){return this.__data__.set(o,c),this}function Mx(o){return this.__data__.has(o)}di.prototype.add=di.prototype.push=Cx,di.prototype.has=Mx;function Jr(o){var l=this.__data__=new vn(o);this.size=l.size}function Fx(){this.__data__=new vn,this.size=0}function Nx(o){var l=this.__data__,m=l.delete(o);return this.size=l.size,m}function Sx(o){return this.__data__.get(o)}function Ox(o){return this.__data__.has(o)}function Bx(o,l){var m=this.__data__;if(m instanceof vn){var D=m.__data__;if(!_s||D.length<n-1)return D.push([o,l]),this.size=++m.size,this;m=this.__data__=new yn(D)}return m.set(o,l),this.size=m.size,this}Jr.prototype.clear=Fx,Jr.prototype.delete=Nx,Jr.prototype.get=Sx,Jr.prototype.has=Ox,Jr.prototype.set=Bx;function k0(o,l){var m=It(o),D=!m&&vi(o),M=!m&&!D&&Zn(o),T=!m&&!D&&!M&&Xi(o),k=m||D||M||T,U=k?Hu(o.length,Ub):[],V=U.length;for(var tt in o)(l||le.call(o,tt))&&!(k&&(tt=="length"||M&&(tt=="offset"||tt=="parent")||T&&(tt=="buffer"||tt=="byteLength"||tt=="byteOffset")||xn(tt,V)))&&U.push(tt);return U}function z0(o){var l=o.length;return l?o[cl(0,l-1)]:e}function Tx(o,l){return da(hr(o),pi(l,0,o.length))}function Ix(o){return da(hr(o))}function tl(o,l,m){(m!==e&&!Xr(o[l],m)||m===e&&!(l in o))&&wn(o,l,m)}function ys(o,l,m){var D=o[l];(!(le.call(o,l)&&Xr(D,m))||m===e&&!(l in o))&&wn(o,l,m)}function ta(o,l){for(var m=o.length;m--;)if(Xr(o[m][0],l))return m;return-1}function $x(o,l,m,D){return Wn(o,function(M,T,k){l(D,M,m(M),k)}),D}function q0(o,l){return o&&an(l,Ve(l),o)}function Lx(o,l){return o&&an(l,pr(l),o)}function wn(o,l,m){l=="__proto__"&&Zo?Zo(o,l,{configurable:!0,enumerable:!0,value:m,writable:!0}):o[l]=m}function el(o,l){for(var m=-1,D=l.length,M=G(D),T=o==null;++m<D;)M[m]=T?e:$l(o,l[m]);return M}function pi(o,l,m){return o===o&&(m!==e&&(o=o<=m?o:m),l!==e&&(o=o>=l?o:l)),o}function kr(o,l,m,D,M,T){var k,U=l&h,V=l&p,tt=l&g;if(m&&(k=M?m(o,D,M,T):m(o)),k!==e)return k;if(!Me(o))return o;var et=It(o);if(et){if(k=EE(o),!U)return hr(o,k)}else{var at=nr(o),pt=at==ne||at==qt;if(Zn(o))return fd(o,U);if(at==ze||at==Dt||pt&&!M){if(k=V||pt?{}:Sd(o),!U)return V?dE(o,Lx(k,o)):hE(o,q0(k,o))}else{if(!me[at])return M?o:{};k=AE(o,at,U)}}T||(T=new Jr);var wt=T.get(o);if(wt)return wt;T.set(o,k),sp(o)?o.forEach(function(Mt){k.add(kr(Mt,l,m,Mt,o,T))}):np(o)&&o.forEach(function(Mt,Ut){k.set(Ut,kr(Mt,l,m,Ut,o,T))});var Ct=tt?V?Dl:wl:V?pr:Ve,Pt=et?e:Ct(o);return Lr(Pt||o,function(Mt,Ut){Pt&&(Ut=Mt,Mt=o[Ut]),ys(k,Ut,kr(Mt,l,m,Ut,o,T))}),k}function Rx(o){var l=Ve(o);return function(m){return U0(m,o,l)}}function U0(o,l,m){var D=m.length;if(o==null)return!D;for(o=pe(o);D--;){var M=m[D],T=l[M],k=o[M];if(k===e&&!(M in o)||!T(k))return!1}return!0}function j0(o,l,m){if(typeof o!="function")throw new Rr(a);return Cs(function(){o.apply(e,m)},l)}function ws(o,l,m,D){var M=-1,T=Ro,k=!0,U=o.length,V=[],tt=l.length;if(!U)return V;m&&(l=Ee(l,Cr(m))),D?(T=qu,k=!1):l.length>=n&&(T=ds,k=!1,l=new di(l));t:for(;++M<U;){var et=o[M],at=m==null?et:m(et);if(et=D||et!==0?et:0,k&&at===at){for(var pt=tt;pt--;)if(l[pt]===at)continue t;V.push(et)}else T(l,at,D)||V.push(et)}return V}var Wn=md(on),W0=md(nl,!0);function Px(o,l){var m=!0;return Wn(o,function(D,M,T){return m=!!l(D,M,T),m}),m}function ea(o,l,m){for(var D=-1,M=o.length;++D<M;){var T=o[D],k=l(T);if(k!=null&&(U===e?k===k&&!Fr(k):m(k,U)))var U=k,V=T}return V}function kx(o,l,m,D){var M=o.length;for(m=Rt(m),m<0&&(m=-m>M?0:M+m),D=D===e||D>M?M:Rt(D),D<0&&(D+=M),D=m>D?0:ap(D);m<D;)o[m++]=l;return o}function Y0(o,l){var m=[];return Wn(o,function(D,M,T){l(D,M,T)&&m.push(D)}),m}function Xe(o,l,m,D,M){var T=-1,k=o.length;for(m||(m=ME),M||(M=[]);++T<k;){var U=o[T];l>0&&m(U)?l>1?Xe(U,l-1,m,D,M):qn(M,U):D||(M[M.length]=U)}return M}var rl=gd(),V0=gd(!0);function on(o,l){return o&&rl(o,l,Ve)}function nl(o,l){return o&&V0(o,l,Ve)}function ra(o,l){return zn(l,function(m){return En(o[m])})}function _i(o,l){l=Vn(l,o);for(var m=0,D=l.length;o!=null&&m<D;)o=o[un(l[m++])];return m&&m==D?o:e}function H0(o,l,m){var D=l(o);return It(o)?D:qn(D,m(o))}function or(o){return o==null?o===e?H:Dr:fi&&fi in pe(o)?DE(o):IE(o)}function il(o,l){return o>l}function zx(o,l){return o!=null&&le.call(o,l)}function qx(o,l){return o!=null&&l in pe(o)}function Ux(o,l,m){return o>=rr(l,m)&&o<je(l,m)}function sl(o,l,m){for(var D=m?qu:Ro,M=o[0].length,T=o.length,k=T,U=G(T),V=1/0,tt=[];k--;){var et=o[k];k&&l&&(et=Ee(et,Cr(l))),V=rr(et.length,V),U[k]=!m&&(l||M>=120&&et.length>=120)?new di(k&&et):e}et=o[0];var at=-1,pt=U[0];t:for(;++at<M&&tt.length<V;){var wt=et[at],Ct=l?l(wt):wt;if(wt=m||wt!==0?wt:0,!(pt?ds(pt,Ct):D(tt,Ct,m))){for(k=T;--k;){var Pt=U[k];if(!(Pt?ds(Pt,Ct):D(o[k],Ct,m)))continue t}pt&&pt.push(Ct),tt.push(wt)}}return tt}function jx(o,l,m,D){return on(o,function(M,T,k){l(D,m(M),T,k)}),D}function Ds(o,l,m){l=Vn(l,o),o=Id(o,l);var D=o==null?o:o[un(qr(l))];return D==null?e:Ar(D,o,m)}function Z0(o){return Ne(o)&&or(o)==Dt}function Wx(o){return Ne(o)&&or(o)==ot}function Yx(o){return Ne(o)&&or(o)==Tt}function bs(o,l,m,D,M){return o===l?!0:o==null||l==null||!Ne(o)&&!Ne(l)?o!==o&&l!==l:Vx(o,l,m,D,bs,M)}function Vx(o,l,m,D,M,T){var k=It(o),U=It(l),V=k?Nt:nr(o),tt=U?Nt:nr(l);V=V==Dt?ze:V,tt=tt==Dt?ze:tt;var et=V==ze,at=tt==ze,pt=V==tt;if(pt&&Zn(o)){if(!Zn(l))return!1;k=!0,et=!1}if(pt&&!et)return T||(T=new Jr),k||Xi(o)?Md(o,l,m,D,M,T):yE(o,l,V,m,D,M,T);if(!(m&y)){var wt=et&&le.call(o,"__wrapped__"),Ct=at&&le.call(l,"__wrapped__");if(wt||Ct){var Pt=wt?o.value():o,Mt=Ct?l.value():l;return T||(T=new Jr),M(Pt,Mt,m,D,T)}}return pt?(T||(T=new Jr),wE(o,l,m,D,M,T)):!1}function Hx(o){return Ne(o)&&nr(o)==Xt}function ol(o,l,m,D){var M=m.length,T=M,k=!D;if(o==null)return!T;for(o=pe(o);M--;){var U=m[M];if(k&&U[2]?U[1]!==o[U[0]]:!(U[0]in o))return!1}for(;++M<T;){U=m[M];var V=U[0],tt=o[V],et=U[1];if(k&&U[2]){if(tt===e&&!(V in o))return!1}else{var at=new Jr;if(D)var pt=D(tt,et,V,o,l,at);if(!(pt===e?bs(et,tt,y|_,D,at):pt))return!1}}return!0}function K0(o){if(!Me(o)||NE(o))return!1;var l=En(o)?Hb:Nu;return l.test(gi(o))}function Zx(o){return Ne(o)&&or(o)==gn}function Kx(o){return Ne(o)&&nr(o)==br}function Gx(o){return Ne(o)&&ya(o.length)&&!!we[or(o)]}function G0(o){return typeof o=="function"?o:o==null?_r:typeof o=="object"?It(o)?Q0(o[0],o[1]):X0(o):vp(o)}function al(o){if(!As(o))return Qb(o);var l=[];for(var m in pe(o))le.call(o,m)&&m!="constructor"&&l.push(m);return l}function Jx(o){if(!Me(o))return TE(o);var l=As(o),m=[];for(var D in o)D=="constructor"&&(l||!le.call(o,D))||m.push(D);return m}function ul(o,l){return o<l}function J0(o,l){var m=-1,D=dr(o)?G(o.length):[];return Wn(o,function(M,T,k){D[++m]=l(M,T,k)}),D}function X0(o){var l=xl(o);return l.length==1&&l[0][2]?Bd(l[0][0],l[0][1]):function(m){return m===o||ol(m,o,l)}}function Q0(o,l){return Al(o)&&Od(l)?Bd(un(o),l):function(m){var D=$l(m,o);return D===e&&D===l?Ll(m,o):bs(l,D,y|_)}}function na(o,l,m,D,M){o!==l&&rl(l,function(T,k){if(M||(M=new Jr),Me(T))Xx(o,l,k,m,na,D,M);else{var U=D?D(Ml(o,k),T,k+"",o,l,M):e;U===e&&(U=T),tl(o,k,U)}},pr)}function Xx(o,l,m,D,M,T,k){var U=Ml(o,m),V=Ml(l,m),tt=k.get(V);if(tt){tl(o,m,tt);return}var et=T?T(U,V,m+"",o,l,k):e,at=et===e;if(at){var pt=It(V),wt=!pt&&Zn(V),Ct=!pt&&!wt&&Xi(V);et=V,pt||wt||Ct?It(U)?et=U:Be(U)?et=hr(U):wt?(at=!1,et=fd(V,!0)):Ct?(at=!1,et=hd(V,!0)):et=[]:Ms(V)||vi(V)?(et=U,vi(U)?et=up(U):(!Me(U)||En(U))&&(et=Sd(V))):at=!1}at&&(k.set(V,et),M(et,V,D,T,k),k.delete(V)),tl(o,m,et)}function td(o,l){var m=o.length;if(m)return l+=l<0?m:0,xn(l,m)?o[l]:e}function ed(o,l,m){l.length?l=Ee(l,function(T){return It(T)?function(k){return _i(k,T.length===1?T[0]:T)}:T}):l=[_r];var D=-1;l=Ee(l,Cr(At()));var M=J0(o,function(T,k,U){var V=Ee(l,function(tt){return tt(T)});return{criteria:V,index:++D,value:T}});return Ab(M,function(T,k){return fE(T,k,m)})}function Qx(o,l){return rd(o,l,function(m,D){return Ll(o,D)})}function rd(o,l,m){for(var D=-1,M=l.length,T={};++D<M;){var k=l[D],U=_i(o,k);m(U,k)&&xs(T,Vn(k,o),U)}return T}function tE(o){return function(l){return _i(l,o)}}function ll(o,l,m,D){var M=D?Eb:qi,T=-1,k=l.length,U=o;for(o===l&&(l=hr(l)),m&&(U=Ee(o,Cr(m)));++T<k;)for(var V=0,tt=l[T],et=m?m(tt):tt;(V=M(U,et,V,D))>-1;)U!==o&&Ho.call(U,V,1),Ho.call(o,V,1);return o}function nd(o,l){for(var m=o?l.length:0,D=m-1;m--;){var M=l[m];if(m==D||M!==T){var T=M;xn(M)?Ho.call(o,M,1):dl(o,M)}}return o}function cl(o,l){return o+Go(R0()*(l-o+1))}function eE(o,l,m,D){for(var M=-1,T=je(Ko((l-o)/(m||1)),0),k=G(T);T--;)k[D?T:++M]=o,o+=m;return k}function fl(o,l){var m="";if(!o||l<1||l>W)return m;do l%2&&(m+=o),l=Go(l/2),l&&(o+=o);while(l);return m}function kt(o,l){return Fl(Td(o,l,_r),o+"")}function rE(o){return z0(Qi(o))}function nE(o,l){var m=Qi(o);return da(m,pi(l,0,m.length))}function xs(o,l,m,D){if(!Me(o))return o;l=Vn(l,o);for(var M=-1,T=l.length,k=T-1,U=o;U!=null&&++M<T;){var V=un(l[M]),tt=m;if(V==="__proto__"||V==="constructor"||V==="prototype")return o;if(M!=k){var et=U[V];tt=D?D(et,V,U):e,tt===e&&(tt=Me(et)?et:xn(l[M+1])?[]:{})}ys(U,V,tt),U=U[V]}return o}var id=Jo?function(o,l){return Jo.set(o,l),o}:_r,iE=Zo?function(o,l){return Zo(o,"toString",{configurable:!0,enumerable:!1,value:Pl(l),writable:!0})}:_r;function sE(o){return da(Qi(o))}function zr(o,l,m){var D=-1,M=o.length;l<0&&(l=-l>M?0:M+l),m=m>M?M:m,m<0&&(m+=M),M=l>m?0:m-l>>>0,l>>>=0;for(var T=G(M);++D<M;)T[D]=o[D+l];return T}function oE(o,l){var m;return Wn(o,function(D,M,T){return m=l(D,M,T),!m}),!!m}function ia(o,l,m){var D=0,M=o==null?D:o.length;if(typeof l=="number"&&l===l&&M<=st){for(;D<M;){var T=D+M>>>1,k=o[T];k!==null&&!Fr(k)&&(m?k<=l:k<l)?D=T+1:M=T}return M}return hl(o,l,_r,m)}function hl(o,l,m,D){var M=0,T=o==null?0:o.length;if(T===0)return 0;l=m(l);for(var k=l!==l,U=l===null,V=Fr(l),tt=l===e;M<T;){var et=Go((M+T)/2),at=m(o[et]),pt=at!==e,wt=at===null,Ct=at===at,Pt=Fr(at);if(k)var Mt=D||Ct;else tt?Mt=Ct&&(D||pt):U?Mt=Ct&&pt&&(D||!wt):V?Mt=Ct&&pt&&!wt&&(D||!Pt):wt||Pt?Mt=!1:Mt=D?at<=l:at<l;Mt?M=et+1:T=et}return rr(T,gt)}function sd(o,l){for(var m=-1,D=o.length,M=0,T=[];++m<D;){var k=o[m],U=l?l(k):k;if(!m||!Xr(U,V)){var V=U;T[M++]=k===0?0:k}}return T}function od(o){return typeof o=="number"?o:Fr(o)?J:+o}function Mr(o){if(typeof o=="string")return o;if(It(o))return Ee(o,Mr)+"";if(Fr(o))return P0?P0.call(o):"";var l=o+"";return l=="0"&&1/o==-Z?"-0":l}function Yn(o,l,m){var D=-1,M=Ro,T=o.length,k=!0,U=[],V=U;if(m)k=!1,M=qu;else if(T>=n){var tt=l?null:gE(o);if(tt)return ko(tt);k=!1,M=ds,V=new di}else V=l?[]:U;t:for(;++D<T;){var et=o[D],at=l?l(et):et;if(et=m||et!==0?et:0,k&&at===at){for(var pt=V.length;pt--;)if(V[pt]===at)continue t;l&&V.push(at),U.push(et)}else M(V,at,m)||(V!==U&&V.push(at),U.push(et))}return U}function dl(o,l){return l=Vn(l,o),o=Id(o,l),o==null||delete o[un(qr(l))]}function ad(o,l,m,D){return xs(o,l,m(_i(o,l)),D)}function sa(o,l,m,D){for(var M=o.length,T=D?M:-1;(D?T--:++T<M)&&l(o[T],T,o););return m?zr(o,D?0:T,D?T+1:M):zr(o,D?T+1:0,D?M:T)}function ud(o,l){var m=o;return m instanceof Yt&&(m=m.value()),Uu(l,function(D,M){return M.func.apply(M.thisArg,qn([D],M.args))},m)}function pl(o,l,m){var D=o.length;if(D<2)return D?Yn(o[0]):[];for(var M=-1,T=G(D);++M<D;)for(var k=o[M],U=-1;++U<D;)U!=M&&(T[M]=ws(T[M]||k,o[U],l,m));return Yn(Xe(T,1),l,m)}function ld(o,l,m){for(var D=-1,M=o.length,T=l.length,k={};++D<M;){var U=D<T?l[D]:e;m(k,o[D],U)}return k}function _l(o){return Be(o)?o:[]}function ml(o){return typeof o=="function"?o:_r}function Vn(o,l){return It(o)?o:Al(o,l)?[o]:Pd(se(o))}var aE=kt;function Hn(o,l,m){var D=o.length;return m=m===e?D:m,!l&&m>=D?o:zr(o,l,m)}var cd=Zb||function(o){return Je.clearTimeout(o)};function fd(o,l){if(l)return o.slice();var m=o.length,D=B0?B0(m):new o.constructor(m);return o.copy(D),D}function gl(o){var l=new o.constructor(o.byteLength);return new Yo(l).set(new Yo(o)),l}function uE(o,l){var m=l?gl(o.buffer):o.buffer;return new o.constructor(m,o.byteOffset,o.byteLength)}function lE(o){var l=new o.constructor(o.source,Io.exec(o));return l.lastIndex=o.lastIndex,l}function cE(o){return vs?pe(vs.call(o)):{}}function hd(o,l){var m=l?gl(o.buffer):o.buffer;return new o.constructor(m,o.byteOffset,o.length)}function dd(o,l){if(o!==l){var m=o!==e,D=o===null,M=o===o,T=Fr(o),k=l!==e,U=l===null,V=l===l,tt=Fr(l);if(!U&&!tt&&!T&&o>l||T&&k&&V&&!U&&!tt||D&&k&&V||!m&&V||!M)return 1;if(!D&&!T&&!tt&&o<l||tt&&m&&M&&!D&&!T||U&&m&&M||!k&&M||!V)return-1}return 0}function fE(o,l,m){for(var D=-1,M=o.criteria,T=l.criteria,k=M.length,U=m.length;++D<k;){var V=dd(M[D],T[D]);if(V){if(D>=U)return V;var tt=m[D];return V*(tt=="desc"?-1:1)}}return o.index-l.index}function pd(o,l,m,D){for(var M=-1,T=o.length,k=m.length,U=-1,V=l.length,tt=je(T-k,0),et=G(V+tt),at=!D;++U<V;)et[U]=l[U];for(;++M<k;)(at||M<T)&&(et[m[M]]=o[M]);for(;tt--;)et[U++]=o[M++];return et}function _d(o,l,m,D){for(var M=-1,T=o.length,k=-1,U=m.length,V=-1,tt=l.length,et=je(T-U,0),at=G(et+tt),pt=!D;++M<et;)at[M]=o[M];for(var wt=M;++V<tt;)at[wt+V]=l[V];for(;++k<U;)(pt||M<T)&&(at[wt+m[k]]=o[M++]);return at}function hr(o,l){var m=-1,D=o.length;for(l||(l=G(D));++m<D;)l[m]=o[m];return l}function an(o,l,m,D){var M=!m;m||(m={});for(var T=-1,k=l.length;++T<k;){var U=l[T],V=D?D(m[U],o[U],U,m,o):e;V===e&&(V=o[U]),M?wn(m,U,V):ys(m,U,V)}return m}function hE(o,l){return an(o,El(o),l)}function dE(o,l){return an(o,Fd(o),l)}function oa(o,l){return function(m,D){var M=It(m)?vb:$x,T=l?l():{};return M(m,o,At(D,2),T)}}function Ki(o){return kt(function(l,m){var D=-1,M=m.length,T=M>1?m[M-1]:e,k=M>2?m[2]:e;for(T=o.length>3&&typeof T=="function"?(M--,T):e,k&&ar(m[0],m[1],k)&&(T=M<3?e:T,M=1),l=pe(l);++D<M;){var U=m[D];U&&o(l,U,D,T)}return l})}function md(o,l){return function(m,D){if(m==null)return m;if(!dr(m))return o(m,D);for(var M=m.length,T=l?M:-1,k=pe(m);(l?T--:++T<M)&&D(k[T],T,k)!==!1;);return m}}function gd(o){return function(l,m,D){for(var M=-1,T=pe(l),k=D(l),U=k.length;U--;){var V=k[o?U:++M];if(m(T[V],V,T)===!1)break}return l}}function pE(o,l,m){var D=l&w,M=Es(o);function T(){var k=this&&this!==Je&&this instanceof T?M:o;return k.apply(D?m:this,arguments)}return T}function vd(o){return function(l){l=se(l);var m=Ui(l)?Gr(l):e,D=m?m[0]:l.charAt(0),M=m?Hn(m,1).join(""):l.slice(1);return D[o]()+M}}function Gi(o){return function(l){return Uu(mp(_p(l).replace(ib,"")),o,"")}}function Es(o){return function(){var l=arguments;switch(l.length){case 0:return new o;case 1:return new o(l[0]);case 2:return new o(l[0],l[1]);case 3:return new o(l[0],l[1],l[2]);case 4:return new o(l[0],l[1],l[2],l[3]);case 5:return new o(l[0],l[1],l[2],l[3],l[4]);case 6:return new o(l[0],l[1],l[2],l[3],l[4],l[5]);case 7:return new o(l[0],l[1],l[2],l[3],l[4],l[5],l[6])}var m=Zi(o.prototype),D=o.apply(m,l);return Me(D)?D:m}}function _E(o,l,m){var D=Es(o);function M(){for(var T=arguments.length,k=G(T),U=T,V=Ji(M);U--;)k[U]=arguments[U];var tt=T<3&&k[0]!==V&&k[T-1]!==V?[]:Un(k,V);if(T-=tt.length,T<m)return xd(o,l,aa,M.placeholder,e,k,tt,e,e,m-T);var et=this&&this!==Je&&this instanceof M?D:o;return Ar(et,this,k)}return M}function yd(o){return function(l,m,D){var M=pe(l);if(!dr(l)){var T=At(m,3);l=Ve(l),m=function(U){return T(M[U],U,M)}}var k=o(l,m,D);return k>-1?M[T?l[k]:k]:e}}function wd(o){return bn(function(l){var m=l.length,D=m,M=Pr.prototype.thru;for(o&&l.reverse();D--;){var T=l[D];if(typeof T!="function")throw new Rr(a);if(M&&!k&&fa(T)=="wrapper")var k=new Pr([],!0)}for(D=k?D:m;++D<m;){T=l[D];var U=fa(T),V=U=="wrapper"?bl(T):e;V&&Cl(V[0])&&V[1]==(F|b|E|S)&&!V[4].length&&V[9]==1?k=k[fa(V[0])].apply(k,V[3]):k=T.length==1&&Cl(T)?k[U]():k.thru(T)}return function(){var tt=arguments,et=tt[0];if(k&&tt.length==1&&It(et))return k.plant(et).value();for(var at=0,pt=m?l[at].apply(this,tt):et;++at<m;)pt=l[at].call(this,pt);return pt}})}function aa(o,l,m,D,M,T,k,U,V,tt){var et=l&F,at=l&w,pt=l&v,wt=l&(b|N),Ct=l&I,Pt=pt?e:Es(o);function Mt(){for(var Ut=arguments.length,Ht=G(Ut),Nr=Ut;Nr--;)Ht[Nr]=arguments[Nr];if(wt)var ur=Ji(Mt),Sr=Mb(Ht,ur);if(D&&(Ht=pd(Ht,D,M,wt)),T&&(Ht=_d(Ht,T,k,wt)),Ut-=Sr,wt&&Ut<tt){var Te=Un(Ht,ur);return xd(o,l,aa,Mt.placeholder,m,Ht,Te,U,V,tt-Ut)}var Qr=at?m:this,Cn=pt?Qr[o]:o;return Ut=Ht.length,U?Ht=$E(Ht,U):Ct&&Ut>1&&Ht.reverse(),et&&V<Ut&&(Ht.length=V),this&&this!==Je&&this instanceof Mt&&(Cn=Pt||Es(Cn)),Cn.apply(Qr,Ht)}return Mt}function Dd(o,l){return function(m,D){return jx(m,o,l(D),{})}}function ua(o,l){return function(m,D){var M;if(m===e&&D===e)return l;if(m!==e&&(M=m),D!==e){if(M===e)return D;typeof m=="string"||typeof D=="string"?(m=Mr(m),D=Mr(D)):(m=od(m),D=od(D)),M=o(m,D)}return M}}function vl(o){return bn(function(l){return l=Ee(l,Cr(At())),kt(function(m){var D=this;return o(l,function(M){return Ar(M,D,m)})})})}function la(o,l){l=l===e?" ":Mr(l);var m=l.length;if(m<2)return m?fl(l,o):l;var D=fl(l,Ko(o/ji(l)));return Ui(l)?Hn(Gr(D),0,o).join(""):D.slice(0,o)}function mE(o,l,m,D){var M=l&w,T=Es(o);function k(){for(var U=-1,V=arguments.length,tt=-1,et=D.length,at=G(et+V),pt=this&&this!==Je&&this instanceof k?T:o;++tt<et;)at[tt]=D[tt];for(;V--;)at[tt++]=arguments[++U];return Ar(pt,M?m:this,at)}return k}function bd(o){return function(l,m,D){return D&&typeof D!="number"&&ar(l,m,D)&&(m=D=e),l=An(l),m===e?(m=l,l=0):m=An(m),D=D===e?l<m?1:-1:An(D),eE(l,m,D,o)}}function ca(o){return function(l,m){return typeof l=="string"&&typeof m=="string"||(l=Ur(l),m=Ur(m)),o(l,m)}}function xd(o,l,m,D,M,T,k,U,V,tt){var et=l&b,at=et?k:e,pt=et?e:k,wt=et?T:e,Ct=et?e:T;l|=et?E:C,l&=~(et?C:E),l&x||(l&=~(w|v));var Pt=[o,l,M,wt,at,Ct,pt,U,V,tt],Mt=m.apply(e,Pt);return Cl(o)&&$d(Mt,Pt),Mt.placeholder=D,Ld(Mt,o,l)}function yl(o){var l=Ue[o];return function(m,D){if(m=Ur(m),D=D==null?0:rr(Rt(D),292),D&&L0(m)){var M=(se(m)+"e").split("e"),T=l(M[0]+"e"+(+M[1]+D));return M=(se(T)+"e").split("e"),+(M[0]+"e"+(+M[1]-D))}return l(m)}}var gE=Vi&&1/ko(new Vi([,-0]))[1]==Z?function(o){return new Vi(o)}:ql;function Ed(o){return function(l){var m=nr(l);return m==Xt?Ku(l):m==br?Ib(l):Cb(l,o(l))}}function Dn(o,l,m,D,M,T,k,U){var V=l&v;if(!V&&typeof o!="function")throw new Rr(a);var tt=D?D.length:0;if(tt||(l&=~(E|C),D=M=e),k=k===e?k:je(Rt(k),0),U=U===e?U:Rt(U),tt-=M?M.length:0,l&C){var et=D,at=M;D=M=e}var pt=V?e:bl(o),wt=[o,l,m,D,M,et,at,T,k,U];if(pt&&BE(wt,pt),o=wt[0],l=wt[1],m=wt[2],D=wt[3],M=wt[4],U=wt[9]=wt[9]===e?V?0:o.length:je(wt[9]-tt,0),!U&&l&(b|N)&&(l&=~(b|N)),!l||l==w)var Ct=pE(o,l,m);else l==b||l==N?Ct=_E(o,l,U):(l==E||l==(w|E))&&!M.length?Ct=mE(o,l,m,D):Ct=aa.apply(e,wt);var Pt=pt?id:$d;return Ld(Pt(Ct,wt),o,l)}function Ad(o,l,m,D){return o===e||Xr(o,Yi[m])&&!le.call(D,m)?l:o}function Cd(o,l,m,D,M,T){return Me(o)&&Me(l)&&(T.set(l,o),na(o,l,e,Cd,T),T.delete(l)),o}function vE(o){return Ms(o)?e:o}function Md(o,l,m,D,M,T){var k=m&y,U=o.length,V=l.length;if(U!=V&&!(k&&V>U))return!1;var tt=T.get(o),et=T.get(l);if(tt&&et)return tt==l&&et==o;var at=-1,pt=!0,wt=m&_?new di:e;for(T.set(o,l),T.set(l,o);++at<U;){var Ct=o[at],Pt=l[at];if(D)var Mt=k?D(Pt,Ct,at,l,o,T):D(Ct,Pt,at,o,l,T);if(Mt!==e){if(Mt)continue;pt=!1;break}if(wt){if(!ju(l,function(Ut,Ht){if(!ds(wt,Ht)&&(Ct===Ut||M(Ct,Ut,m,D,T)))return wt.push(Ht)})){pt=!1;break}}else if(!(Ct===Pt||M(Ct,Pt,m,D,T))){pt=!1;break}}return T.delete(o),T.delete(l),pt}function yE(o,l,m,D,M,T,k){switch(m){case rt:if(o.byteLength!=l.byteLength||o.byteOffset!=l.byteOffset)return!1;o=o.buffer,l=l.buffer;case ot:return!(o.byteLength!=l.byteLength||!T(new Yo(o),new Yo(l)));case ue:case Tt:case Le:return Xr(+o,+l);case fe:return o.name==l.name&&o.message==l.message;case gn:case Rn:return o==l+"";case Xt:var U=Ku;case br:var V=D&y;if(U||(U=ko),o.size!=l.size&&!V)return!1;var tt=k.get(o);if(tt)return tt==l;D|=_,k.set(o,l);var et=Md(U(o),U(l),D,M,T,k);return k.delete(o),et;case R:if(vs)return vs.call(o)==vs.call(l)}return!1}function wE(o,l,m,D,M,T){var k=m&y,U=wl(o),V=U.length,tt=wl(l),et=tt.length;if(V!=et&&!k)return!1;for(var at=V;at--;){var pt=U[at];if(!(k?pt in l:le.call(l,pt)))return!1}var wt=T.get(o),Ct=T.get(l);if(wt&&Ct)return wt==l&&Ct==o;var Pt=!0;T.set(o,l),T.set(l,o);for(var Mt=k;++at<V;){pt=U[at];var Ut=o[pt],Ht=l[pt];if(D)var Nr=k?D(Ht,Ut,pt,l,o,T):D(Ut,Ht,pt,o,l,T);if(!(Nr===e?Ut===Ht||M(Ut,Ht,m,D,T):Nr)){Pt=!1;break}Mt||(Mt=pt=="constructor")}if(Pt&&!Mt){var ur=o.constructor,Sr=l.constructor;ur!=Sr&&"constructor"in o&&"constructor"in l&&!(typeof ur=="function"&&ur instanceof ur&&typeof Sr=="function"&&Sr instanceof Sr)&&(Pt=!1)}return T.delete(o),T.delete(l),Pt}function bn(o){return Fl(Td(o,e,Ud),o+"")}function wl(o){return H0(o,Ve,El)}function Dl(o){return H0(o,pr,Fd)}var bl=Jo?function(o){return Jo.get(o)}:ql;function fa(o){for(var l=o.name+"",m=Hi[l],D=le.call(Hi,l)?m.length:0;D--;){var M=m[D],T=M.func;if(T==null||T==o)return M.name}return l}function Ji(o){var l=le.call(B,"placeholder")?B:o;return l.placeholder}function At(){var o=B.iteratee||kl;return o=o===kl?G0:o,arguments.length?o(arguments[0],arguments[1]):o}function ha(o,l){var m=o.__data__;return FE(l)?m[typeof l=="string"?"string":"hash"]:m.map}function xl(o){for(var l=Ve(o),m=l.length;m--;){var D=l[m],M=o[D];l[m]=[D,M,Od(M)]}return l}function mi(o,l){var m=Ob(o,l);return K0(m)?m:e}function DE(o){var l=le.call(o,fi),m=o[fi];try{o[fi]=e;var D=!0}catch{}var M=jo.call(o);return D&&(l?o[fi]=m:delete o[fi]),M}var El=Ju?function(o){return o==null?[]:(o=pe(o),zn(Ju(o),function(l){return I0.call(o,l)}))}:Ul,Fd=Ju?function(o){for(var l=[];o;)qn(l,El(o)),o=Vo(o);return l}:Ul,nr=or;(Xu&&nr(new Xu(new ArrayBuffer(1)))!=rt||_s&&nr(new _s)!=Xt||Qu&&nr(Qu.resolve())!=mn||Vi&&nr(new Vi)!=br||ms&&nr(new ms)!=K)&&(nr=function(o){var l=or(o),m=l==ze?o.constructor:e,D=m?gi(m):"";if(D)switch(D){case nx:return rt;case ix:return Xt;case sx:return mn;case ox:return br;case ax:return K}return l});function bE(o,l,m){for(var D=-1,M=m.length;++D<M;){var T=m[D],k=T.size;switch(T.type){case"drop":o+=k;break;case"dropRight":l-=k;break;case"take":l=rr(l,o+k);break;case"takeRight":o=je(o,l-k);break}}return{start:o,end:l}}function xE(o){var l=o.match(Du);return l?l[1].split(bu):[]}function Nd(o,l,m){l=Vn(l,o);for(var D=-1,M=l.length,T=!1;++D<M;){var k=un(l[D]);if(!(T=o!=null&&m(o,k)))break;o=o[k]}return T||++D!=M?T:(M=o==null?0:o.length,!!M&&ya(M)&&xn(k,M)&&(It(o)||vi(o)))}function EE(o){var l=o.length,m=new o.constructor(l);return l&&typeof o[0]=="string"&&le.call(o,"index")&&(m.index=o.index,m.input=o.input),m}function Sd(o){return typeof o.constructor=="function"&&!As(o)?Zi(Vo(o)):{}}function AE(o,l,m){var D=o.constructor;switch(l){case ot:return gl(o);case ue:case Tt:return new D(+o);case rt:return uE(o,m);case ft:case lt:case ht:case ut:case Qt:case ie:case xe:case Ye:case qe:return hd(o,m);case Xt:return new D;case Le:case Rn:return new D(o);case gn:return lE(o);case br:return new D;case R:return cE(o)}}function CE(o,l){var m=l.length;if(!m)return o;var D=m-1;return l[D]=(m>1?"& ":"")+l[D],l=l.join(m>2?", ":" "),o.replace(wu,`{
9
9
  /* [wrapped with `+l+`] */
10
- `)}function ME(o){return It(o)||vi(o)||!!($0&&o&&o[$0])}function xn(o,l){var m=typeof o;return l=l??W,!!l&&(m=="number"||m!="symbol"&&Ou.test(o))&&o>-1&&o%1==0&&o<l}function ar(o,l,m){if(!Me(m))return!1;var D=typeof l;return(D=="number"?dr(m)&&xn(l,m.length):D=="string"&&l in m)?Jr(m[l],o):!1}function Al(o,l){if(It(o))return!1;var m=typeof o;return m=="number"||m=="symbol"||m=="boolean"||o==null||Fr(o)?!0:mu.test(o)||!_u.test(o)||l!=null&&o in pe(l)}function FE(o){var l=typeof o;return l=="string"||l=="number"||l=="symbol"||l=="boolean"?o!=="__proto__":o===null}function Cl(o){var l=fa(o),m=B[l];if(typeof m!="function"||!(l in Yt.prototype))return!1;if(o===m)return!0;var D=bl(m);return!!D&&o===D[0]}function NE(o){return!!O0&&O0 in o}var SE=qo?En:jl;function As(o){var l=o&&o.constructor,m=typeof l=="function"&&l.prototype||Yi;return o===m}function Od(o){return o===o&&!Me(o)}function Bd(o,l){return function(m){return m==null?!1:m[o]===l&&(l!==e||o in pe(m))}}function OE(o){var l=ga(o,function(D){return m.size===f&&m.clear(),D}),m=l.cache;return l}function BE(o,l){var m=o[1],D=l[1],M=m|D,T=M<(w|v|F),k=D==F&&m==b||D==F&&m==S&&o[7].length<=l[8]||D==(F|S)&&l[7].length<=l[8]&&m==b;if(!(T||k))return o;D&w&&(o[2]=l[2],M|=m&w?0:x);var U=l[3];if(U){var V=o[3];o[3]=V?pd(V,U,l[4]):U,o[4]=V?Un(o[3],d):l[4]}return U=l[5],U&&(V=o[5],o[5]=V?_d(V,U,l[6]):U,o[6]=V?Un(o[5],d):l[6]),U=l[7],U&&(o[7]=U),D&F&&(o[8]=o[8]==null?l[8]:rr(o[8],l[8])),o[9]==null&&(o[9]=l[9]),o[0]=l[0],o[1]=M,o}function TE(o){var l=[];if(o!=null)for(var m in pe(o))l.push(m);return l}function IE(o){return jo.call(o)}function Td(o,l,m){return l=je(l===e?o.length-1:l,0),function(){for(var D=arguments,M=-1,T=je(D.length-l,0),k=G(T);++M<T;)k[M]=D[l+M];M=-1;for(var U=G(l+1);++M<l;)U[M]=D[M];return U[l]=m(k),Ar(o,this,U)}}function Id(o,l){return l.length<2?o:_i(o,zr(l,0,-1))}function $E(o,l){for(var m=o.length,D=rr(l.length,m),M=hr(o);D--;){var T=l[D];o[D]=xn(T,m)?M[T]:e}return o}function Ml(o,l){if(!(l==="constructor"&&typeof o[l]=="function")&&l!="__proto__")return o[l]}var $d=Rd(id),Cs=Gb||function(o,l){return Je.setTimeout(o,l)},Fl=Rd(iE);function Ld(o,l,m){var D=l+"";return Fl(o,CE(D,LE(xE(D),m)))}function Rd(o){var l=0,m=0;return function(){var D=tx(),M=z-(D-m);if(m=D,M>0){if(++l>=L)return arguments[0]}else l=0;return o.apply(e,arguments)}}function da(o,l){var m=-1,D=o.length,M=D-1;for(l=l===e?D:l;++m<l;){var T=cl(m,M),k=o[T];o[T]=o[m],o[m]=k}return o.length=l,o}var Pd=OE(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(gu,function(m,D,M,T){l.push(M?T.replace(Au,"$1"):D||m)}),l});function un(o){if(typeof o=="string"||Fr(o))return o;var l=o+"";return l=="0"&&1/o==-Z?"-0":l}function gi(o){if(o!=null){try{return Uo.call(o)}catch{}try{return o+""}catch{}}return""}function LE(o,l){return Lr(yt,function(m){var D="_."+m[0];l&m[1]&&!Ro(o,D)&&o.push(D)}),o.sort()}function kd(o){if(o instanceof Yt)return o.clone();var l=new Pr(o.__wrapped__,o.__chain__);return l.__actions__=hr(o.__actions__),l.__index__=o.__index__,l.__values__=o.__values__,l}function RE(o,l,m){(m?ar(o,l,m):l===e)?l=1:l=je(Rt(l),0);var D=o==null?0:o.length;if(!D||l<1)return[];for(var M=0,T=0,k=G(Ko(D/l));M<D;)k[T++]=zr(o,M,M+=l);return k}function PE(o){for(var l=-1,m=o==null?0:o.length,D=0,M=[];++l<m;){var T=o[l];T&&(M[D++]=T)}return M}function kE(){var o=arguments.length;if(!o)return[];for(var l=G(o-1),m=arguments[0],D=o;D--;)l[D-1]=arguments[D];return qn(It(m)?hr(m):[m],Xe(l,1))}var zE=kt(function(o,l){return Be(o)?ws(o,Xe(l,1,Be,!0)):[]}),qE=kt(function(o,l){var m=qr(l);return Be(m)&&(m=e),Be(o)?ws(o,Xe(l,1,Be,!0),At(m,2)):[]}),UE=kt(function(o,l){var m=qr(l);return Be(m)&&(m=e),Be(o)?ws(o,Xe(l,1,Be,!0),e,m):[]});function jE(o,l,m){var D=o==null?0:o.length;return D?(l=m||l===e?1:Rt(l),zr(o,l<0?0:l,D)):[]}function WE(o,l,m){var D=o==null?0:o.length;return D?(l=m||l===e?1:Rt(l),l=D-l,zr(o,0,l<0?0:l)):[]}function YE(o,l){return o&&o.length?sa(o,At(l,3),!0,!0):[]}function VE(o,l){return o&&o.length?sa(o,At(l,3),!0):[]}function HE(o,l,m,D){var M=o==null?0:o.length;return M?(m&&typeof m!="number"&&ar(o,l,m)&&(m=0,D=M),kx(o,l,m,D)):[]}function zd(o,l,m){var D=o==null?0:o.length;if(!D)return-1;var M=m==null?0:Rt(m);return M<0&&(M=je(D+M,0)),Po(o,At(l,3),M)}function qd(o,l,m){var D=o==null?0:o.length;if(!D)return-1;var M=D-1;return m!==e&&(M=Rt(m),M=m<0?je(D+M,0):rr(M,D-1)),Po(o,At(l,3),M,!0)}function Ud(o){var l=o==null?0:o.length;return l?Xe(o,1):[]}function ZE(o){var l=o==null?0:o.length;return l?Xe(o,Z):[]}function KE(o,l){var m=o==null?0:o.length;return m?(l=l===e?1:Rt(l),Xe(o,l)):[]}function GE(o){for(var l=-1,m=o==null?0:o.length,D={};++l<m;){var M=o[l];D[M[0]]=M[1]}return D}function jd(o){return o&&o.length?o[0]:e}function JE(o,l,m){var D=o==null?0:o.length;if(!D)return-1;var M=m==null?0:Rt(m);return M<0&&(M=je(D+M,0)),qi(o,l,M)}function XE(o){var l=o==null?0:o.length;return l?zr(o,0,-1):[]}var QE=kt(function(o){var l=Ee(o,_l);return l.length&&l[0]===o[0]?sl(l):[]}),tA=kt(function(o){var l=qr(o),m=Ee(o,_l);return l===qr(m)?l=e:m.pop(),m.length&&m[0]===o[0]?sl(m,At(l,2)):[]}),eA=kt(function(o){var l=qr(o),m=Ee(o,_l);return l=typeof l=="function"?l:e,l&&m.pop(),m.length&&m[0]===o[0]?sl(m,e,l):[]});function rA(o,l){return o==null?"":Xb.call(o,l)}function qr(o){var l=o==null?0:o.length;return l?o[l-1]:e}function nA(o,l,m){var D=o==null?0:o.length;if(!D)return-1;var M=D;return m!==e&&(M=Rt(m),M=M<0?je(D+M,0):rr(M,D-1)),l===l?Lb(o,l,M):Po(o,x0,M,!0)}function iA(o,l){return o&&o.length?td(o,Rt(l)):e}var sA=kt(Wd);function Wd(o,l){return o&&o.length&&l&&l.length?ll(o,l):o}function oA(o,l,m){return o&&o.length&&l&&l.length?ll(o,l,At(m,2)):o}function aA(o,l,m){return o&&o.length&&l&&l.length?ll(o,l,e,m):o}var uA=bn(function(o,l){var m=o==null?0:o.length,D=el(o,l);return nd(o,Ee(l,function(M){return xn(M,m)?+M:M}).sort(dd)),D});function lA(o,l){var m=[];if(!(o&&o.length))return m;var D=-1,M=[],T=o.length;for(l=At(l,3);++D<T;){var k=o[D];l(k,D,o)&&(m.push(k),M.push(D))}return nd(o,M),m}function Nl(o){return o==null?o:rx.call(o)}function cA(o,l,m){var D=o==null?0:o.length;return D?(m&&typeof m!="number"&&ar(o,l,m)?(l=0,m=D):(l=l==null?0:Rt(l),m=m===e?D:Rt(m)),zr(o,l,m)):[]}function fA(o,l){return ia(o,l)}function hA(o,l,m){return hl(o,l,At(m,2))}function dA(o,l){var m=o==null?0:o.length;if(m){var D=ia(o,l);if(D<m&&Jr(o[D],l))return D}return-1}function pA(o,l){return ia(o,l,!0)}function _A(o,l,m){return hl(o,l,At(m,2),!0)}function mA(o,l){var m=o==null?0:o.length;if(m){var D=ia(o,l,!0)-1;if(Jr(o[D],l))return D}return-1}function gA(o){return o&&o.length?sd(o):[]}function vA(o,l){return o&&o.length?sd(o,At(l,2)):[]}function yA(o){var l=o==null?0:o.length;return l?zr(o,1,l):[]}function wA(o,l,m){return o&&o.length?(l=m||l===e?1:Rt(l),zr(o,0,l<0?0:l)):[]}function DA(o,l,m){var D=o==null?0:o.length;return D?(l=m||l===e?1:Rt(l),l=D-l,zr(o,l<0?0:l,D)):[]}function bA(o,l){return o&&o.length?sa(o,At(l,3),!1,!0):[]}function xA(o,l){return o&&o.length?sa(o,At(l,3)):[]}var EA=kt(function(o){return Yn(Xe(o,1,Be,!0))}),AA=kt(function(o){var l=qr(o);return Be(l)&&(l=e),Yn(Xe(o,1,Be,!0),At(l,2))}),CA=kt(function(o){var l=qr(o);return l=typeof l=="function"?l:e,Yn(Xe(o,1,Be,!0),e,l)});function MA(o){return o&&o.length?Yn(o):[]}function FA(o,l){return o&&o.length?Yn(o,At(l,2)):[]}function NA(o,l){return l=typeof l=="function"?l:e,o&&o.length?Yn(o,e,l):[]}function Sl(o){if(!(o&&o.length))return[];var l=0;return o=zn(o,function(m){if(Be(m))return l=je(m.length,l),!0}),Hu(l,function(m){return Ee(o,Wu(m))})}function Yd(o,l){if(!(o&&o.length))return[];var m=Sl(o);return l==null?m:Ee(m,function(D){return Ar(l,e,D)})}var SA=kt(function(o,l){return Be(o)?ws(o,l):[]}),OA=kt(function(o){return pl(zn(o,Be))}),BA=kt(function(o){var l=qr(o);return Be(l)&&(l=e),pl(zn(o,Be),At(l,2))}),TA=kt(function(o){var l=qr(o);return l=typeof l=="function"?l:e,pl(zn(o,Be),e,l)}),IA=kt(Sl);function $A(o,l){return ld(o||[],l||[],ys)}function LA(o,l){return ld(o||[],l||[],xs)}var RA=kt(function(o){var l=o.length,m=l>1?o[l-1]:e;return m=typeof m=="function"?(o.pop(),m):e,Yd(o,m)});function Vd(o){var l=B(o);return l.__chain__=!0,l}function PA(o,l){return l(o),o}function pa(o,l){return l(o)}var kA=bn(function(o){var l=o.length,m=l?o[0]:0,D=this.__wrapped__,M=function(T){return el(T,o)};return l>1||this.__actions__.length||!(D instanceof Yt)||!xn(m)?this.thru(M):(D=D.slice(m,+m+(l?1:0)),D.__actions__.push({func:pa,args:[M],thisArg:e}),new Pr(D,this.__chain__).thru(function(T){return l&&!T.length&&T.push(e),T}))});function zA(){return Vd(this)}function qA(){return new Pr(this.value(),this.__chain__)}function UA(){this.__values__===e&&(this.__values__=op(this.value()));var o=this.__index__>=this.__values__.length,l=o?e:this.__values__[this.__index__++];return{done:o,value:l}}function jA(){return this}function WA(o){for(var l,m=this;m instanceof Qo;){var D=kd(m);D.__index__=0,D.__values__=e,l?M.__wrapped__=D:l=D;var M=D;m=m.__wrapped__}return M.__wrapped__=o,l}function YA(){var o=this.__wrapped__;if(o instanceof Yt){var l=o;return this.__actions__.length&&(l=new Yt(this)),l=l.reverse(),l.__actions__.push({func:pa,args:[Nl],thisArg:e}),new Pr(l,this.__chain__)}return this.thru(Nl)}function VA(){return ud(this.__wrapped__,this.__actions__)}var HA=oa(function(o,l,m){le.call(o,m)?++o[m]:wn(o,m,1)});function ZA(o,l,m){var D=It(o)?D0:Px;return m&&ar(o,l,m)&&(l=e),D(o,At(l,3))}function KA(o,l){var m=It(o)?zn:Y0;return m(o,At(l,3))}var GA=yd(zd),JA=yd(qd);function XA(o,l){return Xe(_a(o,l),1)}function QA(o,l){return Xe(_a(o,l),Z)}function tC(o,l,m){return m=m===e?1:Rt(m),Xe(_a(o,l),m)}function Hd(o,l){var m=It(o)?Lr:Wn;return m(o,At(l,3))}function Zd(o,l){var m=It(o)?yb:W0;return m(o,At(l,3))}var eC=oa(function(o,l,m){le.call(o,m)?o[m].push(l):wn(o,m,[l])});function rC(o,l,m,D){o=dr(o)?o:Qi(o),m=m&&!D?Rt(m):0;var M=o.length;return m<0&&(m=je(M+m,0)),wa(o)?m<=M&&o.indexOf(l,m)>-1:!!M&&qi(o,l,m)>-1}var nC=kt(function(o,l,m){var D=-1,M=typeof l=="function",T=dr(o)?G(o.length):[];return Wn(o,function(k){T[++D]=M?Ar(l,k,m):Ds(k,l,m)}),T}),iC=oa(function(o,l,m){wn(o,m,l)});function _a(o,l){var m=It(o)?Ee:J0;return m(o,At(l,3))}function sC(o,l,m,D){return o==null?[]:(It(l)||(l=l==null?[]:[l]),m=D?e:m,It(m)||(m=m==null?[]:[m]),ed(o,l,m))}var oC=oa(function(o,l,m){o[m?0:1].push(l)},function(){return[[],[]]});function aC(o,l,m){var D=It(o)?Uu:A0,M=arguments.length<3;return D(o,At(l,4),m,M,Wn)}function uC(o,l,m){var D=It(o)?wb:A0,M=arguments.length<3;return D(o,At(l,4),m,M,W0)}function lC(o,l){var m=It(o)?zn:Y0;return m(o,va(At(l,3)))}function cC(o){var l=It(o)?z0:rE;return l(o)}function fC(o,l,m){(m?ar(o,l,m):l===e)?l=1:l=Rt(l);var D=It(o)?Tx:nE;return D(o,l)}function hC(o){var l=It(o)?Ix:sE;return l(o)}function dC(o){if(o==null)return 0;if(dr(o))return wa(o)?ji(o):o.length;var l=nr(o);return l==Xt||l==br?o.size:al(o).length}function pC(o,l,m){var D=It(o)?ju:oE;return m&&ar(o,l,m)&&(l=e),D(o,At(l,3))}var _C=kt(function(o,l){if(o==null)return[];var m=l.length;return m>1&&ar(o,l[0],l[1])?l=[]:m>2&&ar(l[0],l[1],l[2])&&(l=[l[0]]),ed(o,Xe(l,1),[])}),ma=Kb||function(){return Je.Date.now()};function mC(o,l){if(typeof l!="function")throw new Rr(a);return o=Rt(o),function(){if(--o<1)return l.apply(this,arguments)}}function Kd(o,l,m){return l=m?e:l,l=o&&l==null?o.length:l,Dn(o,F,e,e,e,e,l)}function Gd(o,l){var m;if(typeof l!="function")throw new Rr(a);return o=Rt(o),function(){return--o>0&&(m=l.apply(this,arguments)),o<=1&&(l=e),m}}var Ol=kt(function(o,l,m){var D=w;if(m.length){var M=Un(m,Ji(Ol));D|=E}return Dn(o,D,l,m,M)}),Jd=kt(function(o,l,m){var D=w|v;if(m.length){var M=Un(m,Ji(Jd));D|=E}return Dn(l,D,o,m,M)});function Xd(o,l,m){l=m?e:l;var D=Dn(o,b,e,e,e,e,e,l);return D.placeholder=Xd.placeholder,D}function Qd(o,l,m){l=m?e:l;var D=Dn(o,N,e,e,e,e,e,l);return D.placeholder=Qd.placeholder,D}function tp(o,l,m){var D,M,T,k,U,V,tt=0,et=!1,at=!1,pt=!0;if(typeof o!="function")throw new Rr(a);l=Ur(l)||0,Me(m)&&(et=!!m.leading,at="maxWait"in m,T=at?je(Ur(m.maxWait)||0,l):T,pt="trailing"in m?!!m.trailing:pt);function wt(Te){var Xr=D,Cn=M;return D=M=e,tt=Te,k=o.apply(Cn,Xr),k}function Ct(Te){return tt=Te,U=Cs(Ut,l),et?wt(Te):k}function Pt(Te){var Xr=Te-V,Cn=Te-tt,yp=l-Xr;return at?rr(yp,T-Cn):yp}function Mt(Te){var Xr=Te-V,Cn=Te-tt;return V===e||Xr>=l||Xr<0||at&&Cn>=T}function Ut(){var Te=ma();if(Mt(Te))return Ht(Te);U=Cs(Ut,Pt(Te))}function Ht(Te){return U=e,pt&&D?wt(Te):(D=M=e,k)}function Nr(){U!==e&&cd(U),tt=0,D=V=M=U=e}function ur(){return U===e?k:Ht(ma())}function Sr(){var Te=ma(),Xr=Mt(Te);if(D=arguments,M=this,V=Te,Xr){if(U===e)return Ct(V);if(at)return cd(U),U=Cs(Ut,l),wt(V)}return U===e&&(U=Cs(Ut,l)),k}return Sr.cancel=Nr,Sr.flush=ur,Sr}var gC=kt(function(o,l){return j0(o,1,l)}),vC=kt(function(o,l,m){return j0(o,Ur(l)||0,m)});function yC(o){return Dn(o,I)}function ga(o,l){if(typeof o!="function"||l!=null&&typeof l!="function")throw new Rr(a);var m=function(){var D=arguments,M=l?l.apply(this,D):D[0],T=m.cache;if(T.has(M))return T.get(M);var k=o.apply(this,D);return m.cache=T.set(M,k)||T,k};return m.cache=new(ga.Cache||yn),m}ga.Cache=yn;function va(o){if(typeof o!="function")throw new Rr(a);return function(){var l=arguments;switch(l.length){case 0:return!o.call(this);case 1:return!o.call(this,l[0]);case 2:return!o.call(this,l[0],l[1]);case 3:return!o.call(this,l[0],l[1],l[2])}return!o.apply(this,l)}}function wC(o){return Gd(2,o)}var DC=aE(function(o,l){l=l.length==1&&It(l[0])?Ee(l[0],Cr(At())):Ee(Xe(l,1),Cr(At()));var m=l.length;return kt(function(D){for(var M=-1,T=rr(D.length,m);++M<T;)D[M]=l[M].call(this,D[M]);return Ar(o,this,D)})}),Bl=kt(function(o,l){var m=Un(l,Ji(Bl));return Dn(o,E,e,l,m)}),ep=kt(function(o,l){var m=Un(l,Ji(ep));return Dn(o,C,e,l,m)}),bC=bn(function(o,l){return Dn(o,S,e,e,e,l)});function xC(o,l){if(typeof o!="function")throw new Rr(a);return l=l===e?l:Rt(l),kt(o,l)}function EC(o,l){if(typeof o!="function")throw new Rr(a);return l=l==null?0:je(Rt(l),0),kt(function(m){var D=m[l],M=Hn(m,0,l);return D&&qn(M,D),Ar(o,this,M)})}function AC(o,l,m){var D=!0,M=!0;if(typeof o!="function")throw new Rr(a);return Me(m)&&(D="leading"in m?!!m.leading:D,M="trailing"in m?!!m.trailing:M),tp(o,l,{leading:D,maxWait:l,trailing:M})}function CC(o){return Kd(o,1)}function MC(o,l){return Bl(ml(l),o)}function FC(){if(!arguments.length)return[];var o=arguments[0];return It(o)?o:[o]}function NC(o){return kr(o,g)}function SC(o,l){return l=typeof l=="function"?l:e,kr(o,g,l)}function OC(o){return kr(o,h|g)}function BC(o,l){return l=typeof l=="function"?l:e,kr(o,h|g,l)}function TC(o,l){return l==null||U0(o,l,Ve(l))}function Jr(o,l){return o===l||o!==o&&l!==l}var IC=ca(il),$C=ca(function(o,l){return o>=l}),vi=Z0(function(){return arguments}())?Z0:function(o){return Ne(o)&&le.call(o,"callee")&&!I0.call(o,"callee")},It=G.isArray,LC=_0?Cr(_0):Wx;function dr(o){return o!=null&&ya(o.length)&&!En(o)}function Be(o){return Ne(o)&&dr(o)}function RC(o){return o===!0||o===!1||Ne(o)&&or(o)==ue}var Zn=Jb||jl,PC=m0?Cr(m0):Yx;function kC(o){return Ne(o)&&o.nodeType===1&&!Ms(o)}function zC(o){if(o==null)return!0;if(dr(o)&&(It(o)||typeof o=="string"||typeof o.splice=="function"||Zn(o)||Xi(o)||vi(o)))return!o.length;var l=nr(o);if(l==Xt||l==br)return!o.size;if(As(o))return!al(o).length;for(var m in o)if(le.call(o,m))return!1;return!0}function qC(o,l){return bs(o,l)}function UC(o,l,m){m=typeof m=="function"?m:e;var D=m?m(o,l):e;return D===e?bs(o,l,e,m):!!D}function Tl(o){if(!Ne(o))return!1;var l=or(o);return l==fe||l==St||typeof o.message=="string"&&typeof o.name=="string"&&!Ms(o)}function jC(o){return typeof o=="number"&&L0(o)}function En(o){if(!Me(o))return!1;var l=or(o);return l==ne||l==qt||l==xt||l==Ln}function rp(o){return typeof o=="number"&&o==Rt(o)}function ya(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=W}function Me(o){var l=typeof o;return o!=null&&(l=="object"||l=="function")}function Ne(o){return o!=null&&typeof o=="object"}var np=g0?Cr(g0):Hx;function WC(o,l){return o===l||ol(o,l,xl(l))}function YC(o,l,m){return m=typeof m=="function"?m:e,ol(o,l,xl(l),m)}function VC(o){return ip(o)&&o!=+o}function HC(o){if(SE(o))throw new Bt(s);return K0(o)}function ZC(o){return o===null}function KC(o){return o==null}function ip(o){return typeof o=="number"||Ne(o)&&or(o)==Le}function Ms(o){if(!Ne(o)||or(o)!=ze)return!1;var l=Vo(o);if(l===null)return!0;var m=le.call(l,"constructor")&&l.constructor;return typeof m=="function"&&m instanceof m&&Uo.call(m)==Yb}var Il=v0?Cr(v0):Zx;function GC(o){return rp(o)&&o>=-W&&o<=W}var sp=y0?Cr(y0):Kx;function wa(o){return typeof o=="string"||!It(o)&&Ne(o)&&or(o)==Rn}function Fr(o){return typeof o=="symbol"||Ne(o)&&or(o)==R}var Xi=w0?Cr(w0):Gx;function JC(o){return o===e}function XC(o){return Ne(o)&&nr(o)==K}function QC(o){return Ne(o)&&or(o)==nt}var tM=ca(ul),eM=ca(function(o,l){return o<=l});function op(o){if(!o)return[];if(dr(o))return wa(o)?Kr(o):hr(o);if(ps&&o[ps])return Tb(o[ps]());var l=nr(o),m=l==Xt?Ku:l==br?ko:Qi;return m(o)}function An(o){if(!o)return o===0?o:0;if(o=Ur(o),o===Z||o===-Z){var l=o<0?-1:1;return l*X}return o===o?o:0}function Rt(o){var l=An(o),m=l%1;return l===l?m?l-m:l:0}function ap(o){return o?pi(Rt(o),0,ct):0}function Ur(o){if(typeof o=="number")return o;if(Fr(o))return J;if(Me(o)){var l=typeof o.valueOf=="function"?o.valueOf():o;o=Me(l)?l+"":l}if(typeof o!="string")return o===0?o:+o;o=C0(o);var m=Fu.test(o);return m||Su.test(o)?mb(o.slice(2),m?2:8):Mu.test(o)?J:+o}function up(o){return an(o,pr(o))}function rM(o){return o?pi(Rt(o),-W,W):o===0?o:0}function se(o){return o==null?"":Mr(o)}var nM=Ki(function(o,l){if(As(l)||dr(l)){an(l,Ve(l),o);return}for(var m in l)le.call(l,m)&&ys(o,m,l[m])}),lp=Ki(function(o,l){an(l,pr(l),o)}),Da=Ki(function(o,l,m,D){an(l,pr(l),o,D)}),iM=Ki(function(o,l,m,D){an(l,Ve(l),o,D)}),sM=bn(el);function oM(o,l){var m=Zi(o);return l==null?m:q0(m,l)}var aM=kt(function(o,l){o=pe(o);var m=-1,D=l.length,M=D>2?l[2]:e;for(M&&ar(l[0],l[1],M)&&(D=1);++m<D;)for(var T=l[m],k=pr(T),U=-1,V=k.length;++U<V;){var tt=k[U],et=o[tt];(et===e||Jr(et,Yi[tt])&&!le.call(o,tt))&&(o[tt]=T[tt])}return o}),uM=kt(function(o){return o.push(e,Cd),Ar(cp,e,o)});function lM(o,l){return b0(o,At(l,3),on)}function cM(o,l){return b0(o,At(l,3),nl)}function fM(o,l){return o==null?o:rl(o,At(l,3),pr)}function hM(o,l){return o==null?o:V0(o,At(l,3),pr)}function dM(o,l){return o&&on(o,At(l,3))}function pM(o,l){return o&&nl(o,At(l,3))}function _M(o){return o==null?[]:ra(o,Ve(o))}function mM(o){return o==null?[]:ra(o,pr(o))}function $l(o,l,m){var D=o==null?e:_i(o,l);return D===e?m:D}function gM(o,l){return o!=null&&Nd(o,l,zx)}function Ll(o,l){return o!=null&&Nd(o,l,qx)}var vM=Dd(function(o,l,m){l!=null&&typeof l.toString!="function"&&(l=jo.call(l)),o[l]=m},Pl(_r)),yM=Dd(function(o,l,m){l!=null&&typeof l.toString!="function"&&(l=jo.call(l)),le.call(o,l)?o[l].push(m):o[l]=[m]},At),wM=kt(Ds);function Ve(o){return dr(o)?k0(o):al(o)}function pr(o){return dr(o)?k0(o,!0):Jx(o)}function DM(o,l){var m={};return l=At(l,3),on(o,function(D,M,T){wn(m,l(D,M,T),D)}),m}function bM(o,l){var m={};return l=At(l,3),on(o,function(D,M,T){wn(m,M,l(D,M,T))}),m}var xM=Ki(function(o,l,m){na(o,l,m)}),cp=Ki(function(o,l,m,D){na(o,l,m,D)}),EM=bn(function(o,l){var m={};if(o==null)return m;var D=!1;l=Ee(l,function(T){return T=Vn(T,o),D||(D=T.length>1),T}),an(o,Dl(o),m),D&&(m=kr(m,h|p|g,vE));for(var M=l.length;M--;)dl(m,l[M]);return m});function AM(o,l){return fp(o,va(At(l)))}var CM=bn(function(o,l){return o==null?{}:Qx(o,l)});function fp(o,l){if(o==null)return{};var m=Ee(Dl(o),function(D){return[D]});return l=At(l),rd(o,m,function(D,M){return l(D,M[0])})}function MM(o,l,m){l=Vn(l,o);var D=-1,M=l.length;for(M||(M=1,o=e);++D<M;){var T=o==null?e:o[un(l[D])];T===e&&(D=M,T=m),o=En(T)?T.call(o):T}return o}function FM(o,l,m){return o==null?o:xs(o,l,m)}function NM(o,l,m,D){return D=typeof D=="function"?D:e,o==null?o:xs(o,l,m,D)}var hp=Ed(Ve),dp=Ed(pr);function SM(o,l,m){var D=It(o),M=D||Zn(o)||Xi(o);if(l=At(l,4),m==null){var T=o&&o.constructor;M?m=D?new T:[]:Me(o)?m=En(T)?Zi(Vo(o)):{}:m={}}return(M?Lr:on)(o,function(k,U,V){return l(m,k,U,V)}),m}function OM(o,l){return o==null?!0:dl(o,l)}function BM(o,l,m){return o==null?o:ad(o,l,ml(m))}function TM(o,l,m,D){return D=typeof D=="function"?D:e,o==null?o:ad(o,l,ml(m),D)}function Qi(o){return o==null?[]:Zu(o,Ve(o))}function IM(o){return o==null?[]:Zu(o,pr(o))}function $M(o,l,m){return m===e&&(m=l,l=e),m!==e&&(m=Ur(m),m=m===m?m:0),l!==e&&(l=Ur(l),l=l===l?l:0),pi(Ur(o),l,m)}function LM(o,l,m){return l=An(l),m===e?(m=l,l=0):m=An(m),o=Ur(o),Ux(o,l,m)}function RM(o,l,m){if(m&&typeof m!="boolean"&&ar(o,l,m)&&(l=m=e),m===e&&(typeof l=="boolean"?(m=l,l=e):typeof o=="boolean"&&(m=o,o=e)),o===e&&l===e?(o=0,l=1):(o=An(o),l===e?(l=o,o=0):l=An(l)),o>l){var D=o;o=l,l=D}if(m||o%1||l%1){var M=R0();return rr(o+M*(l-o+_b("1e-"+((M+"").length-1))),l)}return cl(o,l)}var PM=Gi(function(o,l,m){return l=l.toLowerCase(),o+(m?pp(l):l)});function pp(o){return Rl(se(o).toLowerCase())}function _p(o){return o=se(o),o&&o.replace(Bu,Fb).replace(sb,"")}function kM(o,l,m){o=se(o),l=Mr(l);var D=o.length;m=m===e?D:pi(Rt(m),0,D);var M=m;return m-=l.length,m>=0&&o.slice(m,M)==l}function zM(o){return o=se(o),o&&hu.test(o)?o.replace(Bo,Nb):o}function qM(o){return o=se(o),o&&vu.test(o)?o.replace(fs,"\\$&"):o}var UM=Gi(function(o,l,m){return o+(m?"-":"")+l.toLowerCase()}),jM=Gi(function(o,l,m){return o+(m?" ":"")+l.toLowerCase()}),WM=vd("toLowerCase");function YM(o,l,m){o=se(o),l=Rt(l);var D=l?ji(o):0;if(!l||D>=l)return o;var M=(l-D)/2;return la(Go(M),m)+o+la(Ko(M),m)}function VM(o,l,m){o=se(o),l=Rt(l);var D=l?ji(o):0;return l&&D<l?o+la(l-D,m):o}function HM(o,l,m){o=se(o),l=Rt(l);var D=l?ji(o):0;return l&&D<l?la(l-D,m)+o:o}function ZM(o,l,m){return m||l==null?l=0:l&&(l=+l),ex(se(o).replace(hs,""),l||0)}function KM(o,l,m){return(m?ar(o,l,m):l===e)?l=1:l=Rt(l),fl(se(o),l)}function GM(){var o=arguments,l=se(o[0]);return o.length<3?l:l.replace(o[1],o[2])}var JM=Gi(function(o,l,m){return o+(m?"_":"")+l.toLowerCase()});function XM(o,l,m){return m&&typeof m!="number"&&ar(o,l,m)&&(l=m=e),m=m===e?ct:m>>>0,m?(o=se(o),o&&(typeof l=="string"||l!=null&&!Il(l))&&(l=Mr(l),!l&&Ui(o))?Hn(Kr(o),0,m):o.split(l,m)):[]}var QM=Gi(function(o,l,m){return o+(m?" ":"")+Rl(l)});function t2(o,l,m){return o=se(o),m=m==null?0:pi(Rt(m),0,o.length),l=Mr(l),o.slice(m,m+l.length)==l}function e2(o,l,m){var D=B.templateSettings;m&&ar(o,l,m)&&(l=e),o=se(o),l=Da({},l,D,Ad);var M=Da({},l.imports,D.imports,Ad),T=Ve(M),k=Zu(M,T),U,V,tt=0,et=l.interpolate||Pi,at="__p += '",pt=Gu((l.escape||Pi).source+"|"+et.source+"|"+(et===To?Cu:Pi).source+"|"+(l.evaluate||Pi).source+"|$","g"),wt="//# sourceURL="+(le.call(l,"sourceURL")?(l.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++cb+"]")+`
10
+ `)}function ME(o){return It(o)||vi(o)||!!($0&&o&&o[$0])}function xn(o,l){var m=typeof o;return l=l??W,!!l&&(m=="number"||m!="symbol"&&Ou.test(o))&&o>-1&&o%1==0&&o<l}function ar(o,l,m){if(!Me(m))return!1;var D=typeof l;return(D=="number"?dr(m)&&xn(l,m.length):D=="string"&&l in m)?Xr(m[l],o):!1}function Al(o,l){if(It(o))return!1;var m=typeof o;return m=="number"||m=="symbol"||m=="boolean"||o==null||Fr(o)?!0:mu.test(o)||!_u.test(o)||l!=null&&o in pe(l)}function FE(o){var l=typeof o;return l=="string"||l=="number"||l=="symbol"||l=="boolean"?o!=="__proto__":o===null}function Cl(o){var l=fa(o),m=B[l];if(typeof m!="function"||!(l in Yt.prototype))return!1;if(o===m)return!0;var D=bl(m);return!!D&&o===D[0]}function NE(o){return!!O0&&O0 in o}var SE=qo?En:jl;function As(o){var l=o&&o.constructor,m=typeof l=="function"&&l.prototype||Yi;return o===m}function Od(o){return o===o&&!Me(o)}function Bd(o,l){return function(m){return m==null?!1:m[o]===l&&(l!==e||o in pe(m))}}function OE(o){var l=ga(o,function(D){return m.size===f&&m.clear(),D}),m=l.cache;return l}function BE(o,l){var m=o[1],D=l[1],M=m|D,T=M<(w|v|F),k=D==F&&m==b||D==F&&m==S&&o[7].length<=l[8]||D==(F|S)&&l[7].length<=l[8]&&m==b;if(!(T||k))return o;D&w&&(o[2]=l[2],M|=m&w?0:x);var U=l[3];if(U){var V=o[3];o[3]=V?pd(V,U,l[4]):U,o[4]=V?Un(o[3],d):l[4]}return U=l[5],U&&(V=o[5],o[5]=V?_d(V,U,l[6]):U,o[6]=V?Un(o[5],d):l[6]),U=l[7],U&&(o[7]=U),D&F&&(o[8]=o[8]==null?l[8]:rr(o[8],l[8])),o[9]==null&&(o[9]=l[9]),o[0]=l[0],o[1]=M,o}function TE(o){var l=[];if(o!=null)for(var m in pe(o))l.push(m);return l}function IE(o){return jo.call(o)}function Td(o,l,m){return l=je(l===e?o.length-1:l,0),function(){for(var D=arguments,M=-1,T=je(D.length-l,0),k=G(T);++M<T;)k[M]=D[l+M];M=-1;for(var U=G(l+1);++M<l;)U[M]=D[M];return U[l]=m(k),Ar(o,this,U)}}function Id(o,l){return l.length<2?o:_i(o,zr(l,0,-1))}function $E(o,l){for(var m=o.length,D=rr(l.length,m),M=hr(o);D--;){var T=l[D];o[D]=xn(T,m)?M[T]:e}return o}function Ml(o,l){if(!(l==="constructor"&&typeof o[l]=="function")&&l!="__proto__")return o[l]}var $d=Rd(id),Cs=Gb||function(o,l){return Je.setTimeout(o,l)},Fl=Rd(iE);function Ld(o,l,m){var D=l+"";return Fl(o,CE(D,LE(xE(D),m)))}function Rd(o){var l=0,m=0;return function(){var D=tx(),M=z-(D-m);if(m=D,M>0){if(++l>=L)return arguments[0]}else l=0;return o.apply(e,arguments)}}function da(o,l){var m=-1,D=o.length,M=D-1;for(l=l===e?D:l;++m<l;){var T=cl(m,M),k=o[T];o[T]=o[m],o[m]=k}return o.length=l,o}var Pd=OE(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(gu,function(m,D,M,T){l.push(M?T.replace(Au,"$1"):D||m)}),l});function un(o){if(typeof o=="string"||Fr(o))return o;var l=o+"";return l=="0"&&1/o==-Z?"-0":l}function gi(o){if(o!=null){try{return Uo.call(o)}catch{}try{return o+""}catch{}}return""}function LE(o,l){return Lr(yt,function(m){var D="_."+m[0];l&m[1]&&!Ro(o,D)&&o.push(D)}),o.sort()}function kd(o){if(o instanceof Yt)return o.clone();var l=new Pr(o.__wrapped__,o.__chain__);return l.__actions__=hr(o.__actions__),l.__index__=o.__index__,l.__values__=o.__values__,l}function RE(o,l,m){(m?ar(o,l,m):l===e)?l=1:l=je(Rt(l),0);var D=o==null?0:o.length;if(!D||l<1)return[];for(var M=0,T=0,k=G(Ko(D/l));M<D;)k[T++]=zr(o,M,M+=l);return k}function PE(o){for(var l=-1,m=o==null?0:o.length,D=0,M=[];++l<m;){var T=o[l];T&&(M[D++]=T)}return M}function kE(){var o=arguments.length;if(!o)return[];for(var l=G(o-1),m=arguments[0],D=o;D--;)l[D-1]=arguments[D];return qn(It(m)?hr(m):[m],Xe(l,1))}var zE=kt(function(o,l){return Be(o)?ws(o,Xe(l,1,Be,!0)):[]}),qE=kt(function(o,l){var m=qr(l);return Be(m)&&(m=e),Be(o)?ws(o,Xe(l,1,Be,!0),At(m,2)):[]}),UE=kt(function(o,l){var m=qr(l);return Be(m)&&(m=e),Be(o)?ws(o,Xe(l,1,Be,!0),e,m):[]});function jE(o,l,m){var D=o==null?0:o.length;return D?(l=m||l===e?1:Rt(l),zr(o,l<0?0:l,D)):[]}function WE(o,l,m){var D=o==null?0:o.length;return D?(l=m||l===e?1:Rt(l),l=D-l,zr(o,0,l<0?0:l)):[]}function YE(o,l){return o&&o.length?sa(o,At(l,3),!0,!0):[]}function VE(o,l){return o&&o.length?sa(o,At(l,3),!0):[]}function HE(o,l,m,D){var M=o==null?0:o.length;return M?(m&&typeof m!="number"&&ar(o,l,m)&&(m=0,D=M),kx(o,l,m,D)):[]}function zd(o,l,m){var D=o==null?0:o.length;if(!D)return-1;var M=m==null?0:Rt(m);return M<0&&(M=je(D+M,0)),Po(o,At(l,3),M)}function qd(o,l,m){var D=o==null?0:o.length;if(!D)return-1;var M=D-1;return m!==e&&(M=Rt(m),M=m<0?je(D+M,0):rr(M,D-1)),Po(o,At(l,3),M,!0)}function Ud(o){var l=o==null?0:o.length;return l?Xe(o,1):[]}function ZE(o){var l=o==null?0:o.length;return l?Xe(o,Z):[]}function KE(o,l){var m=o==null?0:o.length;return m?(l=l===e?1:Rt(l),Xe(o,l)):[]}function GE(o){for(var l=-1,m=o==null?0:o.length,D={};++l<m;){var M=o[l];D[M[0]]=M[1]}return D}function jd(o){return o&&o.length?o[0]:e}function JE(o,l,m){var D=o==null?0:o.length;if(!D)return-1;var M=m==null?0:Rt(m);return M<0&&(M=je(D+M,0)),qi(o,l,M)}function XE(o){var l=o==null?0:o.length;return l?zr(o,0,-1):[]}var QE=kt(function(o){var l=Ee(o,_l);return l.length&&l[0]===o[0]?sl(l):[]}),tA=kt(function(o){var l=qr(o),m=Ee(o,_l);return l===qr(m)?l=e:m.pop(),m.length&&m[0]===o[0]?sl(m,At(l,2)):[]}),eA=kt(function(o){var l=qr(o),m=Ee(o,_l);return l=typeof l=="function"?l:e,l&&m.pop(),m.length&&m[0]===o[0]?sl(m,e,l):[]});function rA(o,l){return o==null?"":Xb.call(o,l)}function qr(o){var l=o==null?0:o.length;return l?o[l-1]:e}function nA(o,l,m){var D=o==null?0:o.length;if(!D)return-1;var M=D;return m!==e&&(M=Rt(m),M=M<0?je(D+M,0):rr(M,D-1)),l===l?Lb(o,l,M):Po(o,x0,M,!0)}function iA(o,l){return o&&o.length?td(o,Rt(l)):e}var sA=kt(Wd);function Wd(o,l){return o&&o.length&&l&&l.length?ll(o,l):o}function oA(o,l,m){return o&&o.length&&l&&l.length?ll(o,l,At(m,2)):o}function aA(o,l,m){return o&&o.length&&l&&l.length?ll(o,l,e,m):o}var uA=bn(function(o,l){var m=o==null?0:o.length,D=el(o,l);return nd(o,Ee(l,function(M){return xn(M,m)?+M:M}).sort(dd)),D});function lA(o,l){var m=[];if(!(o&&o.length))return m;var D=-1,M=[],T=o.length;for(l=At(l,3);++D<T;){var k=o[D];l(k,D,o)&&(m.push(k),M.push(D))}return nd(o,M),m}function Nl(o){return o==null?o:rx.call(o)}function cA(o,l,m){var D=o==null?0:o.length;return D?(m&&typeof m!="number"&&ar(o,l,m)?(l=0,m=D):(l=l==null?0:Rt(l),m=m===e?D:Rt(m)),zr(o,l,m)):[]}function fA(o,l){return ia(o,l)}function hA(o,l,m){return hl(o,l,At(m,2))}function dA(o,l){var m=o==null?0:o.length;if(m){var D=ia(o,l);if(D<m&&Xr(o[D],l))return D}return-1}function pA(o,l){return ia(o,l,!0)}function _A(o,l,m){return hl(o,l,At(m,2),!0)}function mA(o,l){var m=o==null?0:o.length;if(m){var D=ia(o,l,!0)-1;if(Xr(o[D],l))return D}return-1}function gA(o){return o&&o.length?sd(o):[]}function vA(o,l){return o&&o.length?sd(o,At(l,2)):[]}function yA(o){var l=o==null?0:o.length;return l?zr(o,1,l):[]}function wA(o,l,m){return o&&o.length?(l=m||l===e?1:Rt(l),zr(o,0,l<0?0:l)):[]}function DA(o,l,m){var D=o==null?0:o.length;return D?(l=m||l===e?1:Rt(l),l=D-l,zr(o,l<0?0:l,D)):[]}function bA(o,l){return o&&o.length?sa(o,At(l,3),!1,!0):[]}function xA(o,l){return o&&o.length?sa(o,At(l,3)):[]}var EA=kt(function(o){return Yn(Xe(o,1,Be,!0))}),AA=kt(function(o){var l=qr(o);return Be(l)&&(l=e),Yn(Xe(o,1,Be,!0),At(l,2))}),CA=kt(function(o){var l=qr(o);return l=typeof l=="function"?l:e,Yn(Xe(o,1,Be,!0),e,l)});function MA(o){return o&&o.length?Yn(o):[]}function FA(o,l){return o&&o.length?Yn(o,At(l,2)):[]}function NA(o,l){return l=typeof l=="function"?l:e,o&&o.length?Yn(o,e,l):[]}function Sl(o){if(!(o&&o.length))return[];var l=0;return o=zn(o,function(m){if(Be(m))return l=je(m.length,l),!0}),Hu(l,function(m){return Ee(o,Wu(m))})}function Yd(o,l){if(!(o&&o.length))return[];var m=Sl(o);return l==null?m:Ee(m,function(D){return Ar(l,e,D)})}var SA=kt(function(o,l){return Be(o)?ws(o,l):[]}),OA=kt(function(o){return pl(zn(o,Be))}),BA=kt(function(o){var l=qr(o);return Be(l)&&(l=e),pl(zn(o,Be),At(l,2))}),TA=kt(function(o){var l=qr(o);return l=typeof l=="function"?l:e,pl(zn(o,Be),e,l)}),IA=kt(Sl);function $A(o,l){return ld(o||[],l||[],ys)}function LA(o,l){return ld(o||[],l||[],xs)}var RA=kt(function(o){var l=o.length,m=l>1?o[l-1]:e;return m=typeof m=="function"?(o.pop(),m):e,Yd(o,m)});function Vd(o){var l=B(o);return l.__chain__=!0,l}function PA(o,l){return l(o),o}function pa(o,l){return l(o)}var kA=bn(function(o){var l=o.length,m=l?o[0]:0,D=this.__wrapped__,M=function(T){return el(T,o)};return l>1||this.__actions__.length||!(D instanceof Yt)||!xn(m)?this.thru(M):(D=D.slice(m,+m+(l?1:0)),D.__actions__.push({func:pa,args:[M],thisArg:e}),new Pr(D,this.__chain__).thru(function(T){return l&&!T.length&&T.push(e),T}))});function zA(){return Vd(this)}function qA(){return new Pr(this.value(),this.__chain__)}function UA(){this.__values__===e&&(this.__values__=op(this.value()));var o=this.__index__>=this.__values__.length,l=o?e:this.__values__[this.__index__++];return{done:o,value:l}}function jA(){return this}function WA(o){for(var l,m=this;m instanceof Qo;){var D=kd(m);D.__index__=0,D.__values__=e,l?M.__wrapped__=D:l=D;var M=D;m=m.__wrapped__}return M.__wrapped__=o,l}function YA(){var o=this.__wrapped__;if(o instanceof Yt){var l=o;return this.__actions__.length&&(l=new Yt(this)),l=l.reverse(),l.__actions__.push({func:pa,args:[Nl],thisArg:e}),new Pr(l,this.__chain__)}return this.thru(Nl)}function VA(){return ud(this.__wrapped__,this.__actions__)}var HA=oa(function(o,l,m){le.call(o,m)?++o[m]:wn(o,m,1)});function ZA(o,l,m){var D=It(o)?D0:Px;return m&&ar(o,l,m)&&(l=e),D(o,At(l,3))}function KA(o,l){var m=It(o)?zn:Y0;return m(o,At(l,3))}var GA=yd(zd),JA=yd(qd);function XA(o,l){return Xe(_a(o,l),1)}function QA(o,l){return Xe(_a(o,l),Z)}function tC(o,l,m){return m=m===e?1:Rt(m),Xe(_a(o,l),m)}function Hd(o,l){var m=It(o)?Lr:Wn;return m(o,At(l,3))}function Zd(o,l){var m=It(o)?yb:W0;return m(o,At(l,3))}var eC=oa(function(o,l,m){le.call(o,m)?o[m].push(l):wn(o,m,[l])});function rC(o,l,m,D){o=dr(o)?o:Qi(o),m=m&&!D?Rt(m):0;var M=o.length;return m<0&&(m=je(M+m,0)),wa(o)?m<=M&&o.indexOf(l,m)>-1:!!M&&qi(o,l,m)>-1}var nC=kt(function(o,l,m){var D=-1,M=typeof l=="function",T=dr(o)?G(o.length):[];return Wn(o,function(k){T[++D]=M?Ar(l,k,m):Ds(k,l,m)}),T}),iC=oa(function(o,l,m){wn(o,m,l)});function _a(o,l){var m=It(o)?Ee:J0;return m(o,At(l,3))}function sC(o,l,m,D){return o==null?[]:(It(l)||(l=l==null?[]:[l]),m=D?e:m,It(m)||(m=m==null?[]:[m]),ed(o,l,m))}var oC=oa(function(o,l,m){o[m?0:1].push(l)},function(){return[[],[]]});function aC(o,l,m){var D=It(o)?Uu:A0,M=arguments.length<3;return D(o,At(l,4),m,M,Wn)}function uC(o,l,m){var D=It(o)?wb:A0,M=arguments.length<3;return D(o,At(l,4),m,M,W0)}function lC(o,l){var m=It(o)?zn:Y0;return m(o,va(At(l,3)))}function cC(o){var l=It(o)?z0:rE;return l(o)}function fC(o,l,m){(m?ar(o,l,m):l===e)?l=1:l=Rt(l);var D=It(o)?Tx:nE;return D(o,l)}function hC(o){var l=It(o)?Ix:sE;return l(o)}function dC(o){if(o==null)return 0;if(dr(o))return wa(o)?ji(o):o.length;var l=nr(o);return l==Xt||l==br?o.size:al(o).length}function pC(o,l,m){var D=It(o)?ju:oE;return m&&ar(o,l,m)&&(l=e),D(o,At(l,3))}var _C=kt(function(o,l){if(o==null)return[];var m=l.length;return m>1&&ar(o,l[0],l[1])?l=[]:m>2&&ar(l[0],l[1],l[2])&&(l=[l[0]]),ed(o,Xe(l,1),[])}),ma=Kb||function(){return Je.Date.now()};function mC(o,l){if(typeof l!="function")throw new Rr(a);return o=Rt(o),function(){if(--o<1)return l.apply(this,arguments)}}function Kd(o,l,m){return l=m?e:l,l=o&&l==null?o.length:l,Dn(o,F,e,e,e,e,l)}function Gd(o,l){var m;if(typeof l!="function")throw new Rr(a);return o=Rt(o),function(){return--o>0&&(m=l.apply(this,arguments)),o<=1&&(l=e),m}}var Ol=kt(function(o,l,m){var D=w;if(m.length){var M=Un(m,Ji(Ol));D|=E}return Dn(o,D,l,m,M)}),Jd=kt(function(o,l,m){var D=w|v;if(m.length){var M=Un(m,Ji(Jd));D|=E}return Dn(l,D,o,m,M)});function Xd(o,l,m){l=m?e:l;var D=Dn(o,b,e,e,e,e,e,l);return D.placeholder=Xd.placeholder,D}function Qd(o,l,m){l=m?e:l;var D=Dn(o,N,e,e,e,e,e,l);return D.placeholder=Qd.placeholder,D}function tp(o,l,m){var D,M,T,k,U,V,tt=0,et=!1,at=!1,pt=!0;if(typeof o!="function")throw new Rr(a);l=Ur(l)||0,Me(m)&&(et=!!m.leading,at="maxWait"in m,T=at?je(Ur(m.maxWait)||0,l):T,pt="trailing"in m?!!m.trailing:pt);function wt(Te){var Qr=D,Cn=M;return D=M=e,tt=Te,k=o.apply(Cn,Qr),k}function Ct(Te){return tt=Te,U=Cs(Ut,l),et?wt(Te):k}function Pt(Te){var Qr=Te-V,Cn=Te-tt,yp=l-Qr;return at?rr(yp,T-Cn):yp}function Mt(Te){var Qr=Te-V,Cn=Te-tt;return V===e||Qr>=l||Qr<0||at&&Cn>=T}function Ut(){var Te=ma();if(Mt(Te))return Ht(Te);U=Cs(Ut,Pt(Te))}function Ht(Te){return U=e,pt&&D?wt(Te):(D=M=e,k)}function Nr(){U!==e&&cd(U),tt=0,D=V=M=U=e}function ur(){return U===e?k:Ht(ma())}function Sr(){var Te=ma(),Qr=Mt(Te);if(D=arguments,M=this,V=Te,Qr){if(U===e)return Ct(V);if(at)return cd(U),U=Cs(Ut,l),wt(V)}return U===e&&(U=Cs(Ut,l)),k}return Sr.cancel=Nr,Sr.flush=ur,Sr}var gC=kt(function(o,l){return j0(o,1,l)}),vC=kt(function(o,l,m){return j0(o,Ur(l)||0,m)});function yC(o){return Dn(o,I)}function ga(o,l){if(typeof o!="function"||l!=null&&typeof l!="function")throw new Rr(a);var m=function(){var D=arguments,M=l?l.apply(this,D):D[0],T=m.cache;if(T.has(M))return T.get(M);var k=o.apply(this,D);return m.cache=T.set(M,k)||T,k};return m.cache=new(ga.Cache||yn),m}ga.Cache=yn;function va(o){if(typeof o!="function")throw new Rr(a);return function(){var l=arguments;switch(l.length){case 0:return!o.call(this);case 1:return!o.call(this,l[0]);case 2:return!o.call(this,l[0],l[1]);case 3:return!o.call(this,l[0],l[1],l[2])}return!o.apply(this,l)}}function wC(o){return Gd(2,o)}var DC=aE(function(o,l){l=l.length==1&&It(l[0])?Ee(l[0],Cr(At())):Ee(Xe(l,1),Cr(At()));var m=l.length;return kt(function(D){for(var M=-1,T=rr(D.length,m);++M<T;)D[M]=l[M].call(this,D[M]);return Ar(o,this,D)})}),Bl=kt(function(o,l){var m=Un(l,Ji(Bl));return Dn(o,E,e,l,m)}),ep=kt(function(o,l){var m=Un(l,Ji(ep));return Dn(o,C,e,l,m)}),bC=bn(function(o,l){return Dn(o,S,e,e,e,l)});function xC(o,l){if(typeof o!="function")throw new Rr(a);return l=l===e?l:Rt(l),kt(o,l)}function EC(o,l){if(typeof o!="function")throw new Rr(a);return l=l==null?0:je(Rt(l),0),kt(function(m){var D=m[l],M=Hn(m,0,l);return D&&qn(M,D),Ar(o,this,M)})}function AC(o,l,m){var D=!0,M=!0;if(typeof o!="function")throw new Rr(a);return Me(m)&&(D="leading"in m?!!m.leading:D,M="trailing"in m?!!m.trailing:M),tp(o,l,{leading:D,maxWait:l,trailing:M})}function CC(o){return Kd(o,1)}function MC(o,l){return Bl(ml(l),o)}function FC(){if(!arguments.length)return[];var o=arguments[0];return It(o)?o:[o]}function NC(o){return kr(o,g)}function SC(o,l){return l=typeof l=="function"?l:e,kr(o,g,l)}function OC(o){return kr(o,h|g)}function BC(o,l){return l=typeof l=="function"?l:e,kr(o,h|g,l)}function TC(o,l){return l==null||U0(o,l,Ve(l))}function Xr(o,l){return o===l||o!==o&&l!==l}var IC=ca(il),$C=ca(function(o,l){return o>=l}),vi=Z0(function(){return arguments}())?Z0:function(o){return Ne(o)&&le.call(o,"callee")&&!I0.call(o,"callee")},It=G.isArray,LC=_0?Cr(_0):Wx;function dr(o){return o!=null&&ya(o.length)&&!En(o)}function Be(o){return Ne(o)&&dr(o)}function RC(o){return o===!0||o===!1||Ne(o)&&or(o)==ue}var Zn=Jb||jl,PC=m0?Cr(m0):Yx;function kC(o){return Ne(o)&&o.nodeType===1&&!Ms(o)}function zC(o){if(o==null)return!0;if(dr(o)&&(It(o)||typeof o=="string"||typeof o.splice=="function"||Zn(o)||Xi(o)||vi(o)))return!o.length;var l=nr(o);if(l==Xt||l==br)return!o.size;if(As(o))return!al(o).length;for(var m in o)if(le.call(o,m))return!1;return!0}function qC(o,l){return bs(o,l)}function UC(o,l,m){m=typeof m=="function"?m:e;var D=m?m(o,l):e;return D===e?bs(o,l,e,m):!!D}function Tl(o){if(!Ne(o))return!1;var l=or(o);return l==fe||l==St||typeof o.message=="string"&&typeof o.name=="string"&&!Ms(o)}function jC(o){return typeof o=="number"&&L0(o)}function En(o){if(!Me(o))return!1;var l=or(o);return l==ne||l==qt||l==xt||l==Ln}function rp(o){return typeof o=="number"&&o==Rt(o)}function ya(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=W}function Me(o){var l=typeof o;return o!=null&&(l=="object"||l=="function")}function Ne(o){return o!=null&&typeof o=="object"}var np=g0?Cr(g0):Hx;function WC(o,l){return o===l||ol(o,l,xl(l))}function YC(o,l,m){return m=typeof m=="function"?m:e,ol(o,l,xl(l),m)}function VC(o){return ip(o)&&o!=+o}function HC(o){if(SE(o))throw new Bt(s);return K0(o)}function ZC(o){return o===null}function KC(o){return o==null}function ip(o){return typeof o=="number"||Ne(o)&&or(o)==Le}function Ms(o){if(!Ne(o)||or(o)!=ze)return!1;var l=Vo(o);if(l===null)return!0;var m=le.call(l,"constructor")&&l.constructor;return typeof m=="function"&&m instanceof m&&Uo.call(m)==Yb}var Il=v0?Cr(v0):Zx;function GC(o){return rp(o)&&o>=-W&&o<=W}var sp=y0?Cr(y0):Kx;function wa(o){return typeof o=="string"||!It(o)&&Ne(o)&&or(o)==Rn}function Fr(o){return typeof o=="symbol"||Ne(o)&&or(o)==R}var Xi=w0?Cr(w0):Gx;function JC(o){return o===e}function XC(o){return Ne(o)&&nr(o)==K}function QC(o){return Ne(o)&&or(o)==nt}var tM=ca(ul),eM=ca(function(o,l){return o<=l});function op(o){if(!o)return[];if(dr(o))return wa(o)?Gr(o):hr(o);if(ps&&o[ps])return Tb(o[ps]());var l=nr(o),m=l==Xt?Ku:l==br?ko:Qi;return m(o)}function An(o){if(!o)return o===0?o:0;if(o=Ur(o),o===Z||o===-Z){var l=o<0?-1:1;return l*X}return o===o?o:0}function Rt(o){var l=An(o),m=l%1;return l===l?m?l-m:l:0}function ap(o){return o?pi(Rt(o),0,ct):0}function Ur(o){if(typeof o=="number")return o;if(Fr(o))return J;if(Me(o)){var l=typeof o.valueOf=="function"?o.valueOf():o;o=Me(l)?l+"":l}if(typeof o!="string")return o===0?o:+o;o=C0(o);var m=Fu.test(o);return m||Su.test(o)?mb(o.slice(2),m?2:8):Mu.test(o)?J:+o}function up(o){return an(o,pr(o))}function rM(o){return o?pi(Rt(o),-W,W):o===0?o:0}function se(o){return o==null?"":Mr(o)}var nM=Ki(function(o,l){if(As(l)||dr(l)){an(l,Ve(l),o);return}for(var m in l)le.call(l,m)&&ys(o,m,l[m])}),lp=Ki(function(o,l){an(l,pr(l),o)}),Da=Ki(function(o,l,m,D){an(l,pr(l),o,D)}),iM=Ki(function(o,l,m,D){an(l,Ve(l),o,D)}),sM=bn(el);function oM(o,l){var m=Zi(o);return l==null?m:q0(m,l)}var aM=kt(function(o,l){o=pe(o);var m=-1,D=l.length,M=D>2?l[2]:e;for(M&&ar(l[0],l[1],M)&&(D=1);++m<D;)for(var T=l[m],k=pr(T),U=-1,V=k.length;++U<V;){var tt=k[U],et=o[tt];(et===e||Xr(et,Yi[tt])&&!le.call(o,tt))&&(o[tt]=T[tt])}return o}),uM=kt(function(o){return o.push(e,Cd),Ar(cp,e,o)});function lM(o,l){return b0(o,At(l,3),on)}function cM(o,l){return b0(o,At(l,3),nl)}function fM(o,l){return o==null?o:rl(o,At(l,3),pr)}function hM(o,l){return o==null?o:V0(o,At(l,3),pr)}function dM(o,l){return o&&on(o,At(l,3))}function pM(o,l){return o&&nl(o,At(l,3))}function _M(o){return o==null?[]:ra(o,Ve(o))}function mM(o){return o==null?[]:ra(o,pr(o))}function $l(o,l,m){var D=o==null?e:_i(o,l);return D===e?m:D}function gM(o,l){return o!=null&&Nd(o,l,zx)}function Ll(o,l){return o!=null&&Nd(o,l,qx)}var vM=Dd(function(o,l,m){l!=null&&typeof l.toString!="function"&&(l=jo.call(l)),o[l]=m},Pl(_r)),yM=Dd(function(o,l,m){l!=null&&typeof l.toString!="function"&&(l=jo.call(l)),le.call(o,l)?o[l].push(m):o[l]=[m]},At),wM=kt(Ds);function Ve(o){return dr(o)?k0(o):al(o)}function pr(o){return dr(o)?k0(o,!0):Jx(o)}function DM(o,l){var m={};return l=At(l,3),on(o,function(D,M,T){wn(m,l(D,M,T),D)}),m}function bM(o,l){var m={};return l=At(l,3),on(o,function(D,M,T){wn(m,M,l(D,M,T))}),m}var xM=Ki(function(o,l,m){na(o,l,m)}),cp=Ki(function(o,l,m,D){na(o,l,m,D)}),EM=bn(function(o,l){var m={};if(o==null)return m;var D=!1;l=Ee(l,function(T){return T=Vn(T,o),D||(D=T.length>1),T}),an(o,Dl(o),m),D&&(m=kr(m,h|p|g,vE));for(var M=l.length;M--;)dl(m,l[M]);return m});function AM(o,l){return fp(o,va(At(l)))}var CM=bn(function(o,l){return o==null?{}:Qx(o,l)});function fp(o,l){if(o==null)return{};var m=Ee(Dl(o),function(D){return[D]});return l=At(l),rd(o,m,function(D,M){return l(D,M[0])})}function MM(o,l,m){l=Vn(l,o);var D=-1,M=l.length;for(M||(M=1,o=e);++D<M;){var T=o==null?e:o[un(l[D])];T===e&&(D=M,T=m),o=En(T)?T.call(o):T}return o}function FM(o,l,m){return o==null?o:xs(o,l,m)}function NM(o,l,m,D){return D=typeof D=="function"?D:e,o==null?o:xs(o,l,m,D)}var hp=Ed(Ve),dp=Ed(pr);function SM(o,l,m){var D=It(o),M=D||Zn(o)||Xi(o);if(l=At(l,4),m==null){var T=o&&o.constructor;M?m=D?new T:[]:Me(o)?m=En(T)?Zi(Vo(o)):{}:m={}}return(M?Lr:on)(o,function(k,U,V){return l(m,k,U,V)}),m}function OM(o,l){return o==null?!0:dl(o,l)}function BM(o,l,m){return o==null?o:ad(o,l,ml(m))}function TM(o,l,m,D){return D=typeof D=="function"?D:e,o==null?o:ad(o,l,ml(m),D)}function Qi(o){return o==null?[]:Zu(o,Ve(o))}function IM(o){return o==null?[]:Zu(o,pr(o))}function $M(o,l,m){return m===e&&(m=l,l=e),m!==e&&(m=Ur(m),m=m===m?m:0),l!==e&&(l=Ur(l),l=l===l?l:0),pi(Ur(o),l,m)}function LM(o,l,m){return l=An(l),m===e?(m=l,l=0):m=An(m),o=Ur(o),Ux(o,l,m)}function RM(o,l,m){if(m&&typeof m!="boolean"&&ar(o,l,m)&&(l=m=e),m===e&&(typeof l=="boolean"?(m=l,l=e):typeof o=="boolean"&&(m=o,o=e)),o===e&&l===e?(o=0,l=1):(o=An(o),l===e?(l=o,o=0):l=An(l)),o>l){var D=o;o=l,l=D}if(m||o%1||l%1){var M=R0();return rr(o+M*(l-o+_b("1e-"+((M+"").length-1))),l)}return cl(o,l)}var PM=Gi(function(o,l,m){return l=l.toLowerCase(),o+(m?pp(l):l)});function pp(o){return Rl(se(o).toLowerCase())}function _p(o){return o=se(o),o&&o.replace(Bu,Fb).replace(sb,"")}function kM(o,l,m){o=se(o),l=Mr(l);var D=o.length;m=m===e?D:pi(Rt(m),0,D);var M=m;return m-=l.length,m>=0&&o.slice(m,M)==l}function zM(o){return o=se(o),o&&hu.test(o)?o.replace(Bo,Nb):o}function qM(o){return o=se(o),o&&vu.test(o)?o.replace(fs,"\\$&"):o}var UM=Gi(function(o,l,m){return o+(m?"-":"")+l.toLowerCase()}),jM=Gi(function(o,l,m){return o+(m?" ":"")+l.toLowerCase()}),WM=vd("toLowerCase");function YM(o,l,m){o=se(o),l=Rt(l);var D=l?ji(o):0;if(!l||D>=l)return o;var M=(l-D)/2;return la(Go(M),m)+o+la(Ko(M),m)}function VM(o,l,m){o=se(o),l=Rt(l);var D=l?ji(o):0;return l&&D<l?o+la(l-D,m):o}function HM(o,l,m){o=se(o),l=Rt(l);var D=l?ji(o):0;return l&&D<l?la(l-D,m)+o:o}function ZM(o,l,m){return m||l==null?l=0:l&&(l=+l),ex(se(o).replace(hs,""),l||0)}function KM(o,l,m){return(m?ar(o,l,m):l===e)?l=1:l=Rt(l),fl(se(o),l)}function GM(){var o=arguments,l=se(o[0]);return o.length<3?l:l.replace(o[1],o[2])}var JM=Gi(function(o,l,m){return o+(m?"_":"")+l.toLowerCase()});function XM(o,l,m){return m&&typeof m!="number"&&ar(o,l,m)&&(l=m=e),m=m===e?ct:m>>>0,m?(o=se(o),o&&(typeof l=="string"||l!=null&&!Il(l))&&(l=Mr(l),!l&&Ui(o))?Hn(Gr(o),0,m):o.split(l,m)):[]}var QM=Gi(function(o,l,m){return o+(m?" ":"")+Rl(l)});function t2(o,l,m){return o=se(o),m=m==null?0:pi(Rt(m),0,o.length),l=Mr(l),o.slice(m,m+l.length)==l}function e2(o,l,m){var D=B.templateSettings;m&&ar(o,l,m)&&(l=e),o=se(o),l=Da({},l,D,Ad);var M=Da({},l.imports,D.imports,Ad),T=Ve(M),k=Zu(M,T),U,V,tt=0,et=l.interpolate||Pi,at="__p += '",pt=Gu((l.escape||Pi).source+"|"+et.source+"|"+(et===To?Cu:Pi).source+"|"+(l.evaluate||Pi).source+"|$","g"),wt="//# sourceURL="+(le.call(l,"sourceURL")?(l.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++cb+"]")+`
11
11
  `;o.replace(pt,function(Mt,Ut,Ht,Nr,ur,Sr){return Ht||(Ht=Nr),at+=o.slice(tt,Sr).replace(li,Sb),Ut&&(U=!0,at+=`' +
12
12
  __e(`+Ut+`) +
13
13
  '`),ur&&(V=!0,at+=`';
@@ -24,7 +24,7 @@ __p += '`),Ht&&(at+=`' +
24
24
  function print() { __p += __j.call(arguments, '') }
25
25
  `:`;
26
26
  `)+at+`return __p
27
- }`;var Pt=gp(function(){return ee(T,wt+"return "+at).apply(e,k)});if(Pt.source=at,Tl(Pt))throw Pt;return Pt}function r2(o){return se(o).toLowerCase()}function n2(o){return se(o).toUpperCase()}function i2(o,l,m){if(o=se(o),o&&(m||l===e))return C0(o);if(!o||!(l=Mr(l)))return o;var D=Kr(o),M=Kr(l),T=M0(D,M),k=F0(D,M)+1;return Hn(D,T,k).join("")}function s2(o,l,m){if(o=se(o),o&&(m||l===e))return o.slice(0,S0(o)+1);if(!o||!(l=Mr(l)))return o;var D=Kr(o),M=F0(D,Kr(l))+1;return Hn(D,0,M).join("")}function o2(o,l,m){if(o=se(o),o&&(m||l===e))return o.replace(hs,"");if(!o||!(l=Mr(l)))return o;var D=Kr(o),M=M0(D,Kr(l));return Hn(D,M).join("")}function a2(o,l){var m=A,D=O;if(Me(l)){var M="separator"in l?l.separator:M;m="length"in l?Rt(l.length):m,D="omission"in l?Mr(l.omission):D}o=se(o);var T=o.length;if(Ui(o)){var k=Kr(o);T=k.length}if(m>=T)return o;var U=m-ji(D);if(U<1)return D;var V=k?Hn(k,0,U).join(""):o.slice(0,U);if(M===e)return V+D;if(k&&(U+=V.length-U),Il(M)){if(o.slice(U).search(M)){var tt,et=V;for(M.global||(M=Gu(M.source,se(Io.exec(M))+"g")),M.lastIndex=0;tt=M.exec(et);)var at=tt.index;V=V.slice(0,at===e?U:at)}}else if(o.indexOf(Mr(M),U)!=U){var pt=V.lastIndexOf(M);pt>-1&&(V=V.slice(0,pt))}return V+D}function u2(o){return o=se(o),o&&fu.test(o)?o.replace(ui,Rb):o}var l2=Gi(function(o,l,m){return o+(m?" ":"")+l.toUpperCase()}),Rl=vd("toUpperCase");function mp(o,l,m){return o=se(o),l=m?e:l,l===e?Bb(o)?zb(o):xb(o):o.match(l)||[]}var gp=kt(function(o,l){try{return Ar(o,e,l)}catch(m){return Tl(m)?m:new Bt(m)}}),c2=bn(function(o,l){return Lr(l,function(m){m=un(m),wn(o,m,Ol(o[m],o))}),o});function f2(o){var l=o==null?0:o.length,m=At();return o=l?Ee(o,function(D){if(typeof D[1]!="function")throw new Rr(a);return[m(D[0]),D[1]]}):[],kt(function(D){for(var M=-1;++M<l;){var T=o[M];if(Ar(T[0],this,D))return Ar(T[1],this,D)}})}function h2(o){return Rx(kr(o,h))}function Pl(o){return function(){return o}}function d2(o,l){return o==null||o!==o?l:o}var p2=wd(),_2=wd(!0);function _r(o){return o}function kl(o){return G0(typeof o=="function"?o:kr(o,h))}function m2(o){return X0(kr(o,h))}function g2(o,l){return Q0(o,kr(l,h))}var v2=kt(function(o,l){return function(m){return Ds(m,o,l)}}),y2=kt(function(o,l){return function(m){return Ds(o,m,l)}});function zl(o,l,m){var D=Ve(l),M=ra(l,D);m==null&&!(Me(l)&&(M.length||!D.length))&&(m=l,l=o,o=this,M=ra(l,Ve(l)));var T=!(Me(m)&&"chain"in m)||!!m.chain,k=En(o);return Lr(M,function(U){var V=l[U];o[U]=V,k&&(o.prototype[U]=function(){var tt=this.__chain__;if(T||tt){var et=o(this.__wrapped__),at=et.__actions__=hr(this.__actions__);return at.push({func:V,args:arguments,thisArg:o}),et.__chain__=tt,et}return V.apply(o,qn([this.value()],arguments))})}),o}function w2(){return Je._===this&&(Je._=Vb),this}function ql(){}function D2(o){return o=Rt(o),kt(function(l){return td(l,o)})}var b2=vl(Ee),x2=vl(D0),E2=vl(ju);function vp(o){return Al(o)?Wu(un(o)):tE(o)}function A2(o){return function(l){return o==null?e:_i(o,l)}}var C2=bd(),M2=bd(!0);function Ul(){return[]}function jl(){return!1}function F2(){return{}}function N2(){return""}function S2(){return!0}function O2(o,l){if(o=Rt(o),o<1||o>W)return[];var m=ct,D=rr(o,ct);l=At(l),o-=ct;for(var M=Hu(D,l);++m<o;)l(m);return M}function B2(o){return It(o)?Ee(o,un):Fr(o)?[o]:hr(Pd(se(o)))}function T2(o){var l=++Wb;return se(o)+l}var I2=ua(function(o,l){return o+l},0),$2=yl("ceil"),L2=ua(function(o,l){return o/l},1),R2=yl("floor");function P2(o){return o&&o.length?ea(o,_r,il):e}function k2(o,l){return o&&o.length?ea(o,At(l,2),il):e}function z2(o){return E0(o,_r)}function q2(o,l){return E0(o,At(l,2))}function U2(o){return o&&o.length?ea(o,_r,ul):e}function j2(o,l){return o&&o.length?ea(o,At(l,2),ul):e}var W2=ua(function(o,l){return o*l},1),Y2=yl("round"),V2=ua(function(o,l){return o-l},0);function H2(o){return o&&o.length?Vu(o,_r):0}function Z2(o,l){return o&&o.length?Vu(o,At(l,2)):0}return B.after=mC,B.ary=Kd,B.assign=nM,B.assignIn=lp,B.assignInWith=Da,B.assignWith=iM,B.at=sM,B.before=Gd,B.bind=Ol,B.bindAll=c2,B.bindKey=Jd,B.castArray=FC,B.chain=Vd,B.chunk=RE,B.compact=PE,B.concat=kE,B.cond=f2,B.conforms=h2,B.constant=Pl,B.countBy=HA,B.create=oM,B.curry=Xd,B.curryRight=Qd,B.debounce=tp,B.defaults=aM,B.defaultsDeep=uM,B.defer=gC,B.delay=vC,B.difference=zE,B.differenceBy=qE,B.differenceWith=UE,B.drop=jE,B.dropRight=WE,B.dropRightWhile=YE,B.dropWhile=VE,B.fill=HE,B.filter=KA,B.flatMap=XA,B.flatMapDeep=QA,B.flatMapDepth=tC,B.flatten=Ud,B.flattenDeep=ZE,B.flattenDepth=KE,B.flip=yC,B.flow=p2,B.flowRight=_2,B.fromPairs=GE,B.functions=_M,B.functionsIn=mM,B.groupBy=eC,B.initial=XE,B.intersection=QE,B.intersectionBy=tA,B.intersectionWith=eA,B.invert=vM,B.invertBy=yM,B.invokeMap=nC,B.iteratee=kl,B.keyBy=iC,B.keys=Ve,B.keysIn=pr,B.map=_a,B.mapKeys=DM,B.mapValues=bM,B.matches=m2,B.matchesProperty=g2,B.memoize=ga,B.merge=xM,B.mergeWith=cp,B.method=v2,B.methodOf=y2,B.mixin=zl,B.negate=va,B.nthArg=D2,B.omit=EM,B.omitBy=AM,B.once=wC,B.orderBy=sC,B.over=b2,B.overArgs=DC,B.overEvery=x2,B.overSome=E2,B.partial=Bl,B.partialRight=ep,B.partition=oC,B.pick=CM,B.pickBy=fp,B.property=vp,B.propertyOf=A2,B.pull=sA,B.pullAll=Wd,B.pullAllBy=oA,B.pullAllWith=aA,B.pullAt=uA,B.range=C2,B.rangeRight=M2,B.rearg=bC,B.reject=lC,B.remove=lA,B.rest=xC,B.reverse=Nl,B.sampleSize=fC,B.set=FM,B.setWith=NM,B.shuffle=hC,B.slice=cA,B.sortBy=_C,B.sortedUniq=gA,B.sortedUniqBy=vA,B.split=XM,B.spread=EC,B.tail=yA,B.take=wA,B.takeRight=DA,B.takeRightWhile=bA,B.takeWhile=xA,B.tap=PA,B.throttle=AC,B.thru=pa,B.toArray=op,B.toPairs=hp,B.toPairsIn=dp,B.toPath=B2,B.toPlainObject=up,B.transform=SM,B.unary=CC,B.union=EA,B.unionBy=AA,B.unionWith=CA,B.uniq=MA,B.uniqBy=FA,B.uniqWith=NA,B.unset=OM,B.unzip=Sl,B.unzipWith=Yd,B.update=BM,B.updateWith=TM,B.values=Qi,B.valuesIn=IM,B.without=SA,B.words=mp,B.wrap=MC,B.xor=OA,B.xorBy=BA,B.xorWith=TA,B.zip=IA,B.zipObject=$A,B.zipObjectDeep=LA,B.zipWith=RA,B.entries=hp,B.entriesIn=dp,B.extend=lp,B.extendWith=Da,zl(B,B),B.add=I2,B.attempt=gp,B.camelCase=PM,B.capitalize=pp,B.ceil=$2,B.clamp=$M,B.clone=NC,B.cloneDeep=OC,B.cloneDeepWith=BC,B.cloneWith=SC,B.conformsTo=TC,B.deburr=_p,B.defaultTo=d2,B.divide=L2,B.endsWith=kM,B.eq=Jr,B.escape=zM,B.escapeRegExp=qM,B.every=ZA,B.find=GA,B.findIndex=zd,B.findKey=lM,B.findLast=JA,B.findLastIndex=qd,B.findLastKey=cM,B.floor=R2,B.forEach=Hd,B.forEachRight=Zd,B.forIn=fM,B.forInRight=hM,B.forOwn=dM,B.forOwnRight=pM,B.get=$l,B.gt=IC,B.gte=$C,B.has=gM,B.hasIn=Ll,B.head=jd,B.identity=_r,B.includes=rC,B.indexOf=JE,B.inRange=LM,B.invoke=wM,B.isArguments=vi,B.isArray=It,B.isArrayBuffer=LC,B.isArrayLike=dr,B.isArrayLikeObject=Be,B.isBoolean=RC,B.isBuffer=Zn,B.isDate=PC,B.isElement=kC,B.isEmpty=zC,B.isEqual=qC,B.isEqualWith=UC,B.isError=Tl,B.isFinite=jC,B.isFunction=En,B.isInteger=rp,B.isLength=ya,B.isMap=np,B.isMatch=WC,B.isMatchWith=YC,B.isNaN=VC,B.isNative=HC,B.isNil=KC,B.isNull=ZC,B.isNumber=ip,B.isObject=Me,B.isObjectLike=Ne,B.isPlainObject=Ms,B.isRegExp=Il,B.isSafeInteger=GC,B.isSet=sp,B.isString=wa,B.isSymbol=Fr,B.isTypedArray=Xi,B.isUndefined=JC,B.isWeakMap=XC,B.isWeakSet=QC,B.join=rA,B.kebabCase=UM,B.last=qr,B.lastIndexOf=nA,B.lowerCase=jM,B.lowerFirst=WM,B.lt=tM,B.lte=eM,B.max=P2,B.maxBy=k2,B.mean=z2,B.meanBy=q2,B.min=U2,B.minBy=j2,B.stubArray=Ul,B.stubFalse=jl,B.stubObject=F2,B.stubString=N2,B.stubTrue=S2,B.multiply=W2,B.nth=iA,B.noConflict=w2,B.noop=ql,B.now=ma,B.pad=YM,B.padEnd=VM,B.padStart=HM,B.parseInt=ZM,B.random=RM,B.reduce=aC,B.reduceRight=uC,B.repeat=KM,B.replace=GM,B.result=MM,B.round=Y2,B.runInContext=Y,B.sample=cC,B.size=dC,B.snakeCase=JM,B.some=pC,B.sortedIndex=fA,B.sortedIndexBy=hA,B.sortedIndexOf=dA,B.sortedLastIndex=pA,B.sortedLastIndexBy=_A,B.sortedLastIndexOf=mA,B.startCase=QM,B.startsWith=t2,B.subtract=V2,B.sum=H2,B.sumBy=Z2,B.template=e2,B.times=O2,B.toFinite=An,B.toInteger=Rt,B.toLength=ap,B.toLower=r2,B.toNumber=Ur,B.toSafeInteger=rM,B.toString=se,B.toUpper=n2,B.trim=i2,B.trimEnd=s2,B.trimStart=o2,B.truncate=a2,B.unescape=u2,B.uniqueId=T2,B.upperCase=l2,B.upperFirst=Rl,B.each=Hd,B.eachRight=Zd,B.first=jd,zl(B,function(){var o={};return on(B,function(l,m){le.call(B.prototype,m)||(o[m]=l)}),o}(),{chain:!1}),B.VERSION=r,Lr(["bind","bindKey","curry","curryRight","partial","partialRight"],function(o){B[o].placeholder=B}),Lr(["drop","take"],function(o,l){Yt.prototype[o]=function(m){m=m===e?1:je(Rt(m),0);var D=this.__filtered__&&!l?new Yt(this):this.clone();return D.__filtered__?D.__takeCount__=rr(m,D.__takeCount__):D.__views__.push({size:rr(m,ct),type:o+(D.__dir__<0?"Right":"")}),D},Yt.prototype[o+"Right"]=function(m){return this.reverse()[o](m).reverse()}}),Lr(["filter","map","takeWhile"],function(o,l){var m=l+1,D=m==q||m==P;Yt.prototype[o]=function(M){var T=this.clone();return T.__iteratees__.push({iteratee:At(M,3),type:m}),T.__filtered__=T.__filtered__||D,T}}),Lr(["head","last"],function(o,l){var m="take"+(l?"Right":"");Yt.prototype[o]=function(){return this[m](1).value()[0]}}),Lr(["initial","tail"],function(o,l){var m="drop"+(l?"":"Right");Yt.prototype[o]=function(){return this.__filtered__?new Yt(this):this[m](1)}}),Yt.prototype.compact=function(){return this.filter(_r)},Yt.prototype.find=function(o){return this.filter(o).head()},Yt.prototype.findLast=function(o){return this.reverse().find(o)},Yt.prototype.invokeMap=kt(function(o,l){return typeof o=="function"?new Yt(this):this.map(function(m){return Ds(m,o,l)})}),Yt.prototype.reject=function(o){return this.filter(va(At(o)))},Yt.prototype.slice=function(o,l){o=Rt(o);var m=this;return m.__filtered__&&(o>0||l<0)?new Yt(m):(o<0?m=m.takeRight(-o):o&&(m=m.drop(o)),l!==e&&(l=Rt(l),m=l<0?m.dropRight(-l):m.take(l-o)),m)},Yt.prototype.takeRightWhile=function(o){return this.reverse().takeWhile(o).reverse()},Yt.prototype.toArray=function(){return this.take(ct)},on(Yt.prototype,function(o,l){var m=/^(?:filter|find|map|reject)|While$/.test(l),D=/^(?:head|last)$/.test(l),M=B[D?"take"+(l=="last"?"Right":""):l],T=D||/^find/.test(l);M&&(B.prototype[l]=function(){var k=this.__wrapped__,U=D?[1]:arguments,V=k instanceof Yt,tt=U[0],et=V||It(k),at=function(Ut){var Ht=M.apply(B,qn([Ut],U));return D&&pt?Ht[0]:Ht};et&&m&&typeof tt=="function"&&tt.length!=1&&(V=et=!1);var pt=this.__chain__,wt=!!this.__actions__.length,Ct=T&&!pt,Pt=V&&!wt;if(!T&&et){k=Pt?k:new Yt(this);var Mt=o.apply(k,U);return Mt.__actions__.push({func:pa,args:[at],thisArg:e}),new Pr(Mt,pt)}return Ct&&Pt?o.apply(this,U):(Mt=this.thru(at),Ct?D?Mt.value()[0]:Mt.value():Mt)})}),Lr(["pop","push","shift","sort","splice","unshift"],function(o){var l=zo[o],m=/^(?:push|sort|unshift)$/.test(o)?"tap":"thru",D=/^(?:pop|shift)$/.test(o);B.prototype[o]=function(){var M=arguments;if(D&&!this.__chain__){var T=this.value();return l.apply(It(T)?T:[],M)}return this[m](function(k){return l.apply(It(k)?k:[],M)})}}),on(Yt.prototype,function(o,l){var m=B[l];if(m){var D=m.name+"";le.call(Hi,D)||(Hi[D]=[]),Hi[D].push({name:l,func:m})}}),Hi[aa(e,v).name]=[{name:"wrapper",func:e}],Yt.prototype.clone=ux,Yt.prototype.reverse=lx,Yt.prototype.value=cx,B.prototype.at=kA,B.prototype.chain=zA,B.prototype.commit=qA,B.prototype.next=UA,B.prototype.plant=WA,B.prototype.reverse=YA,B.prototype.toJSON=B.prototype.valueOf=B.prototype.value=VA,B.prototype.first=B.prototype.head,ps&&(B.prototype[ps]=jA),B},Wi=qb();ci?((ci.exports=Wi)._=Wi,ku._=Wi):Je._=Wi}).call(Vt)}(Kn,Kn.exports);var tn=Kn.exports;class wp{constructor(t,e){$(this,"_defaultParams");$(this,"_UserTypeFileds");$(this,"_varipKeys");this._defaultParams=t,this._UserTypeFileds=this._createDynamicClass(),this._varipKeys=e}copy(t){return tn.cloneDeep(t)}new(t={}){return new this._UserTypeFileds(Object.assign(tn.cloneDeep(this._defaultParams),t),this._varipKeys)}addNewMethod(t,e){this._UserTypeFileds.prototype[t]=e}_createDynamicClass(){return class{constructor(t,e){$(this,"_varipKeys");Object.assign(this,t),this._varipKeys=e}get varipKeys(){return[...this._varipKeys]}copy(){return tn.cloneDeep(this)}}}}var Zl={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){var e=1e3,r=6e4,n=36e5,s="millisecond",a="second",u="minute",c="hour",f="day",d="week",h="month",p="quarter",g="year",y="date",_="Invalid Date",w=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,v=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,x={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(q){var j=["th","st","nd","rd"],P=q%100;return"["+q+(j[(P-20)%10]||j[P]||j[0])+"]"}},b=function(q,j,P){var Z=String(q);return!Z||Z.length>=j?q:""+Array(j+1-Z.length).join(P)+q},N={s:b,z:function(q){var j=-q.utcOffset(),P=Math.abs(j),Z=Math.floor(P/60),W=P%60;return(j<=0?"+":"-")+b(Z,2,"0")+":"+b(W,2,"0")},m:function q(j,P){if(j.date()<P.date())return-q(P,j);var Z=12*(P.year()-j.year())+(P.month()-j.month()),W=j.clone().add(Z,h),X=P-W<0,J=j.clone().add(Z+(X?-1:1),h);return+(-(Z+(P-W)/(X?W-J:J-W))||0)},a:function(q){return q<0?Math.ceil(q)||0:Math.floor(q)},p:function(q){return{M:h,y:g,w:d,d:f,D:y,h:c,m:u,s:a,ms:s,Q:p}[q]||String(q||"").toLowerCase().replace(/s$/,"")},u:function(q){return q===void 0}},E="en",C={};C[E]=x;var F="$isDayjsObject",S=function(q){return q instanceof L||!(!q||!q[F])},I=function q(j,P,Z){var W;if(!j)return E;if(typeof j=="string"){var X=j.toLowerCase();C[X]&&(W=X),P&&(C[X]=P,W=X);var J=j.split("-");if(!W&&J.length>1)return q(J[0])}else{var ct=j.name;C[ct]=j,W=ct}return!Z&&W&&(E=W),W||!Z&&E},A=function(q,j){if(S(q))return q.clone();var P=typeof j=="object"?j:{};return P.date=q,P.args=arguments,new L(P)},O=N;O.l=I,O.i=S,O.w=function(q,j){return A(q,{locale:j.$L,utc:j.$u,x:j.$x,$offset:j.$offset})};var L=function(){function q(P){this.$L=I(P.locale,null,!0),this.parse(P),this.$x=this.$x||P.x||{},this[F]=!0}var j=q.prototype;return j.parse=function(P){this.$d=function(Z){var W=Z.date,X=Z.utc;if(W===null)return new Date(NaN);if(O.u(W))return new Date;if(W instanceof Date)return new Date(W);if(typeof W=="string"&&!/Z$/i.test(W)){var J=W.match(w);if(J){var ct=J[2]-1||0,gt=(J[7]||"0").substring(0,3);return X?new Date(Date.UTC(J[1],ct,J[3]||1,J[4]||0,J[5]||0,J[6]||0,gt)):new Date(J[1],ct,J[3]||1,J[4]||0,J[5]||0,J[6]||0,gt)}}return new Date(W)}(P),this.init()},j.init=function(){var P=this.$d;this.$y=P.getFullYear(),this.$M=P.getMonth(),this.$D=P.getDate(),this.$W=P.getDay(),this.$H=P.getHours(),this.$m=P.getMinutes(),this.$s=P.getSeconds(),this.$ms=P.getMilliseconds()},j.$utils=function(){return O},j.isValid=function(){return this.$d.toString()!==_},j.isSame=function(P,Z){var W=A(P);return this.startOf(Z)<=W&&W<=this.endOf(Z)},j.isAfter=function(P,Z){return A(P)<this.startOf(Z)},j.isBefore=function(P,Z){return this.endOf(Z)<A(P)},j.$g=function(P,Z,W){return O.u(P)?this[Z]:this.set(W,P)},j.unix=function(){return Math.floor(this.valueOf()/1e3)},j.valueOf=function(){return this.$d.getTime()},j.startOf=function(P,Z){var W=this,X=!!O.u(Z)||Z,J=O.p(P),ct=function(Tt,St){var fe=O.w(W.$u?Date.UTC(W.$y,St,Tt):new Date(W.$y,St,Tt),W);return X?fe:fe.endOf(f)},gt=function(Tt,St){return O.w(W.toDate()[Tt].apply(W.toDate("s"),(X?[0,0,0,0]:[23,59,59,999]).slice(St)),W)},st=this.$W,yt=this.$M,Dt=this.$D,Nt="set"+(this.$u?"UTC":"");switch(J){case g:return X?ct(1,0):ct(31,11);case h:return X?ct(1,yt):ct(0,yt+1);case d:var xt=this.$locale().weekStart||0,ue=(st<xt?st+7:st)-xt;return ct(X?Dt-ue:Dt+(6-ue),yt);case f:case y:return gt(Nt+"Hours",0);case c:return gt(Nt+"Minutes",1);case u:return gt(Nt+"Seconds",2);case a:return gt(Nt+"Milliseconds",3);default:return this.clone()}},j.endOf=function(P){return this.startOf(P,!1)},j.$set=function(P,Z){var W,X=O.p(P),J="set"+(this.$u?"UTC":""),ct=(W={},W[f]=J+"Date",W[y]=J+"Date",W[h]=J+"Month",W[g]=J+"FullYear",W[c]=J+"Hours",W[u]=J+"Minutes",W[a]=J+"Seconds",W[s]=J+"Milliseconds",W)[X],gt=X===f?this.$D+(Z-this.$W):Z;if(X===h||X===g){var st=this.clone().set(y,1);st.$d[ct](gt),st.init(),this.$d=st.set(y,Math.min(this.$D,st.daysInMonth())).$d}else ct&&this.$d[ct](gt);return this.init(),this},j.set=function(P,Z){return this.clone().$set(P,Z)},j.get=function(P){return this[O.p(P)]()},j.add=function(P,Z){var W,X=this;P=Number(P);var J=O.p(Z),ct=function(yt){var Dt=A(X);return O.w(Dt.date(Dt.date()+Math.round(yt*P)),X)};if(J===h)return this.set(h,this.$M+P);if(J===g)return this.set(g,this.$y+P);if(J===f)return ct(1);if(J===d)return ct(7);var gt=(W={},W[u]=r,W[c]=n,W[a]=e,W)[J]||1,st=this.$d.getTime()+P*gt;return O.w(st,this)},j.subtract=function(P,Z){return this.add(-1*P,Z)},j.format=function(P){var Z=this,W=this.$locale();if(!this.isValid())return W.invalidDate||_;var X=P||"YYYY-MM-DDTHH:mm:ssZ",J=O.z(this),ct=this.$H,gt=this.$m,st=this.$M,yt=W.weekdays,Dt=W.months,Nt=W.meridiem,xt=function(St,fe,ne,qt){return St&&(St[fe]||St(Z,X))||ne[fe].slice(0,qt)},ue=function(St){return O.s(ct%12||12,St,"0")},Tt=Nt||function(St,fe,ne){var qt=St<12?"AM":"PM";return ne?qt.toLowerCase():qt};return X.replace(v,function(St,fe){return fe||function(ne){switch(ne){case"YY":return String(Z.$y).slice(-2);case"YYYY":return O.s(Z.$y,4,"0");case"M":return st+1;case"MM":return O.s(st+1,2,"0");case"MMM":return xt(W.monthsShort,st,Dt,3);case"MMMM":return xt(Dt,st);case"D":return Z.$D;case"DD":return O.s(Z.$D,2,"0");case"d":return String(Z.$W);case"dd":return xt(W.weekdaysMin,Z.$W,yt,2);case"ddd":return xt(W.weekdaysShort,Z.$W,yt,3);case"dddd":return yt[Z.$W];case"H":return String(ct);case"HH":return O.s(ct,2,"0");case"h":return ue(1);case"hh":return ue(2);case"a":return Tt(ct,gt,!0);case"A":return Tt(ct,gt,!1);case"m":return String(gt);case"mm":return O.s(gt,2,"0");case"s":return String(Z.$s);case"ss":return O.s(Z.$s,2,"0");case"SSS":return O.s(Z.$ms,3,"0");case"Z":return J}return null}(St)||J.replace(":","")})},j.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},j.diff=function(P,Z,W){var X,J=this,ct=O.p(Z),gt=A(P),st=(gt.utcOffset()-this.utcOffset())*r,yt=this-gt,Dt=function(){return O.m(J,gt)};switch(ct){case g:X=Dt()/12;break;case h:X=Dt();break;case p:X=Dt()/3;break;case d:X=(yt-st)/6048e5;break;case f:X=(yt-st)/864e5;break;case c:X=yt/n;break;case u:X=yt/r;break;case a:X=yt/e;break;default:X=yt}return W?X:O.a(X)},j.daysInMonth=function(){return this.endOf(h).$D},j.$locale=function(){return C[this.$L]},j.locale=function(P,Z){if(!P)return this.$L;var W=this.clone(),X=I(P,Z,!0);return X&&(W.$L=X),W},j.clone=function(){return O.w(this.$d,this)},j.toDate=function(){return new Date(this.valueOf())},j.toJSON=function(){return this.isValid()?this.toISOString():null},j.toISOString=function(){return this.$d.toISOString()},j.toString=function(){return this.$d.toUTCString()},q}(),z=L.prototype;return A.prototype=z,[["$ms",s],["$s",a],["$m",u],["$H",c],["$W",f],["$M",h],["$y",g],["$D",y]].forEach(function(q){z[q[1]]=function(j){return this.$g(j,q[0],q[1])}}),A.extend=function(q,j){return q.$i||(q(j,L,A),q.$i=!0),A},A.locale=I,A.isDayjs=S,A.unix=function(q){return A(1e3*q)},A.en=C[E],A.Ls=C,A.p={},A})})(Zl);var Dp=Zl.exports,jt=Kt(Dp),Kl={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){var e="minute",r=/[+-]\d\d(?::?\d\d)?/g,n=/([+-]|\d\d)/g;return function(s,a,u){var c=a.prototype;u.utc=function(_){var w={date:_,utc:!0,args:arguments};return new a(w)},c.utc=function(_){var w=u(this.toDate(),{locale:this.$L,utc:!0});return _?w.add(this.utcOffset(),e):w},c.local=function(){return u(this.toDate(),{locale:this.$L,utc:!1})};var f=c.parse;c.parse=function(_){_.utc&&(this.$u=!0),this.$utils().u(_.$offset)||(this.$offset=_.$offset),f.call(this,_)};var d=c.init;c.init=function(){if(this.$u){var _=this.$d;this.$y=_.getUTCFullYear(),this.$M=_.getUTCMonth(),this.$D=_.getUTCDate(),this.$W=_.getUTCDay(),this.$H=_.getUTCHours(),this.$m=_.getUTCMinutes(),this.$s=_.getUTCSeconds(),this.$ms=_.getUTCMilliseconds()}else d.call(this)};var h=c.utcOffset;c.utcOffset=function(_,w){var v=this.$utils().u;if(v(_))return this.$u?0:v(this.$offset)?h.call(this):this.$offset;if(typeof _=="string"&&(_=function(E){E===void 0&&(E="");var C=E.match(r);if(!C)return null;var F=(""+C[0]).match(n)||["-",0,0],S=F[0],I=60*+F[1]+ +F[2];return I===0?0:S==="+"?I:-I}(_),_===null))return this;var x=Math.abs(_)<=16?60*_:_,b=this;if(w)return b.$offset=x,b.$u=_===0,b;if(_!==0){var N=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(b=this.local().add(x+N,e)).$offset=x,b.$x.$localOffset=N}else b=this.utc();return b};var p=c.format;c.format=function(_){var w=_||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return p.call(this,w)},c.valueOf=function(){var _=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*_},c.isUTC=function(){return!!this.$u},c.toISOString=function(){return this.toDate().toISOString()},c.toString=function(){return this.toDate().toUTCString()};var g=c.toDate;c.toDate=function(_){return _==="s"&&this.$offset?u(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():g.call(this)};var y=c.diff;c.diff=function(_,w,v){if(_&&this.$u===_.$u)return y.call(this,_,w,v);var x=this.local(),b=u(_).local();return y.call(x,b,w,v)}}})})(Kl);var bp=Kl.exports,xa=Kt(bp),Gl={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){var e={year:0,month:1,day:2,hour:3,minute:4,second:5},r={};return function(n,s,a){var u,c=function(p,g,y){y===void 0&&(y={});var _=new Date(p),w=function(v,x){x===void 0&&(x={});var b=x.timeZoneName||"short",N=v+"|"+b,E=r[N];return E||(E=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:v,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:b}),r[N]=E),E}(g,y);return w.formatToParts(_)},f=function(p,g){for(var y=c(p,g),_=[],w=0;w<y.length;w+=1){var v=y[w],x=v.type,b=v.value,N=e[x];N>=0&&(_[N]=parseInt(b,10))}var E=_[3],C=E===24?0:E,F=_[0]+"-"+_[1]+"-"+_[2]+" "+C+":"+_[4]+":"+_[5]+":000",S=+p;return(a.utc(F).valueOf()-(S-=S%1e3))/6e4},d=s.prototype;d.tz=function(p,g){p===void 0&&(p=u);var y=this.utcOffset(),_=this.toDate(),w=_.toLocaleString("en-US",{timeZone:p}),v=Math.round((_-new Date(w))/1e3/60),x=a(w,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(15*-Math.round(_.getTimezoneOffset()/15)-v,!0);if(g){var b=x.utcOffset();x=x.add(y-b,"minute")}return x.$x.$timezone=p,x},d.offsetName=function(p){var g=this.$x.$timezone||a.tz.guess(),y=c(this.valueOf(),g,{timeZoneName:p}).find(function(_){return _.type.toLowerCase()==="timezonename"});return y&&y.value};var h=d.startOf;d.startOf=function(p,g){if(!this.$x||!this.$x.$timezone)return h.call(this,p,g);var y=a(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return h.call(y,p,g).tz(this.$x.$timezone,!0)},a.tz=function(p,g,y){var _=y&&g,w=y||g||u,v=f(+a(),w);if(typeof p!="string")return a(p).tz(w);var x=function(C,F,S){var I=C-60*F*1e3,A=f(I,S);if(F===A)return[I,F];var O=f(I-=60*(A-F)*1e3,S);return A===O?[I,A]:[C-60*Math.min(A,O)*1e3,Math.max(A,O)]}(a.utc(p,_).valueOf(),v,w),b=x[0],N=x[1],E=a(b).utcOffset(N);return E.$x.$timezone=w,E},a.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},a.tz.setDefault=function(p){u=p}}})})(Gl);var xp=Gl.exports,Ea=Kt(xp),Jl={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){var e="week",r="year";return function(n,s,a){var u=s.prototype;u.week=function(c){if(c===void 0&&(c=null),c!==null)return this.add(7*(c-this.week()),"day");var f=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var d=a(this).startOf(r).add(1,r).date(f),h=a(this).endOf(e);if(d.isBefore(h))return 1}var p=a(this).startOf(r).date(f).startOf(e).subtract(1,"millisecond"),g=this.diff(p,e,!0);return g<0?a(this).startOf("week").week():Math.ceil(g)},u.weeks=function(c){return c===void 0&&(c=null),this.week(c)}}})})(Jl);var Ep=Jl.exports,Ap=Kt(Ep);jt.extend(xa),jt.extend(Ea);function He(i,t){return i.replace(/\$(\w+)/g,(e,r)=>String(t[r])||e)}function Fs(i){const t=parseInt(i)||1;let e=i.replace(/\d+/,"");return e==="m"||e==="M"?e="M":e?e=e.toLocaleLowerCase():e="m",[t,e]}function Cp(i){const t=/([+-])(\d{1,2})(\d{0,2})/,e=i.replace(/GMT|UTC/,"").match(t);if(!e)return 0;const[,r,n,s]=e,a=parseInt(n,10)*60||0,u=parseInt(s,10)||0;return(r==="+"?1:-1)*(a+u)}function mr(i,t){return t&&(t.startsWith("UTC")||t.startsWith("GMT"))?jt.utc(i).utcOffset(Cp(t)):jt.tz(i,t)}function gr(i,t){const[e,r]=Fs(i);let n=0;switch(r){case"m":n=60;break;case"s":n=1;break;case"M":return Mp(t,Number(e))*24*60*60;case"d":n=24*60*60;break;case"w":n=7*24*60*60;break;default:n=60*60;break}return Math.round(Number(e)*n)}function Mp(i,t){const e=jt(i),r=e.month();let n=0;for(;t>0;){t-=1;const s=r+t,a=e.month(s).daysInMonth();n+=a}return n}function _t(i){return typeof i!="number"||isNaN(i)}function ge(i,t){for(const e of t)i!=null&&i.hasOwnProperty(e)&&i[e]===void 0&&(i[e]=null)}function Xl(i){var t=atob(i),e=decodeURI(t);return e}function Ql(i,t){if(!String(i).includes("."))return i;const e=Math.pow(10,t);return Math.floor(i*e)/e}function tc(i,t=5){if(i===void 0)return i;const e=Math.pow(10,t+1);return Math.ceil(i*e)/e}function ec(i,t=5){if(i===void 0)return i;const e=Math.pow(10,t+1);return Math.floor(i*e)/e}function rc(i){const t=parseInt(i);return i.length>1&&t===1?i.replace("1",""):i}var Fe=(i=>(i.BOOL="bool",i.INT="int",i.FLOAT="float",i.ARRAY="array",i.BOX="box",i.CHART_POINT="chart.point",i.COLOR="color",i.CONST="const",i.LABEL="label",i.LINE="line",i.LINEFILL="linefill",i.MAP="map",i.MATRIX="matrix",i.POLYLINE="polyline",i.SERIES="series",i.SIMPLE="simple",i.STRING="string",i.TABLE="table",i.UNDETERMINED="undetermined type",i.INPUT="input",i.NA="na",i.VOID="void",i.ENUM="enum",i))(Fe||{}),Ns=(i=>(i.dividends="dividends",i.none="none",i.splits="splits",i))(Ns||{}),jr=(i=>(i.freqAll="freq_all",i.freqOncePerBar="freq_once_per_bar",i.freqOncePerBarClose="freq_once_per_bar_close",i))(jr||{}),ln=(i=>(i.gapsOff="gaps_off",i.gapsOn="gaps_on",i.lookaheadOff="lookahead_off",i.lookaheadOn="lookahead_on",i))(ln||{}),Ze=(i=>(i.all="all",i.dataWindow="data_window",i.none="none",i.pane="pane",i.priceScale="price_scale",i.statusLine="status_line",i))(Ze||{}),Wr=(i=>(i.both="both",i.left="left",i.none="none",i.right="right",i))(Wr||{}),Gt=(i=>(i.inherit="inherit",i.mintick="mintick",i.percent="percent",i.price="price",i.volume="volume",i))(Gt||{}),Ss=(i=>(i.styleDashed="style_dashed",i.styleDotted="style_dotted",i.styleSolid="style_solid",i))(Ss||{}),ve=(i=>(i.styleArrowdown="style_arrowdown",i.styleArrowup="style_arrowup",i.styleCircle="style_circle",i.styleCross="style_cross",i.styleDiamond="style_diamond",i.styleFlag="style_flag",i.styleLabelCenter="style_label_center",i.styleLabelDown="style_label_down",i.styleLabelLeft="style_label_left",i.styleLabelLowerLeft="style_label_lower_left",i.styleLabelLowerRight="style_label_lower_right",i.styleLabelRight="style_label_right",i.styleLabelUp="style_label_up",i.styleLabelUpperLeft="style_label_upper_left",i.styleLabelUpperRight="style_label_upper_right",i.styleNone="style_none",i.styleSquare="style_square",i.styleTextOutline="style_text_outline",i.styleTriangledown="style_triangledown",i.styleTriangleup="style_triangleup",i.styleXcross="style_xcross",i))(ve||{}),Re=(i=>(i.styleArrowBoth="style_arrow_both",i.styleArrowLeft="style_arrow_left",i.styleArrowRight="style_arrow_right",i.styleDashed="style_dashed",i.styleDotted="style_dotted",i.styleSolid="style_solid",i))(Re||{}),cn=(i=>(i.abovebar="abovebar",i.absolute="absolute",i.belowbar="belowbar",i.bottom="bottom",i.top="top",i))(cn||{}),Gn=(i=>(i.ascending="ascending",i.descending="descending",i))(Gn||{}),Or=(i=>(i.styleArea="Area",i.styleAreabr="Area With Breaks",i.styleCircles="Circles",i.styleColumns="Columns",i.styleCross="Cross",i.styleHistogram="Histogram",i.styleLine="Line",i.styleLinebr="Line With Breaks",i.styleStepline="Step Line",i.styleSteplineDiamond="Step Line With Diamonds",i.styleSteplinebr="Step line with Breaks",i))(Or||{}),vr=(i=>(i.bottomCenter="bottom_center",i.bottomLeft="bottom_left",i.bottomRight="bottom_right",i.middleCenter="middle_center",i.middleLeft="middle_left",i.middleRight="middle_right",i.topCenter="top_center",i.topLeft="top_left",i.topRight="top_right",i))(vr||{}),Os=(i=>(i.left="left",i.none="none",i.right="right",i))(Os||{}),Mn=(i=>(i.extended="extended",i.regular="regular",i))(Mn||{}),lr=(i=>(i.arrowdown="arrowdown",i.arrowup="arrowup",i.circle="circle",i.cross="cross",i.diamond="diamond",i.flag="flag",i.labeldown="labeldown",i.labelup="labelup",i.square="square",i.triangledown="triangledown",i.triangleup="triangleup",i.xcross="xcross",i))(lr||{}),ir=(i=>(i.auto="auto",i.huge="huge",i.large="large",i.normal="normal",i.small="small",i.tiny="tiny",i))(ir||{}),Jn=(i=>(i.familyDefault="default",i.familyMonospace="monospace",i))(Jn||{}),Pe=(i=>(i.cash="cash",i.fixed="fixed",i.percentOfEquity="percent_of_equity",i))(Pe||{}),We=(i=>(i.cashPerContract="cash_per_contract",i.cashPerOrder="cash_per_order",i.percent="percent",i))(We||{}),ce=(i=>(i.all="all",i.long="long",i.short="short",i))(ce||{}),fn=(i=>(i.cancel="cancel",i.none="none",i.reduce="reduce",i))(fn||{}),Wt=(i=>(i.alignBottom="align_bottom",i.alignCenter="align_center",i.alignLeft="align_left",i.alignRight="align_right",i.alignTop="align_top",i.wrapAuto="wrap_auto",i.wrapNone="wrap_none",i))(Wt||{}),De=(i=>(i.bar_index="bar_index",i.bar_time="bar_time",i))(De||{}),Yr=(i=>(i.abovebar="abovebar",i.belowbar="belowbar",i.price="price",i))(Yr||{}),Bs=(i=>(i.actual="actual",i.estimate="estimate",i.standardized="standardized",i))(Bs||{}),Xn=(i=>(i.traditional="Traditional",i.fibonacci="Fibonacci",i.woodie="Woodie",i.classic="Classic",i.dm="DM",i.camarilla="Camarilla",i))(Xn||{}),sr=(i=>(i.INT="int",i.BOOL="bool",i.TIME="time",i.COLOR="color",i.FLOAT="float",i.PRICE="price",i.SOURCE="source",i.STRING="string",i.SYMBOL="symbol",i.SESSION="session",i.TEXT_AREA="text_area",i.TIMEFRAME="timeframe",i.ENUM="enum",i))(sr||{}),nc=(i=>(i.library="library",i.indicator="indicator",i.strategy="strategy",i))(nc||{}),Lt=(i=>(i[i.Hint=1]="Hint",i[i.Info=2]="Info",i[i.Warning=4]="Warning",i[i.Error=8]="Error",i))(Lt||{});const re={onlyInLoop:"'$text' is only allowed inside loops",invalidType:"Invalid argument 'expr$index' in 'operator SQBR' call",typeUseError:"Cannot specify a type form '$text' without also specifying the type.",notTypeKeyword:"'$text' is not a valid type keyword in variable declaration",undeclared:"Undeclared identifier '$name'",repeatVar:"'$name' is already defined",typeRepeatErr:"$keyword '$name' is already defined.",typeMismatch:"Cannot call '$operator' with argument '$index'. An argument of '$typeE' type was used but a '$typeR' is expected.",assignTypeMismatch:"Cannot assign a value of the `$typeE` type to the '$name' variable. The variable is declared with the `$typeR` type.",voidNotVar:"Void expression cannot be assigned to a variable",declareTypeErr:"Declared type '$type' is not compatible with assigned type '$valueType'",mapKeyValErr:"Cannot put <$typeA, $typeB> pairs into a map containing `$typeC` keys and `$typeD` values. The maps passed into the `$name()` function must have the same key types and value types.",inputSourceErr:"Invalid value for the '$name' parameter of the '$funcName' function. Possible values: [open, high, low, close, hl2, hlc3, ohlc4, hlcc4, volume].",buildInUseErr:"Cannot use '$name' as the default value of a type's field. The default value cannot be a function, variable or calculation.",argsLenErr:"Too many arguments passed into the `$name()` function call. Passed $lenA arguments but expected $lenB.",requiredParamErr:"No value assigned to the `$argName` parameter in $name()",argsSyntaxErr:"Syntax error after the argument for `$argName`. Arguments without their parameter name cannot be used after arguments with parameter names.",requestArgsErr:"Type $type cannot be used in $name '$argName' argument",mapKeyErr:"Incorrect `key` type `$type` in the variable. The `key` type must be one of the following: int, float, string, bool, color.",templateErr:"Incorrect number of arguments for the template: $countA expected, $countB passed.",templateNoSupportErr:"The '$name()' function does not support templates",ifOrSwitchTypeErr:"Return type of one of the '$keyword' blocks is not compatible with return type of other block(s) ($types)",argsNameErr:"The '$name' function does not have an argument with the name '$argName'",noFiledErr:"Object has no field $name",methodNotExistErr:"Could not find method or method reference '$methodName' for '$name'",tupleVarErr:"Syntax error: The quantities of tuple elements on each side of the assignment operator do not match. The right side has $indexA but the left side has $indexB.",tupleLeftVarErr:"Invalid assignment. Cannot assign a tuple to a variable '$name'.",tupleRightVarErr:"Cannot assign a variable to a tuple. The right side must be a function call or structure ('if', 'switch', 'for', 'while') returning a tuple with the same number of elements.",tempateTypeErr:"Syntax error: Only templates for arrays and matrices consist of a single type identifier enclosed in angle brackets.",qualifierErr:"'$name' is not a valid type qualifier. Possible values: 'const', 'simple', 'series'",notFindFuncErr:"Could not find function or function reference '$name'",naVarErr:"Value with NA type cannot be assigned to a variable that was defined without type keyword",notHistoryErr:"Variable '$name' doesn't have history values",defaultValueErr:"The default value cannot be a function, variable or calculation.",defaultValueTypeErr:"Default value of type $typeE can not be assigned to an argument of type $typeR",typeFieldErr:"In a type declaration, all fields without a default value must be explicitly typified.",unaryErr:"Syntax error at input '$sign'",funcArgAssignErr:"Function arguments cannot be mutable ('$name')",declaredErr:"A variable declared with the '$prefix' keyword cannot accept values of the '$type' form. Assign a '$prefix' value to this variable or remove the '$prefix' keyword from its declaration.",globalFuncErr:"Cannot use '$name' in local scope",onlyStatementErr:"Scripts must contain one declaration statement: `indicator()`, `strategy()` or `library()`, Your script has $count.",modifyGlobalVarErr:"Cannot modify global variable '$name' in function",inputDefvalErr:"Arguments of input function must be of constant type, or 'source' builtin variables.",objectIsNaErr:"Cannot access the '$name' $type of an na object. The object is 'na'.",buidinAssignErr:"Cannot assign a new value to the built-in variable '$name'.",buidinVarErr:"Cannot shadow the built-in variable `$name` because it has already been used as a built-in.",useNaErr:"Cannot use an `na` value of an unspecified type in the `$name` function.",libraryTitleErr:"Invalid argument 'title' in 'library' call. It cannot contain spaces, special characters or begin with a digit.",exportFuncArgErr:"All exported functions args should be typified",indiRunErr:"An indicator must contain at least one of the following: any `plot*()` function, `barcolor()`, `bgcolor()`, `hline()`, `alertcondition()`, or any drawing (line, label, box, table, polyline).",libraryExportErr:"A library must contain at least one exported function, method, or type.",strategyRunErr:"A strategy must contain at least one of the following: any `strategy.*()` function that creates orders, any `plot*()` function, `barcolor()`, `bgcolor()`, `hline()`, or any drawing (line, label, box, table, polyline).",exportUseErr:"Only libraries can contain exported $type.",funcRepeatErr:"The '$name' function has overloads with the same parameters. The type of parameters must be different in overloaded versions of functions.",importMultipleErr:"Cannot import a library more than once",importNotExitErr:"The user '$username' does not have a published library titled '$libraryName'",importNameRepeatErr:"More than one import uses the same alias: $name. Previous usage at line: $line",exportFuncHasInputErr:"The exported function '$func' depends on the '$name' input variable, which is not allowed.",libraryTitleIsKeywordErr:"Invalid argument 'title' in 'library' call. Token: '$name' can't be used as library title.",exportFuncUseGlobalVarErr:"Cannot use global variables in exported functions. Function: $func",loopRuntimeErr:"Loop takes too long to execute (> 500 ms)",paramsErr:"Invalid value '$value' for '$param' parameter of the '$func' function. Possible values: $targetVal",displayErr:"Invalid argument 'display' in '$func' call. Possible values: $values",exportFuncUseReqErr:"Cannot use `request.*()` call in exported function `$name()`",requestExprErr:"Type series $type cannot be used in $name 'expression' argument",argDefaultErr:"The default value assigned to a parameter must be either a literal value (e.g., `5`) or a built-in variable (e.g., `close`)",overloadFuncErr:"Cannot use global variables or any values qualified as 'input' in the local scopes of overloaded functions or methods. Remove any global variables or inputs from the scopes of all '$name()' overloads.",againAssignErr:"Unable to determine the object for the field assignment. Try putting the object into a separate variable before assigning values to its fields.",requestUserInLoopErr:"Cannot use `request.*()` call within loops or conditional structures.",enumVarNameErr:"Invalid enum name '$name': `bool`, `int`, `float`, `string`, and `color` are not allowed.",enumVarNameBuiltinErr:"Invalid object name: $name. Namespaces of built-ins cannot be used.",typeNameErr:"Invalid user-defined type name '$name': `bool`, `int`, `float`, `string`, and `color` are not allowed.",enumUseErr:"Cannot use the '$name' as a value. Use one of the enum's fields instead.",conditionalErr:"'$name' conditional expression must be of a bool type!",fortoErr:'The value of the "for" loop must be a number.',indicatorUseStrategyFuncErr:"You cannot use strategy $type ($name) in indicator script.",arrEmptyErr:"Array must not be empty",arrLengthDiffErr:"Arrays have different lengths",arrTypeErr:"数组类型错误,array.$name方法只能使用$type类型数组!",inputOptErr:"input's defval should be in options, but '$defval' is not in [$args]",mathRandomErr:"min must be less than max",matrixRehapeErr:"New matrix must be of same area as original matrix",strategyExitErr:"strategy.exit must have at least one of the following parameters: 'profit', 'limit', 'loss', 'stop' or one of the following pairs: 'trail_offset' and 'trail_price' / 'trail_points'. To close the position at market price, use 'strategy.close'",arrLenErr:"Invalid array length",mergeCellErr:"error: start_column > end_column or start_row > end_row",minOrMaxErr:"Input's `defval` value must be between `minval` and `maxval`",requestsNumErr:"Exceeded the maximum number of requests 40"},Fp={repeatVar:"Shadowing variable '$name' which exists in parent scope. Did you want to use the ':=' operator instead of '=' ?",typeMismatch:"The `$index` parameter of the `$operator` function accepts a '$type' argument. To avoid potential unexpected results, pass a '$type' value or expression to this parameter.",moreSameArg:"More than one '$arg' arguments are supplied. Only the first one will be used.",localScopeGetHistory:"The variable '$name' is declared in local scope, which may not be executed at every update. So, obtaining its historical values may lead to unexpected results",localScopeWarning:"The function '$name' should be called on each calculation for consistency. It is recommended to extract the call from this scope",strategyCalcTickWarn:"Strategies without `calc_on_every_tick = true` only calculate on confirmed chart bars. In this case, `barstate.islast` may not initially return `true` on realtime bars, as the last bar is unconfirmed until it closes. If you need to check whether a bar is the latest before it closes, enable `calc_on_every_tick` in the `strategy()` function.",conditionWarning:"The `condition` parameter of the `$name` accepts a 'bool' argument. To avoid potential unexpected results, pass a 'bool' value or expression to this parameter.",lineWidthWarning:"Passing a value below 1 to `linewidth` will be replaced with 1 during compilation.",boolVarNumWarning:"The `$name` variable casts a numeric value to the 'bool' type. To avoid potential unexpected results, assign a 'bool' value to this variable."};Fe.SERIES,Fe.SIMPLE,Fe.INPUT,Fe.CONST,Fe.INT,Fe.FLOAT,Fe.BOOL,Fe.COLOR,Fe.STRING;const Np=["close","open","high","low","hl2","hlc3","hlcc4","ohlc4","volume"],Sp=["case","catch","default","delete","do","finally","function","instanceof","new","return","this","throw","try","typeof","void","with"],Op=["linefill","polyline","matrix","series","simple","string","array","color","const","float","label","table","bool","line","box","int","map","continue","for","varip","var","in","export","import","method","switch","break","while","else","type","and","for","not","as","by","if","in","or","to"];class Bp{constructor(t){$(this,"_errorListener");this._errorListener=t}new({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_float({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_int({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_color({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_bool({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_string({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_line({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_box({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_table({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_linefill({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_label({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}copy({id:t}){return t==null?void 0:t.copy()}slice({id:t,index_from:e,index_to:r}){return t==null?void 0:t.slice({index_from:e,index_to:r})}size({id:t}){return t==null?void 0:t.size()}first({id:t}){return t==null?void 0:t.first()}abs({id:t},e){return t==null?void 0:t.abs(e)}avg({id:t},e){return t==null?void 0:t.avg(e)}binary_search({id:t,val:e},r){return t==null?void 0:t.binary_search({val:e},r)}binary_search_leftmost({id:t,val:e},r){return t==null?void 0:t.binary_search_leftmost({val:e},r)}binary_search_rightmost({id:t,val:e},r){return t==null?void 0:t.binary_search_rightmost({val:e},r)}clear({id:t}){t==null||t.clear()}concat({id1:t,id2:e}){return t==null?void 0:t.concat({id2:e})}covariance({id1:t,id2:e,biased:r},n){return t==null?void 0:t.covariance({id2:e,biased:r},n)}every({id:t},e){return t==null?void 0:t.every(e)}from(t,e){const r=new te(0,void 0,this._errorListener);return r._value=e,r}fill({id:t,value:e,index_from:r,index_to:n}){t==null||t.fill({value:e,index_from:r,index_to:n})}get({id:t,index:e}){return t==null?void 0:t.get({index:e})}includes({id:t,value:e}){return t==null?void 0:t.includes({value:e})}indexof({id:t,value:e}){return t==null?void 0:t.indexof({value:e})}insert({id:t,index:e,value:r}){t==null||t.insert({index:e,value:r})}join({id:t,separator:e},r){return t==null?void 0:t.join({separator:e},r)}last({id:t}){return t==null?void 0:t.last()}lastindexof({id:t,value:e}){return t==null?void 0:t.lastindexof({value:e})}max({id:t,nth:e},r){return t==null?void 0:t.max({nth:e},r)}median({id:t},e){return t==null?void 0:t.median(e)}min({id:t,nth:e},r){return t==null?void 0:t.min({nth:e},r)}mode({id:t},e){return t==null?void 0:t.mode(e)}percentile_linear_interpolation({id:t,percentage:e},r){return t==null?void 0:t.percentile_linear_interpolation({percentage:e},r)}percentile_nearest_rank({id:t,percentage:e},r){return t==null?void 0:t.percentile_nearest_rank({percentage:e},r)}percentrank({id:t,index:e},r){return t==null?void 0:t.percentrank({index:e},r)}pop({id:t}){return t==null?void 0:t.pop()}push({id:t,value:e}){t==null||t.push({value:e})}range({id:t},e){return t==null?void 0:t.range(e)}remove({id:t,index:e}){return t==null?void 0:t.remove({index:e})}reverse({id:t}){return t==null?void 0:t.reverse()}set({id:t,index:e,value:r}){t==null||t.set({index:e,value:r})}shift({id:t}){return t==null?void 0:t.shift()}some({id:t},e){return t==null?void 0:t.some(e)}sort({id:t,order:e},r){t==null||t.sort({order:e},r)}sort_indices({id:t,order:e},r){return t==null?void 0:t.sort_indices({order:e},r)}standardize({id:t},e){return t==null?void 0:t.standardize(e)}stdev({id:t,biased:e},r){return t==null?void 0:t.stdev({biased:e},r)}sum({id:t},e){return t==null?void 0:t.sum(e)}unshift({id:t,value:e}){t==null||t.unshift({value:e})}variance({id:t,biased:e},r){return t==null?void 0:t.variance({biased:e},r)}}class te{constructor(t=0,e,r){$(this,"_arrInstance");$(this,"_errorListener");this._errorListener=r,this._arrInstance=Array.from(new Array(t||0),()=>tn.cloneDeep(e))}get isArray(){return!0}get _value(){return[...this._arrInstance]}set _value(t){this._arrInstance=[...t]}_deepCopyData(t){this._arrInstance=tn.cloneDeep(t)}_copyData(t){this._arrInstance=t}copy(){const t=new te(0,void 0,this._errorListener);return t._deepCopyData(this._arrInstance),t}slice({index_from:t,index_to:e}){const r=new te(0,void 0,this._errorListener);return r._copyData(this._arrInstance.slice(t,e)),r}size(){return this._arrInstance.length}first(){return this._arrInstance[0]}abs(t){const e=new te(0,void 0,this._errorListener);this._verifySimpleType("number","abs","int/float",t);const r=this._arrInstance.map(n=>Math.abs(n));return e._copyData(r),e}avg(t){return this._verifySimpleType("number","avg","int/float",t),tn.mean(this._arrInstance)}binary_search({val:t},e){return this._verifySimpleType("number","binary_search","int/float",e),_t(t)?-1:this._binarySearch(this._arrInstance,t)}binary_search_leftmost({val:t},e){return this._verifySimpleType("number","binary_search_leftmost","int/float",e),_t(t)?this._arrInstance.length-1:this._binarySearchLeftMost(this._arrInstance,t)}binary_search_rightmost({val:t},e){return this._verifySimpleType("number","binary_search_rightmost","int/float",e),_t(t)?this._arrInstance.length:this._binarySearchRightMost(this._arrInstance,t)}clear(){this._arrInstance=[]}concat({id2:t}){return this._arrInstance=this._arrInstance.concat(t==null?void 0:t._value),this}covariance({id2:t,biased:e},r){return this._verifySimpleType("number","covariance","int/float",r),this._verifySimpleType("number","covariance","int/float",r,t==null?void 0:t._value),this._covariance(this._arrInstance,t._value,e,r)}every(t){return this._verifySimpleType("number|boolean","every","int/float/bool",t),this._arrInstance.every(e=>!!e)}fill({value:t,index_from:e=0,index_to:r}){this._arrInstance=this._setElements(this._arrInstance,t,e,r)}get({index:t}){if(!_t(t))return this._arrInstance[t]}includes({value:t}){return this._arrInstance.includes(t)}indexof({value:t}){return this._arrInstance.indexOf(t)}insert({index:t,value:e}){_t(t)||this._arrInstance.splice(t,0,e)}join({separator:t}={},e){return this._verifySimpleType("number|string","join","int/float/string",e),this._arrInstance.join(t)}last(){return this._arrInstance[this._arrInstance.length-1]}lastindexof({value:t}){return this._arrInstance.lastIndexOf(t)}max({nth:t}={},e){return this._verifySimpleType("number","max","int/float",e),this._maxNth([...this._arrInstance],t)}median(t){return this._verifySimpleType("number","median","int/float",t),this._median([...this._arrInstance])}min({nth:t}={},e){return this._verifySimpleType("number","min","int/float",e),this._minNth([...this._arrInstance],t)}mode(t){return this._verifySimpleType("number","mode","int/float",t),this._mode([...this._arrInstance])}percentile_linear_interpolation({percentage:t},e){return this._verifySimpleType("number","percentile_linear_interpolation","int/float",e),this._percentileLinearInterpolation([...this._arrInstance],t)}percentile_nearest_rank({percentage:t=0},e){var r;if(this._arrInstance.length===0||t<0||t>100||_t(t)){(r=this._errorListener)==null||r.addError("Invalid percentile or empty array",e,Lt.Error);return}return this._verifySimpleType("number","percentile_nearest_rank","int/float",e),this._getNearestRankPercentile([...this._arrInstance],t)}percentrank({index:t},e){return this._verifySimpleType("number","percentrank","int/float",e),this._getPercentileRank([...this._arrInstance],t)}pop(){return this._arrInstance.pop()}push({value:t}){this._arrInstance.push(t)}range(t){var s;if(this._arrInstance.length===0){(s=this._errorListener)==null||s.addError(re.arrEmptyErr,t,Lt.Error);return}this._verifySimpleType("number","range","int/float",t);const e=Math.min(...this._arrInstance);return Math.max(...this._arrInstance)-e}remove({index:t}){if(!_t(t))return this._arrInstance.splice(t,1)[0]}reverse(){this._arrInstance.reverse()}set({index:t,value:e}){_t(t)||(this._arrInstance[t]=e)}shift(){return this._arrInstance.shift()}some(t){return this._verifySimpleType("number|boolean","some","int/float/bool",t),this._arrInstance.some(e=>!!e)}sort({order:t}={},e){this._verifySimpleType("number","sort","int/float",e),this._arrInstance.sort((r,n)=>t!==Gn.descending?r-n:n-r)}sort_indices({order:t}={},e){this._verifySimpleType("number","sort_indices","int/float",e);const r=this._arrInstance.map((s,a)=>a);r.sort((s,a)=>t!==Gn.descending?this._arrInstance[s]-this._arrInstance[a]:this._arrInstance[a]-this._arrInstance[s]);const n=new te(0,void 0,this._errorListener);return n._copyData(r),n}standardize(t){this._verifySimpleType("number","standardize","int/float",t);const e=new te(0,void 0,this._errorListener);return e._copyData(this._standardizeArray([...this._arrInstance])),e}stdev({biased:t}={},e){var r;if(this._arrInstance.length===0){(r=this._errorListener)==null||r.addError(re.arrEmptyErr,e,Lt.Error);return}return this._verifySimpleType("number","stdev","int/float",e),this._calculateStandardDeviations([...this._arrInstance],t)}sum(t){return this._verifySimpleType("number","sum","int/float",t),this._arrInstance.reduce((r,n)=>r+(n||0),0)}unshift({value:t}){this._arrInstance.unshift(t)}variance({biased:t}={},e){var r;if(this._arrInstance.length===0){(r=this._errorListener)==null||r.addError(re.arrEmptyErr,e,Lt.Error);return}return this._verifySimpleType("number","variance","int/float",e),this._calculateVariances([...this._arrInstance],t)}_calculateVariances(t,e=!0){const r=t.reduce((a,u)=>a+(u||0),0)/t.length,n=t.reduce((a,u)=>a+((u||0)-r)**2,0),s=n/t.length;return e?s:t.length>1?n/(t.length-1):s}_calculateStandardDeviations(t,e=!0){const r=t.reduce((a,u)=>a+(u||0),0)/t.length,n=t.reduce((a,u)=>{const c=(u||0)-r;return a+c*c},0),s=Math.sqrt(n/t.length);return e?s:t.length>1?Math.sqrt(n/(t.length-1)):s}_standardizeArray(t){const e=t.reduce((s,a)=>s+(a||0),0)/t.length,r=Math.sqrt(t.reduce((s,a)=>s+Math.pow((a||0)-e,2),0)/t.length);return t.map(s=>((s||0)-e)/r)}_getPercentileRank(t,e=0){if(_t(e))return;const r=t[e];let n=0;for(let a=0;a<t.length;a++)(t[a]<r||t[a]===r&&a!=e)&&n++;return n/(t.length-1)*100}_getNearestRankPercentile(t,e=0){const r=t.slice().sort((a,u)=>a-u),n=e/100*r.length,s=Math.ceil(n)-1;return r[s>=r.length?r.length-1:s]}_percentileLinearInterpolation(t,e=0){if(e<0||e>100||_t(e))return;t.sort(function(s,a){return s-a});const r=t.length;e/=100;const n=1/(r*2);if(e<=n)return t[0];if(e>=1-1/(r*2))return t[r-1];for(const[s,a]of t.entries()){const u=t[s-1];if(e<(s+.5)/r)return u+(a-u)*(e-(s-.5)/r)/(1/r)}}_mode(t){const e={};let r=0;const n=[];for(const s of t)e[s]=(e[s]||0)+1,r=Math.max(r,e[s]);for(const s in e)e[s]===r&&n.push(Number(s));return Math.min(...r===1?t:n)}_median(t){t.sort(function(r,n){return r-n});const e=Math.floor(t.length/2);return t.length%2?t[e]:(t[e-1]+t[e])/2}_minNth(t,e=0){return t.sort(function(r,n){return r-n}),t[e]}_maxNth(t,e=0){return t.sort(function(r,n){return n-r}),t[e]}_setElements(t,e,r=0,n){n===void 0&&(n=t.length);for(let s=r;s<n;s++)t[s]=e;return t}_covariance(t,e,r=!0,n){var c;if(t.length!=e.length){(c=this._errorListener)==null||c.addError(re.arrLengthDiffErr,n,Lt.Error);return}t=t.filter(f=>f!==void 0),e=e.filter(f=>f!==void 0);const s=t.reduce((f,d)=>f+d,0)/t.length,a=e.reduce((f,d)=>f+d,0)/e.length;let u=0;for(let f=0;f<t.length;f++)u+=(t[f]-s)*(e[f]-a);return r?u/t.length:u/(t.length-1)}_verifySimpleType(t,e,r,n,s=this._arrInstance){var u;s.filter(c=>c!==void 0).some(c=>!t.split("|").includes(typeof c))&&((u=this._errorListener)==null||u.addError(He(re.arrTypeErr,{name:e,type:r}),n,Lt.Error))}_binarySearch(t,e){let r=0,n=t.length-1;for(;r<=n;){const s=Math.floor((r+n)/2);if(t[s]===e)return s;t[s]<e?r=s+1:n=s-1}return-1}_binarySearchLeftMost(t,e){let r=0,n=t.length-1;const s=[];for(;r<=n;){const a=Math.floor((r+n)/2);t[a]===e&&s.push(a),t[a]<e?r=a+1:n=a-1}return s.length?Math.min(...s):r-1}_binarySearchRightMost(t,e){let r=0,n=t.length-1;const s=[];for(;r<=n;){const a=Math.floor((r+n)/2);t[a]===e&&s.push(a),t[a]<=e?r=a+1:n=a-1}return s.length?Math.max(...s):r}}class Tp{constructor(t,e){$(this,"_randomNums");$(this,"_mintick");$(this,"_cacheData");$(this,"_barIndex");$(this,"_errorListener");this._mintick=t,this._randomNums={},this._cacheData={},this._barIndex=0,this._errorListener=e}update(t){this._barIndex=t,this._randomNums={}}abs({number:t}){if(!_t(t))return Math.abs(t)}acos({angle:t}){if(_t(t))return;const e=Math.acos(t);return isNaN(e)?void 0:e}asin({angle:t}){if(_t(t))return;const e=Math.asin(t);return isNaN(e)?void 0:e}atan({angle:t}){if(_t(t))return;const e=Math.atan(t);return isNaN(e)?void 0:e}avg(t,e){return tn.mean(e)}ceil({number:t}){if(!_t(t))return Math.ceil(t)}floor({number:t}){if(!_t(t))return Math.floor(t)}cos({angle:t}){if(_t(t))return;const e=Math.cos(t);return isNaN(e)?void 0:e}sin({angle:t}){if(_t(t))return;const e=Math.sin(t);return isNaN(e)?void 0:e}tan({angle:t}){if(_t(t))return;const e=Math.tan(t);return isNaN(e)?void 0:e}exp({number:t}){if(!_t(t))return Math.exp(t)}log({number:t}){if(!_t(t))return Math.log(t)}log10({number:t}){if(!_t(t))return Math.log10(t)}max(t,e){if(!e.some(r=>_t(r)))return Math.max(...e)}min(t,e){if(!e.some(r=>_t(r)))return Math.min(...e)}pow({base:t,exponent:e}){if(!(_t(t)||_t(e)))return Math.pow(t,e)}random({min:t=0,max:e=1,seed:r},n){if(_t(t)&&(t=0),_t(e)&&(e=1),r&&this._randomNums[r])return this._randomNums[r];if(t>=e){this._errorListener.addError(re.mathRandomErr,n,Lt.Error);return}let s;do s=Math.random()*(e-t)+t;while(s===t||s===e);return r&&(this._randomNums[r]=s),s}round({number:t,precision:e}){if(!_t(t))return _t(e)?Math.round(t):Number(t==null?void 0:t.toFixed(e))}round_to_mintick({number:t}){if(!_t(t))return Number(t==null?void 0:t.toFixed(this._mintick))}sign({number:t}){if(!_t(t))return t&&Math.sign(t)}sqrt({number:t}){if(!_t(t))return Math.sqrt(t)}sum({source:t,length:e=1},r){let n=this._cacheData[`sum_${r}`];n||(n=[]),n[this._barIndex]=t,this._cacheData[`sum_${r}`]=n;const s=n.filter(a=>!_t(a));if(!(s.length<e))return tn.sum(s.slice(-e))}todegrees({radians:t}){if(!_t(t))return t*(180/Math.PI)}toradians({degrees:t}){if(!_t(t))return t*(Math.PI/180)}}function Ts(){return Ts=Object.assign?Object.assign.bind():function(i){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(i[r]=e[r])}return i},Ts.apply(this,arguments)}var ic={epsilon:1e-12,matrix:"Matrix",number:"number",precision:64,predictable:!1,randomSeed:null};function _e(i){return typeof i=="number"}function Oe(i){return!i||typeof i!="object"||typeof i.constructor!="function"?!1:i.isBigNumber===!0&&typeof i.constructor.prototype=="object"&&i.constructor.prototype.isBigNumber===!0||typeof i.constructor.isDecimal=="function"&&i.constructor.isDecimal(i)===!0}function sc(i){return i&&typeof i=="object"&&Object.getPrototypeOf(i).isComplex===!0||!1}function oc(i){return i&&typeof i=="object"&&Object.getPrototypeOf(i).isFraction===!0||!1}function ac(i){return i&&i.constructor.prototype.isUnit===!0||!1}function en(i){return typeof i=="string"}var Ae=Array.isArray;function ye(i){return i&&i.constructor.prototype.isMatrix===!0||!1}function ts(i){return Array.isArray(i)||ye(i)}function Ip(i){return i&&i.isDenseMatrix&&i.constructor.prototype.isMatrix===!0||!1}function $p(i){return i&&i.isSparseMatrix&&i.constructor.prototype.isMatrix===!0||!1}function Lp(i){return i&&i.constructor.prototype.isRange===!0||!1}function Aa(i){return i&&i.constructor.prototype.isIndex===!0||!1}function Rp(i){return typeof i=="boolean"}function Pp(i){return i&&i.constructor.prototype.isResultSet===!0||!1}function kp(i){return i&&i.constructor.prototype.isHelp===!0||!1}function zp(i){return typeof i=="function"}function qp(i){return i instanceof Date}function Up(i){return i instanceof RegExp}function Ca(i){return!!(i&&typeof i=="object"&&i.constructor===Object&&!sc(i)&&!oc(i))}function jp(i){return i===null}function Wp(i){return i===void 0}function Yp(i){return i&&i.isAccessorNode===!0&&i.constructor.prototype.isNode===!0||!1}function Vp(i){return i&&i.isArrayNode===!0&&i.constructor.prototype.isNode===!0||!1}function Hp(i){return i&&i.isAssignmentNode===!0&&i.constructor.prototype.isNode===!0||!1}function Zp(i){return i&&i.isBlockNode===!0&&i.constructor.prototype.isNode===!0||!1}function Kp(i){return i&&i.isConditionalNode===!0&&i.constructor.prototype.isNode===!0||!1}function Gp(i){return i&&i.isConstantNode===!0&&i.constructor.prototype.isNode===!0||!1}function Jp(i){return i&&i.isFunctionAssignmentNode===!0&&i.constructor.prototype.isNode===!0||!1}function Xp(i){return i&&i.isFunctionNode===!0&&i.constructor.prototype.isNode===!0||!1}function Qp(i){return i&&i.isIndexNode===!0&&i.constructor.prototype.isNode===!0||!1}function t_(i){return i&&i.isNode===!0&&i.constructor.prototype.isNode===!0||!1}function e_(i){return i&&i.isObjectNode===!0&&i.constructor.prototype.isNode===!0||!1}function r_(i){return i&&i.isOperatorNode===!0&&i.constructor.prototype.isNode===!0||!1}function n_(i){return i&&i.isParenthesisNode===!0&&i.constructor.prototype.isNode===!0||!1}function i_(i){return i&&i.isRangeNode===!0&&i.constructor.prototype.isNode===!0||!1}function s_(i){return i&&i.isRelationalNode===!0&&i.constructor.prototype.isNode===!0||!1}function o_(i){return i&&i.isSymbolNode===!0&&i.constructor.prototype.isNode===!0||!1}function a_(i){return i&&i.constructor.prototype.isChain===!0||!1}function Fn(i){var t=typeof i;return t==="object"?i===null?"null":Oe(i)?"BigNumber":i.constructor&&i.constructor.name?i.constructor.name:"Object":t}function oe(i){var t=typeof i;if(t==="number"||t==="string"||t==="boolean"||i===null||i===void 0)return i;if(typeof i.clone=="function")return i.clone();if(Array.isArray(i))return i.map(function(e){return oe(e)});if(i instanceof Date)return new Date(i.valueOf());if(Oe(i))return i;if(Ca(i))return u_(i,oe);throw new TypeError("Cannot clone: unknown type of value (value: ".concat(i,")"))}function u_(i,t){var e={};for(var r in i)es(i,r)&&(e[r]=t(i[r]));return e}function uc(i,t){for(var e in t)es(t,e)&&(i[e]=t[e]);return i}function yi(i,t){var e,r,n;if(Array.isArray(i)){if(!Array.isArray(t)||i.length!==t.length)return!1;for(r=0,n=i.length;r<n;r++)if(!yi(i[r],t[r]))return!1;return!0}else{if(typeof i=="function")return i===t;if(i instanceof Object){if(Array.isArray(t)||!(t instanceof Object))return!1;for(e in i)if(!(e in t)||!yi(i[e],t[e]))return!1;for(e in t)if(!(e in i))return!1;return!0}else return i===t}}function es(i,t){return i&&Object.hasOwnProperty.call(i,t)}function l_(i,t){for(var e={},r=0;r<t.length;r++){var n=t[r],s=i[n];s!==void 0&&(e[n]=s)}return e}var c_=["Matrix","Array"],f_=["number","BigNumber","Fraction"],yr=function(t){if(t)throw new Error(`The global config is readonly.
27
+ }`;var Pt=gp(function(){return ee(T,wt+"return "+at).apply(e,k)});if(Pt.source=at,Tl(Pt))throw Pt;return Pt}function r2(o){return se(o).toLowerCase()}function n2(o){return se(o).toUpperCase()}function i2(o,l,m){if(o=se(o),o&&(m||l===e))return C0(o);if(!o||!(l=Mr(l)))return o;var D=Gr(o),M=Gr(l),T=M0(D,M),k=F0(D,M)+1;return Hn(D,T,k).join("")}function s2(o,l,m){if(o=se(o),o&&(m||l===e))return o.slice(0,S0(o)+1);if(!o||!(l=Mr(l)))return o;var D=Gr(o),M=F0(D,Gr(l))+1;return Hn(D,0,M).join("")}function o2(o,l,m){if(o=se(o),o&&(m||l===e))return o.replace(hs,"");if(!o||!(l=Mr(l)))return o;var D=Gr(o),M=M0(D,Gr(l));return Hn(D,M).join("")}function a2(o,l){var m=A,D=O;if(Me(l)){var M="separator"in l?l.separator:M;m="length"in l?Rt(l.length):m,D="omission"in l?Mr(l.omission):D}o=se(o);var T=o.length;if(Ui(o)){var k=Gr(o);T=k.length}if(m>=T)return o;var U=m-ji(D);if(U<1)return D;var V=k?Hn(k,0,U).join(""):o.slice(0,U);if(M===e)return V+D;if(k&&(U+=V.length-U),Il(M)){if(o.slice(U).search(M)){var tt,et=V;for(M.global||(M=Gu(M.source,se(Io.exec(M))+"g")),M.lastIndex=0;tt=M.exec(et);)var at=tt.index;V=V.slice(0,at===e?U:at)}}else if(o.indexOf(Mr(M),U)!=U){var pt=V.lastIndexOf(M);pt>-1&&(V=V.slice(0,pt))}return V+D}function u2(o){return o=se(o),o&&fu.test(o)?o.replace(ui,Rb):o}var l2=Gi(function(o,l,m){return o+(m?" ":"")+l.toUpperCase()}),Rl=vd("toUpperCase");function mp(o,l,m){return o=se(o),l=m?e:l,l===e?Bb(o)?zb(o):xb(o):o.match(l)||[]}var gp=kt(function(o,l){try{return Ar(o,e,l)}catch(m){return Tl(m)?m:new Bt(m)}}),c2=bn(function(o,l){return Lr(l,function(m){m=un(m),wn(o,m,Ol(o[m],o))}),o});function f2(o){var l=o==null?0:o.length,m=At();return o=l?Ee(o,function(D){if(typeof D[1]!="function")throw new Rr(a);return[m(D[0]),D[1]]}):[],kt(function(D){for(var M=-1;++M<l;){var T=o[M];if(Ar(T[0],this,D))return Ar(T[1],this,D)}})}function h2(o){return Rx(kr(o,h))}function Pl(o){return function(){return o}}function d2(o,l){return o==null||o!==o?l:o}var p2=wd(),_2=wd(!0);function _r(o){return o}function kl(o){return G0(typeof o=="function"?o:kr(o,h))}function m2(o){return X0(kr(o,h))}function g2(o,l){return Q0(o,kr(l,h))}var v2=kt(function(o,l){return function(m){return Ds(m,o,l)}}),y2=kt(function(o,l){return function(m){return Ds(o,m,l)}});function zl(o,l,m){var D=Ve(l),M=ra(l,D);m==null&&!(Me(l)&&(M.length||!D.length))&&(m=l,l=o,o=this,M=ra(l,Ve(l)));var T=!(Me(m)&&"chain"in m)||!!m.chain,k=En(o);return Lr(M,function(U){var V=l[U];o[U]=V,k&&(o.prototype[U]=function(){var tt=this.__chain__;if(T||tt){var et=o(this.__wrapped__),at=et.__actions__=hr(this.__actions__);return at.push({func:V,args:arguments,thisArg:o}),et.__chain__=tt,et}return V.apply(o,qn([this.value()],arguments))})}),o}function w2(){return Je._===this&&(Je._=Vb),this}function ql(){}function D2(o){return o=Rt(o),kt(function(l){return td(l,o)})}var b2=vl(Ee),x2=vl(D0),E2=vl(ju);function vp(o){return Al(o)?Wu(un(o)):tE(o)}function A2(o){return function(l){return o==null?e:_i(o,l)}}var C2=bd(),M2=bd(!0);function Ul(){return[]}function jl(){return!1}function F2(){return{}}function N2(){return""}function S2(){return!0}function O2(o,l){if(o=Rt(o),o<1||o>W)return[];var m=ct,D=rr(o,ct);l=At(l),o-=ct;for(var M=Hu(D,l);++m<o;)l(m);return M}function B2(o){return It(o)?Ee(o,un):Fr(o)?[o]:hr(Pd(se(o)))}function T2(o){var l=++Wb;return se(o)+l}var I2=ua(function(o,l){return o+l},0),$2=yl("ceil"),L2=ua(function(o,l){return o/l},1),R2=yl("floor");function P2(o){return o&&o.length?ea(o,_r,il):e}function k2(o,l){return o&&o.length?ea(o,At(l,2),il):e}function z2(o){return E0(o,_r)}function q2(o,l){return E0(o,At(l,2))}function U2(o){return o&&o.length?ea(o,_r,ul):e}function j2(o,l){return o&&o.length?ea(o,At(l,2),ul):e}var W2=ua(function(o,l){return o*l},1),Y2=yl("round"),V2=ua(function(o,l){return o-l},0);function H2(o){return o&&o.length?Vu(o,_r):0}function Z2(o,l){return o&&o.length?Vu(o,At(l,2)):0}return B.after=mC,B.ary=Kd,B.assign=nM,B.assignIn=lp,B.assignInWith=Da,B.assignWith=iM,B.at=sM,B.before=Gd,B.bind=Ol,B.bindAll=c2,B.bindKey=Jd,B.castArray=FC,B.chain=Vd,B.chunk=RE,B.compact=PE,B.concat=kE,B.cond=f2,B.conforms=h2,B.constant=Pl,B.countBy=HA,B.create=oM,B.curry=Xd,B.curryRight=Qd,B.debounce=tp,B.defaults=aM,B.defaultsDeep=uM,B.defer=gC,B.delay=vC,B.difference=zE,B.differenceBy=qE,B.differenceWith=UE,B.drop=jE,B.dropRight=WE,B.dropRightWhile=YE,B.dropWhile=VE,B.fill=HE,B.filter=KA,B.flatMap=XA,B.flatMapDeep=QA,B.flatMapDepth=tC,B.flatten=Ud,B.flattenDeep=ZE,B.flattenDepth=KE,B.flip=yC,B.flow=p2,B.flowRight=_2,B.fromPairs=GE,B.functions=_M,B.functionsIn=mM,B.groupBy=eC,B.initial=XE,B.intersection=QE,B.intersectionBy=tA,B.intersectionWith=eA,B.invert=vM,B.invertBy=yM,B.invokeMap=nC,B.iteratee=kl,B.keyBy=iC,B.keys=Ve,B.keysIn=pr,B.map=_a,B.mapKeys=DM,B.mapValues=bM,B.matches=m2,B.matchesProperty=g2,B.memoize=ga,B.merge=xM,B.mergeWith=cp,B.method=v2,B.methodOf=y2,B.mixin=zl,B.negate=va,B.nthArg=D2,B.omit=EM,B.omitBy=AM,B.once=wC,B.orderBy=sC,B.over=b2,B.overArgs=DC,B.overEvery=x2,B.overSome=E2,B.partial=Bl,B.partialRight=ep,B.partition=oC,B.pick=CM,B.pickBy=fp,B.property=vp,B.propertyOf=A2,B.pull=sA,B.pullAll=Wd,B.pullAllBy=oA,B.pullAllWith=aA,B.pullAt=uA,B.range=C2,B.rangeRight=M2,B.rearg=bC,B.reject=lC,B.remove=lA,B.rest=xC,B.reverse=Nl,B.sampleSize=fC,B.set=FM,B.setWith=NM,B.shuffle=hC,B.slice=cA,B.sortBy=_C,B.sortedUniq=gA,B.sortedUniqBy=vA,B.split=XM,B.spread=EC,B.tail=yA,B.take=wA,B.takeRight=DA,B.takeRightWhile=bA,B.takeWhile=xA,B.tap=PA,B.throttle=AC,B.thru=pa,B.toArray=op,B.toPairs=hp,B.toPairsIn=dp,B.toPath=B2,B.toPlainObject=up,B.transform=SM,B.unary=CC,B.union=EA,B.unionBy=AA,B.unionWith=CA,B.uniq=MA,B.uniqBy=FA,B.uniqWith=NA,B.unset=OM,B.unzip=Sl,B.unzipWith=Yd,B.update=BM,B.updateWith=TM,B.values=Qi,B.valuesIn=IM,B.without=SA,B.words=mp,B.wrap=MC,B.xor=OA,B.xorBy=BA,B.xorWith=TA,B.zip=IA,B.zipObject=$A,B.zipObjectDeep=LA,B.zipWith=RA,B.entries=hp,B.entriesIn=dp,B.extend=lp,B.extendWith=Da,zl(B,B),B.add=I2,B.attempt=gp,B.camelCase=PM,B.capitalize=pp,B.ceil=$2,B.clamp=$M,B.clone=NC,B.cloneDeep=OC,B.cloneDeepWith=BC,B.cloneWith=SC,B.conformsTo=TC,B.deburr=_p,B.defaultTo=d2,B.divide=L2,B.endsWith=kM,B.eq=Xr,B.escape=zM,B.escapeRegExp=qM,B.every=ZA,B.find=GA,B.findIndex=zd,B.findKey=lM,B.findLast=JA,B.findLastIndex=qd,B.findLastKey=cM,B.floor=R2,B.forEach=Hd,B.forEachRight=Zd,B.forIn=fM,B.forInRight=hM,B.forOwn=dM,B.forOwnRight=pM,B.get=$l,B.gt=IC,B.gte=$C,B.has=gM,B.hasIn=Ll,B.head=jd,B.identity=_r,B.includes=rC,B.indexOf=JE,B.inRange=LM,B.invoke=wM,B.isArguments=vi,B.isArray=It,B.isArrayBuffer=LC,B.isArrayLike=dr,B.isArrayLikeObject=Be,B.isBoolean=RC,B.isBuffer=Zn,B.isDate=PC,B.isElement=kC,B.isEmpty=zC,B.isEqual=qC,B.isEqualWith=UC,B.isError=Tl,B.isFinite=jC,B.isFunction=En,B.isInteger=rp,B.isLength=ya,B.isMap=np,B.isMatch=WC,B.isMatchWith=YC,B.isNaN=VC,B.isNative=HC,B.isNil=KC,B.isNull=ZC,B.isNumber=ip,B.isObject=Me,B.isObjectLike=Ne,B.isPlainObject=Ms,B.isRegExp=Il,B.isSafeInteger=GC,B.isSet=sp,B.isString=wa,B.isSymbol=Fr,B.isTypedArray=Xi,B.isUndefined=JC,B.isWeakMap=XC,B.isWeakSet=QC,B.join=rA,B.kebabCase=UM,B.last=qr,B.lastIndexOf=nA,B.lowerCase=jM,B.lowerFirst=WM,B.lt=tM,B.lte=eM,B.max=P2,B.maxBy=k2,B.mean=z2,B.meanBy=q2,B.min=U2,B.minBy=j2,B.stubArray=Ul,B.stubFalse=jl,B.stubObject=F2,B.stubString=N2,B.stubTrue=S2,B.multiply=W2,B.nth=iA,B.noConflict=w2,B.noop=ql,B.now=ma,B.pad=YM,B.padEnd=VM,B.padStart=HM,B.parseInt=ZM,B.random=RM,B.reduce=aC,B.reduceRight=uC,B.repeat=KM,B.replace=GM,B.result=MM,B.round=Y2,B.runInContext=Y,B.sample=cC,B.size=dC,B.snakeCase=JM,B.some=pC,B.sortedIndex=fA,B.sortedIndexBy=hA,B.sortedIndexOf=dA,B.sortedLastIndex=pA,B.sortedLastIndexBy=_A,B.sortedLastIndexOf=mA,B.startCase=QM,B.startsWith=t2,B.subtract=V2,B.sum=H2,B.sumBy=Z2,B.template=e2,B.times=O2,B.toFinite=An,B.toInteger=Rt,B.toLength=ap,B.toLower=r2,B.toNumber=Ur,B.toSafeInteger=rM,B.toString=se,B.toUpper=n2,B.trim=i2,B.trimEnd=s2,B.trimStart=o2,B.truncate=a2,B.unescape=u2,B.uniqueId=T2,B.upperCase=l2,B.upperFirst=Rl,B.each=Hd,B.eachRight=Zd,B.first=jd,zl(B,function(){var o={};return on(B,function(l,m){le.call(B.prototype,m)||(o[m]=l)}),o}(),{chain:!1}),B.VERSION=r,Lr(["bind","bindKey","curry","curryRight","partial","partialRight"],function(o){B[o].placeholder=B}),Lr(["drop","take"],function(o,l){Yt.prototype[o]=function(m){m=m===e?1:je(Rt(m),0);var D=this.__filtered__&&!l?new Yt(this):this.clone();return D.__filtered__?D.__takeCount__=rr(m,D.__takeCount__):D.__views__.push({size:rr(m,ct),type:o+(D.__dir__<0?"Right":"")}),D},Yt.prototype[o+"Right"]=function(m){return this.reverse()[o](m).reverse()}}),Lr(["filter","map","takeWhile"],function(o,l){var m=l+1,D=m==q||m==P;Yt.prototype[o]=function(M){var T=this.clone();return T.__iteratees__.push({iteratee:At(M,3),type:m}),T.__filtered__=T.__filtered__||D,T}}),Lr(["head","last"],function(o,l){var m="take"+(l?"Right":"");Yt.prototype[o]=function(){return this[m](1).value()[0]}}),Lr(["initial","tail"],function(o,l){var m="drop"+(l?"":"Right");Yt.prototype[o]=function(){return this.__filtered__?new Yt(this):this[m](1)}}),Yt.prototype.compact=function(){return this.filter(_r)},Yt.prototype.find=function(o){return this.filter(o).head()},Yt.prototype.findLast=function(o){return this.reverse().find(o)},Yt.prototype.invokeMap=kt(function(o,l){return typeof o=="function"?new Yt(this):this.map(function(m){return Ds(m,o,l)})}),Yt.prototype.reject=function(o){return this.filter(va(At(o)))},Yt.prototype.slice=function(o,l){o=Rt(o);var m=this;return m.__filtered__&&(o>0||l<0)?new Yt(m):(o<0?m=m.takeRight(-o):o&&(m=m.drop(o)),l!==e&&(l=Rt(l),m=l<0?m.dropRight(-l):m.take(l-o)),m)},Yt.prototype.takeRightWhile=function(o){return this.reverse().takeWhile(o).reverse()},Yt.prototype.toArray=function(){return this.take(ct)},on(Yt.prototype,function(o,l){var m=/^(?:filter|find|map|reject)|While$/.test(l),D=/^(?:head|last)$/.test(l),M=B[D?"take"+(l=="last"?"Right":""):l],T=D||/^find/.test(l);M&&(B.prototype[l]=function(){var k=this.__wrapped__,U=D?[1]:arguments,V=k instanceof Yt,tt=U[0],et=V||It(k),at=function(Ut){var Ht=M.apply(B,qn([Ut],U));return D&&pt?Ht[0]:Ht};et&&m&&typeof tt=="function"&&tt.length!=1&&(V=et=!1);var pt=this.__chain__,wt=!!this.__actions__.length,Ct=T&&!pt,Pt=V&&!wt;if(!T&&et){k=Pt?k:new Yt(this);var Mt=o.apply(k,U);return Mt.__actions__.push({func:pa,args:[at],thisArg:e}),new Pr(Mt,pt)}return Ct&&Pt?o.apply(this,U):(Mt=this.thru(at),Ct?D?Mt.value()[0]:Mt.value():Mt)})}),Lr(["pop","push","shift","sort","splice","unshift"],function(o){var l=zo[o],m=/^(?:push|sort|unshift)$/.test(o)?"tap":"thru",D=/^(?:pop|shift)$/.test(o);B.prototype[o]=function(){var M=arguments;if(D&&!this.__chain__){var T=this.value();return l.apply(It(T)?T:[],M)}return this[m](function(k){return l.apply(It(k)?k:[],M)})}}),on(Yt.prototype,function(o,l){var m=B[l];if(m){var D=m.name+"";le.call(Hi,D)||(Hi[D]=[]),Hi[D].push({name:l,func:m})}}),Hi[aa(e,v).name]=[{name:"wrapper",func:e}],Yt.prototype.clone=ux,Yt.prototype.reverse=lx,Yt.prototype.value=cx,B.prototype.at=kA,B.prototype.chain=zA,B.prototype.commit=qA,B.prototype.next=UA,B.prototype.plant=WA,B.prototype.reverse=YA,B.prototype.toJSON=B.prototype.valueOf=B.prototype.value=VA,B.prototype.first=B.prototype.head,ps&&(B.prototype[ps]=jA),B},Wi=qb();ci?((ci.exports=Wi)._=Wi,ku._=Wi):Je._=Wi}).call(Vt)}(Kn,Kn.exports);var jr=Kn.exports;class wp{constructor(t,e){$(this,"_defaultParams");$(this,"_UserTypeFileds");$(this,"_varipKeys");this._defaultParams=t,this._UserTypeFileds=this._createDynamicClass(),this._varipKeys=e}copy(t){return jr.cloneDeep(t)}new(t={}){return new this._UserTypeFileds(Object.assign(jr.cloneDeep(this._defaultParams),t),this._varipKeys)}addNewMethod(t,e){this._UserTypeFileds.prototype[t]=e}_createDynamicClass(){return class{constructor(t,e){$(this,"_varipKeys");Object.assign(this,t),this._varipKeys=e}get varipKeys(){return[...this._varipKeys]}copy(){return jr.cloneDeep(this)}}}}var Zl={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){var e=1e3,r=6e4,n=36e5,s="millisecond",a="second",u="minute",c="hour",f="day",d="week",h="month",p="quarter",g="year",y="date",_="Invalid Date",w=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,v=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,x={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(q){var j=["th","st","nd","rd"],P=q%100;return"["+q+(j[(P-20)%10]||j[P]||j[0])+"]"}},b=function(q,j,P){var Z=String(q);return!Z||Z.length>=j?q:""+Array(j+1-Z.length).join(P)+q},N={s:b,z:function(q){var j=-q.utcOffset(),P=Math.abs(j),Z=Math.floor(P/60),W=P%60;return(j<=0?"+":"-")+b(Z,2,"0")+":"+b(W,2,"0")},m:function q(j,P){if(j.date()<P.date())return-q(P,j);var Z=12*(P.year()-j.year())+(P.month()-j.month()),W=j.clone().add(Z,h),X=P-W<0,J=j.clone().add(Z+(X?-1:1),h);return+(-(Z+(P-W)/(X?W-J:J-W))||0)},a:function(q){return q<0?Math.ceil(q)||0:Math.floor(q)},p:function(q){return{M:h,y:g,w:d,d:f,D:y,h:c,m:u,s:a,ms:s,Q:p}[q]||String(q||"").toLowerCase().replace(/s$/,"")},u:function(q){return q===void 0}},E="en",C={};C[E]=x;var F="$isDayjsObject",S=function(q){return q instanceof L||!(!q||!q[F])},I=function q(j,P,Z){var W;if(!j)return E;if(typeof j=="string"){var X=j.toLowerCase();C[X]&&(W=X),P&&(C[X]=P,W=X);var J=j.split("-");if(!W&&J.length>1)return q(J[0])}else{var ct=j.name;C[ct]=j,W=ct}return!Z&&W&&(E=W),W||!Z&&E},A=function(q,j){if(S(q))return q.clone();var P=typeof j=="object"?j:{};return P.date=q,P.args=arguments,new L(P)},O=N;O.l=I,O.i=S,O.w=function(q,j){return A(q,{locale:j.$L,utc:j.$u,x:j.$x,$offset:j.$offset})};var L=function(){function q(P){this.$L=I(P.locale,null,!0),this.parse(P),this.$x=this.$x||P.x||{},this[F]=!0}var j=q.prototype;return j.parse=function(P){this.$d=function(Z){var W=Z.date,X=Z.utc;if(W===null)return new Date(NaN);if(O.u(W))return new Date;if(W instanceof Date)return new Date(W);if(typeof W=="string"&&!/Z$/i.test(W)){var J=W.match(w);if(J){var ct=J[2]-1||0,gt=(J[7]||"0").substring(0,3);return X?new Date(Date.UTC(J[1],ct,J[3]||1,J[4]||0,J[5]||0,J[6]||0,gt)):new Date(J[1],ct,J[3]||1,J[4]||0,J[5]||0,J[6]||0,gt)}}return new Date(W)}(P),this.init()},j.init=function(){var P=this.$d;this.$y=P.getFullYear(),this.$M=P.getMonth(),this.$D=P.getDate(),this.$W=P.getDay(),this.$H=P.getHours(),this.$m=P.getMinutes(),this.$s=P.getSeconds(),this.$ms=P.getMilliseconds()},j.$utils=function(){return O},j.isValid=function(){return this.$d.toString()!==_},j.isSame=function(P,Z){var W=A(P);return this.startOf(Z)<=W&&W<=this.endOf(Z)},j.isAfter=function(P,Z){return A(P)<this.startOf(Z)},j.isBefore=function(P,Z){return this.endOf(Z)<A(P)},j.$g=function(P,Z,W){return O.u(P)?this[Z]:this.set(W,P)},j.unix=function(){return Math.floor(this.valueOf()/1e3)},j.valueOf=function(){return this.$d.getTime()},j.startOf=function(P,Z){var W=this,X=!!O.u(Z)||Z,J=O.p(P),ct=function(Tt,St){var fe=O.w(W.$u?Date.UTC(W.$y,St,Tt):new Date(W.$y,St,Tt),W);return X?fe:fe.endOf(f)},gt=function(Tt,St){return O.w(W.toDate()[Tt].apply(W.toDate("s"),(X?[0,0,0,0]:[23,59,59,999]).slice(St)),W)},st=this.$W,yt=this.$M,Dt=this.$D,Nt="set"+(this.$u?"UTC":"");switch(J){case g:return X?ct(1,0):ct(31,11);case h:return X?ct(1,yt):ct(0,yt+1);case d:var xt=this.$locale().weekStart||0,ue=(st<xt?st+7:st)-xt;return ct(X?Dt-ue:Dt+(6-ue),yt);case f:case y:return gt(Nt+"Hours",0);case c:return gt(Nt+"Minutes",1);case u:return gt(Nt+"Seconds",2);case a:return gt(Nt+"Milliseconds",3);default:return this.clone()}},j.endOf=function(P){return this.startOf(P,!1)},j.$set=function(P,Z){var W,X=O.p(P),J="set"+(this.$u?"UTC":""),ct=(W={},W[f]=J+"Date",W[y]=J+"Date",W[h]=J+"Month",W[g]=J+"FullYear",W[c]=J+"Hours",W[u]=J+"Minutes",W[a]=J+"Seconds",W[s]=J+"Milliseconds",W)[X],gt=X===f?this.$D+(Z-this.$W):Z;if(X===h||X===g){var st=this.clone().set(y,1);st.$d[ct](gt),st.init(),this.$d=st.set(y,Math.min(this.$D,st.daysInMonth())).$d}else ct&&this.$d[ct](gt);return this.init(),this},j.set=function(P,Z){return this.clone().$set(P,Z)},j.get=function(P){return this[O.p(P)]()},j.add=function(P,Z){var W,X=this;P=Number(P);var J=O.p(Z),ct=function(yt){var Dt=A(X);return O.w(Dt.date(Dt.date()+Math.round(yt*P)),X)};if(J===h)return this.set(h,this.$M+P);if(J===g)return this.set(g,this.$y+P);if(J===f)return ct(1);if(J===d)return ct(7);var gt=(W={},W[u]=r,W[c]=n,W[a]=e,W)[J]||1,st=this.$d.getTime()+P*gt;return O.w(st,this)},j.subtract=function(P,Z){return this.add(-1*P,Z)},j.format=function(P){var Z=this,W=this.$locale();if(!this.isValid())return W.invalidDate||_;var X=P||"YYYY-MM-DDTHH:mm:ssZ",J=O.z(this),ct=this.$H,gt=this.$m,st=this.$M,yt=W.weekdays,Dt=W.months,Nt=W.meridiem,xt=function(St,fe,ne,qt){return St&&(St[fe]||St(Z,X))||ne[fe].slice(0,qt)},ue=function(St){return O.s(ct%12||12,St,"0")},Tt=Nt||function(St,fe,ne){var qt=St<12?"AM":"PM";return ne?qt.toLowerCase():qt};return X.replace(v,function(St,fe){return fe||function(ne){switch(ne){case"YY":return String(Z.$y).slice(-2);case"YYYY":return O.s(Z.$y,4,"0");case"M":return st+1;case"MM":return O.s(st+1,2,"0");case"MMM":return xt(W.monthsShort,st,Dt,3);case"MMMM":return xt(Dt,st);case"D":return Z.$D;case"DD":return O.s(Z.$D,2,"0");case"d":return String(Z.$W);case"dd":return xt(W.weekdaysMin,Z.$W,yt,2);case"ddd":return xt(W.weekdaysShort,Z.$W,yt,3);case"dddd":return yt[Z.$W];case"H":return String(ct);case"HH":return O.s(ct,2,"0");case"h":return ue(1);case"hh":return ue(2);case"a":return Tt(ct,gt,!0);case"A":return Tt(ct,gt,!1);case"m":return String(gt);case"mm":return O.s(gt,2,"0");case"s":return String(Z.$s);case"ss":return O.s(Z.$s,2,"0");case"SSS":return O.s(Z.$ms,3,"0");case"Z":return J}return null}(St)||J.replace(":","")})},j.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},j.diff=function(P,Z,W){var X,J=this,ct=O.p(Z),gt=A(P),st=(gt.utcOffset()-this.utcOffset())*r,yt=this-gt,Dt=function(){return O.m(J,gt)};switch(ct){case g:X=Dt()/12;break;case h:X=Dt();break;case p:X=Dt()/3;break;case d:X=(yt-st)/6048e5;break;case f:X=(yt-st)/864e5;break;case c:X=yt/n;break;case u:X=yt/r;break;case a:X=yt/e;break;default:X=yt}return W?X:O.a(X)},j.daysInMonth=function(){return this.endOf(h).$D},j.$locale=function(){return C[this.$L]},j.locale=function(P,Z){if(!P)return this.$L;var W=this.clone(),X=I(P,Z,!0);return X&&(W.$L=X),W},j.clone=function(){return O.w(this.$d,this)},j.toDate=function(){return new Date(this.valueOf())},j.toJSON=function(){return this.isValid()?this.toISOString():null},j.toISOString=function(){return this.$d.toISOString()},j.toString=function(){return this.$d.toUTCString()},q}(),z=L.prototype;return A.prototype=z,[["$ms",s],["$s",a],["$m",u],["$H",c],["$W",f],["$M",h],["$y",g],["$D",y]].forEach(function(q){z[q[1]]=function(j){return this.$g(j,q[0],q[1])}}),A.extend=function(q,j){return q.$i||(q(j,L,A),q.$i=!0),A},A.locale=I,A.isDayjs=S,A.unix=function(q){return A(1e3*q)},A.en=C[E],A.Ls=C,A.p={},A})})(Zl);var Dp=Zl.exports,jt=Kt(Dp),Kl={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){var e="minute",r=/[+-]\d\d(?::?\d\d)?/g,n=/([+-]|\d\d)/g;return function(s,a,u){var c=a.prototype;u.utc=function(_){var w={date:_,utc:!0,args:arguments};return new a(w)},c.utc=function(_){var w=u(this.toDate(),{locale:this.$L,utc:!0});return _?w.add(this.utcOffset(),e):w},c.local=function(){return u(this.toDate(),{locale:this.$L,utc:!1})};var f=c.parse;c.parse=function(_){_.utc&&(this.$u=!0),this.$utils().u(_.$offset)||(this.$offset=_.$offset),f.call(this,_)};var d=c.init;c.init=function(){if(this.$u){var _=this.$d;this.$y=_.getUTCFullYear(),this.$M=_.getUTCMonth(),this.$D=_.getUTCDate(),this.$W=_.getUTCDay(),this.$H=_.getUTCHours(),this.$m=_.getUTCMinutes(),this.$s=_.getUTCSeconds(),this.$ms=_.getUTCMilliseconds()}else d.call(this)};var h=c.utcOffset;c.utcOffset=function(_,w){var v=this.$utils().u;if(v(_))return this.$u?0:v(this.$offset)?h.call(this):this.$offset;if(typeof _=="string"&&(_=function(E){E===void 0&&(E="");var C=E.match(r);if(!C)return null;var F=(""+C[0]).match(n)||["-",0,0],S=F[0],I=60*+F[1]+ +F[2];return I===0?0:S==="+"?I:-I}(_),_===null))return this;var x=Math.abs(_)<=16?60*_:_,b=this;if(w)return b.$offset=x,b.$u=_===0,b;if(_!==0){var N=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(b=this.local().add(x+N,e)).$offset=x,b.$x.$localOffset=N}else b=this.utc();return b};var p=c.format;c.format=function(_){var w=_||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return p.call(this,w)},c.valueOf=function(){var _=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*_},c.isUTC=function(){return!!this.$u},c.toISOString=function(){return this.toDate().toISOString()},c.toString=function(){return this.toDate().toUTCString()};var g=c.toDate;c.toDate=function(_){return _==="s"&&this.$offset?u(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():g.call(this)};var y=c.diff;c.diff=function(_,w,v){if(_&&this.$u===_.$u)return y.call(this,_,w,v);var x=this.local(),b=u(_).local();return y.call(x,b,w,v)}}})})(Kl);var bp=Kl.exports,xa=Kt(bp),Gl={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){var e={year:0,month:1,day:2,hour:3,minute:4,second:5},r={};return function(n,s,a){var u,c=function(p,g,y){y===void 0&&(y={});var _=new Date(p),w=function(v,x){x===void 0&&(x={});var b=x.timeZoneName||"short",N=v+"|"+b,E=r[N];return E||(E=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:v,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:b}),r[N]=E),E}(g,y);return w.formatToParts(_)},f=function(p,g){for(var y=c(p,g),_=[],w=0;w<y.length;w+=1){var v=y[w],x=v.type,b=v.value,N=e[x];N>=0&&(_[N]=parseInt(b,10))}var E=_[3],C=E===24?0:E,F=_[0]+"-"+_[1]+"-"+_[2]+" "+C+":"+_[4]+":"+_[5]+":000",S=+p;return(a.utc(F).valueOf()-(S-=S%1e3))/6e4},d=s.prototype;d.tz=function(p,g){p===void 0&&(p=u);var y=this.utcOffset(),_=this.toDate(),w=_.toLocaleString("en-US",{timeZone:p}),v=Math.round((_-new Date(w))/1e3/60),x=a(w,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(15*-Math.round(_.getTimezoneOffset()/15)-v,!0);if(g){var b=x.utcOffset();x=x.add(y-b,"minute")}return x.$x.$timezone=p,x},d.offsetName=function(p){var g=this.$x.$timezone||a.tz.guess(),y=c(this.valueOf(),g,{timeZoneName:p}).find(function(_){return _.type.toLowerCase()==="timezonename"});return y&&y.value};var h=d.startOf;d.startOf=function(p,g){if(!this.$x||!this.$x.$timezone)return h.call(this,p,g);var y=a(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return h.call(y,p,g).tz(this.$x.$timezone,!0)},a.tz=function(p,g,y){var _=y&&g,w=y||g||u,v=f(+a(),w);if(typeof p!="string")return a(p).tz(w);var x=function(C,F,S){var I=C-60*F*1e3,A=f(I,S);if(F===A)return[I,F];var O=f(I-=60*(A-F)*1e3,S);return A===O?[I,A]:[C-60*Math.min(A,O)*1e3,Math.max(A,O)]}(a.utc(p,_).valueOf(),v,w),b=x[0],N=x[1],E=a(b).utcOffset(N);return E.$x.$timezone=w,E},a.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},a.tz.setDefault=function(p){u=p}}})})(Gl);var xp=Gl.exports,Ea=Kt(xp),Jl={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){var e="week",r="year";return function(n,s,a){var u=s.prototype;u.week=function(c){if(c===void 0&&(c=null),c!==null)return this.add(7*(c-this.week()),"day");var f=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var d=a(this).startOf(r).add(1,r).date(f),h=a(this).endOf(e);if(d.isBefore(h))return 1}var p=a(this).startOf(r).date(f).startOf(e).subtract(1,"millisecond"),g=this.diff(p,e,!0);return g<0?a(this).startOf("week").week():Math.ceil(g)},u.weeks=function(c){return c===void 0&&(c=null),this.week(c)}}})})(Jl);var Ep=Jl.exports,Ap=Kt(Ep);jt.extend(xa),jt.extend(Ea);function He(i,t){return i.replace(/\$(\w+)/g,(e,r)=>String(t[r])||e)}function Fs(i){const t=parseInt(i)||1;let e=i.replace(/\d+/,"");return e==="m"||e==="M"?e="M":e?e=e.toLocaleLowerCase():e="m",[t,e]}function Cp(i){const t=/([+-])(\d{1,2})(\d{0,2})/,e=i.replace(/GMT|UTC/,"").match(t);if(!e)return 0;const[,r,n,s]=e,a=parseInt(n,10)*60||0,u=parseInt(s,10)||0;return(r==="+"?1:-1)*(a+u)}function mr(i,t){return t&&(t.startsWith("UTC")||t.startsWith("GMT"))?jt.utc(i).utcOffset(Cp(t)):jt.tz(i,t)}function gr(i,t){const[e,r]=Fs(i);let n=0;switch(r){case"m":n=60;break;case"s":n=1;break;case"M":return Mp(t,Number(e))*24*60*60;case"d":n=24*60*60;break;case"w":n=7*24*60*60;break;default:n=60*60;break}return Math.round(Number(e)*n)}function Mp(i,t){const e=jt(i),r=e.month();let n=0;for(;t>0;){t-=1;const s=r+t,a=e.month(s).daysInMonth();n+=a}return n}function _t(i){return typeof i!="number"||isNaN(i)}function ge(i,t){for(const e of t)i!=null&&i.hasOwnProperty(e)&&i[e]===void 0&&(i[e]=null)}function Xl(i){var t=atob(i),e=decodeURI(t);return e}function Ql(i,t){if(!String(i).includes("."))return i;const e=Math.pow(10,t);return Math.floor(i*e)/e}function tc(i,t=5){if(i===void 0)return i;const e=Math.pow(10,t+1);return Math.ceil(i*e)/e}function ec(i,t=5){if(i===void 0)return i;const e=Math.pow(10,t+1);return Math.floor(i*e)/e}function rc(i){const t=parseInt(i);return i.length>1&&t===1?i.replace("1",""):i}var Fe=(i=>(i.BOOL="bool",i.INT="int",i.FLOAT="float",i.ARRAY="array",i.BOX="box",i.CHART_POINT="chart.point",i.COLOR="color",i.CONST="const",i.LABEL="label",i.LINE="line",i.LINEFILL="linefill",i.MAP="map",i.MATRIX="matrix",i.POLYLINE="polyline",i.SERIES="series",i.SIMPLE="simple",i.STRING="string",i.TABLE="table",i.UNDETERMINED="undetermined type",i.INPUT="input",i.NA="na",i.VOID="void",i.ENUM="enum",i))(Fe||{}),Ns=(i=>(i.dividends="dividends",i.none="none",i.splits="splits",i))(Ns||{}),Wr=(i=>(i.freqAll="freq_all",i.freqOncePerBar="freq_once_per_bar",i.freqOncePerBarClose="freq_once_per_bar_close",i))(Wr||{}),ln=(i=>(i.gapsOff="gaps_off",i.gapsOn="gaps_on",i.lookaheadOff="lookahead_off",i.lookaheadOn="lookahead_on",i))(ln||{}),Ze=(i=>(i.all="all",i.dataWindow="data_window",i.none="none",i.pane="pane",i.priceScale="price_scale",i.statusLine="status_line",i))(Ze||{}),Yr=(i=>(i.both="both",i.left="left",i.none="none",i.right="right",i))(Yr||{}),Gt=(i=>(i.inherit="inherit",i.mintick="mintick",i.percent="percent",i.price="price",i.volume="volume",i))(Gt||{}),Ss=(i=>(i.styleDashed="style_dashed",i.styleDotted="style_dotted",i.styleSolid="style_solid",i))(Ss||{}),ve=(i=>(i.styleArrowdown="style_arrowdown",i.styleArrowup="style_arrowup",i.styleCircle="style_circle",i.styleCross="style_cross",i.styleDiamond="style_diamond",i.styleFlag="style_flag",i.styleLabelCenter="style_label_center",i.styleLabelDown="style_label_down",i.styleLabelLeft="style_label_left",i.styleLabelLowerLeft="style_label_lower_left",i.styleLabelLowerRight="style_label_lower_right",i.styleLabelRight="style_label_right",i.styleLabelUp="style_label_up",i.styleLabelUpperLeft="style_label_upper_left",i.styleLabelUpperRight="style_label_upper_right",i.styleNone="style_none",i.styleSquare="style_square",i.styleTextOutline="style_text_outline",i.styleTriangledown="style_triangledown",i.styleTriangleup="style_triangleup",i.styleXcross="style_xcross",i))(ve||{}),Re=(i=>(i.styleArrowBoth="style_arrow_both",i.styleArrowLeft="style_arrow_left",i.styleArrowRight="style_arrow_right",i.styleDashed="style_dashed",i.styleDotted="style_dotted",i.styleSolid="style_solid",i))(Re||{}),cn=(i=>(i.abovebar="abovebar",i.absolute="absolute",i.belowbar="belowbar",i.bottom="bottom",i.top="top",i))(cn||{}),Gn=(i=>(i.ascending="ascending",i.descending="descending",i))(Gn||{}),Or=(i=>(i.styleArea="Area",i.styleAreabr="Area With Breaks",i.styleCircles="Circles",i.styleColumns="Columns",i.styleCross="Cross",i.styleHistogram="Histogram",i.styleLine="Line",i.styleLinebr="Line With Breaks",i.styleStepline="Step Line",i.styleSteplineDiamond="Step Line With Diamonds",i.styleSteplinebr="Step line with Breaks",i))(Or||{}),vr=(i=>(i.bottomCenter="bottom_center",i.bottomLeft="bottom_left",i.bottomRight="bottom_right",i.middleCenter="middle_center",i.middleLeft="middle_left",i.middleRight="middle_right",i.topCenter="top_center",i.topLeft="top_left",i.topRight="top_right",i))(vr||{}),Os=(i=>(i.left="left",i.none="none",i.right="right",i))(Os||{}),Mn=(i=>(i.extended="extended",i.regular="regular",i))(Mn||{}),lr=(i=>(i.arrowdown="arrowdown",i.arrowup="arrowup",i.circle="circle",i.cross="cross",i.diamond="diamond",i.flag="flag",i.labeldown="labeldown",i.labelup="labelup",i.square="square",i.triangledown="triangledown",i.triangleup="triangleup",i.xcross="xcross",i))(lr||{}),ir=(i=>(i.auto="auto",i.huge="huge",i.large="large",i.normal="normal",i.small="small",i.tiny="tiny",i))(ir||{}),Jn=(i=>(i.familyDefault="default",i.familyMonospace="monospace",i))(Jn||{}),Pe=(i=>(i.cash="cash",i.fixed="fixed",i.percentOfEquity="percent_of_equity",i))(Pe||{}),We=(i=>(i.cashPerContract="cash_per_contract",i.cashPerOrder="cash_per_order",i.percent="percent",i))(We||{}),ce=(i=>(i.all="all",i.long="long",i.short="short",i))(ce||{}),fn=(i=>(i.cancel="cancel",i.none="none",i.reduce="reduce",i))(fn||{}),Wt=(i=>(i.alignBottom="align_bottom",i.alignCenter="align_center",i.alignLeft="align_left",i.alignRight="align_right",i.alignTop="align_top",i.wrapAuto="wrap_auto",i.wrapNone="wrap_none",i))(Wt||{}),De=(i=>(i.bar_index="bar_index",i.bar_time="bar_time",i))(De||{}),Vr=(i=>(i.abovebar="abovebar",i.belowbar="belowbar",i.price="price",i))(Vr||{}),Bs=(i=>(i.actual="actual",i.estimate="estimate",i.standardized="standardized",i))(Bs||{}),Xn=(i=>(i.traditional="Traditional",i.fibonacci="Fibonacci",i.woodie="Woodie",i.classic="Classic",i.dm="DM",i.camarilla="Camarilla",i))(Xn||{}),sr=(i=>(i.INT="int",i.BOOL="bool",i.TIME="time",i.COLOR="color",i.FLOAT="float",i.PRICE="price",i.SOURCE="source",i.STRING="string",i.SYMBOL="symbol",i.SESSION="session",i.TEXT_AREA="text_area",i.TIMEFRAME="timeframe",i.ENUM="enum",i))(sr||{}),nc=(i=>(i.library="library",i.indicator="indicator",i.strategy="strategy",i))(nc||{}),Lt=(i=>(i[i.Hint=1]="Hint",i[i.Info=2]="Info",i[i.Warning=4]="Warning",i[i.Error=8]="Error",i))(Lt||{});const re={onlyInLoop:"'$text' is only allowed inside loops",invalidType:"Invalid argument 'expr$index' in 'operator SQBR' call",typeUseError:"Cannot specify a type form '$text' without also specifying the type.",notTypeKeyword:"'$text' is not a valid type keyword in variable declaration",undeclared:"Undeclared identifier '$name'",repeatVar:"'$name' is already defined",typeRepeatErr:"$keyword '$name' is already defined.",typeMismatch:"Cannot call '$operator' with argument '$index'. An argument of '$typeE' type was used but a '$typeR' is expected.",assignTypeMismatch:"Cannot assign a value of the `$typeE` type to the '$name' variable. The variable is declared with the `$typeR` type.",voidNotVar:"Void expression cannot be assigned to a variable",declareTypeErr:"Declared type '$type' is not compatible with assigned type '$valueType'",mapKeyValErr:"Cannot put <$typeA, $typeB> pairs into a map containing `$typeC` keys and `$typeD` values. The maps passed into the `$name()` function must have the same key types and value types.",inputSourceErr:"Invalid value for the '$name' parameter of the '$funcName' function. Possible values: [open, high, low, close, hl2, hlc3, ohlc4, hlcc4, volume].",buildInUseErr:"Cannot use '$name' as the default value of a type's field. The default value cannot be a function, variable or calculation.",argsLenErr:"Too many arguments passed into the `$name()` function call. Passed $lenA arguments but expected $lenB.",requiredParamErr:"No value assigned to the `$argName` parameter in $name()",argsSyntaxErr:"Syntax error after the argument for `$argName`. Arguments without their parameter name cannot be used after arguments with parameter names.",requestArgsErr:"Type $type cannot be used in $name '$argName' argument",mapKeyErr:"Incorrect `key` type `$type` in the variable. The `key` type must be one of the following: int, float, string, bool, color.",templateErr:"Incorrect number of arguments for the template: $countA expected, $countB passed.",templateNoSupportErr:"The '$name()' function does not support templates",ifOrSwitchTypeErr:"Return type of one of the '$keyword' blocks is not compatible with return type of other block(s) ($types)",argsNameErr:"The '$name' function does not have an argument with the name '$argName'",noFiledErr:"Object has no field $name",methodNotExistErr:"Could not find method or method reference '$methodName' for '$name'",tupleVarErr:"Syntax error: The quantities of tuple elements on each side of the assignment operator do not match. The right side has $indexA but the left side has $indexB.",tupleLeftVarErr:"Invalid assignment. Cannot assign a tuple to a variable '$name'.",tupleRightVarErr:"Cannot assign a variable to a tuple. The right side must be a function call or structure ('if', 'switch', 'for', 'while') returning a tuple with the same number of elements.",tempateTypeErr:"Syntax error: Only templates for arrays and matrices consist of a single type identifier enclosed in angle brackets.",qualifierErr:"'$name' is not a valid type qualifier. Possible values: 'const', 'simple', 'series'",notFindFuncErr:"Could not find function or function reference '$name'",naVarErr:"Value with NA type cannot be assigned to a variable that was defined without type keyword",notHistoryErr:"Variable '$name' doesn't have history values",defaultValueErr:"The default value cannot be a function, variable or calculation.",defaultValueTypeErr:"Default value of type $typeE can not be assigned to an argument of type $typeR",typeFieldErr:"In a type declaration, all fields without a default value must be explicitly typified.",unaryErr:"Syntax error at input '$sign'",funcArgAssignErr:"Function arguments cannot be mutable ('$name')",declaredErr:"A variable declared with the '$prefix' keyword cannot accept values of the '$type' form. Assign a '$prefix' value to this variable or remove the '$prefix' keyword from its declaration.",globalFuncErr:"Cannot use '$name' in local scope",onlyStatementErr:"Scripts must contain one declaration statement: `indicator()`, `strategy()` or `library()`, Your script has $count.",modifyGlobalVarErr:"Cannot modify global variable '$name' in function",inputDefvalErr:"Arguments of input function must be of constant type, or 'source' builtin variables.",objectIsNaErr:"Cannot access the '$name' $type of an na object. The object is 'na'.",buidinAssignErr:"Cannot assign a new value to the built-in variable '$name'.",buidinVarErr:"Cannot shadow the built-in variable `$name` because it has already been used as a built-in.",useNaErr:"Cannot use an `na` value of an unspecified type in the `$name` function.",libraryTitleErr:"Invalid argument 'title' in 'library' call. It cannot contain spaces, special characters or begin with a digit.",exportFuncArgErr:"All exported functions args should be typified",indiRunErr:"An indicator must contain at least one of the following: any `plot*()` function, `barcolor()`, `bgcolor()`, `hline()`, `alertcondition()`, or any drawing (line, label, box, table, polyline).",libraryExportErr:"A library must contain at least one exported function, method, or type.",strategyRunErr:"A strategy must contain at least one of the following: any `strategy.*()` function that creates orders, any `plot*()` function, `barcolor()`, `bgcolor()`, `hline()`, or any drawing (line, label, box, table, polyline).",exportUseErr:"Only libraries can contain exported $type.",funcRepeatErr:"The '$name' function has overloads with the same parameters. The type of parameters must be different in overloaded versions of functions.",importMultipleErr:"Cannot import a library more than once",importNotExitErr:"The user '$username' does not have a published library titled '$libraryName'",importNameRepeatErr:"More than one import uses the same alias: $name. Previous usage at line: $line",exportFuncHasInputErr:"The exported function '$func' depends on the '$name' input variable, which is not allowed.",libraryTitleIsKeywordErr:"Invalid argument 'title' in 'library' call. Token: '$name' can't be used as library title.",exportFuncUseGlobalVarErr:"Cannot use global variables in exported functions. Function: $func",loopRuntimeErr:"Loop takes too long to execute (> 500 ms)",paramsErr:"Invalid value '$value' for '$param' parameter of the '$func' function. Possible values: $targetVal",displayErr:"Invalid argument 'display' in '$func' call. Possible values: $values",exportFuncUseReqErr:"Cannot use `request.*()` call in exported function `$name()`",requestExprErr:"Type series $type cannot be used in $name 'expression' argument",argDefaultErr:"The default value assigned to a parameter must be either a literal value (e.g., `5`) or a built-in variable (e.g., `close`)",overloadFuncErr:"Cannot use global variables or any values qualified as 'input' in the local scopes of overloaded functions or methods. Remove any global variables or inputs from the scopes of all '$name()' overloads.",againAssignErr:"Unable to determine the object for the field assignment. Try putting the object into a separate variable before assigning values to its fields.",requestUserInLoopErr:"Cannot use `request.*()` call within loops or conditional structures.",enumVarNameErr:"Invalid enum name '$name': `bool`, `int`, `float`, `string`, and `color` are not allowed.",enumVarNameBuiltinErr:"Invalid object name: $name. Namespaces of built-ins cannot be used.",typeNameErr:"Invalid user-defined type name '$name': `bool`, `int`, `float`, `string`, and `color` are not allowed.",enumUseErr:"Cannot use the '$name' as a value. Use one of the enum's fields instead.",conditionalErr:"'$name' conditional expression must be of a bool type!",fortoErr:'The value of the "for" loop must be a number.',indicatorUseStrategyFuncErr:"You cannot use strategy $type ($name) in indicator script.",arrEmptyErr:"Array must not be empty",arrLengthDiffErr:"Arrays have different lengths",arrTypeErr:"数组类型错误,array.$name方法只能使用$type类型数组!",inputOptErr:"input's defval should be in options, but '$defval' is not in [$args]",mathRandomErr:"min must be less than max",matrixRehapeErr:"New matrix must be of same area as original matrix",strategyExitErr:"strategy.exit must have at least one of the following parameters: 'profit', 'limit', 'loss', 'stop' or one of the following pairs: 'trail_offset' and 'trail_price' / 'trail_points'. To close the position at market price, use 'strategy.close'",arrLenErr:"Invalid array length",mergeCellErr:"error: start_column > end_column or start_row > end_row",minOrMaxErr:"Input's `defval` value must be between `minval` and `maxval`",requestsNumErr:"Exceeded the maximum number of requests 40"},Fp={repeatVar:"Shadowing variable '$name' which exists in parent scope. Did you want to use the ':=' operator instead of '=' ?",typeMismatch:"The `$index` parameter of the `$operator` function accepts a '$type' argument. To avoid potential unexpected results, pass a '$type' value or expression to this parameter.",moreSameArg:"More than one '$arg' arguments are supplied. Only the first one will be used.",localScopeGetHistory:"The variable '$name' is declared in local scope, which may not be executed at every update. So, obtaining its historical values may lead to unexpected results",localScopeWarning:"The function '$name' should be called on each calculation for consistency. It is recommended to extract the call from this scope",strategyCalcTickWarn:"Strategies without `calc_on_every_tick = true` only calculate on confirmed chart bars. In this case, `barstate.islast` may not initially return `true` on realtime bars, as the last bar is unconfirmed until it closes. If you need to check whether a bar is the latest before it closes, enable `calc_on_every_tick` in the `strategy()` function.",conditionWarning:"The `condition` parameter of the `$name` accepts a 'bool' argument. To avoid potential unexpected results, pass a 'bool' value or expression to this parameter.",lineWidthWarning:"Passing a value below 1 to `linewidth` will be replaced with 1 during compilation.",boolVarNumWarning:"The `$name` variable casts a numeric value to the 'bool' type. To avoid potential unexpected results, assign a 'bool' value to this variable."};Fe.SERIES,Fe.SIMPLE,Fe.INPUT,Fe.CONST,Fe.INT,Fe.FLOAT,Fe.BOOL,Fe.COLOR,Fe.STRING;const Np=["close","open","high","low","hl2","hlc3","hlcc4","ohlc4","volume"],Sp=["case","catch","default","delete","do","finally","function","instanceof","new","return","this","throw","try","typeof","void","with"],Op=["linefill","polyline","matrix","series","simple","string","array","color","const","float","label","table","bool","line","box","int","map","continue","for","varip","var","in","export","import","method","switch","break","while","else","type","and","for","not","as","by","if","in","or","to"];class Bp{constructor(t){$(this,"_errorListener");this._errorListener=t}new({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_float({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_int({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_color({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_bool({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_string({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_line({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_box({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_table({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_linefill({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}new_label({size:t,initial_value:e}={}){return new te(t,e,this._errorListener)}copy({id:t}){return t==null?void 0:t.copy()}slice({id:t,index_from:e,index_to:r}){return t==null?void 0:t.slice({index_from:e,index_to:r})}size({id:t}){return t==null?void 0:t.size()}first({id:t}){return t==null?void 0:t.first()}abs({id:t},e){return t==null?void 0:t.abs(e)}avg({id:t},e){return t==null?void 0:t.avg(e)}binary_search({id:t,val:e},r){return t==null?void 0:t.binary_search({val:e},r)}binary_search_leftmost({id:t,val:e},r){return t==null?void 0:t.binary_search_leftmost({val:e},r)}binary_search_rightmost({id:t,val:e},r){return t==null?void 0:t.binary_search_rightmost({val:e},r)}clear({id:t}){t==null||t.clear()}concat({id1:t,id2:e}){return t==null?void 0:t.concat({id2:e})}covariance({id1:t,id2:e,biased:r},n){return t==null?void 0:t.covariance({id2:e,biased:r},n)}every({id:t},e){return t==null?void 0:t.every(e)}from(t,e){const r=new te(0,void 0,this._errorListener);return r._value=e,r}fill({id:t,value:e,index_from:r,index_to:n}){t==null||t.fill({value:e,index_from:r,index_to:n})}get({id:t,index:e}){return t==null?void 0:t.get({index:e})}includes({id:t,value:e}){return t==null?void 0:t.includes({value:e})}indexof({id:t,value:e}){return t==null?void 0:t.indexof({value:e})}insert({id:t,index:e,value:r}){t==null||t.insert({index:e,value:r})}join({id:t,separator:e},r){return t==null?void 0:t.join({separator:e},r)}last({id:t}){return t==null?void 0:t.last()}lastindexof({id:t,value:e}){return t==null?void 0:t.lastindexof({value:e})}max({id:t,nth:e},r){return t==null?void 0:t.max({nth:e},r)}median({id:t},e){return t==null?void 0:t.median(e)}min({id:t,nth:e},r){return t==null?void 0:t.min({nth:e},r)}mode({id:t},e){return t==null?void 0:t.mode(e)}percentile_linear_interpolation({id:t,percentage:e},r){return t==null?void 0:t.percentile_linear_interpolation({percentage:e},r)}percentile_nearest_rank({id:t,percentage:e},r){return t==null?void 0:t.percentile_nearest_rank({percentage:e},r)}percentrank({id:t,index:e},r){return t==null?void 0:t.percentrank({index:e},r)}pop({id:t}){return t==null?void 0:t.pop()}push({id:t,value:e}){t==null||t.push({value:e})}range({id:t},e){return t==null?void 0:t.range(e)}remove({id:t,index:e}){return t==null?void 0:t.remove({index:e})}reverse({id:t}){return t==null?void 0:t.reverse()}set({id:t,index:e,value:r}){t==null||t.set({index:e,value:r})}shift({id:t}){return t==null?void 0:t.shift()}some({id:t},e){return t==null?void 0:t.some(e)}sort({id:t,order:e},r){t==null||t.sort({order:e},r)}sort_indices({id:t,order:e},r){return t==null?void 0:t.sort_indices({order:e},r)}standardize({id:t},e){return t==null?void 0:t.standardize(e)}stdev({id:t,biased:e},r){return t==null?void 0:t.stdev({biased:e},r)}sum({id:t},e){return t==null?void 0:t.sum(e)}unshift({id:t,value:e}){t==null||t.unshift({value:e})}variance({id:t,biased:e},r){return t==null?void 0:t.variance({biased:e},r)}}class te{constructor(t=0,e,r){$(this,"_arrInstance");$(this,"_errorListener");this._errorListener=r,this._arrInstance=Array.from(new Array(t||0),()=>jr.cloneDeep(e))}get isArray(){return!0}get _value(){return[...this._arrInstance]}set _value(t){this._arrInstance=[...t]}_deepCopyData(t){this._arrInstance=jr.cloneDeep(t)}_copyData(t){this._arrInstance=t}copy(){const t=new te(0,void 0,this._errorListener);return t._deepCopyData(this._arrInstance),t}slice({index_from:t,index_to:e}){const r=new te(0,void 0,this._errorListener);return r._copyData(this._arrInstance.slice(t,e)),r}size(){return this._arrInstance.length}first(){return this._arrInstance[0]}abs(t){const e=new te(0,void 0,this._errorListener);this._verifySimpleType("number","abs","int/float",t);const r=this._arrInstance.map(n=>Math.abs(n));return e._copyData(r),e}avg(t){return this._verifySimpleType("number","avg","int/float",t),jr.mean(this._arrInstance)}binary_search({val:t},e){return this._verifySimpleType("number","binary_search","int/float",e),_t(t)?-1:this._binarySearch(this._arrInstance,t)}binary_search_leftmost({val:t},e){return this._verifySimpleType("number","binary_search_leftmost","int/float",e),_t(t)?this._arrInstance.length-1:this._binarySearchLeftMost(this._arrInstance,t)}binary_search_rightmost({val:t},e){return this._verifySimpleType("number","binary_search_rightmost","int/float",e),_t(t)?this._arrInstance.length:this._binarySearchRightMost(this._arrInstance,t)}clear(){this._arrInstance=[]}concat({id2:t}){return this._arrInstance=this._arrInstance.concat(t==null?void 0:t._value),this}covariance({id2:t,biased:e},r){return this._verifySimpleType("number","covariance","int/float",r),this._verifySimpleType("number","covariance","int/float",r,t==null?void 0:t._value),this._covariance(this._arrInstance,t._value,e,r)}every(t){return this._verifySimpleType("number|boolean","every","int/float/bool",t),this._arrInstance.every(e=>!!e)}fill({value:t,index_from:e=0,index_to:r}){this._arrInstance=this._setElements(this._arrInstance,t,e,r)}get({index:t}){if(!_t(t))return this._arrInstance[t]}includes({value:t}){return this._arrInstance.includes(t)}indexof({value:t}){return this._arrInstance.indexOf(t)}insert({index:t,value:e}){_t(t)||this._arrInstance.splice(t,0,e)}join({separator:t}={},e){return this._verifySimpleType("number|string","join","int/float/string",e),this._arrInstance.join(t)}last(){return this._arrInstance[this._arrInstance.length-1]}lastindexof({value:t}){return this._arrInstance.lastIndexOf(t)}max({nth:t}={},e){return this._verifySimpleType("number","max","int/float",e),this._maxNth([...this._arrInstance],t)}median(t){return this._verifySimpleType("number","median","int/float",t),this._median([...this._arrInstance])}min({nth:t}={},e){return this._verifySimpleType("number","min","int/float",e),this._minNth([...this._arrInstance],t)}mode(t){return this._verifySimpleType("number","mode","int/float",t),this._mode([...this._arrInstance])}percentile_linear_interpolation({percentage:t},e){return this._verifySimpleType("number","percentile_linear_interpolation","int/float",e),this._percentileLinearInterpolation([...this._arrInstance],t)}percentile_nearest_rank({percentage:t=0},e){var r;if(this._arrInstance.length===0||t<0||t>100||_t(t)){(r=this._errorListener)==null||r.addError("Invalid percentile or empty array",e,Lt.Error);return}return this._verifySimpleType("number","percentile_nearest_rank","int/float",e),this._getNearestRankPercentile([...this._arrInstance],t)}percentrank({index:t},e){return this._verifySimpleType("number","percentrank","int/float",e),this._getPercentileRank([...this._arrInstance],t)}pop(){return this._arrInstance.pop()}push({value:t}){this._arrInstance.push(t)}range(t){var s;if(this._arrInstance.length===0){(s=this._errorListener)==null||s.addError(re.arrEmptyErr,t,Lt.Error);return}this._verifySimpleType("number","range","int/float",t);const e=Math.min(...this._arrInstance);return Math.max(...this._arrInstance)-e}remove({index:t}){if(!_t(t))return this._arrInstance.splice(t,1)[0]}reverse(){this._arrInstance.reverse()}set({index:t,value:e}){_t(t)||(this._arrInstance[t]=e)}shift(){return this._arrInstance.shift()}some(t){return this._verifySimpleType("number|boolean","some","int/float/bool",t),this._arrInstance.some(e=>!!e)}sort({order:t}={},e){this._verifySimpleType("number","sort","int/float",e),this._arrInstance.sort((r,n)=>t!==Gn.descending?r-n:n-r)}sort_indices({order:t}={},e){this._verifySimpleType("number","sort_indices","int/float",e);const r=this._arrInstance.map((s,a)=>a);r.sort((s,a)=>t!==Gn.descending?this._arrInstance[s]-this._arrInstance[a]:this._arrInstance[a]-this._arrInstance[s]);const n=new te(0,void 0,this._errorListener);return n._copyData(r),n}standardize(t){this._verifySimpleType("number","standardize","int/float",t);const e=new te(0,void 0,this._errorListener);return e._copyData(this._standardizeArray([...this._arrInstance])),e}stdev({biased:t}={},e){var r;if(this._arrInstance.length===0){(r=this._errorListener)==null||r.addError(re.arrEmptyErr,e,Lt.Error);return}return this._verifySimpleType("number","stdev","int/float",e),this._calculateStandardDeviations([...this._arrInstance],t)}sum(t){return this._verifySimpleType("number","sum","int/float",t),this._arrInstance.reduce((r,n)=>r+(n||0),0)}unshift({value:t}){this._arrInstance.unshift(t)}variance({biased:t}={},e){var r;if(this._arrInstance.length===0){(r=this._errorListener)==null||r.addError(re.arrEmptyErr,e,Lt.Error);return}return this._verifySimpleType("number","variance","int/float",e),this._calculateVariances([...this._arrInstance],t)}_calculateVariances(t,e=!0){const r=t.reduce((a,u)=>a+(u||0),0)/t.length,n=t.reduce((a,u)=>a+((u||0)-r)**2,0),s=n/t.length;return e?s:t.length>1?n/(t.length-1):s}_calculateStandardDeviations(t,e=!0){const r=t.reduce((a,u)=>a+(u||0),0)/t.length,n=t.reduce((a,u)=>{const c=(u||0)-r;return a+c*c},0),s=Math.sqrt(n/t.length);return e?s:t.length>1?Math.sqrt(n/(t.length-1)):s}_standardizeArray(t){const e=t.reduce((s,a)=>s+(a||0),0)/t.length,r=Math.sqrt(t.reduce((s,a)=>s+Math.pow((a||0)-e,2),0)/t.length);return t.map(s=>((s||0)-e)/r)}_getPercentileRank(t,e=0){if(_t(e))return;const r=t[e];let n=0;for(let a=0;a<t.length;a++)(t[a]<r||t[a]===r&&a!=e)&&n++;return n/(t.length-1)*100}_getNearestRankPercentile(t,e=0){const r=t.slice().sort((a,u)=>a-u),n=e/100*r.length,s=Math.ceil(n)-1;return r[s>=r.length?r.length-1:s]}_percentileLinearInterpolation(t,e=0){if(e<0||e>100||_t(e))return;t.sort(function(s,a){return s-a});const r=t.length;e/=100;const n=1/(r*2);if(e<=n)return t[0];if(e>=1-1/(r*2))return t[r-1];for(const[s,a]of t.entries()){const u=t[s-1];if(e<(s+.5)/r)return u+(a-u)*(e-(s-.5)/r)/(1/r)}}_mode(t){const e={};let r=0;const n=[];for(const s of t)e[s]=(e[s]||0)+1,r=Math.max(r,e[s]);for(const s in e)e[s]===r&&n.push(Number(s));return Math.min(...r===1?t:n)}_median(t){t.sort(function(r,n){return r-n});const e=Math.floor(t.length/2);return t.length%2?t[e]:(t[e-1]+t[e])/2}_minNth(t,e=0){return t.sort(function(r,n){return r-n}),t[e]}_maxNth(t,e=0){return t.sort(function(r,n){return n-r}),t[e]}_setElements(t,e,r=0,n){n===void 0&&(n=t.length);for(let s=r;s<n;s++)t[s]=e;return t}_covariance(t,e,r=!0,n){var c;if(t.length!=e.length){(c=this._errorListener)==null||c.addError(re.arrLengthDiffErr,n,Lt.Error);return}t=t.filter(f=>f!==void 0),e=e.filter(f=>f!==void 0);const s=t.reduce((f,d)=>f+d,0)/t.length,a=e.reduce((f,d)=>f+d,0)/e.length;let u=0;for(let f=0;f<t.length;f++)u+=(t[f]-s)*(e[f]-a);return r?u/t.length:u/(t.length-1)}_verifySimpleType(t,e,r,n,s=this._arrInstance){var u;s.filter(c=>c!==void 0).some(c=>!t.split("|").includes(typeof c))&&((u=this._errorListener)==null||u.addError(He(re.arrTypeErr,{name:e,type:r}),n,Lt.Error))}_binarySearch(t,e){let r=0,n=t.length-1;for(;r<=n;){const s=Math.floor((r+n)/2);if(t[s]===e)return s;t[s]<e?r=s+1:n=s-1}return-1}_binarySearchLeftMost(t,e){let r=0,n=t.length-1;const s=[];for(;r<=n;){const a=Math.floor((r+n)/2);t[a]===e&&s.push(a),t[a]<e?r=a+1:n=a-1}return s.length?Math.min(...s):r-1}_binarySearchRightMost(t,e){let r=0,n=t.length-1;const s=[];for(;r<=n;){const a=Math.floor((r+n)/2);t[a]===e&&s.push(a),t[a]<=e?r=a+1:n=a-1}return s.length?Math.max(...s):r}}class Tp{constructor(t,e){$(this,"_randomNums");$(this,"_mintick");$(this,"_cacheData");$(this,"_barIndex");$(this,"_errorListener");this._mintick=t,this._randomNums={},this._cacheData={},this._barIndex=0,this._errorListener=e}update(t){this._barIndex=t,this._randomNums={}}abs({number:t}){if(!_t(t))return Math.abs(t)}acos({angle:t}){if(_t(t))return;const e=Math.acos(t);return isNaN(e)?void 0:e}asin({angle:t}){if(_t(t))return;const e=Math.asin(t);return isNaN(e)?void 0:e}atan({angle:t}){if(_t(t))return;const e=Math.atan(t);return isNaN(e)?void 0:e}avg(t,e){return jr.mean(e)}ceil({number:t}){if(!_t(t))return Math.ceil(t)}floor({number:t}){if(!_t(t))return Math.floor(t)}cos({angle:t}){if(_t(t))return;const e=Math.cos(t);return isNaN(e)?void 0:e}sin({angle:t}){if(_t(t))return;const e=Math.sin(t);return isNaN(e)?void 0:e}tan({angle:t}){if(_t(t))return;const e=Math.tan(t);return isNaN(e)?void 0:e}exp({number:t}){if(!_t(t))return Math.exp(t)}log({number:t}){if(!_t(t))return Math.log(t)}log10({number:t}){if(!_t(t))return Math.log10(t)}max(t,e){if(!e.some(r=>_t(r)))return Math.max(...e)}min(t,e){if(!e.some(r=>_t(r)))return Math.min(...e)}pow({base:t,exponent:e}){if(!(_t(t)||_t(e)))return Math.pow(t,e)}random({min:t=0,max:e=1,seed:r},n){if(_t(t)&&(t=0),_t(e)&&(e=1),r&&this._randomNums[r])return this._randomNums[r];if(t>=e){this._errorListener.addError(re.mathRandomErr,n,Lt.Error);return}let s;do s=Math.random()*(e-t)+t;while(s===t||s===e);return r&&(this._randomNums[r]=s),s}round({number:t,precision:e}){if(!_t(t))return _t(e)?Math.round(t):Number(t==null?void 0:t.toFixed(e))}round_to_mintick({number:t}){if(!_t(t))return Number(t==null?void 0:t.toFixed(this._mintick))}sign({number:t}){if(!_t(t))return t&&Math.sign(t)}sqrt({number:t}){if(!_t(t))return Math.sqrt(t)}sum({source:t,length:e=1},r){let n=this._cacheData[`sum_${r}`];n||(n=[]),n[this._barIndex]=t,this._cacheData[`sum_${r}`]=n;const s=n.filter(a=>!_t(a));if(!(s.length<e))return jr.sum(s.slice(-e))}todegrees({radians:t}){if(!_t(t))return t*(180/Math.PI)}toradians({degrees:t}){if(!_t(t))return t*(Math.PI/180)}}function Ts(){return Ts=Object.assign?Object.assign.bind():function(i){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(i[r]=e[r])}return i},Ts.apply(this,arguments)}var ic={epsilon:1e-12,matrix:"Matrix",number:"number",precision:64,predictable:!1,randomSeed:null};function _e(i){return typeof i=="number"}function Oe(i){return!i||typeof i!="object"||typeof i.constructor!="function"?!1:i.isBigNumber===!0&&typeof i.constructor.prototype=="object"&&i.constructor.prototype.isBigNumber===!0||typeof i.constructor.isDecimal=="function"&&i.constructor.isDecimal(i)===!0}function sc(i){return i&&typeof i=="object"&&Object.getPrototypeOf(i).isComplex===!0||!1}function oc(i){return i&&typeof i=="object"&&Object.getPrototypeOf(i).isFraction===!0||!1}function ac(i){return i&&i.constructor.prototype.isUnit===!0||!1}function en(i){return typeof i=="string"}var Ae=Array.isArray;function ye(i){return i&&i.constructor.prototype.isMatrix===!0||!1}function ts(i){return Array.isArray(i)||ye(i)}function Ip(i){return i&&i.isDenseMatrix&&i.constructor.prototype.isMatrix===!0||!1}function $p(i){return i&&i.isSparseMatrix&&i.constructor.prototype.isMatrix===!0||!1}function Lp(i){return i&&i.constructor.prototype.isRange===!0||!1}function Aa(i){return i&&i.constructor.prototype.isIndex===!0||!1}function Rp(i){return typeof i=="boolean"}function Pp(i){return i&&i.constructor.prototype.isResultSet===!0||!1}function kp(i){return i&&i.constructor.prototype.isHelp===!0||!1}function zp(i){return typeof i=="function"}function qp(i){return i instanceof Date}function Up(i){return i instanceof RegExp}function Ca(i){return!!(i&&typeof i=="object"&&i.constructor===Object&&!sc(i)&&!oc(i))}function jp(i){return i===null}function Wp(i){return i===void 0}function Yp(i){return i&&i.isAccessorNode===!0&&i.constructor.prototype.isNode===!0||!1}function Vp(i){return i&&i.isArrayNode===!0&&i.constructor.prototype.isNode===!0||!1}function Hp(i){return i&&i.isAssignmentNode===!0&&i.constructor.prototype.isNode===!0||!1}function Zp(i){return i&&i.isBlockNode===!0&&i.constructor.prototype.isNode===!0||!1}function Kp(i){return i&&i.isConditionalNode===!0&&i.constructor.prototype.isNode===!0||!1}function Gp(i){return i&&i.isConstantNode===!0&&i.constructor.prototype.isNode===!0||!1}function Jp(i){return i&&i.isFunctionAssignmentNode===!0&&i.constructor.prototype.isNode===!0||!1}function Xp(i){return i&&i.isFunctionNode===!0&&i.constructor.prototype.isNode===!0||!1}function Qp(i){return i&&i.isIndexNode===!0&&i.constructor.prototype.isNode===!0||!1}function t_(i){return i&&i.isNode===!0&&i.constructor.prototype.isNode===!0||!1}function e_(i){return i&&i.isObjectNode===!0&&i.constructor.prototype.isNode===!0||!1}function r_(i){return i&&i.isOperatorNode===!0&&i.constructor.prototype.isNode===!0||!1}function n_(i){return i&&i.isParenthesisNode===!0&&i.constructor.prototype.isNode===!0||!1}function i_(i){return i&&i.isRangeNode===!0&&i.constructor.prototype.isNode===!0||!1}function s_(i){return i&&i.isRelationalNode===!0&&i.constructor.prototype.isNode===!0||!1}function o_(i){return i&&i.isSymbolNode===!0&&i.constructor.prototype.isNode===!0||!1}function a_(i){return i&&i.constructor.prototype.isChain===!0||!1}function Fn(i){var t=typeof i;return t==="object"?i===null?"null":Oe(i)?"BigNumber":i.constructor&&i.constructor.name?i.constructor.name:"Object":t}function oe(i){var t=typeof i;if(t==="number"||t==="string"||t==="boolean"||i===null||i===void 0)return i;if(typeof i.clone=="function")return i.clone();if(Array.isArray(i))return i.map(function(e){return oe(e)});if(i instanceof Date)return new Date(i.valueOf());if(Oe(i))return i;if(Ca(i))return u_(i,oe);throw new TypeError("Cannot clone: unknown type of value (value: ".concat(i,")"))}function u_(i,t){var e={};for(var r in i)es(i,r)&&(e[r]=t(i[r]));return e}function uc(i,t){for(var e in t)es(t,e)&&(i[e]=t[e]);return i}function yi(i,t){var e,r,n;if(Array.isArray(i)){if(!Array.isArray(t)||i.length!==t.length)return!1;for(r=0,n=i.length;r<n;r++)if(!yi(i[r],t[r]))return!1;return!0}else{if(typeof i=="function")return i===t;if(i instanceof Object){if(Array.isArray(t)||!(t instanceof Object))return!1;for(e in i)if(!(e in t)||!yi(i[e],t[e]))return!1;for(e in t)if(!(e in i))return!1;return!0}else return i===t}}function es(i,t){return i&&Object.hasOwnProperty.call(i,t)}function l_(i,t){for(var e={},r=0;r<t.length;r++){var n=t[r],s=i[n];s!==void 0&&(e[n]=s)}return e}var c_=["Matrix","Array"],f_=["number","BigNumber","Fraction"],yr=function(t){if(t)throw new Error(`The global config is readonly.
28
28
  Please create a mathjs instance if you want to change the default configuration.
29
29
  Example:
30
30
 
@@ -37,7 +37,7 @@ Example:
37
37
  * https://github.com/MikeMcl/decimal.js
38
38
  * Copyright (c) 2022 Michael Mclaughlin <M8ch88l@gmail.com>
39
39
  * MIT Licence
40
- */var bi=9e15,Sn=1e9,Ra="0123456789abcdef",ks="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",zs="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Pa={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-bi,maxE:bi,crypto:!1},Tc,hn,Ot=!0,qs="[DecimalError] ",On=qs+"Invalid argument: ",Ic=qs+"Precision limit exceeded",$c=qs+"crypto unavailable",Lc="[object Decimal]",Qe=Math.floor,ke=Math.pow,q_=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,U_=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,j_=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Rc=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Vr=1e7,Et=7,W_=9007199254740991,Y_=ks.length-1,ka=zs.length-1,it={toStringTag:Lc};it.absoluteValue=it.abs=function(){var i=new this.constructor(this);return i.s<0&&(i.s=1),bt(i)},it.ceil=function(){return bt(new this.constructor(this),this.e+1,2)},it.clampedTo=it.clamp=function(i,t){var e,r=this,n=r.constructor;if(i=new n(i),t=new n(t),!i.s||!t.s)return new n(NaN);if(i.gt(t))throw Error(On+t);return e=r.cmp(i),e<0?i:r.cmp(t)>0?t:new n(r)},it.comparedTo=it.cmp=function(i){var t,e,r,n,s=this,a=s.d,u=(i=new s.constructor(i)).d,c=s.s,f=i.s;if(!a||!u)return!c||!f?NaN:c!==f?c:a===u?0:!a^c<0?1:-1;if(!a[0]||!u[0])return a[0]?c:u[0]?-f:0;if(c!==f)return c;if(s.e!==i.e)return s.e>i.e^c<0?1:-1;for(r=a.length,n=u.length,t=0,e=r<n?r:n;t<e;++t)if(a[t]!==u[t])return a[t]>u[t]^c<0?1:-1;return r===n?0:r>n^c<0?1:-1},it.cosine=it.cos=function(){var i,t,e=this,r=e.constructor;return e.d?e.d[0]?(i=r.precision,t=r.rounding,r.precision=i+Math.max(e.e,e.sd())+Et,r.rounding=1,e=V_(r,jc(r,e)),r.precision=i,r.rounding=t,bt(hn==2||hn==3?e.neg():e,i,t,!0)):new r(1):new r(NaN)},it.cubeRoot=it.cbrt=function(){var i,t,e,r,n,s,a,u,c,f,d=this,h=d.constructor;if(!d.isFinite()||d.isZero())return new h(d);for(Ot=!1,s=d.s*ke(d.s*d,1/3),!s||Math.abs(s)==1/0?(e=Ke(d.d),i=d.e,(s=(i-e.length+1)%3)&&(e+=s==1||s==-2?"0":"00"),s=ke(e,1/3),i=Qe((i+1)/3)-(i%3==(i<0?-1:2)),s==1/0?e="5e"+i:(e=s.toExponential(),e=e.slice(0,e.indexOf("e")+1)+i),r=new h(e),r.s=d.s):r=new h(s.toString()),a=(i=h.precision)+3;;)if(u=r,c=u.times(u).times(u),f=c.plus(d),r=de(f.plus(d).times(u),f.plus(c),a+2,1),Ke(u.d).slice(0,a)===(e=Ke(r.d)).slice(0,a))if(e=e.slice(a-3,a+1),e=="9999"||!n&&e=="4999"){if(!n&&(bt(u,i+1,0),u.times(u).times(u).eq(d))){r=u;break}a+=4,n=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(bt(r,i+1,1),t=!r.times(r).times(r).eq(d));break}return Ot=!0,bt(r,i,h.rounding,t)},it.decimalPlaces=it.dp=function(){var i,t=this.d,e=NaN;if(t){if(i=t.length-1,e=(i-Qe(this.e/Et))*Et,i=t[i],i)for(;i%10==0;i/=10)e--;e<0&&(e=0)}return e},it.dividedBy=it.div=function(i){return de(this,new this.constructor(i))},it.dividedToIntegerBy=it.divToInt=function(i){var t=this,e=t.constructor;return bt(de(t,new e(i),0,1,1),e.precision,e.rounding)},it.equals=it.eq=function(i){return this.cmp(i)===0},it.floor=function(){return bt(new this.constructor(this),this.e+1,3)},it.greaterThan=it.gt=function(i){return this.cmp(i)>0},it.greaterThanOrEqualTo=it.gte=function(i){var t=this.cmp(i);return t==1||t===0},it.hyperbolicCosine=it.cosh=function(){var i,t,e,r,n,s=this,a=s.constructor,u=new a(1);if(!s.isFinite())return new a(s.s?1/0:NaN);if(s.isZero())return u;e=a.precision,r=a.rounding,a.precision=e+Math.max(s.e,s.sd())+4,a.rounding=1,n=s.d.length,n<32?(i=Math.ceil(n/3),t=(1/Ys(4,i)).toString()):(i=16,t="2.3283064365386962890625e-10"),s=xi(a,1,s.times(t),new a(1),!0);for(var c,f=i,d=new a(8);f--;)c=s.times(s),s=u.minus(c.times(d.minus(c.times(d))));return bt(s,a.precision=e,a.rounding=r,!0)},it.hyperbolicSine=it.sinh=function(){var i,t,e,r,n=this,s=n.constructor;if(!n.isFinite()||n.isZero())return new s(n);if(t=s.precision,e=s.rounding,s.precision=t+Math.max(n.e,n.sd())+4,s.rounding=1,r=n.d.length,r<3)n=xi(s,2,n,n,!0);else{i=1.4*Math.sqrt(r),i=i>16?16:i|0,n=n.times(1/Ys(5,i)),n=xi(s,2,n,n,!0);for(var a,u=new s(5),c=new s(16),f=new s(20);i--;)a=n.times(n),n=n.times(u.plus(a.times(c.times(a).plus(f))))}return s.precision=t,s.rounding=e,bt(n,t,e,!0)},it.hyperbolicTangent=it.tanh=function(){var i,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(i=r.precision,t=r.rounding,r.precision=i+7,r.rounding=1,de(e.sinh(),e.cosh(),r.precision=i,r.rounding=t)):new r(e.s)},it.inverseCosine=it.acos=function(){var i,t=this,e=t.constructor,r=t.abs().cmp(1),n=e.precision,s=e.rounding;return r!==-1?r===0?t.isNeg()?Hr(e,n,s):new e(0):new e(NaN):t.isZero()?Hr(e,n+4,s).times(.5):(e.precision=n+6,e.rounding=1,t=t.asin(),i=Hr(e,n+4,s).times(.5),e.precision=n,e.rounding=s,i.minus(t))},it.inverseHyperbolicCosine=it.acosh=function(){var i,t,e=this,r=e.constructor;return e.lte(1)?new r(e.eq(1)?0:NaN):e.isFinite()?(i=r.precision,t=r.rounding,r.precision=i+Math.max(Math.abs(e.e),e.sd())+4,r.rounding=1,Ot=!1,e=e.times(e).minus(1).sqrt().plus(e),Ot=!0,r.precision=i,r.rounding=t,e.ln()):new r(e)},it.inverseHyperbolicSine=it.asinh=function(){var i,t,e=this,r=e.constructor;return!e.isFinite()||e.isZero()?new r(e):(i=r.precision,t=r.rounding,r.precision=i+2*Math.max(Math.abs(e.e),e.sd())+6,r.rounding=1,Ot=!1,e=e.times(e).plus(1).sqrt().plus(e),Ot=!0,r.precision=i,r.rounding=t,e.ln())},it.inverseHyperbolicTangent=it.atanh=function(){var i,t,e,r,n=this,s=n.constructor;return n.isFinite()?n.e>=0?new s(n.abs().eq(1)?n.s/0:n.isZero()?n:NaN):(i=s.precision,t=s.rounding,r=n.sd(),Math.max(r,i)<2*-n.e-1?bt(new s(n),i,t,!0):(s.precision=e=r-n.e,n=de(n.plus(1),new s(1).minus(n),e+i,1),s.precision=i+4,s.rounding=1,n=n.ln(),s.precision=i,s.rounding=t,n.times(.5))):new s(NaN)},it.inverseSine=it.asin=function(){var i,t,e,r,n=this,s=n.constructor;return n.isZero()?new s(n):(t=n.abs().cmp(1),e=s.precision,r=s.rounding,t!==-1?t===0?(i=Hr(s,e+4,r).times(.5),i.s=n.s,i):new s(NaN):(s.precision=e+6,s.rounding=1,n=n.div(new s(1).minus(n.times(n)).sqrt().plus(1)).atan(),s.precision=e,s.rounding=r,n.times(2)))},it.inverseTangent=it.atan=function(){var i,t,e,r,n,s,a,u,c,f=this,d=f.constructor,h=d.precision,p=d.rounding;if(f.isFinite()){if(f.isZero())return new d(f);if(f.abs().eq(1)&&h+4<=ka)return a=Hr(d,h+4,p).times(.25),a.s=f.s,a}else{if(!f.s)return new d(NaN);if(h+4<=ka)return a=Hr(d,h+4,p).times(.5),a.s=f.s,a}for(d.precision=u=h+10,d.rounding=1,e=Math.min(28,u/Et+2|0),i=e;i;--i)f=f.div(f.times(f).plus(1).sqrt().plus(1));for(Ot=!1,t=Math.ceil(u/Et),r=1,c=f.times(f),a=new d(f),n=f;i!==-1;)if(n=n.times(c),s=a.minus(n.div(r+=2)),n=n.times(c),a=s.plus(n.div(r+=2)),a.d[t]!==void 0)for(i=t;a.d[i]===s.d[i]&&i--;);return e&&(a=a.times(2<<e-1)),Ot=!0,bt(a,d.precision=h,d.rounding=p,!0)},it.isFinite=function(){return!!this.d},it.isInteger=it.isInt=function(){return!!this.d&&Qe(this.e/Et)>this.d.length-2},it.isNaN=function(){return!this.s},it.isNegative=it.isNeg=function(){return this.s<0},it.isPositive=it.isPos=function(){return this.s>0},it.isZero=function(){return!!this.d&&this.d[0]===0},it.lessThan=it.lt=function(i){return this.cmp(i)<0},it.lessThanOrEqualTo=it.lte=function(i){return this.cmp(i)<1},it.logarithm=it.log=function(i){var t,e,r,n,s,a,u,c,f=this,d=f.constructor,h=d.precision,p=d.rounding,g=5;if(i==null)i=new d(10),t=!0;else{if(i=new d(i),e=i.d,i.s<0||!e||!e[0]||i.eq(1))return new d(NaN);t=i.eq(10)}if(e=f.d,f.s<0||!e||!e[0]||f.eq(1))return new d(e&&!e[0]?-1/0:f.s!=1?NaN:e?0:1/0);if(t)if(e.length>1)s=!0;else{for(n=e[0];n%10===0;)n/=10;s=n!==1}if(Ot=!1,u=h+g,a=Tn(f,u),r=t?Ws(d,u+10):Tn(i,u),c=de(a,r,u,1),rs(c.d,n=h,p))do if(u+=10,a=Tn(f,u),r=t?Ws(d,u+10):Tn(i,u),c=de(a,r,u,1),!s){+Ke(c.d).slice(n+1,n+15)+1==1e14&&(c=bt(c,h+1,0));break}while(rs(c.d,n+=10,p));return Ot=!0,bt(c,h,p)},it.minus=it.sub=function(i){var t,e,r,n,s,a,u,c,f,d,h,p,g=this,y=g.constructor;if(i=new y(i),!g.d||!i.d)return!g.s||!i.s?i=new y(NaN):g.d?i.s=-i.s:i=new y(i.d||g.s!==i.s?g:NaN),i;if(g.s!=i.s)return i.s=-i.s,g.plus(i);if(f=g.d,p=i.d,u=y.precision,c=y.rounding,!f[0]||!p[0]){if(p[0])i.s=-i.s;else if(f[0])i=new y(g);else return new y(c===3?-0:0);return Ot?bt(i,u,c):i}if(e=Qe(i.e/Et),d=Qe(g.e/Et),f=f.slice(),s=d-e,s){for(h=s<0,h?(t=f,s=-s,a=p.length):(t=p,e=d,a=f.length),r=Math.max(Math.ceil(u/Et),a)+2,s>r&&(s=r,t.length=1),t.reverse(),r=s;r--;)t.push(0);t.reverse()}else{for(r=f.length,a=p.length,h=r<a,h&&(a=r),r=0;r<a;r++)if(f[r]!=p[r]){h=f[r]<p[r];break}s=0}for(h&&(t=f,f=p,p=t,i.s=-i.s),a=f.length,r=p.length-a;r>0;--r)f[a++]=0;for(r=p.length;r>s;){if(f[--r]<p[r]){for(n=r;n&&f[--n]===0;)f[n]=Vr-1;--f[n],f[r]+=Vr}f[r]-=p[r]}for(;f[--a]===0;)f.pop();for(;f[0]===0;f.shift())--e;return f[0]?(i.d=f,i.e=js(f,e),Ot?bt(i,u,c):i):new y(c===3?-0:0)},it.modulo=it.mod=function(i){var t,e=this,r=e.constructor;return i=new r(i),!e.d||!i.s||i.d&&!i.d[0]?new r(NaN):!i.d||e.d&&!e.d[0]?bt(new r(e),r.precision,r.rounding):(Ot=!1,r.modulo==9?(t=de(e,i.abs(),0,3,1),t.s*=i.s):t=de(e,i,0,r.modulo,1),t=t.times(i),Ot=!0,e.minus(t))},it.naturalExponential=it.exp=function(){return za(this)},it.naturalLogarithm=it.ln=function(){return Tn(this)},it.negated=it.neg=function(){var i=new this.constructor(this);return i.s=-i.s,bt(i)},it.plus=it.add=function(i){var t,e,r,n,s,a,u,c,f,d,h=this,p=h.constructor;if(i=new p(i),!h.d||!i.d)return!h.s||!i.s?i=new p(NaN):h.d||(i=new p(i.d||h.s===i.s?h:NaN)),i;if(h.s!=i.s)return i.s=-i.s,h.minus(i);if(f=h.d,d=i.d,u=p.precision,c=p.rounding,!f[0]||!d[0])return d[0]||(i=new p(h)),Ot?bt(i,u,c):i;if(s=Qe(h.e/Et),r=Qe(i.e/Et),f=f.slice(),n=s-r,n){for(n<0?(e=f,n=-n,a=d.length):(e=d,r=s,a=f.length),s=Math.ceil(u/Et),a=s>a?s+1:a+1,n>a&&(n=a,e.length=1),e.reverse();n--;)e.push(0);e.reverse()}for(a=f.length,n=d.length,a-n<0&&(n=a,e=d,d=f,f=e),t=0;n;)t=(f[--n]=f[n]+d[n]+t)/Vr|0,f[n]%=Vr;for(t&&(f.unshift(t),++r),a=f.length;f[--a]==0;)f.pop();return i.d=f,i.e=js(f,r),Ot?bt(i,u,c):i},it.precision=it.sd=function(i){var t,e=this;if(i!==void 0&&i!==!!i&&i!==1&&i!==0)throw Error(On+i);return e.d?(t=Pc(e.d),i&&e.e+1>t&&(t=e.e+1)):t=NaN,t},it.round=function(){var i=this,t=i.constructor;return bt(new t(i),i.e+1,t.rounding)},it.sine=it.sin=function(){var i,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(i=r.precision,t=r.rounding,r.precision=i+Math.max(e.e,e.sd())+Et,r.rounding=1,e=Z_(r,jc(r,e)),r.precision=i,r.rounding=t,bt(hn>2?e.neg():e,i,t,!0)):new r(NaN)},it.squareRoot=it.sqrt=function(){var i,t,e,r,n,s,a=this,u=a.d,c=a.e,f=a.s,d=a.constructor;if(f!==1||!u||!u[0])return new d(!f||f<0&&(!u||u[0])?NaN:u?a:1/0);for(Ot=!1,f=Math.sqrt(+a),f==0||f==1/0?(t=Ke(u),(t.length+c)%2==0&&(t+="0"),f=Math.sqrt(t),c=Qe((c+1)/2)-(c<0||c%2),f==1/0?t="5e"+c:(t=f.toExponential(),t=t.slice(0,t.indexOf("e")+1)+c),r=new d(t)):r=new d(f.toString()),e=(c=d.precision)+3;;)if(s=r,r=s.plus(de(a,s,e+2,1)).times(.5),Ke(s.d).slice(0,e)===(t=Ke(r.d)).slice(0,e))if(t=t.slice(e-3,e+1),t=="9999"||!n&&t=="4999"){if(!n&&(bt(s,c+1,0),s.times(s).eq(a))){r=s;break}e+=4,n=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(bt(r,c+1,1),i=!r.times(r).eq(a));break}return Ot=!0,bt(r,c,d.rounding,i)},it.tangent=it.tan=function(){var i,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(i=r.precision,t=r.rounding,r.precision=i+10,r.rounding=1,e=e.sin(),e.s=1,e=de(e,new r(1).minus(e.times(e)).sqrt(),i+10,0),r.precision=i,r.rounding=t,bt(hn==2||hn==4?e.neg():e,i,t,!0)):new r(NaN)},it.times=it.mul=function(i){var t,e,r,n,s,a,u,c,f,d=this,h=d.constructor,p=d.d,g=(i=new h(i)).d;if(i.s*=d.s,!p||!p[0]||!g||!g[0])return new h(!i.s||p&&!p[0]&&!g||g&&!g[0]&&!p?NaN:!p||!g?i.s/0:i.s*0);for(e=Qe(d.e/Et)+Qe(i.e/Et),c=p.length,f=g.length,c<f&&(s=p,p=g,g=s,a=c,c=f,f=a),s=[],a=c+f,r=a;r--;)s.push(0);for(r=f;--r>=0;){for(t=0,n=c+r;n>r;)u=s[n]+g[r]*p[n-r-1]+t,s[n--]=u%Vr|0,t=u/Vr|0;s[n]=(s[n]+t)%Vr|0}for(;!s[--a];)s.pop();return t?++e:s.shift(),i.d=s,i.e=js(s,e),Ot?bt(i,h.precision,h.rounding):i},it.toBinary=function(i,t){return Ua(this,2,i,t)},it.toDecimalPlaces=it.toDP=function(i,t){var e=this,r=e.constructor;return e=new r(e),i===void 0?e:(cr(i,0,Sn),t===void 0?t=r.rounding:cr(t,0,8),bt(e,i+e.e+1,t))},it.toExponential=function(i,t){var e,r=this,n=r.constructor;return i===void 0?e=rn(r,!0):(cr(i,0,Sn),t===void 0?t=n.rounding:cr(t,0,8),r=bt(new n(r),i+1,t),e=rn(r,!0,i+1)),r.isNeg()&&!r.isZero()?"-"+e:e},it.toFixed=function(i,t){var e,r,n=this,s=n.constructor;return i===void 0?e=rn(n):(cr(i,0,Sn),t===void 0?t=s.rounding:cr(t,0,8),r=bt(new s(n),i+n.e+1,t),e=rn(r,!1,i+r.e+1)),n.isNeg()&&!n.isZero()?"-"+e:e},it.toFraction=function(i){var t,e,r,n,s,a,u,c,f,d,h,p,g=this,y=g.d,_=g.constructor;if(!y)return new _(g);if(f=e=new _(1),r=c=new _(0),t=new _(r),s=t.e=Pc(y)-g.e-1,a=s%Et,t.d[0]=ke(10,a<0?Et+a:a),i==null)i=s>0?t:f;else{if(u=new _(i),!u.isInt()||u.lt(f))throw Error(On+u);i=u.gt(t)?s>0?t:f:u}for(Ot=!1,u=new _(Ke(y)),d=_.precision,_.precision=s=y.length*Et*2;h=de(u,t,0,1,1),n=e.plus(h.times(r)),n.cmp(i)!=1;)e=r,r=n,n=f,f=c.plus(h.times(n)),c=n,n=t,t=u.minus(h.times(n)),u=n;return n=de(i.minus(e),r,0,1,1),c=c.plus(n.times(f)),e=e.plus(n.times(r)),c.s=f.s=g.s,p=de(f,r,s,1).minus(g).abs().cmp(de(c,e,s,1).minus(g).abs())<1?[f,r]:[c,e],_.precision=d,Ot=!0,p},it.toHexadecimal=it.toHex=function(i,t){return Ua(this,16,i,t)},it.toNearest=function(i,t){var e=this,r=e.constructor;if(e=new r(e),i==null){if(!e.d)return e;i=new r(1),t=r.rounding}else{if(i=new r(i),t===void 0?t=r.rounding:cr(t,0,8),!e.d)return i.s?e:i;if(!i.d)return i.s&&(i.s=e.s),i}return i.d[0]?(Ot=!1,e=de(e,i,0,t,1).times(i),Ot=!0,bt(e)):(i.s=e.s,e=i),e},it.toNumber=function(){return+this},it.toOctal=function(i,t){return Ua(this,8,i,t)},it.toPower=it.pow=function(i){var t,e,r,n,s,a,u=this,c=u.constructor,f=+(i=new c(i));if(!u.d||!i.d||!u.d[0]||!i.d[0])return new c(ke(+u,f));if(u=new c(u),u.eq(1))return u;if(r=c.precision,s=c.rounding,i.eq(1))return bt(u,r,s);if(t=Qe(i.e/Et),t>=i.d.length-1&&(e=f<0?-f:f)<=W_)return n=kc(c,u,e,r),i.s<0?new c(1).div(n):bt(n,r,s);if(a=u.s,a<0){if(t<i.d.length-1)return new c(NaN);if(i.d[t]&1||(a=1),u.e==0&&u.d[0]==1&&u.d.length==1)return u.s=a,u}return e=ke(+u,f),t=e==0||!isFinite(e)?Qe(f*(Math.log("0."+Ke(u.d))/Math.LN10+u.e+1)):new c(e+"").e,t>c.maxE+1||t<c.minE-1?new c(t>0?a/0:0):(Ot=!1,c.rounding=u.s=1,e=Math.min(12,(t+"").length),n=za(i.times(Tn(u,r+e)),r),n.d&&(n=bt(n,r+5,1),rs(n.d,r,s)&&(t=r+10,n=bt(za(i.times(Tn(u,t+e)),t),t+5,1),+Ke(n.d).slice(r+1,r+15)+1==1e14&&(n=bt(n,r+1,0)))),n.s=a,Ot=!0,c.rounding=s,bt(n,r,s))},it.toPrecision=function(i,t){var e,r=this,n=r.constructor;return i===void 0?e=rn(r,r.e<=n.toExpNeg||r.e>=n.toExpPos):(cr(i,1,Sn),t===void 0?t=n.rounding:cr(t,0,8),r=bt(new n(r),i,t),e=rn(r,i<=r.e||r.e<=n.toExpNeg,i)),r.isNeg()&&!r.isZero()?"-"+e:e},it.toSignificantDigits=it.toSD=function(i,t){var e=this,r=e.constructor;return i===void 0?(i=r.precision,t=r.rounding):(cr(i,1,Sn),t===void 0?t=r.rounding:cr(t,0,8)),bt(new r(e),i,t)},it.toString=function(){var i=this,t=i.constructor,e=rn(i,i.e<=t.toExpNeg||i.e>=t.toExpPos);return i.isNeg()&&!i.isZero()?"-"+e:e},it.truncated=it.trunc=function(){return bt(new this.constructor(this),this.e+1,1)},it.valueOf=it.toJSON=function(){var i=this,t=i.constructor,e=rn(i,i.e<=t.toExpNeg||i.e>=t.toExpPos);return i.isNeg()?"-"+e:e};function Ke(i){var t,e,r,n=i.length-1,s="",a=i[0];if(n>0){for(s+=a,t=1;t<n;t++)r=i[t]+"",e=Et-r.length,e&&(s+=Bn(e)),s+=r;a=i[t],r=a+"",e=Et-r.length,e&&(s+=Bn(e))}else if(a===0)return"0";for(;a%10===0;)a/=10;return s+a}function cr(i,t,e){if(i!==~~i||i<t||i>e)throw Error(On+i)}function rs(i,t,e,r){var n,s,a,u;for(s=i[0];s>=10;s/=10)--t;return--t<0?(t+=Et,n=0):(n=Math.ceil((t+1)/Et),t%=Et),s=ke(10,Et-t),u=i[n]%s|0,r==null?t<3?(t==0?u=u/100|0:t==1&&(u=u/10|0),a=e<4&&u==99999||e>3&&u==49999||u==5e4||u==0):a=(e<4&&u+1==s||e>3&&u+1==s/2)&&(i[n+1]/s/100|0)==ke(10,t-2)-1||(u==s/2||u==0)&&(i[n+1]/s/100|0)==0:t<4?(t==0?u=u/1e3|0:t==1?u=u/100|0:t==2&&(u=u/10|0),a=(r||e<4)&&u==9999||!r&&e>3&&u==4999):a=((r||e<4)&&u+1==s||!r&&e>3&&u+1==s/2)&&(i[n+1]/s/1e3|0)==ke(10,t-3)-1,a}function Us(i,t,e){for(var r,n=[0],s,a=0,u=i.length;a<u;){for(s=n.length;s--;)n[s]*=t;for(n[0]+=Ra.indexOf(i.charAt(a++)),r=0;r<n.length;r++)n[r]>e-1&&(n[r+1]===void 0&&(n[r+1]=0),n[r+1]+=n[r]/e|0,n[r]%=e)}return n.reverse()}function V_(i,t){var e,r,n;if(t.isZero())return t;r=t.d.length,r<32?(e=Math.ceil(r/3),n=(1/Ys(4,e)).toString()):(e=16,n="2.3283064365386962890625e-10"),i.precision+=e,t=xi(i,1,t.times(n),new i(1));for(var s=e;s--;){var a=t.times(t);t=a.times(a).minus(a).times(8).plus(1)}return i.precision-=e,t}var de=function(){function i(r,n,s){var a,u=0,c=r.length;for(r=r.slice();c--;)a=r[c]*n+u,r[c]=a%s|0,u=a/s|0;return u&&r.unshift(u),r}function t(r,n,s,a){var u,c;if(s!=a)c=s>a?1:-1;else for(u=c=0;u<s;u++)if(r[u]!=n[u]){c=r[u]>n[u]?1:-1;break}return c}function e(r,n,s,a){for(var u=0;s--;)r[s]-=u,u=r[s]<n[s]?1:0,r[s]=u*a+r[s]-n[s];for(;!r[0]&&r.length>1;)r.shift()}return function(r,n,s,a,u,c){var f,d,h,p,g,y,_,w,v,x,b,N,E,C,F,S,I,A,O,L,z=r.constructor,q=r.s==n.s?1:-1,j=r.d,P=n.d;if(!j||!j[0]||!P||!P[0])return new z(!r.s||!n.s||(j?P&&j[0]==P[0]:!P)?NaN:j&&j[0]==0||!P?q*0:q/0);for(c?(g=1,d=r.e-n.e):(c=Vr,g=Et,d=Qe(r.e/g)-Qe(n.e/g)),O=P.length,I=j.length,v=new z(q),x=v.d=[],h=0;P[h]==(j[h]||0);h++);if(P[h]>(j[h]||0)&&d--,s==null?(C=s=z.precision,a=z.rounding):u?C=s+(r.e-n.e)+1:C=s,C<0)x.push(1),y=!0;else{if(C=C/g+2|0,h=0,O==1){for(p=0,P=P[0],C++;(h<I||p)&&C--;h++)F=p*c+(j[h]||0),x[h]=F/P|0,p=F%P|0;y=p||h<I}else{for(p=c/(P[0]+1)|0,p>1&&(P=i(P,p,c),j=i(j,p,c),O=P.length,I=j.length),S=O,b=j.slice(0,O),N=b.length;N<O;)b[N++]=0;L=P.slice(),L.unshift(0),A=P[0],P[1]>=c/2&&++A;do p=0,f=t(P,b,O,N),f<0?(E=b[0],O!=N&&(E=E*c+(b[1]||0)),p=E/A|0,p>1?(p>=c&&(p=c-1),_=i(P,p,c),w=_.length,N=b.length,f=t(_,b,w,N),f==1&&(p--,e(_,O<w?L:P,w,c))):(p==0&&(f=p=1),_=P.slice()),w=_.length,w<N&&_.unshift(0),e(b,_,N,c),f==-1&&(N=b.length,f=t(P,b,O,N),f<1&&(p++,e(b,O<N?L:P,N,c))),N=b.length):f===0&&(p++,b=[0]),x[h++]=p,f&&b[0]?b[N++]=j[S]||0:(b=[j[S]],N=1);while((S++<I||b[0]!==void 0)&&C--);y=b[0]!==void 0}x[0]||x.shift()}if(g==1)v.e=d,Tc=y;else{for(h=1,p=x[0];p>=10;p/=10)h++;v.e=h+d*g-1,bt(v,u?s+v.e+1:s,a,y)}return v}}();function bt(i,t,e,r){var n,s,a,u,c,f,d,h,p,g=i.constructor;t:if(t!=null){if(h=i.d,!h)return i;for(n=1,u=h[0];u>=10;u/=10)n++;if(s=t-n,s<0)s+=Et,a=t,d=h[p=0],c=d/ke(10,n-a-1)%10|0;else if(p=Math.ceil((s+1)/Et),u=h.length,p>=u)if(r){for(;u++<=p;)h.push(0);d=c=0,n=1,s%=Et,a=s-Et+1}else break t;else{for(d=u=h[p],n=1;u>=10;u/=10)n++;s%=Et,a=s-Et+n,c=a<0?0:d/ke(10,n-a-1)%10|0}if(r=r||t<0||h[p+1]!==void 0||(a<0?d:d%ke(10,n-a-1)),f=e<4?(c||r)&&(e==0||e==(i.s<0?3:2)):c>5||c==5&&(e==4||r||e==6&&(s>0?a>0?d/ke(10,n-a):0:h[p-1])%10&1||e==(i.s<0?8:7)),t<1||!h[0])return h.length=0,f?(t-=i.e+1,h[0]=ke(10,(Et-t%Et)%Et),i.e=-t||0):h[0]=i.e=0,i;if(s==0?(h.length=p,u=1,p--):(h.length=p+1,u=ke(10,Et-s),h[p]=a>0?(d/ke(10,n-a)%ke(10,a)|0)*u:0),f)for(;;)if(p==0){for(s=1,a=h[0];a>=10;a/=10)s++;for(a=h[0]+=u,u=1;a>=10;a/=10)u++;s!=u&&(i.e++,h[0]==Vr&&(h[0]=1));break}else{if(h[p]+=u,h[p]!=Vr)break;h[p--]=0,u=1}for(s=h.length;h[--s]===0;)h.pop()}return Ot&&(i.e>g.maxE?(i.d=null,i.e=NaN):i.e<g.minE&&(i.e=0,i.d=[0])),i}function rn(i,t,e){if(!i.isFinite())return Uc(i);var r,n=i.e,s=Ke(i.d),a=s.length;return t?(e&&(r=e-a)>0?s=s.charAt(0)+"."+s.slice(1)+Bn(r):a>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(i.e<0?"e":"e+")+i.e):n<0?(s="0."+Bn(-n-1)+s,e&&(r=e-a)>0&&(s+=Bn(r))):n>=a?(s+=Bn(n+1-a),e&&(r=e-n-1)>0&&(s=s+"."+Bn(r))):((r=n+1)<a&&(s=s.slice(0,r)+"."+s.slice(r)),e&&(r=e-a)>0&&(n+1===a&&(s+="."),s+=Bn(r))),s}function js(i,t){var e=i[0];for(t*=Et;e>=10;e/=10)t++;return t}function Ws(i,t,e){if(t>Y_)throw Ot=!0,e&&(i.precision=e),Error(Ic);return bt(new i(ks),t,1,!0)}function Hr(i,t,e){if(t>ka)throw Error(Ic);return bt(new i(zs),t,e,!0)}function Pc(i){var t=i.length-1,e=t*Et+1;if(t=i[t],t){for(;t%10==0;t/=10)e--;for(t=i[0];t>=10;t/=10)e++}return e}function Bn(i){for(var t="";i--;)t+="0";return t}function kc(i,t,e,r){var n,s=new i(1),a=Math.ceil(r/Et+4);for(Ot=!1;;){if(e%2&&(s=s.times(t),Wc(s.d,a)&&(n=!0)),e=Qe(e/2),e===0){e=s.d.length-1,n&&s.d[e]===0&&++s.d[e];break}t=t.times(t),Wc(t.d,a)}return Ot=!0,s}function zc(i){return i.d[i.d.length-1]&1}function qc(i,t,e){for(var r,n=new i(t[0]),s=0;++s<t.length;)if(r=new i(t[s]),r.s)n[e](r)&&(n=r);else{n=r;break}return n}function za(i,t){var e,r,n,s,a,u,c,f=0,d=0,h=0,p=i.constructor,g=p.rounding,y=p.precision;if(!i.d||!i.d[0]||i.e>17)return new p(i.d?i.d[0]?i.s<0?0:1/0:1:i.s?i.s<0?0:i:NaN);for(t==null?(Ot=!1,c=y):c=t,u=new p(.03125);i.e>-2;)i=i.times(u),h+=5;for(r=Math.log(ke(2,h))/Math.LN10*2+5|0,c+=r,e=s=a=new p(1),p.precision=c;;){if(s=bt(s.times(i),c,1),e=e.times(++d),u=a.plus(de(s,e,c,1)),Ke(u.d).slice(0,c)===Ke(a.d).slice(0,c)){for(n=h;n--;)a=bt(a.times(a),c,1);if(t==null)if(f<3&&rs(a.d,c-r,g,f))p.precision=c+=10,e=s=u=new p(1),d=0,f++;else return bt(a,p.precision=y,g,Ot=!0);else return p.precision=y,a}a=u}}function Tn(i,t){var e,r,n,s,a,u,c,f,d,h,p,g=1,y=10,_=i,w=_.d,v=_.constructor,x=v.rounding,b=v.precision;if(_.s<0||!w||!w[0]||!_.e&&w[0]==1&&w.length==1)return new v(w&&!w[0]?-1/0:_.s!=1?NaN:w?0:_);if(t==null?(Ot=!1,d=b):d=t,v.precision=d+=y,e=Ke(w),r=e.charAt(0),Math.abs(s=_.e)<15e14){for(;r<7&&r!=1||r==1&&e.charAt(1)>3;)_=_.times(i),e=Ke(_.d),r=e.charAt(0),g++;s=_.e,r>1?(_=new v("0."+e),s++):_=new v(r+"."+e.slice(1))}else return f=Ws(v,d+2,b).times(s+""),_=Tn(new v(r+"."+e.slice(1)),d-y).plus(f),v.precision=b,t==null?bt(_,b,x,Ot=!0):_;for(h=_,c=a=_=de(_.minus(1),_.plus(1),d,1),p=bt(_.times(_),d,1),n=3;;){if(a=bt(a.times(p),d,1),f=c.plus(de(a,new v(n),d,1)),Ke(f.d).slice(0,d)===Ke(c.d).slice(0,d))if(c=c.times(2),s!==0&&(c=c.plus(Ws(v,d+2,b).times(s+""))),c=de(c,new v(g),d,1),t==null)if(rs(c.d,d-y,x,u))v.precision=d+=y,f=a=_=de(h.minus(1),h.plus(1),d,1),p=bt(_.times(_),d,1),n=u=1;else return bt(c,v.precision=b,x,Ot=!0);else return v.precision=b,c;c=f,n+=2}}function Uc(i){return String(i.s*i.s/0)}function qa(i,t){var e,r,n;for((e=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(e<0&&(e=r),e+=+t.slice(r+1),t=t.substring(0,r)):e<0&&(e=t.length),r=0;t.charCodeAt(r)===48;r++);for(n=t.length;t.charCodeAt(n-1)===48;--n);if(t=t.slice(r,n),t){if(n-=r,i.e=e=e-r-1,i.d=[],r=(e+1)%Et,e<0&&(r+=Et),r<n){for(r&&i.d.push(+t.slice(0,r)),n-=Et;r<n;)i.d.push(+t.slice(r,r+=Et));t=t.slice(r),r=Et-t.length}else r-=n;for(;r--;)t+="0";i.d.push(+t),Ot&&(i.e>i.constructor.maxE?(i.d=null,i.e=NaN):i.e<i.constructor.minE&&(i.e=0,i.d=[0]))}else i.e=0,i.d=[0];return i}function H_(i,t){var e,r,n,s,a,u,c,f,d;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Rc.test(t))return qa(i,t)}else if(t==="Infinity"||t==="NaN")return+t||(i.s=NaN),i.e=NaN,i.d=null,i;if(U_.test(t))e=16,t=t.toLowerCase();else if(q_.test(t))e=2;else if(j_.test(t))e=8;else throw Error(On+t);for(s=t.search(/p/i),s>0?(c=+t.slice(s+1),t=t.substring(2,s)):t=t.slice(2),s=t.indexOf("."),a=s>=0,r=i.constructor,a&&(t=t.replace(".",""),u=t.length,s=u-s,n=kc(r,new r(e),s,s*2)),f=Us(t,e,Vr),d=f.length-1,s=d;f[s]===0;--s)f.pop();return s<0?new r(i.s*0):(i.e=js(f,d),i.d=f,Ot=!1,a&&(i=de(i,n,u*4)),c&&(i=i.times(Math.abs(c)<54?ke(2,c):Ei.pow(2,c))),Ot=!0,i)}function Z_(i,t){var e,r=t.d.length;if(r<3)return t.isZero()?t:xi(i,2,t,t);e=1.4*Math.sqrt(r),e=e>16?16:e|0,t=t.times(1/Ys(5,e)),t=xi(i,2,t,t);for(var n,s=new i(5),a=new i(16),u=new i(20);e--;)n=t.times(t),t=t.times(s.plus(n.times(a.times(n).minus(u))));return t}function xi(i,t,e,r,n){var s,a,u,c,f=i.precision,d=Math.ceil(f/Et);for(Ot=!1,c=e.times(e),u=new i(r);;){if(a=de(u.times(c),new i(t++*t++),f,1),u=n?r.plus(a):r.minus(a),r=de(a.times(c),new i(t++*t++),f,1),a=u.plus(r),a.d[d]!==void 0){for(s=d;a.d[s]===u.d[s]&&s--;);if(s==-1)break}s=u,u=r,r=a,a=s}return Ot=!0,a.d.length=d+1,a}function Ys(i,t){for(var e=i;--t;)e*=i;return e}function jc(i,t){var e,r=t.s<0,n=Hr(i,i.precision,1),s=n.times(.5);if(t=t.abs(),t.lte(s))return hn=r?4:1,t;if(e=t.divToInt(n),e.isZero())hn=r?3:2;else{if(t=t.minus(e.times(n)),t.lte(s))return hn=zc(e)?r?2:3:r?4:1,t;hn=zc(e)?r?1:4:r?3:2}return t.minus(n).abs()}function Ua(i,t,e,r){var n,s,a,u,c,f,d,h,p,g=i.constructor,y=e!==void 0;if(y?(cr(e,1,Sn),r===void 0?r=g.rounding:cr(r,0,8)):(e=g.precision,r=g.rounding),!i.isFinite())d=Uc(i);else{for(d=rn(i),a=d.indexOf("."),y?(n=2,t==16?e=e*4-3:t==8&&(e=e*3-2)):n=t,a>=0&&(d=d.replace(".",""),p=new g(1),p.e=d.length-a,p.d=Us(rn(p),10,n),p.e=p.d.length),h=Us(d,10,n),s=c=h.length;h[--c]==0;)h.pop();if(!h[0])d=y?"0p+0":"0";else{if(a<0?s--:(i=new g(i),i.d=h,i.e=s,i=de(i,p,e,r,0,n),h=i.d,s=i.e,f=Tc),a=h[e],u=n/2,f=f||h[e+1]!==void 0,f=r<4?(a!==void 0||f)&&(r===0||r===(i.s<0?3:2)):a>u||a===u&&(r===4||f||r===6&&h[e-1]&1||r===(i.s<0?8:7)),h.length=e,f)for(;++h[--e]>n-1;)h[e]=0,e||(++s,h.unshift(1));for(c=h.length;!h[c-1];--c);for(a=0,d="";a<c;a++)d+=Ra.charAt(h[a]);if(y){if(c>1)if(t==16||t==8){for(a=t==16?4:3,--c;c%a;c++)d+="0";for(h=Us(d,n,t),c=h.length;!h[c-1];--c);for(a=1,d="1.";a<c;a++)d+=Ra.charAt(h[a])}else d=d.charAt(0)+"."+d.slice(1);d=d+(s<0?"p":"p+")+s}else if(s<0){for(;++s;)d="0"+d;d="0."+d}else if(++s>c)for(s-=c;s--;)d+="0";else s<c&&(d=d.slice(0,s)+"."+d.slice(s))}d=(t==16?"0x":t==2?"0b":t==8?"0o":"")+d}return i.s<0?"-"+d:d}function Wc(i,t){if(i.length>t)return i.length=t,!0}function K_(i){return new this(i).abs()}function G_(i){return new this(i).acos()}function J_(i){return new this(i).acosh()}function X_(i,t){return new this(i).plus(t)}function Q_(i){return new this(i).asin()}function tm(i){return new this(i).asinh()}function em(i){return new this(i).atan()}function rm(i){return new this(i).atanh()}function nm(i,t){i=new this(i),t=new this(t);var e,r=this.precision,n=this.rounding,s=r+4;return!i.s||!t.s?e=new this(NaN):!i.d&&!t.d?(e=Hr(this,s,1).times(t.s>0?.25:.75),e.s=i.s):!t.d||i.isZero()?(e=t.s<0?Hr(this,r,n):new this(0),e.s=i.s):!i.d||t.isZero()?(e=Hr(this,s,1).times(.5),e.s=i.s):t.s<0?(this.precision=s,this.rounding=1,e=this.atan(de(i,t,s,1)),t=Hr(this,s,1),this.precision=r,this.rounding=n,e=i.s<0?e.minus(t):e.plus(t)):e=this.atan(de(i,t,s,1)),e}function im(i){return new this(i).cbrt()}function sm(i){return bt(i=new this(i),i.e+1,2)}function om(i,t,e){return new this(i).clamp(t,e)}function am(i){if(!i||typeof i!="object")throw Error(qs+"Object expected");var t,e,r,n=i.defaults===!0,s=["precision",1,Sn,"rounding",0,8,"toExpNeg",-bi,0,"toExpPos",0,bi,"maxE",0,bi,"minE",-bi,0,"modulo",0,9];for(t=0;t<s.length;t+=3)if(e=s[t],n&&(this[e]=Pa[e]),(r=i[e])!==void 0)if(Qe(r)===r&&r>=s[t+1]&&r<=s[t+2])this[e]=r;else throw Error(On+e+": "+r);if(e="crypto",n&&(this[e]=Pa[e]),(r=i[e])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[e]=!0;else throw Error($c);else this[e]=!1;else throw Error(On+e+": "+r);return this}function um(i){return new this(i).cos()}function lm(i){return new this(i).cosh()}function Yc(i){var t,e,r;function n(s){var a,u,c,f=this;if(!(f instanceof n))return new n(s);if(f.constructor=n,Vc(s)){f.s=s.s,Ot?!s.d||s.e>n.maxE?(f.e=NaN,f.d=null):s.e<n.minE?(f.e=0,f.d=[0]):(f.e=s.e,f.d=s.d.slice()):(f.e=s.e,f.d=s.d?s.d.slice():s.d);return}if(c=typeof s,c==="number"){if(s===0){f.s=1/s<0?-1:1,f.e=0,f.d=[0];return}if(s<0?(s=-s,f.s=-1):f.s=1,s===~~s&&s<1e7){for(a=0,u=s;u>=10;u/=10)a++;Ot?a>n.maxE?(f.e=NaN,f.d=null):a<n.minE?(f.e=0,f.d=[0]):(f.e=a,f.d=[s]):(f.e=a,f.d=[s]);return}else if(s*0!==0){s||(f.s=NaN),f.e=NaN,f.d=null;return}return qa(f,s.toString())}else if(c!=="string")throw Error(On+s);return(u=s.charCodeAt(0))===45?(s=s.slice(1),f.s=-1):(u===43&&(s=s.slice(1)),f.s=1),Rc.test(s)?qa(f,s):H_(f,s)}if(n.prototype=it,n.ROUND_UP=0,n.ROUND_DOWN=1,n.ROUND_CEIL=2,n.ROUND_FLOOR=3,n.ROUND_HALF_UP=4,n.ROUND_HALF_DOWN=5,n.ROUND_HALF_EVEN=6,n.ROUND_HALF_CEIL=7,n.ROUND_HALF_FLOOR=8,n.EUCLID=9,n.config=n.set=am,n.clone=Yc,n.isDecimal=Vc,n.abs=K_,n.acos=G_,n.acosh=J_,n.add=X_,n.asin=Q_,n.asinh=tm,n.atan=em,n.atanh=rm,n.atan2=nm,n.cbrt=im,n.ceil=sm,n.clamp=om,n.cos=um,n.cosh=lm,n.div=cm,n.exp=fm,n.floor=hm,n.hypot=dm,n.ln=pm,n.log=_m,n.log10=gm,n.log2=mm,n.max=vm,n.min=ym,n.mod=wm,n.mul=Dm,n.pow=bm,n.random=xm,n.round=Em,n.sign=Am,n.sin=Cm,n.sinh=Mm,n.sqrt=Fm,n.sub=Nm,n.sum=Sm,n.tan=Om,n.tanh=Bm,n.trunc=Tm,i===void 0&&(i={}),i&&i.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)i.hasOwnProperty(e=r[t++])||(i[e]=this[e]);return n.config(i),n}function cm(i,t){return new this(i).div(t)}function fm(i){return new this(i).exp()}function hm(i){return bt(i=new this(i),i.e+1,3)}function dm(){var i,t,e=new this(0);for(Ot=!1,i=0;i<arguments.length;)if(t=new this(arguments[i++]),t.d)e.d&&(e=e.plus(t.times(t)));else{if(t.s)return Ot=!0,new this(1/0);e=t}return Ot=!0,e.sqrt()}function Vc(i){return i instanceof Ei||i&&i.toStringTag===Lc||!1}function pm(i){return new this(i).ln()}function _m(i,t){return new this(i).log(t)}function mm(i){return new this(i).log(2)}function gm(i){return new this(i).log(10)}function vm(){return qc(this,arguments,"lt")}function ym(){return qc(this,arguments,"gt")}function wm(i,t){return new this(i).mod(t)}function Dm(i,t){return new this(i).mul(t)}function bm(i,t){return new this(i).pow(t)}function xm(i){var t,e,r,n,s=0,a=new this(1),u=[];if(i===void 0?i=this.precision:cr(i,1,Sn),r=Math.ceil(i/Et),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));s<r;)n=t[s],n>=429e7?t[s]=crypto.getRandomValues(new Uint32Array(1))[0]:u[s++]=n%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(r*=4);s<r;)n=t[s]+(t[s+1]<<8)+(t[s+2]<<16)+((t[s+3]&127)<<24),n>=214e7?crypto.randomBytes(4).copy(t,s):(u.push(n%1e7),s+=4);s=r/4}else throw Error($c);else for(;s<r;)u[s++]=Math.random()*1e7|0;for(r=u[--s],i%=Et,r&&i&&(n=ke(10,Et-i),u[s]=(r/n|0)*n);u[s]===0;s--)u.pop();if(s<0)e=0,u=[0];else{for(e=-1;u[0]===0;e-=Et)u.shift();for(r=1,n=u[0];n>=10;n/=10)r++;r<Et&&(e-=Et-r)}return a.e=e,a.d=u,a}function Em(i){return bt(i=new this(i),i.e+1,this.rounding)}function Am(i){return i=new this(i),i.d?i.d[0]?i.s:0*i.s:i.s||NaN}function Cm(i){return new this(i).sin()}function Mm(i){return new this(i).sinh()}function Fm(i){return new this(i).sqrt()}function Nm(i,t){return new this(i).sub(t)}function Sm(){var i=0,t=arguments,e=new this(t[i]);for(Ot=!1;e.s&&++i<t.length;)e=e.plus(t[i]);return Ot=!0,bt(e,this.precision,this.rounding)}function Om(i){return new this(i).tan()}function Bm(i){return new this(i).tanh()}function Tm(i){return bt(i=new this(i),i.e+1,1)}it[Symbol.for("nodejs.util.inspect.custom")]=it.toString,it[Symbol.toStringTag]="Decimal";var Ei=it.constructor=Yc(Pa);ks=new Ei(ks),zs=new Ei(zs);var Im="BigNumber",$m=["?on","config"],Lm=mt(Im,$m,i=>{var{on:t,config:e}=i,r=Ei.clone({precision:e.precision,modulo:Ei.EUCLID});return r.prototype=Object.create(r.prototype),r.prototype.type="BigNumber",r.prototype.isBigNumber=!0,r.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},r.fromJSON=function(n){return new r(n.value)},t&&t("config",function(n,s){n.precision!==s.precision&&r.config({precision:n.precision})}),r},{isClass:!0}),Hc={exports:{}};/**
40
+ */var bi=9e15,Sn=1e9,Ra="0123456789abcdef",ks="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",zs="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Pa={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-bi,maxE:bi,crypto:!1},Tc,hn,Ot=!0,qs="[DecimalError] ",On=qs+"Invalid argument: ",Ic=qs+"Precision limit exceeded",$c=qs+"crypto unavailable",Lc="[object Decimal]",Qe=Math.floor,ke=Math.pow,q_=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,U_=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,j_=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Rc=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Hr=1e7,Et=7,W_=9007199254740991,Y_=ks.length-1,ka=zs.length-1,it={toStringTag:Lc};it.absoluteValue=it.abs=function(){var i=new this.constructor(this);return i.s<0&&(i.s=1),bt(i)},it.ceil=function(){return bt(new this.constructor(this),this.e+1,2)},it.clampedTo=it.clamp=function(i,t){var e,r=this,n=r.constructor;if(i=new n(i),t=new n(t),!i.s||!t.s)return new n(NaN);if(i.gt(t))throw Error(On+t);return e=r.cmp(i),e<0?i:r.cmp(t)>0?t:new n(r)},it.comparedTo=it.cmp=function(i){var t,e,r,n,s=this,a=s.d,u=(i=new s.constructor(i)).d,c=s.s,f=i.s;if(!a||!u)return!c||!f?NaN:c!==f?c:a===u?0:!a^c<0?1:-1;if(!a[0]||!u[0])return a[0]?c:u[0]?-f:0;if(c!==f)return c;if(s.e!==i.e)return s.e>i.e^c<0?1:-1;for(r=a.length,n=u.length,t=0,e=r<n?r:n;t<e;++t)if(a[t]!==u[t])return a[t]>u[t]^c<0?1:-1;return r===n?0:r>n^c<0?1:-1},it.cosine=it.cos=function(){var i,t,e=this,r=e.constructor;return e.d?e.d[0]?(i=r.precision,t=r.rounding,r.precision=i+Math.max(e.e,e.sd())+Et,r.rounding=1,e=V_(r,jc(r,e)),r.precision=i,r.rounding=t,bt(hn==2||hn==3?e.neg():e,i,t,!0)):new r(1):new r(NaN)},it.cubeRoot=it.cbrt=function(){var i,t,e,r,n,s,a,u,c,f,d=this,h=d.constructor;if(!d.isFinite()||d.isZero())return new h(d);for(Ot=!1,s=d.s*ke(d.s*d,1/3),!s||Math.abs(s)==1/0?(e=Ke(d.d),i=d.e,(s=(i-e.length+1)%3)&&(e+=s==1||s==-2?"0":"00"),s=ke(e,1/3),i=Qe((i+1)/3)-(i%3==(i<0?-1:2)),s==1/0?e="5e"+i:(e=s.toExponential(),e=e.slice(0,e.indexOf("e")+1)+i),r=new h(e),r.s=d.s):r=new h(s.toString()),a=(i=h.precision)+3;;)if(u=r,c=u.times(u).times(u),f=c.plus(d),r=de(f.plus(d).times(u),f.plus(c),a+2,1),Ke(u.d).slice(0,a)===(e=Ke(r.d)).slice(0,a))if(e=e.slice(a-3,a+1),e=="9999"||!n&&e=="4999"){if(!n&&(bt(u,i+1,0),u.times(u).times(u).eq(d))){r=u;break}a+=4,n=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(bt(r,i+1,1),t=!r.times(r).times(r).eq(d));break}return Ot=!0,bt(r,i,h.rounding,t)},it.decimalPlaces=it.dp=function(){var i,t=this.d,e=NaN;if(t){if(i=t.length-1,e=(i-Qe(this.e/Et))*Et,i=t[i],i)for(;i%10==0;i/=10)e--;e<0&&(e=0)}return e},it.dividedBy=it.div=function(i){return de(this,new this.constructor(i))},it.dividedToIntegerBy=it.divToInt=function(i){var t=this,e=t.constructor;return bt(de(t,new e(i),0,1,1),e.precision,e.rounding)},it.equals=it.eq=function(i){return this.cmp(i)===0},it.floor=function(){return bt(new this.constructor(this),this.e+1,3)},it.greaterThan=it.gt=function(i){return this.cmp(i)>0},it.greaterThanOrEqualTo=it.gte=function(i){var t=this.cmp(i);return t==1||t===0},it.hyperbolicCosine=it.cosh=function(){var i,t,e,r,n,s=this,a=s.constructor,u=new a(1);if(!s.isFinite())return new a(s.s?1/0:NaN);if(s.isZero())return u;e=a.precision,r=a.rounding,a.precision=e+Math.max(s.e,s.sd())+4,a.rounding=1,n=s.d.length,n<32?(i=Math.ceil(n/3),t=(1/Ys(4,i)).toString()):(i=16,t="2.3283064365386962890625e-10"),s=xi(a,1,s.times(t),new a(1),!0);for(var c,f=i,d=new a(8);f--;)c=s.times(s),s=u.minus(c.times(d.minus(c.times(d))));return bt(s,a.precision=e,a.rounding=r,!0)},it.hyperbolicSine=it.sinh=function(){var i,t,e,r,n=this,s=n.constructor;if(!n.isFinite()||n.isZero())return new s(n);if(t=s.precision,e=s.rounding,s.precision=t+Math.max(n.e,n.sd())+4,s.rounding=1,r=n.d.length,r<3)n=xi(s,2,n,n,!0);else{i=1.4*Math.sqrt(r),i=i>16?16:i|0,n=n.times(1/Ys(5,i)),n=xi(s,2,n,n,!0);for(var a,u=new s(5),c=new s(16),f=new s(20);i--;)a=n.times(n),n=n.times(u.plus(a.times(c.times(a).plus(f))))}return s.precision=t,s.rounding=e,bt(n,t,e,!0)},it.hyperbolicTangent=it.tanh=function(){var i,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(i=r.precision,t=r.rounding,r.precision=i+7,r.rounding=1,de(e.sinh(),e.cosh(),r.precision=i,r.rounding=t)):new r(e.s)},it.inverseCosine=it.acos=function(){var i,t=this,e=t.constructor,r=t.abs().cmp(1),n=e.precision,s=e.rounding;return r!==-1?r===0?t.isNeg()?Zr(e,n,s):new e(0):new e(NaN):t.isZero()?Zr(e,n+4,s).times(.5):(e.precision=n+6,e.rounding=1,t=t.asin(),i=Zr(e,n+4,s).times(.5),e.precision=n,e.rounding=s,i.minus(t))},it.inverseHyperbolicCosine=it.acosh=function(){var i,t,e=this,r=e.constructor;return e.lte(1)?new r(e.eq(1)?0:NaN):e.isFinite()?(i=r.precision,t=r.rounding,r.precision=i+Math.max(Math.abs(e.e),e.sd())+4,r.rounding=1,Ot=!1,e=e.times(e).minus(1).sqrt().plus(e),Ot=!0,r.precision=i,r.rounding=t,e.ln()):new r(e)},it.inverseHyperbolicSine=it.asinh=function(){var i,t,e=this,r=e.constructor;return!e.isFinite()||e.isZero()?new r(e):(i=r.precision,t=r.rounding,r.precision=i+2*Math.max(Math.abs(e.e),e.sd())+6,r.rounding=1,Ot=!1,e=e.times(e).plus(1).sqrt().plus(e),Ot=!0,r.precision=i,r.rounding=t,e.ln())},it.inverseHyperbolicTangent=it.atanh=function(){var i,t,e,r,n=this,s=n.constructor;return n.isFinite()?n.e>=0?new s(n.abs().eq(1)?n.s/0:n.isZero()?n:NaN):(i=s.precision,t=s.rounding,r=n.sd(),Math.max(r,i)<2*-n.e-1?bt(new s(n),i,t,!0):(s.precision=e=r-n.e,n=de(n.plus(1),new s(1).minus(n),e+i,1),s.precision=i+4,s.rounding=1,n=n.ln(),s.precision=i,s.rounding=t,n.times(.5))):new s(NaN)},it.inverseSine=it.asin=function(){var i,t,e,r,n=this,s=n.constructor;return n.isZero()?new s(n):(t=n.abs().cmp(1),e=s.precision,r=s.rounding,t!==-1?t===0?(i=Zr(s,e+4,r).times(.5),i.s=n.s,i):new s(NaN):(s.precision=e+6,s.rounding=1,n=n.div(new s(1).minus(n.times(n)).sqrt().plus(1)).atan(),s.precision=e,s.rounding=r,n.times(2)))},it.inverseTangent=it.atan=function(){var i,t,e,r,n,s,a,u,c,f=this,d=f.constructor,h=d.precision,p=d.rounding;if(f.isFinite()){if(f.isZero())return new d(f);if(f.abs().eq(1)&&h+4<=ka)return a=Zr(d,h+4,p).times(.25),a.s=f.s,a}else{if(!f.s)return new d(NaN);if(h+4<=ka)return a=Zr(d,h+4,p).times(.5),a.s=f.s,a}for(d.precision=u=h+10,d.rounding=1,e=Math.min(28,u/Et+2|0),i=e;i;--i)f=f.div(f.times(f).plus(1).sqrt().plus(1));for(Ot=!1,t=Math.ceil(u/Et),r=1,c=f.times(f),a=new d(f),n=f;i!==-1;)if(n=n.times(c),s=a.minus(n.div(r+=2)),n=n.times(c),a=s.plus(n.div(r+=2)),a.d[t]!==void 0)for(i=t;a.d[i]===s.d[i]&&i--;);return e&&(a=a.times(2<<e-1)),Ot=!0,bt(a,d.precision=h,d.rounding=p,!0)},it.isFinite=function(){return!!this.d},it.isInteger=it.isInt=function(){return!!this.d&&Qe(this.e/Et)>this.d.length-2},it.isNaN=function(){return!this.s},it.isNegative=it.isNeg=function(){return this.s<0},it.isPositive=it.isPos=function(){return this.s>0},it.isZero=function(){return!!this.d&&this.d[0]===0},it.lessThan=it.lt=function(i){return this.cmp(i)<0},it.lessThanOrEqualTo=it.lte=function(i){return this.cmp(i)<1},it.logarithm=it.log=function(i){var t,e,r,n,s,a,u,c,f=this,d=f.constructor,h=d.precision,p=d.rounding,g=5;if(i==null)i=new d(10),t=!0;else{if(i=new d(i),e=i.d,i.s<0||!e||!e[0]||i.eq(1))return new d(NaN);t=i.eq(10)}if(e=f.d,f.s<0||!e||!e[0]||f.eq(1))return new d(e&&!e[0]?-1/0:f.s!=1?NaN:e?0:1/0);if(t)if(e.length>1)s=!0;else{for(n=e[0];n%10===0;)n/=10;s=n!==1}if(Ot=!1,u=h+g,a=Tn(f,u),r=t?Ws(d,u+10):Tn(i,u),c=de(a,r,u,1),rs(c.d,n=h,p))do if(u+=10,a=Tn(f,u),r=t?Ws(d,u+10):Tn(i,u),c=de(a,r,u,1),!s){+Ke(c.d).slice(n+1,n+15)+1==1e14&&(c=bt(c,h+1,0));break}while(rs(c.d,n+=10,p));return Ot=!0,bt(c,h,p)},it.minus=it.sub=function(i){var t,e,r,n,s,a,u,c,f,d,h,p,g=this,y=g.constructor;if(i=new y(i),!g.d||!i.d)return!g.s||!i.s?i=new y(NaN):g.d?i.s=-i.s:i=new y(i.d||g.s!==i.s?g:NaN),i;if(g.s!=i.s)return i.s=-i.s,g.plus(i);if(f=g.d,p=i.d,u=y.precision,c=y.rounding,!f[0]||!p[0]){if(p[0])i.s=-i.s;else if(f[0])i=new y(g);else return new y(c===3?-0:0);return Ot?bt(i,u,c):i}if(e=Qe(i.e/Et),d=Qe(g.e/Et),f=f.slice(),s=d-e,s){for(h=s<0,h?(t=f,s=-s,a=p.length):(t=p,e=d,a=f.length),r=Math.max(Math.ceil(u/Et),a)+2,s>r&&(s=r,t.length=1),t.reverse(),r=s;r--;)t.push(0);t.reverse()}else{for(r=f.length,a=p.length,h=r<a,h&&(a=r),r=0;r<a;r++)if(f[r]!=p[r]){h=f[r]<p[r];break}s=0}for(h&&(t=f,f=p,p=t,i.s=-i.s),a=f.length,r=p.length-a;r>0;--r)f[a++]=0;for(r=p.length;r>s;){if(f[--r]<p[r]){for(n=r;n&&f[--n]===0;)f[n]=Hr-1;--f[n],f[r]+=Hr}f[r]-=p[r]}for(;f[--a]===0;)f.pop();for(;f[0]===0;f.shift())--e;return f[0]?(i.d=f,i.e=js(f,e),Ot?bt(i,u,c):i):new y(c===3?-0:0)},it.modulo=it.mod=function(i){var t,e=this,r=e.constructor;return i=new r(i),!e.d||!i.s||i.d&&!i.d[0]?new r(NaN):!i.d||e.d&&!e.d[0]?bt(new r(e),r.precision,r.rounding):(Ot=!1,r.modulo==9?(t=de(e,i.abs(),0,3,1),t.s*=i.s):t=de(e,i,0,r.modulo,1),t=t.times(i),Ot=!0,e.minus(t))},it.naturalExponential=it.exp=function(){return za(this)},it.naturalLogarithm=it.ln=function(){return Tn(this)},it.negated=it.neg=function(){var i=new this.constructor(this);return i.s=-i.s,bt(i)},it.plus=it.add=function(i){var t,e,r,n,s,a,u,c,f,d,h=this,p=h.constructor;if(i=new p(i),!h.d||!i.d)return!h.s||!i.s?i=new p(NaN):h.d||(i=new p(i.d||h.s===i.s?h:NaN)),i;if(h.s!=i.s)return i.s=-i.s,h.minus(i);if(f=h.d,d=i.d,u=p.precision,c=p.rounding,!f[0]||!d[0])return d[0]||(i=new p(h)),Ot?bt(i,u,c):i;if(s=Qe(h.e/Et),r=Qe(i.e/Et),f=f.slice(),n=s-r,n){for(n<0?(e=f,n=-n,a=d.length):(e=d,r=s,a=f.length),s=Math.ceil(u/Et),a=s>a?s+1:a+1,n>a&&(n=a,e.length=1),e.reverse();n--;)e.push(0);e.reverse()}for(a=f.length,n=d.length,a-n<0&&(n=a,e=d,d=f,f=e),t=0;n;)t=(f[--n]=f[n]+d[n]+t)/Hr|0,f[n]%=Hr;for(t&&(f.unshift(t),++r),a=f.length;f[--a]==0;)f.pop();return i.d=f,i.e=js(f,r),Ot?bt(i,u,c):i},it.precision=it.sd=function(i){var t,e=this;if(i!==void 0&&i!==!!i&&i!==1&&i!==0)throw Error(On+i);return e.d?(t=Pc(e.d),i&&e.e+1>t&&(t=e.e+1)):t=NaN,t},it.round=function(){var i=this,t=i.constructor;return bt(new t(i),i.e+1,t.rounding)},it.sine=it.sin=function(){var i,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(i=r.precision,t=r.rounding,r.precision=i+Math.max(e.e,e.sd())+Et,r.rounding=1,e=Z_(r,jc(r,e)),r.precision=i,r.rounding=t,bt(hn>2?e.neg():e,i,t,!0)):new r(NaN)},it.squareRoot=it.sqrt=function(){var i,t,e,r,n,s,a=this,u=a.d,c=a.e,f=a.s,d=a.constructor;if(f!==1||!u||!u[0])return new d(!f||f<0&&(!u||u[0])?NaN:u?a:1/0);for(Ot=!1,f=Math.sqrt(+a),f==0||f==1/0?(t=Ke(u),(t.length+c)%2==0&&(t+="0"),f=Math.sqrt(t),c=Qe((c+1)/2)-(c<0||c%2),f==1/0?t="5e"+c:(t=f.toExponential(),t=t.slice(0,t.indexOf("e")+1)+c),r=new d(t)):r=new d(f.toString()),e=(c=d.precision)+3;;)if(s=r,r=s.plus(de(a,s,e+2,1)).times(.5),Ke(s.d).slice(0,e)===(t=Ke(r.d)).slice(0,e))if(t=t.slice(e-3,e+1),t=="9999"||!n&&t=="4999"){if(!n&&(bt(s,c+1,0),s.times(s).eq(a))){r=s;break}e+=4,n=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(bt(r,c+1,1),i=!r.times(r).eq(a));break}return Ot=!0,bt(r,c,d.rounding,i)},it.tangent=it.tan=function(){var i,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(i=r.precision,t=r.rounding,r.precision=i+10,r.rounding=1,e=e.sin(),e.s=1,e=de(e,new r(1).minus(e.times(e)).sqrt(),i+10,0),r.precision=i,r.rounding=t,bt(hn==2||hn==4?e.neg():e,i,t,!0)):new r(NaN)},it.times=it.mul=function(i){var t,e,r,n,s,a,u,c,f,d=this,h=d.constructor,p=d.d,g=(i=new h(i)).d;if(i.s*=d.s,!p||!p[0]||!g||!g[0])return new h(!i.s||p&&!p[0]&&!g||g&&!g[0]&&!p?NaN:!p||!g?i.s/0:i.s*0);for(e=Qe(d.e/Et)+Qe(i.e/Et),c=p.length,f=g.length,c<f&&(s=p,p=g,g=s,a=c,c=f,f=a),s=[],a=c+f,r=a;r--;)s.push(0);for(r=f;--r>=0;){for(t=0,n=c+r;n>r;)u=s[n]+g[r]*p[n-r-1]+t,s[n--]=u%Hr|0,t=u/Hr|0;s[n]=(s[n]+t)%Hr|0}for(;!s[--a];)s.pop();return t?++e:s.shift(),i.d=s,i.e=js(s,e),Ot?bt(i,h.precision,h.rounding):i},it.toBinary=function(i,t){return Ua(this,2,i,t)},it.toDecimalPlaces=it.toDP=function(i,t){var e=this,r=e.constructor;return e=new r(e),i===void 0?e:(cr(i,0,Sn),t===void 0?t=r.rounding:cr(t,0,8),bt(e,i+e.e+1,t))},it.toExponential=function(i,t){var e,r=this,n=r.constructor;return i===void 0?e=rn(r,!0):(cr(i,0,Sn),t===void 0?t=n.rounding:cr(t,0,8),r=bt(new n(r),i+1,t),e=rn(r,!0,i+1)),r.isNeg()&&!r.isZero()?"-"+e:e},it.toFixed=function(i,t){var e,r,n=this,s=n.constructor;return i===void 0?e=rn(n):(cr(i,0,Sn),t===void 0?t=s.rounding:cr(t,0,8),r=bt(new s(n),i+n.e+1,t),e=rn(r,!1,i+r.e+1)),n.isNeg()&&!n.isZero()?"-"+e:e},it.toFraction=function(i){var t,e,r,n,s,a,u,c,f,d,h,p,g=this,y=g.d,_=g.constructor;if(!y)return new _(g);if(f=e=new _(1),r=c=new _(0),t=new _(r),s=t.e=Pc(y)-g.e-1,a=s%Et,t.d[0]=ke(10,a<0?Et+a:a),i==null)i=s>0?t:f;else{if(u=new _(i),!u.isInt()||u.lt(f))throw Error(On+u);i=u.gt(t)?s>0?t:f:u}for(Ot=!1,u=new _(Ke(y)),d=_.precision,_.precision=s=y.length*Et*2;h=de(u,t,0,1,1),n=e.plus(h.times(r)),n.cmp(i)!=1;)e=r,r=n,n=f,f=c.plus(h.times(n)),c=n,n=t,t=u.minus(h.times(n)),u=n;return n=de(i.minus(e),r,0,1,1),c=c.plus(n.times(f)),e=e.plus(n.times(r)),c.s=f.s=g.s,p=de(f,r,s,1).minus(g).abs().cmp(de(c,e,s,1).minus(g).abs())<1?[f,r]:[c,e],_.precision=d,Ot=!0,p},it.toHexadecimal=it.toHex=function(i,t){return Ua(this,16,i,t)},it.toNearest=function(i,t){var e=this,r=e.constructor;if(e=new r(e),i==null){if(!e.d)return e;i=new r(1),t=r.rounding}else{if(i=new r(i),t===void 0?t=r.rounding:cr(t,0,8),!e.d)return i.s?e:i;if(!i.d)return i.s&&(i.s=e.s),i}return i.d[0]?(Ot=!1,e=de(e,i,0,t,1).times(i),Ot=!0,bt(e)):(i.s=e.s,e=i),e},it.toNumber=function(){return+this},it.toOctal=function(i,t){return Ua(this,8,i,t)},it.toPower=it.pow=function(i){var t,e,r,n,s,a,u=this,c=u.constructor,f=+(i=new c(i));if(!u.d||!i.d||!u.d[0]||!i.d[0])return new c(ke(+u,f));if(u=new c(u),u.eq(1))return u;if(r=c.precision,s=c.rounding,i.eq(1))return bt(u,r,s);if(t=Qe(i.e/Et),t>=i.d.length-1&&(e=f<0?-f:f)<=W_)return n=kc(c,u,e,r),i.s<0?new c(1).div(n):bt(n,r,s);if(a=u.s,a<0){if(t<i.d.length-1)return new c(NaN);if(i.d[t]&1||(a=1),u.e==0&&u.d[0]==1&&u.d.length==1)return u.s=a,u}return e=ke(+u,f),t=e==0||!isFinite(e)?Qe(f*(Math.log("0."+Ke(u.d))/Math.LN10+u.e+1)):new c(e+"").e,t>c.maxE+1||t<c.minE-1?new c(t>0?a/0:0):(Ot=!1,c.rounding=u.s=1,e=Math.min(12,(t+"").length),n=za(i.times(Tn(u,r+e)),r),n.d&&(n=bt(n,r+5,1),rs(n.d,r,s)&&(t=r+10,n=bt(za(i.times(Tn(u,t+e)),t),t+5,1),+Ke(n.d).slice(r+1,r+15)+1==1e14&&(n=bt(n,r+1,0)))),n.s=a,Ot=!0,c.rounding=s,bt(n,r,s))},it.toPrecision=function(i,t){var e,r=this,n=r.constructor;return i===void 0?e=rn(r,r.e<=n.toExpNeg||r.e>=n.toExpPos):(cr(i,1,Sn),t===void 0?t=n.rounding:cr(t,0,8),r=bt(new n(r),i,t),e=rn(r,i<=r.e||r.e<=n.toExpNeg,i)),r.isNeg()&&!r.isZero()?"-"+e:e},it.toSignificantDigits=it.toSD=function(i,t){var e=this,r=e.constructor;return i===void 0?(i=r.precision,t=r.rounding):(cr(i,1,Sn),t===void 0?t=r.rounding:cr(t,0,8)),bt(new r(e),i,t)},it.toString=function(){var i=this,t=i.constructor,e=rn(i,i.e<=t.toExpNeg||i.e>=t.toExpPos);return i.isNeg()&&!i.isZero()?"-"+e:e},it.truncated=it.trunc=function(){return bt(new this.constructor(this),this.e+1,1)},it.valueOf=it.toJSON=function(){var i=this,t=i.constructor,e=rn(i,i.e<=t.toExpNeg||i.e>=t.toExpPos);return i.isNeg()?"-"+e:e};function Ke(i){var t,e,r,n=i.length-1,s="",a=i[0];if(n>0){for(s+=a,t=1;t<n;t++)r=i[t]+"",e=Et-r.length,e&&(s+=Bn(e)),s+=r;a=i[t],r=a+"",e=Et-r.length,e&&(s+=Bn(e))}else if(a===0)return"0";for(;a%10===0;)a/=10;return s+a}function cr(i,t,e){if(i!==~~i||i<t||i>e)throw Error(On+i)}function rs(i,t,e,r){var n,s,a,u;for(s=i[0];s>=10;s/=10)--t;return--t<0?(t+=Et,n=0):(n=Math.ceil((t+1)/Et),t%=Et),s=ke(10,Et-t),u=i[n]%s|0,r==null?t<3?(t==0?u=u/100|0:t==1&&(u=u/10|0),a=e<4&&u==99999||e>3&&u==49999||u==5e4||u==0):a=(e<4&&u+1==s||e>3&&u+1==s/2)&&(i[n+1]/s/100|0)==ke(10,t-2)-1||(u==s/2||u==0)&&(i[n+1]/s/100|0)==0:t<4?(t==0?u=u/1e3|0:t==1?u=u/100|0:t==2&&(u=u/10|0),a=(r||e<4)&&u==9999||!r&&e>3&&u==4999):a=((r||e<4)&&u+1==s||!r&&e>3&&u+1==s/2)&&(i[n+1]/s/1e3|0)==ke(10,t-3)-1,a}function Us(i,t,e){for(var r,n=[0],s,a=0,u=i.length;a<u;){for(s=n.length;s--;)n[s]*=t;for(n[0]+=Ra.indexOf(i.charAt(a++)),r=0;r<n.length;r++)n[r]>e-1&&(n[r+1]===void 0&&(n[r+1]=0),n[r+1]+=n[r]/e|0,n[r]%=e)}return n.reverse()}function V_(i,t){var e,r,n;if(t.isZero())return t;r=t.d.length,r<32?(e=Math.ceil(r/3),n=(1/Ys(4,e)).toString()):(e=16,n="2.3283064365386962890625e-10"),i.precision+=e,t=xi(i,1,t.times(n),new i(1));for(var s=e;s--;){var a=t.times(t);t=a.times(a).minus(a).times(8).plus(1)}return i.precision-=e,t}var de=function(){function i(r,n,s){var a,u=0,c=r.length;for(r=r.slice();c--;)a=r[c]*n+u,r[c]=a%s|0,u=a/s|0;return u&&r.unshift(u),r}function t(r,n,s,a){var u,c;if(s!=a)c=s>a?1:-1;else for(u=c=0;u<s;u++)if(r[u]!=n[u]){c=r[u]>n[u]?1:-1;break}return c}function e(r,n,s,a){for(var u=0;s--;)r[s]-=u,u=r[s]<n[s]?1:0,r[s]=u*a+r[s]-n[s];for(;!r[0]&&r.length>1;)r.shift()}return function(r,n,s,a,u,c){var f,d,h,p,g,y,_,w,v,x,b,N,E,C,F,S,I,A,O,L,z=r.constructor,q=r.s==n.s?1:-1,j=r.d,P=n.d;if(!j||!j[0]||!P||!P[0])return new z(!r.s||!n.s||(j?P&&j[0]==P[0]:!P)?NaN:j&&j[0]==0||!P?q*0:q/0);for(c?(g=1,d=r.e-n.e):(c=Hr,g=Et,d=Qe(r.e/g)-Qe(n.e/g)),O=P.length,I=j.length,v=new z(q),x=v.d=[],h=0;P[h]==(j[h]||0);h++);if(P[h]>(j[h]||0)&&d--,s==null?(C=s=z.precision,a=z.rounding):u?C=s+(r.e-n.e)+1:C=s,C<0)x.push(1),y=!0;else{if(C=C/g+2|0,h=0,O==1){for(p=0,P=P[0],C++;(h<I||p)&&C--;h++)F=p*c+(j[h]||0),x[h]=F/P|0,p=F%P|0;y=p||h<I}else{for(p=c/(P[0]+1)|0,p>1&&(P=i(P,p,c),j=i(j,p,c),O=P.length,I=j.length),S=O,b=j.slice(0,O),N=b.length;N<O;)b[N++]=0;L=P.slice(),L.unshift(0),A=P[0],P[1]>=c/2&&++A;do p=0,f=t(P,b,O,N),f<0?(E=b[0],O!=N&&(E=E*c+(b[1]||0)),p=E/A|0,p>1?(p>=c&&(p=c-1),_=i(P,p,c),w=_.length,N=b.length,f=t(_,b,w,N),f==1&&(p--,e(_,O<w?L:P,w,c))):(p==0&&(f=p=1),_=P.slice()),w=_.length,w<N&&_.unshift(0),e(b,_,N,c),f==-1&&(N=b.length,f=t(P,b,O,N),f<1&&(p++,e(b,O<N?L:P,N,c))),N=b.length):f===0&&(p++,b=[0]),x[h++]=p,f&&b[0]?b[N++]=j[S]||0:(b=[j[S]],N=1);while((S++<I||b[0]!==void 0)&&C--);y=b[0]!==void 0}x[0]||x.shift()}if(g==1)v.e=d,Tc=y;else{for(h=1,p=x[0];p>=10;p/=10)h++;v.e=h+d*g-1,bt(v,u?s+v.e+1:s,a,y)}return v}}();function bt(i,t,e,r){var n,s,a,u,c,f,d,h,p,g=i.constructor;t:if(t!=null){if(h=i.d,!h)return i;for(n=1,u=h[0];u>=10;u/=10)n++;if(s=t-n,s<0)s+=Et,a=t,d=h[p=0],c=d/ke(10,n-a-1)%10|0;else if(p=Math.ceil((s+1)/Et),u=h.length,p>=u)if(r){for(;u++<=p;)h.push(0);d=c=0,n=1,s%=Et,a=s-Et+1}else break t;else{for(d=u=h[p],n=1;u>=10;u/=10)n++;s%=Et,a=s-Et+n,c=a<0?0:d/ke(10,n-a-1)%10|0}if(r=r||t<0||h[p+1]!==void 0||(a<0?d:d%ke(10,n-a-1)),f=e<4?(c||r)&&(e==0||e==(i.s<0?3:2)):c>5||c==5&&(e==4||r||e==6&&(s>0?a>0?d/ke(10,n-a):0:h[p-1])%10&1||e==(i.s<0?8:7)),t<1||!h[0])return h.length=0,f?(t-=i.e+1,h[0]=ke(10,(Et-t%Et)%Et),i.e=-t||0):h[0]=i.e=0,i;if(s==0?(h.length=p,u=1,p--):(h.length=p+1,u=ke(10,Et-s),h[p]=a>0?(d/ke(10,n-a)%ke(10,a)|0)*u:0),f)for(;;)if(p==0){for(s=1,a=h[0];a>=10;a/=10)s++;for(a=h[0]+=u,u=1;a>=10;a/=10)u++;s!=u&&(i.e++,h[0]==Hr&&(h[0]=1));break}else{if(h[p]+=u,h[p]!=Hr)break;h[p--]=0,u=1}for(s=h.length;h[--s]===0;)h.pop()}return Ot&&(i.e>g.maxE?(i.d=null,i.e=NaN):i.e<g.minE&&(i.e=0,i.d=[0])),i}function rn(i,t,e){if(!i.isFinite())return Uc(i);var r,n=i.e,s=Ke(i.d),a=s.length;return t?(e&&(r=e-a)>0?s=s.charAt(0)+"."+s.slice(1)+Bn(r):a>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(i.e<0?"e":"e+")+i.e):n<0?(s="0."+Bn(-n-1)+s,e&&(r=e-a)>0&&(s+=Bn(r))):n>=a?(s+=Bn(n+1-a),e&&(r=e-n-1)>0&&(s=s+"."+Bn(r))):((r=n+1)<a&&(s=s.slice(0,r)+"."+s.slice(r)),e&&(r=e-a)>0&&(n+1===a&&(s+="."),s+=Bn(r))),s}function js(i,t){var e=i[0];for(t*=Et;e>=10;e/=10)t++;return t}function Ws(i,t,e){if(t>Y_)throw Ot=!0,e&&(i.precision=e),Error(Ic);return bt(new i(ks),t,1,!0)}function Zr(i,t,e){if(t>ka)throw Error(Ic);return bt(new i(zs),t,e,!0)}function Pc(i){var t=i.length-1,e=t*Et+1;if(t=i[t],t){for(;t%10==0;t/=10)e--;for(t=i[0];t>=10;t/=10)e++}return e}function Bn(i){for(var t="";i--;)t+="0";return t}function kc(i,t,e,r){var n,s=new i(1),a=Math.ceil(r/Et+4);for(Ot=!1;;){if(e%2&&(s=s.times(t),Wc(s.d,a)&&(n=!0)),e=Qe(e/2),e===0){e=s.d.length-1,n&&s.d[e]===0&&++s.d[e];break}t=t.times(t),Wc(t.d,a)}return Ot=!0,s}function zc(i){return i.d[i.d.length-1]&1}function qc(i,t,e){for(var r,n=new i(t[0]),s=0;++s<t.length;)if(r=new i(t[s]),r.s)n[e](r)&&(n=r);else{n=r;break}return n}function za(i,t){var e,r,n,s,a,u,c,f=0,d=0,h=0,p=i.constructor,g=p.rounding,y=p.precision;if(!i.d||!i.d[0]||i.e>17)return new p(i.d?i.d[0]?i.s<0?0:1/0:1:i.s?i.s<0?0:i:NaN);for(t==null?(Ot=!1,c=y):c=t,u=new p(.03125);i.e>-2;)i=i.times(u),h+=5;for(r=Math.log(ke(2,h))/Math.LN10*2+5|0,c+=r,e=s=a=new p(1),p.precision=c;;){if(s=bt(s.times(i),c,1),e=e.times(++d),u=a.plus(de(s,e,c,1)),Ke(u.d).slice(0,c)===Ke(a.d).slice(0,c)){for(n=h;n--;)a=bt(a.times(a),c,1);if(t==null)if(f<3&&rs(a.d,c-r,g,f))p.precision=c+=10,e=s=u=new p(1),d=0,f++;else return bt(a,p.precision=y,g,Ot=!0);else return p.precision=y,a}a=u}}function Tn(i,t){var e,r,n,s,a,u,c,f,d,h,p,g=1,y=10,_=i,w=_.d,v=_.constructor,x=v.rounding,b=v.precision;if(_.s<0||!w||!w[0]||!_.e&&w[0]==1&&w.length==1)return new v(w&&!w[0]?-1/0:_.s!=1?NaN:w?0:_);if(t==null?(Ot=!1,d=b):d=t,v.precision=d+=y,e=Ke(w),r=e.charAt(0),Math.abs(s=_.e)<15e14){for(;r<7&&r!=1||r==1&&e.charAt(1)>3;)_=_.times(i),e=Ke(_.d),r=e.charAt(0),g++;s=_.e,r>1?(_=new v("0."+e),s++):_=new v(r+"."+e.slice(1))}else return f=Ws(v,d+2,b).times(s+""),_=Tn(new v(r+"."+e.slice(1)),d-y).plus(f),v.precision=b,t==null?bt(_,b,x,Ot=!0):_;for(h=_,c=a=_=de(_.minus(1),_.plus(1),d,1),p=bt(_.times(_),d,1),n=3;;){if(a=bt(a.times(p),d,1),f=c.plus(de(a,new v(n),d,1)),Ke(f.d).slice(0,d)===Ke(c.d).slice(0,d))if(c=c.times(2),s!==0&&(c=c.plus(Ws(v,d+2,b).times(s+""))),c=de(c,new v(g),d,1),t==null)if(rs(c.d,d-y,x,u))v.precision=d+=y,f=a=_=de(h.minus(1),h.plus(1),d,1),p=bt(_.times(_),d,1),n=u=1;else return bt(c,v.precision=b,x,Ot=!0);else return v.precision=b,c;c=f,n+=2}}function Uc(i){return String(i.s*i.s/0)}function qa(i,t){var e,r,n;for((e=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(e<0&&(e=r),e+=+t.slice(r+1),t=t.substring(0,r)):e<0&&(e=t.length),r=0;t.charCodeAt(r)===48;r++);for(n=t.length;t.charCodeAt(n-1)===48;--n);if(t=t.slice(r,n),t){if(n-=r,i.e=e=e-r-1,i.d=[],r=(e+1)%Et,e<0&&(r+=Et),r<n){for(r&&i.d.push(+t.slice(0,r)),n-=Et;r<n;)i.d.push(+t.slice(r,r+=Et));t=t.slice(r),r=Et-t.length}else r-=n;for(;r--;)t+="0";i.d.push(+t),Ot&&(i.e>i.constructor.maxE?(i.d=null,i.e=NaN):i.e<i.constructor.minE&&(i.e=0,i.d=[0]))}else i.e=0,i.d=[0];return i}function H_(i,t){var e,r,n,s,a,u,c,f,d;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Rc.test(t))return qa(i,t)}else if(t==="Infinity"||t==="NaN")return+t||(i.s=NaN),i.e=NaN,i.d=null,i;if(U_.test(t))e=16,t=t.toLowerCase();else if(q_.test(t))e=2;else if(j_.test(t))e=8;else throw Error(On+t);for(s=t.search(/p/i),s>0?(c=+t.slice(s+1),t=t.substring(2,s)):t=t.slice(2),s=t.indexOf("."),a=s>=0,r=i.constructor,a&&(t=t.replace(".",""),u=t.length,s=u-s,n=kc(r,new r(e),s,s*2)),f=Us(t,e,Hr),d=f.length-1,s=d;f[s]===0;--s)f.pop();return s<0?new r(i.s*0):(i.e=js(f,d),i.d=f,Ot=!1,a&&(i=de(i,n,u*4)),c&&(i=i.times(Math.abs(c)<54?ke(2,c):Ei.pow(2,c))),Ot=!0,i)}function Z_(i,t){var e,r=t.d.length;if(r<3)return t.isZero()?t:xi(i,2,t,t);e=1.4*Math.sqrt(r),e=e>16?16:e|0,t=t.times(1/Ys(5,e)),t=xi(i,2,t,t);for(var n,s=new i(5),a=new i(16),u=new i(20);e--;)n=t.times(t),t=t.times(s.plus(n.times(a.times(n).minus(u))));return t}function xi(i,t,e,r,n){var s,a,u,c,f=i.precision,d=Math.ceil(f/Et);for(Ot=!1,c=e.times(e),u=new i(r);;){if(a=de(u.times(c),new i(t++*t++),f,1),u=n?r.plus(a):r.minus(a),r=de(a.times(c),new i(t++*t++),f,1),a=u.plus(r),a.d[d]!==void 0){for(s=d;a.d[s]===u.d[s]&&s--;);if(s==-1)break}s=u,u=r,r=a,a=s}return Ot=!0,a.d.length=d+1,a}function Ys(i,t){for(var e=i;--t;)e*=i;return e}function jc(i,t){var e,r=t.s<0,n=Zr(i,i.precision,1),s=n.times(.5);if(t=t.abs(),t.lte(s))return hn=r?4:1,t;if(e=t.divToInt(n),e.isZero())hn=r?3:2;else{if(t=t.minus(e.times(n)),t.lte(s))return hn=zc(e)?r?2:3:r?4:1,t;hn=zc(e)?r?1:4:r?3:2}return t.minus(n).abs()}function Ua(i,t,e,r){var n,s,a,u,c,f,d,h,p,g=i.constructor,y=e!==void 0;if(y?(cr(e,1,Sn),r===void 0?r=g.rounding:cr(r,0,8)):(e=g.precision,r=g.rounding),!i.isFinite())d=Uc(i);else{for(d=rn(i),a=d.indexOf("."),y?(n=2,t==16?e=e*4-3:t==8&&(e=e*3-2)):n=t,a>=0&&(d=d.replace(".",""),p=new g(1),p.e=d.length-a,p.d=Us(rn(p),10,n),p.e=p.d.length),h=Us(d,10,n),s=c=h.length;h[--c]==0;)h.pop();if(!h[0])d=y?"0p+0":"0";else{if(a<0?s--:(i=new g(i),i.d=h,i.e=s,i=de(i,p,e,r,0,n),h=i.d,s=i.e,f=Tc),a=h[e],u=n/2,f=f||h[e+1]!==void 0,f=r<4?(a!==void 0||f)&&(r===0||r===(i.s<0?3:2)):a>u||a===u&&(r===4||f||r===6&&h[e-1]&1||r===(i.s<0?8:7)),h.length=e,f)for(;++h[--e]>n-1;)h[e]=0,e||(++s,h.unshift(1));for(c=h.length;!h[c-1];--c);for(a=0,d="";a<c;a++)d+=Ra.charAt(h[a]);if(y){if(c>1)if(t==16||t==8){for(a=t==16?4:3,--c;c%a;c++)d+="0";for(h=Us(d,n,t),c=h.length;!h[c-1];--c);for(a=1,d="1.";a<c;a++)d+=Ra.charAt(h[a])}else d=d.charAt(0)+"."+d.slice(1);d=d+(s<0?"p":"p+")+s}else if(s<0){for(;++s;)d="0"+d;d="0."+d}else if(++s>c)for(s-=c;s--;)d+="0";else s<c&&(d=d.slice(0,s)+"."+d.slice(s))}d=(t==16?"0x":t==2?"0b":t==8?"0o":"")+d}return i.s<0?"-"+d:d}function Wc(i,t){if(i.length>t)return i.length=t,!0}function K_(i){return new this(i).abs()}function G_(i){return new this(i).acos()}function J_(i){return new this(i).acosh()}function X_(i,t){return new this(i).plus(t)}function Q_(i){return new this(i).asin()}function tm(i){return new this(i).asinh()}function em(i){return new this(i).atan()}function rm(i){return new this(i).atanh()}function nm(i,t){i=new this(i),t=new this(t);var e,r=this.precision,n=this.rounding,s=r+4;return!i.s||!t.s?e=new this(NaN):!i.d&&!t.d?(e=Zr(this,s,1).times(t.s>0?.25:.75),e.s=i.s):!t.d||i.isZero()?(e=t.s<0?Zr(this,r,n):new this(0),e.s=i.s):!i.d||t.isZero()?(e=Zr(this,s,1).times(.5),e.s=i.s):t.s<0?(this.precision=s,this.rounding=1,e=this.atan(de(i,t,s,1)),t=Zr(this,s,1),this.precision=r,this.rounding=n,e=i.s<0?e.minus(t):e.plus(t)):e=this.atan(de(i,t,s,1)),e}function im(i){return new this(i).cbrt()}function sm(i){return bt(i=new this(i),i.e+1,2)}function om(i,t,e){return new this(i).clamp(t,e)}function am(i){if(!i||typeof i!="object")throw Error(qs+"Object expected");var t,e,r,n=i.defaults===!0,s=["precision",1,Sn,"rounding",0,8,"toExpNeg",-bi,0,"toExpPos",0,bi,"maxE",0,bi,"minE",-bi,0,"modulo",0,9];for(t=0;t<s.length;t+=3)if(e=s[t],n&&(this[e]=Pa[e]),(r=i[e])!==void 0)if(Qe(r)===r&&r>=s[t+1]&&r<=s[t+2])this[e]=r;else throw Error(On+e+": "+r);if(e="crypto",n&&(this[e]=Pa[e]),(r=i[e])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[e]=!0;else throw Error($c);else this[e]=!1;else throw Error(On+e+": "+r);return this}function um(i){return new this(i).cos()}function lm(i){return new this(i).cosh()}function Yc(i){var t,e,r;function n(s){var a,u,c,f=this;if(!(f instanceof n))return new n(s);if(f.constructor=n,Vc(s)){f.s=s.s,Ot?!s.d||s.e>n.maxE?(f.e=NaN,f.d=null):s.e<n.minE?(f.e=0,f.d=[0]):(f.e=s.e,f.d=s.d.slice()):(f.e=s.e,f.d=s.d?s.d.slice():s.d);return}if(c=typeof s,c==="number"){if(s===0){f.s=1/s<0?-1:1,f.e=0,f.d=[0];return}if(s<0?(s=-s,f.s=-1):f.s=1,s===~~s&&s<1e7){for(a=0,u=s;u>=10;u/=10)a++;Ot?a>n.maxE?(f.e=NaN,f.d=null):a<n.minE?(f.e=0,f.d=[0]):(f.e=a,f.d=[s]):(f.e=a,f.d=[s]);return}else if(s*0!==0){s||(f.s=NaN),f.e=NaN,f.d=null;return}return qa(f,s.toString())}else if(c!=="string")throw Error(On+s);return(u=s.charCodeAt(0))===45?(s=s.slice(1),f.s=-1):(u===43&&(s=s.slice(1)),f.s=1),Rc.test(s)?qa(f,s):H_(f,s)}if(n.prototype=it,n.ROUND_UP=0,n.ROUND_DOWN=1,n.ROUND_CEIL=2,n.ROUND_FLOOR=3,n.ROUND_HALF_UP=4,n.ROUND_HALF_DOWN=5,n.ROUND_HALF_EVEN=6,n.ROUND_HALF_CEIL=7,n.ROUND_HALF_FLOOR=8,n.EUCLID=9,n.config=n.set=am,n.clone=Yc,n.isDecimal=Vc,n.abs=K_,n.acos=G_,n.acosh=J_,n.add=X_,n.asin=Q_,n.asinh=tm,n.atan=em,n.atanh=rm,n.atan2=nm,n.cbrt=im,n.ceil=sm,n.clamp=om,n.cos=um,n.cosh=lm,n.div=cm,n.exp=fm,n.floor=hm,n.hypot=dm,n.ln=pm,n.log=_m,n.log10=gm,n.log2=mm,n.max=vm,n.min=ym,n.mod=wm,n.mul=Dm,n.pow=bm,n.random=xm,n.round=Em,n.sign=Am,n.sin=Cm,n.sinh=Mm,n.sqrt=Fm,n.sub=Nm,n.sum=Sm,n.tan=Om,n.tanh=Bm,n.trunc=Tm,i===void 0&&(i={}),i&&i.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)i.hasOwnProperty(e=r[t++])||(i[e]=this[e]);return n.config(i),n}function cm(i,t){return new this(i).div(t)}function fm(i){return new this(i).exp()}function hm(i){return bt(i=new this(i),i.e+1,3)}function dm(){var i,t,e=new this(0);for(Ot=!1,i=0;i<arguments.length;)if(t=new this(arguments[i++]),t.d)e.d&&(e=e.plus(t.times(t)));else{if(t.s)return Ot=!0,new this(1/0);e=t}return Ot=!0,e.sqrt()}function Vc(i){return i instanceof Ei||i&&i.toStringTag===Lc||!1}function pm(i){return new this(i).ln()}function _m(i,t){return new this(i).log(t)}function mm(i){return new this(i).log(2)}function gm(i){return new this(i).log(10)}function vm(){return qc(this,arguments,"lt")}function ym(){return qc(this,arguments,"gt")}function wm(i,t){return new this(i).mod(t)}function Dm(i,t){return new this(i).mul(t)}function bm(i,t){return new this(i).pow(t)}function xm(i){var t,e,r,n,s=0,a=new this(1),u=[];if(i===void 0?i=this.precision:cr(i,1,Sn),r=Math.ceil(i/Et),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));s<r;)n=t[s],n>=429e7?t[s]=crypto.getRandomValues(new Uint32Array(1))[0]:u[s++]=n%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(r*=4);s<r;)n=t[s]+(t[s+1]<<8)+(t[s+2]<<16)+((t[s+3]&127)<<24),n>=214e7?crypto.randomBytes(4).copy(t,s):(u.push(n%1e7),s+=4);s=r/4}else throw Error($c);else for(;s<r;)u[s++]=Math.random()*1e7|0;for(r=u[--s],i%=Et,r&&i&&(n=ke(10,Et-i),u[s]=(r/n|0)*n);u[s]===0;s--)u.pop();if(s<0)e=0,u=[0];else{for(e=-1;u[0]===0;e-=Et)u.shift();for(r=1,n=u[0];n>=10;n/=10)r++;r<Et&&(e-=Et-r)}return a.e=e,a.d=u,a}function Em(i){return bt(i=new this(i),i.e+1,this.rounding)}function Am(i){return i=new this(i),i.d?i.d[0]?i.s:0*i.s:i.s||NaN}function Cm(i){return new this(i).sin()}function Mm(i){return new this(i).sinh()}function Fm(i){return new this(i).sqrt()}function Nm(i,t){return new this(i).sub(t)}function Sm(){var i=0,t=arguments,e=new this(t[i]);for(Ot=!1;e.s&&++i<t.length;)e=e.plus(t[i]);return Ot=!0,bt(e,this.precision,this.rounding)}function Om(i){return new this(i).tan()}function Bm(i){return new this(i).tanh()}function Tm(i){return bt(i=new this(i),i.e+1,1)}it[Symbol.for("nodejs.util.inspect.custom")]=it.toString,it[Symbol.toStringTag]="Decimal";var Ei=it.constructor=Yc(Pa);ks=new Ei(ks),zs=new Ei(zs);var Im="BigNumber",$m=["?on","config"],Lm=mt(Im,$m,i=>{var{on:t,config:e}=i,r=Ei.clone({precision:e.precision,modulo:Ei.EUCLID});return r.prototype=Object.create(r.prototype),r.prototype.type="BigNumber",r.prototype.isBigNumber=!0,r.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},r.fromJSON=function(n){return new r(n.value)},t&&t("config",function(n,s){n.precision!==s.precision&&r.config({precision:n.precision})}),r},{isClass:!0}),Hc={exports:{}};/**
41
41
  * @license Complex.js v2.1.1 12/05/2020
42
42
  *
43
43
  * Copyright (c) 2020, Robert Eisele (robert@xarg.org)
@@ -49,20 +49,20 @@ Example:
49
49
  *
50
50
  * Copyright (c) 2023, Robert Eisele (robert@raw.org)
51
51
  * Dual licensed under the MIT or GPL Version 2 licenses.
52
- **/(function(i,t){(function(e){var r=2e3,n={s:1,n:0,d:1};function s(v,x){if(isNaN(v=parseInt(v,10)))throw _();return v*x}function a(v,x){if(x===0)throw y();var b=Object.create(g.prototype);b.s=v<0?-1:1,v=v<0?-v:v;var N=p(v,x);return b.n=v/N,b.d=x/N,b}function u(v){for(var x={},b=v,N=2,E=4;E<=b;){for(;b%N===0;)b/=N,x[N]=(x[N]||0)+1;E+=1+2*N++}return b!==v?b>1&&(x[b]=(x[b]||0)+1):x[v]=(x[v]||0)+1,x}var c=function(v,x){var b=0,N=1,E=1,C=0,F=0,S=0,I=1,A=1,O=0,L=1,z=1,q=1,j=1e7,P;if(v!=null)if(x!==void 0){if(b=v,N=x,E=b*N,b%1!==0||N%1!==0)throw w()}else switch(typeof v){case"object":{if("d"in v&&"n"in v)b=v.n,N=v.d,"s"in v&&(b*=v.s);else if(0 in v)b=v[0],1 in v&&(N=v[1]);else throw _();E=b*N;break}case"number":{if(v<0&&(E=v,v=-v),v%1===0)b=v;else if(v>0){for(v>=1&&(A=Math.pow(10,Math.floor(1+Math.log(v)/Math.LN10)),v/=A);L<=j&&q<=j;)if(P=(O+z)/(L+q),v===P){L+q<=j?(b=O+z,N=L+q):q>L?(b=z,N=q):(b=O,N=L);break}else v>P?(O+=z,L+=q):(z+=O,q+=L),L>j?(b=z,N=q):(b=O,N=L);b*=A}else(isNaN(v)||isNaN(x))&&(N=b=NaN);break}case"string":{if(L=v.match(/\d+|./g),L===null)throw _();if(L[O]==="-"?(E=-1,O++):L[O]==="+"&&O++,L.length===O+1?F=s(L[O++],E):L[O+1]==="."||L[O]==="."?(L[O]!=="."&&(C=s(L[O++],E)),O++,(O+1===L.length||L[O+1]==="("&&L[O+3]===")"||L[O+1]==="'"&&L[O+3]==="'")&&(F=s(L[O],E),I=Math.pow(10,L[O].length),O++),(L[O]==="("&&L[O+2]===")"||L[O]==="'"&&L[O+2]==="'")&&(S=s(L[O+1],E),A=Math.pow(10,L[O+1].length)-1,O+=3)):L[O+1]==="/"||L[O+1]===":"?(F=s(L[O],E),I=s(L[O+2],1),O+=3):L[O+3]==="/"&&L[O+1]===" "&&(C=s(L[O],E),F=s(L[O+2],E),I=s(L[O+4],1),O+=5),L.length<=O){N=I*A,E=b=S+N*C+A*F;break}}default:throw _()}if(N===0)throw y();n.s=E<0?-1:1,n.n=Math.abs(b),n.d=Math.abs(N)};function f(v,x,b){for(var N=1;x>0;v=v*v%b,x>>=1)x&1&&(N=N*v%b);return N}function d(v,x){for(;x%2===0;x/=2);for(;x%5===0;x/=5);if(x===1)return 0;for(var b=10%x,N=1;b!==1;N++)if(b=b*10%x,N>r)return 0;return N}function h(v,x,b){for(var N=1,E=f(10,b,x),C=0;C<300;C++){if(N===E)return C;N=N*10%x,E=E*10%x}return 0}function p(v,x){if(!v)return x;if(!x)return v;for(;;){if(v%=x,!v)return x;if(x%=v,!x)return v}}function g(v,x){if(c(v,x),this instanceof g)v=p(n.d,n.n),this.s=n.s,this.n=n.n/v,this.d=n.d/v;else return a(n.s*n.n,n.d)}var y=function(){return new Error("Division by Zero")},_=function(){return new Error("Invalid argument")},w=function(){return new Error("Parameters must be integer")};g.prototype={s:1,n:0,d:1,abs:function(){return a(this.n,this.d)},neg:function(){return a(-this.s*this.n,this.d)},add:function(v,x){return c(v,x),a(this.s*this.n*n.d+n.s*this.d*n.n,this.d*n.d)},sub:function(v,x){return c(v,x),a(this.s*this.n*n.d-n.s*this.d*n.n,this.d*n.d)},mul:function(v,x){return c(v,x),a(this.s*n.s*this.n*n.n,this.d*n.d)},div:function(v,x){return c(v,x),a(this.s*n.s*this.n*n.d,this.d*n.n)},clone:function(){return a(this.s*this.n,this.d)},mod:function(v,x){if(isNaN(this.n)||isNaN(this.d))return new g(NaN);if(v===void 0)return a(this.s*this.n%this.d,1);if(c(v,x),n.n===0&&this.d===0)throw y();return a(this.s*(n.d*this.n)%(n.n*this.d),n.d*this.d)},gcd:function(v,x){return c(v,x),a(p(n.n,this.n)*p(n.d,this.d),n.d*this.d)},lcm:function(v,x){return c(v,x),n.n===0&&this.n===0?a(0,1):a(n.n*this.n,p(n.n,this.n)*p(n.d,this.d))},ceil:function(v){return v=Math.pow(10,v||0),isNaN(this.n)||isNaN(this.d)?new g(NaN):a(Math.ceil(v*this.s*this.n/this.d),v)},floor:function(v){return v=Math.pow(10,v||0),isNaN(this.n)||isNaN(this.d)?new g(NaN):a(Math.floor(v*this.s*this.n/this.d),v)},round:function(v){return v=Math.pow(10,v||0),isNaN(this.n)||isNaN(this.d)?new g(NaN):a(Math.round(v*this.s*this.n/this.d),v)},inverse:function(){return a(this.s*this.d,this.n)},pow:function(v,x){if(c(v,x),n.d===1)return n.s<0?a(Math.pow(this.s*this.d,n.n),Math.pow(this.n,n.n)):a(Math.pow(this.s*this.n,n.n),Math.pow(this.d,n.n));if(this.s<0)return null;var b=u(this.n),N=u(this.d),E=1,C=1;for(var F in b)if(F!=="1"){if(F==="0"){E=0;break}if(b[F]*=n.n,b[F]%n.d===0)b[F]/=n.d;else return null;E*=Math.pow(F,b[F])}for(var F in N)if(F!=="1"){if(N[F]*=n.n,N[F]%n.d===0)N[F]/=n.d;else return null;C*=Math.pow(F,N[F])}return n.s<0?a(C,E):a(E,C)},equals:function(v,x){return c(v,x),this.s*this.n*n.d===n.s*n.n*this.d},compare:function(v,x){c(v,x);var b=this.s*this.n*n.d-n.s*n.n*this.d;return(0<b)-(b<0)},simplify:function(v){if(isNaN(this.n)||isNaN(this.d))return this;v=v||.001;for(var x=this.abs(),b=x.toContinued(),N=1;N<b.length;N++){for(var E=a(b[N-1],1),C=N-2;C>=0;C--)E=E.inverse().add(b[C]);if(Math.abs(E.sub(x).valueOf())<v)return E.mul(this.s)}return this},divisible:function(v,x){return c(v,x),!(!(n.n*this.d)||this.n*n.d%(n.n*this.d))},valueOf:function(){return this.s*this.n/this.d},toFraction:function(v){var x,b="",N=this.n,E=this.d;return this.s<0&&(b+="-"),E===1?b+=N:(v&&(x=Math.floor(N/E))>0&&(b+=x,b+=" ",N%=E),b+=N,b+="/",b+=E),b},toLatex:function(v){var x,b="",N=this.n,E=this.d;return this.s<0&&(b+="-"),E===1?b+=N:(v&&(x=Math.floor(N/E))>0&&(b+=x,N%=E),b+="\\frac{",b+=N,b+="}{",b+=E,b+="}"),b},toContinued:function(){var v,x=this.n,b=this.d,N=[];if(isNaN(x)||isNaN(b))return N;do N.push(Math.floor(x/b)),v=x%b,x=b,b=v;while(x!==1);return N},toString:function(v){var x=this.n,b=this.d;if(isNaN(x)||isNaN(b))return"NaN";v=v||15;var N=d(x,b),E=h(x,b,N),C=this.s<0?"-":"";if(C+=x/b|0,x%=b,x*=10,x&&(C+="."),N){for(var F=E;F--;)C+=x/b|0,x%=b,x*=10;C+="(";for(var F=N;F--;)C+=x/b|0,x%=b,x*=10;C+=")"}else for(var F=v;x&&F--;)C+=x/b|0,x%=b,x*=10;return C}},Object.defineProperty(g,"__esModule",{value:!0}),g.default=g,g.Fraction=g,i.exports=g})()})(Zc);var qm=Zc.exports,dn=Kt(qm),Um="Fraction",jm=[],Wm=mt(Um,jm,()=>(Object.defineProperty(dn,"name",{value:"Fraction"}),dn.prototype.constructor=dn,dn.prototype.type="Fraction",dn.prototype.isFraction=!0,dn.prototype.toJSON=function(){return{mathjs:"Fraction",n:this.s*this.n,d:this.d}},dn.fromJSON=function(i){return new dn(i)},dn),{isClass:!0}),Ym="Matrix",Vm=[],Hm=mt(Ym,Vm,()=>{function i(){if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator")}return i.prototype.type="Matrix",i.prototype.isMatrix=!0,i.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},i.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},i.prototype.create=function(t,e){throw new Error("Cannot invoke create on a Matrix interface")},i.prototype.subset=function(t,e,r){throw new Error("Cannot invoke subset on a Matrix interface")},i.prototype.get=function(t){throw new Error("Cannot invoke get on a Matrix interface")},i.prototype.set=function(t,e,r){throw new Error("Cannot invoke set on a Matrix interface")},i.prototype.resize=function(t,e){throw new Error("Cannot invoke resize on a Matrix interface")},i.prototype.reshape=function(t,e){throw new Error("Cannot invoke reshape on a Matrix interface")},i.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},i.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},i.prototype.map=function(t,e){throw new Error("Cannot invoke map on a Matrix interface")},i.prototype.forEach=function(t){throw new Error("Cannot invoke forEach on a Matrix interface")},i.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},i.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},i.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},i.prototype.format=function(t){throw new Error("Cannot invoke format on a Matrix interface")},i.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},i},{isClass:!0});function Kc(i){return Object.keys(i.signatures||{}).reduce(function(t,e){var r=(e.match(/,/g)||[]).length+1;return Math.max(t,r)},-1)}var Zm="DenseMatrix",Km=["Matrix"],Gm=mt(Zm,Km,i=>{var{Matrix:t}=i;function e(d,h){if(!(this instanceof e))throw new SyntaxError("Constructor must be called with the new operator");if(h&&!en(h))throw new Error("Invalid datatype: "+h);if(ye(d))d.type==="DenseMatrix"?(this._data=oe(d._data),this._size=oe(d._size),this._datatype=h||d._datatype):(this._data=d.toArray(),this._size=d.size(),this._datatype=h||d._datatype);else if(d&&Ae(d.data)&&Ae(d.size))this._data=d.data,this._size=d.size,xc(this._data,this._size),this._datatype=h||d.datatype;else if(Ae(d))this._data=f(d),this._size=Ie(this._data),xc(this._data,this._size),this._datatype=h;else{if(d)throw new TypeError("Unsupported type of data ("+Fn(d)+")");this._data=[],this._size=[0],this._datatype=h}}e.prototype=new t,e.prototype.createDenseMatrix=function(d,h){return new e(d,h)},Object.defineProperty(e,"name",{value:"DenseMatrix"}),e.prototype.constructor=e,e.prototype.type="DenseMatrix",e.prototype.isDenseMatrix=!0,e.prototype.getDataType=function(){return Ls(this._data,Fn)},e.prototype.storage=function(){return"dense"},e.prototype.datatype=function(){return this._datatype},e.prototype.create=function(d,h){return new e(d,h)},e.prototype.subset=function(d,h,p){switch(arguments.length){case 1:return r(this,d);case 2:case 3:return s(this,d,h,p);default:throw new SyntaxError("Wrong number of arguments")}},e.prototype.get=function(d){if(!Ae(d))throw new TypeError("Array expected");if(d.length!==this._size.length)throw new Jt(d.length,this._size.length);for(var h=0;h<d.length;h++)Ce(d[h],this._size[h]);for(var p=this._data,g=0,y=d.length;g<y;g++){var _=d[g];Ce(_,p.length),p=p[_]}return p},e.prototype.set=function(d,h,p){if(!Ae(d))throw new TypeError("Array expected");if(d.length<this._size.length)throw new Jt(d.length,this._size.length,"<");var g,y,_,w=d.map(function(x){return x+1});c(this,w,p);var v=this._data;for(g=0,y=d.length-1;g<y;g++)_=d[g],Ce(_,v.length),v=v[_];return _=d[d.length-1],Ce(_,v.length),v[_]=h,this};function r(d,h){if(!Aa(h))throw new TypeError("Invalid index");var p=h.isScalar();if(p)return d.get(h.min());var g=h.size();if(g.length!==d._size.length)throw new Jt(g.length,d._size.length);for(var y=h.min(),_=h.max(),w=0,v=d._size.length;w<v;w++)Ce(y[w],d._size[w]),Ce(_[w],d._size[w]);return new e(n(d._data,h,g.length,0),d._datatype)}function n(d,h,p,g){var y=g===p-1,_=h.dimension(g);return y?_.map(function(w){return Ce(w,d.length),d[w]}).valueOf():_.map(function(w){Ce(w,d.length);var v=d[w];return n(v,h,p,g+1)}).valueOf()}function s(d,h,p,g){if(!h||h.isIndex!==!0)throw new TypeError("Invalid index");var y=h.size(),_=h.isScalar(),w;if(ye(p)?(w=p.size(),p=p.valueOf()):w=Ie(p),_){if(w.length!==0)throw new TypeError("Scalar expected");d.set(h.min(),p,g)}else{if(!yi(w,y))try{w.length===0?p=Nc([p],y):p=Nc(p,y),w=Ie(p)}catch{}if(y.length<d._size.length)throw new Jt(y.length,d._size.length,"<");if(w.length<y.length){for(var v=0,x=0;y[v]===1&&w[v]===1;)v++;for(;y[v]===1;)x++,v++;p=Ac(p,y.length,x,w)}if(!yi(y,w))throw new Jt(y,w,">");var b=h.max().map(function(C){return C+1});c(d,b,g);var N=y.length,E=0;a(d._data,h,p,N,E)}return d}function a(d,h,p,g,y){var _=y===g-1,w=h.dimension(y);_?w.forEach(function(v,x){Ce(v),d[v]=p[x[0]]}):w.forEach(function(v,x){Ce(v),a(d[v],h,p[x[0]],g,y+1)})}e.prototype.resize=function(d,h,p){if(!ts(d))throw new TypeError("Array or Matrix expected");var g=d.valueOf().map(_=>Array.isArray(_)&&_.length===1?_[0]:_),y=p?this.clone():this;return u(y,g,h)};function u(d,h,p){if(h.length===0){for(var g=d._data;Ae(g);)g=g[0];return g}return d._size=h.slice(0),d._data=Sa(d._data,d._size,p),d}e.prototype.reshape=function(d,h){var p=h?this.clone():this;p._data=Ba(p._data,d);var g=p._size.reduce((y,_)=>y*_);return p._size=Ta(d,g),p};function c(d,h,p){for(var g=d._size.slice(0),y=!1;g.length<h.length;)g.push(0),y=!0;for(var _=0,w=h.length;_<w;_++)h[_]>g[_]&&(g[_]=h[_],y=!0);y&&u(d,g,p)}e.prototype.clone=function(){var d=new e({data:oe(this._data),size:oe(this._size),datatype:this._datatype});return d},e.prototype.size=function(){return this._size.slice(0)},e.prototype.map=function(d){var h=this,p=Kc(d),g=function w(v,x){return Ae(v)?v.map(function(b,N){return w(b,x.concat(N))}):p===1?d(v):p===2?d(v,x):d(v,x,h)},y=g(this._data,[]),_=this._datatype!==void 0?Ls(y,Fn):void 0;return new e(y,_)},e.prototype.forEach=function(d){var h=this,p=function g(y,_){Ae(y)?y.forEach(function(w,v){g(w,_.concat(v))}):d(y,_,h)};p(this._data,[])},e.prototype[Symbol.iterator]=function*(){var d=function*h(p,g){if(Ae(p))for(var y=0;y<p.length;y++)yield*h(p[y],g.concat(y));else yield{value:p,index:g}};yield*d(this._data,[])},e.prototype.rows=function(){var d=[],h=this.size();if(h.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var p=this._data;for(var g of p)d.push(new e([g],this._datatype));return d},e.prototype.columns=function(){var d=this,h=[],p=this.size();if(p.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var g=this._data,y=function(v){var x=g.map(b=>[b[v]]);h.push(new e(x,d._datatype))},_=0;_<p[1];_++)y(_);return h},e.prototype.toArray=function(){return oe(this._data)},e.prototype.valueOf=function(){return this._data},e.prototype.format=function(d){return he(this._data,d)},e.prototype.toString=function(){return he(this._data)},e.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},e.prototype.diagonal=function(d){if(d){if(Oe(d)&&(d=d.toNumber()),!_e(d)||!be(d))throw new TypeError("The parameter k must be an integer number")}else d=0;for(var h=d>0?d:0,p=d<0?-d:0,g=this._size[0],y=this._size[1],_=Math.min(g-p,y-h),w=[],v=0;v<_;v++)w[v]=this._data[v+p][v+h];return new e({data:w,size:[_],datatype:this._datatype})},e.diagonal=function(d,h,p,g){if(!Ae(d))throw new TypeError("Array expected, size parameter");if(d.length!==2)throw new Error("Only two dimensions matrix are supported");if(d=d.map(function(F){if(Oe(F)&&(F=F.toNumber()),!_e(F)||!be(F)||F<1)throw new Error("Size values must be positive integers");return F}),p){if(Oe(p)&&(p=p.toNumber()),!_e(p)||!be(p))throw new TypeError("The parameter k must be an integer number")}else p=0;var y=p>0?p:0,_=p<0?-p:0,w=d[0],v=d[1],x=Math.min(w-_,v-y),b;if(Ae(h)){if(h.length!==x)throw new Error("Invalid value array length");b=function(S){return h[S]}}else if(ye(h)){var N=h.size();if(N.length!==1||N[0]!==x)throw new Error("Invalid matrix length");b=function(S){return h.get([S])}}else b=function(){return h};g||(g=Oe(b(0))?b(0).mul(0):0);var E=[];if(d.length>0){E=Sa(E,d,g);for(var C=0;C<x;C++)E[C+_][C+y]=b(C)}return new e({data:E,size:[w,v]})},e.fromJSON=function(d){return new e(d)},e.prototype.swapRows=function(d,h){if(!_e(d)||!be(d)||!_e(h)||!be(h))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Ce(d,this._size[0]),Ce(h,this._size[0]),e._swapRows(d,h,this._data),this},e._swapRows=function(d,h,p){var g=p[d];p[d]=p[h],p[h]=g};function f(d){return ye(d)?f(d.valueOf()):Ae(d)?d.map(f):d}return e},{isClass:!0});function Jm(i){var t=i.length,e=i[0].length,r,n,s=[];for(n=0;n<e;n++){var a=[];for(r=0;r<t;r++)a.push(i[r][n]);s.push(a)}return s}function Vs(i){for(var t=0;t<i.length;t++)if(ts(i[t]))return!0;return!1}function ns(i,t){ye(i)&&(i=i.valueOf());for(var e=0,r=i.length;e<r;e++){var n=i[e];Array.isArray(n)?ns(n,t):t(n)}}function Zr(i,t,e){return i&&typeof i.map=="function"?i.map(function(r){return Zr(r,t)}):t(i)}function ja(i,t,e){var r=Array.isArray(i)?Ie(i):i.size();if(t<0||t>=r.length)throw new Nn(t,r.length);return ye(i)?i.create(Hs(i.valueOf(),t,e)):Hs(i,t,e)}function Hs(i,t,e){var r,n,s,a;if(t<=0)if(Array.isArray(i[0])){for(a=Jm(i),n=[],r=0;r<a.length;r++)n[r]=Hs(a[r],t-1,e);return n}else{for(s=i[0],r=1;r<i.length;r++)s=e(s,i[r]);return s}else{for(n=[],r=0;r<i.length;r++)n[r]=Hs(i[r],t-1,e);return n}}var Gc="isInteger",Xm=["typed"],Qm=mt(Gc,Xm,i=>{var{typed:t}=i;return t(Gc,{number:be,BigNumber:function(r){return r.isInt()},Fraction:function(r){return r.d===1&&isFinite(r.n)},"Array | Matrix":t.referToSelf(e=>r=>Zr(r,e))})}),Jc="number",Zs="number, number";function Xc(i){return Math.abs(i)}Xc.signature=Jc;function Qc(i,t){return i+t}Qc.signature=Zs;function tf(i,t){return i-t}tf.signature=Zs;function ef(i,t){return i*t}ef.signature=Zs;function rf(i){return-i}rf.signature=Jc;function nf(i,t){return i*i<1&&t===1/0||i*i>1&&t===-1/0?0:Math.pow(i,t)}nf.signature=Zs;var sf="number";function of(i){return i===0}of.signature=sf;function af(i){return Number.isNaN(i)}af.signature=sf;var uf="isNumeric",tg=["typed"],eg=mt(uf,tg,i=>{var{typed:t}=i;return t(uf,{"number | BigNumber | Fraction | boolean":()=>!0,"Complex | Unit | string | null | undefined | Node":()=>!1,"Array | Matrix":t.referToSelf(e=>r=>Zr(r,e))})}),lf="isZero",rg=["typed"],ng=mt(lf,rg,i=>{var{typed:t}=i;return t(lf,{number:of,BigNumber:function(r){return r.isZero()},Complex:function(r){return r.re===0&&r.im===0},Fraction:function(r){return r.d===1&&r.n===0},Unit:t.referToSelf(e=>r=>t.find(e,r.valueType())(r.value)),"Array | Matrix":t.referToSelf(e=>r=>Zr(r,e))})}),cf="isNaN",ig=["typed"],sg=mt(cf,ig,i=>{var{typed:t}=i;return t(cf,{number:af,BigNumber:function(r){return r.isNaN()},Fraction:function(r){return!1},Complex:function(r){return r.isNaN()},Unit:function(r){return Number.isNaN(r.value)},"Array | Matrix":function(r){return Zr(r,Number.isNaN)}})});function Ks(i,t,e){if(e==null)return i.eq(t);if(i.eq(t))return!0;if(i.isNaN()||t.isNaN())return!1;if(i.isFinite()&&t.isFinite()){var r=i.minus(t).abs();if(r.isZero())return!0;var n=i.constructor.max(i.abs(),t.abs());return r.lte(n.times(e))}return!1}function og(i,t,e){return Qn(i.re,t.re,e)&&Qn(i.im,t.im,e)}var Gs=mt("compareUnits",["typed"],i=>{var{typed:t}=i;return{"Unit, Unit":t.referToSelf(e=>(r,n)=>{if(!r.equalBase(n))throw new Error("Cannot compare units with different base");return t.find(e,[r.valueType(),n.valueType()])(r.value,n.value)})}}),Js="equalScalar",ag=["typed","config"],ug=mt(Js,ag,i=>{var{typed:t,config:e}=i,r=Gs({typed:t});return t(Js,{"boolean, boolean":function(s,a){return s===a},"number, number":function(s,a){return Qn(s,a,e.epsilon)},"BigNumber, BigNumber":function(s,a){return s.eq(a)||Ks(s,a,e.epsilon)},"Fraction, Fraction":function(s,a){return s.equals(a)},"Complex, Complex":function(s,a){return og(s,a,e.epsilon)}},r)});mt(Js,["typed","config"],i=>{var{typed:t,config:e}=i;return t(Js,{"number, number":function(n,s){return Qn(n,s,e.epsilon)}})});var lg="SparseMatrix",cg=["typed","equalScalar","Matrix"],fg=mt(lg,cg,i=>{var{typed:t,equalScalar:e,Matrix:r}=i;function n(_,w){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(w&&!en(w))throw new Error("Invalid datatype: "+w);if(ye(_))s(this,_,w);else if(_&&Ae(_.index)&&Ae(_.ptr)&&Ae(_.size))this._values=_.values,this._index=_.index,this._ptr=_.ptr,this._size=_.size,this._datatype=w||_.datatype;else if(Ae(_))a(this,_,w);else{if(_)throw new TypeError("Unsupported type of data ("+Fn(_)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=w}}function s(_,w,v){w.type==="SparseMatrix"?(_._values=w._values?oe(w._values):void 0,_._index=oe(w._index),_._ptr=oe(w._ptr),_._size=oe(w._size),_._datatype=v||w._datatype):a(_,w.valueOf(),v||w._datatype)}function a(_,w,v){_._values=[],_._index=[],_._ptr=[],_._datatype=v;var x=w.length,b=0,N=e,E=0;if(en(v)&&(N=t.find(e,[v,v])||e,E=t.convert(0,v)),x>0){var C=0;do{_._ptr.push(_._index.length);for(var F=0;F<x;F++){var S=w[F];if(Ae(S)){if(C===0&&b<S.length&&(b=S.length),C<S.length){var I=S[C];N(I,E)||(_._values.push(I),_._index.push(F))}}else C===0&&b<1&&(b=1),N(S,E)||(_._values.push(S),_._index.push(F))}C++}while(C<b)}_._ptr.push(_._index.length),_._size=[x,b]}n.prototype=new r,n.prototype.createSparseMatrix=function(_,w){return new n(_,w)},Object.defineProperty(n,"name",{value:"SparseMatrix"}),n.prototype.constructor=n,n.prototype.type="SparseMatrix",n.prototype.isSparseMatrix=!0,n.prototype.getDataType=function(){return Ls(this._values,Fn)},n.prototype.storage=function(){return"sparse"},n.prototype.datatype=function(){return this._datatype},n.prototype.create=function(_,w){return new n(_,w)},n.prototype.density=function(){var _=this._size[0],w=this._size[1];return _!==0&&w!==0?this._index.length/(_*w):0},n.prototype.subset=function(_,w,v){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return u(this,_);case 2:case 3:return c(this,_,w,v);default:throw new SyntaxError("Wrong number of arguments")}};function u(_,w){if(!Aa(w))throw new TypeError("Invalid index");var v=w.isScalar();if(v)return _.get(w.min());var x=w.size();if(x.length!==_._size.length)throw new Jt(x.length,_._size.length);var b,N,E,C,F=w.min(),S=w.max();for(b=0,N=_._size.length;b<N;b++)Ce(F[b],_._size[b]),Ce(S[b],_._size[b]);var I=_._values,A=_._index,O=_._ptr,L=w.dimension(0),z=w.dimension(1),q=[],j=[];L.forEach(function(X,J){j[X]=J[0],q[X]=!0});var P=I?[]:void 0,Z=[],W=[];return z.forEach(function(X){for(W.push(Z.length),E=O[X],C=O[X+1];E<C;E++)b=A[E],q[b]===!0&&(Z.push(j[b]),P&&P.push(I[E]))}),W.push(Z.length),new n({values:P,index:Z,ptr:W,size:x,datatype:_._datatype})}function c(_,w,v,x){if(!w||w.isIndex!==!0)throw new TypeError("Invalid index");var b=w.size(),N=w.isScalar(),E;if(ye(v)?(E=v.size(),v=v.toArray()):E=Ie(v),N){if(E.length!==0)throw new TypeError("Scalar expected");_.set(w.min(),v,x)}else{if(b.length!==1&&b.length!==2)throw new Jt(b.length,_._size.length,"<");if(E.length<b.length){for(var C=0,F=0;b[C]===1&&E[C]===1;)C++;for(;b[C]===1;)F++,C++;v=Ac(v,b.length,F,E)}if(!yi(b,E))throw new Jt(b,E,">");if(b.length===1){var S=w.dimension(0);S.forEach(function(O,L){Ce(O),_.set([O,0],v[L[0]],x)})}else{var I=w.dimension(0),A=w.dimension(1);I.forEach(function(O,L){Ce(O),A.forEach(function(z,q){Ce(z),_.set([O,z],v[L[0]][q[0]],x)})})}}return _}n.prototype.get=function(_){if(!Ae(_))throw new TypeError("Array expected");if(_.length!==this._size.length)throw new Jt(_.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var w=_[0],v=_[1];Ce(w,this._size[0]),Ce(v,this._size[1]);var x=f(w,this._ptr[v],this._ptr[v+1],this._index);return x<this._ptr[v+1]&&this._index[x]===w?this._values[x]:0},n.prototype.set=function(_,w,v){if(!Ae(_))throw new TypeError("Array expected");if(_.length!==this._size.length)throw new Jt(_.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var x=_[0],b=_[1],N=this._size[0],E=this._size[1],C=e,F=0;en(this._datatype)&&(C=t.find(e,[this._datatype,this._datatype])||e,F=t.convert(0,this._datatype)),(x>N-1||b>E-1)&&(p(this,Math.max(x+1,N),Math.max(b+1,E),v),N=this._size[0],E=this._size[1]),Ce(x,N),Ce(b,E);var S=f(x,this._ptr[b],this._ptr[b+1],this._index);return S<this._ptr[b+1]&&this._index[S]===x?C(w,F)?d(S,b,this._values,this._index,this._ptr):this._values[S]=w:C(w,F)||h(S,x,b,w,this._values,this._index,this._ptr),this};function f(_,w,v,x){if(v-w===0)return v;for(var b=w;b<v;b++)if(x[b]===_)return b;return w}function d(_,w,v,x,b){v.splice(_,1),x.splice(_,1);for(var N=w+1;N<b.length;N++)b[N]--}function h(_,w,v,x,b,N,E){b.splice(_,0,x),N.splice(_,0,w);for(var C=v+1;C<E.length;C++)E[C]++}n.prototype.resize=function(_,w,v){if(!ts(_))throw new TypeError("Array or Matrix expected");var x=_.valueOf().map(N=>Array.isArray(N)&&N.length===1?N[0]:N);if(x.length!==2)throw new Error("Only two dimensions matrix are supported");x.forEach(function(N){if(!_e(N)||!be(N)||N<0)throw new TypeError("Invalid size, must contain positive integers (size: "+he(x)+")")});var b=v?this.clone():this;return p(b,x[0],x[1],w)};function p(_,w,v,x){var b=x||0,N=e,E=0;en(_._datatype)&&(N=t.find(e,[_._datatype,_._datatype])||e,E=t.convert(0,_._datatype),b=t.convert(b,_._datatype));var C=!N(b,E),F=_._size[0],S=_._size[1],I,A,O;if(v>S){for(A=S;A<v;A++)if(_._ptr[A]=_._values.length,C)for(I=0;I<F;I++)_._values.push(b),_._index.push(I);_._ptr[v]=_._values.length}else v<S&&(_._ptr.splice(v+1,S-v),_._values.splice(_._ptr[v],_._values.length),_._index.splice(_._ptr[v],_._index.length));if(S=v,w>F){if(C){var L=0;for(A=0;A<S;A++){_._ptr[A]=_._ptr[A]+L,O=_._ptr[A+1]+L;var z=0;for(I=F;I<w;I++,z++)_._values.splice(O+z,0,b),_._index.splice(O+z,0,I),L++}_._ptr[S]=_._values.length}}else if(w<F){var q=0;for(A=0;A<S;A++){_._ptr[A]=_._ptr[A]-q;var j=_._ptr[A],P=_._ptr[A+1]-q;for(O=j;O<P;O++)I=_._index[O],I>w-1&&(_._values.splice(O,1),_._index.splice(O,1),q++)}_._ptr[A]=_._values.length}return _._size[0]=w,_._size[1]=v,_}n.prototype.reshape=function(_,w){if(!Ae(_))throw new TypeError("Array expected");if(_.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");_.forEach(function(X){if(!_e(X)||!be(X)||X<=-2||X===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+he(_)+")")});var v=this._size[0]*this._size[1];_=Ta(_,v);var x=_[0]*_[1];if(v!==x)throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var b=w?this.clone():this;if(this._size[0]===_[0]&&this._size[1]===_[1])return b;for(var N=[],E=0;E<b._ptr.length;E++)for(var C=0;C<b._ptr[E+1]-b._ptr[E];C++)N.push(E);for(var F=b._values.slice(),S=b._index.slice(),I=0;I<b._index.length;I++){var A=S[I],O=N[I],L=A*b._size[1]+O;N[I]=L%_[1],S[I]=Math.floor(L/_[1])}b._values.length=0,b._index.length=0,b._ptr.length=_[1]+1,b._size=_.slice();for(var z=0;z<b._ptr.length;z++)b._ptr[z]=0;for(var q=0;q<F.length;q++){var j=S[q],P=N[q],Z=F[q],W=f(j,b._ptr[P],b._ptr[P+1],b._index);h(W,j,P,Z,b._values,b._index,b._ptr)}return b},n.prototype.clone=function(){var _=new n({values:this._values?oe(this._values):void 0,index:oe(this._index),ptr:oe(this._ptr),size:oe(this._size),datatype:this._datatype});return _},n.prototype.size=function(){return this._size.slice(0)},n.prototype.map=function(_,w){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var v=this,x=this._size[0],b=this._size[1],N=Kc(_),E=function(F,S,I){return N===1?_(F):N===2?_(F,[S,I]):_(F,[S,I],v)};return g(this,0,x-1,0,b-1,E,w)};function g(_,w,v,x,b,N,E){var C=[],F=[],S=[],I=e,A=0;en(_._datatype)&&(I=t.find(e,[_._datatype,_._datatype])||e,A=t.convert(0,_._datatype));for(var O=function(st,yt,Dt){st=N(st,yt,Dt),I(st,A)||(C.push(st),F.push(yt))},L=x;L<=b;L++){S.push(C.length);var z=_._ptr[L],q=_._ptr[L+1];if(E)for(var j=z;j<q;j++){var P=_._index[j];P>=w&&P<=v&&O(_._values[j],P-w,L-x)}else{for(var Z={},W=z;W<q;W++){var X=_._index[W];Z[X]=_._values[W]}for(var J=w;J<=v;J++){var ct=J in Z?Z[J]:0;O(ct,J-w,L-x)}}}return S.push(C.length),new n({values:C,index:F,ptr:S,size:[v-w+1,b-x+1]})}n.prototype.forEach=function(_,w){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var v=this,x=this._size[0],b=this._size[1],N=0;N<b;N++){var E=this._ptr[N],C=this._ptr[N+1];if(w)for(var F=E;F<C;F++){var S=this._index[F];_(this._values[F],[S,N],v)}else{for(var I={},A=E;A<C;A++){var O=this._index[A];I[O]=this._values[A]}for(var L=0;L<x;L++){var z=L in I?I[L]:0;_(z,[L,N],v)}}}},n.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var _=this._size[1],w=0;w<_;w++)for(var v=this._ptr[w],x=this._ptr[w+1],b=v;b<x;b++){var N=this._index[b];yield{value:this._values[b],index:[N,w]}}},n.prototype.toArray=function(){return y(this._values,this._index,this._ptr,this._size,!0)},n.prototype.valueOf=function(){return y(this._values,this._index,this._ptr,this._size,!1)};function y(_,w,v,x,b){var N=x[0],E=x[1],C=[],F,S;for(F=0;F<N;F++)for(C[F]=[],S=0;S<E;S++)C[F][S]=0;for(S=0;S<E;S++)for(var I=v[S],A=v[S+1],O=I;O<A;O++)F=w[O],C[F][S]=_?b?oe(_[O]):_[O]:1;return C}return n.prototype.format=function(_){for(var w=this._size[0],v=this._size[1],x=this.density(),b="Sparse Matrix ["+he(w,_)+" x "+he(v,_)+"] density: "+he(x,_)+`
52
+ **/(function(i,t){(function(e){var r=2e3,n={s:1,n:0,d:1};function s(v,x){if(isNaN(v=parseInt(v,10)))throw _();return v*x}function a(v,x){if(x===0)throw y();var b=Object.create(g.prototype);b.s=v<0?-1:1,v=v<0?-v:v;var N=p(v,x);return b.n=v/N,b.d=x/N,b}function u(v){for(var x={},b=v,N=2,E=4;E<=b;){for(;b%N===0;)b/=N,x[N]=(x[N]||0)+1;E+=1+2*N++}return b!==v?b>1&&(x[b]=(x[b]||0)+1):x[v]=(x[v]||0)+1,x}var c=function(v,x){var b=0,N=1,E=1,C=0,F=0,S=0,I=1,A=1,O=0,L=1,z=1,q=1,j=1e7,P;if(v!=null)if(x!==void 0){if(b=v,N=x,E=b*N,b%1!==0||N%1!==0)throw w()}else switch(typeof v){case"object":{if("d"in v&&"n"in v)b=v.n,N=v.d,"s"in v&&(b*=v.s);else if(0 in v)b=v[0],1 in v&&(N=v[1]);else throw _();E=b*N;break}case"number":{if(v<0&&(E=v,v=-v),v%1===0)b=v;else if(v>0){for(v>=1&&(A=Math.pow(10,Math.floor(1+Math.log(v)/Math.LN10)),v/=A);L<=j&&q<=j;)if(P=(O+z)/(L+q),v===P){L+q<=j?(b=O+z,N=L+q):q>L?(b=z,N=q):(b=O,N=L);break}else v>P?(O+=z,L+=q):(z+=O,q+=L),L>j?(b=z,N=q):(b=O,N=L);b*=A}else(isNaN(v)||isNaN(x))&&(N=b=NaN);break}case"string":{if(L=v.match(/\d+|./g),L===null)throw _();if(L[O]==="-"?(E=-1,O++):L[O]==="+"&&O++,L.length===O+1?F=s(L[O++],E):L[O+1]==="."||L[O]==="."?(L[O]!=="."&&(C=s(L[O++],E)),O++,(O+1===L.length||L[O+1]==="("&&L[O+3]===")"||L[O+1]==="'"&&L[O+3]==="'")&&(F=s(L[O],E),I=Math.pow(10,L[O].length),O++),(L[O]==="("&&L[O+2]===")"||L[O]==="'"&&L[O+2]==="'")&&(S=s(L[O+1],E),A=Math.pow(10,L[O+1].length)-1,O+=3)):L[O+1]==="/"||L[O+1]===":"?(F=s(L[O],E),I=s(L[O+2],1),O+=3):L[O+3]==="/"&&L[O+1]===" "&&(C=s(L[O],E),F=s(L[O+2],E),I=s(L[O+4],1),O+=5),L.length<=O){N=I*A,E=b=S+N*C+A*F;break}}default:throw _()}if(N===0)throw y();n.s=E<0?-1:1,n.n=Math.abs(b),n.d=Math.abs(N)};function f(v,x,b){for(var N=1;x>0;v=v*v%b,x>>=1)x&1&&(N=N*v%b);return N}function d(v,x){for(;x%2===0;x/=2);for(;x%5===0;x/=5);if(x===1)return 0;for(var b=10%x,N=1;b!==1;N++)if(b=b*10%x,N>r)return 0;return N}function h(v,x,b){for(var N=1,E=f(10,b,x),C=0;C<300;C++){if(N===E)return C;N=N*10%x,E=E*10%x}return 0}function p(v,x){if(!v)return x;if(!x)return v;for(;;){if(v%=x,!v)return x;if(x%=v,!x)return v}}function g(v,x){if(c(v,x),this instanceof g)v=p(n.d,n.n),this.s=n.s,this.n=n.n/v,this.d=n.d/v;else return a(n.s*n.n,n.d)}var y=function(){return new Error("Division by Zero")},_=function(){return new Error("Invalid argument")},w=function(){return new Error("Parameters must be integer")};g.prototype={s:1,n:0,d:1,abs:function(){return a(this.n,this.d)},neg:function(){return a(-this.s*this.n,this.d)},add:function(v,x){return c(v,x),a(this.s*this.n*n.d+n.s*this.d*n.n,this.d*n.d)},sub:function(v,x){return c(v,x),a(this.s*this.n*n.d-n.s*this.d*n.n,this.d*n.d)},mul:function(v,x){return c(v,x),a(this.s*n.s*this.n*n.n,this.d*n.d)},div:function(v,x){return c(v,x),a(this.s*n.s*this.n*n.d,this.d*n.n)},clone:function(){return a(this.s*this.n,this.d)},mod:function(v,x){if(isNaN(this.n)||isNaN(this.d))return new g(NaN);if(v===void 0)return a(this.s*this.n%this.d,1);if(c(v,x),n.n===0&&this.d===0)throw y();return a(this.s*(n.d*this.n)%(n.n*this.d),n.d*this.d)},gcd:function(v,x){return c(v,x),a(p(n.n,this.n)*p(n.d,this.d),n.d*this.d)},lcm:function(v,x){return c(v,x),n.n===0&&this.n===0?a(0,1):a(n.n*this.n,p(n.n,this.n)*p(n.d,this.d))},ceil:function(v){return v=Math.pow(10,v||0),isNaN(this.n)||isNaN(this.d)?new g(NaN):a(Math.ceil(v*this.s*this.n/this.d),v)},floor:function(v){return v=Math.pow(10,v||0),isNaN(this.n)||isNaN(this.d)?new g(NaN):a(Math.floor(v*this.s*this.n/this.d),v)},round:function(v){return v=Math.pow(10,v||0),isNaN(this.n)||isNaN(this.d)?new g(NaN):a(Math.round(v*this.s*this.n/this.d),v)},inverse:function(){return a(this.s*this.d,this.n)},pow:function(v,x){if(c(v,x),n.d===1)return n.s<0?a(Math.pow(this.s*this.d,n.n),Math.pow(this.n,n.n)):a(Math.pow(this.s*this.n,n.n),Math.pow(this.d,n.n));if(this.s<0)return null;var b=u(this.n),N=u(this.d),E=1,C=1;for(var F in b)if(F!=="1"){if(F==="0"){E=0;break}if(b[F]*=n.n,b[F]%n.d===0)b[F]/=n.d;else return null;E*=Math.pow(F,b[F])}for(var F in N)if(F!=="1"){if(N[F]*=n.n,N[F]%n.d===0)N[F]/=n.d;else return null;C*=Math.pow(F,N[F])}return n.s<0?a(C,E):a(E,C)},equals:function(v,x){return c(v,x),this.s*this.n*n.d===n.s*n.n*this.d},compare:function(v,x){c(v,x);var b=this.s*this.n*n.d-n.s*n.n*this.d;return(0<b)-(b<0)},simplify:function(v){if(isNaN(this.n)||isNaN(this.d))return this;v=v||.001;for(var x=this.abs(),b=x.toContinued(),N=1;N<b.length;N++){for(var E=a(b[N-1],1),C=N-2;C>=0;C--)E=E.inverse().add(b[C]);if(Math.abs(E.sub(x).valueOf())<v)return E.mul(this.s)}return this},divisible:function(v,x){return c(v,x),!(!(n.n*this.d)||this.n*n.d%(n.n*this.d))},valueOf:function(){return this.s*this.n/this.d},toFraction:function(v){var x,b="",N=this.n,E=this.d;return this.s<0&&(b+="-"),E===1?b+=N:(v&&(x=Math.floor(N/E))>0&&(b+=x,b+=" ",N%=E),b+=N,b+="/",b+=E),b},toLatex:function(v){var x,b="",N=this.n,E=this.d;return this.s<0&&(b+="-"),E===1?b+=N:(v&&(x=Math.floor(N/E))>0&&(b+=x,N%=E),b+="\\frac{",b+=N,b+="}{",b+=E,b+="}"),b},toContinued:function(){var v,x=this.n,b=this.d,N=[];if(isNaN(x)||isNaN(b))return N;do N.push(Math.floor(x/b)),v=x%b,x=b,b=v;while(x!==1);return N},toString:function(v){var x=this.n,b=this.d;if(isNaN(x)||isNaN(b))return"NaN";v=v||15;var N=d(x,b),E=h(x,b,N),C=this.s<0?"-":"";if(C+=x/b|0,x%=b,x*=10,x&&(C+="."),N){for(var F=E;F--;)C+=x/b|0,x%=b,x*=10;C+="(";for(var F=N;F--;)C+=x/b|0,x%=b,x*=10;C+=")"}else for(var F=v;x&&F--;)C+=x/b|0,x%=b,x*=10;return C}},Object.defineProperty(g,"__esModule",{value:!0}),g.default=g,g.Fraction=g,i.exports=g})()})(Zc);var qm=Zc.exports,dn=Kt(qm),Um="Fraction",jm=[],Wm=mt(Um,jm,()=>(Object.defineProperty(dn,"name",{value:"Fraction"}),dn.prototype.constructor=dn,dn.prototype.type="Fraction",dn.prototype.isFraction=!0,dn.prototype.toJSON=function(){return{mathjs:"Fraction",n:this.s*this.n,d:this.d}},dn.fromJSON=function(i){return new dn(i)},dn),{isClass:!0}),Ym="Matrix",Vm=[],Hm=mt(Ym,Vm,()=>{function i(){if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator")}return i.prototype.type="Matrix",i.prototype.isMatrix=!0,i.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},i.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},i.prototype.create=function(t,e){throw new Error("Cannot invoke create on a Matrix interface")},i.prototype.subset=function(t,e,r){throw new Error("Cannot invoke subset on a Matrix interface")},i.prototype.get=function(t){throw new Error("Cannot invoke get on a Matrix interface")},i.prototype.set=function(t,e,r){throw new Error("Cannot invoke set on a Matrix interface")},i.prototype.resize=function(t,e){throw new Error("Cannot invoke resize on a Matrix interface")},i.prototype.reshape=function(t,e){throw new Error("Cannot invoke reshape on a Matrix interface")},i.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},i.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},i.prototype.map=function(t,e){throw new Error("Cannot invoke map on a Matrix interface")},i.prototype.forEach=function(t){throw new Error("Cannot invoke forEach on a Matrix interface")},i.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},i.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},i.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},i.prototype.format=function(t){throw new Error("Cannot invoke format on a Matrix interface")},i.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},i},{isClass:!0});function Kc(i){return Object.keys(i.signatures||{}).reduce(function(t,e){var r=(e.match(/,/g)||[]).length+1;return Math.max(t,r)},-1)}var Zm="DenseMatrix",Km=["Matrix"],Gm=mt(Zm,Km,i=>{var{Matrix:t}=i;function e(d,h){if(!(this instanceof e))throw new SyntaxError("Constructor must be called with the new operator");if(h&&!en(h))throw new Error("Invalid datatype: "+h);if(ye(d))d.type==="DenseMatrix"?(this._data=oe(d._data),this._size=oe(d._size),this._datatype=h||d._datatype):(this._data=d.toArray(),this._size=d.size(),this._datatype=h||d._datatype);else if(d&&Ae(d.data)&&Ae(d.size))this._data=d.data,this._size=d.size,xc(this._data,this._size),this._datatype=h||d.datatype;else if(Ae(d))this._data=f(d),this._size=Ie(this._data),xc(this._data,this._size),this._datatype=h;else{if(d)throw new TypeError("Unsupported type of data ("+Fn(d)+")");this._data=[],this._size=[0],this._datatype=h}}e.prototype=new t,e.prototype.createDenseMatrix=function(d,h){return new e(d,h)},Object.defineProperty(e,"name",{value:"DenseMatrix"}),e.prototype.constructor=e,e.prototype.type="DenseMatrix",e.prototype.isDenseMatrix=!0,e.prototype.getDataType=function(){return Ls(this._data,Fn)},e.prototype.storage=function(){return"dense"},e.prototype.datatype=function(){return this._datatype},e.prototype.create=function(d,h){return new e(d,h)},e.prototype.subset=function(d,h,p){switch(arguments.length){case 1:return r(this,d);case 2:case 3:return s(this,d,h,p);default:throw new SyntaxError("Wrong number of arguments")}},e.prototype.get=function(d){if(!Ae(d))throw new TypeError("Array expected");if(d.length!==this._size.length)throw new Jt(d.length,this._size.length);for(var h=0;h<d.length;h++)Ce(d[h],this._size[h]);for(var p=this._data,g=0,y=d.length;g<y;g++){var _=d[g];Ce(_,p.length),p=p[_]}return p},e.prototype.set=function(d,h,p){if(!Ae(d))throw new TypeError("Array expected");if(d.length<this._size.length)throw new Jt(d.length,this._size.length,"<");var g,y,_,w=d.map(function(x){return x+1});c(this,w,p);var v=this._data;for(g=0,y=d.length-1;g<y;g++)_=d[g],Ce(_,v.length),v=v[_];return _=d[d.length-1],Ce(_,v.length),v[_]=h,this};function r(d,h){if(!Aa(h))throw new TypeError("Invalid index");var p=h.isScalar();if(p)return d.get(h.min());var g=h.size();if(g.length!==d._size.length)throw new Jt(g.length,d._size.length);for(var y=h.min(),_=h.max(),w=0,v=d._size.length;w<v;w++)Ce(y[w],d._size[w]),Ce(_[w],d._size[w]);return new e(n(d._data,h,g.length,0),d._datatype)}function n(d,h,p,g){var y=g===p-1,_=h.dimension(g);return y?_.map(function(w){return Ce(w,d.length),d[w]}).valueOf():_.map(function(w){Ce(w,d.length);var v=d[w];return n(v,h,p,g+1)}).valueOf()}function s(d,h,p,g){if(!h||h.isIndex!==!0)throw new TypeError("Invalid index");var y=h.size(),_=h.isScalar(),w;if(ye(p)?(w=p.size(),p=p.valueOf()):w=Ie(p),_){if(w.length!==0)throw new TypeError("Scalar expected");d.set(h.min(),p,g)}else{if(!yi(w,y))try{w.length===0?p=Nc([p],y):p=Nc(p,y),w=Ie(p)}catch{}if(y.length<d._size.length)throw new Jt(y.length,d._size.length,"<");if(w.length<y.length){for(var v=0,x=0;y[v]===1&&w[v]===1;)v++;for(;y[v]===1;)x++,v++;p=Ac(p,y.length,x,w)}if(!yi(y,w))throw new Jt(y,w,">");var b=h.max().map(function(C){return C+1});c(d,b,g);var N=y.length,E=0;a(d._data,h,p,N,E)}return d}function a(d,h,p,g,y){var _=y===g-1,w=h.dimension(y);_?w.forEach(function(v,x){Ce(v),d[v]=p[x[0]]}):w.forEach(function(v,x){Ce(v),a(d[v],h,p[x[0]],g,y+1)})}e.prototype.resize=function(d,h,p){if(!ts(d))throw new TypeError("Array or Matrix expected");var g=d.valueOf().map(_=>Array.isArray(_)&&_.length===1?_[0]:_),y=p?this.clone():this;return u(y,g,h)};function u(d,h,p){if(h.length===0){for(var g=d._data;Ae(g);)g=g[0];return g}return d._size=h.slice(0),d._data=Sa(d._data,d._size,p),d}e.prototype.reshape=function(d,h){var p=h?this.clone():this;p._data=Ba(p._data,d);var g=p._size.reduce((y,_)=>y*_);return p._size=Ta(d,g),p};function c(d,h,p){for(var g=d._size.slice(0),y=!1;g.length<h.length;)g.push(0),y=!0;for(var _=0,w=h.length;_<w;_++)h[_]>g[_]&&(g[_]=h[_],y=!0);y&&u(d,g,p)}e.prototype.clone=function(){var d=new e({data:oe(this._data),size:oe(this._size),datatype:this._datatype});return d},e.prototype.size=function(){return this._size.slice(0)},e.prototype.map=function(d){var h=this,p=Kc(d),g=function w(v,x){return Ae(v)?v.map(function(b,N){return w(b,x.concat(N))}):p===1?d(v):p===2?d(v,x):d(v,x,h)},y=g(this._data,[]),_=this._datatype!==void 0?Ls(y,Fn):void 0;return new e(y,_)},e.prototype.forEach=function(d){var h=this,p=function g(y,_){Ae(y)?y.forEach(function(w,v){g(w,_.concat(v))}):d(y,_,h)};p(this._data,[])},e.prototype[Symbol.iterator]=function*(){var d=function*h(p,g){if(Ae(p))for(var y=0;y<p.length;y++)yield*h(p[y],g.concat(y));else yield{value:p,index:g}};yield*d(this._data,[])},e.prototype.rows=function(){var d=[],h=this.size();if(h.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var p=this._data;for(var g of p)d.push(new e([g],this._datatype));return d},e.prototype.columns=function(){var d=this,h=[],p=this.size();if(p.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var g=this._data,y=function(v){var x=g.map(b=>[b[v]]);h.push(new e(x,d._datatype))},_=0;_<p[1];_++)y(_);return h},e.prototype.toArray=function(){return oe(this._data)},e.prototype.valueOf=function(){return this._data},e.prototype.format=function(d){return he(this._data,d)},e.prototype.toString=function(){return he(this._data)},e.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},e.prototype.diagonal=function(d){if(d){if(Oe(d)&&(d=d.toNumber()),!_e(d)||!be(d))throw new TypeError("The parameter k must be an integer number")}else d=0;for(var h=d>0?d:0,p=d<0?-d:0,g=this._size[0],y=this._size[1],_=Math.min(g-p,y-h),w=[],v=0;v<_;v++)w[v]=this._data[v+p][v+h];return new e({data:w,size:[_],datatype:this._datatype})},e.diagonal=function(d,h,p,g){if(!Ae(d))throw new TypeError("Array expected, size parameter");if(d.length!==2)throw new Error("Only two dimensions matrix are supported");if(d=d.map(function(F){if(Oe(F)&&(F=F.toNumber()),!_e(F)||!be(F)||F<1)throw new Error("Size values must be positive integers");return F}),p){if(Oe(p)&&(p=p.toNumber()),!_e(p)||!be(p))throw new TypeError("The parameter k must be an integer number")}else p=0;var y=p>0?p:0,_=p<0?-p:0,w=d[0],v=d[1],x=Math.min(w-_,v-y),b;if(Ae(h)){if(h.length!==x)throw new Error("Invalid value array length");b=function(S){return h[S]}}else if(ye(h)){var N=h.size();if(N.length!==1||N[0]!==x)throw new Error("Invalid matrix length");b=function(S){return h.get([S])}}else b=function(){return h};g||(g=Oe(b(0))?b(0).mul(0):0);var E=[];if(d.length>0){E=Sa(E,d,g);for(var C=0;C<x;C++)E[C+_][C+y]=b(C)}return new e({data:E,size:[w,v]})},e.fromJSON=function(d){return new e(d)},e.prototype.swapRows=function(d,h){if(!_e(d)||!be(d)||!_e(h)||!be(h))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Ce(d,this._size[0]),Ce(h,this._size[0]),e._swapRows(d,h,this._data),this},e._swapRows=function(d,h,p){var g=p[d];p[d]=p[h],p[h]=g};function f(d){return ye(d)?f(d.valueOf()):Ae(d)?d.map(f):d}return e},{isClass:!0});function Jm(i){var t=i.length,e=i[0].length,r,n,s=[];for(n=0;n<e;n++){var a=[];for(r=0;r<t;r++)a.push(i[r][n]);s.push(a)}return s}function Vs(i){for(var t=0;t<i.length;t++)if(ts(i[t]))return!0;return!1}function ns(i,t){ye(i)&&(i=i.valueOf());for(var e=0,r=i.length;e<r;e++){var n=i[e];Array.isArray(n)?ns(n,t):t(n)}}function Kr(i,t,e){return i&&typeof i.map=="function"?i.map(function(r){return Kr(r,t)}):t(i)}function ja(i,t,e){var r=Array.isArray(i)?Ie(i):i.size();if(t<0||t>=r.length)throw new Nn(t,r.length);return ye(i)?i.create(Hs(i.valueOf(),t,e)):Hs(i,t,e)}function Hs(i,t,e){var r,n,s,a;if(t<=0)if(Array.isArray(i[0])){for(a=Jm(i),n=[],r=0;r<a.length;r++)n[r]=Hs(a[r],t-1,e);return n}else{for(s=i[0],r=1;r<i.length;r++)s=e(s,i[r]);return s}else{for(n=[],r=0;r<i.length;r++)n[r]=Hs(i[r],t-1,e);return n}}var Gc="isInteger",Xm=["typed"],Qm=mt(Gc,Xm,i=>{var{typed:t}=i;return t(Gc,{number:be,BigNumber:function(r){return r.isInt()},Fraction:function(r){return r.d===1&&isFinite(r.n)},"Array | Matrix":t.referToSelf(e=>r=>Kr(r,e))})}),Jc="number",Zs="number, number";function Xc(i){return Math.abs(i)}Xc.signature=Jc;function Qc(i,t){return i+t}Qc.signature=Zs;function tf(i,t){return i-t}tf.signature=Zs;function ef(i,t){return i*t}ef.signature=Zs;function rf(i){return-i}rf.signature=Jc;function nf(i,t){return i*i<1&&t===1/0||i*i>1&&t===-1/0?0:Math.pow(i,t)}nf.signature=Zs;var sf="number";function of(i){return i===0}of.signature=sf;function af(i){return Number.isNaN(i)}af.signature=sf;var uf="isNumeric",tg=["typed"],eg=mt(uf,tg,i=>{var{typed:t}=i;return t(uf,{"number | BigNumber | Fraction | boolean":()=>!0,"Complex | Unit | string | null | undefined | Node":()=>!1,"Array | Matrix":t.referToSelf(e=>r=>Kr(r,e))})}),lf="isZero",rg=["typed"],ng=mt(lf,rg,i=>{var{typed:t}=i;return t(lf,{number:of,BigNumber:function(r){return r.isZero()},Complex:function(r){return r.re===0&&r.im===0},Fraction:function(r){return r.d===1&&r.n===0},Unit:t.referToSelf(e=>r=>t.find(e,r.valueType())(r.value)),"Array | Matrix":t.referToSelf(e=>r=>Kr(r,e))})}),cf="isNaN",ig=["typed"],sg=mt(cf,ig,i=>{var{typed:t}=i;return t(cf,{number:af,BigNumber:function(r){return r.isNaN()},Fraction:function(r){return!1},Complex:function(r){return r.isNaN()},Unit:function(r){return Number.isNaN(r.value)},"Array | Matrix":function(r){return Kr(r,Number.isNaN)}})});function Ks(i,t,e){if(e==null)return i.eq(t);if(i.eq(t))return!0;if(i.isNaN()||t.isNaN())return!1;if(i.isFinite()&&t.isFinite()){var r=i.minus(t).abs();if(r.isZero())return!0;var n=i.constructor.max(i.abs(),t.abs());return r.lte(n.times(e))}return!1}function og(i,t,e){return Qn(i.re,t.re,e)&&Qn(i.im,t.im,e)}var Gs=mt("compareUnits",["typed"],i=>{var{typed:t}=i;return{"Unit, Unit":t.referToSelf(e=>(r,n)=>{if(!r.equalBase(n))throw new Error("Cannot compare units with different base");return t.find(e,[r.valueType(),n.valueType()])(r.value,n.value)})}}),Js="equalScalar",ag=["typed","config"],ug=mt(Js,ag,i=>{var{typed:t,config:e}=i,r=Gs({typed:t});return t(Js,{"boolean, boolean":function(s,a){return s===a},"number, number":function(s,a){return Qn(s,a,e.epsilon)},"BigNumber, BigNumber":function(s,a){return s.eq(a)||Ks(s,a,e.epsilon)},"Fraction, Fraction":function(s,a){return s.equals(a)},"Complex, Complex":function(s,a){return og(s,a,e.epsilon)}},r)});mt(Js,["typed","config"],i=>{var{typed:t,config:e}=i;return t(Js,{"number, number":function(n,s){return Qn(n,s,e.epsilon)}})});var lg="SparseMatrix",cg=["typed","equalScalar","Matrix"],fg=mt(lg,cg,i=>{var{typed:t,equalScalar:e,Matrix:r}=i;function n(_,w){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(w&&!en(w))throw new Error("Invalid datatype: "+w);if(ye(_))s(this,_,w);else if(_&&Ae(_.index)&&Ae(_.ptr)&&Ae(_.size))this._values=_.values,this._index=_.index,this._ptr=_.ptr,this._size=_.size,this._datatype=w||_.datatype;else if(Ae(_))a(this,_,w);else{if(_)throw new TypeError("Unsupported type of data ("+Fn(_)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=w}}function s(_,w,v){w.type==="SparseMatrix"?(_._values=w._values?oe(w._values):void 0,_._index=oe(w._index),_._ptr=oe(w._ptr),_._size=oe(w._size),_._datatype=v||w._datatype):a(_,w.valueOf(),v||w._datatype)}function a(_,w,v){_._values=[],_._index=[],_._ptr=[],_._datatype=v;var x=w.length,b=0,N=e,E=0;if(en(v)&&(N=t.find(e,[v,v])||e,E=t.convert(0,v)),x>0){var C=0;do{_._ptr.push(_._index.length);for(var F=0;F<x;F++){var S=w[F];if(Ae(S)){if(C===0&&b<S.length&&(b=S.length),C<S.length){var I=S[C];N(I,E)||(_._values.push(I),_._index.push(F))}}else C===0&&b<1&&(b=1),N(S,E)||(_._values.push(S),_._index.push(F))}C++}while(C<b)}_._ptr.push(_._index.length),_._size=[x,b]}n.prototype=new r,n.prototype.createSparseMatrix=function(_,w){return new n(_,w)},Object.defineProperty(n,"name",{value:"SparseMatrix"}),n.prototype.constructor=n,n.prototype.type="SparseMatrix",n.prototype.isSparseMatrix=!0,n.prototype.getDataType=function(){return Ls(this._values,Fn)},n.prototype.storage=function(){return"sparse"},n.prototype.datatype=function(){return this._datatype},n.prototype.create=function(_,w){return new n(_,w)},n.prototype.density=function(){var _=this._size[0],w=this._size[1];return _!==0&&w!==0?this._index.length/(_*w):0},n.prototype.subset=function(_,w,v){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return u(this,_);case 2:case 3:return c(this,_,w,v);default:throw new SyntaxError("Wrong number of arguments")}};function u(_,w){if(!Aa(w))throw new TypeError("Invalid index");var v=w.isScalar();if(v)return _.get(w.min());var x=w.size();if(x.length!==_._size.length)throw new Jt(x.length,_._size.length);var b,N,E,C,F=w.min(),S=w.max();for(b=0,N=_._size.length;b<N;b++)Ce(F[b],_._size[b]),Ce(S[b],_._size[b]);var I=_._values,A=_._index,O=_._ptr,L=w.dimension(0),z=w.dimension(1),q=[],j=[];L.forEach(function(X,J){j[X]=J[0],q[X]=!0});var P=I?[]:void 0,Z=[],W=[];return z.forEach(function(X){for(W.push(Z.length),E=O[X],C=O[X+1];E<C;E++)b=A[E],q[b]===!0&&(Z.push(j[b]),P&&P.push(I[E]))}),W.push(Z.length),new n({values:P,index:Z,ptr:W,size:x,datatype:_._datatype})}function c(_,w,v,x){if(!w||w.isIndex!==!0)throw new TypeError("Invalid index");var b=w.size(),N=w.isScalar(),E;if(ye(v)?(E=v.size(),v=v.toArray()):E=Ie(v),N){if(E.length!==0)throw new TypeError("Scalar expected");_.set(w.min(),v,x)}else{if(b.length!==1&&b.length!==2)throw new Jt(b.length,_._size.length,"<");if(E.length<b.length){for(var C=0,F=0;b[C]===1&&E[C]===1;)C++;for(;b[C]===1;)F++,C++;v=Ac(v,b.length,F,E)}if(!yi(b,E))throw new Jt(b,E,">");if(b.length===1){var S=w.dimension(0);S.forEach(function(O,L){Ce(O),_.set([O,0],v[L[0]],x)})}else{var I=w.dimension(0),A=w.dimension(1);I.forEach(function(O,L){Ce(O),A.forEach(function(z,q){Ce(z),_.set([O,z],v[L[0]][q[0]],x)})})}}return _}n.prototype.get=function(_){if(!Ae(_))throw new TypeError("Array expected");if(_.length!==this._size.length)throw new Jt(_.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var w=_[0],v=_[1];Ce(w,this._size[0]),Ce(v,this._size[1]);var x=f(w,this._ptr[v],this._ptr[v+1],this._index);return x<this._ptr[v+1]&&this._index[x]===w?this._values[x]:0},n.prototype.set=function(_,w,v){if(!Ae(_))throw new TypeError("Array expected");if(_.length!==this._size.length)throw new Jt(_.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var x=_[0],b=_[1],N=this._size[0],E=this._size[1],C=e,F=0;en(this._datatype)&&(C=t.find(e,[this._datatype,this._datatype])||e,F=t.convert(0,this._datatype)),(x>N-1||b>E-1)&&(p(this,Math.max(x+1,N),Math.max(b+1,E),v),N=this._size[0],E=this._size[1]),Ce(x,N),Ce(b,E);var S=f(x,this._ptr[b],this._ptr[b+1],this._index);return S<this._ptr[b+1]&&this._index[S]===x?C(w,F)?d(S,b,this._values,this._index,this._ptr):this._values[S]=w:C(w,F)||h(S,x,b,w,this._values,this._index,this._ptr),this};function f(_,w,v,x){if(v-w===0)return v;for(var b=w;b<v;b++)if(x[b]===_)return b;return w}function d(_,w,v,x,b){v.splice(_,1),x.splice(_,1);for(var N=w+1;N<b.length;N++)b[N]--}function h(_,w,v,x,b,N,E){b.splice(_,0,x),N.splice(_,0,w);for(var C=v+1;C<E.length;C++)E[C]++}n.prototype.resize=function(_,w,v){if(!ts(_))throw new TypeError("Array or Matrix expected");var x=_.valueOf().map(N=>Array.isArray(N)&&N.length===1?N[0]:N);if(x.length!==2)throw new Error("Only two dimensions matrix are supported");x.forEach(function(N){if(!_e(N)||!be(N)||N<0)throw new TypeError("Invalid size, must contain positive integers (size: "+he(x)+")")});var b=v?this.clone():this;return p(b,x[0],x[1],w)};function p(_,w,v,x){var b=x||0,N=e,E=0;en(_._datatype)&&(N=t.find(e,[_._datatype,_._datatype])||e,E=t.convert(0,_._datatype),b=t.convert(b,_._datatype));var C=!N(b,E),F=_._size[0],S=_._size[1],I,A,O;if(v>S){for(A=S;A<v;A++)if(_._ptr[A]=_._values.length,C)for(I=0;I<F;I++)_._values.push(b),_._index.push(I);_._ptr[v]=_._values.length}else v<S&&(_._ptr.splice(v+1,S-v),_._values.splice(_._ptr[v],_._values.length),_._index.splice(_._ptr[v],_._index.length));if(S=v,w>F){if(C){var L=0;for(A=0;A<S;A++){_._ptr[A]=_._ptr[A]+L,O=_._ptr[A+1]+L;var z=0;for(I=F;I<w;I++,z++)_._values.splice(O+z,0,b),_._index.splice(O+z,0,I),L++}_._ptr[S]=_._values.length}}else if(w<F){var q=0;for(A=0;A<S;A++){_._ptr[A]=_._ptr[A]-q;var j=_._ptr[A],P=_._ptr[A+1]-q;for(O=j;O<P;O++)I=_._index[O],I>w-1&&(_._values.splice(O,1),_._index.splice(O,1),q++)}_._ptr[A]=_._values.length}return _._size[0]=w,_._size[1]=v,_}n.prototype.reshape=function(_,w){if(!Ae(_))throw new TypeError("Array expected");if(_.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");_.forEach(function(X){if(!_e(X)||!be(X)||X<=-2||X===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+he(_)+")")});var v=this._size[0]*this._size[1];_=Ta(_,v);var x=_[0]*_[1];if(v!==x)throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var b=w?this.clone():this;if(this._size[0]===_[0]&&this._size[1]===_[1])return b;for(var N=[],E=0;E<b._ptr.length;E++)for(var C=0;C<b._ptr[E+1]-b._ptr[E];C++)N.push(E);for(var F=b._values.slice(),S=b._index.slice(),I=0;I<b._index.length;I++){var A=S[I],O=N[I],L=A*b._size[1]+O;N[I]=L%_[1],S[I]=Math.floor(L/_[1])}b._values.length=0,b._index.length=0,b._ptr.length=_[1]+1,b._size=_.slice();for(var z=0;z<b._ptr.length;z++)b._ptr[z]=0;for(var q=0;q<F.length;q++){var j=S[q],P=N[q],Z=F[q],W=f(j,b._ptr[P],b._ptr[P+1],b._index);h(W,j,P,Z,b._values,b._index,b._ptr)}return b},n.prototype.clone=function(){var _=new n({values:this._values?oe(this._values):void 0,index:oe(this._index),ptr:oe(this._ptr),size:oe(this._size),datatype:this._datatype});return _},n.prototype.size=function(){return this._size.slice(0)},n.prototype.map=function(_,w){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var v=this,x=this._size[0],b=this._size[1],N=Kc(_),E=function(F,S,I){return N===1?_(F):N===2?_(F,[S,I]):_(F,[S,I],v)};return g(this,0,x-1,0,b-1,E,w)};function g(_,w,v,x,b,N,E){var C=[],F=[],S=[],I=e,A=0;en(_._datatype)&&(I=t.find(e,[_._datatype,_._datatype])||e,A=t.convert(0,_._datatype));for(var O=function(st,yt,Dt){st=N(st,yt,Dt),I(st,A)||(C.push(st),F.push(yt))},L=x;L<=b;L++){S.push(C.length);var z=_._ptr[L],q=_._ptr[L+1];if(E)for(var j=z;j<q;j++){var P=_._index[j];P>=w&&P<=v&&O(_._values[j],P-w,L-x)}else{for(var Z={},W=z;W<q;W++){var X=_._index[W];Z[X]=_._values[W]}for(var J=w;J<=v;J++){var ct=J in Z?Z[J]:0;O(ct,J-w,L-x)}}}return S.push(C.length),new n({values:C,index:F,ptr:S,size:[v-w+1,b-x+1]})}n.prototype.forEach=function(_,w){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var v=this,x=this._size[0],b=this._size[1],N=0;N<b;N++){var E=this._ptr[N],C=this._ptr[N+1];if(w)for(var F=E;F<C;F++){var S=this._index[F];_(this._values[F],[S,N],v)}else{for(var I={},A=E;A<C;A++){var O=this._index[A];I[O]=this._values[A]}for(var L=0;L<x;L++){var z=L in I?I[L]:0;_(z,[L,N],v)}}}},n.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var _=this._size[1],w=0;w<_;w++)for(var v=this._ptr[w],x=this._ptr[w+1],b=v;b<x;b++){var N=this._index[b];yield{value:this._values[b],index:[N,w]}}},n.prototype.toArray=function(){return y(this._values,this._index,this._ptr,this._size,!0)},n.prototype.valueOf=function(){return y(this._values,this._index,this._ptr,this._size,!1)};function y(_,w,v,x,b){var N=x[0],E=x[1],C=[],F,S;for(F=0;F<N;F++)for(C[F]=[],S=0;S<E;S++)C[F][S]=0;for(S=0;S<E;S++)for(var I=v[S],A=v[S+1],O=I;O<A;O++)F=w[O],C[F][S]=_?b?oe(_[O]):_[O]:1;return C}return n.prototype.format=function(_){for(var w=this._size[0],v=this._size[1],x=this.density(),b="Sparse Matrix ["+he(w,_)+" x "+he(v,_)+"] density: "+he(x,_)+`
53
53
  `,N=0;N<v;N++)for(var E=this._ptr[N],C=this._ptr[N+1],F=E;F<C;F++){var S=this._index[F];b+=`
54
- (`+he(S,_)+", "+he(N,_)+") ==> "+(this._values?he(this._values[F],_):"X")}return b},n.prototype.toString=function(){return he(this.toArray())},n.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},n.prototype.diagonal=function(_){if(_){if(Oe(_)&&(_=_.toNumber()),!_e(_)||!be(_))throw new TypeError("The parameter k must be an integer number")}else _=0;var w=_>0?_:0,v=_<0?-_:0,x=this._size[0],b=this._size[1],N=Math.min(x-v,b-w),E=[],C=[],F=[];F[0]=0;for(var S=w;S<b&&E.length<N;S++)for(var I=this._ptr[S],A=this._ptr[S+1],O=I;O<A;O++){var L=this._index[O];if(L===S-w+v){E.push(this._values[O]),C[E.length-1]=L-v;break}}return F.push(E.length),new n({values:E,index:C,ptr:F,size:[N,1]})},n.fromJSON=function(_){return new n(_)},n.diagonal=function(_,w,v,x,b){if(!Ae(_))throw new TypeError("Array expected, size parameter");if(_.length!==2)throw new Error("Only two dimensions matrix are supported");if(_=_.map(function(X){if(Oe(X)&&(X=X.toNumber()),!_e(X)||!be(X)||X<1)throw new Error("Size values must be positive integers");return X}),v){if(Oe(v)&&(v=v.toNumber()),!_e(v)||!be(v))throw new TypeError("The parameter k must be an integer number")}else v=0;var N=e,E=0;en(b)&&(N=t.find(e,[b,b])||e,E=t.convert(0,b));var C=v>0?v:0,F=v<0?-v:0,S=_[0],I=_[1],A=Math.min(S-F,I-C),O;if(Ae(w)){if(w.length!==A)throw new Error("Invalid value array length");O=function(J){return w[J]}}else if(ye(w)){var L=w.size();if(L.length!==1||L[0]!==A)throw new Error("Invalid matrix length");O=function(J){return w.get([J])}}else O=function(){return w};for(var z=[],q=[],j=[],P=0;P<I;P++){j.push(z.length);var Z=P-C;if(Z>=0&&Z<A){var W=O(Z);N(W,E)||(q.push(Z+F),z.push(W))}}return j.push(z.length),new n({values:z,index:q,ptr:j,size:[S,I]})},n.prototype.swapRows=function(_,w){if(!_e(_)||!be(_)||!_e(w)||!be(w))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Ce(_,this._size[0]),Ce(w,this._size[0]),n._swapRows(_,w,this._size[1],this._values,this._index,this._ptr),this},n._forEachRow=function(_,w,v,x,b){for(var N=x[_],E=x[_+1],C=N;C<E;C++)b(v[C],w[C])},n._swapRows=function(_,w,v,x,b,N){for(var E=0;E<v;E++){var C=N[E],F=N[E+1],S=f(_,C,F,b),I=f(w,C,F,b);if(S<F&&I<F&&b[S]===_&&b[I]===w){if(x){var A=x[S];x[S]=x[I],x[I]=A}continue}if(S<F&&b[S]===_&&(I>=F||b[I]!==w)){var O=x?x[S]:void 0;b.splice(I,0,w),x&&x.splice(I,0,O),b.splice(I<=S?S+1:S,1),x&&x.splice(I<=S?S+1:S,1);continue}if(I<F&&b[I]===w&&(S>=F||b[S]!==_)){var L=x?x[I]:void 0;b.splice(S,0,_),x&&x.splice(S,0,L),b.splice(S<=I?I+1:I,1),x&&x.splice(S<=I?I+1:I,1)}}},n},{isClass:!0}),hg="number",dg=["typed"];function pg(i){var t=i.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);if(t){var e={"0b":2,"0o":8,"0x":16}[t[1]],r=t[2],n=t[3];return{input:i,radix:e,integerPart:r,fractionalPart:n}}else return null}function _g(i){for(var t=parseInt(i.integerPart,i.radix),e=0,r=0;r<i.fractionalPart.length;r++){var n=parseInt(i.fractionalPart[r],i.radix);e+=n/Math.pow(i.radix,r+1)}var s=t+e;if(isNaN(s))throw new SyntaxError('String "'+i.input+'" is not a valid number');return s}var mg=mt(hg,dg,i=>{var{typed:t}=i,e=t("number",{"":function(){return 0},number:function(n){return n},string:function(n){if(n==="NaN")return NaN;var s=pg(n);if(s)return _g(s);var a=0,u=n.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);u&&(a=Number(u[2]),n=u[1]);var c=Number(n);if(isNaN(c))throw new SyntaxError('String "'+n+'" is not a valid number');if(u){if(c>2**a-1)throw new SyntaxError('String "'.concat(n,'" is out of range'));c>=2**(a-1)&&(c=c-2**a)}return c},BigNumber:function(n){return n.toNumber()},Fraction:function(n){return n.valueOf()},Unit:t.referToSelf(r=>n=>{var s=n.clone();return s.value=r(n.value),s}),null:function(n){return 0},"Unit, string | Unit":function(n,s){return n.toNumber(s)},"Array | Matrix":t.referToSelf(r=>n=>Zr(n,r))});return e.fromJSON=function(r){return parseFloat(r.value)},e}),gg="bignumber",vg=["typed","BigNumber"],yg=mt(gg,vg,i=>{var{typed:t,BigNumber:e}=i;return t("bignumber",{"":function(){return new e(0)},number:function(n){return new e(n+"")},string:function(n){var s=n.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(s){var a=s[2],u=e(s[1]),c=new e(2).pow(Number(a));if(u.gt(c.sub(1)))throw new SyntaxError('String "'.concat(n,'" is out of range'));var f=new e(2).pow(Number(a)-1);return u.gte(f)?u.sub(c):u}return new e(n)},BigNumber:function(n){return n},Unit:t.referToSelf(r=>n=>{var s=n.clone();return s.value=r(n.value),s}),Fraction:function(n){return new e(n.n).div(n.d).times(n.s)},null:function(n){return new e(0)},"Array | Matrix":t.referToSelf(r=>n=>Zr(n,r))})}),wg="fraction",Dg=["typed","Fraction"],bg=mt(wg,Dg,i=>{var{typed:t,Fraction:e}=i;return t("fraction",{number:function(n){if(!isFinite(n)||isNaN(n))throw new Error(n+" cannot be represented as a fraction");return new e(n)},string:function(n){return new e(n)},"number, number":function(n,s){return new e(n,s)},null:function(n){return new e(0)},BigNumber:function(n){return new e(n.toString())},Fraction:function(n){return n},Unit:t.referToSelf(r=>n=>{var s=n.clone();return s.value=r(n.value),s}),Object:function(n){return new e(n)},"Array | Matrix":t.referToSelf(r=>n=>Zr(n,r))})}),ff="matrix",xg=["typed","Matrix","DenseMatrix","SparseMatrix"],Eg=mt(ff,xg,i=>{var{typed:t,Matrix:e,DenseMatrix:r,SparseMatrix:n}=i;return t(ff,{"":function(){return s([])},string:function(u){return s([],u)},"string, string":function(u,c){return s([],u,c)},Array:function(u){return s(u)},Matrix:function(u){return s(u,u.storage())},"Array | Matrix, string":s,"Array | Matrix, string, string":s});function s(a,u,c){if(u==="dense"||u==="default"||u===void 0)return new r(a,c);if(u==="sparse")return new n(a,c);throw new TypeError("Unknown matrix type "+JSON.stringify(u)+".")}}),hf="unaryMinus",Ag=["typed"],Cg=mt(hf,Ag,i=>{var{typed:t}=i;return t(hf,{number:rf,"Complex | BigNumber | Fraction":e=>e.neg(),Unit:t.referToSelf(e=>r=>{var n=r.clone();return n.value=t.find(e,n.valueType())(r.value),n}),"Array | Matrix":t.referToSelf(e=>r=>Zr(r,e))})}),df="abs",Mg=["typed"],Fg=mt(df,Mg,i=>{var{typed:t}=i;return t(df,{number:Xc,"Complex | BigNumber | Fraction | Unit":e=>e.abs(),"Array | Matrix":t.referToSelf(e=>r=>Zr(r,e))})}),pf="addScalar",Ng=["typed"],Sg=mt(pf,Ng,i=>{var{typed:t}=i;return t(pf,{"number, number":Qc,"Complex, Complex":function(r,n){return r.add(n)},"BigNumber, BigNumber":function(r,n){return r.plus(n)},"Fraction, Fraction":function(r,n){return r.add(n)},"Unit, Unit":t.referToSelf(e=>(r,n)=>{if(r.value===null||r.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(n.value===null||n.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!r.equalBase(n))throw new Error("Units do not match");var s=r.clone();return s.value=t.find(e,[s.valueType(),n.valueType()])(s.value,n.value),s.fixPrefix=!1,s})})}),_f="subtractScalar",Og=["typed"],Bg=mt(_f,Og,i=>{var{typed:t}=i;return t(_f,{"number, number":tf,"Complex, Complex":function(r,n){return r.sub(n)},"BigNumber, BigNumber":function(r,n){return r.minus(n)},"Fraction, Fraction":function(r,n){return r.sub(n)},"Unit, Unit":t.referToSelf(e=>(r,n)=>{if(r.value===null||r.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(n.value===null||n.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!r.equalBase(n))throw new Error("Units do not match");var s=r.clone();return s.value=t.find(e,[s.valueType(),n.valueType()])(s.value,n.value),s.fixPrefix=!1,s})})}),Tg="matAlgo11xS0s",Ig=["typed","equalScalar"],Wa=mt(Tg,Ig,i=>{var{typed:t,equalScalar:e}=i;return function(n,s,a,u){var c=n._values,f=n._index,d=n._ptr,h=n._size,p=n._datatype;if(!c)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var g=h[0],y=h[1],_,w=e,v=0,x=a;typeof p=="string"&&(_=p,w=t.find(e,[_,_]),v=t.convert(0,_),s=t.convert(s,_),x=t.find(a,[_,_]));for(var b=[],N=[],E=[],C=0;C<y;C++){E[C]=N.length;for(var F=d[C],S=d[C+1],I=F;I<S;I++){var A=f[I],O=u?x(s,c[I]):x(c[I],s);w(O,v)||(N.push(A),b.push(O))}}return E[y]=N.length,n.createSparseMatrix({values:b,index:N,ptr:E,size:[g,y],datatype:_})}}),$g="matAlgo12xSfs",Lg=["typed","DenseMatrix"],Ai=mt($g,Lg,i=>{var{typed:t,DenseMatrix:e}=i;return function(n,s,a,u){var c=n._values,f=n._index,d=n._ptr,h=n._size,p=n._datatype;if(!c)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var g=h[0],y=h[1],_,w=a;typeof p=="string"&&(_=p,s=t.convert(s,_),w=t.find(a,[_,_]));for(var v=[],x=[],b=[],N=0;N<y;N++){for(var E=N+1,C=d[N],F=d[N+1],S=C;S<F;S++){var I=f[S];x[I]=c[S],b[I]=E}for(var A=0;A<g;A++)N===0&&(v[A]=[]),b[A]===E?v[A][N]=u?w(s,x[A]):w(x[A],s):v[A][N]=u?w(s,0):w(0,s)}return new e({data:v,size:[g,y],datatype:_})}}),Rg="matAlgo14xDs",Pg=["typed"],Ya=mt(Rg,Pg,i=>{var{typed:t}=i;return function(n,s,a,u){var c=n._data,f=n._size,d=n._datatype,h,p=a;typeof d=="string"&&(h=d,s=t.convert(s,h),p=t.find(a,[h,h]));var g=f.length>0?e(p,0,f,f[0],c,s,u):[];return n.createDenseMatrix({data:g,size:oe(f),datatype:h})};function e(r,n,s,a,u,c,f){var d=[];if(n===s.length-1)for(var h=0;h<a;h++)d[h]=f?r(c,u[h]):r(u[h],c);else for(var p=0;p<a;p++)d[p]=e(r,n+1,s,s[n+1],u[p],c,f);return d}}),kg="matAlgo02xDS0",zg=["typed","equalScalar"],qg=mt(kg,zg,i=>{var{typed:t,equalScalar:e}=i;return function(n,s,a,u){var c=n._data,f=n._size,d=n._datatype||n.getDataType(),h=s._values,p=s._index,g=s._ptr,y=s._size,_=s._datatype||s._data===void 0?s._datatype:s.getDataType();if(f.length!==y.length)throw new Jt(f.length,y.length);if(f[0]!==y[0]||f[1]!==y[1])throw new RangeError("Dimension mismatch. Matrix A ("+f+") must match Matrix B ("+y+")");if(!h)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var w=f[0],v=f[1],x,b=e,N=0,E=a;typeof d=="string"&&d===_&&d!=="mixed"&&(x=d,b=t.find(e,[x,x]),N=t.convert(0,x),E=t.find(a,[x,x]));for(var C=[],F=[],S=[],I=0;I<v;I++){S[I]=F.length;for(var A=g[I],O=g[I+1],L=A;L<O;L++){var z=p[L],q=u?E(h[L],c[z][I]):E(c[z][I],h[L]);b(q,N)||(F.push(z),C.push(q))}}return S[v]=F.length,s.createSparseMatrix({values:C,index:F,ptr:S,size:[w,v],datatype:d===n._datatype&&_===s._datatype?x:void 0})}}),Ug="matAlgo03xDSf",jg=["typed"],Ci=mt(Ug,jg,i=>{var{typed:t}=i;return function(r,n,s,a){var u=r._data,c=r._size,f=r._datatype||r.getDataType(),d=n._values,h=n._index,p=n._ptr,g=n._size,y=n._datatype||n._data===void 0?n._datatype:n.getDataType();if(c.length!==g.length)throw new Jt(c.length,g.length);if(c[0]!==g[0]||c[1]!==g[1])throw new RangeError("Dimension mismatch. Matrix A ("+c+") must match Matrix B ("+g+")");if(!d)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var _=c[0],w=c[1],v,x=0,b=s;typeof f=="string"&&f===y&&f!=="mixed"&&(v=f,x=t.convert(0,v),b=t.find(s,[v,v]));for(var N=[],E=0;E<_;E++)N[E]=[];for(var C=[],F=[],S=0;S<w;S++){for(var I=S+1,A=p[S],O=p[S+1],L=A;L<O;L++){var z=h[L];C[z]=a?b(d[L],u[z][S]):b(u[z][S],d[L]),F[z]=I}for(var q=0;q<_;q++)F[q]===I?N[q][S]=C[q]:N[q][S]=a?b(x,u[q][S]):b(u[q][S],x)}return r.createDenseMatrix({data:N,size:[_,w],datatype:f===r._datatype&&y===n._datatype?v:void 0})}}),Wg="matAlgo05xSfSf",Yg=["typed","equalScalar"],mf=mt(Wg,Yg,i=>{var{typed:t,equalScalar:e}=i;return function(n,s,a){var u=n._values,c=n._index,f=n._ptr,d=n._size,h=n._datatype||n._data===void 0?n._datatype:n.getDataType(),p=s._values,g=s._index,y=s._ptr,_=s._size,w=s._datatype||s._data===void 0?s._datatype:s.getDataType();if(d.length!==_.length)throw new Jt(d.length,_.length);if(d[0]!==_[0]||d[1]!==_[1])throw new RangeError("Dimension mismatch. Matrix A ("+d+") must match Matrix B ("+_+")");var v=d[0],x=d[1],b,N=e,E=0,C=a;typeof h=="string"&&h===w&&h!=="mixed"&&(b=h,N=t.find(e,[b,b]),E=t.convert(0,b),C=t.find(a,[b,b]));var F=u&&p?[]:void 0,S=[],I=[],A=F?[]:void 0,O=F?[]:void 0,L=[],z=[],q,j,P,Z;for(j=0;j<x;j++){I[j]=S.length;var W=j+1;for(P=f[j],Z=f[j+1];P<Z;P++)q=c[P],S.push(q),L[q]=W,A&&(A[q]=u[P]);for(P=y[j],Z=y[j+1];P<Z;P++)q=g[P],L[q]!==W&&S.push(q),z[q]=W,O&&(O[q]=p[P]);if(F)for(P=I[j];P<S.length;){q=S[P];var X=L[q],J=z[q];if(X===W||J===W){var ct=X===W?A[q]:E,gt=J===W?O[q]:E,st=C(ct,gt);N(st,E)?S.splice(P,1):(F.push(st),P++)}}}return I[x]=S.length,n.createSparseMatrix({values:F,index:S,ptr:I,size:[v,x],datatype:h===n._datatype&&w===s._datatype?b:void 0})}}),Vg="matAlgo13xDD",Hg=["typed"],Zg=mt(Vg,Hg,i=>{var{typed:t}=i;return function(n,s,a){var u=n._data,c=n._size,f=n._datatype,d=s._data,h=s._size,p=s._datatype,g=[];if(c.length!==h.length)throw new Jt(c.length,h.length);for(var y=0;y<c.length;y++){if(c[y]!==h[y])throw new RangeError("Dimension mismatch. Matrix A ("+c+") must match Matrix B ("+h+")");g[y]=c[y]}var _,w=a;typeof f=="string"&&f===p&&(_=f,w=t.find(a,[_,_]));var v=g.length>0?e(w,0,g,g[0],u,d):[];return n.createDenseMatrix({data:v,size:g,datatype:_})};function e(r,n,s,a,u,c){var f=[];if(n===s.length-1)for(var d=0;d<a;d++)f[d]=r(u[d],c[d]);else for(var h=0;h<a;h++)f[h]=e(r,n+1,s,s[n+1],u[h],c[h]);return f}}),Kg="broadcast",Gg=["concat"],Jg=mt(Kg,Gg,i=>{var{concat:t}=i;return function(n,s){var a=Math.max(n._size.length,s._size.length);if(n._size.length===s._size.length&&n._size.every((y,_)=>y===s._size[_]))return[n,s];for(var u=e(n._size,a,0),c=e(s._size,a,0),f=[],d=0;d<a;d++)f[d]=Math.max(u[d],c[d]);Rs(u,f),Rs(c,f);var h=n.clone(),p=s.clone();h._size.length<a?h.reshape(e(h._size,a,1)):p._size.length<a&&p.reshape(e(p._size,a,1));for(var g=0;g<a;g++)h._size[g]<f[g]&&(h=r(h,f[g],g)),p._size[g]<f[g]&&(p=r(p,f[g],g));return[h,p]};function e(n,s,a){return[...Array(s-n.length).fill(a),...n]}function r(n,s,a){return t(...Array(s).fill(n),a)}}),Xg="matrixAlgorithmSuite",Qg=["typed","matrix","concat"],ti=mt(Xg,Qg,i=>{var{typed:t,matrix:e,concat:r}=i,n=Zg({typed:t}),s=Ya({typed:t}),a=Jg({concat:r});return function(c){var f=c.elop,d=c.SD||c.DS,h;f?(h={"DenseMatrix, DenseMatrix":(_,w)=>n(...a(_,w),f),"Array, Array":(_,w)=>n(...a(e(_),e(w)),f).valueOf(),"Array, DenseMatrix":(_,w)=>n(...a(e(_),w),f),"DenseMatrix, Array":(_,w)=>n(...a(_,e(w)),f)},c.SS&&(h["SparseMatrix, SparseMatrix"]=(_,w)=>c.SS(...a(_,w),f,!1)),c.DS&&(h["DenseMatrix, SparseMatrix"]=(_,w)=>c.DS(...a(_,w),f,!1),h["Array, SparseMatrix"]=(_,w)=>c.DS(...a(e(_),w),f,!1)),d&&(h["SparseMatrix, DenseMatrix"]=(_,w)=>d(...a(w,_),f,!0),h["SparseMatrix, Array"]=(_,w)=>d(...a(e(w),_),f,!0))):(h={"DenseMatrix, DenseMatrix":t.referToSelf(_=>(w,v)=>n(...a(w,v),_)),"Array, Array":t.referToSelf(_=>(w,v)=>n(...a(e(w),e(v)),_).valueOf()),"Array, DenseMatrix":t.referToSelf(_=>(w,v)=>n(...a(e(w),v),_)),"DenseMatrix, Array":t.referToSelf(_=>(w,v)=>n(...a(w,e(v)),_))},c.SS&&(h["SparseMatrix, SparseMatrix"]=t.referToSelf(_=>(w,v)=>c.SS(...a(w,v),_,!1))),c.DS&&(h["DenseMatrix, SparseMatrix"]=t.referToSelf(_=>(w,v)=>c.DS(...a(w,v),_,!1)),h["Array, SparseMatrix"]=t.referToSelf(_=>(w,v)=>c.DS(...a(e(w),v),_,!1))),d&&(h["SparseMatrix, DenseMatrix"]=t.referToSelf(_=>(w,v)=>d(...a(v,w),_,!0)),h["SparseMatrix, Array"]=t.referToSelf(_=>(w,v)=>d(...a(e(v),w),_,!0))));var p=c.scalar||"any",g=c.Ds||c.Ss;g&&(f?(h["DenseMatrix,"+p]=(_,w)=>s(_,w,f,!1),h[p+", DenseMatrix"]=(_,w)=>s(w,_,f,!0),h["Array,"+p]=(_,w)=>s(e(_),w,f,!1).valueOf(),h[p+", Array"]=(_,w)=>s(e(w),_,f,!0).valueOf()):(h["DenseMatrix,"+p]=t.referToSelf(_=>(w,v)=>s(w,v,_,!1)),h[p+", DenseMatrix"]=t.referToSelf(_=>(w,v)=>s(v,w,_,!0)),h["Array,"+p]=t.referToSelf(_=>(w,v)=>s(e(w),v,_,!1).valueOf()),h[p+", Array"]=t.referToSelf(_=>(w,v)=>s(e(v),w,_,!0).valueOf())));var y=c.sS!==void 0?c.sS:c.Ss;return f?(c.Ss&&(h["SparseMatrix,"+p]=(_,w)=>c.Ss(_,w,f,!1)),y&&(h[p+", SparseMatrix"]=(_,w)=>y(w,_,f,!0))):(c.Ss&&(h["SparseMatrix,"+p]=t.referToSelf(_=>(w,v)=>c.Ss(w,v,_,!1))),y&&(h[p+", SparseMatrix"]=t.referToSelf(_=>(w,v)=>y(v,w,_,!0)))),f&&f.signatures&&uc(h,f.signatures),h}}),tv="matAlgo01xDSid",ev=["typed"],gf=mt(tv,ev,i=>{var{typed:t}=i;return function(r,n,s,a){var u=r._data,c=r._size,f=r._datatype||r.getDataType(),d=n._values,h=n._index,p=n._ptr,g=n._size,y=n._datatype||n._data===void 0?n._datatype:n.getDataType();if(c.length!==g.length)throw new Jt(c.length,g.length);if(c[0]!==g[0]||c[1]!==g[1])throw new RangeError("Dimension mismatch. Matrix A ("+c+") must match Matrix B ("+g+")");if(!d)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var _=c[0],w=c[1],v=typeof f=="string"&&f!=="mixed"&&f===y?f:void 0,x=v?t.find(s,[v,v]):s,b,N,E=[];for(b=0;b<_;b++)E[b]=[];var C=[],F=[];for(N=0;N<w;N++){for(var S=N+1,I=p[N],A=p[N+1],O=I;O<A;O++)b=h[O],C[b]=a?x(d[O],u[b][N]):x(u[b][N],d[O]),F[b]=S;for(b=0;b<_;b++)F[b]===S?E[b][N]=C[b]:E[b][N]=u[b][N]}return r.createDenseMatrix({data:E,size:[_,w],datatype:f===r._datatype&&y===n._datatype?v:void 0})}}),rv="matAlgo04xSidSid",nv=["typed","equalScalar"],iv=mt(rv,nv,i=>{var{typed:t,equalScalar:e}=i;return function(n,s,a){var u=n._values,c=n._index,f=n._ptr,d=n._size,h=n._datatype||n._data===void 0?n._datatype:n.getDataType(),p=s._values,g=s._index,y=s._ptr,_=s._size,w=s._datatype||s._data===void 0?s._datatype:s.getDataType();if(d.length!==_.length)throw new Jt(d.length,_.length);if(d[0]!==_[0]||d[1]!==_[1])throw new RangeError("Dimension mismatch. Matrix A ("+d+") must match Matrix B ("+_+")");var v=d[0],x=d[1],b,N=e,E=0,C=a;typeof h=="string"&&h===w&&h!=="mixed"&&(b=h,N=t.find(e,[b,b]),E=t.convert(0,b),C=t.find(a,[b,b]));var F=u&&p?[]:void 0,S=[],I=[],A=u&&p?[]:void 0,O=u&&p?[]:void 0,L=[],z=[],q,j,P,Z,W;for(j=0;j<x;j++){I[j]=S.length;var X=j+1;for(Z=f[j],W=f[j+1],P=Z;P<W;P++)q=c[P],S.push(q),L[q]=X,A&&(A[q]=u[P]);for(Z=y[j],W=y[j+1],P=Z;P<W;P++)if(q=g[P],L[q]===X){if(A){var J=C(A[q],p[P]);N(J,E)?L[q]=null:A[q]=J}}else S.push(q),z[q]=X,O&&(O[q]=p[P]);if(A&&O)for(P=I[j];P<S.length;)q=S[P],L[q]===X?(F[P]=A[q],P++):z[q]===X?(F[P]=O[q],P++):S.splice(P,1)}return I[x]=S.length,n.createSparseMatrix({values:F,index:S,ptr:I,size:[v,x],datatype:h===n._datatype&&w===s._datatype?b:void 0})}}),sv="matAlgo10xSids",ov=["typed","DenseMatrix"],vf=mt(sv,ov,i=>{var{typed:t,DenseMatrix:e}=i;return function(n,s,a,u){var c=n._values,f=n._index,d=n._ptr,h=n._size,p=n._datatype;if(!c)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var g=h[0],y=h[1],_,w=a;typeof p=="string"&&(_=p,s=t.convert(s,_),w=t.find(a,[_,_]));for(var v=[],x=[],b=[],N=0;N<y;N++){for(var E=N+1,C=d[N],F=d[N+1],S=C;S<F;S++){var I=f[S];x[I]=c[S],b[I]=E}for(var A=0;A<g;A++)N===0&&(v[A]=[]),b[A]===E?v[A][N]=u?w(s,x[A]):w(x[A],s):v[A][N]=s}return new e({data:v,size:[g,y],datatype:_})}}),av="multiplyScalar",uv=["typed"],lv=mt(av,uv,i=>{var{typed:t}=i;return t("multiplyScalar",{"number, number":ef,"Complex, Complex":function(r,n){return r.mul(n)},"BigNumber, BigNumber":function(r,n){return r.times(n)},"Fraction, Fraction":function(r,n){return r.mul(n)},"number | Fraction | BigNumber | Complex, Unit":(e,r)=>r.multiply(e),"Unit, number | Fraction | BigNumber | Complex | Unit":(e,r)=>e.multiply(r)})}),yf="multiply",cv=["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],fv=mt(yf,cv,i=>{var{typed:t,matrix:e,addScalar:r,multiplyScalar:n,equalScalar:s,dot:a}=i,u=Wa({typed:t,equalScalar:s}),c=Ya({typed:t});function f(E,C){switch(E.length){case 1:switch(C.length){case 1:if(E[0]!==C[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(E[0]!==C[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+E[0]+") must match Matrix rows ("+C[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+C.length+" dimensions)")}break;case 2:switch(C.length){case 1:if(E[1]!==C[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+E[1]+") must match Vector length ("+C[0]+")");break;case 2:if(E[1]!==C[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+E[1]+") must match Matrix B rows ("+C[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+C.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+E.length+" dimensions)")}}function d(E,C,F){if(F===0)throw new Error("Cannot multiply two empty vectors");return a(E,C)}function h(E,C){if(C.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return p(E,C)}function p(E,C){var F=E._data,S=E._size,I=E._datatype||E.getDataType(),A=C._data,O=C._size,L=C._datatype||C.getDataType(),z=S[0],q=O[1],j,P=r,Z=n;I&&L&&I===L&&typeof I=="string"&&I!=="mixed"&&(j=I,P=t.find(r,[j,j]),Z=t.find(n,[j,j]));for(var W=[],X=0;X<q;X++){for(var J=Z(F[0],A[0][X]),ct=1;ct<z;ct++)J=P(J,Z(F[ct],A[ct][X]));W[X]=J}return E.createDenseMatrix({data:W,size:[q],datatype:I===E._datatype&&L===C._datatype?j:void 0})}var g=t("_multiplyMatrixVector",{"DenseMatrix, any":_,"SparseMatrix, any":x}),y=t("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":w,"DenseMatrix, SparseMatrix":v,"SparseMatrix, DenseMatrix":b,"SparseMatrix, SparseMatrix":N});function _(E,C){var F=E._data,S=E._size,I=E._datatype||E.getDataType(),A=C._data,O=C._datatype||C.getDataType(),L=S[0],z=S[1],q,j=r,P=n;I&&O&&I===O&&typeof I=="string"&&I!=="mixed"&&(q=I,j=t.find(r,[q,q]),P=t.find(n,[q,q]));for(var Z=[],W=0;W<L;W++){for(var X=F[W],J=P(X[0],A[0]),ct=1;ct<z;ct++)J=j(J,P(X[ct],A[ct]));Z[W]=J}return E.createDenseMatrix({data:Z,size:[L],datatype:I===E._datatype&&O===C._datatype?q:void 0})}function w(E,C){var F=E._data,S=E._size,I=E._datatype||E.getDataType(),A=C._data,O=C._size,L=C._datatype||C.getDataType(),z=S[0],q=S[1],j=O[1],P,Z=r,W=n;I&&L&&I===L&&typeof I=="string"&&I!=="mixed"&&I!=="mixed"&&(P=I,Z=t.find(r,[P,P]),W=t.find(n,[P,P]));for(var X=[],J=0;J<z;J++){var ct=F[J];X[J]=[];for(var gt=0;gt<j;gt++){for(var st=W(ct[0],A[0][gt]),yt=1;yt<q;yt++)st=Z(st,W(ct[yt],A[yt][gt]));X[J][gt]=st}}return E.createDenseMatrix({data:X,size:[z,j],datatype:I===E._datatype&&L===C._datatype?P:void 0})}function v(E,C){var F=E._data,S=E._size,I=E._datatype||E.getDataType(),A=C._values,O=C._index,L=C._ptr,z=C._size,q=C._datatype||C._data===void 0?C._datatype:C.getDataType();if(!A)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var j=S[0],P=z[1],Z,W=r,X=n,J=s,ct=0;I&&q&&I===q&&typeof I=="string"&&I!=="mixed"&&(Z=I,W=t.find(r,[Z,Z]),X=t.find(n,[Z,Z]),J=t.find(s,[Z,Z]),ct=t.convert(0,Z));for(var gt=[],st=[],yt=[],Dt=C.createSparseMatrix({values:gt,index:st,ptr:yt,size:[j,P],datatype:I===E._datatype&&q===C._datatype?Z:void 0}),Nt=0;Nt<P;Nt++){yt[Nt]=st.length;var xt=L[Nt],ue=L[Nt+1];if(ue>xt)for(var Tt=0,St=0;St<j;St++){for(var fe=St+1,ne=void 0,qt=xt;qt<ue;qt++){var Xt=O[qt];Tt!==fe?(ne=X(F[St][Xt],A[qt]),Tt=fe):ne=W(ne,X(F[St][Xt],A[qt]))}Tt===fe&&!J(ne,ct)&&(st.push(St),gt.push(ne))}}return yt[P]=st.length,Dt}function x(E,C){var F=E._values,S=E._index,I=E._ptr,A=E._datatype||E._data===void 0?E._datatype:E.getDataType();if(!F)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var O=C._data,L=C._datatype||C.getDataType(),z=E._size[0],q=C._size[0],j=[],P=[],Z=[],W,X=r,J=n,ct=s,gt=0;A&&L&&A===L&&typeof A=="string"&&A!=="mixed"&&(W=A,X=t.find(r,[W,W]),J=t.find(n,[W,W]),ct=t.find(s,[W,W]),gt=t.convert(0,W));var st=[],yt=[];Z[0]=0;for(var Dt=0;Dt<q;Dt++){var Nt=O[Dt];if(!ct(Nt,gt))for(var xt=I[Dt],ue=I[Dt+1],Tt=xt;Tt<ue;Tt++){var St=S[Tt];yt[St]?st[St]=X(st[St],J(Nt,F[Tt])):(yt[St]=!0,P.push(St),st[St]=J(Nt,F[Tt]))}}for(var fe=P.length,ne=0;ne<fe;ne++){var qt=P[ne];j[ne]=st[qt]}return Z[1]=P.length,E.createSparseMatrix({values:j,index:P,ptr:Z,size:[z,1],datatype:A===E._datatype&&L===C._datatype?W:void 0})}function b(E,C){var F=E._values,S=E._index,I=E._ptr,A=E._datatype||E._data===void 0?E._datatype:E.getDataType();if(!F)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var O=C._data,L=C._datatype||C.getDataType(),z=E._size[0],q=C._size[0],j=C._size[1],P,Z=r,W=n,X=s,J=0;A&&L&&A===L&&typeof A=="string"&&A!=="mixed"&&(P=A,Z=t.find(r,[P,P]),W=t.find(n,[P,P]),X=t.find(s,[P,P]),J=t.convert(0,P));for(var ct=[],gt=[],st=[],yt=E.createSparseMatrix({values:ct,index:gt,ptr:st,size:[z,j],datatype:A===E._datatype&&L===C._datatype?P:void 0}),Dt=[],Nt=[],xt=0;xt<j;xt++){st[xt]=gt.length;for(var ue=xt+1,Tt=0;Tt<q;Tt++){var St=O[Tt][xt];if(!X(St,J))for(var fe=I[Tt],ne=I[Tt+1],qt=fe;qt<ne;qt++){var Xt=S[qt];Nt[Xt]!==ue?(Nt[Xt]=ue,gt.push(Xt),Dt[Xt]=W(St,F[qt])):Dt[Xt]=Z(Dt[Xt],W(St,F[qt]))}}for(var Le=st[xt],Dr=gt.length,ze=Le;ze<Dr;ze++){var mn=gt[ze];ct[ze]=Dt[mn]}}return st[j]=gt.length,yt}function N(E,C){var F=E._values,S=E._index,I=E._ptr,A=E._datatype||E._data===void 0?E._datatype:E.getDataType(),O=C._values,L=C._index,z=C._ptr,q=C._datatype||C._data===void 0?C._datatype:C.getDataType(),j=E._size[0],P=C._size[1],Z=F&&O,W,X=r,J=n;A&&q&&A===q&&typeof A=="string"&&A!=="mixed"&&(W=A,X=t.find(r,[W,W]),J=t.find(n,[W,W]));for(var ct=Z?[]:void 0,gt=[],st=[],yt=E.createSparseMatrix({values:ct,index:gt,ptr:st,size:[j,P],datatype:A===E._datatype&&q===C._datatype?W:void 0}),Dt=Z?[]:void 0,Nt=[],xt,ue,Tt,St,fe,ne,qt,Xt,Le=0;Le<P;Le++){st[Le]=gt.length;var Dr=Le+1;for(fe=z[Le],ne=z[Le+1],St=fe;St<ne;St++)if(Xt=L[St],Z)for(ue=I[Xt],Tt=I[Xt+1],xt=ue;xt<Tt;xt++)qt=S[xt],Nt[qt]!==Dr?(Nt[qt]=Dr,gt.push(qt),Dt[qt]=J(O[St],F[xt])):Dt[qt]=X(Dt[qt],J(O[St],F[xt]));else for(ue=I[Xt],Tt=I[Xt+1],xt=ue;xt<Tt;xt++)qt=S[xt],Nt[qt]!==Dr&&(Nt[qt]=Dr,gt.push(qt));if(Z)for(var ze=st[Le],mn=gt.length,Ln=ze;Ln<mn;Ln++){var gn=gt[Ln];ct[Ln]=Dt[gn]}}return st[P]=gt.length,yt}return t(yf,n,{"Array, Array":t.referTo("Matrix, Matrix",E=>(C,F)=>{f(Ie(C),Ie(F));var S=E(e(C),e(F));return ye(S)?S.valueOf():S}),"Matrix, Matrix":function(C,F){var S=C.size(),I=F.size();return f(S,I),S.length===1?I.length===1?d(C,F,S[0]):h(C,F):I.length===1?g(C,F):y(C,F)},"Matrix, Array":t.referTo("Matrix,Matrix",E=>(C,F)=>E(C,e(F))),"Array, Matrix":t.referToSelf(E=>(C,F)=>E(e(C,F.storage()),F)),"SparseMatrix, any":function(C,F){return u(C,F,n,!1)},"DenseMatrix, any":function(C,F){return c(C,F,n,!1)},"any, SparseMatrix":function(C,F){return u(F,C,n,!0)},"any, DenseMatrix":function(C,F){return c(F,C,n,!0)},"Array, any":function(C,F){return c(e(C),F,n,!1).valueOf()},"any, Array":function(C,F){return c(e(F),C,n,!0).valueOf()},"any, any":n,"any, any, ...any":t.referToSelf(E=>(C,F,S)=>{for(var I=E(C,F),A=0;A<S.length;A++)I=E(I,S[A]);return I})})}),wf="subtract",hv=["typed","matrix","equalScalar","subtractScalar","unaryMinus","DenseMatrix","concat"],dv=mt(wf,hv,i=>{var{typed:t,matrix:e,equalScalar:r,subtractScalar:n,unaryMinus:s,DenseMatrix:a,concat:u}=i,c=gf({typed:t}),f=Ci({typed:t}),d=mf({typed:t,equalScalar:r}),h=vf({typed:t,DenseMatrix:a}),p=Ai({typed:t,DenseMatrix:a}),g=ti({typed:t,matrix:e,concat:u});return t(wf,{"any, any":n},g({elop:n,SS:d,DS:c,SD:f,Ss:p,sS:h}))}),pv="matAlgo07xSSf",_v=["typed","DenseMatrix"],Xs=mt(pv,_v,i=>{var{typed:t,DenseMatrix:e}=i;return function(s,a,u){var c=s._size,f=s._datatype||s._data===void 0?s._datatype:s.getDataType(),d=a._size,h=a._datatype||a._data===void 0?a._datatype:a.getDataType();if(c.length!==d.length)throw new Jt(c.length,d.length);if(c[0]!==d[0]||c[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+c+") must match Matrix B ("+d+")");var p=c[0],g=c[1],y,_=0,w=u;typeof f=="string"&&f===h&&f!=="mixed"&&(y=f,_=t.convert(0,y),w=t.find(u,[y,y]));var v,x,b=[];for(v=0;v<p;v++)b[v]=[];var N=[],E=[],C=[],F=[];for(x=0;x<g;x++){var S=x+1;for(r(s,x,C,N,S),r(a,x,F,E,S),v=0;v<p;v++){var I=C[v]===S?N[v]:_,A=F[v]===S?E[v]:_;b[v][x]=w(I,A)}}return new e({data:b,size:[p,g],datatype:f===s._datatype&&h===a._datatype?y:void 0})};function r(n,s,a,u,c){for(var f=n._values,d=n._index,h=n._ptr,p=h[s],g=h[s+1];p<g;p++){var y=d[p];a[y]=c,u[y]=f[p]}}}),Df="conj",mv=["typed"],gv=mt(Df,mv,i=>{var{typed:t}=i;return t(Df,{"number | BigNumber | Fraction":e=>e,Complex:e=>e.conjugate(),"Array | Matrix":t.referToSelf(e=>r=>Zr(r,e))})}),bf="concat",vv=["typed","matrix","isInteger"],yv=mt(bf,vv,i=>{var{typed:t,matrix:e,isInteger:r}=i;return t(bf,{"...Array | Matrix | number | BigNumber":function(s){var a,u=s.length,c=-1,f,d=!1,h=[];for(a=0;a<u;a++){var p=s[a];if(ye(p)&&(d=!0),_e(p)||Oe(p)){if(a!==u-1)throw new Error("Dimension must be specified as last argument");if(f=c,c=p.valueOf(),!r(c))throw new TypeError("Integer number expected for dimension");if(c<0||a>0&&c>f)throw new Nn(c,f+1)}else{var g=oe(p).valueOf(),y=Ie(g);if(h[a]=g,f=c,c=y.length-1,a>0&&c!==f)throw new Jt(f+1,c+1)}}if(h.length===0)throw new SyntaxError("At least one matrix expected");for(var _=h.shift();h.length;)_=Fc(_,h.shift(),c);return d?e(_):_},"...string":function(s){return s.join("")}})}),xf="count",wv=["typed","size","prod"],Dv=mt(xf,wv,i=>{var{typed:t,size:e,prod:r}=i;return t(xf,{string:function(s){return s.length},"Matrix | Array":function(s){return r(e(s))}})}),Ef="identity",bv=["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],xv=mt(Ef,bv,i=>{var{typed:t,config:e,matrix:r,BigNumber:n,DenseMatrix:s,SparseMatrix:a}=i;return t(Ef,{"":function(){return e.matrix==="Matrix"?r([]):[]},string:function(d){return r(d)},"number | BigNumber":function(d){return c(d,d,e.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(d,h){return c(d,d,h)},"number | BigNumber, number | BigNumber":function(d,h){return c(d,h,e.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(d,h,p){return c(d,h,p)},Array:function(d){return u(d)},"Array, string":function(d,h){return u(d,h)},Matrix:function(d){return u(d.valueOf(),d.storage())},"Matrix, string":function(d,h){return u(d.valueOf(),h)}});function u(f,d){switch(f.length){case 0:return d?r(d):[];case 1:return c(f[0],f[0],d);case 2:return c(f[0],f[1],d);default:throw new Error("Vector containing two values expected")}}function c(f,d,h){var p=Oe(f)||Oe(d)?n:null;if(Oe(f)&&(f=f.toNumber()),Oe(d)&&(d=d.toNumber()),!be(f)||f<1)throw new Error("Parameters in function identity must be positive integers");if(!be(d)||d<1)throw new Error("Parameters in function identity must be positive integers");var g=p?new n(1):1,y=p?new p(0):0,_=[f,d];if(h){if(h==="sparse")return a.diagonal(_,g,0,y);if(h==="dense")return s.diagonal(_,g,0,y);throw new TypeError('Unknown matrix type "'.concat(h,'"'))}for(var w=Sa([],_,y),v=f<d?f:d,x=0;x<v;x++)w[x][x]=g;return w}}),Af="kron",Ev=["typed","matrix","multiplyScalar"],Av=mt(Af,Ev,i=>{var{typed:t,matrix:e,multiplyScalar:r}=i;return t(Af,{"Matrix, Matrix":function(a,u){return e(n(a.toArray(),u.toArray()))},"Matrix, Array":function(a,u){return e(n(a.toArray(),u))},"Array, Matrix":function(a,u){return e(n(a,u.toArray()))},"Array, Array":n});function n(s,a){if(Ie(s).length===1&&(s=[s]),Ie(a).length===1&&(a=[a]),Ie(s).length>2||Ie(a).length>2)throw new RangeError("Vectors with dimensions greater then 2 are not supported expected (Size x = "+JSON.stringify(s.length)+", y = "+JSON.stringify(a.length)+")");var u=[],c=[];return s.map(function(f){return a.map(function(d){return c=[],u.push(c),f.map(function(h){return d.map(function(p){return c.push(r(h,p))})})})})&&u}});function Cv(){throw new Error('No "bignumber" implementation available')}function Mv(){throw new Error('No "fraction" implementation available')}function Fv(){throw new Error('No "matrix" implementation available')}var Cf="reshape",Nv=["typed","isInteger","matrix"],Sv=mt(Cf,Nv,i=>{var{typed:t,isInteger:e}=i;return t(Cf,{"Matrix, Array":function(n,s){return n.reshape(s,!0)},"Array, Array":function(n,s){return s.forEach(function(a){if(!e(a))throw new TypeError("Invalid size for dimension: "+a)}),Ba(n,s)}})}),Mf="size",Ov=["typed","config","?matrix"],Bv=mt(Mf,Ov,i=>{var{typed:t,config:e,matrix:r}=i;return t(Mf,{Matrix:function(s){return s.create(s.size())},Array:Ie,string:function(s){return e.matrix==="Array"?[s.length]:r([s.length])},"number | Complex | BigNumber | Unit | boolean | null":function(s){return e.matrix==="Array"?[]:r?r([]):Fv()}})}),Ff="transpose",Tv=["typed","matrix"],Iv=mt(Ff,Tv,i=>{var{typed:t,matrix:e}=i;return t(Ff,{Array:a=>r(e(a)).valueOf(),Matrix:r,any:oe});function r(a){var u=a.size(),c;switch(u.length){case 1:c=a.clone();break;case 2:{var f=u[0],d=u[1];if(d===0)throw new RangeError("Cannot transpose a 2D matrix with no columns (size: "+he(u)+")");switch(a.storage()){case"dense":c=n(a,f,d);break;case"sparse":c=s(a,f,d);break}}break;default:throw new RangeError("Matrix must be a vector or two dimensional (size: "+he(u)+")")}return c}function n(a,u,c){for(var f=a._data,d=[],h,p=0;p<c;p++){h=d[p]=[];for(var g=0;g<u;g++)h[g]=oe(f[g][p])}return a.createDenseMatrix({data:d,size:[c,u],datatype:a._datatype})}function s(a,u,c){for(var f=a._values,d=a._index,h=a._ptr,p=f?[]:void 0,g=[],y=[],_=[],w=0;w<u;w++)_[w]=0;var v,x,b;for(v=0,x=d.length;v<x;v++)_[d[v]]++;for(var N=0,E=0;E<u;E++)y.push(N),N+=_[E],_[E]=y[E];for(y.push(N),b=0;b<c;b++)for(var C=h[b],F=h[b+1],S=C;S<F;S++){var I=_[d[S]]++;g[I]=b,f&&(p[I]=oe(f[S]))}return a.createSparseMatrix({values:p,index:g,ptr:y,size:[c,u],datatype:a._datatype})}}),Nf="ctranspose",$v=["typed","transpose","conj"],Lv=mt(Nf,$v,i=>{var{typed:t,transpose:e,conj:r}=i;return t(Nf,{any:function(s){return r(e(s))}})}),Sf="mode",Rv=["typed","isNaN","isNumeric"],Pv=mt(Sf,Rv,i=>{var{typed:t,isNaN:e,isNumeric:r}=i;return t(Sf,{"Array | Matrix":n,"...":function(a){return n(a)}});function n(s){s=Ia(s.valueOf());var a=s.length;if(a===0)throw new Error("Cannot calculate mode of an empty array");for(var u={},c=[],f=0,d=0;d<s.length;d++){var h=s[d];if(r(h)&&e(h))throw new Error("Cannot calculate mode of an array containing NaN values");h in u||(u[h]=0),u[h]++,u[h]===f?c.push(h):u[h]>f&&(f=u[h],c=[h])}return c}});function In(i,t,e){var r;return String(i).indexOf("Unexpected type")!==-1?(r=arguments.length>2?" (type: "+Fn(e)+", value: "+JSON.stringify(e)+")":" (type: "+i.data.actual+")",new TypeError("Cannot calculate "+t+", unexpected type of argument"+r)):String(i).indexOf("complex numbers")!==-1?(r=arguments.length>2?" (type: "+Fn(e)+", value: "+JSON.stringify(e)+")":"",new TypeError("Cannot calculate "+t+", no ordering relation is defined for complex numbers"+r)):i}var Of="prod",kv=["typed","config","multiplyScalar","numeric"],zv=mt(Of,kv,i=>{var{typed:t,config:e,multiplyScalar:r,numeric:n}=i;return t(Of,{"Array | Matrix":s,"Array | Matrix, number | BigNumber":function(u,c){throw new Error("prod(A, dim) is not yet supported")},"...":function(u){return s(u)}});function s(a){var u;if(ns(a,function(c){try{u=u===void 0?c:r(u,c)}catch(f){throw In(f,"prod",c)}}),typeof u=="string"&&(u=n(u,e.number)),u===void 0)throw new Error("Cannot calculate prod of an empty array");return u}}),qv="numeric",Uv=["number","?bignumber","?fraction"],jv=mt(qv,Uv,i=>{var{number:t,bignumber:e,fraction:r}=i,n={string:!0,number:!0,BigNumber:!0,Fraction:!0},s={number:a=>t(a),BigNumber:e?a=>e(a):Cv,Fraction:r?a=>r(a):Mv};return function(u){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number",f=arguments.length>2?arguments[2]:void 0;if(f!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var d=Fn(u);if(!(d in n))throw new TypeError("Cannot convert "+u+' of type "'+d+'"; valid input types are '+Object.keys(n).join(", "));if(!(c in s))throw new TypeError("Cannot convert "+u+' to type "'+c+'"; valid output types are '+Object.keys(s).join(", "));return c===d?u:s[c](u)}}),Bf="divideScalar",Wv=["typed","numeric"],Yv=mt(Bf,Wv,i=>{var{typed:t,numeric:e}=i;return t(Bf,{"number, number":function(n,s){return n/s},"Complex, Complex":function(n,s){return n.div(s)},"BigNumber, BigNumber":function(n,s){return n.div(s)},"Fraction, Fraction":function(n,s){return n.div(s)},"Unit, number | Complex | Fraction | BigNumber | Unit":(r,n)=>r.divide(n),"number | Fraction | Complex | BigNumber, Unit":(r,n)=>n.divideInto(r)})}),Tf="pow",Vv=["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],Hv=mt(Tf,Vv,i=>{var{typed:t,config:e,identity:r,multiply:n,matrix:s,inv:a,number:u,fraction:c,Complex:f}=i;return t(Tf,{"number, number":d,"Complex, Complex":function(y,_){return y.pow(_)},"BigNumber, BigNumber":function(y,_){return _.isInteger()||y>=0||e.predictable?y.pow(_):new f(y.toNumber(),0).pow(_.toNumber(),0)},"Fraction, Fraction":function(y,_){var w=y.pow(_);if(w!=null)return w;if(e.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return d(y.valueOf(),_.valueOf())},"Array, number":h,"Array, BigNumber":function(y,_){return h(y,_.toNumber())},"Matrix, number":p,"Matrix, BigNumber":function(y,_){return p(y,_.toNumber())},"Unit, number | BigNumber":function(y,_){return y.pow(_)}});function d(g,y){if(e.predictable&&!be(y)&&g<0)try{var _=c(y),w=u(_);if((y===w||Math.abs((y-w)/y)<1e-14)&&_.d%2===1)return(_.n%2===0?1:-1)*Math.pow(-g,y)}catch{}return e.predictable&&(g<-1&&y===1/0||g>-1&&g<0&&y===-1/0)?NaN:be(y)||g>=0||e.predictable?nf(g,y):g*g<1&&y===1/0||g*g>1&&y===-1/0?0:new f(g,0).pow(y,0)}function h(g,y){if(!be(y))throw new TypeError("For A^b, b must be an integer (value is "+y+")");var _=Ie(g);if(_.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+_.length+" dimensions)");if(_[0]!==_[1])throw new Error("For A^b, A must be square (size is "+_[0]+"x"+_[1]+")");if(y<0)try{return h(a(g),-y)}catch(x){throw x.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+y+")"):x}for(var w=r(_[0]).valueOf(),v=g;y>=1;)(y&1)===1&&(w=n(v,w)),y>>=1,v=n(v,v);return w}function p(g,y){return s(h(g.valueOf(),y))}}),If="dotDivide",Zv=["typed","matrix","equalScalar","divideScalar","DenseMatrix","concat"],Kv=mt(If,Zv,i=>{var{typed:t,matrix:e,equalScalar:r,divideScalar:n,DenseMatrix:s,concat:a}=i,u=qg({typed:t,equalScalar:r}),c=Ci({typed:t}),f=Xs({typed:t,DenseMatrix:s}),d=Wa({typed:t,equalScalar:r}),h=Ai({typed:t,DenseMatrix:s}),p=ti({typed:t,matrix:e,concat:a});return t(If,p({elop:n,SS:f,DS:c,SD:u,Ss:d,sS:h}))}),Qs="compare",Gv=["typed","config","matrix","equalScalar","BigNumber","Fraction","DenseMatrix","concat"],Jv=mt(Qs,Gv,i=>{var{typed:t,config:e,equalScalar:r,matrix:n,BigNumber:s,Fraction:a,DenseMatrix:u,concat:c}=i,f=Ci({typed:t}),d=mf({typed:t,equalScalar:r}),h=Ai({typed:t,DenseMatrix:u}),p=ti({typed:t,matrix:n,concat:c}),g=Gs({typed:t});return t(Qs,Xv({typed:t,config:e}),{"boolean, boolean":function(_,w){return _===w?0:_>w?1:-1},"BigNumber, BigNumber":function(_,w){return Ks(_,w,e.epsilon)?new s(0):new s(_.cmp(w))},"Fraction, Fraction":function(_,w){return new a(_.compare(w))},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")}},g,p({SS:d,DS:f,Ss:h}))}),Xv=mt(Qs,["typed","config"],i=>{var{typed:t,config:e}=i;return t(Qs,{"number, number":function(n,s){return Qn(n,s,e.epsilon)?0:n>s?1:-1}})}),to="equal",Qv=["typed","matrix","equalScalar","DenseMatrix","concat"],t1=mt(to,Qv,i=>{var{typed:t,matrix:e,equalScalar:r,DenseMatrix:n,concat:s}=i,a=Ci({typed:t}),u=Xs({typed:t,DenseMatrix:n}),c=Ai({typed:t,DenseMatrix:n}),f=ti({typed:t,matrix:e,concat:s});return t(to,e1({typed:t,equalScalar:r}),f({elop:r,SS:u,DS:a,Ss:c}))}),e1=mt(to,["typed","equalScalar"],i=>{var{typed:t,equalScalar:e}=i;return t(to,{"any, any":function(n,s){return n===null?s===null:s===null?n===null:n===void 0?s===void 0:s===void 0?n===void 0:e(n,s)}})}),eo="smaller",r1=["typed","config","matrix","DenseMatrix","concat"],n1=mt(eo,r1,i=>{var{typed:t,config:e,matrix:r,DenseMatrix:n,concat:s}=i,a=Ci({typed:t}),u=Xs({typed:t,DenseMatrix:n}),c=Ai({typed:t,DenseMatrix:n}),f=ti({typed:t,matrix:r,concat:s}),d=Gs({typed:t});return t(eo,i1({typed:t,config:e}),{"boolean, boolean":(h,p)=>h<p,"BigNumber, BigNumber":function(p,g){return p.lt(g)&&!Ks(p,g,e.epsilon)},"Fraction, Fraction":(h,p)=>h.compare(p)===-1,"Complex, Complex":function(p,g){throw new TypeError("No ordering relation is defined for complex numbers")}},d,f({SS:u,DS:a,Ss:c}))}),i1=mt(eo,["typed","config"],i=>{var{typed:t,config:e}=i;return t(eo,{"number, number":function(n,s){return n<s&&!Qn(n,s,e.epsilon)}})}),ro="larger",s1=["typed","config","matrix","DenseMatrix","concat"],o1=mt(ro,s1,i=>{var{typed:t,config:e,matrix:r,DenseMatrix:n,concat:s}=i,a=Ci({typed:t}),u=Xs({typed:t,DenseMatrix:n}),c=Ai({typed:t,DenseMatrix:n}),f=ti({typed:t,matrix:r,concat:s}),d=Gs({typed:t});return t(ro,a1({typed:t,config:e}),{"boolean, boolean":(h,p)=>h>p,"BigNumber, BigNumber":function(p,g){return p.gt(g)&&!Ks(p,g,e.epsilon)},"Fraction, Fraction":(h,p)=>h.compare(p)===1,"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")}},d,f({SS:u,DS:a,Ss:c}))}),a1=mt(ro,["typed","config"],i=>{var{typed:t,config:e}=i;return t(ro,{"number, number":function(n,s){return n>s&&!Qn(n,s,e.epsilon)}})}),$f="deepEqual",u1=["typed","equal"],l1=mt($f,u1,i=>{var{typed:t,equal:e}=i;return t($f,{"any, any":function(s,a){return r(s.valueOf(),a.valueOf())}});function r(n,s){if(Array.isArray(n))if(Array.isArray(s)){var a=n.length;if(a!==s.length)return!1;for(var u=0;u<a;u++)if(!r(n[u],s[u]))return!1;return!0}else return!1;else return Array.isArray(s)?!1:e(n,s)}}),Lf="partitionSelect",c1=["typed","isNumeric","isNaN","compare"],f1=mt(Lf,c1,i=>{var{typed:t,isNumeric:e,isNaN:r,compare:n}=i,s=n,a=(f,d)=>-n(f,d);return t(Lf,{"Array | Matrix, number":function(d,h){return u(d,h,s)},"Array | Matrix, number, string":function(d,h,p){if(p==="asc")return u(d,h,s);if(p==="desc")return u(d,h,a);throw new Error('Compare string must be "asc" or "desc"')},"Array | Matrix, number, function":u});function u(f,d,h){if(!be(d)||d<0)throw new Error("k must be a non-negative integer");if(ye(f)){var p=f.size();if(p.length>1)throw new Error("Only one dimensional matrices supported");return c(f.valueOf(),d,h)}if(Array.isArray(f))return c(f,d,h)}function c(f,d,h){if(d>=f.length)throw new Error("k out of bounds");for(var p=0;p<f.length;p++)if(e(f[p])&&r(f[p]))return f[p];for(var g=0,y=f.length-1;g<y;){for(var _=g,w=y,v=f[Math.floor(Math.random()*(y-g+1))+g];_<w;)if(h(f[_],v)>=0){var x=f[w];f[w]=f[_],f[_]=x,--w}else++_;h(f[_],v)>0&&--_,d<=_?y=_:g=_+1}return f[d]}}),Rf="max",h1=["typed","config","numeric","larger"],d1=mt(Rf,h1,i=>{var{typed:t,config:e,numeric:r,larger:n}=i;return t(Rf,{"Array | Matrix":a,"Array | Matrix, number | BigNumber":function(c,f){return ja(c,f.valueOf(),s)},"...":function(c){if(Vs(c))throw new TypeError("Scalar values expected in function max");return a(c)}});function s(u,c){try{return n(u,c)?u:c}catch(f){throw In(f,"max",c)}}function a(u){var c;if(ns(u,function(f){try{isNaN(f)&&typeof f=="number"?c=NaN:(c===void 0||n(f,c))&&(c=f)}catch(d){throw In(d,"max",f)}}),c===void 0)throw new Error("Cannot calculate max of an empty array");return typeof c=="string"&&(c=r(c,e.number)),c}}),Pf="min",p1=["typed","config","numeric","smaller"],_1=mt(Pf,p1,i=>{var{typed:t,config:e,numeric:r,smaller:n}=i;return t(Pf,{"Array | Matrix":a,"Array | Matrix, number | BigNumber":function(c,f){return ja(c,f.valueOf(),s)},"...":function(c){if(Vs(c))throw new TypeError("Scalar values expected in function min");return a(c)}});function s(u,c){try{return n(u,c)?u:c}catch(f){throw In(f,"min",c)}}function a(u){var c;if(ns(u,function(f){try{isNaN(f)&&typeof f=="number"?c=NaN:(c===void 0||n(f,c))&&(c=f)}catch(d){throw In(d,"min",f)}}),c===void 0)throw new Error("Cannot calculate min of an empty array");return typeof c=="string"&&(c=r(c,e.number)),c}}),kf="add",m1=["typed","matrix","addScalar","equalScalar","DenseMatrix","SparseMatrix","concat"],g1=mt(kf,m1,i=>{var{typed:t,matrix:e,addScalar:r,equalScalar:n,DenseMatrix:s,SparseMatrix:a,concat:u}=i,c=gf({typed:t}),f=iv({typed:t,equalScalar:n}),d=vf({typed:t,DenseMatrix:s}),h=ti({typed:t,matrix:e,concat:u});return t(kf,{"any, any":r,"any, any, ...any":t.referToSelf(p=>(g,y,_)=>{for(var w=p(g,y),v=0;v<_.length;v++)w=p(w,_[v]);return w})},h({elop:r,DS:c,SS:f,Ss:d}))}),zf="dot",v1=["typed","addScalar","multiplyScalar","conj","size"],y1=mt(zf,v1,i=>{var{typed:t,addScalar:e,multiplyScalar:r,conj:n,size:s}=i;return t(zf,{"Array | DenseMatrix, Array | DenseMatrix":u,"SparseMatrix, SparseMatrix":c});function a(d,h){var p=f(d),g=f(h),y,_;if(p.length===1)y=p[0];else if(p.length===2&&p[1]===1)y=p[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+p.join(", ")+")");if(g.length===1)_=g[0];else if(g.length===2&&g[1]===1)_=g[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+g.join(", ")+")");if(y!==_)throw new RangeError("Vectors must have equal length ("+y+" != "+_+")");if(y===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return y}function u(d,h){var p=a(d,h),g=ye(d)?d._data:d,y=ye(d)?d._datatype||d.getDataType():void 0,_=ye(h)?h._data:h,w=ye(h)?h._datatype||h.getDataType():void 0,v=f(d).length===2,x=f(h).length===2,b=e,N=r;if(y&&w&&y===w&&typeof y=="string"&&y!=="mixed"){var E=y;b=t.find(e,[E,E]),N=t.find(r,[E,E])}if(!v&&!x){for(var C=N(n(g[0]),_[0]),F=1;F<p;F++)C=b(C,N(n(g[F]),_[F]));return C}if(!v&&x){for(var S=N(n(g[0]),_[0][0]),I=1;I<p;I++)S=b(S,N(n(g[I]),_[I][0]));return S}if(v&&!x){for(var A=N(n(g[0][0]),_[0]),O=1;O<p;O++)A=b(A,N(n(g[O][0]),_[O]));return A}if(v&&x){for(var L=N(n(g[0][0]),_[0][0]),z=1;z<p;z++)L=b(L,N(n(g[z][0]),_[z][0]));return L}}function c(d,h){a(d,h);for(var p=d._index,g=d._values,y=h._index,_=h._values,w=0,v=e,x=r,b=0,N=0;b<p.length&&N<y.length;){var E=p[b],C=y[N];if(E<C){b++;continue}if(E>C){N++;continue}E===C&&(w=v(w,x(g[b],_[N])),b++,N++)}return w}function f(d){return ye(d)?d.size():s(d)}}),w1="trace",D1=["typed","matrix","add"],b1=mt(w1,D1,i=>{var{typed:t,matrix:e,add:r}=i;return t("trace",{Array:function(u){return n(e(u))},SparseMatrix:s,DenseMatrix:n,any:oe});function n(a){var u=a._size,c=a._data;switch(u.length){case 1:if(u[0]===1)return oe(c[0]);throw new RangeError("Matrix must be square (size: "+he(u)+")");case 2:{var f=u[0],d=u[1];if(f===d){for(var h=0,p=0;p<f;p++)h=r(h,c[p][p]);return h}else throw new RangeError("Matrix must be square (size: "+he(u)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+he(u)+")")}}function s(a){var u=a._values,c=a._index,f=a._ptr,d=a._size,h=d[0],p=d[1];if(h===p){var g=0;if(u.length>0)for(var y=0;y<p;y++)for(var _=f[y],w=f[y+1],v=_;v<w;v++){var x=c[v];if(x===y){g=r(g,u[v]);break}if(x>y)break}return g}throw new RangeError("Matrix must be square (size: "+he(d)+")")}}),qf="det",x1=["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],E1=mt(qf,x1,i=>{var{typed:t,matrix:e,subtractScalar:r,multiply:n,divideScalar:s,isZero:a,unaryMinus:u}=i;return t(qf,{any:function(d){return oe(d)},"Array | Matrix":function(d){var h;switch(ye(d)?h=d.size():Array.isArray(d)?(d=e(d),h=d.size()):h=[],h.length){case 0:return oe(d);case 1:if(h[0]===1)return oe(d.valueOf()[0]);if(h[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+he(h)+")");case 2:{var p=h[0],g=h[1];if(p===g)return c(d.clone().valueOf(),p);if(g===0)return 1;throw new RangeError("Matrix must be square (size: "+he(h)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+he(h)+")")}}});function c(f,d,h){if(d===1)return oe(f[0][0]);if(d===2)return r(n(f[0][0],f[1][1]),n(f[1][0],f[0][1]));for(var p=!1,g=new Array(d).fill(0).map((F,S)=>S),y=0;y<d;y++){var _=g[y];if(a(f[_][y])){var w=void 0;for(w=y+1;w<d;w++)if(!a(f[g[w]][y])){_=g[w],g[w]=g[y],g[y]=_,p=!p;break}if(w===d)return f[_][y]}for(var v=f[_][y],x=y===0?1:f[g[y-1]][y-1],b=y+1;b<d;b++)for(var N=g[b],E=y+1;E<d;E++)f[N][E]=s(r(n(f[N][E],v),n(f[N][y],f[_][E])),x)}var C=f[g[d-1]][d-1];return p?u(C):C}}),Uf="inv",A1=["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],C1=mt(Uf,A1,i=>{var{typed:t,matrix:e,divideScalar:r,addScalar:n,multiply:s,unaryMinus:a,det:u,identity:c,abs:f}=i;return t(Uf,{"Array | Matrix":function(p){var g=ye(p)?p.size():Ie(p);switch(g.length){case 1:if(g[0]===1)return ye(p)?e([r(1,p.valueOf()[0])]):[r(1,p[0])];throw new RangeError("Matrix must be square (size: "+he(g)+")");case 2:{var y=g[0],_=g[1];if(y===_)return ye(p)?e(d(p.valueOf(),y,_),p.storage()):d(p,y,_);throw new RangeError("Matrix must be square (size: "+he(g)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+he(g)+")")}},any:function(p){return r(1,p)}});function d(h,p,g){var y,_,w,v,x;if(p===1){if(v=h[0][0],v===0)throw Error("Cannot calculate inverse, determinant is zero");return[[r(1,v)]]}else if(p===2){var b=u(h);if(b===0)throw Error("Cannot calculate inverse, determinant is zero");return[[r(h[1][1],b),r(a(h[0][1]),b)],[r(a(h[1][0]),b),r(h[0][0],b)]]}else{var N=h.concat();for(y=0;y<p;y++)N[y]=N[y].concat();for(var E=c(p).valueOf(),C=0;C<g;C++){var F=f(N[C][C]),S=C;for(y=C+1;y<p;)f(N[y][C])>F&&(F=f(N[y][C]),S=y),y++;if(F===0)throw Error("Cannot calculate inverse, determinant is zero");y=S,y!==C&&(x=N[C],N[C]=N[y],N[y]=x,x=E[C],E[C]=E[y],E[y]=x);var I=N[C],A=E[C];for(y=0;y<p;y++){var O=N[y],L=E[y];if(y!==C){if(O[C]!==0){for(w=r(a(O[C]),I[C]),_=C;_<g;_++)O[_]=n(O[_],s(w,I[_]));for(_=0;_<g;_++)L[_]=n(L[_],s(w,A[_]))}}else{for(w=I[C],_=C;_<g;_++)O[_]=r(O[_],w);for(_=0;_<g;_++)L[_]=r(L[_],w)}}}return E}}}),jf="pinv",M1=["typed","matrix","inv","deepEqual","equal","dotDivide","dot","ctranspose","divideScalar","multiply","add","Complex"],F1=mt(jf,M1,i=>{var{typed:t,matrix:e,inv:r,deepEqual:n,equal:s,dotDivide:a,dot:u,ctranspose:c,divideScalar:f,multiply:d,add:h,Complex:p}=i;return t(jf,{"Array | Matrix":function(b){var N=ye(b)?b.size():Ie(b);switch(N.length){case 1:return v(b)?c(b):N[0]===1?r(b):a(c(b),u(b,b));case 2:{if(v(b))return c(b);var E=N[0],C=N[1];if(E===C)try{return r(b)}catch(F){if(!(F instanceof Error&&F.message.match(/Cannot calculate inverse, determinant is zero/)))throw F}return ye(b)?e(g(b.valueOf(),E,C),b.storage()):g(b,E,C)}default:throw new RangeError("Matrix must be two dimensional (size: "+he(N)+")")}},any:function(b){return s(b,0)?oe(b):f(1,b)}});function g(x,b,N){var{C:E,F:C}=_(x,b,N),F=d(r(d(c(E),E)),c(E)),S=d(c(C),r(d(C,c(C))));return d(S,F)}function y(x,b,N){for(var E=oe(x),C=0,F=0;F<b;F++){if(N<=C)return E;for(var S=F;w(E[S][C]);)if(S++,b===S&&(S=F,C++,N===C))return E;[E[S],E[F]]=[E[F],E[S]];for(var I=E[F][C],A=0;A<N;A++)E[F][A]=a(E[F][A],I);for(var O=0;O<b;O++)if(O!==F){I=E[O][C];for(var L=0;L<N;L++)E[O][L]=h(E[O][L],d(-1,d(I,E[F][L])))}C++}return E}function _(x,b,N){var E=y(x,b,N),C=x.map((S,I)=>S.filter((A,O)=>O<b&&!w(u(E[O],E[O])))),F=E.filter((S,I)=>!w(u(E[I],E[I])));return{C,F}}function w(x){return s(h(x,p(1,1)),h(0,p(1,1)))}function v(x){return n(h(x,p(1,1)),h(d(x,0),p(1,1)))}}),N1="divide",S1=["typed","matrix","multiply","equalScalar","divideScalar","inv"],O1=mt(N1,S1,i=>{var{typed:t,matrix:e,multiply:r,equalScalar:n,divideScalar:s,inv:a}=i,u=Wa({typed:t,equalScalar:n}),c=Ya({typed:t});return t("divide",uc({"Array | Matrix, Array | Matrix":function(d,h){return r(d,a(h))},"DenseMatrix, any":function(d,h){return c(d,h,s,!1)},"SparseMatrix, any":function(d,h){return u(d,h,s,!1)},"Array, any":function(d,h){return c(e(d),h,s,!1).valueOf()},"any, Array | Matrix":function(d,h){return r(d,a(h))}},s.signatures))}),Wf="sum",B1=["typed","config","add","numeric"],T1=mt(Wf,B1,i=>{var{typed:t,config:e,add:r,numeric:n}=i;return t(Wf,{"Array | Matrix":s,"Array | Matrix, number | BigNumber":a,"...":function(c){if(Vs(c))throw new TypeError("Scalar values expected in function sum");return s(c)}});function s(u){var c;return ns(u,function(f){try{c=c===void 0?f:r(c,f)}catch(d){throw In(d,"sum",f)}}),c===void 0&&(c=n(0,e.number)),typeof c=="string"&&(c=n(c,e.number)),c}function a(u,c){try{var f=ja(u,c,r);return f}catch(d){throw In(d,"sum")}}}),Yf="median",I1=["typed","add","divide","compare","partitionSelect"],$1=mt(Yf,I1,i=>{var{typed:t,add:e,divide:r,compare:n,partitionSelect:s}=i;function a(f){try{f=Ia(f.valueOf());var d=f.length;if(d===0)throw new Error("Cannot calculate median of an empty array");if(d%2===0){for(var h=d/2-1,p=s(f,h+1),g=f[h],y=0;y<h;++y)n(f[y],g)>0&&(g=f[y]);return c(g,p)}else{var _=s(f,(d-1)/2);return u(_)}}catch(w){throw In(w,"median")}}var u=t({"number | BigNumber | Complex | Unit":function(d){return d}}),c=t({"number | BigNumber | Complex | Unit, number | BigNumber | Complex | Unit":function(d,h){return r(e(d,h),2)}});return t(Yf,{"Array | Matrix":a,"Array | Matrix, number | BigNumber":function(d,h){throw new Error("median(A, dim) is not yet supported")},"...":function(d){if(Vs(d))throw new TypeError("Scalar values expected in function median");return a(d)}})}),no=Lm({config:yr}),Va=zm({}),Ha=Wm({}),Za=Hm({}),nn=Gm({Matrix:Za}),Ft=k_({BigNumber:no,Complex:Va,DenseMatrix:nn,Fraction:Ha}),L1=Fg({typed:Ft}),io=Sg({typed:Ft}),R1=yg({BigNumber:no,typed:Ft}),Vf=gv({typed:Ft}),$n=ug({config:yr,typed:Ft}),so=Qm({typed:Ft}),P1=ng({typed:Ft}),oo=lv({typed:Ft}),Hf=mg({typed:Ft}),Ka=fg({Matrix:Za,equalScalar:$n,typed:Ft}),Zf=Bg({typed:Ft}),Kf=sg({typed:Ft}),Ga=Cg({typed:Ft}),Gf=bg({Fraction:Ha,typed:Ft}),Jf=eg({typed:Ft}),$e=Eg({DenseMatrix:nn,Matrix:Za,SparseMatrix:Ka,typed:Ft}),Xf=Pv({isNaN:Kf,isNumeric:Jf,typed:Ft}),is=jv({bignumber:R1,fraction:Gf,number:Hf}),k1=zv({config:yr,multiplyScalar:oo,numeric:is,typed:Ft}),z1=Sv({isInteger:so,matrix:$e,typed:Ft}),Qf=Bv({matrix:$e,config:yr,typed:Ft}),th=Iv({matrix:$e,typed:Ft}),ei=yv({isInteger:so,matrix:$e,typed:Ft}),q1=Dv({prod:k1,size:Qf,typed:Ft}),U1=Lv({conj:Vf,transpose:th,typed:Ft}),ss=Yv({numeric:is,typed:Ft}),j1=Kv({DenseMatrix:nn,concat:ei,divideScalar:ss,equalScalar:$n,matrix:$e,typed:Ft}),eh=t1({DenseMatrix:nn,concat:ei,equalScalar:$n,matrix:$e,typed:Ft}),rh=xv({BigNumber:no,DenseMatrix:nn,SparseMatrix:Ka,config:yr,matrix:$e,typed:Ft}),W1=Av({matrix:$e,multiplyScalar:oo,typed:Ft}),Y1=n1({DenseMatrix:nn,concat:ei,config:yr,matrix:$e,typed:Ft}),V1=dv({DenseMatrix:nn,concat:ei,equalScalar:$n,matrix:$e,subtractScalar:Zf,typed:Ft,unaryMinus:Ga}),os=g1({DenseMatrix:nn,SparseMatrix:Ka,addScalar:io,concat:ei,equalScalar:$n,matrix:$e,typed:Ft}),nh=Jv({BigNumber:no,DenseMatrix:nn,Fraction:Ha,concat:ei,config:yr,equalScalar:$n,matrix:$e,typed:Ft}),H1=l1({equal:eh,typed:Ft}),ih=y1({addScalar:io,conj:Vf,multiplyScalar:oo,size:Qf,typed:Ft}),Z1=o1({DenseMatrix:nn,concat:ei,config:yr,matrix:$e,typed:Ft}),Ja=_1({config:yr,numeric:is,smaller:Y1,typed:Ft}),Mi=fv({addScalar:io,dot:ih,equalScalar:$n,matrix:$e,multiplyScalar:oo,typed:Ft}),K1=f1({compare:nh,isNaN:Kf,isNumeric:Jf,typed:Ft}),G1=T1({add:os,config:yr,numeric:is,typed:Ft}),J1=b1({add:os,matrix:$e,typed:Ft}),sh=E1({divideScalar:ss,isZero:P1,matrix:$e,multiply:Mi,subtractScalar:Zf,typed:Ft,unaryMinus:Ga}),X1=d1({config:yr,larger:Z1,numeric:is,typed:Ft}),ao=C1({abs:L1,addScalar:io,det:sh,divideScalar:ss,identity:rh,matrix:$e,multiply:Mi,typed:Ft,unaryMinus:Ga}),Q1=F1({Complex:Va,add:os,ctranspose:U1,deepEqual:H1,divideScalar:ss,dot:ih,dotDivide:j1,equal:eh,inv:ao,matrix:$e,multiply:Mi,typed:Ft}),ty=Hv({Complex:Va,config:yr,fraction:Gf,identity:rh,inv:ao,matrix:$e,multiply:Mi,number:Hf,typed:Ft}),ey=O1({divideScalar:ss,equalScalar:$n,inv:ao,matrix:$e,multiply:Mi,typed:Ft}),oh=$1({add:os,compare:nh,divide:ey,partitionSelect:K1,typed:Ft});class ry{constructor(t,e,r){$(this,"_cacheData");$(this,"_variables");$(this,"_math");$(this,"_timeframe");this._cacheData={},this._variables=t,this._math=e,this._timeframe=r}alma({series:t,length:e,offset:r,sigma:n,floor:s},a){if(e===void 0||r===void 0||n===void 0)return;const u=this._cacheDataList(t,e,`alma_${a}`);if(u===void 0)return;let c=r*(e-1);s&&(c=Math.floor(c));const f=e/n;let d=0,h=0;for(let p=0;p<=e-1;p++){const g=Math.exp(-1*Math.pow(p-c,2)/(2*Math.pow(f,2)));d+=g,h+=u[u.length-1-(e-p-1)]*g}return h/d}sma({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return;let n=0;const s=this._cacheDataList(t,e,`sma_${r}`);if(s===void 0)return;const a=s.slice(-e);return n=G1(...a)/e,n}rma({source:t,length:e},r){if(t===void 0||e===void 0||isNaN(t))return;const{sum:n}=this._cacheData[`rma_${r}`]||{},s=1/e,a=this.sma({source:t,length:e},r),u=n===void 0?a:s*t+(1-s)*(n||0);return this._cacheDataHandle(`rma_${r}`,{sum:u}),u}atr({length:t},e){const{high:r,close:n}=this._cacheData[`atr_${e}`]||{},{high:s,close:a,low:u}=this._variables,c=r===void 0?s-u:Math.max(Math.max(s-u,Math.abs(s-n)),Math.abs(u-n));return this._cacheDataHandle(`atr_${e}`,{high:s,close:a}),this.rma({source:c,length:t},e)}barssince({condition:t},e){let{count:r}=this._cacheData[`barssince_${e}`]||{};if(t)r=0;else{if(r===void 0)return;r+=1}return this._cacheDataHandle(`barssince_${e}`,{count:r}),r}stdev({source:t,length:e,biased:r=!0},n){if(t===void 0||isNaN(t)||e===void 0)return;const s=this._cacheDataList(t,e,`stdev_${n}`),a=this.sma({source:t,length:e},n);if(s===void 0)return;let u=0;for(let c=0;c<e;c++){const f=this._sum(s[s.length-1-c],-(a||0));u+=f*f}return r||e<=1?Math.sqrt(u/e):Math.sqrt(u/(e-1))}_sum(t,e){let n=t+e;return Math.abs(n)<=1e-10&&(n=0),n}bb({series:t,length:e,mult:r},n){if(t===void 0||isNaN(t)||e===void 0||r===void 0)return[];const s=this.sma({source:t,length:e},n),a=this.stdev({source:t,length:e},n);if(s===void 0||a===void 0)return[];const u=r*a;return[s,s+u,s-u]}bbw({series:t,length:e,mult:r},n){if(t===void 0||isNaN(t)||e===void 0||r===void 0)return;const s=this.sma({source:t,length:e},n),a=this.stdev({source:t,length:e},n);if(s===void 0||a===void 0)return;const u=r*a;return(s+u-(s-u))/s}cci({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return;const n=this.sma({source:t,length:e},r),s=this.dev({source:t,length:e},r);if(!(n===void 0||s===void 0))return(t-n)/(.015*s)}change({source:t,length:e=1},r){const n=this._cacheDataList(t,e,`change_${r}`);if(n===void 0)return;const s=n[n.length-1-e];if(!(t===void 0||isNaN(t)))return s===void 0?s:typeof t=="boolean"?s!==t:t-s}cmo({series:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return;const n=this.change({source:t},r);if(n===void 0)return;const s=this._math.sum({source:n>=0?n:0,length:e},`sm1_${r}`),a=this._math.sum({source:n>=0?0:-n,length:e},`sm2_${r}`);if(!(s===void 0||a===void 0))return 100*(s-a)/(s+a)}cog({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return;const n=this._cacheDataList(t,e,`cog_${r}`),s=this._math.sum({source:t,length:e},r);if(s===void 0||n===void 0)return;let a=0;for(let u=0;u<e;u++){const c=n[n.length-1-u];a+=c*(u+1)}return-a/s}correlation({source1:t,source2:e,length:r},n){if(t===void 0||isNaN(t)||e===void 0||isNaN(e)||r===void 0)return;const s=this._cacheDataList([t,e],r,`correlation_${n}`),a=this.sma({source:t,length:r},`sma1_${n}`),u=this.sma({source:e,length:r},`sma2_${n}`);if(a===void 0||u===void 0||s===void 0)return;let c=0,f=0,d=0;for(let p=0;p<r;p++){const[g,y]=s[s.length-1-p],_=g-a,w=y-u;c+=_*w,f+=_*_,d+=w*w}return isNaN(f)||isNaN(c)||isNaN(d)?void 0:c/Math.sqrt(f*d)}cross({source1:t,source2:e},r){if(t===void 0||e===void 0)return!1;const{source1:n,source2:s}=this._cacheData[`cross_${r}`]||{};return this._cacheDataHandle(`cross_${r}`,{source1:t,source2:e}),n===void 0||s===void 0?!1:n>=s&&t<e||n<=s&&t>e}crossover({source1:t,source2:e},r){if(t===void 0||e===void 0)return!1;const{source1:n,source2:s}=this._cacheData[`crossover_${r}`]||{};return this._cacheDataHandle(`crossover_${r}`,{source1:t,source2:e}),n===void 0||s===void 0?!1:n<=s&&t>e}crossunder({source1:t,source2:e},r){if(t===void 0||e===void 0)return!1;const{source1:n,source2:s}=this._cacheData[`crossunder_${r}`]||{};return this._cacheDataHandle(`crossunder_${r}`,{source1:t,source2:e}),n===void 0||s===void 0?!1:n>=s&&t<e}cum({source:t=0},e){t=isNaN(t)?0:t;let{sum:r}=this._cacheData[`cum_${e}`]||{};return r=r||0,r+=t,this._cacheDataHandle(`cum_${e}`,{sum:r}),r}dev({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return;const n=this.sma({source:t,length:e},r);let s=0;const a=this._cacheDataList(t,e,`dev_${r}`);if(!(!a||n===void 0)){for(let u=0;u<e;u++){const c=a[a.length-1-u];s+=Math.abs(c-n)}return s/e}}dmi({diLength:t,adxSmoothing:e},r){if(t===void 0||e===void 0)return[void 0,void 0,void 0];const n=`dmi_${r}`,{low:s,high:a,close:u,PDMS:c,NDMS:f,TRS:d,ADX:h,count:p=0}=this._cacheData[n]||{},{low:g,high:y,close:_}=this._variables;if(s===void 0||a===void 0||u===void 0)return this._cacheData[n]={low:g,high:y,close:_,PDMS:c,NDMS:f,TRS:y-g,count:1},[void 0,void 0,void 0];let w=y-a,v=s-g;w=w>v&&w>0?w:0,v=v>w&&v>0?v:0,w===v&&(w=v=0);const x=Math.max(y-g,Math.abs(y-u),Math.abs(g-u));if(p<t)return this._cacheDataHandle(n,{low:g,high:y,close:_,PDMS:(c||0)+w,NDMS:(f||0)+v,TRS:(d||0)+x,count:p+1}),[void 0,void 0,void 0];{const b=c-c/t+w,N=f-f/t+v,E=d-d/t+x,C=b/E*100,F=N/E*100,S=Math.abs((C-F)/(C+F))*100;let I=S,A=[C,F,void 0];if(p+1-t<e){const O=p+1-t;I=((h||0)*(O-1)+S)/O}else I=(h*(e-1)+S)/e,A=[C,F,I];return this._cacheDataHandle(n,{low:g,high:y,close:_,PDMS:b,NDMS:N,TRS:E,ADX:I,count:p+1}),A}}ema({source:t,length:e},r){if(t===void 0||e===void 0||isNaN(t))return;let{sum:n,count:s=1}=this._cacheData[`ema_${r}`]||{};const a=this.sma({source:t,length:e},r);if(s>e){const u=2/(e+1);n=n===void 0?t:u*t+(1-u)*(n||0)}else n=a;return s+=1,this._cacheDataHandle(`ema_${r}`,{sum:n,count:s}),n}falling({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return!1;const{source:n,fallings:s=[]}=this._cacheData[`falling_${r}`]||{};s.push(n>t);const a=s.slice(-e);return this._cacheDataHandle(`falling_${r}`,{source:t,fallings:a}),a.length<e?!1:a.every(u=>u)}rising({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return!1;const{source:n,risings:s=[]}=this._cacheData[`rising_${r}`]||{};s.push(n<t);const a=s.slice(-e);return this._cacheDataHandle(`rising_${r}`,{source:t,risings:a}),a.length<e?!1:a.every(u=>u)}highest({source:t,length:e},r){if(e===void 0||e<=0)return;const{high:n}=this._variables,s=this._cacheDataList(typeof t!="number"?n:t,e,`highest_${r}`);if(s)return Math.max(...s.slice(-e))}highestbars({source:t,length:e},r){if(e===void 0||e<=0)return;const{high:n}=this._variables,s=this._cacheDataList(typeof t!="number"?n:t,e,`highestbars_${r}`);return s?s.slice(-e).reduce((u,c,f,d)=>c>=d[u]?f:u,0)-e+1:void 0}wma({source:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<=0)return;const n=this._cacheDataList(t,e,`wma_${r}`);if(!n)return;let s=0,a=0;for(let u=0;u<e;u++){const c=(e-u)*e;s+=c,a+=n[n.length-1-u]*c}return a/s}hma({source:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<=0)return;const n=this.wma({source:t,length:e},r),s=this.wma({source:t,length:Math.round(e/2)},r);return n===void 0||s===void 0?void 0:this.wma({source:2*s-n,length:Math.floor(Math.sqrt(e))},`hma_${r}`)}kc({series:t,length:e,mult:r,useTrueRange:n=!0},s){if(t===void 0||isNaN(t)||e===void 0||r===void 0)return[void 0,void 0,void 0];const a=this.ema({source:t,length:e},s),{ta:u,high:c,low:f}=this._variables,d=n?u.tr:c-f,h=this.ema({source:d,length:e},`range_${s}`);return[a,a+h*r,a-h*r]}kcw({series:t,length:e,mult:r,useTrueRange:n=!0},s){if(t===void 0||isNaN(t)||e===void 0||r===void 0)return;const a=this.ema({source:t,length:e},s),{ta:u,high:c,low:f}=this._variables,d=n?u.tr:c-f,h=this.ema({source:d,length:e},`range_${s}`);return(a+h*r-(a-h*r))/a}linreg({source:t,length:e,offset:r},n){if(e===void 0||r===void 0)return;const s=this._cacheDataList(t,e,`dev_${n}`);if(!s)return;const a=s.slice(-e).filter(g=>g!==void 0);let u=0,c=0,f=0,d=0;for(const[g,y]of a.entries())u+=g,c+=y,f+=g*y,d+=g*g;const h=(e*f-u*c)/(e*d-u*u);return(c-h*u)/e+h*(e-1-r)}lowest({source:t,length:e},r){if(e===void 0||e<=0)return;const{low:n}=this._variables,s=this._cacheDataList(typeof t!="number"?n:t,e,`lowest_${r}`);if(s)return Math.min(...s.slice(-e))}lowestbars({source:t,length:e},r){if(e===void 0||e<=0)return;const{low:n}=this._variables,s=this._cacheDataList(typeof t!="number"?n:t,e,`lowestbars_${r}`);return s?s.slice(-e).reduce((u,c,f,d)=>c<=d[u]?f:u,0)-e+1:void 0}macd({source:t,fastlen:e,slowlen:r,siglen:n},s){if(t===void 0||isNaN(t)||e===void 0||r===void 0||n===void 0)return[void 0,void 0,void 0];const a=this.ema({source:t,length:e},`ema1_${s}`),u=this.ema({source:t,length:r},`ema2_${s}`);if(a===void 0||u===void 0)return[void 0,void 0,void 0];const c=a-u,f=this.ema({source:c,length:n},`macd_${s}`);if(f===void 0)return[c,f,void 0];const d=c-f;return[c,f,d]}max({source:t},e){if(t===void 0||isNaN(t))return;let r=this._cacheData[`max_${e}`]||0;return t>r&&(r=t),this._cacheData[`max_${e}`]=r,r}min({source:t},e){if(t===void 0||isNaN(t))return;let r=this._cacheData[`min_${e}`]||1/0;return t<r&&(r=t),this._cacheData[`min_${e}`]=r,r}median({source:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<=0)return;const n=this._cacheDataList(t,e,`dev_${r}`);if(n)return oh(n.slice(-e))}mfi({series:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<=0)return;const{volume:n}=this._variables,s=this.change({source:t},r),a=this._math.sum({source:n*(s>=0?0:t),length:e},`lower_${r}`),u=this._math.sum({source:n*(s<=0?0:t),length:e},`upper_${r}`);if(!(u===void 0||a===void 0))return 100-100/(1+u/a)}mode({source:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<=0)return;const n=this._cacheDataList(t,e,`mode_${r}`);if(n)return Ja(Xf(n.slice(-e)))}mom({source:t,length:e},r){if(e===void 0||e<0)return;const n=`mom_${r}`,s=this._cacheData[n]||[];if(s[this._variables.bar_index]=t,this._cacheData[n]=s,s.length<=e||t===void 0||isNaN(t))return;let a=s.length-e-1,u;for(;u===void 0&&a>=0;)u=s[a],a--;return u===void 0?u:t-u}percentile_linear_interpolation({source:t,length:e,percentage:r},n){if(e===void 0||r===void 0||e<0||r<0||r>100)return;const s=this._cacheDataList(t,e+1,`percentile_linear_interpolation_${n}`);if(!s)return;const a=this._sort(s.slice(-(e+1))),u=a.length;r/=100;const c=1/(u*2);if(r<=c)return a[0];if(r>=1-1/(u*2))return a[u-1];for(const[f,d]of a.entries()){const h=a[f-1];if(r<(f+.5)/u)return h===void 0||d===void 0?void 0:h+(d-h)*(r-(f-.5)/u)/(1/u)}}percentile_nearest_rank({source:t,length:e,percentage:r},n){if(e===void 0||r===void 0||t===void 0||isNaN(t)||e<0||r<0||r>100)return;const s=this._cacheDataList(t,e,`percentile_nearest_rank_${n}`);if(!s)return;const a=this._sort(s.slice(-e)),u=r/100*a.length,c=Math.ceil(u)-1;return a[c>=a.length?a.length-1:c]}percentrank({source:t,length:e},r){if(e===void 0||e<0)return;const n=this._cacheDataList(t,e+1,`percentile_nearest_rank_${r}`);if(!n)return;const s=n.slice(-(e+1)),a=t;if(a===void 0)return;let u=0;for(let c=0;c<s.length;c++)s[c]!==void 0&&(s[c]<a||s[c]===a&&c<e)&&u++;return u/(s.length-1)*100}pivot_point_levels({type:t,anchor:e,developing:r},n){const s=new te;let{close:a,open:u,low:c,high:f}=this._variables;const d=`pivot_point_levels_${n}`,{close:h,low:p,high:g,open:y,result:_}=this._cacheData[d]||{};if(!e&&(g&&p&&(f=Math.max(g,f),c=Math.min(p,c)),this._cacheDataHandle(d,{close:a,open:u,low:c,high:f,result:_}),!r))return s._value=_||[],s;const w={close:a,open:u,low:c,high:f};e===!0&&!r&&(a=h,u=y,c=p,f=g);const v=this._getPivotPointLevels(f,c,a,u,r,t);return this._cacheDataHandle(d,{...w,result:v}),s._value=v,s}_getPivotPointLevels(t,e,r,n,s,a){if(r===void 0||n===void 0||e===void 0||t===void 0)return[];switch(a){case Xn.traditional:return this._traditional(t,e,r);case Xn.fibonacci:return this._fibonacci(t,e,r);case Xn.woodie:return s?[]:this._woodie(t,e);case Xn.classic:return this._classic(t,e,r);case Xn.dm:return this._DM(t,e,r,n);case Xn.camarilla:return this._camarilla(t,e,r);default:return[]}}_traditional(t,e,r){const n=(t+e+r)/3,s=n*2-e,a=n+(t-e),u=n*2+(t-2*e),c=n*3+(t-3*e),f=n*4+(t-4*e),d=n*2-t,h=n-(t-e),p=n*2-(2*t-e),g=n*3-(3*t-e),y=n*4-(4*t-e);return[n,s,d,a,h,u,p,c,g,f,y]}_fibonacci(t,e,r){const n=(t+e+r)/3,s=n+.382*(t-e),a=n-.382*(t-e),u=n+.618*(t-e),c=n-.618*(t-e),f=n+(t-e),d=n-(t-e);return[n,s,a,u,c,f,d]}_woodie(t,e){const{open:r}=this._variables,n=(t+e+2*r)/4,s=2*n-e,a=2*n-t,u=n+(t-e),c=n-(t-e),f=t+2*(n-e),d=e-2*(t-n),h=f+(t-e),p=d-(t-e);return[n,s,a,u,c,f,d,h,p]}_classic(t,e,r){const n=(t+e+r)/3,s=2*n-e,a=2*n-t,u=n+(t-e),c=n-(t-e),f=n+2*(t-e),d=n-2*(t-e),h=n+3*(t-e),p=n-3*(t-e);return[n,s,a,u,c,f,d,h,p]}_DM(t,e,r,n){let s;n===r?s=t+e+2*r:r>n?s=2*t+e+r:s=2*e+t+r;const a=s/4,u=s/2-e,c=s/2-t;return[a,u,c]}_camarilla(t,e,r){const n=(t+e+r)/3,s=r+1.1*(t-e)/12,a=r-1.1*(t-e)/12,u=r+1.1*(t-e)/6,c=r-1.1*(t-e)/6,f=r+1.1*(t-e)/4,d=r-1.1*(t-e)/4,h=r+1.1*(t-e)/2,p=r-1.1*(t-e)/2,g=t/e*r,y=r-(g-r);return[n,s,a,u,c,f,d,h,p,g,y]}pivothigh({source:t=this._variables.high,leftbars:e,rightbars:r},n){if(e===void 0||r===void 0||e<0||r<0)return;const s=this._cacheDataList(t,e+r+1,`pivothigh_${n}`);if(!s)return;const a=s.slice(-(e+r+1)),u=a[e];return Math.max(...a)===u?u:void 0}pivotlow({source:t=this._variables.low,leftbars:e,rightbars:r},n){if(e===void 0||r===void 0||e<0||r<0)return;const s=this._cacheDataList(t,e+r+1,`pivotlow_${n}`);if(!s)return;const a=s.slice(-(e+r+1)),u=a[e];return Math.min(...a)===u?u:void 0}range({source:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<0)return;const n=this._cacheDataList(t,e,`range_${r}`,!0);if(!n)return;const s=n.filter(c=>c!==void 0).slice(-e),a=Math.max(...s),u=Math.min(...s);return a-u}roc({source:t,length:e},r){if(e===void 0||e<0)return;const n=this._cacheDataList(t,e+1,`roc_${r}`),s=this.change({source:t,length:e},r);if(n)return 100*s/n[n.length-1-e]}rsi({source:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<0)return;const{source:n}=this._cacheData[`rsi_${r}`]||{},s=Math.max(t-n,0),a=Math.max(n-t,0),u=this.rma({source:s,length:e},`rma1_${r}`),c=this.rma({source:a,length:e},`rma2_${r}`);if(this._cacheDataHandle(`rsi_${r}`,{source:t}),!(u===void 0||c===void 0))return 100-100/(1+u/c)}sar({start:t,inc:e,max:r},n){if(t===void 0||e===void 0||r===void 0)return;const{close:s,low:a,high:u,preLow:c,preHigh:f,data:d={}}=this._cacheData[`sar_${n}`]||{};let{result:h,maxMin:p,acceleration:g,isBelow:y}=d,_=!1;const{close:w,low:v,high:x,bar_index:b}=this._variables;return b===1&&(w>s?(y=!0,p=x,h=a):(y=!1,p=v,h=u),_=!0,g=t),h=h+g*(p-h),y?h>v&&(_=!0,y=!1,h=Math.max(x,p||0),p=v,g=t):h<x&&(_=!0,y=!0,h=Math.min(v,p||0),p=x,g=t),_||(y?x>(p||0)&&(p=x,g=Math.min((g||0)+e,r)):v<(p||0)&&(p=v,g=Math.min((g||0)+e,r))),y?(h=Math.min(h,a),b>1&&(h=Math.min(h,c))):(h=Math.max(h,u),b>1&&(h=Math.max(h,f))),this._cacheDataHandle(`sar_${n}`,{high:x,close:w,low:v,preLow:a,preHigh:u,data:Object.assign(d,{result:h,maxMin:p,acceleration:g,isBelow:y})}),h}stoch({source:t,high:e,low:r,length:n},s){if(n===void 0||e===void 0||r===void 0||t===void 0||isNaN(t)||n<0)return;const a=this.lowest({source:r,length:n},s),u=this.highest({source:e,length:n},s);if(!(a===void 0||u===void 0))return 100*(t-a)/(u-a)}supertrend({factor:t,atrPeriod:e},r){if(t===void 0||e===void 0)return[void 0,void 0];const{hl2:n,close:s}=this._variables,a=`supertrend_${r}`,{upperBand:u,lowerBand:c,superTrend:f,atr:d,close:h}=this._cacheData[a]||{},p=this.atr({length:e},r);if(p===void 0)return this._cacheDataHandle(a,{close:s}),[void 0,void 0];let g=n+t*p,y=n-t*p;const _=u||0,w=c||0;y=y>w||h<w?y:w,g=g<_||h>_?g:_;let v;d===void 0?v=1:f===_?v=s>g?-1:1:v=s<y?1:-1;const x=v===-1?y:g;return this._cacheDataHandle(a,{upperBand:g,lowerBand:y,superTrend:x,atr:p,close:s}),[x,v]}swma({source:t},e){let{list:r}=this._cacheData[`swma_${e}`]||{};if(r||(r=[]),r.push(t),r=r.slice(-4),this._cacheDataHandle(`swma_${e}`,{list:r}),!(r.filter(n=>n!==void 0).length<4))return r[3]*1/6+r[2]*2/6+r[1]*2/6+r[0]*1/6}tr({handle_na:t=!1},e){const{close:r,low:n,high:s}=this._variables,{close:a}=this._cacheData[`tr_${e}`]||{};return this._cacheDataHandle(`tr_${e}`,{close:r}),a===void 0?t?s-n:void 0:Math.max(s-n,Math.abs(s-a),Math.abs(n-a))}tsi({source:t,short_length:e,long_length:r},n){if(t===void 0||isNaN(t)||e===void 0||r===void 0)return;const s=this.change({source:t},n);if(s===void 0)return;const a=this.ema({source:Math.abs(s),length:e},`absema1_${n}`),u=this.ema({source:s,length:e},`ema1_${n}`);if(u===void 0)return;const c=this.ema({source:u,length:r},`ema2_${n}`),f=this.ema({source:a,length:e},`absema2_${n}`);if(c!==void 0)return c/f}valuewhen({condition:t,source:e,occurrence:r},n){if(e===void 0||r===void 0||r<0)return;let{list:s}=this._cacheData[`valuewhen_${n}`]||{};return s||(s=[]),t&&s.push(e),this._cacheDataHandle(`valuewhen_${n}`,{list:s}),s[s.length-1-r]}variance({source:t,length:e,biased:r=!0},n){if(t===void 0||isNaN(t)||e===void 0||e<0)return;const s=this.sma({source:t,length:e},n),a=this._cacheDataList(t,e,`variance_${n}`,!0);if(!a||s===void 0)return;const u=a.filter(f=>f!==void 0&&!isNaN(f)).slice(-e);if(u.length<e)return;const c=u.reduce((f,d)=>f+Math.pow(d-s,2),0);if(c!==void 0)return r||e<=1?c/e:c/(e-1)}vwap({source:t,anchor:e,stdev_mult:r},n){if(t===void 0)return;e=e===void 0?this._timeframe.change({timeframe:"1D"},n):e;const{volume:s}=this._variables;let{sum:a=0,sumV:u=0,count:c=0,isReset:f,sumS:d=0}=this._cacheData[`vwap_${n}`]||{};if(e&&(a=u=c=d=0,f=!0),!f)return r!==void 0?[]:void 0;const h=t*s+a,p=s+u,g=h/p;return c++,r!==void 0?(d=s*Math.pow(t,2)+d,this._cacheDataHandle(`vwap_${n}`,{sum:h,sumV:p,count:c,isReset:f,sumS:d}),this._computeBands(d,p,r,g)):(this._cacheDataHandle(`vwap_${n}`,{sum:h,sumV:p,count:c,isReset:f}),g)}_computeBands(t,e,r,n){let s=t/e-Math.pow(n,2);s=s<0?0:s;const a=Math.sqrt(s),u=a!==void 0&&!isNaN(a)?n+r*a:void 0,c=a!==void 0&&!isNaN(a)?n-r*a:void 0;return[n,u,c]}vwma({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0||e<=0)return;const{volume:n}=this._variables,s=this.sma({source:t*n,length:e},`sma1_${r}`),a=this.sma({source:n,length:e},`sma2_${r}`);if(!(s===void 0||a===void 0))return s/a}wpr({length:t},e){if(t===void 0||t<=0)return;const r=this.highest({length:t},e),n=this.lowest({length:t},e),{close:s}=this._variables;if(!(r===void 0||n===void 0))return(r-s)/(r-n)*-100}_sort(t){const e=t.length;for(let r=0;r<e;r++){let n={};for(let s=0;s<e-r;s++){const{currentVal:a,currentIndex:u}=n,c=t[s];if(c!==void 0){if(a!==void 0&&c<a){t.splice(s,1),t.splice(u,0,c),n={currentIndex:u+1,currentVal:a};continue}n={currentIndex:s,currentVal:c}}}}return t}_cacheDataList(t,e,r,n=!1){const s=this._cacheData[r]||{barIndex:-1,list:[]},{bar_index:a}=this._variables;if(s.barIndex<=a){const u=s.list.length;if(s.barIndex===a)s.list[u-1]=t;else{let c=a-s.barIndex-1;if(s.barIndex!==-1&&c>0){const f=s.list[u-1];for(;c>0;)s.list.push(f),c--}s.list.push(t)}s.barIndex=a,s.list.length>e+5&&!n&&s.list.shift(),this._cacheData[r]=s}if(!(s.list.length<e))return s.list}_cacheDataHandle(t,e){const{barIndex:r}=this._cacheData[t]||{};r!==this._variables.bar_index&&!this._variables._isRealTimeBar&&(this._cacheData[t]=Object.assign(e,{barIndex:this._variables.bar_index}))}}class ny{constructor(t,e,r){$(this,"_cacheData");$(this,"_variables");$(this,"_errorListener");$(this,"_historyInputs");$(this,"_name");this._cacheData={},this._variables=t,this._errorListener=e,this._name=`inputs_${r}`,this._historyInputs=self.workerStorage.get(this._name)||{}}update(t){if(!(t!=null&&t.length)){self.workerStorage.delete(this._name),this._cacheData={};return}for(const e of t){const r=e.id,n=this._historyInputs[r];(!(e!=null&&e.sourceTypeName)&&(n==null?void 0:n.defval)!==e.defval||n!=null&&n.sourceTypeName&&e.sourceTypeName!==(n==null?void 0:n.sourceTypeName))&&(this._cacheData[r]=Object.assign(this._cacheData[r]||{},{...e,isModify:!0}))}}input(t,e){return this._cacheHandle(t,e)}int(t,e){return this._verifyMaxOrMin(t,e),this._cacheHandle(t,e,sr.INT)}bool(t,e){return this._cacheHandle(t,e,sr.BOOL)}color(t,e){return this._cacheHandle(t,e,sr.COLOR)}time(t,e){return this._cacheHandle(t,e,sr.TIME)}float(t,e){return this._verifyMaxOrMin(t,e),this._cacheHandle(t,e,sr.FLOAT)}price(t,e){return this._cacheHandle(t,e,sr.PRICE)}source(t,e){return this._cacheHandle(t,e,sr.SOURCE)}string(t,e){return this._cacheHandle(t,e,sr.STRING)}symbol(t,e){return this._cacheHandle(t,e,sr.SYMBOL)}session(t,e){return this._cacheHandle(t,e,sr.SESSION)}text_area(t,e){return this._cacheHandle(t,e,sr.TEXT_AREA)}timeframe(t,e){return this._cacheHandle(t,e,sr.TIMEFRAME)}enum(t,e){return this._cacheHandle(t,e,sr.ENUM)}_cacheHandle(t,e,r){if(e.startsWith("export"))return t.defval;const n=`${r||"input"}_${e}`,s=this._cacheData[n];if(t.defval===void 0&&this._errorListener.addError(re.inputDefvalErr,e,Lt.Error),self.workerStorage.setValue(this._name,n,{...t}),s)if(!s.isModify)Object.assign(this._cacheData[n],t);else{const a=this._historyInputs[n];!(t.sourceTypeName||a!=null&&a.sourceTypeName)&&t.defval===(a==null?void 0:a.defval)||t.sourceTypeName&&(a==null?void 0:a.sourceTypeName)===t.sourceTypeName?s.sourceTypeName&&(this._cacheData[n].defval=this._variables[s.sourceTypeName]):Object.assign(this._cacheData[n],t)}else{const{defval:a,display:u}=t;this._displayVerify(e,u),t={inputType:r,...t},this._cacheData[n]=t,(r||t.inputType)===sr.SOURCE?this._cacheData[n].options=Np:t.options&&!t.options.includes(a)&&this._errorListener.addError(He(re.inputOptErr,{defval:String(a),args:t.options.toString()}),e,Lt.Error,6+((r==null?void 0:r.length)||-1))}return this._cacheData[n].defval}_displayVerify(t,e){!e||!e.length||e.includes(Ze.dataWindow)||e.includes(Ze.statusLine)||this._errorListener.addError(He(re.displayErr,{func:"input",values:"[display.none, display.data_window, display.status_line, display.all]"}),t,Lt.Error)}_verifyMaxOrMin(t,e){const{defval:r,maxval:n,minval:s}=t;typeof r=="number"&&(n!==void 0&&r>n||s!==void 0&&r<s)&&this._errorListener.addError(re.minOrMaxErr,e,Lt.Error)}getInputs(){const t=Object.keys(this._cacheData),e=[];for(const r of t){const n=this._cacheData[r];n.id=r,e.push(n)}return e.sort((r,n)=>(r.index||0)-(n.index||0))}}class iy{color({x:t}){return t}new({color:t,transp:e=100}){_t(e)&&(e=100);const r=(100-e)/100,{r:n,g:s,b:a}=this._parseColor(t||"");return`rgba(${Math.round(n)}, ${Math.round(s)}, ${Math.round(a)}, ${r})`}rgb({red:t=0,green:e=0,blue:r=0,transp:n=0}){return _t(n)&&(n=0),_t(t)&&(t=0),_t(e)&&(e=0),_t(r)&&(r=0),`rgba(${t}, ${e}, ${r}, ${(100-n)/100})`}g({color:t}){return t?this._parseColor(t).g:0}r({color:t}){return t?this._parseColor(t).r:0}b({color:t}){return t?this._parseColor(t).b:0}t({color:t}){return t?Math.round(this._parseColor(t).a*100):0}from_gradient({value:t,bottom_value:e,top_value:r,bottom_color:n,top_color:s}){if(_t(t)||_t(e)||_t(r)||r===e)return"rgba(0,0,0,1)";const a=(t-e)/(r-e),u=Math.min(Math.max(a,0),1),{r:c,g:f,b:d,a:h}=this._parseColor(n||"rgba(0,0,0,0)"),{r:p,g,b:y,a:_}=this._parseColor(s||"rgba(0,0,0,0)"),w=c+u*(p-c),v=f+u*(g-f),x=d+u*(y-d),b=h+u*(_-h);return`rgba(${Math.round(w)}, ${Math.round(v)}, ${Math.round(x)}, ${b.toFixed(2)})`}_parseColor(t){let e,r,n,s;if(t.startsWith("#")){e=parseInt(t.substring(1,3),16),r=parseInt(t.substring(3,5),16),n=parseInt(t.substring(5,7),16);const a=t.substring(7);a?s=parseInt(a,16)/255:s=1}else{const a=this._parserRgbColor(t);e=a[0]||0,r=a[1]||0,n=a[2]||0,s=a[3]||1}return{r:e,g:r,b:n,a:s}}_parserRgbColor(t){var e;return((e=t.match(/\d+/g))==null?void 0:e.map(Number))||[]}}var zt={};const sy=Object.prototype.toString;function as(i){const t=sy.call(i);return t.endsWith("Array]")&&!t.includes("Big")}var oy=Object.freeze({__proto__:null,isAnyArray:as}),ay=Se(oy);function uy(i){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!as(i))throw new TypeError("input must be an array");if(i.length===0)throw new TypeError("input must not be empty");var e=t.fromIndex,r=e===void 0?0:e,n=t.toIndex,s=n===void 0?i.length:n;if(r<0||r>=i.length||!Number.isInteger(r))throw new Error("fromIndex must be a positive integer smaller than length");if(s<=r||s>i.length||!Number.isInteger(s))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var a=i[r],u=r+1;u<s;u++)i[u]>a&&(a=i[u]);return a}function ly(i){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!as(i))throw new TypeError("input must be an array");if(i.length===0)throw new TypeError("input must not be empty");var e=t.fromIndex,r=e===void 0?0:e,n=t.toIndex,s=n===void 0?i.length:n;if(r<0||r>=i.length||!Number.isInteger(r))throw new Error("fromIndex must be a positive integer smaller than length");if(s<=r||s>i.length||!Number.isInteger(s))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var a=i[r],u=r+1;u<s;u++)i[u]<a&&(a=i[u]);return a}function cy(i){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(as(i)){if(i.length===0)throw new TypeError("input must not be empty")}else throw new TypeError("input must be an array");var e;if(t.output!==void 0){if(!as(t.output))throw new TypeError("output option must be an array if specified");e=t.output}else e=new Array(i.length);var r=ly(i),n=uy(i);if(r===n)throw new RangeError("minimum and maximum input values are equal. Cannot rescale a constant array");var s=t.min,a=s===void 0?t.autoMinMax?r:0:s,u=t.max,c=u===void 0?t.autoMinMax?n:1:u;if(a>=c)throw new RangeError("min option must be smaller than max option");for(var f=(c-a)/(n-r),d=0;d<i.length;d++)e[d]=(i[d]-r)*f+a;return e}var fy=Object.freeze({__proto__:null,default:cy}),hy=Se(fy);Object.defineProperty(zt,"__esModule",{value:!0});var fr=ay,ah=hy;const uo=" ".repeat(2),uh=" ".repeat(4);function dy(){return lh(this)}function lh(i,t={}){const{maxRows:e=15,maxColumns:r=10,maxNumSize:n=8,padMinus:s="auto"}=t;return`${i.constructor.name} {
54
+ (`+he(S,_)+", "+he(N,_)+") ==> "+(this._values?he(this._values[F],_):"X")}return b},n.prototype.toString=function(){return he(this.toArray())},n.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},n.prototype.diagonal=function(_){if(_){if(Oe(_)&&(_=_.toNumber()),!_e(_)||!be(_))throw new TypeError("The parameter k must be an integer number")}else _=0;var w=_>0?_:0,v=_<0?-_:0,x=this._size[0],b=this._size[1],N=Math.min(x-v,b-w),E=[],C=[],F=[];F[0]=0;for(var S=w;S<b&&E.length<N;S++)for(var I=this._ptr[S],A=this._ptr[S+1],O=I;O<A;O++){var L=this._index[O];if(L===S-w+v){E.push(this._values[O]),C[E.length-1]=L-v;break}}return F.push(E.length),new n({values:E,index:C,ptr:F,size:[N,1]})},n.fromJSON=function(_){return new n(_)},n.diagonal=function(_,w,v,x,b){if(!Ae(_))throw new TypeError("Array expected, size parameter");if(_.length!==2)throw new Error("Only two dimensions matrix are supported");if(_=_.map(function(X){if(Oe(X)&&(X=X.toNumber()),!_e(X)||!be(X)||X<1)throw new Error("Size values must be positive integers");return X}),v){if(Oe(v)&&(v=v.toNumber()),!_e(v)||!be(v))throw new TypeError("The parameter k must be an integer number")}else v=0;var N=e,E=0;en(b)&&(N=t.find(e,[b,b])||e,E=t.convert(0,b));var C=v>0?v:0,F=v<0?-v:0,S=_[0],I=_[1],A=Math.min(S-F,I-C),O;if(Ae(w)){if(w.length!==A)throw new Error("Invalid value array length");O=function(J){return w[J]}}else if(ye(w)){var L=w.size();if(L.length!==1||L[0]!==A)throw new Error("Invalid matrix length");O=function(J){return w.get([J])}}else O=function(){return w};for(var z=[],q=[],j=[],P=0;P<I;P++){j.push(z.length);var Z=P-C;if(Z>=0&&Z<A){var W=O(Z);N(W,E)||(q.push(Z+F),z.push(W))}}return j.push(z.length),new n({values:z,index:q,ptr:j,size:[S,I]})},n.prototype.swapRows=function(_,w){if(!_e(_)||!be(_)||!_e(w)||!be(w))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Ce(_,this._size[0]),Ce(w,this._size[0]),n._swapRows(_,w,this._size[1],this._values,this._index,this._ptr),this},n._forEachRow=function(_,w,v,x,b){for(var N=x[_],E=x[_+1],C=N;C<E;C++)b(v[C],w[C])},n._swapRows=function(_,w,v,x,b,N){for(var E=0;E<v;E++){var C=N[E],F=N[E+1],S=f(_,C,F,b),I=f(w,C,F,b);if(S<F&&I<F&&b[S]===_&&b[I]===w){if(x){var A=x[S];x[S]=x[I],x[I]=A}continue}if(S<F&&b[S]===_&&(I>=F||b[I]!==w)){var O=x?x[S]:void 0;b.splice(I,0,w),x&&x.splice(I,0,O),b.splice(I<=S?S+1:S,1),x&&x.splice(I<=S?S+1:S,1);continue}if(I<F&&b[I]===w&&(S>=F||b[S]!==_)){var L=x?x[I]:void 0;b.splice(S,0,_),x&&x.splice(S,0,L),b.splice(S<=I?I+1:I,1),x&&x.splice(S<=I?I+1:I,1)}}},n},{isClass:!0}),hg="number",dg=["typed"];function pg(i){var t=i.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);if(t){var e={"0b":2,"0o":8,"0x":16}[t[1]],r=t[2],n=t[3];return{input:i,radix:e,integerPart:r,fractionalPart:n}}else return null}function _g(i){for(var t=parseInt(i.integerPart,i.radix),e=0,r=0;r<i.fractionalPart.length;r++){var n=parseInt(i.fractionalPart[r],i.radix);e+=n/Math.pow(i.radix,r+1)}var s=t+e;if(isNaN(s))throw new SyntaxError('String "'+i.input+'" is not a valid number');return s}var mg=mt(hg,dg,i=>{var{typed:t}=i,e=t("number",{"":function(){return 0},number:function(n){return n},string:function(n){if(n==="NaN")return NaN;var s=pg(n);if(s)return _g(s);var a=0,u=n.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);u&&(a=Number(u[2]),n=u[1]);var c=Number(n);if(isNaN(c))throw new SyntaxError('String "'+n+'" is not a valid number');if(u){if(c>2**a-1)throw new SyntaxError('String "'.concat(n,'" is out of range'));c>=2**(a-1)&&(c=c-2**a)}return c},BigNumber:function(n){return n.toNumber()},Fraction:function(n){return n.valueOf()},Unit:t.referToSelf(r=>n=>{var s=n.clone();return s.value=r(n.value),s}),null:function(n){return 0},"Unit, string | Unit":function(n,s){return n.toNumber(s)},"Array | Matrix":t.referToSelf(r=>n=>Kr(n,r))});return e.fromJSON=function(r){return parseFloat(r.value)},e}),gg="bignumber",vg=["typed","BigNumber"],yg=mt(gg,vg,i=>{var{typed:t,BigNumber:e}=i;return t("bignumber",{"":function(){return new e(0)},number:function(n){return new e(n+"")},string:function(n){var s=n.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(s){var a=s[2],u=e(s[1]),c=new e(2).pow(Number(a));if(u.gt(c.sub(1)))throw new SyntaxError('String "'.concat(n,'" is out of range'));var f=new e(2).pow(Number(a)-1);return u.gte(f)?u.sub(c):u}return new e(n)},BigNumber:function(n){return n},Unit:t.referToSelf(r=>n=>{var s=n.clone();return s.value=r(n.value),s}),Fraction:function(n){return new e(n.n).div(n.d).times(n.s)},null:function(n){return new e(0)},"Array | Matrix":t.referToSelf(r=>n=>Kr(n,r))})}),wg="fraction",Dg=["typed","Fraction"],bg=mt(wg,Dg,i=>{var{typed:t,Fraction:e}=i;return t("fraction",{number:function(n){if(!isFinite(n)||isNaN(n))throw new Error(n+" cannot be represented as a fraction");return new e(n)},string:function(n){return new e(n)},"number, number":function(n,s){return new e(n,s)},null:function(n){return new e(0)},BigNumber:function(n){return new e(n.toString())},Fraction:function(n){return n},Unit:t.referToSelf(r=>n=>{var s=n.clone();return s.value=r(n.value),s}),Object:function(n){return new e(n)},"Array | Matrix":t.referToSelf(r=>n=>Kr(n,r))})}),ff="matrix",xg=["typed","Matrix","DenseMatrix","SparseMatrix"],Eg=mt(ff,xg,i=>{var{typed:t,Matrix:e,DenseMatrix:r,SparseMatrix:n}=i;return t(ff,{"":function(){return s([])},string:function(u){return s([],u)},"string, string":function(u,c){return s([],u,c)},Array:function(u){return s(u)},Matrix:function(u){return s(u,u.storage())},"Array | Matrix, string":s,"Array | Matrix, string, string":s});function s(a,u,c){if(u==="dense"||u==="default"||u===void 0)return new r(a,c);if(u==="sparse")return new n(a,c);throw new TypeError("Unknown matrix type "+JSON.stringify(u)+".")}}),hf="unaryMinus",Ag=["typed"],Cg=mt(hf,Ag,i=>{var{typed:t}=i;return t(hf,{number:rf,"Complex | BigNumber | Fraction":e=>e.neg(),Unit:t.referToSelf(e=>r=>{var n=r.clone();return n.value=t.find(e,n.valueType())(r.value),n}),"Array | Matrix":t.referToSelf(e=>r=>Kr(r,e))})}),df="abs",Mg=["typed"],Fg=mt(df,Mg,i=>{var{typed:t}=i;return t(df,{number:Xc,"Complex | BigNumber | Fraction | Unit":e=>e.abs(),"Array | Matrix":t.referToSelf(e=>r=>Kr(r,e))})}),pf="addScalar",Ng=["typed"],Sg=mt(pf,Ng,i=>{var{typed:t}=i;return t(pf,{"number, number":Qc,"Complex, Complex":function(r,n){return r.add(n)},"BigNumber, BigNumber":function(r,n){return r.plus(n)},"Fraction, Fraction":function(r,n){return r.add(n)},"Unit, Unit":t.referToSelf(e=>(r,n)=>{if(r.value===null||r.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(n.value===null||n.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!r.equalBase(n))throw new Error("Units do not match");var s=r.clone();return s.value=t.find(e,[s.valueType(),n.valueType()])(s.value,n.value),s.fixPrefix=!1,s})})}),_f="subtractScalar",Og=["typed"],Bg=mt(_f,Og,i=>{var{typed:t}=i;return t(_f,{"number, number":tf,"Complex, Complex":function(r,n){return r.sub(n)},"BigNumber, BigNumber":function(r,n){return r.minus(n)},"Fraction, Fraction":function(r,n){return r.sub(n)},"Unit, Unit":t.referToSelf(e=>(r,n)=>{if(r.value===null||r.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(n.value===null||n.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!r.equalBase(n))throw new Error("Units do not match");var s=r.clone();return s.value=t.find(e,[s.valueType(),n.valueType()])(s.value,n.value),s.fixPrefix=!1,s})})}),Tg="matAlgo11xS0s",Ig=["typed","equalScalar"],Wa=mt(Tg,Ig,i=>{var{typed:t,equalScalar:e}=i;return function(n,s,a,u){var c=n._values,f=n._index,d=n._ptr,h=n._size,p=n._datatype;if(!c)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var g=h[0],y=h[1],_,w=e,v=0,x=a;typeof p=="string"&&(_=p,w=t.find(e,[_,_]),v=t.convert(0,_),s=t.convert(s,_),x=t.find(a,[_,_]));for(var b=[],N=[],E=[],C=0;C<y;C++){E[C]=N.length;for(var F=d[C],S=d[C+1],I=F;I<S;I++){var A=f[I],O=u?x(s,c[I]):x(c[I],s);w(O,v)||(N.push(A),b.push(O))}}return E[y]=N.length,n.createSparseMatrix({values:b,index:N,ptr:E,size:[g,y],datatype:_})}}),$g="matAlgo12xSfs",Lg=["typed","DenseMatrix"],Ai=mt($g,Lg,i=>{var{typed:t,DenseMatrix:e}=i;return function(n,s,a,u){var c=n._values,f=n._index,d=n._ptr,h=n._size,p=n._datatype;if(!c)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var g=h[0],y=h[1],_,w=a;typeof p=="string"&&(_=p,s=t.convert(s,_),w=t.find(a,[_,_]));for(var v=[],x=[],b=[],N=0;N<y;N++){for(var E=N+1,C=d[N],F=d[N+1],S=C;S<F;S++){var I=f[S];x[I]=c[S],b[I]=E}for(var A=0;A<g;A++)N===0&&(v[A]=[]),b[A]===E?v[A][N]=u?w(s,x[A]):w(x[A],s):v[A][N]=u?w(s,0):w(0,s)}return new e({data:v,size:[g,y],datatype:_})}}),Rg="matAlgo14xDs",Pg=["typed"],Ya=mt(Rg,Pg,i=>{var{typed:t}=i;return function(n,s,a,u){var c=n._data,f=n._size,d=n._datatype,h,p=a;typeof d=="string"&&(h=d,s=t.convert(s,h),p=t.find(a,[h,h]));var g=f.length>0?e(p,0,f,f[0],c,s,u):[];return n.createDenseMatrix({data:g,size:oe(f),datatype:h})};function e(r,n,s,a,u,c,f){var d=[];if(n===s.length-1)for(var h=0;h<a;h++)d[h]=f?r(c,u[h]):r(u[h],c);else for(var p=0;p<a;p++)d[p]=e(r,n+1,s,s[n+1],u[p],c,f);return d}}),kg="matAlgo02xDS0",zg=["typed","equalScalar"],qg=mt(kg,zg,i=>{var{typed:t,equalScalar:e}=i;return function(n,s,a,u){var c=n._data,f=n._size,d=n._datatype||n.getDataType(),h=s._values,p=s._index,g=s._ptr,y=s._size,_=s._datatype||s._data===void 0?s._datatype:s.getDataType();if(f.length!==y.length)throw new Jt(f.length,y.length);if(f[0]!==y[0]||f[1]!==y[1])throw new RangeError("Dimension mismatch. Matrix A ("+f+") must match Matrix B ("+y+")");if(!h)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var w=f[0],v=f[1],x,b=e,N=0,E=a;typeof d=="string"&&d===_&&d!=="mixed"&&(x=d,b=t.find(e,[x,x]),N=t.convert(0,x),E=t.find(a,[x,x]));for(var C=[],F=[],S=[],I=0;I<v;I++){S[I]=F.length;for(var A=g[I],O=g[I+1],L=A;L<O;L++){var z=p[L],q=u?E(h[L],c[z][I]):E(c[z][I],h[L]);b(q,N)||(F.push(z),C.push(q))}}return S[v]=F.length,s.createSparseMatrix({values:C,index:F,ptr:S,size:[w,v],datatype:d===n._datatype&&_===s._datatype?x:void 0})}}),Ug="matAlgo03xDSf",jg=["typed"],Ci=mt(Ug,jg,i=>{var{typed:t}=i;return function(r,n,s,a){var u=r._data,c=r._size,f=r._datatype||r.getDataType(),d=n._values,h=n._index,p=n._ptr,g=n._size,y=n._datatype||n._data===void 0?n._datatype:n.getDataType();if(c.length!==g.length)throw new Jt(c.length,g.length);if(c[0]!==g[0]||c[1]!==g[1])throw new RangeError("Dimension mismatch. Matrix A ("+c+") must match Matrix B ("+g+")");if(!d)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var _=c[0],w=c[1],v,x=0,b=s;typeof f=="string"&&f===y&&f!=="mixed"&&(v=f,x=t.convert(0,v),b=t.find(s,[v,v]));for(var N=[],E=0;E<_;E++)N[E]=[];for(var C=[],F=[],S=0;S<w;S++){for(var I=S+1,A=p[S],O=p[S+1],L=A;L<O;L++){var z=h[L];C[z]=a?b(d[L],u[z][S]):b(u[z][S],d[L]),F[z]=I}for(var q=0;q<_;q++)F[q]===I?N[q][S]=C[q]:N[q][S]=a?b(x,u[q][S]):b(u[q][S],x)}return r.createDenseMatrix({data:N,size:[_,w],datatype:f===r._datatype&&y===n._datatype?v:void 0})}}),Wg="matAlgo05xSfSf",Yg=["typed","equalScalar"],mf=mt(Wg,Yg,i=>{var{typed:t,equalScalar:e}=i;return function(n,s,a){var u=n._values,c=n._index,f=n._ptr,d=n._size,h=n._datatype||n._data===void 0?n._datatype:n.getDataType(),p=s._values,g=s._index,y=s._ptr,_=s._size,w=s._datatype||s._data===void 0?s._datatype:s.getDataType();if(d.length!==_.length)throw new Jt(d.length,_.length);if(d[0]!==_[0]||d[1]!==_[1])throw new RangeError("Dimension mismatch. Matrix A ("+d+") must match Matrix B ("+_+")");var v=d[0],x=d[1],b,N=e,E=0,C=a;typeof h=="string"&&h===w&&h!=="mixed"&&(b=h,N=t.find(e,[b,b]),E=t.convert(0,b),C=t.find(a,[b,b]));var F=u&&p?[]:void 0,S=[],I=[],A=F?[]:void 0,O=F?[]:void 0,L=[],z=[],q,j,P,Z;for(j=0;j<x;j++){I[j]=S.length;var W=j+1;for(P=f[j],Z=f[j+1];P<Z;P++)q=c[P],S.push(q),L[q]=W,A&&(A[q]=u[P]);for(P=y[j],Z=y[j+1];P<Z;P++)q=g[P],L[q]!==W&&S.push(q),z[q]=W,O&&(O[q]=p[P]);if(F)for(P=I[j];P<S.length;){q=S[P];var X=L[q],J=z[q];if(X===W||J===W){var ct=X===W?A[q]:E,gt=J===W?O[q]:E,st=C(ct,gt);N(st,E)?S.splice(P,1):(F.push(st),P++)}}}return I[x]=S.length,n.createSparseMatrix({values:F,index:S,ptr:I,size:[v,x],datatype:h===n._datatype&&w===s._datatype?b:void 0})}}),Vg="matAlgo13xDD",Hg=["typed"],Zg=mt(Vg,Hg,i=>{var{typed:t}=i;return function(n,s,a){var u=n._data,c=n._size,f=n._datatype,d=s._data,h=s._size,p=s._datatype,g=[];if(c.length!==h.length)throw new Jt(c.length,h.length);for(var y=0;y<c.length;y++){if(c[y]!==h[y])throw new RangeError("Dimension mismatch. Matrix A ("+c+") must match Matrix B ("+h+")");g[y]=c[y]}var _,w=a;typeof f=="string"&&f===p&&(_=f,w=t.find(a,[_,_]));var v=g.length>0?e(w,0,g,g[0],u,d):[];return n.createDenseMatrix({data:v,size:g,datatype:_})};function e(r,n,s,a,u,c){var f=[];if(n===s.length-1)for(var d=0;d<a;d++)f[d]=r(u[d],c[d]);else for(var h=0;h<a;h++)f[h]=e(r,n+1,s,s[n+1],u[h],c[h]);return f}}),Kg="broadcast",Gg=["concat"],Jg=mt(Kg,Gg,i=>{var{concat:t}=i;return function(n,s){var a=Math.max(n._size.length,s._size.length);if(n._size.length===s._size.length&&n._size.every((y,_)=>y===s._size[_]))return[n,s];for(var u=e(n._size,a,0),c=e(s._size,a,0),f=[],d=0;d<a;d++)f[d]=Math.max(u[d],c[d]);Rs(u,f),Rs(c,f);var h=n.clone(),p=s.clone();h._size.length<a?h.reshape(e(h._size,a,1)):p._size.length<a&&p.reshape(e(p._size,a,1));for(var g=0;g<a;g++)h._size[g]<f[g]&&(h=r(h,f[g],g)),p._size[g]<f[g]&&(p=r(p,f[g],g));return[h,p]};function e(n,s,a){return[...Array(s-n.length).fill(a),...n]}function r(n,s,a){return t(...Array(s).fill(n),a)}}),Xg="matrixAlgorithmSuite",Qg=["typed","matrix","concat"],ti=mt(Xg,Qg,i=>{var{typed:t,matrix:e,concat:r}=i,n=Zg({typed:t}),s=Ya({typed:t}),a=Jg({concat:r});return function(c){var f=c.elop,d=c.SD||c.DS,h;f?(h={"DenseMatrix, DenseMatrix":(_,w)=>n(...a(_,w),f),"Array, Array":(_,w)=>n(...a(e(_),e(w)),f).valueOf(),"Array, DenseMatrix":(_,w)=>n(...a(e(_),w),f),"DenseMatrix, Array":(_,w)=>n(...a(_,e(w)),f)},c.SS&&(h["SparseMatrix, SparseMatrix"]=(_,w)=>c.SS(...a(_,w),f,!1)),c.DS&&(h["DenseMatrix, SparseMatrix"]=(_,w)=>c.DS(...a(_,w),f,!1),h["Array, SparseMatrix"]=(_,w)=>c.DS(...a(e(_),w),f,!1)),d&&(h["SparseMatrix, DenseMatrix"]=(_,w)=>d(...a(w,_),f,!0),h["SparseMatrix, Array"]=(_,w)=>d(...a(e(w),_),f,!0))):(h={"DenseMatrix, DenseMatrix":t.referToSelf(_=>(w,v)=>n(...a(w,v),_)),"Array, Array":t.referToSelf(_=>(w,v)=>n(...a(e(w),e(v)),_).valueOf()),"Array, DenseMatrix":t.referToSelf(_=>(w,v)=>n(...a(e(w),v),_)),"DenseMatrix, Array":t.referToSelf(_=>(w,v)=>n(...a(w,e(v)),_))},c.SS&&(h["SparseMatrix, SparseMatrix"]=t.referToSelf(_=>(w,v)=>c.SS(...a(w,v),_,!1))),c.DS&&(h["DenseMatrix, SparseMatrix"]=t.referToSelf(_=>(w,v)=>c.DS(...a(w,v),_,!1)),h["Array, SparseMatrix"]=t.referToSelf(_=>(w,v)=>c.DS(...a(e(w),v),_,!1))),d&&(h["SparseMatrix, DenseMatrix"]=t.referToSelf(_=>(w,v)=>d(...a(v,w),_,!0)),h["SparseMatrix, Array"]=t.referToSelf(_=>(w,v)=>d(...a(e(v),w),_,!0))));var p=c.scalar||"any",g=c.Ds||c.Ss;g&&(f?(h["DenseMatrix,"+p]=(_,w)=>s(_,w,f,!1),h[p+", DenseMatrix"]=(_,w)=>s(w,_,f,!0),h["Array,"+p]=(_,w)=>s(e(_),w,f,!1).valueOf(),h[p+", Array"]=(_,w)=>s(e(w),_,f,!0).valueOf()):(h["DenseMatrix,"+p]=t.referToSelf(_=>(w,v)=>s(w,v,_,!1)),h[p+", DenseMatrix"]=t.referToSelf(_=>(w,v)=>s(v,w,_,!0)),h["Array,"+p]=t.referToSelf(_=>(w,v)=>s(e(w),v,_,!1).valueOf()),h[p+", Array"]=t.referToSelf(_=>(w,v)=>s(e(v),w,_,!0).valueOf())));var y=c.sS!==void 0?c.sS:c.Ss;return f?(c.Ss&&(h["SparseMatrix,"+p]=(_,w)=>c.Ss(_,w,f,!1)),y&&(h[p+", SparseMatrix"]=(_,w)=>y(w,_,f,!0))):(c.Ss&&(h["SparseMatrix,"+p]=t.referToSelf(_=>(w,v)=>c.Ss(w,v,_,!1))),y&&(h[p+", SparseMatrix"]=t.referToSelf(_=>(w,v)=>y(v,w,_,!0)))),f&&f.signatures&&uc(h,f.signatures),h}}),tv="matAlgo01xDSid",ev=["typed"],gf=mt(tv,ev,i=>{var{typed:t}=i;return function(r,n,s,a){var u=r._data,c=r._size,f=r._datatype||r.getDataType(),d=n._values,h=n._index,p=n._ptr,g=n._size,y=n._datatype||n._data===void 0?n._datatype:n.getDataType();if(c.length!==g.length)throw new Jt(c.length,g.length);if(c[0]!==g[0]||c[1]!==g[1])throw new RangeError("Dimension mismatch. Matrix A ("+c+") must match Matrix B ("+g+")");if(!d)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var _=c[0],w=c[1],v=typeof f=="string"&&f!=="mixed"&&f===y?f:void 0,x=v?t.find(s,[v,v]):s,b,N,E=[];for(b=0;b<_;b++)E[b]=[];var C=[],F=[];for(N=0;N<w;N++){for(var S=N+1,I=p[N],A=p[N+1],O=I;O<A;O++)b=h[O],C[b]=a?x(d[O],u[b][N]):x(u[b][N],d[O]),F[b]=S;for(b=0;b<_;b++)F[b]===S?E[b][N]=C[b]:E[b][N]=u[b][N]}return r.createDenseMatrix({data:E,size:[_,w],datatype:f===r._datatype&&y===n._datatype?v:void 0})}}),rv="matAlgo04xSidSid",nv=["typed","equalScalar"],iv=mt(rv,nv,i=>{var{typed:t,equalScalar:e}=i;return function(n,s,a){var u=n._values,c=n._index,f=n._ptr,d=n._size,h=n._datatype||n._data===void 0?n._datatype:n.getDataType(),p=s._values,g=s._index,y=s._ptr,_=s._size,w=s._datatype||s._data===void 0?s._datatype:s.getDataType();if(d.length!==_.length)throw new Jt(d.length,_.length);if(d[0]!==_[0]||d[1]!==_[1])throw new RangeError("Dimension mismatch. Matrix A ("+d+") must match Matrix B ("+_+")");var v=d[0],x=d[1],b,N=e,E=0,C=a;typeof h=="string"&&h===w&&h!=="mixed"&&(b=h,N=t.find(e,[b,b]),E=t.convert(0,b),C=t.find(a,[b,b]));var F=u&&p?[]:void 0,S=[],I=[],A=u&&p?[]:void 0,O=u&&p?[]:void 0,L=[],z=[],q,j,P,Z,W;for(j=0;j<x;j++){I[j]=S.length;var X=j+1;for(Z=f[j],W=f[j+1],P=Z;P<W;P++)q=c[P],S.push(q),L[q]=X,A&&(A[q]=u[P]);for(Z=y[j],W=y[j+1],P=Z;P<W;P++)if(q=g[P],L[q]===X){if(A){var J=C(A[q],p[P]);N(J,E)?L[q]=null:A[q]=J}}else S.push(q),z[q]=X,O&&(O[q]=p[P]);if(A&&O)for(P=I[j];P<S.length;)q=S[P],L[q]===X?(F[P]=A[q],P++):z[q]===X?(F[P]=O[q],P++):S.splice(P,1)}return I[x]=S.length,n.createSparseMatrix({values:F,index:S,ptr:I,size:[v,x],datatype:h===n._datatype&&w===s._datatype?b:void 0})}}),sv="matAlgo10xSids",ov=["typed","DenseMatrix"],vf=mt(sv,ov,i=>{var{typed:t,DenseMatrix:e}=i;return function(n,s,a,u){var c=n._values,f=n._index,d=n._ptr,h=n._size,p=n._datatype;if(!c)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var g=h[0],y=h[1],_,w=a;typeof p=="string"&&(_=p,s=t.convert(s,_),w=t.find(a,[_,_]));for(var v=[],x=[],b=[],N=0;N<y;N++){for(var E=N+1,C=d[N],F=d[N+1],S=C;S<F;S++){var I=f[S];x[I]=c[S],b[I]=E}for(var A=0;A<g;A++)N===0&&(v[A]=[]),b[A]===E?v[A][N]=u?w(s,x[A]):w(x[A],s):v[A][N]=s}return new e({data:v,size:[g,y],datatype:_})}}),av="multiplyScalar",uv=["typed"],lv=mt(av,uv,i=>{var{typed:t}=i;return t("multiplyScalar",{"number, number":ef,"Complex, Complex":function(r,n){return r.mul(n)},"BigNumber, BigNumber":function(r,n){return r.times(n)},"Fraction, Fraction":function(r,n){return r.mul(n)},"number | Fraction | BigNumber | Complex, Unit":(e,r)=>r.multiply(e),"Unit, number | Fraction | BigNumber | Complex | Unit":(e,r)=>e.multiply(r)})}),yf="multiply",cv=["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],fv=mt(yf,cv,i=>{var{typed:t,matrix:e,addScalar:r,multiplyScalar:n,equalScalar:s,dot:a}=i,u=Wa({typed:t,equalScalar:s}),c=Ya({typed:t});function f(E,C){switch(E.length){case 1:switch(C.length){case 1:if(E[0]!==C[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(E[0]!==C[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+E[0]+") must match Matrix rows ("+C[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+C.length+" dimensions)")}break;case 2:switch(C.length){case 1:if(E[1]!==C[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+E[1]+") must match Vector length ("+C[0]+")");break;case 2:if(E[1]!==C[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+E[1]+") must match Matrix B rows ("+C[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+C.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+E.length+" dimensions)")}}function d(E,C,F){if(F===0)throw new Error("Cannot multiply two empty vectors");return a(E,C)}function h(E,C){if(C.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return p(E,C)}function p(E,C){var F=E._data,S=E._size,I=E._datatype||E.getDataType(),A=C._data,O=C._size,L=C._datatype||C.getDataType(),z=S[0],q=O[1],j,P=r,Z=n;I&&L&&I===L&&typeof I=="string"&&I!=="mixed"&&(j=I,P=t.find(r,[j,j]),Z=t.find(n,[j,j]));for(var W=[],X=0;X<q;X++){for(var J=Z(F[0],A[0][X]),ct=1;ct<z;ct++)J=P(J,Z(F[ct],A[ct][X]));W[X]=J}return E.createDenseMatrix({data:W,size:[q],datatype:I===E._datatype&&L===C._datatype?j:void 0})}var g=t("_multiplyMatrixVector",{"DenseMatrix, any":_,"SparseMatrix, any":x}),y=t("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":w,"DenseMatrix, SparseMatrix":v,"SparseMatrix, DenseMatrix":b,"SparseMatrix, SparseMatrix":N});function _(E,C){var F=E._data,S=E._size,I=E._datatype||E.getDataType(),A=C._data,O=C._datatype||C.getDataType(),L=S[0],z=S[1],q,j=r,P=n;I&&O&&I===O&&typeof I=="string"&&I!=="mixed"&&(q=I,j=t.find(r,[q,q]),P=t.find(n,[q,q]));for(var Z=[],W=0;W<L;W++){for(var X=F[W],J=P(X[0],A[0]),ct=1;ct<z;ct++)J=j(J,P(X[ct],A[ct]));Z[W]=J}return E.createDenseMatrix({data:Z,size:[L],datatype:I===E._datatype&&O===C._datatype?q:void 0})}function w(E,C){var F=E._data,S=E._size,I=E._datatype||E.getDataType(),A=C._data,O=C._size,L=C._datatype||C.getDataType(),z=S[0],q=S[1],j=O[1],P,Z=r,W=n;I&&L&&I===L&&typeof I=="string"&&I!=="mixed"&&I!=="mixed"&&(P=I,Z=t.find(r,[P,P]),W=t.find(n,[P,P]));for(var X=[],J=0;J<z;J++){var ct=F[J];X[J]=[];for(var gt=0;gt<j;gt++){for(var st=W(ct[0],A[0][gt]),yt=1;yt<q;yt++)st=Z(st,W(ct[yt],A[yt][gt]));X[J][gt]=st}}return E.createDenseMatrix({data:X,size:[z,j],datatype:I===E._datatype&&L===C._datatype?P:void 0})}function v(E,C){var F=E._data,S=E._size,I=E._datatype||E.getDataType(),A=C._values,O=C._index,L=C._ptr,z=C._size,q=C._datatype||C._data===void 0?C._datatype:C.getDataType();if(!A)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var j=S[0],P=z[1],Z,W=r,X=n,J=s,ct=0;I&&q&&I===q&&typeof I=="string"&&I!=="mixed"&&(Z=I,W=t.find(r,[Z,Z]),X=t.find(n,[Z,Z]),J=t.find(s,[Z,Z]),ct=t.convert(0,Z));for(var gt=[],st=[],yt=[],Dt=C.createSparseMatrix({values:gt,index:st,ptr:yt,size:[j,P],datatype:I===E._datatype&&q===C._datatype?Z:void 0}),Nt=0;Nt<P;Nt++){yt[Nt]=st.length;var xt=L[Nt],ue=L[Nt+1];if(ue>xt)for(var Tt=0,St=0;St<j;St++){for(var fe=St+1,ne=void 0,qt=xt;qt<ue;qt++){var Xt=O[qt];Tt!==fe?(ne=X(F[St][Xt],A[qt]),Tt=fe):ne=W(ne,X(F[St][Xt],A[qt]))}Tt===fe&&!J(ne,ct)&&(st.push(St),gt.push(ne))}}return yt[P]=st.length,Dt}function x(E,C){var F=E._values,S=E._index,I=E._ptr,A=E._datatype||E._data===void 0?E._datatype:E.getDataType();if(!F)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var O=C._data,L=C._datatype||C.getDataType(),z=E._size[0],q=C._size[0],j=[],P=[],Z=[],W,X=r,J=n,ct=s,gt=0;A&&L&&A===L&&typeof A=="string"&&A!=="mixed"&&(W=A,X=t.find(r,[W,W]),J=t.find(n,[W,W]),ct=t.find(s,[W,W]),gt=t.convert(0,W));var st=[],yt=[];Z[0]=0;for(var Dt=0;Dt<q;Dt++){var Nt=O[Dt];if(!ct(Nt,gt))for(var xt=I[Dt],ue=I[Dt+1],Tt=xt;Tt<ue;Tt++){var St=S[Tt];yt[St]?st[St]=X(st[St],J(Nt,F[Tt])):(yt[St]=!0,P.push(St),st[St]=J(Nt,F[Tt]))}}for(var fe=P.length,ne=0;ne<fe;ne++){var qt=P[ne];j[ne]=st[qt]}return Z[1]=P.length,E.createSparseMatrix({values:j,index:P,ptr:Z,size:[z,1],datatype:A===E._datatype&&L===C._datatype?W:void 0})}function b(E,C){var F=E._values,S=E._index,I=E._ptr,A=E._datatype||E._data===void 0?E._datatype:E.getDataType();if(!F)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var O=C._data,L=C._datatype||C.getDataType(),z=E._size[0],q=C._size[0],j=C._size[1],P,Z=r,W=n,X=s,J=0;A&&L&&A===L&&typeof A=="string"&&A!=="mixed"&&(P=A,Z=t.find(r,[P,P]),W=t.find(n,[P,P]),X=t.find(s,[P,P]),J=t.convert(0,P));for(var ct=[],gt=[],st=[],yt=E.createSparseMatrix({values:ct,index:gt,ptr:st,size:[z,j],datatype:A===E._datatype&&L===C._datatype?P:void 0}),Dt=[],Nt=[],xt=0;xt<j;xt++){st[xt]=gt.length;for(var ue=xt+1,Tt=0;Tt<q;Tt++){var St=O[Tt][xt];if(!X(St,J))for(var fe=I[Tt],ne=I[Tt+1],qt=fe;qt<ne;qt++){var Xt=S[qt];Nt[Xt]!==ue?(Nt[Xt]=ue,gt.push(Xt),Dt[Xt]=W(St,F[qt])):Dt[Xt]=Z(Dt[Xt],W(St,F[qt]))}}for(var Le=st[xt],Dr=gt.length,ze=Le;ze<Dr;ze++){var mn=gt[ze];ct[ze]=Dt[mn]}}return st[j]=gt.length,yt}function N(E,C){var F=E._values,S=E._index,I=E._ptr,A=E._datatype||E._data===void 0?E._datatype:E.getDataType(),O=C._values,L=C._index,z=C._ptr,q=C._datatype||C._data===void 0?C._datatype:C.getDataType(),j=E._size[0],P=C._size[1],Z=F&&O,W,X=r,J=n;A&&q&&A===q&&typeof A=="string"&&A!=="mixed"&&(W=A,X=t.find(r,[W,W]),J=t.find(n,[W,W]));for(var ct=Z?[]:void 0,gt=[],st=[],yt=E.createSparseMatrix({values:ct,index:gt,ptr:st,size:[j,P],datatype:A===E._datatype&&q===C._datatype?W:void 0}),Dt=Z?[]:void 0,Nt=[],xt,ue,Tt,St,fe,ne,qt,Xt,Le=0;Le<P;Le++){st[Le]=gt.length;var Dr=Le+1;for(fe=z[Le],ne=z[Le+1],St=fe;St<ne;St++)if(Xt=L[St],Z)for(ue=I[Xt],Tt=I[Xt+1],xt=ue;xt<Tt;xt++)qt=S[xt],Nt[qt]!==Dr?(Nt[qt]=Dr,gt.push(qt),Dt[qt]=J(O[St],F[xt])):Dt[qt]=X(Dt[qt],J(O[St],F[xt]));else for(ue=I[Xt],Tt=I[Xt+1],xt=ue;xt<Tt;xt++)qt=S[xt],Nt[qt]!==Dr&&(Nt[qt]=Dr,gt.push(qt));if(Z)for(var ze=st[Le],mn=gt.length,Ln=ze;Ln<mn;Ln++){var gn=gt[Ln];ct[Ln]=Dt[gn]}}return st[P]=gt.length,yt}return t(yf,n,{"Array, Array":t.referTo("Matrix, Matrix",E=>(C,F)=>{f(Ie(C),Ie(F));var S=E(e(C),e(F));return ye(S)?S.valueOf():S}),"Matrix, Matrix":function(C,F){var S=C.size(),I=F.size();return f(S,I),S.length===1?I.length===1?d(C,F,S[0]):h(C,F):I.length===1?g(C,F):y(C,F)},"Matrix, Array":t.referTo("Matrix,Matrix",E=>(C,F)=>E(C,e(F))),"Array, Matrix":t.referToSelf(E=>(C,F)=>E(e(C,F.storage()),F)),"SparseMatrix, any":function(C,F){return u(C,F,n,!1)},"DenseMatrix, any":function(C,F){return c(C,F,n,!1)},"any, SparseMatrix":function(C,F){return u(F,C,n,!0)},"any, DenseMatrix":function(C,F){return c(F,C,n,!0)},"Array, any":function(C,F){return c(e(C),F,n,!1).valueOf()},"any, Array":function(C,F){return c(e(F),C,n,!0).valueOf()},"any, any":n,"any, any, ...any":t.referToSelf(E=>(C,F,S)=>{for(var I=E(C,F),A=0;A<S.length;A++)I=E(I,S[A]);return I})})}),wf="subtract",hv=["typed","matrix","equalScalar","subtractScalar","unaryMinus","DenseMatrix","concat"],dv=mt(wf,hv,i=>{var{typed:t,matrix:e,equalScalar:r,subtractScalar:n,unaryMinus:s,DenseMatrix:a,concat:u}=i,c=gf({typed:t}),f=Ci({typed:t}),d=mf({typed:t,equalScalar:r}),h=vf({typed:t,DenseMatrix:a}),p=Ai({typed:t,DenseMatrix:a}),g=ti({typed:t,matrix:e,concat:u});return t(wf,{"any, any":n},g({elop:n,SS:d,DS:c,SD:f,Ss:p,sS:h}))}),pv="matAlgo07xSSf",_v=["typed","DenseMatrix"],Xs=mt(pv,_v,i=>{var{typed:t,DenseMatrix:e}=i;return function(s,a,u){var c=s._size,f=s._datatype||s._data===void 0?s._datatype:s.getDataType(),d=a._size,h=a._datatype||a._data===void 0?a._datatype:a.getDataType();if(c.length!==d.length)throw new Jt(c.length,d.length);if(c[0]!==d[0]||c[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+c+") must match Matrix B ("+d+")");var p=c[0],g=c[1],y,_=0,w=u;typeof f=="string"&&f===h&&f!=="mixed"&&(y=f,_=t.convert(0,y),w=t.find(u,[y,y]));var v,x,b=[];for(v=0;v<p;v++)b[v]=[];var N=[],E=[],C=[],F=[];for(x=0;x<g;x++){var S=x+1;for(r(s,x,C,N,S),r(a,x,F,E,S),v=0;v<p;v++){var I=C[v]===S?N[v]:_,A=F[v]===S?E[v]:_;b[v][x]=w(I,A)}}return new e({data:b,size:[p,g],datatype:f===s._datatype&&h===a._datatype?y:void 0})};function r(n,s,a,u,c){for(var f=n._values,d=n._index,h=n._ptr,p=h[s],g=h[s+1];p<g;p++){var y=d[p];a[y]=c,u[y]=f[p]}}}),Df="conj",mv=["typed"],gv=mt(Df,mv,i=>{var{typed:t}=i;return t(Df,{"number | BigNumber | Fraction":e=>e,Complex:e=>e.conjugate(),"Array | Matrix":t.referToSelf(e=>r=>Kr(r,e))})}),bf="concat",vv=["typed","matrix","isInteger"],yv=mt(bf,vv,i=>{var{typed:t,matrix:e,isInteger:r}=i;return t(bf,{"...Array | Matrix | number | BigNumber":function(s){var a,u=s.length,c=-1,f,d=!1,h=[];for(a=0;a<u;a++){var p=s[a];if(ye(p)&&(d=!0),_e(p)||Oe(p)){if(a!==u-1)throw new Error("Dimension must be specified as last argument");if(f=c,c=p.valueOf(),!r(c))throw new TypeError("Integer number expected for dimension");if(c<0||a>0&&c>f)throw new Nn(c,f+1)}else{var g=oe(p).valueOf(),y=Ie(g);if(h[a]=g,f=c,c=y.length-1,a>0&&c!==f)throw new Jt(f+1,c+1)}}if(h.length===0)throw new SyntaxError("At least one matrix expected");for(var _=h.shift();h.length;)_=Fc(_,h.shift(),c);return d?e(_):_},"...string":function(s){return s.join("")}})}),xf="count",wv=["typed","size","prod"],Dv=mt(xf,wv,i=>{var{typed:t,size:e,prod:r}=i;return t(xf,{string:function(s){return s.length},"Matrix | Array":function(s){return r(e(s))}})}),Ef="identity",bv=["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],xv=mt(Ef,bv,i=>{var{typed:t,config:e,matrix:r,BigNumber:n,DenseMatrix:s,SparseMatrix:a}=i;return t(Ef,{"":function(){return e.matrix==="Matrix"?r([]):[]},string:function(d){return r(d)},"number | BigNumber":function(d){return c(d,d,e.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(d,h){return c(d,d,h)},"number | BigNumber, number | BigNumber":function(d,h){return c(d,h,e.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(d,h,p){return c(d,h,p)},Array:function(d){return u(d)},"Array, string":function(d,h){return u(d,h)},Matrix:function(d){return u(d.valueOf(),d.storage())},"Matrix, string":function(d,h){return u(d.valueOf(),h)}});function u(f,d){switch(f.length){case 0:return d?r(d):[];case 1:return c(f[0],f[0],d);case 2:return c(f[0],f[1],d);default:throw new Error("Vector containing two values expected")}}function c(f,d,h){var p=Oe(f)||Oe(d)?n:null;if(Oe(f)&&(f=f.toNumber()),Oe(d)&&(d=d.toNumber()),!be(f)||f<1)throw new Error("Parameters in function identity must be positive integers");if(!be(d)||d<1)throw new Error("Parameters in function identity must be positive integers");var g=p?new n(1):1,y=p?new p(0):0,_=[f,d];if(h){if(h==="sparse")return a.diagonal(_,g,0,y);if(h==="dense")return s.diagonal(_,g,0,y);throw new TypeError('Unknown matrix type "'.concat(h,'"'))}for(var w=Sa([],_,y),v=f<d?f:d,x=0;x<v;x++)w[x][x]=g;return w}}),Af="kron",Ev=["typed","matrix","multiplyScalar"],Av=mt(Af,Ev,i=>{var{typed:t,matrix:e,multiplyScalar:r}=i;return t(Af,{"Matrix, Matrix":function(a,u){return e(n(a.toArray(),u.toArray()))},"Matrix, Array":function(a,u){return e(n(a.toArray(),u))},"Array, Matrix":function(a,u){return e(n(a,u.toArray()))},"Array, Array":n});function n(s,a){if(Ie(s).length===1&&(s=[s]),Ie(a).length===1&&(a=[a]),Ie(s).length>2||Ie(a).length>2)throw new RangeError("Vectors with dimensions greater then 2 are not supported expected (Size x = "+JSON.stringify(s.length)+", y = "+JSON.stringify(a.length)+")");var u=[],c=[];return s.map(function(f){return a.map(function(d){return c=[],u.push(c),f.map(function(h){return d.map(function(p){return c.push(r(h,p))})})})})&&u}});function Cv(){throw new Error('No "bignumber" implementation available')}function Mv(){throw new Error('No "fraction" implementation available')}function Fv(){throw new Error('No "matrix" implementation available')}var Cf="reshape",Nv=["typed","isInteger","matrix"],Sv=mt(Cf,Nv,i=>{var{typed:t,isInteger:e}=i;return t(Cf,{"Matrix, Array":function(n,s){return n.reshape(s,!0)},"Array, Array":function(n,s){return s.forEach(function(a){if(!e(a))throw new TypeError("Invalid size for dimension: "+a)}),Ba(n,s)}})}),Mf="size",Ov=["typed","config","?matrix"],Bv=mt(Mf,Ov,i=>{var{typed:t,config:e,matrix:r}=i;return t(Mf,{Matrix:function(s){return s.create(s.size())},Array:Ie,string:function(s){return e.matrix==="Array"?[s.length]:r([s.length])},"number | Complex | BigNumber | Unit | boolean | null":function(s){return e.matrix==="Array"?[]:r?r([]):Fv()}})}),Ff="transpose",Tv=["typed","matrix"],Iv=mt(Ff,Tv,i=>{var{typed:t,matrix:e}=i;return t(Ff,{Array:a=>r(e(a)).valueOf(),Matrix:r,any:oe});function r(a){var u=a.size(),c;switch(u.length){case 1:c=a.clone();break;case 2:{var f=u[0],d=u[1];if(d===0)throw new RangeError("Cannot transpose a 2D matrix with no columns (size: "+he(u)+")");switch(a.storage()){case"dense":c=n(a,f,d);break;case"sparse":c=s(a,f,d);break}}break;default:throw new RangeError("Matrix must be a vector or two dimensional (size: "+he(u)+")")}return c}function n(a,u,c){for(var f=a._data,d=[],h,p=0;p<c;p++){h=d[p]=[];for(var g=0;g<u;g++)h[g]=oe(f[g][p])}return a.createDenseMatrix({data:d,size:[c,u],datatype:a._datatype})}function s(a,u,c){for(var f=a._values,d=a._index,h=a._ptr,p=f?[]:void 0,g=[],y=[],_=[],w=0;w<u;w++)_[w]=0;var v,x,b;for(v=0,x=d.length;v<x;v++)_[d[v]]++;for(var N=0,E=0;E<u;E++)y.push(N),N+=_[E],_[E]=y[E];for(y.push(N),b=0;b<c;b++)for(var C=h[b],F=h[b+1],S=C;S<F;S++){var I=_[d[S]]++;g[I]=b,f&&(p[I]=oe(f[S]))}return a.createSparseMatrix({values:p,index:g,ptr:y,size:[c,u],datatype:a._datatype})}}),Nf="ctranspose",$v=["typed","transpose","conj"],Lv=mt(Nf,$v,i=>{var{typed:t,transpose:e,conj:r}=i;return t(Nf,{any:function(s){return r(e(s))}})}),Sf="mode",Rv=["typed","isNaN","isNumeric"],Pv=mt(Sf,Rv,i=>{var{typed:t,isNaN:e,isNumeric:r}=i;return t(Sf,{"Array | Matrix":n,"...":function(a){return n(a)}});function n(s){s=Ia(s.valueOf());var a=s.length;if(a===0)throw new Error("Cannot calculate mode of an empty array");for(var u={},c=[],f=0,d=0;d<s.length;d++){var h=s[d];if(r(h)&&e(h))throw new Error("Cannot calculate mode of an array containing NaN values");h in u||(u[h]=0),u[h]++,u[h]===f?c.push(h):u[h]>f&&(f=u[h],c=[h])}return c}});function In(i,t,e){var r;return String(i).indexOf("Unexpected type")!==-1?(r=arguments.length>2?" (type: "+Fn(e)+", value: "+JSON.stringify(e)+")":" (type: "+i.data.actual+")",new TypeError("Cannot calculate "+t+", unexpected type of argument"+r)):String(i).indexOf("complex numbers")!==-1?(r=arguments.length>2?" (type: "+Fn(e)+", value: "+JSON.stringify(e)+")":"",new TypeError("Cannot calculate "+t+", no ordering relation is defined for complex numbers"+r)):i}var Of="prod",kv=["typed","config","multiplyScalar","numeric"],zv=mt(Of,kv,i=>{var{typed:t,config:e,multiplyScalar:r,numeric:n}=i;return t(Of,{"Array | Matrix":s,"Array | Matrix, number | BigNumber":function(u,c){throw new Error("prod(A, dim) is not yet supported")},"...":function(u){return s(u)}});function s(a){var u;if(ns(a,function(c){try{u=u===void 0?c:r(u,c)}catch(f){throw In(f,"prod",c)}}),typeof u=="string"&&(u=n(u,e.number)),u===void 0)throw new Error("Cannot calculate prod of an empty array");return u}}),qv="numeric",Uv=["number","?bignumber","?fraction"],jv=mt(qv,Uv,i=>{var{number:t,bignumber:e,fraction:r}=i,n={string:!0,number:!0,BigNumber:!0,Fraction:!0},s={number:a=>t(a),BigNumber:e?a=>e(a):Cv,Fraction:r?a=>r(a):Mv};return function(u){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number",f=arguments.length>2?arguments[2]:void 0;if(f!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var d=Fn(u);if(!(d in n))throw new TypeError("Cannot convert "+u+' of type "'+d+'"; valid input types are '+Object.keys(n).join(", "));if(!(c in s))throw new TypeError("Cannot convert "+u+' to type "'+c+'"; valid output types are '+Object.keys(s).join(", "));return c===d?u:s[c](u)}}),Bf="divideScalar",Wv=["typed","numeric"],Yv=mt(Bf,Wv,i=>{var{typed:t,numeric:e}=i;return t(Bf,{"number, number":function(n,s){return n/s},"Complex, Complex":function(n,s){return n.div(s)},"BigNumber, BigNumber":function(n,s){return n.div(s)},"Fraction, Fraction":function(n,s){return n.div(s)},"Unit, number | Complex | Fraction | BigNumber | Unit":(r,n)=>r.divide(n),"number | Fraction | Complex | BigNumber, Unit":(r,n)=>n.divideInto(r)})}),Tf="pow",Vv=["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],Hv=mt(Tf,Vv,i=>{var{typed:t,config:e,identity:r,multiply:n,matrix:s,inv:a,number:u,fraction:c,Complex:f}=i;return t(Tf,{"number, number":d,"Complex, Complex":function(y,_){return y.pow(_)},"BigNumber, BigNumber":function(y,_){return _.isInteger()||y>=0||e.predictable?y.pow(_):new f(y.toNumber(),0).pow(_.toNumber(),0)},"Fraction, Fraction":function(y,_){var w=y.pow(_);if(w!=null)return w;if(e.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return d(y.valueOf(),_.valueOf())},"Array, number":h,"Array, BigNumber":function(y,_){return h(y,_.toNumber())},"Matrix, number":p,"Matrix, BigNumber":function(y,_){return p(y,_.toNumber())},"Unit, number | BigNumber":function(y,_){return y.pow(_)}});function d(g,y){if(e.predictable&&!be(y)&&g<0)try{var _=c(y),w=u(_);if((y===w||Math.abs((y-w)/y)<1e-14)&&_.d%2===1)return(_.n%2===0?1:-1)*Math.pow(-g,y)}catch{}return e.predictable&&(g<-1&&y===1/0||g>-1&&g<0&&y===-1/0)?NaN:be(y)||g>=0||e.predictable?nf(g,y):g*g<1&&y===1/0||g*g>1&&y===-1/0?0:new f(g,0).pow(y,0)}function h(g,y){if(!be(y))throw new TypeError("For A^b, b must be an integer (value is "+y+")");var _=Ie(g);if(_.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+_.length+" dimensions)");if(_[0]!==_[1])throw new Error("For A^b, A must be square (size is "+_[0]+"x"+_[1]+")");if(y<0)try{return h(a(g),-y)}catch(x){throw x.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+y+")"):x}for(var w=r(_[0]).valueOf(),v=g;y>=1;)(y&1)===1&&(w=n(v,w)),y>>=1,v=n(v,v);return w}function p(g,y){return s(h(g.valueOf(),y))}}),If="dotDivide",Zv=["typed","matrix","equalScalar","divideScalar","DenseMatrix","concat"],Kv=mt(If,Zv,i=>{var{typed:t,matrix:e,equalScalar:r,divideScalar:n,DenseMatrix:s,concat:a}=i,u=qg({typed:t,equalScalar:r}),c=Ci({typed:t}),f=Xs({typed:t,DenseMatrix:s}),d=Wa({typed:t,equalScalar:r}),h=Ai({typed:t,DenseMatrix:s}),p=ti({typed:t,matrix:e,concat:a});return t(If,p({elop:n,SS:f,DS:c,SD:u,Ss:d,sS:h}))}),Qs="compare",Gv=["typed","config","matrix","equalScalar","BigNumber","Fraction","DenseMatrix","concat"],Jv=mt(Qs,Gv,i=>{var{typed:t,config:e,equalScalar:r,matrix:n,BigNumber:s,Fraction:a,DenseMatrix:u,concat:c}=i,f=Ci({typed:t}),d=mf({typed:t,equalScalar:r}),h=Ai({typed:t,DenseMatrix:u}),p=ti({typed:t,matrix:n,concat:c}),g=Gs({typed:t});return t(Qs,Xv({typed:t,config:e}),{"boolean, boolean":function(_,w){return _===w?0:_>w?1:-1},"BigNumber, BigNumber":function(_,w){return Ks(_,w,e.epsilon)?new s(0):new s(_.cmp(w))},"Fraction, Fraction":function(_,w){return new a(_.compare(w))},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")}},g,p({SS:d,DS:f,Ss:h}))}),Xv=mt(Qs,["typed","config"],i=>{var{typed:t,config:e}=i;return t(Qs,{"number, number":function(n,s){return Qn(n,s,e.epsilon)?0:n>s?1:-1}})}),to="equal",Qv=["typed","matrix","equalScalar","DenseMatrix","concat"],t1=mt(to,Qv,i=>{var{typed:t,matrix:e,equalScalar:r,DenseMatrix:n,concat:s}=i,a=Ci({typed:t}),u=Xs({typed:t,DenseMatrix:n}),c=Ai({typed:t,DenseMatrix:n}),f=ti({typed:t,matrix:e,concat:s});return t(to,e1({typed:t,equalScalar:r}),f({elop:r,SS:u,DS:a,Ss:c}))}),e1=mt(to,["typed","equalScalar"],i=>{var{typed:t,equalScalar:e}=i;return t(to,{"any, any":function(n,s){return n===null?s===null:s===null?n===null:n===void 0?s===void 0:s===void 0?n===void 0:e(n,s)}})}),eo="smaller",r1=["typed","config","matrix","DenseMatrix","concat"],n1=mt(eo,r1,i=>{var{typed:t,config:e,matrix:r,DenseMatrix:n,concat:s}=i,a=Ci({typed:t}),u=Xs({typed:t,DenseMatrix:n}),c=Ai({typed:t,DenseMatrix:n}),f=ti({typed:t,matrix:r,concat:s}),d=Gs({typed:t});return t(eo,i1({typed:t,config:e}),{"boolean, boolean":(h,p)=>h<p,"BigNumber, BigNumber":function(p,g){return p.lt(g)&&!Ks(p,g,e.epsilon)},"Fraction, Fraction":(h,p)=>h.compare(p)===-1,"Complex, Complex":function(p,g){throw new TypeError("No ordering relation is defined for complex numbers")}},d,f({SS:u,DS:a,Ss:c}))}),i1=mt(eo,["typed","config"],i=>{var{typed:t,config:e}=i;return t(eo,{"number, number":function(n,s){return n<s&&!Qn(n,s,e.epsilon)}})}),ro="larger",s1=["typed","config","matrix","DenseMatrix","concat"],o1=mt(ro,s1,i=>{var{typed:t,config:e,matrix:r,DenseMatrix:n,concat:s}=i,a=Ci({typed:t}),u=Xs({typed:t,DenseMatrix:n}),c=Ai({typed:t,DenseMatrix:n}),f=ti({typed:t,matrix:r,concat:s}),d=Gs({typed:t});return t(ro,a1({typed:t,config:e}),{"boolean, boolean":(h,p)=>h>p,"BigNumber, BigNumber":function(p,g){return p.gt(g)&&!Ks(p,g,e.epsilon)},"Fraction, Fraction":(h,p)=>h.compare(p)===1,"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")}},d,f({SS:u,DS:a,Ss:c}))}),a1=mt(ro,["typed","config"],i=>{var{typed:t,config:e}=i;return t(ro,{"number, number":function(n,s){return n>s&&!Qn(n,s,e.epsilon)}})}),$f="deepEqual",u1=["typed","equal"],l1=mt($f,u1,i=>{var{typed:t,equal:e}=i;return t($f,{"any, any":function(s,a){return r(s.valueOf(),a.valueOf())}});function r(n,s){if(Array.isArray(n))if(Array.isArray(s)){var a=n.length;if(a!==s.length)return!1;for(var u=0;u<a;u++)if(!r(n[u],s[u]))return!1;return!0}else return!1;else return Array.isArray(s)?!1:e(n,s)}}),Lf="partitionSelect",c1=["typed","isNumeric","isNaN","compare"],f1=mt(Lf,c1,i=>{var{typed:t,isNumeric:e,isNaN:r,compare:n}=i,s=n,a=(f,d)=>-n(f,d);return t(Lf,{"Array | Matrix, number":function(d,h){return u(d,h,s)},"Array | Matrix, number, string":function(d,h,p){if(p==="asc")return u(d,h,s);if(p==="desc")return u(d,h,a);throw new Error('Compare string must be "asc" or "desc"')},"Array | Matrix, number, function":u});function u(f,d,h){if(!be(d)||d<0)throw new Error("k must be a non-negative integer");if(ye(f)){var p=f.size();if(p.length>1)throw new Error("Only one dimensional matrices supported");return c(f.valueOf(),d,h)}if(Array.isArray(f))return c(f,d,h)}function c(f,d,h){if(d>=f.length)throw new Error("k out of bounds");for(var p=0;p<f.length;p++)if(e(f[p])&&r(f[p]))return f[p];for(var g=0,y=f.length-1;g<y;){for(var _=g,w=y,v=f[Math.floor(Math.random()*(y-g+1))+g];_<w;)if(h(f[_],v)>=0){var x=f[w];f[w]=f[_],f[_]=x,--w}else++_;h(f[_],v)>0&&--_,d<=_?y=_:g=_+1}return f[d]}}),Rf="max",h1=["typed","config","numeric","larger"],d1=mt(Rf,h1,i=>{var{typed:t,config:e,numeric:r,larger:n}=i;return t(Rf,{"Array | Matrix":a,"Array | Matrix, number | BigNumber":function(c,f){return ja(c,f.valueOf(),s)},"...":function(c){if(Vs(c))throw new TypeError("Scalar values expected in function max");return a(c)}});function s(u,c){try{return n(u,c)?u:c}catch(f){throw In(f,"max",c)}}function a(u){var c;if(ns(u,function(f){try{isNaN(f)&&typeof f=="number"?c=NaN:(c===void 0||n(f,c))&&(c=f)}catch(d){throw In(d,"max",f)}}),c===void 0)throw new Error("Cannot calculate max of an empty array");return typeof c=="string"&&(c=r(c,e.number)),c}}),Pf="min",p1=["typed","config","numeric","smaller"],_1=mt(Pf,p1,i=>{var{typed:t,config:e,numeric:r,smaller:n}=i;return t(Pf,{"Array | Matrix":a,"Array | Matrix, number | BigNumber":function(c,f){return ja(c,f.valueOf(),s)},"...":function(c){if(Vs(c))throw new TypeError("Scalar values expected in function min");return a(c)}});function s(u,c){try{return n(u,c)?u:c}catch(f){throw In(f,"min",c)}}function a(u){var c;if(ns(u,function(f){try{isNaN(f)&&typeof f=="number"?c=NaN:(c===void 0||n(f,c))&&(c=f)}catch(d){throw In(d,"min",f)}}),c===void 0)throw new Error("Cannot calculate min of an empty array");return typeof c=="string"&&(c=r(c,e.number)),c}}),kf="add",m1=["typed","matrix","addScalar","equalScalar","DenseMatrix","SparseMatrix","concat"],g1=mt(kf,m1,i=>{var{typed:t,matrix:e,addScalar:r,equalScalar:n,DenseMatrix:s,SparseMatrix:a,concat:u}=i,c=gf({typed:t}),f=iv({typed:t,equalScalar:n}),d=vf({typed:t,DenseMatrix:s}),h=ti({typed:t,matrix:e,concat:u});return t(kf,{"any, any":r,"any, any, ...any":t.referToSelf(p=>(g,y,_)=>{for(var w=p(g,y),v=0;v<_.length;v++)w=p(w,_[v]);return w})},h({elop:r,DS:c,SS:f,Ss:d}))}),zf="dot",v1=["typed","addScalar","multiplyScalar","conj","size"],y1=mt(zf,v1,i=>{var{typed:t,addScalar:e,multiplyScalar:r,conj:n,size:s}=i;return t(zf,{"Array | DenseMatrix, Array | DenseMatrix":u,"SparseMatrix, SparseMatrix":c});function a(d,h){var p=f(d),g=f(h),y,_;if(p.length===1)y=p[0];else if(p.length===2&&p[1]===1)y=p[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+p.join(", ")+")");if(g.length===1)_=g[0];else if(g.length===2&&g[1]===1)_=g[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+g.join(", ")+")");if(y!==_)throw new RangeError("Vectors must have equal length ("+y+" != "+_+")");if(y===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return y}function u(d,h){var p=a(d,h),g=ye(d)?d._data:d,y=ye(d)?d._datatype||d.getDataType():void 0,_=ye(h)?h._data:h,w=ye(h)?h._datatype||h.getDataType():void 0,v=f(d).length===2,x=f(h).length===2,b=e,N=r;if(y&&w&&y===w&&typeof y=="string"&&y!=="mixed"){var E=y;b=t.find(e,[E,E]),N=t.find(r,[E,E])}if(!v&&!x){for(var C=N(n(g[0]),_[0]),F=1;F<p;F++)C=b(C,N(n(g[F]),_[F]));return C}if(!v&&x){for(var S=N(n(g[0]),_[0][0]),I=1;I<p;I++)S=b(S,N(n(g[I]),_[I][0]));return S}if(v&&!x){for(var A=N(n(g[0][0]),_[0]),O=1;O<p;O++)A=b(A,N(n(g[O][0]),_[O]));return A}if(v&&x){for(var L=N(n(g[0][0]),_[0][0]),z=1;z<p;z++)L=b(L,N(n(g[z][0]),_[z][0]));return L}}function c(d,h){a(d,h);for(var p=d._index,g=d._values,y=h._index,_=h._values,w=0,v=e,x=r,b=0,N=0;b<p.length&&N<y.length;){var E=p[b],C=y[N];if(E<C){b++;continue}if(E>C){N++;continue}E===C&&(w=v(w,x(g[b],_[N])),b++,N++)}return w}function f(d){return ye(d)?d.size():s(d)}}),w1="trace",D1=["typed","matrix","add"],b1=mt(w1,D1,i=>{var{typed:t,matrix:e,add:r}=i;return t("trace",{Array:function(u){return n(e(u))},SparseMatrix:s,DenseMatrix:n,any:oe});function n(a){var u=a._size,c=a._data;switch(u.length){case 1:if(u[0]===1)return oe(c[0]);throw new RangeError("Matrix must be square (size: "+he(u)+")");case 2:{var f=u[0],d=u[1];if(f===d){for(var h=0,p=0;p<f;p++)h=r(h,c[p][p]);return h}else throw new RangeError("Matrix must be square (size: "+he(u)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+he(u)+")")}}function s(a){var u=a._values,c=a._index,f=a._ptr,d=a._size,h=d[0],p=d[1];if(h===p){var g=0;if(u.length>0)for(var y=0;y<p;y++)for(var _=f[y],w=f[y+1],v=_;v<w;v++){var x=c[v];if(x===y){g=r(g,u[v]);break}if(x>y)break}return g}throw new RangeError("Matrix must be square (size: "+he(d)+")")}}),qf="det",x1=["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],E1=mt(qf,x1,i=>{var{typed:t,matrix:e,subtractScalar:r,multiply:n,divideScalar:s,isZero:a,unaryMinus:u}=i;return t(qf,{any:function(d){return oe(d)},"Array | Matrix":function(d){var h;switch(ye(d)?h=d.size():Array.isArray(d)?(d=e(d),h=d.size()):h=[],h.length){case 0:return oe(d);case 1:if(h[0]===1)return oe(d.valueOf()[0]);if(h[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+he(h)+")");case 2:{var p=h[0],g=h[1];if(p===g)return c(d.clone().valueOf(),p);if(g===0)return 1;throw new RangeError("Matrix must be square (size: "+he(h)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+he(h)+")")}}});function c(f,d,h){if(d===1)return oe(f[0][0]);if(d===2)return r(n(f[0][0],f[1][1]),n(f[1][0],f[0][1]));for(var p=!1,g=new Array(d).fill(0).map((F,S)=>S),y=0;y<d;y++){var _=g[y];if(a(f[_][y])){var w=void 0;for(w=y+1;w<d;w++)if(!a(f[g[w]][y])){_=g[w],g[w]=g[y],g[y]=_,p=!p;break}if(w===d)return f[_][y]}for(var v=f[_][y],x=y===0?1:f[g[y-1]][y-1],b=y+1;b<d;b++)for(var N=g[b],E=y+1;E<d;E++)f[N][E]=s(r(n(f[N][E],v),n(f[N][y],f[_][E])),x)}var C=f[g[d-1]][d-1];return p?u(C):C}}),Uf="inv",A1=["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],C1=mt(Uf,A1,i=>{var{typed:t,matrix:e,divideScalar:r,addScalar:n,multiply:s,unaryMinus:a,det:u,identity:c,abs:f}=i;return t(Uf,{"Array | Matrix":function(p){var g=ye(p)?p.size():Ie(p);switch(g.length){case 1:if(g[0]===1)return ye(p)?e([r(1,p.valueOf()[0])]):[r(1,p[0])];throw new RangeError("Matrix must be square (size: "+he(g)+")");case 2:{var y=g[0],_=g[1];if(y===_)return ye(p)?e(d(p.valueOf(),y,_),p.storage()):d(p,y,_);throw new RangeError("Matrix must be square (size: "+he(g)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+he(g)+")")}},any:function(p){return r(1,p)}});function d(h,p,g){var y,_,w,v,x;if(p===1){if(v=h[0][0],v===0)throw Error("Cannot calculate inverse, determinant is zero");return[[r(1,v)]]}else if(p===2){var b=u(h);if(b===0)throw Error("Cannot calculate inverse, determinant is zero");return[[r(h[1][1],b),r(a(h[0][1]),b)],[r(a(h[1][0]),b),r(h[0][0],b)]]}else{var N=h.concat();for(y=0;y<p;y++)N[y]=N[y].concat();for(var E=c(p).valueOf(),C=0;C<g;C++){var F=f(N[C][C]),S=C;for(y=C+1;y<p;)f(N[y][C])>F&&(F=f(N[y][C]),S=y),y++;if(F===0)throw Error("Cannot calculate inverse, determinant is zero");y=S,y!==C&&(x=N[C],N[C]=N[y],N[y]=x,x=E[C],E[C]=E[y],E[y]=x);var I=N[C],A=E[C];for(y=0;y<p;y++){var O=N[y],L=E[y];if(y!==C){if(O[C]!==0){for(w=r(a(O[C]),I[C]),_=C;_<g;_++)O[_]=n(O[_],s(w,I[_]));for(_=0;_<g;_++)L[_]=n(L[_],s(w,A[_]))}}else{for(w=I[C],_=C;_<g;_++)O[_]=r(O[_],w);for(_=0;_<g;_++)L[_]=r(L[_],w)}}}return E}}}),jf="pinv",M1=["typed","matrix","inv","deepEqual","equal","dotDivide","dot","ctranspose","divideScalar","multiply","add","Complex"],F1=mt(jf,M1,i=>{var{typed:t,matrix:e,inv:r,deepEqual:n,equal:s,dotDivide:a,dot:u,ctranspose:c,divideScalar:f,multiply:d,add:h,Complex:p}=i;return t(jf,{"Array | Matrix":function(b){var N=ye(b)?b.size():Ie(b);switch(N.length){case 1:return v(b)?c(b):N[0]===1?r(b):a(c(b),u(b,b));case 2:{if(v(b))return c(b);var E=N[0],C=N[1];if(E===C)try{return r(b)}catch(F){if(!(F instanceof Error&&F.message.match(/Cannot calculate inverse, determinant is zero/)))throw F}return ye(b)?e(g(b.valueOf(),E,C),b.storage()):g(b,E,C)}default:throw new RangeError("Matrix must be two dimensional (size: "+he(N)+")")}},any:function(b){return s(b,0)?oe(b):f(1,b)}});function g(x,b,N){var{C:E,F:C}=_(x,b,N),F=d(r(d(c(E),E)),c(E)),S=d(c(C),r(d(C,c(C))));return d(S,F)}function y(x,b,N){for(var E=oe(x),C=0,F=0;F<b;F++){if(N<=C)return E;for(var S=F;w(E[S][C]);)if(S++,b===S&&(S=F,C++,N===C))return E;[E[S],E[F]]=[E[F],E[S]];for(var I=E[F][C],A=0;A<N;A++)E[F][A]=a(E[F][A],I);for(var O=0;O<b;O++)if(O!==F){I=E[O][C];for(var L=0;L<N;L++)E[O][L]=h(E[O][L],d(-1,d(I,E[F][L])))}C++}return E}function _(x,b,N){var E=y(x,b,N),C=x.map((S,I)=>S.filter((A,O)=>O<b&&!w(u(E[O],E[O])))),F=E.filter((S,I)=>!w(u(E[I],E[I])));return{C,F}}function w(x){return s(h(x,p(1,1)),h(0,p(1,1)))}function v(x){return n(h(x,p(1,1)),h(d(x,0),p(1,1)))}}),N1="divide",S1=["typed","matrix","multiply","equalScalar","divideScalar","inv"],O1=mt(N1,S1,i=>{var{typed:t,matrix:e,multiply:r,equalScalar:n,divideScalar:s,inv:a}=i,u=Wa({typed:t,equalScalar:n}),c=Ya({typed:t});return t("divide",uc({"Array | Matrix, Array | Matrix":function(d,h){return r(d,a(h))},"DenseMatrix, any":function(d,h){return c(d,h,s,!1)},"SparseMatrix, any":function(d,h){return u(d,h,s,!1)},"Array, any":function(d,h){return c(e(d),h,s,!1).valueOf()},"any, Array | Matrix":function(d,h){return r(d,a(h))}},s.signatures))}),Wf="sum",B1=["typed","config","add","numeric"],T1=mt(Wf,B1,i=>{var{typed:t,config:e,add:r,numeric:n}=i;return t(Wf,{"Array | Matrix":s,"Array | Matrix, number | BigNumber":a,"...":function(c){if(Vs(c))throw new TypeError("Scalar values expected in function sum");return s(c)}});function s(u){var c;return ns(u,function(f){try{c=c===void 0?f:r(c,f)}catch(d){throw In(d,"sum",f)}}),c===void 0&&(c=n(0,e.number)),typeof c=="string"&&(c=n(c,e.number)),c}function a(u,c){try{var f=ja(u,c,r);return f}catch(d){throw In(d,"sum")}}}),Yf="median",I1=["typed","add","divide","compare","partitionSelect"],$1=mt(Yf,I1,i=>{var{typed:t,add:e,divide:r,compare:n,partitionSelect:s}=i;function a(f){try{f=Ia(f.valueOf());var d=f.length;if(d===0)throw new Error("Cannot calculate median of an empty array");if(d%2===0){for(var h=d/2-1,p=s(f,h+1),g=f[h],y=0;y<h;++y)n(f[y],g)>0&&(g=f[y]);return c(g,p)}else{var _=s(f,(d-1)/2);return u(_)}}catch(w){throw In(w,"median")}}var u=t({"number | BigNumber | Complex | Unit":function(d){return d}}),c=t({"number | BigNumber | Complex | Unit, number | BigNumber | Complex | Unit":function(d,h){return r(e(d,h),2)}});return t(Yf,{"Array | Matrix":a,"Array | Matrix, number | BigNumber":function(d,h){throw new Error("median(A, dim) is not yet supported")},"...":function(d){if(Vs(d))throw new TypeError("Scalar values expected in function median");return a(d)}})}),no=Lm({config:yr}),Va=zm({}),Ha=Wm({}),Za=Hm({}),nn=Gm({Matrix:Za}),Ft=k_({BigNumber:no,Complex:Va,DenseMatrix:nn,Fraction:Ha}),L1=Fg({typed:Ft}),io=Sg({typed:Ft}),R1=yg({BigNumber:no,typed:Ft}),Vf=gv({typed:Ft}),$n=ug({config:yr,typed:Ft}),so=Qm({typed:Ft}),P1=ng({typed:Ft}),oo=lv({typed:Ft}),Hf=mg({typed:Ft}),Ka=fg({Matrix:Za,equalScalar:$n,typed:Ft}),Zf=Bg({typed:Ft}),Kf=sg({typed:Ft}),Ga=Cg({typed:Ft}),Gf=bg({Fraction:Ha,typed:Ft}),Jf=eg({typed:Ft}),$e=Eg({DenseMatrix:nn,Matrix:Za,SparseMatrix:Ka,typed:Ft}),Xf=Pv({isNaN:Kf,isNumeric:Jf,typed:Ft}),is=jv({bignumber:R1,fraction:Gf,number:Hf}),k1=zv({config:yr,multiplyScalar:oo,numeric:is,typed:Ft}),z1=Sv({isInteger:so,matrix:$e,typed:Ft}),Qf=Bv({matrix:$e,config:yr,typed:Ft}),th=Iv({matrix:$e,typed:Ft}),ei=yv({isInteger:so,matrix:$e,typed:Ft}),q1=Dv({prod:k1,size:Qf,typed:Ft}),U1=Lv({conj:Vf,transpose:th,typed:Ft}),ss=Yv({numeric:is,typed:Ft}),j1=Kv({DenseMatrix:nn,concat:ei,divideScalar:ss,equalScalar:$n,matrix:$e,typed:Ft}),eh=t1({DenseMatrix:nn,concat:ei,equalScalar:$n,matrix:$e,typed:Ft}),rh=xv({BigNumber:no,DenseMatrix:nn,SparseMatrix:Ka,config:yr,matrix:$e,typed:Ft}),W1=Av({matrix:$e,multiplyScalar:oo,typed:Ft}),Y1=n1({DenseMatrix:nn,concat:ei,config:yr,matrix:$e,typed:Ft}),V1=dv({DenseMatrix:nn,concat:ei,equalScalar:$n,matrix:$e,subtractScalar:Zf,typed:Ft,unaryMinus:Ga}),os=g1({DenseMatrix:nn,SparseMatrix:Ka,addScalar:io,concat:ei,equalScalar:$n,matrix:$e,typed:Ft}),nh=Jv({BigNumber:no,DenseMatrix:nn,Fraction:Ha,concat:ei,config:yr,equalScalar:$n,matrix:$e,typed:Ft}),H1=l1({equal:eh,typed:Ft}),ih=y1({addScalar:io,conj:Vf,multiplyScalar:oo,size:Qf,typed:Ft}),Z1=o1({DenseMatrix:nn,concat:ei,config:yr,matrix:$e,typed:Ft}),Ja=_1({config:yr,numeric:is,smaller:Y1,typed:Ft}),Mi=fv({addScalar:io,dot:ih,equalScalar:$n,matrix:$e,multiplyScalar:oo,typed:Ft}),K1=f1({compare:nh,isNaN:Kf,isNumeric:Jf,typed:Ft}),G1=T1({add:os,config:yr,numeric:is,typed:Ft}),J1=b1({add:os,matrix:$e,typed:Ft}),sh=E1({divideScalar:ss,isZero:P1,matrix:$e,multiply:Mi,subtractScalar:Zf,typed:Ft,unaryMinus:Ga}),X1=d1({config:yr,larger:Z1,numeric:is,typed:Ft}),ao=C1({abs:L1,addScalar:io,det:sh,divideScalar:ss,identity:rh,matrix:$e,multiply:Mi,typed:Ft,unaryMinus:Ga}),Q1=F1({Complex:Va,add:os,ctranspose:U1,deepEqual:H1,divideScalar:ss,dot:ih,dotDivide:j1,equal:eh,inv:ao,matrix:$e,multiply:Mi,typed:Ft}),ty=Hv({Complex:Va,config:yr,fraction:Gf,identity:rh,inv:ao,matrix:$e,multiply:Mi,number:Hf,typed:Ft}),ey=O1({divideScalar:ss,equalScalar:$n,inv:ao,matrix:$e,multiply:Mi,typed:Ft}),oh=$1({add:os,compare:nh,divide:ey,partitionSelect:K1,typed:Ft});class ry{constructor(t,e,r){$(this,"_cacheData");$(this,"_variables");$(this,"_math");$(this,"_timeframe");this._cacheData={},this._variables=t,this._math=e,this._timeframe=r}alma({series:t,length:e,offset:r,sigma:n,floor:s},a){if(e===void 0||r===void 0||n===void 0)return;const u=this._cacheDataList(t,e,`alma_${a}`);if(u===void 0)return;let c=r*(e-1);s&&(c=Math.floor(c));const f=e/n;let d=0,h=0;for(let p=0;p<=e-1;p++){const g=Math.exp(-1*Math.pow(p-c,2)/(2*Math.pow(f,2)));d+=g,h+=u[u.length-1-(e-p-1)]*g}return h/d}sma({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return;let n=0;const s=this._cacheDataList(t,e,`sma_${r}`);if(s===void 0)return;const a=s.slice(-e);return n=G1(...a)/e,n}rma({source:t,length:e},r){if(t===void 0||e===void 0||isNaN(t))return;const{sum:n}=this._cacheData[`rma_${r}`]||{},s=1/e,a=this.sma({source:t,length:e},r),u=n===void 0?a:s*t+(1-s)*(n||0);return this._cacheDataHandle(`rma_${r}`,{sum:u}),u}atr({length:t},e){const{high:r,close:n}=this._cacheData[`atr_${e}`]||{},{high:s,close:a,low:u}=this._variables,c=r===void 0?s-u:Math.max(Math.max(s-u,Math.abs(s-n)),Math.abs(u-n));return this._cacheDataHandle(`atr_${e}`,{high:s,close:a}),this.rma({source:c,length:t},e)}barssince({condition:t},e){let{count:r}=this._cacheData[`barssince_${e}`]||{};if(t)r=0;else{if(r===void 0)return;r+=1}return this._cacheDataHandle(`barssince_${e}`,{count:r}),r}stdev({source:t,length:e,biased:r=!0},n){if(t===void 0||isNaN(t)||e===void 0)return;const s=this._cacheDataList(t,e,`stdev_${n}`),a=this.sma({source:t,length:e},n);if(s===void 0)return;let u=0;for(let c=0;c<e;c++){const f=this._sum(s[s.length-1-c],-(a||0));u+=f*f}return r||e<=1?Math.sqrt(u/e):Math.sqrt(u/(e-1))}_sum(t,e){let n=t+e;return Math.abs(n)<=1e-10&&(n=0),n}bb({series:t,length:e,mult:r},n){if(t===void 0||isNaN(t)||e===void 0||r===void 0)return[];const s=this.sma({source:t,length:e},n),a=this.stdev({source:t,length:e},n);if(s===void 0||a===void 0)return[];const u=r*a;return[s,s+u,s-u]}bbw({series:t,length:e,mult:r},n){if(t===void 0||isNaN(t)||e===void 0||r===void 0)return;const s=this.sma({source:t,length:e},n),a=this.stdev({source:t,length:e},n);if(s===void 0||a===void 0)return;const u=r*a;return(s+u-(s-u))/s}cci({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return;const n=this.sma({source:t,length:e},r),s=this.dev({source:t,length:e},r);if(!(n===void 0||s===void 0))return(t-n)/(.015*s)}change({source:t,length:e=1},r){const n=this._cacheDataList(t,e,`change_${r}`);if(n===void 0)return;const s=n[n.length-1-e];if(!(t===void 0||isNaN(t)))return s===void 0?s:typeof t=="boolean"?s!==t:t-s}cmo({series:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return;const n=this.change({source:t},r);if(n===void 0)return;const s=this._math.sum({source:n>=0?n:0,length:e},`sm1_${r}`),a=this._math.sum({source:n>=0?0:-n,length:e},`sm2_${r}`);if(!(s===void 0||a===void 0))return 100*(s-a)/(s+a)}cog({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return;const n=this._cacheDataList(t,e,`cog_${r}`),s=this._math.sum({source:t,length:e},r);if(s===void 0||n===void 0)return;let a=0;for(let u=0;u<e;u++){const c=n[n.length-1-u];a+=c*(u+1)}return-a/s}correlation({source1:t,source2:e,length:r},n){if(t===void 0||isNaN(t)||e===void 0||isNaN(e)||r===void 0)return;const s=this._cacheDataList([t,e],r,`correlation_${n}`),a=this.sma({source:t,length:r},`sma1_${n}`),u=this.sma({source:e,length:r},`sma2_${n}`);if(a===void 0||u===void 0||s===void 0)return;let c=0,f=0,d=0;for(let p=0;p<r;p++){const[g,y]=s[s.length-1-p],_=g-a,w=y-u;c+=_*w,f+=_*_,d+=w*w}return isNaN(f)||isNaN(c)||isNaN(d)?void 0:c/Math.sqrt(f*d)}cross({source1:t,source2:e},r){if(t===void 0||e===void 0)return!1;const{source1:n,source2:s}=this._cacheData[`cross_${r}`]||{};return this._cacheDataHandle(`cross_${r}`,{source1:t,source2:e}),n===void 0||s===void 0?!1:n>=s&&t<e||n<=s&&t>e}crossover({source1:t,source2:e},r){if(t===void 0||e===void 0)return!1;const{source1:n,source2:s}=this._cacheData[`crossover_${r}`]||{};return this._cacheDataHandle(`crossover_${r}`,{source1:t,source2:e}),n===void 0||s===void 0?!1:n<=s&&t>e}crossunder({source1:t,source2:e},r){if(t===void 0||e===void 0)return!1;const{source1:n,source2:s}=this._cacheData[`crossunder_${r}`]||{};return this._cacheDataHandle(`crossunder_${r}`,{source1:t,source2:e}),n===void 0||s===void 0?!1:n>=s&&t<e}cum({source:t=0},e){t=isNaN(t)?0:t;let{sum:r}=this._cacheData[`cum_${e}`]||{};return r=r||0,r+=t,this._cacheDataHandle(`cum_${e}`,{sum:r}),r}dev({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return;const n=this.sma({source:t,length:e},r);let s=0;const a=this._cacheDataList(t,e,`dev_${r}`);if(!(!a||n===void 0)){for(let u=0;u<e;u++){const c=a[a.length-1-u];s+=Math.abs(c-n)}return s/e}}dmi({diLength:t,adxSmoothing:e},r){if(t===void 0||e===void 0)return[void 0,void 0,void 0];const n=`dmi_${r}`,{low:s,high:a,close:u,PDMS:c,NDMS:f,TRS:d,ADX:h,count:p=0}=this._cacheData[n]||{},{low:g,high:y,close:_}=this._variables;if(s===void 0||a===void 0||u===void 0)return this._cacheData[n]={low:g,high:y,close:_,PDMS:c,NDMS:f,TRS:y-g,count:1},[void 0,void 0,void 0];let w=y-a,v=s-g;w=w>v&&w>0?w:0,v=v>w&&v>0?v:0,w===v&&(w=v=0);const x=Math.max(y-g,Math.abs(y-u),Math.abs(g-u));if(p<t)return this._cacheDataHandle(n,{low:g,high:y,close:_,PDMS:(c||0)+w,NDMS:(f||0)+v,TRS:(d||0)+x,count:p+1}),[void 0,void 0,void 0];{const b=c-c/t+w,N=f-f/t+v,E=d-d/t+x,C=b/E*100,F=N/E*100,S=Math.abs((C-F)/(C+F))*100;let I=S,A=[C,F,void 0];if(p+1-t<e){const O=p+1-t;I=((h||0)*(O-1)+S)/O}else I=(h*(e-1)+S)/e,A=[C,F,I];return this._cacheDataHandle(n,{low:g,high:y,close:_,PDMS:b,NDMS:N,TRS:E,ADX:I,count:p+1}),A}}ema({source:t,length:e},r){if(t===void 0||e===void 0||isNaN(t))return;let{sum:n,count:s=1}=this._cacheData[`ema_${r}`]||{};const a=this.sma({source:t,length:e},r);if(s>e){const u=2/(e+1);n=n===void 0?t:u*t+(1-u)*(n||0)}else n=a;return s+=1,this._cacheDataHandle(`ema_${r}`,{sum:n,count:s}),n}falling({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return!1;const{source:n,fallings:s=[]}=this._cacheData[`falling_${r}`]||{};s.push(n>t);const a=s.slice(-e);return this._cacheDataHandle(`falling_${r}`,{source:t,fallings:a}),a.length<e?!1:a.every(u=>u)}rising({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0)return!1;const{source:n,risings:s=[]}=this._cacheData[`rising_${r}`]||{};s.push(n<t);const a=s.slice(-e);return this._cacheDataHandle(`rising_${r}`,{source:t,risings:a}),a.length<e?!1:a.every(u=>u)}highest({source:t,length:e},r){if(e===void 0||e<=0)return;const{high:n}=this._variables,s=this._cacheDataList(typeof t!="number"?n:t,e,`highest_${r}`);if(s)return Math.max(...s.slice(-e))}highestbars({source:t,length:e},r){if(e===void 0||e<=0)return;const{high:n}=this._variables,s=this._cacheDataList(typeof t!="number"?n:t,e,`highestbars_${r}`);return s?s.slice(-e).reduce((u,c,f,d)=>c>=d[u]?f:u,0)-e+1:void 0}wma({source:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<=0)return;const n=this._cacheDataList(t,e,`wma_${r}`);if(!n)return;let s=0,a=0;for(let u=0;u<e;u++){const c=(e-u)*e;s+=c,a+=n[n.length-1-u]*c}return a/s}hma({source:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<=0)return;const n=this.wma({source:t,length:e},r),s=this.wma({source:t,length:Math.round(e/2)},r);return n===void 0||s===void 0?void 0:this.wma({source:2*s-n,length:Math.floor(Math.sqrt(e))},`hma_${r}`)}kc({series:t,length:e,mult:r,useTrueRange:n=!0},s){if(t===void 0||isNaN(t)||e===void 0||r===void 0)return[void 0,void 0,void 0];const a=this.ema({source:t,length:e},s),{ta:u,high:c,low:f}=this._variables,d=n?u.tr:c-f,h=this.ema({source:d,length:e},`range_${s}`);return[a,a+h*r,a-h*r]}kcw({series:t,length:e,mult:r,useTrueRange:n=!0},s){if(t===void 0||isNaN(t)||e===void 0||r===void 0)return;const a=this.ema({source:t,length:e},s),{ta:u,high:c,low:f}=this._variables,d=n?u.tr:c-f,h=this.ema({source:d,length:e},`range_${s}`);return(a+h*r-(a-h*r))/a}linreg({source:t,length:e,offset:r},n){if(e===void 0||r===void 0)return;const s=this._cacheDataList(t,e,`dev_${n}`);if(!s)return;const a=s.slice(-e).filter(g=>g!==void 0);let u=0,c=0,f=0,d=0;for(const[g,y]of a.entries())u+=g,c+=y,f+=g*y,d+=g*g;const h=(e*f-u*c)/(e*d-u*u);return(c-h*u)/e+h*(e-1-r)}lowest({source:t,length:e},r){if(e===void 0||e<=0)return;const{low:n}=this._variables,s=this._cacheDataList(typeof t!="number"?n:t,e,`lowest_${r}`);if(s)return Math.min(...s.slice(-e))}lowestbars({source:t,length:e},r){if(e===void 0||e<=0)return;const{low:n}=this._variables,s=this._cacheDataList(typeof t!="number"?n:t,e,`lowestbars_${r}`);return s?s.slice(-e).reduce((u,c,f,d)=>c<=d[u]?f:u,0)-e+1:void 0}macd({source:t,fastlen:e,slowlen:r,siglen:n},s){if(t===void 0||isNaN(t)||e===void 0||r===void 0||n===void 0)return[void 0,void 0,void 0];const a=this.ema({source:t,length:e},`ema1_${s}`),u=this.ema({source:t,length:r},`ema2_${s}`);if(a===void 0||u===void 0)return[void 0,void 0,void 0];const c=a-u,f=this.ema({source:c,length:n},`macd_${s}`);if(f===void 0)return[c,f,void 0];const d=c-f;return[c,f,d]}max({source:t},e){if(t===void 0||isNaN(t))return;let r=this._cacheData[`max_${e}`]||0;return t>r&&(r=t),this._cacheData[`max_${e}`]=r,r}min({source:t},e){if(t===void 0||isNaN(t))return;let r=this._cacheData[`min_${e}`]||1/0;return t<r&&(r=t),this._cacheData[`min_${e}`]=r,r}median({source:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<=0)return;const n=this._cacheDataList(t,e,`dev_${r}`);if(n)return oh(n.slice(-e))}mfi({series:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<=0)return;const{volume:n}=this._variables,s=this.change({source:t},r),a=this._math.sum({source:n*(s>=0?0:t),length:e},`lower_${r}`),u=this._math.sum({source:n*(s<=0?0:t),length:e},`upper_${r}`);if(!(u===void 0||a===void 0))return 100-100/(1+u/a)}mode({source:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<=0)return;const n=this._cacheDataList(t,e,`mode_${r}`);if(n)return Ja(Xf(n.slice(-e)))}mom({source:t,length:e},r){if(e===void 0||e<0)return;const n=`mom_${r}`,s=this._cacheData[n]||[];if(s[this._variables.bar_index]=t,this._cacheData[n]=s,s.length<=e||t===void 0||isNaN(t))return;let a=s.length-e-1,u;for(;u===void 0&&a>=0;)u=s[a],a--;return u===void 0?u:t-u}percentile_linear_interpolation({source:t,length:e,percentage:r},n){if(e===void 0||r===void 0||e<0||r<0||r>100)return;const s=this._cacheDataList(t,e+1,`percentile_linear_interpolation_${n}`);if(!s)return;const a=this._sort(s.slice(-(e+1))),u=a.length;r/=100;const c=1/(u*2);if(r<=c)return a[0];if(r>=1-1/(u*2))return a[u-1];for(const[f,d]of a.entries()){const h=a[f-1];if(r<(f+.5)/u)return h===void 0||d===void 0?void 0:h+(d-h)*(r-(f-.5)/u)/(1/u)}}percentile_nearest_rank({source:t,length:e,percentage:r},n){if(e===void 0||r===void 0||t===void 0||isNaN(t)||e<0||r<0||r>100)return;const s=this._cacheDataList(t,e,`percentile_nearest_rank_${n}`);if(!s)return;const a=this._sort(s.slice(-e)),u=r/100*a.length,c=Math.ceil(u)-1;return a[c>=a.length?a.length-1:c]}percentrank({source:t,length:e},r){if(e===void 0||e<0)return;const n=this._cacheDataList(t,e+1,`percentile_nearest_rank_${r}`);if(!n)return;const s=n.slice(-(e+1)),a=t;if(a===void 0)return;let u=0;for(let c=0;c<s.length;c++)s[c]!==void 0&&(s[c]<a||s[c]===a&&c<e)&&u++;return u/(s.length-1)*100}pivot_point_levels({type:t,anchor:e,developing:r},n){const s=new te;let{close:a,open:u,low:c,high:f}=this._variables;const d=`pivot_point_levels_${n}`,{close:h,low:p,high:g,open:y,result:_}=this._cacheData[d]||{};if(!e&&(g&&p&&(f=Math.max(g,f),c=Math.min(p,c)),this._cacheDataHandle(d,{close:a,open:u,low:c,high:f,result:_}),!r))return s._value=_||[],s;const w={close:a,open:u,low:c,high:f};e===!0&&!r&&(a=h,u=y,c=p,f=g);const v=this._getPivotPointLevels(f,c,a,u,r,t);return this._cacheDataHandle(d,{...w,result:v}),s._value=v,s}_getPivotPointLevels(t,e,r,n,s,a){if(r===void 0||n===void 0||e===void 0||t===void 0)return[];switch(a){case Xn.traditional:return this._traditional(t,e,r);case Xn.fibonacci:return this._fibonacci(t,e,r);case Xn.woodie:return s?[]:this._woodie(t,e);case Xn.classic:return this._classic(t,e,r);case Xn.dm:return this._DM(t,e,r,n);case Xn.camarilla:return this._camarilla(t,e,r);default:return[]}}_traditional(t,e,r){const n=(t+e+r)/3,s=n*2-e,a=n+(t-e),u=n*2+(t-2*e),c=n*3+(t-3*e),f=n*4+(t-4*e),d=n*2-t,h=n-(t-e),p=n*2-(2*t-e),g=n*3-(3*t-e),y=n*4-(4*t-e);return[n,s,d,a,h,u,p,c,g,f,y]}_fibonacci(t,e,r){const n=(t+e+r)/3,s=n+.382*(t-e),a=n-.382*(t-e),u=n+.618*(t-e),c=n-.618*(t-e),f=n+(t-e),d=n-(t-e);return[n,s,a,u,c,f,d]}_woodie(t,e){const{open:r}=this._variables,n=(t+e+2*r)/4,s=2*n-e,a=2*n-t,u=n+(t-e),c=n-(t-e),f=t+2*(n-e),d=e-2*(t-n),h=f+(t-e),p=d-(t-e);return[n,s,a,u,c,f,d,h,p]}_classic(t,e,r){const n=(t+e+r)/3,s=2*n-e,a=2*n-t,u=n+(t-e),c=n-(t-e),f=n+2*(t-e),d=n-2*(t-e),h=n+3*(t-e),p=n-3*(t-e);return[n,s,a,u,c,f,d,h,p]}_DM(t,e,r,n){let s;n===r?s=t+e+2*r:r>n?s=2*t+e+r:s=2*e+t+r;const a=s/4,u=s/2-e,c=s/2-t;return[a,u,c]}_camarilla(t,e,r){const n=(t+e+r)/3,s=r+1.1*(t-e)/12,a=r-1.1*(t-e)/12,u=r+1.1*(t-e)/6,c=r-1.1*(t-e)/6,f=r+1.1*(t-e)/4,d=r-1.1*(t-e)/4,h=r+1.1*(t-e)/2,p=r-1.1*(t-e)/2,g=t/e*r,y=r-(g-r);return[n,s,a,u,c,f,d,h,p,g,y]}pivothigh({source:t=this._variables.high,leftbars:e,rightbars:r},n){if(e===void 0||r===void 0||e<0||r<0)return;const s=this._cacheDataList(t,e+r+1,`pivothigh_${n}`);if(!s)return;const a=s.slice(-(e+r+1)),u=a[e];return Math.max(...a)===u?u:void 0}pivotlow({source:t=this._variables.low,leftbars:e,rightbars:r},n){if(e===void 0||r===void 0||e<0||r<0)return;const s=this._cacheDataList(t,e+r+1,`pivotlow_${n}`);if(!s)return;const a=s.slice(-(e+r+1)),u=a[e];return Math.min(...a)===u?u:void 0}range({source:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<0)return;const n=this._cacheDataList(t,e,`range_${r}`,!0);if(!n)return;const s=n.filter(c=>c!==void 0).slice(-e),a=Math.max(...s),u=Math.min(...s);return a-u}roc({source:t,length:e},r){if(e===void 0||e<0)return;const n=this._cacheDataList(t,e+1,`roc_${r}`),s=this.change({source:t,length:e},r);if(n)return 100*s/n[n.length-1-e]}rsi({source:t,length:e},r){if(e===void 0||t===void 0||isNaN(t)||e<0)return;const{source:n}=this._cacheData[`rsi_${r}`]||{},s=Math.max(t-n,0),a=Math.max(n-t,0),u=this.rma({source:s,length:e},`rma1_${r}`),c=this.rma({source:a,length:e},`rma2_${r}`);if(this._cacheDataHandle(`rsi_${r}`,{source:t}),!(u===void 0||c===void 0))return 100-100/(1+u/c)}sar({start:t,inc:e,max:r},n){if(t===void 0||e===void 0||r===void 0)return;const{close:s,low:a,high:u,preLow:c,preHigh:f,data:d={}}=this._cacheData[`sar_${n}`]||{};let{result:h,maxMin:p,acceleration:g,isBelow:y}=d,_=!1;const{close:w,low:v,high:x,bar_index:b}=this._variables;return b===1&&(w>s?(y=!0,p=x,h=a):(y=!1,p=v,h=u),_=!0,g=t),h=h+g*(p-h),y?h>v&&(_=!0,y=!1,h=Math.max(x,p||0),p=v,g=t):h<x&&(_=!0,y=!0,h=Math.min(v,p||0),p=x,g=t),_||(y?x>(p||0)&&(p=x,g=Math.min((g||0)+e,r)):v<(p||0)&&(p=v,g=Math.min((g||0)+e,r))),y?(h=Math.min(h,a),b>1&&(h=Math.min(h,c))):(h=Math.max(h,u),b>1&&(h=Math.max(h,f))),this._cacheDataHandle(`sar_${n}`,{high:x,close:w,low:v,preLow:a,preHigh:u,data:Object.assign(d,{result:h,maxMin:p,acceleration:g,isBelow:y})}),h}stoch({source:t,high:e,low:r,length:n},s){if(n===void 0||e===void 0||r===void 0||t===void 0||isNaN(t)||n<0)return;const a=this.lowest({source:r,length:n},s),u=this.highest({source:e,length:n},s);if(!(a===void 0||u===void 0))return 100*(t-a)/(u-a)}supertrend({factor:t,atrPeriod:e},r){if(t===void 0||e===void 0)return[void 0,void 0];const{hl2:n,close:s}=this._variables,a=`supertrend_${r}`,{upperBand:u,lowerBand:c,superTrend:f,atr:d,close:h}=this._cacheData[a]||{},p=this.atr({length:e},r);if(p===void 0)return this._cacheDataHandle(a,{close:s}),[void 0,void 0];let g=n+t*p,y=n-t*p;const _=u||0,w=c||0;y=y>w||h<w?y:w,g=g<_||h>_?g:_;let v;d===void 0?v=1:f===_?v=s>g?-1:1:v=s<y?1:-1;const x=v===-1?y:g;return this._cacheDataHandle(a,{upperBand:g,lowerBand:y,superTrend:x,atr:p,close:s}),[x,v]}swma({source:t},e){let{list:r}=this._cacheData[`swma_${e}`]||{};if(r||(r=[]),r.push(t),r=r.slice(-4),this._cacheDataHandle(`swma_${e}`,{list:r}),!(r.filter(n=>n!==void 0).length<4))return r[3]*1/6+r[2]*2/6+r[1]*2/6+r[0]*1/6}tr({handle_na:t=!1},e){const{close:r,low:n,high:s}=this._variables,{close:a}=this._cacheData[`tr_${e}`]||{};return this._cacheDataHandle(`tr_${e}`,{close:r}),a===void 0?t?s-n:void 0:Math.max(s-n,Math.abs(s-a),Math.abs(n-a))}tsi({source:t,short_length:e,long_length:r},n){if(t===void 0||isNaN(t)||e===void 0||r===void 0)return;const s=this.change({source:t},n);if(s===void 0)return;const a=this.ema({source:Math.abs(s),length:e},`absema1_${n}`),u=this.ema({source:s,length:e},`ema1_${n}`);if(u===void 0)return;const c=this.ema({source:u,length:r},`ema2_${n}`),f=this.ema({source:a,length:e},`absema2_${n}`);if(c!==void 0)return c/f}valuewhen({condition:t,source:e,occurrence:r},n){if(e===void 0||r===void 0||r<0)return;let{list:s}=this._cacheData[`valuewhen_${n}`]||{};return s||(s=[]),t&&s.push(e),this._cacheDataHandle(`valuewhen_${n}`,{list:s}),s[s.length-1-r]}variance({source:t,length:e,biased:r=!0},n){if(t===void 0||isNaN(t)||e===void 0||e<0)return;const s=this.sma({source:t,length:e},n),a=this._cacheDataList(t,e,`variance_${n}`,!0);if(!a||s===void 0)return;const u=a.filter(f=>f!==void 0&&!isNaN(f)).slice(-e);if(u.length<e)return;const c=u.reduce((f,d)=>f+Math.pow(d-s,2),0);if(c!==void 0)return r||e<=1?c/e:c/(e-1)}vwap({source:t,anchor:e,stdev_mult:r},n){if(t===void 0)return;e=e===void 0?this._timeframe.change({timeframe:"1D"},n):e;const{volume:s}=this._variables;let{sum:a=0,sumV:u=0,count:c=0,isReset:f,sumS:d=0}=this._cacheData[`vwap_${n}`]||{};if(e&&(a=u=c=d=0,f=!0),!f)return r!==void 0?[]:void 0;const h=t*s+a,p=s+u,g=h/p;return c++,r!==void 0?(d=s*Math.pow(t,2)+d,this._cacheDataHandle(`vwap_${n}`,{sum:h,sumV:p,count:c,isReset:f,sumS:d}),this._computeBands(d,p,r,g)):(this._cacheDataHandle(`vwap_${n}`,{sum:h,sumV:p,count:c,isReset:f}),g)}_computeBands(t,e,r,n){let s=t/e-Math.pow(n,2);s=s<0?0:s;const a=Math.sqrt(s),u=a!==void 0&&!isNaN(a)?n+r*a:void 0,c=a!==void 0&&!isNaN(a)?n-r*a:void 0;return[n,u,c]}vwma({source:t,length:e},r){if(t===void 0||isNaN(t)||e===void 0||e<=0)return;const{volume:n}=this._variables,s=this.sma({source:t*n,length:e},`sma1_${r}`),a=this.sma({source:n,length:e},`sma2_${r}`);if(!(s===void 0||a===void 0))return s/a}wpr({length:t},e){if(t===void 0||t<=0)return;const r=this.highest({length:t},e),n=this.lowest({length:t},e),{close:s}=this._variables;if(!(r===void 0||n===void 0))return(r-s)/(r-n)*-100}_sort(t){const e=t.length;for(let r=0;r<e;r++){let n={};for(let s=0;s<e-r;s++){const{currentVal:a,currentIndex:u}=n,c=t[s];if(c!==void 0){if(a!==void 0&&c<a){t.splice(s,1),t.splice(u,0,c),n={currentIndex:u+1,currentVal:a};continue}n={currentIndex:s,currentVal:c}}}}return t}_cacheDataList(t,e,r,n=!1){const s=this._cacheData[r]||{barIndex:-1,list:[]},{bar_index:a}=this._variables;if(s.barIndex<=a){const u=s.list.length;if(s.barIndex===a)s.list[u-1]=t;else{let c=a-s.barIndex-1;if(s.barIndex!==-1&&c>0){const f=s.list[u-1];for(;c>0;)s.list.push(f),c--}s.list.push(t)}s.barIndex=a,s.list.length>e+5&&!n&&s.list.shift(),this._cacheData[r]=s}if(!(s.list.length<e))return s.list}_cacheDataHandle(t,e){const{barIndex:r}=this._cacheData[t]||{};r!==this._variables.bar_index&&!this._variables._isRealTimeBar&&(this._cacheData[t]=Object.assign(e,{barIndex:this._variables.bar_index}))}}class ny{constructor(t,e,r){$(this,"_cacheData");$(this,"_variables");$(this,"_errorListener");$(this,"_historyInputs");$(this,"_name");this._cacheData={},this._variables=t,this._errorListener=e,this._name=`inputs_${r}`,this._historyInputs=self.workerStorage.get(this._name)||{}}update(t){if(!(t!=null&&t.length)){self.workerStorage.delete(this._name),this._cacheData={};return}for(const e of t){const r=e.id,n=this._historyInputs[r];(!(e!=null&&e.sourceTypeName)&&(n==null?void 0:n.defval)!==e.defval||n!=null&&n.sourceTypeName&&e.sourceTypeName!==(n==null?void 0:n.sourceTypeName))&&(this._cacheData[r]=Object.assign(this._cacheData[r]||{},{...e,isModify:!0}))}}input(t,e){return this._cacheHandle(t,e)}int(t,e){return this._verifyMaxOrMin(t,e),this._cacheHandle(t,e,sr.INT)}bool(t,e){return this._cacheHandle(t,e,sr.BOOL)}color(t,e){return this._cacheHandle(t,e,sr.COLOR)}time(t,e){return this._cacheHandle(t,e,sr.TIME)}float(t,e){return this._verifyMaxOrMin(t,e),this._cacheHandle(t,e,sr.FLOAT)}price(t,e){return this._cacheHandle(t,e,sr.PRICE)}source(t,e){return this._cacheHandle(t,e,sr.SOURCE)}string(t,e){return this._cacheHandle(t,e,sr.STRING)}symbol(t,e){return this._cacheHandle(t,e,sr.SYMBOL)}session(t,e){return this._cacheHandle(t,e,sr.SESSION)}text_area(t,e){return this._cacheHandle(t,e,sr.TEXT_AREA)}timeframe(t,e){return this._cacheHandle(t,e,sr.TIMEFRAME)}enum(t,e){return this._cacheHandle(t,e,sr.ENUM)}_cacheHandle(t,e,r){if(e.startsWith("export"))return t.defval;const n=`${r||"input"}_${e}`,s=this._cacheData[n];if(t.defval===void 0&&this._errorListener.addError(re.inputDefvalErr,e,Lt.Error),self.workerStorage.setValue(this._name,n,{...t}),s)if(!s.isModify)Object.assign(this._cacheData[n],t);else{const a=this._historyInputs[n];!(t.sourceTypeName||a!=null&&a.sourceTypeName)&&t.defval===(a==null?void 0:a.defval)||t.sourceTypeName&&(a==null?void 0:a.sourceTypeName)===t.sourceTypeName?s.sourceTypeName&&(this._cacheData[n].defval=this._variables[s.sourceTypeName]):Object.assign(this._cacheData[n],t)}else{const{defval:a,display:u}=t;this._displayVerify(e,u),t={inputType:r,...t},this._cacheData[n]=t,(r||t.inputType)===sr.SOURCE?this._cacheData[n].options=Np:t.options&&!t.options.includes(a)&&this._errorListener.addError(He(re.inputOptErr,{defval:String(a),args:t.options.toString()}),e,Lt.Error,6+((r==null?void 0:r.length)||-1))}return this._cacheData[n].defval}_displayVerify(t,e){!e||!e.length||e.includes(Ze.dataWindow)||e.includes(Ze.statusLine)||this._errorListener.addError(He(re.displayErr,{func:"input",values:"[display.none, display.data_window, display.status_line, display.all]"}),t,Lt.Error)}_verifyMaxOrMin(t,e){const{defval:r,maxval:n,minval:s}=t;typeof r=="number"&&(n!==void 0&&r>n||s!==void 0&&r<s)&&this._errorListener.addError(re.minOrMaxErr,e,Lt.Error)}getInputs(){const t=Object.keys(this._cacheData),e=[];for(const r of t){const n=this._cacheData[r];n.id=r,e.push(n)}return e.sort((r,n)=>(r.index||0)-(n.index||0))}}class iy{color({x:t}){return t}new({color:t,transp:e=100}){_t(e)&&(e=100);const r=(100-e)/100,{r:n,g:s,b:a}=this._parseColor(t||"");return`rgba(${Math.round(n)}, ${Math.round(s)}, ${Math.round(a)}, ${r})`}rgb({red:t=0,green:e=0,blue:r=0,transp:n=0}){return _t(n)&&(n=0),_t(t)&&(t=0),_t(e)&&(e=0),_t(r)&&(r=0),`rgba(${t}, ${e}, ${r}, ${(100-n)/100})`}g({color:t}){return t?this._parseColor(t).g:0}r({color:t}){return t?this._parseColor(t).r:0}b({color:t}){return t?this._parseColor(t).b:0}t({color:t}){return t?Math.round(this._parseColor(t).a*100):0}from_gradient({value:t,bottom_value:e,top_value:r,bottom_color:n,top_color:s}){if(_t(t)||_t(e)||_t(r)||r===e)return"rgba(0,0,0,1)";const a=(t-e)/(r-e),u=Math.min(Math.max(a,0),1),{r:c,g:f,b:d,a:h}=this._parseColor(n||"rgba(0,0,0,0)"),{r:p,g,b:y,a:_}=this._parseColor(s||"rgba(0,0,0,0)"),w=c+u*(p-c),v=f+u*(g-f),x=d+u*(y-d),b=h+u*(_-h);return`rgba(${Math.round(w)}, ${Math.round(v)}, ${Math.round(x)}, ${b.toFixed(2)})`}_parseColor(t){let e,r,n,s;if(t.startsWith("#")){e=parseInt(t.substring(1,3),16),r=parseInt(t.substring(3,5),16),n=parseInt(t.substring(5,7),16);const a=t.substring(7);a?s=parseInt(a,16)/255:s=1}else{const a=this._parserRgbColor(t);e=a[0]||0,r=a[1]||0,n=a[2]||0,s=a[3]||1}return{r:e,g:r,b:n,a:s}}_parserRgbColor(t){var e;return((e=t.match(/\d+/g))==null?void 0:e.map(Number))||[]}}var zt={};const sy=Object.prototype.toString;function as(i){const t=sy.call(i);return t.endsWith("Array]")&&!t.includes("Big")}var oy=Object.freeze({__proto__:null,isAnyArray:as}),ay=Se(oy);function uy(i){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!as(i))throw new TypeError("input must be an array");if(i.length===0)throw new TypeError("input must not be empty");var e=t.fromIndex,r=e===void 0?0:e,n=t.toIndex,s=n===void 0?i.length:n;if(r<0||r>=i.length||!Number.isInteger(r))throw new Error("fromIndex must be a positive integer smaller than length");if(s<=r||s>i.length||!Number.isInteger(s))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var a=i[r],u=r+1;u<s;u++)i[u]>a&&(a=i[u]);return a}function ly(i){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!as(i))throw new TypeError("input must be an array");if(i.length===0)throw new TypeError("input must not be empty");var e=t.fromIndex,r=e===void 0?0:e,n=t.toIndex,s=n===void 0?i.length:n;if(r<0||r>=i.length||!Number.isInteger(r))throw new Error("fromIndex must be a positive integer smaller than length");if(s<=r||s>i.length||!Number.isInteger(s))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var a=i[r],u=r+1;u<s;u++)i[u]<a&&(a=i[u]);return a}function cy(i){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(as(i)){if(i.length===0)throw new TypeError("input must not be empty")}else throw new TypeError("input must be an array");var e;if(t.output!==void 0){if(!as(t.output))throw new TypeError("output option must be an array if specified");e=t.output}else e=new Array(i.length);var r=ly(i),n=uy(i);if(r===n)throw new RangeError("minimum and maximum input values are equal. Cannot rescale a constant array");var s=t.min,a=s===void 0?t.autoMinMax?r:0:s,u=t.max,c=u===void 0?t.autoMinMax?n:1:u;if(a>=c)throw new RangeError("min option must be smaller than max option");for(var f=(c-a)/(n-r),d=0;d<i.length;d++)e[d]=(i[d]-r)*f+a;return e}var fy=Object.freeze({__proto__:null,default:cy}),hy=Se(fy);Object.defineProperty(zt,"__esModule",{value:!0});var fr=ay,ah=hy;const uo=" ".repeat(2),uh=" ".repeat(4);function dy(){return lh(this)}function lh(i,t={}){const{maxRows:e=15,maxColumns:r=10,maxNumSize:n=8,padMinus:s="auto"}=t;return`${i.constructor.name} {
55
55
  ${uo}[
56
56
  ${uh}${py(i,e,r,n,s)}
57
57
  ${uo}]
58
58
  ${uo}rows: ${i.rows}
59
59
  ${uo}columns: ${i.columns}
60
60
  }`}function py(i,t,e,r,n){const{rows:s,columns:a}=i,u=Math.min(s,t),c=Math.min(a,e),f=[];if(n==="auto"){n=!1;t:for(let d=0;d<u;d++)for(let h=0;h<c;h++)if(i.get(d,h)<0){n=!0;break t}}for(let d=0;d<u;d++){let h=[];for(let p=0;p<c;p++)h.push(_y(i.get(d,p),r,n));f.push(`${h.join(" ")}`)}return c!==a&&(f[f.length-1]+=` ... ${a-e} more columns`),u!==s&&f.push(`... ${s-t} more rows`),f.join(`
61
- ${uh}`)}function _y(i,t,e){return(i>=0&&e?` ${ch(i,t-1)}`:ch(i,t)).padEnd(t)}function ch(i,t){let e=i.toString();if(e.length<=t)return e;let r=i.toFixed(t);if(r.length>t&&(r=i.toFixed(Math.max(0,t-(r.length-t)))),r.length<=t&&!r.startsWith("0.000")&&!r.startsWith("-0.000"))return r;let n=i.toExponential(t);return n.length>t&&(n=i.toExponential(Math.max(0,t-(n.length-t)))),n.slice(0)}function my(i,t){i.prototype.add=function(r){return typeof r=="number"?this.addS(r):this.addM(r)},i.prototype.addS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)+r);return this},i.prototype.addM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)+r.get(n,s));return this},i.add=function(r,n){return new t(r).add(n)},i.prototype.sub=function(r){return typeof r=="number"?this.subS(r):this.subM(r)},i.prototype.subS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)-r);return this},i.prototype.subM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)-r.get(n,s));return this},i.sub=function(r,n){return new t(r).sub(n)},i.prototype.subtract=i.prototype.sub,i.prototype.subtractS=i.prototype.subS,i.prototype.subtractM=i.prototype.subM,i.subtract=i.sub,i.prototype.mul=function(r){return typeof r=="number"?this.mulS(r):this.mulM(r)},i.prototype.mulS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)*r);return this},i.prototype.mulM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)*r.get(n,s));return this},i.mul=function(r,n){return new t(r).mul(n)},i.prototype.multiply=i.prototype.mul,i.prototype.multiplyS=i.prototype.mulS,i.prototype.multiplyM=i.prototype.mulM,i.multiply=i.mul,i.prototype.div=function(r){return typeof r=="number"?this.divS(r):this.divM(r)},i.prototype.divS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)/r);return this},i.prototype.divM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)/r.get(n,s));return this},i.div=function(r,n){return new t(r).div(n)},i.prototype.divide=i.prototype.div,i.prototype.divideS=i.prototype.divS,i.prototype.divideM=i.prototype.divM,i.divide=i.div,i.prototype.mod=function(r){return typeof r=="number"?this.modS(r):this.modM(r)},i.prototype.modS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)%r);return this},i.prototype.modM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)%r.get(n,s));return this},i.mod=function(r,n){return new t(r).mod(n)},i.prototype.modulus=i.prototype.mod,i.prototype.modulusS=i.prototype.modS,i.prototype.modulusM=i.prototype.modM,i.modulus=i.mod,i.prototype.and=function(r){return typeof r=="number"?this.andS(r):this.andM(r)},i.prototype.andS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)&r);return this},i.prototype.andM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)&r.get(n,s));return this},i.and=function(r,n){return new t(r).and(n)},i.prototype.or=function(r){return typeof r=="number"?this.orS(r):this.orM(r)},i.prototype.orS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)|r);return this},i.prototype.orM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)|r.get(n,s));return this},i.or=function(r,n){return new t(r).or(n)},i.prototype.xor=function(r){return typeof r=="number"?this.xorS(r):this.xorM(r)},i.prototype.xorS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)^r);return this},i.prototype.xorM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)^r.get(n,s));return this},i.xor=function(r,n){return new t(r).xor(n)},i.prototype.leftShift=function(r){return typeof r=="number"?this.leftShiftS(r):this.leftShiftM(r)},i.prototype.leftShiftS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)<<r);return this},i.prototype.leftShiftM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)<<r.get(n,s));return this},i.leftShift=function(r,n){return new t(r).leftShift(n)},i.prototype.signPropagatingRightShift=function(r){return typeof r=="number"?this.signPropagatingRightShiftS(r):this.signPropagatingRightShiftM(r)},i.prototype.signPropagatingRightShiftS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)>>r);return this},i.prototype.signPropagatingRightShiftM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)>>r.get(n,s));return this},i.signPropagatingRightShift=function(r,n){return new t(r).signPropagatingRightShift(n)},i.prototype.rightShift=function(r){return typeof r=="number"?this.rightShiftS(r):this.rightShiftM(r)},i.prototype.rightShiftS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)>>>r);return this},i.prototype.rightShiftM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)>>>r.get(n,s));return this},i.rightShift=function(r,n){return new t(r).rightShift(n)},i.prototype.zeroFillRightShift=i.prototype.rightShift,i.prototype.zeroFillRightShiftS=i.prototype.rightShiftS,i.prototype.zeroFillRightShiftM=i.prototype.rightShiftM,i.zeroFillRightShift=i.rightShift,i.prototype.not=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,~this.get(r,n));return this},i.not=function(r){return new t(r).not()},i.prototype.abs=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.abs(this.get(r,n)));return this},i.abs=function(r){return new t(r).abs()},i.prototype.acos=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.acos(this.get(r,n)));return this},i.acos=function(r){return new t(r).acos()},i.prototype.acosh=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.acosh(this.get(r,n)));return this},i.acosh=function(r){return new t(r).acosh()},i.prototype.asin=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.asin(this.get(r,n)));return this},i.asin=function(r){return new t(r).asin()},i.prototype.asinh=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.asinh(this.get(r,n)));return this},i.asinh=function(r){return new t(r).asinh()},i.prototype.atan=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.atan(this.get(r,n)));return this},i.atan=function(r){return new t(r).atan()},i.prototype.atanh=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.atanh(this.get(r,n)));return this},i.atanh=function(r){return new t(r).atanh()},i.prototype.cbrt=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.cbrt(this.get(r,n)));return this},i.cbrt=function(r){return new t(r).cbrt()},i.prototype.ceil=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.ceil(this.get(r,n)));return this},i.ceil=function(r){return new t(r).ceil()},i.prototype.clz32=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.clz32(this.get(r,n)));return this},i.clz32=function(r){return new t(r).clz32()},i.prototype.cos=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.cos(this.get(r,n)));return this},i.cos=function(r){return new t(r).cos()},i.prototype.cosh=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.cosh(this.get(r,n)));return this},i.cosh=function(r){return new t(r).cosh()},i.prototype.exp=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.exp(this.get(r,n)));return this},i.exp=function(r){return new t(r).exp()},i.prototype.expm1=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.expm1(this.get(r,n)));return this},i.expm1=function(r){return new t(r).expm1()},i.prototype.floor=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.floor(this.get(r,n)));return this},i.floor=function(r){return new t(r).floor()},i.prototype.fround=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.fround(this.get(r,n)));return this},i.fround=function(r){return new t(r).fround()},i.prototype.log=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.log(this.get(r,n)));return this},i.log=function(r){return new t(r).log()},i.prototype.log1p=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.log1p(this.get(r,n)));return this},i.log1p=function(r){return new t(r).log1p()},i.prototype.log10=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.log10(this.get(r,n)));return this},i.log10=function(r){return new t(r).log10()},i.prototype.log2=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.log2(this.get(r,n)));return this},i.log2=function(r){return new t(r).log2()},i.prototype.round=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.round(this.get(r,n)));return this},i.round=function(r){return new t(r).round()},i.prototype.sign=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.sign(this.get(r,n)));return this},i.sign=function(r){return new t(r).sign()},i.prototype.sin=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.sin(this.get(r,n)));return this},i.sin=function(r){return new t(r).sin()},i.prototype.sinh=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.sinh(this.get(r,n)));return this},i.sinh=function(r){return new t(r).sinh()},i.prototype.sqrt=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.sqrt(this.get(r,n)));return this},i.sqrt=function(r){return new t(r).sqrt()},i.prototype.tan=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.tan(this.get(r,n)));return this},i.tan=function(r){return new t(r).tan()},i.prototype.tanh=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.tanh(this.get(r,n)));return this},i.tanh=function(r){return new t(r).tanh()},i.prototype.trunc=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.trunc(this.get(r,n)));return this},i.trunc=function(r){return new t(r).trunc()},i.pow=function(r,n){return new t(r).pow(n)},i.prototype.pow=function(r){return typeof r=="number"?this.powS(r):this.powM(r)},i.prototype.powS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,Math.pow(this.get(n,s),r));return this},i.prototype.powM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,Math.pow(this.get(n,s),r.get(n,s)));return this}}function Tr(i,t,e){let r=e?i.rows:i.rows-1;if(t<0||t>r)throw new RangeError("Row index out of range")}function Ir(i,t,e){let r=e?i.columns:i.columns-1;if(t<0||t>r)throw new RangeError("Column index out of range")}function Fi(i,t){if(t.to1DArray&&(t=t.to1DArray()),t.length!==i.columns)throw new RangeError("vector size must be the same as the number of columns");return t}function Ni(i,t){if(t.to1DArray&&(t=t.to1DArray()),t.length!==i.rows)throw new RangeError("vector size must be the same as the number of rows");return t}function Xa(i,t){if(!fr.isAnyArray(t))throw new TypeError("row indices must be an array");for(let e=0;e<t.length;e++)if(t[e]<0||t[e]>=i.rows)throw new RangeError("row indices are out of range")}function Qa(i,t){if(!fr.isAnyArray(t))throw new TypeError("column indices must be an array");for(let e=0;e<t.length;e++)if(t[e]<0||t[e]>=i.columns)throw new RangeError("column indices are out of range")}function tu(i,t,e,r,n){if(arguments.length!==5)throw new RangeError("expected 4 arguments");if(co("startRow",t),co("endRow",e),co("startColumn",r),co("endColumn",n),t>e||r>n||t<0||t>=i.rows||e<0||e>=i.rows||r<0||r>=i.columns||n<0||n>=i.columns)throw new RangeError("Submatrix indices are out of range")}function lo(i,t=0){let e=[];for(let r=0;r<i;r++)e.push(t);return e}function co(i,t){if(typeof t!="number")throw new TypeError(`${i} must be a number`)}function Si(i){if(i.isEmpty())throw new Error("Empty matrix has no elements to index")}function gy(i){let t=lo(i.rows);for(let e=0;e<i.rows;++e)for(let r=0;r<i.columns;++r)t[e]+=i.get(e,r);return t}function vy(i){let t=lo(i.columns);for(let e=0;e<i.rows;++e)for(let r=0;r<i.columns;++r)t[r]+=i.get(e,r);return t}function yy(i){let t=0;for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)t+=i.get(e,r);return t}function wy(i){let t=lo(i.rows,1);for(let e=0;e<i.rows;++e)for(let r=0;r<i.columns;++r)t[e]*=i.get(e,r);return t}function Dy(i){let t=lo(i.columns,1);for(let e=0;e<i.rows;++e)for(let r=0;r<i.columns;++r)t[r]*=i.get(e,r);return t}function by(i){let t=1;for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)t*=i.get(e,r);return t}function xy(i,t,e){const r=i.rows,n=i.columns,s=[];for(let a=0;a<r;a++){let u=0,c=0,f=0;for(let d=0;d<n;d++)f=i.get(a,d)-e[a],u+=f,c+=f*f;t?s.push((c-u*u/n)/(n-1)):s.push((c-u*u/n)/n)}return s}function Ey(i,t,e){const r=i.rows,n=i.columns,s=[];for(let a=0;a<n;a++){let u=0,c=0,f=0;for(let d=0;d<r;d++)f=i.get(d,a)-e[a],u+=f,c+=f*f;t?s.push((c-u*u/r)/(r-1)):s.push((c-u*u/r)/r)}return s}function Ay(i,t,e){const r=i.rows,n=i.columns,s=r*n;let a=0,u=0,c=0;for(let f=0;f<r;f++)for(let d=0;d<n;d++)c=i.get(f,d)-e,a+=c,u+=c*c;return t?(u-a*a/s)/(s-1):(u-a*a/s)/s}function Cy(i,t){for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)i.set(e,r,i.get(e,r)-t[e])}function My(i,t){for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)i.set(e,r,i.get(e,r)-t[r])}function Fy(i,t){for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)i.set(e,r,i.get(e,r)-t)}function Ny(i){const t=[];for(let e=0;e<i.rows;e++){let r=0;for(let n=0;n<i.columns;n++)r+=Math.pow(i.get(e,n),2)/(i.columns-1);t.push(Math.sqrt(r))}return t}function Sy(i,t){for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)i.set(e,r,i.get(e,r)/t[e])}function Oy(i){const t=[];for(let e=0;e<i.columns;e++){let r=0;for(let n=0;n<i.rows;n++)r+=Math.pow(i.get(n,e),2)/(i.rows-1);t.push(Math.sqrt(r))}return t}function By(i,t){for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)i.set(e,r,i.get(e,r)/t[r])}function Ty(i){const t=i.size-1;let e=0;for(let r=0;r<i.columns;r++)for(let n=0;n<i.rows;n++)e+=Math.pow(i.get(n,r),2)/t;return Math.sqrt(e)}function Iy(i,t){for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)i.set(e,r,i.get(e,r)/t)}class $t{static from1DArray(t,e,r){if(t*e!==r.length)throw new RangeError("data length does not match given dimensions");let s=new dt(t,e);for(let a=0;a<t;a++)for(let u=0;u<e;u++)s.set(a,u,r[a*e+u]);return s}static rowVector(t){let e=new dt(1,t.length);for(let r=0;r<t.length;r++)e.set(0,r,t[r]);return e}static columnVector(t){let e=new dt(t.length,1);for(let r=0;r<t.length;r++)e.set(r,0,t[r]);return e}static zeros(t,e){return new dt(t,e)}static ones(t,e){return new dt(t,e).fill(1)}static rand(t,e,r={}){if(typeof r!="object")throw new TypeError("options must be an object");const{random:n=Math.random}=r;let s=new dt(t,e);for(let a=0;a<t;a++)for(let u=0;u<e;u++)s.set(a,u,n());return s}static randInt(t,e,r={}){if(typeof r!="object")throw new TypeError("options must be an object");const{min:n=0,max:s=1e3,random:a=Math.random}=r;if(!Number.isInteger(n))throw new TypeError("min must be an integer");if(!Number.isInteger(s))throw new TypeError("max must be an integer");if(n>=s)throw new RangeError("min must be smaller than max");let u=s-n,c=new dt(t,e);for(let f=0;f<t;f++)for(let d=0;d<e;d++){let h=n+Math.round(a()*u);c.set(f,d,h)}return c}static eye(t,e,r){e===void 0&&(e=t),r===void 0&&(r=1);let n=Math.min(t,e),s=this.zeros(t,e);for(let a=0;a<n;a++)s.set(a,a,r);return s}static diag(t,e,r){let n=t.length;e===void 0&&(e=n),r===void 0&&(r=e);let s=Math.min(n,e,r),a=this.zeros(e,r);for(let u=0;u<s;u++)a.set(u,u,t[u]);return a}static min(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,n=t.columns,s=new dt(r,n);for(let a=0;a<r;a++)for(let u=0;u<n;u++)s.set(a,u,Math.min(t.get(a,u),e.get(a,u)));return s}static max(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,n=t.columns,s=new this(r,n);for(let a=0;a<r;a++)for(let u=0;u<n;u++)s.set(a,u,Math.max(t.get(a,u),e.get(a,u)));return s}static checkMatrix(t){return $t.isMatrix(t)?t:new dt(t)}static isMatrix(t){return t!=null&&t.klass==="Matrix"}get size(){return this.rows*this.columns}apply(t){if(typeof t!="function")throw new TypeError("callback must be a function");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.call(this,e,r);return this}to1DArray(){let t=[];for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.push(this.get(e,r));return t}to2DArray(){let t=[];for(let e=0;e<this.rows;e++){t.push([]);for(let r=0;r<this.columns;r++)t[e].push(this.get(e,r))}return t}toJSON(){return this.to2DArray()}isRowVector(){return this.rows===1}isColumnVector(){return this.columns===1}isVector(){return this.rows===1||this.columns===1}isSquare(){return this.rows===this.columns}isEmpty(){return this.rows===0||this.columns===0}isSymmetric(){if(this.isSquare()){for(let t=0;t<this.rows;t++)for(let e=0;e<=t;e++)if(this.get(t,e)!==this.get(e,t))return!1;return!0}return!1}isDistance(){if(!this.isSymmetric())return!1;for(let t=0;t<this.rows;t++)if(this.get(t,t)!==0)return!1;return!0}isEchelonForm(){let t=0,e=0,r=-1,n=!0,s=!1;for(;t<this.rows&&n;){for(e=0,s=!1;e<this.columns&&s===!1;)this.get(t,e)===0?e++:this.get(t,e)===1&&e>r?(s=!0,r=e):(n=!1,s=!0);t++}return n}isReducedEchelonForm(){let t=0,e=0,r=-1,n=!0,s=!1;for(;t<this.rows&&n;){for(e=0,s=!1;e<this.columns&&s===!1;)this.get(t,e)===0?e++:this.get(t,e)===1&&e>r?(s=!0,r=e):(n=!1,s=!0);for(let a=e+1;a<this.rows;a++)this.get(t,a)!==0&&(n=!1);t++}return n}echelonForm(){let t=this.clone(),e=0,r=0;for(;e<t.rows&&r<t.columns;){let n=e;for(let s=e;s<t.rows;s++)t.get(s,r)>t.get(n,r)&&(n=s);if(t.get(n,r)===0)r++;else{t.swapRows(e,n);let s=t.get(e,r);for(let a=r;a<t.columns;a++)t.set(e,a,t.get(e,a)/s);for(let a=e+1;a<t.rows;a++){let u=t.get(a,r)/t.get(e,r);t.set(a,r,0);for(let c=r+1;c<t.columns;c++)t.set(a,c,t.get(a,c)-t.get(e,c)*u)}e++,r++}}return t}reducedEchelonForm(){let t=this.echelonForm(),e=t.columns,r=t.rows,n=r-1;for(;n>=0;)if(t.maxRow(n)===0)n--;else{let s=0,a=!1;for(;s<r&&a===!1;)t.get(n,s)===1?a=!0:s++;for(let u=0;u<n;u++){let c=t.get(u,s);for(let f=s;f<e;f++){let d=t.get(u,f)-c*t.get(n,f);t.set(u,f,d)}}n--}return t}set(){throw new Error("set method is unimplemented")}get(){throw new Error("get method is unimplemented")}repeat(t={}){if(typeof t!="object")throw new TypeError("options must be an object");const{rows:e=1,columns:r=1}=t;if(!Number.isInteger(e)||e<=0)throw new TypeError("rows must be a positive integer");if(!Number.isInteger(r)||r<=0)throw new TypeError("columns must be a positive integer");let n=new dt(this.rows*e,this.columns*r);for(let s=0;s<e;s++)for(let a=0;a<r;a++)n.setSubMatrix(this,this.rows*s,this.columns*a);return n}fill(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,t);return this}neg(){return this.mulS(-1)}getRow(t){Tr(this,t);let e=[];for(let r=0;r<this.columns;r++)e.push(this.get(t,r));return e}getRowVector(t){return dt.rowVector(this.getRow(t))}setRow(t,e){Tr(this,t),e=Fi(this,e);for(let r=0;r<this.columns;r++)this.set(t,r,e[r]);return this}swapRows(t,e){Tr(this,t),Tr(this,e);for(let r=0;r<this.columns;r++){let n=this.get(t,r);this.set(t,r,this.get(e,r)),this.set(e,r,n)}return this}getColumn(t){Ir(this,t);let e=[];for(let r=0;r<this.rows;r++)e.push(this.get(r,t));return e}getColumnVector(t){return dt.columnVector(this.getColumn(t))}setColumn(t,e){Ir(this,t),e=Ni(this,e);for(let r=0;r<this.rows;r++)this.set(r,t,e[r]);return this}swapColumns(t,e){Ir(this,t),Ir(this,e);for(let r=0;r<this.rows;r++){let n=this.get(r,t);this.set(r,t,this.get(r,e)),this.set(r,e,n)}return this}addRowVector(t){t=Fi(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[r]);return this}subRowVector(t){t=Fi(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[r]);return this}mulRowVector(t){t=Fi(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[r]);return this}divRowVector(t){t=Fi(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[r]);return this}addColumnVector(t){t=Ni(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[e]);return this}subColumnVector(t){t=Ni(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[e]);return this}mulColumnVector(t){t=Ni(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[e]);return this}divColumnVector(t){t=Ni(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[e]);return this}mulRow(t,e){Tr(this,t);for(let r=0;r<this.columns;r++)this.set(t,r,this.get(t,r)*e);return this}mulColumn(t,e){Ir(this,t);for(let r=0;r<this.rows;r++)this.set(r,t,this.get(r,t)*e);return this}max(t){if(this.isEmpty())return NaN;switch(t){case"row":{const e=new Array(this.rows).fill(Number.NEGATIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)>e[r]&&(e[r]=this.get(r,n));return e}case"column":{const e=new Array(this.columns).fill(Number.NEGATIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)>e[n]&&(e[n]=this.get(r,n));return e}case void 0:{let e=this.get(0,0);for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)>e&&(e=this.get(r,n));return e}default:throw new Error(`invalid option: ${t}`)}}maxIndex(){Si(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)>t&&(t=this.get(r,n),e[0]=r,e[1]=n);return e}min(t){if(this.isEmpty())return NaN;switch(t){case"row":{const e=new Array(this.rows).fill(Number.POSITIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)<e[r]&&(e[r]=this.get(r,n));return e}case"column":{const e=new Array(this.columns).fill(Number.POSITIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)<e[n]&&(e[n]=this.get(r,n));return e}case void 0:{let e=this.get(0,0);for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)<e&&(e=this.get(r,n));return e}default:throw new Error(`invalid option: ${t}`)}}minIndex(){Si(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)<t&&(t=this.get(r,n),e[0]=r,e[1]=n);return e}maxRow(t){if(Tr(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)>e&&(e=this.get(t,r));return e}maxRowIndex(t){Tr(this,t),Si(this);let e=this.get(t,0),r=[t,0];for(let n=1;n<this.columns;n++)this.get(t,n)>e&&(e=this.get(t,n),r[1]=n);return r}minRow(t){if(Tr(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)<e&&(e=this.get(t,r));return e}minRowIndex(t){Tr(this,t),Si(this);let e=this.get(t,0),r=[t,0];for(let n=1;n<this.columns;n++)this.get(t,n)<e&&(e=this.get(t,n),r[1]=n);return r}maxColumn(t){if(Ir(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)>e&&(e=this.get(r,t));return e}maxColumnIndex(t){Ir(this,t),Si(this);let e=this.get(0,t),r=[0,t];for(let n=1;n<this.rows;n++)this.get(n,t)>e&&(e=this.get(n,t),r[0]=n);return r}minColumn(t){if(Ir(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)<e&&(e=this.get(r,t));return e}minColumnIndex(t){Ir(this,t),Si(this);let e=this.get(0,t),r=[0,t];for(let n=1;n<this.rows;n++)this.get(n,t)<e&&(e=this.get(n,t),r[0]=n);return r}diag(){let t=Math.min(this.rows,this.columns),e=[];for(let r=0;r<t;r++)e.push(this.get(r,r));return e}norm(t="frobenius"){switch(t){case"max":return this.max();case"frobenius":return Math.sqrt(this.dot(this));default:throw new RangeError(`unknown norm type: ${t}`)}}cumulativeSum(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t+=this.get(e,r),this.set(e,r,t);return this}dot(t){$t.isMatrix(t)&&(t=t.to1DArray());let e=this.to1DArray();if(e.length!==t.length)throw new RangeError("vectors do not have the same size");let r=0;for(let n=0;n<e.length;n++)r+=e[n]*t[n];return r}mmul(t){t=dt.checkMatrix(t);let e=this.rows,r=this.columns,n=t.columns,s=new dt(e,n),a=new Float64Array(r);for(let u=0;u<n;u++){for(let c=0;c<r;c++)a[c]=t.get(c,u);for(let c=0;c<e;c++){let f=0;for(let d=0;d<r;d++)f+=this.get(c,d)*a[d];s.set(c,u,f)}}return s}strassen2x2(t){t=dt.checkMatrix(t);let e=new dt(2,2);const r=this.get(0,0),n=t.get(0,0),s=this.get(0,1),a=t.get(0,1),u=this.get(1,0),c=t.get(1,0),f=this.get(1,1),d=t.get(1,1),h=(r+f)*(n+d),p=(u+f)*n,g=r*(a-d),y=f*(c-n),_=(r+s)*d,w=(u-r)*(n+a),v=(s-f)*(c+d),x=h+y-_+v,b=g+_,N=p+y,E=h-p+g+w;return e.set(0,0,x),e.set(0,1,b),e.set(1,0,N),e.set(1,1,E),e}strassen3x3(t){t=dt.checkMatrix(t);let e=new dt(3,3);const r=this.get(0,0),n=this.get(0,1),s=this.get(0,2),a=this.get(1,0),u=this.get(1,1),c=this.get(1,2),f=this.get(2,0),d=this.get(2,1),h=this.get(2,2),p=t.get(0,0),g=t.get(0,1),y=t.get(0,2),_=t.get(1,0),w=t.get(1,1),v=t.get(1,2),x=t.get(2,0),b=t.get(2,1),N=t.get(2,2),E=(r+n+s-a-u-d-h)*w,C=(r-a)*(-g+w),F=u*(-p+g+_-w-v-x+N),S=(-r+a+u)*(p-g+w),I=(a+u)*(-p+g),A=r*p,O=(-r+f+d)*(p-y+v),L=(-r+f)*(y-v),z=(f+d)*(-p+y),q=(r+n+s-u-c-f-d)*v,j=d*(-p+y+_-w-v-x+b),P=(-s+d+h)*(w+x-b),Z=(s-h)*(w-b),W=s*x,X=(d+h)*(-x+b),J=(-s+u+c)*(v+x-N),ct=(s-c)*(v-N),gt=(u+c)*(-x+N),st=n*_,yt=c*b,Dt=a*y,Nt=f*g,xt=h*N,ue=A+W+st,Tt=E+S+I+A+P+W+X,St=A+O+z+q+W+J+gt,fe=C+F+S+A+W+J+ct,ne=C+S+I+A+yt,qt=W+J+ct+gt+Dt,Xt=A+O+L+j+P+Z+W,Le=P+Z+W+X+Nt,Dr=A+O+L+z+xt;return e.set(0,0,ue),e.set(0,1,Tt),e.set(0,2,St),e.set(1,0,fe),e.set(1,1,ne),e.set(1,2,qt),e.set(2,0,Xt),e.set(2,1,Le),e.set(2,2,Dr),e}mmulStrassen(t){t=dt.checkMatrix(t);let e=this.clone(),r=e.rows,n=e.columns,s=t.rows,a=t.columns;n!==s&&console.warn(`Multiplying ${r} x ${n} and ${s} x ${a} matrix: dimensions do not match.`);function u(h,p,g){let y=h.rows,_=h.columns;if(y===p&&_===g)return h;{let w=$t.zeros(p,g);return w=w.setSubMatrix(h,0,0),w}}let c=Math.max(r,s),f=Math.max(n,a);e=u(e,c,f),t=u(t,c,f);function d(h,p,g,y){if(g<=512||y<=512)return h.mmul(p);g%2===1&&y%2===1?(h=u(h,g+1,y+1),p=u(p,g+1,y+1)):g%2===1?(h=u(h,g+1,y),p=u(p,g+1,y)):y%2===1&&(h=u(h,g,y+1),p=u(p,g,y+1));let _=parseInt(h.rows/2,10),w=parseInt(h.columns/2,10),v=h.subMatrix(0,_-1,0,w-1),x=p.subMatrix(0,_-1,0,w-1),b=h.subMatrix(0,_-1,w,h.columns-1),N=p.subMatrix(0,_-1,w,p.columns-1),E=h.subMatrix(_,h.rows-1,0,w-1),C=p.subMatrix(_,p.rows-1,0,w-1),F=h.subMatrix(_,h.rows-1,w,h.columns-1),S=p.subMatrix(_,p.rows-1,w,p.columns-1),I=d($t.add(v,F),$t.add(x,S),_,w),A=d($t.add(E,F),x,_,w),O=d(v,$t.sub(N,S),_,w),L=d(F,$t.sub(C,x),_,w),z=d($t.add(v,b),S,_,w),q=d($t.sub(E,v),$t.add(x,N),_,w),j=d($t.sub(b,F),$t.add(C,S),_,w),P=$t.add(I,L);P.sub(z),P.add(j);let Z=$t.add(O,z),W=$t.add(A,L),X=$t.sub(I,A);X.add(O),X.add(q);let J=$t.zeros(2*P.rows,2*P.columns);return J=J.setSubMatrix(P,0,0),J=J.setSubMatrix(Z,P.rows,0),J=J.setSubMatrix(W,0,P.columns),J=J.setSubMatrix(X,P.rows,P.columns),J.subMatrix(0,g-1,0,y-1)}return d(e,t,c,f)}scaleRows(t={}){if(typeof t!="object")throw new TypeError("options must be an object");const{min:e=0,max:r=1}=t;if(!Number.isFinite(e))throw new TypeError("min must be a number");if(!Number.isFinite(r))throw new TypeError("max must be a number");if(e>=r)throw new RangeError("min must be smaller than max");let n=new dt(this.rows,this.columns);for(let s=0;s<this.rows;s++){const a=this.getRow(s);a.length>0&&ah(a,{min:e,max:r,output:a}),n.setRow(s,a)}return n}scaleColumns(t={}){if(typeof t!="object")throw new TypeError("options must be an object");const{min:e=0,max:r=1}=t;if(!Number.isFinite(e))throw new TypeError("min must be a number");if(!Number.isFinite(r))throw new TypeError("max must be a number");if(e>=r)throw new RangeError("min must be smaller than max");let n=new dt(this.rows,this.columns);for(let s=0;s<this.columns;s++){const a=this.getColumn(s);a.length&&ah(a,{min:e,max:r,output:a}),n.setColumn(s,a)}return n}flipRows(){const t=Math.ceil(this.columns/2);for(let e=0;e<this.rows;e++)for(let r=0;r<t;r++){let n=this.get(e,r),s=this.get(e,this.columns-1-r);this.set(e,r,s),this.set(e,this.columns-1-r,n)}return this}flipColumns(){const t=Math.ceil(this.rows/2);for(let e=0;e<this.columns;e++)for(let r=0;r<t;r++){let n=this.get(r,e),s=this.get(this.rows-1-r,e);this.set(r,e,s),this.set(this.rows-1-r,e,n)}return this}kroneckerProduct(t){t=dt.checkMatrix(t);let e=this.rows,r=this.columns,n=t.rows,s=t.columns,a=new dt(e*n,r*s);for(let u=0;u<e;u++)for(let c=0;c<r;c++)for(let f=0;f<n;f++)for(let d=0;d<s;d++)a.set(n*u+f,s*c+d,this.get(u,c)*t.get(f,d));return a}kroneckerSum(t){if(t=dt.checkMatrix(t),!this.isSquare()||!t.isSquare())throw new Error("Kronecker Sum needs two Square Matrices");let e=this.rows,r=t.rows,n=this.kroneckerProduct(dt.eye(r,r)),s=dt.eye(e,e).kroneckerProduct(t);return n.add(s)}transpose(){let t=new dt(this.columns,this.rows);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.set(r,e,this.get(e,r));return t}sortRows(t=fh){for(let e=0;e<this.rows;e++)this.setRow(e,this.getRow(e).sort(t));return this}sortColumns(t=fh){for(let e=0;e<this.columns;e++)this.setColumn(e,this.getColumn(e).sort(t));return this}subMatrix(t,e,r,n){tu(this,t,e,r,n);let s=new dt(e-t+1,n-r+1);for(let a=t;a<=e;a++)for(let u=r;u<=n;u++)s.set(a-t,u-r,this.get(a,u));return s}subMatrixRow(t,e,r){if(e===void 0&&(e=0),r===void 0&&(r=this.columns-1),e>r||e<0||e>=this.columns||r<0||r>=this.columns)throw new RangeError("Argument out of range");let n=new dt(t.length,r-e+1);for(let s=0;s<t.length;s++)for(let a=e;a<=r;a++){if(t[s]<0||t[s]>=this.rows)throw new RangeError(`Row index out of range: ${t[s]}`);n.set(s,a-e,this.get(t[s],a))}return n}subMatrixColumn(t,e,r){if(e===void 0&&(e=0),r===void 0&&(r=this.rows-1),e>r||e<0||e>=this.rows||r<0||r>=this.rows)throw new RangeError("Argument out of range");let n=new dt(r-e+1,t.length);for(let s=0;s<t.length;s++)for(let a=e;a<=r;a++){if(t[s]<0||t[s]>=this.columns)throw new RangeError(`Column index out of range: ${t[s]}`);n.set(a-e,s,this.get(a,t[s]))}return n}setSubMatrix(t,e,r){if(t=dt.checkMatrix(t),t.isEmpty())return this;let n=e+t.rows-1,s=r+t.columns-1;tu(this,e,n,r,s);for(let a=0;a<t.rows;a++)for(let u=0;u<t.columns;u++)this.set(e+a,r+u,t.get(a,u));return this}selection(t,e){Xa(this,t),Qa(this,e);let r=new dt(t.length,e.length);for(let n=0;n<t.length;n++){let s=t[n];for(let a=0;a<e.length;a++){let u=e[a];r.set(n,a,this.get(s,u))}}return r}trace(){let t=Math.min(this.rows,this.columns),e=0;for(let r=0;r<t;r++)e+=this.get(r,r);return e}clone(){return this.constructor.copy(this,new dt(this.rows,this.columns))}static copy(t,e){for(const[r,n,s]of t.entries())e.set(r,n,s);return e}sum(t){switch(t){case"row":return gy(this);case"column":return vy(this);case void 0:return yy(this);default:throw new Error(`invalid option: ${t}`)}}product(t){switch(t){case"row":return wy(this);case"column":return Dy(this);case void 0:return by(this);default:throw new Error(`invalid option: ${t}`)}}mean(t){const e=this.sum(t);switch(t){case"row":{for(let r=0;r<this.rows;r++)e[r]/=this.columns;return e}case"column":{for(let r=0;r<this.columns;r++)e[r]/=this.rows;return e}case void 0:return e/this.size;default:throw new Error(`invalid option: ${t}`)}}variance(t,e={}){if(typeof t=="object"&&(e=t,t=void 0),typeof e!="object")throw new TypeError("options must be an object");const{unbiased:r=!0,mean:n=this.mean(t)}=e;if(typeof r!="boolean")throw new TypeError("unbiased must be a boolean");switch(t){case"row":{if(!fr.isAnyArray(n))throw new TypeError("mean must be an array");return xy(this,r,n)}case"column":{if(!fr.isAnyArray(n))throw new TypeError("mean must be an array");return Ey(this,r,n)}case void 0:{if(typeof n!="number")throw new TypeError("mean must be a number");return Ay(this,r,n)}default:throw new Error(`invalid option: ${t}`)}}standardDeviation(t,e){typeof t=="object"&&(e=t,t=void 0);const r=this.variance(t,e);if(t===void 0)return Math.sqrt(r);for(let n=0;n<r.length;n++)r[n]=Math.sqrt(r[n]);return r}center(t,e={}){if(typeof t=="object"&&(e=t,t=void 0),typeof e!="object")throw new TypeError("options must be an object");const{center:r=this.mean(t)}=e;switch(t){case"row":{if(!fr.isAnyArray(r))throw new TypeError("center must be an array");return Cy(this,r),this}case"column":{if(!fr.isAnyArray(r))throw new TypeError("center must be an array");return My(this,r),this}case void 0:{if(typeof r!="number")throw new TypeError("center must be a number");return Fy(this,r),this}default:throw new Error(`invalid option: ${t}`)}}scale(t,e={}){if(typeof t=="object"&&(e=t,t=void 0),typeof e!="object")throw new TypeError("options must be an object");let r=e.scale;switch(t){case"row":{if(r===void 0)r=Ny(this);else if(!fr.isAnyArray(r))throw new TypeError("scale must be an array");return Sy(this,r),this}case"column":{if(r===void 0)r=Oy(this);else if(!fr.isAnyArray(r))throw new TypeError("scale must be an array");return By(this,r),this}case void 0:{if(r===void 0)r=Ty(this);else if(typeof r!="number")throw new TypeError("scale must be a number");return Iy(this,r),this}default:throw new Error(`invalid option: ${t}`)}}toString(t){return lh(this,t)}[Symbol.iterator](){return this.entries()}*entries(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)yield[t,e,this.get(t,e)]}*values(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)yield this.get(t,e)}}$t.prototype.klass="Matrix",typeof Symbol<"u"&&($t.prototype[Symbol.for("nodejs.util.inspect.custom")]=dy);function fh(i,t){return i-t}function $y(i){return i.every(t=>typeof t=="number")}$t.random=$t.rand,$t.randomInt=$t.randInt,$t.diagonal=$t.diag,$t.prototype.diagonal=$t.prototype.diag,$t.identity=$t.eye,$t.prototype.negate=$t.prototype.neg,$t.prototype.tensorProduct=$t.prototype.kroneckerProduct;let dt=(Ri=class extends $t{constructor(e,r){super();Yl(this,cs);$(this,"data");if(Ri.isMatrix(e))Vl(this,cs,Hl).call(this,e.rows,e.columns),Ri.copy(e,this);else if(Number.isInteger(e)&&e>=0)Vl(this,cs,Hl).call(this,e,r);else if(fr.isAnyArray(e)){const n=e;if(e=n.length,r=e?n[0].length:0,typeof r!="number")throw new TypeError("Data must be a 2D array with at least one element");this.data=[];for(let s=0;s<e;s++){if(n[s].length!==r)throw new RangeError("Inconsistent array dimensions");if(!$y(n[s]))throw new TypeError("Input data contains non-numeric values");this.data.push(Float64Array.from(n[s]))}this.rows=e,this.columns=r}else throw new TypeError("First argument must be a positive number or an array")}set(e,r,n){return this.data[e][r]=n,this}get(e,r){return this.data[e][r]}removeRow(e){return Tr(this,e),this.data.splice(e,1),this.rows-=1,this}addRow(e,r){return r===void 0&&(r=e,e=this.rows),Tr(this,e,!0),r=Float64Array.from(Fi(this,r)),this.data.splice(e,0,r),this.rows+=1,this}removeColumn(e){Ir(this,e);for(let r=0;r<this.rows;r++){const n=new Float64Array(this.columns-1);for(let s=0;s<e;s++)n[s]=this.data[r][s];for(let s=e+1;s<this.columns;s++)n[s-1]=this.data[r][s];this.data[r]=n}return this.columns-=1,this}addColumn(e,r){typeof r>"u"&&(r=e,e=this.columns),Ir(this,e,!0),r=Ni(this,r);for(let n=0;n<this.rows;n++){const s=new Float64Array(this.columns+1);let a=0;for(;a<e;a++)s[a]=this.data[n][a];for(s[a++]=r[n];a<this.columns+1;a++)s[a]=this.data[n][a-1];this.data[n]=s}return this.columns+=1,this}},cs=new WeakSet,Hl=function(e,r){if(this.data=[],Number.isInteger(r)&&r>=0)for(let n=0;n<e;n++)this.data.push(new Float64Array(r));else throw new TypeError("nColumns must be a positive integer");this.rows=e,this.columns=r},Ri);my($t,dt);const Oo=class Oo extends $t{constructor(e){super();Yl(this,tr,void 0);if(dt.isMatrix(e)){if(!e.isSymmetric())throw new TypeError("not symmetric data");ba(this,tr,dt.copy(e,new dt(e.rows,e.rows)))}else if(Number.isInteger(e)&&e>=0)ba(this,tr,new dt(e,e));else if(ba(this,tr,new dt(e)),!this.isSymmetric())throw new TypeError("not symmetric data")}get size(){return Qr(this,tr).size}get rows(){return Qr(this,tr).rows}get columns(){return Qr(this,tr).columns}get diagonalSize(){return this.rows}static isSymmetricMatrix(e){return dt.isMatrix(e)&&e.klassType==="SymmetricMatrix"}static zeros(e){return new this(e)}static ones(e){return new this(e).fill(1)}clone(){const e=new Oo(this.diagonalSize);for(const[r,n,s]of this.upperRightEntries())e.set(r,n,s);return e}toMatrix(){return new dt(this)}get(e,r){return Qr(this,tr).get(e,r)}set(e,r,n){return Qr(this,tr).set(e,r,n),Qr(this,tr).set(r,e,n),this}removeCross(e){return Qr(this,tr).removeRow(e),Qr(this,tr).removeColumn(e),this}addCross(e,r){r===void 0&&(r=e,e=this.diagonalSize);const n=r.slice();return n.splice(e,1),Qr(this,tr).addRow(e,n),Qr(this,tr).addColumn(e,r),this}applyMask(e){if(e.length!==this.diagonalSize)throw new RangeError("Mask size do not match with matrix size");const r=[];for(const[n,s]of e.entries())s||r.push(n);r.reverse();for(const n of r)this.removeCross(n);return this}toCompact(){const{diagonalSize:e}=this,r=new Array(e*(e+1)/2);for(let n=0,s=0,a=0;a<r.length;a++)r[a]=this.get(s,n),++n>=e&&(n=++s);return r}static fromCompact(e){const r=e.length,n=(Math.sqrt(8*r+1)-1)/2;if(!Number.isInteger(n))throw new TypeError(`This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(e)}`);const s=new Oo(n);for(let a=0,u=0,c=0;c<r;c++)s.set(a,u,e[c]),++a>=n&&(a=++u);return s}*upperRightEntries(){for(let e=0,r=0;e<this.diagonalSize;void 0){const n=this.get(e,r);yield[e,r,n],++r>=this.diagonalSize&&(r=++e)}}*upperRightValues(){for(let e=0,r=0;e<this.diagonalSize;void 0)yield this.get(e,r),++r>=this.diagonalSize&&(r=++e)}};tr=new WeakMap;let ri=Oo;ri.prototype.klassType="SymmetricMatrix";class fo extends ri{static isDistanceMatrix(t){return ri.isSymmetricMatrix(t)&&t.klassSubType==="DistanceMatrix"}constructor(t){if(super(t),!this.isDistance())throw new TypeError("Provided arguments do no produce a distance matrix")}set(t,e,r){return t===e&&(r=0),super.set(t,e,r)}addCross(t,e){return e===void 0&&(e=t,t=this.diagonalSize),e=e.slice(),e[t]=0,super.addCross(t,e)}toSymmetricMatrix(){return new ri(this)}clone(){const t=new fo(this.diagonalSize);for(const[e,r,n]of this.upperRightEntries())e!==r&&t.set(e,r,n);return t}toCompact(){const{diagonalSize:t}=this,e=(t-1)*t/2,r=new Array(e);for(let n=1,s=0,a=0;a<r.length;a++)r[a]=this.get(s,n),++n>=t&&(n=++s+1);return r}static fromCompact(t){const e=t.length,r=(Math.sqrt(8*e+1)+1)/2;if(!Number.isInteger(r))throw new TypeError(`This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(t)}`);const n=new this(r);for(let s=1,a=0,u=0;u<e;u++)n.set(s,a,t[u]),++s>=r&&(s=++a+1);return n}}fo.prototype.klassSubType="DistanceMatrix";class pn extends $t{constructor(t,e,r){super(),this.matrix=t,this.rows=e,this.columns=r}}class Ly extends pn{constructor(t,e){Ir(t,e),super(t,t.rows,1),this.column=e}set(t,e,r){return this.matrix.set(t,this.column,r),this}get(t){return this.matrix.get(t,this.column)}}class Ry extends pn{constructor(t,e){Qa(t,e),super(t,t.rows,e.length),this.columnIndices=e}set(t,e,r){return this.matrix.set(t,this.columnIndices[e],r),this}get(t,e){return this.matrix.get(t,this.columnIndices[e])}}class Py extends pn{constructor(t){super(t,t.rows,t.columns)}set(t,e,r){return this.matrix.set(t,this.columns-e-1,r),this}get(t,e){return this.matrix.get(t,this.columns-e-1)}}class ky extends pn{constructor(t){super(t,t.rows,t.columns)}set(t,e,r){return this.matrix.set(this.rows-t-1,e,r),this}get(t,e){return this.matrix.get(this.rows-t-1,e)}}class zy extends pn{constructor(t,e){Tr(t,e),super(t,1,t.columns),this.row=e}set(t,e,r){return this.matrix.set(this.row,e,r),this}get(t,e){return this.matrix.get(this.row,e)}}class qy extends pn{constructor(t,e){Xa(t,e),super(t,e.length,t.columns),this.rowIndices=e}set(t,e,r){return this.matrix.set(this.rowIndices[t],e,r),this}get(t,e){return this.matrix.get(this.rowIndices[t],e)}}class ho extends pn{constructor(t,e,r){Xa(t,e),Qa(t,r),super(t,e.length,r.length),this.rowIndices=e,this.columnIndices=r}set(t,e,r){return this.matrix.set(this.rowIndices[t],this.columnIndices[e],r),this}get(t,e){return this.matrix.get(this.rowIndices[t],this.columnIndices[e])}}class Uy extends pn{constructor(t,e,r,n,s){tu(t,e,r,n,s),super(t,r-e+1,s-n+1),this.startRow=e,this.startColumn=n}set(t,e,r){return this.matrix.set(this.startRow+t,this.startColumn+e,r),this}get(t,e){return this.matrix.get(this.startRow+t,this.startColumn+e)}}class jy extends pn{constructor(t){super(t,t.columns,t.rows)}set(t,e,r){return this.matrix.set(e,t,r),this}get(t,e){return this.matrix.get(e,t)}}class hh extends $t{constructor(t,e={}){const{rows:r=1}=e;if(t.length%r!==0)throw new Error("the data length is not divisible by the number of rows");super(),this.rows=r,this.columns=t.length/r,this.data=t}set(t,e,r){let n=this._calculateIndex(t,e);return this.data[n]=r,this}get(t,e){let r=this._calculateIndex(t,e);return this.data[r]}_calculateIndex(t,e){return t*this.columns+e}}class wr extends $t{constructor(t){super(),this.data=t,this.rows=t.length,this.columns=t[0].length}set(t,e,r){return this.data[t][e]=r,this}get(t,e){return this.data[t][e]}}function Wy(i,t){if(fr.isAnyArray(i))return i[0]&&fr.isAnyArray(i[0])?new wr(i):new hh(i,t);throw new Error("the argument is not an array")}class po{constructor(t){t=wr.checkMatrix(t);let e=t.clone(),r=e.rows,n=e.columns,s=new Float64Array(r),a=1,u,c,f,d,h,p,g,y,_;for(u=0;u<r;u++)s[u]=u;for(y=new Float64Array(r),c=0;c<n;c++){for(u=0;u<r;u++)y[u]=e.get(u,c);for(u=0;u<r;u++){for(_=Math.min(u,c),h=0,f=0;f<_;f++)h+=e.get(u,f)*y[f];y[u]-=h,e.set(u,c,y[u])}for(d=c,u=c+1;u<r;u++)Math.abs(y[u])>Math.abs(y[d])&&(d=u);if(d!==c){for(f=0;f<n;f++)p=e.get(d,f),e.set(d,f,e.get(c,f)),e.set(c,f,p);g=s[d],s[d]=s[c],s[c]=g,a=-a}if(c<r&&e.get(c,c)!==0)for(u=c+1;u<r;u++)e.set(u,c,e.get(u,c)/e.get(c,c))}this.LU=e,this.pivotVector=s,this.pivotSign=a}isSingular(){let t=this.LU,e=t.columns;for(let r=0;r<e;r++)if(t.get(r,r)===0)return!0;return!1}solve(t){t=dt.checkMatrix(t);let e=this.LU;if(e.rows!==t.rows)throw new Error("Invalid matrix dimensions");if(this.isSingular())throw new Error("LU matrix is singular");let n=t.columns,s=t.subMatrixRow(this.pivotVector,0,n-1),a=e.columns,u,c,f;for(f=0;f<a;f++)for(u=f+1;u<a;u++)for(c=0;c<n;c++)s.set(u,c,s.get(u,c)-s.get(f,c)*e.get(u,f));for(f=a-1;f>=0;f--){for(c=0;c<n;c++)s.set(f,c,s.get(f,c)/e.get(f,f));for(u=0;u<f;u++)for(c=0;c<n;c++)s.set(u,c,s.get(u,c)-s.get(f,c)*e.get(u,f))}return s}get determinant(){let t=this.LU;if(!t.isSquare())throw new Error("Matrix must be square");let e=this.pivotSign,r=t.columns;for(let n=0;n<r;n++)e*=t.get(n,n);return e}get lowerTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,n=new dt(e,r);for(let s=0;s<e;s++)for(let a=0;a<r;a++)s>a?n.set(s,a,t.get(s,a)):s===a?n.set(s,a,1):n.set(s,a,0);return n}get upperTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,n=new dt(e,r);for(let s=0;s<e;s++)for(let a=0;a<r;a++)s<=a?n.set(s,a,t.get(s,a)):n.set(s,a,0);return n}get pivotPermutationVector(){return Array.from(this.pivotVector)}}function _n(i,t){let e=0;return Math.abs(i)>Math.abs(t)?(e=t/i,Math.abs(i)*Math.sqrt(1+e*e)):t!==0?(e=i/t,Math.abs(t)*Math.sqrt(1+e*e)):0}class eu{constructor(t){t=wr.checkMatrix(t);let e=t.clone(),r=t.rows,n=t.columns,s=new Float64Array(n),a,u,c,f;for(c=0;c<n;c++){let d=0;for(a=c;a<r;a++)d=_n(d,e.get(a,c));if(d!==0){for(e.get(c,c)<0&&(d=-d),a=c;a<r;a++)e.set(a,c,e.get(a,c)/d);for(e.set(c,c,e.get(c,c)+1),u=c+1;u<n;u++){for(f=0,a=c;a<r;a++)f+=e.get(a,c)*e.get(a,u);for(f=-f/e.get(c,c),a=c;a<r;a++)e.set(a,u,e.get(a,u)+f*e.get(a,c))}}s[c]=-d}this.QR=e,this.Rdiag=s}solve(t){t=dt.checkMatrix(t);let e=this.QR,r=e.rows;if(t.rows!==r)throw new Error("Matrix row dimensions must agree");if(!this.isFullRank())throw new Error("Matrix is rank deficient");let n=t.columns,s=t.clone(),a=e.columns,u,c,f,d;for(f=0;f<a;f++)for(c=0;c<n;c++){for(d=0,u=f;u<r;u++)d+=e.get(u,f)*s.get(u,c);for(d=-d/e.get(f,f),u=f;u<r;u++)s.set(u,c,s.get(u,c)+d*e.get(u,f))}for(f=a-1;f>=0;f--){for(c=0;c<n;c++)s.set(f,c,s.get(f,c)/this.Rdiag[f]);for(u=0;u<f;u++)for(c=0;c<n;c++)s.set(u,c,s.get(u,c)-s.get(f,c)*e.get(u,f))}return s.subMatrix(0,a-1,0,n-1)}isFullRank(){let t=this.QR.columns;for(let e=0;e<t;e++)if(this.Rdiag[e]===0)return!1;return!0}get upperTriangularMatrix(){let t=this.QR,e=t.columns,r=new dt(e,e),n,s;for(n=0;n<e;n++)for(s=0;s<e;s++)n<s?r.set(n,s,t.get(n,s)):n===s?r.set(n,s,this.Rdiag[n]):r.set(n,s,0);return r}get orthogonalMatrix(){let t=this.QR,e=t.rows,r=t.columns,n=new dt(e,r),s,a,u,c;for(u=r-1;u>=0;u--){for(s=0;s<e;s++)n.set(s,u,0);for(n.set(u,u,1),a=u;a<r;a++)if(t.get(u,u)!==0){for(c=0,s=u;s<e;s++)c+=t.get(s,u)*n.get(s,a);for(c=-c/t.get(u,u),s=u;s<e;s++)n.set(s,a,n.get(s,a)+c*t.get(s,u))}}return n}}class Oi{constructor(t,e={}){if(t=wr.checkMatrix(t),t.isEmpty())throw new Error("Matrix must be non-empty");let r=t.rows,n=t.columns;const{computeLeftSingularVectors:s=!0,computeRightSingularVectors:a=!0,autoTranspose:u=!1}=e;let c=!!s,f=!!a,d=!1,h;if(r<n)if(!u)h=t.clone(),console.warn("Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose");else{h=t.transpose(),r=h.rows,n=h.columns,d=!0;let A=c;c=f,f=A}else h=t.clone();let p=Math.min(r,n),g=Math.min(r+1,n),y=new Float64Array(g),_=new dt(r,p),w=new dt(n,n),v=new Float64Array(n),x=new Float64Array(r),b=new Float64Array(g);for(let A=0;A<g;A++)b[A]=A;let N=Math.min(r-1,n),E=Math.max(0,Math.min(n-2,r)),C=Math.max(N,E);for(let A=0;A<C;A++){if(A<N){y[A]=0;for(let O=A;O<r;O++)y[A]=_n(y[A],h.get(O,A));if(y[A]!==0){h.get(A,A)<0&&(y[A]=-y[A]);for(let O=A;O<r;O++)h.set(O,A,h.get(O,A)/y[A]);h.set(A,A,h.get(A,A)+1)}y[A]=-y[A]}for(let O=A+1;O<n;O++){if(A<N&&y[A]!==0){let L=0;for(let z=A;z<r;z++)L+=h.get(z,A)*h.get(z,O);L=-L/h.get(A,A);for(let z=A;z<r;z++)h.set(z,O,h.get(z,O)+L*h.get(z,A))}v[O]=h.get(A,O)}if(c&&A<N)for(let O=A;O<r;O++)_.set(O,A,h.get(O,A));if(A<E){v[A]=0;for(let O=A+1;O<n;O++)v[A]=_n(v[A],v[O]);if(v[A]!==0){v[A+1]<0&&(v[A]=0-v[A]);for(let O=A+1;O<n;O++)v[O]/=v[A];v[A+1]+=1}if(v[A]=-v[A],A+1<r&&v[A]!==0){for(let O=A+1;O<r;O++)x[O]=0;for(let O=A+1;O<r;O++)for(let L=A+1;L<n;L++)x[O]+=v[L]*h.get(O,L);for(let O=A+1;O<n;O++){let L=-v[O]/v[A+1];for(let z=A+1;z<r;z++)h.set(z,O,h.get(z,O)+L*x[z])}}if(f)for(let O=A+1;O<n;O++)w.set(O,A,v[O])}}let F=Math.min(n,r+1);if(N<n&&(y[N]=h.get(N,N)),r<F&&(y[F-1]=0),E+1<F&&(v[E]=h.get(E,F-1)),v[F-1]=0,c){for(let A=N;A<p;A++){for(let O=0;O<r;O++)_.set(O,A,0);_.set(A,A,1)}for(let A=N-1;A>=0;A--)if(y[A]!==0){for(let O=A+1;O<p;O++){let L=0;for(let z=A;z<r;z++)L+=_.get(z,A)*_.get(z,O);L=-L/_.get(A,A);for(let z=A;z<r;z++)_.set(z,O,_.get(z,O)+L*_.get(z,A))}for(let O=A;O<r;O++)_.set(O,A,-_.get(O,A));_.set(A,A,1+_.get(A,A));for(let O=0;O<A-1;O++)_.set(O,A,0)}else{for(let O=0;O<r;O++)_.set(O,A,0);_.set(A,A,1)}}if(f)for(let A=n-1;A>=0;A--){if(A<E&&v[A]!==0)for(let O=A+1;O<n;O++){let L=0;for(let z=A+1;z<n;z++)L+=w.get(z,A)*w.get(z,O);L=-L/w.get(A+1,A);for(let z=A+1;z<n;z++)w.set(z,O,w.get(z,O)+L*w.get(z,A))}for(let O=0;O<n;O++)w.set(O,A,0);w.set(A,A,1)}let S=F-1,I=Number.EPSILON;for(;F>0;){let A,O;for(A=F-2;A>=-1&&A!==-1;A--){const L=Number.MIN_VALUE+I*Math.abs(y[A]+Math.abs(y[A+1]));if(Math.abs(v[A])<=L||Number.isNaN(v[A])){v[A]=0;break}}if(A===F-2)O=4;else{let L;for(L=F-1;L>=A&&L!==A;L--){let z=(L!==F?Math.abs(v[L]):0)+(L!==A+1?Math.abs(v[L-1]):0);if(Math.abs(y[L])<=I*z){y[L]=0;break}}L===A?O=3:L===F-1?O=1:(O=2,A=L)}switch(A++,O){case 1:{let L=v[F-2];v[F-2]=0;for(let z=F-2;z>=A;z--){let q=_n(y[z],L),j=y[z]/q,P=L/q;if(y[z]=q,z!==A&&(L=-P*v[z-1],v[z-1]=j*v[z-1]),f)for(let Z=0;Z<n;Z++)q=j*w.get(Z,z)+P*w.get(Z,F-1),w.set(Z,F-1,-P*w.get(Z,z)+j*w.get(Z,F-1)),w.set(Z,z,q)}break}case 2:{let L=v[A-1];v[A-1]=0;for(let z=A;z<F;z++){let q=_n(y[z],L),j=y[z]/q,P=L/q;if(y[z]=q,L=-P*v[z],v[z]=j*v[z],c)for(let Z=0;Z<r;Z++)q=j*_.get(Z,z)+P*_.get(Z,A-1),_.set(Z,A-1,-P*_.get(Z,z)+j*_.get(Z,A-1)),_.set(Z,z,q)}break}case 3:{const L=Math.max(Math.abs(y[F-1]),Math.abs(y[F-2]),Math.abs(v[F-2]),Math.abs(y[A]),Math.abs(v[A])),z=y[F-1]/L,q=y[F-2]/L,j=v[F-2]/L,P=y[A]/L,Z=v[A]/L,W=((q+z)*(q-z)+j*j)/2,X=z*j*(z*j);let J=0;(W!==0||X!==0)&&(W<0?J=0-Math.sqrt(W*W+X):J=Math.sqrt(W*W+X),J=X/(W+J));let ct=(P+z)*(P-z)+J,gt=P*Z;for(let st=A;st<F-1;st++){let yt=_n(ct,gt);yt===0&&(yt=Number.MIN_VALUE);let Dt=ct/yt,Nt=gt/yt;if(st!==A&&(v[st-1]=yt),ct=Dt*y[st]+Nt*v[st],v[st]=Dt*v[st]-Nt*y[st],gt=Nt*y[st+1],y[st+1]=Dt*y[st+1],f)for(let xt=0;xt<n;xt++)yt=Dt*w.get(xt,st)+Nt*w.get(xt,st+1),w.set(xt,st+1,-Nt*w.get(xt,st)+Dt*w.get(xt,st+1)),w.set(xt,st,yt);if(yt=_n(ct,gt),yt===0&&(yt=Number.MIN_VALUE),Dt=ct/yt,Nt=gt/yt,y[st]=yt,ct=Dt*v[st]+Nt*y[st+1],y[st+1]=-Nt*v[st]+Dt*y[st+1],gt=Nt*v[st+1],v[st+1]=Dt*v[st+1],c&&st<r-1)for(let xt=0;xt<r;xt++)yt=Dt*_.get(xt,st)+Nt*_.get(xt,st+1),_.set(xt,st+1,-Nt*_.get(xt,st)+Dt*_.get(xt,st+1)),_.set(xt,st,yt)}v[F-2]=ct;break}case 4:{if(y[A]<=0&&(y[A]=y[A]<0?-y[A]:0,f))for(let L=0;L<=S;L++)w.set(L,A,-w.get(L,A));for(;A<S&&!(y[A]>=y[A+1]);){let L=y[A];if(y[A]=y[A+1],y[A+1]=L,f&&A<n-1)for(let z=0;z<n;z++)L=w.get(z,A+1),w.set(z,A+1,w.get(z,A)),w.set(z,A,L);if(c&&A<r-1)for(let z=0;z<r;z++)L=_.get(z,A+1),_.set(z,A+1,_.get(z,A)),_.set(z,A,L);A++}F--;break}}}if(d){let A=w;w=_,_=A}this.m=r,this.n=n,this.s=y,this.U=_,this.V=w}solve(t){let e=t,r=this.threshold,n=this.s.length,s=dt.zeros(n,n);for(let p=0;p<n;p++)Math.abs(this.s[p])<=r?s.set(p,p,0):s.set(p,p,1/this.s[p]);let a=this.U,u=this.rightSingularVectors,c=u.mmul(s),f=u.rows,d=a.rows,h=dt.zeros(f,d);for(let p=0;p<f;p++)for(let g=0;g<d;g++){let y=0;for(let _=0;_<n;_++)y+=c.get(p,_)*a.get(g,_);h.set(p,g,y)}return h.mmul(e)}solveForDiagonal(t){return this.solve(dt.diag(t))}inverse(){let t=this.V,e=this.threshold,r=t.rows,n=t.columns,s=new dt(r,this.s.length);for(let d=0;d<r;d++)for(let h=0;h<n;h++)Math.abs(this.s[h])>e&&s.set(d,h,t.get(d,h)/this.s[h]);let a=this.U,u=a.rows,c=a.columns,f=new dt(r,u);for(let d=0;d<r;d++)for(let h=0;h<u;h++){let p=0;for(let g=0;g<c;g++)p+=s.get(d,g)*a.get(h,g);f.set(d,h,p)}return f}get condition(){return this.s[0]/this.s[Math.min(this.m,this.n)-1]}get norm2(){return this.s[0]}get rank(){let t=Math.max(this.m,this.n)*this.s[0]*Number.EPSILON,e=0,r=this.s;for(let n=0,s=r.length;n<s;n++)r[n]>t&&e++;return e}get diagonal(){return Array.from(this.s)}get threshold(){return Number.EPSILON/2*Math.max(this.m,this.n)*this.s[0]}get leftSingularVectors(){return this.U}get rightSingularVectors(){return this.V}get diagonalMatrix(){return dt.diag(this.s)}}function Yy(i,t=!1){return i=wr.checkMatrix(i),t?new Oi(i).inverse():dh(i,dt.eye(i.rows))}function dh(i,t,e=!1){return i=wr.checkMatrix(i),t=wr.checkMatrix(t),e?new Oi(i).solve(t):i.isSquare()?new po(i).solve(t):new eu(i).solve(t)}function _o(i){if(i=dt.checkMatrix(i),i.isSquare()){if(i.columns===0)return 1;let t,e,r,n;if(i.columns===2)return t=i.get(0,0),e=i.get(0,1),r=i.get(1,0),n=i.get(1,1),t*n-e*r;if(i.columns===3){let s,a,u;return s=new ho(i,[1,2],[1,2]),a=new ho(i,[1,2],[0,2]),u=new ho(i,[1,2],[0,1]),t=i.get(0,0),e=i.get(0,1),r=i.get(0,2),t*_o(s)-e*_o(a)+r*_o(u)}else return new po(i).determinant}else throw Error("determinant can only be calculated for a square matrix")}function Vy(i,t){let e=[];for(let r=0;r<i;r++)r!==t&&e.push(r);return e}function Hy(i,t,e,r=1e-9,n=1e-9){if(i>n)return new Array(t.rows+1).fill(0);{let s=t.addRow(e,[0]);for(let a=0;a<s.rows;a++)Math.abs(s.get(a,0))<r&&s.set(a,0,0);return s.to1DArray()}}function Zy(i,t={}){const{thresholdValue:e=1e-9,thresholdError:r=1e-9}=t;i=dt.checkMatrix(i);let n=i.rows,s=new dt(n,n);for(let a=0;a<n;a++){let u=dt.columnVector(i.getRow(a)),c=i.subMatrixRow(Vy(n,a)).transpose(),d=new Oi(c).solve(u),h=dt.sub(u,c.mmul(d)).abs().max();s.setRow(a,Hy(h,d,a,e,r))}return s}function Ky(i,t=Number.EPSILON){if(i=dt.checkMatrix(i),i.isEmpty())return i.transpose();let e=new Oi(i,{autoTranspose:!0}),r=e.leftSingularVectors,n=e.rightSingularVectors,s=e.diagonal;for(let a=0;a<s.length;a++)Math.abs(s[a])>t?s[a]=1/s[a]:s[a]=0;return n.mmul(dt.diag(s).mmul(r.transpose()))}function Gy(i,t=i,e={}){i=new dt(i);let r=!1;if(typeof t=="object"&&!dt.isMatrix(t)&&!fr.isAnyArray(t)?(e=t,t=i,r=!0):t=new dt(t),i.rows!==t.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:n=!0}=e;n&&(i=i.center("column"),r||(t=t.center("column")));const s=i.transpose().mmul(t);for(let a=0;a<s.rows;a++)for(let u=0;u<s.columns;u++)s.set(a,u,s.get(a,u)*(1/(i.rows-1)));return s}function Jy(i,t=i,e={}){i=new dt(i);let r=!1;if(typeof t=="object"&&!dt.isMatrix(t)&&!fr.isAnyArray(t)?(e=t,t=i,r=!0):t=new dt(t),i.rows!==t.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:n=!0,scale:s=!0}=e;n&&(i.center("column"),r||t.center("column")),s&&(i.scale("column"),r||t.scale("column"));const a=i.standardDeviation("column",{unbiased:!0}),u=r?a:t.standardDeviation("column",{unbiased:!0}),c=i.transpose().mmul(t);for(let f=0;f<c.rows;f++)for(let d=0;d<c.columns;d++)c.set(f,d,c.get(f,d)*(1/(a[f]*u[d]))*(1/(i.rows-1)));return c}let ph=class{constructor(t,e={}){const{assumeSymmetric:r=!1}=e;if(t=wr.checkMatrix(t),!t.isSquare())throw new Error("Matrix is not a square matrix");if(t.isEmpty())throw new Error("Matrix must be non-empty");let n=t.columns,s=new dt(n,n),a=new Float64Array(n),u=new Float64Array(n),c=t,f,d,h=!1;if(r?h=!0:h=t.isSymmetric(),h){for(f=0;f<n;f++)for(d=0;d<n;d++)s.set(f,d,c.get(f,d));Xy(n,u,a,s),Qy(n,u,a,s)}else{let p=new dt(n,n),g=new Float64Array(n);for(d=0;d<n;d++)for(f=0;f<n;f++)p.set(f,d,c.get(f,d));tw(n,p,g,s),ew(n,u,a,s,p)}this.n=n,this.e=u,this.d=a,this.V=s}get realEigenvalues(){return Array.from(this.d)}get imaginaryEigenvalues(){return Array.from(this.e)}get eigenvectorMatrix(){return this.V}get diagonalMatrix(){let t=this.n,e=this.e,r=this.d,n=new dt(t,t),s,a;for(s=0;s<t;s++){for(a=0;a<t;a++)n.set(s,a,0);n.set(s,s,r[s]),e[s]>0?n.set(s,s+1,e[s]):e[s]<0&&n.set(s,s-1,e[s])}return n}};function Xy(i,t,e,r){let n,s,a,u,c,f,d,h;for(c=0;c<i;c++)e[c]=r.get(i-1,c);for(u=i-1;u>0;u--){for(h=0,a=0,f=0;f<u;f++)h=h+Math.abs(e[f]);if(h===0)for(t[u]=e[u-1],c=0;c<u;c++)e[c]=r.get(u-1,c),r.set(u,c,0),r.set(c,u,0);else{for(f=0;f<u;f++)e[f]/=h,a+=e[f]*e[f];for(n=e[u-1],s=Math.sqrt(a),n>0&&(s=-s),t[u]=h*s,a=a-n*s,e[u-1]=n-s,c=0;c<u;c++)t[c]=0;for(c=0;c<u;c++){for(n=e[c],r.set(c,u,n),s=t[c]+r.get(c,c)*n,f=c+1;f<=u-1;f++)s+=r.get(f,c)*e[f],t[f]+=r.get(f,c)*n;t[c]=s}for(n=0,c=0;c<u;c++)t[c]/=a,n+=t[c]*e[c];for(d=n/(a+a),c=0;c<u;c++)t[c]-=d*e[c];for(c=0;c<u;c++){for(n=e[c],s=t[c],f=c;f<=u-1;f++)r.set(f,c,r.get(f,c)-(n*t[f]+s*e[f]));e[c]=r.get(u-1,c),r.set(u,c,0)}}e[u]=a}for(u=0;u<i-1;u++){if(r.set(i-1,u,r.get(u,u)),r.set(u,u,1),a=e[u+1],a!==0){for(f=0;f<=u;f++)e[f]=r.get(f,u+1)/a;for(c=0;c<=u;c++){for(s=0,f=0;f<=u;f++)s+=r.get(f,u+1)*r.get(f,c);for(f=0;f<=u;f++)r.set(f,c,r.get(f,c)-s*e[f])}}for(f=0;f<=u;f++)r.set(f,u+1,0)}for(c=0;c<i;c++)e[c]=r.get(i-1,c),r.set(i-1,c,0);r.set(i-1,i-1,1),t[0]=0}function Qy(i,t,e,r){let n,s,a,u,c,f,d,h,p,g,y,_,w,v,x,b;for(a=1;a<i;a++)t[a-1]=t[a];t[i-1]=0;let N=0,E=0,C=Number.EPSILON;for(f=0;f<i;f++){for(E=Math.max(E,Math.abs(e[f])+Math.abs(t[f])),d=f;d<i&&!(Math.abs(t[d])<=C*E);)d++;if(d>f)do{for(n=e[f],h=(e[f+1]-n)/(2*t[f]),p=_n(h,1),h<0&&(p=-p),e[f]=t[f]/(h+p),e[f+1]=t[f]*(h+p),g=e[f+1],s=n-e[f],a=f+2;a<i;a++)e[a]-=s;for(N=N+s,h=e[d],y=1,_=y,w=y,v=t[f+1],x=0,b=0,a=d-1;a>=f;a--)for(w=_,_=y,b=x,n=y*t[a],s=y*h,p=_n(h,t[a]),t[a+1]=x*p,x=t[a]/p,y=h/p,h=y*e[a]-x*n,e[a+1]=s+x*(y*n+x*e[a]),c=0;c<i;c++)s=r.get(c,a+1),r.set(c,a+1,x*r.get(c,a)+y*s),r.set(c,a,y*r.get(c,a)-x*s);h=-x*b*w*v*t[f]/g,t[f]=x*h,e[f]=y*h}while(Math.abs(t[f])>C*E);e[f]=e[f]+N,t[f]=0}for(a=0;a<i-1;a++){for(c=a,h=e[a],u=a+1;u<i;u++)e[u]<h&&(c=u,h=e[u]);if(c!==a)for(e[c]=e[a],e[a]=h,u=0;u<i;u++)h=r.get(u,a),r.set(u,a,r.get(u,c)),r.set(u,c,h)}}function tw(i,t,e,r){let n=0,s=i-1,a,u,c,f,d,h,p;for(h=n+1;h<=s-1;h++){for(p=0,f=h;f<=s;f++)p=p+Math.abs(t.get(f,h-1));if(p!==0){for(c=0,f=s;f>=h;f--)e[f]=t.get(f,h-1)/p,c+=e[f]*e[f];for(u=Math.sqrt(c),e[h]>0&&(u=-u),c=c-e[h]*u,e[h]=e[h]-u,d=h;d<i;d++){for(a=0,f=s;f>=h;f--)a+=e[f]*t.get(f,d);for(a=a/c,f=h;f<=s;f++)t.set(f,d,t.get(f,d)-a*e[f])}for(f=0;f<=s;f++){for(a=0,d=s;d>=h;d--)a+=e[d]*t.get(f,d);for(a=a/c,d=h;d<=s;d++)t.set(f,d,t.get(f,d)-a*e[d])}e[h]=p*e[h],t.set(h,h-1,p*u)}}for(f=0;f<i;f++)for(d=0;d<i;d++)r.set(f,d,f===d?1:0);for(h=s-1;h>=n+1;h--)if(t.get(h,h-1)!==0){for(f=h+1;f<=s;f++)e[f]=t.get(f,h-1);for(d=h;d<=s;d++){for(u=0,f=h;f<=s;f++)u+=e[f]*r.get(f,d);for(u=u/e[h]/t.get(h,h-1),f=h;f<=s;f++)r.set(f,d,r.get(f,d)+u*e[f])}}}function ew(i,t,e,r,n){let s=i-1,a=0,u=i-1,c=Number.EPSILON,f=0,d=0,h=0,p=0,g=0,y=0,_=0,w=0,v,x,b,N,E,C,F,S,I,A,O,L,z,q,j;for(v=0;v<i;v++)for((v<a||v>u)&&(e[v]=n.get(v,v),t[v]=0),x=Math.max(v-1,0);x<i;x++)d=d+Math.abs(n.get(v,x));for(;s>=a;){for(N=s;N>a&&(y=Math.abs(n.get(N-1,N-1))+Math.abs(n.get(N,N)),y===0&&(y=d),!(Math.abs(n.get(N,N-1))<c*y));)N--;if(N===s)n.set(s,s,n.get(s,s)+f),e[s]=n.get(s,s),t[s]=0,s--,w=0;else if(N===s-1){if(F=n.get(s,s-1)*n.get(s-1,s),h=(n.get(s-1,s-1)-n.get(s,s))/2,p=h*h+F,_=Math.sqrt(Math.abs(p)),n.set(s,s,n.get(s,s)+f),n.set(s-1,s-1,n.get(s-1,s-1)+f),S=n.get(s,s),p>=0){for(_=h>=0?h+_:h-_,e[s-1]=S+_,e[s]=e[s-1],_!==0&&(e[s]=S-F/_),t[s-1]=0,t[s]=0,S=n.get(s,s-1),y=Math.abs(S)+Math.abs(_),h=S/y,p=_/y,g=Math.sqrt(h*h+p*p),h=h/g,p=p/g,x=s-1;x<i;x++)_=n.get(s-1,x),n.set(s-1,x,p*_+h*n.get(s,x)),n.set(s,x,p*n.get(s,x)-h*_);for(v=0;v<=s;v++)_=n.get(v,s-1),n.set(v,s-1,p*_+h*n.get(v,s)),n.set(v,s,p*n.get(v,s)-h*_);for(v=a;v<=u;v++)_=r.get(v,s-1),r.set(v,s-1,p*_+h*r.get(v,s)),r.set(v,s,p*r.get(v,s)-h*_)}else e[s-1]=S+h,e[s]=S+h,t[s-1]=_,t[s]=-_;s=s-2,w=0}else{if(S=n.get(s,s),I=0,F=0,N<s&&(I=n.get(s-1,s-1),F=n.get(s,s-1)*n.get(s-1,s)),w===10){for(f+=S,v=a;v<=s;v++)n.set(v,v,n.get(v,v)-S);y=Math.abs(n.get(s,s-1))+Math.abs(n.get(s-1,s-2)),S=I=.75*y,F=-.4375*y*y}if(w===30&&(y=(I-S)/2,y=y*y+F,y>0)){for(y=Math.sqrt(y),I<S&&(y=-y),y=S-F/((I-S)/2+y),v=a;v<=s;v++)n.set(v,v,n.get(v,v)-y);f+=y,S=I=F=.964}for(w=w+1,E=s-2;E>=N&&(_=n.get(E,E),g=S-_,y=I-_,h=(g*y-F)/n.get(E+1,E)+n.get(E,E+1),p=n.get(E+1,E+1)-_-g-y,g=n.get(E+2,E+1),y=Math.abs(h)+Math.abs(p)+Math.abs(g),h=h/y,p=p/y,g=g/y,!(E===N||Math.abs(n.get(E,E-1))*(Math.abs(p)+Math.abs(g))<c*(Math.abs(h)*(Math.abs(n.get(E-1,E-1))+Math.abs(_)+Math.abs(n.get(E+1,E+1))))));)E--;for(v=E+2;v<=s;v++)n.set(v,v-2,0),v>E+2&&n.set(v,v-3,0);for(b=E;b<=s-1&&(q=b!==s-1,b!==E&&(h=n.get(b,b-1),p=n.get(b+1,b-1),g=q?n.get(b+2,b-1):0,S=Math.abs(h)+Math.abs(p)+Math.abs(g),S!==0&&(h=h/S,p=p/S,g=g/S)),S!==0);b++)if(y=Math.sqrt(h*h+p*p+g*g),h<0&&(y=-y),y!==0){for(b!==E?n.set(b,b-1,-y*S):N!==E&&n.set(b,b-1,-n.get(b,b-1)),h=h+y,S=h/y,I=p/y,_=g/y,p=p/h,g=g/h,x=b;x<i;x++)h=n.get(b,x)+p*n.get(b+1,x),q&&(h=h+g*n.get(b+2,x),n.set(b+2,x,n.get(b+2,x)-h*_)),n.set(b,x,n.get(b,x)-h*S),n.set(b+1,x,n.get(b+1,x)-h*I);for(v=0;v<=Math.min(s,b+3);v++)h=S*n.get(v,b)+I*n.get(v,b+1),q&&(h=h+_*n.get(v,b+2),n.set(v,b+2,n.get(v,b+2)-h*g)),n.set(v,b,n.get(v,b)-h),n.set(v,b+1,n.get(v,b+1)-h*p);for(v=a;v<=u;v++)h=S*r.get(v,b)+I*r.get(v,b+1),q&&(h=h+_*r.get(v,b+2),r.set(v,b+2,r.get(v,b+2)-h*g)),r.set(v,b,r.get(v,b)-h),r.set(v,b+1,r.get(v,b+1)-h*p)}}}if(d!==0){for(s=i-1;s>=0;s--)if(h=e[s],p=t[s],p===0)for(N=s,n.set(s,s,1),v=s-1;v>=0;v--){for(F=n.get(v,v)-h,g=0,x=N;x<=s;x++)g=g+n.get(v,x)*n.get(x,s);if(t[v]<0)_=F,y=g;else if(N=v,t[v]===0?n.set(v,s,F!==0?-g/F:-g/(c*d)):(S=n.get(v,v+1),I=n.get(v+1,v),p=(e[v]-h)*(e[v]-h)+t[v]*t[v],C=(S*y-_*g)/p,n.set(v,s,C),n.set(v+1,s,Math.abs(S)>Math.abs(_)?(-g-F*C)/S:(-y-I*C)/_)),C=Math.abs(n.get(v,s)),c*C*C>1)for(x=v;x<=s;x++)n.set(x,s,n.get(x,s)/C)}else if(p<0)for(N=s-1,Math.abs(n.get(s,s-1))>Math.abs(n.get(s-1,s))?(n.set(s-1,s-1,p/n.get(s,s-1)),n.set(s-1,s,-(n.get(s,s)-h)/n.get(s,s-1))):(j=mo(0,-n.get(s-1,s),n.get(s-1,s-1)-h,p),n.set(s-1,s-1,j[0]),n.set(s-1,s,j[1])),n.set(s,s-1,0),n.set(s,s,1),v=s-2;v>=0;v--){for(A=0,O=0,x=N;x<=s;x++)A=A+n.get(v,x)*n.get(x,s-1),O=O+n.get(v,x)*n.get(x,s);if(F=n.get(v,v)-h,t[v]<0)_=F,g=A,y=O;else if(N=v,t[v]===0?(j=mo(-A,-O,F,p),n.set(v,s-1,j[0]),n.set(v,s,j[1])):(S=n.get(v,v+1),I=n.get(v+1,v),L=(e[v]-h)*(e[v]-h)+t[v]*t[v]-p*p,z=(e[v]-h)*2*p,L===0&&z===0&&(L=c*d*(Math.abs(F)+Math.abs(p)+Math.abs(S)+Math.abs(I)+Math.abs(_))),j=mo(S*g-_*A+p*O,S*y-_*O-p*A,L,z),n.set(v,s-1,j[0]),n.set(v,s,j[1]),Math.abs(S)>Math.abs(_)+Math.abs(p)?(n.set(v+1,s-1,(-A-F*n.get(v,s-1)+p*n.get(v,s))/S),n.set(v+1,s,(-O-F*n.get(v,s)-p*n.get(v,s-1))/S)):(j=mo(-g-I*n.get(v,s-1),-y-I*n.get(v,s),_,p),n.set(v+1,s-1,j[0]),n.set(v+1,s,j[1]))),C=Math.max(Math.abs(n.get(v,s-1)),Math.abs(n.get(v,s))),c*C*C>1)for(x=v;x<=s;x++)n.set(x,s-1,n.get(x,s-1)/C),n.set(x,s,n.get(x,s)/C)}for(v=0;v<i;v++)if(v<a||v>u)for(x=v;x<i;x++)r.set(v,x,n.get(v,x));for(x=i-1;x>=a;x--)for(v=a;v<=u;v++){for(_=0,b=a;b<=Math.min(x,u);b++)_=_+r.get(v,b)*n.get(b,x);r.set(v,x,_)}}}function mo(i,t,e,r){let n,s;return Math.abs(e)>Math.abs(r)?(n=r/e,s=e+n*r,[(i+n*t)/s,(t-n*i)/s]):(n=e/r,s=r+n*e,[(n*i+t)/s,(n*t-i)/s])}class _h{constructor(t){if(t=wr.checkMatrix(t),!t.isSymmetric())throw new Error("Matrix is not symmetric");let e=t,r=e.rows,n=new dt(r,r),s=!0,a,u,c;for(u=0;u<r;u++){let f=0;for(c=0;c<u;c++){let d=0;for(a=0;a<c;a++)d+=n.get(c,a)*n.get(u,a);d=(e.get(u,c)-d)/n.get(c,c),n.set(u,c,d),f=f+d*d}for(f=e.get(u,u)-f,s&=f>0,n.set(u,u,Math.sqrt(Math.max(f,0))),c=u+1;c<r;c++)n.set(u,c,0)}this.L=n,this.positiveDefinite=!!s}isPositiveDefinite(){return this.positiveDefinite}solve(t){t=wr.checkMatrix(t);let e=this.L,r=e.rows;if(t.rows!==r)throw new Error("Matrix dimensions do not match");if(this.isPositiveDefinite()===!1)throw new Error("Matrix is not positive definite");let n=t.columns,s=t.clone(),a,u,c;for(c=0;c<r;c++)for(u=0;u<n;u++){for(a=0;a<c;a++)s.set(c,u,s.get(c,u)-s.get(a,u)*e.get(c,a));s.set(c,u,s.get(c,u)/e.get(c,c))}for(c=r-1;c>=0;c--)for(u=0;u<n;u++){for(a=c+1;a<r;a++)s.set(c,u,s.get(c,u)-s.get(a,u)*e.get(a,c));s.set(c,u,s.get(c,u)/e.get(c,c))}return s}get lowerTriangularMatrix(){return this.L}}class mh{constructor(t,e={}){t=wr.checkMatrix(t);let{Y:r}=e;const{scaleScores:n=!1,maxIterations:s=1e3,terminationCriteria:a=1e-10}=e;let u;if(r){if(fr.isAnyArray(r)&&typeof r[0]=="number"?r=dt.columnVector(r):r=wr.checkMatrix(r),r.rows!==t.rows)throw new Error("Y should have the same number of rows as X");u=r.getColumnVector(0)}else u=t.getColumnVector(0);let c=1,f,d,h,p;for(let g=0;g<s&&c>a;g++)h=t.transpose().mmul(u).div(u.transpose().mmul(u).get(0,0)),h=h.div(h.norm()),f=t.mmul(h).div(h.transpose().mmul(h).get(0,0)),g>0&&(c=f.clone().sub(p).pow(2).sum()),p=f.clone(),r?(d=r.transpose().mmul(f).div(f.transpose().mmul(f).get(0,0)),d=d.div(d.norm()),u=r.mmul(d).div(d.transpose().mmul(d).get(0,0))):u=f;if(r){let g=t.transpose().mmul(f).div(f.transpose().mmul(f).get(0,0));g=g.div(g.norm());let y=t.clone().sub(f.clone().mmul(g.transpose())),_=u.transpose().mmul(f).div(f.transpose().mmul(f).get(0,0)),w=r.clone().sub(f.clone().mulS(_.get(0,0)).mmul(d.transpose()));this.t=f,this.p=g.transpose(),this.w=h.transpose(),this.q=d,this.u=u,this.s=f.transpose().mmul(f),this.xResidual=y,this.yResidual=w,this.betas=_}else this.w=h.transpose(),this.s=f.transpose().mmul(f).sqrt(),n?this.t=f.clone().div(this.s.get(0,0)):this.t=f,this.xResidual=t.sub(f.mmul(h.transpose()))}}zt.AbstractMatrix=$t,zt.CHO=_h,zt.CholeskyDecomposition=_h,zt.DistanceMatrix=fo,zt.EVD=ph;var rw=zt.EigenvalueDecomposition=ph;zt.LU=po,zt.LuDecomposition=po;var gh=zt.Matrix=dt;zt.MatrixColumnSelectionView=Ry,zt.MatrixColumnView=Ly,zt.MatrixFlipColumnView=Py,zt.MatrixFlipRowView=ky,zt.MatrixRowSelectionView=qy,zt.MatrixRowView=zy,zt.MatrixSelectionView=ho,zt.MatrixSubView=Uy,zt.MatrixTransposeView=jy,zt.NIPALS=mh,zt.Nipals=mh,zt.QR=eu,zt.QrDecomposition=eu,zt.SVD=Oi,zt.SingularValueDecomposition=Oi,zt.SymmetricMatrix=ri,zt.WrapperMatrix1D=hh,zt.WrapperMatrix2D=wr,zt.correlation=Jy,zt.covariance=Gy;var vh=zt.default=dt;zt.determinant=_o,zt.inverse=Yy,zt.linearDependencies=Zy,zt.pseudoInverse=Ky,zt.solve=dh,zt.wrap=Wy;const yh=rw,wh=gh;vh.Matrix&&vh.Matrix;class nw{constructor(t){$(this,"_errorListener");this._errorListener=t}new({rows:t,columns:e,initial_value:r}={}){return new ru(t,e,r,this._errorListener)}avg({id:t}){return t==null?void 0:t.avg()}col({id:t,column:e}){return t==null?void 0:t.col({column:e})}det({id:t}){return t==null?void 0:t.det()}get({id:t,row:e,column:r}){return t==null?void 0:t.get({row:e,column:r})}inv({id:t}){return t==null?void 0:t.inv()}max({id:t}){return t==null?void 0:t.max()}min({id:t}){return t==null?void 0:t.min()}pow({id:t,power:e}){return t==null?void 0:t.pow({power:e})}row({id:t,row:e}){return t==null?void 0:t.row({row:e})}set({id:t,row:e,column:r,value:n}){t==null||t.set({row:e,column:r,value:n})}sum({id1:t,id2:e}){return t==null?void 0:t.sum({id2:e})}copy({id:t}){return t==null?void 0:t.copy()}diff({id1:t,id2:e}){return t==null?void 0:t.diff({id2:e})}rows({id:t}){return t==null?void 0:t.rows()}columns({id:t}){return t==null?void 0:t.columns()}fill({id:t,value:e,from_row:r,to_row:n,from_column:s,to_column:a}){t==null||t.fill({value:e,from_row:r,to_row:n,from_column:s,to_column:a})}kron({id1:t,id2:e}){return t==null?void 0:t.kron({id2:e})}mode({id:t}){return t==null?void 0:t.mode()}mult({id1:t,id2:e}){return t==null?void 0:t.mult({id2:e})}pinv({id:t}){return t==null?void 0:t.pinv()}rank({id:t}){return t==null?void 0:t.rank()}sort({id:t,column:e,order:r}){t==null||t.sort({column:e,order:r})}trace({id:t}){return t==null?void 0:t.trace()}concat({id1:t,id2:e}){return t==null?void 0:t.concat({id2:e})}median({id:t}){return t==null?void 0:t.median()}add_col({id:t,column:e,array_id:r}){t==null||t.add_col({column:e,array_id:r})}add_row({id:t,row:e,array_id:r}){t==null||t.add_row({row:e,array_id:r})}is_zero({id:t}){return t==null?void 0:t.is_zero()}reshape({id:t,rows:e,columns:r},n){return t==null?void 0:t.reshape({rows:e,columns:r},n)}reverse({id:t}){t==null||t.reverse()}is_binary({id:t}){return t==null?void 0:t.is_binary()}is_square({id:t}){return t==null?void 0:t.is_square()}submatrix({id:t,from_row:e,to_row:r,from_column:n,to_column:s}){return t==null?void 0:t.submatrix({from_row:e,to_row:r,from_column:n,to_column:s})}swap_rows({id:t,row1:e,row2:r}){t==null||t.swap_rows({row1:e,row2:r})}transpose({id:t}){return t==null?void 0:t.transpose()}remove_col({id:t,column:e}){return t==null?void 0:t.remove_col({column:e})}remove_row({id:t,row:e}){return t==null?void 0:t.remove_row({row:e})}eigenvalues({id:t}){return t==null?void 0:t.eigenvalues()}is_diagonal({id:t}){return t==null?void 0:t.is_diagonal()}is_identity({id:t}){return t==null?void 0:t.is_identity()}eigenvectors({id:t}){return t==null?void 0:t.eigenvectors()}is_symmetric({id:t}){return t==null?void 0:t.is_symmetric()}swap_columns({id:t,column1:e,column2:r}){t==null||t.swap_columns({column1:e,column2:r})}is_stochastic({id:t}){return t==null?void 0:t.is_stochastic()}is_triangular({id:t}){return t==null?void 0:t.is_triangular()}elements_count({id:t}){return t==null?void 0:t.elements_count()}is_antidiagonal({id:t}){return t==null?void 0:t.is_antidiagonal()}is_antisymmetric({id:t}){return t==null?void 0:t.is_antisymmetric()}}class ru{constructor(t=0,e=0,r=void 0,n){$(this,"_matrixInstance");$(this,"_errorListener");this._matrixInstance=this._createMatrix(t,e,r),this._errorListener=n}get _matrixArray(){return this._matrixInstance.map(t=>[...t._value])}get _value(){return this._matrixInstance}set _value(t){this._matrixInstance=t}get isMatrix(){return!0}_createMatrix(t,e,r){return Array.from(new Array(t),()=>new te(e,r,this._errorListener))}avg(){let t=0,e=0;for(const n of this._matrixInstance)for(const s of n._value)t+=_t(s)?0:s,e+=1;return t/e}col({column:t}){const e=[],r=new te(0,void 0,this._errorListener);if(_t(t))return r;for(const n of this._matrixInstance)e.push(n._value[t]);return r._value=e,r}det(){return sh(this._matrixArray)}get({row:t,column:e}){var r,n;if(!(_t(t)||_t(e)))return(n=(r=this._matrixInstance[t])==null?void 0:r._value)==null?void 0:n[e]}inv(){const t=ao(this._matrixArray);return this._newMatrix(t)}max(){return X1(this._matrixArray)}min(){return Ja(this._matrixArray)}pow({power:t}){const e=_t(t)?this._matrixArray:ty(this._matrixArray,t);return this._newMatrix(e)}row({row:t}){return _t(t)?new te(0,void 0,this._errorListener):this._matrixInstance[t]}set({row:t,column:e,value:r}){_t(t)||_t(e)||this._matrixInstance[t].set({index:e,value:r})}sum({id2:t}){const e=os(this._matrixArray,typeof t=="number"?t:t._matrixArray);return this._newMatrix(e)}copy(){return this._newMatrix(this._matrixArray)}diff({id2:t}){const e=V1(this._matrixArray,typeof t=="number"?t:t._matrixArray);return this._newMatrix(e)}rows(){return this._matrixInstance.length}columns(){return this._matrixArray.length&&this._matrixArray[0].length}fill({value:t,from_row:e,to_row:r,from_column:n,to_column:s}={}){_t(e)&&(e=0),_t(r)&&(r=this.rows()),_t(n)&&(n=0),_t(s)&&(s=this.columns());for(const[a,u]of this._matrixInstance.entries())for(const[c]of u._value.entries())a<r&&a>=e&&c>=n&&c<s&&u.set({index:c,value:t})}kron({id2:t}){const e=W1(this._matrixArray,t._matrixArray);return this._newMatrix(e)}mode(){return Ja(Xf(this._matrixArray))}mult({id2:t}){const e=typeof t=="number"?t:t._matrixArray?t._matrixArray:t._value,r=Mi(this._matrixArray,e);return this._newMatrix(r)}pinv(){const t=Q1(this._matrixArray);return this._newMatrix(t)}rank(){return this._matrixRank(this._matrixArray)}sort({column:t,order:e=Gn.ascending}={}){_t(t)&&(t=0),this._matrixInstance.sort((r,n)=>{const s=r._value[t],a=n._value[t];return e!==Gn.descending?s-a:a-s})}trace(){return J1(this._matrixArray)}concat({id2:t}){for(const e of t._value)this._matrixInstance.push(e);return this}median(){return oh(this._matrixArray)}add_col({column:t,array_id:e}={}){_t(t)&&(t=this.columns());for(const[r,n]of this._matrixInstance.entries())n.insert({index:t,value:e?e._value[r]:void 0})}add_row({row:t,array_id:e}){_t(t)&&(t=this.rows()),this._matrixInstance.splice(t,0,e||new te(this.columns(),void 0,this._errorListener))}is_zero(){return this._matrixArray.every(t=>t.every(e=>e===0))}reshape({rows:t=0,columns:e=0},r){if(t*e!==this.columns()*this.rows()){this._errorListener.addError(re.matrixRehapeErr,r,Lt.Error);return}const n=z1(this._matrixArray,[t,e]);this._matrixInstance=n.map(s=>{const a=new te(0,void 0,this._errorListener);return a._value=[...s],a})}reverse(){this._matrixInstance.reverse();for(const t of this._matrixInstance)t.reverse()}is_binary(){return this._matrixArray.every(t=>t.every(e=>e===0||e===1))}is_square(){return this.rows()===this.columns()}submatrix({from_row:t,to_row:e,from_column:r,to_column:n}={}){_t(t)&&(t=0),_t(e)&&(e=this.rows()),_t(r)&&(r=0),_t(n)&&(n=this.columns());const s=this._matrixArray.splice(t,e),a=[];for(const u of s)a.push(u.splice(r,n));return this._newMatrix(a)}swap_rows({row1:t,row2:e}){if(_t(t)||_t(e))return;const r=this._matrixInstance[t],n=this._matrixInstance[e];this._matrixInstance[t]=n,this._matrixInstance[e]=r}transpose(){const t=th(this._matrixArray);return this._newMatrix(t)}remove_col({column:t}={}){_t(t)&&(t=this.columns());const e=[];for(const n of this._matrixInstance){const s=n._value.splice(t,1);e.push(s[0])}const r=new te(0,void 0,this._errorListener);return r._value=e,r}remove_row({row:t}={}){return _t(t)&&(t=this.rows()),this._matrixInstance.splice(t,1)[0]}eigenvalues(){const t=new yh(new wh(this._matrixArray)),e=new te(0,void 0,this._errorListener);return e._value=t.realEigenvalues,e}is_diagonal(){const t=this.rows(),e=this.columns();if(t!==e)return!1;const r=this._matrixArray;for(let n=0;n<t;n++)for(let s=0;s<e;s++)if(n!==s&&r[n][s]!==0)return!1;return!0}is_identity(){const t=this.rows(),e=this.columns();if(t!==e)return!1;const r=this._matrixArray;for(let n=0;n<t;n++)for(let s=0;s<e;s++)if(n!==s&&r[n][s]!==0||n===s&&r[n][s]!==1)return!1;return!0}eigenvectors(){const t=new yh(new wh(this._matrixArray));return this._newMatrix(t.eigenvectorMatrix.to2DArray())}is_symmetric(){const t=this.rows(),e=this.columns();if(t!==e)return!1;const r=this._matrixArray;for(let n=0;n<t;n++)for(let s=n+1;s<e;s++)if(r[n][s]!==r[s][n])return!1;return!0}swap_columns({column1:t,column2:e}){if(!(_t(t)||_t(e)))for(const r of this._matrixInstance){const n=r._value[t],s=r._value[e];r.set({index:t,value:s}),r.set({index:e,value:n})}}is_stochastic(){const t=this._matrixArray;for(let e=0;e<t.length;e++){let r=0;for(let n=0;n<t[e].length;n++){if(t[e][n]<0)return!1;r+=t[e][n]}if(Math.abs(r-1)>Number.EPSILON)return!1}return!0}is_triangular(){const t=this.rows(),e=this.columns();return t!==e?!1:this._isUpperTriangular(t)||this._isLowerTriangular(t)}elements_count(){return q1(this._matrixArray)}is_antidiagonal(){const t=this.rows(),e=this.columns();if(t!==e)return!1;const r=this._matrixArray;for(let n=0;n<t;n++)for(let s=0;s<t;s++)if(n+s!==t-1&&r[n][s]!==0)return!1;return!0}is_antisymmetric(){const t=this.rows(),e=this.columns();if(t!==e)return!1;const r=this._matrixArray;for(let n=0;n<t;n++)for(let s=0;s<t;s++)if(n!==s&&r[n][s]!==-r[s][n])return!1;return!0}_isUpperTriangular(t){const e=this._matrixArray;for(let r=1;r<t;r++)for(let n=0;n<r;n++)if(e[r][n]!==0)return!1;return!0}_isLowerTriangular(t){const e=this._matrixArray;for(let r=0;r<t-1;r++)for(let n=r+1;n<t;n++)if(e[r][n]!==0)return!1;return!0}_newMatrix(t){const e=new ru(0,0,void 0,this._errorListener);return e._value=t.map(r=>{const n=new te(0,void 0,this._errorListener);return n._value=[...r],n}),e}_matrixRank(t){let e=0;const r=t.length,n=t[0].length,s=[...t].map(a=>[...a]);for(let a=0;a<r&&!(a>=n);a++){let u=a;for(;u<r&&s[u][a]===0;)u++;if(u===r)continue;if(u!==a){const f=s[u];s[u]=s[a],s[a]=f}const c=s[a][a];for(let f=0;f<n;f++)s[a][f]/=c;for(let f=a+1;f<r;f++){const d=s[f][a];s[f]=s[f].map((h,p)=>h-d*s[a][p]),s[f][a]=0}}for(let a=0;a<r;a++)s[a].some(u=>Number(u.toFixed(8))!==0)&&e++;return e}}class iw{constructor(t){$(this,"_variables");$(this,"_cacheData");this._variables=t,this._cacheData={}}change({timeframe:t},e){if(!t)return!0;const{time:r,__period:n}=this._variables,s=gr(t,r),a=gr(n,r);if(s<a)return!0;const u=`change_${e}`,c=this._cacheData[u],f=this._variables.time;if(c){if(c.offset){if(c.currentTime+c.offset<=f)return this._cacheData[u]={currentTime:f,offset:0},!0}else if(c.currentTime+s*1e3<=f)return this._cacheData[u]={currentTime:f,offset:0},!0}else{const d=this._calcTimeOffset(f,t);return this._cacheData[u]={currentTime:f,offset:d},!1}return!1}in_seconds({timeframe:t}={}){const{time:e,__period:r}=this._variables;return gr(t||r,e)}from_seconds({seconds:t=0}){const e=t*1e3,r=jt.duration(e);if(r.years())return"12M";const s=r.asMonths();if(so(s))return`${s}M`;const a=r.asWeeks();if(so(a))return`${a}M`;const u=r.asDays();if(u>=1)return`${Math.ceil(u)}D`;const c=r.asMinutes();if(c>=1)return`${Math.ceil(c)}`;const f=r.asSeconds();return f<=1?"1S":f<=5?"5S":f<=10?"10S":f<=15?"15S":f<=30?"30S":"1"}_calcTimeOffset(t,e){let r=0;if(e.includes("W")){const u=jt(t).day();e="1D",u!==1&&(r=(8-u)*60*60*24*1e3)}else if(e.includes("M")){const u=jt(t).date();e="1D";const c=jt(t).daysInMonth();u!==1&&(r=(c-u+1)*60*60*24*1e3)}const n=this._variables.getTimeTradingday(t,e),s=gr(e,t)*1e3,a=t-n-Math.floor((t-n)/s)*s;return r?r-a:a}}var Dh={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};return function(r,n,s){var a=n.prototype,u=a.format;s.en.formats=e,a.format=function(c){c===void 0&&(c="YYYY-MM-DDTHH:mm:ssZ");var f=this.$locale().formats,d=function(h,p){return h.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(g,y,_){var w=_&&_.toUpperCase();return y||p[_]||e[_]||p[w].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(v,x,b){return x||b.slice(1)})})}(c,f===void 0?{}:f);return u.call(this,d)}}})})(Dh);var sw=Dh.exports,ow=Kt(sw);jt.extend(ow);class aw{constructor(t,e){$(this,"_errorListener");$(this,"_intlNumberFormatter");$(this,"_precision");this._errorListener=t,this._precision=e,this._intlNumberFormatter=new Intl.NumberFormat("en",{notation:"compact"})}pos({source:t="",str:e=""}){return t==null?void 0:t.indexOf(e)}trim({source:t=""}){return t==null?void 0:t.trim()}lower({source:t=""}){return t==null?void 0:t.toLocaleLowerCase()}match({source:t="",regex:e=""}){const r=t==null?void 0:t.match(new RegExp(e));return r?r[0]:""}split({string:t="",separator:e=""}){const r=t==null?void 0:t.split(e),n=new te;return n._value=r||[],n}upper({source:t=""}){return t==null?void 0:t.toLocaleUpperCase()}format({formatString:t=""},e){return this._strFormat(t,e)}length({string:t=""}){return t==null?void 0:t.length}repeat({source:t="",repeat:e,separator:r=""},n){if(_t(e)){this._errorListener.addError(re.arrLenErr,n,Lt.Error);return}return Array.from(new Array(e),()=>t).join(r)}replace({source:t="",target:e="",replacement:r="",occurrence:n}){_t(n)&&(n=0);let s=-1;for(let a=0;a<n+1&&(s=t.indexOf(e,s+1),s!==-1);a++);return s!==-1?t.substring(0,s)+r+t.substring(s+e.length):t}contains({source:t="",str:e=""}){return t==null?void 0:t.includes(e)}endswith({source:t="",str:e=""}){return t==null?void 0:t.endsWith(e)}tonumber({string:t=""}){if(/[^\d.]/.test(t))return;const e=parseFloat(t);return isNaN(e)?void 0:e}tostring({value:t,format:e}){if(t===void 0)return"NaN";if(typeof t=="object"){if(t.isArray)return this._arrToStr(t._value,e);if(t.isMatrix){const r=[];for(const n of t._matrixArray)r.push(this._arrToStr(n,e));return r.join(`
62
- `)}}if(typeof t=="string")return t;if(typeof t=="boolean")return String(t);if(typeof t=="number")return String(this._toStringFormat(t,e==null?void 0:e.replace(/0/g,"#")))}_arrToStr(t,e){return`[${t.map(n=>typeof n=="number"?this._toStringFormat(n,e):n).toString()}]`}substring({source:t="",begin_pos:e=0,end_pos:r}){return _t(e)&&(e=0),_t(r)&&(r=void 0),t==null?void 0:t.substring(e,r)}startswith({source:t="",str:e=""}){return t==null?void 0:t.startsWith(e)}format_time({time:t,format:e="yyyy-MM-dd'T'HH:mm:ssZ",timezone:r}){return _t(t)&&(t=0),mr(t,r).format(e)}replace_all({source:t="",target:e="",replacement:r=""}){return t==null?void 0:t.replace(new RegExp(e,"g"),r)}_toStringFormat(t,e){if(!e)return Number(t.toFixed(this._precision));switch(e){case Gt.mintick:return t.toFixed(this._precision);case Gt.percent:return`${t}%`;case Gt.volume:return this._intlNumberFormatter.format(Math.round(t));default:return this._formatOthers(t,e)}}_formatOthers(t,e){var u;let[r,n]=e.split(".");e.split("%").length===2&&(t=t*100);let[s,a=""]=String(t).split(".");if(r.includes("#")){if(r.includes(",")){const c=r.split(","),f=((u=c[c.length-1])==null?void 0:u.replace(/[^#]/g,"").length)||0;f&&(s=s.replace(new RegExp(`\\B(?=(\\d{${f}})+(?!\\d))`,"g"),",")),r=c.join("")}s=r.replace(/#/,s).replace(/#/g,"")}else s=`${r}${s}`;if(n&&n.includes("#")){const c=n.split("#").length-1,f=+`${s}.${a}`;if(!isNaN(f))return`${f.toFixed(c)}${n.replace(/#/g,"")}`;a=`${a.substring(0,c)}${n.replace(/#/g,"")}`}else a=n||"";return a?`${s}.${a}`:s}_formatNumber(t,e){if(!e)return Number(t.toFixed(this._precision));switch(e){case"integer":return String(Math.round(t));case"currency":return`$${t}`;case"percent":return`${t*100}%`;default:return this._formatOthers(t,e)}}_strFormat(t,e){return t.replace(/{[^{}]+}/g,r=>{if(!r)return r;const n=r.replace(/[{}]/g,"").split(","),s=Number(n[0]);if(isNaN(s)||e.length<=s)return r;const a=e[s];if(n.length===1)return a;if(n.length===2){const u=n[1].trim();return u==="number"?a:u==="date"?jt(a).format("LL"):r}else{const u=n[1].trim(),c=n[2].trim();if(u==="number")return this._formatNumber(a,c);if(u==="date"){let f="YYYY-MM-DD";switch(c){case"long":f="LL";break;case"short":f="L";break;default:c&&(f=c)}return jt(a).format(f)}return r}})}}class uw{constructor(t){$(this,"_errorListener");this._errorListener=t}new(){return new nu(this._errorListener)}copy({id:t}){return t==null?void 0:t.copy()}get({id:t,key:e}){return t==null?void 0:t.get({key:e})}put({id:t,key:e,value:r}){return t==null?void 0:t.put({key:e,value:r})}keys({id:t}){return t==null?void 0:t.keys()}size({id:t}){return t==null?void 0:t.size()}clear({id:t}){t==null||t.clear()}remove({id:t,key:e}){return t==null?void 0:t.remove({key:e})}values({id:t}){return t==null?void 0:t.values()}put_all({id:t,id2:e}){t==null||t.put_all({id2:e})}contains({id:t,key:e}){return t==null?void 0:t.contains({key:e})}}class nu{constructor(t){$(this,"_errorListener");$(this,"_mapInstance");this._errorListener=t,this._mapInstance=new Map}get isMap(){return!0}_copyMap(t){const e=new nu(this._errorListener);return e._mapInstance=new Map(t.entries()),e}copy(){return this._copyMap(this._mapInstance)}get({key:t}){return this._mapInstance.get(t)}put({key:t,value:e}){return this._mapInstance.set(t,e)}keys(){const t=new te(0,void 0,this._errorListener);return t._value=[...this._mapInstance.keys()],t}size(){return this._mapInstance.size}clear(){this._mapInstance.clear()}remove({key:t}){const e=this._mapInstance.get(t);return this._mapInstance.delete(t),e||void 0}values(){const t=new te(0,void 0,this._errorListener);return t._value=[...this._mapInstance.values()],t}put_all({id2:t}){this._mapInstance=new Map([...this._mapInstance,...t._mapInstance])}contains({key:t}){return this._mapInstance.has(t)}}class lw{constructor(t){$(this,"_variables");this._variables=t}new({price:t,time:e,index:r}){return new Bi(t,r,e)}now({price:t}){const{time:e,bar_index:r}=this._variables;return new Bi(t,r,e)}copy({id:t}){return t==null?void 0:t.copy()}from_index({price:t,index:e}){return new Bi(t,e)}from_time({price:t,time:e}){return new Bi(t,void 0,e)}}class Bi{constructor(t,e,r){$(this,"_index");$(this,"_price");$(this,"_time");this._index=e,this._price=t,this._time=r}get index(){return this._index}set index(t){this._index=t}get price(){return this._price}set price(t){this._price=t}get time(){return this._time}set time(t){this._time=t}copy(){return new Bi(this._price,this._index,this._time)}}class cw{constructor(t,e){$(this,"_variables");$(this,"_errorListener");$(this,"_defaultLabel",{text:"",xloc:De.bar_index,yloc:Yr.price,size:ir.normal,style:ve.styleLabelDown,textalign:Wt.alignCenter});this._variables=t,this._errorListener=e}new(t,e){const{time:r,high:n,low:s,bar_index:a}=this._variables,u=`label_${e}_${a}`;ge(t,["color","textcolor"]);const c={...this._defaultLabel,...t,id:u,time:r,high:n,low:s,bar_index:a};t.point&&(c.x=c.xloc===De.bar_index?t.point.index:t.point.time,c.y=t.point.price),c.yloc===Yr.abovebar?c.y=n:c.yloc===Yr.belowbar&&(c.y=s),this._verfiyArgs(t,e);const f=new go(u,this._variables,this._errorListener);return e.startsWith("export")||this._variables.label.add(u,c,f),f}_verfiyArgs(t,e){const{xloc:r,yloc:n,style:s,size:a,textalign:u,text_font_family:c}=t,f="label.new";this._paramVerfiy(s,e,f,Object.values(ve),"style"),this._paramVerfiy(r,e,f,Object.values(De),"xloc"),this._paramVerfiy(n,e,f,Object.values(Yr),"yloc"),this._paramVerfiy(a,e,f,Object.values(ir),"size"),this._paramVerfiy(u,e,f,[Wt.alignLeft,Wt.alignCenter,Wt.alignRight],"textalign"),this._paramVerfiy(c,e,f,Object.values(Jn),"text_font_family")}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}label(t){return t.x}copy({id:t},e){return t==null?void 0:t.copy(e)}get_x({id:t},e){return t==null?void 0:t.get_x(e)}get_y({id:t},e){return t==null?void 0:t.get_y(e)}set_x({id:t,...e},r){t==null||t.set_x(e,r)}set_y({id:t,...e},r){t==null||t.set_y(e,r)}delete({id:t}){t==null||t.delete()}get_text({id:t},e){return t==null?void 0:t.get_text(e)}set_xy({id:t,...e},r){t==null||t.set_xy(e,r)}set_size({id:t,...e},r){t==null||t.set_size(e,r)}set_xloc({id:t,...e},r){t==null||t.set_xloc(e,r)}set_yloc({id:t,...e},r){t==null||t.set_yloc(e,r)}set_style({id:t,...e},r){t==null||t.set_style(e,r)}set_color({id:t,...e},r){t==null||t.set_color(e,r)}set_tooltip({id:t,...e},r){t==null||t.set_tooltip(e,r)}set_point({id:t,...e},r){t==null||t.set_point(e,r)}set_text({id:t,...e},r){t==null||t.set_text(e,r)}set_textcolor({id:t,...e},r){t==null||t.set_textcolor(e,r)}set_textalign({id:t,...e},r){t==null||t.set_textalign(e,r)}set_text_font_family({id:t,...e},r){t==null||t.set_text_font_family(e,r)}}class go{constructor(t,e,r){$(this,"_id");$(this,"_variables");$(this,"_errorListener");$(this,"_suffix","");this._id=t,this._variables=e,this._errorListener=r}get type(){return Fe.LABEL}get id(){return this._id}updateId(){const{bar_index:t}=this._variables;if(!this._suffix)this._suffix=`_${t}`,this._id=`${this._id}${this._suffix}`;else{const e=this._id.split("_");e.pop(),this._id=`${e.join("_")}_${t}`}return this._id}get data(){return this._variables.label.get(this._id)}copy(t){const{bar_index:e}=this._variables,r=`label_${t}_${e}`,n=this._getLabel(t),s=new go(r,this._variables,this._errorListener);if(n){const a={...n,id:r,bar_index:e};this._variables.label.add(r,a,s)}return s}get_x(t){var e;return(e=this._getLabel(t))==null?void 0:e.x}get_y(t){var e;return(e=this._getLabel(t))==null?void 0:e.y}set_x({x:t},e){const r=this._getLabel(e);r&&(r.x=t)}set_y({y:t},e){const r=this._getLabel(e);r&&(r.y=t)}delete(){this._variables.label.delete(this._id)}set_xy({x:t,y:e},r){const n=this._getLabel(r);n&&(n.x=t,n.y=e)}get_text(t){var e;return(e=this._getLabel(t))==null?void 0:e.text}set_size({size:t},e){const r=this._getLabel(e);r&&(r.size=t),this._paramVerfiy(t,e,"label.set_size",Object.values(ir),"size")}set_text({text:t},e){const r=this._getLabel(e);r&&(r.text=t)}set_xloc({x:t,xloc:e},r){const n=this._getLabel(r);n&&(n.x=t,n.xloc=e,this._paramVerfiy(e,r,"label.set_xloc",Object.values(De),"xloc"))}set_yloc({yloc:t},e){const r=this._getLabel(e),{high:n,low:s}=this._variables;r&&(r.yloc=t,t===Yr.abovebar?r.y=n:t===Yr.belowbar&&(r.y=s),this._paramVerfiy(t,e,"label.set_yloc",Object.values(Yr),"yloc"))}set_color(t,e){const r=this._getLabel(e);ge(t,["color"]),r&&(r.color=t.color)}set_point({point:t},e){const r=this._getLabel(e);r&&(r.x=r.xloc===De.bar_index?t==null?void 0:t.index:t==null?void 0:t.time,r.y=t==null?void 0:t.price)}set_style({style:t},e){const r=this._getLabel(e);r&&(r.style=t),this._paramVerfiy(t,e,"label.set_style",Object.values(ve),"style")}set_tooltip({tooltip:t},e){const r=this._getLabel(e);r&&(r.tooltip=t)}set_textalign({textalign:t},e){const r=this._getLabel(e);r&&(r.textalign=t),this._paramVerfiy(t,e,"label.set_textalign",[Wt.alignLeft,Wt.alignCenter,Wt.alignRight],"textalign")}set_textcolor(t,e){const r=this._getLabel(e);ge(t,["textcolor"]),r&&(r.textcolor=t.textcolor)}set_text_font_family({text_font_family:t},e){const r=this._getLabel(e);r&&(r.text_font_family=t),this._paramVerfiy(t,e,"label.set_text_font_family",Object.values(Jn),"text_font_family")}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}_getLabel(t){const e=this._variables.label.get(this._id);return e||console.log(`错误${t}: label 不存在`),e}}const fw={freq_all:jr.freqAll,freq_once_per_bar:jr.freqOncePerBar,freq_once_per_bar_close:jr.freqOncePerBarClose},hw={gaps_off:ln.gapsOff,gaps_on:ln.gapsOn,lookahead_off:ln.lookaheadOff,lookahead_on:ln.lookaheadOn},Ti={aqua:"#00BCD4",black:"#363A45",blue:"#2196F3",fuchsia:"#E040FB",gray:"#787B86",green:"#4CAF50",lime:"#00E676",maroon:"#880E4F",navy:"#311B92",olive:"#808000",orange:"#FF9800",purple:"#9C27B0",red:"#FF5252",silver:"#B2B5BE",teal:"#00897B",white:"#FFFFFF",yellow:"#FFEB3B"},bh={AUD:"AUD",BTC:"BTC",CAD:"CAD",CHF:"CHF",ETH:"ETH",EUR:"EUR",GBP:"GBP",HKD:"HKD",INR:"INR",JPY:"JPY",KRW:"KRW",MYR:"MYR",NOK:"NOK",NONE:"NONE",NZD:"NZD",RUB:"RUB",SEK:"SEK",SGD:"SGD",TRY:"TRY",USD:"USD",USDT:"USDT",ZAR:"ZAR"},dw={friday:6,monday:2,saturday:7,sunday:1,thursday:5,tuesday:3,wednesday:4},xh={all:[Ze.dataWindow,Ze.pane,Ze.priceScale,Ze.statusLine],data_window:[Ze.dataWindow],none:[],pane:[Ze.pane],price_scale:[Ze.priceScale],status_line:[Ze.statusLine]},pw={both:Wr.both,left:Wr.left,none:Wr.none,right:Wr.right},_w={inherit:Gt.inherit,mintick:Gt.mintick,percent:Gt.percent,price:Gt.price,volume:Gt.volume},mw={style_solid:Ss.styleSolid,style_dashed:Ss.styleDashed,style_dotted:Ss.styleDotted},gw={style_arrowdown:ve.styleArrowdown,style_arrowup:ve.styleArrowup,style_circle:ve.styleCircle,style_cross:ve.styleCross,style_diamond:ve.styleDiamond,style_flag:ve.styleFlag,style_label_center:ve.styleLabelCenter,style_label_down:ve.styleLabelDown,style_label_left:ve.styleLabelLeft,style_label_lower_left:ve.styleLabelLowerLeft,style_label_lower_right:ve.styleLabelLowerRight,style_label_right:ve.styleLabelRight,style_label_up:ve.styleLabelUp,style_label_upper_left:ve.styleLabelUpperLeft,style_label_upper_right:ve.styleLabelUpperRight,style_none:ve.styleNone,style_square:ve.styleSquare,style_text_outline:ve.styleTextOutline,style_triangledown:ve.styleTriangledown,style_triangleup:ve.styleTriangleup,style_xcross:ve.styleXcross},vw={style_arrow_both:Re.styleArrowBoth,style_arrow_left:Re.styleArrowLeft,style_arrow_right:Re.styleArrowRight,style_dashed:Re.styleDashed,style_dotted:Re.styleDotted,style_solid:Re.styleSolid},yw={abovebar:cn.abovebar,absolute:cn.absolute,belowbar:cn.belowbar,bottom:cn.bottom,top:cn.top},ww={e:2.718281828459045,phi:1.618033988749895,pi:3.141592653589793,rphi:.6180339887498948},Dw={style_area:Or.styleArea,style_areabr:Or.styleAreabr,style_circles:Or.styleCircles,style_columns:Or.styleColumns,style_cross:Or.styleCross,style_histogram:Or.styleHistogram,style_line:Or.styleLine,style_linebr:Or.styleLinebr,style_stepline:Or.styleStepline,style_stepline_diamond:Or.styleSteplineDiamond,style_steplinebr:Or.styleSteplinebr},bw={bottom_center:vr.bottomCenter,bottom_left:vr.bottomLeft,bottom_right:vr.bottomRight,middle_center:vr.middleCenter,middle_left:vr.middleLeft,middle_right:vr.middleRight,top_center:vr.topCenter,top_left:vr.topLeft,top_right:vr.topRight},xw={left:Os.left,none:Os.none,right:Os.right},Ew={arrowdown:lr.arrowdown,arrowup:lr.arrowup,circle:lr.circle,cross:lr.cross,diamond:lr.diamond,flag:lr.flag,labeldown:lr.labeldown,labelup:lr.labelup,square:lr.square,triangledown:lr.triangledown,triangleup:lr.triangleup,xcross:lr.xcross},Aw={auto:ir.auto,huge:ir.huge,large:ir.large,normal:ir.normal,small:ir.small,tiny:ir.tiny},Cw={cash:Pe.cash,fixed:Pe.fixed,percent_of_equity:Pe.percentOfEquity,commission:{cash_per_contract:We.cashPerContract,cash_per_order:We.cashPerOrder,percent:We.percent},direction:{all:ce.all,long:ce.long,short:ce.short},oca:{cancel:fn.cancel,none:fn.none,reduce:fn.reduce}},Mw={align_bottom:Wt.alignBottom,align_center:Wt.alignCenter,align_left:Wt.alignLeft,align_right:Wt.alignRight,align_top:Wt.alignTop,wrap_auto:Wt.wrapAuto,wrap_none:Wt.wrapNone},Fw={bar_index:De.bar_index,bar_time:De.bar_time},Nw={abovebar:Yr.abovebar,belowbar:Yr.belowbar,price:Yr.price},Sw={actual:Bs.actual,estimate:Bs.estimate,standardized:Bs.standardized};class Eh{constructor(){$(this,"adjustment",{dividends:Ns.dividends,none:Ns.none,splits:Ns.splits});$(this,"alert",fw);$(this,"barmerge",hw);$(this,"color",Ti);$(this,"currency",bh);$(this,"dayofweek",dw);$(this,"earnings",Sw);$(this,"display",xh);$(this,"extend",pw);$(this,"font",{family_default:Jn.familyDefault,family_monospace:Jn.familyMonospace});$(this,"format",_w);$(this,"hline",mw);$(this,"label",gw);$(this,"line",vw);$(this,"location",yw);$(this,"math",ww);$(this,"order",{ascending:Gn.ascending,descending:Gn.descending});$(this,"plot",Dw);$(this,"position",bw);$(this,"scale",xw);$(this,"session",{extended:Mn.extended,regular:Mn.regular});$(this,"shape",Ew);$(this,"size",Aw);$(this,"splits",{denominator:"denominator",numerator:"numerator"});$(this,"strategy",Cw);$(this,"text",Mw);$(this,"xloc",Fw);$(this,"yloc",Nw)}updateData(){}}class Ow{constructor(t,e){$(this,"_variables");$(this,"_errorListener");$(this,"_defaultPolyline",{curved:!1,closed:!1,xloc:De.bar_index,line_color:Ti.blue,line_style:Re.styleSolid,line_width:1});this._variables=t,this._errorListener=e}new(t,e){var u;const{bar_index:r}=this._variables,n=`polyline_${e}_${r}`,s=Object.assign({},this._defaultPolyline,t,{id:n,bar_index:r,points:(u=t.points)==null?void 0:u._value.map(c=>({time:c.time,index:c.index,price:c.price}))});ge(s,["line_color","fill_color"]);const a=new Ah(n,this._variables);return this._verfiyArgs(t,e),e.startsWith("export")||this._variables.polyline.add(n,s,a),a}_verfiyArgs(t,e){const{line_style:r,xloc:n}=t,s="polyline.new";this._paramVerfiy(r,e,s,Object.values(Re),"line_style"),this._paramVerfiy(n,e,s,Object.values(De),"xloc")}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}delete({id:t}){t&&t.delete()}}class Ah{constructor(t,e){$(this,"_id");$(this,"_variables");$(this,"_suffix");this._variables=e,this._id=t}get type(){return Fe.POLYLINE}get id(){return this._id}updateId(){const{bar_index:t}=this._variables;if(!this._suffix)this._suffix=`_${t}`,this._id=`${this._id}${this._suffix}`;else{const e=this._id.split("_");e.pop(),this._id=`${e.join("_")}_${t}`}return this._id}get data(){return this._variables.polyline.get(this._id)}delete(){this._variables.polyline.delete(this._id)}}class Bw{constructor(t,e){$(this,"_variables");$(this,"_errorListener");$(this,"_defaultLine",{xloc:De.bar_index,extend:Wr.none,style:Re.styleSolid});this._variables=t,this._errorListener=e}new({first_point:t,second_point:e,...r},n){const{bar_index:s}=this._variables,a=`line_${n}_${s}`;ge(r,["color"]);const u={...this._defaultLine,...r,id:a,bar_index:s};if(t&&e){const f=u.xloc===De.bar_index?t==null?void 0:t.index:t==null?void 0:t.time,d=u.xloc===De.bar_index?e==null?void 0:e.index:e==null?void 0:e.time;Object.assign(u,{x1:f,y1:t==null?void 0:t.price,x2:d,y2:e==null?void 0:e.price})}this._verfiyArgs(r,n);const c=new vo(a,this._variables,this._errorListener);return n.startsWith("export")||this._variables.line.add(a,u,c),c}_verfiyArgs(t,e){const{extend:r,xloc:n,style:s}=t,a="line.new";this._paramVerfiy(s,e,a,Object.values(Re),"style"),this._paramVerfiy(r,e,a,Object.values(Wr),"extend"),this._paramVerfiy(n,e,a,Object.values(De),"xloc")}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}line(t){return t.x}copy({id:t},e){return t==null?void 0:t.copy(e)}delete({id:t}){t==null||t.delete()}get_x1({id:t},e){return t==null?void 0:t.get_x1(e)}get_x2({id:t},e){return t==null?void 0:t.get_x2(e)}get_y1({id:t},e){return t==null?void 0:t.get_y1(e)}get_y2({id:t},e){return t==null?void 0:t.get_y2(e)}set_x1({id:t,...e},r){t==null||t.set_x1(e,r)}set_x2({id:t,...e},r){t==null||t.set_x2(e,r)}set_y1({id:t,...e},r){t==null||t.set_y1(e,r)}set_y2({id:t,...e},r){t==null||t.set_y2(e,r)}set_xy1({id:t,...e},r){t==null||t.set_xy1(e,r)}set_xy2({id:t,...e},r){t==null||t.set_xy2(e,r)}set_xloc({id:t,...e},r){t==null||t.set_xloc(e,r)}get_price({id:t,...e},r){return t==null?void 0:t.get_price(e,r)}set_color({id:t,...e},r){t==null||t.set_color(e,r)}set_style({id:t,...e},r){t==null||t.set_style(e,r)}set_width({id:t,...e},r){t==null||t.set_width(e,r)}set_extend({id:t,...e},r){t==null||t.set_extend(e,r)}set_first_point({id:t,...e},r){t==null||t.set_first_point(e,r)}set_second_point({id:t,...e},r){t==null||t.set_second_point(e,r)}}class vo{constructor(t,e,r){$(this,"_variables");$(this,"_id");$(this,"_suffix","");$(this,"_errorListener");this._id=t,this._variables=e,this._errorListener=r}get id(){return this._id}updateId(){const{bar_index:t}=this._variables;if(!this._suffix)this._suffix=`_${t}`,this._id=`${this._id}${this._suffix}`;else{const e=this._id.split("_");e.pop(),this._id=`${e.join("_")}_${t}`}return this._id}get type(){return Fe.LINE}get data(){return this._variables.line.get(this._id)}copy(t){const{bar_index:e}=this._variables,r=`line_${t}_${e}`,n=this._getLine(t),s=new vo(r,this._variables,this._errorListener);return n&&this._variables.line.add(r,{...n,id:r,bar_index:e,isVar:void 0},s),s}delete(){this._variables.line.delete(this._id)}get_price({x:t},e){const r=this._getLine(e);if(t===void 0)return t;if(r&&r.xloc===De.bar_index){const{x1:n,y1:s,x2:a,y2:u}=r;return n===void 0||a===void 0||s===void 0||u===void 0?void 0:(u-s)/(a-n)*(t-n)+s}}get_x1(t){var e;return(e=this._getLine(t))==null?void 0:e.x1}get_x2(t){var e;return(e=this._getLine(t))==null?void 0:e.x2}get_y1(t){var e;return(e=this._getLine(t))==null?void 0:e.y1}get_y2(t){var e;return(e=this._getLine(t))==null?void 0:e.y2}set_x1({x:t},e){const r=this._getLine(e);r&&(r.x1=t)}set_x2({x:t},e){const r=this._getLine(e);r&&(r.x2=t)}set_y1({y:t},e){const r=this._getLine(e);r&&(r.y1=t)}set_y2({y:t},e){const r=this._getLine(e);r&&(r.y2=t)}set_xy1({x:t,y:e},r){const n=this._getLine(r);n&&(n.x1=t,n.y1=e)}set_xy2({x:t,y:e},r){const n=this._getLine(r);n&&(n.x2=t,n.y2=e)}set_xloc({xloc:t,x1:e,x2:r},n){const s=this._getLine(n);s&&(s.xloc=t,s.x1=e,s.x2=r,this._paramVerfiy(t,n,"line.set_xloc",Object.values(De),"xloc"))}set_color(t,e){const r=this._getLine(e);r&&(ge(t,["color"]),r.color=t.color)}set_style({style:t},e){const r=this._getLine(e);r&&(r.style=t,this._paramVerfiy(t,e,"line.set_style",Object.values(Re),"style"))}set_width({width:t},e){const r=this._getLine(e);r&&(r.width=t)}set_extend({extend:t},e){const r=this._getLine(e);r&&(r.extend=t,this._paramVerfiy(t,e,"line.set_extend",Object.values(Wr),"extend"))}set_first_point({point:t},e){const r=this._getLine(e);if(r){const{index:n,time:s,price:a}=t||{},u=r.xloc===De.bar_index?n:s,c=a;u&&(r.x1=u),c&&(r.y1=c)}}set_second_point({point:t},e){const r=this._getLine(e);if(r){const{index:n,time:s,price:a}=t||{},u=r.xloc===De.bar_index?n:s,c=a;u&&(r.x2=u),c&&(r.y2=c)}}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}_getLine(t){const e=this._variables.line.get(this._id);return e||console.log(`${t}: line 不存在`),e}}class Tw{constructor(t){$(this,"_variables");this._variables=t}new(t,e){const{line1:r,line2:n}=t,{bar_index:s}=this._variables,a=`linefill_${e}_${s}`,u=r==null?void 0:r.data,c=n==null?void 0:n.data;u&&(u.linefills=u.linefills||[],u.linefills.push(a)),c&&(c.linefills=c.linefills||[],c.linefills.push(a)),ge(t,["color"]);const f=new yo(this._variables,a,r,n);return e.startsWith("export")||(u||c)&&this._variables.linefill.add(a,{line1:u,line2:c,color:t.color,id:a,bar_index:s},f),f}delete({id:t}){t==null||t.delete()}get_line1({id:t}){return t==null?void 0:t.get_line1()}get_line2({id:t}){return t==null?void 0:t.get_line2()}set_color({id:t,...e}){t==null||t.set_color(e)}}class yo{constructor(t,e,r,n){$(this,"_id");$(this,"_line1");$(this,"_line2");$(this,"_variables");$(this,"_suffix");this._variables=t,this._id=e,this._line1=r,this._line2=n}get type(){return Fe.LINEFILL}get id(){return this._id}updateId(){const{bar_index:t}=this._variables;if(!this._suffix)this._suffix=`_${t}`,this._id=`${this._id}${this._suffix}`;else{const e=this._id.split("_");e.pop(),this._id=`${e.join("_")}_${t}`}return this._id}get data(){return this._variables.linefill.get(this._id)}linefill(t,e){return t.x?t.x:new yo(this._variables,e)}delete(){var e,r;const t=this._variables.linefill.get(this._id);if(t){const{line1:n,line2:s}=t;n&&(n.linefills=(e=n.linefills)==null?void 0:e.filter(a=>a!==this._id)),s&&(s.linefills=(r=s.linefills)==null?void 0:r.filter(a=>a!==this._id))}this._line1=void 0,this._line2=void 0,this._variables.linefill.delete(this._id)}get_line1(){return this._line1}get_line2(){return this._line2}set_color(t){const e=this._variables.linefill.get(this._id);e&&(ge(t,["color"]),e.color=t.color)}}class Iw{constructor(t,e){$(this,"_variables");$(this,"_errorListener");$(this,"_defaultBox",{border_color:Ti.blue,border_width:1,bgcolor:Ti.blue,xloc:De.bar_index,extend:Wr.none,style:Re.styleSolid,text:"",text_size:ir.auto,text_color:Ti.black,text_halign:Wt.alignCenter,text_valign:Wt.alignCenter,text_wrap:Wt.wrapNone});this._variables=t,this._errorListener=e}box({x:t}){return t}new({top_left:t,bottom_right:e,...r},n){const{bar_index:s}=this._variables,a=`box_${n}_${s}`,u={...this._defaultBox,...r,id:a,bar_index:s};if(ge(u,["border_color","bgcolor","text_color"]),t){const{price:f,time:d,index:h}=t;u.top=f,u.left=u.xloc===De.bar_index?h:d}if(e){const{price:f,time:d,index:h}=e;u.bottom=f,u.right=u.xloc===De.bar_index?h:d}this._verfiyArgs(r,n);const c=new wo(this._variables,a,this._errorListener);return n.startsWith("export")||this._variables.box.add(a,u,c),c}_verfiyArgs(t,e){const{border_style:r,extend:n,xloc:s,text_size:a,text_halign:u,text_valign:c,text_wrap:f,text_font_family:d}=t,h="box.new";this._paramVerfiy(r,e,h,[Re.styleDashed,Re.styleDotted,Re.styleSolid],"border_style"),this._paramVerfiy(n,e,h,Object.values(Wr),"extend"),this._paramVerfiy(s,e,h,Object.values(De),"xloc"),this._paramVerfiy(a,e,h,Object.values(ir),"text_size"),this._paramVerfiy(u,e,h,[Wt.alignLeft,Wt.alignCenter,Wt.alignRight],"text_halign"),this._paramVerfiy(c,e,h,[Wt.alignBottom,Wt.alignCenter,Wt.alignTop],"text_valign"),this._paramVerfiy(f,e,h,[Wt.wrapAuto,Wt.wrapNone],"text_wrap"),this._paramVerfiy(d,e,h,Object.values(Jn),"text_font_family")}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}copy({id:t},e){return t==null?void 0:t.copy(e)}delete({id:t}){t==null||t.delete()}get_top({id:t}){return t==null?void 0:t.get_top()}get_bottom({id:t}){return t==null?void 0:t.get_bottom()}get_left({id:t}){return t==null?void 0:t.get_left()}get_right({id:t}){return t==null?void 0:t.get_right()}set_top({id:t,...e}){t==null||t.set_top(e)}set_bottom({id:t,...e}){t==null||t.set_bottom(e)}set_text({id:t,...e}){t==null||t.set_text(e)}set_left({id:t,...e}){t==null||t.set_left(e)}set_right({id:t,...e}){t==null||t.set_right(e)}set_extend({id:t,...e},r){t==null||t.set_extend(e,r)}set_bgcolor({id:t,...e}){t==null||t.set_bgcolor(e)}set_border_color({id:t,...e}){t==null||t.set_border_color(e)}set_border_width({id:t,...e}){t==null||t.set_border_width(e)}set_border_style({id:t,...e},r){t==null||t.set_border_style(e,r)}set_lefttop({id:t,...e}){t==null||t.set_lefttop(e)}set_rightbottom({id:t,...e}){t==null||t.set_rightbottom(e)}set_text_size({id:t,...e},r){t==null||t.set_text_size(e,r)}set_text_wrap({id:t,...e},r){t==null||t.set_text_wrap(e,r)}set_text_color({id:t,...e}){t==null||t.set_text_color(e)}set_text_halign({id:t,...e},r){t==null||t.set_text_halign(e,r)}set_text_valign({id:t,...e},r){t==null||t.set_text_valign(e,r)}set_top_left_point({id:t,...e}){t==null||t.set_top_left_point(e)}set_bottom_right_point({id:t,...e}){t==null||t.set_bottom_right_point(e)}set_text_font_family({id:t,...e},r){t==null||t.set_text_font_family(e,r)}}class wo{constructor(t,e,r){$(this,"_id");$(this,"_variables");$(this,"_errorListener");$(this,"_suffix","");this._variables=t,this._id=e,this._errorListener=r}get type(){return Fe.BOX}get id(){return this._id}updateId(){const{bar_index:t}=this._variables;if(!this._suffix)this._suffix=`_${t}`,this._id=`${this._id}${this._suffix}`;else{const e=this._id.split("_");e.pop(),this._id=`${e.join("_")}_${t}`}return this._id}get data(){return this._variables.box.get(this._id)}copy(t){const{bar_index:e}=this._variables,r=`box_${t}_${e}`,n=this._getBox(),s=new wo(this._variables,r,this._errorListener);return n&&this._variables.box.add(r,{...n,id:r,bar_index:e},s),s}delete(){this._variables.box.delete(this._id)}get_top(){const t=this._getBox();return t&&t.top}set_top({top:t}){const e=this._getBox();e&&(e.top=t)}get_left(){const t=this._getBox();return t&&t.left}set_left({left:t}){const e=this._getBox();e&&(e.left=t)}set_text({text:t}){const e=this._getBox();e&&(e.text=t)}get_right(){const t=this._getBox();return t&&t.right}set_right({right:t}){const e=this._getBox();e&&(e.right=t)}get_bottom(){const t=this._getBox();return t&&t.bottom}set_bottom({bottom:t}){const e=this._getBox();e&&(e.bottom=t)}set_extend({extend:t},e){const r=this._getBox();r&&(r.extend=t,this._paramVerfiy(t,e,"box.set_extend",Object.values(Wr),"extend"))}set_bgcolor({color:t}){const e=this._getBox();e&&(e.bgcolor=t,ge(e,["bgcolor"]))}set_lefttop({left:t,top:e}){const r=this._getBox();r&&(r.left=t,r.top=e)}set_text_size({text_size:t},e){const r=this._getBox();r&&(r.text_size=t,this._paramVerfiy(t,e,"box.set_text_size",Object.values(ir),"text_size"))}set_text_wrap({text_wrap:t},e){const r=this._getBox();r&&(r.text_wrap=t,this._paramVerfiy(t,e,"box.set_text_wrap",[Wt.wrapAuto,Wt.wrapNone],"text_wrap"))}set_text_color({text_color:t}){const e=this._getBox();e&&(e.text_color=t,ge(e,["text_color"]))}set_rightbottom({right:t,bottom:e}){const r=this._getBox();r&&(r.right=t,r.bottom=e)}set_text_halign({text_halign:t},e){const r=this._getBox();r&&(r.text_halign=t,this._paramVerfiy(t,e,"box.set_text_halign",[Wt.alignLeft,Wt.alignCenter,Wt.alignRight],"text_halign"))}set_text_valign({text_valign:t},e){const r=this._getBox();r&&(r.text_valign=t,this._paramVerfiy(t,e,"box.set_text_valign",[Wt.alignBottom,Wt.alignCenter,Wt.alignTop],"text_valign"))}set_top_left_point({point:t}){const e=this._getBox();if(e){const{index:r,price:n,time:s}=t||{};e.top=n,e.left=e.xloc===De.bar_index?r:s}}set_border_color({color:t}){const e=this._getBox();e&&(e.border_color=t,ge(e,["border_color"]))}set_border_style({style:t},e){const r=this._getBox();r&&(r.border_style=t,this._paramVerfiy(t,e,"box.set_border_style",[Re.styleDashed,Re.styleDotted,Re.styleSolid],"style"))}set_border_width({width:t}){const e=this._getBox();e&&(e.border_width=t)}set_bottom_right_point({point:t}){const e=this._getBox();if(e){const{index:r,price:n,time:s}=t||{};e.bottom=n,e.right=e.xloc===De.bar_index?r:s}}set_text_font_family({text_font_family:t},e){const r=this._getBox();r&&(r.text_font_family=t,this._paramVerfiy(t,e,"box.set_text_font_family",Object.values(Jn),"text_font_family"))}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}_getBox(){return this._variables.box.get(this._id)}}class $w{constructor(t,e){$(this,"_variables");$(this,"_errorListener");$(this,"_defaultTable",{position:vr.topLeft,columns:0,rows:0,frame_width:0,border_width:0});this._variables=t,this._errorListener=e}table({x:t}){return t}new(t,e){const{bar_index:r}=this._variables,n=`table_${e}_${r}`,{rows:s}=t;ge(t,["text_color","bgcolor","border_color"]);const a=Array.from(Array(s),()=>[]),u=e.split("_"),c=u.pop(),f=u.pop(),d={...this._defaultTable,...t,cell:a,id:n,bar_index:r,line:f,col:c},h=new Ch(this._variables,n,this._errorListener);return this._paramVerfiy(t.position,e,"table.new",Object.values(vr),"position"),e.startsWith("export")||this._variables.table.add(n,d,h),h}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}cell({table_id:t,...e}){t==null||t.cell(e)}cell_set_bgcolor({table_id:t,...e}){t==null||t.cell_set_bgcolor(e)}cell_set_height({table_id:t,...e}){t==null||t.cell_set_height(e)}cell_set_text({table_id:t,...e}){t==null||t.cell_set_text(e)}cell_set_text_color({table_id:t,...e}){t==null||t.cell_set_text_color(e)}cell_set_text_font_family({table_id:t,...e}){t==null||t.cell_set_text_font_family(e)}cell_set_text_halign({table_id:t,...e}){t==null||t.cell_set_text_halign(e)}cell_set_text_valign({table_id:t,...e}){t==null||t.cell_set_text_valign(e)}cell_set_text_size({table_id:t,...e}){t==null||t.cell_set_text_size(e)}cell_set_tooltip({table_id:t,...e}){t==null||t.cell_set_tooltip(e)}cell_set_width({table_id:t,...e}){t==null||t.cell_set_width(e)}clear({table_id:t,...e}){t==null||t.clear(e)}delete({table_id:t}){t==null||t.delete()}merge_cells({table_id:t,...e},r){t==null||t.merge_cells(e,r)}set_bgcolor({table_id:t,...e}){t==null||t.set_bgcolor(e)}set_border_color({table_id:t,...e}){t==null||t.set_border_color(e)}set_border_width({table_id:t,...e}){t==null||t.set_border_width(e)}set_frame_color({table_id:t,...e}){t==null||t.set_frame_color(e)}set_frame_width({table_id:t,...e}){t==null||t.set_frame_width(e)}set_position({table_id:t,...e},r){t==null||t.set_position(e,r)}}class Ch{constructor(t,e,r){$(this,"_id");$(this,"_variables");$(this,"_errorListener");$(this,"_suffix","");$(this,"_defaultCell",{column:0,row:0,text:"",text_color:Ti.black,text_halign:Wt.alignCenter,text_valign:Wt.alignCenter,text_size:ir.normal});this._variables=t,this._id=e,this._errorListener=r}get type(){return Fe.TABLE}get id(){return this._id}updateId(){const{bar_index:t}=this._variables;if(!this._suffix)this._suffix=`_${t}`,this._id=`${this._id}${this._suffix}`;else{const e=this._id.split("_");e.pop(),this._id=`${e.join("_")}_${t}`}return this._id}get data(){return this._variables.table.get(this._id)}cell(t){const e={...this._defaultCell,...t},{column:r=0,row:n=0}=e,s=this._variables.table.get(this._id);if(s){const a=s.cell||[],u=a[n]||[];u[r]=e,a[n]=u,s.cell=a}}cell_set_bgcolor({column:t=0,row:e=0,bgcolor:r}){const n=this._getTableItem(t,e);n&&(n.bgcolor=r)}cell_set_height({column:t=0,row:e=0,height:r}){const n=this._getTableItem(t,e);n&&(n.height=r)}cell_set_text({column:t=0,row:e=0,text:r}){const n=this._getTableItem(t,e);n&&(n.text=r)}cell_set_text_color({column:t=0,row:e=0,text_color:r}){const n=this._getTableItem(t,e);n&&(n.text_color=r,ge(n,["text_color"]))}cell_set_text_font_family({column:t=0,row:e=0,text_font_family:r}){const n=this._getTableItem(t,e);n&&(n.text_font_family=r)}cell_set_text_halign({column:t=0,row:e=0,text_halign:r}){const n=this._getTableItem(t,e);n&&(n.text_halign=r)}cell_set_text_valign({column:t=0,row:e=0,text_valign:r}){const n=this._getTableItem(t,e);n&&(n.text_valign=r)}cell_set_text_size({column:t=0,row:e=0,text_size:r}){const n=this._getTableItem(t,e);n&&(n.text_size=r)}cell_set_tooltip({column:t=0,row:e=0,tooltip:r}){const n=this._getTableItem(t,e);n&&(n.tooltip=r)}cell_set_width({column:t=0,row:e=0,width:r}){const n=this._getTableItem(t,e);n&&(n.width=r)}clear({start_column:t=0,start_row:e=0,end_column:r=0,end_row:n=0}){const s=this._variables.table.get(this._id);if(s){const a=s.cell;if(a)for(let u=e;u<=n;u++)for(let c=t;c<=r;c++){const f=a[u];f&&(f[c]=void 0)}}}delete(){this._variables.table.delete(this._id)}merge_cells({start_column:t=0,start_row:e=0,end_column:r=0,end_row:n=0},s){if(t>r||e>n){this._errorListener.addError(re.mergeCellErr,s,Lt.Error);return}const a=this._variables.table.get(this._id);if(!a)return;const u=a.merge_cells||[];u.push({start_column:t,start_row:e,end_column:r,end_row:n}),a.merge_cells=u}set_bgcolor({bgcolor:t}){const e=this._variables.table.get(this._id);e&&(e.bgcolor=t,ge(e,["bgcolor"]))}set_border_color({border_color:t}){const e=this._variables.table.get(this._id);e&&(e.border_color=t,ge(e,["border_color"]))}set_border_width({border_width:t}){const e=this._variables.table.get(this._id);e&&(e.border_width=t)}set_frame_color({frame_color:t}){const e=this._variables.table.get(this._id);e&&(e.frame_color=t)}set_frame_width({frame_width:t}){const e=this._variables.table.get(this._id);e&&(e.frame_width=t)}set_position({position:t},e){const r=this._variables.table.get(this._id);r&&(r.position=t,this._paramVerfiy(t,e,"table.set_position",Object.values(vr),"position"))}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}_getTableItem(t,e){const r=this._variables.table.get(this._id);if(r){const n=r.cell;return n?n[e][t]:void 0}}}class Lw{constructor(t){$(this,"_strategy");this._strategy=t}commission({trade_num:t}){return this._verifyTradeNum(t)&&this._strategy.historyOrders[t].commission||0}entry_bar_index({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.historyOrders[t].in_index}entry_comment({trade_num:t}){if(!this._verifyTradeNum(t))return"";const{comment:e,id:r}=this._strategy.historyOrders[t];return e||r}entry_id({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].id:""}entry_price({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.historyOrders[t].in_price}entry_time({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.historyOrders[t].in_time}exit_bar_index({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.historyOrders[t].out_index}exit_comment({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].out_comment:""}exit_id({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].out_id:""}exit_price({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.historyOrders[t].out_price}exit_time({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.historyOrders[t].out_time}max_drawdown({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].trading_loss:0}max_drawdown_percent({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].trading_loss_percent:0}max_runup({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].max_profit:0}max_runup_percent({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].max_profit_percent:0}profit({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].profit:0}profit_percent({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].profit_percent:0}size({trade_num:t}){if(!this._verifyTradeNum(t))return 0;const{out_qty:e=0,direction:r}=this._strategy.historyOrders[t];return r===ce.long?e:-e}_verifyTradeNum(t){if(typeof t!="number"||t<0)return!1;const e=this._strategy.historyOrders.length;return!(t>=e)}}class Rw{constructor(t){$(this,"_strategy");this._strategy=t}commission({trade_num:t}){if(!this._verifyTradeNum(t))return 0;const{qty:e=0,original_qty:r=0,commission:n=0}=this._strategy.orders[t];return n*e/r}entry_bar_index({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.orders[t].in_index}entry_comment({trade_num:t}){if(!this._verifyTradeNum(t))return"";const{comment:e,id:r}=this._strategy.orders[t];return e||r}entry_id({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].id:""}entry_price({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.orders[t].in_price}entry_time({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.orders[t].in_time}max_drawdown({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].trading_loss:0}max_drawdown_percent({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].trading_loss_percent:0}max_runup({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].max_profit:0}max_runup_percent({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].max_profit_percent:0}profit({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].profit:0}profit_percent({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].profit_percent:0}size({trade_num:t}){if(!this._verifyTradeNum(t))return 0;const{qty:e=0,direction:r}=this._strategy.orders[t];return r===ce.long?e:-e}_verifyTradeNum(t){if(typeof t!="number"||t<0)return!1;const e=this._strategy.orders.length;return!(t>=e)}}class Pw{constructor(t,e){$(this,"_strategy");$(this,"_errorListener");this._strategy=t,this._errorListener=e}allow_entry_in({value:t},e){this._paramVerfiy(t,e,"strategy.risk.allow_entry_in",Object.values(ce),"value"),this._strategy.updateRisk({allow_entry_in:t})}max_cons_loss_days({count:t}){this._strategy.updateRisk({max_cons_loss_days:t})}max_drawdown({value:t,type:e},r){this._paramVerfiy(e,r,"strategy.risk.max_drawdown",[Pe.percentOfEquity,Pe.cash],"type"),e===Pe.percentOfEquity&&(t=t>100?100:t),this._strategy.updateRisk({max_drawdown:t,max_drawdown_type:e})}max_intraday_filled_orders({count:t}){this._strategy.updateRisk({max_intraday_filled_orders:t})}max_intraday_loss({value:t,type:e},r){this._paramVerfiy(e,r,"strategy.risk.max_intraday_loss",[Pe.percentOfEquity,Pe.cash],"type"),e===Pe.percentOfEquity&&(t=t>100?100:t),this._strategy.updateRisk({max_intraday_loss:t,max_intraday_loss_type:e})}max_position_size({contracts:t}){this._strategy.updateRisk({max_position_size:t})}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}}var kw=20,zw=1,ni=1e6,Mh=1e6,qw=-7,Uw=21,jw=!1,us="[big.js] ",ii=us+"Invalid ",Do=ii+"decimal places",Ww=ii+"rounding mode",Fh=us+"Division by zero",ae={},sn=void 0,Yw=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function Nh(){function i(t){var e=this;if(!(e instanceof i))return t===sn?Nh():new i(t);if(t instanceof i)e.s=t.s,e.e=t.e,e.c=t.c.slice();else{if(typeof t!="string"){if(i.strict===!0&&typeof t!="bigint")throw TypeError(ii+"value");t=t===0&&1/t<0?"-0":String(t)}Vw(e,t)}e.constructor=i}return i.prototype=ae,i.DP=kw,i.RM=zw,i.NE=qw,i.PE=Uw,i.strict=jw,i.roundDown=0,i.roundHalfUp=1,i.roundHalfEven=2,i.roundUp=3,i}function Vw(i,t){var e,r,n;if(!Yw.test(t))throw Error(ii+"number");for(i.s=t.charAt(0)=="-"?(t=t.slice(1),-1):1,(e=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(e<0&&(e=r),e+=+t.slice(r+1),t=t.substring(0,r)):e<0&&(e=t.length),n=t.length,r=0;r<n&&t.charAt(r)=="0";)++r;if(r==n)i.c=[i.e=0];else{for(;n>0&&t.charAt(--n)=="0";);for(i.e=e-r-1,i.c=[],e=0;r<=n;)i.c[e++]=+t.charAt(r++)}return i}function si(i,t,e,r){var n=i.c;if(e===sn&&(e=i.constructor.RM),e!==0&&e!==1&&e!==2&&e!==3)throw Error(Ww);if(t<1)r=e===3&&(r||!!n[0])||t===0&&(e===1&&n[0]>=5||e===2&&(n[0]>5||n[0]===5&&(r||n[1]!==sn))),n.length=1,r?(i.e=i.e-t+1,n[0]=1):n[0]=i.e=0;else if(t<n.length){if(r=e===1&&n[t]>=5||e===2&&(n[t]>5||n[t]===5&&(r||n[t+1]!==sn||n[t-1]&1))||e===3&&(r||!!n[0]),n.length=t,r){for(;++n[--t]>9;)if(n[t]=0,t===0){++i.e,n.unshift(1);break}}for(t=n.length;!n[--t];)n.pop()}return i}function oi(i,t,e){var r=i.e,n=i.c.join(""),s=n.length;if(t)n=n.charAt(0)+(s>1?"."+n.slice(1):"")+(r<0?"e":"e+")+r;else if(r<0){for(;++r;)n="0"+n;n="0."+n}else if(r>0)if(++r>s)for(r-=s;r--;)n+="0";else r<s&&(n=n.slice(0,r)+"."+n.slice(r));else s>1&&(n=n.charAt(0)+"."+n.slice(1));return i.s<0&&e?"-"+n:n}ae.abs=function(){var i=new this.constructor(this);return i.s=1,i},ae.cmp=function(i){var t,e=this,r=e.c,n=(i=new e.constructor(i)).c,s=e.s,a=i.s,u=e.e,c=i.e;if(!r[0]||!n[0])return r[0]?s:n[0]?-a:0;if(s!=a)return s;if(t=s<0,u!=c)return u>c^t?1:-1;for(a=(u=r.length)<(c=n.length)?u:c,s=-1;++s<a;)if(r[s]!=n[s])return r[s]>n[s]^t?1:-1;return u==c?0:u>c^t?1:-1},ae.div=function(i){var t=this,e=t.constructor,r=t.c,n=(i=new e(i)).c,s=t.s==i.s?1:-1,a=e.DP;if(a!==~~a||a<0||a>ni)throw Error(Do);if(!n[0])throw Error(Fh);if(!r[0])return i.s=s,i.c=[i.e=0],i;var u,c,f,d,h,p=n.slice(),g=u=n.length,y=r.length,_=r.slice(0,u),w=_.length,v=i,x=v.c=[],b=0,N=a+(v.e=t.e-i.e)+1;for(v.s=s,s=N<0?0:N,p.unshift(0);w++<u;)_.push(0);do{for(f=0;f<10;f++){if(u!=(w=_.length))d=u>w?1:-1;else for(h=-1,d=0;++h<u;)if(n[h]!=_[h]){d=n[h]>_[h]?1:-1;break}if(d<0){for(c=w==u?n:p;w;){if(_[--w]<c[w]){for(h=w;h&&!_[--h];)_[h]=9;--_[h],_[w]+=10}_[w]-=c[w]}for(;!_[0];)_.shift()}else break}x[b++]=d?f:++f,_[0]&&d?_[w]=r[g]||0:_=[r[g]]}while((g++<y||_[0]!==sn)&&s--);return!x[0]&&b!=1&&(x.shift(),v.e--,N--),b>N&&si(v,N,e.RM,_[0]!==sn),v},ae.eq=function(i){return this.cmp(i)===0},ae.gt=function(i){return this.cmp(i)>0},ae.gte=function(i){return this.cmp(i)>-1},ae.lt=function(i){return this.cmp(i)<0},ae.lte=function(i){return this.cmp(i)<1},ae.minus=ae.sub=function(i){var t,e,r,n,s=this,a=s.constructor,u=s.s,c=(i=new a(i)).s;if(u!=c)return i.s=-c,s.plus(i);var f=s.c.slice(),d=s.e,h=i.c,p=i.e;if(!f[0]||!h[0])return h[0]?i.s=-c:f[0]?i=new a(s):i.s=1,i;if(u=d-p){for((n=u<0)?(u=-u,r=f):(p=d,r=h),r.reverse(),c=u;c--;)r.push(0);r.reverse()}else for(e=((n=f.length<h.length)?f:h).length,u=c=0;c<e;c++)if(f[c]!=h[c]){n=f[c]<h[c];break}if(n&&(r=f,f=h,h=r,i.s=-i.s),(c=(e=h.length)-(t=f.length))>0)for(;c--;)f[t++]=0;for(c=t;e>u;){if(f[--e]<h[e]){for(t=e;t&&!f[--t];)f[t]=9;--f[t],f[e]+=10}f[e]-=h[e]}for(;f[--c]===0;)f.pop();for(;f[0]===0;)f.shift(),--p;return f[0]||(i.s=1,f=[p=0]),i.c=f,i.e=p,i},ae.mod=function(i){var t,e=this,r=e.constructor,n=e.s,s=(i=new r(i)).s;if(!i.c[0])throw Error(Fh);return e.s=i.s=1,t=i.cmp(e)==1,e.s=n,i.s=s,t?new r(e):(n=r.DP,s=r.RM,r.DP=r.RM=0,e=e.div(i),r.DP=n,r.RM=s,this.minus(e.times(i)))},ae.neg=function(){var i=new this.constructor(this);return i.s=-i.s,i},ae.plus=ae.add=function(i){var t,e,r,n=this,s=n.constructor;if(i=new s(i),n.s!=i.s)return i.s=-i.s,n.minus(i);var a=n.e,u=n.c,c=i.e,f=i.c;if(!u[0]||!f[0])return f[0]||(u[0]?i=new s(n):i.s=n.s),i;if(u=u.slice(),t=a-c){for(t>0?(c=a,r=f):(t=-t,r=u),r.reverse();t--;)r.push(0);r.reverse()}for(u.length-f.length<0&&(r=f,f=u,u=r),t=f.length,e=0;t;u[t]%=10)e=(u[--t]=u[t]+f[t]+e)/10|0;for(e&&(u.unshift(e),++c),t=u.length;u[--t]===0;)u.pop();return i.c=u,i.e=c,i},ae.pow=function(i){var t=this,e=new t.constructor("1"),r=e,n=i<0;if(i!==~~i||i<-Mh||i>Mh)throw Error(ii+"exponent");for(n&&(i=-i);i&1&&(r=r.times(t)),i>>=1,!!i;)t=t.times(t);return n?e.div(r):r},ae.prec=function(i,t){if(i!==~~i||i<1||i>ni)throw Error(ii+"precision");return si(new this.constructor(this),i,t)},ae.round=function(i,t){if(i===sn)i=0;else if(i!==~~i||i<-ni||i>ni)throw Error(Do);return si(new this.constructor(this),i+this.e+1,t)},ae.sqrt=function(){var i,t,e,r=this,n=r.constructor,s=r.s,a=r.e,u=new n("0.5");if(!r.c[0])return new n(r);if(s<0)throw Error(us+"No square root");s=Math.sqrt(+oi(r,!0,!0)),s===0||s===1/0?(t=r.c.join(""),t.length+a&1||(t+="0"),s=Math.sqrt(t),a=((a+1)/2|0)-(a<0||a&1),i=new n((s==1/0?"5e":(s=s.toExponential()).slice(0,s.indexOf("e")+1))+a)):i=new n(s+""),a=i.e+(n.DP+=4);do e=i,i=u.times(e.plus(r.div(e)));while(e.c.slice(0,a).join("")!==i.c.slice(0,a).join(""));return si(i,(n.DP-=4)+i.e+1,n.RM)},ae.times=ae.mul=function(i){var t,e=this,r=e.constructor,n=e.c,s=(i=new r(i)).c,a=n.length,u=s.length,c=e.e,f=i.e;if(i.s=e.s==i.s?1:-1,!n[0]||!s[0])return i.c=[i.e=0],i;for(i.e=c+f,a<u&&(t=n,n=s,s=t,f=a,a=u,u=f),t=new Array(f=a+u);f--;)t[f]=0;for(c=u;c--;){for(u=0,f=a+c;f>c;)u=t[f]+s[c]*n[f-c-1]+u,t[f--]=u%10,u=u/10|0;t[f]=u}for(u?++i.e:t.shift(),c=t.length;!t[--c];)t.pop();return i.c=t,i},ae.toExponential=function(i,t){var e=this,r=e.c[0];if(i!==sn){if(i!==~~i||i<0||i>ni)throw Error(Do);for(e=si(new e.constructor(e),++i,t);e.c.length<i;)e.c.push(0)}return oi(e,!0,!!r)},ae.toFixed=function(i,t){var e=this,r=e.c[0];if(i!==sn){if(i!==~~i||i<0||i>ni)throw Error(Do);for(e=si(new e.constructor(e),i+e.e+1,t),i=i+e.e+1;e.c.length<i;)e.c.push(0)}return oi(e,!1,!!r)},ae[Symbol.for("nodejs.util.inspect.custom")]=ae.toJSON=ae.toString=function(){var i=this,t=i.constructor;return oi(i,i.e<=t.NE||i.e>=t.PE,!!i.c[0])},ae.toNumber=function(){var i=+oi(this,!0,!0);if(this.constructor.strict===!0&&!this.eq(i.toString()))throw Error(us+"Imprecise conversion");return i},ae.toPrecision=function(i,t){var e=this,r=e.constructor,n=e.c[0];if(i!==sn){if(i!==~~i||i<1||i>ni)throw Error(ii+"precision");for(e=si(new r(e),i,t);e.c.length<i;)e.c.push(0)}return oi(e,i<=e.e||e.e<=r.NE||e.e>=r.PE,!!n)},ae.valueOf=function(){var i=this,t=i.constructor;if(t.strict===!0)throw Error(us+"valueOf disallowed");return oi(i,i.e<=t.NE||i.e>=t.PE,!0)};var iu=Nh();function Sh(i,t){return iu(i).plus(t).toNumber()}function bo(i,t){return iu(i).minus(t).toNumber()}function Ii(i,t){return iu(i).mul(t).toNumber()}let Hw=class{constructor(t,e,r,n,s){$(this,"_variables");$(this,"_options");$(this,"_totalChangeCapital");$(this,"_historyOrder");$(this,"_orders");$(this,"_exitOrders");$(this,"_pendingOrders");$(this,"_mintick");$(this,"_funcOptions");$(this,"_pendingCloseOrders");$(this,"_errorListener");$(this,"_risk");$(this,"_opentrades");$(this,"_closedtrades");$(this,"_riskNamespace");$(this,"_updateOptions",{});$(this,"_id");$(this,"_maxDrawdownVerifyIndex",0);$(this,"calcOnOrderFillsData",{index:-1});this._variables=t,this._errorListener=n,this._options={overlay:!1,format:Gt.inherit,pyramiding:1,calc_on_order_fills:!1,calc_on_every_tick:!1,max_bars_back:0,backtest_fill_limits_assumption:0,default_qty_type:Pe.fixed,default_qty_value:1,initial_capital:1e6,currency:bh.NONE,slippage:0,commission_type:We.percent,commission_value:0,process_orders_on_close:!1,close_entries_rule:"FIFO",margin_long:0,margin_short:0,explicit_plot_zorder:!1,max_lines_count:50,max_labels_count:50,max_boxes_count:50,calc_bars_count:0,risk_free_rate:2,use_bar_magnifier:!1,fill_orders_on_standard_ohlc:!1,max_polylines_count:50},this._funcOptions=e,this._totalChangeCapital=0,this._orders=[],this._pendingOrders=[],this._historyOrder=[],this._exitOrders=[],this._pendingCloseOrders=[],this._mintick=r,this._variables.strategy.updateOrders(this._orders),this._variables.strategy.updateHistoryOrders(this._historyOrder),this._variables.strategy.updateStrategyOptions(this._options),this._risk={intradayOrders:0},this._opentrades=new Rw(this),this._closedtrades=new Lw(this),this._riskNamespace=new Pw(this,n),this._id=`strategy_${s}`}get orders(){return[...this._orders]}get historyOrders(){return[...this._historyOrder]}get _freezeCapital(){const{close:t}=this.calcOnOrderFillsData.data||this._variables;return this._orders.reduce((e,r)=>e+t*(r.qty||0),0)}get opentrades(){return this._opentrades}get closedtrades(){return this._closedtrades}get risk(){return this._riskNamespace}get isCalcOnEveryTick(){return this._options.calc_on_every_tick}updateOptions(t){this._updateOptions=t||{},Object.assign(this._options,this._updateOptions)}update(){this._maxConsLossDaysVerify(),this._ordersHandle(),this._pendingOrderHandle(),this._maxIntradayFilledOrdersVerify(),this._maxDrawdownVerify();const{open:t,close:e,high:r,low:n}=this.calcOnOrderFillsData.data||this._variables;this._variables.strategy.update({open:t,close:e,high:r,low:n}),!this._options.process_orders_on_close&&this._calcLiquidate(),this._calcProfitAndLoss()}calcCurrentOrder(){this._ordersHandle(),this._pendingOrderHandle(),this._calcProfitAndLoss()}updateRisk(t){Object.assign(this._risk,t)}endExecution(){this._maxIntradayLoss(),this._pendingCloseOrderHandle(),this._options.process_orders_on_close&&this._calcLiquidate()}_maxIntradayLoss(){var g;const{max_intraday_loss:t,max_intraday_loss_type:e,isDisabledOpen:r}=this._risk;if(t===void 0||!e||r)return;const{time_tradingday:n,time:s,strategy:{netprofit:a,initial_capital:u}}=this._variables,{high:c,low:f}=this.calcOnOrderFillsData.data||this._variables;let{preNetprofit:d=0}=this._risk;s===n&&(d=a,this._risk.preNetprofit=a,this._risk.isTemporaryBan=!1);let h=d-a;h+=this._orders.reduce((y,_)=>{const{in_price:w,direction:v,qty:x=0,commission:b=0,original_qty:N=0}=_,E=v===ce.long?1:-1,C=(c-w)*x,F=(f-w)*x,S=E===1?F:-C;return y+S+x/N*b},0);let p=!1;switch(e){case Pe.cash:p=t<h;break;case Pe.percentOfEquity:const y=h/(u+a)*100;p=t<y;break}if(p){this._risk.isTemporaryBan=!0;const y=(g=this._orders[0])==null?void 0:g.direction;this._closeOrders(this._orders,y===ce.long?f:c,"Close Position (Max intraday Loss)",void 0,"close"),this._pendingOrders=[]}}_maxIntradayFilledOrdersVerify(){const{max_intraday_filled_orders:t,intradayOrders:e=0,isDisabledOpen:r}=this._risk;if(t===void 0||r)return;const{time:n,time_tradingday:s}=this._variables,{open:a}=this.calcOnOrderFillsData.data||this._variables;n===s&&(this._risk.intradayOrders=0,this._risk.isTemporaryBan=!1),t<=e&&(this._risk.isTemporaryBan=!0,this._closeOrders(this._orders,a,"Close Position (Max number of filled orders in one day)",void 0,"close"),this._pendingOrders=[])}_maxConsLossDaysVerify(){const{max_cons_loss_days:t,lossDays:e=0,isDisabledOpen:r,totalProfit:n=0}=this._risk;if(t===void 0||r)return;const{time:s,time_tradingday:a,strategy:u}=this._variables,{open:c}=this.calcOnOrderFillsData.data||this._variables;let f=e;if(s===a){const d=u.netprofit+u.openprofit;d<n?f=0:f++,Object.assign(this._risk,{lossDays:f,totalProfit:d})}t<=f&&this._riskTouchOff(c,"Close Position (Max consecutive loss days)")}_maxDrawdownVerify(){const{max_drawdown:t,max_drawdown_type:e,isDisabledOpen:r}=this._risk;if(r)return;const{bar_index:n}=this._variables,{open:s}=this.calcOnOrderFillsData.data||this._variables;if(t!==void 0&&e&&this._maxDrawdownVerifyIndex===n){const{initial_capital:a}=this._options,c=this._orders.reduce((d,h)=>{const{in_price:p,commission:g=0,qty:y=0,original_qty:_=0,direction:w}=h,v=w===ce.long?1:-1,x=(s-p)*v*y;return d+x+g*y/_},0)+this._totalChangeCapital;let f=!1;switch(e){case Pe.percentOfEquity:f=c/a*100<=-t;break;case Pe.cash:f=c<=-t;break}f&&this._riskTouchOff(s,"Close Position (Max Drawdown)")}}_riskTouchOff(t,e){this._risk.isDisabledOpen=!0,this._orders.length&&this._closeOrders(this._orders,t,e,"close"),this._pendingOrders=[]}strategy(t,e){if(!this._variables.bar_index){this._paramVerfiy(t.format,e,"strategy",[Gt.inherit,Gt.price,Gt.percent,Gt.volume],"format"),this._paramVerfiy(t.default_qty_type,e,"strategy",Object.values(Pe),"default_qty_type"),this._paramVerfiy(t.commission_type,e,"strategy",Object.values(We),"commission_type");const r=self==null?void 0:self.workerStorage.get(this._id),n={...this._updateOptions};if(r)for(const s of Object.keys({...r,...t}))t[s]!==r[s]&&delete n[s];self==null||self.workerStorage.set(this._id,t),Object.assign(this._options,t,n),this._variables.updateMaxLength(t),Object.assign(this._funcOptions,{strategy:this._options,userSetStrategyConfig:n,scriptType:"strategy"})}}order(t,e){this._risk.isDisabledOpen||(this._paramVerfiy(t.oca_type,e,"strategy.order",Object.values(fn),"oca_type"),this._orderHandle(t))}entry(t,e){this._risk.isDisabledOpen||(this._paramVerfiy(t.oca_type,e,"strategy.entry",Object.values(fn),"oca_type"),this._entryHandle(t))}close(t){if(!this._orders.filter(r=>!this._options.process_orders_on_close||r.in_index!==this._variables.bar_index).length)return;const{immediately:e}=t;if(e||this._options.process_orders_on_close){const r=this._pendingCloseOrders.find(n=>n.id===t.id&&n.place_order_type==="close");if(r){Object.assign(r,t);return}this._pendingCloseOrders.push({...t,place_order_type:"close"})}else{const r=this._pendingOrders.find(n=>n.id===t.id&&n.place_order_type==="close");if(r){Object.assign(r,t);return}this._pendingOrders.push({...t,place_order_type:"close"})}}close_all(t){if(typeof t=="string"&&(t={}),!this._orders.length)return;const{immediately:e}=t;e||this._options.process_orders_on_close?this._pendingCloseOrders.push({...t,place_order_type:"close_all"}):this._pendingOrders.push({...t,place_order_type:"close_all"})}cancel({id:t}){this._pendingOrders=this._pendingOrders.filter(e=>!(e.id===t&&e.place_order_type!=="close"))}cancel_all(){this._pendingOrders=this._pendingOrders.filter(t=>t.place_order_type==="close_all")}exit(t,e){this._exit(t,e)}convert_to_account({value:t}){return t}convert_to_symbol({value:t}){return t}default_entry_qty({fill_price:t}){return t?this._calcDefaultQty(t):0}_calcDefaultQty(t){const{default_qty_type:e=Pe.fixed,default_qty_value:r=1,initial_capital:n,commission_value:s}=this._options;let a=r;switch(e){case Pe.cash:a=r/t;break;case Pe.percentOfEquity:const u=this._getOrderProfit(t),c=n+u+this._totalChangeCapital;s?a=this._getCommQty(c,t):a=c*r/100/t;break}return Ql(a,this._getLen(t))}_getCommQty(t,e){const{commission_type:r,commission_value:n=0,default_qty_value:s=0}=this._options;let a=0;switch(r){case We.percent:a=t*s/(100*e+n*e);break;case We.cashPerContract:a=t*s/(100*e+n);break;case We.cashPerOrder:a=(t-n)*s/100/e}return a}_getLen(t){const e=String(Math.floor(t)).length-2;return e<0?0:e}_getCapital(t,e){const{margin_long:r=0,margin_short:n=0}=this._options;return r<100&&r>0&&t===1?e=e*100/r:n<=100&&n>0&&t===-1&&(e=e*100/n),e}_calcProfitAndLoss(){const{close:t}=this.calcOnOrderFillsData.data||this._variables;for(const e of this._orders){const{in_price:r,qty:n=0,direction:s}=e,a=s===ce.long?1:-1,u=(t-r)*a*n,[c,f]=this._calcProfitAndLossHandle(r,n,a);this._calcOrderPercent(e,u,c,f)}}_calcProfitAndLossHandle(t,e,r){const{high:n,low:s}=this.calcOnOrderFillsData.data||this._variables,a=(n-t)*e,u=(s-t)*e;let c=r===1?a:-u,f=r===1?u:-a;return[c,f]}_calcOrderPercent(t,e,r,n){const{commission_value:s}=this._options,{close:a}=this.calcOnOrderFillsData.data||this._variables,{original_qty:u=0,qty:c=0,in_price:f,max_profit:d=0,trading_loss:h=0}=t;let{commission:p=0}=t,g=f*c;if(s){const y=this._getCommission(a,c);p=p*c/u,r-=p,n-=p,g+=p,e=e-y-p}r=Math.max(r,d,0),n=Math.min(n,h,0),Object.assign(t,{profit:e,total_profit:this._totalChangeCapital+e,total_profit_percent:e/(this._options.initial_capital+this._totalChangeCapital)*100,max_profit:r,trading_loss:n,profit_percent:e/g*100,max_profit_percent:r/g*100,trading_loss_percent:n/g*100})}_calcLiquidate(){if(!this._orders.length)return;const{time:t}=this._variables,{high:e,low:r}=this.calcOnOrderFillsData.data||this._variables,{initial_capital:n,margin_long:s=0,margin_short:a=0}=this._options,u=this._orders[0].direction===ce.long?1:-1;let c=u===1?r:e;if(u===1&&s===100)return;const f=(u===1?s:a)/100;if(f<=0)return;let d=!1;const[h,p]=this._orders.reduce((w,v)=>{let[x,b]=w;const{in_price:N,qty:E=0,in_time:C}=v;C===t&&(d=!0);const F=N*E,S=c*E;return x+=F,b+=S,[x,b]},[0,0]);let g=0,y=0;const _=n+this._totalChangeCapital;if(d&&(g=_-h*f,g<0&&(c=this._orders[0].in_price,y=Math.abs(Math.trunc(g/f/c)*4),y=Math.max(y,1))),g>=0){const w=u*(p-h);if(g=_+w-p*f,g>=0)return;y=Math.abs(Math.trunc(g/f/c)*4)}y<=0||this._marginCallOrders(c,y,"Margin Call")}_marginCallOrders(t,e,r){const{close_entries_rule:n="FIFO"}=this._options;if(n==="FIFO"){this._processOrders(this._orders,t,e*this._orders.length,r,r,!0);return}for(const s of this.orders)s.position_close_type=s.place_order_type,s.isTiggerClose=!0,this._processOrder(s,t,e,r,r,!0);this._orders=this._orders.filter(s=>!s.isDeal),this._variables.strategy.updateOrders(this._orders),this._variables.strategy.updateHistoryOrders(this._historyOrder)}_orderHandle(t){const{process_orders_on_close:e,slippage:r=0}=this._options,{orders:n,isMarketPrice:s,quantities:a,close:u,price:c,activePrice:f,isTouch:d}=this._orderArgsParse(t),h=t.direction===ce.long?1:-1;if(a<=0)return;let p=a;if((s||d)&&e){const y=d?c:u;if(n.length){const E=this._processOrders(n,y,p,t.id,t.comment,!1,"order");if(E<=0)return;p=E}const _=y+h*r*this._mintick;if(!this._judgeCapitalEnough(p,_,h))return;this._ocaGroupVerify(p,t.oca_name,t.oca_type);const{bar_index:v,time:x}=this._variables,{high:b,low:N}=this.calcOnOrderFillsData.data||this._variables;this._calcCurrentOrder({...t,in_price:_,in_high:b,in_low:N,in_index:v,in_time:x,qty:p,place_order_type:"order"});return}this._judgeCapitalEnough(a,c,h)&&this._addPendingOrders(t,c,p,s,f)}_judgeCapitalEnough(t,e,r){let n=this._freezeCapital;if(this._orders.some(d=>(d.direction===ce.long?1:-1)!==r)&&(n=0),t<=0)return!1;const{margin_long:s=0,margin_short:a=0}=this._options;if(s===0&&r===1||a===0&&r===-1)return!0;const u=this._getOrderProfit(e),f=this._getCapital(r,this._options.initial_capital+u+this._totalChangeCapital)-n;return t*e<=f}_getOrderProfit(t){return this._orders.reduce((e,r)=>{const{in_price:n,qty:s=0,direction:a}=r,u=a===ce.long?1:-1;return e+(t-n)*s*u},0)}_ocaGroupVerify(t,e,r){if(!e||!r||r===fn.none)return!1;let n=!1;switch(r){case fn.cancel:this._pendingOrders=this._pendingOrders.filter(s=>{if(s.oca_name===e)s.isCancel=!0,n=!0;else return!0});break;case fn.reduce:this._pendingOrders=this._pendingOrders.filter(s=>{const{qty:a=0,oca_name:u}=s;if(e===u){const c=a-t;return n=!0,c<=0?(s.isCancel=!0,!1):(s.qty=c,!0)}else return!0});break}return n}_processOrders(t,e,r,n,s,a=!1,u,c){let f=r;for(const d of t)if(d.position_close_type=u||d.place_order_type,d.immediately=c,d.isTiggerClose=a||d.place_order_type==="close",f=this._processOrder(d,e,f,n,s,a),f<=0)break;return this._orders=this._orders.filter(d=>!d.isDeal),this._variables.strategy.updateOrders(this._orders),this._variables.strategy.updateHistoryOrders(this._historyOrder),f}_addPendingOrders(t,e,r,n,s){const a=this._pendingOrders.find(u=>u.id===t.id&&!u.isMarketPrice);if(a)Object.assign(a,{...t,in_price:e,isMarketPrice:n,qty:r,active_price:s});else{const u={...t,in_price:e,isMarketPrice:n,qty:r,active_price:s,place_order_type:"order"};this._pendingOrders.push(u)}}_orderArgsParse(t){const{direction:e,qty:r,stop:n}=t;let s=t.limit||0;const{close:a}=this.calcOnOrderFillsData.data||this._variables;let u=a,c=!1,f;const d=e===ce.long?1:-1,h=n&&(n-a)*d>=0,{backtest_fill_limits_assumption:p=0}=this._options;p>0&&s&&(s-=p*this._mintick*d);const g=s&&(s-a)*d<=0;let y=!1;h&&g?(n!==a&&(f=n),u=s):h?(u=n,y=n===a):g?(u=s,y=s===a):c=!0;const _=r!==void 0?Ql(r,this._getLen(u)):this._calcDefaultQty(u);return{orders:this._orders.filter(v=>v.direction!==e),isMarketPrice:c,activePrice:f,quantities:_,close:a,price:u,isTouch:y}}_entryHandle(t){const{process_orders_on_close:e}=this._options,{orders:r,isMarketPrice:n,quantities:s,close:a,price:u,activePrice:c,isTouch:f}=this._orderArgsParse(t);if(s<=0)return;if((n||f)&&e){this._entryOrder(r,f?u:a,s,t);return}this._judgeCapitalEnough(s,a,t.direction===ce.long?1:-1)&&this._addPendingEntry(t,u,s,n,c)}_entryOrder(t,e,r,n){const{time:s,bar_index:a}=this._variables,{high:u,low:c}=this.calcOnOrderFillsData.data||this._variables,{slippage:f=0}=this._options,{oca_name:d,oca_type:h,direction:p,comment:g,id:y}=n,_=p===ce.long?1:-1;if(r=this._getAvailablePositionSize(r,p),r<=0||(e=e+f*this._mintick*_,!this._judgeCapitalEnough(r,e,_)))return;this._closeOrders(t,e,y,g,"entry");const v={...n,in_price:e,qty:r,in_index:a,in_high:u,in_low:c,in_time:s,place_order_type:"entry"},{orders:x}=this._getEntryOrders(p),b=x.length;b&&b>=(this._options.pyramiding||1)||(this._ocaGroupVerify(r,d,h),this._calcCurrentOrder(v))}_getAvailablePositionSize(t,e){const{max_position_size:r,allow_entry_in:n}=this._risk;if(n&&n!==ce.all&&n!==e)return 0;if(r===void 0)return t;const s=this._orders.reduce((a,u)=>a+(u.qty||0),0);return s?s+t>r?0:t:t>r?t-r:0}_getEntryOrders(t){const e=this._pendingOrders.filter(n=>["entry","order"].includes(n.place_order_type)&&n.direction===t),r=this._orders.filter(n=>n.direction===t);return{pendingOrders:e,orders:r}}_addPendingEntry(t,e,r,n,s){if(r=this._getAvailablePositionSize(r,t.direction),r<=0)return;const{pendingOrders:a,orders:u}=this._getEntryOrders(t.direction),c=a.length+u.length,f=a.find(d=>d.id===t.id&&d.place_order_type==="entry");if(f)Object.assign(f,{...t,in_price:e,isMarketPrice:n,qty:r,active_price:s});else if(!c||c<(this._options.pyramiding||1)){const d={...t,in_price:e,isMarketPrice:n,qty:r,active_price:s,place_order_type:"entry"};this._pendingOrders.push(d)}}_closeAllOrders(t,e){const{comment:r,immediately:n}=t,{bar_index:s}=this._variables,a=this._orders.filter(u=>u.in_index!==s);a.length&&(this._closeOrders(a,e,"Close position order",r,"close",n),this._orders=[],this._variables.strategy.updateOrders(this._orders))}_closeOrders(t,e,r,n,s,a){for(const u of t)u.position_close_type=s,u.immediately=a,u.isTiggerClose=!0,this._closeOrder(u,e,r,n);this._orders=this._orders.filter(u=>!u.isDeal),this._variables.strategy.updateOrders(this._orders),this._variables.strategy.updateHistoryOrders(this._historyOrder)}_closeOrder(t,e,r,n){const{time:s,bar_index:a}=this._variables,{high:u,low:c}=this.calcOnOrderFillsData.data||this._variables,{slippage:f=0}=this._options,{in_price:d,qty:h=0,direction:p}=t,g=p===ce.long?1:-1;e=e-g*f*this._mintick,t.isDeal=!0;const y=(e-d)*g*h,_={...t,out_price:e,out_id:r,out_index:a,out_high:u,out_low:c,out_time:s,out_comment:n,out_qty:h,profit:y};this._calcPercent(_)}_exitOrdersHandle(){if(!this._exitOrders.length)return;const{open:t,low:e,high:r,close:n}=this.calcOnOrderFillsData.data||this._variables,s=[],a=Math.abs(r-t),u=Math.abs(e-t),c=[];for(const f of this._exitOrders){const{stop:d,limit:h,trail_stop_price:p,directionNum:g,id:y,comment:_,active_price:w,trail_offset:v=0,qty:x,comment_loss:b,comment_profit:N,comment_trailing:E,order:C}=f;if(C.isTiggerClose)continue;let F=p,S=a<u||a===u&&g===1,I,A=1,O=_;if(h&&((t-h)*g>=0?(I=t,A=1):e<=h&&r>=h&&(I=h,S&&h>t||!S&&h<t?A=1:A=2),O=N||_),!I&&d&&!(F&&(d-F)*g<0)&&((t-d)*g<=0?(I=t,A=1):e<=d&&r>=d&&(I=d,S&&d>t||!S&&d<t?A=1:A=2),O=b||_),I){s.push({order:C,price:I,index:A,isHighFront:S,exitInfo:{id:y,comment:O,qty:x}});continue}if(I=void 0,F)if((F-t)*g>=0)I=t,A=1;else{const[L,z,q]=this._calcTrailStopPrice(F,r,e,n,v,g,S);I=z,A=q||1,f.trail_stop_price=L}if(w&&!I&&w<=r&&w>=e)if(v===0)I=w,S&&w>t||!S&&w<t?A=1:A=2;else{F=bo(w,Ii(v*g,this._mintick));let L=r,z=e;S?w>=t&&w<=r?(L=r,A=1):(S=!1,L=n,A=2):w<t&&w>=e?(z=e,A=1):(S=!0,z=n,A=2);const[q,j,P=1]=this._calcTrailStopPrice(F,L,z,n,v,g,S);delete f.active_price,A<P&&(A=P),f.trail_stop_price=q,I=j}if(I){s.push({order:C,price:I,index:A,isHighFront:S,exitInfo:{id:y,comment:E||_,qty:x}});continue}c.push(f)}this._exitOrders=c,s.sort(({price:f,index:d,isHighFront:h},{price:p,index:g})=>d!==g?d-g:h?d===1?f-p:p-f:d===1?p-f:f-p);for(const f of s){const{order:d,price:h,exitInfo:p}=f;this._processExitOnClose(d,h,p)}}_ordersHandle(){const t=this._orders.filter(r=>r.isMarketPriceLimit||r.isMarketPriceStop);if(!t.length)return;const{open:e}=this.calcOnOrderFillsData.data||this._variables;for(const r of t){const{out_comment:n,out_qty:s,out_id:a}=r;this._processExitOnClose(r,e,{id:a,comment:n,qty:s})}}_calcTrailStopPrice(t,e,r,n,s,a,u){let c=t,f;const d=bo(a===1?e:r,Ii(s*a,this._mintick));let h=1;return a===1?u?(c<d&&(c=d),c>=r&&(h=2,f=c)):c>=r?(h=1,f=c):d>c&&(c=d,d>=n&&(h=3,f=d)):u?c<=e?(h=1,f=c):d<c&&(c=d,d<=n&&(h=3,f=d)):(d<c&&(c=d),c<=e&&(h=2,f=c)),[c,f,h]}_pendingOrderHandle(){if(!this._pendingOrders.length){this._exitOrdersHandle();return}const t=[],e=this._pendingOrders.filter(r=>r.place_order_type==="exit");for(const r of this._pendingOrders){const{isCancel:n,place_order_type:s}=r;if(n)continue;let a;switch(s){case"entry":a=this._entryOrderHandle(r);break;case"order":a=this._orderOrderHandle(r);break;case"close":a=this._closeOrderHandle(r);break;case"close_all":const{open:u}=this.calcOnOrderFillsData.data||this._variables;this._closeAllOrders(r,u);break}a&&t.push(a)}this._exitOrdersHandle();for(const r of e){const n=this._exitOrderHandle(r);n&&t.push(n)}this._pendingOrders=t}_pendingCloseOrderHandle(){if(!this._pendingCloseOrders.length)return;const t=this._pendingCloseOrders.filter(r=>["close","close_all"].includes(r.place_order_type||"")),{close:e}=this.calcOnOrderFillsData.data||this._variables;this._pendingCloseOrders=[];for(const r of t)switch(r.place_order_type){case"close":const n=this._closeOrderHandle(r,!0);n&&this._pendingCloseOrders.push(n);break;case"close_all":this._closeAllOrders(r,e);break}this._ordersHandle()}_entryOrderHandle(t){const{open:e,low:r,high:n}=this.calcOnOrderFillsData.data||this._variables,{isMarketPrice:s,qty:a=0,in_price:u,direction:c,active_price:f}=t;if(f&&n>=f&&r<=f)return delete t.active_price,t;let d=u;if(s&&(d=e),d<=n&&d>=r){const h=this._orders.filter(p=>p.direction!==c);this._entryOrder(h,d,a,t)}else return t}_orderOrderHandle(t){const{time:e,bar_index:r}=this._variables,{open:n,low:s,high:a}=this.calcOnOrderFillsData.data||this._variables,{slippage:u=0}=this._options,{isMarketPrice:c,qty:f=0,in_price:d,direction:h,comment:p,oca_name:g,oca_type:y,active_price:_,id:w}=t;if(_&&a>=_&&s<=_)return delete t.active_price,t;let v=d,x=f;if(c&&(v=n),v<=a&&v>=s){const b=this._orders.filter(E=>E.direction!==h);if(b.length&&(x=this._processOrders(b,v,f,w,p,!1,"order"),x<=0))return;const N=h===ce.long?1:-1;this._ocaGroupVerify(x,g,y),this._calcCurrentOrder({...t,in_price:v+N*u*this._mintick,in_index:r,in_time:e,in_high:a,in_low:s,qty:x});return}else return t}_closeOrderHandle(t,e){const{id:r,qty:n,qty_percent:s=100,comment:a,immediately:u}=t,{close_entries_rule:c="FIFO"}=this._options;let f=[];if(c==="FIFO"?f=this._orders.filter(g=>g.id===r):f=this._orders.filter(g=>g.id===r&&!g.close_qty),!f.length)return;let d=0;if(n?d=n:(d=f.reduce((g,y)=>g+(y.qty||0),d),d=s/100*d),d<=0)return;const{open:h,close:p}=this.calcOnOrderFillsData.data||this._variables;if(c==="FIFO")this._processOrders(f,e?p:h,d,`Close entry(s) order ${r}`,a,!1,"close",u);else if(this._processCloseOrders(f,e?p:h,d,`Close entry(s) order ${r}`,a,u))return t}_processCloseOrders(t,e,r,n,s,a){let u=!1;for(const c of t)c.close_qty=r,(c.qty||0)>r&&(u=!0),c.immediately=a,c.position_close_type="close",c.isTiggerClose=!0,this._processOrder(c,e,r,n,s);return this._orders=this._orders.filter(c=>!c.isDeal),this._variables.strategy.updateOrders(this._orders),this._variables.strategy.updateHistoryOrders(this._historyOrder),u}_exitOrderHandle(t){const{from_entry:e}=t,r=this._orders.filter(n=>(!e||e===n.id)&&!n.hasExit);if(!(r.length&&!this._ordersToExit(r,t,!0)))return t}_exit(t,e){if(!t.hasOwnProperty("profit")&&!t.hasOwnProperty("loss")&&!t.hasOwnProperty("stop")&&!t.hasOwnProperty("limit")&&(!t.hasOwnProperty("trail_offset")||!t.hasOwnProperty("trail_price")&&!t.hasOwnProperty("trail_points"))){this._errorListener.addError(re.strategyExitErr,e,Lt.Error);return}const{profit:r,loss:n,stop:s,limit:a,trail_offset:u,trail_price:c,trail_points:f,from_entry:d="",id:h}=t;if(this._isNaN(r)&&this._isNaN(n)&&this._isNaN(s)&&this._isNaN(a)&&(this._isNaN(u)||this._isNaN(f)&&this._isNaN(c)))return;const p={...t,place_order_type:"exit"},g=this._orders.filter(w=>(!d||d===w.id)&&!w.hasExit);this._updateExitOrders(p);const y=this._pendingOrders.filter(w=>(!d||d===w.id)&&["order","entry"].includes(w.place_order_type||""));if(g.length){if(!this._ordersToExit(g,p,!1))return}else if(!y.length)return;const _=this._pendingOrders.find(w=>w.id===h&&w.place_order_type==="exit");_?Object.assign(_,{...t}):this._pendingOrders.push(p)}_updateExitOrders(t){const e=this._exitOrders.filter(r=>r.id===t.id&&(r.from_entry===t.from_entry||!t.from_entry));for(const r of e){const{directionNum:n,order:s}=r;if(s.isTiggerClose)continue;const a={...t};if(this._stopProfit(s,n,a)){r.isClose=!0;continue}if(this._stopLoss(s,n,a)){r.isClose=!0;continue}if(this._trailStopLoss(s,n,a)){r.isClose=!0;continue}Object.assign(r,a)}this._exitOrders=this._exitOrders.filter(r=>!r.isClose)}_ordersToExit(t,e,r){const{qty:n,qty_percent:s=100,id:a,comment:u}=e;let c=n,f=!1;e.comment=u||a;const d=t[0],h={...e},{qty:p=0}=d,g=d.direction===ce.long?1:-1;return c=n?n>=p?p:n:s/100*p,h.qty=c,c<p&&(f=!0),this._stopProfit(d,g,h,r)||this._stopLoss(d,g,h,r)||this._trailStopLoss(d,g,h,r)||(this._exitOrders.push({...h,directionNum:g,order:d}),d.hasExit=!0),f}_addExitPendingCloseOrders(t){const e=this._pendingCloseOrders.find(r=>r.id===t.id);e?Object.assign(e,{...t}):this._pendingCloseOrders.push(t)}_stopProfit(t,e,r,n){const{limit:s,profit:a,comment_profit:u,comment:c,id:f,qty:d}=r;let h=s;const{close:p}=this.calcOnOrderFillsData.data||this._variables,{in_price:g}=t,{process_orders_on_close:y}=this._options;if(!this._isNaN(a)&&this._isNaN(s)&&(h=Sh(g,Ii(a*e,this._mintick))),r.limit=e===1?tc(h,this._variables.precision):ec(h,this._variables.precision),!n&&h!==void 0&&(h-p)*e<=0)return t.isMarketPriceLimit=!0,r.comment=u||c,Object.assign(t,{out_comment:r.comment,out_id:f,out_qty:d}),y&&this._addExitPendingCloseOrders(r),!0}_stopLoss(t,e,r,n){const{stop:s,loss:a,comment_loss:u,comment:c,id:f,qty:d}=r;let h=s;const{close:p}=this.calcOnOrderFillsData.data||this._variables,{in_price:g}=t,{process_orders_on_close:y}=this._options;if(!this._isNaN(a)&&this._isNaN(s)&&(h=bo(g,Ii(a*e,this._mintick))),r.stop=e===1?ec(h,this._variables.precision):tc(h,this._variables.precision),!n&&h!==void 0&&(h-p)*e>=0)return t.isMarketPriceStop=!0,r.comment=u||c,Object.assign(t,{out_comment:r.comment,out_id:f,out_qty:d}),y&&this._addExitPendingCloseOrders(r),!0}_trailStopLoss(t,e,r,n){const{trail_offset:s,trail_price:a,trail_points:u,comment_trailing:c,comment:f,id:d,qty:h}=r;if(!this._isNaN(s)){const{close:p}=this.calcOnOrderFillsData.data||this._variables,{in_price:g}=t,{process_orders_on_close:y}=this._options;let _;if(this._isNaN(a)?this._isNaN(u)||(_=Sh(g,Ii(u*e,this._mintick))):_=a,r.active_price=_,n)return;if(_!==void 0&&(_-p)*e<=0){const w=bo(p,Ii(s*e,this._mintick));if((w-p)*e>=0)return t.isMarketPriceStop=!0,r.comment=c||f,Object.assign(t,{out_comment:r.comment,out_id:d,out_qty:h}),y&&this._addExitPendingCloseOrders(r),!0;r.trail_stop_price=w}}}_processExitOnClose(t,e,r){const{qty:n=0,comment:s,id:a}=r,{close_entries_rule:u="FIFO"}=this._options;if(n)if(t.isTiggerClose=!0,u==="FIFO")this._processExitOrders(this._orders,e,n,a,s);else{if(t.isDeal)return;this._processOrders([t],e,n,a,s,!1,"exit")}}_processExitOrders(t,e,r,n,s){let a=r,u;for(const c of t)if(u=c,c.position_close_type="exit",a=this._processOrder(c,e,a,n,s),a<=0)break;return this._orders=this._orders.filter(c=>!c.isDeal),this._variables.strategy.updateOrders(this._orders),this._variables.strategy.updateHistoryOrders(this._historyOrder),u}_processOrder(t,e,r,n,s,a=!1){const{time:u,bar_index:c}=this._variables,{low:f,high:d}=this.calcOnOrderFillsData.data||this._variables,{slippage:h=0}=this._options,{in_price:p,qty:g=0,max_profit:y,trading_loss:_,direction:w,commission:v=0,original_qty:x=0}=t,b=w===ce.long?1:-1;if(e=e-b*h*this._mintick,r<g){const N=g-r,E=(e-p)*b*r,C=y!==void 0?y/g*r:void 0,F=_!==void 0?_/g*r:void 0,S=v*N/x;this._calcPercent({...t,out_price:e,last_commission:S,out_id:n,out_index:c,out_high:d,out_low:f,out_time:u,out_comment:s,profit:E,out_qty:r,max_profit:C,trading_loss:F});const I=(e-p)*b*N-S;Object.assign(t,{qty:N,profit:I,max_profit:y!==void 0?y-(C||0):void 0,trading_loss:_!==void 0?_-(F||0):void 0,total_profit:this._totalChangeCapital+I}),r=0}else{t.isDeal=!0;const N=(e-p)*b*g;this._calcPercent({...t,out_price:e,out_id:n,out_index:c,out_high:d,out_low:f,out_time:u,out_comment:s,out_qty:g,profit:N}),r-=g}return a&&(b===1?this._variables.strategy.marginCallLong++:this._variables.strategy.marginCallShort++),r}_calcPercent(t){const{commission_value:e,process_orders_on_close:r}=this._options,{in_price:n,out_qty:s=0,out_price:a=0,original_qty:u=0,direction:c,last_commission:f=0,immediately:d}=t;let{profit:h=0,max_profit:p,trading_loss:g,commission:y=0}=t,_=n*s,w=this._totalChangeCapital+this._options.initial_capital;if(this._totalChangeCapital+=h,e){const v=this._getCommission(a,s);this._totalChangeCapital-=v;let x=y*s/u;_+=x,x+=v,h=h-x,Object.assign(t,{commission:x,profit:h});const b=this._orders.reduce((N,E)=>{const{qty:C=0,original_qty:F=0,commission:S=0}=E;return N+S*C/F},0);w+=b-f}if(p===void 0||g===void 0){const v=c===ce.long?1:-1,x=this._calcProfitAndLossHandle(n,s,v);if(p=x[0],g=x[1],e){const b=y*s/u;p-=b,g-=b}p=Math.max(0,p),g=Math.min(0,g)}Object.assign(t,{max_profit:p,trading_loss:g,total_profit:this._totalChangeCapital,total_profit_percent:h/w*100,profit_percent:h/_*100,max_profit_percent:p/_*100,trading_loss_percent:g/_*100}),this._maxDrawdownVerifyIndex=this._variables.bar_index+(r?1:0),this._risk.intradayOrders+=1,this._historyOrder.push(t),this._calcOrderFillsHandle(n,c,d)}_getCommission(t,e){const{commission_value:r=0,commission_type:n}=this._options,s=t*e;let a=0;switch(n){case We.percent:a=s*r/100;break;case We.cashPerContract:a=e*r;break;case We.cashPerOrder:a=r;break}return a}_calcCurrentOrder(t){const{commission_value:e}=this._options,{in_price:r,qty:n=0,max_profit:s=0,trading_loss:a=0,direction:u,immediately:c}=t;let{profit:f=0}=t,d=r*n;const h=this._totalChangeCapital+this._options.initial_capital;if(e){const p=this._getCommission(r,n);this._totalChangeCapital-=p,f=f-p,d+=p,Object.assign(t,{commission:p,profit:f,total_profit:this._totalChangeCapital})}Object.assign(t,{original_qty:n,total_profit_percent:f/h*100,profit_percent:f/d*100,max_profit_percent:s/d*100,trading_loss_percent:a/d*100,stop:void 0,limit:void 0}),this._risk.intradayOrders+=1,this._orders.push(t),this._variables.strategy.updateOrders(this._orders),e&&this._variables.strategy.updateHistoryOrders(this._historyOrder),this._calcOrderFillsHandle(r,u,c)}_calcOrderFillsHandle(t,e,r=!1){const{calc_on_order_fills:n,process_orders_on_close:s,slippage:a=0}=this._options;if(n){const{open:u,high:c,low:f,close:d}=this._variables,h=e===ce.long?1:-1,p=d-h*a*this._mintick;if((r||s)&&t===p)return;const g=u-h*a*this._mintick;let y={open:u,high:c,low:f,close:d},_=this.calcOnOrderFillsData.index;const w=Math.abs(c-u)<=Math.abs(f-u);switch(_){case-1:t===g?_=0:t>g?w?(_=1,y={open:c,high:c,low:f,close:d}):(_=2,y={open:c,high:c,low:d,close:d}):w?(_=2,y={open:f,high:d,low:f,close:d}):(_=1,y={open:f,high:c,low:f,close:d});break;case 0:t===g?(_=1,w?y={open:c,high:c,low:f,close:d}:y={open:f,high:c,low:f,close:d}):t>g?w?(_=1,y={open:c,high:c,low:f,close:d}):(_=2,y={open:c,high:c,low:d,close:d}):w?(_=2,y={open:f,high:d,low:f,close:d}):(_=1,y={open:f,high:c,low:f,close:d});break;case 1:_=2,w?y={open:f,high:d,low:f,close:d}:y={open:c,high:c,low:d,close:d};break;case 2:_=-1,y=void 0;break}this.calcOnOrderFillsData={tradeData:y,index:_}}}_isNaN(t){return t===void 0||isNaN(t)}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}};var Oh={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){return function(e,r,n){r.prototype.isBetween=function(s,a,u,c){var f=n(s),d=n(a),h=(c=c||"()")[0]==="(",p=c[1]===")";return(h?this.isAfter(f,u):!this.isBefore(f,u))&&(p?this.isBefore(d,u):!this.isAfter(d,u))||(h?this.isBefore(f,u):!this.isAfter(f,u))&&(p?this.isAfter(d,u):!this.isBefore(d,u))}}})})(Oh);var Zw=Oh.exports,Kw=Kt(Zw),Bh={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){return function(e,r,n){var s=r.prototype,a=function(p){var g,y=p.date,_=p.utc,w={};if(!((g=y)===null||g instanceof Date||g instanceof Array||s.$utils().u(g)||g.constructor.name!=="Object")){if(!Object.keys(y).length)return new Date;var v=_?n.utc():n();Object.keys(y).forEach(function(I){var A,O;w[A=I,O=s.$utils().p(A),O==="date"?"day":O]=y[I]});var x=w.day||(w.year||w.month>=0?1:v.date()),b=w.year||v.year(),N=w.month>=0?w.month:w.year||w.day?0:v.month(),E=w.hour||0,C=w.minute||0,F=w.second||0,S=w.millisecond||0;return _?new Date(Date.UTC(b,N,x,E,C,F,S)):new Date(b,N,x,E,C,F,S)}return y},u=s.parse;s.parse=function(p){p.date=a.bind(this)(p),u.bind(this)(p)};var c=s.set,f=s.add,d=s.subtract,h=function(p,g,y,_){_===void 0&&(_=1);var w=Object.keys(g),v=this;return w.forEach(function(x){v=p.bind(v)(g[x]*_,x)}),v};s.set=function(p,g){return g=g===void 0?p:g,p.constructor.name==="Object"?h.bind(this)(function(y,_){return c.bind(this)(_,y)},g,p):c.bind(this)(p,g)},s.add=function(p,g){return p.constructor.name==="Object"?h.bind(this)(f,p,g):f.bind(this)(p,g)},s.subtract=function(p,g){return p.constructor.name==="Object"?h.bind(this)(f,p,g,-1):d.bind(this)(p,g)}}})})(Bh);var Gw=Bh.exports,Jw=Kt(Gw),Th={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){var e,r,n=1e3,s=6e4,a=36e5,u=864e5,c=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,f=31536e6,d=2628e6,h=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,p={years:f,months:d,days:u,hours:a,minutes:s,seconds:n,milliseconds:1,weeks:6048e5},g=function(C){return C instanceof N},y=function(C,F,S){return new N(C,S,F.$l)},_=function(C){return r.p(C)+"s"},w=function(C){return C<0},v=function(C){return w(C)?Math.ceil(C):Math.floor(C)},x=function(C){return Math.abs(C)},b=function(C,F){return C?w(C)?{negative:!0,format:""+x(C)+F}:{negative:!1,format:""+C+F}:{negative:!1,format:""}},N=function(){function C(S,I,A){var O=this;if(this.$d={},this.$l=A,S===void 0&&(this.$ms=0,this.parseFromMilliseconds()),I)return y(S*p[_(I)],this);if(typeof S=="number")return this.$ms=S,this.parseFromMilliseconds(),this;if(typeof S=="object")return Object.keys(S).forEach(function(q){O.$d[_(q)]=S[q]}),this.calMilliseconds(),this;if(typeof S=="string"){var L=S.match(h);if(L){var z=L.slice(2).map(function(q){return q!=null?Number(q):0});return this.$d.years=z[0],this.$d.months=z[1],this.$d.weeks=z[2],this.$d.days=z[3],this.$d.hours=z[4],this.$d.minutes=z[5],this.$d.seconds=z[6],this.calMilliseconds(),this}}return this}var F=C.prototype;return F.calMilliseconds=function(){var S=this;this.$ms=Object.keys(this.$d).reduce(function(I,A){return I+(S.$d[A]||0)*p[A]},0)},F.parseFromMilliseconds=function(){var S=this.$ms;this.$d.years=v(S/f),S%=f,this.$d.months=v(S/d),S%=d,this.$d.days=v(S/u),S%=u,this.$d.hours=v(S/a),S%=a,this.$d.minutes=v(S/s),S%=s,this.$d.seconds=v(S/n),S%=n,this.$d.milliseconds=S},F.toISOString=function(){var S=b(this.$d.years,"Y"),I=b(this.$d.months,"M"),A=+this.$d.days||0;this.$d.weeks&&(A+=7*this.$d.weeks);var O=b(A,"D"),L=b(this.$d.hours,"H"),z=b(this.$d.minutes,"M"),q=this.$d.seconds||0;this.$d.milliseconds&&(q+=this.$d.milliseconds/1e3,q=Math.round(1e3*q)/1e3);var j=b(q,"S"),P=S.negative||I.negative||O.negative||L.negative||z.negative||j.negative,Z=L.format||z.format||j.format?"T":"",W=(P?"-":"")+"P"+S.format+I.format+O.format+Z+L.format+z.format+j.format;return W==="P"||W==="-P"?"P0D":W},F.toJSON=function(){return this.toISOString()},F.format=function(S){var I=S||"YYYY-MM-DDTHH:mm:ss",A={Y:this.$d.years,YY:r.s(this.$d.years,2,"0"),YYYY:r.s(this.$d.years,4,"0"),M:this.$d.months,MM:r.s(this.$d.months,2,"0"),D:this.$d.days,DD:r.s(this.$d.days,2,"0"),H:this.$d.hours,HH:r.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:r.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:r.s(this.$d.seconds,2,"0"),SSS:r.s(this.$d.milliseconds,3,"0")};return I.replace(c,function(O,L){return L||String(A[O])})},F.as=function(S){return this.$ms/p[_(S)]},F.get=function(S){var I=this.$ms,A=_(S);return A==="milliseconds"?I%=1e3:I=A==="weeks"?v(I/p[A]):this.$d[A],I||0},F.add=function(S,I,A){var O;return O=I?S*p[_(I)]:g(S)?S.$ms:y(S,this).$ms,y(this.$ms+O*(A?-1:1),this)},F.subtract=function(S,I){return this.add(S,I,!0)},F.locale=function(S){var I=this.clone();return I.$l=S,I},F.clone=function(){return y(this.$ms,this)},F.humanize=function(S){return e().add(this.$ms,"ms").locale(this.$l).fromNow(!S)},F.valueOf=function(){return this.asMilliseconds()},F.milliseconds=function(){return this.get("milliseconds")},F.asMilliseconds=function(){return this.as("milliseconds")},F.seconds=function(){return this.get("seconds")},F.asSeconds=function(){return this.as("seconds")},F.minutes=function(){return this.get("minutes")},F.asMinutes=function(){return this.as("minutes")},F.hours=function(){return this.get("hours")},F.asHours=function(){return this.as("hours")},F.days=function(){return this.get("days")},F.asDays=function(){return this.as("days")},F.weeks=function(){return this.get("weeks")},F.asWeeks=function(){return this.as("weeks")},F.months=function(){return this.get("months")},F.asMonths=function(){return this.as("months")},F.years=function(){return this.get("years")},F.asYears=function(){return this.as("years")},C}(),E=function(C,F,S){return C.add(F.years()*S,"y").add(F.months()*S,"M").add(F.days()*S,"d").add(F.hours()*S,"h").add(F.minutes()*S,"m").add(F.seconds()*S,"s").add(F.milliseconds()*S,"ms")};return function(C,F,S){e=S,r=S().$utils(),S.duration=function(O,L){var z=S.locale();return y(O,{$l:z},L)},S.isDuration=g;var I=F.prototype.add,A=F.prototype.subtract;F.prototype.add=function(O,L){return g(O)?E(this,O,1):I.bind(this)(O,L)},F.prototype.subtract=function(O,L){return g(O)?E(this,O,-1):A.bind(this)(O,L)}}})})(Th);var Xw=Th.exports,Qw=Kt(Xw);jt.extend(xa),jt.extend(Ea),jt.extend(Kw),jt.extend(Jw),jt.extend(Qw);class Ih{constructor(t,e,r){$(this,"array");$(this,"color");$(this,"math");$(this,"str");$(this,"map");$(this,"matrix");$(this,"timeframe");$(this,"ta");$(this,"input");$(this,"_variables");$(this,"_cacheData");$(this,"_options");$(this,"_errorListener");$(this,"_plots");$(this,"_plotshapes");$(this,"_plotbars");$(this,"_plotchars");$(this,"_plotarrows");$(this,"_plotcandles");$(this,"_alerts");$(this,"_bgColors");$(this,"_hlines");$(this,"_fills");$(this,"chart");$(this,"line");$(this,"label");$(this,"polyline");$(this,"box");$(this,"table");$(this,"linefill");$(this,"log");$(this,"runtime");$(this,"strategy");$(this,"request");$(this,"syminfo");$(this,"_count",0);var s;const n=((s=t.toString().split(".")[1])==null?void 0:s.length)||5;this._variables=e,this._errorListener=new sD,this.array=new Bp(this._errorListener),this.math=new Tp(n,this._errorListener),this.color=new iy,this.str=new aw(this._errorListener,n),this.map=new uw(this._errorListener),this.timeframe=new iw(e),this.matrix=new nw(this._errorListener),this.ta=new ry(e,this.math,this.timeframe),this._cacheData={},this._options={},this._bgColors={},this._alerts=new Map,this._hlines=new Map,this._fills=new Map,this.input=new ny(e,this._errorListener,r),this._plots=new Map,this._plotshapes=new Map,this._plotbars=new Map,this._plotcandles=new Map,this._plotchars=new Map,this._plotarrows=new Map,this.chart={point:new lw(e)},this.line=new Bw(e,this._errorListener),this.label=new cw(e,this._errorListener),this.polyline=new Ow(e,this._errorListener),this.box=new Iw(e,this._errorListener),this.table=new $w(e,this._errorListener),this.linefill=new Tw(e),this.log=new nD(e),this.runtime=new iD(this._errorListener),this.strategy=new Hw(this._variables,this._options,t,this._errorListener,r),this.request=new eD(this._variables,r),this.syminfo=new rD}get errors(){return this._errorListener.errors}get scriptType(){return this._options.scriptType}options(t){if(t.length)return this._getDataOfBarindex(t);const e=this.input.getInputs(),r=this._alerts.size?[...this._alerts.values()]:void 0;this._alerts.clear();const n=Object.keys(this._bgColors);let s;if(n.length){s={};for(const v of n)s[v]=[...this._bgColors[v].values()]}const a=this._hlines.size?[...this._hlines.values()]:void 0,u=this._fills.size?[...this._fills.values()]:void 0,c=this.log.logs.length?this.log.logs:void 0;this.log.clearLogs(),this._options.scriptType==="strategy"&&Object.assign(this._options,{orders:this.strategy.orders,historyOrders:this.strategy.historyOrders,strategySummary:this._variables.strategy.summaryData});const f=this._plots.size>0?[...this._plots.values()]:void 0,d=this._plotbars.size>0?[...this._plotbars.values()]:void 0,h=this._plotshapes.size>0?[...this._plotshapes.values()]:void 0,p=this._plotarrows.size>0?[...this._plotarrows.values()]:void 0,g=this._plotcandles.size>0?[...this._plotcandles.values()]:void 0,y=this._plotchars.size>0?[...this._plotchars.values()]:void 0,_=this._getDraws(),w=this._variables.chart.isUseBgColor;return Object.assign(this._options,{inputs:e,plots:f,draws:_,alerts:r,colors:s,hlines:a,fills:u,logs:c,plotshapes:h,plotarrows:p,plotcandles:g,plotchars:y,plotbars:d,isUseBgColor:w})}_getDataOfBarindex(t){const e=this._alerts.size?[...this._alerts.values()]:void 0;this._alerts.clear();const r=Object.keys(this._bgColors);let n;if(r.length){n={};for(const w of r)n[w]=[...this._bgColors[w].values()].map(v=>{const x=[];for(const b of t){const N=v.data[b];N&&x.push(N)}return v.data=x,v})}const s=this._hlines.size?[...this._hlines.values()]:void 0,a=this._fills.size?this._getDataFromBarindex(t,[...this._fills.values()]):void 0,u=this.log.logs.length?this.log.logs:void 0;this.log.clearLogs(),this._options.scriptType==="strategy"&&Object.assign(this._options,{orders:this.strategy.orders,historyOrders:this.strategy.historyOrders});const c=this._getDataFromBarindex(t,[...this._plots.values()]),f=this._plotbars.size>0?this._getDataFromBarindex(t,[...this._plotbars.values()]):void 0,d=this._plotarrows.size>0?this._getDataFromBarindex(t,[...this._plotarrows.values()]):void 0,h=this._plotcandles.size>0?this._getDataFromBarindex(t,[...this._plotcandles.values()]):void 0,p=this._plotchars.size>0?this._getDataFromBarindex(t,[...this._plotchars.values()]):void 0,g=this._plotshapes.size>0?this._getDataFromBarindex(t,[...this._plotshapes.values()]):void 0,y=this._getDrawsFromBarindex(t),_=this._variables.chart.isUseBgColor;return Object.assign(this._options,{plots:c,plotarrows:d,plotcandles:h,plotchars:p,plotbars:f,draws:y,alerts:e,colors:n,hlines:s,fills:a,logs:u,plotshapes:g,isUseBgColor:_})}_getDataFromBarindex(t,e){return e.map(r=>{const n=[];for(const s of t){const a=r.data[s];a&&n.push(a)}return r.data=n,{...r}})}_getDraws(){const{line:t,linefill:e,table:r,box:n,polyline:s,label:a}=this._variables,u={};return t.data.length&&(u.lines=t.data),e.data.length&&(u.linefills=e.data),r.data.length&&(u.tables=r.data),n.data.length&&(u.boxes=n.data),s.data.length&&(u.polylines=s.data),a.data.length&&(u.labels=a.data),Object.keys(u).length?u:void 0}_getDrawsFromBarindex(t){const{line:e,linefill:r,table:n,box:s,polyline:a,label:u}=this._variables,c={};return e.data.length&&(c.lines=e.getValOfBarIndex(t)),r.data.length&&(c.linefills=r.getValOfBarIndex(t)),n.data.length&&(c.tables=n.getValOfBarIndex(t)),s.data.length&&(c.boxes=s.getValOfBarIndex(t)),a.data.length&&(c.polylines=a.getValOfBarIndex(t)),u.data.length&&(c.labels=u.getValOfBarIndex(t)),Object.keys(c).length?c:void 0}updateOptions(t){const{inputs:e,strategy:r}=t;this.input.update(e),r&&this.strategy.updateOptions(r)}update(t){const{barIndex:e}=t;this.strategy.update(),this.math.update(e)}endExecution(){this.strategy.endExecution()}library(t,e){if(!this._variables.bar_index){const r=/^[^\W\d\s][^\W\s]*$/,{title:n}=t;r.test(n)?(Op.includes(n)||Sp.includes(n))&&this._errorListener.addError(He(re.libraryTitleIsKeywordErr,{name:n}),e,Lt.Error):this._errorListener.addError(re.libraryTitleErr,e,Lt.Error),this._options.scriptType="library",this._options.library=t}}indicator(t,e){if(!this._variables.bar_index){const{format:r}=t;this._paramVerfiy(r,e,"indicator",[Gt.inherit,Gt.percent,Gt.price,Gt.volume]),this._variables.updateMaxLength(t),this._options.scriptType="indicator",this._options.indicator=t}}_paramVerfiy(t="",e,r,n,s="format"){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}_lineWidthVerify(t,e){const{linewidth:r=1}=t;r<1&&(this._errorListener.addError(Fp.lineWidthWarning,e,Lt.Warning),t.linewidth=1)}plot(t,e){const r=["color"];ge(t,r);const{series:n,color:s,...a}=t,{bar_index:u,time:c}=this._variables,f=`plot_${e}`,d=this._plots.get(f),h=(d==null?void 0:d.data)||[],p=n!==void 0&&isNaN(n)?void 0:n;if(h[u]={value:[c,p],itemStyle:{color:s}},this._seriesColorHandle(t,r,d),!d){this._count++,this._lineWidthVerify(a,e),this._paramVerfiy(t.format,e,"plot",[Gt.percent,Gt.price,Gt.volume]);const g=s?[s]:void 0;this._plots.set(f,{editable:!0,...a,colors:g,data:h,id:f,zIndex:this._count})}return{type:"plot",key:f}}plotbar(t,e){const r=["color"];ge(t,r);const{open:n,close:s,low:a,high:u,color:c,...f}=t,{bar_index:d,time:h}=this._variables,p=`plotbar_${e}`,g=this._plotbars.get(p),y=(g==null?void 0:g.data)||[],_=s!==void 0&&isNaN(s)?void 0:s,w=n!==void 0&&isNaN(n)?void 0:n,v=a!==void 0&&isNaN(a)?void 0:a,x=u!==void 0&&isNaN(u)?void 0:u,b=[h,w,_,v,x];if(y[d]={value:b,itemStyle:{color:c}},this._seriesColorHandle(t,r,g),!g){this._count++,this._paramVerfiy(t.format,e,"plotbar",[Gt.percent,Gt.price,Gt.volume]);const N=c?[c]:void 0;this._plotbars.set(p,{editable:!0,...f,colors:N,data:y,id:p,zIndex:this._count})}}_verfiyArgs(t,e,r){const{size:n,format:s,location:a,style:u}=t;this._paramVerfiy(u,r,e,Object.values(lr),"style"),this._paramVerfiy(a,r,e,Object.values(cn),"location"),this._paramVerfiy(n,r,e,Object.values(ir),"size"),this._paramVerfiy(s,r,e,[Gt.percent,Gt.price,Gt.volume],"format")}plotchar(t,e){const r=["color","textcolor"];ge(t,r);const{series:n,color:s,textcolor:a,location:u=cn.abovebar,...c}=t,{bar_index:f,time:d,high:h,low:p}=this._variables,g=`plotchar_${e}`,y=this._plotchars.get(g),_=(y==null?void 0:y.data)||[],w={value:[d,n],itemStyle:{color:s,textcolor:a},low:p,high:h};_[f]=w,this._seriesColorHandle(t,r,y),y||(this._count++,this._verfiyArgs(t,"plotchar",e),this._plotchars.set(g,{editable:!0,...c,location:u,data:_,id:g,zIndex:this._count}))}plotarrow(t,e){const r=["colorup","colordown"];ge(t,r);const{series:n,colorup:s,colordown:a,...u}=t,{bar_index:c,time:f,low:d,high:h}=this._variables,p=`plotarrow_${e}`,g=this._plotarrows.get(p),y=(g==null?void 0:g.data)||[];y[c]={value:[f,n!==void 0&&isNaN(n)?void 0:n],itemStyle:{colorup:s,colordown:a},low:d,high:h},this._seriesColorHandle(t,r,g),g||(this._count++,this._paramVerfiy(t.format,e,"plotarrow",[Gt.percent,Gt.price,Gt.volume]),this._plotarrows.set(p,{editable:!0,...u,data:y,id:p,zIndex:this._count}))}plotshape(t,e){const r=["color","textcolor"];ge(t,r);const{series:n,color:s,textcolor:a,location:u=cn.abovebar,...c}=t,{bar_index:f,time:d,low:h,high:p}=this._variables,g=`plotshape_${e}`,y=this._plotshapes.get(g),_=(y==null?void 0:y.data)||[],w={value:n,color:s,textcolor:a,time:d,low:h,high:p};if(_[f]=w,this._seriesColorHandle(t,r,y),!y){this._count++;const v=s?[s]:void 0;this._verfiyArgs(t,"plotshape",e),this._plotshapes.set(g,{editable:!0,...c,data:_,location:u,id:g,colors:v,zIndex:this._count})}}plotcandle(t,e){const r=["wickcolor","bordercolor","color"];ge(t,r);const{wickcolor:n,bordercolor:s,color:a,close:u,open:c,low:f,high:d,...h}=t,{bar_index:p,time:g}=this._variables,y=`plotcandle_${e}`,_=this._plotcandles.get(y),w=(_==null?void 0:_.data)||[],v=u!==void 0&&isNaN(u)?void 0:u,x=c!==void 0&&isNaN(c)?void 0:c,b=f!==void 0&&isNaN(f)?void 0:f,N=d!==void 0&&isNaN(d)?void 0:d,E=[g,x,v,b,N];w[p]={value:E,wickcolor:n,bordercolor:s,color:a},this._seriesColorHandle(t,r,_),_||(this._count++,this._paramVerfiy(t.format,e,"plotcandle",[Gt.percent,Gt.price,Gt.volume]),this._plotcandles.set(y,{editable:!0,...h,data:w,id:y,zIndex:this._count}))}hline(t,e){const r=`hline_${e}`;ge(t,["color"]),this._verifyDisplay(t.display,"hline",e);const s=t.display&&!t.display.length?Ze.none:Ze.all;return this._hlines.has(r)||(this._count++,this._lineWidthVerify(t,e),this._hlines.set(r,{id:r,linewidth:1,editable:!0,display:s,...t,zIndex:this._count})),{type:"hline",key:r}}fill(t,e){var S,I,A,O,L,z,q,j,P,Z;const r=["color","top_color","bottom_color"];ge(t,r);const{color:n,top_color:s,bottom_color:a,seriesColors:u,hline1:c,hline2:f,plot1:d,plot2:h,top_value:p,bottom_value:g,...y}=t,{bar_index:_,time:w}=this._variables,v=`fill_${e}`,x=this._fills.get(v),b=(x==null?void 0:x.data)||[];this._verifyDisplay(t.display,"fill",e);const N=t.display&&!t.display.length?Ze.none:Ze.all;let E,C,F="plot";if(c&&f)E=(S=this._hlines.get(c==null?void 0:c.key))==null?void 0:S.price,C=(I=this._hlines.get(f==null?void 0:f.key))==null?void 0:I.price,F="hline";else{const W=((A=this._plots.get(d==null?void 0:d.key))==null?void 0:A.data)||[],X=((O=this._plots.get(h==null?void 0:h.key))==null?void 0:O.data)||[];E=(z=(L=W[_])==null?void 0:L.value)==null?void 0:z[1],C=(j=(q=X[_])==null?void 0:q.value)==null?void 0:j[1]}if(b[_]={time:w,color:n,top_color:s,bottom_color:a,plot1:E,plot2:C,top_value:p,bottom_value:g},this._seriesColorHandle(t,r,x),!x){this._count++;const W=((P=this._options.indicator)==null?void 0:P.explicit_plot_zorder)||((Z=this._options.strategy)==null?void 0:Z.explicit_plot_zorder),X=n?[n]:void 0,J=s?[s]:void 0,ct=a?[a]:void 0;this._fills.set(v,{id:v,colors:X,top_colors:J,bottom_colors:ct,display:N,data:b,type:F,editable:!0,fillgaps:!1,hline1:c,hline2:f,plot1:d,plot2:h,...y,zIndex:W?this._count:void 0})}}alert({message:t,freq:e=jr.freqOncePerBar},r){const{bar_index:n,_isRealTimeBar:s,last_bar_index:a}=this._variables,u=`alert_${r}`,c=this._cacheData[u]||{},f=c.barIndex;if(this._paramVerfiy(e,r,"alert",[jr.freqAll,jr.freqOncePerBar,jr.freqOncePerBarClose]),e===jr.freqOncePerBar&&n===f){this._alerts.delete(u);return}this._cacheData[u]=c;const d={message:t,freq:e,id:u,type:"alert"};if(s){e!==jr.freqOncePerBarClose&&this._alerts.set(u,d),c.barIndex=n;return}if(!s&&e===jr.freqOncePerBarClose&&n===f&&a===n-1){this._alerts.set(u,d),c.barIndex=n;return}this._alerts.delete(u)}alertcondition({condition:t,message:e,title:r},n){const{_isRealTimeBar:s}=this._variables,a=`alertcondition_${n}`;s&&t?this._alerts.set(a,{message:e,title:r,id:a,type:"alertcondition"}):this._alerts.delete(a)}barcolor(t,e){this._setColors(t,"barcolor",e)}bgcolor(t,e){this._setColors(t,"bgcolor",e)}_verifyDisplay(t=xh.all,e,r){t.length&&t.length<4&&this._errorListener.addError(He(re.displayErr,{func:e,values:"[display.none, display.all]"}),r,Lt.Error)}_setColors(t,e,r){ge(t,["color"]);const{color:s,...a}=t;this._verifyDisplay(a.display,e,r);const u=t.display&&!t.display.length?Ze.none:Ze.all,{bar_index:c,time:f}=this._variables,d=`${e}_${r}`;this._bgColors[e]||(this._bgColors[e]=new Map);const h=this._bgColors[e].get(d),p=(h==null?void 0:h.data)||[],g=(h==null?void 0:h.setColors)||[];s&&!g.includes(s)&&g.push(s),p[c]={color:s,time:f},h||this._bgColors[e].set(d,{...a,display:u,data:p,setColors:g,id:d})}max_bars_back({var:t,num:e,var_name:r}){console.log(t,e,r)}float({x:t}){return t}bool({x:t}){return t||!1}string({x:t}){return t}int({x:t}){return t&&Math.trunc(t)}na({x:t}){return!!(t===void 0||typeof t=="number"&&isNaN(t))}fixnan({source:t},e){return t===void 0||typeof t=="number"&&isNaN(t)?this._cacheData[`fixnan_${e}`]:(this._cacheData[`fixnan_${e}`]=t,t)}nz({source:t,replacement:e}){return t!==void 0&&!(typeof t=="number"&&isNaN(t))?t:e||0}time({timeframe:t="",session:e,timezone:r,bars_back:n=0},s){return this._timeHandle(this._variables.time,s,t,e,r,n)}time_close({timeframe:t="",session:e,timezone:r,bars_back:n=0},s){return this._timeHandle(this._variables.time,s,t,e,r,n,!0)}timestamp(t){const{dateString:e,timezone:r,year:n,month:s,day:a,hour:u=0,minute:c=0,second:f=0}=t;if(e)return jt(e).utc(!/GMT|UTC/.test(e)).valueOf();let d=s-1,h=n;if(d<0){const p=Math.ceil(Math.abs(d/12));d=12*p+d,h=n-p}return mr({year:h,month:d,day:a,hour:u,minute:c,second:f},r).valueOf()}weekofyear({time:t,timezone:e}){return mr(t,e).week()}year({time:t,timezone:e}){return mr(t,e).year()}second({time:t,timezone:e}){return mr(t,e).second()}month({time:t,timezone:e}){return mr(t,e).month()+1}minute({time:t,timezone:e}){return mr(t,e).minute()}hour({time:t,timezone:e}){return mr(t,e).hour()}dayofweek({time:t,timezone:e}){return mr(t,e).day()+1}dayofmonth({time:t,timezone:e}){return mr(t,e).date()}_calcTimeOffset(t,e){const r=this._variables.getTimeTradingday(t,this._variables.timeframe.period),n=gr(e,t)*1e3;return t-r-Math.floor((t-r)/n)*n}_timeHandle(t,e,r="",n,s,a=0,u=!1){const c=r||this._variables.__period,f=gr(c,t),d=gr(this._variables.__period,t);let h;if(f<=d)h=t,u&&(h+=d*1e3);else{const p=`time_${e}`,g=this._cacheData[p];if(g)g.currentTime+f*1e3-g.offset<=t?(h=t,this._cacheData[p]={currentTime:t,offset:0}):h=g.currentTime;else{const y=this._calcTimeOffset(t,c);this._cacheData[p]={currentTime:t,offset:y},h=t}u&&(h+=f*1e3)}if(n&&n!==Mn.regular&&n!==Mn.extended){const{timePeriods:p,weeks:g}=this._parserSession(n,e),y=mr(t,s),_=y.format("YYYY-MM-DD HH:mm"),w=y.format("YYYY-MM-DD"),v=h,x=mr(h,s).format("YYYY-MM-DD HH:mm");h=void 0;for(const N of p){const[E,C]=N;let F;if(E===C&&(F=y.add(1,"day").format("YYYY-MM-DD")),jt(_).isBetween(`${w} ${E}`,`${F||w} ${C}`,"hour","[)")){jt(x).isBetween(`${w} ${E}`,`${F||w} ${C}`,"hour","[)")?h=v:h=mr(`${w} ${E}`,s).valueOf();break}}const b=this._variables.dayofweek;h&&!g.includes(b)&&(h=void 0)}return h&&h-a*d*1e3}_seriesColorHandle(t,e,r){var n;if(r&&e!=null&&e.length)for(const s of e){if((n=r.gradientColorKeys)!=null&&n.includes(s))continue;const a=t[s];if(!a)continue;const u=r[`${s}s`]||[];u.includes(a)||(u.push(a),r[`${s}s`]=u,u.length>5&&(r[`${s}s`]=[],r.gradientColorKeys=r.gradientColorKeys||[],r.gradientColorKeys.push(s)))}}_parserSession(t,e){const r=t.split(":"),n=r[0],a=(r[1]||"1234567").split("").map(c=>{const f=parseInt(c,10);if(f<1||f>7){this._errorListener.addError(`Invalid day of week: ${c}`,e,Lt.Error);return}return f});return{timePeriods:n.split(",").map(c=>{c===""||c===Mn.regular?c="0930-1500":c===Mn.extended&&(c="1500-1830");const f=c.split("-");return f.length!==2?(this._errorListener.addError(`Invalid time period: ${c}`,e,Lt.Error),[]):[this._processTime(f[0],e),this._processTime(f[1],e)]}),weeks:a}}_processTime(t,e){const r=parseInt(t.slice(0,2),10),n=parseInt(t.slice(2),10);if(!(r>=0&&r<=23)&&n>=0&&n<=59){this._errorListener.addError("Invalid time: Time must be within 00:00 to 23:59",e,Lt.Error);return}return`${r}:${n}`}}const tD={1:"1M",3:"3M",5:"5M",15:"15M",30:"30M",45:"45M",60:"1H",120:"2H",180:"3H",240:"4H",D:"1D",W:"1W",M:"1MTH","3M":"3MTH","6M":"6MTH","12M":"12MTH"};let eD=class{constructor(t,e){$(this,"_variables");$(this,"_scriptId");$(this,"_cacheData");this._variables=t,this._scriptId=e,this._cacheData=new Map}security(t,e){const r=self.workerStorage.get(`request_${this._scriptId}`),{paramsExpr:n=[]}=t,s=this._getRequestData(t,e);if(r!=null&&r.has(e)){if(!s)return;const c=r.get(e);return this._runScripts(c,e,!1,n,s)}const a=this._parseExprCode(t),u=this._runScripts(a,e,!0,n,s);return r==null||r.set(e,a),u}_parseExprCode(t){let{expression:e,paramsExpr:r=[]}=t,n=[],s=1;e=Xl(e);const a=JSON.parse(e),u=a.pop();let c=(u==null?void 0:u.memberCodes)||{},f=(u==null?void 0:u.depends)||[];if(!f.length)return`return ${u==null?void 0:u.code}`;let d=[],h=[];const p=[];if(this._getDependCodes(f,a,n,d,h,p),n.push(...p),h.length){const _=r.length;let w=[];for(let v=_-1;v>=0;v--){const x=r[v];let b=JSON.parse(Xl(x));const N=[];s!==0&&h.length&&(w.unshift("{"),s++),b=b.map(S=>{const{scope:I,code:A,varNames:O,dependSelf:L}=S;return I===2&&!N.includes(O)&&!L&&(S.code=`let ${A}`),O&&N.push(...O.split(", ")),S.memberCodes&&Object.assign(c,{...S.memberCodes}),S});const E=[],C=[];let F=h.map(S=>({...S,isArg:!1,isPreArg:!0}));h=[],this._getDependCodes(F,b,C,d,h,E),w.unshift(...C,...E),n=w.concat(n),w=[]}}for(n.push(`return ${u==null?void 0:u.code}`);s>1;)n.push("}"),s--;n=d.concat(n);let g=n.join(`
61
+ ${uh}`)}function _y(i,t,e){return(i>=0&&e?` ${ch(i,t-1)}`:ch(i,t)).padEnd(t)}function ch(i,t){let e=i.toString();if(e.length<=t)return e;let r=i.toFixed(t);if(r.length>t&&(r=i.toFixed(Math.max(0,t-(r.length-t)))),r.length<=t&&!r.startsWith("0.000")&&!r.startsWith("-0.000"))return r;let n=i.toExponential(t);return n.length>t&&(n=i.toExponential(Math.max(0,t-(n.length-t)))),n.slice(0)}function my(i,t){i.prototype.add=function(r){return typeof r=="number"?this.addS(r):this.addM(r)},i.prototype.addS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)+r);return this},i.prototype.addM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)+r.get(n,s));return this},i.add=function(r,n){return new t(r).add(n)},i.prototype.sub=function(r){return typeof r=="number"?this.subS(r):this.subM(r)},i.prototype.subS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)-r);return this},i.prototype.subM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)-r.get(n,s));return this},i.sub=function(r,n){return new t(r).sub(n)},i.prototype.subtract=i.prototype.sub,i.prototype.subtractS=i.prototype.subS,i.prototype.subtractM=i.prototype.subM,i.subtract=i.sub,i.prototype.mul=function(r){return typeof r=="number"?this.mulS(r):this.mulM(r)},i.prototype.mulS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)*r);return this},i.prototype.mulM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)*r.get(n,s));return this},i.mul=function(r,n){return new t(r).mul(n)},i.prototype.multiply=i.prototype.mul,i.prototype.multiplyS=i.prototype.mulS,i.prototype.multiplyM=i.prototype.mulM,i.multiply=i.mul,i.prototype.div=function(r){return typeof r=="number"?this.divS(r):this.divM(r)},i.prototype.divS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)/r);return this},i.prototype.divM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)/r.get(n,s));return this},i.div=function(r,n){return new t(r).div(n)},i.prototype.divide=i.prototype.div,i.prototype.divideS=i.prototype.divS,i.prototype.divideM=i.prototype.divM,i.divide=i.div,i.prototype.mod=function(r){return typeof r=="number"?this.modS(r):this.modM(r)},i.prototype.modS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)%r);return this},i.prototype.modM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)%r.get(n,s));return this},i.mod=function(r,n){return new t(r).mod(n)},i.prototype.modulus=i.prototype.mod,i.prototype.modulusS=i.prototype.modS,i.prototype.modulusM=i.prototype.modM,i.modulus=i.mod,i.prototype.and=function(r){return typeof r=="number"?this.andS(r):this.andM(r)},i.prototype.andS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)&r);return this},i.prototype.andM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)&r.get(n,s));return this},i.and=function(r,n){return new t(r).and(n)},i.prototype.or=function(r){return typeof r=="number"?this.orS(r):this.orM(r)},i.prototype.orS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)|r);return this},i.prototype.orM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)|r.get(n,s));return this},i.or=function(r,n){return new t(r).or(n)},i.prototype.xor=function(r){return typeof r=="number"?this.xorS(r):this.xorM(r)},i.prototype.xorS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)^r);return this},i.prototype.xorM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)^r.get(n,s));return this},i.xor=function(r,n){return new t(r).xor(n)},i.prototype.leftShift=function(r){return typeof r=="number"?this.leftShiftS(r):this.leftShiftM(r)},i.prototype.leftShiftS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)<<r);return this},i.prototype.leftShiftM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)<<r.get(n,s));return this},i.leftShift=function(r,n){return new t(r).leftShift(n)},i.prototype.signPropagatingRightShift=function(r){return typeof r=="number"?this.signPropagatingRightShiftS(r):this.signPropagatingRightShiftM(r)},i.prototype.signPropagatingRightShiftS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)>>r);return this},i.prototype.signPropagatingRightShiftM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)>>r.get(n,s));return this},i.signPropagatingRightShift=function(r,n){return new t(r).signPropagatingRightShift(n)},i.prototype.rightShift=function(r){return typeof r=="number"?this.rightShiftS(r):this.rightShiftM(r)},i.prototype.rightShiftS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)>>>r);return this},i.prototype.rightShiftM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,this.get(n,s)>>>r.get(n,s));return this},i.rightShift=function(r,n){return new t(r).rightShift(n)},i.prototype.zeroFillRightShift=i.prototype.rightShift,i.prototype.zeroFillRightShiftS=i.prototype.rightShiftS,i.prototype.zeroFillRightShiftM=i.prototype.rightShiftM,i.zeroFillRightShift=i.rightShift,i.prototype.not=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,~this.get(r,n));return this},i.not=function(r){return new t(r).not()},i.prototype.abs=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.abs(this.get(r,n)));return this},i.abs=function(r){return new t(r).abs()},i.prototype.acos=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.acos(this.get(r,n)));return this},i.acos=function(r){return new t(r).acos()},i.prototype.acosh=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.acosh(this.get(r,n)));return this},i.acosh=function(r){return new t(r).acosh()},i.prototype.asin=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.asin(this.get(r,n)));return this},i.asin=function(r){return new t(r).asin()},i.prototype.asinh=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.asinh(this.get(r,n)));return this},i.asinh=function(r){return new t(r).asinh()},i.prototype.atan=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.atan(this.get(r,n)));return this},i.atan=function(r){return new t(r).atan()},i.prototype.atanh=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.atanh(this.get(r,n)));return this},i.atanh=function(r){return new t(r).atanh()},i.prototype.cbrt=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.cbrt(this.get(r,n)));return this},i.cbrt=function(r){return new t(r).cbrt()},i.prototype.ceil=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.ceil(this.get(r,n)));return this},i.ceil=function(r){return new t(r).ceil()},i.prototype.clz32=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.clz32(this.get(r,n)));return this},i.clz32=function(r){return new t(r).clz32()},i.prototype.cos=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.cos(this.get(r,n)));return this},i.cos=function(r){return new t(r).cos()},i.prototype.cosh=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.cosh(this.get(r,n)));return this},i.cosh=function(r){return new t(r).cosh()},i.prototype.exp=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.exp(this.get(r,n)));return this},i.exp=function(r){return new t(r).exp()},i.prototype.expm1=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.expm1(this.get(r,n)));return this},i.expm1=function(r){return new t(r).expm1()},i.prototype.floor=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.floor(this.get(r,n)));return this},i.floor=function(r){return new t(r).floor()},i.prototype.fround=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.fround(this.get(r,n)));return this},i.fround=function(r){return new t(r).fround()},i.prototype.log=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.log(this.get(r,n)));return this},i.log=function(r){return new t(r).log()},i.prototype.log1p=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.log1p(this.get(r,n)));return this},i.log1p=function(r){return new t(r).log1p()},i.prototype.log10=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.log10(this.get(r,n)));return this},i.log10=function(r){return new t(r).log10()},i.prototype.log2=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.log2(this.get(r,n)));return this},i.log2=function(r){return new t(r).log2()},i.prototype.round=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.round(this.get(r,n)));return this},i.round=function(r){return new t(r).round()},i.prototype.sign=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.sign(this.get(r,n)));return this},i.sign=function(r){return new t(r).sign()},i.prototype.sin=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.sin(this.get(r,n)));return this},i.sin=function(r){return new t(r).sin()},i.prototype.sinh=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.sinh(this.get(r,n)));return this},i.sinh=function(r){return new t(r).sinh()},i.prototype.sqrt=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.sqrt(this.get(r,n)));return this},i.sqrt=function(r){return new t(r).sqrt()},i.prototype.tan=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.tan(this.get(r,n)));return this},i.tan=function(r){return new t(r).tan()},i.prototype.tanh=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.tanh(this.get(r,n)));return this},i.tanh=function(r){return new t(r).tanh()},i.prototype.trunc=function(){for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.set(r,n,Math.trunc(this.get(r,n)));return this},i.trunc=function(r){return new t(r).trunc()},i.pow=function(r,n){return new t(r).pow(n)},i.prototype.pow=function(r){return typeof r=="number"?this.powS(r):this.powM(r)},i.prototype.powS=function(r){for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,Math.pow(this.get(n,s),r));return this},i.prototype.powM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let n=0;n<this.rows;n++)for(let s=0;s<this.columns;s++)this.set(n,s,Math.pow(this.get(n,s),r.get(n,s)));return this}}function Tr(i,t,e){let r=e?i.rows:i.rows-1;if(t<0||t>r)throw new RangeError("Row index out of range")}function Ir(i,t,e){let r=e?i.columns:i.columns-1;if(t<0||t>r)throw new RangeError("Column index out of range")}function Fi(i,t){if(t.to1DArray&&(t=t.to1DArray()),t.length!==i.columns)throw new RangeError("vector size must be the same as the number of columns");return t}function Ni(i,t){if(t.to1DArray&&(t=t.to1DArray()),t.length!==i.rows)throw new RangeError("vector size must be the same as the number of rows");return t}function Xa(i,t){if(!fr.isAnyArray(t))throw new TypeError("row indices must be an array");for(let e=0;e<t.length;e++)if(t[e]<0||t[e]>=i.rows)throw new RangeError("row indices are out of range")}function Qa(i,t){if(!fr.isAnyArray(t))throw new TypeError("column indices must be an array");for(let e=0;e<t.length;e++)if(t[e]<0||t[e]>=i.columns)throw new RangeError("column indices are out of range")}function tu(i,t,e,r,n){if(arguments.length!==5)throw new RangeError("expected 4 arguments");if(co("startRow",t),co("endRow",e),co("startColumn",r),co("endColumn",n),t>e||r>n||t<0||t>=i.rows||e<0||e>=i.rows||r<0||r>=i.columns||n<0||n>=i.columns)throw new RangeError("Submatrix indices are out of range")}function lo(i,t=0){let e=[];for(let r=0;r<i;r++)e.push(t);return e}function co(i,t){if(typeof t!="number")throw new TypeError(`${i} must be a number`)}function Si(i){if(i.isEmpty())throw new Error("Empty matrix has no elements to index")}function gy(i){let t=lo(i.rows);for(let e=0;e<i.rows;++e)for(let r=0;r<i.columns;++r)t[e]+=i.get(e,r);return t}function vy(i){let t=lo(i.columns);for(let e=0;e<i.rows;++e)for(let r=0;r<i.columns;++r)t[r]+=i.get(e,r);return t}function yy(i){let t=0;for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)t+=i.get(e,r);return t}function wy(i){let t=lo(i.rows,1);for(let e=0;e<i.rows;++e)for(let r=0;r<i.columns;++r)t[e]*=i.get(e,r);return t}function Dy(i){let t=lo(i.columns,1);for(let e=0;e<i.rows;++e)for(let r=0;r<i.columns;++r)t[r]*=i.get(e,r);return t}function by(i){let t=1;for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)t*=i.get(e,r);return t}function xy(i,t,e){const r=i.rows,n=i.columns,s=[];for(let a=0;a<r;a++){let u=0,c=0,f=0;for(let d=0;d<n;d++)f=i.get(a,d)-e[a],u+=f,c+=f*f;t?s.push((c-u*u/n)/(n-1)):s.push((c-u*u/n)/n)}return s}function Ey(i,t,e){const r=i.rows,n=i.columns,s=[];for(let a=0;a<n;a++){let u=0,c=0,f=0;for(let d=0;d<r;d++)f=i.get(d,a)-e[a],u+=f,c+=f*f;t?s.push((c-u*u/r)/(r-1)):s.push((c-u*u/r)/r)}return s}function Ay(i,t,e){const r=i.rows,n=i.columns,s=r*n;let a=0,u=0,c=0;for(let f=0;f<r;f++)for(let d=0;d<n;d++)c=i.get(f,d)-e,a+=c,u+=c*c;return t?(u-a*a/s)/(s-1):(u-a*a/s)/s}function Cy(i,t){for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)i.set(e,r,i.get(e,r)-t[e])}function My(i,t){for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)i.set(e,r,i.get(e,r)-t[r])}function Fy(i,t){for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)i.set(e,r,i.get(e,r)-t)}function Ny(i){const t=[];for(let e=0;e<i.rows;e++){let r=0;for(let n=0;n<i.columns;n++)r+=Math.pow(i.get(e,n),2)/(i.columns-1);t.push(Math.sqrt(r))}return t}function Sy(i,t){for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)i.set(e,r,i.get(e,r)/t[e])}function Oy(i){const t=[];for(let e=0;e<i.columns;e++){let r=0;for(let n=0;n<i.rows;n++)r+=Math.pow(i.get(n,e),2)/(i.rows-1);t.push(Math.sqrt(r))}return t}function By(i,t){for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)i.set(e,r,i.get(e,r)/t[r])}function Ty(i){const t=i.size-1;let e=0;for(let r=0;r<i.columns;r++)for(let n=0;n<i.rows;n++)e+=Math.pow(i.get(n,r),2)/t;return Math.sqrt(e)}function Iy(i,t){for(let e=0;e<i.rows;e++)for(let r=0;r<i.columns;r++)i.set(e,r,i.get(e,r)/t)}class $t{static from1DArray(t,e,r){if(t*e!==r.length)throw new RangeError("data length does not match given dimensions");let s=new dt(t,e);for(let a=0;a<t;a++)for(let u=0;u<e;u++)s.set(a,u,r[a*e+u]);return s}static rowVector(t){let e=new dt(1,t.length);for(let r=0;r<t.length;r++)e.set(0,r,t[r]);return e}static columnVector(t){let e=new dt(t.length,1);for(let r=0;r<t.length;r++)e.set(r,0,t[r]);return e}static zeros(t,e){return new dt(t,e)}static ones(t,e){return new dt(t,e).fill(1)}static rand(t,e,r={}){if(typeof r!="object")throw new TypeError("options must be an object");const{random:n=Math.random}=r;let s=new dt(t,e);for(let a=0;a<t;a++)for(let u=0;u<e;u++)s.set(a,u,n());return s}static randInt(t,e,r={}){if(typeof r!="object")throw new TypeError("options must be an object");const{min:n=0,max:s=1e3,random:a=Math.random}=r;if(!Number.isInteger(n))throw new TypeError("min must be an integer");if(!Number.isInteger(s))throw new TypeError("max must be an integer");if(n>=s)throw new RangeError("min must be smaller than max");let u=s-n,c=new dt(t,e);for(let f=0;f<t;f++)for(let d=0;d<e;d++){let h=n+Math.round(a()*u);c.set(f,d,h)}return c}static eye(t,e,r){e===void 0&&(e=t),r===void 0&&(r=1);let n=Math.min(t,e),s=this.zeros(t,e);for(let a=0;a<n;a++)s.set(a,a,r);return s}static diag(t,e,r){let n=t.length;e===void 0&&(e=n),r===void 0&&(r=e);let s=Math.min(n,e,r),a=this.zeros(e,r);for(let u=0;u<s;u++)a.set(u,u,t[u]);return a}static min(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,n=t.columns,s=new dt(r,n);for(let a=0;a<r;a++)for(let u=0;u<n;u++)s.set(a,u,Math.min(t.get(a,u),e.get(a,u)));return s}static max(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,n=t.columns,s=new this(r,n);for(let a=0;a<r;a++)for(let u=0;u<n;u++)s.set(a,u,Math.max(t.get(a,u),e.get(a,u)));return s}static checkMatrix(t){return $t.isMatrix(t)?t:new dt(t)}static isMatrix(t){return t!=null&&t.klass==="Matrix"}get size(){return this.rows*this.columns}apply(t){if(typeof t!="function")throw new TypeError("callback must be a function");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.call(this,e,r);return this}to1DArray(){let t=[];for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.push(this.get(e,r));return t}to2DArray(){let t=[];for(let e=0;e<this.rows;e++){t.push([]);for(let r=0;r<this.columns;r++)t[e].push(this.get(e,r))}return t}toJSON(){return this.to2DArray()}isRowVector(){return this.rows===1}isColumnVector(){return this.columns===1}isVector(){return this.rows===1||this.columns===1}isSquare(){return this.rows===this.columns}isEmpty(){return this.rows===0||this.columns===0}isSymmetric(){if(this.isSquare()){for(let t=0;t<this.rows;t++)for(let e=0;e<=t;e++)if(this.get(t,e)!==this.get(e,t))return!1;return!0}return!1}isDistance(){if(!this.isSymmetric())return!1;for(let t=0;t<this.rows;t++)if(this.get(t,t)!==0)return!1;return!0}isEchelonForm(){let t=0,e=0,r=-1,n=!0,s=!1;for(;t<this.rows&&n;){for(e=0,s=!1;e<this.columns&&s===!1;)this.get(t,e)===0?e++:this.get(t,e)===1&&e>r?(s=!0,r=e):(n=!1,s=!0);t++}return n}isReducedEchelonForm(){let t=0,e=0,r=-1,n=!0,s=!1;for(;t<this.rows&&n;){for(e=0,s=!1;e<this.columns&&s===!1;)this.get(t,e)===0?e++:this.get(t,e)===1&&e>r?(s=!0,r=e):(n=!1,s=!0);for(let a=e+1;a<this.rows;a++)this.get(t,a)!==0&&(n=!1);t++}return n}echelonForm(){let t=this.clone(),e=0,r=0;for(;e<t.rows&&r<t.columns;){let n=e;for(let s=e;s<t.rows;s++)t.get(s,r)>t.get(n,r)&&(n=s);if(t.get(n,r)===0)r++;else{t.swapRows(e,n);let s=t.get(e,r);for(let a=r;a<t.columns;a++)t.set(e,a,t.get(e,a)/s);for(let a=e+1;a<t.rows;a++){let u=t.get(a,r)/t.get(e,r);t.set(a,r,0);for(let c=r+1;c<t.columns;c++)t.set(a,c,t.get(a,c)-t.get(e,c)*u)}e++,r++}}return t}reducedEchelonForm(){let t=this.echelonForm(),e=t.columns,r=t.rows,n=r-1;for(;n>=0;)if(t.maxRow(n)===0)n--;else{let s=0,a=!1;for(;s<r&&a===!1;)t.get(n,s)===1?a=!0:s++;for(let u=0;u<n;u++){let c=t.get(u,s);for(let f=s;f<e;f++){let d=t.get(u,f)-c*t.get(n,f);t.set(u,f,d)}}n--}return t}set(){throw new Error("set method is unimplemented")}get(){throw new Error("get method is unimplemented")}repeat(t={}){if(typeof t!="object")throw new TypeError("options must be an object");const{rows:e=1,columns:r=1}=t;if(!Number.isInteger(e)||e<=0)throw new TypeError("rows must be a positive integer");if(!Number.isInteger(r)||r<=0)throw new TypeError("columns must be a positive integer");let n=new dt(this.rows*e,this.columns*r);for(let s=0;s<e;s++)for(let a=0;a<r;a++)n.setSubMatrix(this,this.rows*s,this.columns*a);return n}fill(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,t);return this}neg(){return this.mulS(-1)}getRow(t){Tr(this,t);let e=[];for(let r=0;r<this.columns;r++)e.push(this.get(t,r));return e}getRowVector(t){return dt.rowVector(this.getRow(t))}setRow(t,e){Tr(this,t),e=Fi(this,e);for(let r=0;r<this.columns;r++)this.set(t,r,e[r]);return this}swapRows(t,e){Tr(this,t),Tr(this,e);for(let r=0;r<this.columns;r++){let n=this.get(t,r);this.set(t,r,this.get(e,r)),this.set(e,r,n)}return this}getColumn(t){Ir(this,t);let e=[];for(let r=0;r<this.rows;r++)e.push(this.get(r,t));return e}getColumnVector(t){return dt.columnVector(this.getColumn(t))}setColumn(t,e){Ir(this,t),e=Ni(this,e);for(let r=0;r<this.rows;r++)this.set(r,t,e[r]);return this}swapColumns(t,e){Ir(this,t),Ir(this,e);for(let r=0;r<this.rows;r++){let n=this.get(r,t);this.set(r,t,this.get(r,e)),this.set(r,e,n)}return this}addRowVector(t){t=Fi(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[r]);return this}subRowVector(t){t=Fi(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[r]);return this}mulRowVector(t){t=Fi(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[r]);return this}divRowVector(t){t=Fi(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[r]);return this}addColumnVector(t){t=Ni(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[e]);return this}subColumnVector(t){t=Ni(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[e]);return this}mulColumnVector(t){t=Ni(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[e]);return this}divColumnVector(t){t=Ni(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[e]);return this}mulRow(t,e){Tr(this,t);for(let r=0;r<this.columns;r++)this.set(t,r,this.get(t,r)*e);return this}mulColumn(t,e){Ir(this,t);for(let r=0;r<this.rows;r++)this.set(r,t,this.get(r,t)*e);return this}max(t){if(this.isEmpty())return NaN;switch(t){case"row":{const e=new Array(this.rows).fill(Number.NEGATIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)>e[r]&&(e[r]=this.get(r,n));return e}case"column":{const e=new Array(this.columns).fill(Number.NEGATIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)>e[n]&&(e[n]=this.get(r,n));return e}case void 0:{let e=this.get(0,0);for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)>e&&(e=this.get(r,n));return e}default:throw new Error(`invalid option: ${t}`)}}maxIndex(){Si(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)>t&&(t=this.get(r,n),e[0]=r,e[1]=n);return e}min(t){if(this.isEmpty())return NaN;switch(t){case"row":{const e=new Array(this.rows).fill(Number.POSITIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)<e[r]&&(e[r]=this.get(r,n));return e}case"column":{const e=new Array(this.columns).fill(Number.POSITIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)<e[n]&&(e[n]=this.get(r,n));return e}case void 0:{let e=this.get(0,0);for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)<e&&(e=this.get(r,n));return e}default:throw new Error(`invalid option: ${t}`)}}minIndex(){Si(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let n=0;n<this.columns;n++)this.get(r,n)<t&&(t=this.get(r,n),e[0]=r,e[1]=n);return e}maxRow(t){if(Tr(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)>e&&(e=this.get(t,r));return e}maxRowIndex(t){Tr(this,t),Si(this);let e=this.get(t,0),r=[t,0];for(let n=1;n<this.columns;n++)this.get(t,n)>e&&(e=this.get(t,n),r[1]=n);return r}minRow(t){if(Tr(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)<e&&(e=this.get(t,r));return e}minRowIndex(t){Tr(this,t),Si(this);let e=this.get(t,0),r=[t,0];for(let n=1;n<this.columns;n++)this.get(t,n)<e&&(e=this.get(t,n),r[1]=n);return r}maxColumn(t){if(Ir(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)>e&&(e=this.get(r,t));return e}maxColumnIndex(t){Ir(this,t),Si(this);let e=this.get(0,t),r=[0,t];for(let n=1;n<this.rows;n++)this.get(n,t)>e&&(e=this.get(n,t),r[0]=n);return r}minColumn(t){if(Ir(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)<e&&(e=this.get(r,t));return e}minColumnIndex(t){Ir(this,t),Si(this);let e=this.get(0,t),r=[0,t];for(let n=1;n<this.rows;n++)this.get(n,t)<e&&(e=this.get(n,t),r[0]=n);return r}diag(){let t=Math.min(this.rows,this.columns),e=[];for(let r=0;r<t;r++)e.push(this.get(r,r));return e}norm(t="frobenius"){switch(t){case"max":return this.max();case"frobenius":return Math.sqrt(this.dot(this));default:throw new RangeError(`unknown norm type: ${t}`)}}cumulativeSum(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t+=this.get(e,r),this.set(e,r,t);return this}dot(t){$t.isMatrix(t)&&(t=t.to1DArray());let e=this.to1DArray();if(e.length!==t.length)throw new RangeError("vectors do not have the same size");let r=0;for(let n=0;n<e.length;n++)r+=e[n]*t[n];return r}mmul(t){t=dt.checkMatrix(t);let e=this.rows,r=this.columns,n=t.columns,s=new dt(e,n),a=new Float64Array(r);for(let u=0;u<n;u++){for(let c=0;c<r;c++)a[c]=t.get(c,u);for(let c=0;c<e;c++){let f=0;for(let d=0;d<r;d++)f+=this.get(c,d)*a[d];s.set(c,u,f)}}return s}strassen2x2(t){t=dt.checkMatrix(t);let e=new dt(2,2);const r=this.get(0,0),n=t.get(0,0),s=this.get(0,1),a=t.get(0,1),u=this.get(1,0),c=t.get(1,0),f=this.get(1,1),d=t.get(1,1),h=(r+f)*(n+d),p=(u+f)*n,g=r*(a-d),y=f*(c-n),_=(r+s)*d,w=(u-r)*(n+a),v=(s-f)*(c+d),x=h+y-_+v,b=g+_,N=p+y,E=h-p+g+w;return e.set(0,0,x),e.set(0,1,b),e.set(1,0,N),e.set(1,1,E),e}strassen3x3(t){t=dt.checkMatrix(t);let e=new dt(3,3);const r=this.get(0,0),n=this.get(0,1),s=this.get(0,2),a=this.get(1,0),u=this.get(1,1),c=this.get(1,2),f=this.get(2,0),d=this.get(2,1),h=this.get(2,2),p=t.get(0,0),g=t.get(0,1),y=t.get(0,2),_=t.get(1,0),w=t.get(1,1),v=t.get(1,2),x=t.get(2,0),b=t.get(2,1),N=t.get(2,2),E=(r+n+s-a-u-d-h)*w,C=(r-a)*(-g+w),F=u*(-p+g+_-w-v-x+N),S=(-r+a+u)*(p-g+w),I=(a+u)*(-p+g),A=r*p,O=(-r+f+d)*(p-y+v),L=(-r+f)*(y-v),z=(f+d)*(-p+y),q=(r+n+s-u-c-f-d)*v,j=d*(-p+y+_-w-v-x+b),P=(-s+d+h)*(w+x-b),Z=(s-h)*(w-b),W=s*x,X=(d+h)*(-x+b),J=(-s+u+c)*(v+x-N),ct=(s-c)*(v-N),gt=(u+c)*(-x+N),st=n*_,yt=c*b,Dt=a*y,Nt=f*g,xt=h*N,ue=A+W+st,Tt=E+S+I+A+P+W+X,St=A+O+z+q+W+J+gt,fe=C+F+S+A+W+J+ct,ne=C+S+I+A+yt,qt=W+J+ct+gt+Dt,Xt=A+O+L+j+P+Z+W,Le=P+Z+W+X+Nt,Dr=A+O+L+z+xt;return e.set(0,0,ue),e.set(0,1,Tt),e.set(0,2,St),e.set(1,0,fe),e.set(1,1,ne),e.set(1,2,qt),e.set(2,0,Xt),e.set(2,1,Le),e.set(2,2,Dr),e}mmulStrassen(t){t=dt.checkMatrix(t);let e=this.clone(),r=e.rows,n=e.columns,s=t.rows,a=t.columns;n!==s&&console.warn(`Multiplying ${r} x ${n} and ${s} x ${a} matrix: dimensions do not match.`);function u(h,p,g){let y=h.rows,_=h.columns;if(y===p&&_===g)return h;{let w=$t.zeros(p,g);return w=w.setSubMatrix(h,0,0),w}}let c=Math.max(r,s),f=Math.max(n,a);e=u(e,c,f),t=u(t,c,f);function d(h,p,g,y){if(g<=512||y<=512)return h.mmul(p);g%2===1&&y%2===1?(h=u(h,g+1,y+1),p=u(p,g+1,y+1)):g%2===1?(h=u(h,g+1,y),p=u(p,g+1,y)):y%2===1&&(h=u(h,g,y+1),p=u(p,g,y+1));let _=parseInt(h.rows/2,10),w=parseInt(h.columns/2,10),v=h.subMatrix(0,_-1,0,w-1),x=p.subMatrix(0,_-1,0,w-1),b=h.subMatrix(0,_-1,w,h.columns-1),N=p.subMatrix(0,_-1,w,p.columns-1),E=h.subMatrix(_,h.rows-1,0,w-1),C=p.subMatrix(_,p.rows-1,0,w-1),F=h.subMatrix(_,h.rows-1,w,h.columns-1),S=p.subMatrix(_,p.rows-1,w,p.columns-1),I=d($t.add(v,F),$t.add(x,S),_,w),A=d($t.add(E,F),x,_,w),O=d(v,$t.sub(N,S),_,w),L=d(F,$t.sub(C,x),_,w),z=d($t.add(v,b),S,_,w),q=d($t.sub(E,v),$t.add(x,N),_,w),j=d($t.sub(b,F),$t.add(C,S),_,w),P=$t.add(I,L);P.sub(z),P.add(j);let Z=$t.add(O,z),W=$t.add(A,L),X=$t.sub(I,A);X.add(O),X.add(q);let J=$t.zeros(2*P.rows,2*P.columns);return J=J.setSubMatrix(P,0,0),J=J.setSubMatrix(Z,P.rows,0),J=J.setSubMatrix(W,0,P.columns),J=J.setSubMatrix(X,P.rows,P.columns),J.subMatrix(0,g-1,0,y-1)}return d(e,t,c,f)}scaleRows(t={}){if(typeof t!="object")throw new TypeError("options must be an object");const{min:e=0,max:r=1}=t;if(!Number.isFinite(e))throw new TypeError("min must be a number");if(!Number.isFinite(r))throw new TypeError("max must be a number");if(e>=r)throw new RangeError("min must be smaller than max");let n=new dt(this.rows,this.columns);for(let s=0;s<this.rows;s++){const a=this.getRow(s);a.length>0&&ah(a,{min:e,max:r,output:a}),n.setRow(s,a)}return n}scaleColumns(t={}){if(typeof t!="object")throw new TypeError("options must be an object");const{min:e=0,max:r=1}=t;if(!Number.isFinite(e))throw new TypeError("min must be a number");if(!Number.isFinite(r))throw new TypeError("max must be a number");if(e>=r)throw new RangeError("min must be smaller than max");let n=new dt(this.rows,this.columns);for(let s=0;s<this.columns;s++){const a=this.getColumn(s);a.length&&ah(a,{min:e,max:r,output:a}),n.setColumn(s,a)}return n}flipRows(){const t=Math.ceil(this.columns/2);for(let e=0;e<this.rows;e++)for(let r=0;r<t;r++){let n=this.get(e,r),s=this.get(e,this.columns-1-r);this.set(e,r,s),this.set(e,this.columns-1-r,n)}return this}flipColumns(){const t=Math.ceil(this.rows/2);for(let e=0;e<this.columns;e++)for(let r=0;r<t;r++){let n=this.get(r,e),s=this.get(this.rows-1-r,e);this.set(r,e,s),this.set(this.rows-1-r,e,n)}return this}kroneckerProduct(t){t=dt.checkMatrix(t);let e=this.rows,r=this.columns,n=t.rows,s=t.columns,a=new dt(e*n,r*s);for(let u=0;u<e;u++)for(let c=0;c<r;c++)for(let f=0;f<n;f++)for(let d=0;d<s;d++)a.set(n*u+f,s*c+d,this.get(u,c)*t.get(f,d));return a}kroneckerSum(t){if(t=dt.checkMatrix(t),!this.isSquare()||!t.isSquare())throw new Error("Kronecker Sum needs two Square Matrices");let e=this.rows,r=t.rows,n=this.kroneckerProduct(dt.eye(r,r)),s=dt.eye(e,e).kroneckerProduct(t);return n.add(s)}transpose(){let t=new dt(this.columns,this.rows);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.set(r,e,this.get(e,r));return t}sortRows(t=fh){for(let e=0;e<this.rows;e++)this.setRow(e,this.getRow(e).sort(t));return this}sortColumns(t=fh){for(let e=0;e<this.columns;e++)this.setColumn(e,this.getColumn(e).sort(t));return this}subMatrix(t,e,r,n){tu(this,t,e,r,n);let s=new dt(e-t+1,n-r+1);for(let a=t;a<=e;a++)for(let u=r;u<=n;u++)s.set(a-t,u-r,this.get(a,u));return s}subMatrixRow(t,e,r){if(e===void 0&&(e=0),r===void 0&&(r=this.columns-1),e>r||e<0||e>=this.columns||r<0||r>=this.columns)throw new RangeError("Argument out of range");let n=new dt(t.length,r-e+1);for(let s=0;s<t.length;s++)for(let a=e;a<=r;a++){if(t[s]<0||t[s]>=this.rows)throw new RangeError(`Row index out of range: ${t[s]}`);n.set(s,a-e,this.get(t[s],a))}return n}subMatrixColumn(t,e,r){if(e===void 0&&(e=0),r===void 0&&(r=this.rows-1),e>r||e<0||e>=this.rows||r<0||r>=this.rows)throw new RangeError("Argument out of range");let n=new dt(r-e+1,t.length);for(let s=0;s<t.length;s++)for(let a=e;a<=r;a++){if(t[s]<0||t[s]>=this.columns)throw new RangeError(`Column index out of range: ${t[s]}`);n.set(a-e,s,this.get(a,t[s]))}return n}setSubMatrix(t,e,r){if(t=dt.checkMatrix(t),t.isEmpty())return this;let n=e+t.rows-1,s=r+t.columns-1;tu(this,e,n,r,s);for(let a=0;a<t.rows;a++)for(let u=0;u<t.columns;u++)this.set(e+a,r+u,t.get(a,u));return this}selection(t,e){Xa(this,t),Qa(this,e);let r=new dt(t.length,e.length);for(let n=0;n<t.length;n++){let s=t[n];for(let a=0;a<e.length;a++){let u=e[a];r.set(n,a,this.get(s,u))}}return r}trace(){let t=Math.min(this.rows,this.columns),e=0;for(let r=0;r<t;r++)e+=this.get(r,r);return e}clone(){return this.constructor.copy(this,new dt(this.rows,this.columns))}static copy(t,e){for(const[r,n,s]of t.entries())e.set(r,n,s);return e}sum(t){switch(t){case"row":return gy(this);case"column":return vy(this);case void 0:return yy(this);default:throw new Error(`invalid option: ${t}`)}}product(t){switch(t){case"row":return wy(this);case"column":return Dy(this);case void 0:return by(this);default:throw new Error(`invalid option: ${t}`)}}mean(t){const e=this.sum(t);switch(t){case"row":{for(let r=0;r<this.rows;r++)e[r]/=this.columns;return e}case"column":{for(let r=0;r<this.columns;r++)e[r]/=this.rows;return e}case void 0:return e/this.size;default:throw new Error(`invalid option: ${t}`)}}variance(t,e={}){if(typeof t=="object"&&(e=t,t=void 0),typeof e!="object")throw new TypeError("options must be an object");const{unbiased:r=!0,mean:n=this.mean(t)}=e;if(typeof r!="boolean")throw new TypeError("unbiased must be a boolean");switch(t){case"row":{if(!fr.isAnyArray(n))throw new TypeError("mean must be an array");return xy(this,r,n)}case"column":{if(!fr.isAnyArray(n))throw new TypeError("mean must be an array");return Ey(this,r,n)}case void 0:{if(typeof n!="number")throw new TypeError("mean must be a number");return Ay(this,r,n)}default:throw new Error(`invalid option: ${t}`)}}standardDeviation(t,e){typeof t=="object"&&(e=t,t=void 0);const r=this.variance(t,e);if(t===void 0)return Math.sqrt(r);for(let n=0;n<r.length;n++)r[n]=Math.sqrt(r[n]);return r}center(t,e={}){if(typeof t=="object"&&(e=t,t=void 0),typeof e!="object")throw new TypeError("options must be an object");const{center:r=this.mean(t)}=e;switch(t){case"row":{if(!fr.isAnyArray(r))throw new TypeError("center must be an array");return Cy(this,r),this}case"column":{if(!fr.isAnyArray(r))throw new TypeError("center must be an array");return My(this,r),this}case void 0:{if(typeof r!="number")throw new TypeError("center must be a number");return Fy(this,r),this}default:throw new Error(`invalid option: ${t}`)}}scale(t,e={}){if(typeof t=="object"&&(e=t,t=void 0),typeof e!="object")throw new TypeError("options must be an object");let r=e.scale;switch(t){case"row":{if(r===void 0)r=Ny(this);else if(!fr.isAnyArray(r))throw new TypeError("scale must be an array");return Sy(this,r),this}case"column":{if(r===void 0)r=Oy(this);else if(!fr.isAnyArray(r))throw new TypeError("scale must be an array");return By(this,r),this}case void 0:{if(r===void 0)r=Ty(this);else if(typeof r!="number")throw new TypeError("scale must be a number");return Iy(this,r),this}default:throw new Error(`invalid option: ${t}`)}}toString(t){return lh(this,t)}[Symbol.iterator](){return this.entries()}*entries(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)yield[t,e,this.get(t,e)]}*values(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)yield this.get(t,e)}}$t.prototype.klass="Matrix",typeof Symbol<"u"&&($t.prototype[Symbol.for("nodejs.util.inspect.custom")]=dy);function fh(i,t){return i-t}function $y(i){return i.every(t=>typeof t=="number")}$t.random=$t.rand,$t.randomInt=$t.randInt,$t.diagonal=$t.diag,$t.prototype.diagonal=$t.prototype.diag,$t.identity=$t.eye,$t.prototype.negate=$t.prototype.neg,$t.prototype.tensorProduct=$t.prototype.kroneckerProduct;let dt=(Ri=class extends $t{constructor(e,r){super();Yl(this,cs);$(this,"data");if(Ri.isMatrix(e))Vl(this,cs,Hl).call(this,e.rows,e.columns),Ri.copy(e,this);else if(Number.isInteger(e)&&e>=0)Vl(this,cs,Hl).call(this,e,r);else if(fr.isAnyArray(e)){const n=e;if(e=n.length,r=e?n[0].length:0,typeof r!="number")throw new TypeError("Data must be a 2D array with at least one element");this.data=[];for(let s=0;s<e;s++){if(n[s].length!==r)throw new RangeError("Inconsistent array dimensions");if(!$y(n[s]))throw new TypeError("Input data contains non-numeric values");this.data.push(Float64Array.from(n[s]))}this.rows=e,this.columns=r}else throw new TypeError("First argument must be a positive number or an array")}set(e,r,n){return this.data[e][r]=n,this}get(e,r){return this.data[e][r]}removeRow(e){return Tr(this,e),this.data.splice(e,1),this.rows-=1,this}addRow(e,r){return r===void 0&&(r=e,e=this.rows),Tr(this,e,!0),r=Float64Array.from(Fi(this,r)),this.data.splice(e,0,r),this.rows+=1,this}removeColumn(e){Ir(this,e);for(let r=0;r<this.rows;r++){const n=new Float64Array(this.columns-1);for(let s=0;s<e;s++)n[s]=this.data[r][s];for(let s=e+1;s<this.columns;s++)n[s-1]=this.data[r][s];this.data[r]=n}return this.columns-=1,this}addColumn(e,r){typeof r>"u"&&(r=e,e=this.columns),Ir(this,e,!0),r=Ni(this,r);for(let n=0;n<this.rows;n++){const s=new Float64Array(this.columns+1);let a=0;for(;a<e;a++)s[a]=this.data[n][a];for(s[a++]=r[n];a<this.columns+1;a++)s[a]=this.data[n][a-1];this.data[n]=s}return this.columns+=1,this}},cs=new WeakSet,Hl=function(e,r){if(this.data=[],Number.isInteger(r)&&r>=0)for(let n=0;n<e;n++)this.data.push(new Float64Array(r));else throw new TypeError("nColumns must be a positive integer");this.rows=e,this.columns=r},Ri);my($t,dt);const Oo=class Oo extends $t{constructor(e){super();Yl(this,tr,void 0);if(dt.isMatrix(e)){if(!e.isSymmetric())throw new TypeError("not symmetric data");ba(this,tr,dt.copy(e,new dt(e.rows,e.rows)))}else if(Number.isInteger(e)&&e>=0)ba(this,tr,new dt(e,e));else if(ba(this,tr,new dt(e)),!this.isSymmetric())throw new TypeError("not symmetric data")}get size(){return tn(this,tr).size}get rows(){return tn(this,tr).rows}get columns(){return tn(this,tr).columns}get diagonalSize(){return this.rows}static isSymmetricMatrix(e){return dt.isMatrix(e)&&e.klassType==="SymmetricMatrix"}static zeros(e){return new this(e)}static ones(e){return new this(e).fill(1)}clone(){const e=new Oo(this.diagonalSize);for(const[r,n,s]of this.upperRightEntries())e.set(r,n,s);return e}toMatrix(){return new dt(this)}get(e,r){return tn(this,tr).get(e,r)}set(e,r,n){return tn(this,tr).set(e,r,n),tn(this,tr).set(r,e,n),this}removeCross(e){return tn(this,tr).removeRow(e),tn(this,tr).removeColumn(e),this}addCross(e,r){r===void 0&&(r=e,e=this.diagonalSize);const n=r.slice();return n.splice(e,1),tn(this,tr).addRow(e,n),tn(this,tr).addColumn(e,r),this}applyMask(e){if(e.length!==this.diagonalSize)throw new RangeError("Mask size do not match with matrix size");const r=[];for(const[n,s]of e.entries())s||r.push(n);r.reverse();for(const n of r)this.removeCross(n);return this}toCompact(){const{diagonalSize:e}=this,r=new Array(e*(e+1)/2);for(let n=0,s=0,a=0;a<r.length;a++)r[a]=this.get(s,n),++n>=e&&(n=++s);return r}static fromCompact(e){const r=e.length,n=(Math.sqrt(8*r+1)-1)/2;if(!Number.isInteger(n))throw new TypeError(`This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(e)}`);const s=new Oo(n);for(let a=0,u=0,c=0;c<r;c++)s.set(a,u,e[c]),++a>=n&&(a=++u);return s}*upperRightEntries(){for(let e=0,r=0;e<this.diagonalSize;void 0){const n=this.get(e,r);yield[e,r,n],++r>=this.diagonalSize&&(r=++e)}}*upperRightValues(){for(let e=0,r=0;e<this.diagonalSize;void 0)yield this.get(e,r),++r>=this.diagonalSize&&(r=++e)}};tr=new WeakMap;let ri=Oo;ri.prototype.klassType="SymmetricMatrix";class fo extends ri{static isDistanceMatrix(t){return ri.isSymmetricMatrix(t)&&t.klassSubType==="DistanceMatrix"}constructor(t){if(super(t),!this.isDistance())throw new TypeError("Provided arguments do no produce a distance matrix")}set(t,e,r){return t===e&&(r=0),super.set(t,e,r)}addCross(t,e){return e===void 0&&(e=t,t=this.diagonalSize),e=e.slice(),e[t]=0,super.addCross(t,e)}toSymmetricMatrix(){return new ri(this)}clone(){const t=new fo(this.diagonalSize);for(const[e,r,n]of this.upperRightEntries())e!==r&&t.set(e,r,n);return t}toCompact(){const{diagonalSize:t}=this,e=(t-1)*t/2,r=new Array(e);for(let n=1,s=0,a=0;a<r.length;a++)r[a]=this.get(s,n),++n>=t&&(n=++s+1);return r}static fromCompact(t){const e=t.length,r=(Math.sqrt(8*e+1)+1)/2;if(!Number.isInteger(r))throw new TypeError(`This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(t)}`);const n=new this(r);for(let s=1,a=0,u=0;u<e;u++)n.set(s,a,t[u]),++s>=r&&(s=++a+1);return n}}fo.prototype.klassSubType="DistanceMatrix";class pn extends $t{constructor(t,e,r){super(),this.matrix=t,this.rows=e,this.columns=r}}class Ly extends pn{constructor(t,e){Ir(t,e),super(t,t.rows,1),this.column=e}set(t,e,r){return this.matrix.set(t,this.column,r),this}get(t){return this.matrix.get(t,this.column)}}class Ry extends pn{constructor(t,e){Qa(t,e),super(t,t.rows,e.length),this.columnIndices=e}set(t,e,r){return this.matrix.set(t,this.columnIndices[e],r),this}get(t,e){return this.matrix.get(t,this.columnIndices[e])}}class Py extends pn{constructor(t){super(t,t.rows,t.columns)}set(t,e,r){return this.matrix.set(t,this.columns-e-1,r),this}get(t,e){return this.matrix.get(t,this.columns-e-1)}}class ky extends pn{constructor(t){super(t,t.rows,t.columns)}set(t,e,r){return this.matrix.set(this.rows-t-1,e,r),this}get(t,e){return this.matrix.get(this.rows-t-1,e)}}class zy extends pn{constructor(t,e){Tr(t,e),super(t,1,t.columns),this.row=e}set(t,e,r){return this.matrix.set(this.row,e,r),this}get(t,e){return this.matrix.get(this.row,e)}}class qy extends pn{constructor(t,e){Xa(t,e),super(t,e.length,t.columns),this.rowIndices=e}set(t,e,r){return this.matrix.set(this.rowIndices[t],e,r),this}get(t,e){return this.matrix.get(this.rowIndices[t],e)}}class ho extends pn{constructor(t,e,r){Xa(t,e),Qa(t,r),super(t,e.length,r.length),this.rowIndices=e,this.columnIndices=r}set(t,e,r){return this.matrix.set(this.rowIndices[t],this.columnIndices[e],r),this}get(t,e){return this.matrix.get(this.rowIndices[t],this.columnIndices[e])}}class Uy extends pn{constructor(t,e,r,n,s){tu(t,e,r,n,s),super(t,r-e+1,s-n+1),this.startRow=e,this.startColumn=n}set(t,e,r){return this.matrix.set(this.startRow+t,this.startColumn+e,r),this}get(t,e){return this.matrix.get(this.startRow+t,this.startColumn+e)}}class jy extends pn{constructor(t){super(t,t.columns,t.rows)}set(t,e,r){return this.matrix.set(e,t,r),this}get(t,e){return this.matrix.get(e,t)}}class hh extends $t{constructor(t,e={}){const{rows:r=1}=e;if(t.length%r!==0)throw new Error("the data length is not divisible by the number of rows");super(),this.rows=r,this.columns=t.length/r,this.data=t}set(t,e,r){let n=this._calculateIndex(t,e);return this.data[n]=r,this}get(t,e){let r=this._calculateIndex(t,e);return this.data[r]}_calculateIndex(t,e){return t*this.columns+e}}class wr extends $t{constructor(t){super(),this.data=t,this.rows=t.length,this.columns=t[0].length}set(t,e,r){return this.data[t][e]=r,this}get(t,e){return this.data[t][e]}}function Wy(i,t){if(fr.isAnyArray(i))return i[0]&&fr.isAnyArray(i[0])?new wr(i):new hh(i,t);throw new Error("the argument is not an array")}class po{constructor(t){t=wr.checkMatrix(t);let e=t.clone(),r=e.rows,n=e.columns,s=new Float64Array(r),a=1,u,c,f,d,h,p,g,y,_;for(u=0;u<r;u++)s[u]=u;for(y=new Float64Array(r),c=0;c<n;c++){for(u=0;u<r;u++)y[u]=e.get(u,c);for(u=0;u<r;u++){for(_=Math.min(u,c),h=0,f=0;f<_;f++)h+=e.get(u,f)*y[f];y[u]-=h,e.set(u,c,y[u])}for(d=c,u=c+1;u<r;u++)Math.abs(y[u])>Math.abs(y[d])&&(d=u);if(d!==c){for(f=0;f<n;f++)p=e.get(d,f),e.set(d,f,e.get(c,f)),e.set(c,f,p);g=s[d],s[d]=s[c],s[c]=g,a=-a}if(c<r&&e.get(c,c)!==0)for(u=c+1;u<r;u++)e.set(u,c,e.get(u,c)/e.get(c,c))}this.LU=e,this.pivotVector=s,this.pivotSign=a}isSingular(){let t=this.LU,e=t.columns;for(let r=0;r<e;r++)if(t.get(r,r)===0)return!0;return!1}solve(t){t=dt.checkMatrix(t);let e=this.LU;if(e.rows!==t.rows)throw new Error("Invalid matrix dimensions");if(this.isSingular())throw new Error("LU matrix is singular");let n=t.columns,s=t.subMatrixRow(this.pivotVector,0,n-1),a=e.columns,u,c,f;for(f=0;f<a;f++)for(u=f+1;u<a;u++)for(c=0;c<n;c++)s.set(u,c,s.get(u,c)-s.get(f,c)*e.get(u,f));for(f=a-1;f>=0;f--){for(c=0;c<n;c++)s.set(f,c,s.get(f,c)/e.get(f,f));for(u=0;u<f;u++)for(c=0;c<n;c++)s.set(u,c,s.get(u,c)-s.get(f,c)*e.get(u,f))}return s}get determinant(){let t=this.LU;if(!t.isSquare())throw new Error("Matrix must be square");let e=this.pivotSign,r=t.columns;for(let n=0;n<r;n++)e*=t.get(n,n);return e}get lowerTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,n=new dt(e,r);for(let s=0;s<e;s++)for(let a=0;a<r;a++)s>a?n.set(s,a,t.get(s,a)):s===a?n.set(s,a,1):n.set(s,a,0);return n}get upperTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,n=new dt(e,r);for(let s=0;s<e;s++)for(let a=0;a<r;a++)s<=a?n.set(s,a,t.get(s,a)):n.set(s,a,0);return n}get pivotPermutationVector(){return Array.from(this.pivotVector)}}function _n(i,t){let e=0;return Math.abs(i)>Math.abs(t)?(e=t/i,Math.abs(i)*Math.sqrt(1+e*e)):t!==0?(e=i/t,Math.abs(t)*Math.sqrt(1+e*e)):0}class eu{constructor(t){t=wr.checkMatrix(t);let e=t.clone(),r=t.rows,n=t.columns,s=new Float64Array(n),a,u,c,f;for(c=0;c<n;c++){let d=0;for(a=c;a<r;a++)d=_n(d,e.get(a,c));if(d!==0){for(e.get(c,c)<0&&(d=-d),a=c;a<r;a++)e.set(a,c,e.get(a,c)/d);for(e.set(c,c,e.get(c,c)+1),u=c+1;u<n;u++){for(f=0,a=c;a<r;a++)f+=e.get(a,c)*e.get(a,u);for(f=-f/e.get(c,c),a=c;a<r;a++)e.set(a,u,e.get(a,u)+f*e.get(a,c))}}s[c]=-d}this.QR=e,this.Rdiag=s}solve(t){t=dt.checkMatrix(t);let e=this.QR,r=e.rows;if(t.rows!==r)throw new Error("Matrix row dimensions must agree");if(!this.isFullRank())throw new Error("Matrix is rank deficient");let n=t.columns,s=t.clone(),a=e.columns,u,c,f,d;for(f=0;f<a;f++)for(c=0;c<n;c++){for(d=0,u=f;u<r;u++)d+=e.get(u,f)*s.get(u,c);for(d=-d/e.get(f,f),u=f;u<r;u++)s.set(u,c,s.get(u,c)+d*e.get(u,f))}for(f=a-1;f>=0;f--){for(c=0;c<n;c++)s.set(f,c,s.get(f,c)/this.Rdiag[f]);for(u=0;u<f;u++)for(c=0;c<n;c++)s.set(u,c,s.get(u,c)-s.get(f,c)*e.get(u,f))}return s.subMatrix(0,a-1,0,n-1)}isFullRank(){let t=this.QR.columns;for(let e=0;e<t;e++)if(this.Rdiag[e]===0)return!1;return!0}get upperTriangularMatrix(){let t=this.QR,e=t.columns,r=new dt(e,e),n,s;for(n=0;n<e;n++)for(s=0;s<e;s++)n<s?r.set(n,s,t.get(n,s)):n===s?r.set(n,s,this.Rdiag[n]):r.set(n,s,0);return r}get orthogonalMatrix(){let t=this.QR,e=t.rows,r=t.columns,n=new dt(e,r),s,a,u,c;for(u=r-1;u>=0;u--){for(s=0;s<e;s++)n.set(s,u,0);for(n.set(u,u,1),a=u;a<r;a++)if(t.get(u,u)!==0){for(c=0,s=u;s<e;s++)c+=t.get(s,u)*n.get(s,a);for(c=-c/t.get(u,u),s=u;s<e;s++)n.set(s,a,n.get(s,a)+c*t.get(s,u))}}return n}}class Oi{constructor(t,e={}){if(t=wr.checkMatrix(t),t.isEmpty())throw new Error("Matrix must be non-empty");let r=t.rows,n=t.columns;const{computeLeftSingularVectors:s=!0,computeRightSingularVectors:a=!0,autoTranspose:u=!1}=e;let c=!!s,f=!!a,d=!1,h;if(r<n)if(!u)h=t.clone(),console.warn("Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose");else{h=t.transpose(),r=h.rows,n=h.columns,d=!0;let A=c;c=f,f=A}else h=t.clone();let p=Math.min(r,n),g=Math.min(r+1,n),y=new Float64Array(g),_=new dt(r,p),w=new dt(n,n),v=new Float64Array(n),x=new Float64Array(r),b=new Float64Array(g);for(let A=0;A<g;A++)b[A]=A;let N=Math.min(r-1,n),E=Math.max(0,Math.min(n-2,r)),C=Math.max(N,E);for(let A=0;A<C;A++){if(A<N){y[A]=0;for(let O=A;O<r;O++)y[A]=_n(y[A],h.get(O,A));if(y[A]!==0){h.get(A,A)<0&&(y[A]=-y[A]);for(let O=A;O<r;O++)h.set(O,A,h.get(O,A)/y[A]);h.set(A,A,h.get(A,A)+1)}y[A]=-y[A]}for(let O=A+1;O<n;O++){if(A<N&&y[A]!==0){let L=0;for(let z=A;z<r;z++)L+=h.get(z,A)*h.get(z,O);L=-L/h.get(A,A);for(let z=A;z<r;z++)h.set(z,O,h.get(z,O)+L*h.get(z,A))}v[O]=h.get(A,O)}if(c&&A<N)for(let O=A;O<r;O++)_.set(O,A,h.get(O,A));if(A<E){v[A]=0;for(let O=A+1;O<n;O++)v[A]=_n(v[A],v[O]);if(v[A]!==0){v[A+1]<0&&(v[A]=0-v[A]);for(let O=A+1;O<n;O++)v[O]/=v[A];v[A+1]+=1}if(v[A]=-v[A],A+1<r&&v[A]!==0){for(let O=A+1;O<r;O++)x[O]=0;for(let O=A+1;O<r;O++)for(let L=A+1;L<n;L++)x[O]+=v[L]*h.get(O,L);for(let O=A+1;O<n;O++){let L=-v[O]/v[A+1];for(let z=A+1;z<r;z++)h.set(z,O,h.get(z,O)+L*x[z])}}if(f)for(let O=A+1;O<n;O++)w.set(O,A,v[O])}}let F=Math.min(n,r+1);if(N<n&&(y[N]=h.get(N,N)),r<F&&(y[F-1]=0),E+1<F&&(v[E]=h.get(E,F-1)),v[F-1]=0,c){for(let A=N;A<p;A++){for(let O=0;O<r;O++)_.set(O,A,0);_.set(A,A,1)}for(let A=N-1;A>=0;A--)if(y[A]!==0){for(let O=A+1;O<p;O++){let L=0;for(let z=A;z<r;z++)L+=_.get(z,A)*_.get(z,O);L=-L/_.get(A,A);for(let z=A;z<r;z++)_.set(z,O,_.get(z,O)+L*_.get(z,A))}for(let O=A;O<r;O++)_.set(O,A,-_.get(O,A));_.set(A,A,1+_.get(A,A));for(let O=0;O<A-1;O++)_.set(O,A,0)}else{for(let O=0;O<r;O++)_.set(O,A,0);_.set(A,A,1)}}if(f)for(let A=n-1;A>=0;A--){if(A<E&&v[A]!==0)for(let O=A+1;O<n;O++){let L=0;for(let z=A+1;z<n;z++)L+=w.get(z,A)*w.get(z,O);L=-L/w.get(A+1,A);for(let z=A+1;z<n;z++)w.set(z,O,w.get(z,O)+L*w.get(z,A))}for(let O=0;O<n;O++)w.set(O,A,0);w.set(A,A,1)}let S=F-1,I=Number.EPSILON;for(;F>0;){let A,O;for(A=F-2;A>=-1&&A!==-1;A--){const L=Number.MIN_VALUE+I*Math.abs(y[A]+Math.abs(y[A+1]));if(Math.abs(v[A])<=L||Number.isNaN(v[A])){v[A]=0;break}}if(A===F-2)O=4;else{let L;for(L=F-1;L>=A&&L!==A;L--){let z=(L!==F?Math.abs(v[L]):0)+(L!==A+1?Math.abs(v[L-1]):0);if(Math.abs(y[L])<=I*z){y[L]=0;break}}L===A?O=3:L===F-1?O=1:(O=2,A=L)}switch(A++,O){case 1:{let L=v[F-2];v[F-2]=0;for(let z=F-2;z>=A;z--){let q=_n(y[z],L),j=y[z]/q,P=L/q;if(y[z]=q,z!==A&&(L=-P*v[z-1],v[z-1]=j*v[z-1]),f)for(let Z=0;Z<n;Z++)q=j*w.get(Z,z)+P*w.get(Z,F-1),w.set(Z,F-1,-P*w.get(Z,z)+j*w.get(Z,F-1)),w.set(Z,z,q)}break}case 2:{let L=v[A-1];v[A-1]=0;for(let z=A;z<F;z++){let q=_n(y[z],L),j=y[z]/q,P=L/q;if(y[z]=q,L=-P*v[z],v[z]=j*v[z],c)for(let Z=0;Z<r;Z++)q=j*_.get(Z,z)+P*_.get(Z,A-1),_.set(Z,A-1,-P*_.get(Z,z)+j*_.get(Z,A-1)),_.set(Z,z,q)}break}case 3:{const L=Math.max(Math.abs(y[F-1]),Math.abs(y[F-2]),Math.abs(v[F-2]),Math.abs(y[A]),Math.abs(v[A])),z=y[F-1]/L,q=y[F-2]/L,j=v[F-2]/L,P=y[A]/L,Z=v[A]/L,W=((q+z)*(q-z)+j*j)/2,X=z*j*(z*j);let J=0;(W!==0||X!==0)&&(W<0?J=0-Math.sqrt(W*W+X):J=Math.sqrt(W*W+X),J=X/(W+J));let ct=(P+z)*(P-z)+J,gt=P*Z;for(let st=A;st<F-1;st++){let yt=_n(ct,gt);yt===0&&(yt=Number.MIN_VALUE);let Dt=ct/yt,Nt=gt/yt;if(st!==A&&(v[st-1]=yt),ct=Dt*y[st]+Nt*v[st],v[st]=Dt*v[st]-Nt*y[st],gt=Nt*y[st+1],y[st+1]=Dt*y[st+1],f)for(let xt=0;xt<n;xt++)yt=Dt*w.get(xt,st)+Nt*w.get(xt,st+1),w.set(xt,st+1,-Nt*w.get(xt,st)+Dt*w.get(xt,st+1)),w.set(xt,st,yt);if(yt=_n(ct,gt),yt===0&&(yt=Number.MIN_VALUE),Dt=ct/yt,Nt=gt/yt,y[st]=yt,ct=Dt*v[st]+Nt*y[st+1],y[st+1]=-Nt*v[st]+Dt*y[st+1],gt=Nt*v[st+1],v[st+1]=Dt*v[st+1],c&&st<r-1)for(let xt=0;xt<r;xt++)yt=Dt*_.get(xt,st)+Nt*_.get(xt,st+1),_.set(xt,st+1,-Nt*_.get(xt,st)+Dt*_.get(xt,st+1)),_.set(xt,st,yt)}v[F-2]=ct;break}case 4:{if(y[A]<=0&&(y[A]=y[A]<0?-y[A]:0,f))for(let L=0;L<=S;L++)w.set(L,A,-w.get(L,A));for(;A<S&&!(y[A]>=y[A+1]);){let L=y[A];if(y[A]=y[A+1],y[A+1]=L,f&&A<n-1)for(let z=0;z<n;z++)L=w.get(z,A+1),w.set(z,A+1,w.get(z,A)),w.set(z,A,L);if(c&&A<r-1)for(let z=0;z<r;z++)L=_.get(z,A+1),_.set(z,A+1,_.get(z,A)),_.set(z,A,L);A++}F--;break}}}if(d){let A=w;w=_,_=A}this.m=r,this.n=n,this.s=y,this.U=_,this.V=w}solve(t){let e=t,r=this.threshold,n=this.s.length,s=dt.zeros(n,n);for(let p=0;p<n;p++)Math.abs(this.s[p])<=r?s.set(p,p,0):s.set(p,p,1/this.s[p]);let a=this.U,u=this.rightSingularVectors,c=u.mmul(s),f=u.rows,d=a.rows,h=dt.zeros(f,d);for(let p=0;p<f;p++)for(let g=0;g<d;g++){let y=0;for(let _=0;_<n;_++)y+=c.get(p,_)*a.get(g,_);h.set(p,g,y)}return h.mmul(e)}solveForDiagonal(t){return this.solve(dt.diag(t))}inverse(){let t=this.V,e=this.threshold,r=t.rows,n=t.columns,s=new dt(r,this.s.length);for(let d=0;d<r;d++)for(let h=0;h<n;h++)Math.abs(this.s[h])>e&&s.set(d,h,t.get(d,h)/this.s[h]);let a=this.U,u=a.rows,c=a.columns,f=new dt(r,u);for(let d=0;d<r;d++)for(let h=0;h<u;h++){let p=0;for(let g=0;g<c;g++)p+=s.get(d,g)*a.get(h,g);f.set(d,h,p)}return f}get condition(){return this.s[0]/this.s[Math.min(this.m,this.n)-1]}get norm2(){return this.s[0]}get rank(){let t=Math.max(this.m,this.n)*this.s[0]*Number.EPSILON,e=0,r=this.s;for(let n=0,s=r.length;n<s;n++)r[n]>t&&e++;return e}get diagonal(){return Array.from(this.s)}get threshold(){return Number.EPSILON/2*Math.max(this.m,this.n)*this.s[0]}get leftSingularVectors(){return this.U}get rightSingularVectors(){return this.V}get diagonalMatrix(){return dt.diag(this.s)}}function Yy(i,t=!1){return i=wr.checkMatrix(i),t?new Oi(i).inverse():dh(i,dt.eye(i.rows))}function dh(i,t,e=!1){return i=wr.checkMatrix(i),t=wr.checkMatrix(t),e?new Oi(i).solve(t):i.isSquare()?new po(i).solve(t):new eu(i).solve(t)}function _o(i){if(i=dt.checkMatrix(i),i.isSquare()){if(i.columns===0)return 1;let t,e,r,n;if(i.columns===2)return t=i.get(0,0),e=i.get(0,1),r=i.get(1,0),n=i.get(1,1),t*n-e*r;if(i.columns===3){let s,a,u;return s=new ho(i,[1,2],[1,2]),a=new ho(i,[1,2],[0,2]),u=new ho(i,[1,2],[0,1]),t=i.get(0,0),e=i.get(0,1),r=i.get(0,2),t*_o(s)-e*_o(a)+r*_o(u)}else return new po(i).determinant}else throw Error("determinant can only be calculated for a square matrix")}function Vy(i,t){let e=[];for(let r=0;r<i;r++)r!==t&&e.push(r);return e}function Hy(i,t,e,r=1e-9,n=1e-9){if(i>n)return new Array(t.rows+1).fill(0);{let s=t.addRow(e,[0]);for(let a=0;a<s.rows;a++)Math.abs(s.get(a,0))<r&&s.set(a,0,0);return s.to1DArray()}}function Zy(i,t={}){const{thresholdValue:e=1e-9,thresholdError:r=1e-9}=t;i=dt.checkMatrix(i);let n=i.rows,s=new dt(n,n);for(let a=0;a<n;a++){let u=dt.columnVector(i.getRow(a)),c=i.subMatrixRow(Vy(n,a)).transpose(),d=new Oi(c).solve(u),h=dt.sub(u,c.mmul(d)).abs().max();s.setRow(a,Hy(h,d,a,e,r))}return s}function Ky(i,t=Number.EPSILON){if(i=dt.checkMatrix(i),i.isEmpty())return i.transpose();let e=new Oi(i,{autoTranspose:!0}),r=e.leftSingularVectors,n=e.rightSingularVectors,s=e.diagonal;for(let a=0;a<s.length;a++)Math.abs(s[a])>t?s[a]=1/s[a]:s[a]=0;return n.mmul(dt.diag(s).mmul(r.transpose()))}function Gy(i,t=i,e={}){i=new dt(i);let r=!1;if(typeof t=="object"&&!dt.isMatrix(t)&&!fr.isAnyArray(t)?(e=t,t=i,r=!0):t=new dt(t),i.rows!==t.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:n=!0}=e;n&&(i=i.center("column"),r||(t=t.center("column")));const s=i.transpose().mmul(t);for(let a=0;a<s.rows;a++)for(let u=0;u<s.columns;u++)s.set(a,u,s.get(a,u)*(1/(i.rows-1)));return s}function Jy(i,t=i,e={}){i=new dt(i);let r=!1;if(typeof t=="object"&&!dt.isMatrix(t)&&!fr.isAnyArray(t)?(e=t,t=i,r=!0):t=new dt(t),i.rows!==t.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:n=!0,scale:s=!0}=e;n&&(i.center("column"),r||t.center("column")),s&&(i.scale("column"),r||t.scale("column"));const a=i.standardDeviation("column",{unbiased:!0}),u=r?a:t.standardDeviation("column",{unbiased:!0}),c=i.transpose().mmul(t);for(let f=0;f<c.rows;f++)for(let d=0;d<c.columns;d++)c.set(f,d,c.get(f,d)*(1/(a[f]*u[d]))*(1/(i.rows-1)));return c}let ph=class{constructor(t,e={}){const{assumeSymmetric:r=!1}=e;if(t=wr.checkMatrix(t),!t.isSquare())throw new Error("Matrix is not a square matrix");if(t.isEmpty())throw new Error("Matrix must be non-empty");let n=t.columns,s=new dt(n,n),a=new Float64Array(n),u=new Float64Array(n),c=t,f,d,h=!1;if(r?h=!0:h=t.isSymmetric(),h){for(f=0;f<n;f++)for(d=0;d<n;d++)s.set(f,d,c.get(f,d));Xy(n,u,a,s),Qy(n,u,a,s)}else{let p=new dt(n,n),g=new Float64Array(n);for(d=0;d<n;d++)for(f=0;f<n;f++)p.set(f,d,c.get(f,d));tw(n,p,g,s),ew(n,u,a,s,p)}this.n=n,this.e=u,this.d=a,this.V=s}get realEigenvalues(){return Array.from(this.d)}get imaginaryEigenvalues(){return Array.from(this.e)}get eigenvectorMatrix(){return this.V}get diagonalMatrix(){let t=this.n,e=this.e,r=this.d,n=new dt(t,t),s,a;for(s=0;s<t;s++){for(a=0;a<t;a++)n.set(s,a,0);n.set(s,s,r[s]),e[s]>0?n.set(s,s+1,e[s]):e[s]<0&&n.set(s,s-1,e[s])}return n}};function Xy(i,t,e,r){let n,s,a,u,c,f,d,h;for(c=0;c<i;c++)e[c]=r.get(i-1,c);for(u=i-1;u>0;u--){for(h=0,a=0,f=0;f<u;f++)h=h+Math.abs(e[f]);if(h===0)for(t[u]=e[u-1],c=0;c<u;c++)e[c]=r.get(u-1,c),r.set(u,c,0),r.set(c,u,0);else{for(f=0;f<u;f++)e[f]/=h,a+=e[f]*e[f];for(n=e[u-1],s=Math.sqrt(a),n>0&&(s=-s),t[u]=h*s,a=a-n*s,e[u-1]=n-s,c=0;c<u;c++)t[c]=0;for(c=0;c<u;c++){for(n=e[c],r.set(c,u,n),s=t[c]+r.get(c,c)*n,f=c+1;f<=u-1;f++)s+=r.get(f,c)*e[f],t[f]+=r.get(f,c)*n;t[c]=s}for(n=0,c=0;c<u;c++)t[c]/=a,n+=t[c]*e[c];for(d=n/(a+a),c=0;c<u;c++)t[c]-=d*e[c];for(c=0;c<u;c++){for(n=e[c],s=t[c],f=c;f<=u-1;f++)r.set(f,c,r.get(f,c)-(n*t[f]+s*e[f]));e[c]=r.get(u-1,c),r.set(u,c,0)}}e[u]=a}for(u=0;u<i-1;u++){if(r.set(i-1,u,r.get(u,u)),r.set(u,u,1),a=e[u+1],a!==0){for(f=0;f<=u;f++)e[f]=r.get(f,u+1)/a;for(c=0;c<=u;c++){for(s=0,f=0;f<=u;f++)s+=r.get(f,u+1)*r.get(f,c);for(f=0;f<=u;f++)r.set(f,c,r.get(f,c)-s*e[f])}}for(f=0;f<=u;f++)r.set(f,u+1,0)}for(c=0;c<i;c++)e[c]=r.get(i-1,c),r.set(i-1,c,0);r.set(i-1,i-1,1),t[0]=0}function Qy(i,t,e,r){let n,s,a,u,c,f,d,h,p,g,y,_,w,v,x,b;for(a=1;a<i;a++)t[a-1]=t[a];t[i-1]=0;let N=0,E=0,C=Number.EPSILON;for(f=0;f<i;f++){for(E=Math.max(E,Math.abs(e[f])+Math.abs(t[f])),d=f;d<i&&!(Math.abs(t[d])<=C*E);)d++;if(d>f)do{for(n=e[f],h=(e[f+1]-n)/(2*t[f]),p=_n(h,1),h<0&&(p=-p),e[f]=t[f]/(h+p),e[f+1]=t[f]*(h+p),g=e[f+1],s=n-e[f],a=f+2;a<i;a++)e[a]-=s;for(N=N+s,h=e[d],y=1,_=y,w=y,v=t[f+1],x=0,b=0,a=d-1;a>=f;a--)for(w=_,_=y,b=x,n=y*t[a],s=y*h,p=_n(h,t[a]),t[a+1]=x*p,x=t[a]/p,y=h/p,h=y*e[a]-x*n,e[a+1]=s+x*(y*n+x*e[a]),c=0;c<i;c++)s=r.get(c,a+1),r.set(c,a+1,x*r.get(c,a)+y*s),r.set(c,a,y*r.get(c,a)-x*s);h=-x*b*w*v*t[f]/g,t[f]=x*h,e[f]=y*h}while(Math.abs(t[f])>C*E);e[f]=e[f]+N,t[f]=0}for(a=0;a<i-1;a++){for(c=a,h=e[a],u=a+1;u<i;u++)e[u]<h&&(c=u,h=e[u]);if(c!==a)for(e[c]=e[a],e[a]=h,u=0;u<i;u++)h=r.get(u,a),r.set(u,a,r.get(u,c)),r.set(u,c,h)}}function tw(i,t,e,r){let n=0,s=i-1,a,u,c,f,d,h,p;for(h=n+1;h<=s-1;h++){for(p=0,f=h;f<=s;f++)p=p+Math.abs(t.get(f,h-1));if(p!==0){for(c=0,f=s;f>=h;f--)e[f]=t.get(f,h-1)/p,c+=e[f]*e[f];for(u=Math.sqrt(c),e[h]>0&&(u=-u),c=c-e[h]*u,e[h]=e[h]-u,d=h;d<i;d++){for(a=0,f=s;f>=h;f--)a+=e[f]*t.get(f,d);for(a=a/c,f=h;f<=s;f++)t.set(f,d,t.get(f,d)-a*e[f])}for(f=0;f<=s;f++){for(a=0,d=s;d>=h;d--)a+=e[d]*t.get(f,d);for(a=a/c,d=h;d<=s;d++)t.set(f,d,t.get(f,d)-a*e[d])}e[h]=p*e[h],t.set(h,h-1,p*u)}}for(f=0;f<i;f++)for(d=0;d<i;d++)r.set(f,d,f===d?1:0);for(h=s-1;h>=n+1;h--)if(t.get(h,h-1)!==0){for(f=h+1;f<=s;f++)e[f]=t.get(f,h-1);for(d=h;d<=s;d++){for(u=0,f=h;f<=s;f++)u+=e[f]*r.get(f,d);for(u=u/e[h]/t.get(h,h-1),f=h;f<=s;f++)r.set(f,d,r.get(f,d)+u*e[f])}}}function ew(i,t,e,r,n){let s=i-1,a=0,u=i-1,c=Number.EPSILON,f=0,d=0,h=0,p=0,g=0,y=0,_=0,w=0,v,x,b,N,E,C,F,S,I,A,O,L,z,q,j;for(v=0;v<i;v++)for((v<a||v>u)&&(e[v]=n.get(v,v),t[v]=0),x=Math.max(v-1,0);x<i;x++)d=d+Math.abs(n.get(v,x));for(;s>=a;){for(N=s;N>a&&(y=Math.abs(n.get(N-1,N-1))+Math.abs(n.get(N,N)),y===0&&(y=d),!(Math.abs(n.get(N,N-1))<c*y));)N--;if(N===s)n.set(s,s,n.get(s,s)+f),e[s]=n.get(s,s),t[s]=0,s--,w=0;else if(N===s-1){if(F=n.get(s,s-1)*n.get(s-1,s),h=(n.get(s-1,s-1)-n.get(s,s))/2,p=h*h+F,_=Math.sqrt(Math.abs(p)),n.set(s,s,n.get(s,s)+f),n.set(s-1,s-1,n.get(s-1,s-1)+f),S=n.get(s,s),p>=0){for(_=h>=0?h+_:h-_,e[s-1]=S+_,e[s]=e[s-1],_!==0&&(e[s]=S-F/_),t[s-1]=0,t[s]=0,S=n.get(s,s-1),y=Math.abs(S)+Math.abs(_),h=S/y,p=_/y,g=Math.sqrt(h*h+p*p),h=h/g,p=p/g,x=s-1;x<i;x++)_=n.get(s-1,x),n.set(s-1,x,p*_+h*n.get(s,x)),n.set(s,x,p*n.get(s,x)-h*_);for(v=0;v<=s;v++)_=n.get(v,s-1),n.set(v,s-1,p*_+h*n.get(v,s)),n.set(v,s,p*n.get(v,s)-h*_);for(v=a;v<=u;v++)_=r.get(v,s-1),r.set(v,s-1,p*_+h*r.get(v,s)),r.set(v,s,p*r.get(v,s)-h*_)}else e[s-1]=S+h,e[s]=S+h,t[s-1]=_,t[s]=-_;s=s-2,w=0}else{if(S=n.get(s,s),I=0,F=0,N<s&&(I=n.get(s-1,s-1),F=n.get(s,s-1)*n.get(s-1,s)),w===10){for(f+=S,v=a;v<=s;v++)n.set(v,v,n.get(v,v)-S);y=Math.abs(n.get(s,s-1))+Math.abs(n.get(s-1,s-2)),S=I=.75*y,F=-.4375*y*y}if(w===30&&(y=(I-S)/2,y=y*y+F,y>0)){for(y=Math.sqrt(y),I<S&&(y=-y),y=S-F/((I-S)/2+y),v=a;v<=s;v++)n.set(v,v,n.get(v,v)-y);f+=y,S=I=F=.964}for(w=w+1,E=s-2;E>=N&&(_=n.get(E,E),g=S-_,y=I-_,h=(g*y-F)/n.get(E+1,E)+n.get(E,E+1),p=n.get(E+1,E+1)-_-g-y,g=n.get(E+2,E+1),y=Math.abs(h)+Math.abs(p)+Math.abs(g),h=h/y,p=p/y,g=g/y,!(E===N||Math.abs(n.get(E,E-1))*(Math.abs(p)+Math.abs(g))<c*(Math.abs(h)*(Math.abs(n.get(E-1,E-1))+Math.abs(_)+Math.abs(n.get(E+1,E+1))))));)E--;for(v=E+2;v<=s;v++)n.set(v,v-2,0),v>E+2&&n.set(v,v-3,0);for(b=E;b<=s-1&&(q=b!==s-1,b!==E&&(h=n.get(b,b-1),p=n.get(b+1,b-1),g=q?n.get(b+2,b-1):0,S=Math.abs(h)+Math.abs(p)+Math.abs(g),S!==0&&(h=h/S,p=p/S,g=g/S)),S!==0);b++)if(y=Math.sqrt(h*h+p*p+g*g),h<0&&(y=-y),y!==0){for(b!==E?n.set(b,b-1,-y*S):N!==E&&n.set(b,b-1,-n.get(b,b-1)),h=h+y,S=h/y,I=p/y,_=g/y,p=p/h,g=g/h,x=b;x<i;x++)h=n.get(b,x)+p*n.get(b+1,x),q&&(h=h+g*n.get(b+2,x),n.set(b+2,x,n.get(b+2,x)-h*_)),n.set(b,x,n.get(b,x)-h*S),n.set(b+1,x,n.get(b+1,x)-h*I);for(v=0;v<=Math.min(s,b+3);v++)h=S*n.get(v,b)+I*n.get(v,b+1),q&&(h=h+_*n.get(v,b+2),n.set(v,b+2,n.get(v,b+2)-h*g)),n.set(v,b,n.get(v,b)-h),n.set(v,b+1,n.get(v,b+1)-h*p);for(v=a;v<=u;v++)h=S*r.get(v,b)+I*r.get(v,b+1),q&&(h=h+_*r.get(v,b+2),r.set(v,b+2,r.get(v,b+2)-h*g)),r.set(v,b,r.get(v,b)-h),r.set(v,b+1,r.get(v,b+1)-h*p)}}}if(d!==0){for(s=i-1;s>=0;s--)if(h=e[s],p=t[s],p===0)for(N=s,n.set(s,s,1),v=s-1;v>=0;v--){for(F=n.get(v,v)-h,g=0,x=N;x<=s;x++)g=g+n.get(v,x)*n.get(x,s);if(t[v]<0)_=F,y=g;else if(N=v,t[v]===0?n.set(v,s,F!==0?-g/F:-g/(c*d)):(S=n.get(v,v+1),I=n.get(v+1,v),p=(e[v]-h)*(e[v]-h)+t[v]*t[v],C=(S*y-_*g)/p,n.set(v,s,C),n.set(v+1,s,Math.abs(S)>Math.abs(_)?(-g-F*C)/S:(-y-I*C)/_)),C=Math.abs(n.get(v,s)),c*C*C>1)for(x=v;x<=s;x++)n.set(x,s,n.get(x,s)/C)}else if(p<0)for(N=s-1,Math.abs(n.get(s,s-1))>Math.abs(n.get(s-1,s))?(n.set(s-1,s-1,p/n.get(s,s-1)),n.set(s-1,s,-(n.get(s,s)-h)/n.get(s,s-1))):(j=mo(0,-n.get(s-1,s),n.get(s-1,s-1)-h,p),n.set(s-1,s-1,j[0]),n.set(s-1,s,j[1])),n.set(s,s-1,0),n.set(s,s,1),v=s-2;v>=0;v--){for(A=0,O=0,x=N;x<=s;x++)A=A+n.get(v,x)*n.get(x,s-1),O=O+n.get(v,x)*n.get(x,s);if(F=n.get(v,v)-h,t[v]<0)_=F,g=A,y=O;else if(N=v,t[v]===0?(j=mo(-A,-O,F,p),n.set(v,s-1,j[0]),n.set(v,s,j[1])):(S=n.get(v,v+1),I=n.get(v+1,v),L=(e[v]-h)*(e[v]-h)+t[v]*t[v]-p*p,z=(e[v]-h)*2*p,L===0&&z===0&&(L=c*d*(Math.abs(F)+Math.abs(p)+Math.abs(S)+Math.abs(I)+Math.abs(_))),j=mo(S*g-_*A+p*O,S*y-_*O-p*A,L,z),n.set(v,s-1,j[0]),n.set(v,s,j[1]),Math.abs(S)>Math.abs(_)+Math.abs(p)?(n.set(v+1,s-1,(-A-F*n.get(v,s-1)+p*n.get(v,s))/S),n.set(v+1,s,(-O-F*n.get(v,s)-p*n.get(v,s-1))/S)):(j=mo(-g-I*n.get(v,s-1),-y-I*n.get(v,s),_,p),n.set(v+1,s-1,j[0]),n.set(v+1,s,j[1]))),C=Math.max(Math.abs(n.get(v,s-1)),Math.abs(n.get(v,s))),c*C*C>1)for(x=v;x<=s;x++)n.set(x,s-1,n.get(x,s-1)/C),n.set(x,s,n.get(x,s)/C)}for(v=0;v<i;v++)if(v<a||v>u)for(x=v;x<i;x++)r.set(v,x,n.get(v,x));for(x=i-1;x>=a;x--)for(v=a;v<=u;v++){for(_=0,b=a;b<=Math.min(x,u);b++)_=_+r.get(v,b)*n.get(b,x);r.set(v,x,_)}}}function mo(i,t,e,r){let n,s;return Math.abs(e)>Math.abs(r)?(n=r/e,s=e+n*r,[(i+n*t)/s,(t-n*i)/s]):(n=e/r,s=r+n*e,[(n*i+t)/s,(n*t-i)/s])}class _h{constructor(t){if(t=wr.checkMatrix(t),!t.isSymmetric())throw new Error("Matrix is not symmetric");let e=t,r=e.rows,n=new dt(r,r),s=!0,a,u,c;for(u=0;u<r;u++){let f=0;for(c=0;c<u;c++){let d=0;for(a=0;a<c;a++)d+=n.get(c,a)*n.get(u,a);d=(e.get(u,c)-d)/n.get(c,c),n.set(u,c,d),f=f+d*d}for(f=e.get(u,u)-f,s&=f>0,n.set(u,u,Math.sqrt(Math.max(f,0))),c=u+1;c<r;c++)n.set(u,c,0)}this.L=n,this.positiveDefinite=!!s}isPositiveDefinite(){return this.positiveDefinite}solve(t){t=wr.checkMatrix(t);let e=this.L,r=e.rows;if(t.rows!==r)throw new Error("Matrix dimensions do not match");if(this.isPositiveDefinite()===!1)throw new Error("Matrix is not positive definite");let n=t.columns,s=t.clone(),a,u,c;for(c=0;c<r;c++)for(u=0;u<n;u++){for(a=0;a<c;a++)s.set(c,u,s.get(c,u)-s.get(a,u)*e.get(c,a));s.set(c,u,s.get(c,u)/e.get(c,c))}for(c=r-1;c>=0;c--)for(u=0;u<n;u++){for(a=c+1;a<r;a++)s.set(c,u,s.get(c,u)-s.get(a,u)*e.get(a,c));s.set(c,u,s.get(c,u)/e.get(c,c))}return s}get lowerTriangularMatrix(){return this.L}}class mh{constructor(t,e={}){t=wr.checkMatrix(t);let{Y:r}=e;const{scaleScores:n=!1,maxIterations:s=1e3,terminationCriteria:a=1e-10}=e;let u;if(r){if(fr.isAnyArray(r)&&typeof r[0]=="number"?r=dt.columnVector(r):r=wr.checkMatrix(r),r.rows!==t.rows)throw new Error("Y should have the same number of rows as X");u=r.getColumnVector(0)}else u=t.getColumnVector(0);let c=1,f,d,h,p;for(let g=0;g<s&&c>a;g++)h=t.transpose().mmul(u).div(u.transpose().mmul(u).get(0,0)),h=h.div(h.norm()),f=t.mmul(h).div(h.transpose().mmul(h).get(0,0)),g>0&&(c=f.clone().sub(p).pow(2).sum()),p=f.clone(),r?(d=r.transpose().mmul(f).div(f.transpose().mmul(f).get(0,0)),d=d.div(d.norm()),u=r.mmul(d).div(d.transpose().mmul(d).get(0,0))):u=f;if(r){let g=t.transpose().mmul(f).div(f.transpose().mmul(f).get(0,0));g=g.div(g.norm());let y=t.clone().sub(f.clone().mmul(g.transpose())),_=u.transpose().mmul(f).div(f.transpose().mmul(f).get(0,0)),w=r.clone().sub(f.clone().mulS(_.get(0,0)).mmul(d.transpose()));this.t=f,this.p=g.transpose(),this.w=h.transpose(),this.q=d,this.u=u,this.s=f.transpose().mmul(f),this.xResidual=y,this.yResidual=w,this.betas=_}else this.w=h.transpose(),this.s=f.transpose().mmul(f).sqrt(),n?this.t=f.clone().div(this.s.get(0,0)):this.t=f,this.xResidual=t.sub(f.mmul(h.transpose()))}}zt.AbstractMatrix=$t,zt.CHO=_h,zt.CholeskyDecomposition=_h,zt.DistanceMatrix=fo,zt.EVD=ph;var rw=zt.EigenvalueDecomposition=ph;zt.LU=po,zt.LuDecomposition=po;var gh=zt.Matrix=dt;zt.MatrixColumnSelectionView=Ry,zt.MatrixColumnView=Ly,zt.MatrixFlipColumnView=Py,zt.MatrixFlipRowView=ky,zt.MatrixRowSelectionView=qy,zt.MatrixRowView=zy,zt.MatrixSelectionView=ho,zt.MatrixSubView=Uy,zt.MatrixTransposeView=jy,zt.NIPALS=mh,zt.Nipals=mh,zt.QR=eu,zt.QrDecomposition=eu,zt.SVD=Oi,zt.SingularValueDecomposition=Oi,zt.SymmetricMatrix=ri,zt.WrapperMatrix1D=hh,zt.WrapperMatrix2D=wr,zt.correlation=Jy,zt.covariance=Gy;var vh=zt.default=dt;zt.determinant=_o,zt.inverse=Yy,zt.linearDependencies=Zy,zt.pseudoInverse=Ky,zt.solve=dh,zt.wrap=Wy;const yh=rw,wh=gh;vh.Matrix&&vh.Matrix;class nw{constructor(t){$(this,"_errorListener");this._errorListener=t}new({rows:t,columns:e,initial_value:r}={}){return new ru(t,e,r,this._errorListener)}avg({id:t}){return t==null?void 0:t.avg()}col({id:t,column:e}){return t==null?void 0:t.col({column:e})}det({id:t}){return t==null?void 0:t.det()}get({id:t,row:e,column:r}){return t==null?void 0:t.get({row:e,column:r})}inv({id:t}){return t==null?void 0:t.inv()}max({id:t}){return t==null?void 0:t.max()}min({id:t}){return t==null?void 0:t.min()}pow({id:t,power:e}){return t==null?void 0:t.pow({power:e})}row({id:t,row:e}){return t==null?void 0:t.row({row:e})}set({id:t,row:e,column:r,value:n}){t==null||t.set({row:e,column:r,value:n})}sum({id1:t,id2:e}){return t==null?void 0:t.sum({id2:e})}copy({id:t}){return t==null?void 0:t.copy()}diff({id1:t,id2:e}){return t==null?void 0:t.diff({id2:e})}rows({id:t}){return t==null?void 0:t.rows()}columns({id:t}){return t==null?void 0:t.columns()}fill({id:t,value:e,from_row:r,to_row:n,from_column:s,to_column:a}){t==null||t.fill({value:e,from_row:r,to_row:n,from_column:s,to_column:a})}kron({id1:t,id2:e}){return t==null?void 0:t.kron({id2:e})}mode({id:t}){return t==null?void 0:t.mode()}mult({id1:t,id2:e}){return t==null?void 0:t.mult({id2:e})}pinv({id:t}){return t==null?void 0:t.pinv()}rank({id:t}){return t==null?void 0:t.rank()}sort({id:t,column:e,order:r}){t==null||t.sort({column:e,order:r})}trace({id:t}){return t==null?void 0:t.trace()}concat({id1:t,id2:e}){return t==null?void 0:t.concat({id2:e})}median({id:t}){return t==null?void 0:t.median()}add_col({id:t,column:e,array_id:r}){t==null||t.add_col({column:e,array_id:r})}add_row({id:t,row:e,array_id:r}){t==null||t.add_row({row:e,array_id:r})}is_zero({id:t}){return t==null?void 0:t.is_zero()}reshape({id:t,rows:e,columns:r},n){return t==null?void 0:t.reshape({rows:e,columns:r},n)}reverse({id:t}){t==null||t.reverse()}is_binary({id:t}){return t==null?void 0:t.is_binary()}is_square({id:t}){return t==null?void 0:t.is_square()}submatrix({id:t,from_row:e,to_row:r,from_column:n,to_column:s}){return t==null?void 0:t.submatrix({from_row:e,to_row:r,from_column:n,to_column:s})}swap_rows({id:t,row1:e,row2:r}){t==null||t.swap_rows({row1:e,row2:r})}transpose({id:t}){return t==null?void 0:t.transpose()}remove_col({id:t,column:e}){return t==null?void 0:t.remove_col({column:e})}remove_row({id:t,row:e}){return t==null?void 0:t.remove_row({row:e})}eigenvalues({id:t}){return t==null?void 0:t.eigenvalues()}is_diagonal({id:t}){return t==null?void 0:t.is_diagonal()}is_identity({id:t}){return t==null?void 0:t.is_identity()}eigenvectors({id:t}){return t==null?void 0:t.eigenvectors()}is_symmetric({id:t}){return t==null?void 0:t.is_symmetric()}swap_columns({id:t,column1:e,column2:r}){t==null||t.swap_columns({column1:e,column2:r})}is_stochastic({id:t}){return t==null?void 0:t.is_stochastic()}is_triangular({id:t}){return t==null?void 0:t.is_triangular()}elements_count({id:t}){return t==null?void 0:t.elements_count()}is_antidiagonal({id:t}){return t==null?void 0:t.is_antidiagonal()}is_antisymmetric({id:t}){return t==null?void 0:t.is_antisymmetric()}}class ru{constructor(t=0,e=0,r=void 0,n){$(this,"_matrixInstance");$(this,"_errorListener");this._matrixInstance=this._createMatrix(t,e,r),this._errorListener=n}get _matrixArray(){return this._matrixInstance.map(t=>[...t._value])}get _value(){return this._matrixInstance}set _value(t){this._matrixInstance=t}get isMatrix(){return!0}_createMatrix(t,e,r){return Array.from(new Array(t),()=>new te(e,r,this._errorListener))}avg(){let t=0,e=0;for(const n of this._matrixInstance)for(const s of n._value)t+=_t(s)?0:s,e+=1;return t/e}col({column:t}){const e=[],r=new te(0,void 0,this._errorListener);if(_t(t))return r;for(const n of this._matrixInstance)e.push(n._value[t]);return r._value=e,r}det(){return sh(this._matrixArray)}get({row:t,column:e}){var r,n;if(!(_t(t)||_t(e)))return(n=(r=this._matrixInstance[t])==null?void 0:r._value)==null?void 0:n[e]}inv(){const t=ao(this._matrixArray);return this._newMatrix(t)}max(){return X1(this._matrixArray)}min(){return Ja(this._matrixArray)}pow({power:t}){const e=_t(t)?this._matrixArray:ty(this._matrixArray,t);return this._newMatrix(e)}row({row:t}){return _t(t)?new te(0,void 0,this._errorListener):this._matrixInstance[t]}set({row:t,column:e,value:r}){_t(t)||_t(e)||this._matrixInstance[t].set({index:e,value:r})}sum({id2:t}){const e=os(this._matrixArray,typeof t=="number"?t:t._matrixArray);return this._newMatrix(e)}copy(){return this._newMatrix(this._matrixArray)}diff({id2:t}){const e=V1(this._matrixArray,typeof t=="number"?t:t._matrixArray);return this._newMatrix(e)}rows(){return this._matrixInstance.length}columns(){return this._matrixArray.length&&this._matrixArray[0].length}fill({value:t,from_row:e,to_row:r,from_column:n,to_column:s}={}){_t(e)&&(e=0),_t(r)&&(r=this.rows()),_t(n)&&(n=0),_t(s)&&(s=this.columns());for(const[a,u]of this._matrixInstance.entries())for(const[c]of u._value.entries())a<r&&a>=e&&c>=n&&c<s&&u.set({index:c,value:t})}kron({id2:t}){const e=W1(this._matrixArray,t._matrixArray);return this._newMatrix(e)}mode(){return Ja(Xf(this._matrixArray))}mult({id2:t}){const e=typeof t=="number"?t:t._matrixArray?t._matrixArray:t._value,r=Mi(this._matrixArray,e);return this._newMatrix(r)}pinv(){const t=Q1(this._matrixArray);return this._newMatrix(t)}rank(){return this._matrixRank(this._matrixArray)}sort({column:t,order:e=Gn.ascending}={}){_t(t)&&(t=0),this._matrixInstance.sort((r,n)=>{const s=r._value[t],a=n._value[t];return e!==Gn.descending?s-a:a-s})}trace(){return J1(this._matrixArray)}concat({id2:t}){for(const e of t._value)this._matrixInstance.push(e);return this}median(){return oh(this._matrixArray)}add_col({column:t,array_id:e}={}){_t(t)&&(t=this.columns());for(const[r,n]of this._matrixInstance.entries())n.insert({index:t,value:e?e._value[r]:void 0})}add_row({row:t,array_id:e}){_t(t)&&(t=this.rows()),this._matrixInstance.splice(t,0,e||new te(this.columns(),void 0,this._errorListener))}is_zero(){return this._matrixArray.every(t=>t.every(e=>e===0))}reshape({rows:t=0,columns:e=0},r){if(t*e!==this.columns()*this.rows()){this._errorListener.addError(re.matrixRehapeErr,r,Lt.Error);return}const n=z1(this._matrixArray,[t,e]);this._matrixInstance=n.map(s=>{const a=new te(0,void 0,this._errorListener);return a._value=[...s],a})}reverse(){this._matrixInstance.reverse();for(const t of this._matrixInstance)t.reverse()}is_binary(){return this._matrixArray.every(t=>t.every(e=>e===0||e===1))}is_square(){return this.rows()===this.columns()}submatrix({from_row:t,to_row:e,from_column:r,to_column:n}={}){_t(t)&&(t=0),_t(e)&&(e=this.rows()),_t(r)&&(r=0),_t(n)&&(n=this.columns());const s=this._matrixArray.splice(t,e),a=[];for(const u of s)a.push(u.splice(r,n));return this._newMatrix(a)}swap_rows({row1:t,row2:e}){if(_t(t)||_t(e))return;const r=this._matrixInstance[t],n=this._matrixInstance[e];this._matrixInstance[t]=n,this._matrixInstance[e]=r}transpose(){const t=th(this._matrixArray);return this._newMatrix(t)}remove_col({column:t}={}){_t(t)&&(t=this.columns());const e=[];for(const n of this._matrixInstance){const s=n._value.splice(t,1);e.push(s[0])}const r=new te(0,void 0,this._errorListener);return r._value=e,r}remove_row({row:t}={}){return _t(t)&&(t=this.rows()),this._matrixInstance.splice(t,1)[0]}eigenvalues(){const t=new yh(new wh(this._matrixArray)),e=new te(0,void 0,this._errorListener);return e._value=t.realEigenvalues,e}is_diagonal(){const t=this.rows(),e=this.columns();if(t!==e)return!1;const r=this._matrixArray;for(let n=0;n<t;n++)for(let s=0;s<e;s++)if(n!==s&&r[n][s]!==0)return!1;return!0}is_identity(){const t=this.rows(),e=this.columns();if(t!==e)return!1;const r=this._matrixArray;for(let n=0;n<t;n++)for(let s=0;s<e;s++)if(n!==s&&r[n][s]!==0||n===s&&r[n][s]!==1)return!1;return!0}eigenvectors(){const t=new yh(new wh(this._matrixArray));return this._newMatrix(t.eigenvectorMatrix.to2DArray())}is_symmetric(){const t=this.rows(),e=this.columns();if(t!==e)return!1;const r=this._matrixArray;for(let n=0;n<t;n++)for(let s=n+1;s<e;s++)if(r[n][s]!==r[s][n])return!1;return!0}swap_columns({column1:t,column2:e}){if(!(_t(t)||_t(e)))for(const r of this._matrixInstance){const n=r._value[t],s=r._value[e];r.set({index:t,value:s}),r.set({index:e,value:n})}}is_stochastic(){const t=this._matrixArray;for(let e=0;e<t.length;e++){let r=0;for(let n=0;n<t[e].length;n++){if(t[e][n]<0)return!1;r+=t[e][n]}if(Math.abs(r-1)>Number.EPSILON)return!1}return!0}is_triangular(){const t=this.rows(),e=this.columns();return t!==e?!1:this._isUpperTriangular(t)||this._isLowerTriangular(t)}elements_count(){return q1(this._matrixArray)}is_antidiagonal(){const t=this.rows(),e=this.columns();if(t!==e)return!1;const r=this._matrixArray;for(let n=0;n<t;n++)for(let s=0;s<t;s++)if(n+s!==t-1&&r[n][s]!==0)return!1;return!0}is_antisymmetric(){const t=this.rows(),e=this.columns();if(t!==e)return!1;const r=this._matrixArray;for(let n=0;n<t;n++)for(let s=0;s<t;s++)if(n!==s&&r[n][s]!==-r[s][n])return!1;return!0}_isUpperTriangular(t){const e=this._matrixArray;for(let r=1;r<t;r++)for(let n=0;n<r;n++)if(e[r][n]!==0)return!1;return!0}_isLowerTriangular(t){const e=this._matrixArray;for(let r=0;r<t-1;r++)for(let n=r+1;n<t;n++)if(e[r][n]!==0)return!1;return!0}_newMatrix(t){const e=new ru(0,0,void 0,this._errorListener);return e._value=t.map(r=>{const n=new te(0,void 0,this._errorListener);return n._value=[...r],n}),e}_matrixRank(t){let e=0;const r=t.length,n=t[0].length,s=[...t].map(a=>[...a]);for(let a=0;a<r&&!(a>=n);a++){let u=a;for(;u<r&&s[u][a]===0;)u++;if(u===r)continue;if(u!==a){const f=s[u];s[u]=s[a],s[a]=f}const c=s[a][a];for(let f=0;f<n;f++)s[a][f]/=c;for(let f=a+1;f<r;f++){const d=s[f][a];s[f]=s[f].map((h,p)=>h-d*s[a][p]),s[f][a]=0}}for(let a=0;a<r;a++)s[a].some(u=>Number(u.toFixed(8))!==0)&&e++;return e}}class iw{constructor(t){$(this,"_variables");$(this,"_cacheData");this._variables=t,this._cacheData={}}change({timeframe:t},e){if(!t)return!0;const{time:r,__period:n}=this._variables,s=gr(t,r),a=gr(n,r);if(s<a)return!0;const u=`change_${e}`,c=this._cacheData[u],f=this._variables.time;if(c){if(c.offset){if(c.currentTime+c.offset<=f)return this._cacheData[u]={currentTime:f,offset:0},!0}else if(c.currentTime+s*1e3<=f)return this._cacheData[u]={currentTime:f,offset:0},!0}else{const d=this._calcTimeOffset(f,t);return this._cacheData[u]={currentTime:f,offset:d},!1}return!1}in_seconds({timeframe:t}={}){const{time:e,__period:r}=this._variables;return gr(t||r,e)}from_seconds({seconds:t=0}){const e=t*1e3,r=jt.duration(e);if(r.years())return"12M";const s=r.asMonths();if(so(s))return`${s}M`;const a=r.asWeeks();if(so(a))return`${a}M`;const u=r.asDays();if(u>=1)return`${Math.ceil(u)}D`;const c=r.asMinutes();if(c>=1)return`${Math.ceil(c)}`;const f=r.asSeconds();return f<=1?"1S":f<=5?"5S":f<=10?"10S":f<=15?"15S":f<=30?"30S":"1"}_calcTimeOffset(t,e){let r=0;if(e.includes("W")){const u=jt(t).day();e="1D",u!==1&&(r=(8-u)*60*60*24*1e3)}else if(e.includes("M")){const u=jt(t).date();e="1D";const c=jt(t).daysInMonth();u!==1&&(r=(c-u+1)*60*60*24*1e3)}const n=this._variables.getTimeTradingday(t,e),s=gr(e,t)*1e3,a=t-n-Math.floor((t-n)/s)*s;return r?r-a:a}}var Dh={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};return function(r,n,s){var a=n.prototype,u=a.format;s.en.formats=e,a.format=function(c){c===void 0&&(c="YYYY-MM-DDTHH:mm:ssZ");var f=this.$locale().formats,d=function(h,p){return h.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(g,y,_){var w=_&&_.toUpperCase();return y||p[_]||e[_]||p[w].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(v,x,b){return x||b.slice(1)})})}(c,f===void 0?{}:f);return u.call(this,d)}}})})(Dh);var sw=Dh.exports,ow=Kt(sw);jt.extend(ow);class aw{constructor(t,e){$(this,"_errorListener");$(this,"_intlNumberFormatter");$(this,"_precision");this._errorListener=t,this._precision=e,this._intlNumberFormatter=new Intl.NumberFormat("en",{notation:"compact"})}pos({source:t="",str:e=""}){return t==null?void 0:t.indexOf(e)}trim({source:t=""}){return t==null?void 0:t.trim()}lower({source:t=""}){return t==null?void 0:t.toLocaleLowerCase()}match({source:t="",regex:e=""}){const r=t==null?void 0:t.match(new RegExp(e));return r?r[0]:""}split({string:t="",separator:e=""}){const r=t==null?void 0:t.split(e),n=new te;return n._value=r||[],n}upper({source:t=""}){return t==null?void 0:t.toLocaleUpperCase()}format({formatString:t=""},e){return this._strFormat(t,e)}length({string:t=""}){return t==null?void 0:t.length}repeat({source:t="",repeat:e,separator:r=""},n){if(_t(e)){this._errorListener.addError(re.arrLenErr,n,Lt.Error);return}return Array.from(new Array(e),()=>t).join(r)}replace({source:t="",target:e="",replacement:r="",occurrence:n}){_t(n)&&(n=0);let s=-1;for(let a=0;a<n+1&&(s=t.indexOf(e,s+1),s!==-1);a++);return s!==-1?t.substring(0,s)+r+t.substring(s+e.length):t}contains({source:t="",str:e=""}){return t==null?void 0:t.includes(e)}endswith({source:t="",str:e=""}){return t==null?void 0:t.endsWith(e)}tonumber({string:t=""}){if(/[^\d.]/.test(t))return;const e=parseFloat(t);return isNaN(e)?void 0:e}tostring({value:t,format:e}){if(t===void 0)return"NaN";if(typeof t=="object"){if(t.isArray)return this._arrToStr(t._value,e);if(t.isMatrix){const r=[];for(const n of t._matrixArray)r.push(this._arrToStr(n,e));return r.join(`
62
+ `)}}if(typeof t=="string")return t;if(typeof t=="boolean")return String(t);if(typeof t=="number")return String(this._toStringFormat(t,e==null?void 0:e.replace(/0/g,"#")))}_arrToStr(t,e){return`[${t.map(n=>typeof n=="number"?this._toStringFormat(n,e):n).toString()}]`}substring({source:t="",begin_pos:e=0,end_pos:r}){return _t(e)&&(e=0),_t(r)&&(r=void 0),t==null?void 0:t.substring(e,r)}startswith({source:t="",str:e=""}){return t==null?void 0:t.startsWith(e)}format_time({time:t,format:e="yyyy-MM-dd'T'HH:mm:ssZ",timezone:r}){return _t(t)&&(t=0),mr(t,r).format(e)}replace_all({source:t="",target:e="",replacement:r=""}){return t==null?void 0:t.replace(new RegExp(e,"g"),r)}_toStringFormat(t,e){if(!e)return Number(t.toFixed(this._precision));switch(e){case Gt.mintick:return t.toFixed(this._precision);case Gt.percent:return`${t}%`;case Gt.volume:return this._intlNumberFormatter.format(Math.round(t));default:return this._formatOthers(t,e)}}_formatOthers(t,e){var u;let[r,n]=e.split(".");e.split("%").length===2&&(t=t*100);let[s,a=""]=String(t).split(".");if(r.includes("#")){if(r.includes(",")){const c=r.split(","),f=((u=c[c.length-1])==null?void 0:u.replace(/[^#]/g,"").length)||0;f&&(s=s.replace(new RegExp(`\\B(?=(\\d{${f}})+(?!\\d))`,"g"),",")),r=c.join("")}s=r.replace(/#/,s).replace(/#/g,"")}else s=`${r}${s}`;if(n&&n.includes("#")){const c=n.split("#").length-1,f=+`${s}.${a}`;if(!isNaN(f))return`${f.toFixed(c)}${n.replace(/#/g,"")}`;a=`${a.substring(0,c)}${n.replace(/#/g,"")}`}else a=n||"";return a?`${s}.${a}`:s}_formatNumber(t,e){if(!e)return Number(t.toFixed(this._precision));switch(e){case"integer":return String(Math.round(t));case"currency":return`$${t}`;case"percent":return`${t*100}%`;default:return this._formatOthers(t,e)}}strformat({formatString:t=""},e,r){return this._strFormat(t,e,r)}_strFormat(t,e,r){return t.replace(/{[^{}]+}/g,n=>{if(!n)return n;const s=n.replace(/[{}]/g,"").split(","),a=Number(s[0]);if(isNaN(a)||e.length<=a)return n;const u=e[a];if(s.length===1)return typeof u=="number"&&r?parseFloat(u.toFixed(r)):u;if(s.length===2){const c=s[1].trim();return c==="number"?r?parseFloat(u.toFixed(r)):u:c==="date"?jt(u).format("LL"):n}else{const c=s[1].trim(),f=s[2].trim();if(c==="number")return this._formatNumber(u,f);if(c==="date"){let d="YYYY-MM-DD";switch(f){case"long":d="LL";break;case"short":d="L";break;default:f&&(d=f)}return jt(u).format(d)}return n}})}}class uw{constructor(t){$(this,"_errorListener");this._errorListener=t}new(){return new nu(this._errorListener)}copy({id:t}){return t==null?void 0:t.copy()}get({id:t,key:e}){return t==null?void 0:t.get({key:e})}put({id:t,key:e,value:r}){return t==null?void 0:t.put({key:e,value:r})}keys({id:t}){return t==null?void 0:t.keys()}size({id:t}){return t==null?void 0:t.size()}clear({id:t}){t==null||t.clear()}remove({id:t,key:e}){return t==null?void 0:t.remove({key:e})}values({id:t}){return t==null?void 0:t.values()}put_all({id:t,id2:e}){t==null||t.put_all({id2:e})}contains({id:t,key:e}){return t==null?void 0:t.contains({key:e})}}class nu{constructor(t){$(this,"_errorListener");$(this,"_mapInstance");this._errorListener=t,this._mapInstance=new Map}get isMap(){return!0}_copyMap(t){const e=new nu(this._errorListener);return e._mapInstance=new Map(t.entries()),e}copy(){return this._copyMap(this._mapInstance)}get({key:t}){return this._mapInstance.get(t)}put({key:t,value:e}){return this._mapInstance.set(t,e)}keys(){const t=new te(0,void 0,this._errorListener);return t._value=[...this._mapInstance.keys()],t}size(){return this._mapInstance.size}clear(){this._mapInstance.clear()}remove({key:t}){const e=this._mapInstance.get(t);return this._mapInstance.delete(t),e||void 0}values(){const t=new te(0,void 0,this._errorListener);return t._value=[...this._mapInstance.values()],t}put_all({id2:t}){this._mapInstance=new Map([...this._mapInstance,...t._mapInstance])}contains({key:t}){return this._mapInstance.has(t)}}class lw{constructor(t){$(this,"_variables");this._variables=t}new({price:t,time:e,index:r}){return new Bi(t,r,e)}now({price:t}){const{time:e,bar_index:r}=this._variables;return new Bi(t,r,e)}copy({id:t}){return t==null?void 0:t.copy()}from_index({price:t,index:e}){return new Bi(t,e)}from_time({price:t,time:e}){return new Bi(t,void 0,e)}}class Bi{constructor(t,e,r){$(this,"_index");$(this,"_price");$(this,"_time");this._index=e,this._price=t,this._time=r}get index(){return this._index}set index(t){this._index=t}get price(){return this._price}set price(t){this._price=t}get time(){return this._time}set time(t){this._time=t}copy(){return new Bi(this._price,this._index,this._time)}}class cw{constructor(t,e){$(this,"_variables");$(this,"_errorListener");$(this,"_defaultLabel",{text:"",xloc:De.bar_index,yloc:Vr.price,size:ir.normal,style:ve.styleLabelDown,textalign:Wt.alignCenter});this._variables=t,this._errorListener=e}new(t,e){const{time:r,high:n,low:s,bar_index:a}=this._variables,u=`label_${e}_${a}`;ge(t,["color","textcolor"]);const c={...this._defaultLabel,...t,id:u,time:r,high:n,low:s,bar_index:a};t.point&&(c.x=c.xloc===De.bar_index?t.point.index:t.point.time,c.y=t.point.price),c.yloc===Vr.abovebar?c.y=n:c.yloc===Vr.belowbar&&(c.y=s),this._verfiyArgs(t,e);const f=new go(u,this._variables,this._errorListener);return e.startsWith("export")||this._variables.label.add(u,c,f),f}_verfiyArgs(t,e){const{xloc:r,yloc:n,style:s,size:a,textalign:u,text_font_family:c}=t,f="label.new";this._paramVerfiy(s,e,f,Object.values(ve),"style"),this._paramVerfiy(r,e,f,Object.values(De),"xloc"),this._paramVerfiy(n,e,f,Object.values(Vr),"yloc"),this._paramVerfiy(a,e,f,Object.values(ir),"size"),this._paramVerfiy(u,e,f,[Wt.alignLeft,Wt.alignCenter,Wt.alignRight],"textalign"),this._paramVerfiy(c,e,f,Object.values(Jn),"text_font_family")}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}label(t){return t.x}copy({id:t},e){return t==null?void 0:t.copy(e)}get_x({id:t},e){return t==null?void 0:t.get_x(e)}get_y({id:t},e){return t==null?void 0:t.get_y(e)}set_x({id:t,...e},r){t==null||t.set_x(e,r)}set_y({id:t,...e},r){t==null||t.set_y(e,r)}delete({id:t}){t==null||t.delete()}get_text({id:t},e){return t==null?void 0:t.get_text(e)}set_xy({id:t,...e},r){t==null||t.set_xy(e,r)}set_size({id:t,...e},r){t==null||t.set_size(e,r)}set_xloc({id:t,...e},r){t==null||t.set_xloc(e,r)}set_yloc({id:t,...e},r){t==null||t.set_yloc(e,r)}set_style({id:t,...e},r){t==null||t.set_style(e,r)}set_color({id:t,...e},r){t==null||t.set_color(e,r)}set_tooltip({id:t,...e},r){t==null||t.set_tooltip(e,r)}set_point({id:t,...e},r){t==null||t.set_point(e,r)}set_text({id:t,...e},r){t==null||t.set_text(e,r)}set_textcolor({id:t,...e},r){t==null||t.set_textcolor(e,r)}set_textalign({id:t,...e},r){t==null||t.set_textalign(e,r)}set_text_font_family({id:t,...e},r){t==null||t.set_text_font_family(e,r)}}class go{constructor(t,e,r){$(this,"_id");$(this,"_variables");$(this,"_errorListener");$(this,"_suffix","");this._id=t,this._variables=e,this._errorListener=r}get type(){return Fe.LABEL}get id(){return this._id}updateId(){const{bar_index:t}=this._variables;if(!this._suffix)this._suffix=`_${t}`,this._id=`${this._id}${this._suffix}`;else{const e=this._id.split("_");e.pop(),this._id=`${e.join("_")}_${t}`}return this._id}get data(){return this._variables.label.get(this._id)}copy(t){const{bar_index:e}=this._variables,r=`label_${t}_${e}`,n=this._getLabel(t),s=new go(r,this._variables,this._errorListener);if(n){const a={...n,id:r,bar_index:e};this._variables.label.add(r,a,s)}return s}get_x(t){var e;return(e=this._getLabel(t))==null?void 0:e.x}get_y(t){var e;return(e=this._getLabel(t))==null?void 0:e.y}set_x({x:t},e){const r=this._getLabel(e);r&&(r.x=t)}set_y({y:t},e){const r=this._getLabel(e);r&&(r.y=t)}delete(){this._variables.label.delete(this._id,this._variables._isRealTimeBar?void 0:this._variables.bar_index)}set_xy({x:t,y:e},r){const n=this._getLabel(r);n&&(n.x=t,n.y=e)}get_text(t){var e;return(e=this._getLabel(t))==null?void 0:e.text}set_size({size:t},e){const r=this._getLabel(e);r&&(r.size=t),this._paramVerfiy(t,e,"label.set_size",Object.values(ir),"size")}set_text({text:t},e){const r=this._getLabel(e);r&&(r.text=t)}set_xloc({x:t,xloc:e},r){const n=this._getLabel(r);n&&(n.x=t,n.xloc=e,this._paramVerfiy(e,r,"label.set_xloc",Object.values(De),"xloc"))}set_yloc({yloc:t},e){const r=this._getLabel(e),{high:n,low:s}=this._variables;r&&(r.yloc=t,t===Vr.abovebar?r.y=n:t===Vr.belowbar&&(r.y=s),this._paramVerfiy(t,e,"label.set_yloc",Object.values(Vr),"yloc"))}set_color(t,e){const r=this._getLabel(e);ge(t,["color"]),r&&(r.color=t.color)}set_point({point:t},e){const r=this._getLabel(e);r&&(r.x=r.xloc===De.bar_index?t==null?void 0:t.index:t==null?void 0:t.time,r.y=t==null?void 0:t.price)}set_style({style:t},e){const r=this._getLabel(e);r&&(r.style=t),this._paramVerfiy(t,e,"label.set_style",Object.values(ve),"style")}set_tooltip({tooltip:t},e){const r=this._getLabel(e);r&&(r.tooltip=t)}set_textalign({textalign:t},e){const r=this._getLabel(e);r&&(r.textalign=t),this._paramVerfiy(t,e,"label.set_textalign",[Wt.alignLeft,Wt.alignCenter,Wt.alignRight],"textalign")}set_textcolor(t,e){const r=this._getLabel(e);ge(t,["textcolor"]),r&&(r.textcolor=t.textcolor)}set_text_font_family({text_font_family:t},e){const r=this._getLabel(e);r&&(r.text_font_family=t),this._paramVerfiy(t,e,"label.set_text_font_family",Object.values(Jn),"text_font_family")}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}_getLabel(t){const e=this._variables.label.get(this._id);return e||console.log(`错误${t}: label 不存在`),e}}const fw={freq_all:Wr.freqAll,freq_once_per_bar:Wr.freqOncePerBar,freq_once_per_bar_close:Wr.freqOncePerBarClose},hw={gaps_off:ln.gapsOff,gaps_on:ln.gapsOn,lookahead_off:ln.lookaheadOff,lookahead_on:ln.lookaheadOn},Ti={aqua:"#00BCD4",black:"#363A45",blue:"#2196F3",fuchsia:"#E040FB",gray:"#787B86",green:"#4CAF50",lime:"#00E676",maroon:"#880E4F",navy:"#311B92",olive:"#808000",orange:"#FF9800",purple:"#9C27B0",red:"#FF5252",silver:"#B2B5BE",teal:"#00897B",white:"#FFFFFF",yellow:"#FFEB3B"},bh={AUD:"AUD",BTC:"BTC",CAD:"CAD",CHF:"CHF",ETH:"ETH",EUR:"EUR",GBP:"GBP",HKD:"HKD",INR:"INR",JPY:"JPY",KRW:"KRW",MYR:"MYR",NOK:"NOK",NONE:"NONE",NZD:"NZD",RUB:"RUB",SEK:"SEK",SGD:"SGD",TRY:"TRY",USD:"USD",USDT:"USDT",ZAR:"ZAR"},dw={friday:6,monday:2,saturday:7,sunday:1,thursday:5,tuesday:3,wednesday:4},xh={all:[Ze.dataWindow,Ze.pane,Ze.priceScale,Ze.statusLine],data_window:[Ze.dataWindow],none:[],pane:[Ze.pane],price_scale:[Ze.priceScale],status_line:[Ze.statusLine]},pw={both:Yr.both,left:Yr.left,none:Yr.none,right:Yr.right},_w={inherit:Gt.inherit,mintick:Gt.mintick,percent:Gt.percent,price:Gt.price,volume:Gt.volume},mw={style_solid:Ss.styleSolid,style_dashed:Ss.styleDashed,style_dotted:Ss.styleDotted},gw={style_arrowdown:ve.styleArrowdown,style_arrowup:ve.styleArrowup,style_circle:ve.styleCircle,style_cross:ve.styleCross,style_diamond:ve.styleDiamond,style_flag:ve.styleFlag,style_label_center:ve.styleLabelCenter,style_label_down:ve.styleLabelDown,style_label_left:ve.styleLabelLeft,style_label_lower_left:ve.styleLabelLowerLeft,style_label_lower_right:ve.styleLabelLowerRight,style_label_right:ve.styleLabelRight,style_label_up:ve.styleLabelUp,style_label_upper_left:ve.styleLabelUpperLeft,style_label_upper_right:ve.styleLabelUpperRight,style_none:ve.styleNone,style_square:ve.styleSquare,style_text_outline:ve.styleTextOutline,style_triangledown:ve.styleTriangledown,style_triangleup:ve.styleTriangleup,style_xcross:ve.styleXcross},vw={style_arrow_both:Re.styleArrowBoth,style_arrow_left:Re.styleArrowLeft,style_arrow_right:Re.styleArrowRight,style_dashed:Re.styleDashed,style_dotted:Re.styleDotted,style_solid:Re.styleSolid},yw={abovebar:cn.abovebar,absolute:cn.absolute,belowbar:cn.belowbar,bottom:cn.bottom,top:cn.top},ww={e:2.718281828459045,phi:1.618033988749895,pi:3.141592653589793,rphi:.6180339887498948},Dw={style_area:Or.styleArea,style_areabr:Or.styleAreabr,style_circles:Or.styleCircles,style_columns:Or.styleColumns,style_cross:Or.styleCross,style_histogram:Or.styleHistogram,style_line:Or.styleLine,style_linebr:Or.styleLinebr,style_stepline:Or.styleStepline,style_stepline_diamond:Or.styleSteplineDiamond,style_steplinebr:Or.styleSteplinebr},bw={bottom_center:vr.bottomCenter,bottom_left:vr.bottomLeft,bottom_right:vr.bottomRight,middle_center:vr.middleCenter,middle_left:vr.middleLeft,middle_right:vr.middleRight,top_center:vr.topCenter,top_left:vr.topLeft,top_right:vr.topRight},xw={left:Os.left,none:Os.none,right:Os.right},Ew={arrowdown:lr.arrowdown,arrowup:lr.arrowup,circle:lr.circle,cross:lr.cross,diamond:lr.diamond,flag:lr.flag,labeldown:lr.labeldown,labelup:lr.labelup,square:lr.square,triangledown:lr.triangledown,triangleup:lr.triangleup,xcross:lr.xcross},Aw={auto:ir.auto,huge:ir.huge,large:ir.large,normal:ir.normal,small:ir.small,tiny:ir.tiny},Cw={cash:Pe.cash,fixed:Pe.fixed,percent_of_equity:Pe.percentOfEquity,commission:{cash_per_contract:We.cashPerContract,cash_per_order:We.cashPerOrder,percent:We.percent},direction:{all:ce.all,long:ce.long,short:ce.short},oca:{cancel:fn.cancel,none:fn.none,reduce:fn.reduce}},Mw={align_bottom:Wt.alignBottom,align_center:Wt.alignCenter,align_left:Wt.alignLeft,align_right:Wt.alignRight,align_top:Wt.alignTop,wrap_auto:Wt.wrapAuto,wrap_none:Wt.wrapNone},Fw={bar_index:De.bar_index,bar_time:De.bar_time},Nw={abovebar:Vr.abovebar,belowbar:Vr.belowbar,price:Vr.price},Sw={actual:Bs.actual,estimate:Bs.estimate,standardized:Bs.standardized};class Eh{constructor(){$(this,"adjustment",{dividends:Ns.dividends,none:Ns.none,splits:Ns.splits});$(this,"alert",fw);$(this,"barmerge",hw);$(this,"color",Ti);$(this,"currency",bh);$(this,"dayofweek",dw);$(this,"earnings",Sw);$(this,"display",xh);$(this,"extend",pw);$(this,"font",{family_default:Jn.familyDefault,family_monospace:Jn.familyMonospace});$(this,"format",_w);$(this,"hline",mw);$(this,"label",gw);$(this,"line",vw);$(this,"location",yw);$(this,"math",ww);$(this,"order",{ascending:Gn.ascending,descending:Gn.descending});$(this,"plot",Dw);$(this,"position",bw);$(this,"scale",xw);$(this,"session",{extended:Mn.extended,regular:Mn.regular});$(this,"shape",Ew);$(this,"size",Aw);$(this,"splits",{denominator:"denominator",numerator:"numerator"});$(this,"strategy",Cw);$(this,"text",Mw);$(this,"xloc",Fw);$(this,"yloc",Nw)}updateData(){}}class Ow{constructor(t,e){$(this,"_variables");$(this,"_errorListener");$(this,"_defaultPolyline",{curved:!1,closed:!1,xloc:De.bar_index,line_color:Ti.blue,line_style:Re.styleSolid,line_width:1});this._variables=t,this._errorListener=e}new(t,e){var u;const{bar_index:r}=this._variables,n=`polyline_${e}_${r}`,s=Object.assign({},this._defaultPolyline,t,{id:n,bar_index:r,points:(u=t.points)==null?void 0:u._value.map(c=>({time:c.time,index:c.index,price:c.price}))});ge(s,["line_color","fill_color"]);const a=new Ah(n,this._variables);return this._verfiyArgs(t,e),e.startsWith("export")||this._variables.polyline.add(n,s,a),a}_verfiyArgs(t,e){const{line_style:r,xloc:n}=t,s="polyline.new";this._paramVerfiy(r,e,s,Object.values(Re),"line_style"),this._paramVerfiy(n,e,s,Object.values(De),"xloc")}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}delete({id:t}){t&&t.delete()}}class Ah{constructor(t,e){$(this,"_id");$(this,"_variables");$(this,"_suffix");this._variables=e,this._id=t}get type(){return Fe.POLYLINE}get id(){return this._id}updateId(){const{bar_index:t}=this._variables;if(!this._suffix)this._suffix=`_${t}`,this._id=`${this._id}${this._suffix}`;else{const e=this._id.split("_");e.pop(),this._id=`${e.join("_")}_${t}`}return this._id}get data(){return this._variables.polyline.get(this._id)}delete(){this._variables.polyline.delete(this._id,this._variables._isRealTimeBar?void 0:this._variables.bar_index)}}class Bw{constructor(t,e){$(this,"_variables");$(this,"_errorListener");$(this,"_defaultLine",{xloc:De.bar_index,extend:Yr.none,style:Re.styleSolid});this._variables=t,this._errorListener=e}new({first_point:t,second_point:e,...r},n){const{bar_index:s}=this._variables,a=`line_${n}_${s}`;ge(r,["color"]);const u={...this._defaultLine,...r,id:a,bar_index:s};if(t&&e){const f=u.xloc===De.bar_index?t==null?void 0:t.index:t==null?void 0:t.time,d=u.xloc===De.bar_index?e==null?void 0:e.index:e==null?void 0:e.time;Object.assign(u,{x1:f,y1:t==null?void 0:t.price,x2:d,y2:e==null?void 0:e.price})}this._verfiyArgs(r,n);const c=new vo(a,this._variables,this._errorListener);return n.startsWith("export")||this._variables.line.add(a,u,c),c}_verfiyArgs(t,e){const{extend:r,xloc:n,style:s}=t,a="line.new";this._paramVerfiy(s,e,a,Object.values(Re),"style"),this._paramVerfiy(r,e,a,Object.values(Yr),"extend"),this._paramVerfiy(n,e,a,Object.values(De),"xloc")}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}line(t){return t.x}copy({id:t},e){return t==null?void 0:t.copy(e)}delete({id:t}){t==null||t.delete()}get_x1({id:t},e){return t==null?void 0:t.get_x1(e)}get_x2({id:t},e){return t==null?void 0:t.get_x2(e)}get_y1({id:t},e){return t==null?void 0:t.get_y1(e)}get_y2({id:t},e){return t==null?void 0:t.get_y2(e)}set_x1({id:t,...e},r){t==null||t.set_x1(e,r)}set_x2({id:t,...e},r){t==null||t.set_x2(e,r)}set_y1({id:t,...e},r){t==null||t.set_y1(e,r)}set_y2({id:t,...e},r){t==null||t.set_y2(e,r)}set_xy1({id:t,...e},r){t==null||t.set_xy1(e,r)}set_xy2({id:t,...e},r){t==null||t.set_xy2(e,r)}set_xloc({id:t,...e},r){t==null||t.set_xloc(e,r)}get_price({id:t,...e},r){return t==null?void 0:t.get_price(e,r)}set_color({id:t,...e},r){t==null||t.set_color(e,r)}set_style({id:t,...e},r){t==null||t.set_style(e,r)}set_width({id:t,...e},r){t==null||t.set_width(e,r)}set_extend({id:t,...e},r){t==null||t.set_extend(e,r)}set_first_point({id:t,...e},r){t==null||t.set_first_point(e,r)}set_second_point({id:t,...e},r){t==null||t.set_second_point(e,r)}}class vo{constructor(t,e,r){$(this,"_variables");$(this,"_id");$(this,"_suffix","");$(this,"_errorListener");this._id=t,this._variables=e,this._errorListener=r}get id(){return this._id}updateId(){const{bar_index:t}=this._variables;if(!this._suffix)this._suffix=`_${t}`,this._id=`${this._id}${this._suffix}`;else{const e=this._id.split("_");e.pop(),this._id=`${e.join("_")}_${t}`}return this._id}get type(){return Fe.LINE}get data(){return this._variables.line.get(this._id)}copy(t){const{bar_index:e}=this._variables,r=`line_${t}_${e}`,n=this._getLine(t),s=new vo(r,this._variables,this._errorListener);return n&&this._variables.line.add(r,{...n,id:r,bar_index:e,isVar:void 0},s),s}delete(){this._variables.line.delete(this._id,this._variables._isRealTimeBar?void 0:this._variables.bar_index)}get_price({x:t},e){const r=this._getLine(e);if(t===void 0)return t;if(r&&r.xloc===De.bar_index){const{x1:n,y1:s,x2:a,y2:u}=r;return n===void 0||a===void 0||s===void 0||u===void 0?void 0:(u-s)/(a-n)*(t-n)+s}}get_x1(t){var e;return(e=this._getLine(t))==null?void 0:e.x1}get_x2(t){var e;return(e=this._getLine(t))==null?void 0:e.x2}get_y1(t){var e;return(e=this._getLine(t))==null?void 0:e.y1}get_y2(t){var e;return(e=this._getLine(t))==null?void 0:e.y2}set_x1({x:t},e){const r=this._getLine(e);r&&(r.x1=t)}set_x2({x:t},e){const r=this._getLine(e);r&&(r.x2=t)}set_y1({y:t},e){const r=this._getLine(e);r&&(r.y1=t)}set_y2({y:t},e){const r=this._getLine(e);r&&(r.y2=t)}set_xy1({x:t,y:e},r){const n=this._getLine(r);n&&(n.x1=t,n.y1=e)}set_xy2({x:t,y:e},r){const n=this._getLine(r);n&&(n.x2=t,n.y2=e)}set_xloc({xloc:t,x1:e,x2:r},n){const s=this._getLine(n);s&&(s.xloc=t,s.x1=e,s.x2=r,this._paramVerfiy(t,n,"line.set_xloc",Object.values(De),"xloc"))}set_color(t,e){const r=this._getLine(e);r&&(ge(t,["color"]),r.color=t.color)}set_style({style:t},e){const r=this._getLine(e);r&&(r.style=t,this._paramVerfiy(t,e,"line.set_style",Object.values(Re),"style"))}set_width({width:t},e){const r=this._getLine(e);r&&(r.width=t)}set_extend({extend:t},e){const r=this._getLine(e);r&&(r.extend=t,this._paramVerfiy(t,e,"line.set_extend",Object.values(Yr),"extend"))}set_first_point({point:t},e){const r=this._getLine(e);if(r){const{index:n,time:s,price:a}=t||{},u=r.xloc===De.bar_index?n:s,c=a;u&&(r.x1=u),c&&(r.y1=c)}}set_second_point({point:t},e){const r=this._getLine(e);if(r){const{index:n,time:s,price:a}=t||{},u=r.xloc===De.bar_index?n:s,c=a;u&&(r.x2=u),c&&(r.y2=c)}}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}_getLine(t){const e=this._variables.line.get(this._id);return e||console.log(`${t}: line 不存在`),e}}class Tw{constructor(t){$(this,"_variables");this._variables=t}new(t,e){const{line1:r,line2:n}=t,{bar_index:s}=this._variables,a=`linefill_${e}_${s}`,u=r==null?void 0:r.data,c=n==null?void 0:n.data;u&&(u.linefills=u.linefills||[],u.linefills.push(a)),c&&(c.linefills=c.linefills||[],c.linefills.push(a)),ge(t,["color"]);const f=new yo(this._variables,a,r,n);return e.startsWith("export")||(u||c)&&this._variables.linefill.add(a,{line1:u,line2:c,color:t.color,id:a,bar_index:s},f),f}delete({id:t}){t==null||t.delete()}get_line1({id:t}){return t==null?void 0:t.get_line1()}get_line2({id:t}){return t==null?void 0:t.get_line2()}set_color({id:t,...e}){t==null||t.set_color(e)}}class yo{constructor(t,e,r,n){$(this,"_id");$(this,"_line1");$(this,"_line2");$(this,"_variables");$(this,"_suffix");this._variables=t,this._id=e,this._line1=r,this._line2=n}get type(){return Fe.LINEFILL}get id(){return this._id}updateId(){const{bar_index:t}=this._variables;if(!this._suffix)this._suffix=`_${t}`,this._id=`${this._id}${this._suffix}`;else{const e=this._id.split("_");e.pop(),this._id=`${e.join("_")}_${t}`}return this._id}get data(){return this._variables.linefill.get(this._id)}linefill(t,e){return t.x?t.x:new yo(this._variables,e)}delete(){var e,r;const t=this._variables.linefill.get(this._id);if(t){const{line1:n,line2:s}=t;n&&(n.linefills=(e=n.linefills)==null?void 0:e.filter(a=>a!==this._id)),s&&(s.linefills=(r=s.linefills)==null?void 0:r.filter(a=>a!==this._id))}this._line1=void 0,this._line2=void 0,this._variables.linefill.delete(this._id,this._variables._isRealTimeBar?void 0:this._variables.bar_index)}get_line1(){return this._line1}get_line2(){return this._line2}set_color(t){const e=this._variables.linefill.get(this._id);e&&(ge(t,["color"]),e.color=t.color)}}class Iw{constructor(t,e){$(this,"_variables");$(this,"_errorListener");$(this,"_defaultBox",{border_color:Ti.blue,border_width:1,bgcolor:Ti.blue,xloc:De.bar_index,extend:Yr.none,style:Re.styleSolid,text:"",text_size:ir.auto,text_color:Ti.black,text_halign:Wt.alignCenter,text_valign:Wt.alignCenter,text_wrap:Wt.wrapNone});this._variables=t,this._errorListener=e}box({x:t}){return t}new({top_left:t,bottom_right:e,...r},n){const{bar_index:s}=this._variables,a=`box_${n}_${s}`,u={...this._defaultBox,...r,id:a,bar_index:s};if(ge(u,["border_color","bgcolor","text_color"]),t){const{price:f,time:d,index:h}=t;u.top=f,u.left=u.xloc===De.bar_index?h:d}if(e){const{price:f,time:d,index:h}=e;u.bottom=f,u.right=u.xloc===De.bar_index?h:d}this._verfiyArgs(r,n);const c=new wo(this._variables,a,this._errorListener);return n.startsWith("export")||this._variables.box.add(a,u,c),c}_verfiyArgs(t,e){const{border_style:r,extend:n,xloc:s,text_size:a,text_halign:u,text_valign:c,text_wrap:f,text_font_family:d}=t,h="box.new";this._paramVerfiy(r,e,h,[Re.styleDashed,Re.styleDotted,Re.styleSolid],"border_style"),this._paramVerfiy(n,e,h,Object.values(Yr),"extend"),this._paramVerfiy(s,e,h,Object.values(De),"xloc"),this._paramVerfiy(a,e,h,Object.values(ir),"text_size"),this._paramVerfiy(u,e,h,[Wt.alignLeft,Wt.alignCenter,Wt.alignRight],"text_halign"),this._paramVerfiy(c,e,h,[Wt.alignBottom,Wt.alignCenter,Wt.alignTop],"text_valign"),this._paramVerfiy(f,e,h,[Wt.wrapAuto,Wt.wrapNone],"text_wrap"),this._paramVerfiy(d,e,h,Object.values(Jn),"text_font_family")}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}copy({id:t},e){return t==null?void 0:t.copy(e)}delete({id:t}){t==null||t.delete()}get_top({id:t}){return t==null?void 0:t.get_top()}get_bottom({id:t}){return t==null?void 0:t.get_bottom()}get_left({id:t}){return t==null?void 0:t.get_left()}get_right({id:t}){return t==null?void 0:t.get_right()}set_top({id:t,...e}){t==null||t.set_top(e)}set_bottom({id:t,...e}){t==null||t.set_bottom(e)}set_text({id:t,...e}){t==null||t.set_text(e)}set_left({id:t,...e}){t==null||t.set_left(e)}set_right({id:t,...e}){t==null||t.set_right(e)}set_extend({id:t,...e},r){t==null||t.set_extend(e,r)}set_bgcolor({id:t,...e}){t==null||t.set_bgcolor(e)}set_border_color({id:t,...e}){t==null||t.set_border_color(e)}set_border_width({id:t,...e}){t==null||t.set_border_width(e)}set_border_style({id:t,...e},r){t==null||t.set_border_style(e,r)}set_lefttop({id:t,...e}){t==null||t.set_lefttop(e)}set_rightbottom({id:t,...e}){t==null||t.set_rightbottom(e)}set_text_size({id:t,...e},r){t==null||t.set_text_size(e,r)}set_text_wrap({id:t,...e},r){t==null||t.set_text_wrap(e,r)}set_text_color({id:t,...e}){t==null||t.set_text_color(e)}set_text_halign({id:t,...e},r){t==null||t.set_text_halign(e,r)}set_text_valign({id:t,...e},r){t==null||t.set_text_valign(e,r)}set_top_left_point({id:t,...e}){t==null||t.set_top_left_point(e)}set_bottom_right_point({id:t,...e}){t==null||t.set_bottom_right_point(e)}set_text_font_family({id:t,...e},r){t==null||t.set_text_font_family(e,r)}}class wo{constructor(t,e,r){$(this,"_id");$(this,"_variables");$(this,"_errorListener");$(this,"_suffix","");this._variables=t,this._id=e,this._errorListener=r}get type(){return Fe.BOX}get id(){return this._id}updateId(){const{bar_index:t}=this._variables;if(!this._suffix)this._suffix=`_${t}`,this._id=`${this._id}${this._suffix}`;else{const e=this._id.split("_");e.pop(),this._id=`${e.join("_")}_${t}`}return this._id}get data(){return this._variables.box.get(this._id)}copy(t){const{bar_index:e}=this._variables,r=`box_${t}_${e}`,n=this._getBox(),s=new wo(this._variables,r,this._errorListener);return n&&this._variables.box.add(r,{...n,id:r,bar_index:e},s),s}delete(){this._variables.box.delete(this._id,this._variables._isRealTimeBar?void 0:this._variables.bar_index)}get_top(){const t=this._getBox();return t&&t.top}set_top({top:t}){const e=this._getBox();e&&(e.top=t)}get_left(){const t=this._getBox();return t&&t.left}set_left({left:t}){const e=this._getBox();e&&(e.left=t)}set_text({text:t}){const e=this._getBox();e&&(e.text=t)}get_right(){const t=this._getBox();return t&&t.right}set_right({right:t}){const e=this._getBox();e&&(e.right=t)}get_bottom(){const t=this._getBox();return t&&t.bottom}set_bottom({bottom:t}){const e=this._getBox();e&&(e.bottom=t)}set_extend({extend:t},e){const r=this._getBox();r&&(r.extend=t,this._paramVerfiy(t,e,"box.set_extend",Object.values(Yr),"extend"))}set_bgcolor({color:t}){const e=this._getBox();e&&(e.bgcolor=t,ge(e,["bgcolor"]))}set_lefttop({left:t,top:e}){const r=this._getBox();r&&(r.left=t,r.top=e)}set_text_size({text_size:t},e){const r=this._getBox();r&&(r.text_size=t,this._paramVerfiy(t,e,"box.set_text_size",Object.values(ir),"text_size"))}set_text_wrap({text_wrap:t},e){const r=this._getBox();r&&(r.text_wrap=t,this._paramVerfiy(t,e,"box.set_text_wrap",[Wt.wrapAuto,Wt.wrapNone],"text_wrap"))}set_text_color({text_color:t}){const e=this._getBox();e&&(e.text_color=t,ge(e,["text_color"]))}set_rightbottom({right:t,bottom:e}){const r=this._getBox();r&&(r.right=t,r.bottom=e)}set_text_halign({text_halign:t},e){const r=this._getBox();r&&(r.text_halign=t,this._paramVerfiy(t,e,"box.set_text_halign",[Wt.alignLeft,Wt.alignCenter,Wt.alignRight],"text_halign"))}set_text_valign({text_valign:t},e){const r=this._getBox();r&&(r.text_valign=t,this._paramVerfiy(t,e,"box.set_text_valign",[Wt.alignBottom,Wt.alignCenter,Wt.alignTop],"text_valign"))}set_top_left_point({point:t}){const e=this._getBox();if(e){const{index:r,price:n,time:s}=t||{};e.top=n,e.left=e.xloc===De.bar_index?r:s}}set_border_color({color:t}){const e=this._getBox();e&&(e.border_color=t,ge(e,["border_color"]))}set_border_style({style:t},e){const r=this._getBox();r&&(r.border_style=t,this._paramVerfiy(t,e,"box.set_border_style",[Re.styleDashed,Re.styleDotted,Re.styleSolid],"style"))}set_border_width({width:t}){const e=this._getBox();e&&(e.border_width=t)}set_bottom_right_point({point:t}){const e=this._getBox();if(e){const{index:r,price:n,time:s}=t||{};e.bottom=n,e.right=e.xloc===De.bar_index?r:s}}set_text_font_family({text_font_family:t},e){const r=this._getBox();r&&(r.text_font_family=t,this._paramVerfiy(t,e,"box.set_text_font_family",Object.values(Jn),"text_font_family"))}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}_getBox(){return this._variables.box.get(this._id)}}class $w{constructor(t,e){$(this,"_variables");$(this,"_errorListener");$(this,"_defaultTable",{position:vr.topLeft,columns:0,rows:0,frame_width:0,border_width:0});this._variables=t,this._errorListener=e}table({x:t}){return t}new(t,e){const{bar_index:r}=this._variables,n=`table_${e}_${r}`,{rows:s}=t;ge(t,["text_color","bgcolor","border_color"]);const a=Array.from(Array(s),()=>[]),u=e.split("_"),c=u.pop(),f=u.pop(),d={...this._defaultTable,...t,cell:a,id:n,bar_index:r,line:f,col:c},h=new Ch(this._variables,n,this._errorListener);return this._paramVerfiy(t.position,e,"table.new",Object.values(vr),"position"),e.startsWith("export")||this._variables.table.add(n,d,h),h}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}cell({table_id:t,...e}){t==null||t.cell(e)}cell_set_bgcolor({table_id:t,...e}){t==null||t.cell_set_bgcolor(e)}cell_set_height({table_id:t,...e}){t==null||t.cell_set_height(e)}cell_set_text({table_id:t,...e}){t==null||t.cell_set_text(e)}cell_set_text_color({table_id:t,...e}){t==null||t.cell_set_text_color(e)}cell_set_text_font_family({table_id:t,...e}){t==null||t.cell_set_text_font_family(e)}cell_set_text_halign({table_id:t,...e}){t==null||t.cell_set_text_halign(e)}cell_set_text_valign({table_id:t,...e}){t==null||t.cell_set_text_valign(e)}cell_set_text_size({table_id:t,...e}){t==null||t.cell_set_text_size(e)}cell_set_tooltip({table_id:t,...e}){t==null||t.cell_set_tooltip(e)}cell_set_width({table_id:t,...e}){t==null||t.cell_set_width(e)}clear({table_id:t,...e}){t==null||t.clear(e)}delete({table_id:t}){t==null||t.delete()}merge_cells({table_id:t,...e},r){t==null||t.merge_cells(e,r)}set_bgcolor({table_id:t,...e}){t==null||t.set_bgcolor(e)}set_border_color({table_id:t,...e}){t==null||t.set_border_color(e)}set_border_width({table_id:t,...e}){t==null||t.set_border_width(e)}set_frame_color({table_id:t,...e}){t==null||t.set_frame_color(e)}set_frame_width({table_id:t,...e}){t==null||t.set_frame_width(e)}set_position({table_id:t,...e},r){t==null||t.set_position(e,r)}}class Ch{constructor(t,e,r){$(this,"_id");$(this,"_variables");$(this,"_errorListener");$(this,"_suffix","");$(this,"_defaultCell",{column:0,row:0,text:"",text_color:Ti.black,text_halign:Wt.alignCenter,text_valign:Wt.alignCenter,text_size:ir.normal});this._variables=t,this._id=e,this._errorListener=r}get type(){return Fe.TABLE}get id(){return this._id}updateId(){const{bar_index:t}=this._variables;if(!this._suffix)this._suffix=`_${t}`,this._id=`${this._id}${this._suffix}`;else{const e=this._id.split("_");e.pop(),this._id=`${e.join("_")}_${t}`}return this._id}get data(){return this._variables.table.get(this._id)}cell(t){const e={...this._defaultCell,...t},{column:r=0,row:n=0}=e,s=this._variables.table.get(this._id);if(s){const a=s.cell||[],u=a[n]||[];u[r]=e,a[n]=u,s.cell=a}}cell_set_bgcolor({column:t=0,row:e=0,bgcolor:r}){const n=this._getTableItem(t,e);n&&(n.bgcolor=r)}cell_set_height({column:t=0,row:e=0,height:r}){const n=this._getTableItem(t,e);n&&(n.height=r)}cell_set_text({column:t=0,row:e=0,text:r}){const n=this._getTableItem(t,e);n&&(n.text=r)}cell_set_text_color({column:t=0,row:e=0,text_color:r}){const n=this._getTableItem(t,e);n&&(n.text_color=r,ge(n,["text_color"]))}cell_set_text_font_family({column:t=0,row:e=0,text_font_family:r}){const n=this._getTableItem(t,e);n&&(n.text_font_family=r)}cell_set_text_halign({column:t=0,row:e=0,text_halign:r}){const n=this._getTableItem(t,e);n&&(n.text_halign=r)}cell_set_text_valign({column:t=0,row:e=0,text_valign:r}){const n=this._getTableItem(t,e);n&&(n.text_valign=r)}cell_set_text_size({column:t=0,row:e=0,text_size:r}){const n=this._getTableItem(t,e);n&&(n.text_size=r)}cell_set_tooltip({column:t=0,row:e=0,tooltip:r}){const n=this._getTableItem(t,e);n&&(n.tooltip=r)}cell_set_width({column:t=0,row:e=0,width:r}){const n=this._getTableItem(t,e);n&&(n.width=r)}clear({start_column:t=0,start_row:e=0,end_column:r=0,end_row:n=0}){const s=this._variables.table.get(this._id);if(s){const a=s.cell;if(a)for(let u=e;u<=n;u++)for(let c=t;c<=r;c++){const f=a[u];f&&(f[c]=void 0)}}}delete(){this._variables.table.delete(this._id,this._variables._isRealTimeBar?void 0:this._variables.bar_index)}merge_cells({start_column:t=0,start_row:e=0,end_column:r=0,end_row:n=0},s){if(t>r||e>n){this._errorListener.addError(re.mergeCellErr,s,Lt.Error);return}const a=this._variables.table.get(this._id);if(!a)return;const u=a.merge_cells||[];u.push({start_column:t,start_row:e,end_column:r,end_row:n}),a.merge_cells=u}set_bgcolor({bgcolor:t}){const e=this._variables.table.get(this._id);e&&(e.bgcolor=t,ge(e,["bgcolor"]))}set_border_color({border_color:t}){const e=this._variables.table.get(this._id);e&&(e.border_color=t,ge(e,["border_color"]))}set_border_width({border_width:t}){const e=this._variables.table.get(this._id);e&&(e.border_width=t)}set_frame_color({frame_color:t}){const e=this._variables.table.get(this._id);e&&(e.frame_color=t)}set_frame_width({frame_width:t}){const e=this._variables.table.get(this._id);e&&(e.frame_width=t)}set_position({position:t},e){const r=this._variables.table.get(this._id);r&&(r.position=t,this._paramVerfiy(t,e,"table.set_position",Object.values(vr),"position"))}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}_getTableItem(t,e){const r=this._variables.table.get(this._id);if(r){const n=r.cell;return n?n[e][t]:void 0}}}class Lw{constructor(t){$(this,"_strategy");this._strategy=t}commission({trade_num:t}){return this._verifyTradeNum(t)&&this._strategy.historyOrders[t].commission||0}entry_bar_index({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.historyOrders[t].in_index}entry_comment({trade_num:t}){if(!this._verifyTradeNum(t))return"";const{comment:e,id:r}=this._strategy.historyOrders[t];return e||r}entry_id({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].id:""}entry_price({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.historyOrders[t].in_price}entry_time({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.historyOrders[t].in_time}exit_bar_index({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.historyOrders[t].out_index}exit_comment({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].out_comment:""}exit_id({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].out_id:""}exit_price({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.historyOrders[t].out_price}exit_time({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.historyOrders[t].out_time}max_drawdown({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].trading_loss:0}max_drawdown_percent({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].trading_loss_percent:0}max_runup({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].max_profit:0}max_runup_percent({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].max_profit_percent:0}profit({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].profit:0}profit_percent({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.historyOrders[t].profit_percent:0}size({trade_num:t}){if(!this._verifyTradeNum(t))return 0;const{out_qty:e=0,direction:r}=this._strategy.historyOrders[t];return r===ce.long?e:-e}_verifyTradeNum(t){if(typeof t!="number"||t<0)return!1;const e=this._strategy.historyOrders.length;return!(t>=e)}}class Rw{constructor(t){$(this,"_strategy");this._strategy=t}commission({trade_num:t}){if(!this._verifyTradeNum(t))return 0;const{qty:e=0,original_qty:r=0,commission:n=0}=this._strategy.orders[t];return n*e/r}entry_bar_index({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.orders[t].in_index}entry_comment({trade_num:t}){if(!this._verifyTradeNum(t))return"";const{comment:e,id:r}=this._strategy.orders[t];return e||r}entry_id({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].id:""}entry_price({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.orders[t].in_price}entry_time({trade_num:t}){if(this._verifyTradeNum(t))return this._strategy.orders[t].in_time}max_drawdown({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].trading_loss:0}max_drawdown_percent({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].trading_loss_percent:0}max_runup({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].max_profit:0}max_runup_percent({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].max_profit_percent:0}profit({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].profit:0}profit_percent({trade_num:t}){return this._verifyTradeNum(t)?this._strategy.orders[t].profit_percent:0}size({trade_num:t}){if(!this._verifyTradeNum(t))return 0;const{qty:e=0,direction:r}=this._strategy.orders[t];return r===ce.long?e:-e}_verifyTradeNum(t){if(typeof t!="number"||t<0)return!1;const e=this._strategy.orders.length;return!(t>=e)}}class Pw{constructor(t,e){$(this,"_strategy");$(this,"_errorListener");this._strategy=t,this._errorListener=e}allow_entry_in({value:t},e){this._paramVerfiy(t,e,"strategy.risk.allow_entry_in",Object.values(ce),"value"),this._strategy.updateRisk({allow_entry_in:t})}max_cons_loss_days({count:t}){this._strategy.updateRisk({max_cons_loss_days:t})}max_drawdown({value:t,type:e},r){this._paramVerfiy(e,r,"strategy.risk.max_drawdown",[Pe.percentOfEquity,Pe.cash],"type"),e===Pe.percentOfEquity&&(t=t>100?100:t),this._strategy.updateRisk({max_drawdown:t,max_drawdown_type:e})}max_intraday_filled_orders({count:t}){this._strategy.updateRisk({max_intraday_filled_orders:t})}max_intraday_loss({value:t,type:e},r){this._paramVerfiy(e,r,"strategy.risk.max_intraday_loss",[Pe.percentOfEquity,Pe.cash],"type"),e===Pe.percentOfEquity&&(t=t>100?100:t),this._strategy.updateRisk({max_intraday_loss:t,max_intraday_loss_type:e})}max_position_size({contracts:t}){this._strategy.updateRisk({max_position_size:t})}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}}var kw=20,zw=1,ni=1e6,Mh=1e6,qw=-7,Uw=21,jw=!1,us="[big.js] ",ii=us+"Invalid ",Do=ii+"decimal places",Ww=ii+"rounding mode",Fh=us+"Division by zero",ae={},sn=void 0,Yw=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function Nh(){function i(t){var e=this;if(!(e instanceof i))return t===sn?Nh():new i(t);if(t instanceof i)e.s=t.s,e.e=t.e,e.c=t.c.slice();else{if(typeof t!="string"){if(i.strict===!0&&typeof t!="bigint")throw TypeError(ii+"value");t=t===0&&1/t<0?"-0":String(t)}Vw(e,t)}e.constructor=i}return i.prototype=ae,i.DP=kw,i.RM=zw,i.NE=qw,i.PE=Uw,i.strict=jw,i.roundDown=0,i.roundHalfUp=1,i.roundHalfEven=2,i.roundUp=3,i}function Vw(i,t){var e,r,n;if(!Yw.test(t))throw Error(ii+"number");for(i.s=t.charAt(0)=="-"?(t=t.slice(1),-1):1,(e=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(e<0&&(e=r),e+=+t.slice(r+1),t=t.substring(0,r)):e<0&&(e=t.length),n=t.length,r=0;r<n&&t.charAt(r)=="0";)++r;if(r==n)i.c=[i.e=0];else{for(;n>0&&t.charAt(--n)=="0";);for(i.e=e-r-1,i.c=[],e=0;r<=n;)i.c[e++]=+t.charAt(r++)}return i}function si(i,t,e,r){var n=i.c;if(e===sn&&(e=i.constructor.RM),e!==0&&e!==1&&e!==2&&e!==3)throw Error(Ww);if(t<1)r=e===3&&(r||!!n[0])||t===0&&(e===1&&n[0]>=5||e===2&&(n[0]>5||n[0]===5&&(r||n[1]!==sn))),n.length=1,r?(i.e=i.e-t+1,n[0]=1):n[0]=i.e=0;else if(t<n.length){if(r=e===1&&n[t]>=5||e===2&&(n[t]>5||n[t]===5&&(r||n[t+1]!==sn||n[t-1]&1))||e===3&&(r||!!n[0]),n.length=t,r){for(;++n[--t]>9;)if(n[t]=0,t===0){++i.e,n.unshift(1);break}}for(t=n.length;!n[--t];)n.pop()}return i}function oi(i,t,e){var r=i.e,n=i.c.join(""),s=n.length;if(t)n=n.charAt(0)+(s>1?"."+n.slice(1):"")+(r<0?"e":"e+")+r;else if(r<0){for(;++r;)n="0"+n;n="0."+n}else if(r>0)if(++r>s)for(r-=s;r--;)n+="0";else r<s&&(n=n.slice(0,r)+"."+n.slice(r));else s>1&&(n=n.charAt(0)+"."+n.slice(1));return i.s<0&&e?"-"+n:n}ae.abs=function(){var i=new this.constructor(this);return i.s=1,i},ae.cmp=function(i){var t,e=this,r=e.c,n=(i=new e.constructor(i)).c,s=e.s,a=i.s,u=e.e,c=i.e;if(!r[0]||!n[0])return r[0]?s:n[0]?-a:0;if(s!=a)return s;if(t=s<0,u!=c)return u>c^t?1:-1;for(a=(u=r.length)<(c=n.length)?u:c,s=-1;++s<a;)if(r[s]!=n[s])return r[s]>n[s]^t?1:-1;return u==c?0:u>c^t?1:-1},ae.div=function(i){var t=this,e=t.constructor,r=t.c,n=(i=new e(i)).c,s=t.s==i.s?1:-1,a=e.DP;if(a!==~~a||a<0||a>ni)throw Error(Do);if(!n[0])throw Error(Fh);if(!r[0])return i.s=s,i.c=[i.e=0],i;var u,c,f,d,h,p=n.slice(),g=u=n.length,y=r.length,_=r.slice(0,u),w=_.length,v=i,x=v.c=[],b=0,N=a+(v.e=t.e-i.e)+1;for(v.s=s,s=N<0?0:N,p.unshift(0);w++<u;)_.push(0);do{for(f=0;f<10;f++){if(u!=(w=_.length))d=u>w?1:-1;else for(h=-1,d=0;++h<u;)if(n[h]!=_[h]){d=n[h]>_[h]?1:-1;break}if(d<0){for(c=w==u?n:p;w;){if(_[--w]<c[w]){for(h=w;h&&!_[--h];)_[h]=9;--_[h],_[w]+=10}_[w]-=c[w]}for(;!_[0];)_.shift()}else break}x[b++]=d?f:++f,_[0]&&d?_[w]=r[g]||0:_=[r[g]]}while((g++<y||_[0]!==sn)&&s--);return!x[0]&&b!=1&&(x.shift(),v.e--,N--),b>N&&si(v,N,e.RM,_[0]!==sn),v},ae.eq=function(i){return this.cmp(i)===0},ae.gt=function(i){return this.cmp(i)>0},ae.gte=function(i){return this.cmp(i)>-1},ae.lt=function(i){return this.cmp(i)<0},ae.lte=function(i){return this.cmp(i)<1},ae.minus=ae.sub=function(i){var t,e,r,n,s=this,a=s.constructor,u=s.s,c=(i=new a(i)).s;if(u!=c)return i.s=-c,s.plus(i);var f=s.c.slice(),d=s.e,h=i.c,p=i.e;if(!f[0]||!h[0])return h[0]?i.s=-c:f[0]?i=new a(s):i.s=1,i;if(u=d-p){for((n=u<0)?(u=-u,r=f):(p=d,r=h),r.reverse(),c=u;c--;)r.push(0);r.reverse()}else for(e=((n=f.length<h.length)?f:h).length,u=c=0;c<e;c++)if(f[c]!=h[c]){n=f[c]<h[c];break}if(n&&(r=f,f=h,h=r,i.s=-i.s),(c=(e=h.length)-(t=f.length))>0)for(;c--;)f[t++]=0;for(c=t;e>u;){if(f[--e]<h[e]){for(t=e;t&&!f[--t];)f[t]=9;--f[t],f[e]+=10}f[e]-=h[e]}for(;f[--c]===0;)f.pop();for(;f[0]===0;)f.shift(),--p;return f[0]||(i.s=1,f=[p=0]),i.c=f,i.e=p,i},ae.mod=function(i){var t,e=this,r=e.constructor,n=e.s,s=(i=new r(i)).s;if(!i.c[0])throw Error(Fh);return e.s=i.s=1,t=i.cmp(e)==1,e.s=n,i.s=s,t?new r(e):(n=r.DP,s=r.RM,r.DP=r.RM=0,e=e.div(i),r.DP=n,r.RM=s,this.minus(e.times(i)))},ae.neg=function(){var i=new this.constructor(this);return i.s=-i.s,i},ae.plus=ae.add=function(i){var t,e,r,n=this,s=n.constructor;if(i=new s(i),n.s!=i.s)return i.s=-i.s,n.minus(i);var a=n.e,u=n.c,c=i.e,f=i.c;if(!u[0]||!f[0])return f[0]||(u[0]?i=new s(n):i.s=n.s),i;if(u=u.slice(),t=a-c){for(t>0?(c=a,r=f):(t=-t,r=u),r.reverse();t--;)r.push(0);r.reverse()}for(u.length-f.length<0&&(r=f,f=u,u=r),t=f.length,e=0;t;u[t]%=10)e=(u[--t]=u[t]+f[t]+e)/10|0;for(e&&(u.unshift(e),++c),t=u.length;u[--t]===0;)u.pop();return i.c=u,i.e=c,i},ae.pow=function(i){var t=this,e=new t.constructor("1"),r=e,n=i<0;if(i!==~~i||i<-Mh||i>Mh)throw Error(ii+"exponent");for(n&&(i=-i);i&1&&(r=r.times(t)),i>>=1,!!i;)t=t.times(t);return n?e.div(r):r},ae.prec=function(i,t){if(i!==~~i||i<1||i>ni)throw Error(ii+"precision");return si(new this.constructor(this),i,t)},ae.round=function(i,t){if(i===sn)i=0;else if(i!==~~i||i<-ni||i>ni)throw Error(Do);return si(new this.constructor(this),i+this.e+1,t)},ae.sqrt=function(){var i,t,e,r=this,n=r.constructor,s=r.s,a=r.e,u=new n("0.5");if(!r.c[0])return new n(r);if(s<0)throw Error(us+"No square root");s=Math.sqrt(+oi(r,!0,!0)),s===0||s===1/0?(t=r.c.join(""),t.length+a&1||(t+="0"),s=Math.sqrt(t),a=((a+1)/2|0)-(a<0||a&1),i=new n((s==1/0?"5e":(s=s.toExponential()).slice(0,s.indexOf("e")+1))+a)):i=new n(s+""),a=i.e+(n.DP+=4);do e=i,i=u.times(e.plus(r.div(e)));while(e.c.slice(0,a).join("")!==i.c.slice(0,a).join(""));return si(i,(n.DP-=4)+i.e+1,n.RM)},ae.times=ae.mul=function(i){var t,e=this,r=e.constructor,n=e.c,s=(i=new r(i)).c,a=n.length,u=s.length,c=e.e,f=i.e;if(i.s=e.s==i.s?1:-1,!n[0]||!s[0])return i.c=[i.e=0],i;for(i.e=c+f,a<u&&(t=n,n=s,s=t,f=a,a=u,u=f),t=new Array(f=a+u);f--;)t[f]=0;for(c=u;c--;){for(u=0,f=a+c;f>c;)u=t[f]+s[c]*n[f-c-1]+u,t[f--]=u%10,u=u/10|0;t[f]=u}for(u?++i.e:t.shift(),c=t.length;!t[--c];)t.pop();return i.c=t,i},ae.toExponential=function(i,t){var e=this,r=e.c[0];if(i!==sn){if(i!==~~i||i<0||i>ni)throw Error(Do);for(e=si(new e.constructor(e),++i,t);e.c.length<i;)e.c.push(0)}return oi(e,!0,!!r)},ae.toFixed=function(i,t){var e=this,r=e.c[0];if(i!==sn){if(i!==~~i||i<0||i>ni)throw Error(Do);for(e=si(new e.constructor(e),i+e.e+1,t),i=i+e.e+1;e.c.length<i;)e.c.push(0)}return oi(e,!1,!!r)},ae[Symbol.for("nodejs.util.inspect.custom")]=ae.toJSON=ae.toString=function(){var i=this,t=i.constructor;return oi(i,i.e<=t.NE||i.e>=t.PE,!!i.c[0])},ae.toNumber=function(){var i=+oi(this,!0,!0);if(this.constructor.strict===!0&&!this.eq(i.toString()))throw Error(us+"Imprecise conversion");return i},ae.toPrecision=function(i,t){var e=this,r=e.constructor,n=e.c[0];if(i!==sn){if(i!==~~i||i<1||i>ni)throw Error(ii+"precision");for(e=si(new r(e),i,t);e.c.length<i;)e.c.push(0)}return oi(e,i<=e.e||e.e<=r.NE||e.e>=r.PE,!!n)},ae.valueOf=function(){var i=this,t=i.constructor;if(t.strict===!0)throw Error(us+"valueOf disallowed");return oi(i,i.e<=t.NE||i.e>=t.PE,!0)};var iu=Nh();function Sh(i,t){return iu(i).plus(t).toNumber()}function bo(i,t){return iu(i).minus(t).toNumber()}function Ii(i,t){return iu(i).mul(t).toNumber()}let Hw=class{constructor(t,e,r,n,s){$(this,"_variables");$(this,"_options");$(this,"_totalChangeCapital");$(this,"_historyOrder");$(this,"_orders");$(this,"_exitOrders");$(this,"_pendingOrders");$(this,"_mintick");$(this,"_funcOptions");$(this,"_pendingCloseOrders");$(this,"_errorListener");$(this,"_risk");$(this,"_opentrades");$(this,"_closedtrades");$(this,"_riskNamespace");$(this,"_updateOptions",{});$(this,"_id");$(this,"_maxDrawdownVerifyIndex",0);$(this,"calcOnOrderFillsData",{index:-1});this._variables=t,this._errorListener=n,this._options={overlay:!1,format:Gt.inherit,pyramiding:1,calc_on_order_fills:!1,calc_on_every_tick:!1,max_bars_back:0,backtest_fill_limits_assumption:0,default_qty_type:Pe.fixed,default_qty_value:1,initial_capital:1e6,currency:bh.NONE,slippage:0,commission_type:We.percent,commission_value:0,process_orders_on_close:!1,close_entries_rule:"FIFO",margin_long:0,margin_short:0,explicit_plot_zorder:!1,max_lines_count:50,max_labels_count:50,max_boxes_count:50,calc_bars_count:0,risk_free_rate:2,use_bar_magnifier:!1,fill_orders_on_standard_ohlc:!1,max_polylines_count:50},this._funcOptions=e,this._totalChangeCapital=0,this._orders=[],this._pendingOrders=[],this._historyOrder=[],this._exitOrders=[],this._pendingCloseOrders=[],this._mintick=r,this._variables.strategy.updateOrders(this._orders),this._variables.strategy.updateHistoryOrders(this._historyOrder),this._variables.strategy.updateStrategyOptions(this._options),this._risk={intradayOrders:0},this._opentrades=new Rw(this),this._closedtrades=new Lw(this),this._riskNamespace=new Pw(this,n),this._id=`strategy_${s}`}get orders(){return[...this._orders]}get historyOrders(){return[...this._historyOrder]}get _freezeCapital(){const{close:t}=this.calcOnOrderFillsData.data||this._variables;return this._orders.reduce((e,r)=>e+t*(r.qty||0),0)}get opentrades(){return this._opentrades}get closedtrades(){return this._closedtrades}get risk(){return this._riskNamespace}get isCalcOnEveryTick(){return this._options.calc_on_every_tick}updateOptions(t){this._updateOptions=t||{},Object.assign(this._options,this._updateOptions)}update(){this._maxConsLossDaysVerify(),this._ordersHandle(),this._pendingOrderHandle(),this._maxIntradayFilledOrdersVerify(),this._maxDrawdownVerify();const{open:t,close:e,high:r,low:n}=this.calcOnOrderFillsData.data||this._variables;this._variables.strategy.update({open:t,close:e,high:r,low:n}),!this._options.process_orders_on_close&&this._calcLiquidate(),this._calcProfitAndLoss()}calcCurrentOrder(){this._ordersHandle(),this._pendingOrderHandle(),this._calcProfitAndLoss()}updateRisk(t){Object.assign(this._risk,t)}endExecution(){this._maxIntradayLoss(),this._pendingCloseOrderHandle(),this._options.process_orders_on_close&&this._calcLiquidate()}_maxIntradayLoss(){var g;const{max_intraday_loss:t,max_intraday_loss_type:e,isDisabledOpen:r}=this._risk;if(t===void 0||!e||r)return;const{time_tradingday:n,time:s,strategy:{netprofit:a,initial_capital:u}}=this._variables,{high:c,low:f}=this.calcOnOrderFillsData.data||this._variables;let{preNetprofit:d=0}=this._risk;s===n&&(d=a,this._risk.preNetprofit=a,this._risk.isTemporaryBan=!1);let h=d-a;h+=this._orders.reduce((y,_)=>{const{in_price:w,direction:v,qty:x=0,commission:b=0,original_qty:N=0}=_,E=v===ce.long?1:-1,C=(c-w)*x,F=(f-w)*x,S=E===1?F:-C;return y+S+x/N*b},0);let p=!1;switch(e){case Pe.cash:p=t<h;break;case Pe.percentOfEquity:const y=h/(u+a)*100;p=t<y;break}if(p){this._risk.isTemporaryBan=!0;const y=(g=this._orders[0])==null?void 0:g.direction;this._closeOrders(this._orders,y===ce.long?f:c,"Close Position (Max intraday Loss)",void 0,"close"),this._pendingOrders=[]}}_maxIntradayFilledOrdersVerify(){const{max_intraday_filled_orders:t,intradayOrders:e=0,isDisabledOpen:r}=this._risk;if(t===void 0||r)return;const{time:n,time_tradingday:s}=this._variables,{open:a}=this.calcOnOrderFillsData.data||this._variables;n===s&&(this._risk.intradayOrders=0,this._risk.isTemporaryBan=!1),t<=e&&(this._risk.isTemporaryBan=!0,this._closeOrders(this._orders,a,"Close Position (Max number of filled orders in one day)",void 0,"close"),this._pendingOrders=[])}_maxConsLossDaysVerify(){const{max_cons_loss_days:t,lossDays:e=0,isDisabledOpen:r,totalProfit:n=0}=this._risk;if(t===void 0||r)return;const{time:s,time_tradingday:a,strategy:u}=this._variables,{open:c}=this.calcOnOrderFillsData.data||this._variables;let f=e;if(s===a){const d=u.netprofit+u.openprofit;d<n?f=0:f++,Object.assign(this._risk,{lossDays:f,totalProfit:d})}t<=f&&this._riskTouchOff(c,"Close Position (Max consecutive loss days)")}_maxDrawdownVerify(){const{max_drawdown:t,max_drawdown_type:e,isDisabledOpen:r}=this._risk;if(r)return;const{bar_index:n}=this._variables,{open:s}=this.calcOnOrderFillsData.data||this._variables;if(t!==void 0&&e&&this._maxDrawdownVerifyIndex===n){const{initial_capital:a}=this._options,c=this._orders.reduce((d,h)=>{const{in_price:p,commission:g=0,qty:y=0,original_qty:_=0,direction:w}=h,v=w===ce.long?1:-1,x=(s-p)*v*y;return d+x+g*y/_},0)+this._totalChangeCapital;let f=!1;switch(e){case Pe.percentOfEquity:f=c/a*100<=-t;break;case Pe.cash:f=c<=-t;break}f&&this._riskTouchOff(s,"Close Position (Max Drawdown)")}}_riskTouchOff(t,e){this._risk.isDisabledOpen=!0,this._orders.length&&this._closeOrders(this._orders,t,e,"close"),this._pendingOrders=[]}strategy(t,e){if(!this._variables.bar_index){this._paramVerfiy(t.format,e,"strategy",[Gt.inherit,Gt.price,Gt.percent,Gt.volume],"format"),this._paramVerfiy(t.default_qty_type,e,"strategy",Object.values(Pe),"default_qty_type"),this._paramVerfiy(t.commission_type,e,"strategy",Object.values(We),"commission_type");const r=self==null?void 0:self.workerStorage.get(this._id),n={...this._updateOptions};if(r)for(const s of Object.keys({...r,...t}))t[s]!==r[s]&&delete n[s];self==null||self.workerStorage.set(this._id,t),Object.assign(this._options,t,n),this._variables.updateMaxLength(t),Object.assign(this._funcOptions,{strategy:this._options,userSetStrategyConfig:n,scriptType:"strategy"})}}order(t,e){this._risk.isDisabledOpen||(this._paramVerfiy(t.oca_type,e,"strategy.order",Object.values(fn),"oca_type"),this._orderHandle(t))}entry(t,e){this._risk.isDisabledOpen||(this._paramVerfiy(t.oca_type,e,"strategy.entry",Object.values(fn),"oca_type"),this._entryHandle(t))}close(t){if(!this._orders.filter(r=>!this._options.process_orders_on_close||r.in_index!==this._variables.bar_index).length)return;const{immediately:e}=t;if(e||this._options.process_orders_on_close){const r=this._pendingCloseOrders.find(n=>n.id===t.id&&n.place_order_type==="close");if(r){Object.assign(r,t);return}this._pendingCloseOrders.push({...t,place_order_type:"close"})}else{const r=this._pendingOrders.find(n=>n.id===t.id&&n.place_order_type==="close");if(r){Object.assign(r,t);return}this._pendingOrders.push({...t,place_order_type:"close"})}}close_all(t){if(typeof t=="string"&&(t={}),!this._orders.length)return;const{immediately:e}=t;e||this._options.process_orders_on_close?this._pendingCloseOrders.push({...t,place_order_type:"close_all"}):this._pendingOrders.push({...t,place_order_type:"close_all"})}cancel({id:t}){this._pendingOrders=this._pendingOrders.filter(e=>!(e.id===t&&e.place_order_type!=="close"))}cancel_all(){this._pendingOrders=this._pendingOrders.filter(t=>t.place_order_type==="close_all")}exit(t,e){this._exit(t,e)}convert_to_account({value:t}){return t}convert_to_symbol({value:t}){return t}default_entry_qty({fill_price:t}){return t?this._calcDefaultQty(t):0}_calcDefaultQty(t){const{default_qty_type:e=Pe.fixed,default_qty_value:r=1,initial_capital:n,commission_value:s}=this._options;let a=r;switch(e){case Pe.cash:a=r/t;break;case Pe.percentOfEquity:const u=this._getOrderProfit(t),c=n+u+this._totalChangeCapital;s?a=this._getCommQty(c,t):a=c*r/100/t;break}return Ql(a,this._getLen(t))}_getCommQty(t,e){const{commission_type:r,commission_value:n=0,default_qty_value:s=0}=this._options;let a=0;switch(r){case We.percent:a=t*s/(100*e+n*e);break;case We.cashPerContract:a=t*s/(100*e+n);break;case We.cashPerOrder:a=(t-n)*s/100/e}return a}_getLen(t){const e=String(Math.floor(t)).length-2;return e<0?0:e}_getCapital(t,e){const{margin_long:r=0,margin_short:n=0}=this._options;return r<100&&r>0&&t===1?e=e*100/r:n<=100&&n>0&&t===-1&&(e=e*100/n),e}_calcProfitAndLoss(){const{close:t}=this.calcOnOrderFillsData.data||this._variables;for(const e of this._orders){const{in_price:r,qty:n=0,direction:s}=e,a=s===ce.long?1:-1,u=(t-r)*a*n,[c,f]=this._calcProfitAndLossHandle(r,n,a);this._calcOrderPercent(e,u,c,f)}}_calcProfitAndLossHandle(t,e,r){const{high:n,low:s}=this.calcOnOrderFillsData.data||this._variables,a=(n-t)*e,u=(s-t)*e;let c=r===1?a:-u,f=r===1?u:-a;return[c,f]}_calcOrderPercent(t,e,r,n){const{commission_value:s}=this._options,{close:a}=this.calcOnOrderFillsData.data||this._variables,{original_qty:u=0,qty:c=0,in_price:f,max_profit:d=0,trading_loss:h=0}=t;let{commission:p=0}=t,g=f*c;if(s){const y=this._getCommission(a,c);p=p*c/u,r-=p,n-=p,g+=p,e=e-y-p}r=Math.max(r,d,0),n=Math.min(n,h,0),Object.assign(t,{profit:e,total_profit:this._totalChangeCapital+e,total_profit_percent:e/(this._options.initial_capital+this._totalChangeCapital)*100,max_profit:r,trading_loss:n,profit_percent:e/g*100,max_profit_percent:r/g*100,trading_loss_percent:n/g*100})}_calcLiquidate(){if(!this._orders.length)return;const{time:t}=this._variables,{high:e,low:r}=this.calcOnOrderFillsData.data||this._variables,{initial_capital:n,margin_long:s=0,margin_short:a=0}=this._options,u=this._orders[0].direction===ce.long?1:-1;let c=u===1?r:e;if(u===1&&s===100)return;const f=(u===1?s:a)/100;if(f<=0)return;let d=!1;const[h,p]=this._orders.reduce((w,v)=>{let[x,b]=w;const{in_price:N,qty:E=0,in_time:C}=v;C===t&&(d=!0);const F=N*E,S=c*E;return x+=F,b+=S,[x,b]},[0,0]);let g=0,y=0;const _=n+this._totalChangeCapital;if(d&&(g=_-h*f,g<0&&(c=this._orders[0].in_price,y=Math.abs(Math.trunc(g/f/c)*4),y=Math.max(y,1))),g>=0){const w=u*(p-h);if(g=_+w-p*f,g>=0)return;y=Math.abs(Math.trunc(g/f/c)*4)}y<=0||this._marginCallOrders(c,y,"Margin Call")}_marginCallOrders(t,e,r){const{close_entries_rule:n="FIFO"}=this._options;if(n==="FIFO"){this._processOrders(this._orders,t,e*this._orders.length,r,r,!0);return}for(const s of this.orders)s.position_close_type=s.place_order_type,s.isTiggerClose=!0,this._processOrder(s,t,e,r,r,!0);this._orders=this._orders.filter(s=>!s.isDeal),this._variables.strategy.updateOrders(this._orders),this._variables.strategy.updateHistoryOrders(this._historyOrder)}_orderHandle(t){const{process_orders_on_close:e,slippage:r=0}=this._options,{orders:n,isMarketPrice:s,quantities:a,close:u,price:c,activePrice:f,isTouch:d}=this._orderArgsParse(t),h=t.direction===ce.long?1:-1;if(a<=0)return;let p=a;if((s||d)&&e){const y=d?c:u;if(n.length){const E=this._processOrders(n,y,p,t.id,t.comment,!1,"order");if(E<=0)return;p=E}const _=y+h*r*this._mintick;if(!this._judgeCapitalEnough(p,_,h))return;this._ocaGroupVerify(p,t.oca_name,t.oca_type);const{bar_index:v,time:x}=this._variables,{high:b,low:N}=this.calcOnOrderFillsData.data||this._variables;this._calcCurrentOrder({...t,in_price:_,in_high:b,in_low:N,in_index:v,in_time:x,qty:p,place_order_type:"order"});return}this._judgeCapitalEnough(a,c,h)&&this._addPendingOrders(t,c,p,s,f)}_judgeCapitalEnough(t,e,r){let n=this._freezeCapital;if(this._orders.some(d=>(d.direction===ce.long?1:-1)!==r)&&(n=0),t<=0)return!1;const{margin_long:s=0,margin_short:a=0}=this._options;if(s===0&&r===1||a===0&&r===-1)return!0;const u=this._getOrderProfit(e),f=this._getCapital(r,this._options.initial_capital+u+this._totalChangeCapital)-n;return t*e<=f}_getOrderProfit(t){return this._orders.reduce((e,r)=>{const{in_price:n,qty:s=0,direction:a}=r,u=a===ce.long?1:-1;return e+(t-n)*s*u},0)}_ocaGroupVerify(t,e,r){if(!e||!r||r===fn.none)return!1;let n=!1;switch(r){case fn.cancel:this._pendingOrders=this._pendingOrders.filter(s=>{if(s.oca_name===e)s.isCancel=!0,n=!0;else return!0});break;case fn.reduce:this._pendingOrders=this._pendingOrders.filter(s=>{const{qty:a=0,oca_name:u}=s;if(e===u){const c=a-t;return n=!0,c<=0?(s.isCancel=!0,!1):(s.qty=c,!0)}else return!0});break}return n}_processOrders(t,e,r,n,s,a=!1,u,c){let f=r;for(const d of t)if(d.position_close_type=u||d.place_order_type,d.immediately=c,d.isTiggerClose=a||d.place_order_type==="close",f=this._processOrder(d,e,f,n,s,a),f<=0)break;return this._orders=this._orders.filter(d=>!d.isDeal),this._variables.strategy.updateOrders(this._orders),this._variables.strategy.updateHistoryOrders(this._historyOrder),f}_addPendingOrders(t,e,r,n,s){const a=this._pendingOrders.find(u=>u.id===t.id&&!u.isMarketPrice);if(a)Object.assign(a,{...t,in_price:e,isMarketPrice:n,qty:r,active_price:s});else{const u={...t,in_price:e,isMarketPrice:n,qty:r,active_price:s,place_order_type:"order"};this._pendingOrders.push(u)}}_orderArgsParse(t){const{direction:e,qty:r,stop:n}=t;let s=t.limit||0;const{close:a}=this.calcOnOrderFillsData.data||this._variables;let u=a,c=!1,f;const d=e===ce.long?1:-1,h=n&&(n-a)*d>=0,{backtest_fill_limits_assumption:p=0}=this._options;p>0&&s&&(s-=p*this._mintick*d);const g=s&&(s-a)*d<=0;let y=!1;h&&g?(n!==a&&(f=n),u=s):h?(u=n,y=n===a):g?(u=s,y=s===a):c=!0;const _=r!==void 0?Ql(r,this._getLen(u)):this._calcDefaultQty(u);return{orders:this._orders.filter(v=>v.direction!==e),isMarketPrice:c,activePrice:f,quantities:_,close:a,price:u,isTouch:y}}_entryHandle(t){const{process_orders_on_close:e}=this._options,{orders:r,isMarketPrice:n,quantities:s,close:a,price:u,activePrice:c,isTouch:f}=this._orderArgsParse(t);if(s<=0)return;if((n||f)&&e){this._entryOrder(r,f?u:a,s,t);return}this._judgeCapitalEnough(s,a,t.direction===ce.long?1:-1)&&this._addPendingEntry(t,u,s,n,c)}_entryOrder(t,e,r,n){const{time:s,bar_index:a}=this._variables,{high:u,low:c}=this.calcOnOrderFillsData.data||this._variables,{slippage:f=0}=this._options,{oca_name:d,oca_type:h,direction:p,comment:g,id:y}=n,_=p===ce.long?1:-1;if(r=this._getAvailablePositionSize(r,p),r<=0||(e=e+f*this._mintick*_,!this._judgeCapitalEnough(r,e,_)))return;this._closeOrders(t,e,y,g,"entry");const v={...n,in_price:e,qty:r,in_index:a,in_high:u,in_low:c,in_time:s,place_order_type:"entry"},{orders:x}=this._getEntryOrders(p),b=x.length;b&&b>=(this._options.pyramiding||1)||(this._ocaGroupVerify(r,d,h),this._calcCurrentOrder(v))}_getAvailablePositionSize(t,e){const{max_position_size:r,allow_entry_in:n}=this._risk;if(n&&n!==ce.all&&n!==e)return 0;if(r===void 0)return t;const s=this._orders.reduce((a,u)=>a+(u.qty||0),0);return s?s+t>r?0:t:t>r?t-r:0}_getEntryOrders(t){const e=this._pendingOrders.filter(n=>["entry","order"].includes(n.place_order_type)&&n.direction===t),r=this._orders.filter(n=>n.direction===t);return{pendingOrders:e,orders:r}}_addPendingEntry(t,e,r,n,s){if(r=this._getAvailablePositionSize(r,t.direction),r<=0)return;const{pendingOrders:a,orders:u}=this._getEntryOrders(t.direction),c=a.length+u.length,f=a.find(d=>d.id===t.id&&d.place_order_type==="entry");if(f)Object.assign(f,{...t,in_price:e,isMarketPrice:n,qty:r,active_price:s});else if(!c||c<(this._options.pyramiding||1)){const d={...t,in_price:e,isMarketPrice:n,qty:r,active_price:s,place_order_type:"entry"};this._pendingOrders.push(d)}}_closeAllOrders(t,e){const{comment:r,immediately:n}=t,{bar_index:s}=this._variables,a=this._orders.filter(u=>u.in_index!==s);a.length&&(this._closeOrders(a,e,"Close position order",r,"close",n),this._orders=[],this._variables.strategy.updateOrders(this._orders))}_closeOrders(t,e,r,n,s,a){for(const u of t)u.position_close_type=s,u.immediately=a,u.isTiggerClose=!0,this._closeOrder(u,e,r,n);this._orders=this._orders.filter(u=>!u.isDeal),this._variables.strategy.updateOrders(this._orders),this._variables.strategy.updateHistoryOrders(this._historyOrder)}_closeOrder(t,e,r,n){const{time:s,bar_index:a}=this._variables,{high:u,low:c}=this.calcOnOrderFillsData.data||this._variables,{slippage:f=0}=this._options,{in_price:d,qty:h=0,direction:p}=t,g=p===ce.long?1:-1;e=e-g*f*this._mintick,t.isDeal=!0;const y=(e-d)*g*h,_={...t,out_price:e,out_id:r,out_index:a,out_high:u,out_low:c,out_time:s,out_comment:n,out_qty:h,profit:y};this._calcPercent(_)}_exitOrdersHandle(){if(!this._exitOrders.length)return;const{open:t,low:e,high:r,close:n}=this.calcOnOrderFillsData.data||this._variables,s=[],a=Math.abs(r-t),u=Math.abs(e-t),c=[];for(const f of this._exitOrders){const{stop:d,limit:h,trail_stop_price:p,directionNum:g,id:y,comment:_,active_price:w,trail_offset:v=0,qty:x,comment_loss:b,comment_profit:N,comment_trailing:E,order:C}=f;if(C.isTiggerClose)continue;let F=p,S=a<u||a===u&&g===1,I,A=1,O=_;if(h&&((t-h)*g>=0?(I=t,A=1):e<=h&&r>=h&&(I=h,S&&h>t||!S&&h<t?A=1:A=2),O=N||_),!I&&d&&!(F&&(d-F)*g<0)&&((t-d)*g<=0?(I=t,A=1):e<=d&&r>=d&&(I=d,S&&d>t||!S&&d<t?A=1:A=2),O=b||_),I){s.push({order:C,price:I,index:A,isHighFront:S,exitInfo:{id:y,comment:O,qty:x}});continue}if(I=void 0,F)if((F-t)*g>=0)I=t,A=1;else{const[L,z,q]=this._calcTrailStopPrice(F,r,e,n,v,g,S);I=z,A=q||1,f.trail_stop_price=L}if(w&&!I&&w<=r&&w>=e)if(v===0)I=w,S&&w>t||!S&&w<t?A=1:A=2;else{F=bo(w,Ii(v*g,this._mintick));let L=r,z=e;S?w>=t&&w<=r?(L=r,A=1):(S=!1,L=n,A=2):w<t&&w>=e?(z=e,A=1):(S=!0,z=n,A=2);const[q,j,P=1]=this._calcTrailStopPrice(F,L,z,n,v,g,S);delete f.active_price,A<P&&(A=P),f.trail_stop_price=q,I=j}if(I){s.push({order:C,price:I,index:A,isHighFront:S,exitInfo:{id:y,comment:E||_,qty:x}});continue}c.push(f)}this._exitOrders=c,s.sort(({price:f,index:d,isHighFront:h},{price:p,index:g})=>d!==g?d-g:h?d===1?f-p:p-f:d===1?p-f:f-p);for(const f of s){const{order:d,price:h,exitInfo:p}=f;this._processExitOnClose(d,h,p)}}_ordersHandle(){const t=this._orders.filter(r=>r.isMarketPriceLimit||r.isMarketPriceStop);if(!t.length)return;const{open:e}=this.calcOnOrderFillsData.data||this._variables;for(const r of t){const{out_comment:n,out_qty:s,out_id:a}=r;this._processExitOnClose(r,e,{id:a,comment:n,qty:s})}}_calcTrailStopPrice(t,e,r,n,s,a,u){let c=t,f;const d=bo(a===1?e:r,Ii(s*a,this._mintick));let h=1;return a===1?u?(c<d&&(c=d),c>=r&&(h=2,f=c)):c>=r?(h=1,f=c):d>c&&(c=d,d>=n&&(h=3,f=d)):u?c<=e?(h=1,f=c):d<c&&(c=d,d<=n&&(h=3,f=d)):(d<c&&(c=d),c<=e&&(h=2,f=c)),[c,f,h]}_pendingOrderHandle(){if(!this._pendingOrders.length){this._exitOrdersHandle();return}const t=[],e=this._pendingOrders.filter(r=>r.place_order_type==="exit");for(const r of this._pendingOrders){const{isCancel:n,place_order_type:s}=r;if(n)continue;let a;switch(s){case"entry":a=this._entryOrderHandle(r);break;case"order":a=this._orderOrderHandle(r);break;case"close":a=this._closeOrderHandle(r);break;case"close_all":const{open:u}=this.calcOnOrderFillsData.data||this._variables;this._closeAllOrders(r,u);break}a&&t.push(a)}this._exitOrdersHandle();for(const r of e){const n=this._exitOrderHandle(r);n&&t.push(n)}this._pendingOrders=t}_pendingCloseOrderHandle(){if(!this._pendingCloseOrders.length)return;const t=this._pendingCloseOrders.filter(r=>["close","close_all"].includes(r.place_order_type||"")),{close:e}=this.calcOnOrderFillsData.data||this._variables;this._pendingCloseOrders=[];for(const r of t)switch(r.place_order_type){case"close":const n=this._closeOrderHandle(r,!0);n&&this._pendingCloseOrders.push(n);break;case"close_all":this._closeAllOrders(r,e);break}this._ordersHandle()}_entryOrderHandle(t){const{open:e,low:r,high:n}=this.calcOnOrderFillsData.data||this._variables,{isMarketPrice:s,qty:a=0,in_price:u,direction:c,active_price:f}=t;if(f&&n>=f&&r<=f)return delete t.active_price,t;let d=u;if(s&&(d=e),d<=n&&d>=r){const h=this._orders.filter(p=>p.direction!==c);this._entryOrder(h,d,a,t)}else return t}_orderOrderHandle(t){const{time:e,bar_index:r}=this._variables,{open:n,low:s,high:a}=this.calcOnOrderFillsData.data||this._variables,{slippage:u=0}=this._options,{isMarketPrice:c,qty:f=0,in_price:d,direction:h,comment:p,oca_name:g,oca_type:y,active_price:_,id:w}=t;if(_&&a>=_&&s<=_)return delete t.active_price,t;let v=d,x=f;if(c&&(v=n),v<=a&&v>=s){const b=this._orders.filter(E=>E.direction!==h);if(b.length&&(x=this._processOrders(b,v,f,w,p,!1,"order"),x<=0))return;const N=h===ce.long?1:-1;this._ocaGroupVerify(x,g,y),this._calcCurrentOrder({...t,in_price:v+N*u*this._mintick,in_index:r,in_time:e,in_high:a,in_low:s,qty:x});return}else return t}_closeOrderHandle(t,e){const{id:r,qty:n,qty_percent:s=100,comment:a,immediately:u}=t,{close_entries_rule:c="FIFO"}=this._options;let f=[];if(c==="FIFO"?f=this._orders.filter(g=>g.id===r):f=this._orders.filter(g=>g.id===r&&!g.close_qty),!f.length)return;let d=0;if(n?d=n:(d=f.reduce((g,y)=>g+(y.qty||0),d),d=s/100*d),d<=0)return;const{open:h,close:p}=this.calcOnOrderFillsData.data||this._variables;if(c==="FIFO")this._processOrders(f,e?p:h,d,`Close entry(s) order ${r}`,a,!1,"close",u);else if(this._processCloseOrders(f,e?p:h,d,`Close entry(s) order ${r}`,a,u))return t}_processCloseOrders(t,e,r,n,s,a){let u=!1;for(const c of t)c.close_qty=r,(c.qty||0)>r&&(u=!0),c.immediately=a,c.position_close_type="close",c.isTiggerClose=!0,this._processOrder(c,e,r,n,s);return this._orders=this._orders.filter(c=>!c.isDeal),this._variables.strategy.updateOrders(this._orders),this._variables.strategy.updateHistoryOrders(this._historyOrder),u}_exitOrderHandle(t){const{from_entry:e}=t,r=this._orders.filter(n=>(!e||e===n.id)&&!n.hasExit);if(!(r.length&&!this._ordersToExit(r,t,!0)))return t}_exit(t,e){if(!t.hasOwnProperty("profit")&&!t.hasOwnProperty("loss")&&!t.hasOwnProperty("stop")&&!t.hasOwnProperty("limit")&&(!t.hasOwnProperty("trail_offset")||!t.hasOwnProperty("trail_price")&&!t.hasOwnProperty("trail_points"))){this._errorListener.addError(re.strategyExitErr,e,Lt.Error);return}const{profit:r,loss:n,stop:s,limit:a,trail_offset:u,trail_price:c,trail_points:f,from_entry:d="",id:h}=t;if(this._isNaN(r)&&this._isNaN(n)&&this._isNaN(s)&&this._isNaN(a)&&(this._isNaN(u)||this._isNaN(f)&&this._isNaN(c)))return;const p={...t,place_order_type:"exit"},g=this._orders.filter(w=>(!d||d===w.id)&&!w.hasExit);this._updateExitOrders(p);const y=this._pendingOrders.filter(w=>(!d||d===w.id)&&["order","entry"].includes(w.place_order_type||""));if(g.length){if(!this._ordersToExit(g,p,!1))return}else if(!y.length)return;const _=this._pendingOrders.find(w=>w.id===h&&w.place_order_type==="exit");_?Object.assign(_,{...t}):this._pendingOrders.push(p)}_updateExitOrders(t){const e=this._exitOrders.filter(r=>r.id===t.id&&(r.from_entry===t.from_entry||!t.from_entry));for(const r of e){const{directionNum:n,order:s}=r;if(s.isTiggerClose)continue;const a={...t};if(this._stopProfit(s,n,a)){r.isClose=!0;continue}if(this._stopLoss(s,n,a)){r.isClose=!0;continue}if(this._trailStopLoss(s,n,a)){r.isClose=!0;continue}Object.assign(r,a)}this._exitOrders=this._exitOrders.filter(r=>!r.isClose)}_ordersToExit(t,e,r){const{qty:n,qty_percent:s=100,id:a,comment:u}=e;let c=n,f=!1;e.comment=u||a;const d=t[0],h={...e},{qty:p=0}=d,g=d.direction===ce.long?1:-1;return c=n?n>=p?p:n:s/100*p,h.qty=c,c<p&&(f=!0),this._stopProfit(d,g,h,r)||this._stopLoss(d,g,h,r)||this._trailStopLoss(d,g,h,r)||(this._exitOrders.push({...h,directionNum:g,order:d}),d.hasExit=!0),f}_addExitPendingCloseOrders(t){const e=this._pendingCloseOrders.find(r=>r.id===t.id);e?Object.assign(e,{...t}):this._pendingCloseOrders.push(t)}_stopProfit(t,e,r,n){const{limit:s,profit:a,comment_profit:u,comment:c,id:f,qty:d}=r;let h=s;const{close:p}=this.calcOnOrderFillsData.data||this._variables,{in_price:g}=t,{process_orders_on_close:y}=this._options;if(!this._isNaN(a)&&this._isNaN(s)&&(h=Sh(g,Ii(a*e,this._mintick))),r.limit=e===1?tc(h,this._variables.precision):ec(h,this._variables.precision),!n&&h!==void 0&&(h-p)*e<=0)return t.isMarketPriceLimit=!0,r.comment=u||c,Object.assign(t,{out_comment:r.comment,out_id:f,out_qty:d}),y&&this._addExitPendingCloseOrders(r),!0}_stopLoss(t,e,r,n){const{stop:s,loss:a,comment_loss:u,comment:c,id:f,qty:d}=r;let h=s;const{close:p}=this.calcOnOrderFillsData.data||this._variables,{in_price:g}=t,{process_orders_on_close:y}=this._options;if(!this._isNaN(a)&&this._isNaN(s)&&(h=bo(g,Ii(a*e,this._mintick))),r.stop=e===1?ec(h,this._variables.precision):tc(h,this._variables.precision),!n&&h!==void 0&&(h-p)*e>=0)return t.isMarketPriceStop=!0,r.comment=u||c,Object.assign(t,{out_comment:r.comment,out_id:f,out_qty:d}),y&&this._addExitPendingCloseOrders(r),!0}_trailStopLoss(t,e,r,n){const{trail_offset:s,trail_price:a,trail_points:u,comment_trailing:c,comment:f,id:d,qty:h}=r;if(!this._isNaN(s)){const{close:p}=this.calcOnOrderFillsData.data||this._variables,{in_price:g}=t,{process_orders_on_close:y}=this._options;let _;if(this._isNaN(a)?this._isNaN(u)||(_=Sh(g,Ii(u*e,this._mintick))):_=a,r.active_price=_,n)return;if(_!==void 0&&(_-p)*e<=0){const w=bo(p,Ii(s*e,this._mintick));if((w-p)*e>=0)return t.isMarketPriceStop=!0,r.comment=c||f,Object.assign(t,{out_comment:r.comment,out_id:d,out_qty:h}),y&&this._addExitPendingCloseOrders(r),!0;r.trail_stop_price=w}}}_processExitOnClose(t,e,r){const{qty:n=0,comment:s,id:a}=r,{close_entries_rule:u="FIFO"}=this._options;if(n)if(t.isTiggerClose=!0,u==="FIFO")this._processExitOrders(this._orders,e,n,a,s);else{if(t.isDeal)return;this._processOrders([t],e,n,a,s,!1,"exit")}}_processExitOrders(t,e,r,n,s){let a=r,u;for(const c of t)if(u=c,c.position_close_type="exit",a=this._processOrder(c,e,a,n,s),a<=0)break;return this._orders=this._orders.filter(c=>!c.isDeal),this._variables.strategy.updateOrders(this._orders),this._variables.strategy.updateHistoryOrders(this._historyOrder),u}_processOrder(t,e,r,n,s,a=!1){const{time:u,bar_index:c}=this._variables,{low:f,high:d}=this.calcOnOrderFillsData.data||this._variables,{slippage:h=0}=this._options,{in_price:p,qty:g=0,max_profit:y,trading_loss:_,direction:w,commission:v=0,original_qty:x=0}=t,b=w===ce.long?1:-1;if(e=e-b*h*this._mintick,r<g){const N=g-r,E=(e-p)*b*r,C=y!==void 0?y/g*r:void 0,F=_!==void 0?_/g*r:void 0,S=v*N/x;this._calcPercent({...t,out_price:e,last_commission:S,out_id:n,out_index:c,out_high:d,out_low:f,out_time:u,out_comment:s,profit:E,out_qty:r,max_profit:C,trading_loss:F});const I=(e-p)*b*N-S;Object.assign(t,{qty:N,profit:I,max_profit:y!==void 0?y-(C||0):void 0,trading_loss:_!==void 0?_-(F||0):void 0,total_profit:this._totalChangeCapital+I}),r=0}else{t.isDeal=!0;const N=(e-p)*b*g;this._calcPercent({...t,out_price:e,out_id:n,out_index:c,out_high:d,out_low:f,out_time:u,out_comment:s,out_qty:g,profit:N}),r-=g}return a&&(b===1?this._variables.strategy.marginCallLong++:this._variables.strategy.marginCallShort++),r}_calcPercent(t){const{commission_value:e,process_orders_on_close:r}=this._options,{in_price:n,out_qty:s=0,out_price:a=0,original_qty:u=0,direction:c,last_commission:f=0,immediately:d}=t;let{profit:h=0,max_profit:p,trading_loss:g,commission:y=0}=t,_=n*s,w=this._totalChangeCapital+this._options.initial_capital;if(this._totalChangeCapital+=h,e){const v=this._getCommission(a,s);this._totalChangeCapital-=v;let x=y*s/u;_+=x,x+=v,h=h-x,Object.assign(t,{commission:x,profit:h});const b=this._orders.reduce((N,E)=>{const{qty:C=0,original_qty:F=0,commission:S=0}=E;return N+S*C/F},0);w+=b-f}if(p===void 0||g===void 0){const v=c===ce.long?1:-1,x=this._calcProfitAndLossHandle(n,s,v);if(p=x[0],g=x[1],e){const b=y*s/u;p-=b,g-=b}p=Math.max(0,p),g=Math.min(0,g)}Object.assign(t,{max_profit:p,trading_loss:g,total_profit:this._totalChangeCapital,total_profit_percent:h/w*100,profit_percent:h/_*100,max_profit_percent:p/_*100,trading_loss_percent:g/_*100}),this._maxDrawdownVerifyIndex=this._variables.bar_index+(r?1:0),this._risk.intradayOrders+=1,this._historyOrder.push(t),this._calcOrderFillsHandle(n,c,d)}_getCommission(t,e){const{commission_value:r=0,commission_type:n}=this._options,s=t*e;let a=0;switch(n){case We.percent:a=s*r/100;break;case We.cashPerContract:a=e*r;break;case We.cashPerOrder:a=r;break}return a}_calcCurrentOrder(t){const{commission_value:e}=this._options,{in_price:r,qty:n=0,max_profit:s=0,trading_loss:a=0,direction:u,immediately:c}=t;let{profit:f=0}=t,d=r*n;const h=this._totalChangeCapital+this._options.initial_capital;if(e){const p=this._getCommission(r,n);this._totalChangeCapital-=p,f=f-p,d+=p,Object.assign(t,{commission:p,profit:f,total_profit:this._totalChangeCapital})}Object.assign(t,{original_qty:n,total_profit_percent:f/h*100,profit_percent:f/d*100,max_profit_percent:s/d*100,trading_loss_percent:a/d*100,stop:void 0,limit:void 0}),this._risk.intradayOrders+=1,this._orders.push(t),this._variables.strategy.updateOrders(this._orders),e&&this._variables.strategy.updateHistoryOrders(this._historyOrder),this._calcOrderFillsHandle(r,u,c)}_calcOrderFillsHandle(t,e,r=!1){const{calc_on_order_fills:n,process_orders_on_close:s,slippage:a=0}=this._options;if(n){const{open:u,high:c,low:f,close:d}=this._variables,h=e===ce.long?1:-1,p=d-h*a*this._mintick;if((r||s)&&t===p)return;const g=u-h*a*this._mintick;let y={open:u,high:c,low:f,close:d},_=this.calcOnOrderFillsData.index;const w=Math.abs(c-u)<=Math.abs(f-u);switch(_){case-1:t===g?_=0:t>g?w?(_=1,y={open:c,high:c,low:f,close:d}):(_=2,y={open:c,high:c,low:d,close:d}):w?(_=2,y={open:f,high:d,low:f,close:d}):(_=1,y={open:f,high:c,low:f,close:d});break;case 0:t===g?(_=1,w?y={open:c,high:c,low:f,close:d}:y={open:f,high:c,low:f,close:d}):t>g?w?(_=1,y={open:c,high:c,low:f,close:d}):(_=2,y={open:c,high:c,low:d,close:d}):w?(_=2,y={open:f,high:d,low:f,close:d}):(_=1,y={open:f,high:c,low:f,close:d});break;case 1:_=2,w?y={open:f,high:d,low:f,close:d}:y={open:c,high:c,low:d,close:d};break;case 2:_=-1,y=void 0;break}this.calcOnOrderFillsData={tradeData:y,index:_}}}_isNaN(t){return t===void 0||isNaN(t)}_paramVerfiy(t="",e,r,n,s){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}};var Oh={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){return function(e,r,n){r.prototype.isBetween=function(s,a,u,c){var f=n(s),d=n(a),h=(c=c||"()")[0]==="(",p=c[1]===")";return(h?this.isAfter(f,u):!this.isBefore(f,u))&&(p?this.isBefore(d,u):!this.isAfter(d,u))||(h?this.isBefore(f,u):!this.isAfter(f,u))&&(p?this.isAfter(d,u):!this.isBefore(d,u))}}})})(Oh);var Zw=Oh.exports,Kw=Kt(Zw),Bh={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){return function(e,r,n){var s=r.prototype,a=function(p){var g,y=p.date,_=p.utc,w={};if(!((g=y)===null||g instanceof Date||g instanceof Array||s.$utils().u(g)||g.constructor.name!=="Object")){if(!Object.keys(y).length)return new Date;var v=_?n.utc():n();Object.keys(y).forEach(function(I){var A,O;w[A=I,O=s.$utils().p(A),O==="date"?"day":O]=y[I]});var x=w.day||(w.year||w.month>=0?1:v.date()),b=w.year||v.year(),N=w.month>=0?w.month:w.year||w.day?0:v.month(),E=w.hour||0,C=w.minute||0,F=w.second||0,S=w.millisecond||0;return _?new Date(Date.UTC(b,N,x,E,C,F,S)):new Date(b,N,x,E,C,F,S)}return y},u=s.parse;s.parse=function(p){p.date=a.bind(this)(p),u.bind(this)(p)};var c=s.set,f=s.add,d=s.subtract,h=function(p,g,y,_){_===void 0&&(_=1);var w=Object.keys(g),v=this;return w.forEach(function(x){v=p.bind(v)(g[x]*_,x)}),v};s.set=function(p,g){return g=g===void 0?p:g,p.constructor.name==="Object"?h.bind(this)(function(y,_){return c.bind(this)(_,y)},g,p):c.bind(this)(p,g)},s.add=function(p,g){return p.constructor.name==="Object"?h.bind(this)(f,p,g):f.bind(this)(p,g)},s.subtract=function(p,g){return p.constructor.name==="Object"?h.bind(this)(f,p,g,-1):d.bind(this)(p,g)}}})})(Bh);var Gw=Bh.exports,Jw=Kt(Gw),Th={exports:{}};(function(i,t){(function(e,r){i.exports=r()})(Vt,function(){var e,r,n=1e3,s=6e4,a=36e5,u=864e5,c=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,f=31536e6,d=2628e6,h=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,p={years:f,months:d,days:u,hours:a,minutes:s,seconds:n,milliseconds:1,weeks:6048e5},g=function(C){return C instanceof N},y=function(C,F,S){return new N(C,S,F.$l)},_=function(C){return r.p(C)+"s"},w=function(C){return C<0},v=function(C){return w(C)?Math.ceil(C):Math.floor(C)},x=function(C){return Math.abs(C)},b=function(C,F){return C?w(C)?{negative:!0,format:""+x(C)+F}:{negative:!1,format:""+C+F}:{negative:!1,format:""}},N=function(){function C(S,I,A){var O=this;if(this.$d={},this.$l=A,S===void 0&&(this.$ms=0,this.parseFromMilliseconds()),I)return y(S*p[_(I)],this);if(typeof S=="number")return this.$ms=S,this.parseFromMilliseconds(),this;if(typeof S=="object")return Object.keys(S).forEach(function(q){O.$d[_(q)]=S[q]}),this.calMilliseconds(),this;if(typeof S=="string"){var L=S.match(h);if(L){var z=L.slice(2).map(function(q){return q!=null?Number(q):0});return this.$d.years=z[0],this.$d.months=z[1],this.$d.weeks=z[2],this.$d.days=z[3],this.$d.hours=z[4],this.$d.minutes=z[5],this.$d.seconds=z[6],this.calMilliseconds(),this}}return this}var F=C.prototype;return F.calMilliseconds=function(){var S=this;this.$ms=Object.keys(this.$d).reduce(function(I,A){return I+(S.$d[A]||0)*p[A]},0)},F.parseFromMilliseconds=function(){var S=this.$ms;this.$d.years=v(S/f),S%=f,this.$d.months=v(S/d),S%=d,this.$d.days=v(S/u),S%=u,this.$d.hours=v(S/a),S%=a,this.$d.minutes=v(S/s),S%=s,this.$d.seconds=v(S/n),S%=n,this.$d.milliseconds=S},F.toISOString=function(){var S=b(this.$d.years,"Y"),I=b(this.$d.months,"M"),A=+this.$d.days||0;this.$d.weeks&&(A+=7*this.$d.weeks);var O=b(A,"D"),L=b(this.$d.hours,"H"),z=b(this.$d.minutes,"M"),q=this.$d.seconds||0;this.$d.milliseconds&&(q+=this.$d.milliseconds/1e3,q=Math.round(1e3*q)/1e3);var j=b(q,"S"),P=S.negative||I.negative||O.negative||L.negative||z.negative||j.negative,Z=L.format||z.format||j.format?"T":"",W=(P?"-":"")+"P"+S.format+I.format+O.format+Z+L.format+z.format+j.format;return W==="P"||W==="-P"?"P0D":W},F.toJSON=function(){return this.toISOString()},F.format=function(S){var I=S||"YYYY-MM-DDTHH:mm:ss",A={Y:this.$d.years,YY:r.s(this.$d.years,2,"0"),YYYY:r.s(this.$d.years,4,"0"),M:this.$d.months,MM:r.s(this.$d.months,2,"0"),D:this.$d.days,DD:r.s(this.$d.days,2,"0"),H:this.$d.hours,HH:r.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:r.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:r.s(this.$d.seconds,2,"0"),SSS:r.s(this.$d.milliseconds,3,"0")};return I.replace(c,function(O,L){return L||String(A[O])})},F.as=function(S){return this.$ms/p[_(S)]},F.get=function(S){var I=this.$ms,A=_(S);return A==="milliseconds"?I%=1e3:I=A==="weeks"?v(I/p[A]):this.$d[A],I||0},F.add=function(S,I,A){var O;return O=I?S*p[_(I)]:g(S)?S.$ms:y(S,this).$ms,y(this.$ms+O*(A?-1:1),this)},F.subtract=function(S,I){return this.add(S,I,!0)},F.locale=function(S){var I=this.clone();return I.$l=S,I},F.clone=function(){return y(this.$ms,this)},F.humanize=function(S){return e().add(this.$ms,"ms").locale(this.$l).fromNow(!S)},F.valueOf=function(){return this.asMilliseconds()},F.milliseconds=function(){return this.get("milliseconds")},F.asMilliseconds=function(){return this.as("milliseconds")},F.seconds=function(){return this.get("seconds")},F.asSeconds=function(){return this.as("seconds")},F.minutes=function(){return this.get("minutes")},F.asMinutes=function(){return this.as("minutes")},F.hours=function(){return this.get("hours")},F.asHours=function(){return this.as("hours")},F.days=function(){return this.get("days")},F.asDays=function(){return this.as("days")},F.weeks=function(){return this.get("weeks")},F.asWeeks=function(){return this.as("weeks")},F.months=function(){return this.get("months")},F.asMonths=function(){return this.as("months")},F.years=function(){return this.get("years")},F.asYears=function(){return this.as("years")},C}(),E=function(C,F,S){return C.add(F.years()*S,"y").add(F.months()*S,"M").add(F.days()*S,"d").add(F.hours()*S,"h").add(F.minutes()*S,"m").add(F.seconds()*S,"s").add(F.milliseconds()*S,"ms")};return function(C,F,S){e=S,r=S().$utils(),S.duration=function(O,L){var z=S.locale();return y(O,{$l:z},L)},S.isDuration=g;var I=F.prototype.add,A=F.prototype.subtract;F.prototype.add=function(O,L){return g(O)?E(this,O,1):I.bind(this)(O,L)},F.prototype.subtract=function(O,L){return g(O)?E(this,O,-1):A.bind(this)(O,L)}}})})(Th);var Xw=Th.exports,Qw=Kt(Xw);jt.extend(xa),jt.extend(Ea),jt.extend(Kw),jt.extend(Jw),jt.extend(Qw);class Ih{constructor(t,e,r){$(this,"array");$(this,"color");$(this,"math");$(this,"str");$(this,"map");$(this,"matrix");$(this,"timeframe");$(this,"ta");$(this,"input");$(this,"_variables");$(this,"_cacheData");$(this,"_options");$(this,"_errorListener");$(this,"_plots");$(this,"_plotshapes");$(this,"_plotbars");$(this,"_plotchars");$(this,"_plotarrows");$(this,"_plotcandles");$(this,"_alerts");$(this,"_bgColors");$(this,"_hlines");$(this,"_fills");$(this,"chart");$(this,"line");$(this,"label");$(this,"polyline");$(this,"box");$(this,"table");$(this,"linefill");$(this,"log");$(this,"runtime");$(this,"strategy");$(this,"request");$(this,"syminfo");$(this,"_count",0);var s;const n=((s=t.toString().split(".")[1])==null?void 0:s.length)||5;this._variables=e,this._errorListener=new sD,this.array=new Bp(this._errorListener),this.math=new Tp(n,this._errorListener),this.color=new iy,this.str=new aw(this._errorListener,n),this.map=new uw(this._errorListener),this.timeframe=new iw(e),this.matrix=new nw(this._errorListener),this.ta=new ry(e,this.math,this.timeframe),this._cacheData={},this._options={},this._bgColors={},this._alerts=new Map,this._hlines=new Map,this._fills=new Map,this.input=new ny(e,this._errorListener,r),this._plots=new Map,this._plotshapes=new Map,this._plotbars=new Map,this._plotcandles=new Map,this._plotchars=new Map,this._plotarrows=new Map,this.chart={point:new lw(e)},this.line=new Bw(e,this._errorListener),this.label=new cw(e,this._errorListener),this.polyline=new Ow(e,this._errorListener),this.box=new Iw(e,this._errorListener),this.table=new $w(e,this._errorListener),this.linefill=new Tw(e),this.log=new nD(e,this.str),this.runtime=new iD(this._errorListener),this.strategy=new Hw(this._variables,this._options,t,this._errorListener,r),this.request=new eD(this._variables,r),this.syminfo=new rD}get errors(){return this._errorListener.errors}get scriptType(){return this._options.scriptType}options(t){if(t.length)return this._getDataOfBarindex(t);const e=this.input.getInputs(),r=this._alerts.size?[...this._alerts.values()]:void 0;this._alerts.clear();const n=Object.keys(this._bgColors);let s;if(n.length){s={};for(const v of n)s[v]=[...this._bgColors[v].values()]}const a=this._hlines.size?[...this._hlines.values()]:void 0,u=this._fills.size?[...this._fills.values()]:void 0,c=this.log.logs.length?this.log.logs:void 0;this.log.clearLogs(),this._options.scriptType==="strategy"&&Object.assign(this._options,{orders:this.strategy.orders,historyOrders:this.strategy.historyOrders,strategySummary:this._variables.strategy.summaryData});const f=this._plots.size>0?[...this._plots.values()]:void 0,d=this._plotbars.size>0?[...this._plotbars.values()]:void 0,h=this._plotshapes.size>0?[...this._plotshapes.values()]:void 0,p=this._plotarrows.size>0?[...this._plotarrows.values()]:void 0,g=this._plotcandles.size>0?[...this._plotcandles.values()]:void 0,y=this._plotchars.size>0?[...this._plotchars.values()]:void 0,_=this._getDraws(),w=this._variables.chart.isUseBgColor;return Object.assign(this._options,{inputs:e,plots:f,draws:_,alerts:r,colors:s,hlines:a,fills:u,logs:c,plotshapes:h,plotarrows:p,plotcandles:g,plotchars:y,plotbars:d,isUseBgColor:w})}_getDataOfBarindex(t){const e=this._alerts.size?[...this._alerts.values()]:void 0;this._alerts.clear();const r=Object.keys(this._bgColors);let n;if(r.length){n={};for(const v of r)n[v]=[...this._bgColors[v].values()].map(x=>{const b=[];for(const N of t){const E=x.data[N];E&&b.push(E)}return x.data=b,x})}const s=this._hlines.size?[...this._hlines.values()]:void 0,a=this._fills.size?this._getDataFromBarindex(t,[...this._fills.values()]):void 0,u=this.log.logs.length?this.log.logs:void 0;this.log.clearLogs(),this._options.scriptType==="strategy"&&Object.assign(this._options,{orders:this.strategy.orders,historyOrders:this.strategy.historyOrders});const c=this._getDataFromBarindex(t,[...this._plots.values()]),f=this._plotbars.size>0?this._getDataFromBarindex(t,[...this._plotbars.values()]):void 0,d=this._plotarrows.size>0?this._getDataFromBarindex(t,[...this._plotarrows.values()]):void 0,h=this._plotcandles.size>0?this._getDataFromBarindex(t,[...this._plotcandles.values()]):void 0,p=this._plotchars.size>0?this._getDataFromBarindex(t,[...this._plotchars.values()]):void 0,g=this._plotshapes.size>0?this._getDataFromBarindex(t,[...this._plotshapes.values()]):void 0,y=this._getDrawsFromBarindex(t),_=this._getDrawDeletes(t),w=this._variables.chart.isUseBgColor;return Object.assign(this._options,{plots:c,plotarrows:d,plotcandles:h,plotchars:p,plotbars:f,draws:y,drawDeletes:_,alerts:e,colors:n,hlines:s,fills:a,logs:u,plotshapes:g,isUseBgColor:w})}_getDataFromBarindex(t,e){return e.map(r=>{const n=[];for(const s of t){const a=r.data[s];a&&n.push(a)}return r.data=n,{...r}})}_getDraws(){const{line:t,linefill:e,table:r,box:n,polyline:s,label:a}=this._variables,u={};return t.data.length&&(u.lines=t.data),e.data.length&&(u.linefills=e.data),r.data.length&&(u.tables=r.data),n.data.length&&(u.boxes=n.data),s.data.length&&(u.polylines=s.data),a.data.length&&(u.labels=a.data),Object.keys(u).length?u:void 0}_getDrawsFromBarindex(t){const{line:e,linefill:r,table:n,box:s,polyline:a,label:u}=this._variables,c={};return e.data.length&&(c.lines=e.getValOfBarIndex(t)),r.data.length&&(c.linefills=r.getValOfBarIndex(t)),n.data.length&&(c.tables=n.getValOfBarIndex(t)),s.data.length&&(c.boxes=s.getValOfBarIndex(t)),a.data.length&&(c.polylines=a.getValOfBarIndex(t)),u.data.length&&(c.labels=u.getValOfBarIndex(t)),Object.keys(c).length?c:void 0}_getDrawDeletes(t){const{line:e,linefill:r,table:n,box:s,polyline:a,label:u}=this._variables,c={},f=e.getDeleteIds(t),d=r.getDeleteIds(t),h=n.getDeleteIds(t),p=s.getDeleteIds(t),g=a.getDeleteIds(t),y=u.getDeleteIds(t);return f.length&&(c.lines=f),d.length&&(c.linefills=d),h.length&&(c.tables=h),p.length&&(c.boxes=p),g.length&&(c.polylines=g),y.length&&(c.labels=y),c}updateOptions(t){const{inputs:e,strategy:r}=t;this.input.update(e),r&&this.strategy.updateOptions(r)}update(t){const{barIndex:e}=t;this.strategy.update(),this.math.update(e)}endExecution(){this.strategy.endExecution()}library(t,e){if(!this._variables.bar_index){const r=/^[^\W\d\s][^\W\s]*$/,{title:n}=t;r.test(n)?(Op.includes(n)||Sp.includes(n))&&this._errorListener.addError(He(re.libraryTitleIsKeywordErr,{name:n}),e,Lt.Error):this._errorListener.addError(re.libraryTitleErr,e,Lt.Error),this._options.scriptType="library",this._options.library=t}}indicator(t,e){if(!this._variables.bar_index){const{format:r}=t;this._paramVerfiy(r,e,"indicator",[Gt.inherit,Gt.percent,Gt.price,Gt.volume]),this._variables.updateMaxLength(t),this._options.scriptType="indicator",this._options.indicator=t}}_paramVerfiy(t="",e,r,n,s="format"){t&&!n.includes(t)&&this._errorListener.addError(He(re.paramsErr,{value:t,func:r,param:s,targetVal:`[${n.join(", ")}]`}),e,Lt.Error)}_lineWidthVerify(t,e){const{linewidth:r=1}=t;r<1&&(this._errorListener.addError(Fp.lineWidthWarning,e,Lt.Warning),t.linewidth=1)}plot(t,e){const r=["color"];ge(t,r);const{series:n,color:s,...a}=t,{bar_index:u,time:c}=this._variables,f=`plot_${e}`,d=this._plots.get(f),h=(d==null?void 0:d.data)||[],p=n!==void 0&&isNaN(n)?void 0:n;if(h[u]={value:[c,p],itemStyle:{color:s}},this._seriesColorHandle(t,r,d),!d){this._count++,this._lineWidthVerify(a,e),this._paramVerfiy(t.format,e,"plot",[Gt.percent,Gt.price,Gt.volume]);const g=s?[s]:void 0;this._plots.set(f,{editable:!0,...a,colors:g,data:h,id:f,zIndex:this._count})}return{type:"plot",key:f}}plotbar(t,e){const r=["color"];ge(t,r);const{open:n,close:s,low:a,high:u,color:c,...f}=t,{bar_index:d,time:h}=this._variables,p=`plotbar_${e}`,g=this._plotbars.get(p),y=(g==null?void 0:g.data)||[],_=s!==void 0&&isNaN(s)?void 0:s,w=n!==void 0&&isNaN(n)?void 0:n,v=a!==void 0&&isNaN(a)?void 0:a,x=u!==void 0&&isNaN(u)?void 0:u,b=[h,w,_,v,x];if(y[d]={value:b,itemStyle:{color:c}},this._seriesColorHandle(t,r,g),!g){this._count++,this._paramVerfiy(t.format,e,"plotbar",[Gt.percent,Gt.price,Gt.volume]);const N=c?[c]:void 0;this._plotbars.set(p,{editable:!0,...f,colors:N,data:y,id:p,zIndex:this._count})}}_verfiyArgs(t,e,r){const{size:n,format:s,location:a,style:u}=t;this._paramVerfiy(u,r,e,Object.values(lr),"style"),this._paramVerfiy(a,r,e,Object.values(cn),"location"),this._paramVerfiy(n,r,e,Object.values(ir),"size"),this._paramVerfiy(s,r,e,[Gt.percent,Gt.price,Gt.volume],"format")}plotchar(t,e){const r=["color","textcolor"];ge(t,r);const{series:n,color:s,textcolor:a,location:u=cn.abovebar,...c}=t,{bar_index:f,time:d,high:h,low:p}=this._variables,g=`plotchar_${e}`,y=this._plotchars.get(g),_=(y==null?void 0:y.data)||[],w={value:[d,n],itemStyle:{color:s,textcolor:a},low:p,high:h};_[f]=w,this._seriesColorHandle(t,r,y),y||(this._count++,this._verfiyArgs(t,"plotchar",e),this._plotchars.set(g,{editable:!0,...c,location:u,data:_,id:g,zIndex:this._count}))}plotarrow(t,e){const r=["colorup","colordown"];ge(t,r);const{series:n,colorup:s,colordown:a,...u}=t,{bar_index:c,time:f,low:d,high:h}=this._variables,p=`plotarrow_${e}`,g=this._plotarrows.get(p),y=(g==null?void 0:g.data)||[];y[c]={value:[f,n!==void 0&&isNaN(n)?void 0:n],itemStyle:{colorup:s,colordown:a},low:d,high:h},this._seriesColorHandle(t,r,g),g||(this._count++,this._paramVerfiy(t.format,e,"plotarrow",[Gt.percent,Gt.price,Gt.volume]),this._plotarrows.set(p,{editable:!0,...u,data:y,id:p,zIndex:this._count}))}plotshape(t,e){const r=["color","textcolor"];ge(t,r);const{series:n,color:s,textcolor:a,location:u=cn.abovebar,...c}=t,{bar_index:f,time:d,low:h,high:p}=this._variables,g=`plotshape_${e}`,y=this._plotshapes.get(g),_=(y==null?void 0:y.data)||[],w={value:n,color:s,textcolor:a,time:d,low:h,high:p};if(_[f]=w,this._seriesColorHandle(t,r,y),!y){this._count++;const v=s?[s]:void 0;this._verfiyArgs(t,"plotshape",e),this._plotshapes.set(g,{editable:!0,...c,data:_,location:u,id:g,colors:v,zIndex:this._count})}}plotcandle(t,e){const r=["wickcolor","bordercolor","color"];ge(t,r);const{wickcolor:n,bordercolor:s,color:a,close:u,open:c,low:f,high:d,...h}=t,{bar_index:p,time:g}=this._variables,y=`plotcandle_${e}`,_=this._plotcandles.get(y),w=(_==null?void 0:_.data)||[],v=u!==void 0&&isNaN(u)?void 0:u,x=c!==void 0&&isNaN(c)?void 0:c,b=f!==void 0&&isNaN(f)?void 0:f,N=d!==void 0&&isNaN(d)?void 0:d,E=[g,x,v,b,N];w[p]={value:E,wickcolor:n,bordercolor:s,color:a},this._seriesColorHandle(t,r,_),_||(this._count++,this._paramVerfiy(t.format,e,"plotcandle",[Gt.percent,Gt.price,Gt.volume]),this._plotcandles.set(y,{editable:!0,...h,data:w,id:y,zIndex:this._count}))}hline(t,e){const r=`hline_${e}`;ge(t,["color"]),this._verifyDisplay(t.display,"hline",e);const s=t.display&&!t.display.length?Ze.none:Ze.all;return this._hlines.has(r)||(this._count++,this._lineWidthVerify(t,e),this._hlines.set(r,{id:r,linewidth:1,editable:!0,display:s,...t,zIndex:this._count})),{type:"hline",key:r}}fill(t,e){var S,I,A,O,L,z,q,j,P,Z;const r=["color","top_color","bottom_color"];ge(t,r);const{color:n,top_color:s,bottom_color:a,seriesColors:u,hline1:c,hline2:f,plot1:d,plot2:h,top_value:p,bottom_value:g,...y}=t,{bar_index:_,time:w}=this._variables,v=`fill_${e}`,x=this._fills.get(v),b=(x==null?void 0:x.data)||[];this._verifyDisplay(t.display,"fill",e);const N=t.display&&!t.display.length?Ze.none:Ze.all;let E,C,F="plot";if(c&&f)E=(S=this._hlines.get(c==null?void 0:c.key))==null?void 0:S.price,C=(I=this._hlines.get(f==null?void 0:f.key))==null?void 0:I.price,F="hline";else{const W=((A=this._plots.get(d==null?void 0:d.key))==null?void 0:A.data)||[],X=((O=this._plots.get(h==null?void 0:h.key))==null?void 0:O.data)||[];E=(z=(L=W[_])==null?void 0:L.value)==null?void 0:z[1],C=(j=(q=X[_])==null?void 0:q.value)==null?void 0:j[1]}if(b[_]={time:w,color:n,top_color:s,bottom_color:a,plot1:E,plot2:C,top_value:p,bottom_value:g},this._seriesColorHandle(t,r,x),!x){this._count++;const W=((P=this._options.indicator)==null?void 0:P.explicit_plot_zorder)||((Z=this._options.strategy)==null?void 0:Z.explicit_plot_zorder),X=n?[n]:void 0,J=s?[s]:void 0,ct=a?[a]:void 0;this._fills.set(v,{id:v,colors:X,top_colors:J,bottom_colors:ct,display:N,data:b,type:F,editable:!0,fillgaps:!1,hline1:c,hline2:f,plot1:d,plot2:h,...y,zIndex:W?this._count:void 0})}}alert({message:t,freq:e=Wr.freqOncePerBar},r){const{bar_index:n,_isRealTimeBar:s,last_bar_index:a}=this._variables,u=`alert_${r}`,c=this._cacheData[u]||{},f=c.barIndex;if(this._paramVerfiy(e,r,"alert",[Wr.freqAll,Wr.freqOncePerBar,Wr.freqOncePerBarClose]),e===Wr.freqOncePerBar&&n===f){this._alerts.delete(u);return}this._cacheData[u]=c;const d={message:t,freq:e,id:u,type:"alert"};if(s){e!==Wr.freqOncePerBarClose&&this._alerts.set(u,d),c.barIndex=n;return}if(!s&&e===Wr.freqOncePerBarClose&&n===f&&a===n-1){this._alerts.set(u,d),c.barIndex=n;return}this._alerts.delete(u)}alertcondition({condition:t,message:e,title:r},n){const{_isRealTimeBar:s}=this._variables,a=`alertcondition_${n}`;s&&t?this._alerts.set(a,{message:e,title:r,id:a,type:"alertcondition"}):this._alerts.delete(a)}barcolor(t,e){this._setColors(t,"barcolor",e)}bgcolor(t,e){this._setColors(t,"bgcolor",e)}_verifyDisplay(t=xh.all,e,r){t.length&&t.length<4&&this._errorListener.addError(He(re.displayErr,{func:e,values:"[display.none, display.all]"}),r,Lt.Error)}_setColors(t,e,r){ge(t,["color"]);const{color:s,...a}=t;this._verifyDisplay(a.display,e,r);const u=t.display&&!t.display.length?Ze.none:Ze.all,{bar_index:c,time:f}=this._variables,d=`${e}_${r}`;this._bgColors[e]||(this._bgColors[e]=new Map);const h=this._bgColors[e].get(d),p=(h==null?void 0:h.data)||[],g=(h==null?void 0:h.setColors)||[];s&&!g.includes(s)&&g.push(s),p[c]={color:s,time:f},h||this._bgColors[e].set(d,{...a,display:u,data:p,setColors:g,id:d})}max_bars_back({var:t,num:e,var_name:r}){console.log(t,e,r)}float({x:t}){return t}bool({x:t}){return t||!1}string({x:t}){return t}int({x:t}){return t&&Math.trunc(t)}na({x:t}){return!!(t===void 0||typeof t=="number"&&isNaN(t))}fixnan({source:t},e){return t===void 0||typeof t=="number"&&isNaN(t)?this._cacheData[`fixnan_${e}`]:(this._cacheData[`fixnan_${e}`]=t,t)}nz({source:t,replacement:e}){return t!==void 0&&!(typeof t=="number"&&isNaN(t))?t:e||0}time({timeframe:t="",session:e,timezone:r,bars_back:n=0},s){return this._timeHandle(this._variables.time,s,t,e,r,n)}time_close({timeframe:t="",session:e,timezone:r,bars_back:n=0},s){return this._timeHandle(this._variables.time,s,t,e,r,n,!0)}timestamp(t){const{dateString:e,timezone:r,year:n,month:s,day:a,hour:u=0,minute:c=0,second:f=0}=t;if(e)return jt(e).utc(!/GMT|UTC/.test(e)).valueOf();let d=s-1,h=n;if(d<0){const p=Math.ceil(Math.abs(d/12));d=12*p+d,h=n-p}return mr({year:h,month:d,day:a,hour:u,minute:c,second:f},r).valueOf()}weekofyear({time:t,timezone:e}){return mr(t,e).week()}year({time:t,timezone:e}){return mr(t,e).year()}second({time:t,timezone:e}){return mr(t,e).second()}month({time:t,timezone:e}){return mr(t,e).month()+1}minute({time:t,timezone:e}){return mr(t,e).minute()}hour({time:t,timezone:e}){return mr(t,e).hour()}dayofweek({time:t,timezone:e}){return mr(t,e).day()+1}dayofmonth({time:t,timezone:e}){return mr(t,e).date()}_calcTimeOffset(t,e){const r=this._variables.getTimeTradingday(t,this._variables.timeframe.period),n=gr(e,t)*1e3;return t-r-Math.floor((t-r)/n)*n}_timeHandle(t,e,r="",n,s,a=0,u=!1){const c=r||this._variables.__period,f=gr(c,t),d=gr(this._variables.__period,t);let h;if(f<=d)h=t,u&&(h+=d*1e3);else{const p=`time_${e}`,g=this._cacheData[p];if(g)g.currentTime+f*1e3-g.offset<=t?(h=t,this._cacheData[p]={currentTime:t,offset:0}):h=g.currentTime;else{const y=this._calcTimeOffset(t,c);this._cacheData[p]={currentTime:t,offset:y},h=t}u&&(h+=f*1e3)}if(n&&n!==Mn.regular&&n!==Mn.extended){const{timePeriods:p,weeks:g}=this._parserSession(n,e),y=mr(t,s),_=y.format("YYYY-MM-DD HH:mm"),w=y.format("YYYY-MM-DD"),v=h,x=mr(h,s).format("YYYY-MM-DD HH:mm");h=void 0;for(const N of p){const[E,C]=N;let F;if(E===C&&(F=y.add(1,"day").format("YYYY-MM-DD")),jt(_).isBetween(`${w} ${E}`,`${F||w} ${C}`,"hour","[)")){jt(x).isBetween(`${w} ${E}`,`${F||w} ${C}`,"hour","[)")?h=v:h=mr(`${w} ${E}`,s).valueOf();break}}const b=this._variables.dayofweek;h&&!g.includes(b)&&(h=void 0)}return h&&h-a*d*1e3}_seriesColorHandle(t,e,r){var n;if(r&&e!=null&&e.length)for(const s of e){if((n=r.gradientColorKeys)!=null&&n.includes(s))continue;const a=t[s];if(!a)continue;const u=r[`${s}s`]||[];u.includes(a)||(u.push(a),r[`${s}s`]=u,u.length>5&&(r[`${s}s`]=[],r.gradientColorKeys=r.gradientColorKeys||[],r.gradientColorKeys.push(s)))}}_parserSession(t,e){const r=t.split(":"),n=r[0],a=(r[1]||"1234567").split("").map(c=>{const f=parseInt(c,10);if(f<1||f>7){this._errorListener.addError(`Invalid day of week: ${c}`,e,Lt.Error);return}return f});return{timePeriods:n.split(",").map(c=>{c===""||c===Mn.regular?c="0930-1500":c===Mn.extended&&(c="1500-1830");const f=c.split("-");return f.length!==2?(this._errorListener.addError(`Invalid time period: ${c}`,e,Lt.Error),[]):[this._processTime(f[0],e),this._processTime(f[1],e)]}),weeks:a}}_processTime(t,e){const r=parseInt(t.slice(0,2),10),n=parseInt(t.slice(2),10);if(!(r>=0&&r<=23)&&n>=0&&n<=59){this._errorListener.addError("Invalid time: Time must be within 00:00 to 23:59",e,Lt.Error);return}return`${r}:${n}`}}const tD={1:"1M",3:"3M",5:"5M",15:"15M",30:"30M",45:"45M",60:"1H",120:"2H",180:"3H",240:"4H",D:"1D",W:"1W",M:"1MTH","3M":"3MTH","6M":"6MTH","12M":"12MTH"};let eD=class{constructor(t,e){$(this,"_variables");$(this,"_scriptId");$(this,"_cacheData");this._variables=t,this._scriptId=e,this._cacheData=new Map}security(t,e){const r=self.workerStorage.get(`request_${this._scriptId}`),{paramsExpr:n=[]}=t,s=this._getRequestData(t,e);if(r!=null&&r.has(e)){if(!s)return;const c=r.get(e);return this._runScripts(c,e,!1,n,s)}const a=this._parseExprCode(t),u=this._runScripts(a,e,!0,n,s);return r==null||r.set(e,a),u}_parseExprCode(t){let{expression:e,paramsExpr:r=[]}=t,n=[],s=1;e=Xl(e);const a=JSON.parse(e),u=a.pop();let c=(u==null?void 0:u.memberCodes)||{},f=(u==null?void 0:u.depends)||[];if(!f.length)return`return ${u==null?void 0:u.code}`;let d=[],h=[];const p=[];if(this._getDependCodes(f,a,n,d,h,p),n.push(...p),h.length){const _=r.length;let w=[];for(let v=_-1;v>=0;v--){const x=r[v];let b=JSON.parse(Xl(x));const N=[];s!==0&&h.length&&(w.unshift("{"),s++),b=b.map(S=>{const{scope:I,code:A,varNames:O,dependSelf:L}=S;return I===2&&!N.includes(O)&&!L&&(S.code=`let ${A}`),O&&N.push(...O.split(", ")),S.memberCodes&&Object.assign(c,{...S.memberCodes}),S});const E=[],C=[];let F=h.map(S=>({...S,isArg:!1,isPreArg:!0}));h=[],this._getDependCodes(F,b,C,d,h,E),w.unshift(...C,...E),n=w.concat(n),w=[]}}for(n.push(`return ${u==null?void 0:u.code}`);s>1;)n.push("}"),s--;n=d.concat(n);let g=n.join(`
63
63
  `);const y=[];for(const _ of Object.keys(c))g.includes(`$_var.getCacheData("${_}"`)&&y.push(c[_]);return y.length&&(g=`${y.join(`
64
64
  `)}
65
- ${g}`),g}_getRequestData(t,e){var N,E,C,F;let{symbol:r,timeframe:n,calc_bars_count:s,gaps:a,lookahead:u,ignore_invalid_symbol:c}=t;const{__period:f,syminfo:{ticker:d,tickerid:h},mintick:p,time:g,nextBarTime:y=0}=this._variables;if(n=rc(n),(f===n||n==="")&&(r===d||r===h)){const{close:S,open:I,high:A,low:O,bar_index:L,last_bar_index:z,last_bar_time:q,_isRealTimeBar:j,volume:P,time:Z,time_tradingday:W}=this._variables;return{barIndex:L,c:S,o:I,h:A,l:O,volume:P,lastBarIndex:z,lastBarTime:q/1e3,nextBarTime:y,isrealtime:j,time_tradingday:W,time:Z/1e3,interval:f,mintick:p}}const _=`${r}--${n||f}`,w=self.workerStorage.get(`request_${this._scriptId}_data`),v=self.workerStorage.get(`request_${this._scriptId}_list`),x=self.workerStorage.get(`request_${this._scriptId}_tmp`),b={id:_,calc_bars_count:s,ignore_invalid_symbol:c,symbol:r,timeframe:tD[n||f]||n};if(w!=null&&w.has(_)){let S=gr(n,g)*1e3;const I=gr(f,g)*1e3;x==null||x.delete(_),e=`${e}_${_}`;const{index:A=0,periodStamp:O=I}=this._cacheData.get(e)||{},L=w==null?void 0:w.get(_);if(!L.length)return;const z=L.slice(A);let q=g,j=O+q;const P=L.length-1;if(P<0)return;const Z={lastBarIndex:L[P].barindex||P,lastBarTime:L[P].time,interval:n,mintick:p};if(S>O){let W;if(u===ln.lookaheadOn?W=this._lookaheadOnHandle(z,n,j,S,Z,A,O,e,q,a):W=this._lookaheadOffHandle(z,n,j,S,Z,A,O,e,q,y,a),W)return W;if(W===null)return}else if(u===ln.lookaheadOn)for(const[W,X]of z.entries()){let{time:J,barindex:ct}=X;J=J*1e3;const gt=((N=z[W+1])==null?void 0:N.time)||0;let st=A+W;if(J>=j){this._cacheData.set(e,{index:st,periodStamp:O});return}if(J<=q&&gt*1e3>q){const yt=A+W+1;return this._cacheData.set(e,{index:yt,periodStamp:O}),{...X,barIndex:ct||yt-1,nextBarTime:gt,...Z}}}else for(const[W,X]of z.entries()){let{time:J,barindex:ct}=X;J=J*1e3;const gt=((E=z[W+1])==null?void 0:E.time)||0;let st=A+W;if(J>j){this._cacheData.set(e,{index:st,periodStamp:O});return}if(J<=j&&j<gt*1e3)return this._cacheData.set(e,{index:st+1,periodStamp:O}),{...X,barIndex:ct||st,nextBarTime:(C=z[W+1])==null?void 0:C.time,...Z};if(J>=q&&J<=j&&(ct||st)===Z.lastBarIndex)return this._cacheData.set(e,{index:st,periodStamp:O}),{...X,barIndex:ct||st,nextBarTime:(F=z[W+1])==null?void 0:F.time,...Z}}this._cacheData.set(e,{index:L.length,periodStamp:O})}else(v==null?void 0:v.get(_))||x==null||x.set(_,b);v==null||v.set(_,b)}_lookaheadOnHandle(t,e,r,n,s,a,u,c,f,d){var h;for(const[p,g]of t.entries()){let{time:y,barindex:_}=g;y=y*1e3,e.includes("M")&&(n=gr(e,y)*1e3-(jt(y).date()-1)*864e5);const w=y,v=n+w;let x=a+p;if(r<=w)return this._cacheData.set(c,{index:x,periodStamp:u}),null;let b={...g,barIndex:_||x,nextBarTime:(h=t[p+1])==null?void 0:h.time,...s};if(d===ln.gapsOn){if(r>w&&f<=w)return this._cacheData.set(c,{index:x+1,periodStamp:u}),b}else{if(r>v)continue;if(r>w)return this._cacheData.set(c,{index:x,periodStamp:u}),b}}}_lookaheadOffHandle(t,e,r,n,s,a,u,c,f,d,h){var p,g;for(const[y,_]of t.entries()){let{time:w,barindex:v}=_;w=w*1e3,e.includes("M")&&(n=gr(e,w)*1e3-(jt(w).date()-1)*864e5);const x=w,b=n+x,N=a+y;if(r<x)return this._cacheData.set(c,{index:N,periodStamp:u}),null;const E={..._,barIndex:v||N,nextBarTime:(p=t[y+1])==null?void 0:p.time,...s};if(r>=b&&f<b||r<b&&d>=b)return h===ln.gapsOn?(this._cacheData.set(c,{index:N+1,periodStamp:u}),E):(this._cacheData.set(c,{index:N,data:E,periodStamp:u}),E);if(!(f>b)&&f>=x){let C=(g=this._cacheData.get(c))==null?void 0:g.data;if(!C){const F=t[N-1];if(!F)return null;C={...F,barIndex:F.barindex||N-1,nextBarTime:E.time,...s},this._cacheData.set(c,{index:N,data:C,periodStamp:u})}return C}}}_getDependCodes(t,e,r,n,s,a){for(const u of t){if(!u.isArg){const c=e.filter(d=>{var h;return(h=d==null?void 0:d.depends)==null?void 0:h.some(p=>p.name===u.name&&p.scope===u.scope&&p.isAgainAssign)});for(const d of c){const{code:h,depends:p}=d;if(!r.includes(h)&&(r.unshift(h),p!=null&&p.length)){for(const g of p)g.memberCode&&a.push(g.memberCode);this._getDependCodes(p,e,r,n,s,a)}}const f=e.find(d=>{var h;return((h=d.varNames)==null?void 0:h.split(", ").includes(u.name))&&(!u.isPreArg||u.isPreArg&&d.methodName===u.functionName)||d.funcName===u.name});if(f){const{code:d,depends:h}=f,p=r.findIndex(g=>g===d);if(p!==-1&&r.splice(p,1),r.unshift(d),h!=null&&h.length){for(const g of h)g.memberCode&&a.push(g.memberCode);this._getDependCodes(h,e,r,n,s,a)}continue}}s.some(c=>c.name===u.name)||s.push(u)}}_runScripts(t,e,r,n,s){const a=`${this._scriptId}_${e}`;let{builtInGather:u,buildinConstants:c,buildInFunctions:f,tradingvueFunc:d}=self.workerStorage.get(a)||{};const{interval:h,mintick:p,...g}=s||{};r&&(u=new $h(a),c=new Eh,f=new Ih(this._variables.mintick||1e-5,u,this._scriptId),d=new Function("$_var","$_const","$_func","$paramsExpr","$posStr",t),u.updateOptions({interval:h,mintick:p||1e-5}),self.workerStorage.set(a,{builtInGather:u,buildinConstants:c,buildInFunctions:f,tradingvueFunc:d})),u.updateData(g),f.update({barIndex:(g==null?void 0:g.barindex)||0});const y=d(u,c,f,n||[],e);return f.endExecution(),y}},rD=class{constructor(){}prefix(t){var r;const{symbol:e}=t;return((r=e==null?void 0:e.split("."))==null?void 0:r[0])||""}ticker(t){var r;const{symbol:e}=t;return((r=e==null?void 0:e.split("."))==null?void 0:r[1])||""}};class nD{constructor(t){$(this,"_logs");$(this,"_variables");$(this,"_intlFormat");this._variables=t,this._logs=[],this._intlFormat=new Intl.NumberFormat("en-US")}get logs(){return this._logs}clearLogs(){this._logs=[]}info(t,e,r){this._addLog(t,e,"info",r)}error(t,e,r){this._addLog(t,e,"error",r)}warning(t,e,r){this._addLog(t,e,"warning",r)}_addLog(t,e,r,n){if(typeof e=="string"&&(n=e),n.startsWith("export"))return;const{message:s,formatString:a}=t,{time:u,bar_index:c}=this._variables;let f=s;a&&Array.isArray(e)&&e.length&&(f=a.replace(/{(\d+)}/g,(d,h)=>{if(e.length<=Number(h))return d;let p=e[h];return typeof p=="number"&&(p=this._intlFormat.format(parseFloat(p.toFixed(3)))),typeof p=="object"&&(p.isArray?p=JSON.stringify(p._value):p=p.toString()),p!==void 0?p:"na"})),f&&this._logs.push({message:`[${jt(u).format()}]: ${f}`,time:u,barIndex:c,type:r})}}class iD{constructor(t){$(this,"_errorListener");this._errorListener=t}error({message:t},e){e.startsWith("export")||this._errorListener.addError(t,e,Lt.Error)}}class sD{constructor(){$(this,"_errors");this._errors=new Map}clear(){this._errors.clear()}get errors(){return tn.flatMap([...this._errors.values()])}addError(t,e,r,n=0){const[s,a]=e.split("_").slice(-2),u=this._errors.get(e),c={message:t,endLineNumber:Number(s),startColumn:Number(a)+1,endColumn:Number(a)+n+1,startLineNumber:Number(s),type:r};u?u.push(c):this._errors.set(e,[c])}}class oD{constructor(){$(this,"_isMarketOpen");$(this,"_currentBarIndex");$(this,"_totalBarIndex");$(this,"_isRealTimeBar");$(this,"_preBarIndex");this._currentBarIndex=0,this._totalBarIndex=0,this._isRealTimeBar=!1,this._preBarIndex=0,this._isMarketOpen=!0}update(t,e,r,n){this._preBarIndex=this._currentBarIndex,this._currentBarIndex=t,this._totalBarIndex=e,this._isRealTimeBar=r,this._isMarketOpen=n}get isnew(){return!this._isRealTimeBar||this._preBarIndex!==this._currentBarIndex}get islast(){return this._currentBarIndex===this._totalBarIndex}get isfirst(){return this._currentBarIndex===0}get ishistory(){return!this._isRealTimeBar}get isrealtime(){return this._isRealTimeBar}get isconfirmed(){return!this._isRealTimeBar}get islastconfirmedhistory(){return this._isMarketOpen?this._currentBarIndex===this._totalBarIndex-1||this._currentBarIndex===this._totalBarIndex&&!this._isRealTimeBar:this._currentBarIndex===this._totalBarIndex}}class aD{constructor(t){$(this,"_variables");this._variables=t}get isfirstbar(){return this._variables.timeframe.isdwm?!0:this._variables.time===this._variables.time_tradingday}get isfirstbar_regular(){return this._variables.timeframe.isdwm?!0:this._variables.time===this._variables.time_tradingday}get islastbar(){if(this._variables.timeframe.isdwm)return!0;const{time:t,__period:e}=this._variables,r=gr(e,t);return this._variables.time+r===this._variables.time_tradingday+24*60*60*1e3}get islastbar_regular(){if(this._variables.timeframe.isdwm)return!0;const{time:t,__period:e}=this._variables,r=gr(e,t);return this._variables.time+r===this._variables.time_tradingday+24*60*60*1e3}get ismarket(){return!0}get ispostmarket(){return!1}get ispremarket(){return!1}}class uD{constructor(t){$(this,"_orders");$(this,"_historyOrders");$(this,"_options");$(this,"_max_contracts_held_all",0);$(this,"_max_contracts_held_long",0);$(this,"_max_contracts_held_short",0);$(this,"_max_drawdown",0);$(this,"_max_runup",0);$(this,"_max_runup_percent",0);$(this,"_max_drawdown_percent",0);$(this,"_variables");$(this,"_netprofit",0);$(this,"_eventrades",0);$(this,"_avg_trade_percent");$(this,"_avg_losing_trade_percent");$(this,"_avg_winning_trade_percent");$(this,"_closedtrades",0);$(this,"_losstrades",0);$(this,"_grossloss",0);$(this,"_grossprofit",0);$(this,"_wintrades",0);$(this,"_opentrades_capital_held",0);$(this,"_position_avg_price",0);$(this,"_position_size",0);$(this,"_openprofit",0);$(this,"_preMaxNetValue",0);$(this,"_preMinNetValue",0);$(this,"marginCallLong",0);$(this,"marginCallShort",0);this._orders=[],this._historyOrders=[],this._variables=t}update(t){this._calcMaxDrawdownAndMaxRunup(t)}_calcMaxDrawdownAndMaxRunup(t){if(!this._orders.length&&!this._historyOrders.length)return;let e=0,r=0;const{high:n,low:s,close:a}=t;let u=0;for(const d of this._orders){const{in_price:h,qty:p=0,direction:g}=d,y=g===ce.long?1:-1,_=(n-h)*p,w=(s-h)*p,v=y===1?_:-w,x=y===1?-w:_;u+=(a-h)*y*p,e+=x,r+=v}this._openprofit=u;const c=this.initial_capital,f=c+this._netprofit;this._preMinNetValue=this._preMinNetValue||c,this._preMaxNetValue=this._preMaxNetValue||c,e=this._preMaxNetValue-f+Math.max(e,0),r=f-this._preMinNetValue+r,this._max_drawdown<e&&(this._max_drawdown=e,this._max_drawdown_percent=e/this._preMaxNetValue*100),r>this._max_runup&&(this._max_runup=r,this._max_runup_percent=r/(this._preMinNetValue+r)*100)}updateOrders(t){this._orders=t,this._calcMaxContracts()}_calcMaxContracts(){const t=this._orders.length;if(!t){this._position_size=0,this._position_avg_price=void 0,this._opentrades_capital_held=0;return}const[e,r,n,s,a,u,c]=this._orders.reduce(([f,d,h,p,g,y,_],w)=>{const{direction:v,qty:x=0,in_price:b,commission:N=0}=w;return v===ce.long?(f+=x,d+=x,y+=x):(f+=x,h+=x,y-=x),p+=x*b,g+=b,_+=N,[f,d,h,p,g,y,_]},[0,0,0,0,0,0,0]);this._historyOrders.length||(this._netprofit=-c,this._grossloss=c),this._position_size=u,this._position_avg_price=a/t,this._opentrades_capital_held=s,this._max_contracts_held_all=Math.max(e,this._max_contracts_held_all),this._max_contracts_held_long=Math.max(r,this._max_contracts_held_long),this._max_contracts_held_short=Math.max(n,this._max_contracts_held_short)}updateHistoryOrders(t){this._historyOrders=t;const e=this._historyOrders.length;this._closedtrades=e;const[r,n,s,a,u,c,f,d]=this._historyOrders.reduce((g,y)=>{let[_,w,v,x,b,N,E,C]=g;const{profit:F=0,profit_percent:S=0}=y;return _+=F,w+=S,F<0?(v+=F,x+=S,E+=1):F>0&&(b+=F,N+=S,C+=1),[_,w,v,x,b,N,E,C]},[0,0,0,0,0,0,0,0]),h=this._orders.reduce((g,y)=>{const{commission:_=0,qty:w=0,original_qty:v=0}=y,x=_*w/v;return g+x},0);this._avg_trade_percent=e?n/e:void 0,this._avg_losing_trade_percent=e?Math.abs(a)/f:void 0,this._avg_winning_trade_percent=e?c/d:void 0,this._netprofit=r-h;const p=this.initial_capital+this._netprofit;this._preMaxNetValue=Math.max(this._preMaxNetValue||this.initial_capital,p),this._preMinNetValue=Math.min(this._preMinNetValue||this.initial_capital,p),this._grossloss=Math.abs(s-h),this._grossprofit=u,this._eventrades=e-f-d,this._losstrades=f,this._wintrades=d}updateStrategyOptions(t){this._options=t}get long(){return"long"}get short(){return"short"}get account_currency(){return"USD"}get closedtrades(){return this._closedtrades}get opentrades(){return{opentrades:this._orders.length,capital_held:this._opentrades_capital_held}}get avg_losing_trade(){const t=this._losstrades;return t?Math.abs(this._grossloss/t):void 0}get avg_losing_trade_percent(){return this._avg_losing_trade_percent}get avg_trade(){if(this._closedtrades)return this._netprofit/this._closedtrades}get equity(){return this.initial_capital+this._netprofit+this._openprofit}get netprofit(){return this._netprofit}get eventrades(){return this._eventrades}get openprofit(){return this._openprofit}get avg_trade_percent(){return this._avg_trade_percent}get avg_winning_trade(){const t=this._wintrades;return t?Math.abs(this._grossprofit/t):void 0}get avg_winning_trade_percent(){return this._avg_winning_trade_percent}get initial_capital(){var t;return((t=this._options)==null?void 0:t.initial_capital)||0}get losstrades(){return this._losstrades}get grossloss(){return this._grossloss}get grossloss_percent(){return this._grossloss/this.initial_capital*100}get grossprofit(){return this._grossprofit}get grossprofit_percent(){return this._grossprofit/this.initial_capital*100}get wintrades(){return this._wintrades}get margin_liquidation_price(){if(!this._options)return;const{initial_capital:t,margin_long:e=0,margin_short:r=0,commission_type:n,commission_value:s=0}=this._options,a=this._orders[0].direction===ce.long?1:-1,u=(a===1?e:r)/100;if(u<=0)return;const{close:c}=this._variables,[f,d]=this._orders.reduce((h,p)=>{let[g,y]=h;const{in_price:_,qty:w=0,original_qty:v=0}=p,x=_*w;if(g+=x,s){let b=0;switch(n){case We.percent:b=(x+w*c)*s/100;break;case We.cashPerContract:b=w*s*2;break;case We.cashPerOrder:b=w/v*s+s;break}y+=b}return[g,y]},[0,0]);return(f-(t+this._netprofit-d))*a/this._position_size/(1-a*u)}get max_contracts_held_all(){return this._max_contracts_held_all}get max_contracts_held_long(){return this._max_contracts_held_long}get max_contracts_held_short(){return this._max_contracts_held_short}get max_drawdown(){return this._max_drawdown}get max_runup(){return this._max_runup}get max_runup_percent(){return this._max_runup_percent}get max_drawdown_percent(){return this._max_drawdown_percent}get netprofit_percent(){return this._netprofit/this.initial_capital*100}get openprofit_percent(){return this._openprofit/(this.initial_capital+this._netprofit)*100}get position_avg_price(){return this._position_avg_price}get position_entry_name(){if(this._orders.length)return this._orders[0].id}get position_size(){return this._position_size}get summaryData(){return{position_size:this.position_size,position_avg_price:this.position_avg_price,position_entry_name:this.position_entry_name,openprofit_percent:this.openprofit_percent,netprofit_percent:this.netprofit_percent,max_drawdown_percent:this.max_drawdown_percent,max_runup_percent:this.max_runup_percent,max_drawdown:this.max_drawdown,max_runup:this.max_runup,max_contracts_held_long:this.max_contracts_held_long,max_contracts_held_short:this.max_contracts_held_short,max_contracts_held_all:this.max_contracts_held_all,avg_winning_trade_percent:this.avg_winning_trade_percent,avg_winning_trade:this.avg_winning_trade,avg_trade_percent:this.avg_trade_percent,avg_trade:this.avg_trade,avg_losing_trade:this.avg_losing_trade,avg_losing_trade_percent:this.avg_losing_trade_percent,wintrades:this.wintrades,losstrades:this.losstrades,eventrades:this.eventrades,grossprofit:this.grossprofit,grossprofit_percent:this.grossprofit_percent,grossloss:this.grossloss,grossloss_percent:this.grossloss_percent,openprofit:this.openprofit,initial_capital:this.initial_capital,netprofit:this.netprofit,closedtrades:this.closedtrades,opentrades:this.opentrades,equity:this.equity,margin_call_long:this.marginCallLong,margin_call_short:this.marginCallShort}}_getCommission(t,e){if(!this._options)return 0;const{commission_value:r=0,commission_type:n}=this._options,s=t*e;let a=0;switch(n){case We.percent:a=s*r/100;break;case We.cashPerContract:a=e*r;break;case We.cashPerOrder:a=r;break}return a}}class lD{constructor(t){$(this,"_preAccdist");$(this,"_preNvi");$(this,"_prePvi");$(this,"_preObv");$(this,"_prePvt");$(this,"_preWad");$(this,"_preVwap");$(this,"_preValue");$(this,"_currentData");$(this,"_preData");$(this,"_id");this._preAccdist=0,this._preNvi=0,this._prePvi=0,this._preObv=0,this._prePvt=0,this._preWad=0,this._preVwap={},this._preValue={},this._currentData={},this._preData={},this._id=t}update(t){this._preValue={},t.barIndex!==this._currentData.barIndex&&(this._preData={...this._currentData}),this._currentData={...t}}get isRealTime(){return this._preData.barIndex===this._currentData.barIndex}get accdist(){if(this._preValue.accdist)return this._preValue.accdist;const{close:t,low:e,high:r,volume:n}=this._currentData;if(r===e)return this._preAccdist;const s=(t-e-(r-t))/(r-e)*n+this._preAccdist;return!this.isRealTime&&(this._preAccdist=s),this._preValue.accdist=s,s}get iii(){if(this._preValue.iii)return this._preValue.iii;const{close:t,low:e,high:r,volume:n}=this._currentData,s=(2*t-r-e)/((r-e)*n);return this._preValue.iii=s,s}get nvi(){return this._preValue.nvi?this._preValue.nvi:this._getNvi()}get wvad(){if(this._preValue.wvad)return this._preValue.wvad;const{close:t,low:e,high:r,volume:n,open:s}=this._currentData,a=(t-s)/(r-e)*n;return this._preValue.wvad=a,a}get obv(){if(this._preValue.obv)return this._preValue.obv;const{close:t,volume:e}=this._currentData,{close:r}=this._preData;if(r===void 0){this._preObv=0;return}const n=Math.sign(t-r)*e+this._preObv;return!this.isRealTime&&(this._preObv=n),this._preValue.obv=n,n}get pvi(){return this._preValue.pvi?this._preValue.pvi:this._getPvi()}get tr(){if(this._preValue.tr)return this._preValue.tr;const{low:t,high:e}=this._currentData,{close:r}=this._preData;if(r===void 0)return;const n=Math.max(e-t,Math.abs(e-r),Math.abs(t-r));return this._preValue.tr=n,n}get pvt(){if(this._preValue.pvt)return this._preValue.pvt;const{close:t,volume:e}=this._currentData,{close:r}=this._preData;if(r===void 0){this._prePvt=0;return}const n=(t-r)/r*e+this._prePvt;return!this.isRealTime&&(this._prePvt=n),this._preValue.pvt=n,n}get wad(){if(this._preValue.wad)return this._preValue.wad;const{close:t,high:e,low:r}=this._currentData,{close:n}=this._preData;if(n===void 0)return this._preWad=0,0;const s=Math.max(e,n),a=Math.min(r,n),u=t-n,f=(u>0?t-a:u<0?t-s:0)+this._preWad;return!this.isRealTime&&(this._preWad=f),this._preValue.wad=f,f}get vwap(){var d,h;if(this._preValue.vwap)return this._preValue.vwap;const{hlc3:t,volume:e}=this._currentData;let{sum:r=0,sumV:n=0,isReset:s}=this._preVwap;if(((h=(d=self.workerStorage)==null?void 0:d.get(this._id))==null?void 0:h.buildInFunctions.timeframe.change({timeframe:"1D"},"vwap_buildin"))&&(s=!0,r=n=0),!s)return;const u=t*e+r,c=e+n;!this.isRealTime&&(this._preVwap={sum:u,sumV:c,isReset:s});const f=u/c;return this._preValue.vwap=f,f}_getNvi(){const t=this._preNvi||1,{close:e=0,volume:r=0}=this._preData,{close:n,volume:s}=this._currentData;let a=1;const u=t||1;return n&&e?a=s<r?u+(n-e)/e*u:u:a=u,!this.isRealTime&&(this._preNvi=a),this._preValue.nvi=a,a}_getPvi(){const t=this._prePvi||1,{close:e=0,volume:r=0}=this._preData,{close:n,volume:s}=this._currentData;let a=1;const u=t||1;return n&&e?a=s>r?u+(n-e)/e*u:u:a=u,!this.isRealTime&&(this._prePvi=a),this._preValue.pvi=a,a}}class cD{constructor(){$(this,"_period");$(this,"_multiplier");$(this,"_unit");this._period="1",this._multiplier=1,this._unit="m"}update(t){if(!t)return;this._period=t;const[e,r]=Fs(t);this._multiplier=e,this._unit=r}get isdaily(){return this._unit==="d"}get isdwm(){return["d","w","M"].includes(this._unit)}get isintraday(){return["s","m","h"].includes(this._unit)}get isminutes(){return this._unit==="m"}get ismonthly(){return this._unit==="M"}get isseconds(){return this._unit==="s"}get isweekly(){return this._unit==="w"}get multiplier(){return this._multiplier}get period(){return this._period}}class fD{constructor(t){$(this,"_variables");$(this,"_bgColor");$(this,"_fgColor");$(this,"isUseBgColor",!1);this._variables=t}updateOptions(t){t!=null&&t.bg_color&&(this._bgColor=t.bg_color,this._fgColor=this._contrastColor(t.bg_color))}get bg_color(){return this.isUseBgColor=!0,this._bgColor}get fg_color(){return this.isUseBgColor=!0,this._fgColor}get is_heikinashi(){return!1}get is_kagi(){return!1}get is_linebreak(){return!1}get is_pnf(){return!1}get is_range(){return!1}get is_renko(){return!1}get is_standard(){return!0}get left_visible_bar_time(){return this._variables.time}get right_visible_bar_time(){return this._variables.time}_parseColor(t){let e,r,n,s;if(t.startsWith("#")){e=parseInt(t.substring(1,3),16),r=parseInt(t.substring(3,5),16),n=parseInt(t.substring(5,7),16);const a=t.substring(7);a?s=parseInt(a,16)/255:s=1}else{const a=this._parserRgbColor(t);e=a[0]||0,r=a[1]||0,n=a[2]||0,s=a[3]||1}return{r:e,g:r,b:n,a:s}}_parserRgbColor(t){var e;return((e=t.match(/\d+/g))==null?void 0:e.map(Number))||[]}_contrastColor(t){const{r:e,g:r,b:n}=this._parseColor(t);return(299*e+587*r+114*n)/1e3>128?"#000000":"#ffffff"}}class hD{constructor(t){$(this,"_variables");$(this,"_syminfo",{});this._variables=t}update(t){this._syminfo=t}get basecurrency(){return""}get country(){}get currency(){return"CNY"}get description(){return""}get employees(){return 100}get expiration_date(){}get industry(){}get minmove(){}get mintick(){return this._variables.mintick}get pointvalue(){}get prefix(){return this.tickerid.replace(`:${this.ticker}`,"")}get pricescale(){}get recommendations_buy(){}get recommendations_buy_strong(){}get recommendations_date(){}get recommendations_hold(){}get recommendations_sell(){}get recommendations_sell_strong(){}get recommendations_total(){}get root(){return""}get sector(){}get session(){return Mn.regular}get shareholders(){}get shares_outstanding_float(){}get shares_outstanding_total(){}get target_price_average(){}get target_price_date(){}get target_price_estimates(){}get target_price_high(){}get target_price_low(){}get target_price_median(){}get ticker(){return this._syminfo.ticker||""}get tickerid(){return this._syminfo.tickerid||""}get timezone(){}get type(){}get volumetype(){return"n/a"}}class dD{constructor(t){$(this,"_variables");this._variables=t}get future_amount(){}get future_ex_date(){}get future_pay_date(){}}class pD{constructor(t){$(this,"_variables");this._variables=t}get future_eps(){}get future_period_end_time(){}get future_revenue(){}get future_time(){}}jt.extend(Ap),jt.extend(xa),jt.extend(Ea);class $h{constructor(t){$(this,"_cacheData");$(this,"_barIndex");$(this,"_isRealTimeBar");$(this,"_barstate");$(this,"_priceVariables");$(this,"_lastBarIndex");$(this,"_currentBarTime");$(this,"_lastBarTime");$(this,"_period");$(this,"_offsetTime");$(this,"_timeframe");$(this,"_ta");$(this,"_polyline");$(this,"_label");$(this,"_line");$(this,"_linefill");$(this,"_box");$(this,"_table");$(this,"_strategy");$(this,"_session");$(this,"syminfo");$(this,"chart");$(this,"earnings");$(this,"dividends");$(this,"_timeTradingday");$(this,"_mintick");$(this,"_cacheSpace");$(this,"_precision");$(this,"_nextBarTime");this._cacheData={varData:{},varNewData:{},varipData:{}},this._barIndex=0,this._lastBarIndex=0,this._currentBarTime=0,this._lastBarTime=0,this._offsetTime=0,this._period="",this._isRealTimeBar=!1,this._barstate=new oD,this._timeframe=new cD,this._priceVariables={close:0,open:0,low:0,high:0,volume:0},this._ta=new lD(t),this._polyline=new $i,this._label=new $i,this._line=new $i,this._linefill=new $i,this._box=new $i,this._table=new $i,this._strategy=new uD(this),this._session=new aD(this),this.syminfo=new hD(this),this.chart=new fD(this),this.earnings=new pD(this),this.dividends=new dD(this),this._cacheSpace=new Map}get table(){return this._table}get box(){return this._box}get linefill(){return this._linefill}get line(){return this._line}get polyline(){return this._polyline}get label(){return this._label}get ta(){return this._ta}get strategy(){return this._strategy}get session(){return this._session}get na(){}get last_bar_index(){return this._lastBarIndex}get bar_index(){return this._barIndex}get barstate(){return this._barstate}get close(){return this._priceVariables.close}get low(){return this._priceVariables.low}get open(){return this._priceVariables.open}get high(){return this._priceVariables.high}get volume(){return this._priceVariables.volume}get ohlc4(){const{close:t,open:e,high:r,low:n}=this._priceVariables;return(t+e+r+n)/4}get hl2(){const{high:t,low:e}=this._priceVariables;return(t+e)/2}get hlc3(){const{close:t,high:e,low:r}=this._priceVariables;return(t+e+r)/3}get hlcc4(){const{close:t,high:e,low:r}=this._priceVariables;return(t*2+e+r)/4}get hour(){return jt(this._currentBarTime).hour()}get minute(){return jt(this._currentBarTime).minute()}get second(){return jt(this._currentBarTime).second()}get month(){return jt(this._currentBarTime).month()+1}get year(){return jt(this._currentBarTime).year()}get dayofweek(){return jt(this._currentBarTime).day()}get dayofmonth(){return jt(this._currentBarTime).date()}get weekofyear(){return jt(this._currentBarTime).week()}get last_bar_time(){return this._lastBarTime}get time(){return this._currentBarTime}get time_close(){const[t,e]=Fs(this._period);return this._isRealTimeBar?void 0:jt(this._currentBarTime).add(t,e).valueOf()}get timenow(){return Date.now()}get time_tradingday(){return this._timeTradingday||this.getTimeTradingday(this._currentBarTime,this._period)}get timeframe(){return this._timeframe}get mintick(){return this._mintick}get __period(){return this._period}get precision(){return this._precision}get nextBarTime(){return this._nextBarTime}updateMaxLength(t){const{max_lines_count:e,max_labels_count:r,max_boxes_count:n,max_polylines_count:s}=t;n&&this._box.setMaxLen(n),r&&this._label.setMaxLen(r),e&&this._line.setMaxLen(e),s&&this._polyline.setMaxLen(s)}getTimeTradingday(t,e){const[r,n]=Fs(e),s=jt(t);return["M","w","y","d"].includes(n)?s.valueOf():(s.subtract(this._offsetTime,"h"),s.startOf("d").add(this._offsetTime,"h").valueOf())}updateOptions(t){var f;const{interval:e="1D",offsetTime:r=5,mintick:n,chart:s,syminfo:a}=t,u=((f=n.toString().split(".")[1])==null?void 0:f.length)||5;this._precision=u;const c=this._transformPeriod(e);this._period=c,this._mintick=n,this._offsetTime=r,this._timeframe.update(c),this.chart.updateOptions(s),this.syminfo.update(a)}updateData(t){const{barIndex:e,c:r,o:n,h:s,l:a,volume:u,time:c,lastBarIndex:f,lastBarTime:d,isrealtime:h,time_tradingday:p,nextBarTime:g}=t;this._priceVariables={close:Number(r),open:Number(n),high:Number(s),low:Number(a),volume:Number(u)},this._isRealTimeBar=h,e>this._barIndex&&this._isRealTimeBar&&(this._cacheData.varNewData={}),this._timeTradingday=p,this._currentBarTime=c*1e3,this._lastBarIndex=f,this._barIndex=e,this._lastBarTime=d*1e3,this._nextBarTime=g*1e3,this._barstate.update(e,f,h,!0),this.ta.update({...this._priceVariables,hlc3:this.hlc3,barIndex:e})}getCacheData(t,e,r){const n=this.setCacheData(t,r);return(this._cacheSpace.get(t)||0)<e&&this._cacheSpace.set(t,e),n[n.length-1-e]}setCacheData(t,e){let r=this._cacheData[t]||{barIndex:-1,data:[]};if(r.barIndex>this._barIndex)return r.data;r.barIndex===this._barIndex?r.data[r.data.length-1]=e:r.data.push(e);const n=this._cacheSpace.get(t);return n&&r.data.length>n+5&&r.data.shift(),r.barIndex=this._barIndex,this._cacheData[t]=r,r.data}getTypeInstance(t,e){return new wp(t,e)}verifyVarAndVarip(t,e,r){const n=`${t}_${e}`;return r==="var"&&this._cacheData.varData.hasOwnProperty(n)?(this._upadteChartDraws(this._cacheData.varData[n]),!0):r==="varip"&&this._cacheData.varipData.hasOwnProperty(n)?(this._upadteChartDraws(this._cacheData.varipData[n]),!0):!1}getVarValue(t,e,r){const n=`${t}_${e}`;return r==="var"?this._isRealTimeBar&&this._cacheData.varNewData.hasOwnProperty(n)?this._cacheData.varNewData[n]:this._cacheData.varData[n]:this._cacheData.varipData[n]}setVarValue(t,e,r,n){var u;const s=`${t}_${e}`;let a;switch(typeof r=="object"&&((u=r==null?void 0:r.varipKeys)!=null&&u.length)&&(n="var",a=r.varipKeys),this._chartDrawsHandle(r,this._cacheData.varData[s]||this._cacheData.varipData[s]),n){case"var":if(this._isRealTimeBar){if(this._cacheData.varNewData[s]=r,a&&a.length)for(const c of a)this._cacheData.varData[s][c]=r[c]}else this._cacheData.varData[s]=r;break;case"varip":this._cacheData.varipData[s]=r;break}return r}_upadteChartDraws(t){const e=t==null?void 0:t.id;if(e)switch(t==null?void 0:t.type){case Fe.BOX:this._setChartDraw(e,this._box);break;case Fe.LINE:this._setChartDraw(e,this._line);break;case Fe.POLYLINE:this._setChartDraw(e,this._polyline);break;case Fe.LABEL:this._setChartDraw(e,this._label);break;case Fe.LINEFILL:this._setChartDraw(e,this._linefill);break;case Fe.TABLE:this._setChartDraw(e,this._table);break}}_setChartDraw(t,e){const r=e.getInstance(t),n=e.get(t);if(!n||!r)return;const s=(r==null?void 0:r.updateId())||t;e.delete(t),e.set(s,n,r)}_chartDrawsHandle(t,e){const r=e==null?void 0:e.id;let n=t==null?void 0:t.id;r!==n&&(n&&t.data&&(t.data.isVar=!0),r&&e.data&&(e.data.isVar=!1))}add(t,e){return Array.isArray(t)&&Array.isArray(e)?tn.uniq([...t,...e]):typeof t=="number"||typeof e=="number"?Number(t)+Number(e):t+e}sub(t,e){return Array.isArray(t)&&Array.isArray(e)?t.filter(r=>!e.includes(r)):Number(t)-Number(e)}againAssignParse(t,e){var n;if(e)return;const r=(n=t==null?void 0:t.constructor)==null?void 0:n.name;if(r)switch(r){case go.name:case Ah.name:case wo.name:case Ch.name:case vo.name:case yo.name:t==null||t.delete();break}}_transformPeriod(t){return t.includes("MTH")?t=t.replace("MTH","M"):t.includes("M")&&(t=t.replace("M","")),rc(t)}}class $i{constructor(t=50){$(this,"_all");$(this,"_allInstance");$(this,"_pseudoArrayAll");$(this,"_maxLength");this._all=new Map,this._allInstance=new Map,this._pseudoArrayAll=new te,this._maxLength=t}setMaxLen(t){this._maxLength=t}get data(){return[...this._all.values()].slice(-this._maxLength)}get all(){return this._pseudoArrayAll._value=[...this._allInstance.values()],this._pseudoArrayAll}add(t,e,r){if(this.set(t,e,r),this._all.size>this._maxLength){const{bar_index:n}=e;for(const[s,a]of this._all){const{isVar:u,id:c,bar_index:f}=a;if(f===n)break;if(u)continue;this.delete(c);break}}}getValOfBarIndex(t){let e=[];const r=[...this._all.keys()];for(const n of t){const s=r.filter(a=>a.endsWith(`_${n}`));for(const a of s){const u=this._all.get(a);u&&e.push(u)}}return e.length?e:void 0}set(t,e,r){this._all.set(t,e),this._allInstance.set(t,r)}get(t){return this._all.get(t)}getInstance(t){return this._allInstance.get(t)}delete(t){this._all.delete(t),this._allInstance.delete(t)}}/**
65
+ ${g}`),g}_getRequestData(t,e){var N,E,C,F;let{symbol:r,timeframe:n,calc_bars_count:s,gaps:a,lookahead:u,ignore_invalid_symbol:c}=t;const{__period:f,syminfo:{ticker:d,tickerid:h},mintick:p,time:g,nextBarTime:y=0}=this._variables;if(n=rc(n),(f===n||n==="")&&(r===d||r===h)){const{close:S,open:I,high:A,low:O,bar_index:L,last_bar_index:z,last_bar_time:q,_isRealTimeBar:j,volume:P,time:Z,time_tradingday:W}=this._variables;return{barIndex:L,c:S,o:I,h:A,l:O,volume:P,lastBarIndex:z,lastBarTime:q/1e3,nextBarTime:y,isrealtime:j,time_tradingday:W,time:Z/1e3,interval:f,mintick:p}}const _=`${r}--${n||f}`,w=self.workerStorage.get(`request_${this._scriptId}_data`),v=self.workerStorage.get(`request_${this._scriptId}_list`),x=self.workerStorage.get(`request_${this._scriptId}_tmp`),b={id:_,calc_bars_count:s,ignore_invalid_symbol:c,symbol:r,timeframe:tD[n||f]||n};if(w!=null&&w.has(_)){let S=gr(n,g)*1e3;const I=gr(f,g)*1e3;x==null||x.delete(_),e=`${e}_${_}`;const{index:A=0,periodStamp:O=I}=this._cacheData.get(e)||{},L=w==null?void 0:w.get(_);if(!L.length)return;const z=L.slice(A);let q=g,j=O+q;const P=L.length-1;if(P<0)return;const Z={lastBarIndex:L[P].barindex||P,lastBarTime:L[P].time,interval:n,mintick:p};if(S>O){let W;if(u===ln.lookaheadOn?W=this._lookaheadOnHandle(z,n,j,S,Z,A,O,e,q,a):W=this._lookaheadOffHandle(z,n,j,S,Z,A,O,e,q,y,a),W)return W;if(W===null)return}else if(u===ln.lookaheadOn)for(const[W,X]of z.entries()){let{time:J,barindex:ct}=X;J=J*1e3;const gt=((N=z[W+1])==null?void 0:N.time)||0;let st=A+W;if(J>=j){this._cacheData.set(e,{index:st,periodStamp:O});return}if(J<=q&&gt*1e3>q){const yt=A+W+1;return this._cacheData.set(e,{index:yt,periodStamp:O}),{...X,barIndex:ct||yt-1,nextBarTime:gt,...Z}}}else for(const[W,X]of z.entries()){let{time:J,barindex:ct}=X;J=J*1e3;const gt=((E=z[W+1])==null?void 0:E.time)||0;let st=A+W;if(J>j){this._cacheData.set(e,{index:st,periodStamp:O});return}if(J<=j&&j<gt*1e3)return this._cacheData.set(e,{index:st+1,periodStamp:O}),{...X,barIndex:ct||st,nextBarTime:(C=z[W+1])==null?void 0:C.time,...Z};if(J>=q&&J<=j&&(ct||st)===Z.lastBarIndex)return this._cacheData.set(e,{index:st,periodStamp:O}),{...X,barIndex:ct||st,nextBarTime:(F=z[W+1])==null?void 0:F.time,...Z}}this._cacheData.set(e,{index:L.length,periodStamp:O})}else(v==null?void 0:v.get(_))||x==null||x.set(_,b);v==null||v.set(_,b)}_lookaheadOnHandle(t,e,r,n,s,a,u,c,f,d){var h;for(const[p,g]of t.entries()){let{time:y,barindex:_}=g;y=y*1e3,e.includes("M")&&(n=gr(e,y)*1e3-(jt(y).date()-1)*864e5);const w=y,v=n+w;let x=a+p;if(r<=w)return this._cacheData.set(c,{index:x,periodStamp:u}),null;let b={...g,barIndex:_||x,nextBarTime:(h=t[p+1])==null?void 0:h.time,...s};if(d===ln.gapsOn){if(r>w&&f<=w)return this._cacheData.set(c,{index:x+1,periodStamp:u}),b}else{if(r>v)continue;if(r>w)return this._cacheData.set(c,{index:x,periodStamp:u}),b}}}_lookaheadOffHandle(t,e,r,n,s,a,u,c,f,d,h){var p,g;for(const[y,_]of t.entries()){let{time:w,barindex:v}=_;w=w*1e3,e.includes("M")&&(n=gr(e,w)*1e3-(jt(w).date()-1)*864e5);const x=w,b=n+x,N=a+y;if(r<x)return this._cacheData.set(c,{index:N,periodStamp:u}),null;const E={..._,barIndex:v||N,nextBarTime:(p=t[y+1])==null?void 0:p.time,...s};if(r>=b&&f<b||r<b&&d>=b)return h===ln.gapsOn?(this._cacheData.set(c,{index:N+1,periodStamp:u}),E):(this._cacheData.set(c,{index:N,data:E,periodStamp:u}),E);if(!(f>b)&&f>=x){let C=(g=this._cacheData.get(c))==null?void 0:g.data;if(!C){const F=t[N-1];if(!F)return null;C={...F,barIndex:F.barindex||N-1,nextBarTime:E.time,...s},this._cacheData.set(c,{index:N,data:C,periodStamp:u})}return C}}}_getDependCodes(t,e,r,n,s,a){for(const u of t){if(!u.isArg){const c=e.filter(d=>{var h;return(h=d==null?void 0:d.depends)==null?void 0:h.some(p=>p.name===u.name&&p.scope===u.scope&&p.isAgainAssign)});for(const d of c){const{code:h,depends:p}=d;if(!r.includes(h)&&(r.unshift(h),p!=null&&p.length)){for(const g of p)g.memberCode&&a.push(g.memberCode);this._getDependCodes(p,e,r,n,s,a)}}const f=e.find(d=>{var h;return((h=d.varNames)==null?void 0:h.split(", ").includes(u.name))&&(!u.isPreArg||u.isPreArg&&d.methodName===u.functionName)||d.funcName===u.name});if(f){const{code:d,depends:h}=f,p=r.findIndex(g=>g===d);if(p!==-1&&r.splice(p,1),r.unshift(d),h!=null&&h.length){for(const g of h)g.memberCode&&a.push(g.memberCode);this._getDependCodes(h,e,r,n,s,a)}continue}}s.some(c=>c.name===u.name)||s.push(u)}}_runScripts(t,e,r,n,s){const a=`${this._scriptId}_${e}`;let{builtInGather:u,buildinConstants:c,buildInFunctions:f,tradingvueFunc:d}=self.workerStorage.get(a)||{};const{interval:h,mintick:p,...g}=s||{};r&&(u=new $h(a),c=new Eh,f=new Ih(this._variables.mintick||1e-5,u,this._scriptId),d=new Function("$_var","$_const","$_func","$paramsExpr","$posStr",t),u.updateOptions({interval:h,mintick:p||1e-5}),self.workerStorage.set(a,{builtInGather:u,buildinConstants:c,buildInFunctions:f,tradingvueFunc:d})),u.updateData(g),f.update({barIndex:(g==null?void 0:g.barindex)||0});const y=d(u,c,f,n||[],e);return f.endExecution(),y}},rD=class{constructor(){}prefix(t){var r;const{symbol:e}=t;return((r=e==null?void 0:e.split("."))==null?void 0:r[0])||""}ticker(t){var r;const{symbol:e}=t;return((r=e==null?void 0:e.split("."))==null?void 0:r[1])||""}};class nD{constructor(t,e){$(this,"_logs");$(this,"_variables");$(this,"_intlFormat");$(this,"_str");this._variables=t,this._logs=[],this._intlFormat=new Intl.NumberFormat("en-US",{maximumFractionDigits:10}),this._str=e}get logs(){return this._logs}clearLogs(){this._logs=[]}info(t,e,r){this._addLog(t,e,"info",r)}error(t,e,r){this._addLog(t,e,"error",r)}warning(t,e,r){this._addLog(t,e,"warning",r)}_addLog(t,e,r,n){if(typeof e=="string"&&(n=e),n.startsWith("export"))return;const{message:s,formatString:a}=t,{time:u,bar_index:c}=this._variables;let f=s;a&&Array.isArray(e)&&e.length&&(e=e.map(d=>(typeof d=="number"&&(d=parseFloat(this._intlFormat.format(d))),typeof d=="object"&&(d.isArray?d=JSON.stringify(d._value):d=d.toString()),d!==void 0?d:"na")),f=this._str.strformat({formatString:a},e,3)),f&&this._logs.push({message:`[${jt(u).format()}]: ${f}`,time:u,barIndex:c,type:r})}}class iD{constructor(t){$(this,"_errorListener");this._errorListener=t}error({message:t},e){e.startsWith("export")||this._errorListener.addError(t,e,Lt.Error)}}class sD{constructor(){$(this,"_errors");this._errors=new Map}clear(){this._errors.clear()}get errors(){return jr.flatMap([...this._errors.values()])}addError(t,e,r,n=0){const[s,a]=e.split("_").slice(-2),u=this._errors.get(e),c={message:t,endLineNumber:Number(s),startColumn:Number(a)+1,endColumn:Number(a)+n+1,startLineNumber:Number(s),type:r};u?u.push(c):this._errors.set(e,[c])}}class oD{constructor(){$(this,"_isMarketOpen");$(this,"_currentBarIndex");$(this,"_totalBarIndex");$(this,"_isRealTimeBar");$(this,"_preBarIndex");this._currentBarIndex=0,this._totalBarIndex=0,this._isRealTimeBar=!1,this._preBarIndex=0,this._isMarketOpen=!0}update(t,e,r,n){this._preBarIndex=this._currentBarIndex,this._currentBarIndex=t,this._totalBarIndex=e,this._isRealTimeBar=r,this._isMarketOpen=n}get isnew(){return!this._isRealTimeBar||this._preBarIndex!==this._currentBarIndex}get islast(){return this._currentBarIndex===this._totalBarIndex}get isfirst(){return this._currentBarIndex===0}get ishistory(){return!this._isRealTimeBar}get isrealtime(){return this._isRealTimeBar}get isconfirmed(){return!this._isRealTimeBar}get islastconfirmedhistory(){return this._isMarketOpen?this._currentBarIndex===this._totalBarIndex-1||this._currentBarIndex===this._totalBarIndex&&!this._isRealTimeBar:this._currentBarIndex===this._totalBarIndex}}class aD{constructor(t){$(this,"_variables");this._variables=t}get isfirstbar(){return this._variables.timeframe.isdwm?!0:this._variables.time===this._variables.time_tradingday}get isfirstbar_regular(){return this._variables.timeframe.isdwm?!0:this._variables.time===this._variables.time_tradingday}get islastbar(){if(this._variables.timeframe.isdwm)return!0;const{time:t,__period:e}=this._variables,r=gr(e,t);return this._variables.time+r===this._variables.time_tradingday+24*60*60*1e3}get islastbar_regular(){if(this._variables.timeframe.isdwm)return!0;const{time:t,__period:e}=this._variables,r=gr(e,t);return this._variables.time+r===this._variables.time_tradingday+24*60*60*1e3}get ismarket(){return!0}get ispostmarket(){return!1}get ispremarket(){return!1}}class uD{constructor(t){$(this,"_orders");$(this,"_historyOrders");$(this,"_options");$(this,"_max_contracts_held_all",0);$(this,"_max_contracts_held_long",0);$(this,"_max_contracts_held_short",0);$(this,"_max_drawdown",0);$(this,"_max_runup",0);$(this,"_max_runup_percent",0);$(this,"_max_drawdown_percent",0);$(this,"_variables");$(this,"_netprofit",0);$(this,"_eventrades",0);$(this,"_avg_trade_percent");$(this,"_avg_losing_trade_percent");$(this,"_avg_winning_trade_percent");$(this,"_closedtrades",0);$(this,"_losstrades",0);$(this,"_grossloss",0);$(this,"_grossprofit",0);$(this,"_wintrades",0);$(this,"_opentrades_capital_held",0);$(this,"_position_avg_price",0);$(this,"_position_size",0);$(this,"_openprofit",0);$(this,"_preMaxNetValue",0);$(this,"_preMinNetValue",0);$(this,"marginCallLong",0);$(this,"marginCallShort",0);this._orders=[],this._historyOrders=[],this._variables=t}update(t){this._calcMaxDrawdownAndMaxRunup(t)}_calcMaxDrawdownAndMaxRunup(t){if(!this._orders.length&&!this._historyOrders.length)return;let e=0,r=0;const{high:n,low:s,close:a}=t;let u=0;for(const d of this._orders){const{in_price:h,qty:p=0,direction:g}=d,y=g===ce.long?1:-1,_=(n-h)*p,w=(s-h)*p,v=y===1?_:-w,x=y===1?-w:_;u+=(a-h)*y*p,e+=x,r+=v}this._openprofit=u;const c=this.initial_capital,f=c+this._netprofit;this._preMinNetValue=this._preMinNetValue||c,this._preMaxNetValue=this._preMaxNetValue||c,e=this._preMaxNetValue-f+Math.max(e,0),r=f-this._preMinNetValue+r,this._max_drawdown<e&&(this._max_drawdown=e,this._max_drawdown_percent=e/this._preMaxNetValue*100),r>this._max_runup&&(this._max_runup=r,this._max_runup_percent=r/(this._preMinNetValue+r)*100)}updateOrders(t){this._orders=t,this._calcMaxContracts()}_calcMaxContracts(){const t=this._orders.length;if(!t){this._position_size=0,this._position_avg_price=void 0,this._opentrades_capital_held=0;return}const[e,r,n,s,a,u,c]=this._orders.reduce(([f,d,h,p,g,y,_],w)=>{const{direction:v,qty:x=0,in_price:b,commission:N=0}=w;return v===ce.long?(f+=x,d+=x,y+=x):(f+=x,h+=x,y-=x),p+=x*b,g+=b,_+=N,[f,d,h,p,g,y,_]},[0,0,0,0,0,0,0]);this._historyOrders.length||(this._netprofit=-c,this._grossloss=c),this._position_size=u,this._position_avg_price=a/t,this._opentrades_capital_held=s,this._max_contracts_held_all=Math.max(e,this._max_contracts_held_all),this._max_contracts_held_long=Math.max(r,this._max_contracts_held_long),this._max_contracts_held_short=Math.max(n,this._max_contracts_held_short)}updateHistoryOrders(t){this._historyOrders=t;const e=this._historyOrders.length;this._closedtrades=e;const[r,n,s,a,u,c,f,d]=this._historyOrders.reduce((g,y)=>{let[_,w,v,x,b,N,E,C]=g;const{profit:F=0,profit_percent:S=0}=y;return _+=F,w+=S,F<0?(v+=F,x+=S,E+=1):F>0&&(b+=F,N+=S,C+=1),[_,w,v,x,b,N,E,C]},[0,0,0,0,0,0,0,0]),h=this._orders.reduce((g,y)=>{const{commission:_=0,qty:w=0,original_qty:v=0}=y,x=_*w/v;return g+x},0);this._avg_trade_percent=e?n/e:void 0,this._avg_losing_trade_percent=e?Math.abs(a)/f:void 0,this._avg_winning_trade_percent=e?c/d:void 0,this._netprofit=r-h;const p=this.initial_capital+this._netprofit;this._preMaxNetValue=Math.max(this._preMaxNetValue||this.initial_capital,p),this._preMinNetValue=Math.min(this._preMinNetValue||this.initial_capital,p),this._grossloss=Math.abs(s-h),this._grossprofit=u,this._eventrades=e-f-d,this._losstrades=f,this._wintrades=d}updateStrategyOptions(t){this._options=t}get long(){return"long"}get short(){return"short"}get account_currency(){return"USD"}get closedtrades(){return this._closedtrades}get opentrades(){return{opentrades:this._orders.length,capital_held:this._opentrades_capital_held}}get avg_losing_trade(){const t=this._losstrades;return t?Math.abs(this._grossloss/t):void 0}get avg_losing_trade_percent(){return this._avg_losing_trade_percent}get avg_trade(){if(this._closedtrades)return this._netprofit/this._closedtrades}get equity(){return this.initial_capital+this._netprofit+this._openprofit}get netprofit(){return this._netprofit}get eventrades(){return this._eventrades}get openprofit(){return this._openprofit}get avg_trade_percent(){return this._avg_trade_percent}get avg_winning_trade(){const t=this._wintrades;return t?Math.abs(this._grossprofit/t):void 0}get avg_winning_trade_percent(){return this._avg_winning_trade_percent}get initial_capital(){var t;return((t=this._options)==null?void 0:t.initial_capital)||0}get losstrades(){return this._losstrades}get grossloss(){return this._grossloss}get grossloss_percent(){return this._grossloss/this.initial_capital*100}get grossprofit(){return this._grossprofit}get grossprofit_percent(){return this._grossprofit/this.initial_capital*100}get wintrades(){return this._wintrades}get margin_liquidation_price(){if(!this._options)return;const{initial_capital:t,margin_long:e=0,margin_short:r=0,commission_type:n,commission_value:s=0}=this._options,a=this._orders[0].direction===ce.long?1:-1,u=(a===1?e:r)/100;if(u<=0)return;const{close:c}=this._variables,[f,d]=this._orders.reduce((h,p)=>{let[g,y]=h;const{in_price:_,qty:w=0,original_qty:v=0}=p,x=_*w;if(g+=x,s){let b=0;switch(n){case We.percent:b=(x+w*c)*s/100;break;case We.cashPerContract:b=w*s*2;break;case We.cashPerOrder:b=w/v*s+s;break}y+=b}return[g,y]},[0,0]);return(f-(t+this._netprofit-d))*a/this._position_size/(1-a*u)}get max_contracts_held_all(){return this._max_contracts_held_all}get max_contracts_held_long(){return this._max_contracts_held_long}get max_contracts_held_short(){return this._max_contracts_held_short}get max_drawdown(){return this._max_drawdown}get max_runup(){return this._max_runup}get max_runup_percent(){return this._max_runup_percent}get max_drawdown_percent(){return this._max_drawdown_percent}get netprofit_percent(){return this._netprofit/this.initial_capital*100}get openprofit_percent(){return this._openprofit/(this.initial_capital+this._netprofit)*100}get position_avg_price(){return this._position_avg_price}get position_entry_name(){if(this._orders.length)return this._orders[0].id}get position_size(){return this._position_size}get summaryData(){return{position_size:this.position_size,position_avg_price:this.position_avg_price,position_entry_name:this.position_entry_name,openprofit_percent:this.openprofit_percent,netprofit_percent:this.netprofit_percent,max_drawdown_percent:this.max_drawdown_percent,max_runup_percent:this.max_runup_percent,max_drawdown:this.max_drawdown,max_runup:this.max_runup,max_contracts_held_long:this.max_contracts_held_long,max_contracts_held_short:this.max_contracts_held_short,max_contracts_held_all:this.max_contracts_held_all,avg_winning_trade_percent:this.avg_winning_trade_percent,avg_winning_trade:this.avg_winning_trade,avg_trade_percent:this.avg_trade_percent,avg_trade:this.avg_trade,avg_losing_trade:this.avg_losing_trade,avg_losing_trade_percent:this.avg_losing_trade_percent,wintrades:this.wintrades,losstrades:this.losstrades,eventrades:this.eventrades,grossprofit:this.grossprofit,grossprofit_percent:this.grossprofit_percent,grossloss:this.grossloss,grossloss_percent:this.grossloss_percent,openprofit:this.openprofit,initial_capital:this.initial_capital,netprofit:this.netprofit,closedtrades:this.closedtrades,opentrades:this.opentrades,equity:this.equity,margin_call_long:this.marginCallLong,margin_call_short:this.marginCallShort}}_getCommission(t,e){if(!this._options)return 0;const{commission_value:r=0,commission_type:n}=this._options,s=t*e;let a=0;switch(n){case We.percent:a=s*r/100;break;case We.cashPerContract:a=e*r;break;case We.cashPerOrder:a=r;break}return a}}class lD{constructor(t){$(this,"_preAccdist");$(this,"_preNvi");$(this,"_prePvi");$(this,"_preObv");$(this,"_prePvt");$(this,"_preWad");$(this,"_preVwap");$(this,"_preValue");$(this,"_currentData");$(this,"_preData");$(this,"_id");this._preAccdist=0,this._preNvi=0,this._prePvi=0,this._preObv=0,this._prePvt=0,this._preWad=0,this._preVwap={},this._preValue={},this._currentData={},this._preData={},this._id=t}update(t){this._preValue={},t.barIndex!==this._currentData.barIndex&&(this._preData={...this._currentData}),this._currentData={...t}}get isRealTime(){return this._preData.barIndex===this._currentData.barIndex}get accdist(){if(this._preValue.accdist)return this._preValue.accdist;const{close:t,low:e,high:r,volume:n}=this._currentData;if(r===e)return this._preAccdist;const s=(t-e-(r-t))/(r-e)*n+this._preAccdist;return!this.isRealTime&&(this._preAccdist=s),this._preValue.accdist=s,s}get iii(){if(this._preValue.iii)return this._preValue.iii;const{close:t,low:e,high:r,volume:n}=this._currentData,s=(2*t-r-e)/((r-e)*n);return this._preValue.iii=s,s}get nvi(){return this._preValue.nvi?this._preValue.nvi:this._getNvi()}get wvad(){if(this._preValue.wvad)return this._preValue.wvad;const{close:t,low:e,high:r,volume:n,open:s}=this._currentData,a=(t-s)/(r-e)*n;return this._preValue.wvad=a,a}get obv(){if(this._preValue.obv)return this._preValue.obv;const{close:t,volume:e}=this._currentData,{close:r}=this._preData;if(r===void 0){this._preObv=0;return}const n=Math.sign(t-r)*e+this._preObv;return!this.isRealTime&&(this._preObv=n),this._preValue.obv=n,n}get pvi(){return this._preValue.pvi?this._preValue.pvi:this._getPvi()}get tr(){if(this._preValue.tr)return this._preValue.tr;const{low:t,high:e}=this._currentData,{close:r}=this._preData;if(r===void 0)return;const n=Math.max(e-t,Math.abs(e-r),Math.abs(t-r));return this._preValue.tr=n,n}get pvt(){if(this._preValue.pvt)return this._preValue.pvt;const{close:t,volume:e}=this._currentData,{close:r}=this._preData;if(r===void 0){this._prePvt=0;return}const n=(t-r)/r*e+this._prePvt;return!this.isRealTime&&(this._prePvt=n),this._preValue.pvt=n,n}get wad(){if(this._preValue.wad)return this._preValue.wad;const{close:t,high:e,low:r}=this._currentData,{close:n}=this._preData;if(n===void 0)return this._preWad=0,0;const s=Math.max(e,n),a=Math.min(r,n),u=t-n,f=(u>0?t-a:u<0?t-s:0)+this._preWad;return!this.isRealTime&&(this._preWad=f),this._preValue.wad=f,f}get vwap(){var d,h;if(this._preValue.vwap)return this._preValue.vwap;const{hlc3:t,volume:e}=this._currentData;let{sum:r=0,sumV:n=0,isReset:s}=this._preVwap;if(((h=(d=self.workerStorage)==null?void 0:d.get(this._id))==null?void 0:h.buildInFunctions.timeframe.change({timeframe:"1D"},"vwap_buildin"))&&(s=!0,r=n=0),!s)return;const u=t*e+r,c=e+n;!this.isRealTime&&(this._preVwap={sum:u,sumV:c,isReset:s});const f=u/c;return this._preValue.vwap=f,f}_getNvi(){const t=this._preNvi||1,{close:e=0,volume:r=0}=this._preData,{close:n,volume:s}=this._currentData;let a=1;const u=t||1;return n&&e?a=s<r?u+(n-e)/e*u:u:a=u,!this.isRealTime&&(this._preNvi=a),this._preValue.nvi=a,a}_getPvi(){const t=this._prePvi||1,{close:e=0,volume:r=0}=this._preData,{close:n,volume:s}=this._currentData;let a=1;const u=t||1;return n&&e?a=s>r?u+(n-e)/e*u:u:a=u,!this.isRealTime&&(this._prePvi=a),this._preValue.pvi=a,a}}class cD{constructor(){$(this,"_period");$(this,"_multiplier");$(this,"_unit");this._period="1",this._multiplier=1,this._unit="m"}update(t){if(!t)return;this._period=t;const[e,r]=Fs(t);this._multiplier=e,this._unit=r}get isdaily(){return this._unit==="d"}get isdwm(){return["d","w","M"].includes(this._unit)}get isintraday(){return["s","m","h"].includes(this._unit)}get isminutes(){return this._unit==="m"}get ismonthly(){return this._unit==="M"}get isseconds(){return this._unit==="s"}get isweekly(){return this._unit==="w"}get multiplier(){return this._multiplier}get period(){return this._period}}class fD{constructor(t){$(this,"_variables");$(this,"_bgColor");$(this,"_fgColor");$(this,"isUseBgColor",!1);this._variables=t}updateOptions(t){t!=null&&t.bg_color&&(this._bgColor=t.bg_color,this._fgColor=this._contrastColor(t.bg_color))}get bg_color(){return this.isUseBgColor=!0,this._bgColor}get fg_color(){return this.isUseBgColor=!0,this._fgColor}get is_heikinashi(){return!1}get is_kagi(){return!1}get is_linebreak(){return!1}get is_pnf(){return!1}get is_range(){return!1}get is_renko(){return!1}get is_standard(){return!0}get left_visible_bar_time(){return this._variables.time}get right_visible_bar_time(){return this._variables.time}_parseColor(t){let e,r,n,s;if(t.startsWith("#")){e=parseInt(t.substring(1,3),16),r=parseInt(t.substring(3,5),16),n=parseInt(t.substring(5,7),16);const a=t.substring(7);a?s=parseInt(a,16)/255:s=1}else{const a=this._parserRgbColor(t);e=a[0]||0,r=a[1]||0,n=a[2]||0,s=a[3]||1}return{r:e,g:r,b:n,a:s}}_parserRgbColor(t){var e;return((e=t.match(/\d+/g))==null?void 0:e.map(Number))||[]}_contrastColor(t){const{r:e,g:r,b:n}=this._parseColor(t);return(299*e+587*r+114*n)/1e3>128?"#000000":"#ffffff"}}class hD{constructor(t){$(this,"_variables");$(this,"_syminfo",{});this._variables=t}update(t){this._syminfo=t}get basecurrency(){return""}get country(){}get currency(){return"CNY"}get description(){return""}get employees(){return 100}get expiration_date(){}get industry(){}get minmove(){}get mintick(){return this._variables.mintick}get pointvalue(){}get prefix(){return this.tickerid.replace(`:${this.ticker}`,"")}get pricescale(){}get recommendations_buy(){}get recommendations_buy_strong(){}get recommendations_date(){}get recommendations_hold(){}get recommendations_sell(){}get recommendations_sell_strong(){}get recommendations_total(){}get root(){return""}get sector(){}get session(){return Mn.regular}get shareholders(){}get shares_outstanding_float(){}get shares_outstanding_total(){}get target_price_average(){}get target_price_date(){}get target_price_estimates(){}get target_price_high(){}get target_price_low(){}get target_price_median(){}get ticker(){return this._syminfo.ticker||""}get tickerid(){return this._syminfo.tickerid||""}get timezone(){}get type(){}get volumetype(){return"n/a"}}class dD{constructor(t){$(this,"_variables");this._variables=t}get future_amount(){}get future_ex_date(){}get future_pay_date(){}}class pD{constructor(t){$(this,"_variables");this._variables=t}get future_eps(){}get future_period_end_time(){}get future_revenue(){}get future_time(){}}jt.extend(Ap),jt.extend(xa),jt.extend(Ea);class $h{constructor(t){$(this,"_cacheData");$(this,"_barIndex");$(this,"_isRealTimeBar");$(this,"_barstate");$(this,"_priceVariables");$(this,"_lastBarIndex");$(this,"_currentBarTime");$(this,"_lastBarTime");$(this,"_period");$(this,"_offsetTime");$(this,"_timeframe");$(this,"_ta");$(this,"_polyline");$(this,"_label");$(this,"_line");$(this,"_linefill");$(this,"_box");$(this,"_table");$(this,"_strategy");$(this,"_session");$(this,"syminfo");$(this,"chart");$(this,"earnings");$(this,"dividends");$(this,"_timeTradingday");$(this,"_mintick");$(this,"_cacheSpace");$(this,"_precision");$(this,"_nextBarTime");this._cacheData={varData:{},varNewData:{},varipData:{}},this._barIndex=0,this._lastBarIndex=0,this._currentBarTime=0,this._lastBarTime=0,this._offsetTime=0,this._period="",this._isRealTimeBar=!1,this._barstate=new oD,this._timeframe=new cD,this._priceVariables={close:0,open:0,low:0,high:0,volume:0},this._ta=new lD(t),this._polyline=new $i,this._label=new $i,this._line=new $i,this._linefill=new $i,this._box=new $i,this._table=new $i,this._strategy=new uD(this),this._session=new aD(this),this.syminfo=new hD(this),this.chart=new fD(this),this.earnings=new pD(this),this.dividends=new dD(this),this._cacheSpace=new Map}get table(){return this._table}get box(){return this._box}get linefill(){return this._linefill}get line(){return this._line}get polyline(){return this._polyline}get label(){return this._label}get ta(){return this._ta}get strategy(){return this._strategy}get session(){return this._session}get na(){}get last_bar_index(){return this._lastBarIndex}get bar_index(){return this._barIndex}get barstate(){return this._barstate}get close(){return this._priceVariables.close}get low(){return this._priceVariables.low}get open(){return this._priceVariables.open}get high(){return this._priceVariables.high}get volume(){return this._priceVariables.volume}get ohlc4(){const{close:t,open:e,high:r,low:n}=this._priceVariables;return(t+e+r+n)/4}get hl2(){const{high:t,low:e}=this._priceVariables;return(t+e)/2}get hlc3(){const{close:t,high:e,low:r}=this._priceVariables;return(t+e+r)/3}get hlcc4(){const{close:t,high:e,low:r}=this._priceVariables;return(t*2+e+r)/4}get hour(){return jt(this._currentBarTime).hour()}get minute(){return jt(this._currentBarTime).minute()}get second(){return jt(this._currentBarTime).second()}get month(){return jt(this._currentBarTime).month()+1}get year(){return jt(this._currentBarTime).year()}get dayofweek(){return jt(this._currentBarTime).day()}get dayofmonth(){return jt(this._currentBarTime).date()}get weekofyear(){return jt(this._currentBarTime).week()}get last_bar_time(){return this._lastBarTime}get time(){return this._currentBarTime}get time_close(){const[t,e]=Fs(this._period);return this._isRealTimeBar?void 0:jt(this._currentBarTime).add(t,e).valueOf()}get timenow(){return Date.now()}get time_tradingday(){return this._timeTradingday||this.getTimeTradingday(this._currentBarTime,this._period)}get timeframe(){return this._timeframe}get mintick(){return this._mintick}get __period(){return this._period}get precision(){return this._precision}get nextBarTime(){return this._nextBarTime}updateMaxLength(t){const{max_lines_count:e,max_labels_count:r,max_boxes_count:n,max_polylines_count:s}=t;n&&this._box.setMaxLen(n),r&&this._label.setMaxLen(r),e&&this._line.setMaxLen(e),s&&this._polyline.setMaxLen(s)}getTimeTradingday(t,e){const[r,n]=Fs(e),s=jt(t);return["M","w","y","d"].includes(n)?s.valueOf():(s.subtract(this._offsetTime,"h"),s.startOf("d").add(this._offsetTime,"h").valueOf())}updateOptions(t){var f;const{interval:e="1D",offsetTime:r=5,mintick:n,chart:s,syminfo:a}=t,u=((f=n.toString().split(".")[1])==null?void 0:f.length)||5;this._precision=u;const c=this._transformPeriod(e);this._period=c,this._mintick=n,this._offsetTime=r,this._timeframe.update(c),this.chart.updateOptions(s),this.syminfo.update(a)}updateData(t){const{barIndex:e,c:r,o:n,h:s,l:a,volume:u,time:c,lastBarIndex:f,lastBarTime:d,isrealtime:h,time_tradingday:p,nextBarTime:g}=t;this._priceVariables={close:Number(r),open:Number(n),high:Number(s),low:Number(a),volume:Number(u)},this._isRealTimeBar=h,e>this._barIndex&&this._isRealTimeBar&&(this._cacheData.varNewData={}),this._timeTradingday=p,this._currentBarTime=c*1e3,this._lastBarIndex=f,this._barIndex=e,this._lastBarTime=d*1e3,this._nextBarTime=g*1e3,this._barstate.update(e,f,h,!0),this.ta.update({...this._priceVariables,hlc3:this.hlc3,barIndex:e})}getCacheData(t,e,r){const n=this.setCacheData(t,r);return(this._cacheSpace.get(t)||0)<e&&this._cacheSpace.set(t,e),n[n.length-1-e]}setCacheData(t,e){let r=this._cacheData[t]||{barIndex:-1,data:[]};if(r.barIndex>this._barIndex)return r.data;r.barIndex===this._barIndex?r.data[r.data.length-1]=e:r.data.push(e);const n=this._cacheSpace.get(t);return n&&r.data.length>n+5&&r.data.shift(),r.barIndex=this._barIndex,this._cacheData[t]=r,r.data}getTypeInstance(t,e){return new wp(t,e)}verifyVarAndVarip(t,e,r){const n=`${t}_${e}`;return r==="var"&&this._cacheData.varData.hasOwnProperty(n)?(this._upadteChartDraws(this._cacheData.varData[n]),!0):r==="varip"&&this._cacheData.varipData.hasOwnProperty(n)?(this._upadteChartDraws(this._cacheData.varipData[n]),!0):!1}getVarValue(t,e,r){const n=`${t}_${e}`;return r==="var"?this._isRealTimeBar&&this._cacheData.varNewData.hasOwnProperty(n)?this._cacheData.varNewData[n]:this._cacheData.varData[n]:this._cacheData.varipData[n]}setVarValue(t,e,r,n){var u;const s=`${t}_${e}`;let a;switch(typeof r=="object"&&((u=r==null?void 0:r.varipKeys)!=null&&u.length)&&(n="var",a=r.varipKeys),this._chartDrawsHandle(r,this._cacheData.varData[s]||this._cacheData.varipData[s]),n){case"var":if(this._isRealTimeBar){if(this._cacheData.varNewData[s]=r,a&&a.length)for(const c of a)this._cacheData.varData[s][c]=r[c]}else this._cacheData.varData[s]=r;break;case"varip":this._cacheData.varipData[s]=r;break}return r}_upadteChartDraws(t){const e=t==null?void 0:t.id;if(e)switch(t==null?void 0:t.type){case Fe.BOX:this._setChartDraw(e,this._box);break;case Fe.LINE:this._setChartDraw(e,this._line);break;case Fe.POLYLINE:this._setChartDraw(e,this._polyline);break;case Fe.LABEL:this._setChartDraw(e,this._label);break;case Fe.LINEFILL:this._setChartDraw(e,this._linefill);break;case Fe.TABLE:this._setChartDraw(e,this._table);break}}_setChartDraw(t,e){const r=e.getInstance(t),n=e.get(t);if(!n||!r)return;const s=(r==null?void 0:r.updateId())||t;e.delete(t),e.set(s,n,r)}_chartDrawsHandle(t,e){const r=e==null?void 0:e.id;let n=t==null?void 0:t.id;r!==n&&(n&&t.data&&(t.data.isVar=!0),r&&e.data&&(e.data.isVar=!1))}add(t,e){return Array.isArray(t)&&Array.isArray(e)?jr.uniq([...t,...e]):typeof t=="number"||typeof e=="number"?Number(t)+Number(e):t+e}sub(t,e){return Array.isArray(t)&&Array.isArray(e)?t.filter(r=>!e.includes(r)):Number(t)-Number(e)}againAssignParse(t,e){var n;if(e)return;const r=(n=t==null?void 0:t.constructor)==null?void 0:n.name;if(r)switch(r){case go.name:case Ah.name:case wo.name:case Ch.name:case vo.name:case yo.name:t==null||t.delete();break}}_transformPeriod(t){return t.includes("MTH")?t=t.replace("MTH","M"):t.includes("M")&&(t=t.replace("M","")),rc(t)}}class $i{constructor(t=50){$(this,"_all");$(this,"_allInstance");$(this,"_pseudoArrayAll");$(this,"_maxLength");$(this,"_deleteIds");this._all=new Map,this._allInstance=new Map,this._pseudoArrayAll=new te,this._maxLength=t,this._deleteIds=new Map}setMaxLen(t){this._maxLength=t}get data(){return[...this._all.values()].slice(-this._maxLength)}get all(){return this._pseudoArrayAll._value=[...this._allInstance.values()],this._pseudoArrayAll}add(t,e,r){if(this.set(t,e,r),this._all.size>this._maxLength){const{bar_index:n}=e;for(const[s,a]of this._all){const{isVar:u,id:c,bar_index:f}=a;if(f===n)break;if(u)continue;this.delete(c);break}}}getValOfBarIndex(t){let e=[];const r=[...this._all.keys()];for(const n of t){const s=r.filter(a=>a.endsWith(`_${n}`));for(const a of s){const u=this._all.get(a);u&&e.push(u)}}return e.length?e:void 0}getDeleteIds(t){let e=[];for(const r of t)e=e.concat(this._deleteIds.get(r)||[]);return this._deleteIds.clear(),jr.uniq(e)}set(t,e,r){this._all.set(t,e),this._allInstance.set(t,r)}get(t){return this._all.get(t)}getInstance(t){return this._allInstance.get(t)}delete(t,e){if(this._all.delete(t),this._allInstance.delete(t),typeof e=="number"){const r=this._deleteIds.get(e)||[];r.push(t),this._deleteIds.set(e,r)}}}/**
66
66
  * @license
67
67
  * Copyright 2019 Google LLC
68
68
  * SPDX-License-Identifier: Apache-2.0