prototype-helper 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
- {
2
- "editor.quickSuggestions": {
3
- "other": true,
4
- "comments": true,
5
- "strings": true
6
- }
7
- }
1
+ {
2
+ "editor.quickSuggestions": {
3
+ "other": true,
4
+ "comments": true,
5
+ "strings": true
6
+ }
7
+ }
package/biome.json CHANGED
@@ -1,43 +1,43 @@
1
- {
2
- "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
3
- "organizeImports": {
4
- "enabled": true
5
- },
6
- "linter": {
7
- "enabled": true,
8
- "rules": {
9
- "recommended": true,
10
- "complexity": {
11
- "noForEach": "off",
12
- "noUselessTernary": "off"
13
- },
14
- "suspicious": {
15
- "noExplicitAny": "off",
16
- "noApproximativeNumericConstant": "off"
17
- },
18
- "style": {
19
- "noNonNullAssertion": "off",
20
- "useConst": "warn",
21
- "noUnusedTemplateLiteral": "off",
22
- "noUselessElse": "off",
23
- "noParameterAssign": "off"
24
- }
25
- }
26
- },
27
- "formatter": {
28
- "enabled": true,
29
- "indentStyle": "space",
30
- "indentWidth": 2,
31
- "lineWidth": 100
32
- },
33
- "javascript": {
34
- "formatter": {
35
- "quoteStyle": "double",
36
- "semicolons": "always",
37
- "trailingCommas": "es5"
38
- }
39
- },
40
- "files": {
41
- "ignore": ["node_modules", "dist"]
42
- }
43
- }
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
3
+ "organizeImports": {
4
+ "enabled": true
5
+ },
6
+ "linter": {
7
+ "enabled": true,
8
+ "rules": {
9
+ "recommended": true,
10
+ "complexity": {
11
+ "noForEach": "off",
12
+ "noUselessTernary": "off"
13
+ },
14
+ "suspicious": {
15
+ "noExplicitAny": "off",
16
+ "noApproximativeNumericConstant": "off"
17
+ },
18
+ "style": {
19
+ "noNonNullAssertion": "off",
20
+ "useConst": "warn",
21
+ "noUnusedTemplateLiteral": "off",
22
+ "noUselessElse": "off",
23
+ "noParameterAssign": "off"
24
+ }
25
+ }
26
+ },
27
+ "formatter": {
28
+ "enabled": true,
29
+ "indentStyle": "space",
30
+ "indentWidth": 2,
31
+ "lineWidth": 100
32
+ },
33
+ "javascript": {
34
+ "formatter": {
35
+ "quoteStyle": "double",
36
+ "semicolons": "always",
37
+ "trailingCommas": "es5"
38
+ }
39
+ },
40
+ "files": {
41
+ "ignore": ["node_modules", "dist"]
42
+ }
43
+ }
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  // @bun
2
- var e0=Object.create;var{getPrototypeOf:t0,defineProperty:G0,getOwnPropertyNames:i0}=Object;var x0=Object.prototype.hasOwnProperty;var T0=(M,J,K)=>{K=M!=null?e0(t0(M)):{};let W=J||!M||!M.__esModule?G0(K,"default",{value:M,enumerable:!0}):K;for(let Q of i0(M))if(!x0.call(W,Q))G0(W,Q,{get:()=>M[Q],enumerable:!0});return W};var I0=(M,J)=>()=>(J||M((J={exports:{}}).exports,J),J.exports);var m0=I0((C0)=>{Object.defineProperty(C0,"__esModule",{value:!0});C0.default=d;C0.formatKeys=c0;function d(M,J){var K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new Map,W=K.get(M);if(W)return W;if(Array.isArray(M)){var Q=[];K.set(M,Q);for(var Y=0;Y<M.length;Y++)Q[Y]=d(M[Y],J,K);return Q}if(M instanceof Date)return new Date(M.valueOf());if(!(M instanceof Object))return M;var $={};K.set(M,$);var F=Object.keys(M);for(var N=0;N<F.length;N++){var H=J?J(F[N]):F[N];$[H]=d(M[F[N]],J,K)}return $}function c0(M){return function(J){return d(J,M)}}d.formatKeys=c0});var f0=I0((WJ,l0)=>{l0.exports=m0().default});/*!
2
+ var e0=Object.create;var{getPrototypeOf:t0,defineProperty:G0,getOwnPropertyNames:i0}=Object;var x0=Object.prototype.hasOwnProperty;var T0=(M,J,K)=>{K=M!=null?e0(t0(M)):{};let W=J||!M||!M.__esModule?G0(K,"default",{value:M,enumerable:!0}):K;for(let Q of i0(M))if(!x0.call(W,Q))G0(W,Q,{get:()=>M[Q],enumerable:!0});return W};var I0=(M,J)=>()=>(J||M((J={exports:{}}).exports,J),J.exports);var m0=I0((C0)=>{Object.defineProperty(C0,"__esModule",{value:!0});C0.default=d;C0.formatKeys=c0;function d(M,J){var K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new Map,W=K.get(M);if(W)return W;if(Array.isArray(M)){var Q=[];K.set(M,Q);for(var Y=0;Y<M.length;Y++)Q[Y]=d(M[Y],J,K);return Q}if(M instanceof Date)return new Date(M.valueOf());if(!(M instanceof Object))return M;var $={};K.set(M,$);var F=Object.keys(M);for(var N=0;N<F.length;N++){var H=J?J(F[N]):F[N];$[H]=d(M[F[N]],J,K)}return $}function c0(M){return function(J){return d(J,M)}}d.formatKeys=c0});var q0=I0((WJ,l0)=>{l0.exports=m0().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 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,f=!0,Y0="[DecimalError] ",m=Y0+"Invalid argument: ",O0=Y0+"Precision limit exceeded",B0=Y0+"crypto unavailable",E0="[object Decimal]",B=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,z=7,KM=9007199254740991,WM=K0.length-1,u0=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())+z,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(f=!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=B((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 f=!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-B(this.e/z))*z,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,f=!1,K=K.times(K).minus(1).sqrt().plus(K),f=!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,f=!1,K=K.times(K).plus(1).sqrt().plus(K),f=!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<=u0)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<=u0)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/z+2|0);for(M=K;M;--M)H=H.div(H.times(H).plus(1).sqrt().plus(1));f=!1,J=Math.ceil(F/z),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 f=!0,U($,V.precision=Z,V.rounding=R,!0)};X.isFinite=function(){return!!this.d};X.isInteger=X.isInt=function(){return!!this.d&&B(this.e/z)>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,u=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(f=!1,F=Z+u,$=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 f=!0,U(N,Z,R)};X.minus=X.sub=function(M){var J,K,W,Q,Y,$,F,N,H,V,Z,R,u=this,b=u.constructor;if(M=new b(M),!u.d||!M.d){if(!u.s||!M.s)M=new b(NaN);else if(u.d)M.s=-M.s;else M=new b(M.d||u.s!==M.s?u:NaN);return M}if(u.s!=M.s)return M.s=-M.s,u.plus(M);if(H=u.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(u);else return new b(N===3?-0:0);return f?U(M,F,N):M}if(K=B(M.e/z),V=B(u.e/z),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/z),$)+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),f?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(f=!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),f=!0,K.minus(J)};X.naturalExponential=X.exp=function(){return z0(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 f?U(M,F,N):M}if(Y=B(Z.e/z),W=B(M.e/z),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/z),$=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),f?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())+z,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(f=!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=B((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 f=!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,u=(M=new Z(M)).d;if(M.s*=V.s,!R||!R[0]||!u||!u[0])return new Z(!M.s||R&&!R[0]&&!u||u&&!u[0]&&!R?NaN:!R||!u?M.s/0:M.s*0);if(K=B(V.e/z)+B(M.e/z),N=R.length,H=u.length,N<H)Y=R,R=u,u=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]+u[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),f?U(M,Z.precision,Z.rounding):M};X.toBinary=function(M,J){return f0(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,u=this,b=u.d,q=u.constructor;if(!b)return new q(u);if(H=K=new q(1),W=N=new q(0),J=new q(W),Y=J.e=w0(b)-u.e-1,$=Y%z,J.d[0]=j(10,$<0?z+$:$),M==null)M=Y>0?J:H;else{if(F=new q(M),!F.isInt()||F.lt(H))throw Error(m+F);M=F.gt(J)?Y>0?J:H:F}f=!1,F=new q(_(b)),V=q.precision,q.precision=Y=b.length*z*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=u.s,R=T(H,W,Y,1).minus(u).abs().cmp(T(N,K,Y,1).minus(u).abs())<1?[H,W]:[N,K],q.precision=V,f=!0,R};X.toHexadecimal=X.toHex=function(M,J){return f0(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])f=!1,K=T(K,M,0,J,1).times(M),f=!0,U(K);else M.s=K.s,K=M;return K};X.toNumber=function(){return+this};X.toOctal=function(M,J){return f0(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=B(M.e/z),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)?B(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(f=!1,N.rounding=F.s=1,K=Math.min(12,(J+"").length),Q=z0(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(z0(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=$,f=!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=z-W.length,K)Y+=c(K);Y+=W}if($=M[J],W=$+"",K=z-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+=z,Q=0;else Q=Math.ceil((J+1)/z),J%=z;if(Y=j(10,z-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,u,b,q,E,h,w,G,A,t,L,V0,i,a,Z0,S,x,r=W.constructor,R0=W.s==Q.s?1:-1,O=W.d,I=Q.d;if(!O||!O[0]||!I||!I[0])return new r(!W.s||!Q.s||(O?I&&O[0]==I[0]:!I)?NaN:O&&O[0]==0||!I?R0*0:R0/0);if(N)u=1,V=W.e-Q.e;else N=v,u=z,V=B(W.e/u)-B(Q.e/u);S=I.length,a=O.length,h=new r(R0),w=h.d=[];for(Z=0;I[Z]==(O[Z]||0);Z++);if(I[Z]>(O[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/u+2|0,Z=0,S==1){R=0,I=I[0],L++;for(;(Z<a||R)&&L--;Z++)V0=R*N+(O[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),O=M(O,R,N),S=I.length,a=O.length;i=S,G=O.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(q=M(I,R,N),E=q.length,A=G.length,H=J(q,G,E,A),H==1)R--,K(q,S<E?x:I,E,N)}else{if(R==0)H=R=1;q=I.slice()}if(E=q.length,E<A)q.unshift(0);if(K(G,q,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++]=O[i]||0;else G=[O[i]],A=1}while((i++<a||G[0]!==void 0)&&L--);b=G[0]!==void 0}if(!w[0])w.shift()}if(u==1)h.e=V,A0=b;else{for(Z=1,R=w[0];R>=10;R/=10)Z++;h.e=Z+V*u-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,u=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+=z,$=J,V=Z[R=0],N=V/j(10,Q-$-1)%10|0;else if(R=Math.ceil((Y+1)/z),F=Z.length,R>=F)if(W){for(;F++<=R;)Z.push(0);V=N=0,Q=1,Y%=z,$=Y-z+1}else break M;else{V=F=Z[R];for(Q=1;F>=10;F/=10)Q++;Y%=z,$=Y-z+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,(z-J%z)%z),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,z-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(f){if(M.e>u.maxE)M.d=null,M.e=NaN;else if(M.e<u.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*=z;K>=10;K/=10)J++;return J}function Q0(M,J,K){if(J>WM){if(f=!0,K)M.precision=K;throw Error(O0)}return U(new M(K0),J,1,!0)}function P(M,J,K){if(J>u0)throw Error(O0);return U(new M(W0),J,K,!0)}function w0(M){var J=M.length-1,K=J*z+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/z+4);f=!1;for(;;){if(K%2){if(Y=Y.times(J),j0(Y.d,$))Q=!0}if(K=B(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 f=!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 z0(M,J){var K,W,Q,Y,$,F,N,H=0,V=0,Z=0,R=M.constructor,u=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)f=!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,u,H))R.precision=N+=10,K=Y=F=new R(1),V=0,H++;else return U($,R.precision=b,u,f=!0);else return R.precision=b,$}$=F}}function C(M,J){var K,W,Q,Y,$,F,N,H,V,Z,R,u=1,b=10,q=M,E=q.d,h=q.constructor,w=h.rounding,G=h.precision;if(q.s<0||!E||!E[0]||!q.e&&E[0]==1&&E.length==1)return new h(E&&!E[0]?-1/0:q.s!=1?NaN:E?0:q);if(J==null)f=!1,V=G;else V=J;if(h.precision=V+=b,K=_(E),W=K.charAt(0),Math.abs(Y=q.e)<1500000000000000){while(W<7&&W!=1||W==1&&K.charAt(1)>3)q=q.times(M),K=_(q.d),W=K.charAt(0),u++;if(Y=q.e,W>1)q=new h("0."+K),Y++;else q=new h(W+"."+K.slice(1))}else return H=Q0(h,V+2,G).times(Y+""),q=C(new h(W+"."+K.slice(1)),V-b).plus(H),h.precision=G,J==null?U(q,G,w,f=!0):q;Z=q,N=$=q=T(q.minus(1),q.plus(1),V,1),R=U(q.times(q),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(u),V,1),J==null)if(s(N.d,V-b,w,F))h.precision=V+=b,H=$=q=T(Z.minus(1),Z.plus(1),V,1),R=U(q.times(q),V,1),Q=F=1;else return U(N,h.precision=G,w,f=!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)%z,K<0)W+=z;if(W<Q){if(W)M.d.push(+J.slice(0,W));for(Q-=z;W<Q;)M.d.push(+J.slice(W,W+=z));J=J.slice(W),W=z-J.length}else W-=Q;for(;W--;)J+="0";if(M.d.push(+J),f){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,f=!1,$)M=T(M,Q,F*4);if(N)M=M.times(Math.abs(N)<54?j(2,N):y.pow(2,N));return f=!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/z);f=!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 f=!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 f0(M,J,K,W){var Q,Y,$,F,N,H,V,Z,R,u=M.constructor,b=K!==void 0;if(b)if(D(K,1,l),W===void 0)W=u.rounding;else D(W,0,8);else K=u.precision,W=u.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 u(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 u(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 uM(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 zM(M){return new this(M).cbrt()}function fM(M){return U(M=new this(M),M.e+1,2)}function qM(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(B(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(B0);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,f)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(f)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=uM,Q.cbrt=zM,Q.ceil=fM,Q.clamp=qM,Q.cos=GM,Q.cosh=TM,Q.div=IM,Q.exp=hM,Q.floor=jM,Q.hypot=_M,Q.ln=AM,Q.log=OM,Q.log10=EM,Q.log2=BM,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);f=!1;for(M=0;M<arguments.length;)if(J=new this(arguments[M++]),!J.d){if(J.s)return f=!0,new this(1/0);K=J}else if(K.d)K=K.plus(J.times(J));return f=!0,K.sqrt()}function _0(M){return M instanceof y||M&&M.toStringTag===E0||!1}function AM(M){return new this(M).ln()}function OM(M,J){return new this(M).log(J)}function BM(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/z),!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(B0);if(W=F[--Y],M%=z,W&&M)Q=j(10,z-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-=z)F.shift();for(W=1,Q=F[0];Q>=10;Q/=10)W++;if(W<z)K-=z-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]);f=!1;for(;K.s&&++M<J.length;)K=K.plus(J[M]);return f=!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(q0(),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)Object.defineProperty(Array.prototype,"_deepCopy",{value:function(){return p0.default(this)},enumerable:!1,writable:!0,configurable:!0});if(!Array.prototype._toJson)Object.defineProperty(Array.prototype,"_toJson",{value:function(){return JSON.stringify(this)},enumerable:!1,writable:!0,configurable:!0});var y0=T0(q0(),1);if(!Object.prototype._deepCopy)Object.defineProperty(Object.prototype,"_deepCopy",{value:function(){return y0.default(this)},enumerable:!1,writable:!0,configurable:!0});if(!Object.prototype._toJson)Object.defineProperty(Object.prototype,"_toJson",{value:function(){return JSON.stringify(this)},enumerable:!1,writable:!0,configurable:!0});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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prototype-helper",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "private": false,
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
package/tsconfig.json CHANGED
@@ -1,33 +1,33 @@
1
- {
2
- "compilerOptions": {
3
- "baseUrl": ".",
4
- "outDir": "./dist",
5
- "target": "ES2016",
6
- "module": "commonjs",
7
- "moduleResolution": "Node",
8
- "sourceMap": true,
9
- "lib": ["es2016"],
10
- "paths": {
11
- "@/*": ["/src/*"],
12
- "~/*": ["/src/*"]
13
- },
14
- "noImplicitAny": false,
15
- "esModuleInterop": true,
16
- "experimentalDecorators": true,
17
- "emitDecoratorMetadata": true,
18
- "strict": true,
19
- "allowSyntheticDefaultImports": true,
20
- "resolveJsonModule": true,
21
- "declaration": true,
22
- "skipLibCheck": true,
23
- "types": ["bun-types", "bun-types/test-globals"]
24
- },
25
- "include": ["./src/**/*.ts"],
26
- "exclude": ["node_modules", "**/*.spec.ts"],
27
- "typeRoots": ["./node_modules/@types"],
28
- "repository": {
29
- "type": "git",
30
- "url": "git+https://github.com/k22pr/ts-proto"
31
- },
32
- "license": "MIT"
33
- }
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": ".",
4
+ "outDir": "./dist",
5
+ "target": "ES2016",
6
+ "module": "commonjs",
7
+ "moduleResolution": "Node",
8
+ "sourceMap": true,
9
+ "lib": ["es2016"],
10
+ "paths": {
11
+ "@/*": ["/src/*"],
12
+ "~/*": ["/src/*"]
13
+ },
14
+ "noImplicitAny": false,
15
+ "esModuleInterop": true,
16
+ "experimentalDecorators": true,
17
+ "emitDecoratorMetadata": true,
18
+ "strict": true,
19
+ "allowSyntheticDefaultImports": true,
20
+ "resolveJsonModule": true,
21
+ "declaration": true,
22
+ "skipLibCheck": true,
23
+ "types": ["bun-types", "bun-types/test-globals"]
24
+ },
25
+ "include": ["./src/**/*.ts"],
26
+ "exclude": ["node_modules", "**/*.spec.ts"],
27
+ "typeRoots": ["./node_modules/@types"],
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "git+https://github.com/k22pr/ts-proto"
31
+ },
32
+ "license": "MIT"
33
+ }