@stvy/fund-indicators 1.0.0

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.
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @stvy/fund-indicators v1.0.0
3
+ * 基金自动化交易指标计算工具库 - 基于历史净值计算全部技术指标
4
+ * (c) 2026 @stvy/fund-indicators contributors
5
+ * Released under the MIT License
6
+ */
7
+ "use strict";var FundIndicators=(()=>{var Ln=Object.create;var Ne=Object.defineProperty;var Tn=Object.getOwnPropertyDescriptor;var zn=Object.getOwnPropertyNames;var Fn=Object.getPrototypeOf,Bn=Object.prototype.hasOwnProperty;var Hn=(u,r)=>()=>(r||u((r={exports:{}}).exports,r),r.exports),On=(u,r)=>{for(var o in r)Ne(u,o,{get:r[o],enumerable:!0})},nr=(u,r,o,f)=>{if(r&&typeof r=="object"||typeof r=="function")for(let c of zn(r))!Bn.call(u,c)&&c!==o&&Ne(u,c,{get:()=>r[c],enumerable:!(f=Tn(r,c))||f.enumerable});return u};var Gn=(u,r,o)=>(o=u!=null?Ln(Fn(u)):{},nr(r||!u||!u.__esModule?Ne(o,"default",{value:u,enumerable:!0}):o,u)),Wn=u=>nr(Ne({},"__esModule",{value:!0}),u);var jr=Hn((Qe,Sr)=>{(function(u,r){typeof Qe=="object"?Sr.exports=r():typeof define=="function"&&define.amd?define(r):u.jStat=r()})(Qe,function(){var u=(function(r,o){var f=Array.prototype.concat,c=Array.prototype.slice,l=Object.prototype.toString;function a(p,d){var w=p>d?p:d;return r.pow(10,17-~~(r.log(w>0?w:-w)*r.LOG10E))}var t=Array.isArray||function(d){return l.call(d)==="[object Array]"};function e(p){return l.call(p)==="[object Function]"}function n(p){return typeof p=="number"?p-p===0:!1}function i(p){return f.apply([],p)}function s(){return new s._init(arguments)}s.fn=s.prototype,s._init=function(d){if(t(d[0]))if(t(d[0][0])){e(d[1])&&(d[0]=s.map(d[0],d[1]));for(var w=0;w<d[0].length;w++)this[w]=d[0][w];this.length=d[0].length}else this[0]=e(d[1])?s.map(d[0],d[1]):d[0],this.length=1;else if(n(d[0]))this[0]=s.seq.apply(null,d),this.length=1;else{if(d[0]instanceof s)return s(d[0].toArray());this[0]=[],this.length=1}return this},s._init.prototype=s.prototype,s._init.constructor=s,s.utils={calcRdx:a,isArray:t,isFunction:e,isNumber:n,toVector:i},s._random_fn=r.random,s.setRandom=function(d){if(typeof d!="function")throw new TypeError("fn is not a function");s._random_fn=d},s.extend=function(d){var w,x;if(arguments.length===1){for(x in d)s[x]=d[x];return this}for(w=1;w<arguments.length;w++)for(x in arguments[w])d[x]=arguments[w][x];return d},s.rows=function(d){return d.length||1},s.cols=function(d){return d[0].length||1},s.dimensions=function(d){return{rows:s.rows(d),cols:s.cols(d)}},s.row=function(d,w){return t(w)?w.map(function(x){return s.row(d,x)}):d[w]},s.rowa=function(d,w){return s.row(d,w)},s.col=function(d,w){if(t(w)){var x=s.arange(d.length).map(function(){return new Array(w.length)});return w.forEach(function(R,_){s.arange(d.length).forEach(function(q){x[q][_]=d[q][R]})}),x}for(var b=new Array(d.length),y=0;y<d.length;y++)b[y]=[d[y][w]];return b},s.cola=function(d,w){return s.col(d,w).map(function(x){return x[0]})},s.diag=function(d){for(var w=s.rows(d),x=new Array(w),b=0;b<w;b++)x[b]=[d[b][b]];return x},s.antidiag=function(d){for(var w=s.rows(d)-1,x=new Array(w),b=0;w>=0;w--,b++)x[b]=[d[b][w]];return x},s.transpose=function(d){var w=[],x,b,y,R,_;for(t(d[0])||(d=[d]),b=d.length,y=d[0].length,_=0;_<y;_++){for(x=new Array(b),R=0;R<b;R++)x[R]=d[R][_];w.push(x)}return w.length===1?w[0]:w},s.map=function(d,w,x){var b,y,R,_,q;for(t(d[0])||(d=[d]),y=d.length,R=d[0].length,_=x?d:new Array(y),b=0;b<y;b++)for(_[b]||(_[b]=new Array(R)),q=0;q<R;q++)_[b][q]=w(d[b][q],b,q);return _.length===1?_[0]:_},s.cumreduce=function(d,w,x){var b,y,R,_,q;for(t(d[0])||(d=[d]),y=d.length,R=d[0].length,_=x?d:new Array(y),b=0;b<y;b++)for(_[b]||(_[b]=new Array(R)),R>0&&(_[b][0]=d[b][0]),q=1;q<R;q++)_[b][q]=w(_[b][q-1],d[b][q]);return _.length===1?_[0]:_},s.alter=function(d,w){return s.map(d,w,!0)},s.create=function(d,w,x){var b=new Array(d),y,R;for(e(w)&&(x=w,w=d),y=0;y<d;y++)for(b[y]=new Array(w),R=0;R<w;R++)b[y][R]=x(y,R);return b};function v(){return 0}s.zeros=function(d,w){return n(w)||(w=d),s.create(d,w,v)};function m(){return 1}s.ones=function(d,w){return n(w)||(w=d),s.create(d,w,m)},s.rand=function(d,w){return n(w)||(w=d),s.create(d,w,s._random_fn)};function h(p,d){return p===d?1:0}s.identity=function(d,w){return n(w)||(w=d),s.create(d,w,h)},s.symmetric=function(d){var w=d.length,x,b;if(d.length!==d[0].length)return!1;for(x=0;x<w;x++)for(b=0;b<w;b++)if(d[b][x]!==d[x][b])return!1;return!0},s.clear=function(d){return s.alter(d,v)},s.seq=function(d,w,x,b){e(b)||(b=!1);var y=[],R=a(d,w),_=(w*R-d*R)/((x-1)*R),q=d,A;for(A=0;q<=w&&A<x;A++,q=(d*R+_*R*A)/R)y.push(b?b(q,A):q);return y},s.arange=function(d,w,x){var b=[],y;if(x=x||1,w===o&&(w=d,d=0),d===w||x===0)return[];if(d<w&&x<0)return[];if(d>w&&x>0)return[];if(x>0)for(y=d;y<w;y+=x)b.push(y);else for(y=d;y>w;y+=x)b.push(y);return b},s.slice=(function(){function p(w,x,b,y){var R,_=[],q=w.length;if(x===o&&b===o&&y===o)return s.copy(w);if(x=x||0,b=b||w.length,x=x>=0?x:q+x,b=b>=0?b:q+b,y=y||1,x===b||y===0)return[];if(x<b&&y<0)return[];if(x>b&&y>0)return[];if(y>0)for(R=x;R<b;R+=y)_.push(w[R]);else for(R=x;R>b;R+=y)_.push(w[R]);return _}function d(w,x){var b,y;if(x=x||{},n(x.row)){if(n(x.col))return w[x.row][x.col];var R=s.rowa(w,x.row);return b=x.col||{},p(R,b.start,b.end,b.step)}if(n(x.col)){var _=s.cola(w,x.col);return y=x.row||{},p(_,y.start,y.end,y.step)}y=x.row||{},b=x.col||{};var q=p(w,y.start,y.end,y.step);return q.map(function(A){return p(A,b.start,b.end,b.step)})}return d})(),s.sliceAssign=function(d,w,x){var b,y;if(n(w.row)){if(n(w.col))return d[w.row][w.col]=x;w.col=w.col||{},w.col.start=w.col.start||0,w.col.end=w.col.end||d[0].length,w.col.step=w.col.step||1,b=s.arange(w.col.start,r.min(d.length,w.col.end),w.col.step);var R=w.row;return b.forEach(function(q,A){d[R][q]=x[A]}),d}if(n(w.col)){w.row=w.row||{},w.row.start=w.row.start||0,w.row.end=w.row.end||d.length,w.row.step=w.row.step||1,y=s.arange(w.row.start,r.min(d[0].length,w.row.end),w.row.step);var _=w.col;return y.forEach(function(q,A){d[q][_]=x[A]}),d}return x[0].length===o&&(x=[x]),w.row.start=w.row.start||0,w.row.end=w.row.end||d.length,w.row.step=w.row.step||1,w.col.start=w.col.start||0,w.col.end=w.col.end||d[0].length,w.col.step=w.col.step||1,y=s.arange(w.row.start,r.min(d.length,w.row.end),w.row.step),b=s.arange(w.col.start,r.min(d[0].length,w.col.end),w.col.step),y.forEach(function(q,A){b.forEach(function(k,V){d[q][k]=x[A][V]})}),d},s.diagonal=function(d){var w=s.zeros(d.length,d.length);return d.forEach(function(x,b){w[b][b]=x}),w},s.copy=function(d){return d.map(function(w){return n(w)?w:w.map(function(x){return x})})};var g=s.prototype;return g.length=0,g.push=Array.prototype.push,g.sort=Array.prototype.sort,g.splice=Array.prototype.splice,g.slice=Array.prototype.slice,g.toArray=function(){return this.length>1?c.call(this):c.call(this)[0]},g.map=function(d,w){return s(s.map(this,d,w))},g.cumreduce=function(d,w){return s(s.cumreduce(this,d,w))},g.alter=function(d){return s.alter(this,d),this},(function(p){for(var d=0;d<p.length;d++)(function(w){g[w]=function(x){var b=this,y;return x?(setTimeout(function(){x.call(b,g[w].call(b))}),this):(y=s[w](this),t(y)?s(y):y)}})(p[d])})("transpose clear symmetric rows cols dimensions diag antidiag".split(" ")),(function(p){for(var d=0;d<p.length;d++)(function(w){g[w]=function(x,b){var y=this;return b?(setTimeout(function(){b.call(y,g[w].call(y,x))}),this):s(s[w](this,x))}})(p[d])})("row col".split(" ")),(function(p){for(var d=0;d<p.length;d++)(function(w){g[w]=function(){return s(s[w].apply(null,arguments))}})(p[d])})("create zeros ones rand identity".split(" ")),s})(Math);return(function(r,o){var f=r.utils.isFunction;function c(t,e){return t-e}function l(t,e,n){return o.max(e,o.min(t,n))}r.sum=function(e){for(var n=0,i=e.length;--i>=0;)n+=e[i];return n},r.sumsqrd=function(e){for(var n=0,i=e.length;--i>=0;)n+=e[i]*e[i];return n},r.sumsqerr=function(e){for(var n=r.mean(e),i=0,s=e.length,v;--s>=0;)v=e[s]-n,i+=v*v;return i},r.sumrow=function(e){for(var n=0,i=e.length;--i>=0;)n+=e[i];return n},r.product=function(e){for(var n=1,i=e.length;--i>=0;)n*=e[i];return n},r.min=function(e){for(var n=e[0],i=0;++i<e.length;)e[i]<n&&(n=e[i]);return n},r.max=function(e){for(var n=e[0],i=0;++i<e.length;)e[i]>n&&(n=e[i]);return n},r.unique=function(e){for(var n={},i=[],s=0;s<e.length;s++)n[e[s]]||(n[e[s]]=!0,i.push(e[s]));return i},r.mean=function(e){return r.sum(e)/e.length},r.meansqerr=function(e){return r.sumsqerr(e)/e.length},r.geomean=function(e){var n=e.map(o.log),i=r.mean(n);return o.exp(i)},r.median=function(e){var n=e.length,i=e.slice().sort(c);return n&1?i[n/2|0]:(i[n/2-1]+i[n/2])/2},r.cumsum=function(e){return r.cumreduce(e,function(n,i){return n+i})},r.cumprod=function(e){return r.cumreduce(e,function(n,i){return n*i})},r.diff=function(e){var n=[],i=e.length,s;for(s=1;s<i;s++)n.push(e[s]-e[s-1]);return n},r.rank=function(t){var e,n=[],i={};for(e=0;e<t.length;e++){var s=t[e];i[s]?i[s]++:(i[s]=1,n.push(s))}var v=n.sort(c),m={},h=1;for(e=0;e<v.length;e++){var s=v[e],g=i[s],p=h,d=h+g-1,w=(p+d)/2;m[s]=w,h+=g}return t.map(function(x){return m[x]})},r.mode=function(e){var n=e.length,i=e.slice().sort(c),s=1,v=0,m=0,h=[],g;for(g=0;g<n;g++)i[g]===i[g+1]?s++:(s>v?(h=[i[g]],v=s,m=0):s===v&&(h.push(i[g]),m++),s=1);return m===0?h[0]:h},r.range=function(e){return r.max(e)-r.min(e)},r.variance=function(e,n){return r.sumsqerr(e)/(e.length-(n?1:0))},r.pooledvariance=function(e){var n=e.reduce(function(s,v){return s+r.sumsqerr(v)},0),i=e.reduce(function(s,v){return s+v.length},0);return n/(i-e.length)},r.deviation=function(t){for(var e=r.mean(t),n=t.length,i=new Array(n),s=0;s<n;s++)i[s]=t[s]-e;return i},r.stdev=function(e,n){return o.sqrt(r.variance(e,n))},r.pooledstdev=function(e){return o.sqrt(r.pooledvariance(e))},r.meandev=function(e){for(var n=r.mean(e),i=[],s=e.length-1;s>=0;s--)i.push(o.abs(e[s]-n));return r.mean(i)},r.meddev=function(e){for(var n=r.median(e),i=[],s=e.length-1;s>=0;s--)i.push(o.abs(e[s]-n));return r.median(i)},r.coeffvar=function(e){return r.stdev(e)/r.mean(e)},r.quartiles=function(e){var n=e.length,i=e.slice().sort(c);return[i[o.round(n/4)-1],i[o.round(n/2)-1],i[o.round(n*3/4)-1]]},r.quantiles=function(e,n,i,s){var v=e.slice().sort(c),m=[n.length],h=e.length,g,p,d,w,x,b;for(typeof i>"u"&&(i=3/8),typeof s>"u"&&(s=3/8),g=0;g<n.length;g++)p=n[g],d=i+p*(1-i-s),w=h*p+d,x=o.floor(l(w,1,h-1)),b=l(w-x,0,1),m[g]=(1-b)*v[x-1]+b*v[x];return m},r.percentile=function(e,n,i){var s=e.slice().sort(c),v=n*(s.length+(i?1:-1))+(i?0:1),m=parseInt(v),h=v-m;return m+1<s.length?s[m-1]+h*(s[m]-s[m-1]):s[m-1]},r.percentileOfScore=function(e,n,i){var s=0,v=e.length,m=!1,h,g;for(i==="strict"&&(m=!0),g=0;g<v;g++)h=e[g],(m&&h<n||!m&&h<=n)&&s++;return s/v},r.histogram=function(e,n){n=n||4;var i=r.min(e),s=(r.max(e)-i)/n,v=e.length,m=[],h;for(h=0;h<n;h++)m[h]=0;for(h=0;h<v;h++)m[o.min(o.floor((e[h]-i)/s),n-1)]+=1;return m},r.covariance=function(e,n){var i=r.mean(e),s=r.mean(n),v=e.length,m=new Array(v),h;for(h=0;h<v;h++)m[h]=(e[h]-i)*(n[h]-s);return r.sum(m)/(v-1)},r.corrcoeff=function(e,n){return r.covariance(e,n)/r.stdev(e,1)/r.stdev(n,1)},r.spearmancoeff=function(t,e){return t=r.rank(t),e=r.rank(e),r.corrcoeff(t,e)},r.stanMoment=function(e,n){for(var i=r.mean(e),s=r.stdev(e),v=e.length,m=0,h=0;h<v;h++)m+=o.pow((e[h]-i)/s,n);return m/e.length},r.skewness=function(e){return r.stanMoment(e,3)},r.kurtosis=function(e){return r.stanMoment(e,4)-3};var a=r.prototype;(function(t){for(var e=0;e<t.length;e++)(function(n){a[n]=function(i,s){var v=[],m=0,h=this;if(f(i)&&(s=i,i=!1),s)return setTimeout(function(){s.call(h,a[n].call(h,i))}),this;if(this.length>1){for(h=i===!0?this:this.transpose();m<h.length;m++)v[m]=r[n](h[m]);return v}return r[n](this[0],i)}})(t[e])})("cumsum cumprod".split(" ")),(function(t){for(var e=0;e<t.length;e++)(function(n){a[n]=function(i,s){var v=[],m=0,h=this;if(f(i)&&(s=i,i=!1),s)return setTimeout(function(){s.call(h,a[n].call(h,i))}),this;if(this.length>1){for(n!=="sumrow"&&(h=i===!0?this:this.transpose());m<h.length;m++)v[m]=r[n](h[m]);return i===!0?r[n](r.utils.toVector(v)):v}return r[n](this[0],i)}})(t[e])})("sum sumsqrd sumsqerr sumrow product min max unique mean meansqerr geomean median diff rank mode range variance deviation stdev meandev meddev coeffvar quartiles histogram skewness kurtosis".split(" ")),(function(t){for(var e=0;e<t.length;e++)(function(n){a[n]=function(){var i=[],s=0,v=this,m=Array.prototype.slice.call(arguments),h;if(f(m[m.length-1])){h=m[m.length-1];var g=m.slice(0,m.length-1);return setTimeout(function(){h.call(v,a[n].apply(v,g))}),this}else{h=void 0;var p=function(w){return r[n].apply(v,[w].concat(m))}}if(this.length>1){for(v=v.transpose();s<v.length;s++)i[s]=p(v[s]);return i}return p(this[0])}})(t[e])})("quantiles percentileOfScore".split(" "))})(u,Math),(function(r,o){r.gammaln=function(c){var l=0,a=[76.18009172947146,-86.50532032941678,24.01409824083091,-1.231739572450155,.001208650973866179,-5395239384953e-18],t=1.000000000190015,e,n,i;for(i=(n=e=c)+5.5,i-=(e+.5)*o.log(i);l<6;l++)t+=a[l]/++n;return o.log(2.5066282746310007*t/e)-i},r.loggam=function(c){var l,a,t,e,n,i,s,v=[.08333333333333333,-.002777777777777778,.0007936507936507937,-.0005952380952380952,.0008417508417508418,-.001917526917526918,.00641025641025641,-.02955065359477124,.1796443723688307,-1.3924322169059];if(l=c,s=0,c==1||c==2)return 0;for(c<=7&&(s=o.floor(7-c),l=c+s),a=1/(l*l),t=2*o.PI,n=v[9],i=8;i>=0;i--)n*=a,n+=v[i];if(e=n/l+.5*o.log(t)+(l-.5)*o.log(l)-l,c<=7)for(i=1;i<=s;i++)e-=o.log(l-1),l-=1;return e},r.gammafn=function(c){var l=[-1.716185138865495,24.76565080557592,-379.80425647094563,629.3311553128184,866.9662027904133,-31451.272968848367,-36144.413418691176,66456.14382024054],a=[-30.8402300119739,315.35062697960416,-1015.1563674902192,-3107.771671572311,22538.11842098015,4755.846277527881,-134659.9598649693,-115132.2596755535],t=!1,e=0,n=0,i=0,s=c,v,m,h,g;if(c>171.6243769536076)return 1/0;if(s<=0)if(g=s%1+36e-17,g)t=(s&1?-1:1)*o.PI/o.sin(o.PI*g),s=1-s;else return 1/0;for(h=s,s<1?m=s++:m=(s-=e=(s|0)-1)-1,v=0;v<8;++v)i=(i+l[v])*m,n=n*m+a[v];if(g=i/n+1,h<s)g/=h;else if(h>s)for(v=0;v<e;++v)g*=s,s++;return t&&(g=t/g),g},r.gammap=function(c,l){return r.lowRegGamma(c,l)*r.gammafn(c)},r.lowRegGamma=function(c,l){var a=r.gammaln(c),t=c,e=1/c,n=e,i=l+1-c,s=1/1e-30,v=1/i,m=v,h=1,g=-~(o.log(c>=1?c:1/c)*8.5+c*.4+17),p;if(l<0||c<=0)return NaN;if(l<c+1){for(;h<=g;h++)e+=n*=l/++t;return e*o.exp(-l+c*o.log(l)-a)}for(;h<=g;h++)p=-h*(h-c),i+=2,v=p*v+i,s=i+p/s,v=1/v,m*=v*s;return 1-m*o.exp(-l+c*o.log(l)-a)},r.factorialln=function(c){return c<0?NaN:r.gammaln(c+1)},r.factorial=function(c){return c<0?NaN:r.gammafn(c+1)},r.combination=function(c,l){return c>170||l>170?o.exp(r.combinationln(c,l)):r.factorial(c)/r.factorial(l)/r.factorial(c-l)},r.combinationln=function(c,l){return r.factorialln(c)-r.factorialln(l)-r.factorialln(c-l)},r.permutation=function(c,l){return r.factorial(c)/r.factorial(c-l)},r.betafn=function(c,l){if(!(c<=0||l<=0))return c+l>170?o.exp(r.betaln(c,l)):r.gammafn(c)*r.gammafn(l)/r.gammafn(c+l)},r.betaln=function(c,l){return r.gammaln(c)+r.gammaln(l)-r.gammaln(c+l)},r.betacf=function(c,l,a){var t=1e-30,e=1,n=l+a,i=l+1,s=l-1,v=1,m=1-n*c/i,h,g,p,d;for(o.abs(m)<t&&(m=t),m=1/m,d=m;e<=100&&(h=2*e,g=e*(a-e)*c/((s+h)*(l+h)),m=1+g*m,o.abs(m)<t&&(m=t),v=1+g/v,o.abs(v)<t&&(v=t),m=1/m,d*=m*v,g=-(l+e)*(n+e)*c/((l+h)*(i+h)),m=1+g*m,o.abs(m)<t&&(m=t),v=1+g/v,o.abs(v)<t&&(v=t),m=1/m,p=m*v,d*=p,!(o.abs(p-1)<3e-7));e++);return d},r.gammapinv=function(c,l){var a=0,t=l-1,e=1e-8,n=r.gammaln(l),i,s,v,m,h,g,p;if(c>=1)return o.max(100,l+100*o.sqrt(l));if(c<=0)return 0;for(l>1?(g=o.log(t),p=o.exp(t*(g-1)-n),h=c<.5?c:1-c,v=o.sqrt(-2*o.log(h)),i=(2.30753+v*.27061)/(1+v*(.99229+v*.04481))-v,c<.5&&(i=-i),i=o.max(.001,l*o.pow(1-1/(9*l)-i/(3*o.sqrt(l)),3))):(v=1-l*(.253+l*.12),c<v?i=o.pow(c/v,1/l):i=1-o.log(1-(c-v)/(1-v)));a<12;a++){if(i<=0)return 0;if(s=r.lowRegGamma(l,i)-c,l>1?v=p*o.exp(-(i-t)+t*(o.log(i)-g)):v=o.exp(-i+t*o.log(i)-n),m=s/v,i-=v=m/(1-.5*o.min(1,m*((l-1)/i-1))),i<=0&&(i=.5*(i+v)),o.abs(v)<e*i)break}return i},r.erf=function(c){var l=[-1.3026537197817094,.6419697923564902,.019476473204185836,-.00956151478680863,-.000946595344482036,.000366839497852761,42523324806907e-18,-20278578112534e-18,-1624290004647e-18,130365583558e-17,15626441722e-18,-85238095915e-18,6529054439e-18,5059343495e-18,-991364156e-18,-227365122e-18,96467911e-18,2394038e-18,-6886027e-18,894487e-18,313092e-18,-112708e-18,381e-18,7106e-18,-1523e-18,-94e-18,121e-18,-28e-18],a=l.length-1,t=!1,e=0,n=0,i,s,v,m;for(c<0&&(c=-c,t=!0),i=2/(2+c),s=4*i-2;a>0;a--)v=e,e=s*e-n+l[a],n=v;return m=i*o.exp(-c*c+.5*(l[0]+s*e)-n),t?m-1:1-m},r.erfc=function(c){return 1-r.erf(c)},r.erfcinv=function(c){var l=0,a,t,e,n;if(c>=2)return-100;if(c<=0)return 100;for(n=c<1?c:2-c,e=o.sqrt(-2*o.log(n/2)),a=-.70711*((2.30753+e*.27061)/(1+e*(.99229+e*.04481))-e);l<2;l++)t=r.erfc(a)-n,a+=t/(1.1283791670955126*o.exp(-a*a)-a*t);return c<1?a:-a},r.ibetainv=function(c,l,a){var t=1e-8,e=l-1,n=a-1,i=0,s,v,m,h,g,p,d,w,x,b,y;if(c<=0)return 0;if(c>=1)return 1;for(l>=1&&a>=1?(m=c<.5?c:1-c,h=o.sqrt(-2*o.log(m)),d=(2.30753+h*.27061)/(1+h*(.99229+h*.04481))-h,c<.5&&(d=-d),w=(d*d-3)/6,x=2/(1/(2*l-1)+1/(2*a-1)),b=d*o.sqrt(w+x)/x-(1/(2*a-1)-1/(2*l-1))*(w+5/6-2/(3*x)),d=l/(l+a*o.exp(2*b))):(s=o.log(l/(l+a)),v=o.log(a/(l+a)),h=o.exp(l*s)/l,g=o.exp(a*v)/a,b=h+g,c<h/b?d=o.pow(l*b*c,1/l):d=1-o.pow(a*b*(1-c),1/a)),y=-r.gammaln(l)-r.gammaln(a)+r.gammaln(l+a);i<10;i++){if(d===0||d===1)return d;if(p=r.ibeta(d,l,a)-c,h=o.exp(e*o.log(d)+n*o.log(1-d)+y),g=p/h,d-=h=g/(1-.5*o.min(1,g*(e/d-n/(1-d)))),d<=0&&(d=.5*(d+h)),d>=1&&(d=.5*(d+h+1)),o.abs(h)<t*d&&i>0)break}return d},r.ibeta=function(c,l,a){var t=c===0||c===1?0:o.exp(r.gammaln(l+a)-r.gammaln(l)-r.gammaln(a)+l*o.log(c)+a*o.log(1-c));return c<0||c>1?!1:c<(l+1)/(l+a+2)?t*r.betacf(c,l,a)/l:1-t*r.betacf(1-c,a,l)/a},r.randn=function(c,l){var a,t,e,n,i;if(l||(l=c),c)return r.create(c,l,function(){return r.randn()});do a=r._random_fn(),t=1.7156*(r._random_fn()-.5),e=a-.449871,n=o.abs(t)+.386595,i=e*e+n*(.196*n-.25472*e);while(i>.27597&&(i>.27846||t*t>-4*o.log(a)*a*a));return t/a},r.randg=function(c,l,a){var t=c,e,n,i,s,v,m;if(a||(a=l),c||(c=1),l)return m=r.zeros(l,a),m.alter(function(){return r.randg(c)}),m;c<1&&(c+=1),e=c-1/3,n=1/o.sqrt(9*e);do{do v=r.randn(),s=1+n*v;while(s<=0);s=s*s*s,i=r._random_fn()}while(i>1-.331*o.pow(v,4)&&o.log(i)>.5*v*v+e*(1-s+o.log(s)));if(c==t)return e*s;do i=r._random_fn();while(i===0);return o.pow(i,1/t)*e*s},(function(f){for(var c=0;c<f.length;c++)(function(l){r.fn[l]=function(){return r(r.map(this,function(a){return r[l](a)}))}})(f[c])})("gammaln gammafn factorial factorialln".split(" ")),(function(f){for(var c=0;c<f.length;c++)(function(l){r.fn[l]=function(){return r(r[l].apply(null,arguments))}})(f[c])})("randn".split(" "))})(u,Math),(function(r,o){(function(t){for(var e=0;e<t.length;e++)(function(n){r[n]=function i(s,v,m){return this instanceof i?(this._a=s,this._b=v,this._c=m,this):new i(s,v,m)},r.fn[n]=function(i,s,v){var m=r[n](i,s,v);return m.data=this,m},r[n].prototype.sample=function(i){var s=this._a,v=this._b,m=this._c;return i?r.alter(i,function(){return r[n].sample(s,v,m)}):r[n].sample(s,v,m)},(function(i){for(var s=0;s<i.length;s++)(function(v){r[n].prototype[v]=function(m){var h=this._a,g=this._b,p=this._c;return!m&&m!==0&&(m=this.data),typeof m!="number"?r.fn.map.call(m,function(d){return r[n][v](d,h,g,p)}):r[n][v](m,h,g,p)}})(i[s])})("pdf cdf inv".split(" ")),(function(i){for(var s=0;s<i.length;s++)(function(v){r[n].prototype[v]=function(){return r[n][v](this._a,this._b,this._c)}})(i[s])})("mean median mode variance".split(" "))})(t[e])})("beta centralF cauchy chisquare exponential gamma invgamma kumaraswamy laplace lognormal noncentralt normal pareto studentt weibull uniform binomial negbin hypgeom poisson triangular tukey arcsine".split(" ")),r.extend(r.beta,{pdf:function(e,n,i){return e>1||e<0?0:n==1&&i==1?1:n<512&&i<512?o.pow(e,n-1)*o.pow(1-e,i-1)/r.betafn(n,i):o.exp((n-1)*o.log(e)+(i-1)*o.log(1-e)-r.betaln(n,i))},cdf:function(e,n,i){return e>1||e<0?(e>1)*1:r.ibeta(e,n,i)},inv:function(e,n,i){return r.ibetainv(e,n,i)},mean:function(e,n){return e/(e+n)},median:function(e,n){return r.ibetainv(.5,e,n)},mode:function(e,n){return(e-1)/(e+n-2)},sample:function(e,n){var i=r.randg(e);return i/(i+r.randg(n))},variance:function(e,n){return e*n/(o.pow(e+n,2)*(e+n+1))}}),r.extend(r.centralF,{pdf:function(e,n,i){var s,v,m;return e<0?0:n<=2?e===0&&n<2?1/0:e===0&&n===2?1:1/r.betafn(n/2,i/2)*o.pow(n/i,n/2)*o.pow(e,n/2-1)*o.pow(1+n/i*e,-(n+i)/2):(s=n*e/(i+e*n),v=i/(i+e*n),m=n*v/2,m*r.binomial.pdf((n-2)/2,(n+i-2)/2,s))},cdf:function(e,n,i){return e<0?0:r.ibeta(n*e/(n*e+i),n/2,i/2)},inv:function(e,n,i){return i/(n*(1/r.ibetainv(e,n/2,i/2)-1))},mean:function(e,n){return n>2?n/(n-2):void 0},mode:function(e,n){return e>2?n*(e-2)/(e*(n+2)):void 0},sample:function(e,n){var i=r.randg(e/2)*2,s=r.randg(n/2)*2;return i/e/(s/n)},variance:function(e,n){if(!(n<=4))return 2*n*n*(e+n-2)/(e*(n-2)*(n-2)*(n-4))}}),r.extend(r.cauchy,{pdf:function(e,n,i){return i<0?0:i/(o.pow(e-n,2)+o.pow(i,2))/o.PI},cdf:function(e,n,i){return o.atan((e-n)/i)/o.PI+.5},inv:function(t,e,n){return e+n*o.tan(o.PI*(t-.5))},median:function(e){return e},mode:function(e){return e},sample:function(e,n){return r.randn()*o.sqrt(1/(2*r.randg(.5)))*n+e}}),r.extend(r.chisquare,{pdf:function(e,n){return e<0?0:e===0&&n===2?.5:o.exp((n/2-1)*o.log(e)-e/2-n/2*o.log(2)-r.gammaln(n/2))},cdf:function(e,n){return e<0?0:r.lowRegGamma(n/2,e/2)},inv:function(t,e){return 2*r.gammapinv(t,.5*e)},mean:function(t){return t},median:function(e){return e*o.pow(1-2/(9*e),3)},mode:function(e){return e-2>0?e-2:0},sample:function(e){return r.randg(e/2)*2},variance:function(e){return 2*e}}),r.extend(r.exponential,{pdf:function(e,n){return e<0?0:n*o.exp(-n*e)},cdf:function(e,n){return e<0?0:1-o.exp(-n*e)},inv:function(t,e){return-o.log(1-t)/e},mean:function(t){return 1/t},median:function(t){return 1/t*o.log(2)},mode:function(){return 0},sample:function(e){return-1/e*o.log(r._random_fn())},variance:function(t){return o.pow(t,-2)}}),r.extend(r.gamma,{pdf:function(e,n,i){return e<0?0:e===0&&n===1?1/i:o.exp((n-1)*o.log(e)-e/i-r.gammaln(n)-n*o.log(i))},cdf:function(e,n,i){return e<0?0:r.lowRegGamma(n,e/i)},inv:function(t,e,n){return r.gammapinv(t,e)*n},mean:function(t,e){return t*e},mode:function(e,n){if(e>1)return(e-1)*n},sample:function(e,n){return r.randg(e)*n},variance:function(e,n){return e*n*n}}),r.extend(r.invgamma,{pdf:function(e,n,i){return e<=0?0:o.exp(-(n+1)*o.log(e)-i/e-r.gammaln(n)+n*o.log(i))},cdf:function(e,n,i){return e<=0?0:1-r.lowRegGamma(n,i/e)},inv:function(t,e,n){return n/r.gammapinv(1-t,e)},mean:function(t,e){return t>1?e/(t-1):void 0},mode:function(e,n){return n/(e+1)},sample:function(e,n){return n/r.randg(e)},variance:function(e,n){if(!(e<=2))return n*n/((e-1)*(e-1)*(e-2))}}),r.extend(r.kumaraswamy,{pdf:function(e,n,i){return e===0&&n===1?i:e===1&&i===1?n:o.exp(o.log(n)+o.log(i)+(n-1)*o.log(e)+(i-1)*o.log(1-o.pow(e,n)))},cdf:function(e,n,i){return e<0?0:e>1?1:1-o.pow(1-o.pow(e,n),i)},inv:function(e,n,i){return o.pow(1-o.pow(1-e,1/i),1/n)},mean:function(t,e){return e*r.gammafn(1+1/t)*r.gammafn(e)/r.gammafn(1+1/t+e)},median:function(e,n){return o.pow(1-o.pow(2,-1/n),1/e)},mode:function(e,n){if(e>=1&&n>=1&&e!==1&&n!==1)return o.pow((e-1)/(e*n-1),1/e)},variance:function(){throw new Error("variance not yet implemented")}}),r.extend(r.lognormal,{pdf:function(e,n,i){return e<=0?0:o.exp(-o.log(e)-.5*o.log(2*o.PI)-o.log(i)-o.pow(o.log(e)-n,2)/(2*i*i))},cdf:function(e,n,i){return e<0?0:.5+.5*r.erf((o.log(e)-n)/o.sqrt(2*i*i))},inv:function(t,e,n){return o.exp(-1.4142135623730951*n*r.erfcinv(2*t)+e)},mean:function(e,n){return o.exp(e+n*n/2)},median:function(e){return o.exp(e)},mode:function(e,n){return o.exp(e-n*n)},sample:function(e,n){return o.exp(r.randn()*n+e)},variance:function(e,n){return(o.exp(n*n)-1)*o.exp(2*e+n*n)}}),r.extend(r.noncentralt,{pdf:function(e,n,i){var s=1e-14;return o.abs(i)<s?r.studentt.pdf(e,n):o.abs(e)<s?o.exp(r.gammaln((n+1)/2)-i*i/2-.5*o.log(o.PI*n)-r.gammaln(n/2)):n/e*(r.noncentralt.cdf(e*o.sqrt(1+2/n),n+2,i)-r.noncentralt.cdf(e,n,i))},cdf:function(e,n,i){var s=1e-14,v=200;if(o.abs(i)<s)return r.studentt.cdf(e,n);var m=!1;e<0&&(m=!0,i=-i);for(var h=r.normal.cdf(-i,0,1),g=s+1,p=g,d=e*e/(e*e+n),w=0,x=o.exp(-i*i/2),b=o.exp(-i*i/2-.5*o.log(2)-r.gammaln(3/2))*i;w<v||p>s||g>s;)p=g,w>0&&(x*=i*i/(2*w),b*=i*i/(2*(w+1/2))),g=x*r.beta.cdf(d,w+.5,n/2)+b*r.beta.cdf(d,w+1,n/2),h+=.5*g,w++;return m?1-h:h}}),r.extend(r.normal,{pdf:function(e,n,i){return o.exp(-.5*o.log(2*o.PI)-o.log(i)-o.pow(e-n,2)/(2*i*i))},cdf:function(e,n,i){return .5*(1+r.erf((e-n)/o.sqrt(2*i*i)))},inv:function(t,e,n){return-1.4142135623730951*n*r.erfcinv(2*t)+e},mean:function(t){return t},median:function(e){return e},mode:function(t){return t},sample:function(e,n){return r.randn()*n+e},variance:function(t,e){return e*e}}),r.extend(r.pareto,{pdf:function(e,n,i){return e<n?0:i*o.pow(n,i)/o.pow(e,i+1)},cdf:function(e,n,i){return e<n?0:1-o.pow(n/e,i)},inv:function(e,n,i){return n/o.pow(1-e,1/i)},mean:function(e,n){if(!(n<=1))return n*o.pow(e,n)/(n-1)},median:function(e,n){return e*(n*o.SQRT2)},mode:function(e){return e},variance:function(t,e){if(!(e<=2))return t*t*e/(o.pow(e-1,2)*(e-2))}}),r.extend(r.studentt,{pdf:function(e,n){return n=n>1e100?1e100:n,1/(o.sqrt(n)*r.betafn(.5,n/2))*o.pow(1+e*e/n,-((n+1)/2))},cdf:function(e,n){var i=n/2;return r.ibeta((e+o.sqrt(e*e+n))/(2*o.sqrt(e*e+n)),i,i)},inv:function(t,e){var n=r.ibetainv(2*o.min(t,1-t),.5*e,.5);return n=o.sqrt(e*(1-n)/n),t>.5?n:-n},mean:function(e){return e>1?0:void 0},median:function(){return 0},mode:function(){return 0},sample:function(e){return r.randn()*o.sqrt(e/(2*r.randg(e/2)))},variance:function(e){return e>2?e/(e-2):e>1?1/0:void 0}}),r.extend(r.weibull,{pdf:function(e,n,i){return e<0||n<0||i<0?0:i/n*o.pow(e/n,i-1)*o.exp(-o.pow(e/n,i))},cdf:function(e,n,i){return e<0?0:1-o.exp(-o.pow(e/n,i))},inv:function(t,e,n){return e*o.pow(-o.log(1-t),1/n)},mean:function(t,e){return t*r.gammafn(1+1/e)},median:function(e,n){return e*o.pow(o.log(2),1/n)},mode:function(e,n){return n<=1?0:e*o.pow((n-1)/n,1/n)},sample:function(e,n){return e*o.pow(-o.log(r._random_fn()),1/n)},variance:function(e,n){return e*e*r.gammafn(1+2/n)-o.pow(r.weibull.mean(e,n),2)}}),r.extend(r.uniform,{pdf:function(e,n,i){return e<n||e>i?0:1/(i-n)},cdf:function(e,n,i){return e<n?0:e<i?(e-n)/(i-n):1},inv:function(t,e,n){return e+t*(n-e)},mean:function(e,n){return .5*(e+n)},median:function(e,n){return r.mean(e,n)},mode:function(){throw new Error("mode is not yet implemented")},sample:function(e,n){return e/2+n/2+(n/2-e/2)*(2*r._random_fn()-1)},variance:function(e,n){return o.pow(n-e,2)/12}});function f(t,e,n,i){for(var s=0,v=1,m=1,h=1,g=0,p=0,d;o.abs((m-p)/m)>i;)p=m,d=-(e+g)*(e+n+g)*t/(e+2*g)/(e+2*g+1),s=m+d*s,v=h+d*v,g=g+1,d=g*(n-g)*t/(e+2*g-1)/(e+2*g),m=s+d*m,h=v+d*h,s=s/h,v=v/h,m=m/h,h=1;return m/e}r.extend(r.binomial,{pdf:function(e,n,i){return i===0||i===1?n*i===e?1:0:r.combination(n,e)*o.pow(i,e)*o.pow(1-i,n-e)},cdf:function(e,n,i){var s,v=1e-10;if(e<0)return 0;if(e>=n)return 1;if(i<0||i>1||n<=0)return NaN;e=o.floor(e);var m=i,h=e+1,g=n-e,p=h+g,d=o.exp(r.gammaln(p)-r.gammaln(g)-r.gammaln(h)+h*o.log(m)+g*o.log(1-m));return m<(h+1)/(p+2)?s=d*f(m,h,g,v):s=1-d*f(1-m,g,h,v),o.round((1-s)*(1/v))/(1/v)}}),r.extend(r.negbin,{pdf:function(e,n,i){return e!==e>>>0?!1:e<0?0:r.combination(e+n-1,n-1)*o.pow(1-i,e)*o.pow(i,n)},cdf:function(e,n,i){var s=0,v=0;if(e<0)return 0;for(;v<=e;v++)s+=r.negbin.pdf(v,n,i);return s}}),r.extend(r.hypgeom,{pdf:function(e,n,i,s){if(e!==e|0)return!1;if(e<0||e<i-(n-s))return 0;if(e>s||e>i)return 0;if(i*2>n)return s*2>n?r.hypgeom.pdf(n-i-s+e,n,n-i,n-s):r.hypgeom.pdf(s-e,n,n-i,s);if(s*2>n)return r.hypgeom.pdf(i-e,n,i,n-s);if(i<s)return r.hypgeom.pdf(e,n,s,i);for(var v=1,m=0,h=0;h<e;h++){for(;v>1&&m<s;)v*=1-i/(n-m),m++;v*=(s-h)*(i-h)/((h+1)*(n-i-s+h+1))}for(;m<s;m++)v*=1-i/(n-m);return o.min(1,o.max(0,v))},cdf:function(e,n,i,s){if(e<0||e<i-(n-s))return 0;if(e>=s||e>=i)return 1;if(i*2>n)return s*2>n?r.hypgeom.cdf(n-i-s+e,n,n-i,n-s):1-r.hypgeom.cdf(s-e-1,n,n-i,s);if(s*2>n)return 1-r.hypgeom.cdf(i-e-1,n,i,n-s);if(i<s)return r.hypgeom.cdf(e,n,s,i);for(var v=1,m=1,h=0,g=0;g<e;g++){for(;v>1&&h<s;){var p=1-i/(n-h);m*=p,v*=p,h++}m*=(s-g)*(i-g)/((g+1)*(n-i-s+g+1)),v+=m}for(;h<s;h++)v*=1-i/(n-h);return o.min(1,o.max(0,v))}}),r.extend(r.poisson,{pdf:function(e,n){return n<0||e%1!==0||e<0?0:o.pow(n,e)*o.exp(-n)/r.factorial(e)},cdf:function(e,n){var i=[],s=0;if(e<0)return 0;for(;s<=e;s++)i.push(r.poisson.pdf(s,n));return r.sum(i)},mean:function(t){return t},variance:function(t){return t},sampleSmall:function(e){var n=1,i=0,s=o.exp(-e);do i++,n*=r._random_fn();while(n>s);return i-1},sampleLarge:function(e){var n=e,i,s,v,m,h,g,p,d,w,x;for(m=o.sqrt(n),h=o.log(n),p=.931+2.53*m,g=-.059+.02483*p,d=1.1239+1.1328/(p-3.4),w=.9277-3.6224/(p-2);;){if(s=o.random()-.5,v=o.random(),x=.5-o.abs(s),i=o.floor((2*g/x+p)*s+n+.43),x>=.07&&v<=w)return i;if(!(i<0||x<.013&&v>x)&&o.log(v)+o.log(d)-o.log(g/(x*x)+p)<=-n+i*h-r.loggam(i+1))return i}},sample:function(e){return e<10?this.sampleSmall(e):this.sampleLarge(e)}}),r.extend(r.triangular,{pdf:function(e,n,i,s){return i<=n||s<n||s>i?NaN:e<n||e>i?0:e<s?2*(e-n)/((i-n)*(s-n)):e===s?2/(i-n):2*(i-e)/((i-n)*(i-s))},cdf:function(e,n,i,s){return i<=n||s<n||s>i?NaN:e<=n?0:e>=i?1:e<=s?o.pow(e-n,2)/((i-n)*(s-n)):1-o.pow(i-e,2)/((i-n)*(i-s))},inv:function(e,n,i,s){return i<=n||s<n||s>i?NaN:e<=(s-n)/(i-n)?n+(i-n)*o.sqrt(e*((s-n)/(i-n))):n+(i-n)*(1-o.sqrt((1-e)*(1-(s-n)/(i-n))))},mean:function(e,n,i){return(e+n+i)/3},median:function(e,n,i){if(i<=(e+n)/2)return n-o.sqrt((n-e)*(n-i))/o.sqrt(2);if(i>(e+n)/2)return e+o.sqrt((n-e)*(i-e))/o.sqrt(2)},mode:function(e,n,i){return i},sample:function(e,n,i){var s=r._random_fn();return s<(i-e)/(n-e)?e+o.sqrt(s*(n-e)*(i-e)):n-o.sqrt((1-s)*(n-e)*(n-i))},variance:function(e,n,i){return(e*e+n*n+i*i-e*n-e*i-n*i)/18}}),r.extend(r.arcsine,{pdf:function(e,n,i){return i<=n?NaN:e<=n||e>=i?0:2/o.PI*o.pow(o.pow(i-n,2)-o.pow(2*e-n-i,2),-.5)},cdf:function(e,n,i){return e<n?0:e<i?2/o.PI*o.asin(o.sqrt((e-n)/(i-n))):1},inv:function(t,e,n){return e+(.5-.5*o.cos(o.PI*t))*(n-e)},mean:function(e,n){return n<=e?NaN:(e+n)/2},median:function(e,n){return n<=e?NaN:(e+n)/2},mode:function(){throw new Error("mode is not yet implemented")},sample:function(e,n){return(e+n)/2+(n-e)/2*o.sin(2*o.PI*r.uniform.sample(0,1))},variance:function(e,n){return n<=e?NaN:o.pow(n-e,2)/8}});function c(t){return t/o.abs(t)}r.extend(r.laplace,{pdf:function(e,n,i){return i<=0?0:o.exp(-o.abs(e-n)/i)/(2*i)},cdf:function(e,n,i){return i<=0?0:e<n?.5*o.exp((e-n)/i):1-.5*o.exp(-(e-n)/i)},mean:function(t){return t},median:function(t){return t},mode:function(t){return t},variance:function(t,e){return 2*e*e},sample:function(e,n){var i=r._random_fn()-.5;return e-n*c(i)*o.log(1-2*o.abs(i))}});function l(t,e,n){var i=12,s=6,v=-30,m=-50,h=60,g=8,p=3,d=2,w=3,x=[.9815606342467192,.9041172563704749,.7699026741943047,.5873179542866175,.3678314989981802,.1252334085114689],b=[.04717533638651183,.10693932599531843,.16007832854334622,.20316742672306592,.2334925365383548,.24914704581340277],y=t*.5;if(y>=g)return 1;var R=2*r.normal.cdf(y,0,1,1,0)-1;R>=o.exp(m/n)?R=o.pow(R,n):R=0;var _;t>p?_=d:_=w;for(var q=y,A=(g-y)/_,k=q+A,V=0,D=n-1,O=1;O<=_;O++){for(var K=0,T=.5*(k+q),J=.5*(k-q),M=1;M<=i;M++){var G,W;s<M?(G=i-M+1,W=x[G-1]):(G=M,W=-x[G-1]);var S=J*W,H=T+S,ne=H*H;if(ne>h)break;var be=2*r.normal.cdf(H,0,1,1,0),Fe=2*r.normal.cdf(H,t,1,1,0),de=be*.5-Fe*.5;de>=o.exp(v/D)&&(de=b[G-1]*o.exp(-(.5*ne))*o.pow(de,D),K+=de)}K*=2*J*n/o.sqrt(2*o.PI),V+=K,q=k,k+=A}return R+=V,R<=o.exp(v/e)?0:(R=o.pow(R,e),R>=1?1:R)}function a(t,e,n){var i=.322232421088,s=.099348462606,v=-1,m=.588581570495,h=-.342242088547,g=.531103462366,p=-.204231210125,d=.10353775285,w=-453642210148e-16,x=.0038560700634,b=.8832,y=.2368,R=1.214,_=1.208,q=1.4142,A=120,k=.5-.5*t,V=o.sqrt(o.log(1/(k*k))),D=V+((((V*w+p)*V+h)*V+v)*V+i)/((((V*x+d)*V+g)*V+m)*V+s);n<A&&(D+=(D*D*D+D)/n/4);var O=b-y*D;return n<A&&(O+=-R/n+_*D/n),D*(O*o.log(e-1)+q)}r.extend(r.tukey,{cdf:function(e,n,i){var s=1,v=n,m=16,h=8,g=-30,p=1e-14,d=100,w=800,x=5e3,b=25e3,y=1,R=.5,_=.25,q=.125,A=[.9894009349916499,.9445750230732326,.8656312023878318,.755404408355003,.6178762444026438,.45801677765722737,.2816035507792589,.09501250983763744],k=[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685];if(e<=0)return 0;if(i<2||s<1||v<2)return NaN;if(!Number.isFinite(e))return 1;if(i>b)return l(e,s,v);var V=i*.5,D=V*o.log(i)-i*o.log(2)-r.gammaln(V),O=V-1,K=i*.25,T;i<=d?T=y:i<=w?T=R:i<=x?T=_:T=q,D+=o.log(T);for(var J=0,M=1;M<=50;M++){for(var G=0,W=(2*M-1)*T,S=1;S<=m;S++){var H,ne;h<S?(H=S-h-1,ne=D+O*o.log(W+A[H]*T)-(A[H]*T+W)*K):(H=S-1,ne=D+O*o.log(W-A[H]*T)+(A[H]*T-W)*K);var be;if(ne>=g){h<S?be=e*o.sqrt((A[H]*T+W)*.5):be=e*o.sqrt((-(A[H]*T)+W)*.5);var Fe=l(be,s,v),de=Fe*k[H]*o.exp(ne);G+=de}}if(M*T>=1&&G<=p)break;J+=G}if(G>p)throw new Error("tukey.cdf failed to converge");return J>1&&(J=1),J},inv:function(t,e,n){var i=1,s=e,v=1e-4,m=50;if(n<2||i<1||s<2)return NaN;if(t<0||t>1)return NaN;if(t===0)return 0;if(t===1)return 1/0;var h=a(t,s,n),g=r.tukey.cdf(h,e,n)-t,p;g>0?p=o.max(0,h-1):p=h+1;for(var d=r.tukey.cdf(p,e,n)-t,w,x=1;x<m;x++){w=p-d*(p-h)/(d-g),g=d,h=p,w<0&&(w=0,d=-t),d=r.tukey.cdf(w,e,n)-t,p=w;var b=o.abs(p-h);if(b<v)return w}throw new Error("tukey.inv failed to converge")}})})(u,Math),(function(r,o){var f=Array.prototype.push,c=r.utils.isArray;function l(a){return c(a)||a instanceof r}r.extend({add:function(t,e){return l(e)?(l(e[0])||(e=[e]),r.map(t,function(n,i,s){return n+e[i][s]})):r.map(t,function(n){return n+e})},subtract:function(t,e){return l(e)?(l(e[0])||(e=[e]),r.map(t,function(n,i,s){return n-e[i][s]||0})):r.map(t,function(n){return n-e})},divide:function(t,e){return l(e)?(l(e[0])||(e=[e]),r.multiply(t,r.inv(e))):r.map(t,function(n){return n/e})},multiply:function(t,e){var n,i,s,v,m,h,g,p;if(t.length===void 0&&e.length===void 0)return t*e;if(m=t.length,h=t[0].length,g=r.zeros(m,s=l(e)?e[0].length:h),p=0,l(e)){for(;p<s;p++)for(n=0;n<m;n++){for(v=0,i=0;i<h;i++)v+=t[n][i]*e[i][p];g[n][p]=v}return m===1&&p===1?g[0][0]:g}return r.map(t,function(d){return d*e})},outer:function(t,e){return r.multiply(t.map(function(n){return[n]}),[e])},dot:function(t,e){l(t[0])||(t=[t]),l(e[0])||(e=[e]);for(var n=t[0].length===1&&t.length!==1?r.transpose(t):t,i=e[0].length===1&&e.length!==1?r.transpose(e):e,s=[],v=0,m=n.length,h=n[0].length,g,p;v<m;v++){for(s[v]=[],g=0,p=0;p<h;p++)g+=n[v][p]*i[v][p];s[v]=g}return s.length===1?s[0]:s},pow:function(t,e){return r.map(t,function(n){return o.pow(n,e)})},exp:function(t){return r.map(t,function(e){return o.exp(e)})},log:function(t){return r.map(t,function(e){return o.log(e)})},abs:function(t){return r.map(t,function(e){return o.abs(e)})},norm:function(t,e){var n=0,i=0;for(isNaN(e)&&(e=2),l(t[0])&&(t=t[0]);i<t.length;i++)n+=o.pow(o.abs(t[i]),e);return o.pow(n,1/e)},angle:function(t,e){return o.acos(r.dot(t,e)/(r.norm(t)*r.norm(e)))},aug:function(t,e){var n=[],i;for(i=0;i<t.length;i++)n.push(t[i].slice());for(i=0;i<n.length;i++)f.apply(n[i],e[i]);return n},inv:function(t){for(var e=t.length,n=t[0].length,i=r.identity(e,n),s=r.gauss_jordan(t,i),v=[],m=0,h;m<e;m++)for(v[m]=[],h=n;h<s[0].length;h++)v[m][h-n]=s[m][h];return v},det:function a(t){if(t.length===2)return t[0][0]*t[1][1]-t[0][1]*t[1][0];for(var e=0,n=0;n<t.length;n++){for(var i=[],s=1;s<t.length;s++){i[s-1]=[];for(var v=0;v<t.length;v++)v<n?i[s-1][v]=t[s][v]:v>n&&(i[s-1][v-1]=t[s][v])}var m=n%2?-1:1;e+=a(i)*t[0][n]*m}return e},gauss_elimination:function(t,e){var n=0,i=0,s=t.length,v=t[0].length,m=1,h=0,g=[],p,d,w,x;for(t=r.aug(t,e),p=t[0].length,n=0;n<s;n++){for(d=t[n][n],i=n,x=n+1;x<v;x++)d<o.abs(t[x][n])&&(d=t[x][n],i=x);if(i!=n)for(x=0;x<p;x++)w=t[n][x],t[n][x]=t[i][x],t[i][x]=w;for(i=n+1;i<s;i++)for(m=t[i][n]/t[n][n],x=n;x<p;x++)t[i][x]=t[i][x]-m*t[n][x]}for(n=s-1;n>=0;n--){for(h=0,i=n+1;i<=s-1;i++)h=h+g[i]*t[n][i];g[n]=(t[n][p-1]-h)/t[n][n]}return g},gauss_jordan:function(t,e){var n=r.aug(t,e),i=n.length,s=n[0].length,v=0,m,h,g;for(h=0;h<i;h++){var p=h;for(g=h+1;g<i;g++)o.abs(n[g][h])>o.abs(n[p][h])&&(p=g);var d=n[h];for(n[h]=n[p],n[p]=d,g=h+1;g<i;g++)for(v=n[g][h]/n[h][h],m=h;m<s;m++)n[g][m]-=n[h][m]*v}for(h=i-1;h>=0;h--){for(v=n[h][h],g=0;g<h;g++)for(m=s-1;m>h-1;m--)n[g][m]-=n[h][m]*n[g][h]/v;for(n[h][h]/=v,m=i;m<s;m++)n[h][m]/=v}return n},triaUpSolve:function(t,e){var n=t[0].length,i=r.zeros(1,n)[0],s,v=!1;return e[0].length!=null&&(e=e.map(function(m){return m[0]}),v=!0),r.arange(n-1,-1,-1).forEach(function(m){s=r.arange(m+1,n).map(function(h){return i[h]*t[m][h]}),i[m]=(e[m]-r.sum(s))/t[m][m]}),v?i.map(function(m){return[m]}):i},triaLowSolve:function(t,e){var n=t[0].length,i=r.zeros(1,n)[0],s,v=!1;return e[0].length!=null&&(e=e.map(function(m){return m[0]}),v=!0),r.arange(n).forEach(function(m){s=r.arange(m).map(function(h){return t[m][h]*i[h]}),i[m]=(e[m]-r.sum(s))/t[m][m]}),v?i.map(function(m){return[m]}):i},lu:function(t){var e=t.length,n=r.identity(e),i=r.zeros(t.length,t[0].length),s;return r.arange(e).forEach(function(v){i[0][v]=t[0][v]}),r.arange(1,e).forEach(function(v){r.arange(v).forEach(function(m){s=r.arange(m).map(function(h){return n[v][h]*i[h][m]}),n[v][m]=(t[v][m]-r.sum(s))/i[m][m]}),r.arange(v,e).forEach(function(m){s=r.arange(v).map(function(h){return n[v][h]*i[h][m]}),i[v][m]=t[s.length][m]-r.sum(s)})}),[n,i]},cholesky:function(t){var e=t.length,n=r.zeros(t.length,t[0].length),i;return r.arange(e).forEach(function(s){i=r.arange(s).map(function(v){return o.pow(n[s][v],2)}),n[s][s]=o.sqrt(t[s][s]-r.sum(i)),r.arange(s+1,e).forEach(function(v){i=r.arange(s).map(function(m){return n[s][m]*n[v][m]}),n[v][s]=(t[s][v]-r.sum(i))/n[s][s]})}),n},gauss_jacobi:function(t,e,n,i){for(var s=0,v=0,m=t.length,h=[],g=[],p=[],d,w,x,b;s<m;s++)for(h[s]=[],g[s]=[],p[s]=[],v=0;v<m;v++)s>v?(h[s][v]=t[s][v],g[s][v]=p[s][v]=0):s<v?(g[s][v]=t[s][v],h[s][v]=p[s][v]=0):(p[s][v]=t[s][v],h[s][v]=g[s][v]=0);for(x=r.multiply(r.multiply(r.inv(p),r.add(h,g)),-1),w=r.multiply(r.inv(p),e),d=n,b=r.add(r.multiply(x,n),w),s=2;o.abs(r.norm(r.subtract(b,d)))>i;)d=b,b=r.add(r.multiply(x,d),w),s++;return b},gauss_seidel:function(t,e,n,i){for(var s=0,v=t.length,m=[],h=[],g=[],p,d,w,x,b;s<v;s++)for(m[s]=[],h[s]=[],g[s]=[],p=0;p<v;p++)s>p?(m[s][p]=t[s][p],h[s][p]=g[s][p]=0):s<p?(h[s][p]=t[s][p],m[s][p]=g[s][p]=0):(g[s][p]=t[s][p],m[s][p]=h[s][p]=0);for(x=r.multiply(r.multiply(r.inv(r.add(g,m)),h),-1),w=r.multiply(r.inv(r.add(g,m)),e),d=n,b=r.add(r.multiply(x,n),w),s=2;o.abs(r.norm(r.subtract(b,d)))>i;)d=b,b=r.add(r.multiply(x,d),w),s=s+1;return b},SOR:function(t,e,n,i,s){for(var v=0,m=t.length,h=[],g=[],p=[],d,w,x,b,y;v<m;v++)for(h[v]=[],g[v]=[],p[v]=[],d=0;d<m;d++)v>d?(h[v][d]=t[v][d],g[v][d]=p[v][d]=0):v<d?(g[v][d]=t[v][d],h[v][d]=p[v][d]=0):(p[v][d]=t[v][d],h[v][d]=g[v][d]=0);for(b=r.multiply(r.inv(r.add(p,r.multiply(h,s))),r.subtract(r.multiply(p,1-s),r.multiply(g,s))),x=r.multiply(r.multiply(r.inv(r.add(p,r.multiply(h,s))),e),s),w=n,y=r.add(r.multiply(b,n),x),v=2;o.abs(r.norm(r.subtract(y,w)))>i;)w=y,y=r.add(r.multiply(b,w),x),v++;return y},householder:function(t){for(var e=t.length,n=t[0].length,i=0,s=[],v=[],m,h,g,p,d;i<e-1;i++){for(m=0,p=i+1;p<n;p++)m+=t[p][i]*t[p][i];for(d=t[i+1][i]>0?-1:1,m=d*o.sqrt(m),h=o.sqrt((m*m-t[i+1][i]*m)/2),s=r.zeros(e,1),s[i+1][0]=(t[i+1][i]-m)/(2*h),g=i+2;g<e;g++)s[g][0]=t[g][i]/(2*h);v=r.subtract(r.identity(e,n),r.multiply(r.multiply(s,r.transpose(s)),2)),t=r.multiply(v,r.multiply(t,v))}return t},QR:(function(){var a=r.sum,t=r.arange;function e(n){var i=n.length,s=n[0].length,v=r.zeros(s,s);n=r.copy(n);var m,h,g;for(h=0;h<s;h++){for(v[h][h]=o.sqrt(a(t(i).map(function(p){return n[p][h]*n[p][h]}))),m=0;m<i;m++)n[m][h]=n[m][h]/v[h][h];for(g=h+1;g<s;g++)for(v[h][g]=a(t(i).map(function(p){return n[p][h]*n[p][g]})),m=0;m<i;m++)n[m][g]=n[m][g]-n[m][h]*v[h][g]}return[n,v]}return e})(),lstsq:(function(){function a(e){e=r.copy(e);var n=e.length,i=r.identity(n);return r.arange(n-1,-1,-1).forEach(function(s){r.sliceAssign(i,{row:s},r.divide(r.slice(i,{row:s}),e[s][s])),r.sliceAssign(e,{row:s},r.divide(r.slice(e,{row:s}),e[s][s])),r.arange(s).forEach(function(v){var m=r.multiply(e[v][s],-1),h=r.slice(e,{row:v}),g=r.multiply(r.slice(e,{row:s}),m);r.sliceAssign(e,{row:v},r.add(h,g));var p=r.slice(i,{row:v}),d=r.multiply(r.slice(i,{row:s}),m);r.sliceAssign(i,{row:v},r.add(p,d))})}),i}function t(e,n){var i=!1;n[0].length===void 0&&(n=n.map(function(b){return[b]}),i=!0);var s=r.QR(e),v=s[0],m=s[1],h=e[0].length,g=r.slice(v,{col:{end:h}}),p=r.slice(m,{row:{end:h}}),d=a(p),w=r.transpose(g);w[0].length===void 0&&(w=[w]);var x=r.multiply(r.multiply(d,w),n);return x.length===void 0&&(x=[[x]]),i?x.map(function(b){return b[0]}):x}return t})(),jacobi:function(t){for(var e=1,n=t.length,i=r.identity(n,n),s=[],v,m,h,g,p,d,w,x;e===1;){for(d=t[0][1],g=0,p=1,m=0;m<n;m++)for(h=0;h<n;h++)m!=h&&d<o.abs(t[m][h])&&(d=o.abs(t[m][h]),g=m,p=h);for(t[g][g]===t[p][p]?w=t[g][p]>0?o.PI/4:-o.PI/4:w=o.atan(2*t[g][p]/(t[g][g]-t[p][p]))/2,x=r.identity(n,n),x[g][g]=o.cos(w),x[g][p]=-o.sin(w),x[p][g]=o.sin(w),x[p][p]=o.cos(w),i=r.multiply(i,x),v=r.multiply(r.multiply(r.inv(x),t),x),t=v,e=0,m=1;m<n;m++)for(h=1;h<n;h++)m!=h&&o.abs(t[m][h])>.001&&(e=1)}for(m=0;m<n;m++)s.push(t[m][m]);return[i,s]},rungekutta:function(t,e,n,i,s,v){var m,h,g,p,d;if(v===2)for(;i<=n;)m=e*t(i,s),h=e*t(i+e,s+m),g=s+(m+h)/2,s=g,i=i+e;if(v===4)for(;i<=n;)m=e*t(i,s),h=e*t(i+e/2,s+m/2),p=e*t(i+e/2,s+h/2),d=e*t(i+e,s+p),g=s+(m+2*h+2*p+d)/6,s=g,i=i+e;return s},romberg:function(t,e,n,i){for(var s=0,v=(n-e)/2,m=[],h=[],g=[],p,d,w,x,b;s<i/2;){for(b=t(e),w=e,x=0;w<=n;w=w+v,x++)m[x]=w;for(p=m.length,w=1;w<p-1;w++)b+=(w%2!==0?4:2)*t(m[w]);b=v/3*(b+t(n)),g[s]=b,v/=2,s++}for(d=g.length,p=1;d!==1;){for(w=0;w<d-1;w++)h[w]=(o.pow(4,p)*g[w+1]-g[w])/(o.pow(4,p)-1);d=h.length,g=h,h=[],p++}return g},richardson:function(t,e,n,i){function s(y,R){for(var _=0,q=y.length,A;_<q;_++)y[_]===R&&(A=_);return A}for(var v=o.abs(n-t[s(t,n)+1]),m=0,h=[],g=[],p,d,w,x,b;i>=v;)p=s(t,n+i),d=s(t,n),h[m]=(e[p]-2*e[d]+e[2*d-p])/(i*i),i/=2,m++;for(x=h.length,w=1;x!=1;){for(b=0;b<x-1;b++)g[b]=(o.pow(4,w)*h[b+1]-h[b])/(o.pow(4,w)-1);x=g.length,h=g,g=[],w++}return h},simpson:function(t,e,n,i){for(var s=(n-e)/i,v=t(e),m=[],h=e,g=0,p=1,d;h<=n;h=h+s,g++)m[g]=h;for(d=m.length;p<d-1;p++)v+=(p%2!==0?4:2)*t(m[p]);return s/3*(v+t(n))},hermite:function(t,e,n,i){for(var s=t.length,v=0,m=0,h=[],g=[],p=[],d=[],w;m<s;m++){for(h[m]=1,w=0;w<s;w++)m!=w&&(h[m]*=(i-t[w])/(t[m]-t[w]));for(g[m]=0,w=0;w<s;w++)m!=w&&(g[m]+=1/(t[m]-t[w]));p[m]=(1-2*(i-t[m])*g[m])*(h[m]*h[m]),d[m]=(i-t[m])*(h[m]*h[m]),v+=p[m]*e[m]+d[m]*n[m]}return v},lagrange:function(t,e,n){for(var i=0,s=0,v,m,h=t.length;s<h;s++){for(m=e[s],v=0;v<h;v++)s!=v&&(m*=(n-t[v])/(t[s]-t[v]));i+=m}return i},cubic_spline:function(t,e,n){for(var i=t.length,s=0,v,m=[],h=[],g=[],p=[],d=[],w=[],x=[];s<i-1;s++)d[s]=t[s+1]-t[s];for(g[0]=0,s=1;s<i-1;s++)g[s]=3/d[s]*(e[s+1]-e[s])-3/d[s-1]*(e[s]-e[s-1]);for(s=1;s<i-1;s++)m[s]=[],h[s]=[],m[s][s-1]=d[s-1],m[s][s]=2*(d[s-1]+d[s]),m[s][s+1]=d[s],h[s][0]=g[s];for(p=r.multiply(r.inv(m),h),v=0;v<i-1;v++)w[v]=(e[v+1]-e[v])/d[v]-d[v]*(p[v+1][0]+2*p[v][0])/3,x[v]=(p[v+1][0]-p[v][0])/(3*d[v]);for(v=0;v<i&&!(t[v]>n);v++);return v-=1,e[v]+(n-t[v])*w[v]+r.sq(n-t[v])*p[v]+(n-t[v])*r.sq(n-t[v])*x[v]},gauss_quadrature:function(){throw new Error("gauss_quadrature not yet implemented")},PCA:function(t){var e=t.length,n=t[0].length,i=0,s,v,m=[],h=[],g=[],p=[],d=[],w=[],x=[],b=[],y=[],R=[];for(i=0;i<e;i++)m[i]=r.sum(t[i])/n;for(i=0;i<n;i++)for(x[i]=[],s=0;s<e;s++)x[i][s]=t[s][i]-m[s];for(x=r.transpose(x),i=0;i<e;i++)for(b[i]=[],s=0;s<e;s++)b[i][s]=r.dot([x[i]],[x[s]])/(n-1);for(g=r.jacobi(b),y=g[0],h=g[1],R=r.transpose(y),i=0;i<h.length;i++)for(s=i;s<h.length;s++)h[i]<h[s]&&(v=h[i],h[i]=h[s],h[s]=v,p=R[i],R[i]=R[s],R[s]=p);for(w=r.transpose(x),i=0;i<e;i++)for(d[i]=[],s=0;s<w.length;s++)d[i][s]=r.dot([R[i]],[w[s]]);return[t,h,R,d]}}),(function(a){for(var t=0;t<a.length;t++)(function(e){r.fn[e]=function(n,i){var s=this;return i?(setTimeout(function(){i.call(s,r.fn[e].call(s,n))},15),this):typeof r[e](this,n)=="number"?r[e](this,n):r(r[e](this,n))}})(a[t])})("add divide multiply subtract dot pow exp log abs norm angle".split(" "))})(u,Math),(function(r,o){var f=[].slice,c=r.utils.isNumber,l=r.utils.isArray;r.extend({zscore:function(){var e=f.call(arguments);return c(e[1])?(e[0]-e[1])/e[2]:(e[0]-r.mean(e[1]))/r.stdev(e[1],e[2])},ztest:function(){var e=f.call(arguments),n;return l(e[1])?(n=r.zscore(e[0],e[1],e[3]),e[2]===1?r.normal.cdf(-o.abs(n),0,1):r.normal.cdf(-o.abs(n),0,1)*2):e.length>2?(n=r.zscore(e[0],e[1],e[2]),e[3]===1?r.normal.cdf(-o.abs(n),0,1):r.normal.cdf(-o.abs(n),0,1)*2):(n=e[0],e[1]===1?r.normal.cdf(-o.abs(n),0,1):r.normal.cdf(-o.abs(n),0,1)*2)}}),r.extend(r.fn,{zscore:function(e,n){return(e-this.mean())/this.stdev(n)},ztest:function(e,n,i){var s=o.abs(this.zscore(e,i));return n===1?r.normal.cdf(-s,0,1):r.normal.cdf(-s,0,1)*2}}),r.extend({tscore:function(){var e=f.call(arguments);return e.length===4?(e[0]-e[1])/(e[2]/o.sqrt(e[3])):(e[0]-r.mean(e[1]))/(r.stdev(e[1],!0)/o.sqrt(e[1].length))},ttest:function(){var e=f.call(arguments),n;return e.length===5?(n=o.abs(r.tscore(e[0],e[1],e[2],e[3])),e[4]===1?r.studentt.cdf(-n,e[3]-1):r.studentt.cdf(-n,e[3]-1)*2):c(e[1])?(n=o.abs(e[0]),e[2]==1?r.studentt.cdf(-n,e[1]-1):r.studentt.cdf(-n,e[1]-1)*2):(n=o.abs(r.tscore(e[0],e[1])),e[2]==1?r.studentt.cdf(-n,e[1].length-1):r.studentt.cdf(-n,e[1].length-1)*2)}}),r.extend(r.fn,{tscore:function(e){return(e-this.mean())/(this.stdev(!0)/o.sqrt(this.cols()))},ttest:function(e,n){return n===1?1-r.studentt.cdf(o.abs(this.tscore(e)),this.cols()-1):r.studentt.cdf(-o.abs(this.tscore(e)),this.cols()-1)*2}}),r.extend({anovafscore:function(){var e=f.call(arguments),n,i,s,v,m,h,g,p;if(e.length===1){for(m=new Array(e[0].length),g=0;g<e[0].length;g++)m[g]=e[0][g];e=m}for(i=new Array,g=0;g<e.length;g++)i=i.concat(e[g]);for(s=r.mean(i),n=0,g=0;g<e.length;g++)n=n+e[g].length*o.pow(r.mean(e[g])-s,2);for(n/=e.length-1,h=0,g=0;g<e.length;g++)for(v=r.mean(e[g]),p=0;p<e[g].length;p++)h+=o.pow(e[g][p]-v,2);return h/=i.length-e.length,n/h},anovaftest:function(){var e=f.call(arguments),n,i,s,v;if(c(e[0]))return 1-r.centralF.cdf(e[0],e[1],e[2]);var m=r.anovafscore(e);for(n=e.length-1,s=0,v=0;v<e.length;v++)s=s+e[v].length;return i=s-n-1,1-r.centralF.cdf(m,n,i)},ftest:function(e,n,i){return 1-r.centralF.cdf(e,n,i)}}),r.extend(r.fn,{anovafscore:function(){return r.anovafscore(this.toArray())},anovaftes:function(){var e=0,n;for(n=0;n<this.length;n++)e=e+this[n].length;return r.ftest(this.anovafscore(),this.length-1,e-this.length)}}),r.extend({qscore:function(){var e=f.call(arguments),n,i,s,v,m;return c(e[0])?(n=e[0],i=e[1],s=e[2],v=e[3],m=e[4]):(n=r.mean(e[0]),i=r.mean(e[1]),s=e[0].length,v=e[1].length,m=e[2]),o.abs(n-i)/(m*o.sqrt((1/s+1/v)/2))},qtest:function(){var e=f.call(arguments),n;e.length===3?(n=e[0],e=e.slice(1)):e.length===7?(n=r.qscore(e[0],e[1],e[2],e[3],e[4]),e=e.slice(5)):(n=r.qscore(e[0],e[1],e[2]),e=e.slice(3));var i=e[0],s=e[1];return 1-r.tukey.cdf(n,s,i-s)},tukeyhsd:function(e){for(var n=r.pooledstdev(e),i=e.map(function(p){return r.mean(p)}),s=e.reduce(function(p,d){return p+d.length},0),v=[],m=0;m<e.length;++m)for(var h=m+1;h<e.length;++h){var g=r.qtest(i[m],i[h],e[m].length,e[h].length,n,s,e.length);v.push([[m,h],g])}return v}}),r.extend({normalci:function(){var e=f.call(arguments),n=new Array(2),i;return e.length===4?i=o.abs(r.normal.inv(e[1]/2,0,1)*e[2]/o.sqrt(e[3])):i=o.abs(r.normal.inv(e[1]/2,0,1)*r.stdev(e[2])/o.sqrt(e[2].length)),n[0]=e[0]-i,n[1]=e[0]+i,n},tci:function(){var e=f.call(arguments),n=new Array(2),i;return e.length===4?i=o.abs(r.studentt.inv(e[1]/2,e[3]-1)*e[2]/o.sqrt(e[3])):i=o.abs(r.studentt.inv(e[1]/2,e[2].length-1)*r.stdev(e[2],!0)/o.sqrt(e[2].length)),n[0]=e[0]-i,n[1]=e[0]+i,n},significant:function(e,n){return e<n}}),r.extend(r.fn,{normalci:function(e,n){return r.normalci(e,n,this.toArray())},tci:function(e,n){return r.tci(e,n,this.toArray())}});function a(t,e,n,i){if(t>1||n>1||t<=0||n<=0)throw new Error("Proportions should be greater than 0 and less than 1");var s=(t*e+n*i)/(e+i),v=o.sqrt(s*(1-s)*(1/e+1/i));return(t-n)/v}r.extend(r.fn,{oneSidedDifferenceOfProportions:function(e,n,i,s){var v=a(e,n,i,s);return r.ztest(v,1)},twoSidedDifferenceOfProportions:function(e,n,i,s){var v=a(e,n,i,s);return r.ztest(v,2)}})})(u,Math),u.models=(function(){function r(a){var t=a[0].length,e=u.arange(t).map(function(n){var i=u.arange(t).filter(function(s){return s!==n});return o(u.col(a,n).map(function(s){return s[0]}),u.col(a,i))});return e}function o(a,t){var e=a.length,n=t[0].length-1,i=e-n-1,s=u.lstsq(t,a),v=u.multiply(t,s.map(function(x){return[x]})).map(function(x){return x[0]}),m=u.subtract(a,v),h=u.mean(a),g=u.sum(v.map(function(x){return Math.pow(x-h,2)})),p=u.sum(a.map(function(x,b){return Math.pow(x-v[b],2)})),d=g+p,w=g/d;return{exog:t,endog:a,nobs:e,df_model:n,df_resid:i,coef:s,predict:v,resid:m,ybar:h,SST:d,SSE:g,SSR:p,R2:w}}function f(a){var t=r(a.exog),e=Math.sqrt(a.SSR/a.df_resid),n=t.map(function(h){var g=h.SST,p=h.R2;return e/Math.sqrt(g*(1-p))}),i=a.coef.map(function(h,g){return(h-0)/n[g]}),s=i.map(function(h){var g=u.studentt.cdf(h,a.df_resid);return(g>.5?1-g:g)*2}),v=u.studentt.inv(.975,a.df_resid),m=a.coef.map(function(h,g){var p=v*n[g];return[h-p,h+p]});return{se:n,t:i,p:s,sigmaHat:e,interval95:m}}function c(a){var t=a.R2/a.df_model/((1-a.R2)/a.df_resid),e=function(i,s,v){return u.beta.cdf(i/(v/s+i),s/2,v/2)},n=1-e(t,a.df_model,a.df_resid);return{F_statistic:t,pvalue:n}}function l(a,t){var e=o(a,t),n=f(e),i=c(e),s=1-(1-e.R2)*((e.nobs-1)/e.df_resid);return e.t=n,e.f=i,e.adjust_R2=s,e}return{ols:l}})(),u.extend({buildxmatrix:function(){for(var o=new Array(arguments.length),f=0;f<arguments.length;f++){var c=[1];o[f]=c.concat(arguments[f])}return u(o)},builddxmatrix:function(){for(var o=new Array(arguments[0].length),f=0;f<arguments[0].length;f++){var c=[1];o[f]=c.concat(arguments[0][f])}return u(o)},buildjxmatrix:function(o){for(var f=new Array(o.length),c=0;c<o.length;c++)f[c]=o[c];return u.builddxmatrix(f)},buildymatrix:function(o){return u(o).transpose()},buildjymatrix:function(o){return o.transpose()},matrixmult:function(o,f){var c,l,a,t,e;if(o.cols()==f.rows()){if(f.rows()>1){for(t=[],c=0;c<o.rows();c++)for(t[c]=[],l=0;l<f.cols();l++){for(e=0,a=0;a<o.cols();a++)e+=o.toArray()[c][a]*f.toArray()[a][l];t[c][l]=e}return u(t)}for(t=[],c=0;c<o.rows();c++)for(t[c]=[],l=0;l<f.cols();l++){for(e=0,a=0;a<o.cols();a++)e+=o.toArray()[c][a]*f.toArray()[l];t[c][l]=e}return u(t)}},regress:function(o,f){var c=u.xtranspxinv(o),l=o.transpose(),a=u.matrixmult(u(c),l);return u.matrixmult(a,f)},regresst:function(o,f,c){var l=u.regress(o,f),a={};a.anova={};var t=u.jMatYBar(o,l);a.yBar=t;var e=f.mean();a.anova.residuals=u.residuals(f,t),a.anova.ssr=u.ssr(t,e),a.anova.msr=a.anova.ssr/(o[0].length-1),a.anova.sse=u.sse(f,t),a.anova.mse=a.anova.sse/(f.length-(o[0].length-1)-1),a.anova.sst=u.sst(f,e),a.anova.mst=a.anova.sst/(f.length-1),a.anova.r2=1-a.anova.sse/a.anova.sst,a.anova.r2<0&&(a.anova.r2=0),a.anova.fratio=a.anova.msr/a.anova.mse,a.anova.pvalue=u.anovaftest(a.anova.fratio,o[0].length-1,f.length-(o[0].length-1)-1),a.anova.rmse=Math.sqrt(a.anova.mse),a.anova.r2adj=1-a.anova.mse/a.anova.mst,a.anova.r2adj<0&&(a.anova.r2adj=0),a.stats=new Array(o[0].length);for(var n=u.xtranspxinv(o),i,s,v,m=0;m<l.length;m++)i=Math.sqrt(a.anova.mse*Math.abs(n[m][m])),s=Math.abs(l[m]/i),v=u.ttest(s,f.length-o[0].length-1,c),a.stats[m]=[l[m],i,s,v];return a.regress=l,a},xtranspx:function(o){return u.matrixmult(o.transpose(),o)},xtranspxinv:function(o){var f=u.matrixmult(o.transpose(),o),c=u.inv(f);return c},jMatYBar:function(o,f){var c=u.matrixmult(o,f);return new u(c)},residuals:function(o,f){return u.matrixsubtract(o,f)},ssr:function(o,f){for(var c=0,l=0;l<o.length;l++)c+=Math.pow(o[l]-f,2);return c},sse:function(o,f){for(var c=0,l=0;l<o.length;l++)c+=Math.pow(o[l]-f[l],2);return c},sst:function(o,f){for(var c=0,l=0;l<o.length;l++)c+=Math.pow(o[l]-f,2);return c},matrixsubtract:function(o,f){for(var c=new Array(o.length),l=0;l<o.length;l++){c[l]=new Array(o[l].length);for(var a=0;a<o[l].length;a++)c[l][a]=o[l][a]-f[l][a]}return u(c)}}),u.jStat=u,u})});var ut={};On(ut,{adx:()=>Pr,annualizeReturn:()=>$,annualizedVolatility:()=>Re,atr:()=>Oe,autocorrelation:()=>hn,benchmarkMetrics:()=>fn,bias:()=>Br,bollingerBands:()=>Ar,calculateAlpha:()=>je,calculateBeta:()=>Ae,calculateCVaR:()=>ze,calculateVaR:()=>Ie,calmarRatio:()=>un,cci:()=>Er,consecutiveWinLoss:()=>Se,dema:()=>br,detectCrossSignal:()=>Or,detectGaps:()=>Dn,detectMAAlignment:()=>Gr,donchianChannel:()=>Nr,doubleBottomTop:()=>En,downsideVolatility:()=>_e,dpo:()=>Fr,ema:()=>He,garch11:()=>xn,headAndShoulders:()=>Cn,hurstExponent:()=>mn,informationRatio:()=>rr,kama:()=>Ir,kdj:()=>qr,keltnerChannel:()=>Vr,ljungBoxTest:()=>dn,macd:()=>Rr,massIndex:()=>Wr,maxDrawdown:()=>qe,maxDrawdownDuration:()=>Je,momentum:()=>kr,navPercentile:()=>Hr,navStatisticalFeatures:()=>vn,navToReturns:()=>F,omegaRatio:()=>Ze,performanceMetrics:()=>ln,positionPnL:()=>Vn,pricePosition:()=>_n,profitFactor:()=>$e,profitLossRatio:()=>Xe,returnQuantiles:()=>gn,riskMetrics:()=>tn,roc:()=>Dr,rollingKurtosis:()=>wn,rollingSkewness:()=>pn,rollingVolatility:()=>rn,rsi:()=>_r,safetyMargin:()=>Rn,sar:()=>Tr,sharpeRatio:()=>on,simulateDCA:()=>bn,sma:()=>De,smartDCAMultiplier:()=>qn,sortinoRatio:()=>sn,statisticalFeatures:()=>cn,stochasticRSI:()=>Lr,supportResistance:()=>Pn,takeProfitStopLoss:()=>yn,tema:()=>yr,tieredBuySignal:()=>An,tieredSellSignal:()=>Nn,totalReturn:()=>Ue,trackingError:()=>er,trailingStop:()=>In,trendStrength:()=>kn,treynorRatio:()=>an,trix:()=>zr,volatilityCone:()=>nn,williamsR:()=>Cr,winRate:()=>Ye,wma:()=>xr});var Ve=class{constructor(r,o,f){this.next=f,f&&(f.prev=this),this.prev=o,o&&(o.next=this),this.data=r}},Z=class{constructor(){this._length=0}get head(){return this._head&&this._head.data}get tail(){return this._tail&&this._tail.data}get current(){return this._current&&this._current.data}get length(){return this._length}push(r){this._tail=new Ve(r,this._tail),this._length===0&&(this._head=this._tail,this._current=this._head,this._next=this._head),this._length++}pop(){var r=this._tail;if(this._length!==0)return this._length--,this._length===0?(this._head=this._tail=this._current=this._next=void 0,r.data):(this._tail=r.prev,this._tail.next=void 0,this._current===r&&(this._current=this._tail,this._next=void 0),r.data)}shift(){var r=this._head;if(this._length!==0)return this._length--,this._length===0?(this._head=this._tail=this._current=this._next=void 0,r.data):(this._head=this._head.next,this._current===r&&(this._current=this._head,this._next=this._current.next),r.data)}unshift(r){this._head=new Ve(r,void 0,this._head),this._length===0&&(this._tail=this._head,this._next=this._head),this._length++}unshiftCurrent(){var r=this._current;return r===this._head||this._length<2?r&&r.data:(r===this._tail?(this._tail=r.prev,this._tail.next=void 0,this._current=this._tail):(r.next.prev=r.prev,r.prev.next=r.next,this._current=r.prev),this._next=this._current.next,r.next=this._head,r.prev=void 0,this._head.prev=r,this._head=r,r.data)}removeCurrent(){var r=this._current;if(this._length!==0)return this._length--,this._length===0?(this._head=this._tail=this._current=this._next=void 0,r.data):(r===this._tail?(this._tail=r.prev,this._tail.next=void 0,this._current=this._tail):r===this._head?(this._head=r.next,this._head.prev=void 0,this._current=this._head):(r.next.prev=r.prev,r.prev.next=r.next,this._current=r.prev),this._next=this._current.next,r.data)}resetCursor(){return this._current=this._next=this._head,this}next(){var r=this._next;if(r!==void 0)return this._next=r.next,this._current=r,r.data}};var B=class extends Z{constructor(r,o,f,c){if(super(),this.size=r,this.maintainHigh=o,this.maintainLow=f,this.maintainSum=c,this.totalPushed=0,this.periodHigh=0,this.periodLow=1/0,this.periodSum=0,!r||typeof r!="number")throw"Size required and should be a number.";this._push=this.push,this.push=function(l){this.add(l),this.totalPushed++}}add(r){this.length===this.size?(this.lastShift=this.shift(),this._push(r),this.maintainHigh&&this.lastShift==this.periodHigh&&this.calculatePeriodHigh(),this.maintainLow&&this.lastShift==this.periodLow&&this.calculatePeriodLow(),this.maintainSum&&(this.periodSum=this.periodSum-this.lastShift)):this._push(r),this.maintainHigh&&this.periodHigh<=r&&(this.periodHigh=r),this.maintainLow&&this.periodLow>=r&&(this.periodLow=r),this.maintainSum&&(this.periodSum=this.periodSum+r)}*iterator(){for(this.resetCursor();this.next();)yield this.current}calculatePeriodHigh(){for(this.resetCursor(),this.next()&&(this.periodHigh=this.current);this.next();)this.periodHigh<=this.current&&(this.periodHigh=this.current)}calculatePeriodLow(){for(this.resetCursor(),this.next()&&(this.periodLow=this.current);this.next();)this.periodLow>=this.current&&(this.periodLow=this.current)}};var Kn={};function tr(u){return Kn[u]}function or(u){let r=tr("precision");return r?parseFloat(u.toPrecision(r)):u}var C=class{};var I=class{constructor(r){this.format=r.format||or}static reverseInputs(r){r.reversedInput&&(r.values&&r.values.reverse(),r.open&&r.open.reverse(),r.high&&r.high.reverse(),r.low&&r.low.reverse(),r.close&&r.close.reverse(),r.volume&&r.volume.reverse(),r.timestamp&&r.timestamp.reverse())}getResult(){return this.result}};var P=class extends I{constructor(r){super(r),this.period=r.period,this.price=r.values;var o=(function*(f){var c=new Z,l=0,a=1,t=yield,e;for(c.push(0);;)a<f?(a++,c.push(t),l=l+t):(l=l-c.shift()+t,e=l/f,c.push(t)),t=yield e});this.generator=o(this.period),this.generator.next(),this.result=[],this.price.forEach(f=>{var c=this.generator.next(f);c.value!==void 0&&this.result.push(this.format(c.value))})}nextValue(r){var o=this.generator.next(r).value;if(o!=null)return this.format(o)}};P.calculate=ir;function ir(u){I.reverseInputs(u);var r=new P(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var L=class extends I{constructor(r){super(r);var o=r.period,f=r.values,c=2/(o+1),l;this.result=[],l=new P({period:o,values:[]});var a=(function*(){for(var t=yield,e;;)e!==void 0&&t!==void 0?(e=(t-e)*c+e,t=yield e):(t=yield,e=l.nextValue(t),e&&(t=yield e))});this.generator=a(),this.generator.next(),this.generator.next(),f.forEach(t=>{var e=this.generator.next(t);e.value!=null&&this.result.push(this.format(e.value))})}nextValue(r){var o=this.generator.next(r).value;if(o!=null)return this.format(o)}};L.calculate=sr;function sr(u){I.reverseInputs(u);var r=new L(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var te=class extends I{constructor(r){super(r);var o=r.period,f=r.values;this.result=[],this.generator=(function*(){let c=new Z,l=o*(o+1)/2;for(;;)if(c.length<o)c.push(yield);else{c.resetCursor();let t=0;for(let e=1;e<=o;e++)t=t+c.next()*e/l;var a=yield t;c.shift(),c.push(a)}})(),this.generator.next(),f.forEach((c,l)=>{var a=this.generator.next(c);a.value!=null&&this.result.push(this.format(a.value))})}nextValue(r){var o=this.generator.next(r).value;if(o!=null)return this.format(o)}};te.calculate=ur;function ur(u){I.reverseInputs(u);var r=new te(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var j=class extends I{constructor(r){super(r);var o=r.period,f=r.values,c=1/o,l;this.result=[],l=new P({period:o,values:[]});var a=(function*(){for(var t=yield,e;;)e!==void 0&&t!==void 0?(e=(t-e)*c+e,t=yield e):(t=yield,e=l.nextValue(t),e!==void 0&&(t=yield e))});this.generator=a(),this.generator.next(),this.generator.next(),f.forEach(t=>{var e=this.generator.next(t);e.value!=null&&this.result.push(this.format(e.value))})}nextValue(r){var o=this.generator.next(r).value;if(o!=null)return this.format(o)}};j.calculate=Mn;function Mn(u){I.reverseInputs(u);var r=new j(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var oe=class extends I{constructor(r){super(r);var o=r.SimpleMAOscillator?P:L,f=r.SimpleMASignal?P:L,c=new o({period:r.fastPeriod,values:[],format:e=>e}),l=new o({period:r.slowPeriod,values:[],format:e=>e}),a=new f({period:r.signalPeriod,values:[],format:e=>e}),t=this.format;this.result=[],this.generator=(function*(){for(var e=0,n,i,s,v,m,h;;){if(e<r.slowPeriod){n=yield,m=c.nextValue(n),h=l.nextValue(n),e++;continue}m&&h&&(i=m-h,s=a.nextValue(i)),v=i-s,n=yield{MACD:t(i),signal:s?t(s):void 0,histogram:isNaN(v)?void 0:t(v)},m=c.nextValue(n),h=l.nextValue(n)}})(),this.generator.next(),r.values.forEach(e=>{var n=this.generator.next(e);n.value!=null&&this.result.push(n.value)})}nextValue(r){var o=this.generator.next(r).value;return o}};oe.calculate=ar;function ar(u){I.reverseInputs(u);var r=new oe(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var ge=class extends I{constructor(r){super(r);let o=r.values,f=r.period,c=this.format;this.generator=(function*(l){var a=yield,t=1,e=0,n,i,s=a;for(a=yield;;)i=a-s,i=i>0?i:0,i>0&&(e=e+i),t<l?t++:n===void 0?n=e/l:n=(n*(l-1)+i)/l,s=a,n=n!==void 0?c(n):void 0,a=yield n})(f),this.generator.next(),this.result=[],o.forEach(l=>{var a=this.generator.next(l);a.value!==void 0&&this.result.push(a.value)})}nextValue(r){return this.generator.next(r).value}};ge.calculate=Qn;function Qn(u){I.reverseInputs(u);var r=new ge(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var pe=class extends I{constructor(r){super(r);let o=r.values,f=r.period,c=this.format;this.generator=(function*(l){var a=yield,t=1,e=0,n,i,s=a;for(a=yield;;)i=s-a,i=i>0?i:0,i>0&&(e=e+i),t<l?t++:n===void 0?n=e/l:n=(n*(l-1)+i)/l,s=a,n=n!==void 0?c(n):void 0,a=yield n})(f),this.generator.next(),this.result=[],o.forEach(l=>{var a=this.generator.next(l);a.value!==void 0&&this.result.push(a.value)})}nextValue(r){return this.generator.next(r).value}};pe.calculate=Un;function Un(u){I.reverseInputs(u);var r=new pe(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var Y=class extends I{constructor(r){super(r);var o=r.period,f=r.values,c=new ge({period:o,values:[]}),l=new pe({period:o,values:[]});let a=1;this.generator=(function*(t){for(var e=yield,n,i,s,v;;)n=c.nextValue(e),i=l.nextValue(e),n!==void 0&&i!==void 0&&(i===0?v=100:n===0?v=0:(s=n/i,s=isNaN(s)?0:s,v=parseFloat((100-100/(1+s)).toFixed(2)))),a++,e=yield v})(o),this.generator.next(),this.result=[],f.forEach(t=>{var e=this.generator.next(t);e.value!==void 0&&this.result.push(e.value)})}nextValue(r){return this.generator.next(r).value}};Y.calculate=lr;function lr(u){I.reverseInputs(u);var r=new Y(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var we=class extends I{constructor(r){super(r);var o=r.period,f=r.values,c=new P({period:o,values:[],format:l=>l});this.result=[],this.generator=(function*(){var l,a,t=new B(o);l=yield;for(var e;;){if(t.push(l),a=c.nextValue(l),a){let n=0;for(let i of t.iterator())n=n+Math.pow(i-a,2);e=Math.sqrt(n/o)}l=yield e}})(),this.generator.next(),f.forEach(l=>{var a=this.generator.next(l);a.value!=null&&this.result.push(this.format(a.value))})}nextValue(r){var o=this.generator.next(r);if(o.value!=null)return this.format(o.value)}};we.calculate=Jn;function Jn(u){I.reverseInputs(u);var r=new we(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var ie=class extends I{constructor(r){super(r);var o=r.period,f=r.values,c=r.stdDev,l=this.format,a,t;this.result=[],a=new P({period:o,values:[],format:e=>e}),t=new we({period:o,values:[],format:e=>e}),this.generator=(function*(){var e,n,i,s;for(n=yield;;){if(i=a.nextValue(n),s=t.nextValue(n),i){let v=l(i),m=l(i+s*c),h=l(i-s*c),g=l((n-h)/(m-h));e={middle:v,upper:m,lower:h,pb:g}}n=yield e}})(),this.generator.next(),f.forEach(e=>{var n=this.generator.next(e);n.value!=null&&this.result.push(n.value)})}nextValue(r){return this.generator.next(r).value}};ie.calculate=fr;function fr(u){I.reverseInputs(u);var r=new ie(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var ee=class extends I{constructor(r){super(r),this.period=r.period,this.price=r.values;var o=(function*(f){for(var c=new Z,l=0,a=1,t=yield,e=0;;)a<f?(a++,l=l+t,e=void 0):a==f?(a++,l=l+t,e=l):e=e-e/f+t,t=yield e});this.generator=o(this.period),this.generator.next(),this.result=[],this.price.forEach(f=>{var c=this.generator.next(f);c.value!=null&&this.result.push(this.format(c.value))})}nextValue(r){var o=this.generator.next(r).value;if(o!=null)return this.format(o)}};ee.calculate=Zn;function Zn(u){I.reverseInputs(u);var r=new ee(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var Pe=class u extends I{constructor(r){super(r);var o=r.low,f=r.high,c=this.format;if(o.length!=f.length)throw"Inputs(low,high) not of equal size";this.result=[],this.generator=(function*(){for(var l,a=yield,t;;){if(t){let e=a.high-t.high,n=t.low-a.low;l=c(n>e&&n>0?n:0)}t=a,a=yield l}})(),this.generator.next(),o.forEach((l,a)=>{var t=this.generator.next({high:f[a],low:o[a]});t.value!==void 0&&this.result.push(t.value)})}static calculate(r){I.reverseInputs(r);var o=new u(r).result;return r.reversedInput&&o.reverse(),I.reverseInputs(r),o}nextValue(r){return this.generator.next(r).value}};var Ee=class u extends I{constructor(r){super(r);var o=r.low,f=r.high,c=this.format;if(o.length!=f.length)throw"Inputs(low,high) not of equal size";this.result=[],this.generator=(function*(){for(var l,a=yield,t;;){if(t){let e=a.high-t.high,n=t.low-a.low;l=c(e>n&&e>0?e:0)}t=a,a=yield l}})(),this.generator.next(),o.forEach((l,a)=>{var t=this.generator.next({high:f[a],low:o[a]});t.value!==void 0&&this.result.push(t.value)})}static calculate(r){I.reverseInputs(r);var o=new u(r).result;return r.reversedInput&&o.reverse(),I.reverseInputs(r),o}nextValue(r){return this.generator.next(r).value}};var re=class extends I{constructor(r){super(r);var o=r.low,f=r.high,c=r.close,l=this.format;if(o.length!=f.length)throw"Inputs(low,high) not of equal size";this.result=[],this.generator=(function*(){for(var a=yield,t,e;;)t===void 0&&(t=a.close,a=yield e),e=Math.max(a.high-a.low,isNaN(Math.abs(a.high-t))?0:Math.abs(a.high-t),isNaN(Math.abs(a.low-t))?0:Math.abs(a.low-t)),t=a.close,e!=null&&(e=l(e)),a=yield e})(),this.generator.next(),o.forEach((a,t)=>{var e=this.generator.next({high:f[t],low:o[t],close:c[t]});e.value!=null&&this.result.push(e.value)})}nextValue(r){return this.generator.next(r).value}};re.calculate=Yn;function Yn(u){I.reverseInputs(u);var r=new re(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var Be=class extends C{},se=class extends I{constructor(r){super(r);var o=r.low,f=r.high,c=r.close,l=r.period,a=this.format,t=new Ee({high:[],low:[]}),e=new Pe({high:[],low:[]}),n=new ee({period:l,values:[],format:h=>h}),i=new ee({period:l,values:[],format:h=>h}),s=new ee({period:l,values:[],format:h=>h}),v=new j({period:l,values:[],format:h=>h}),m=new re({low:[],high:[],close:[]});if(!(o.length===f.length&&f.length===c.length))throw"Inputs(low,high, close) not of equal size";this.result=[],this.generator=(function*(){var h=yield,g=0,p,d,w,x,b,y,R;for(p=0,d=0,w=0;;){let _=m.nextValue(h),q=t.nextValue(h),A=e.nextValue(h);if(_===void 0){h=yield;continue}let k=s.nextValue(_),V=n.nextValue(q),D=i.nextValue(A);if(k!=null&&V!=null&&D!=null){x=V*100/k,b=D*100/k;let O=Math.abs(x-b),K=x+b;y=O/K*100,R=v.nextValue(y)}h=yield{adx:R,pdi:x,mdi:b}}})(),this.generator.next(),o.forEach((h,g)=>{var p=this.generator.next({high:f[g],low:o[g],close:c[g]});p.value!=null&&p.value.adx!=null&&this.result.push({adx:a(p.value.adx),pdi:a(p.value.pdi),mdi:a(p.value.mdi)})})}nextValue(r){let o=this.generator.next(r).value;if(o!=null&&o.adx!=null)return{adx:this.format(o.adx),pdi:this.format(o.pdi),mdi:this.format(o.mdi)}}};se.calculate=cr;function cr(u){I.reverseInputs(u);var r=new se(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var ue=class extends I{constructor(r){super(r);var o=r.low,f=r.high,c=r.close,l=r.period,a=this.format;if(!(o.length===f.length&&f.length===c.length))throw"Inputs(low,high, close) not of equal size";var t=new re({low:[],high:[],close:[]}),e=new j({period:l,values:[],format:n=>n});this.result=[],this.generator=(function*(){for(var n=yield,i,s;;)s=t.nextValue({low:n.low,high:n.high,close:n.close}),s===void 0?i=void 0:i=e.nextValue(s),n=yield i})(),this.generator.next(),o.forEach((n,i)=>{var s=this.generator.next({high:f[i],low:o[i],close:c[i]});s.value!==void 0&&this.result.push(a(s.value))})}nextValue(r){return this.generator.next(r).value}};ue.calculate=vr;function vr(u){I.reverseInputs(u);var r=new ue(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var ae=class extends I{constructor(r){super(r);var o=r.period,f=r.values;this.result=[],this.generator=(function*(){let c=1;for(var l=new B(o),a=yield,t;;)l.push(a),c<o?c++:t=(a-l.lastShift)/l.lastShift*100,a=yield t})(),this.generator.next(),f.forEach(c=>{var l=this.generator.next(c);l.value!=null&&!isNaN(l.value)&&this.result.push(this.format(l.value))})}nextValue(r){var o=this.generator.next(r);if(o.value!=null&&!isNaN(o.value))return this.format(o.value)}};ae.calculate=mr;function mr(u){I.reverseInputs(u);var r=new ae(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var le=class extends I{constructor(r){super(r);let o=r.high||[],f=r.low||[];var c=function*(l,a){let t,e,n,i,s=!0,v=l,m=yield;for(;;)t?(n=n+v*(e-n),s?(n=Math.min(n,i.low,m.low),t.high>e&&(e=t.high,v=Math.min(v+l,a))):(n=Math.max(n,i.high,m.high),t.low<e&&(e=t.low,v=Math.min(v+l,a))),(s&&t.low<n||!s&&t.high>n)&&(v=l,n=e,s=!s,e=s?t.high:t.low)):(n=m.low,e=m.high),i=m,t&&(m=t),t=yield n};this.result=[],this.generator=c(r.step,r.max),this.generator.next(),f.forEach((l,a)=>{var t=this.generator.next({high:o[a],low:f[a]});t.value!==void 0&&this.result.push(t.value)})}nextValue(r){let o=this.generator.next(r);if(o.value!==void 0)return o.value}};le.calculate=hr;function hr(u){I.reverseInputs(u);var r=new le(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var X=class extends I{constructor(r){super(r);let o=r.low,f=r.high,c=r.close,l=r.period,a=r.signalPeriod,t=this.format;if(!(o.length===f.length&&f.length===c.length))throw"Inputs(low,high, close) not of equal size";this.result=[],this.generator=(function*(){let e=1,n=new B(l,!0,!1),i=new B(l,!1,!0),s=new P({period:a,values:[],format:g=>g}),v,m;for(var h=yield;;){if(n.push(h.high),i.push(h.low),e<l){e++,h=yield;continue}let g=i.periodLow;v=(h.close-g)/(n.periodHigh-g)*100,v=isNaN(v)?0:v,m=s.nextValue(v),h=yield{k:t(v),d:m!==void 0?t(m):void 0}}})(),this.generator.next(),o.forEach((e,n)=>{var i=this.generator.next({high:f[n],low:o[n],close:c[n]});i.value!==void 0&&this.result.push(i.value)})}nextValue(r){let o=this.generator.next(r);if(o.value!==void 0)return o.value}};X.calculate=dr;function dr(u){I.reverseInputs(u);var r=new X(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var fe=class extends I{constructor(r){super(r);let o=r.low,f=r.high,c=r.close,l=r.period,a=this.format;if(!(o.length===f.length&&f.length===c.length))throw"Inputs(low,high, close) not of equal size";this.result=[],this.generator=(function*(){let t=1,e=new B(l,!0,!1),n=new B(l,!1,!0),i,s;var v=yield;let m;for(;;){if(e.push(v.high),n.push(v.low),t<l){t++,v=yield;continue}i=n.periodLow,s=e.periodHigh,m=a((s-v.close)/(s-i)*-100),v=yield m}})(),this.generator.next(),o.forEach((t,e)=>{var n=this.generator.next({high:f[e],low:o[e],close:c[e]});n.value!==void 0&&this.result.push(n.value)})}nextValue(r){var o=this.generator.next(r);if(o.value!=null)return this.format(o.value)}};fe.calculate=gr;function gr(u){I.reverseInputs(u);var r=new fe(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var ce=class extends I{constructor(r){super(r);var o=r.low,f=r.high,c=r.close,l=r.period,a=this.format;let t=.015;var e=new B(l),n=new P({period:l,values:[],format:i=>i});if(!(o.length===f.length&&f.length===c.length))throw"Inputs(low,high, close) not of equal size";this.result=[],this.generator=(function*(){for(var i=yield;;){let s=(i.high+i.low+i.close)/3;e.push(s);let v=n.nextValue(s),m=null,h,g=0;if(v!=null){for(let p of e.iterator())g=g+Math.abs(p-v);m=g/l,h=(s-v)/(t*m)}i=yield h}})(),this.generator.next(),o.forEach((i,s)=>{var v=this.generator.next({high:f[s],low:o[s],close:c[s]});v.value!=null&&this.result.push(v.value)})}nextValue(r){let o=this.generator.next(r).value;if(o!=null)return o}};ce.calculate=pr;function pr(u){I.reverseInputs(u);var r=new ce(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}var ve=class extends I{constructor(r){super(r);let o=r.values,f=r.rsiPeriod,c=r.stochasticPeriod,l=r.kPeriod,a=r.dPeriod,t=this.format;this.result=[],this.generator=(function*(){let e=1,n=new Y({period:f,values:[]}),i=new X({period:c,high:[],low:[],close:[],signalPeriod:l}),s=new P({period:a,values:[],format:w=>w}),v,m,h,g;for(var p=yield;;){if(v=n.nextValue(p),v!==void 0){var d={high:v,low:v,close:v};m=i.nextValue(d),m!==void 0&&m.d!==void 0&&(h=s.nextValue(m.d),h!==void 0&&(g={stochRSI:m.k,k:m.d,d:h}))}p=yield g}})(),this.generator.next(),o.forEach((e,n)=>{var i=this.generator.next(e);i.value!==void 0&&this.result.push(i.value)})}nextValue(r){let o=this.generator.next(r);if(o.value!==void 0)return o.value}};ve.calculate=wr;function wr(u){I.reverseInputs(u);var r=new ve(u).result;return u.reversedInput&&r.reverse(),I.reverseInputs(u),r}function xe(u){return u.map(r=>({high:r,low:r,close:r}))}function E(u,r){let o=r-u.length,f=new Array(o).fill(null);for(let c of u)f.push(c??null);return f}function N(u){for(let r=u.length-1;r>=0;r--)if(u[r]!=null)return u[r];return null}function De(u,r){let o=P.calculate({values:u,period:r}),f=E(o,u.length);return{values:f,current:N(f),period:r,type:"SMA"}}function He(u,r){let o=L.calculate({values:u,period:r}),f=E(o,u.length);return{values:f,current:N(f),period:r,type:"EMA"}}function xr(u,r){let o=te.calculate({values:u,period:r}),f=E(o,u.length);return{values:f,current:N(f),period:r,type:"WMA"}}function br(u,r){let o=L.calculate({values:u,period:r}),f=E(o,u.length),c=o.filter(e=>e!==void 0),l=L.calculate({values:c,period:r}),a=new Array(u.length).fill(null),t=u.length-c.length;for(let e=0;e<l.length;e++){let n=t+e;n<u.length&&l[e]!=null&&f[n]!=null&&(a[n]=2*f[n]-l[e])}return{values:a,current:N(a),period:r,type:"DEMA"}}function yr(u,r){let o=L.calculate({values:u,period:r}),f=o.filter(m=>m!==void 0),c=L.calculate({values:f,period:r}),l=c.filter(m=>m!==void 0),a=L.calculate({values:l,period:r}),t=E(o,u.length),e=u.length-f.length,n=new Array(u.length).fill(null);for(let m=0;m<c.length;m++){let h=e+m;h<u.length&&(n[h]=c[m]??null)}let i=e+(f.length-l.length),s=new Array(u.length).fill(null);for(let m=0;m<a.length;m++){let h=i+m;h<u.length&&(s[h]=a[m]??null)}let v=new Array(u.length).fill(null);for(let m=0;m<u.length;m++){let h=t[m],g=n[m],p=s[m];h!=null&&g!=null&&p!=null&&(v[m]=3*h-3*g+p)}return{values:v,current:N(v),period:r,type:"TEMA"}}function Ir(u,r=10,o=2,f=30){let c=2/(o+1),l=2/(f+1),a=new Array(u.length).fill(null);if(u.length<=r)return{values:a,current:null,period:r,type:"KAMA"};a[r]=u[r];for(let t=r+1;t<u.length;t++){let e=Math.abs(u[t]-u[t-r]),n=0;for(let m=t-r+1;m<=t;m++)n+=Math.abs(u[m]-u[m-1]);let i=n===0?0:e/n,s=Math.pow(i*(c-l)+l,2),v=a[t-1];a[t]=v+s*(u[t]-v)}return{values:a,current:N(a),period:r,type:"KAMA"}}function Rr(u,r=12,o=26,f=9){let c=oe.calculate({values:u,fastPeriod:r,slowPeriod:o,signalPeriod:f,SimpleMAOscillator:!1,SimpleMASignal:!1}),l=E(c.map(e=>e.MACD),u.length),a=E(c.map(e=>e.signal),u.length),t=E(c.map(e=>e.histogram),u.length);return{dif:l,dea:a,histogram:t,currentDIF:N(l),currentDEA:N(a),currentHistogram:N(t)}}function _r(u,r=14){let o=Y.calculate({values:u,period:r}),f=E(o,u.length);return{values:f,current:N(f),period:r}}function qr(u,r=9,o=3,f=3){let c=xe(u),l=X.calculate({high:c.map(n=>n.high),low:c.map(n=>n.low),close:c.map(n=>n.close),period:r,signalPeriod:f}),a=E(l.map(n=>n.k),u.length),t=E(l.map(n=>n.d),u.length),e=a.map((n,i)=>{let s=t[i];return n!=null&&s!=null?3*n-2*s:null});return{k:a,d:t,j:e,currentK:N(a),currentD:N(t),currentJ:N(e)}}function Ar(u,r=20,o=2){let f=ie.calculate({values:u,period:r,stdDev:o}),c=E(f.map(n=>n.middle),u.length),l=E(f.map(n=>n.upper),u.length),a=E(f.map(n=>n.lower),u.length),t=[],e=[];for(let n=0;n<u.length;n++){let i=c[n],s=l[n],v=a[n];i!=null&&s!=null&&v!=null?(t.push((s-v)/i),e.push(s===v?.5:(u[n]-v)/(s-v))):(t.push(null),e.push(null))}return{middle:c,upper:l,lower:a,bandwidth:t,percentB:e}}function Nr(u,r=20){let o=[],f=[],c=[];for(let l=0;l<u.length;l++){if(l<r-1){o.push(null),f.push(null),c.push(null);continue}let a=u.slice(l-r+1,l+1),t=Math.max(...a),e=Math.min(...a);o.push(t),f.push(e),c.push((t+e)/2)}return{upper:o,lower:f,middle:c}}function Vr(u,r=20,o=10,f=2){let c=He(u,r),l=Oe(u,o),a=[],t=[];for(let e=0;e<u.length;e++){let n=c.values[e],i=l.values[e];n!=null&&i!=null?(a.push(n+f*i),t.push(n-f*i)):(a.push(null),t.push(null))}return{upper:a,lower:t,middle:c.values}}function Pr(u,r=14){let o=xe(u),f=se.calculate({high:o.map(t=>t.high),low:o.map(t=>t.low),close:o.map(t=>t.close),period:r}),c=E(f.map(t=>t.adx),u.length),l=E(f.map(t=>t.pdi),u.length),a=E(f.map(t=>t.mdi),u.length);return{adx:c,plusDI:l,minusDI:a,currentADX:N(c)}}function Oe(u,r=14){let o=xe(u),f=ue.calculate({high:o.map(l=>l.high),low:o.map(l=>l.low),close:o.map(l=>l.close),period:r}),c=E(f,u.length);return{values:c,current:N(c),period:r,type:"SMA"}}function Er(u,r=20){let o=xe(u),f=ce.calculate({high:o.map(l=>l.high),low:o.map(l=>l.low),close:o.map(l=>l.close),period:r}),c=E(f,u.length);return{values:c,current:N(c),period:r,type:"SMA"}}function Dr(u,r=12){let o=ae.calculate({values:u,period:r}),f=E(o,u.length);return{values:f,current:N(f),period:r,type:"SMA"}}function kr(u,r=10){let o=[];for(let f=0;f<u.length;f++)f<r?o.push(null):o.push(u[f]-u[f-r]);return{values:o,current:N(o),period:r,type:"SMA"}}function Cr(u,r=14){let o=xe(u),f=fe.calculate({high:o.map(l=>l.high),low:o.map(l=>l.low),close:o.map(l=>l.close),period:r}),c=E(f,u.length);return{values:c,current:N(c),period:r,type:"SMA"}}function Lr(u,r=14,o=14,f=3,c=3){let l=ve.calculate({values:u,rsiPeriod:r,stochasticPeriod:o,kPeriod:f,dPeriod:c}),a=E(l.map(n=>n.k),u.length),t=E(l.map(n=>n.d),u.length),e=a.map((n,i)=>{let s=t[i];return n!=null&&s!=null?3*n-2*s:null});return{k:a,d:t,j:e,currentK:N(a),currentD:N(t),currentJ:N(e)}}function Tr(u,r=.02,o=.2){let f=xe(u),c=le.calculate({high:f.map(a=>a.high),low:f.map(a=>a.low),step:r,max:o}),l=E(c,u.length);return{values:l,current:N(l)}}function zr(u,r=12){let f=L.calculate({values:u,period:r}).filter(n=>n!==void 0),l=L.calculate({values:f,period:r}).filter(n=>n!==void 0),a=L.calculate({values:l,period:r}),t=new Array(u.length).fill(null),e=u.length-a.length;for(let n=1;n<a.length;n++){let i=a[n-1],s=a[n];i!=null&&s!=null&&i!==0&&(t[e+n]=(s-i)/i*100)}return{values:t,current:N(t),period:r,type:"SMA"}}function Fr(u,r=20){let o=De(u,r),f=Math.floor(r/2)+1,c=[];for(let l=0;l<u.length;l++){let a=l+f;a<u.length&&o.values[a]!=null?c.push(u[l]-o.values[a]):c.push(null)}return{values:c,current:N(c),period:r,type:"SMA"}}function Br(u,r=20){let o=De(u,r),f=[];for(let c=0;c<u.length;c++){let l=o.values[c];l!=null&&l!==0?f.push((u[c]-l)/l*100):f.push(null)}return{values:f,current:N(f),period:r,type:"SMA"}}function Hr(u,r){let o=r?u.slice(-r):u,f=u[u.length-1],c=[...o].sort((a,t)=>a-t),l=0;for(let a of c)a<f?l++:a===f&&(l+=.5);return l/c.length*100}function Or(u,r,o=5){let f=u.values,c=r.values,l=Math.min(f.length,c.length);for(let a=l-1;a>=Math.max(1,l-o);a--){let t=f[a],e=f[a-1],n=c[a],i=c[a-1];if(!(t==null||e==null||n==null||i==null)){if(e<=i&&t>n)return{type:"golden_cross",index:a,fastValue:t,slowValue:n};if(e>=i&&t<n)return{type:"death_cross",index:a,fastValue:t,slowValue:n}}}return{type:"none",index:-1,fastValue:0,slowValue:0}}function Gr(u){let r=u.map(n=>n.current??0);if(!u.every(n=>n.current!=null))return{alignment:"neutral",maValues:r,divergence:0};let f=!0,c=!0;for(let n=1;n<r.length;n++)r[n]>=r[n-1]&&(f=!1),r[n]<=r[n-1]&&(c=!1);let l=r.reduce((n,i)=>n+i,0)/r.length,a=r.reduce((n,i)=>n+(i-l)**2,0)/r.length,t=Math.sqrt(a);return{alignment:f?"bullish":c?"bearish":"neutral",maValues:r,divergence:t}}function Wr(u,r=9,o=25){let c=L.calculate({values:u,period:r}).filter(n=>n!==void 0),l=L.calculate({values:c,period:r}),a=[];for(let n=0;n<l.length;n++){let i=c[n+(c.length-l.length)],s=l[n];i!=null&&s!=null&&s!==0?a.push(i/s):a.push(1)}let t=new Array(u.length).fill(null),e=u.length-a.length;for(let n=o-1;n<a.length;n++){let i=0;for(let s=n-o+1;s<=n;s++)i+=a[s];t[e+n]=i}return{values:t,current:N(t),period:o,type:"SMA"}}function Xn(u){if(u.length===0)return 0;var r=u[0],o=0,f;if(typeof r!="number")return Number.NaN;for(var c=1;c<u.length;c++){if(typeof u[c]!="number")return Number.NaN;f=r+u[c],Math.abs(r)>=Math.abs(u[c])?o+=r-f+u[c]:o+=u[c]-f+r,r=f}return r+o}function z(u){if(u.length===0)throw new Error("mean requires at least one data point");return Xn(u)/u.length}function Mr(u,r){var o=z(u),f=0,c,l;if(r===2)for(l=0;l<u.length;l++)c=u[l]-o,f+=c*c;else for(l=0;l<u.length;l++)f+=Math.pow(u[l]-o,r);return f}function $n(u){if(u.length<2)throw new Error("sampleVariance requires at least two data points");var r=Mr(u,2),o=u.length-1;return r/o}function Kr(u){var r=$n(u);return Math.sqrt(r)}function Ge(u){if(u.length===0)throw new Error("max requires at least one data point");for(var r=u[0],o=1;o<u.length;o++)u[o]>r&&(r=u[o]);return r}function We(u){if(u.length===0)throw new Error("min requires at least one data point");for(var r=u[0],o=1;o<u.length;o++)u[o]<r&&(r=u[o]);return r}function me(u,r){var o=(u.length-1)*r;if(u.length===0)throw new Error("quantile requires at least one data point.");if(r<0||r>1)throw new Error("quantiles must be between 0 and 1");if(r===1)return u[u.length-1];if(r===0)return u[0];if(o%1!==0){var f=Math.floor(o),c=Math.ceil(o),l=o-f;return u[f]+l*(u[c]-u[f])}else return u[o]}function Ce(u,r,o,f){for(o=o||0,f=f||u.length-1;f>o;){if(f-o>600){var c=f-o+1,l=r-o+1,a=Math.log(c),t=.5*Math.exp(2*a/3),e=.5*Math.sqrt(a*t*(c-t)/c);l-c/2<0&&(e*=-1);var n=Math.max(o,Math.floor(r-l*t/c+e)),i=Math.min(f,Math.floor(r+(c-l)*t/c+e));Ce(u,r,n,i)}var s=u[r],v=o,m=f;for(ye(u,o,r),u[f]>s&&ye(u,o,f);v<m;){for(ye(u,v,m),v++,m--;u[v]<s;)v++;for(;u[m]>s;)m--}u[o]===s?ye(u,o,m):(m++,ye(u,m,f)),m<=r&&(o=m+1),r<=m&&(f=m-1)}}function ye(u,r,o){var f=u[r];u[r]=u[o],u[o]=f}function Sn(u,r){var o=u.slice();if(Array.isArray(r)){jn(o,r);for(var f=[],c=0;c<r.length;c++)f[c]=me(o,r[c]);return f}else{var l=Ur(o.length,r);return Qr(o,l,0,o.length-1),me(o,r)}}function Qr(u,r,o,f){r%1===0?Ce(u,r,o,f):(r=Math.floor(r),Ce(u,r,o,f),Ce(u,r+1,r+1,f))}function jn(u,r){for(var o=[0],f=0;f<r.length;f++)o.push(Ur(u.length,r[f]));o.push(u.length-1),o.sort(et);for(var c=[0,o.length-1];c.length;){var l=Math.ceil(c.pop()),a=Math.floor(c.pop());if(!(l-a<=1)){var t=Math.floor((a+l)/2);Qr(u,o[t],Math.floor(o[a]),Math.ceil(o[l])),c.push(a,t,t,l)}}}function et(u,r){return u-r}function Ur(u,r){var o=(u-1)*r;return r===1?u-1:r===0?0:(o%1!==0,o)}function Jr(u){var r,o,f=u.length;if(f===1)r=0,o=u[0][1];else{for(var c=0,l=0,a=0,t=0,e,n,i,s=0;s<f;s++)e=u[s],n=e[0],i=e[1],c+=n,l+=i,a+=n*n,t+=n*i;r=(f*t-c*l)/(f*a-c*c),o=l/f-r*c/f}return{m:r,b:o}}function Ke(u){return+Sn(u,.5)}function Me(u,r){if(u.length!==r.length)throw new Error("sampleCovariance requires samples with equal lengths");if(u.length<2)throw new Error("sampleCovariance requires at least two data points in each sample");for(var o=z(u),f=z(r),c=0,l=0;l<u.length;l++)c+=(u[l]-o)*(r[l]-f);var a=u.length-1;return c/a}function Zr(u,r){var o=Me(u,r),f=Kr(u),c=Kr(r);return o/f/c}function Le(u){var r=u.length;if(r<4)throw new Error("sampleKurtosis requires at least four data points");for(var o=z(u),f,c=0,l=0,a=0;a<r;a++)f=u[a]-o,c+=f*f,l+=f*f*f*f;return(r-1)/((r-2)*(r-3))*(r*(r+1)*l/(c*c)-3*(r-1))}function Te(u){if(u.length<3)throw new Error("sampleSkewness requires at least three data points");for(var r=z(u),o,f=0,c=0,l=0;l<u.length;l++)o=u[l]-r,f+=o*o,c+=o*o*o;var a=u.length-1,t=Math.sqrt(f/a),e=u.length,n=Math.pow(t,3);return e*c/((e-1)*(e-2)*n)}function he(u){if(u.length===0)throw new Error("variance requires at least one data point");return Mr(u,2)/u.length}function Q(u){if(u.length===1)return 0;var r=he(u);return Math.sqrt(r)}var Yr=function(){this.totalCount=0,this.data={}};Yr.prototype.train=function(r,o){this.data[o]||(this.data[o]={});for(var f in r){var c=r[f];this.data[o][f]===void 0&&(this.data[o][f]={}),this.data[o][f][c]===void 0&&(this.data[o][f][c]=0),this.data[o][f][c]++}this.totalCount++};Yr.prototype.score=function(r){var o={},f;for(var c in r){var l=r[c];for(f in this.data)o[f]={},this.data[f][c]?o[f][c+"_"+l]=(this.data[f][c][l]||0)/this.totalCount:o[f][c+"_"+l]=0}var a={};for(f in o){a[f]=0;for(var t in o[f])a[f]+=o[f][t]}return a};var rt=Math.sqrt(2*Math.PI);function nt(u){for(var r=u,o=u,f=1;f<15;f++)o*=u*u/(2*f+1),r+=o;return Math.round((.5+r/rt*Math.exp(-u*u/2))*1e4)/1e4}var tt=[];for(ke=0;ke<=3.09;ke+=.01)tt.push(nt(ke));var ke;var ri=607/128,ni=Math.log(Math.sqrt(2*Math.PI));var ti=Math.sqrt(2*Math.PI);var Xr=function(){this.weights=[],this.bias=0};Xr.prototype.predict=function(r){if(r.length!==this.weights.length)return null;for(var o=0,f=0;f<this.weights.length;f++)o+=this.weights[f]*r[f];return o+=this.bias,o>0?1:0};Xr.prototype.train=function(r,o){if(o!==0&&o!==1)return null;r.length!==this.weights.length&&(this.weights=r,this.bias=1);var f=this.predict(r);if(typeof f=="number"&&f!==o){for(var c=o-f,l=0;l<this.weights.length;l++)this.weights[l]+=c*r[l];this.bias+=c}return this};var en=Gn(jr()),U=242;function F(u){let r=[];for(let o=1;o<u.length;o++)r.push((u[o]-u[o-1])/u[o-1]);return r}function $(u){if(u.length===0)return 0;let r=u.reduce((f,c)=>f*(1+c),1),o=u.length/U;return o<=0||r<=0?0:Math.pow(r,1/o)-1}function Ue(u){return u.length<2?0:(u[u.length-1]-u[0])/u[0]}function Re(u){return u.length<2?0:Q(u)*Math.sqrt(U)}function _e(u,r=0){let o=u.filter(l=>l<r/U);if(o.length<2)return 0;let c=o.map(l=>Math.pow(l-r/U,2)).reduce((l,a)=>l+a,0)/u.length;return Math.sqrt(c)*Math.sqrt(U)}function rn(u,r=20){let o=[];for(let f=0;f<u.length;f++)if(f<r-1)o.push(null);else{let c=u.slice(f-r+1,f+1);o.push(Q(c)*Math.sqrt(U))}return o}function nn(u,r=[5,10,20,60,120],o=[.1,.25,.5,.75,.9]){let f=new Map;for(let c of r){let l=[];for(let e=c-1;e<u.length;e++){let n=u.slice(e-c+1,e+1);l.push(Q(n)*Math.sqrt(U))}let a=[...l].sort((e,n)=>e-n),t=new Map;for(let e of o)t.set(e,me(a,e));f.set(c,t)}return f}function qe(u,r){if(u.length<2)return{maxDrawdown:0,peakIndex:0,troughIndex:0,peakDate:null,troughDate:null,recoveryDate:null,durationDays:0,recoveryDays:null,drawdownSeries:[]};let o=[],f=u[0],c=0,l=0,a=0,t=0;for(let i=0;i<u.length;i++){u[i]>f&&(f=u[i],c=i);let s=(u[i]-f)/f;o.push(s),s<l&&(l=s,a=c,t=i)}let e=null,n=u[a];for(let i=t+1;i<u.length;i++)if(u[i]>=n){e=i;break}return{maxDrawdown:l,peakIndex:a,troughIndex:t,peakDate:r?r[a]??null:null,troughDate:r?r[t]??null:null,recoveryDate:e!=null&&r?r[e]??null:null,durationDays:t-a,recoveryDays:e!=null?e-t:null,drawdownSeries:o}}function Je(u){let r=0,o=0,f=u[0];for(let c=0;c<u.length;c++)u[c]>=f?(f=u[c],o=0):(o++,r=Math.max(r,o));return r}function Ie(u,r=.95,o="historical"){if(u.length<2)return 0;if(o==="historical"){let f=[...u].sort((c,l)=>c-l);return me(f,1-r)}else{let f=z(u),c=Q(u),l=en.jStat.normal.inv(1-r,0,1);return f+l*c}}function ze(u,r=.95){if(u.length<2)return 0;let o=Ie(u,r,"historical"),f=u.filter(c=>c<=o);return f.length===0?o:z(f)}function tn(u,r=.025){let o=F(u),f=qe(u);return{annualizedVolatility:Re(o),downsideVolatility:_e(o,r),maxDrawdown:f.maxDrawdown,maxDrawdownDuration:Je(u),var95:Ie(o,.95),var99:Ie(o,.99),cvar95:ze(o,.95),cvar99:ze(o,.99)}}function on(u,r=.025){let o=F(u),f=$(o),c=Re(o);return c===0?0:(f-r)/c}function sn(u,r=.025){let o=F(u),f=$(o),c=_e(o,r);return c===0?0:(f-r)/c}function un(u){let r=F(u),o=$(r),f=qe(u);return f.maxDrawdown===0?0:o/Math.abs(f.maxDrawdown)}function an(u,r,o=.025){let f=F(u),c=F(r),l=Math.min(f.length,c.length),a=f.slice(-l),t=c.slice(-l),e=Ae(a,t);return e===0?null:($(a)-o)/e}function Ze(u,r=0){let o=F(u),f=r/U,c=0,l=0;for(let a of o)a>f?c+=a-f:l+=f-a;return l===0?c>0?1/0:0:c/l}function Ye(u){return u.length===0?0:u.filter(o=>o>0).length/u.length}function Xe(u){let r=u.filter(l=>l>0),o=u.filter(l=>l<0);if(o.length===0)return r.length>0?1/0:0;let f=r.length>0?z(r):0,c=Math.abs(z(o));return c===0?0:f/c}function $e(u){let r=u.filter(f=>f>0).reduce((f,c)=>f+c,0),o=Math.abs(u.filter(f=>f<0).reduce((f,c)=>f+c,0));return o===0?r>0?1/0:0:r/o}function Se(u){let r=0,o=0,f=0,c=0;for(let l of u)l>0?(f++,c=0,r=Math.max(r,f)):l<0?(c++,f=0,o=Math.max(o,c)):(f=0,c=0);return{maxWins:r,maxLosses:o}}function ln(u,r=.025){let o=F(u),f=Se(o),c=qe(u),l=$(o),a=Re(o),t=_e(o,r);return{totalReturn:Ue(u),annualizedReturn:l,sharpeRatio:a>0?(l-r)/a:0,sortinoRatio:t>0?(l-r)/t:0,calmarRatio:c.maxDrawdown!==0?l/Math.abs(c.maxDrawdown):0,treynorRatio:null,omegaRatio:Ze(u),winRate:Ye(o),profitLossRatio:Xe(o),profitFactor:$e(o),maxConsecutiveWins:f.maxWins,maxConsecutiveLosses:f.maxLosses}}function Ae(u,r){let o=Math.min(u.length,r.length),f=u.slice(-o),c=r.slice(-o),l=Me(f,c),a=he(c);return a>0?l/a:0}function je(u,r,o=.025){let f=Math.min(u.length,r.length),c=u.slice(-f),l=r.slice(-f),a=$(c),t=$(l),e=Ae(c,l);return a-(o+e*(t-o))}function er(u,r){let o=Math.min(u.length,r.length),f=u.slice(-o),c=r.slice(-o),l=f.map((a,t)=>a-c[t]);return Q(l)*Math.sqrt(U)}function rr(u,r){let o=Math.min(u.length,r.length),f=u.slice(-o),c=r.slice(-o),l=f.map((e,n)=>e-c[n]),a=z(l)*U,t=Q(l)*Math.sqrt(U);return t>0?a/t:0}function fn(u,r,o=.025){let f=F(u),c=F(r),l=Math.min(f.length,c.length),a=f.slice(-l),t=c.slice(-l),e=Ae(a,t),n=je(a,t,o),i=er(a,t),s=i>0?rr(a,t):0,v=Zr(a,t),m=v*v;return{alpha:n,beta:e,trackingError:i,informationRatio:s,correlation:v,rSquared:m}}function cn(u){let r=F(u);if(r.length<4)return{mean:0,median:0,stdDev:0,skewness:0,kurtosis:0,min:0,max:0,range:0,coefficientOfVariation:0,jarqueBera:0};let o=z(r),f=Ke(r),c=Q(r),l=Te(r),a=Le(r),t=We(r),e=Ge(r),n=e-t,i=o!==0?c/Math.abs(o):0,v=r.length/6*(l*l+a*a/4);return{mean:o,median:f,stdDev:c,skewness:l,kurtosis:a,min:t,max:e,range:n,coefficientOfVariation:i,jarqueBera:v}}function vn(u){if(u.length<4)return{mean:0,median:0,stdDev:0,skewness:0,kurtosis:0,min:0,max:0,range:0,coefficientOfVariation:0,jarqueBera:0};let r=z(u),o=Ke(u),f=Q(u),c=Te(u),l=Le(u),a=We(u),t=Ge(u),e=t-a,n=r!==0?f/Math.abs(r):0,s=u.length/6*(c*c+l*l/4);return{mean:r,median:o,stdDev:f,skewness:c,kurtosis:l,min:a,max:t,range:e,coefficientOfVariation:n,jarqueBera:s}}function mn(u,r=16,o,f=10){let c=F(u),l=c.length;if(l<r*2)return{hurstExponent:.5,interpretation:"random_walk",dataPoints:[],rSquared:0};let a=o??Math.floor(l/2),t=[],e=Math.log(r),n=Math.log(a);for(let b=0;b<f;b++){let y=e+b/(f-1)*(n-e),R=Math.floor(Math.exp(y));if(R<2||R>l)continue;let _=Math.floor(l/R);if(_<1)continue;let q=0,A=0;for(let k=0;k<_;k++){let V=k*R,D=c.slice(V,V+R),O=z(D),K=Q(D);if(K===0)continue;let T=[],J=0;for(let W of D)J+=W-O,T.push(J);let G=(Math.max(...T)-Math.min(...T))/K;q+=G,A++}if(A>0){let k=q/A;t.push({logN:Math.log(R),logRS:Math.log(k)})}}if(t.length<3)return{hurstExponent:.5,interpretation:"random_walk",dataPoints:t,rSquared:0};let i=t.map(b=>[b.logN,b.logRS]),s=Jr(i),v=s.m,m=t.map(b=>s.m*b.logN+s.b),h=t.map(b=>b.logRS),g=z(h),p=h.reduce((b,y)=>b+(y-g)**2,0),d=h.reduce((b,y,R)=>b+(y-m[R])**2,0),w=p>0?1-d/p:0,x;return v>.55?x="trending":v<.45?x="mean_reverting":x="random_walk",{hurstExponent:Math.max(0,Math.min(1,v)),interpretation:x,dataPoints:t,rSquared:w}}function hn(u,r=20){let o=F(u),f=o.length;f<r+2&&(r=Math.max(1,f-2));let c=z(o),l=o.reduce((n,i)=>n+(i-c)**2,0)/f,a=[];for(let n=0;n<=r;n++){if(l===0){a.push(n===0?1:0);continue}let i=0;for(let s=0;s<f-n;s++)i+=(o[s]-c)*(o[s+n]-c);i/=f,a.push(i/l)}let t,e=a.length>1?a[1]:0;return e>.05?t="persistent":e<-.05?t="anti_persistent":t="no_correlation",{coefficients:a,maxLag:r,interpretation:t}}function dn(u,r=10){let o=u.length,f=z(u),c=u.reduce((v,m)=>v+(m-f)**2,0)/o;if(c===0)return{qStatistic:0,approximatePValue:1};let l=[];for(let v=1;v<=r;v++){let m=0;for(let h=0;h<o-v;h++)m+=(u[h]-f)*(u[h+v]-f);m/=o,l.push(m/c)}let a=0;for(let v=0;v<r;v++)a+=l[v]*l[v]/(o-v-1);a*=o*(o+2);let t=r,e=Math.pow(a/t,1/3)-(1-2/(9*t)),n=Math.sqrt(2/(9*t)),i=e/n,s=1-ot(i);return{qStatistic:a,approximatePValue:Math.max(0,Math.min(1,s))}}function ot(u){let r=.254829592,o=-.284496736,f=1.421413741,c=-1.453152027,l=1.061405429,a=.3275911,t=u<0?-1:1;u=Math.abs(u)/Math.sqrt(2);let e=1/(1+a*u),n=1-((((l*e+c)*e+f)*e+o)*e+r)*e*Math.exp(-u*u);return .5*(1+t*n)}function gn(u,r=[.01,.05,.1,.25,.5,.75,.9,.95,.99]){let f=[...F(u)].sort((l,a)=>l-a),c=new Map;for(let l of r)c.set(l,me(f,l));return c}function pn(u,r=60){let o=[];for(let f=0;f<u.length;f++)if(f<r-1)o.push(null);else{let c=u.slice(f-r+1,f+1);o.push(Te(c))}return o}function wn(u,r=60){let o=[];for(let f=0;f<u.length;f++)if(f<r-1)o.push(null);else{let c=u.slice(f-r+1,f+1);o.push(Le(c))}return o}function xn(u){let r=u.length;if(r<30){let g=he(u);return{conditionalVariance:new Array(r).fill(g),nextPeriodForecast:g,omega:g*.1,alpha:.1,beta:.8}}let o=he(u),f=u.map(g=>g*g),c=z(f),l=0;for(let g=0;g<r-1;g++)l+=(f[g]-c)*(f[g+1]-c);l/=r;let a=c>0?l/he(f):0,t=Math.max(.5,Math.min(.99,a+.8)),e=Math.max(.01,Math.min(.3,(1-t)*2)),n=t-e,i=o*(1-e-n),s=[o];for(let g=1;g<r;g++){let p=s[g-1],d=i+e*u[g-1]*u[g-1]+n*p;s.push(Math.max(d,1e-10))}let v=s[r-1],m=u[r-1],h=i+e*m*m+n*v;return{conditionalVariance:s,nextPeriodForecast:h,omega:i,alpha:e,beta:n}}function bn(u,r,o){let{amount:f,interval:c=1,startIndex:l=0}=r,a=0,t=0,e=[],n=[];for(let p=l;p<u.length;p+=c){let d=u[p];if(d<=0)continue;let w=f/d;t+=w,a+=f,e.push(p);let x=t*d;n.push(x)}if(a===0||t===0)return{totalInvestments:0,totalInvested:0,currentValue:0,totalShares:0,averageCost:0,currentNav:0,returnRate:0,profitLoss:0,irr:null,investmentDates:e,valueHistory:n};let i=u[u.length-1],s=t*i,v=a/t,m=(s-a)/a,h=s-a,g=it(u,e,f,t,i);return{totalInvestments:e.length,totalInvested:a,currentValue:s,totalShares:t,averageCost:v,currentNav:i,returnRate:m,profitLoss:h,irr:g,investmentDates:e,valueHistory:n}}function it(u,r,o,f,c){if(r.length<2)return null;let l=r[0],a=[];for(let h of r)a.push({day:h-l,amount:-o});let t=u.length-1-l;a.push({day:t,amount:f*c});let e=242;function n(h){let g=0;for(let p of a){let d=p.day/e;d===0?g+=p.amount:g+=p.amount/Math.pow(1+h,d)}return g}function i(h){let g=0;for(let p of a){let d=p.day/e;d<=0||(g-=d*p.amount/Math.pow(1+h,d+1))}return g}let s=.1,v=100,m=1e-8;for(let h=0;h<v;h++){let g=n(s),p=i(s);if(Math.abs(p)<1e-12)break;let d=s-g/p;if(Math.abs(d-s)<m)return d;s=d,s<-.99&&(s=-.99),s>10&&(s=10)}return st(n)}function st(u){let r=-.99,o=10,f=1e-6,c=200,l=u(r),a=u(o);if(l*a>0)return null;for(let t=0;t<c;t++){let e=(r+o)/2,n=u(e);if(Math.abs(n)<f||(o-r)/2<f)return e;l*n<0?(o=e,a=n):(r=e,l=n)}return(r+o)/2}function yn(u,r,o=.3,f=-.15){let l=(u[u.length-1]-r)/r;return{takeProfitTriggered:l>=o,stopLossTriggered:l<=f,currentPnL:l,distanceToTakeProfit:o-l,distanceToStopLoss:l-f}}function In(u,r=.1,o){let f=u[0];for(let t of u)t>f&&(f=t);let c=u[u.length-1],l=(f-c)/f,a=o?(c-o)/o:0;return{triggered:l>=r&&c>(o??0),peakNav:f,currentNav:c,drawdownFromPeak:l,profitFromCost:a}}function Rn(u){let r=Math.max(...u),o=u[u.length-1];return(r-o)/r}function _n(u){let r=Math.max(...u),o=Math.min(...u),f=u[u.length-1];return r===o?.5:(f-o)/(r-o)}function qn(u,r=250,o=2,f=.5){if(u.length<r)return 1;let l=u.slice(-r).reduce((n,i)=>n+i,0)/r,e=1-(u[u.length-1]-l)/l*4;return Math.max(f,Math.min(o,e))}function An(u,r=[.3,.2,.1]){let o=[...u].sort((a,t)=>a-t),f=u[u.length-1],c=0;for(let a of o)a<f?c++:a===f&&(c+=.5);let l=c/o.length;for(let a=0;a<r.length;a++)if(l<=r[a])return r.length-a;return 0}function Nn(u,r=[.7,.8,.9]){let o=[...u].sort((a,t)=>a-t),f=u[u.length-1],c=0;for(let a of o)a<f?c++:a===f&&(c+=.5);let l=c/o.length;for(let a=r.length-1;a>=0;a--)if(l>=r[a])return a+1;return 0}function Vn(u,r,o,f=1e4){let c=o??u.length-1,l=u[r],a=u[c],t=f/l,e=t*a,n=e-f,i=n/f,s=c-r,v=s>0?Math.pow(1+i,242/s)-1:0;return{buyNav:l,sellNav:a,shares:t,cost:f,value:e,pnl:n,returnRate:i,holdDays:s,annualizedReturn:v}}function Pn(u,r=.02,o=3){if(u.length<10)return{supports:[],resistances:[]};let f=u[u.length-1],c=new Map;for(let e=0;e<u.length;e++){let n=e>0&&e<u.length-1&&u[e]>=u[e-1]&&u[e]>=u[e+1],i=e>0&&e<u.length-1&&u[e]<=u[e-1]&&u[e]<=u[e+1];if(n||i){let s=!1;for(let[v,m]of c.entries())if(Math.abs(u[e]-v)/v<r){c.set(v,m+1),s=!0;break}s||c.set(u[e],1)}}for(let e of u){let n=!1;for(let[i,s]of c.entries())if(Math.abs(e-i)/i<r){c.set(i,s+1),n=!0;break}n||c.set(e,1)}let l=Array.from(c.entries()).filter(([,e])=>e>=o).map(([e,n])=>({level:e,touches:n,strength:n/u.length})).sort((e,n)=>n.strength-e.strength),a=l.filter(e=>e.level<f).sort((e,n)=>n.level-e.level),t=l.filter(e=>e.level>f).sort((e,n)=>e.level-n.level);return{supports:a,resistances:t}}function En(u,r=60,o=.03,f=10){let c={type:"none",firstPointIndex:null,secondPointIndex:null,necklineIndex:null,necklinePrice:null,breakout:!1,confidence:0};if(u.length<r||r<f*2)return c;let l=u.slice(-r),a=u.length-r,t=[],e=[];for(let n=2;n<l.length-2;n++)l[n]<=l[n-1]&&l[n]<=l[n+1]&&l[n]<=l[n-2]&&l[n]<=l[n+2]&&t.push({index:n,value:l[n]}),l[n]>=l[n-1]&&l[n]>=l[n+1]&&l[n]>=l[n-2]&&l[n]>=l[n+2]&&e.push({index:n,value:l[n]});for(let n=0;n<t.length;n++)for(let i=n+1;i<t.length;i++){let s=t[n],v=t[i],m=v.index-s.index;if(m<f)continue;let h=Math.abs(s.value-v.value)/s.value;if(h>o)continue;let g=l.slice(s.index,v.index+1),p=Math.max(...g),d=s.index+g.indexOf(p),x=l[l.length-1]>p,b=1-h/o,y=Math.min(1,m/r*2),R=(b*.6+y*.4)*(x?1:.7);return{type:"double_bottom",firstPointIndex:a+s.index,secondPointIndex:a+v.index,necklineIndex:a+d,necklinePrice:p,breakout:x,confidence:R}}for(let n=0;n<e.length;n++)for(let i=n+1;i<e.length;i++){let s=e[n],v=e[i],m=v.index-s.index;if(m<f)continue;let h=Math.abs(s.value-v.value)/s.value;if(h>o)continue;let g=l.slice(s.index,v.index+1),p=Math.min(...g),d=s.index+g.indexOf(p),x=l[l.length-1]<p,b=1-h/o,y=Math.min(1,m/r*2),R=(b*.6+y*.4)*(x?1:.7);return{type:"double_top",firstPointIndex:a+s.index,secondPointIndex:a+v.index,necklineIndex:a+d,necklinePrice:p,breakout:x,confidence:R}}return c}function Dn(u,r=.02){let o=[];for(let f=1;f<u.length;f++){let c=(u[f]-u[f-1])/u[f-1],l=Math.abs(c);if(l>=r){let a=c>0,t=a?u[f]:u[f-1],e=a?u[f-1]:u[f],n=!1,i=null;if(a){for(let s=f+1;s<u.length;s++)if(u[s]<=e){n=!0,i=s;break}}else for(let s=f+1;s<u.length;s++)if(u[s]>=t){n=!0,i=s;break}o.push({type:a?"gap_up":"gap_down",startIndex:f-1,endIndex:f,gapTop:t,gapBottom:e,gapSize:l,filled:n,filledIndex:i})}}return o}function kn(u,r=20){if(u.length<r+10)return 50;let o=u.slice(-r),f=[];for(let d=1;d<o.length;d++)f.push((o[d]-o[d-1])/o[d-1]);let l=f.filter(d=>d>0).length/f.length*100,a=f.map((d,w)=>w),t=f.reduce((d,w)=>d+w,0)/f.length,e=a.reduce((d,w)=>d+w,0)/a.length,n=0,i=0,s=0;for(let d=0;d<f.length;d++)n+=(a[d]-e)*(f[d]-t),i+=(a[d]-e)**2,s+=(f[d]-t)**2;let m=(i>0&&s>0?n*n/(i*s):0)*100,h=0,g=0;for(let d of f)d>0?(g++,h=Math.max(h,g)):g=0;let p=Math.min(100,h/f.length*200);return l*.4+m*.35+p*.25}function Cn(u,r=90){let o={type:"none",leftShoulder:null,head:null,rightShoulder:null,neckline:null,confidence:0};if(u.length<r)return o;let f=u.slice(-r),c=[],l=[];for(let a=3;a<f.length-3;a++){let t=f[a]>f[a-1]&&f[a]>f[a+1]&&f[a]>f[a-2]&&f[a]>f[a+2]&&f[a]>f[a-3]&&f[a]>f[a+3],e=f[a]<f[a-1]&&f[a]<f[a+1]&&f[a]<f[a-2]&&f[a]<f[a+2]&&f[a]<f[a-3]&&f[a]<f[a+3];t&&c.push({index:a,value:f[a]}),e&&l.push({index:a,value:f[a]})}if(c.length>=3)for(let a=0;a<c.length-2;a++){let t=c[a],e=c[a+1],n=c[a+2];if(e.value<=t.value||e.value<=n.value)continue;let i=Math.abs(t.value-n.value)/t.value;if(i>.05)continue;let s=(e.value-(t.value+n.value)/2)/((t.value+n.value)/2);if(s<.03)continue;let v=f.slice(t.index,n.index+1),m=Math.min(...v),h=Math.min(1,(1-i/.05)*.5+Math.min(s/.1,1)*.5);return{type:"head_and_shoulders_top",leftShoulder:{index:u.length-r+t.index,value:t.value},head:{index:u.length-r+e.index,value:e.value},rightShoulder:{index:u.length-r+n.index,value:n.value},neckline:m,confidence:h}}if(l.length>=3)for(let a=0;a<l.length-2;a++){let t=l[a],e=l[a+1],n=l[a+2];if(e.value>=t.value||e.value>=n.value)continue;let i=Math.abs(t.value-n.value)/t.value;if(i>.05)continue;let s=((t.value+n.value)/2-e.value)/((t.value+n.value)/2);if(s<.03)continue;let v=f.slice(t.index,n.index+1),m=Math.max(...v),h=Math.min(1,(1-i/.05)*.5+Math.min(s/.1,1)*.5);return{type:"head_and_shoulders_bottom",leftShoulder:{index:u.length-r+t.index,value:t.value},head:{index:u.length-r+e.index,value:e.value},rightShoulder:{index:u.length-r+n.index,value:n.value},neckline:m,confidence:h}}return o}return Wn(ut);})();
8
+ //# sourceMappingURL=fund-indicators.min.js.map