prototype-helper 1.0.0 → 1.1.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.
- package/LICENSE +21 -21
- package/README.md +958 -701
- package/dist/extension/index.d.ts +1 -0
- package/dist/extension/object.d.ts +0 -6
- package/dist/extension/object.test.d.ts +4 -0
- package/dist/extension/promise.d.ts +1 -0
- package/dist/extension/promise.test.d.ts +1 -0
- package/dist/index.d.ts +2 -6
- package/dist/index.js +2 -2
- package/dist/interface/array.d.ts +10 -6
- package/dist/interface/index.d.ts +2 -0
- package/dist/interface/number.d.ts +2 -0
- package/dist/interface/object.d.ts +15 -0
- package/dist/interface/promise.d.ts +9 -0
- package/dist/interface/string.d.ts +7 -0
- package/lint-result.txt +496 -496
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./promise";
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var su=Object.create;var{getPrototypeOf:iu,defineProperty:Uu,getOwnPropertyNames:du}=Object;var ru=Object.prototype.hasOwnProperty;var qu=(u,f,h)=>{h=u!=null?su(iu(u)):{};let b=f||!u||!u.__esModule?Uu(h,"default",{value:u,enumerable:!0}):h;for(let M of du(u))if(!ru.call(b,M))Uu(b,M,{get:()=>u[M],enumerable:!0});return b};var nu=(u,f)=>()=>(f||u((f={exports:{}}).exports,f),f.exports);var lu=nu((Lu)=>{Object.defineProperty(Lu,"__esModule",{value:!0});Lu.default=a;Lu.formatKeys=ku;function a(u,f){var h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new Map,b=h.get(u);if(b)return b;if(Array.isArray(u)){var M=[];h.set(u,M);for(var K=0;K<u.length;K++)M[K]=a(u[K],f,h);return M}if(u instanceof Date)return new Date(u.valueOf());if(!(u instanceof Object))return u;var J={};h.set(u,J);var T=Object.keys(u);for(var V=0;V<T.length;V++){var R=f?f(T[V]):T[V];J[R]=a(u[T[V]],f,h)}return J}function ku(u){return function(f){return a(f,u)}}a.formatKeys=ku});var Xu=nu((V0,eu)=>{eu.exports=lu().default});/*!
|
|
3
3
|
* decimal.js v10.6.0
|
|
4
4
|
* An arbitrary-precision Decimal type for JavaScript.
|
|
5
5
|
* https://github.com/MikeMcl/decimal.js
|
|
6
6
|
* Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>
|
|
7
7
|
* MIT Licence
|
|
8
|
-
*/var n=9000000000000000,l=1e9,X0="0123456789abcdef",K0="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",W0="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",U0={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-n,maxE:n,crypto:!1},A0,k,u=!0,Y0="[DecimalError] ",m=Y0+"Invalid argument: ",B0=Y0+"Precision limit exceeded",O0=Y0+"crypto unavailable",E0="[object Decimal]",O=Math.floor,j=Math.pow,r0=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,MM=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,JM=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,D0=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,v=1e7,q=7,KM=9007199254740991,WM=K0.length-1,z0=W0.length-1,X={toStringTag:E0};X.absoluteValue=X.abs=function(){var M=new this.constructor(this);if(M.s<0)M.s=1;return U(M)};X.ceil=function(){return U(new this.constructor(this),this.e+1,2)};X.clampedTo=X.clamp=function(M,J){var K,W=this,Q=W.constructor;if(M=new Q(M),J=new Q(J),!M.s||!J.s)return new Q(NaN);if(M.gt(J))throw Error(m+J);return K=W.cmp(M),K<0?M:W.cmp(J)>0?J:new Q(W)};X.comparedTo=X.cmp=function(M){var J,K,W,Q,Y=this,$=Y.d,F=(M=new Y.constructor(M)).d,N=Y.s,H=M.s;if(!$||!F)return!N||!H?NaN:N!==H?N:$===F?0:!$^N<0?1:-1;if(!$[0]||!F[0])return $[0]?N:F[0]?-H:0;if(N!==H)return N;if(Y.e!==M.e)return Y.e>M.e^N<0?1:-1;W=$.length,Q=F.length;for(J=0,K=W<Q?W:Q;J<K;++J)if($[J]!==F[J])return $[J]>F[J]^N<0?1:-1;return W===Q?0:W>Q^N<0?1:-1};X.cosine=X.cos=function(){var M,J,K=this,W=K.constructor;if(!K.d)return new W(NaN);if(!K.d[0])return new W(1);return M=W.precision,J=W.rounding,W.precision=M+Math.max(K.e,K.sd())+q,W.rounding=1,K=QM(W,g0(W,K)),W.precision=M,W.rounding=J,U(k==2||k==3?K.neg():K,M,J,!0)};X.cubeRoot=X.cbrt=function(){var M,J,K,W,Q,Y,$,F,N,H,V=this,Z=V.constructor;if(!V.isFinite()||V.isZero())return new Z(V);if(u=!1,Y=V.s*j(V.s*V,0.3333333333333333),!Y||Math.abs(Y)==1/0){if(K=_(V.d),M=V.e,Y=(M-K.length+1)%3)K+=Y==1||Y==-2?"0":"00";if(Y=j(K,0.3333333333333333),M=O((M+1)/3)-(M%3==(M<0?-1:2)),Y==1/0)K="5e"+M;else K=Y.toExponential(),K=K.slice(0,K.indexOf("e")+1)+M;W=new Z(K),W.s=V.s}else W=new Z(Y.toString());$=(M=Z.precision)+3;for(;;)if(F=W,N=F.times(F).times(F),H=N.plus(V),W=T(H.plus(V).times(F),H.plus(N),$+2,1),_(F.d).slice(0,$)===(K=_(W.d)).slice(0,$))if(K=K.slice($-3,$+1),K=="9999"||!Q&&K=="4999"){if(!Q){if(U(F,M+1,0),F.times(F).times(F).eq(V)){W=F;break}}$+=4,Q=1}else{if(!+K||!+K.slice(1)&&K.charAt(0)=="5")U(W,M+1,1),J=!W.times(W).times(W).eq(V);break}return u=!0,U(W,M,Z.rounding,J)};X.decimalPlaces=X.dp=function(){var M,J=this.d,K=NaN;if(J){if(M=J.length-1,K=(M-O(this.e/q))*q,M=J[M],M)for(;M%10==0;M/=10)K--;if(K<0)K=0}return K};X.dividedBy=X.div=function(M){return T(this,new this.constructor(M))};X.dividedToIntegerBy=X.divToInt=function(M){var J=this,K=J.constructor;return U(T(J,new K(M),0,1,1),K.precision,K.rounding)};X.equals=X.eq=function(M){return this.cmp(M)===0};X.floor=function(){return U(new this.constructor(this),this.e+1,3)};X.greaterThan=X.gt=function(M){return this.cmp(M)>0};X.greaterThanOrEqualTo=X.gte=function(M){var J=this.cmp(M);return J==1||J===0};X.hyperbolicCosine=X.cosh=function(){var M,J,K,W,Q,Y=this,$=Y.constructor,F=new $(1);if(!Y.isFinite())return new $(Y.s?1/0:NaN);if(Y.isZero())return F;if(K=$.precision,W=$.rounding,$.precision=K+Math.max(Y.e,Y.sd())+4,$.rounding=1,Q=Y.d.length,Q<32)M=Math.ceil(Q/3),J=(1/F0(4,M)).toString();else M=16,J="2.3283064365386962890625e-10";Y=o($,1,Y.times(J),new $(1),!0);var N,H=M,V=new $(8);for(;H--;)N=Y.times(Y),Y=F.minus(N.times(V.minus(N.times(V))));return U(Y,$.precision=K,$.rounding=W,!0)};X.hyperbolicSine=X.sinh=function(){var M,J,K,W,Q=this,Y=Q.constructor;if(!Q.isFinite()||Q.isZero())return new Y(Q);if(J=Y.precision,K=Y.rounding,Y.precision=J+Math.max(Q.e,Q.sd())+4,Y.rounding=1,W=Q.d.length,W<3)Q=o(Y,2,Q,Q,!0);else{M=1.4*Math.sqrt(W),M=M>16?16:M|0,Q=Q.times(1/F0(5,M)),Q=o(Y,2,Q,Q,!0);var $,F=new Y(5),N=new Y(16),H=new Y(20);for(;M--;)$=Q.times(Q),Q=Q.times(F.plus($.times(N.times($).plus(H))))}return Y.precision=J,Y.rounding=K,U(Q,J,K,!0)};X.hyperbolicTangent=X.tanh=function(){var M,J,K=this,W=K.constructor;if(!K.isFinite())return new W(K.s);if(K.isZero())return new W(K);return M=W.precision,J=W.rounding,W.precision=M+7,W.rounding=1,T(K.sinh(),K.cosh(),W.precision=M,W.rounding=J)};X.inverseCosine=X.acos=function(){var M=this,J=M.constructor,K=M.abs().cmp(1),W=J.precision,Q=J.rounding;if(K!==-1)return K===0?M.isNeg()?P(J,W,Q):new J(0):new J(NaN);if(M.isZero())return P(J,W+4,Q).times(0.5);return J.precision=W+6,J.rounding=1,M=new J(1).minus(M).div(M.plus(1)).sqrt().atan(),J.precision=W,J.rounding=Q,M.times(2)};X.inverseHyperbolicCosine=X.acosh=function(){var M,J,K=this,W=K.constructor;if(K.lte(1))return new W(K.eq(1)?0:NaN);if(!K.isFinite())return new W(K);return M=W.precision,J=W.rounding,W.precision=M+Math.max(Math.abs(K.e),K.sd())+4,W.rounding=1,u=!1,K=K.times(K).minus(1).sqrt().plus(K),u=!0,W.precision=M,W.rounding=J,K.ln()};X.inverseHyperbolicSine=X.asinh=function(){var M,J,K=this,W=K.constructor;if(!K.isFinite()||K.isZero())return new W(K);return M=W.precision,J=W.rounding,W.precision=M+2*Math.max(Math.abs(K.e),K.sd())+6,W.rounding=1,u=!1,K=K.times(K).plus(1).sqrt().plus(K),u=!0,W.precision=M,W.rounding=J,K.ln()};X.inverseHyperbolicTangent=X.atanh=function(){var M,J,K,W,Q=this,Y=Q.constructor;if(!Q.isFinite())return new Y(NaN);if(Q.e>=0)return new Y(Q.abs().eq(1)?Q.s/0:Q.isZero()?Q:NaN);if(M=Y.precision,J=Y.rounding,W=Q.sd(),Math.max(W,M)<2*-Q.e-1)return U(new Y(Q),M,J,!0);return Y.precision=K=W-Q.e,Q=T(Q.plus(1),new Y(1).minus(Q),K+M,1),Y.precision=M+4,Y.rounding=1,Q=Q.ln(),Y.precision=M,Y.rounding=J,Q.times(0.5)};X.inverseSine=X.asin=function(){var M,J,K,W,Q=this,Y=Q.constructor;if(Q.isZero())return new Y(Q);if(J=Q.abs().cmp(1),K=Y.precision,W=Y.rounding,J!==-1){if(J===0)return M=P(Y,K+4,W).times(0.5),M.s=Q.s,M;return new Y(NaN)}return Y.precision=K+6,Y.rounding=1,Q=Q.div(new Y(1).minus(Q.times(Q)).sqrt().plus(1)).atan(),Y.precision=K,Y.rounding=W,Q.times(2)};X.inverseTangent=X.atan=function(){var M,J,K,W,Q,Y,$,F,N,H=this,V=H.constructor,Z=V.precision,R=V.rounding;if(!H.isFinite()){if(!H.s)return new V(NaN);if(Z+4<=z0)return $=P(V,Z+4,R).times(0.5),$.s=H.s,$}else if(H.isZero())return new V(H);else if(H.abs().eq(1)&&Z+4<=z0)return $=P(V,Z+4,R).times(0.25),$.s=H.s,$;V.precision=F=Z+10,V.rounding=1,K=Math.min(28,F/q+2|0);for(M=K;M;--M)H=H.div(H.times(H).plus(1).sqrt().plus(1));u=!1,J=Math.ceil(F/q),W=1,N=H.times(H),$=new V(H),Q=H;for(;M!==-1;)if(Q=Q.times(N),Y=$.minus(Q.div(W+=2)),Q=Q.times(N),$=Y.plus(Q.div(W+=2)),$.d[J]!==void 0)for(M=J;$.d[M]===Y.d[M]&&M--;);if(K)$=$.times(2<<K-1);return u=!0,U($,V.precision=Z,V.rounding=R,!0)};X.isFinite=function(){return!!this.d};X.isInteger=X.isInt=function(){return!!this.d&&O(this.e/q)>this.d.length-2};X.isNaN=function(){return!this.s};X.isNegative=X.isNeg=function(){return this.s<0};X.isPositive=X.isPos=function(){return this.s>0};X.isZero=function(){return!!this.d&&this.d[0]===0};X.lessThan=X.lt=function(M){return this.cmp(M)<0};X.lessThanOrEqualTo=X.lte=function(M){return this.cmp(M)<1};X.logarithm=X.log=function(M){var J,K,W,Q,Y,$,F,N,H=this,V=H.constructor,Z=V.precision,R=V.rounding,z=5;if(M==null)M=new V(10),J=!0;else{if(M=new V(M),K=M.d,M.s<0||!K||!K[0]||M.eq(1))return new V(NaN);J=M.eq(10)}if(K=H.d,H.s<0||!K||!K[0]||H.eq(1))return new V(K&&!K[0]?-1/0:H.s!=1?NaN:K?0:1/0);if(J)if(K.length>1)Y=!0;else{for(Q=K[0];Q%10===0;)Q/=10;Y=Q!==1}if(u=!1,F=Z+z,$=C(H,F),W=J?Q0(V,F+10):C(M,F),N=T($,W,F,1),s(N.d,Q=Z,R))do if(F+=10,$=C(H,F),W=J?Q0(V,F+10):C(M,F),N=T($,W,F,1),!Y){if(+_(N.d).slice(Q+1,Q+15)+1==100000000000000)N=U(N,Z+1,0);break}while(s(N.d,Q+=10,R));return u=!0,U(N,Z,R)};X.minus=X.sub=function(M){var J,K,W,Q,Y,$,F,N,H,V,Z,R,z=this,b=z.constructor;if(M=new b(M),!z.d||!M.d){if(!z.s||!M.s)M=new b(NaN);else if(z.d)M.s=-M.s;else M=new b(M.d||z.s!==M.s?z:NaN);return M}if(z.s!=M.s)return M.s=-M.s,z.plus(M);if(H=z.d,R=M.d,F=b.precision,N=b.rounding,!H[0]||!R[0]){if(R[0])M.s=-M.s;else if(H[0])M=new b(z);else return new b(N===3?-0:0);return u?U(M,F,N):M}if(K=O(M.e/q),V=O(z.e/q),H=H.slice(),Y=V-K,Y){if(Z=Y<0,Z)J=H,Y=-Y,$=R.length;else J=R,K=V,$=H.length;if(W=Math.max(Math.ceil(F/q),$)+2,Y>W)Y=W,J.length=1;J.reverse();for(W=Y;W--;)J.push(0);J.reverse()}else{if(W=H.length,$=R.length,Z=W<$,Z)$=W;for(W=0;W<$;W++)if(H[W]!=R[W]){Z=H[W]<R[W];break}Y=0}if(Z)J=H,H=R,R=J,M.s=-M.s;$=H.length;for(W=R.length-$;W>0;--W)H[$++]=0;for(W=R.length;W>Y;){if(H[--W]<R[W]){for(Q=W;Q&&H[--Q]===0;)H[Q]=v-1;--H[Q],H[W]+=v}H[W]-=R[W]}for(;H[--$]===0;)H.pop();for(;H[0]===0;H.shift())--K;if(!H[0])return new b(N===3?-0:0);return M.d=H,M.e=$0(H,K),u?U(M,F,N):M};X.modulo=X.mod=function(M){var J,K=this,W=K.constructor;if(M=new W(M),!K.d||!M.s||M.d&&!M.d[0])return new W(NaN);if(!M.d||K.d&&!K.d[0])return U(new W(K),W.precision,W.rounding);if(u=!1,W.modulo==9)J=T(K,M.abs(),0,3,1),J.s*=M.s;else J=T(K,M,0,W.modulo,1);return J=J.times(M),u=!0,K.minus(J)};X.naturalExponential=X.exp=function(){return q0(this)};X.naturalLogarithm=X.ln=function(){return C(this)};X.negated=X.neg=function(){var M=new this.constructor(this);return M.s=-M.s,U(M)};X.plus=X.add=function(M){var J,K,W,Q,Y,$,F,N,H,V,Z=this,R=Z.constructor;if(M=new R(M),!Z.d||!M.d){if(!Z.s||!M.s)M=new R(NaN);else if(!Z.d)M=new R(M.d||Z.s===M.s?Z:NaN);return M}if(Z.s!=M.s)return M.s=-M.s,Z.minus(M);if(H=Z.d,V=M.d,F=R.precision,N=R.rounding,!H[0]||!V[0]){if(!V[0])M=new R(Z);return u?U(M,F,N):M}if(Y=O(Z.e/q),W=O(M.e/q),H=H.slice(),Q=Y-W,Q){if(Q<0)K=H,Q=-Q,$=V.length;else K=V,W=Y,$=H.length;if(Y=Math.ceil(F/q),$=Y>$?Y+1:$+1,Q>$)Q=$,K.length=1;K.reverse();for(;Q--;)K.push(0);K.reverse()}if($=H.length,Q=V.length,$-Q<0)Q=$,K=V,V=H,H=K;for(J=0;Q;)J=(H[--Q]=H[Q]+V[Q]+J)/v|0,H[Q]%=v;if(J)H.unshift(J),++W;for($=H.length;H[--$]==0;)H.pop();return M.d=H,M.e=$0(H,W),u?U(M,F,N):M};X.precision=X.sd=function(M){var J,K=this;if(M!==void 0&&M!==!!M&&M!==1&&M!==0)throw Error(m+M);if(K.d){if(J=w0(K.d),M&&K.e+1>J)J=K.e+1}else J=NaN;return J};X.round=function(){var M=this,J=M.constructor;return U(new J(M),M.e+1,J.rounding)};X.sine=X.sin=function(){var M,J,K=this,W=K.constructor;if(!K.isFinite())return new W(NaN);if(K.isZero())return new W(K);return M=W.precision,J=W.rounding,W.precision=M+Math.max(K.e,K.sd())+q,W.rounding=1,K=$M(W,g0(W,K)),W.precision=M,W.rounding=J,U(k>2?K.neg():K,M,J,!0)};X.squareRoot=X.sqrt=function(){var M,J,K,W,Q,Y,$=this,F=$.d,N=$.e,H=$.s,V=$.constructor;if(H!==1||!F||!F[0])return new V(!H||H<0&&(!F||F[0])?NaN:F?$:1/0);if(u=!1,H=Math.sqrt(+$),H==0||H==1/0){if(J=_(F),(J.length+N)%2==0)J+="0";if(H=Math.sqrt(J),N=O((N+1)/2)-(N<0||N%2),H==1/0)J="5e"+N;else J=H.toExponential(),J=J.slice(0,J.indexOf("e")+1)+N;W=new V(J)}else W=new V(H.toString());K=(N=V.precision)+3;for(;;)if(Y=W,W=Y.plus(T($,Y,K+2,1)).times(0.5),_(Y.d).slice(0,K)===(J=_(W.d)).slice(0,K))if(J=J.slice(K-3,K+1),J=="9999"||!Q&&J=="4999"){if(!Q){if(U(Y,N+1,0),Y.times(Y).eq($)){W=Y;break}}K+=4,Q=1}else{if(!+J||!+J.slice(1)&&J.charAt(0)=="5")U(W,N+1,1),M=!W.times(W).eq($);break}return u=!0,U(W,N,V.rounding,M)};X.tangent=X.tan=function(){var M,J,K=this,W=K.constructor;if(!K.isFinite())return new W(NaN);if(K.isZero())return new W(K);return M=W.precision,J=W.rounding,W.precision=M+10,W.rounding=1,K=K.sin(),K.s=1,K=T(K,new W(1).minus(K.times(K)).sqrt(),M+10,0),W.precision=M,W.rounding=J,U(k==2||k==4?K.neg():K,M,J,!0)};X.times=X.mul=function(M){var J,K,W,Q,Y,$,F,N,H,V=this,Z=V.constructor,R=V.d,z=(M=new Z(M)).d;if(M.s*=V.s,!R||!R[0]||!z||!z[0])return new Z(!M.s||R&&!R[0]&&!z||z&&!z[0]&&!R?NaN:!R||!z?M.s/0:M.s*0);if(K=O(V.e/q)+O(M.e/q),N=R.length,H=z.length,N<H)Y=R,R=z,z=Y,$=N,N=H,H=$;Y=[],$=N+H;for(W=$;W--;)Y.push(0);for(W=H;--W>=0;){J=0;for(Q=N+W;Q>W;)F=Y[Q]+z[W]*R[Q-W-1]+J,Y[Q--]=F%v|0,J=F/v|0;Y[Q]=(Y[Q]+J)%v|0}for(;!Y[--$];)Y.pop();if(J)++K;else Y.shift();return M.d=Y,M.e=$0(Y,K),u?U(M,Z.precision,Z.rounding):M};X.toBinary=function(M,J){return u0(this,2,M,J)};X.toDecimalPlaces=X.toDP=function(M,J){var K=this,W=K.constructor;if(K=new W(K),M===void 0)return K;if(D(M,0,l),J===void 0)J=W.rounding;else D(J,0,8);return U(K,M+K.e+1,J)};X.toExponential=function(M,J){var K,W=this,Q=W.constructor;if(M===void 0)K=g(W,!0);else{if(D(M,0,l),J===void 0)J=Q.rounding;else D(J,0,8);W=U(new Q(W),M+1,J),K=g(W,!0,M+1)}return W.isNeg()&&!W.isZero()?"-"+K:K};X.toFixed=function(M,J){var K,W,Q=this,Y=Q.constructor;if(M===void 0)K=g(Q);else{if(D(M,0,l),J===void 0)J=Y.rounding;else D(J,0,8);W=U(new Y(Q),M+Q.e+1,J),K=g(W,!1,M+W.e+1)}return Q.isNeg()&&!Q.isZero()?"-"+K:K};X.toFraction=function(M){var J,K,W,Q,Y,$,F,N,H,V,Z,R,z=this,b=z.d,f=z.constructor;if(!b)return new f(z);if(H=K=new f(1),W=N=new f(0),J=new f(W),Y=J.e=w0(b)-z.e-1,$=Y%q,J.d[0]=j(10,$<0?q+$:$),M==null)M=Y>0?J:H;else{if(F=new f(M),!F.isInt()||F.lt(H))throw Error(m+F);M=F.gt(J)?Y>0?J:H:F}u=!1,F=new f(_(b)),V=f.precision,f.precision=Y=b.length*q*2;for(;;){if(Z=T(F,J,0,1,1),Q=K.plus(Z.times(W)),Q.cmp(M)==1)break;K=W,W=Q,Q=H,H=N.plus(Z.times(Q)),N=Q,Q=J,J=F.minus(Z.times(Q)),F=Q}return Q=T(M.minus(K),W,0,1,1),N=N.plus(Q.times(H)),K=K.plus(Q.times(W)),N.s=H.s=z.s,R=T(H,W,Y,1).minus(z).abs().cmp(T(N,K,Y,1).minus(z).abs())<1?[H,W]:[N,K],f.precision=V,u=!0,R};X.toHexadecimal=X.toHex=function(M,J){return u0(this,16,M,J)};X.toNearest=function(M,J){var K=this,W=K.constructor;if(K=new W(K),M==null){if(!K.d)return K;M=new W(1),J=W.rounding}else{if(M=new W(M),J===void 0)J=W.rounding;else D(J,0,8);if(!K.d)return M.s?K:M;if(!M.d){if(M.s)M.s=K.s;return M}}if(M.d[0])u=!1,K=T(K,M,0,J,1).times(M),u=!0,U(K);else M.s=K.s,K=M;return K};X.toNumber=function(){return+this};X.toOctal=function(M,J){return u0(this,8,M,J)};X.toPower=X.pow=function(M){var J,K,W,Q,Y,$,F=this,N=F.constructor,H=+(M=new N(M));if(!F.d||!M.d||!F.d[0]||!M.d[0])return new N(j(+F,H));if(F=new N(F),F.eq(1))return F;if(W=N.precision,Y=N.rounding,M.eq(1))return U(F,W,Y);if(J=O(M.e/q),J>=M.d.length-1&&(K=H<0?-H:H)<=KM)return Q=S0(N,F,K,W),M.s<0?new N(1).div(Q):U(Q,W,Y);if($=F.s,$<0){if(J<M.d.length-1)return new N(NaN);if((M.d[J]&1)==0)$=1;if(F.e==0&&F.d[0]==1&&F.d.length==1)return F.s=$,F}if(K=j(+F,H),J=K==0||!isFinite(K)?O(H*(Math.log("0."+_(F.d))/Math.LN10+F.e+1)):new N(K+"").e,J>N.maxE+1||J<N.minE-1)return new N(J>0?$/0:0);if(u=!1,N.rounding=F.s=1,K=Math.min(12,(J+"").length),Q=q0(M.times(C(F,W+K)),W),Q.d){if(Q=U(Q,W+5,1),s(Q.d,W,Y)){if(J=W+10,Q=U(q0(M.times(C(F,J+K)),J),J+5,1),+_(Q.d).slice(W+1,W+15)+1==100000000000000)Q=U(Q,W+1,0)}}return Q.s=$,u=!0,N.rounding=Y,U(Q,W,Y)};X.toPrecision=function(M,J){var K,W=this,Q=W.constructor;if(M===void 0)K=g(W,W.e<=Q.toExpNeg||W.e>=Q.toExpPos);else{if(D(M,1,l),J===void 0)J=Q.rounding;else D(J,0,8);W=U(new Q(W),M,J),K=g(W,M<=W.e||W.e<=Q.toExpNeg,M)}return W.isNeg()&&!W.isZero()?"-"+K:K};X.toSignificantDigits=X.toSD=function(M,J){var K=this,W=K.constructor;if(M===void 0)M=W.precision,J=W.rounding;else if(D(M,1,l),J===void 0)J=W.rounding;else D(J,0,8);return U(new W(K),M,J)};X.toString=function(){var M=this,J=M.constructor,K=g(M,M.e<=J.toExpNeg||M.e>=J.toExpPos);return M.isNeg()&&!M.isZero()?"-"+K:K};X.truncated=X.trunc=function(){return U(new this.constructor(this),this.e+1,1)};X.valueOf=X.toJSON=function(){var M=this,J=M.constructor,K=g(M,M.e<=J.toExpNeg||M.e>=J.toExpPos);return M.isNeg()?"-"+K:K};function _(M){var J,K,W,Q=M.length-1,Y="",$=M[0];if(Q>0){Y+=$;for(J=1;J<Q;J++){if(W=M[J]+"",K=q-W.length,K)Y+=c(K);Y+=W}if($=M[J],W=$+"",K=q-W.length,K)Y+=c(K)}else if($===0)return"0";for(;$%10===0;)$/=10;return Y+$}function D(M,J,K){if(M!==~~M||M<J||M>K)throw Error(m+M)}function s(M,J,K,W){var Q,Y,$,F;for(Y=M[0];Y>=10;Y/=10)--J;if(--J<0)J+=q,Q=0;else Q=Math.ceil((J+1)/q),J%=q;if(Y=j(10,q-J),F=M[Q]%Y|0,W==null)if(J<3){if(J==0)F=F/100|0;else if(J==1)F=F/10|0;$=K<4&&F==99999||K>3&&F==49999||F==50000||F==0}else $=(K<4&&F+1==Y||K>3&&F+1==Y/2)&&(M[Q+1]/Y/100|0)==j(10,J-2)-1||(F==Y/2||F==0)&&(M[Q+1]/Y/100|0)==0;else if(J<4){if(J==0)F=F/1000|0;else if(J==1)F=F/100|0;else if(J==2)F=F/10|0;$=(W||K<4)&&F==9999||!W&&K>3&&F==4999}else $=((W||K<4)&&F+1==Y||!W&&K>3&&F+1==Y/2)&&(M[Q+1]/Y/1000|0)==j(10,J-3)-1;return $}function M0(M,J,K){var W,Q=[0],Y,$=0,F=M.length;for(;$<F;){for(Y=Q.length;Y--;)Q[Y]*=J;Q[0]+=X0.indexOf(M.charAt($++));for(W=0;W<Q.length;W++)if(Q[W]>K-1){if(Q[W+1]===void 0)Q[W+1]=0;Q[W+1]+=Q[W]/K|0,Q[W]%=K}}return Q.reverse()}function QM(M,J){var K,W,Q;if(J.isZero())return J;if(W=J.d.length,W<32)K=Math.ceil(W/3),Q=(1/F0(4,K)).toString();else K=16,Q="2.3283064365386962890625e-10";M.precision+=K,J=o(M,1,J.times(Q),new M(1));for(var Y=K;Y--;){var $=J.times(J);J=$.times($).minus($).times(8).plus(1)}return M.precision-=K,J}var T=function(){function M(W,Q,Y){var $,F=0,N=W.length;for(W=W.slice();N--;)$=W[N]*Q+F,W[N]=$%Y|0,F=$/Y|0;if(F)W.unshift(F);return W}function J(W,Q,Y,$){var F,N;if(Y!=$)N=Y>$?1:-1;else for(F=N=0;F<Y;F++)if(W[F]!=Q[F]){N=W[F]>Q[F]?1:-1;break}return N}function K(W,Q,Y,$){var F=0;for(;Y--;)W[Y]-=F,F=W[Y]<Q[Y]?1:0,W[Y]=F*$+W[Y]-Q[Y];for(;!W[0]&&W.length>1;)W.shift()}return function(W,Q,Y,$,F,N){var H,V,Z,R,z,b,f,E,h,w,G,A,t,L,V0,i,a,Z0,S,x,r=W.constructor,R0=W.s==Q.s?1:-1,B=W.d,I=Q.d;if(!B||!B[0]||!I||!I[0])return new r(!W.s||!Q.s||(B?I&&B[0]==I[0]:!I)?NaN:B&&B[0]==0||!I?R0*0:R0/0);if(N)z=1,V=W.e-Q.e;else N=v,z=q,V=O(W.e/z)-O(Q.e/z);S=I.length,a=B.length,h=new r(R0),w=h.d=[];for(Z=0;I[Z]==(B[Z]||0);Z++);if(I[Z]>(B[Z]||0))V--;if(Y==null)L=Y=r.precision,$=r.rounding;else if(F)L=Y+(W.e-Q.e)+1;else L=Y;if(L<0)w.push(1),b=!0;else{if(L=L/z+2|0,Z=0,S==1){R=0,I=I[0],L++;for(;(Z<a||R)&&L--;Z++)V0=R*N+(B[Z]||0),w[Z]=V0/I|0,R=V0%I|0;b=R||Z<a}else{if(R=N/(I[0]+1)|0,R>1)I=M(I,R,N),B=M(B,R,N),S=I.length,a=B.length;i=S,G=B.slice(0,S),A=G.length;for(;A<S;)G[A++]=0;if(x=I.slice(),x.unshift(0),Z0=I[0],I[1]>=N/2)++Z0;do{if(R=0,H=J(I,G,S,A),H<0){if(t=G[0],S!=A)t=t*N+(G[1]||0);if(R=t/Z0|0,R>1){if(R>=N)R=N-1;if(f=M(I,R,N),E=f.length,A=G.length,H=J(f,G,E,A),H==1)R--,K(f,S<E?x:I,E,N)}else{if(R==0)H=R=1;f=I.slice()}if(E=f.length,E<A)f.unshift(0);if(K(G,f,A,N),H==-1){if(A=G.length,H=J(I,G,S,A),H<1)R++,K(G,S<A?x:I,A,N)}A=G.length}else if(H===0)R++,G=[0];if(w[Z++]=R,H&&G[0])G[A++]=B[i]||0;else G=[B[i]],A=1}while((i++<a||G[0]!==void 0)&&L--);b=G[0]!==void 0}if(!w[0])w.shift()}if(z==1)h.e=V,A0=b;else{for(Z=1,R=w[0];R>=10;R/=10)Z++;h.e=Z+V*z-1,U(h,F?Y+h.e+1:Y,$,b)}return h}}();function U(M,J,K,W){var Q,Y,$,F,N,H,V,Z,R,z=M.constructor;M:if(J!=null){if(Z=M.d,!Z)return M;for(Q=1,F=Z[0];F>=10;F/=10)Q++;if(Y=J-Q,Y<0)Y+=q,$=J,V=Z[R=0],N=V/j(10,Q-$-1)%10|0;else if(R=Math.ceil((Y+1)/q),F=Z.length,R>=F)if(W){for(;F++<=R;)Z.push(0);V=N=0,Q=1,Y%=q,$=Y-q+1}else break M;else{V=F=Z[R];for(Q=1;F>=10;F/=10)Q++;Y%=q,$=Y-q+Q,N=$<0?0:V/j(10,Q-$-1)%10|0}if(W=W||J<0||Z[R+1]!==void 0||($<0?V:V%j(10,Q-$-1)),H=K<4?(N||W)&&(K==0||K==(M.s<0?3:2)):N>5||N==5&&(K==4||W||K==6&&(Y>0?$>0?V/j(10,Q-$):0:Z[R-1])%10&1||K==(M.s<0?8:7)),J<1||!Z[0]){if(Z.length=0,H)J-=M.e+1,Z[0]=j(10,(q-J%q)%q),M.e=-J||0;else Z[0]=M.e=0;return M}if(Y==0)Z.length=R,F=1,R--;else Z.length=R+1,F=j(10,q-Y),Z[R]=$>0?(V/j(10,Q-$)%j(10,$)|0)*F:0;if(H)for(;;)if(R==0){for(Y=1,$=Z[0];$>=10;$/=10)Y++;$=Z[0]+=F;for(F=1;$>=10;$/=10)F++;if(Y!=F){if(M.e++,Z[0]==v)Z[0]=1}break}else{if(Z[R]+=F,Z[R]!=v)break;Z[R--]=0,F=1}for(Y=Z.length;Z[--Y]===0;)Z.pop()}if(u){if(M.e>z.maxE)M.d=null,M.e=NaN;else if(M.e<z.minE)M.e=0,M.d=[0]}return M}function g(M,J,K){if(!M.isFinite())return P0(M);var W,Q=M.e,Y=_(M.d),$=Y.length;if(J){if(K&&(W=K-$)>0)Y=Y.charAt(0)+"."+Y.slice(1)+c(W);else if($>1)Y=Y.charAt(0)+"."+Y.slice(1);Y=Y+(M.e<0?"e":"e+")+M.e}else if(Q<0){if(Y="0."+c(-Q-1)+Y,K&&(W=K-$)>0)Y+=c(W)}else if(Q>=$){if(Y+=c(Q+1-$),K&&(W=K-Q-1)>0)Y=Y+"."+c(W)}else{if((W=Q+1)<$)Y=Y.slice(0,W)+"."+Y.slice(W);if(K&&(W=K-$)>0){if(Q+1===$)Y+=".";Y+=c(W)}}return Y}function $0(M,J){var K=M[0];for(J*=q;K>=10;K/=10)J++;return J}function Q0(M,J,K){if(J>WM){if(u=!0,K)M.precision=K;throw Error(B0)}return U(new M(K0),J,1,!0)}function P(M,J,K){if(J>z0)throw Error(B0);return U(new M(W0),J,K,!0)}function w0(M){var J=M.length-1,K=J*q+1;if(J=M[J],J){for(;J%10==0;J/=10)K--;for(J=M[0];J>=10;J/=10)K++}return K}function c(M){var J="";for(;M--;)J+="0";return J}function S0(M,J,K,W){var Q,Y=new M(1),$=Math.ceil(W/q+4);u=!1;for(;;){if(K%2){if(Y=Y.times(J),j0(Y.d,$))Q=!0}if(K=O(K/2),K===0){if(K=Y.d.length-1,Q&&Y.d[K]===0)++Y.d[K];break}J=J.times(J),j0(J.d,$)}return u=!0,Y}function h0(M){return M.d[M.d.length-1]&1}function v0(M,J,K){var W,Q,Y=new M(J[0]),$=0;for(;++$<J.length;){if(Q=new M(J[$]),!Q.s){Y=Q;break}if(W=Y.cmp(Q),W===K||W===0&&Y.s===K)Y=Q}return Y}function q0(M,J){var K,W,Q,Y,$,F,N,H=0,V=0,Z=0,R=M.constructor,z=R.rounding,b=R.precision;if(!M.d||!M.d[0]||M.e>17)return new R(M.d?!M.d[0]?1:M.s<0?0:1/0:M.s?M.s<0?0:M:NaN);if(J==null)u=!1,N=b;else N=J;F=new R(0.03125);while(M.e>-2)M=M.times(F),Z+=5;W=Math.log(j(2,Z))/Math.LN10*2+5|0,N+=W,K=Y=$=new R(1),R.precision=N;for(;;){if(Y=U(Y.times(M),N,1),K=K.times(++V),F=$.plus(T(Y,K,N,1)),_(F.d).slice(0,N)===_($.d).slice(0,N)){Q=Z;while(Q--)$=U($.times($),N,1);if(J==null)if(H<3&&s($.d,N-W,z,H))R.precision=N+=10,K=Y=F=new R(1),V=0,H++;else return U($,R.precision=b,z,u=!0);else return R.precision=b,$}$=F}}function C(M,J){var K,W,Q,Y,$,F,N,H,V,Z,R,z=1,b=10,f=M,E=f.d,h=f.constructor,w=h.rounding,G=h.precision;if(f.s<0||!E||!E[0]||!f.e&&E[0]==1&&E.length==1)return new h(E&&!E[0]?-1/0:f.s!=1?NaN:E?0:f);if(J==null)u=!1,V=G;else V=J;if(h.precision=V+=b,K=_(E),W=K.charAt(0),Math.abs(Y=f.e)<1500000000000000){while(W<7&&W!=1||W==1&&K.charAt(1)>3)f=f.times(M),K=_(f.d),W=K.charAt(0),z++;if(Y=f.e,W>1)f=new h("0."+K),Y++;else f=new h(W+"."+K.slice(1))}else return H=Q0(h,V+2,G).times(Y+""),f=C(new h(W+"."+K.slice(1)),V-b).plus(H),h.precision=G,J==null?U(f,G,w,u=!0):f;Z=f,N=$=f=T(f.minus(1),f.plus(1),V,1),R=U(f.times(f),V,1),Q=3;for(;;){if($=U($.times(R),V,1),H=N.plus(T($,new h(Q),V,1)),_(H.d).slice(0,V)===_(N.d).slice(0,V)){if(N=N.times(2),Y!==0)N=N.plus(Q0(h,V+2,G).times(Y+""));if(N=T(N,new h(z),V,1),J==null)if(s(N.d,V-b,w,F))h.precision=V+=b,H=$=f=T(Z.minus(1),Z.plus(1),V,1),R=U(f.times(f),V,1),Q=F=1;else return U(N,h.precision=G,w,u=!0);else return h.precision=G,N}N=H,Q+=2}}function P0(M){return String(M.s*M.s/0)}function J0(M,J){var K,W,Q;if((K=J.indexOf("."))>-1)J=J.replace(".","");if((W=J.search(/e/i))>0){if(K<0)K=W;K+=+J.slice(W+1),J=J.substring(0,W)}else if(K<0)K=J.length;for(W=0;J.charCodeAt(W)===48;W++);for(Q=J.length;J.charCodeAt(Q-1)===48;--Q);if(J=J.slice(W,Q),J){if(Q-=W,M.e=K=K-W-1,M.d=[],W=(K+1)%q,K<0)W+=q;if(W<Q){if(W)M.d.push(+J.slice(0,W));for(Q-=q;W<Q;)M.d.push(+J.slice(W,W+=q));J=J.slice(W),W=q-J.length}else W-=Q;for(;W--;)J+="0";if(M.d.push(+J),u){if(M.e>M.constructor.maxE)M.d=null,M.e=NaN;else if(M.e<M.constructor.minE)M.e=0,M.d=[0]}}else M.e=0,M.d=[0];return M}function YM(M,J){var K,W,Q,Y,$,F,N,H,V;if(J.indexOf("_")>-1){if(J=J.replace(/(\d)_(?=\d)/g,"$1"),D0.test(J))return J0(M,J)}else if(J==="Infinity"||J==="NaN"){if(!+J)M.s=NaN;return M.e=NaN,M.d=null,M}if(MM.test(J))K=16,J=J.toLowerCase();else if(r0.test(J))K=2;else if(JM.test(J))K=8;else throw Error(m+J);if(Y=J.search(/p/i),Y>0)N=+J.slice(Y+1),J=J.substring(2,Y);else J=J.slice(2);if(Y=J.indexOf("."),$=Y>=0,W=M.constructor,$)J=J.replace(".",""),F=J.length,Y=F-Y,Q=S0(W,new W(K),Y,Y*2);H=M0(J,K,v),V=H.length-1;for(Y=V;H[Y]===0;--Y)H.pop();if(Y<0)return new W(M.s*0);if(M.e=$0(H,V),M.d=H,u=!1,$)M=T(M,Q,F*4);if(N)M=M.times(Math.abs(N)<54?j(2,N):y.pow(2,N));return u=!0,M}function $M(M,J){var K,W=J.d.length;if(W<3)return J.isZero()?J:o(M,2,J,J);K=1.4*Math.sqrt(W),K=K>16?16:K|0,J=J.times(1/F0(5,K)),J=o(M,2,J,J);var Q,Y=new M(5),$=new M(16),F=new M(20);for(;K--;)Q=J.times(J),J=J.times(Y.plus(Q.times($.times(Q).minus(F))));return J}function o(M,J,K,W,Q){var Y,$,F,N,H=1,V=M.precision,Z=Math.ceil(V/q);u=!1,N=K.times(K),F=new M(W);for(;;){if($=T(F.times(N),new M(J++*J++),V,1),F=Q?W.plus($):W.minus($),W=T($.times(N),new M(J++*J++),V,1),$=F.plus(W),$.d[Z]!==void 0){for(Y=Z;$.d[Y]===F.d[Y]&&Y--;);if(Y==-1)break}Y=F,F=W,W=$,$=Y,H++}return u=!0,$.d.length=Z+1,$}function F0(M,J){var K=M;while(--J)K*=M;return K}function g0(M,J){var K,W=J.s<0,Q=P(M,M.precision,1),Y=Q.times(0.5);if(J=J.abs(),J.lte(Y))return k=W?4:1,J;if(K=J.divToInt(Q),K.isZero())k=W?3:2;else{if(J=J.minus(K.times(Q)),J.lte(Y))return k=h0(K)?W?2:3:W?4:1,J;k=h0(K)?W?1:4:W?3:2}return J.minus(Q).abs()}function u0(M,J,K,W){var Q,Y,$,F,N,H,V,Z,R,z=M.constructor,b=K!==void 0;if(b)if(D(K,1,l),W===void 0)W=z.rounding;else D(W,0,8);else K=z.precision,W=z.rounding;if(!M.isFinite())V=P0(M);else{if(V=g(M),$=V.indexOf("."),b){if(Q=2,J==16)K=K*4-3;else if(J==8)K=K*3-2}else Q=J;if($>=0)V=V.replace(".",""),R=new z(1),R.e=V.length-$,R.d=M0(g(R),10,Q),R.e=R.d.length;Z=M0(V,10,Q),Y=N=Z.length;for(;Z[--N]==0;)Z.pop();if(!Z[0])V=b?"0p+0":"0";else{if($<0)Y--;else M=new z(M),M.d=Z,M.e=Y,M=T(M,R,K,W,0,Q),Z=M.d,Y=M.e,H=A0;if($=Z[K],F=Q/2,H=H||Z[K+1]!==void 0,H=W<4?($!==void 0||H)&&(W===0||W===(M.s<0?3:2)):$>F||$===F&&(W===4||H||W===6&&Z[K-1]&1||W===(M.s<0?8:7)),Z.length=K,H){for(;++Z[--K]>Q-1;)if(Z[K]=0,!K)++Y,Z.unshift(1)}for(N=Z.length;!Z[N-1];--N);for($=0,V="";$<N;$++)V+=X0.charAt(Z[$]);if(b){if(N>1)if(J==16||J==8){$=J==16?4:3;for(--N;N%$;N++)V+="0";Z=M0(V,Q,J);for(N=Z.length;!Z[N-1];--N);for($=1,V="1.";$<N;$++)V+=X0.charAt(Z[$])}else V=V.charAt(0)+"."+V.slice(1);V=V+(Y<0?"p":"p+")+Y}else if(Y<0){for(;++Y;)V="0"+V;V="0."+V}else if(++Y>N)for(Y-=N;Y--;)V+="0";else if(Y<N)V=V.slice(0,Y)+"."+V.slice(Y)}V=(J==16?"0x":J==2?"0b":J==8?"0o":"")+V}return M.s<0?"-"+V:V}function j0(M,J){if(M.length>J)return M.length=J,!0}function FM(M){return new this(M).abs()}function HM(M){return new this(M).acos()}function NM(M){return new this(M).acosh()}function VM(M,J){return new this(M).plus(J)}function ZM(M){return new this(M).asin()}function RM(M){return new this(M).asinh()}function XM(M){return new this(M).atan()}function UM(M){return new this(M).atanh()}function zM(M,J){M=new this(M),J=new this(J);var K,W=this.precision,Q=this.rounding,Y=W+4;if(!M.s||!J.s)K=new this(NaN);else if(!M.d&&!J.d)K=P(this,Y,1).times(J.s>0?0.25:0.75),K.s=M.s;else if(!J.d||M.isZero())K=J.s<0?P(this,W,Q):new this(0),K.s=M.s;else if(!M.d||J.isZero())K=P(this,Y,1).times(0.5),K.s=M.s;else if(J.s<0)this.precision=Y,this.rounding=1,K=this.atan(T(M,J,Y,1)),J=P(this,Y,1),this.precision=W,this.rounding=Q,K=M.s<0?K.minus(J):K.plus(J);else K=this.atan(T(M,J,Y,1));return K}function qM(M){return new this(M).cbrt()}function uM(M){return U(M=new this(M),M.e+1,2)}function fM(M,J,K){return new this(M).clamp(J,K)}function bM(M){if(!M||typeof M!=="object")throw Error(Y0+"Object expected");var J,K,W,Q=M.defaults===!0,Y=["precision",1,l,"rounding",0,8,"toExpNeg",-n,0,"toExpPos",0,n,"maxE",0,n,"minE",-n,0,"modulo",0,9];for(J=0;J<Y.length;J+=3){if(K=Y[J],Q)this[K]=U0[K];if((W=M[K])!==void 0)if(O(W)===W&&W>=Y[J+1]&&W<=Y[J+2])this[K]=W;else throw Error(m+K+": "+W)}if(K="crypto",Q)this[K]=U0[K];if((W=M[K])!==void 0)if(W===!0||W===!1||W===0||W===1)if(W)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[K]=!0;else throw Error(O0);else this[K]=!1;else throw Error(m+K+": "+W);return this}function GM(M){return new this(M).cos()}function TM(M){return new this(M).cosh()}function L0(M){var J,K,W;function Q(Y){var $,F,N,H=this;if(!(H instanceof Q))return new Q(Y);if(H.constructor=Q,_0(Y)){if(H.s=Y.s,u)if(!Y.d||Y.e>Q.maxE)H.e=NaN,H.d=null;else if(Y.e<Q.minE)H.e=0,H.d=[0];else H.e=Y.e,H.d=Y.d.slice();else H.e=Y.e,H.d=Y.d?Y.d.slice():Y.d;return}if(N=typeof Y,N==="number"){if(Y===0){H.s=1/Y<0?-1:1,H.e=0,H.d=[0];return}if(Y<0)Y=-Y,H.s=-1;else H.s=1;if(Y===~~Y&&Y<1e7){for($=0,F=Y;F>=10;F/=10)$++;if(u)if($>Q.maxE)H.e=NaN,H.d=null;else if($<Q.minE)H.e=0,H.d=[0];else H.e=$,H.d=[Y];else H.e=$,H.d=[Y];return}if(Y*0!==0){if(!Y)H.s=NaN;H.e=NaN,H.d=null;return}return J0(H,Y.toString())}if(N==="string"){if((F=Y.charCodeAt(0))===45)Y=Y.slice(1),H.s=-1;else{if(F===43)Y=Y.slice(1);H.s=1}return D0.test(Y)?J0(H,Y):YM(H,Y)}if(N==="bigint"){if(Y<0)Y=-Y,H.s=-1;else H.s=1;return J0(H,Y.toString())}throw Error(m+Y)}if(Q.prototype=X,Q.ROUND_UP=0,Q.ROUND_DOWN=1,Q.ROUND_CEIL=2,Q.ROUND_FLOOR=3,Q.ROUND_HALF_UP=4,Q.ROUND_HALF_DOWN=5,Q.ROUND_HALF_EVEN=6,Q.ROUND_HALF_CEIL=7,Q.ROUND_HALF_FLOOR=8,Q.EUCLID=9,Q.config=Q.set=bM,Q.clone=L0,Q.isDecimal=_0,Q.abs=FM,Q.acos=HM,Q.acosh=NM,Q.add=VM,Q.asin=ZM,Q.asinh=RM,Q.atan=XM,Q.atanh=UM,Q.atan2=zM,Q.cbrt=qM,Q.ceil=uM,Q.clamp=fM,Q.cos=GM,Q.cosh=TM,Q.div=IM,Q.exp=hM,Q.floor=jM,Q.hypot=_M,Q.ln=AM,Q.log=BM,Q.log10=EM,Q.log2=OM,Q.max=DM,Q.min=wM,Q.mod=SM,Q.mul=vM,Q.pow=PM,Q.random=gM,Q.round=LM,Q.sign=kM,Q.sin=cM,Q.sinh=CM,Q.sqrt=mM,Q.sub=lM,Q.sum=pM,Q.tan=yM,Q.tanh=nM,Q.trunc=oM,M===void 0)M={};if(M){if(M.defaults!==!0){W=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"];for(J=0;J<W.length;)if(!M.hasOwnProperty(K=W[J++]))M[K]=this[K]}}return Q.config(M),Q}function IM(M,J){return new this(M).div(J)}function hM(M){return new this(M).exp()}function jM(M){return U(M=new this(M),M.e+1,3)}function _M(){var M,J,K=new this(0);u=!1;for(M=0;M<arguments.length;)if(J=new this(arguments[M++]),!J.d){if(J.s)return u=!0,new this(1/0);K=J}else if(K.d)K=K.plus(J.times(J));return u=!0,K.sqrt()}function _0(M){return M instanceof y||M&&M.toStringTag===E0||!1}function AM(M){return new this(M).ln()}function BM(M,J){return new this(M).log(J)}function OM(M){return new this(M).log(2)}function EM(M){return new this(M).log(10)}function DM(){return v0(this,arguments,-1)}function wM(){return v0(this,arguments,1)}function SM(M,J){return new this(M).mod(J)}function vM(M,J){return new this(M).mul(J)}function PM(M,J){return new this(M).pow(J)}function gM(M){var J,K,W,Q,Y=0,$=new this(1),F=[];if(M===void 0)M=this.precision;else D(M,1,l);if(W=Math.ceil(M/q),!this.crypto)for(;Y<W;)F[Y++]=Math.random()*1e7|0;else if(crypto.getRandomValues){J=crypto.getRandomValues(new Uint32Array(W));for(;Y<W;)if(Q=J[Y],Q>=4290000000)J[Y]=crypto.getRandomValues(new Uint32Array(1))[0];else F[Y++]=Q%1e7}else if(crypto.randomBytes){J=crypto.randomBytes(W*=4);for(;Y<W;)if(Q=J[Y]+(J[Y+1]<<8)+(J[Y+2]<<16)+((J[Y+3]&127)<<24),Q>=2140000000)crypto.randomBytes(4).copy(J,Y);else F.push(Q%1e7),Y+=4;Y=W/4}else throw Error(O0);if(W=F[--Y],M%=q,W&&M)Q=j(10,q-M),F[Y]=(W/Q|0)*Q;for(;F[Y]===0;Y--)F.pop();if(Y<0)K=0,F=[0];else{K=-1;for(;F[0]===0;K-=q)F.shift();for(W=1,Q=F[0];Q>=10;Q/=10)W++;if(W<q)K-=q-W}return $.e=K,$.d=F,$}function LM(M){return U(M=new this(M),M.e+1,this.rounding)}function kM(M){return M=new this(M),M.d?M.d[0]?M.s:0*M.s:M.s||NaN}function cM(M){return new this(M).sin()}function CM(M){return new this(M).sinh()}function mM(M){return new this(M).sqrt()}function lM(M,J){return new this(M).sub(J)}function pM(){var M=0,J=arguments,K=new this(J[M]);u=!1;for(;K.s&&++M<J.length;)K=K.plus(J[M]);return u=!0,U(K,this.precision,this.rounding)}function yM(M){return new this(M).tan()}function nM(M){return new this(M).tanh()}function oM(M){return U(M=new this(M),M.e+1,1)}X[Symbol.for("nodejs.util.inspect.custom")]=X.toString;X[Symbol.toStringTag]="Decimal";var y=X.constructor=L0(U0);K0=new y(K0);W0=new y(W0);var p=y;Number.prototype.toNumber=function(){return Number(this)};Number.prototype.toDecimal=function(){return new y(this.toNumber())};Number.prototype.toComma=function(){if(`${this}`.length===0)return"0";return`${new p(Number(this)).toString()}`.toComma()};Number.prototype.mod=function(M){return p.mod(Number(this),M).toNumber()};Number.prototype.div=function(M){return p.div(Number(this),M).toNumber()};Number.prototype.mul=function(M){return p.mul(Number(this),M).toNumber()};Number.prototype.add=function(M){return p.add(Number(this),M).toNumber()};Number.prototype.sub=function(M){return p.sub(Number(this),M).toNumber()};Number.prototype.pow=function(M){return p.pow(Number(this),M).toNumber()};Number.prototype.normalize=function(){return Number(this).pow(2)};Number.prototype.fixNumber=function(M=8){return`${this}`.fixNumber(M)};Number.prototype.fixPoint=function(M=0){return`${this}`.fixPoint(M)};Number.prototype.abs=function(){return this.toDecimal().abs().toNumber()};Number.prototype.isFinite=function(){return this.toDecimal().isFinite()};Number.prototype.isNaN=function(){return this.toDecimal().isNaN()};Number.prototype.isInteger=function(){return this.toDecimal().isInteger()};Number.prototype.addSymbol=function(M=""){return`${Number(this)>0?"+":Number(this)<0?"-":""}${M}${Math.abs(Number(this))}`};Number.prototype.percentOf=function(M){return Number(this)/100*M};Number.prototype.toPercent=function(M){return Number(this)/M*100};Number.prototype.ceil=function(M=0){return Math.ceil10(Number(this),M)};Number.prototype.floor=function(M=0){return Math.floor10(Number(this),M)};Number.prototype.round=function(M=0){return Math.round10(Number(this),M)};var k0=(M)=>{if(typeof M==="number")return M-M===0;if(typeof M==="string"&&M.trim()!=="")return Number.isFinite(+M);return!1};String.prototype.leadingChars=function(M,J){return(M.toString().repeat(J)+this).substr(-J)};String.prototype.fixPoint=function(M=0){let J=this.split(".");if(J.length===1)J[1]="";else if(J.length>=3)throw Error("Invalid String");let K=J[0];if(J.length===2&&M!==0)K+=`.${J[1].padEnd(M,"0").slice(0,M)}`;return K};String.prototype.fixNumber=function(M=8){let J=this.split("."),K=J[0].indexOf("-")===0,W=Math.abs(Number(J[0])).toNumber().toString().padStart(M,"0");if(J.length===2)W+=`.${J[1]}`;if(K)W=`-${W}`;return W};String.prototype.toComma=function(){if(this.length===0||this==="NaN")return"0";let M=this.split("."),J=M[0].replace(/\B(?=(\d{3})+(?!\d))/g,",");if(M.length===2)J+=`.${M[1]}`;return J};String.prototype.toNumber=function(){return Number(this.replace(/[,\+\s]/gi,""))};String.prototype.addSymbol=function(M=""){return`${this.toNumber()>0?"+":""}${M}${this}`};String.prototype.parseJson=function(){return JSON.parse(`${this}`)};String.prototype.issetWord=function(M){return this.indexOf(M)===-1?!1:!0};String.prototype.getChar=function(M){return this.slice(M,M+1)};String.prototype.isNumber=function(){return k0(this)};var p0=T0(f0(),1);Array.prototype.where=function(M){return this.filter(M)};Array.prototype.singleOrDefault=function(M,J=null){let K=this.where(M);if(K.length>=2)throw Error("single:sequence contains more than one element.");return K.length?K[0]:J};Array.prototype.single=function(M){let J=this.singleOrDefault(M);if(!J)throw Error("single:No element satisfies the condition.");return J};Array.prototype.skip=function(M){return this.slice(M,this.length)};Array.prototype.take=function(M){return this.slice(0,M)};Array.prototype.select=function(M){return this.map(M)};Array.prototype.any=function(M){if(M)return this.singleOrDefault(M)?!0:!1;else return this.length?!0:!1};Array.prototype.count=function(M){let J=this;if(M)J=this.where(M);return J.length};Array.prototype.union=function(M){return this.concat(M.diff(this))};Array.prototype.max=function(M){let J=this;if(M)J=this.where(M);if(J.length===0)throw Error("max: Sequence contains no elements.");return J.reduce((K,W)=>{return K>W?K:W})};Array.prototype.min=function(M){let J=this;if(M)J=this.where(M);if(J.length===0)throw Error("min: Sequence contains no elements.");return J.reduce((K,W)=>{return K<W?K:W})};Array.prototype.sum=function(M){let J=this;if(M)J=this.where(M);return J.reduce((K,W)=>{return K+W},0)};Array.prototype.firstOrDefault=function(M,J=null){if(M==null)M=()=>!0;let K=this.where(M);return K==null||K.length===0?J:K[0]};Array.prototype.first=function(M){if(M==null)M=()=>!0;let J=this.firstOrDefault(M);if(J==null)throw Error("first:No element satisfies the condition.");return J};Array.prototype.lastOrDefault=function(M,J=null){if(M==null)M=()=>!0;let K=this.where(M);return K==null||K.length===0?J:K[K.length-1]};Array.prototype.last=function(M){if(M==null)M=()=>!0;let J=this.lastOrDefault(M);if(J==null)throw Error("last:No element satisfies the condition.");return J};Array.prototype.diff=function(M){return this.filter((J)=>!M.includes(J))};Array.prototype.inter=function(M){return this.where((J)=>M.includes(J))};if(!Array.prototype._deepCopy)Array.prototype._deepCopy=function(){return p0.default(this)};if(!Array.prototype._toJson)Array.prototype._toJson=function(){return JSON.stringify(this)};var y0=T0(f0(),1);if(!Object.prototype._deepCopy)Object.prototype._deepCopy=function(){return y0.default(this)};if(!Object.prototype._toJson)Object.prototype._toJson=function(){return JSON.stringify(this)};var dM={log:console.log.bind(null),info:console.log.bind(null),warn:console.log.bind(null),error:console.log.bind(null)};function eM(){let M=new Date;return`${M.getHours().fixNumber(2)}:${M.getMinutes().fixNumber(2)}:${M.getSeconds().fixNumber(2)}:${`${M.getMilliseconds()}`.fixNumber(3)}`}function H0(M,J,...K){let W=["\x1B[2m"];if(M==="info")W[0]="\x1B[34m";else if(M==="warn")W[0]="\x1B[33m";else if(M==="error")W[0]="\x1B[31m";dM[M](`${W[0]}[${eM()}]\x1B[0m\x1B[37m`,J,...K)}console.useTheme=tM;function tM(M={development:{log:!0,info:!0,warn:!0,error:!0},production:{log:!1,info:!1,warn:!0,error:!0}}){console.log=(J,...K)=>{if(M.development.log)H0("log",J,...K)},console.info=(J,...K)=>{if(M.development.info)H0("info",J,...K)},console.warn=(J,...K)=>{if(M.development.warn)H0("warn",J,...K)},console.error=(J,...K)=>{if(M.development.error)H0("error",J,...K)},globalThis.console=console}function n0(M,J){let K=0,W=M.length-1;while(K<=W){let Q=Math.floor((K+W)/2);if(M[Q]===J)return Q;else if(M[Q]<J)K=Q+1;else W=Q-1}return-1}function o0(M,J){let K=M.sort((W,Q)=>Number(W)-Number(Q));return n0(K,J)}var a0=n0;function N0(M){let J=Math[M];return(K,W=0)=>{if(W=W==null?0:W>=0?Math.min(W,292):Math.max(W,-292),W){let Q=`${K}e`.split("e");return Q=`${J(`${Q[0]}e${+Q[1]+W}`.toNumber())}e`.split("e"),+`${Q[0]}e${+Q[1]-W}`}return J(K)}}function e(M,J){if(J===0)return M;return e(J,M%J)}function s0(M){return M.reduce(e)}function b0(M,J){return M*J/e(M,J)}function d0(M){return M.reduce(b0)}if(!Math.round10)Math.round10=N0("round");if(!Math.floor10)Math.floor10=N0("floor");if(!Math.ceil10)Math.ceil10=N0("ceil");if(!Math.gcd)Math.gcd=e;if(!Math.gcds)Math.gcds=s0;if(!Math.lcm)Math.lcm=b0;if(!Math.lcms)Math.lcms=d0;if(!Math.binarySearch)Math.binarySearch=a0;if(!Math.binarySearchWithSort)Math.binarySearchWithSort=o0;if(!Math.randomRange)Math.randomRange=(M,J,K=0)=>Math.floor10(Math.random()*(J-M+1)+M,K);if(!Math.clamp)Math.clamp=(M,J,K)=>Math.min(Math.max(M,J),K);globalThis.Math=Math;
|
|
8
|
+
*/var o=9000000000000000,e=1e9,$u="0123456789abcdef",hu="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",bu="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Nu={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-o,maxE:o,crypto:!1},cu,P,Z=!0,Ku="[DecimalError] ",l=Ku+"Invalid argument: ",Gu=Ku+"Precision limit exceeded",ju=Ku+"crypto unavailable",Iu="[object Decimal]",j=Math.floor,O=Math.pow,xu=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,uf=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,ff=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Du=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,E=1e7,H=7,hf=9007199254740991,bf=hu.length-1,Fu=bu.length-1,$={toStringTag:Iu};$.absoluteValue=$.abs=function(){var u=new this.constructor(this);if(u.s<0)u.s=1;return N(u)};$.ceil=function(){return N(new this.constructor(this),this.e+1,2)};$.clampedTo=$.clamp=function(u,f){var h,b=this,M=b.constructor;if(u=new M(u),f=new M(f),!u.s||!f.s)return new M(NaN);if(u.gt(f))throw Error(l+f);return h=b.cmp(u),h<0?u:b.cmp(f)>0?f:new M(b)};$.comparedTo=$.cmp=function(u){var f,h,b,M,K=this,J=K.d,T=(u=new K.constructor(u)).d,V=K.s,R=u.s;if(!J||!T)return!V||!R?NaN:V!==R?V:J===T?0:!J^V<0?1:-1;if(!J[0]||!T[0])return J[0]?V:T[0]?-R:0;if(V!==R)return V;if(K.e!==u.e)return K.e>u.e^V<0?1:-1;b=J.length,M=T.length;for(f=0,h=b<M?b:M;f<h;++f)if(J[f]!==T[f])return J[f]>T[f]^V<0?1:-1;return b===M?0:b>M^V<0?1:-1};$.cosine=$.cos=function(){var u,f,h=this,b=h.constructor;if(!h.d)return new b(NaN);if(!h.d[0])return new b(1);return u=b.precision,f=b.rounding,b.precision=u+Math.max(h.e,h.sd())+H,b.rounding=1,h=Mf(b,gu(b,h)),b.precision=u,b.rounding=f,N(P==2||P==3?h.neg():h,u,f,!0)};$.cubeRoot=$.cbrt=function(){var u,f,h,b,M,K,J,T,V,R,W=this,Q=W.constructor;if(!W.isFinite()||W.isZero())return new Q(W);if(Z=!1,K=W.s*O(W.s*W,0.3333333333333333),!K||Math.abs(K)==1/0){if(h=_(W.d),u=W.e,K=(u-h.length+1)%3)h+=K==1||K==-2?"0":"00";if(K=O(h,0.3333333333333333),u=j((u+1)/3)-(u%3==(u<0?-1:2)),K==1/0)h="5e"+u;else h=K.toExponential(),h=h.slice(0,h.indexOf("e")+1)+u;b=new Q(h),b.s=W.s}else b=new Q(K.toString());J=(u=Q.precision)+3;for(;;)if(T=b,V=T.times(T).times(T),R=V.plus(W),b=q(R.plus(W).times(T),R.plus(V),J+2,1),_(T.d).slice(0,J)===(h=_(b.d)).slice(0,J))if(h=h.slice(J-3,J+1),h=="9999"||!M&&h=="4999"){if(!M){if(N(T,u+1,0),T.times(T).times(T).eq(W)){b=T;break}}J+=4,M=1}else{if(!+h||!+h.slice(1)&&h.charAt(0)=="5")N(b,u+1,1),f=!b.times(b).times(b).eq(W);break}return Z=!0,N(b,u,Q.rounding,f)};$.decimalPlaces=$.dp=function(){var u,f=this.d,h=NaN;if(f){if(u=f.length-1,h=(u-j(this.e/H))*H,u=f[u],u)for(;u%10==0;u/=10)h--;if(h<0)h=0}return h};$.dividedBy=$.div=function(u){return q(this,new this.constructor(u))};$.dividedToIntegerBy=$.divToInt=function(u){var f=this,h=f.constructor;return N(q(f,new h(u),0,1,1),h.precision,h.rounding)};$.equals=$.eq=function(u){return this.cmp(u)===0};$.floor=function(){return N(new this.constructor(this),this.e+1,3)};$.greaterThan=$.gt=function(u){return this.cmp(u)>0};$.greaterThanOrEqualTo=$.gte=function(u){var f=this.cmp(u);return f==1||f===0};$.hyperbolicCosine=$.cosh=function(){var u,f,h,b,M,K=this,J=K.constructor,T=new J(1);if(!K.isFinite())return new J(K.s?1/0:NaN);if(K.isZero())return T;if(h=J.precision,b=J.rounding,J.precision=h+Math.max(K.e,K.sd())+4,J.rounding=1,M=K.d.length,M<32)u=Math.ceil(M/3),f=(1/Tu(4,u)).toString();else u=16,f="2.3283064365386962890625e-10";K=C(J,1,K.times(f),new J(1),!0);var V,R=u,W=new J(8);for(;R--;)V=K.times(K),K=T.minus(V.times(W.minus(V.times(W))));return N(K,J.precision=h,J.rounding=b,!0)};$.hyperbolicSine=$.sinh=function(){var u,f,h,b,M=this,K=M.constructor;if(!M.isFinite()||M.isZero())return new K(M);if(f=K.precision,h=K.rounding,K.precision=f+Math.max(M.e,M.sd())+4,K.rounding=1,b=M.d.length,b<3)M=C(K,2,M,M,!0);else{u=1.4*Math.sqrt(b),u=u>16?16:u|0,M=M.times(1/Tu(5,u)),M=C(K,2,M,M,!0);var J,T=new K(5),V=new K(16),R=new K(20);for(;u--;)J=M.times(M),M=M.times(T.plus(J.times(V.times(J).plus(R))))}return K.precision=f,K.rounding=h,N(M,f,h,!0)};$.hyperbolicTangent=$.tanh=function(){var u,f,h=this,b=h.constructor;if(!h.isFinite())return new b(h.s);if(h.isZero())return new b(h);return u=b.precision,f=b.rounding,b.precision=u+7,b.rounding=1,q(h.sinh(),h.cosh(),b.precision=u,b.rounding=f)};$.inverseCosine=$.acos=function(){var u=this,f=u.constructor,h=u.abs().cmp(1),b=f.precision,M=f.rounding;if(h!==-1)return h===0?u.isNeg()?S(f,b,M):new f(0):new f(NaN);if(u.isZero())return S(f,b+4,M).times(0.5);return f.precision=b+6,f.rounding=1,u=new f(1).minus(u).div(u.plus(1)).sqrt().atan(),f.precision=b,f.rounding=M,u.times(2)};$.inverseHyperbolicCosine=$.acosh=function(){var u,f,h=this,b=h.constructor;if(h.lte(1))return new b(h.eq(1)?0:NaN);if(!h.isFinite())return new b(h);return u=b.precision,f=b.rounding,b.precision=u+Math.max(Math.abs(h.e),h.sd())+4,b.rounding=1,Z=!1,h=h.times(h).minus(1).sqrt().plus(h),Z=!0,b.precision=u,b.rounding=f,h.ln()};$.inverseHyperbolicSine=$.asinh=function(){var u,f,h=this,b=h.constructor;if(!h.isFinite()||h.isZero())return new b(h);return u=b.precision,f=b.rounding,b.precision=u+2*Math.max(Math.abs(h.e),h.sd())+6,b.rounding=1,Z=!1,h=h.times(h).plus(1).sqrt().plus(h),Z=!0,b.precision=u,b.rounding=f,h.ln()};$.inverseHyperbolicTangent=$.atanh=function(){var u,f,h,b,M=this,K=M.constructor;if(!M.isFinite())return new K(NaN);if(M.e>=0)return new K(M.abs().eq(1)?M.s/0:M.isZero()?M:NaN);if(u=K.precision,f=K.rounding,b=M.sd(),Math.max(b,u)<2*-M.e-1)return N(new K(M),u,f,!0);return K.precision=h=b-M.e,M=q(M.plus(1),new K(1).minus(M),h+u,1),K.precision=u+4,K.rounding=1,M=M.ln(),K.precision=u,K.rounding=f,M.times(0.5)};$.inverseSine=$.asin=function(){var u,f,h,b,M=this,K=M.constructor;if(M.isZero())return new K(M);if(f=M.abs().cmp(1),h=K.precision,b=K.rounding,f!==-1){if(f===0)return u=S(K,h+4,b).times(0.5),u.s=M.s,u;return new K(NaN)}return K.precision=h+6,K.rounding=1,M=M.div(new K(1).minus(M.times(M)).sqrt().plus(1)).atan(),K.precision=h,K.rounding=b,M.times(2)};$.inverseTangent=$.atan=function(){var u,f,h,b,M,K,J,T,V,R=this,W=R.constructor,Q=W.precision,Y=W.rounding;if(!R.isFinite()){if(!R.s)return new W(NaN);if(Q+4<=Fu)return J=S(W,Q+4,Y).times(0.5),J.s=R.s,J}else if(R.isZero())return new W(R);else if(R.abs().eq(1)&&Q+4<=Fu)return J=S(W,Q+4,Y).times(0.25),J.s=R.s,J;W.precision=T=Q+10,W.rounding=1,h=Math.min(28,T/H+2|0);for(u=h;u;--u)R=R.div(R.times(R).plus(1).sqrt().plus(1));Z=!1,f=Math.ceil(T/H),b=1,V=R.times(R),J=new W(R),M=R;for(;u!==-1;)if(M=M.times(V),K=J.minus(M.div(b+=2)),M=M.times(V),J=K.plus(M.div(b+=2)),J.d[f]!==void 0)for(u=f;J.d[u]===K.d[u]&&u--;);if(h)J=J.times(2<<h-1);return Z=!0,N(J,W.precision=Q,W.rounding=Y,!0)};$.isFinite=function(){return!!this.d};$.isInteger=$.isInt=function(){return!!this.d&&j(this.e/H)>this.d.length-2};$.isNaN=function(){return!this.s};$.isNegative=$.isNeg=function(){return this.s<0};$.isPositive=$.isPos=function(){return this.s>0};$.isZero=function(){return!!this.d&&this.d[0]===0};$.lessThan=$.lt=function(u){return this.cmp(u)<0};$.lessThanOrEqualTo=$.lte=function(u){return this.cmp(u)<1};$.logarithm=$.log=function(u){var f,h,b,M,K,J,T,V,R=this,W=R.constructor,Q=W.precision,Y=W.rounding,F=5;if(u==null)u=new W(10),f=!0;else{if(u=new W(u),h=u.d,u.s<0||!h||!h[0]||u.eq(1))return new W(NaN);f=u.eq(10)}if(h=R.d,R.s<0||!h||!h[0]||R.eq(1))return new W(h&&!h[0]?-1/0:R.s!=1?NaN:h?0:1/0);if(f)if(h.length>1)K=!0;else{for(M=h[0];M%10===0;)M/=10;K=M!==1}if(Z=!1,T=Q+F,J=L(R,T),b=f?Mu(W,T+10):L(u,T),V=q(J,b,T,1),t(V.d,M=Q,Y))do if(T+=10,J=L(R,T),b=f?Mu(W,T+10):L(u,T),V=q(J,b,T,1),!K){if(+_(V.d).slice(M+1,M+15)+1==100000000000000)V=N(V,Q+1,0);break}while(t(V.d,M+=10,Y));return Z=!0,N(V,Q,Y)};$.minus=$.sub=function(u){var f,h,b,M,K,J,T,V,R,W,Q,Y,F=this,z=F.constructor;if(u=new z(u),!F.d||!u.d){if(!F.s||!u.s)u=new z(NaN);else if(F.d)u.s=-u.s;else u=new z(u.d||F.s!==u.s?F:NaN);return u}if(F.s!=u.s)return u.s=-u.s,F.plus(u);if(R=F.d,Y=u.d,T=z.precision,V=z.rounding,!R[0]||!Y[0]){if(Y[0])u.s=-u.s;else if(R[0])u=new z(F);else return new z(V===3?-0:0);return Z?N(u,T,V):u}if(h=j(u.e/H),W=j(F.e/H),R=R.slice(),K=W-h,K){if(Q=K<0,Q)f=R,K=-K,J=Y.length;else f=Y,h=W,J=R.length;if(b=Math.max(Math.ceil(T/H),J)+2,K>b)K=b,f.length=1;f.reverse();for(b=K;b--;)f.push(0);f.reverse()}else{if(b=R.length,J=Y.length,Q=b<J,Q)J=b;for(b=0;b<J;b++)if(R[b]!=Y[b]){Q=R[b]<Y[b];break}K=0}if(Q)f=R,R=Y,Y=f,u.s=-u.s;J=R.length;for(b=Y.length-J;b>0;--b)R[J++]=0;for(b=Y.length;b>K;){if(R[--b]<Y[b]){for(M=b;M&&R[--M]===0;)R[M]=E-1;--R[M],R[b]+=E}R[b]-=Y[b]}for(;R[--J]===0;)R.pop();for(;R[0]===0;R.shift())--h;if(!R[0])return new z(V===3?-0:0);return u.d=R,u.e=Ju(R,h),Z?N(u,T,V):u};$.modulo=$.mod=function(u){var f,h=this,b=h.constructor;if(u=new b(u),!h.d||!u.s||u.d&&!u.d[0])return new b(NaN);if(!u.d||h.d&&!h.d[0])return N(new b(h),b.precision,b.rounding);if(Z=!1,b.modulo==9)f=q(h,u.abs(),0,3,1),f.s*=u.s;else f=q(h,u,0,b.modulo,1);return f=f.times(u),Z=!0,h.minus(f)};$.naturalExponential=$.exp=function(){return Hu(this)};$.naturalLogarithm=$.ln=function(){return L(this)};$.negated=$.neg=function(){var u=new this.constructor(this);return u.s=-u.s,N(u)};$.plus=$.add=function(u){var f,h,b,M,K,J,T,V,R,W,Q=this,Y=Q.constructor;if(u=new Y(u),!Q.d||!u.d){if(!Q.s||!u.s)u=new Y(NaN);else if(!Q.d)u=new Y(u.d||Q.s===u.s?Q:NaN);return u}if(Q.s!=u.s)return u.s=-u.s,Q.minus(u);if(R=Q.d,W=u.d,T=Y.precision,V=Y.rounding,!R[0]||!W[0]){if(!W[0])u=new Y(Q);return Z?N(u,T,V):u}if(K=j(Q.e/H),b=j(u.e/H),R=R.slice(),M=K-b,M){if(M<0)h=R,M=-M,J=W.length;else h=W,b=K,J=R.length;if(K=Math.ceil(T/H),J=K>J?K+1:J+1,M>J)M=J,h.length=1;h.reverse();for(;M--;)h.push(0);h.reverse()}if(J=R.length,M=W.length,J-M<0)M=J,h=W,W=R,R=h;for(f=0;M;)f=(R[--M]=R[M]+W[M]+f)/E|0,R[M]%=E;if(f)R.unshift(f),++b;for(J=R.length;R[--J]==0;)R.pop();return u.d=R,u.e=Ju(R,b),Z?N(u,T,V):u};$.precision=$.sd=function(u){var f,h=this;if(u!==void 0&&u!==!!u&&u!==1&&u!==0)throw Error(l+u);if(h.d){if(f=Bu(h.d),u&&h.e+1>f)f=h.e+1}else f=NaN;return f};$.round=function(){var u=this,f=u.constructor;return N(new f(u),u.e+1,f.rounding)};$.sine=$.sin=function(){var u,f,h=this,b=h.constructor;if(!h.isFinite())return new b(NaN);if(h.isZero())return new b(h);return u=b.precision,f=b.rounding,b.precision=u+Math.max(h.e,h.sd())+H,b.rounding=1,h=Jf(b,gu(b,h)),b.precision=u,b.rounding=f,N(P>2?h.neg():h,u,f,!0)};$.squareRoot=$.sqrt=function(){var u,f,h,b,M,K,J=this,T=J.d,V=J.e,R=J.s,W=J.constructor;if(R!==1||!T||!T[0])return new W(!R||R<0&&(!T||T[0])?NaN:T?J:1/0);if(Z=!1,R=Math.sqrt(+J),R==0||R==1/0){if(f=_(T),(f.length+V)%2==0)f+="0";if(R=Math.sqrt(f),V=j((V+1)/2)-(V<0||V%2),R==1/0)f="5e"+V;else f=R.toExponential(),f=f.slice(0,f.indexOf("e")+1)+V;b=new W(f)}else b=new W(R.toString());h=(V=W.precision)+3;for(;;)if(K=b,b=K.plus(q(J,K,h+2,1)).times(0.5),_(K.d).slice(0,h)===(f=_(b.d)).slice(0,h))if(f=f.slice(h-3,h+1),f=="9999"||!M&&f=="4999"){if(!M){if(N(K,V+1,0),K.times(K).eq(J)){b=K;break}}h+=4,M=1}else{if(!+f||!+f.slice(1)&&f.charAt(0)=="5")N(b,V+1,1),u=!b.times(b).eq(J);break}return Z=!0,N(b,V,W.rounding,u)};$.tangent=$.tan=function(){var u,f,h=this,b=h.constructor;if(!h.isFinite())return new b(NaN);if(h.isZero())return new b(h);return u=b.precision,f=b.rounding,b.precision=u+10,b.rounding=1,h=h.sin(),h.s=1,h=q(h,new b(1).minus(h.times(h)).sqrt(),u+10,0),b.precision=u,b.rounding=f,N(P==2||P==4?h.neg():h,u,f,!0)};$.times=$.mul=function(u){var f,h,b,M,K,J,T,V,R,W=this,Q=W.constructor,Y=W.d,F=(u=new Q(u)).d;if(u.s*=W.s,!Y||!Y[0]||!F||!F[0])return new Q(!u.s||Y&&!Y[0]&&!F||F&&!F[0]&&!Y?NaN:!Y||!F?u.s/0:u.s*0);if(h=j(W.e/H)+j(u.e/H),V=Y.length,R=F.length,V<R)K=Y,Y=F,F=K,J=V,V=R,R=J;K=[],J=V+R;for(b=J;b--;)K.push(0);for(b=R;--b>=0;){f=0;for(M=V+b;M>b;)T=K[M]+F[b]*Y[M-b-1]+f,K[M--]=T%E|0,f=T/E|0;K[M]=(K[M]+f)%E|0}for(;!K[--J];)K.pop();if(f)++h;else K.shift();return u.d=K,u.e=Ju(K,h),Z?N(u,Q.precision,Q.rounding):u};$.toBinary=function(u,f){return Zu(this,2,u,f)};$.toDecimalPlaces=$.toDP=function(u,f){var h=this,b=h.constructor;if(h=new b(h),u===void 0)return h;if(D(u,0,e),f===void 0)f=b.rounding;else D(f,0,8);return N(h,u+h.e+1,f)};$.toExponential=function(u,f){var h,b=this,M=b.constructor;if(u===void 0)h=g(b,!0);else{if(D(u,0,e),f===void 0)f=M.rounding;else D(f,0,8);b=N(new M(b),u+1,f),h=g(b,!0,u+1)}return b.isNeg()&&!b.isZero()?"-"+h:h};$.toFixed=function(u,f){var h,b,M=this,K=M.constructor;if(u===void 0)h=g(M);else{if(D(u,0,e),f===void 0)f=K.rounding;else D(f,0,8);b=N(new K(M),u+M.e+1,f),h=g(b,!1,u+b.e+1)}return M.isNeg()&&!M.isZero()?"-"+h:h};$.toFraction=function(u){var f,h,b,M,K,J,T,V,R,W,Q,Y,F=this,z=F.d,X=F.constructor;if(!z)return new X(F);if(R=h=new X(1),b=V=new X(0),f=new X(b),K=f.e=Bu(z)-F.e-1,J=K%H,f.d[0]=O(10,J<0?H+J:J),u==null)u=K>0?f:R;else{if(T=new X(u),!T.isInt()||T.lt(R))throw Error(l+T);u=T.gt(f)?K>0?f:R:T}Z=!1,T=new X(_(z)),W=X.precision,X.precision=K=z.length*H*2;for(;;){if(Q=q(T,f,0,1,1),M=h.plus(Q.times(b)),M.cmp(u)==1)break;h=b,b=M,M=R,R=V.plus(Q.times(M)),V=M,M=f,f=T.minus(Q.times(M)),T=M}return M=q(u.minus(h),b,0,1,1),V=V.plus(M.times(R)),h=h.plus(M.times(b)),V.s=R.s=F.s,Y=q(R,b,K,1).minus(F).abs().cmp(q(V,h,K,1).minus(F).abs())<1?[R,b]:[V,h],X.precision=W,Z=!0,Y};$.toHexadecimal=$.toHex=function(u,f){return Zu(this,16,u,f)};$.toNearest=function(u,f){var h=this,b=h.constructor;if(h=new b(h),u==null){if(!h.d)return h;u=new b(1),f=b.rounding}else{if(u=new b(u),f===void 0)f=b.rounding;else D(f,0,8);if(!h.d)return u.s?h:u;if(!u.d){if(u.s)u.s=h.s;return u}}if(u.d[0])Z=!1,h=q(h,u,0,f,1).times(u),Z=!0,N(h);else u.s=h.s,h=u;return h};$.toNumber=function(){return+this};$.toOctal=function(u,f){return Zu(this,8,u,f)};$.toPower=$.pow=function(u){var f,h,b,M,K,J,T=this,V=T.constructor,R=+(u=new V(u));if(!T.d||!u.d||!T.d[0]||!u.d[0])return new V(O(+T,R));if(T=new V(T),T.eq(1))return T;if(b=V.precision,K=V.rounding,u.eq(1))return N(T,b,K);if(f=j(u.e/H),f>=u.d.length-1&&(h=R<0?-R:R)<=hf)return M=wu(V,T,h,b),u.s<0?new V(1).div(M):N(M,b,K);if(J=T.s,J<0){if(f<u.d.length-1)return new V(NaN);if((u.d[f]&1)==0)J=1;if(T.e==0&&T.d[0]==1&&T.d.length==1)return T.s=J,T}if(h=O(+T,R),f=h==0||!isFinite(h)?j(R*(Math.log("0."+_(T.d))/Math.LN10+T.e+1)):new V(h+"").e,f>V.maxE+1||f<V.minE-1)return new V(f>0?J/0:0);if(Z=!1,V.rounding=T.s=1,h=Math.min(12,(f+"").length),M=Hu(u.times(L(T,b+h)),b),M.d){if(M=N(M,b+5,1),t(M.d,b,K)){if(f=b+10,M=N(Hu(u.times(L(T,f+h)),f),f+5,1),+_(M.d).slice(b+1,b+15)+1==100000000000000)M=N(M,b+1,0)}}return M.s=J,Z=!0,V.rounding=K,N(M,b,K)};$.toPrecision=function(u,f){var h,b=this,M=b.constructor;if(u===void 0)h=g(b,b.e<=M.toExpNeg||b.e>=M.toExpPos);else{if(D(u,1,e),f===void 0)f=M.rounding;else D(f,0,8);b=N(new M(b),u,f),h=g(b,u<=b.e||b.e<=M.toExpNeg,u)}return b.isNeg()&&!b.isZero()?"-"+h:h};$.toSignificantDigits=$.toSD=function(u,f){var h=this,b=h.constructor;if(u===void 0)u=b.precision,f=b.rounding;else if(D(u,1,e),f===void 0)f=b.rounding;else D(f,0,8);return N(new b(h),u,f)};$.toString=function(){var u=this,f=u.constructor,h=g(u,u.e<=f.toExpNeg||u.e>=f.toExpPos);return u.isNeg()&&!u.isZero()?"-"+h:h};$.truncated=$.trunc=function(){return N(new this.constructor(this),this.e+1,1)};$.valueOf=$.toJSON=function(){var u=this,f=u.constructor,h=g(u,u.e<=f.toExpNeg||u.e>=f.toExpPos);return u.isNeg()?"-"+h:h};function _(u){var f,h,b,M=u.length-1,K="",J=u[0];if(M>0){K+=J;for(f=1;f<M;f++){if(b=u[f]+"",h=H-b.length,h)K+=k(h);K+=b}if(J=u[f],b=J+"",h=H-b.length,h)K+=k(h)}else if(J===0)return"0";for(;J%10===0;)J/=10;return K+J}function D(u,f,h){if(u!==~~u||u<f||u>h)throw Error(l+u)}function t(u,f,h,b){var M,K,J,T;for(K=u[0];K>=10;K/=10)--f;if(--f<0)f+=H,M=0;else M=Math.ceil((f+1)/H),f%=H;if(K=O(10,H-f),T=u[M]%K|0,b==null)if(f<3){if(f==0)T=T/100|0;else if(f==1)T=T/10|0;J=h<4&&T==99999||h>3&&T==49999||T==50000||T==0}else J=(h<4&&T+1==K||h>3&&T+1==K/2)&&(u[M+1]/K/100|0)==O(10,f-2)-1||(T==K/2||T==0)&&(u[M+1]/K/100|0)==0;else if(f<4){if(f==0)T=T/1000|0;else if(f==1)T=T/100|0;else if(f==2)T=T/10|0;J=(b||h<4)&&T==9999||!b&&h>3&&T==4999}else J=((b||h<4)&&T+1==K||!b&&h>3&&T+1==K/2)&&(u[M+1]/K/1000|0)==O(10,f-3)-1;return J}function uu(u,f,h){var b,M=[0],K,J=0,T=u.length;for(;J<T;){for(K=M.length;K--;)M[K]*=f;M[0]+=$u.indexOf(u.charAt(J++));for(b=0;b<M.length;b++)if(M[b]>h-1){if(M[b+1]===void 0)M[b+1]=0;M[b+1]+=M[b]/h|0,M[b]%=h}}return M.reverse()}function Mf(u,f){var h,b,M;if(f.isZero())return f;if(b=f.d.length,b<32)h=Math.ceil(b/3),M=(1/Tu(4,h)).toString();else h=16,M="2.3283064365386962890625e-10";u.precision+=h,f=C(u,1,f.times(M),new u(1));for(var K=h;K--;){var J=f.times(f);f=J.times(J).minus(J).times(8).plus(1)}return u.precision-=h,f}var q=function(){function u(b,M,K){var J,T=0,V=b.length;for(b=b.slice();V--;)J=b[V]*M+T,b[V]=J%K|0,T=J/K|0;if(T)b.unshift(T);return b}function f(b,M,K,J){var T,V;if(K!=J)V=K>J?1:-1;else for(T=V=0;T<K;T++)if(b[T]!=M[T]){V=b[T]>M[T]?1:-1;break}return V}function h(b,M,K,J){var T=0;for(;K--;)b[K]-=T,T=b[K]<M[K]?1:0,b[K]=T*J+b[K]-M[K];for(;!b[0]&&b.length>1;)b.shift()}return function(b,M,K,J,T,V){var R,W,Q,Y,F,z,X,I,A,B,U,c,i,v,Wu,d,y,Qu,w,r,x=b.constructor,Yu=b.s==M.s?1:-1,G=b.d,n=M.d;if(!G||!G[0]||!n||!n[0])return new x(!b.s||!M.s||(G?n&&G[0]==n[0]:!n)?NaN:G&&G[0]==0||!n?Yu*0:Yu/0);if(V)F=1,W=b.e-M.e;else V=E,F=H,W=j(b.e/F)-j(M.e/F);w=n.length,y=G.length,A=new x(Yu),B=A.d=[];for(Q=0;n[Q]==(G[Q]||0);Q++);if(n[Q]>(G[Q]||0))W--;if(K==null)v=K=x.precision,J=x.rounding;else if(T)v=K+(b.e-M.e)+1;else v=K;if(v<0)B.push(1),z=!0;else{if(v=v/F+2|0,Q=0,w==1){Y=0,n=n[0],v++;for(;(Q<y||Y)&&v--;Q++)Wu=Y*V+(G[Q]||0),B[Q]=Wu/n|0,Y=Wu%n|0;z=Y||Q<y}else{if(Y=V/(n[0]+1)|0,Y>1)n=u(n,Y,V),G=u(G,Y,V),w=n.length,y=G.length;d=w,U=G.slice(0,w),c=U.length;for(;c<w;)U[c++]=0;if(r=n.slice(),r.unshift(0),Qu=n[0],n[1]>=V/2)++Qu;do{if(Y=0,R=f(n,U,w,c),R<0){if(i=U[0],w!=c)i=i*V+(U[1]||0);if(Y=i/Qu|0,Y>1){if(Y>=V)Y=V-1;if(X=u(n,Y,V),I=X.length,c=U.length,R=f(X,U,I,c),R==1)Y--,h(X,w<I?r:n,I,V)}else{if(Y==0)R=Y=1;X=n.slice()}if(I=X.length,I<c)X.unshift(0);if(h(U,X,c,V),R==-1){if(c=U.length,R=f(n,U,w,c),R<1)Y++,h(U,w<c?r:n,c,V)}c=U.length}else if(R===0)Y++,U=[0];if(B[Q++]=Y,R&&U[0])U[c++]=G[d]||0;else U=[G[d]],c=1}while((d++<y||U[0]!==void 0)&&v--);z=U[0]!==void 0}if(!B[0])B.shift()}if(F==1)A.e=W,cu=z;else{for(Q=1,Y=B[0];Y>=10;Y/=10)Q++;A.e=Q+W*F-1,N(A,T?K+A.e+1:K,J,z)}return A}}();function N(u,f,h,b){var M,K,J,T,V,R,W,Q,Y,F=u.constructor;u:if(f!=null){if(Q=u.d,!Q)return u;for(M=1,T=Q[0];T>=10;T/=10)M++;if(K=f-M,K<0)K+=H,J=f,W=Q[Y=0],V=W/O(10,M-J-1)%10|0;else if(Y=Math.ceil((K+1)/H),T=Q.length,Y>=T)if(b){for(;T++<=Y;)Q.push(0);W=V=0,M=1,K%=H,J=K-H+1}else break u;else{W=T=Q[Y];for(M=1;T>=10;T/=10)M++;K%=H,J=K-H+M,V=J<0?0:W/O(10,M-J-1)%10|0}if(b=b||f<0||Q[Y+1]!==void 0||(J<0?W:W%O(10,M-J-1)),R=h<4?(V||b)&&(h==0||h==(u.s<0?3:2)):V>5||V==5&&(h==4||b||h==6&&(K>0?J>0?W/O(10,M-J):0:Q[Y-1])%10&1||h==(u.s<0?8:7)),f<1||!Q[0]){if(Q.length=0,R)f-=u.e+1,Q[0]=O(10,(H-f%H)%H),u.e=-f||0;else Q[0]=u.e=0;return u}if(K==0)Q.length=Y,T=1,Y--;else Q.length=Y+1,T=O(10,H-K),Q[Y]=J>0?(W/O(10,M-J)%O(10,J)|0)*T:0;if(R)for(;;)if(Y==0){for(K=1,J=Q[0];J>=10;J/=10)K++;J=Q[0]+=T;for(T=1;J>=10;J/=10)T++;if(K!=T){if(u.e++,Q[0]==E)Q[0]=1}break}else{if(Q[Y]+=T,Q[Y]!=E)break;Q[Y--]=0,T=1}for(K=Q.length;Q[--K]===0;)Q.pop()}if(Z){if(u.e>F.maxE)u.d=null,u.e=NaN;else if(u.e<F.minE)u.e=0,u.d=[0]}return u}function g(u,f,h){if(!u.isFinite())return Su(u);var b,M=u.e,K=_(u.d),J=K.length;if(f){if(h&&(b=h-J)>0)K=K.charAt(0)+"."+K.slice(1)+k(b);else if(J>1)K=K.charAt(0)+"."+K.slice(1);K=K+(u.e<0?"e":"e+")+u.e}else if(M<0){if(K="0."+k(-M-1)+K,h&&(b=h-J)>0)K+=k(b)}else if(M>=J){if(K+=k(M+1-J),h&&(b=h-M-1)>0)K=K+"."+k(b)}else{if((b=M+1)<J)K=K.slice(0,b)+"."+K.slice(b);if(h&&(b=h-J)>0){if(M+1===J)K+=".";K+=k(b)}}return K}function Ju(u,f){var h=u[0];for(f*=H;h>=10;h/=10)f++;return f}function Mu(u,f,h){if(f>bf){if(Z=!0,h)u.precision=h;throw Error(Gu)}return N(new u(hu),f,1,!0)}function S(u,f,h){if(f>Fu)throw Error(Gu);return N(new u(bu),f,h,!0)}function Bu(u){var f=u.length-1,h=f*H+1;if(f=u[f],f){for(;f%10==0;f/=10)h--;for(f=u[0];f>=10;f/=10)h++}return h}function k(u){var f="";for(;u--;)f+="0";return f}function wu(u,f,h,b){var M,K=new u(1),J=Math.ceil(b/H+4);Z=!1;for(;;){if(h%2){if(K=K.times(f),Ou(K.d,J))M=!0}if(h=j(h/2),h===0){if(h=K.d.length-1,M&&K.d[h]===0)++K.d[h];break}f=f.times(f),Ou(f.d,J)}return Z=!0,K}function Au(u){return u.d[u.d.length-1]&1}function Eu(u,f,h){var b,M,K=new u(f[0]),J=0;for(;++J<f.length;){if(M=new u(f[J]),!M.s){K=M;break}if(b=K.cmp(M),b===h||b===0&&K.s===h)K=M}return K}function Hu(u,f){var h,b,M,K,J,T,V,R=0,W=0,Q=0,Y=u.constructor,F=Y.rounding,z=Y.precision;if(!u.d||!u.d[0]||u.e>17)return new Y(u.d?!u.d[0]?1:u.s<0?0:1/0:u.s?u.s<0?0:u:NaN);if(f==null)Z=!1,V=z;else V=f;T=new Y(0.03125);while(u.e>-2)u=u.times(T),Q+=5;b=Math.log(O(2,Q))/Math.LN10*2+5|0,V+=b,h=K=J=new Y(1),Y.precision=V;for(;;){if(K=N(K.times(u),V,1),h=h.times(++W),T=J.plus(q(K,h,V,1)),_(T.d).slice(0,V)===_(J.d).slice(0,V)){M=Q;while(M--)J=N(J.times(J),V,1);if(f==null)if(R<3&&t(J.d,V-b,F,R))Y.precision=V+=10,h=K=T=new Y(1),W=0,R++;else return N(J,Y.precision=z,F,Z=!0);else return Y.precision=z,J}J=T}}function L(u,f){var h,b,M,K,J,T,V,R,W,Q,Y,F=1,z=10,X=u,I=X.d,A=X.constructor,B=A.rounding,U=A.precision;if(X.s<0||!I||!I[0]||!X.e&&I[0]==1&&I.length==1)return new A(I&&!I[0]?-1/0:X.s!=1?NaN:I?0:X);if(f==null)Z=!1,W=U;else W=f;if(A.precision=W+=z,h=_(I),b=h.charAt(0),Math.abs(K=X.e)<1500000000000000){while(b<7&&b!=1||b==1&&h.charAt(1)>3)X=X.times(u),h=_(X.d),b=h.charAt(0),F++;if(K=X.e,b>1)X=new A("0."+h),K++;else X=new A(b+"."+h.slice(1))}else return R=Mu(A,W+2,U).times(K+""),X=L(new A(b+"."+h.slice(1)),W-z).plus(R),A.precision=U,f==null?N(X,U,B,Z=!0):X;Q=X,V=J=X=q(X.minus(1),X.plus(1),W,1),Y=N(X.times(X),W,1),M=3;for(;;){if(J=N(J.times(Y),W,1),R=V.plus(q(J,new A(M),W,1)),_(R.d).slice(0,W)===_(V.d).slice(0,W)){if(V=V.times(2),K!==0)V=V.plus(Mu(A,W+2,U).times(K+""));if(V=q(V,new A(F),W,1),f==null)if(t(V.d,W-z,B,T))A.precision=W+=z,R=J=X=q(Q.minus(1),Q.plus(1),W,1),Y=N(X.times(X),W,1),M=T=1;else return N(V,A.precision=U,B,Z=!0);else return A.precision=U,V}V=R,M+=2}}function Su(u){return String(u.s*u.s/0)}function fu(u,f){var h,b,M;if((h=f.indexOf("."))>-1)f=f.replace(".","");if((b=f.search(/e/i))>0){if(h<0)h=b;h+=+f.slice(b+1),f=f.substring(0,b)}else if(h<0)h=f.length;for(b=0;f.charCodeAt(b)===48;b++);for(M=f.length;f.charCodeAt(M-1)===48;--M);if(f=f.slice(b,M),f){if(M-=b,u.e=h=h-b-1,u.d=[],b=(h+1)%H,h<0)b+=H;if(b<M){if(b)u.d.push(+f.slice(0,b));for(M-=H;b<M;)u.d.push(+f.slice(b,b+=H));f=f.slice(b),b=H-f.length}else b-=M;for(;b--;)f+="0";if(u.d.push(+f),Z){if(u.e>u.constructor.maxE)u.d=null,u.e=NaN;else if(u.e<u.constructor.minE)u.e=0,u.d=[0]}}else u.e=0,u.d=[0];return u}function Kf(u,f){var h,b,M,K,J,T,V,R,W;if(f.indexOf("_")>-1){if(f=f.replace(/(\d)_(?=\d)/g,"$1"),Du.test(f))return fu(u,f)}else if(f==="Infinity"||f==="NaN"){if(!+f)u.s=NaN;return u.e=NaN,u.d=null,u}if(uf.test(f))h=16,f=f.toLowerCase();else if(xu.test(f))h=2;else if(ff.test(f))h=8;else throw Error(l+f);if(K=f.search(/p/i),K>0)V=+f.slice(K+1),f=f.substring(2,K);else f=f.slice(2);if(K=f.indexOf("."),J=K>=0,b=u.constructor,J)f=f.replace(".",""),T=f.length,K=T-K,M=wu(b,new b(h),K,K*2);R=uu(f,h,E),W=R.length-1;for(K=W;R[K]===0;--K)R.pop();if(K<0)return new b(u.s*0);if(u.e=Ju(R,W),u.d=R,Z=!1,J)u=q(u,M,T*4);if(V)u=u.times(Math.abs(V)<54?O(2,V):m.pow(2,V));return Z=!0,u}function Jf(u,f){var h,b=f.d.length;if(b<3)return f.isZero()?f:C(u,2,f,f);h=1.4*Math.sqrt(b),h=h>16?16:h|0,f=f.times(1/Tu(5,h)),f=C(u,2,f,f);var M,K=new u(5),J=new u(16),T=new u(20);for(;h--;)M=f.times(f),f=f.times(K.plus(M.times(J.times(M).minus(T))));return f}function C(u,f,h,b,M){var K,J,T,V,R=1,W=u.precision,Q=Math.ceil(W/H);Z=!1,V=h.times(h),T=new u(b);for(;;){if(J=q(T.times(V),new u(f++*f++),W,1),T=M?b.plus(J):b.minus(J),b=q(J.times(V),new u(f++*f++),W,1),J=T.plus(b),J.d[Q]!==void 0){for(K=Q;J.d[K]===T.d[K]&&K--;);if(K==-1)break}K=T,T=b,b=J,J=K,R++}return Z=!0,J.d.length=Q+1,J}function Tu(u,f){var h=u;while(--f)h*=u;return h}function gu(u,f){var h,b=f.s<0,M=S(u,u.precision,1),K=M.times(0.5);if(f=f.abs(),f.lte(K))return P=b?4:1,f;if(h=f.divToInt(M),h.isZero())P=b?3:2;else{if(f=f.minus(h.times(M)),f.lte(K))return P=Au(h)?b?2:3:b?4:1,f;P=Au(h)?b?1:4:b?3:2}return f.minus(M).abs()}function Zu(u,f,h,b){var M,K,J,T,V,R,W,Q,Y,F=u.constructor,z=h!==void 0;if(z)if(D(h,1,e),b===void 0)b=F.rounding;else D(b,0,8);else h=F.precision,b=F.rounding;if(!u.isFinite())W=Su(u);else{if(W=g(u),J=W.indexOf("."),z){if(M=2,f==16)h=h*4-3;else if(f==8)h=h*3-2}else M=f;if(J>=0)W=W.replace(".",""),Y=new F(1),Y.e=W.length-J,Y.d=uu(g(Y),10,M),Y.e=Y.d.length;Q=uu(W,10,M),K=V=Q.length;for(;Q[--V]==0;)Q.pop();if(!Q[0])W=z?"0p+0":"0";else{if(J<0)K--;else u=new F(u),u.d=Q,u.e=K,u=q(u,Y,h,b,0,M),Q=u.d,K=u.e,R=cu;if(J=Q[h],T=M/2,R=R||Q[h+1]!==void 0,R=b<4?(J!==void 0||R)&&(b===0||b===(u.s<0?3:2)):J>T||J===T&&(b===4||R||b===6&&Q[h-1]&1||b===(u.s<0?8:7)),Q.length=h,R){for(;++Q[--h]>M-1;)if(Q[h]=0,!h)++K,Q.unshift(1)}for(V=Q.length;!Q[V-1];--V);for(J=0,W="";J<V;J++)W+=$u.charAt(Q[J]);if(z){if(V>1)if(f==16||f==8){J=f==16?4:3;for(--V;V%J;V++)W+="0";Q=uu(W,M,f);for(V=Q.length;!Q[V-1];--V);for(J=1,W="1.";J<V;J++)W+=$u.charAt(Q[J])}else W=W.charAt(0)+"."+W.slice(1);W=W+(K<0?"p":"p+")+K}else if(K<0){for(;++K;)W="0"+W;W="0."+W}else if(++K>V)for(K-=V;K--;)W+="0";else if(K<V)W=W.slice(0,K)+"."+W.slice(K)}W=(f==16?"0x":f==2?"0b":f==8?"0o":"")+W}return u.s<0?"-"+W:W}function Ou(u,f){if(u.length>f)return u.length=f,!0}function Tf(u){return new this(u).abs()}function Rf(u){return new this(u).acos()}function Vf(u){return new this(u).acosh()}function Wf(u,f){return new this(u).plus(f)}function Qf(u){return new this(u).asin()}function Yf(u){return new this(u).asinh()}function $f(u){return new this(u).atan()}function Nf(u){return new this(u).atanh()}function Ff(u,f){u=new this(u),f=new this(f);var h,b=this.precision,M=this.rounding,K=b+4;if(!u.s||!f.s)h=new this(NaN);else if(!u.d&&!f.d)h=S(this,K,1).times(f.s>0?0.25:0.75),h.s=u.s;else if(!f.d||u.isZero())h=f.s<0?S(this,b,M):new this(0),h.s=u.s;else if(!u.d||f.isZero())h=S(this,K,1).times(0.5),h.s=u.s;else if(f.s<0)this.precision=K,this.rounding=1,h=this.atan(q(u,f,K,1)),f=S(this,K,1),this.precision=b,this.rounding=M,h=u.s<0?h.minus(f):h.plus(f);else h=this.atan(q(u,f,K,1));return h}function Hf(u){return new this(u).cbrt()}function Zf(u){return N(u=new this(u),u.e+1,2)}function Xf(u,f,h){return new this(u).clamp(f,h)}function zf(u){if(!u||typeof u!=="object")throw Error(Ku+"Object expected");var f,h,b,M=u.defaults===!0,K=["precision",1,e,"rounding",0,8,"toExpNeg",-o,0,"toExpPos",0,o,"maxE",0,o,"minE",-o,0,"modulo",0,9];for(f=0;f<K.length;f+=3){if(h=K[f],M)this[h]=Nu[h];if((b=u[h])!==void 0)if(j(b)===b&&b>=K[f+1]&&b<=K[f+2])this[h]=b;else throw Error(l+h+": "+b)}if(h="crypto",M)this[h]=Nu[h];if((b=u[h])!==void 0)if(b===!0||b===!1||b===0||b===1)if(b)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[h]=!0;else throw Error(ju);else this[h]=!1;else throw Error(l+h+": "+b);return this}function Uf(u){return new this(u).cos()}function qf(u){return new this(u).cosh()}function vu(u){var f,h,b;function M(K){var J,T,V,R=this;if(!(R instanceof M))return new M(K);if(R.constructor=M,_u(K)){if(R.s=K.s,Z)if(!K.d||K.e>M.maxE)R.e=NaN,R.d=null;else if(K.e<M.minE)R.e=0,R.d=[0];else R.e=K.e,R.d=K.d.slice();else R.e=K.e,R.d=K.d?K.d.slice():K.d;return}if(V=typeof K,V==="number"){if(K===0){R.s=1/K<0?-1:1,R.e=0,R.d=[0];return}if(K<0)K=-K,R.s=-1;else R.s=1;if(K===~~K&&K<1e7){for(J=0,T=K;T>=10;T/=10)J++;if(Z)if(J>M.maxE)R.e=NaN,R.d=null;else if(J<M.minE)R.e=0,R.d=[0];else R.e=J,R.d=[K];else R.e=J,R.d=[K];return}if(K*0!==0){if(!K)R.s=NaN;R.e=NaN,R.d=null;return}return fu(R,K.toString())}if(V==="string"){if((T=K.charCodeAt(0))===45)K=K.slice(1),R.s=-1;else{if(T===43)K=K.slice(1);R.s=1}return Du.test(K)?fu(R,K):Kf(R,K)}if(V==="bigint"){if(K<0)K=-K,R.s=-1;else R.s=1;return fu(R,K.toString())}throw Error(l+K)}if(M.prototype=$,M.ROUND_UP=0,M.ROUND_DOWN=1,M.ROUND_CEIL=2,M.ROUND_FLOOR=3,M.ROUND_HALF_UP=4,M.ROUND_HALF_DOWN=5,M.ROUND_HALF_EVEN=6,M.ROUND_HALF_CEIL=7,M.ROUND_HALF_FLOOR=8,M.EUCLID=9,M.config=M.set=zf,M.clone=vu,M.isDecimal=_u,M.abs=Tf,M.acos=Rf,M.acosh=Vf,M.add=Wf,M.asin=Qf,M.asinh=Yf,M.atan=$f,M.atanh=Nf,M.atan2=Ff,M.cbrt=Hf,M.ceil=Zf,M.clamp=Xf,M.cos=Uf,M.cosh=qf,M.div=nf,M.exp=Af,M.floor=Of,M.hypot=_f,M.ln=cf,M.log=Gf,M.log10=If,M.log2=jf,M.max=Df,M.min=Bf,M.mod=wf,M.mul=Ef,M.pow=Sf,M.random=gf,M.round=vf,M.sign=Pf,M.sin=kf,M.sinh=Lf,M.sqrt=lf,M.sub=ef,M.sum=pf,M.tan=mf,M.tanh=of,M.trunc=Cf,u===void 0)u={};if(u){if(u.defaults!==!0){b=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"];for(f=0;f<b.length;)if(!u.hasOwnProperty(h=b[f++]))u[h]=this[h]}}return M.config(u),M}function nf(u,f){return new this(u).div(f)}function Af(u){return new this(u).exp()}function Of(u){return N(u=new this(u),u.e+1,3)}function _f(){var u,f,h=new this(0);Z=!1;for(u=0;u<arguments.length;)if(f=new this(arguments[u++]),!f.d){if(f.s)return Z=!0,new this(1/0);h=f}else if(h.d)h=h.plus(f.times(f));return Z=!0,h.sqrt()}function _u(u){return u instanceof m||u&&u.toStringTag===Iu||!1}function cf(u){return new this(u).ln()}function Gf(u,f){return new this(u).log(f)}function jf(u){return new this(u).log(2)}function If(u){return new this(u).log(10)}function Df(){return Eu(this,arguments,-1)}function Bf(){return Eu(this,arguments,1)}function wf(u,f){return new this(u).mod(f)}function Ef(u,f){return new this(u).mul(f)}function Sf(u,f){return new this(u).pow(f)}function gf(u){var f,h,b,M,K=0,J=new this(1),T=[];if(u===void 0)u=this.precision;else D(u,1,e);if(b=Math.ceil(u/H),!this.crypto)for(;K<b;)T[K++]=Math.random()*1e7|0;else if(crypto.getRandomValues){f=crypto.getRandomValues(new Uint32Array(b));for(;K<b;)if(M=f[K],M>=4290000000)f[K]=crypto.getRandomValues(new Uint32Array(1))[0];else T[K++]=M%1e7}else if(crypto.randomBytes){f=crypto.randomBytes(b*=4);for(;K<b;)if(M=f[K]+(f[K+1]<<8)+(f[K+2]<<16)+((f[K+3]&127)<<24),M>=2140000000)crypto.randomBytes(4).copy(f,K);else T.push(M%1e7),K+=4;K=b/4}else throw Error(ju);if(b=T[--K],u%=H,b&&u)M=O(10,H-u),T[K]=(b/M|0)*M;for(;T[K]===0;K--)T.pop();if(K<0)h=0,T=[0];else{h=-1;for(;T[0]===0;h-=H)T.shift();for(b=1,M=T[0];M>=10;M/=10)b++;if(b<H)h-=H-b}return J.e=h,J.d=T,J}function vf(u){return N(u=new this(u),u.e+1,this.rounding)}function Pf(u){return u=new this(u),u.d?u.d[0]?u.s:0*u.s:u.s||NaN}function kf(u){return new this(u).sin()}function Lf(u){return new this(u).sinh()}function lf(u){return new this(u).sqrt()}function ef(u,f){return new this(u).sub(f)}function pf(){var u=0,f=arguments,h=new this(f[u]);Z=!1;for(;h.s&&++u<f.length;)h=h.plus(f[u]);return Z=!0,N(h,this.precision,this.rounding)}function mf(u){return new this(u).tan()}function of(u){return new this(u).tanh()}function Cf(u){return N(u=new this(u),u.e+1,1)}$[Symbol.for("nodejs.util.inspect.custom")]=$.toString;$[Symbol.toStringTag]="Decimal";var m=$.constructor=vu(Nu);hu=new m(hu);bu=new m(bu);var p=m;Number.prototype.toNumber=function(){return Number(this)};Number.prototype.toDecimal=function(){return new m(this.toNumber())};Number.prototype.toComma=function(){if(`${this}`.length===0)return"0";return`${new p(Number(this)).toString()}`.toComma()};Number.prototype.mod=function(u){return p.mod(Number(this),u).toNumber()};Number.prototype.div=function(u){return p.div(Number(this),u).toNumber()};Number.prototype.mul=function(u){return p.mul(Number(this),u).toNumber()};Number.prototype.add=function(u){return p.add(Number(this),u).toNumber()};Number.prototype.sub=function(u){return p.sub(Number(this),u).toNumber()};Number.prototype.pow=function(u){return p.pow(Number(this),u).toNumber()};Number.prototype.normalize=function(){return Number(this).pow(2)};Number.prototype.fixNumber=function(u=8){return`${this}`.fixNumber(u)};Number.prototype.fixPoint=function(u=0){return`${this}`.fixPoint(u)};Number.prototype.abs=function(){return this.toDecimal().abs().toNumber()};Number.prototype.isFinite=function(){return this.toDecimal().isFinite()};Number.prototype.isNaN=function(){return this.toDecimal().isNaN()};Number.prototype.isInteger=function(){return this.toDecimal().isInteger()};Number.prototype.addSymbol=function(u=""){return`${Number(this)>0?"+":Number(this)<0?"-":""}${u}${Math.abs(Number(this))}`};Number.prototype.percentOf=function(u){return Number(this)/100*u};Number.prototype.toPercent=function(u){return Number(this)/u*100};Number.prototype.ceil=function(u=0){return Math.ceil10(Number(this),u)};Number.prototype.floor=function(u=0){return Math.floor10(Number(this),u)};Number.prototype.round=function(u=0){return Math.round10(Number(this),u)};Number.prototype.toFileSize=function(){let u=["B","KB","MB","GB","TB","PB"],f=Number(this),h=0;while(f>=1024&&h<u.length-1)f/=1024,h++;return`${f.fixPoint(2)}${u[h]}`};Number.prototype.isBetween=function(u,f){let h=Number(this);return h>=u&&h<=f};var Pu=(u)=>{if(typeof u==="number")return u-u===0;if(typeof u==="string"&&u.trim()!=="")return Number.isFinite(+u);return!1};String.prototype.leadingChars=function(u,f){return(u.toString().repeat(f)+this).substr(-f)};String.prototype.fixPoint=function(u=0){let f=this.split(".");if(f.length===1)f[1]="";else if(f.length>=3)throw Error("Invalid String");let h=f[0];if(f.length===2&&u!==0)h+=`.${f[1].padEnd(u,"0").slice(0,u)}`;return h};String.prototype.fixNumber=function(u=8){let f=this.split("."),h=f[0].indexOf("-")===0,b=Math.abs(Number(f[0])).toNumber().toString().padStart(u,"0");if(f.length===2)b+=`.${f[1]}`;if(h)b=`-${b}`;return b};String.prototype.toComma=function(){if(this.length===0||this==="NaN")return"0";let u=this.split("."),f=u[0].replace(/\B(?=(\d{3})+(?!\d))/g,",");if(u.length===2)f+=`.${u[1]}`;return f};String.prototype.toNumber=function(){return Number(this.replace(/[,\+\s]/gi,""))};String.prototype.addSymbol=function(u=""){return`${this.toNumber()>0?"+":""}${u}${this}`};String.prototype.parseJson=function(){return JSON.parse(`${this}`)};String.prototype.fromJson=String.prototype.parseJson;String.prototype.fromJSON=String.prototype.parseJson;String.prototype.issetWord=function(u){return this.indexOf(u)===-1?!1:!0};String.prototype.getChar=function(u){return this.slice(u,u+1)};String.prototype.isNumber=function(){return Pu(this)};String.prototype.toCamelCase=function(){return this.replace(/[-_ ]+(.)/g,(u,f)=>f.toUpperCase()).replace(/^(.)/,(u,f)=>f.toLowerCase())};String.prototype.toSnakeCase=function(){return this.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[- ]+/g,"_").toLowerCase()};String.prototype.toKebabCase=function(){return this.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_ ]+/g,"-").toLowerCase()};String.prototype.truncate=function(u,f="..."){if(this.length<=u)return this.toString();return this.substring(0,u)+f};String.prototype.capitalize=function(){if(this.length===0)return"";return this.charAt(0).toUpperCase()+this.slice(1).toLowerCase()};var pu=qu(Xu(),1);Array.prototype.where=function(u){return this.filter(u)};Array.prototype.singleOrDefault=function(u,f=null){let h=this.where(u);if(h.length>=2)throw Error("single:sequence contains more than one element.");return h.length?h[0]:f};Array.prototype.single=function(u){let f=this.singleOrDefault(u);if(f===null||f===void 0)throw Error("single:No element satisfies the condition.");return f};Array.prototype.skip=function(u){return this.slice(u,this.length)};Array.prototype.take=function(u){return this.slice(0,u)};Array.prototype.select=function(u){return this.map(u)};Array.prototype.any=function(u){if(u)return this.filter(u).length>0;return this.length>0};Array.prototype.count=function(u){let f=this;if(u)f=this.where(u);return f.length};Array.prototype.union=function(u,f){return this.concat(u.diff(this,f))};Array.prototype.max=function(u){let f=u?this.map(u):this;if(f.length===0)throw Error("max: Sequence contains no elements.");return f.reduce((h,b)=>h>b?h:b)};Array.prototype.min=function(u){let f=u?this.map(u):this;if(f.length===0)throw Error("min: Sequence contains no elements.");return f.reduce((h,b)=>h<b?h:b)};Array.prototype.sum=function(u){return(u?this.map(u):this).reduce((h,b)=>h+b,0)};Array.prototype.firstOrDefault=function(u,f=null){if(u==null)u=()=>!0;let h=this.where(u);return h==null||h.length===0?f:h[0]};Array.prototype.first=function(u){if(u==null)u=()=>!0;let f=this.firstOrDefault(u);if(f===null||f===void 0)throw Error("first:No element satisfies the condition.");return f};Array.prototype.lastOrDefault=function(u,f=null){if(u==null)u=()=>!0;let h=this.where(u);return h==null||h.length===0?f:h[h.length-1]};Array.prototype.last=function(u){if(u==null)u=()=>!0;let f=this.lastOrDefault(u);if(f===null||f===void 0)throw Error("last:No element satisfies the condition.");return f};Array.prototype.diff=function(u,f){if(f){let h=u.map(f);return this.filter((b)=>!h.includes(f(b)))}return this.filter((h)=>!u.includes(h))};Array.prototype.inter=function(u,f){if(f){let h=u.map(f);return this.filter((b)=>h.includes(f(b)))}return this.where((h)=>u.includes(h))};if(!Array.prototype._deepCopy)Array.prototype._deepCopy=function(){return pu.default(this)};if(!Array.prototype._toJson)Array.prototype._toJson=function(){return JSON.stringify(this)};Array.prototype.groupBy=function(u){return this.reduce((f,h,b)=>{let M=u(h,b);if(!f[M])f[M]=[];return f[M].push(h),f},{})};Array.prototype.distinct=function(u){if(u){let f=new Set;return this.filter((h)=>{let b=u(h);if(f.has(b))return!1;return f.add(b),!0})}return[...new Set(this)]};Array.prototype.shuffle=function(){let u=[...this];for(let f=u.length-1;f>0;f--){let h=Math.floor(Math.random()*(f+1));[u[f],u[h]]=[u[h],u[f]]}return u};Array.prototype.chunk=function(u){let f=[];for(let h=0;h<this.length;h+=u)f.push(this.slice(h,h+u));return f};var mu=qu(Xu(),1);if(!Object.prototype._deepCopy)Object.prototype._deepCopy=function(){return mu.default(this)};if(!Object.prototype._toJson)Object.prototype._toJson=function(){return JSON.stringify(this)};Object.prototype._isEmpty=function(){return Object.keys(this).length===0};Object.prototype._pick=function(u){let f={};for(let h of u)if(h in this)f[h]=this[h];return f};Object.prototype._omit=function(u){let f={...this};for(let h of u)delete f[h];return f};Object.prototype._merge=function(u){return Object.assign(this,u)};Object.prototype._keys=function(){return Object.keys(this)};Object.prototype._values=function(){return Object.values(this)};Object.prototype._entries=function(){return Object.entries(this)};Object.prototype._forEach=function(u){Object.entries(this).forEach(([f,h],b)=>{u(f,h,b)})};Promise.delay=function(u){return new Promise((f)=>setTimeout(f,u))};Promise.prototype.timeout=function(u,f="Operation timed out"){return Promise.race([this,new Promise((h,b)=>setTimeout(()=>b(Error(f)),u))])};var af={log:console.log.bind(null),info:console.log.bind(null),warn:console.log.bind(null),error:console.log.bind(null)};function sf(){let u=new Date;return`${u.getHours().fixNumber(2)}:${u.getMinutes().fixNumber(2)}:${u.getSeconds().fixNumber(2)}:${`${u.getMilliseconds()}`.fixNumber(3)}`}function Ru(u,f,...h){let b=["\x1B[2m"];if(u==="info")b[0]="\x1B[34m";else if(u==="warn")b[0]="\x1B[33m";else if(u==="error")b[0]="\x1B[31m";af[u](`${b[0]}[${sf()}]\x1B[0m\x1B[37m`,f,...h)}console.useTheme=df;function df(u={development:{log:!0,info:!0,warn:!0,error:!0},production:{log:!1,info:!1,warn:!0,error:!0}}){console.log=(f,...h)=>{if(u.development.log)Ru("log",f,...h)},console.info=(f,...h)=>{if(u.development.info)Ru("info",f,...h)},console.warn=(f,...h)=>{if(u.development.warn)Ru("warn",f,...h)},console.error=(f,...h)=>{if(u.development.error)Ru("error",f,...h)},globalThis.console=console}function ou(u,f){let h=0,b=u.length-1;while(h<=b){let M=Math.floor((h+b)/2);if(u[M]===f)return M;else if(u[M]<f)h=M+1;else b=M-1}return-1}function Cu(u,f){let h=u.sort((b,M)=>Number(b)-Number(M));return ou(h,f)}var yu=ou;function Vu(u){let f=Math[u];return(h,b=0)=>{if(b=b==null?0:b>=0?Math.min(b,292):Math.max(b,-292),b){let M=`${h}e`.split("e");return M=`${f(`${M[0]}e${+M[1]+b}`.toNumber())}e`.split("e"),+`${M[0]}e${+M[1]-b}`}return f(h)}}function s(u,f){if(f===0)return u;return s(f,u%f)}function tu(u){return u.reduce(s)}function zu(u,f){return u*f/s(u,f)}function au(u){return u.reduce(zu)}if(!Math.round10)Math.round10=Vu("round");if(!Math.floor10)Math.floor10=Vu("floor");if(!Math.ceil10)Math.ceil10=Vu("ceil");if(!Math.gcd)Math.gcd=s;if(!Math.gcds)Math.gcds=tu;if(!Math.lcm)Math.lcm=zu;if(!Math.lcms)Math.lcms=au;if(!Math.binarySearch)Math.binarySearch=yu;if(!Math.binarySearchWithSort)Math.binarySearchWithSort=Cu;if(!Math.randomRange)Math.randomRange=(u,f,h=0)=>Math.floor10(Math.random()*(f-u+1)+u,h);if(!Math.clamp)Math.clamp=(u,f,h)=>Math.min(Math.max(u,f),h);globalThis.Math=Math;
|
|
@@ -7,16 +7,20 @@ interface Array<T> {
|
|
|
7
7
|
select<R>(predicate: (element: T, index: number) => R): R[];
|
|
8
8
|
any(predicate?: (element: T, index: number) => boolean): boolean;
|
|
9
9
|
count(predicate?: (element: T, index: number) => boolean): number;
|
|
10
|
-
union(other: T[]): T[];
|
|
11
|
-
max(
|
|
12
|
-
min(
|
|
13
|
-
sum(
|
|
10
|
+
union(other: T[], selector?: (element: T) => any): T[];
|
|
11
|
+
max<R = T>(selector?: (element: T, index: number) => R): R;
|
|
12
|
+
min<R = T>(selector?: (element: T, index: number) => R): R;
|
|
13
|
+
sum(selector?: (element: T, index: number) => number): number;
|
|
14
14
|
first(predicate?: (element: T, index: number) => boolean): T;
|
|
15
15
|
firstOrDefault<D = T>(predicate?: (element: T, index: number) => boolean, defaultValue?: D): T | D;
|
|
16
16
|
last(predicate?: (element: T, index: number) => boolean): T;
|
|
17
17
|
lastOrDefault<D = T>(predicate?: (element: T, index: number) => boolean, defaultValue?: D): T | D;
|
|
18
|
-
diff(other: T[]): T[];
|
|
19
|
-
inter(other: T[]): T[];
|
|
18
|
+
diff(other: T[], selector?: (element: T) => any): T[];
|
|
19
|
+
inter(other: T[], selector?: (element: T) => any): T[];
|
|
20
|
+
groupBy<K extends string | number>(keySelector: (element: T, index: number) => K): Record<K, T[]>;
|
|
21
|
+
distinct(selector?: (element: T) => any): T[];
|
|
22
|
+
shuffle(): T[];
|
|
23
|
+
chunk(size: number): T[][];
|
|
20
24
|
_deepCopy<R = T[]>(): R;
|
|
21
25
|
_toJson(): string;
|
|
22
26
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
interface Object {
|
|
3
|
+
_isEmpty(): boolean;
|
|
4
|
+
_pick<K extends keyof this>(keys: K[]): Pick<this, K>;
|
|
5
|
+
_omit<K extends keyof this>(keys: K[]): Omit<this, K>;
|
|
6
|
+
_deepCopy<T = any>(): T;
|
|
7
|
+
_toJson(): string;
|
|
8
|
+
_merge(other: object): this;
|
|
9
|
+
_keys(): string[];
|
|
10
|
+
_values(): any[];
|
|
11
|
+
_entries(): [string, any][];
|
|
12
|
+
_forEach(callback: (key: string, value: any, index: number) => void): void;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -18,7 +18,14 @@ interface String {
|
|
|
18
18
|
toNumber(): number;
|
|
19
19
|
addSymbol(space?: string): string;
|
|
20
20
|
parseJson<T>(): T;
|
|
21
|
+
fromJson<T>(): T;
|
|
22
|
+
fromJSON<T>(): T;
|
|
21
23
|
issetWord(word: string): boolean;
|
|
22
24
|
getChar(index: number): string;
|
|
23
25
|
isNumber(): boolean;
|
|
26
|
+
toCamelCase(): string;
|
|
27
|
+
toSnakeCase(): string;
|
|
28
|
+
toKebabCase(): string;
|
|
29
|
+
truncate(length: number, suffix?: string): string;
|
|
30
|
+
capitalize(): string;
|
|
24
31
|
}
|