@emasoft/svg-matrix 1.3.14 → 1.3.15
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/dist/svg-matrix.global.min.js +2 -2
- package/dist/svg-matrix.min.js +2 -2
- package/dist/svg-toolbox.global.min.js +2 -2
- package/dist/svg-toolbox.min.js +2 -2
- package/dist/svgm.min.js +2 -2
- package/dist/version.json +7 -7
- package/package.json +1 -1
- package/src/index.js +2 -2
- package/src/svg-matrix-lib.js +2 -2
- package/src/svg-toolbox-lib.js +2 -2
- package/src/svgm-lib.js +2 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/*! svg-matrix v1.3.
|
|
1
|
+
/*! svg-matrix v1.3.15 | MIT License | https://github.com/Emasoft/svg-matrix */
|
|
2
2
|
(()=>{var{defineProperty:EJ,getOwnPropertyNames:VK,getOwnPropertyDescriptor:GK}=Object,zK=Object.prototype.hasOwnProperty;var DJ=new WeakMap,IK=(J)=>{var K=DJ.get(J),$;if(K)return K;if(K=EJ({},"__esModule",{value:!0}),J&&typeof J==="object"||typeof J==="function")VK(J).map((W)=>!zK.call(K,W)&&EJ(K,W,{get:()=>J[W],enumerable:!($=GK(J,W))||$.enumerable}));return DJ.set(J,K),K};var AJ=(J,K)=>{for(var $ in K)EJ(J,$,{get:K[$],enumerable:!0,configurable:!0,set:(W)=>K[$]=()=>W})};var B$={};AJ(B$,{translate3D:()=>YK,translate2D:()=>KK,skew2D:()=>QK,scale3D:()=>UK,scale2D:()=>WK,rotateZ:()=>XK,rotateY:()=>ZK,rotateX:()=>FK,rotate2D:()=>$K,default:()=>O$,applyTransform3D:()=>qK,applyTransform2D:()=>HK,Vector:()=>E,VERSION:()=>JK,Transforms3D:()=>_J,Transforms2D:()=>IJ,Matrix:()=>N,Decimal:()=>Z});/*!
|
|
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 i=9000000000000000,x=1e9,wJ="0123456789abcdef",XJ="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",UJ="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",SJ={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-i,maxE:i,crypto:!1},lJ,n,O=!0,RJ="[DecimalError] ",o=RJ+"Invalid argument: ",dJ=RJ+"Precision limit exceeded",nJ=RJ+"crypto unavailable",mJ="[object Decimal]",C=Math.floor,f=Math.pow,NK=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,_K=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,TK=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,sJ=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,c=1e7,_=7,BK=9007199254740991,OK=XJ.length-1,MJ=UJ.length-1,G={toStringTag:mJ};G.absoluteValue=G.abs=function(){var J=new this.constructor(this);if(J.s<0)J.s=1;return I(J)};G.ceil=function(){return I(new this.constructor(this),this.e+1,2)};G.clampedTo=G.clamp=function(J,K){var $,W=this,Q=W.constructor;if(J=new Q(J),K=new Q(K),!J.s||!K.s)return new Q(NaN);if(J.gt(K))throw Error(o+K);return $=W.cmp(J),$<0?J:W.cmp(K)>0?K:new Q(W)};G.comparedTo=G.cmp=function(J){var K,$,W,Q,H=this,Y=H.d,F=(J=new H.constructor(J)).d,U=H.s,X=J.s;if(!Y||!F)return!U||!X?NaN:U!==X?U:Y===F?0:!Y^U<0?1:-1;if(!Y[0]||!F[0])return Y[0]?U:F[0]?-X:0;if(U!==X)return U;if(H.e!==J.e)return H.e>J.e^U<0?1:-1;W=Y.length,Q=F.length;for(K=0,$=W<Q?W:Q;K<$;++K)if(Y[K]!==F[K])return Y[K]>F[K]^U<0?1:-1;return W===Q?0:W>Q^U<0?1:-1};G.cosine=G.cos=function(){var J,K,$=this,W=$.constructor;if(!$.d)return new W(NaN);if(!$.d[0])return new W(1);return J=W.precision,K=W.rounding,W.precision=J+Math.max($.e,$.sd())+_,W.rounding=1,$=EK(W,tJ(W,$)),W.precision=J,W.rounding=K,I(n==2||n==3?$.neg():$,J,K,!0)};G.cubeRoot=G.cbrt=function(){var J,K,$,W,Q,H,Y,F,U,X,q=this,R=q.constructor;if(!q.isFinite()||q.isZero())return new R(q);if(O=!1,H=q.s*f(q.s*q,0.3333333333333333),!H||Math.abs(H)==1/0){if($=k(q.d),J=q.e,H=(J-$.length+1)%3)$+=H==1||H==-2?"0":"00";if(H=f($,0.3333333333333333),J=C((J+1)/3)-(J%3==(J<0?-1:2)),H==1/0)$="5e"+J;else $=H.toExponential(),$=$.slice(0,$.indexOf("e")+1)+J;W=new R($),W.s=q.s}else W=new R(H.toString());Y=(J=R.precision)+3;for(;;)if(F=W,U=F.times(F).times(F),X=U.plus(q),W=w(X.plus(q).times(F),X.plus(U),Y+2,1),k(F.d).slice(0,Y)===($=k(W.d)).slice(0,Y))if($=$.slice(Y-3,Y+1),$=="9999"||!Q&&$=="4999"){if(!Q){if(I(F,J+1,0),F.times(F).times(F).eq(q)){W=F;break}}Y+=4,Q=1}else{if(!+$||!+$.slice(1)&&$.charAt(0)=="5")I(W,J+1,1),K=!W.times(W).times(W).eq(q);break}return O=!0,I(W,J,R.rounding,K)};G.decimalPlaces=G.dp=function(){var J,K=this.d,$=NaN;if(K){if(J=K.length-1,$=(J-C(this.e/_))*_,J=K[J],J)for(;J%10==0;J/=10)$--;if($<0)$=0}return $};G.dividedBy=G.div=function(J){return w(this,new this.constructor(J))};G.dividedToIntegerBy=G.divToInt=function(J){var K=this,$=K.constructor;return I(w(K,new $(J),0,1,1),$.precision,$.rounding)};G.equals=G.eq=function(J){return this.cmp(J)===0};G.floor=function(){return I(new this.constructor(this),this.e+1,3)};G.greaterThan=G.gt=function(J){return this.cmp(J)>0};G.greaterThanOrEqualTo=G.gte=function(J){var K=this.cmp(J);return K==1||K===0};G.hyperbolicCosine=G.cosh=function(){var J,K,$,W,Q,H=this,Y=H.constructor,F=new Y(1);if(!H.isFinite())return new Y(H.s?1/0:NaN);if(H.isZero())return F;if($=Y.precision,W=Y.rounding,Y.precision=$+Math.max(H.e,H.sd())+4,Y.rounding=1,Q=H.d.length,Q<32)J=Math.ceil(Q/3),K=(1/GJ(4,J)).toString();else J=16,K="2.3283064365386962890625e-10";H=t(Y,1,H.times(K),new Y(1),!0);var U,X=J,q=new Y(8);for(;X--;)U=H.times(H),H=F.minus(U.times(q.minus(U.times(q))));return I(H,Y.precision=$,Y.rounding=W,!0)};G.hyperbolicSine=G.sinh=function(){var J,K,$,W,Q=this,H=Q.constructor;if(!Q.isFinite()||Q.isZero())return new H(Q);if(K=H.precision,$=H.rounding,H.precision=K+Math.max(Q.e,Q.sd())+4,H.rounding=1,W=Q.d.length,W<3)Q=t(H,2,Q,Q,!0);else{J=1.4*Math.sqrt(W),J=J>16?16:J|0,Q=Q.times(1/GJ(5,J)),Q=t(H,2,Q,Q,!0);var Y,F=new H(5),U=new H(16),X=new H(20);for(;J--;)Y=Q.times(Q),Q=Q.times(F.plus(Y.times(U.times(Y).plus(X))))}return H.precision=K,H.rounding=$,I(Q,K,$,!0)};G.hyperbolicTangent=G.tanh=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite())return new W($.s);if($.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+7,W.rounding=1,w($.sinh(),$.cosh(),W.precision=J,W.rounding=K)};G.inverseCosine=G.acos=function(){var J=this,K=J.constructor,$=J.abs().cmp(1),W=K.precision,Q=K.rounding;if($!==-1)return $===0?J.isNeg()?l(K,W,Q):new K(0):new K(NaN);if(J.isZero())return l(K,W+4,Q).times(0.5);return K.precision=W+6,K.rounding=1,J=new K(1).minus(J).div(J.plus(1)).sqrt().atan(),K.precision=W,K.rounding=Q,J.times(2)};G.inverseHyperbolicCosine=G.acosh=function(){var J,K,$=this,W=$.constructor;if($.lte(1))return new W($.eq(1)?0:NaN);if(!$.isFinite())return new W($);return J=W.precision,K=W.rounding,W.precision=J+Math.max(Math.abs($.e),$.sd())+4,W.rounding=1,O=!1,$=$.times($).minus(1).sqrt().plus($),O=!0,W.precision=J,W.rounding=K,$.ln()};G.inverseHyperbolicSine=G.asinh=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite()||$.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+2*Math.max(Math.abs($.e),$.sd())+6,W.rounding=1,O=!1,$=$.times($).plus(1).sqrt().plus($),O=!0,W.precision=J,W.rounding=K,$.ln()};G.inverseHyperbolicTangent=G.atanh=function(){var J,K,$,W,Q=this,H=Q.constructor;if(!Q.isFinite())return new H(NaN);if(Q.e>=0)return new H(Q.abs().eq(1)?Q.s/0:Q.isZero()?Q:NaN);if(J=H.precision,K=H.rounding,W=Q.sd(),Math.max(W,J)<2*-Q.e-1)return I(new H(Q),J,K,!0);return H.precision=$=W-Q.e,Q=w(Q.plus(1),new H(1).minus(Q),$+J,1),H.precision=J+4,H.rounding=1,Q=Q.ln(),H.precision=J,H.rounding=K,Q.times(0.5)};G.inverseSine=G.asin=function(){var J,K,$,W,Q=this,H=Q.constructor;if(Q.isZero())return new H(Q);if(K=Q.abs().cmp(1),$=H.precision,W=H.rounding,K!==-1){if(K===0)return J=l(H,$+4,W).times(0.5),J.s=Q.s,J;return new H(NaN)}return H.precision=$+6,H.rounding=1,Q=Q.div(new H(1).minus(Q.times(Q)).sqrt().plus(1)).atan(),H.precision=$,H.rounding=W,Q.times(2)};G.inverseTangent=G.atan=function(){var J,K,$,W,Q,H,Y,F,U,X=this,q=X.constructor,R=q.precision,V=q.rounding;if(!X.isFinite()){if(!X.s)return new q(NaN);if(R+4<=MJ)return Y=l(q,R+4,V).times(0.5),Y.s=X.s,Y}else if(X.isZero())return new q(X);else if(X.abs().eq(1)&&R+4<=MJ)return Y=l(q,R+4,V).times(0.25),Y.s=X.s,Y;q.precision=F=R+10,q.rounding=1,$=Math.min(28,F/_+2|0);for(J=$;J;--J)X=X.div(X.times(X).plus(1).sqrt().plus(1));O=!1,K=Math.ceil(F/_),W=1,U=X.times(X),Y=new q(X),Q=X;for(;J!==-1;)if(Q=Q.times(U),H=Y.minus(Q.div(W+=2)),Q=Q.times(U),Y=H.plus(Q.div(W+=2)),Y.d[K]!==void 0)for(J=K;Y.d[J]===H.d[J]&&J--;);if($)Y=Y.times(2<<$-1);return O=!0,I(Y,q.precision=R,q.rounding=V,!0)};G.isFinite=function(){return!!this.d};G.isInteger=G.isInt=function(){return!!this.d&&C(this.e/_)>this.d.length-2};G.isNaN=function(){return!this.s};G.isNegative=G.isNeg=function(){return this.s<0};G.isPositive=G.isPos=function(){return this.s>0};G.isZero=function(){return!!this.d&&this.d[0]===0};G.lessThan=G.lt=function(J){return this.cmp(J)<0};G.lessThanOrEqualTo=G.lte=function(J){return this.cmp(J)<1};G.logarithm=G.log=function(J){var K,$,W,Q,H,Y,F,U,X=this,q=X.constructor,R=q.precision,V=q.rounding,z=5;if(J==null)J=new q(10),K=!0;else{if(J=new q(J),$=J.d,J.s<0||!$||!$[0]||J.eq(1))return new q(NaN);K=J.eq(10)}if($=X.d,X.s<0||!$||!$[0]||X.eq(1))return new q($&&!$[0]?-1/0:X.s!=1?NaN:$?0:1/0);if(K)if($.length>1)H=!0;else{for(Q=$[0];Q%10===0;)Q/=10;H=Q!==1}if(O=!1,F=R+z,Y=s(X,F),W=K?qJ(q,F+10):s(J,F),U=w(Y,W,F,1),JJ(U.d,Q=R,V))do if(F+=10,Y=s(X,F),W=K?qJ(q,F+10):s(J,F),U=w(Y,W,F,1),!H){if(+k(U.d).slice(Q+1,Q+15)+1==100000000000000)U=I(U,R+1,0);break}while(JJ(U.d,Q+=10,V));return O=!0,I(U,R,V)};G.minus=G.sub=function(J){var K,$,W,Q,H,Y,F,U,X,q,R,V,z=this,B=z.constructor;if(J=new B(J),!z.d||!J.d){if(!z.s||!J.s)J=new B(NaN);else if(z.d)J.s=-J.s;else J=new B(J.d||z.s!==J.s?z:NaN);return J}if(z.s!=J.s)return J.s=-J.s,z.plus(J);if(X=z.d,V=J.d,F=B.precision,U=B.rounding,!X[0]||!V[0]){if(V[0])J.s=-J.s;else if(X[0])J=new B(z);else return new B(U===3?-0:0);return O?I(J,F,U):J}if($=C(J.e/_),q=C(z.e/_),X=X.slice(),H=q-$,H){if(R=H<0,R)K=X,H=-H,Y=V.length;else K=V,$=q,Y=X.length;if(W=Math.max(Math.ceil(F/_),Y)+2,H>W)H=W,K.length=1;K.reverse();for(W=H;W--;)K.push(0);K.reverse()}else{if(W=X.length,Y=V.length,R=W<Y,R)Y=W;for(W=0;W<Y;W++)if(X[W]!=V[W]){R=X[W]<V[W];break}H=0}if(R)K=X,X=V,V=K,J.s=-J.s;Y=X.length;for(W=V.length-Y;W>0;--W)X[Y++]=0;for(W=V.length;W>H;){if(X[--W]<V[W]){for(Q=W;Q&&X[--Q]===0;)X[Q]=c-1;--X[Q],X[W]+=c}X[W]-=V[W]}for(;X[--Y]===0;)X.pop();for(;X[0]===0;X.shift())--$;if(!X[0])return new B(U===3?-0:0);return J.d=X,J.e=VJ(X,$),O?I(J,F,U):J};G.modulo=G.mod=function(J){var K,$=this,W=$.constructor;if(J=new W(J),!$.d||!J.s||J.d&&!J.d[0])return new W(NaN);if(!J.d||$.d&&!$.d[0])return I(new W($),W.precision,W.rounding);if(O=!1,W.modulo==9)K=w($,J.abs(),0,3,1),K.s*=J.s;else K=w($,J,0,W.modulo,1);return K=K.times(J),O=!0,$.minus(K)};G.naturalExponential=G.exp=function(){return PJ(this)};G.naturalLogarithm=G.ln=function(){return s(this)};G.negated=G.neg=function(){var J=new this.constructor(this);return J.s=-J.s,I(J)};G.plus=G.add=function(J){var K,$,W,Q,H,Y,F,U,X,q,R=this,V=R.constructor;if(J=new V(J),!R.d||!J.d){if(!R.s||!J.s)J=new V(NaN);else if(!R.d)J=new V(J.d||R.s===J.s?R:NaN);return J}if(R.s!=J.s)return J.s=-J.s,R.minus(J);if(X=R.d,q=J.d,F=V.precision,U=V.rounding,!X[0]||!q[0]){if(!q[0])J=new V(R);return O?I(J,F,U):J}if(H=C(R.e/_),W=C(J.e/_),X=X.slice(),Q=H-W,Q){if(Q<0)$=X,Q=-Q,Y=q.length;else $=q,W=H,Y=X.length;if(H=Math.ceil(F/_),Y=H>Y?H+1:Y+1,Q>Y)Q=Y,$.length=1;$.reverse();for(;Q--;)$.push(0);$.reverse()}if(Y=X.length,Q=q.length,Y-Q<0)Q=Y,$=q,q=X,X=$;for(K=0;Q;)K=(X[--Q]=X[Q]+q[Q]+K)/c|0,X[Q]%=c;if(K)X.unshift(K),++W;for(Y=X.length;X[--Y]==0;)X.pop();return J.d=X,J.e=VJ(X,W),O?I(J,F,U):J};G.precision=G.sd=function(J){var K,$=this;if(J!==void 0&&J!==!!J&&J!==1&&J!==0)throw Error(o+J);if($.d){if(K=oJ($.d),J&&$.e+1>K)K=$.e+1}else K=NaN;return K};G.round=function(){var J=this,K=J.constructor;return I(new K(J),J.e+1,K.rounding)};G.sine=G.sin=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite())return new W(NaN);if($.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+Math.max($.e,$.sd())+_,W.rounding=1,$=wK(W,tJ(W,$)),W.precision=J,W.rounding=K,I(n>2?$.neg():$,J,K,!0)};G.squareRoot=G.sqrt=function(){var J,K,$,W,Q,H,Y=this,F=Y.d,U=Y.e,X=Y.s,q=Y.constructor;if(X!==1||!F||!F[0])return new q(!X||X<0&&(!F||F[0])?NaN:F?Y:1/0);if(O=!1,X=Math.sqrt(+Y),X==0||X==1/0){if(K=k(F),(K.length+U)%2==0)K+="0";if(X=Math.sqrt(K),U=C((U+1)/2)-(U<0||U%2),X==1/0)K="5e"+U;else K=X.toExponential(),K=K.slice(0,K.indexOf("e")+1)+U;W=new q(K)}else W=new q(X.toString());$=(U=q.precision)+3;for(;;)if(H=W,W=H.plus(w(Y,H,$+2,1)).times(0.5),k(H.d).slice(0,$)===(K=k(W.d)).slice(0,$))if(K=K.slice($-3,$+1),K=="9999"||!Q&&K=="4999"){if(!Q){if(I(H,U+1,0),H.times(H).eq(Y)){W=H;break}}$+=4,Q=1}else{if(!+K||!+K.slice(1)&&K.charAt(0)=="5")I(W,U+1,1),J=!W.times(W).eq(Y);break}return O=!0,I(W,U,q.rounding,J)};G.tangent=G.tan=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite())return new W(NaN);if($.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+10,W.rounding=1,$=$.sin(),$.s=1,$=w($,new W(1).minus($.times($)).sqrt(),J+10,0),W.precision=J,W.rounding=K,I(n==2||n==4?$.neg():$,J,K,!0)};G.times=G.mul=function(J){var K,$,W,Q,H,Y,F,U,X,q=this,R=q.constructor,V=q.d,z=(J=new R(J)).d;if(J.s*=q.s,!V||!V[0]||!z||!z[0])return new R(!J.s||V&&!V[0]&&!z||z&&!z[0]&&!V?NaN:!V||!z?J.s/0:J.s*0);if($=C(q.e/_)+C(J.e/_),U=V.length,X=z.length,U<X)H=V,V=z,z=H,Y=U,U=X,X=Y;H=[],Y=U+X;for(W=Y;W--;)H.push(0);for(W=X;--W>=0;){K=0;for(Q=U+W;Q>W;)F=H[Q]+z[W]*V[Q-W-1]+K,H[Q--]=F%c|0,K=F/c|0;H[Q]=(H[Q]+K)%c|0}for(;!H[--Y];)H.pop();if(K)++$;else H.shift();return J.d=H,J.e=VJ(H,$),O?I(J,R.precision,R.rounding):J};G.toBinary=function(J,K){return fJ(this,2,J,K)};G.toDecimalPlaces=G.toDP=function(J,K){var $=this,W=$.constructor;if($=new W($),J===void 0)return $;if(v(J,0,x),K===void 0)K=W.rounding;else v(K,0,8);return I($,J+$.e+1,K)};G.toExponential=function(J,K){var $,W=this,Q=W.constructor;if(J===void 0)$=d(W,!0);else{if(v(J,0,x),K===void 0)K=Q.rounding;else v(K,0,8);W=I(new Q(W),J+1,K),$=d(W,!0,J+1)}return W.isNeg()&&!W.isZero()?"-"+$:$};G.toFixed=function(J,K){var $,W,Q=this,H=Q.constructor;if(J===void 0)$=d(Q);else{if(v(J,0,x),K===void 0)K=H.rounding;else v(K,0,8);W=I(new H(Q),J+Q.e+1,K),$=d(W,!1,J+W.e+1)}return Q.isNeg()&&!Q.isZero()?"-"+$:$};G.toFraction=function(J){var K,$,W,Q,H,Y,F,U,X,q,R,V,z=this,B=z.d,T=z.constructor;if(!B)return new T(z);if(X=$=new T(1),W=U=new T(0),K=new T(W),H=K.e=oJ(B)-z.e-1,Y=H%_,K.d[0]=f(10,Y<0?_+Y:Y),J==null)J=H>0?K:X;else{if(F=new T(J),!F.isInt()||F.lt(X))throw Error(o+F);J=F.gt(K)?H>0?K:X:F}O=!1,F=new T(k(B)),q=T.precision,T.precision=H=B.length*_*2;for(;;){if(R=w(F,K,0,1,1),Q=$.plus(R.times(W)),Q.cmp(J)==1)break;$=W,W=Q,Q=X,X=U.plus(R.times(Q)),U=Q,Q=K,K=F.minus(R.times(Q)),F=Q}return Q=w(J.minus($),W,0,1,1),U=U.plus(Q.times(X)),$=$.plus(Q.times(W)),U.s=X.s=z.s,V=w(X,W,H,1).minus(z).abs().cmp(w(U,$,H,1).minus(z).abs())<1?[X,W]:[U,$],T.precision=q,O=!0,V};G.toHexadecimal=G.toHex=function(J,K){return fJ(this,16,J,K)};G.toNearest=function(J,K){var $=this,W=$.constructor;if($=new W($),J==null){if(!$.d)return $;J=new W(1),K=W.rounding}else{if(J=new W(J),K===void 0)K=W.rounding;else v(K,0,8);if(!$.d)return J.s?$:J;if(!J.d){if(J.s)J.s=$.s;return J}}if(J.d[0])O=!1,$=w($,J,0,K,1).times(J),O=!0,I($);else J.s=$.s,$=J;return $};G.toNumber=function(){return+this};G.toOctal=function(J,K){return fJ(this,8,J,K)};G.toPower=G.pow=function(J){var K,$,W,Q,H,Y,F=this,U=F.constructor,X=+(J=new U(J));if(!F.d||!J.d||!F.d[0]||!J.d[0])return new U(f(+F,X));if(F=new U(F),F.eq(1))return F;if(W=U.precision,H=U.rounding,J.eq(1))return I(F,W,H);if(K=C(J.e/_),K>=J.d.length-1&&($=X<0?-X:X)<=BK)return Q=xJ(U,F,$,W),J.s<0?new U(1).div(Q):I(Q,W,H);if(Y=F.s,Y<0){if(K<J.d.length-1)return new U(NaN);if((J.d[K]&1)==0)Y=1;if(F.e==0&&F.d[0]==1&&F.d.length==1)return F.s=Y,F}if($=f(+F,X),K=$==0||!isFinite($)?C(X*(Math.log("0."+k(F.d))/Math.LN10+F.e+1)):new U($+"").e,K>U.maxE+1||K<U.minE-1)return new U(K>0?Y/0:0);if(O=!1,U.rounding=F.s=1,$=Math.min(12,(K+"").length),Q=PJ(J.times(s(F,W+$)),W),Q.d){if(Q=I(Q,W+5,1),JJ(Q.d,W,H)){if(K=W+10,Q=I(PJ(J.times(s(F,K+$)),K),K+5,1),+k(Q.d).slice(W+1,W+15)+1==100000000000000)Q=I(Q,W+1,0)}}return Q.s=Y,O=!0,U.rounding=H,I(Q,W,H)};G.toPrecision=function(J,K){var $,W=this,Q=W.constructor;if(J===void 0)$=d(W,W.e<=Q.toExpNeg||W.e>=Q.toExpPos);else{if(v(J,1,x),K===void 0)K=Q.rounding;else v(K,0,8);W=I(new Q(W),J,K),$=d(W,J<=W.e||W.e<=Q.toExpNeg,J)}return W.isNeg()&&!W.isZero()?"-"+$:$};G.toSignificantDigits=G.toSD=function(J,K){var $=this,W=$.constructor;if(J===void 0)J=W.precision,K=W.rounding;else if(v(J,1,x),K===void 0)K=W.rounding;else v(K,0,8);return I(new W($),J,K)};G.toString=function(){var J=this,K=J.constructor,$=d(J,J.e<=K.toExpNeg||J.e>=K.toExpPos);return J.isNeg()&&!J.isZero()?"-"+$:$};G.truncated=G.trunc=function(){return I(new this.constructor(this),this.e+1,1)};G.valueOf=G.toJSON=function(){var J=this,K=J.constructor,$=d(J,J.e<=K.toExpNeg||J.e>=K.toExpPos);return J.isNeg()?"-"+$:$};function k(J){var K,$,W,Q=J.length-1,H="",Y=J[0];if(Q>0){H+=Y;for(K=1;K<Q;K++){if(W=J[K]+"",$=_-W.length,$)H+=m($);H+=W}if(Y=J[K],W=Y+"",$=_-W.length,$)H+=m($)}else if(Y===0)return"0";for(;Y%10===0;)Y/=10;return H+Y}function v(J,K,$){if(J!==~~J||J<K||J>$)throw Error(o+J)}function JJ(J,K,$,W){var Q,H,Y,F;for(H=J[0];H>=10;H/=10)--K;if(--K<0)K+=_,Q=0;else Q=Math.ceil((K+1)/_),K%=_;if(H=f(10,_-K),F=J[Q]%H|0,W==null)if(K<3){if(K==0)F=F/100|0;else if(K==1)F=F/10|0;Y=$<4&&F==99999||$>3&&F==49999||F==50000||F==0}else Y=($<4&&F+1==H||$>3&&F+1==H/2)&&(J[Q+1]/H/100|0)==f(10,K-2)-1||(F==H/2||F==0)&&(J[Q+1]/H/100|0)==0;else if(K<4){if(K==0)F=F/1000|0;else if(K==1)F=F/100|0;else if(K==2)F=F/10|0;Y=(W||$<4)&&F==9999||!W&&$>3&&F==4999}else Y=((W||$<4)&&F+1==H||!W&&$>3&&F+1==H/2)&&(J[Q+1]/H/1000|0)==f(10,K-3)-1;return Y}function FJ(J,K,$){var W,Q=[0],H,Y=0,F=J.length;for(;Y<F;){for(H=Q.length;H--;)Q[H]*=K;Q[0]+=wJ.indexOf(J.charAt(Y++));for(W=0;W<Q.length;W++)if(Q[W]>$-1){if(Q[W+1]===void 0)Q[W+1]=0;Q[W+1]+=Q[W]/$|0,Q[W]%=$}}return Q.reverse()}function EK(J,K){var $,W,Q;if(K.isZero())return K;if(W=K.d.length,W<32)$=Math.ceil(W/3),Q=(1/GJ(4,$)).toString();else $=16,Q="2.3283064365386962890625e-10";J.precision+=$,K=t(J,1,K.times(Q),new J(1));for(var H=$;H--;){var Y=K.times(K);K=Y.times(Y).minus(Y).times(8).plus(1)}return J.precision-=$,K}var w=function(){function J(W,Q,H){var Y,F=0,U=W.length;for(W=W.slice();U--;)Y=W[U]*Q+F,W[U]=Y%H|0,F=Y/H|0;if(F)W.unshift(F);return W}function K(W,Q,H,Y){var F,U;if(H!=Y)U=H>Y?1:-1;else for(F=U=0;F<H;F++)if(W[F]!=Q[F]){U=W[F]>Q[F]?1:-1;break}return U}function $(W,Q,H,Y){var F=0;for(;H--;)W[H]-=F,F=W[H]<Q[H]?1:0,W[H]=F*Y+W[H]-Q[H];for(;!W[0]&&W.length>1;)W.shift()}return function(W,Q,H,Y,F,U){var X,q,R,V,z,B,T,L,M,D,A,b,a,p,TJ,QJ,r,BJ,y,HJ,YJ=W.constructor,OJ=W.s==Q.s?1:-1,g=W.d,S=Q.d;if(!g||!g[0]||!S||!S[0])return new YJ(!W.s||!Q.s||(g?S&&g[0]==S[0]:!S)?NaN:g&&g[0]==0||!S?OJ*0:OJ/0);if(U)z=1,q=W.e-Q.e;else U=c,z=_,q=C(W.e/z)-C(Q.e/z);y=S.length,r=g.length,M=new YJ(OJ),D=M.d=[];for(R=0;S[R]==(g[R]||0);R++);if(S[R]>(g[R]||0))q--;if(H==null)p=H=YJ.precision,Y=YJ.rounding;else if(F)p=H+(W.e-Q.e)+1;else p=H;if(p<0)D.push(1),B=!0;else{if(p=p/z+2|0,R=0,y==1){V=0,S=S[0],p++;for(;(R<r||V)&&p--;R++)TJ=V*U+(g[R]||0),D[R]=TJ/S|0,V=TJ%S|0;B=V||R<r}else{if(V=U/(S[0]+1)|0,V>1)S=J(S,V,U),g=J(g,V,U),y=S.length,r=g.length;QJ=y,A=g.slice(0,y),b=A.length;for(;b<y;)A[b++]=0;if(HJ=S.slice(),HJ.unshift(0),BJ=S[0],S[1]>=U/2)++BJ;do{if(V=0,X=K(S,A,y,b),X<0){if(a=A[0],y!=b)a=a*U+(A[1]||0);if(V=a/BJ|0,V>1){if(V>=U)V=U-1;if(T=J(S,V,U),L=T.length,b=A.length,X=K(T,A,L,b),X==1)V--,$(T,y<L?HJ:S,L,U)}else{if(V==0)X=V=1;T=S.slice()}if(L=T.length,L<b)T.unshift(0);if($(A,T,b,U),X==-1){if(b=A.length,X=K(S,A,y,b),X<1)V++,$(A,y<b?HJ:S,b,U)}b=A.length}else if(X===0)V++,A=[0];if(D[R++]=V,X&&A[0])A[b++]=g[QJ]||0;else A=[g[QJ]],b=1}while((QJ++<r||A[0]!==void 0)&&p--);B=A[0]!==void 0}if(!D[0])D.shift()}if(z==1)M.e=q,lJ=B;else{for(R=1,V=D[0];V>=10;V/=10)R++;M.e=R+q*z-1,I(M,F?H+M.e+1:H,Y,B)}return M}}();function I(J,K,$,W){var Q,H,Y,F,U,X,q,R,V,z=J.constructor;J:if(K!=null){if(R=J.d,!R)return J;for(Q=1,F=R[0];F>=10;F/=10)Q++;if(H=K-Q,H<0)H+=_,Y=K,q=R[V=0],U=q/f(10,Q-Y-1)%10|0;else if(V=Math.ceil((H+1)/_),F=R.length,V>=F)if(W){for(;F++<=V;)R.push(0);q=U=0,Q=1,H%=_,Y=H-_+1}else break J;else{q=F=R[V];for(Q=1;F>=10;F/=10)Q++;H%=_,Y=H-_+Q,U=Y<0?0:q/f(10,Q-Y-1)%10|0}if(W=W||K<0||R[V+1]!==void 0||(Y<0?q:q%f(10,Q-Y-1)),X=$<4?(U||W)&&($==0||$==(J.s<0?3:2)):U>5||U==5&&($==4||W||$==6&&(H>0?Y>0?q/f(10,Q-Y):0:R[V-1])%10&1||$==(J.s<0?8:7)),K<1||!R[0]){if(R.length=0,X)K-=J.e+1,R[0]=f(10,(_-K%_)%_),J.e=-K||0;else R[0]=J.e=0;return J}if(H==0)R.length=V,F=1,V--;else R.length=V+1,F=f(10,_-H),R[V]=Y>0?(q/f(10,Q-Y)%f(10,Y)|0)*F:0;if(X)for(;;)if(V==0){for(H=1,Y=R[0];Y>=10;Y/=10)H++;Y=R[0]+=F;for(F=1;Y>=10;Y/=10)F++;if(H!=F){if(J.e++,R[0]==c)R[0]=1}break}else{if(R[V]+=F,R[V]!=c)break;R[V--]=0,F=1}for(H=R.length;R[--H]===0;)R.pop()}if(O){if(J.e>z.maxE)J.d=null,J.e=NaN;else if(J.e<z.minE)J.e=0,J.d=[0]}return J}function d(J,K,$){if(!J.isFinite())return iJ(J);var W,Q=J.e,H=k(J.d),Y=H.length;if(K){if($&&(W=$-Y)>0)H=H.charAt(0)+"."+H.slice(1)+m(W);else if(Y>1)H=H.charAt(0)+"."+H.slice(1);H=H+(J.e<0?"e":"e+")+J.e}else if(Q<0){if(H="0."+m(-Q-1)+H,$&&(W=$-Y)>0)H+=m(W)}else if(Q>=Y){if(H+=m(Q+1-Y),$&&(W=$-Q-1)>0)H=H+"."+m(W)}else{if((W=Q+1)<Y)H=H.slice(0,W)+"."+H.slice(W);if($&&(W=$-Y)>0){if(Q+1===Y)H+=".";H+=m(W)}}return H}function VJ(J,K){var $=J[0];for(K*=_;$>=10;$/=10)K++;return K}function qJ(J,K,$){if(K>OK){if(O=!0,$)J.precision=$;throw Error(dJ)}return I(new J(XJ),K,1,!0)}function l(J,K,$){if(K>MJ)throw Error(dJ);return I(new J(UJ),K,$,!0)}function oJ(J){var K=J.length-1,$=K*_+1;if(K=J[K],K){for(;K%10==0;K/=10)$--;for(K=J[0];K>=10;K/=10)$++}return $}function m(J){var K="";for(;J--;)K+="0";return K}function xJ(J,K,$,W){var Q,H=new J(1),Y=Math.ceil(W/_+4);O=!1;for(;;){if($%2){if(H=H.times(K),yJ(H.d,Y))Q=!0}if($=C($/2),$===0){if($=H.d.length-1,Q&&H.d[$]===0)++H.d[$];break}K=K.times(K),yJ(K.d,Y)}return O=!0,H}function pJ(J){return J.d[J.d.length-1]&1}function aJ(J,K,$){var W,Q,H=new J(K[0]),Y=0;for(;++Y<K.length;){if(Q=new J(K[Y]),!Q.s){H=Q;break}if(W=H.cmp(Q),W===$||W===0&&H.s===$)H=Q}return H}function PJ(J,K){var $,W,Q,H,Y,F,U,X=0,q=0,R=0,V=J.constructor,z=V.rounding,B=V.precision;if(!J.d||!J.d[0]||J.e>17)return new V(J.d?!J.d[0]?1:J.s<0?0:1/0:J.s?J.s<0?0:J:NaN);if(K==null)O=!1,U=B;else U=K;F=new V(0.03125);while(J.e>-2)J=J.times(F),R+=5;W=Math.log(f(2,R))/Math.LN10*2+5|0,U+=W,$=H=Y=new V(1),V.precision=U;for(;;){if(H=I(H.times(J),U,1),$=$.times(++q),F=Y.plus(w(H,$,U,1)),k(F.d).slice(0,U)===k(Y.d).slice(0,U)){Q=R;while(Q--)Y=I(Y.times(Y),U,1);if(K==null)if(X<3&&JJ(Y.d,U-W,z,X))V.precision=U+=10,$=H=F=new V(1),q=0,X++;else return I(Y,V.precision=B,z,O=!0);else return V.precision=B,Y}Y=F}}function s(J,K){var $,W,Q,H,Y,F,U,X,q,R,V,z=1,B=10,T=J,L=T.d,M=T.constructor,D=M.rounding,A=M.precision;if(T.s<0||!L||!L[0]||!T.e&&L[0]==1&&L.length==1)return new M(L&&!L[0]?-1/0:T.s!=1?NaN:L?0:T);if(K==null)O=!1,q=A;else q=K;if(M.precision=q+=B,$=k(L),W=$.charAt(0),Math.abs(H=T.e)<1500000000000000){while(W<7&&W!=1||W==1&&$.charAt(1)>3)T=T.times(J),$=k(T.d),W=$.charAt(0),z++;if(H=T.e,W>1)T=new M("0."+$),H++;else T=new M(W+"."+$.slice(1))}else return X=qJ(M,q+2,A).times(H+""),T=s(new M(W+"."+$.slice(1)),q-B).plus(X),M.precision=A,K==null?I(T,A,D,O=!0):T;R=T,U=Y=T=w(T.minus(1),T.plus(1),q,1),V=I(T.times(T),q,1),Q=3;for(;;){if(Y=I(Y.times(V),q,1),X=U.plus(w(Y,new M(Q),q,1)),k(X.d).slice(0,q)===k(U.d).slice(0,q)){if(U=U.times(2),H!==0)U=U.plus(qJ(M,q+2,A).times(H+""));if(U=w(U,new M(z),q,1),K==null)if(JJ(U.d,q-B,D,F))M.precision=q+=B,X=Y=T=w(R.minus(1),R.plus(1),q,1),V=I(T.times(T),q,1),Q=F=1;else return I(U,M.precision=A,D,O=!0);else return M.precision=A,U}U=X,Q+=2}}function iJ(J){return String(J.s*J.s/0)}function ZJ(J,K){var $,W,Q;if(($=K.indexOf("."))>-1)K=K.replace(".","");if((W=K.search(/e/i))>0){if($<0)$=W;$+=+K.slice(W+1),K=K.substring(0,W)}else if($<0)$=K.length;for(W=0;K.charCodeAt(W)===48;W++);for(Q=K.length;K.charCodeAt(Q-1)===48;--Q);if(K=K.slice(W,Q),K){if(Q-=W,J.e=$=$-W-1,J.d=[],W=($+1)%_,$<0)W+=_;if(W<Q){if(W)J.d.push(+K.slice(0,W));for(Q-=_;W<Q;)J.d.push(+K.slice(W,W+=_));K=K.slice(W),W=_-K.length}else W-=Q;for(;W--;)K+="0";if(J.d.push(+K),O){if(J.e>J.constructor.maxE)J.d=null,J.e=NaN;else if(J.e<J.constructor.minE)J.e=0,J.d=[0]}}else J.e=0,J.d=[0];return J}function AK(J,K){var $,W,Q,H,Y,F,U,X,q;if(K.indexOf("_")>-1){if(K=K.replace(/(\d)_(?=\d)/g,"$1"),sJ.test(K))return ZJ(J,K)}else if(K==="Infinity"||K==="NaN"){if(!+K)J.s=NaN;return J.e=NaN,J.d=null,J}if(_K.test(K))$=16,K=K.toLowerCase();else if(NK.test(K))$=2;else if(TK.test(K))$=8;else throw Error(o+K);if(H=K.search(/p/i),H>0)U=+K.slice(H+1),K=K.substring(2,H);else K=K.slice(2);if(H=K.indexOf("."),Y=H>=0,W=J.constructor,Y)K=K.replace(".",""),F=K.length,H=F-H,Q=xJ(W,new W($),H,H*2);X=FJ(K,$,c),q=X.length-1;for(H=q;X[H]===0;--H)X.pop();if(H<0)return new W(J.s*0);if(J.e=VJ(X,q),J.d=X,O=!1,Y)J=w(J,Q,F*4);if(U)J=J.times(Math.abs(U)<54?f(2,U):KJ.pow(2,U));return O=!0,J}function wK(J,K){var $,W=K.d.length;if(W<3)return K.isZero()?K:t(J,2,K,K);$=1.4*Math.sqrt(W),$=$>16?16:$|0,K=K.times(1/GJ(5,$)),K=t(J,2,K,K);var Q,H=new J(5),Y=new J(16),F=new J(20);for(;$--;)Q=K.times(K),K=K.times(H.plus(Q.times(Y.times(Q).minus(F))));return K}function t(J,K,$,W,Q){var H,Y,F,U,X=1,q=J.precision,R=Math.ceil(q/_);O=!1,U=$.times($),F=new J(W);for(;;){if(Y=w(F.times(U),new J(K++*K++),q,1),F=Q?W.plus(Y):W.minus(Y),W=w(Y.times(U),new J(K++*K++),q,1),Y=F.plus(W),Y.d[R]!==void 0){for(H=R;Y.d[H]===F.d[H]&&H--;);if(H==-1)break}H=F,F=W,W=Y,Y=H,X++}return O=!0,Y.d.length=R+1,Y}function GJ(J,K){var $=J;while(--K)$*=J;return $}function tJ(J,K){var $,W=K.s<0,Q=l(J,J.precision,1),H=Q.times(0.5);if(K=K.abs(),K.lte(H))return n=W?4:1,K;if($=K.divToInt(Q),$.isZero())n=W?3:2;else{if(K=K.minus($.times(Q)),K.lte(H))return n=pJ($)?W?2:3:W?4:1,K;n=pJ($)?W?1:4:W?3:2}return K.minus(Q).abs()}function fJ(J,K,$,W){var Q,H,Y,F,U,X,q,R,V,z=J.constructor,B=$!==void 0;if(B)if(v($,1,x),W===void 0)W=z.rounding;else v(W,0,8);else $=z.precision,W=z.rounding;if(!J.isFinite())q=iJ(J);else{if(q=d(J),Y=q.indexOf("."),B){if(Q=2,K==16)$=$*4-3;else if(K==8)$=$*3-2}else Q=K;if(Y>=0)q=q.replace(".",""),V=new z(1),V.e=q.length-Y,V.d=FJ(d(V),10,Q),V.e=V.d.length;R=FJ(q,10,Q),H=U=R.length;for(;R[--U]==0;)R.pop();if(!R[0])q=B?"0p+0":"0";else{if(Y<0)H--;else J=new z(J),J.d=R,J.e=H,J=w(J,V,$,W,0,Q),R=J.d,H=J.e,X=lJ;if(Y=R[$],F=Q/2,X=X||R[$+1]!==void 0,X=W<4?(Y!==void 0||X)&&(W===0||W===(J.s<0?3:2)):Y>F||Y===F&&(W===4||X||W===6&&R[$-1]&1||W===(J.s<0?8:7)),R.length=$,X){for(;++R[--$]>Q-1;)if(R[$]=0,!$)++H,R.unshift(1)}for(U=R.length;!R[U-1];--U);for(Y=0,q="";Y<U;Y++)q+=wJ.charAt(R[Y]);if(B){if(U>1)if(K==16||K==8){Y=K==16?4:3;for(--U;U%Y;U++)q+="0";R=FJ(q,Q,K);for(U=R.length;!R[U-1];--U);for(Y=1,q="1.";Y<U;Y++)q+=wJ.charAt(R[Y])}else q=q.charAt(0)+"."+q.slice(1);q=q+(H<0?"p":"p+")+H}else if(H<0){for(;++H;)q="0"+q;q="0."+q}else if(++H>U)for(H-=U;H--;)q+="0";else if(H<U)q=q.slice(0,H)+"."+q.slice(H)}q=(K==16?"0x":K==2?"0b":K==8?"0o":"")+q}return J.s<0?"-"+q:q}function yJ(J,K){if(J.length>K)return J.length=K,!0}function SK(J){return new this(J).abs()}function MK(J){return new this(J).acos()}function PK(J){return new this(J).acosh()}function fK(J,K){return new this(J).plus(K)}function jK(J){return new this(J).asin()}function bK(J){return new this(J).asinh()}function LK(J){return new this(J).atan()}function kK(J){return new this(J).atanh()}function gK(J,K){J=new this(J),K=new this(K);var $,W=this.precision,Q=this.rounding,H=W+4;if(!J.s||!K.s)$=new this(NaN);else if(!J.d&&!K.d)$=l(this,H,1).times(K.s>0?0.25:0.75),$.s=J.s;else if(!K.d||J.isZero())$=K.s<0?l(this,W,Q):new this(0),$.s=J.s;else if(!J.d||K.isZero())$=l(this,H,1).times(0.5),$.s=J.s;else if(K.s<0)this.precision=H,this.rounding=1,$=this.atan(w(J,K,H,1)),K=l(this,H,1),this.precision=W,this.rounding=Q,$=J.s<0?$.minus(K):$.plus(K);else $=this.atan(w(J,K,H,1));return $}function CK(J){return new this(J).cbrt()}function hK(J){return I(J=new this(J),J.e+1,2)}function vK(J,K,$){return new this(J).clamp(K,$)}function uK(J){if(!J||typeof J!=="object")throw Error(RJ+"Object expected");var K,$,W,Q=J.defaults===!0,H=["precision",1,x,"rounding",0,8,"toExpNeg",-i,0,"toExpPos",0,i,"maxE",0,i,"minE",-i,0,"modulo",0,9];for(K=0;K<H.length;K+=3){if($=H[K],Q)this[$]=SJ[$];if((W=J[$])!==void 0)if(C(W)===W&&W>=H[K+1]&&W<=H[K+2])this[$]=W;else throw Error(o+$+": "+W)}if($="crypto",Q)this[$]=SJ[$];if((W=J[$])!==void 0)if(W===!0||W===!1||W===0||W===1)if(W)if(typeof crypto!="undefined"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[$]=!0;else throw Error(nJ);else this[$]=!1;else throw Error(o+$+": "+W);return this}function DK(J){return new this(J).cos()}function pK(J){return new this(J).cosh()}function eJ(J){var K,$,W;function Q(H){var Y,F,U,X=this;if(!(X instanceof Q))return new Q(H);if(X.constructor=Q,cJ(H)){if(X.s=H.s,O)if(!H.d||H.e>Q.maxE)X.e=NaN,X.d=null;else if(H.e<Q.minE)X.e=0,X.d=[0];else X.e=H.e,X.d=H.d.slice();else X.e=H.e,X.d=H.d?H.d.slice():H.d;return}if(U=typeof H,U==="number"){if(H===0){X.s=1/H<0?-1:1,X.e=0,X.d=[0];return}if(H<0)H=-H,X.s=-1;else X.s=1;if(H===~~H&&H<1e7){for(Y=0,F=H;F>=10;F/=10)Y++;if(O)if(Y>Q.maxE)X.e=NaN,X.d=null;else if(Y<Q.minE)X.e=0,X.d=[0];else X.e=Y,X.d=[H];else X.e=Y,X.d=[H];return}if(H*0!==0){if(!H)X.s=NaN;X.e=NaN,X.d=null;return}return ZJ(X,H.toString())}if(U==="string"){if((F=H.charCodeAt(0))===45)H=H.slice(1),X.s=-1;else{if(F===43)H=H.slice(1);X.s=1}return sJ.test(H)?ZJ(X,H):AK(X,H)}if(U==="bigint"){if(H<0)H=-H,X.s=-1;else X.s=1;return ZJ(X,H.toString())}throw Error(o+H)}if(Q.prototype=G,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=uK,Q.clone=eJ,Q.isDecimal=cJ,Q.abs=SK,Q.acos=MK,Q.acosh=PK,Q.add=fK,Q.asin=jK,Q.asinh=bK,Q.atan=LK,Q.atanh=kK,Q.atan2=gK,Q.cbrt=CK,Q.ceil=hK,Q.clamp=vK,Q.cos=DK,Q.cosh=pK,Q.div=yK,Q.exp=cK,Q.floor=lK,Q.hypot=dK,Q.ln=nK,Q.log=mK,Q.log10=oK,Q.log2=sK,Q.max=xK,Q.min=aK,Q.mod=iK,Q.mul=tK,Q.pow=eK,Q.random=rK,Q.round=J$,Q.sign=K$,Q.sin=$$,Q.sinh=W$,Q.sqrt=Q$,Q.sub=H$,Q.sum=Y$,Q.tan=F$,Q.tanh=Z$,Q.trunc=X$,J===void 0)J={};if(J){if(J.defaults!==!0){W=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"];for(K=0;K<W.length;)if(!J.hasOwnProperty($=W[K++]))J[$]=this[$]}}return Q.config(J),Q}function yK(J,K){return new this(J).div(K)}function cK(J){return new this(J).exp()}function lK(J){return I(J=new this(J),J.e+1,3)}function dK(){var J,K,$=new this(0);O=!1;for(J=0;J<arguments.length;)if(K=new this(arguments[J++]),!K.d){if(K.s)return O=!0,new this(1/0);$=K}else if($.d)$=$.plus(K.times(K));return O=!0,$.sqrt()}function cJ(J){return J instanceof KJ||J&&J.toStringTag===mJ||!1}function nK(J){return new this(J).ln()}function mK(J,K){return new this(J).log(K)}function sK(J){return new this(J).log(2)}function oK(J){return new this(J).log(10)}function xK(){return aJ(this,arguments,-1)}function aK(){return aJ(this,arguments,1)}function iK(J,K){return new this(J).mod(K)}function tK(J,K){return new this(J).mul(K)}function eK(J,K){return new this(J).pow(K)}function rK(J){var K,$,W,Q,H=0,Y=new this(1),F=[];if(J===void 0)J=this.precision;else v(J,1,x);if(W=Math.ceil(J/_),!this.crypto)for(;H<W;)F[H++]=Math.random()*1e7|0;else if(crypto.getRandomValues){K=crypto.getRandomValues(new Uint32Array(W));for(;H<W;)if(Q=K[H],Q>=4290000000)K[H]=crypto.getRandomValues(new Uint32Array(1))[0];else F[H++]=Q%1e7}else if(crypto.randomBytes){K=crypto.randomBytes(W*=4);for(;H<W;)if(Q=K[H]+(K[H+1]<<8)+(K[H+2]<<16)+((K[H+3]&127)<<24),Q>=2140000000)crypto.randomBytes(4).copy(K,H);else F.push(Q%1e7),H+=4;H=W/4}else throw Error(nJ);if(W=F[--H],J%=_,W&&J)Q=f(10,_-J),F[H]=(W/Q|0)*Q;for(;F[H]===0;H--)F.pop();if(H<0)$=0,F=[0];else{$=-1;for(;F[0]===0;$-=_)F.shift();for(W=1,Q=F[0];Q>=10;Q/=10)W++;if(W<_)$-=_-W}return Y.e=$,Y.d=F,Y}function J$(J){return I(J=new this(J),J.e+1,this.rounding)}function K$(J){return J=new this(J),J.d?J.d[0]?J.s:0*J.s:J.s||NaN}function $$(J){return new this(J).sin()}function W$(J){return new this(J).sinh()}function Q$(J){return new this(J).sqrt()}function H$(J,K){return new this(J).sub(K)}function Y$(){var J=0,K=arguments,$=new this(K[J]);O=!1;for(;$.s&&++J<K.length;)$=$.plus(K[J]);return O=!0,I($,this.precision,this.rounding)}function F$(J){return new this(J).tan()}function Z$(J){return new this(J).tanh()}function X$(J){return I(J=new this(J),J.e+1,1)}G[Symbol.for("nodejs.util.inspect.custom")]=G.toString;G[Symbol.toStringTag]="Decimal";var KJ=G.constructor=eJ(SJ);XJ=new KJ(XJ);UJ=new KJ(UJ);var Z=KJ;var jJ=(J)=>{if(J===null||J===void 0)throw new Error(`Cannot convert ${J===null?"null":"undefined"} to Decimal`);if(J instanceof Z)return J;try{return new Z(J)}catch(K){throw new Error(`Invalid numeric value: ${K.message}`)}};class E{constructor(J){if(!Array.isArray(J))throw new Error("Vector requires array");if(J.length===0)throw new Error("Vector requires at least one component");try{this.data=J.map((K,$)=>{if(K===null||K===void 0)throw new Error(`Vector component at index ${$} is ${K===null?"null":"undefined"}`);return jJ(K)})}catch(K){throw new Error(`Vector constructor failed: ${K.message}`)}this.length=this.data.length}static from(J){if(J===null||J===void 0)throw new Error(`Vector.from: argument is ${J===null?"null":"undefined"}`);return new E(J)}clone(){return new E(this.data.map((J)=>new Z(J)))}toArray(){return this.data.slice()}toNumberArray(){return this.data.map((J)=>J.toNumber())}toStringArray(){return this.data.map((J)=>J.toString())}add(J){if(!J||!(J instanceof E))throw new Error("add: argument must be a Vector");if(this.length!==J.length)throw new Error(`add: dimension mismatch (${this.length} vs ${J.length})`);return new E(this.data.map((K,$)=>K.plus(J.data[$])))}sub(J){if(!J||!(J instanceof E))throw new Error("sub: argument must be a Vector");if(this.length!==J.length)throw new Error(`sub: dimension mismatch (${this.length} vs ${J.length})`);return new E(this.data.map((K,$)=>K.minus(J.data[$])))}scale(J){if(J===null||J===void 0)throw new Error(`scale: scalar is ${J===null?"null":"undefined"}`);let K;try{K=jJ(J)}catch($){throw new Error(`scale: invalid scalar - ${$.message}`)}return new E(this.data.map(($)=>$.mul(K)))}negate(){return new E(this.data.map((J)=>J.negated()))}dot(J){if(!J||!(J instanceof E))throw new Error("dot: argument must be a Vector");if(this.length!==J.length)throw new Error(`dot: dimension mismatch (${this.length} vs ${J.length})`);return this.data.reduce((K,$,W)=>K.plus($.mul(J.data[W])),new Z(0))}outer(J){if(!J||!(J instanceof E))throw new Error("outer: argument must be a Vector");if(this.length===0||J.length===0)throw new Error("outer: cannot compute outer product with empty vector");let K=this.length,$=J.length;return Array.from({length:K},(Q,H)=>Array.from({length:$},(Y,F)=>this.data[H].mul(J.data[F])))}cross(J){if(!J||!(J instanceof E))throw new Error("cross: argument must be a Vector");if(this.length!==3||J.length!==3)throw new Error(`cross: requires 3D vectors (got ${this.length}D and ${J.length}D)`);let[K,$,W]=this.data,[Q,H,Y]=J.data;return new E([$.mul(Y).minus(W.mul(H)),W.mul(Q).minus(K.mul(Y)),K.mul(H).minus($.mul(Q))])}norm(){let J=new Z(0);for(let K of this.data)J=J.plus(K.mul(K));return J.sqrt()}normalize(){let J=this.norm();if(J.isZero())throw new Error("Cannot normalize zero vector");return this.scale(new Z(1).div(J))}angleBetween(J){if(!J||!(J instanceof E))throw new Error("angleBetween: argument must be a Vector");if(this.length!==J.length)throw new Error(`angleBetween: dimension mismatch (${this.length} vs ${J.length})`);let K=this.dot(J),$=this.norm(),W=J.norm();if($.isZero()||W.isZero())throw new Error("angleBetween: angle with zero vector is undefined");let H=K.div($.mul(W)).toNumber(),Y=Math.min(1,Math.max(-1,H));return new Z(Math.acos(Y))}projectOnto(J){if(!J||!(J instanceof E))throw new Error("projectOnto: argument must be a Vector");if(this.length!==J.length)throw new Error(`projectOnto: dimension mismatch (${this.length} vs ${J.length})`);let K=J.dot(J);if(K.isZero())throw new Error("projectOnto: cannot project onto zero vector");let $=this.dot(J).div(K);return J.scale($)}orthogonal(){if(this.norm().isZero())throw new Error("orthogonal: cannot find orthogonal vector to zero vector");if(this.length===2)return new E([this.data[1].negated(),this.data[0]]);for(let K=0;K<this.length;K++){let $=Array.from({length:this.length},(F,U)=>new Z(U===K?1:0)),W=new E($),Q=W.projectOnto(this),H=W.sub(Q);if(!H.norm().isZero())return H.normalize()}throw new Error("orthogonal: unable to find orthogonal vector (degenerate case)")}isOrthogonalTo(J){if(!J||!(J instanceof E))throw new Error("isOrthogonalTo: argument must be a Vector");if(this.length!==J.length)throw new Error(`isOrthogonalTo: dimension mismatch (${this.length} vs ${J.length})`);return this.dot(J).isZero()}distance(J){if(!J||!(J instanceof E))throw new Error("distance: argument must be a Vector");if(this.length!==J.length)throw new Error(`distance: dimension mismatch (${this.length} vs ${J.length})`);return this.sub(J).norm()}equals(J,K=0){if(!(J instanceof E))return!1;if(J.length!==this.length)return!1;if(K===null)throw new Error("equals: tolerance cannot be null");let $;try{if($=jJ(K),$.isNaN())throw new Error("equals: tolerance cannot be NaN");if($.isNegative())throw new Error("equals: tolerance must be non-negative")}catch(W){throw new Error(`equals: invalid tolerance - ${W.message}`)}for(let W=0;W<this.length;W++)if(this.data[W].minus(J.data[W]).abs().greaterThan($))return!1;return!0}}var e=(J)=>{if(J==null)throw new Error("Cannot convert null or undefined to Decimal");return J instanceof Z?J:new Z(J)};class N{constructor(J){if(!Array.isArray(J)||J.length===0)throw new Error("Matrix requires non-empty 2D array");if(!Array.isArray(J[0])||J[0].length===0)throw new Error("Matrix rows must be non-empty arrays");let K=J[0].length;for(let $ of J)if(!Array.isArray($)||$.length!==K)throw new Error("All rows must have same length");this.data=J.map(($)=>$.map((W)=>e(W))),this.rows=J.length,this.cols=K}static from(J){return new N(J)}static zeros(J,K){if(!Number.isInteger(J)||J<=0)throw new Error("rows must be a positive integer");if(!Number.isInteger(K)||K<=0)throw new Error("cols must be a positive integer");let $=Array.from({length:J},()=>Array.from({length:K},()=>new Z(0)));return new N($)}static identity(J){if(!Number.isInteger(J)||J<=0)throw new Error("size must be a positive integer");let K=Array.from({length:J},($,W)=>Array.from({length:J},(Q,H)=>W===H?new Z(1):new Z(0)));return new N(K)}clone(){return new N(this.data.map((J)=>J.map((K)=>new Z(K))))}toArrayOfStrings(){return this.data.map((J)=>J.map((K)=>K.toString()))}toNumberArray(){return this.data.map((J)=>J.map((K)=>K.toNumber()))}isSquare(){return this.rows===this.cols}applyToVector(J){let K;if(J instanceof E)K=J;else if(Array.isArray(J))K=E.from(J);else throw new Error("applyToVector expects Vector or array");if(this.cols!==K.length)throw new Error("shape mismatch: matrix cols must equal vector length");let $=[];for(let W=0;W<this.rows;W++){let Q=new Z(0);for(let H=0;H<this.cols;H++)Q=Q.plus(this.data[W][H].mul(K.data[H]));$.push(Q)}return new E($)}add(J){if(J instanceof N){if(this.rows!==J.rows||this.cols!==J.cols)throw new Error("shape mismatch: matrices must have same dimensions");return new N(this.data.map((K,$)=>K.map((W,Q)=>W.plus(J.data[$][Q]))))}else{let K=e(J);return new N(this.data.map(($)=>$.map((W)=>W.plus(K))))}}sub(J){if(J instanceof N){if(this.rows!==J.rows||this.cols!==J.cols)throw new Error("shape mismatch: matrices must have same dimensions");return new N(this.data.map((K,$)=>K.map((W,Q)=>W.minus(J.data[$][Q]))))}else{let K=e(J);return new N(this.data.map(($)=>$.map((W)=>W.minus(K))))}}mul(J){if(J instanceof N){if(this.cols!==J.rows)throw new Error("shape mismatch: A.cols must equal B.rows for matrix multiplication");let K=Array.from({length:this.rows},()=>Array.from({length:J.cols},()=>new Z(0)));for(let $=0;$<this.rows;$++)for(let W=0;W<this.cols;W++){let Q=this.data[$][W];if(Q.isZero())continue;for(let H=0;H<J.cols;H++)K[$][H]=K[$][H].plus(Q.mul(J.data[W][H]))}return new N(K)}else{let K=e(J);return new N(this.data.map(($)=>$.map((W)=>W.mul(K))))}}div(J){let K=e(J);if(K.isZero())throw new Error("Cannot divide by zero");return new N(this.data.map(($)=>$.map((W)=>W.div(K))))}negate(){return new N(this.data.map((J)=>J.map((K)=>K.negated())))}transpose(){let J=Array.from({length:this.cols},(K,$)=>Array.from({length:this.rows},(W,Q)=>new Z(this.data[Q][$])));return new N(J)}trace(){if(!this.isSquare())throw new Error("Trace only defined for square matrices");let J=new Z(0);for(let K=0;K<this.rows;K++)J=J.plus(this.data[K][K]);return J}equals(J,K=0){if(!(J instanceof N))return!1;if(this.rows!==J.rows||this.cols!==J.cols)return!1;let $=e(K);if($.isNegative()||!$.isFinite())throw new Error("tolerance must be non-negative and finite");for(let W=0;W<this.rows;W++)for(let Q=0;Q<this.cols;Q++)if(this.data[W][Q].minus(J.data[W][Q]).abs().greaterThan($))return!1;return!0}lu(){if(!this.isSquare())throw new Error("LU decomposition requires square matrix");let J=this.rows,K=this.data.map((Y)=>Y.map((F)=>new Z(F))),$=Array.from({length:J},(Y,F)=>F),W=Array.from({length:J},()=>Array.from({length:J},()=>new Z(0)));for(let Y=0;Y<J;Y++)W[Y][Y]=new Z(1);for(let Y=0;Y<J;Y++){let F=Y,U=K[Y][Y].abs();for(let X=Y+1;X<J;X++){let q=K[X][Y].abs();if(q.greaterThan(U))U=q,F=X}if(K[F][Y].isZero())throw new Error("Singular matrix: LU decomposition failed");if(F!==Y){let X=K[Y];K[Y]=K[F],K[F]=X;let q=$[Y];$[Y]=$[F],$[F]=q;for(let R=0;R<Y;R++){let V=W[Y][R];W[Y][R]=W[F][R],W[F][R]=V}}for(let X=Y+1;X<J;X++){let q=K[X][Y].div(K[Y][Y]);W[X][Y]=q;for(let R=Y;R<J;R++)K[X][R]=K[X][R].minus(q.mul(K[Y][R]))}}let Q=Array.from({length:J},(Y,F)=>Array.from({length:J},(U,X)=>X<F?new Z(0):K[F][X])),H=N.zeros(J,J);for(let Y=0;Y<J;Y++)H.data[Y][$[Y]]=new Z(1);return{L:new N(W),U:new N(Q),P:H}}determinant(){if(!this.isSquare())throw new Error("Determinant only defined for square matrices");let J=this.rows,{L:K,U:$,P:W}=this.lu(),Q=new Z(1);for(let F=0;F<J;F++)Q=Q.mul($.data[F][F]);let H=[];for(let F=0;F<J;F++)for(let U=0;U<J;U++)if(W.data[F][U].equals(1))H.push(U);let Y=0;for(let F=0;F<H.length;F++)for(let U=F+1;U<H.length;U++)if(H[F]>H[U])Y++;if(Y%2===1)Q=Q.negated();return Q}inverse(){if(!this.isSquare())throw new Error("Inverse only defined for square matrices");let J=this.rows,K=Array.from({length:J},(W,Q)=>Array.from({length:2*J},(H,Y)=>Y<J?new Z(this.data[Q][Y]):Y-J===Q?new Z(1):new Z(0)));for(let W=0;W<J;W++){let Q=W,H=K[W][W].abs();for(let F=W+1;F<J;F++){let U=K[F][W].abs();if(U.greaterThan(H))H=U,Q=F}if(K[Q][W].isZero())throw new Error("Singular matrix: inverse does not exist");if(Q!==W){let F=K[W];K[W]=K[Q],K[Q]=F}let Y=K[W][W];for(let F=0;F<2*J;F++)K[W][F]=K[W][F].div(Y);for(let F=0;F<J;F++){if(F===W)continue;let U=K[F][W];if(U.isZero())continue;for(let X=0;X<2*J;X++)K[F][X]=K[F][X].minus(U.mul(K[W][X]))}}let $=K.map((W)=>W.slice(J));return new N($)}solve(J){let K;if(J instanceof E)K=J;else if(Array.isArray(J))K=E.from(J);else throw new Error("b must be Vector or array");if(!this.isSquare())throw new Error("solve() only implemented for square matrices");let $=this.rows;if(K.length!==$)throw new Error("dimension mismatch: b length must equal matrix rows");let W=Array.from({length:$},(H,Y)=>Array.from({length:$+1},(F,U)=>new Z(U<$?this.data[Y][U]:K.data[Y])));for(let H=0;H<$;H++){let Y=H,F=W[H][H].abs();for(let U=H+1;U<$;U++){let X=W[U][H].abs();if(X.greaterThan(F))F=X,Y=U}if(W[Y][H].isZero())throw new Error("Singular matrix: no unique solution");if(Y!==H){let U=W[H];W[H]=W[Y],W[Y]=U}for(let U=H+1;U<$;U++){let X=W[U][H].div(W[H][H]);if(X.isZero())continue;for(let q=H;q<$+1;q++)W[U][q]=W[U][q].minus(X.mul(W[H][q]))}}let Q=Array.from({length:$},()=>new Z(0));for(let H=$-1;H>=0;H--){if(W[H][H].isZero())throw new Error("Zero diagonal element in back substitution: system is singular");let Y=new Z(0);for(let F=H+1;F<$;F++)Y=Y.plus(W[H][F].mul(Q[F]));Q[H]=W[H][$].minus(Y).div(W[H][H])}return new E(Q)}qr(){let J=this.rows,K=this.cols,$=this.data.map((H)=>H.map((Y)=>new Z(Y))),W=N.identity(J).data;for(let H=0;H<Math.min(J,K);H++){let Y=[];for(let R=H;R<J;R++)Y.push($[R][H]);let F=new Z(0);for(let R of Y)F=F.plus(R.mul(R));if(F=F.sqrt(),F.isZero())continue;let U=Y[0].isNegative()?new Z(-1):new Z(1),X=Y.slice();X[0]=X[0].plus(U.mul(F));let q=new Z(0);for(let R of X)q=q.plus(R.mul(R));if(q=q.sqrt(),q.isZero())continue;for(let R=0;R<X.length;R++)X[R]=X[R].div(q);for(let R=H;R<K;R++){let V=new Z(0);for(let z=0;z<X.length;z++)V=V.plus(X[z].mul($[H+z][R]));for(let z=0;z<X.length;z++)$[H+z][R]=$[H+z][R].minus(new Z(2).mul(X[z]).mul(V))}for(let R=0;R<J;R++){let V=new Z(0);for(let z=0;z<X.length;z++)V=V.plus(X[z].mul(W[H+z][R]));for(let z=0;z<X.length;z++)W[H+z][R]=W[H+z][R].minus(new Z(2).mul(X[z]).mul(V))}}let Q=Array.from({length:J},(H,Y)=>Array.from({length:K},(F,U)=>Y<=U?$[Y][U]:new Z(0)));return{Q:new N(W).transpose(),R:new N(Q)}}exp(J={}){let K=this.rows;if(!this.isSquare())throw new Error("Matrix exponential requires square matrix");let $=N.identity(K),W=J.maxIter||120;if(!Number.isInteger(W)||W<=0)throw new Error("maxIter must be a positive integer");let Q=new Z(J.tolerance||"1e-40");if(Q.isNegative()||Q.isZero()||!Q.isFinite())throw new Error("tolerance must be positive and finite");let Y=((R)=>{let V=new Z(0);for(let z=0;z<R.rows;z++){let B=new Z(0);for(let T=0;T<R.cols;T++)B=B.plus(R.data[z][T].abs());if(B.greaterThan(V))V=B}return V})(this),F=0;if(Y.greaterThan(new Z(1))){let R=Y.toNumber();if(!isFinite(R))throw new Error("Matrix norm too large for exponential computation");if(F=Math.max(0,Math.ceil(Math.log2(R))),F>50)throw new Error(`Matrix norm too large: requires ${F} scaling steps (max 50 allowed)`)}let U=this;if(F>0)U=this.mul(new Z(1).div(new Z(2).pow(F)));let X=$.clone(),q=$.clone();for(let R=1;R<W;R++){X=X.mul(U).mul(new Z(1).div(R)),q=q.add(X);let V=new Z(0);for(let z=0;z<X.rows;z++)for(let B=0;B<X.cols;B++)V=V.plus(X.data[z][B].abs());if(V.lessThan(Q))break}for(let R=0;R<F;R++)q=q.mul(q);return q}}var IJ={};AJ(IJ,{translation:()=>$J,stretchAlongAxis:()=>q$,skew:()=>LJ,scale:()=>bJ,rotateAroundPoint:()=>U$,rotate:()=>zJ,reflectY:()=>V$,reflectX:()=>R$,reflectOrigin:()=>G$,applyTransform:()=>kJ});var u=(J)=>{if(J instanceof Z){if(!J.isFinite())throw new Error(`Value must be finite (got ${J.toString()})`);return J}try{let K=new Z(J);if(!K.isFinite())throw new Error(`Value must be finite (got ${J})`);return K}catch(K){throw new Error(`Invalid numeric value: "${J}" (${K.message})`)}};function h(J,K){if(J===void 0||J===null)throw new Error(`${K} is required`);if(typeof J!=="number"&&typeof J!=="string"&&!(J instanceof Z))throw new Error(`${K} must be a number, string, or Decimal`);if(typeof J==="number"&&!isFinite(J))throw new Error(`${K} must be a finite number (got ${J})`);if(J instanceof Z&&!J.isFinite())throw new Error(`${K} must be a finite Decimal (got ${J.toString()})`)}function $J(J,K){return h(J,"tx"),h(K,"ty"),N.from([[new Z(1),new Z(0),u(J)],[new Z(0),new Z(1),u(K)],[new Z(0),new Z(0),new Z(1)]])}function bJ(J,K=null){if(h(J,"sx"),K!==null)h(K,"sy");let $=K===null?J:K,W=u(J),Q=u($);if(W.isZero()||Q.isZero())throw new Error("Scale factors cannot be zero (creates singular matrix)");return N.from([[W,new Z(0),new Z(0)],[new Z(0),Q,new Z(0)],[new Z(0),new Z(0),new Z(1)]])}function zJ(J){h(J,"theta");let $=u(J).toNumber(),W=Math.PI,Q=$-2*W*Math.floor(($+W)/(2*W));if(!isFinite(Q))throw new Error(`Angle normalization failed for theta=${J} (too large or invalid)`);let H=new Z(Math.cos(Q)),Y=new Z(Math.sin(Q));if(!H.isFinite()||!Y.isFinite())throw new Error(`Trigonometric computation failed for theta=${J} (produced non-finite values)`);return N.from([[H,Y.negated(),new Z(0)],[Y,H,new Z(0)],[new Z(0),new Z(0),new Z(1)]])}function U$(J,K,$){h(J,"theta"),h(K,"px"),h($,"py");let W=u(K),Q=u($);return $J(W,Q).mul(zJ(J)).mul($J(W.negated(),Q.negated()))}function LJ(J,K){h(J,"ax"),h(K,"ay");let $=u(J),W=u(K);if(new Z(1).minus($.mul(W)).lessThanOrEqualTo(0))throw new Error(`Skew parameters create singular or orientation-inverting matrix (ax*ay = ${$.mul(W).toString()}, must be < 1)`);return N.from([[new Z(1),$,new Z(0)],[W,new Z(1),new Z(0)],[new Z(0),new Z(0),new Z(1)]])}function q$(J,K,$){h(J,"ux"),h(K,"uy"),h($,"k");let W=u(J),Q=u(K),H=u($);if(H.isZero())throw new Error("Stretch factor k cannot be zero (creates singular matrix)");let Y=W.mul(W).plus(Q.mul(Q));if(Y.isZero())throw new Error("Axis vector (ux, uy) cannot be zero");let F=Y.minus(1).abs(),U=new Z(0.000001);if(F.greaterThan(U))throw new Error(`Axis vector (ux, uy) must be normalized (||u|| = 1). Current magnitude squared: ${Y.toString()}, expected: 1. Use normalized vector: (${W.div(Y.sqrt()).toString()}, ${Q.div(Y.sqrt()).toString()})`);let X=new Z(1),q=H.minus(X),R=X.plus(q.mul(W.mul(W))),V=q.mul(W.mul(Q)),z=q.mul(Q.mul(W)),B=X.plus(q.mul(Q.mul(Q)));return N.from([[R,V,new Z(0)],[z,B,new Z(0)],[new Z(0),new Z(0),new Z(1)]])}function kJ(J,K,$){if(!J||typeof J.mul!=="function")throw new Error("applyTransform: first argument must be a Matrix");if(!J.data||!Array.isArray(J.data)||J.data.length!==3||!J.data[0]||J.data[0].length!==3||!J.data[1]||J.data[1].length!==3||!J.data[2]||J.data[2].length!==3)throw new Error("applyTransform: matrix must be 3x3");h(K,"x"),h($,"y");let W=N.from([[u(K)],[u($)],[new Z(1)]]),Q=J.mul(W);if(!Q||!Q.data||!Array.isArray(Q.data)||Q.data.length!==3||!Q.data[0]||!Q.data[0][0]||!Q.data[1]||!Q.data[1][0]||!Q.data[2]||!Q.data[2][0])throw new Error("applyTransform: matrix multiplication produced invalid result");let H=Q.data[0][0],Y=Q.data[1][0],F=Q.data[2][0];if(F.isZero())throw new Error("applyTransform: perspective division by zero (invalid transformation matrix)");return[H.div(F),Y.div(F)]}function R$(){return N.from([[new Z(1),new Z(0),new Z(0)],[new Z(0),new Z(-1),new Z(0)],[new Z(0),new Z(0),new Z(1)]])}function V$(){return N.from([[new Z(-1),new Z(0),new Z(0)],[new Z(0),new Z(1),new Z(0)],[new Z(0),new Z(0),new Z(1)]])}function G$(){return N.from([[new Z(-1),new Z(0),new Z(0)],[new Z(0),new Z(-1),new Z(0)],[new Z(0),new Z(0),new Z(1)]])}var _J={};AJ(_J,{translation:()=>WJ,scale:()=>gJ,rotateZ:()=>vJ,rotateY:()=>hJ,rotateX:()=>CJ,rotateAroundPoint:()=>z$,rotateAroundAxis:()=>rJ,reflectYZ:()=>_$,reflectXZ:()=>N$,reflectXY:()=>I$,reflectOrigin:()=>T$,applyTransform:()=>uJ});var j=(J)=>{if(J instanceof Z)return J;try{let K=new Z(J);if(!K.isFinite())throw new Error(`Value must be finite, got ${J}`);return K}catch(K){throw new Error(`Invalid numeric value: ${J}`)}};function P(J,K){if(J===void 0||J===null)throw new Error(`${K} is required`);if(typeof J!=="number"&&typeof J!=="string"&&!(J instanceof Z))throw new Error(`${K} must be a number, string, or Decimal`)}function NJ(J){let K=J.toNumber();if(!Number.isFinite(K))throw new Error(`Angle must be finite, got ${J}`);if(Math.abs(K)<=6.283185307179586)return K;return K%6.283185307179586}function WJ(J,K,$){return P(J,"tx"),P(K,"ty"),P($,"tz"),N.from([[new Z(1),new Z(0),new Z(0),j(J)],[new Z(0),new Z(1),new Z(0),j(K)],[new Z(0),new Z(0),new Z(1),j($)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function gJ(J,K=null,$=null){if(P(J,"sx"),K!==null)P(K,"sy");if($!==null)P($,"sz");let W=K===null?J:K,Q=$===null?J:$,H=j(J),Y=j(W),F=j(Q);return N.from([[H,new Z(0),new Z(0),new Z(0)],[new Z(0),Y,new Z(0),new Z(0)],[new Z(0),new Z(0),F,new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function CJ(J){P(J,"theta");let K=j(J),$=NJ(K),W=new Z(Math.cos($)),Q=new Z(Math.sin($));return N.from([[new Z(1),new Z(0),new Z(0),new Z(0)],[new Z(0),W,Q.negated(),new Z(0)],[new Z(0),Q,W,new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function hJ(J){P(J,"theta");let K=j(J),$=NJ(K),W=new Z(Math.cos($)),Q=new Z(Math.sin($));return N.from([[W,new Z(0),Q,new Z(0)],[new Z(0),new Z(1),new Z(0),new Z(0)],[Q.negated(),new Z(0),W,new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function vJ(J){P(J,"theta");let K=j(J),$=NJ(K),W=new Z(Math.cos($)),Q=new Z(Math.sin($));return N.from([[W,Q.negated(),new Z(0),new Z(0)],[Q,W,new Z(0),new Z(0)],[new Z(0),new Z(0),new Z(1),new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function rJ(J,K,$,W){P(J,"ux"),P(K,"uy"),P($,"uz"),P(W,"theta");let Q=[j(J),j(K),j($)],H=Q[0].mul(Q[0]).plus(Q[1].mul(Q[1])).plus(Q[2].mul(Q[2])).sqrt();if(H.isZero())throw new Error("Rotation axis cannot be zero vector (ux=0, uy=0, uz=0)");Q[0]=Q[0].div(H),Q[1]=Q[1].div(H),Q[2]=Q[2].div(H);let Y=j(W),F=NJ(Y),U=new Z(Math.cos(F)),X=new Z(Math.sin(F)),q=new Z(1),R=Q[0].mul(Q[0]),V=Q[1].mul(Q[1]),z=Q[2].mul(Q[2]),B=R.plus(U.mul(q.minus(R))),T=Q[0].mul(Q[1]).mul(q.minus(U)).minus(Q[2].mul(X)),L=Q[0].mul(Q[2]).mul(q.minus(U)).plus(Q[1].mul(X)),M=Q[1].mul(Q[0]).mul(q.minus(U)).plus(Q[2].mul(X)),D=V.plus(U.mul(q.minus(V))),A=Q[1].mul(Q[2]).mul(q.minus(U)).minus(Q[0].mul(X)),b=Q[2].mul(Q[0]).mul(q.minus(U)).minus(Q[1].mul(X)),a=Q[2].mul(Q[1]).mul(q.minus(U)).plus(Q[0].mul(X)),p=z.plus(U.mul(q.minus(z)));return N.from([[B,T,L,new Z(0)],[M,D,A,new Z(0)],[b,a,p,new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function z$(J,K,$,W,Q,H,Y){P(J,"ux"),P(K,"uy"),P($,"uz"),P(W,"theta"),P(Q,"px"),P(H,"py"),P(Y,"pz");let F=j(Q),U=j(H),X=j(Y);return WJ(F,U,X).mul(rJ(J,K,$,W)).mul(WJ(F.negated(),U.negated(),X.negated()))}function uJ(J,K,$,W){if(!(J instanceof N))throw new Error("M must be a Matrix instance");if(J.rows!==4||J.cols!==4)throw new Error(`M must be a 4x4 matrix, got ${J.rows}x${J.cols}`);P(K,"x"),P($,"y"),P(W,"z");let Q=N.from([[j(K)],[j($)],[j(W)],[new Z(1)]]),H=J.mul(Q),Y=H.data[0][0],F=H.data[1][0],U=H.data[2][0],X=H.data[3][0];if(X.isZero())throw new Error("Perspective division by zero: transformation results in point at infinity");return[Y.div(X),F.div(X),U.div(X)]}function I$(){return N.from([[new Z(1),new Z(0),new Z(0),new Z(0)],[new Z(0),new Z(1),new Z(0),new Z(0)],[new Z(0),new Z(0),new Z(-1),new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function N$(){return N.from([[new Z(1),new Z(0),new Z(0),new Z(0)],[new Z(0),new Z(-1),new Z(0),new Z(0)],[new Z(0),new Z(0),new Z(1),new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function _$(){return N.from([[new Z(-1),new Z(0),new Z(0),new Z(0)],[new Z(0),new Z(1),new Z(0),new Z(0)],[new Z(0),new Z(0),new Z(1),new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function T$(){return N.from([[new Z(-1),new Z(0),new Z(0),new Z(0)],[new Z(0),new Z(-1),new Z(0),new Z(0)],[new Z(0),new Z(0),new Z(-1),new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}Z.set({precision:80});var JK="1.3.14";var KK=$J,$K=zJ,WK=bJ,QK=LJ,HK=kJ,YK=WJ,FK=CJ,ZK=hJ,XK=vJ,UK=gJ,qK=uJ,RK={VERSION:JK,Decimal:Z,Matrix:N,Vector:E,Transforms2D:IJ,Transforms3D:_J,translate2D:KK,rotate2D:$K,scale2D:WK,skew2D:QK,applyTransform2D:HK,translate3D:YK,rotateX:FK,rotateY:ZK,rotateZ:XK,scale3D:UK,applyTransform3D:qK},O$=RK;if(typeof window!=="undefined")window.SVGMatrixLib=RK;})();
|
|
8
|
+
*/var i=9000000000000000,x=1e9,wJ="0123456789abcdef",XJ="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",UJ="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",SJ={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-i,maxE:i,crypto:!1},lJ,n,O=!0,RJ="[DecimalError] ",o=RJ+"Invalid argument: ",dJ=RJ+"Precision limit exceeded",nJ=RJ+"crypto unavailable",mJ="[object Decimal]",C=Math.floor,f=Math.pow,NK=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,_K=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,TK=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,sJ=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,c=1e7,_=7,BK=9007199254740991,OK=XJ.length-1,MJ=UJ.length-1,G={toStringTag:mJ};G.absoluteValue=G.abs=function(){var J=new this.constructor(this);if(J.s<0)J.s=1;return I(J)};G.ceil=function(){return I(new this.constructor(this),this.e+1,2)};G.clampedTo=G.clamp=function(J,K){var $,W=this,Q=W.constructor;if(J=new Q(J),K=new Q(K),!J.s||!K.s)return new Q(NaN);if(J.gt(K))throw Error(o+K);return $=W.cmp(J),$<0?J:W.cmp(K)>0?K:new Q(W)};G.comparedTo=G.cmp=function(J){var K,$,W,Q,H=this,Y=H.d,F=(J=new H.constructor(J)).d,U=H.s,X=J.s;if(!Y||!F)return!U||!X?NaN:U!==X?U:Y===F?0:!Y^U<0?1:-1;if(!Y[0]||!F[0])return Y[0]?U:F[0]?-X:0;if(U!==X)return U;if(H.e!==J.e)return H.e>J.e^U<0?1:-1;W=Y.length,Q=F.length;for(K=0,$=W<Q?W:Q;K<$;++K)if(Y[K]!==F[K])return Y[K]>F[K]^U<0?1:-1;return W===Q?0:W>Q^U<0?1:-1};G.cosine=G.cos=function(){var J,K,$=this,W=$.constructor;if(!$.d)return new W(NaN);if(!$.d[0])return new W(1);return J=W.precision,K=W.rounding,W.precision=J+Math.max($.e,$.sd())+_,W.rounding=1,$=EK(W,tJ(W,$)),W.precision=J,W.rounding=K,I(n==2||n==3?$.neg():$,J,K,!0)};G.cubeRoot=G.cbrt=function(){var J,K,$,W,Q,H,Y,F,U,X,q=this,R=q.constructor;if(!q.isFinite()||q.isZero())return new R(q);if(O=!1,H=q.s*f(q.s*q,0.3333333333333333),!H||Math.abs(H)==1/0){if($=k(q.d),J=q.e,H=(J-$.length+1)%3)$+=H==1||H==-2?"0":"00";if(H=f($,0.3333333333333333),J=C((J+1)/3)-(J%3==(J<0?-1:2)),H==1/0)$="5e"+J;else $=H.toExponential(),$=$.slice(0,$.indexOf("e")+1)+J;W=new R($),W.s=q.s}else W=new R(H.toString());Y=(J=R.precision)+3;for(;;)if(F=W,U=F.times(F).times(F),X=U.plus(q),W=w(X.plus(q).times(F),X.plus(U),Y+2,1),k(F.d).slice(0,Y)===($=k(W.d)).slice(0,Y))if($=$.slice(Y-3,Y+1),$=="9999"||!Q&&$=="4999"){if(!Q){if(I(F,J+1,0),F.times(F).times(F).eq(q)){W=F;break}}Y+=4,Q=1}else{if(!+$||!+$.slice(1)&&$.charAt(0)=="5")I(W,J+1,1),K=!W.times(W).times(W).eq(q);break}return O=!0,I(W,J,R.rounding,K)};G.decimalPlaces=G.dp=function(){var J,K=this.d,$=NaN;if(K){if(J=K.length-1,$=(J-C(this.e/_))*_,J=K[J],J)for(;J%10==0;J/=10)$--;if($<0)$=0}return $};G.dividedBy=G.div=function(J){return w(this,new this.constructor(J))};G.dividedToIntegerBy=G.divToInt=function(J){var K=this,$=K.constructor;return I(w(K,new $(J),0,1,1),$.precision,$.rounding)};G.equals=G.eq=function(J){return this.cmp(J)===0};G.floor=function(){return I(new this.constructor(this),this.e+1,3)};G.greaterThan=G.gt=function(J){return this.cmp(J)>0};G.greaterThanOrEqualTo=G.gte=function(J){var K=this.cmp(J);return K==1||K===0};G.hyperbolicCosine=G.cosh=function(){var J,K,$,W,Q,H=this,Y=H.constructor,F=new Y(1);if(!H.isFinite())return new Y(H.s?1/0:NaN);if(H.isZero())return F;if($=Y.precision,W=Y.rounding,Y.precision=$+Math.max(H.e,H.sd())+4,Y.rounding=1,Q=H.d.length,Q<32)J=Math.ceil(Q/3),K=(1/GJ(4,J)).toString();else J=16,K="2.3283064365386962890625e-10";H=t(Y,1,H.times(K),new Y(1),!0);var U,X=J,q=new Y(8);for(;X--;)U=H.times(H),H=F.minus(U.times(q.minus(U.times(q))));return I(H,Y.precision=$,Y.rounding=W,!0)};G.hyperbolicSine=G.sinh=function(){var J,K,$,W,Q=this,H=Q.constructor;if(!Q.isFinite()||Q.isZero())return new H(Q);if(K=H.precision,$=H.rounding,H.precision=K+Math.max(Q.e,Q.sd())+4,H.rounding=1,W=Q.d.length,W<3)Q=t(H,2,Q,Q,!0);else{J=1.4*Math.sqrt(W),J=J>16?16:J|0,Q=Q.times(1/GJ(5,J)),Q=t(H,2,Q,Q,!0);var Y,F=new H(5),U=new H(16),X=new H(20);for(;J--;)Y=Q.times(Q),Q=Q.times(F.plus(Y.times(U.times(Y).plus(X))))}return H.precision=K,H.rounding=$,I(Q,K,$,!0)};G.hyperbolicTangent=G.tanh=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite())return new W($.s);if($.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+7,W.rounding=1,w($.sinh(),$.cosh(),W.precision=J,W.rounding=K)};G.inverseCosine=G.acos=function(){var J=this,K=J.constructor,$=J.abs().cmp(1),W=K.precision,Q=K.rounding;if($!==-1)return $===0?J.isNeg()?l(K,W,Q):new K(0):new K(NaN);if(J.isZero())return l(K,W+4,Q).times(0.5);return K.precision=W+6,K.rounding=1,J=new K(1).minus(J).div(J.plus(1)).sqrt().atan(),K.precision=W,K.rounding=Q,J.times(2)};G.inverseHyperbolicCosine=G.acosh=function(){var J,K,$=this,W=$.constructor;if($.lte(1))return new W($.eq(1)?0:NaN);if(!$.isFinite())return new W($);return J=W.precision,K=W.rounding,W.precision=J+Math.max(Math.abs($.e),$.sd())+4,W.rounding=1,O=!1,$=$.times($).minus(1).sqrt().plus($),O=!0,W.precision=J,W.rounding=K,$.ln()};G.inverseHyperbolicSine=G.asinh=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite()||$.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+2*Math.max(Math.abs($.e),$.sd())+6,W.rounding=1,O=!1,$=$.times($).plus(1).sqrt().plus($),O=!0,W.precision=J,W.rounding=K,$.ln()};G.inverseHyperbolicTangent=G.atanh=function(){var J,K,$,W,Q=this,H=Q.constructor;if(!Q.isFinite())return new H(NaN);if(Q.e>=0)return new H(Q.abs().eq(1)?Q.s/0:Q.isZero()?Q:NaN);if(J=H.precision,K=H.rounding,W=Q.sd(),Math.max(W,J)<2*-Q.e-1)return I(new H(Q),J,K,!0);return H.precision=$=W-Q.e,Q=w(Q.plus(1),new H(1).minus(Q),$+J,1),H.precision=J+4,H.rounding=1,Q=Q.ln(),H.precision=J,H.rounding=K,Q.times(0.5)};G.inverseSine=G.asin=function(){var J,K,$,W,Q=this,H=Q.constructor;if(Q.isZero())return new H(Q);if(K=Q.abs().cmp(1),$=H.precision,W=H.rounding,K!==-1){if(K===0)return J=l(H,$+4,W).times(0.5),J.s=Q.s,J;return new H(NaN)}return H.precision=$+6,H.rounding=1,Q=Q.div(new H(1).minus(Q.times(Q)).sqrt().plus(1)).atan(),H.precision=$,H.rounding=W,Q.times(2)};G.inverseTangent=G.atan=function(){var J,K,$,W,Q,H,Y,F,U,X=this,q=X.constructor,R=q.precision,V=q.rounding;if(!X.isFinite()){if(!X.s)return new q(NaN);if(R+4<=MJ)return Y=l(q,R+4,V).times(0.5),Y.s=X.s,Y}else if(X.isZero())return new q(X);else if(X.abs().eq(1)&&R+4<=MJ)return Y=l(q,R+4,V).times(0.25),Y.s=X.s,Y;q.precision=F=R+10,q.rounding=1,$=Math.min(28,F/_+2|0);for(J=$;J;--J)X=X.div(X.times(X).plus(1).sqrt().plus(1));O=!1,K=Math.ceil(F/_),W=1,U=X.times(X),Y=new q(X),Q=X;for(;J!==-1;)if(Q=Q.times(U),H=Y.minus(Q.div(W+=2)),Q=Q.times(U),Y=H.plus(Q.div(W+=2)),Y.d[K]!==void 0)for(J=K;Y.d[J]===H.d[J]&&J--;);if($)Y=Y.times(2<<$-1);return O=!0,I(Y,q.precision=R,q.rounding=V,!0)};G.isFinite=function(){return!!this.d};G.isInteger=G.isInt=function(){return!!this.d&&C(this.e/_)>this.d.length-2};G.isNaN=function(){return!this.s};G.isNegative=G.isNeg=function(){return this.s<0};G.isPositive=G.isPos=function(){return this.s>0};G.isZero=function(){return!!this.d&&this.d[0]===0};G.lessThan=G.lt=function(J){return this.cmp(J)<0};G.lessThanOrEqualTo=G.lte=function(J){return this.cmp(J)<1};G.logarithm=G.log=function(J){var K,$,W,Q,H,Y,F,U,X=this,q=X.constructor,R=q.precision,V=q.rounding,z=5;if(J==null)J=new q(10),K=!0;else{if(J=new q(J),$=J.d,J.s<0||!$||!$[0]||J.eq(1))return new q(NaN);K=J.eq(10)}if($=X.d,X.s<0||!$||!$[0]||X.eq(1))return new q($&&!$[0]?-1/0:X.s!=1?NaN:$?0:1/0);if(K)if($.length>1)H=!0;else{for(Q=$[0];Q%10===0;)Q/=10;H=Q!==1}if(O=!1,F=R+z,Y=s(X,F),W=K?qJ(q,F+10):s(J,F),U=w(Y,W,F,1),JJ(U.d,Q=R,V))do if(F+=10,Y=s(X,F),W=K?qJ(q,F+10):s(J,F),U=w(Y,W,F,1),!H){if(+k(U.d).slice(Q+1,Q+15)+1==100000000000000)U=I(U,R+1,0);break}while(JJ(U.d,Q+=10,V));return O=!0,I(U,R,V)};G.minus=G.sub=function(J){var K,$,W,Q,H,Y,F,U,X,q,R,V,z=this,B=z.constructor;if(J=new B(J),!z.d||!J.d){if(!z.s||!J.s)J=new B(NaN);else if(z.d)J.s=-J.s;else J=new B(J.d||z.s!==J.s?z:NaN);return J}if(z.s!=J.s)return J.s=-J.s,z.plus(J);if(X=z.d,V=J.d,F=B.precision,U=B.rounding,!X[0]||!V[0]){if(V[0])J.s=-J.s;else if(X[0])J=new B(z);else return new B(U===3?-0:0);return O?I(J,F,U):J}if($=C(J.e/_),q=C(z.e/_),X=X.slice(),H=q-$,H){if(R=H<0,R)K=X,H=-H,Y=V.length;else K=V,$=q,Y=X.length;if(W=Math.max(Math.ceil(F/_),Y)+2,H>W)H=W,K.length=1;K.reverse();for(W=H;W--;)K.push(0);K.reverse()}else{if(W=X.length,Y=V.length,R=W<Y,R)Y=W;for(W=0;W<Y;W++)if(X[W]!=V[W]){R=X[W]<V[W];break}H=0}if(R)K=X,X=V,V=K,J.s=-J.s;Y=X.length;for(W=V.length-Y;W>0;--W)X[Y++]=0;for(W=V.length;W>H;){if(X[--W]<V[W]){for(Q=W;Q&&X[--Q]===0;)X[Q]=c-1;--X[Q],X[W]+=c}X[W]-=V[W]}for(;X[--Y]===0;)X.pop();for(;X[0]===0;X.shift())--$;if(!X[0])return new B(U===3?-0:0);return J.d=X,J.e=VJ(X,$),O?I(J,F,U):J};G.modulo=G.mod=function(J){var K,$=this,W=$.constructor;if(J=new W(J),!$.d||!J.s||J.d&&!J.d[0])return new W(NaN);if(!J.d||$.d&&!$.d[0])return I(new W($),W.precision,W.rounding);if(O=!1,W.modulo==9)K=w($,J.abs(),0,3,1),K.s*=J.s;else K=w($,J,0,W.modulo,1);return K=K.times(J),O=!0,$.minus(K)};G.naturalExponential=G.exp=function(){return PJ(this)};G.naturalLogarithm=G.ln=function(){return s(this)};G.negated=G.neg=function(){var J=new this.constructor(this);return J.s=-J.s,I(J)};G.plus=G.add=function(J){var K,$,W,Q,H,Y,F,U,X,q,R=this,V=R.constructor;if(J=new V(J),!R.d||!J.d){if(!R.s||!J.s)J=new V(NaN);else if(!R.d)J=new V(J.d||R.s===J.s?R:NaN);return J}if(R.s!=J.s)return J.s=-J.s,R.minus(J);if(X=R.d,q=J.d,F=V.precision,U=V.rounding,!X[0]||!q[0]){if(!q[0])J=new V(R);return O?I(J,F,U):J}if(H=C(R.e/_),W=C(J.e/_),X=X.slice(),Q=H-W,Q){if(Q<0)$=X,Q=-Q,Y=q.length;else $=q,W=H,Y=X.length;if(H=Math.ceil(F/_),Y=H>Y?H+1:Y+1,Q>Y)Q=Y,$.length=1;$.reverse();for(;Q--;)$.push(0);$.reverse()}if(Y=X.length,Q=q.length,Y-Q<0)Q=Y,$=q,q=X,X=$;for(K=0;Q;)K=(X[--Q]=X[Q]+q[Q]+K)/c|0,X[Q]%=c;if(K)X.unshift(K),++W;for(Y=X.length;X[--Y]==0;)X.pop();return J.d=X,J.e=VJ(X,W),O?I(J,F,U):J};G.precision=G.sd=function(J){var K,$=this;if(J!==void 0&&J!==!!J&&J!==1&&J!==0)throw Error(o+J);if($.d){if(K=oJ($.d),J&&$.e+1>K)K=$.e+1}else K=NaN;return K};G.round=function(){var J=this,K=J.constructor;return I(new K(J),J.e+1,K.rounding)};G.sine=G.sin=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite())return new W(NaN);if($.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+Math.max($.e,$.sd())+_,W.rounding=1,$=wK(W,tJ(W,$)),W.precision=J,W.rounding=K,I(n>2?$.neg():$,J,K,!0)};G.squareRoot=G.sqrt=function(){var J,K,$,W,Q,H,Y=this,F=Y.d,U=Y.e,X=Y.s,q=Y.constructor;if(X!==1||!F||!F[0])return new q(!X||X<0&&(!F||F[0])?NaN:F?Y:1/0);if(O=!1,X=Math.sqrt(+Y),X==0||X==1/0){if(K=k(F),(K.length+U)%2==0)K+="0";if(X=Math.sqrt(K),U=C((U+1)/2)-(U<0||U%2),X==1/0)K="5e"+U;else K=X.toExponential(),K=K.slice(0,K.indexOf("e")+1)+U;W=new q(K)}else W=new q(X.toString());$=(U=q.precision)+3;for(;;)if(H=W,W=H.plus(w(Y,H,$+2,1)).times(0.5),k(H.d).slice(0,$)===(K=k(W.d)).slice(0,$))if(K=K.slice($-3,$+1),K=="9999"||!Q&&K=="4999"){if(!Q){if(I(H,U+1,0),H.times(H).eq(Y)){W=H;break}}$+=4,Q=1}else{if(!+K||!+K.slice(1)&&K.charAt(0)=="5")I(W,U+1,1),J=!W.times(W).eq(Y);break}return O=!0,I(W,U,q.rounding,J)};G.tangent=G.tan=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite())return new W(NaN);if($.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+10,W.rounding=1,$=$.sin(),$.s=1,$=w($,new W(1).minus($.times($)).sqrt(),J+10,0),W.precision=J,W.rounding=K,I(n==2||n==4?$.neg():$,J,K,!0)};G.times=G.mul=function(J){var K,$,W,Q,H,Y,F,U,X,q=this,R=q.constructor,V=q.d,z=(J=new R(J)).d;if(J.s*=q.s,!V||!V[0]||!z||!z[0])return new R(!J.s||V&&!V[0]&&!z||z&&!z[0]&&!V?NaN:!V||!z?J.s/0:J.s*0);if($=C(q.e/_)+C(J.e/_),U=V.length,X=z.length,U<X)H=V,V=z,z=H,Y=U,U=X,X=Y;H=[],Y=U+X;for(W=Y;W--;)H.push(0);for(W=X;--W>=0;){K=0;for(Q=U+W;Q>W;)F=H[Q]+z[W]*V[Q-W-1]+K,H[Q--]=F%c|0,K=F/c|0;H[Q]=(H[Q]+K)%c|0}for(;!H[--Y];)H.pop();if(K)++$;else H.shift();return J.d=H,J.e=VJ(H,$),O?I(J,R.precision,R.rounding):J};G.toBinary=function(J,K){return fJ(this,2,J,K)};G.toDecimalPlaces=G.toDP=function(J,K){var $=this,W=$.constructor;if($=new W($),J===void 0)return $;if(v(J,0,x),K===void 0)K=W.rounding;else v(K,0,8);return I($,J+$.e+1,K)};G.toExponential=function(J,K){var $,W=this,Q=W.constructor;if(J===void 0)$=d(W,!0);else{if(v(J,0,x),K===void 0)K=Q.rounding;else v(K,0,8);W=I(new Q(W),J+1,K),$=d(W,!0,J+1)}return W.isNeg()&&!W.isZero()?"-"+$:$};G.toFixed=function(J,K){var $,W,Q=this,H=Q.constructor;if(J===void 0)$=d(Q);else{if(v(J,0,x),K===void 0)K=H.rounding;else v(K,0,8);W=I(new H(Q),J+Q.e+1,K),$=d(W,!1,J+W.e+1)}return Q.isNeg()&&!Q.isZero()?"-"+$:$};G.toFraction=function(J){var K,$,W,Q,H,Y,F,U,X,q,R,V,z=this,B=z.d,T=z.constructor;if(!B)return new T(z);if(X=$=new T(1),W=U=new T(0),K=new T(W),H=K.e=oJ(B)-z.e-1,Y=H%_,K.d[0]=f(10,Y<0?_+Y:Y),J==null)J=H>0?K:X;else{if(F=new T(J),!F.isInt()||F.lt(X))throw Error(o+F);J=F.gt(K)?H>0?K:X:F}O=!1,F=new T(k(B)),q=T.precision,T.precision=H=B.length*_*2;for(;;){if(R=w(F,K,0,1,1),Q=$.plus(R.times(W)),Q.cmp(J)==1)break;$=W,W=Q,Q=X,X=U.plus(R.times(Q)),U=Q,Q=K,K=F.minus(R.times(Q)),F=Q}return Q=w(J.minus($),W,0,1,1),U=U.plus(Q.times(X)),$=$.plus(Q.times(W)),U.s=X.s=z.s,V=w(X,W,H,1).minus(z).abs().cmp(w(U,$,H,1).minus(z).abs())<1?[X,W]:[U,$],T.precision=q,O=!0,V};G.toHexadecimal=G.toHex=function(J,K){return fJ(this,16,J,K)};G.toNearest=function(J,K){var $=this,W=$.constructor;if($=new W($),J==null){if(!$.d)return $;J=new W(1),K=W.rounding}else{if(J=new W(J),K===void 0)K=W.rounding;else v(K,0,8);if(!$.d)return J.s?$:J;if(!J.d){if(J.s)J.s=$.s;return J}}if(J.d[0])O=!1,$=w($,J,0,K,1).times(J),O=!0,I($);else J.s=$.s,$=J;return $};G.toNumber=function(){return+this};G.toOctal=function(J,K){return fJ(this,8,J,K)};G.toPower=G.pow=function(J){var K,$,W,Q,H,Y,F=this,U=F.constructor,X=+(J=new U(J));if(!F.d||!J.d||!F.d[0]||!J.d[0])return new U(f(+F,X));if(F=new U(F),F.eq(1))return F;if(W=U.precision,H=U.rounding,J.eq(1))return I(F,W,H);if(K=C(J.e/_),K>=J.d.length-1&&($=X<0?-X:X)<=BK)return Q=xJ(U,F,$,W),J.s<0?new U(1).div(Q):I(Q,W,H);if(Y=F.s,Y<0){if(K<J.d.length-1)return new U(NaN);if((J.d[K]&1)==0)Y=1;if(F.e==0&&F.d[0]==1&&F.d.length==1)return F.s=Y,F}if($=f(+F,X),K=$==0||!isFinite($)?C(X*(Math.log("0."+k(F.d))/Math.LN10+F.e+1)):new U($+"").e,K>U.maxE+1||K<U.minE-1)return new U(K>0?Y/0:0);if(O=!1,U.rounding=F.s=1,$=Math.min(12,(K+"").length),Q=PJ(J.times(s(F,W+$)),W),Q.d){if(Q=I(Q,W+5,1),JJ(Q.d,W,H)){if(K=W+10,Q=I(PJ(J.times(s(F,K+$)),K),K+5,1),+k(Q.d).slice(W+1,W+15)+1==100000000000000)Q=I(Q,W+1,0)}}return Q.s=Y,O=!0,U.rounding=H,I(Q,W,H)};G.toPrecision=function(J,K){var $,W=this,Q=W.constructor;if(J===void 0)$=d(W,W.e<=Q.toExpNeg||W.e>=Q.toExpPos);else{if(v(J,1,x),K===void 0)K=Q.rounding;else v(K,0,8);W=I(new Q(W),J,K),$=d(W,J<=W.e||W.e<=Q.toExpNeg,J)}return W.isNeg()&&!W.isZero()?"-"+$:$};G.toSignificantDigits=G.toSD=function(J,K){var $=this,W=$.constructor;if(J===void 0)J=W.precision,K=W.rounding;else if(v(J,1,x),K===void 0)K=W.rounding;else v(K,0,8);return I(new W($),J,K)};G.toString=function(){var J=this,K=J.constructor,$=d(J,J.e<=K.toExpNeg||J.e>=K.toExpPos);return J.isNeg()&&!J.isZero()?"-"+$:$};G.truncated=G.trunc=function(){return I(new this.constructor(this),this.e+1,1)};G.valueOf=G.toJSON=function(){var J=this,K=J.constructor,$=d(J,J.e<=K.toExpNeg||J.e>=K.toExpPos);return J.isNeg()?"-"+$:$};function k(J){var K,$,W,Q=J.length-1,H="",Y=J[0];if(Q>0){H+=Y;for(K=1;K<Q;K++){if(W=J[K]+"",$=_-W.length,$)H+=m($);H+=W}if(Y=J[K],W=Y+"",$=_-W.length,$)H+=m($)}else if(Y===0)return"0";for(;Y%10===0;)Y/=10;return H+Y}function v(J,K,$){if(J!==~~J||J<K||J>$)throw Error(o+J)}function JJ(J,K,$,W){var Q,H,Y,F;for(H=J[0];H>=10;H/=10)--K;if(--K<0)K+=_,Q=0;else Q=Math.ceil((K+1)/_),K%=_;if(H=f(10,_-K),F=J[Q]%H|0,W==null)if(K<3){if(K==0)F=F/100|0;else if(K==1)F=F/10|0;Y=$<4&&F==99999||$>3&&F==49999||F==50000||F==0}else Y=($<4&&F+1==H||$>3&&F+1==H/2)&&(J[Q+1]/H/100|0)==f(10,K-2)-1||(F==H/2||F==0)&&(J[Q+1]/H/100|0)==0;else if(K<4){if(K==0)F=F/1000|0;else if(K==1)F=F/100|0;else if(K==2)F=F/10|0;Y=(W||$<4)&&F==9999||!W&&$>3&&F==4999}else Y=((W||$<4)&&F+1==H||!W&&$>3&&F+1==H/2)&&(J[Q+1]/H/1000|0)==f(10,K-3)-1;return Y}function FJ(J,K,$){var W,Q=[0],H,Y=0,F=J.length;for(;Y<F;){for(H=Q.length;H--;)Q[H]*=K;Q[0]+=wJ.indexOf(J.charAt(Y++));for(W=0;W<Q.length;W++)if(Q[W]>$-1){if(Q[W+1]===void 0)Q[W+1]=0;Q[W+1]+=Q[W]/$|0,Q[W]%=$}}return Q.reverse()}function EK(J,K){var $,W,Q;if(K.isZero())return K;if(W=K.d.length,W<32)$=Math.ceil(W/3),Q=(1/GJ(4,$)).toString();else $=16,Q="2.3283064365386962890625e-10";J.precision+=$,K=t(J,1,K.times(Q),new J(1));for(var H=$;H--;){var Y=K.times(K);K=Y.times(Y).minus(Y).times(8).plus(1)}return J.precision-=$,K}var w=function(){function J(W,Q,H){var Y,F=0,U=W.length;for(W=W.slice();U--;)Y=W[U]*Q+F,W[U]=Y%H|0,F=Y/H|0;if(F)W.unshift(F);return W}function K(W,Q,H,Y){var F,U;if(H!=Y)U=H>Y?1:-1;else for(F=U=0;F<H;F++)if(W[F]!=Q[F]){U=W[F]>Q[F]?1:-1;break}return U}function $(W,Q,H,Y){var F=0;for(;H--;)W[H]-=F,F=W[H]<Q[H]?1:0,W[H]=F*Y+W[H]-Q[H];for(;!W[0]&&W.length>1;)W.shift()}return function(W,Q,H,Y,F,U){var X,q,R,V,z,B,T,L,M,D,A,b,a,p,TJ,QJ,r,BJ,y,HJ,YJ=W.constructor,OJ=W.s==Q.s?1:-1,g=W.d,S=Q.d;if(!g||!g[0]||!S||!S[0])return new YJ(!W.s||!Q.s||(g?S&&g[0]==S[0]:!S)?NaN:g&&g[0]==0||!S?OJ*0:OJ/0);if(U)z=1,q=W.e-Q.e;else U=c,z=_,q=C(W.e/z)-C(Q.e/z);y=S.length,r=g.length,M=new YJ(OJ),D=M.d=[];for(R=0;S[R]==(g[R]||0);R++);if(S[R]>(g[R]||0))q--;if(H==null)p=H=YJ.precision,Y=YJ.rounding;else if(F)p=H+(W.e-Q.e)+1;else p=H;if(p<0)D.push(1),B=!0;else{if(p=p/z+2|0,R=0,y==1){V=0,S=S[0],p++;for(;(R<r||V)&&p--;R++)TJ=V*U+(g[R]||0),D[R]=TJ/S|0,V=TJ%S|0;B=V||R<r}else{if(V=U/(S[0]+1)|0,V>1)S=J(S,V,U),g=J(g,V,U),y=S.length,r=g.length;QJ=y,A=g.slice(0,y),b=A.length;for(;b<y;)A[b++]=0;if(HJ=S.slice(),HJ.unshift(0),BJ=S[0],S[1]>=U/2)++BJ;do{if(V=0,X=K(S,A,y,b),X<0){if(a=A[0],y!=b)a=a*U+(A[1]||0);if(V=a/BJ|0,V>1){if(V>=U)V=U-1;if(T=J(S,V,U),L=T.length,b=A.length,X=K(T,A,L,b),X==1)V--,$(T,y<L?HJ:S,L,U)}else{if(V==0)X=V=1;T=S.slice()}if(L=T.length,L<b)T.unshift(0);if($(A,T,b,U),X==-1){if(b=A.length,X=K(S,A,y,b),X<1)V++,$(A,y<b?HJ:S,b,U)}b=A.length}else if(X===0)V++,A=[0];if(D[R++]=V,X&&A[0])A[b++]=g[QJ]||0;else A=[g[QJ]],b=1}while((QJ++<r||A[0]!==void 0)&&p--);B=A[0]!==void 0}if(!D[0])D.shift()}if(z==1)M.e=q,lJ=B;else{for(R=1,V=D[0];V>=10;V/=10)R++;M.e=R+q*z-1,I(M,F?H+M.e+1:H,Y,B)}return M}}();function I(J,K,$,W){var Q,H,Y,F,U,X,q,R,V,z=J.constructor;J:if(K!=null){if(R=J.d,!R)return J;for(Q=1,F=R[0];F>=10;F/=10)Q++;if(H=K-Q,H<0)H+=_,Y=K,q=R[V=0],U=q/f(10,Q-Y-1)%10|0;else if(V=Math.ceil((H+1)/_),F=R.length,V>=F)if(W){for(;F++<=V;)R.push(0);q=U=0,Q=1,H%=_,Y=H-_+1}else break J;else{q=F=R[V];for(Q=1;F>=10;F/=10)Q++;H%=_,Y=H-_+Q,U=Y<0?0:q/f(10,Q-Y-1)%10|0}if(W=W||K<0||R[V+1]!==void 0||(Y<0?q:q%f(10,Q-Y-1)),X=$<4?(U||W)&&($==0||$==(J.s<0?3:2)):U>5||U==5&&($==4||W||$==6&&(H>0?Y>0?q/f(10,Q-Y):0:R[V-1])%10&1||$==(J.s<0?8:7)),K<1||!R[0]){if(R.length=0,X)K-=J.e+1,R[0]=f(10,(_-K%_)%_),J.e=-K||0;else R[0]=J.e=0;return J}if(H==0)R.length=V,F=1,V--;else R.length=V+1,F=f(10,_-H),R[V]=Y>0?(q/f(10,Q-Y)%f(10,Y)|0)*F:0;if(X)for(;;)if(V==0){for(H=1,Y=R[0];Y>=10;Y/=10)H++;Y=R[0]+=F;for(F=1;Y>=10;Y/=10)F++;if(H!=F){if(J.e++,R[0]==c)R[0]=1}break}else{if(R[V]+=F,R[V]!=c)break;R[V--]=0,F=1}for(H=R.length;R[--H]===0;)R.pop()}if(O){if(J.e>z.maxE)J.d=null,J.e=NaN;else if(J.e<z.minE)J.e=0,J.d=[0]}return J}function d(J,K,$){if(!J.isFinite())return iJ(J);var W,Q=J.e,H=k(J.d),Y=H.length;if(K){if($&&(W=$-Y)>0)H=H.charAt(0)+"."+H.slice(1)+m(W);else if(Y>1)H=H.charAt(0)+"."+H.slice(1);H=H+(J.e<0?"e":"e+")+J.e}else if(Q<0){if(H="0."+m(-Q-1)+H,$&&(W=$-Y)>0)H+=m(W)}else if(Q>=Y){if(H+=m(Q+1-Y),$&&(W=$-Q-1)>0)H=H+"."+m(W)}else{if((W=Q+1)<Y)H=H.slice(0,W)+"."+H.slice(W);if($&&(W=$-Y)>0){if(Q+1===Y)H+=".";H+=m(W)}}return H}function VJ(J,K){var $=J[0];for(K*=_;$>=10;$/=10)K++;return K}function qJ(J,K,$){if(K>OK){if(O=!0,$)J.precision=$;throw Error(dJ)}return I(new J(XJ),K,1,!0)}function l(J,K,$){if(K>MJ)throw Error(dJ);return I(new J(UJ),K,$,!0)}function oJ(J){var K=J.length-1,$=K*_+1;if(K=J[K],K){for(;K%10==0;K/=10)$--;for(K=J[0];K>=10;K/=10)$++}return $}function m(J){var K="";for(;J--;)K+="0";return K}function xJ(J,K,$,W){var Q,H=new J(1),Y=Math.ceil(W/_+4);O=!1;for(;;){if($%2){if(H=H.times(K),yJ(H.d,Y))Q=!0}if($=C($/2),$===0){if($=H.d.length-1,Q&&H.d[$]===0)++H.d[$];break}K=K.times(K),yJ(K.d,Y)}return O=!0,H}function pJ(J){return J.d[J.d.length-1]&1}function aJ(J,K,$){var W,Q,H=new J(K[0]),Y=0;for(;++Y<K.length;){if(Q=new J(K[Y]),!Q.s){H=Q;break}if(W=H.cmp(Q),W===$||W===0&&H.s===$)H=Q}return H}function PJ(J,K){var $,W,Q,H,Y,F,U,X=0,q=0,R=0,V=J.constructor,z=V.rounding,B=V.precision;if(!J.d||!J.d[0]||J.e>17)return new V(J.d?!J.d[0]?1:J.s<0?0:1/0:J.s?J.s<0?0:J:NaN);if(K==null)O=!1,U=B;else U=K;F=new V(0.03125);while(J.e>-2)J=J.times(F),R+=5;W=Math.log(f(2,R))/Math.LN10*2+5|0,U+=W,$=H=Y=new V(1),V.precision=U;for(;;){if(H=I(H.times(J),U,1),$=$.times(++q),F=Y.plus(w(H,$,U,1)),k(F.d).slice(0,U)===k(Y.d).slice(0,U)){Q=R;while(Q--)Y=I(Y.times(Y),U,1);if(K==null)if(X<3&&JJ(Y.d,U-W,z,X))V.precision=U+=10,$=H=F=new V(1),q=0,X++;else return I(Y,V.precision=B,z,O=!0);else return V.precision=B,Y}Y=F}}function s(J,K){var $,W,Q,H,Y,F,U,X,q,R,V,z=1,B=10,T=J,L=T.d,M=T.constructor,D=M.rounding,A=M.precision;if(T.s<0||!L||!L[0]||!T.e&&L[0]==1&&L.length==1)return new M(L&&!L[0]?-1/0:T.s!=1?NaN:L?0:T);if(K==null)O=!1,q=A;else q=K;if(M.precision=q+=B,$=k(L),W=$.charAt(0),Math.abs(H=T.e)<1500000000000000){while(W<7&&W!=1||W==1&&$.charAt(1)>3)T=T.times(J),$=k(T.d),W=$.charAt(0),z++;if(H=T.e,W>1)T=new M("0."+$),H++;else T=new M(W+"."+$.slice(1))}else return X=qJ(M,q+2,A).times(H+""),T=s(new M(W+"."+$.slice(1)),q-B).plus(X),M.precision=A,K==null?I(T,A,D,O=!0):T;R=T,U=Y=T=w(T.minus(1),T.plus(1),q,1),V=I(T.times(T),q,1),Q=3;for(;;){if(Y=I(Y.times(V),q,1),X=U.plus(w(Y,new M(Q),q,1)),k(X.d).slice(0,q)===k(U.d).slice(0,q)){if(U=U.times(2),H!==0)U=U.plus(qJ(M,q+2,A).times(H+""));if(U=w(U,new M(z),q,1),K==null)if(JJ(U.d,q-B,D,F))M.precision=q+=B,X=Y=T=w(R.minus(1),R.plus(1),q,1),V=I(T.times(T),q,1),Q=F=1;else return I(U,M.precision=A,D,O=!0);else return M.precision=A,U}U=X,Q+=2}}function iJ(J){return String(J.s*J.s/0)}function ZJ(J,K){var $,W,Q;if(($=K.indexOf("."))>-1)K=K.replace(".","");if((W=K.search(/e/i))>0){if($<0)$=W;$+=+K.slice(W+1),K=K.substring(0,W)}else if($<0)$=K.length;for(W=0;K.charCodeAt(W)===48;W++);for(Q=K.length;K.charCodeAt(Q-1)===48;--Q);if(K=K.slice(W,Q),K){if(Q-=W,J.e=$=$-W-1,J.d=[],W=($+1)%_,$<0)W+=_;if(W<Q){if(W)J.d.push(+K.slice(0,W));for(Q-=_;W<Q;)J.d.push(+K.slice(W,W+=_));K=K.slice(W),W=_-K.length}else W-=Q;for(;W--;)K+="0";if(J.d.push(+K),O){if(J.e>J.constructor.maxE)J.d=null,J.e=NaN;else if(J.e<J.constructor.minE)J.e=0,J.d=[0]}}else J.e=0,J.d=[0];return J}function AK(J,K){var $,W,Q,H,Y,F,U,X,q;if(K.indexOf("_")>-1){if(K=K.replace(/(\d)_(?=\d)/g,"$1"),sJ.test(K))return ZJ(J,K)}else if(K==="Infinity"||K==="NaN"){if(!+K)J.s=NaN;return J.e=NaN,J.d=null,J}if(_K.test(K))$=16,K=K.toLowerCase();else if(NK.test(K))$=2;else if(TK.test(K))$=8;else throw Error(o+K);if(H=K.search(/p/i),H>0)U=+K.slice(H+1),K=K.substring(2,H);else K=K.slice(2);if(H=K.indexOf("."),Y=H>=0,W=J.constructor,Y)K=K.replace(".",""),F=K.length,H=F-H,Q=xJ(W,new W($),H,H*2);X=FJ(K,$,c),q=X.length-1;for(H=q;X[H]===0;--H)X.pop();if(H<0)return new W(J.s*0);if(J.e=VJ(X,q),J.d=X,O=!1,Y)J=w(J,Q,F*4);if(U)J=J.times(Math.abs(U)<54?f(2,U):KJ.pow(2,U));return O=!0,J}function wK(J,K){var $,W=K.d.length;if(W<3)return K.isZero()?K:t(J,2,K,K);$=1.4*Math.sqrt(W),$=$>16?16:$|0,K=K.times(1/GJ(5,$)),K=t(J,2,K,K);var Q,H=new J(5),Y=new J(16),F=new J(20);for(;$--;)Q=K.times(K),K=K.times(H.plus(Q.times(Y.times(Q).minus(F))));return K}function t(J,K,$,W,Q){var H,Y,F,U,X=1,q=J.precision,R=Math.ceil(q/_);O=!1,U=$.times($),F=new J(W);for(;;){if(Y=w(F.times(U),new J(K++*K++),q,1),F=Q?W.plus(Y):W.minus(Y),W=w(Y.times(U),new J(K++*K++),q,1),Y=F.plus(W),Y.d[R]!==void 0){for(H=R;Y.d[H]===F.d[H]&&H--;);if(H==-1)break}H=F,F=W,W=Y,Y=H,X++}return O=!0,Y.d.length=R+1,Y}function GJ(J,K){var $=J;while(--K)$*=J;return $}function tJ(J,K){var $,W=K.s<0,Q=l(J,J.precision,1),H=Q.times(0.5);if(K=K.abs(),K.lte(H))return n=W?4:1,K;if($=K.divToInt(Q),$.isZero())n=W?3:2;else{if(K=K.minus($.times(Q)),K.lte(H))return n=pJ($)?W?2:3:W?4:1,K;n=pJ($)?W?1:4:W?3:2}return K.minus(Q).abs()}function fJ(J,K,$,W){var Q,H,Y,F,U,X,q,R,V,z=J.constructor,B=$!==void 0;if(B)if(v($,1,x),W===void 0)W=z.rounding;else v(W,0,8);else $=z.precision,W=z.rounding;if(!J.isFinite())q=iJ(J);else{if(q=d(J),Y=q.indexOf("."),B){if(Q=2,K==16)$=$*4-3;else if(K==8)$=$*3-2}else Q=K;if(Y>=0)q=q.replace(".",""),V=new z(1),V.e=q.length-Y,V.d=FJ(d(V),10,Q),V.e=V.d.length;R=FJ(q,10,Q),H=U=R.length;for(;R[--U]==0;)R.pop();if(!R[0])q=B?"0p+0":"0";else{if(Y<0)H--;else J=new z(J),J.d=R,J.e=H,J=w(J,V,$,W,0,Q),R=J.d,H=J.e,X=lJ;if(Y=R[$],F=Q/2,X=X||R[$+1]!==void 0,X=W<4?(Y!==void 0||X)&&(W===0||W===(J.s<0?3:2)):Y>F||Y===F&&(W===4||X||W===6&&R[$-1]&1||W===(J.s<0?8:7)),R.length=$,X){for(;++R[--$]>Q-1;)if(R[$]=0,!$)++H,R.unshift(1)}for(U=R.length;!R[U-1];--U);for(Y=0,q="";Y<U;Y++)q+=wJ.charAt(R[Y]);if(B){if(U>1)if(K==16||K==8){Y=K==16?4:3;for(--U;U%Y;U++)q+="0";R=FJ(q,Q,K);for(U=R.length;!R[U-1];--U);for(Y=1,q="1.";Y<U;Y++)q+=wJ.charAt(R[Y])}else q=q.charAt(0)+"."+q.slice(1);q=q+(H<0?"p":"p+")+H}else if(H<0){for(;++H;)q="0"+q;q="0."+q}else if(++H>U)for(H-=U;H--;)q+="0";else if(H<U)q=q.slice(0,H)+"."+q.slice(H)}q=(K==16?"0x":K==2?"0b":K==8?"0o":"")+q}return J.s<0?"-"+q:q}function yJ(J,K){if(J.length>K)return J.length=K,!0}function SK(J){return new this(J).abs()}function MK(J){return new this(J).acos()}function PK(J){return new this(J).acosh()}function fK(J,K){return new this(J).plus(K)}function jK(J){return new this(J).asin()}function bK(J){return new this(J).asinh()}function LK(J){return new this(J).atan()}function kK(J){return new this(J).atanh()}function gK(J,K){J=new this(J),K=new this(K);var $,W=this.precision,Q=this.rounding,H=W+4;if(!J.s||!K.s)$=new this(NaN);else if(!J.d&&!K.d)$=l(this,H,1).times(K.s>0?0.25:0.75),$.s=J.s;else if(!K.d||J.isZero())$=K.s<0?l(this,W,Q):new this(0),$.s=J.s;else if(!J.d||K.isZero())$=l(this,H,1).times(0.5),$.s=J.s;else if(K.s<0)this.precision=H,this.rounding=1,$=this.atan(w(J,K,H,1)),K=l(this,H,1),this.precision=W,this.rounding=Q,$=J.s<0?$.minus(K):$.plus(K);else $=this.atan(w(J,K,H,1));return $}function CK(J){return new this(J).cbrt()}function hK(J){return I(J=new this(J),J.e+1,2)}function vK(J,K,$){return new this(J).clamp(K,$)}function uK(J){if(!J||typeof J!=="object")throw Error(RJ+"Object expected");var K,$,W,Q=J.defaults===!0,H=["precision",1,x,"rounding",0,8,"toExpNeg",-i,0,"toExpPos",0,i,"maxE",0,i,"minE",-i,0,"modulo",0,9];for(K=0;K<H.length;K+=3){if($=H[K],Q)this[$]=SJ[$];if((W=J[$])!==void 0)if(C(W)===W&&W>=H[K+1]&&W<=H[K+2])this[$]=W;else throw Error(o+$+": "+W)}if($="crypto",Q)this[$]=SJ[$];if((W=J[$])!==void 0)if(W===!0||W===!1||W===0||W===1)if(W)if(typeof crypto!="undefined"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[$]=!0;else throw Error(nJ);else this[$]=!1;else throw Error(o+$+": "+W);return this}function DK(J){return new this(J).cos()}function pK(J){return new this(J).cosh()}function eJ(J){var K,$,W;function Q(H){var Y,F,U,X=this;if(!(X instanceof Q))return new Q(H);if(X.constructor=Q,cJ(H)){if(X.s=H.s,O)if(!H.d||H.e>Q.maxE)X.e=NaN,X.d=null;else if(H.e<Q.minE)X.e=0,X.d=[0];else X.e=H.e,X.d=H.d.slice();else X.e=H.e,X.d=H.d?H.d.slice():H.d;return}if(U=typeof H,U==="number"){if(H===0){X.s=1/H<0?-1:1,X.e=0,X.d=[0];return}if(H<0)H=-H,X.s=-1;else X.s=1;if(H===~~H&&H<1e7){for(Y=0,F=H;F>=10;F/=10)Y++;if(O)if(Y>Q.maxE)X.e=NaN,X.d=null;else if(Y<Q.minE)X.e=0,X.d=[0];else X.e=Y,X.d=[H];else X.e=Y,X.d=[H];return}if(H*0!==0){if(!H)X.s=NaN;X.e=NaN,X.d=null;return}return ZJ(X,H.toString())}if(U==="string"){if((F=H.charCodeAt(0))===45)H=H.slice(1),X.s=-1;else{if(F===43)H=H.slice(1);X.s=1}return sJ.test(H)?ZJ(X,H):AK(X,H)}if(U==="bigint"){if(H<0)H=-H,X.s=-1;else X.s=1;return ZJ(X,H.toString())}throw Error(o+H)}if(Q.prototype=G,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=uK,Q.clone=eJ,Q.isDecimal=cJ,Q.abs=SK,Q.acos=MK,Q.acosh=PK,Q.add=fK,Q.asin=jK,Q.asinh=bK,Q.atan=LK,Q.atanh=kK,Q.atan2=gK,Q.cbrt=CK,Q.ceil=hK,Q.clamp=vK,Q.cos=DK,Q.cosh=pK,Q.div=yK,Q.exp=cK,Q.floor=lK,Q.hypot=dK,Q.ln=nK,Q.log=mK,Q.log10=oK,Q.log2=sK,Q.max=xK,Q.min=aK,Q.mod=iK,Q.mul=tK,Q.pow=eK,Q.random=rK,Q.round=J$,Q.sign=K$,Q.sin=$$,Q.sinh=W$,Q.sqrt=Q$,Q.sub=H$,Q.sum=Y$,Q.tan=F$,Q.tanh=Z$,Q.trunc=X$,J===void 0)J={};if(J){if(J.defaults!==!0){W=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"];for(K=0;K<W.length;)if(!J.hasOwnProperty($=W[K++]))J[$]=this[$]}}return Q.config(J),Q}function yK(J,K){return new this(J).div(K)}function cK(J){return new this(J).exp()}function lK(J){return I(J=new this(J),J.e+1,3)}function dK(){var J,K,$=new this(0);O=!1;for(J=0;J<arguments.length;)if(K=new this(arguments[J++]),!K.d){if(K.s)return O=!0,new this(1/0);$=K}else if($.d)$=$.plus(K.times(K));return O=!0,$.sqrt()}function cJ(J){return J instanceof KJ||J&&J.toStringTag===mJ||!1}function nK(J){return new this(J).ln()}function mK(J,K){return new this(J).log(K)}function sK(J){return new this(J).log(2)}function oK(J){return new this(J).log(10)}function xK(){return aJ(this,arguments,-1)}function aK(){return aJ(this,arguments,1)}function iK(J,K){return new this(J).mod(K)}function tK(J,K){return new this(J).mul(K)}function eK(J,K){return new this(J).pow(K)}function rK(J){var K,$,W,Q,H=0,Y=new this(1),F=[];if(J===void 0)J=this.precision;else v(J,1,x);if(W=Math.ceil(J/_),!this.crypto)for(;H<W;)F[H++]=Math.random()*1e7|0;else if(crypto.getRandomValues){K=crypto.getRandomValues(new Uint32Array(W));for(;H<W;)if(Q=K[H],Q>=4290000000)K[H]=crypto.getRandomValues(new Uint32Array(1))[0];else F[H++]=Q%1e7}else if(crypto.randomBytes){K=crypto.randomBytes(W*=4);for(;H<W;)if(Q=K[H]+(K[H+1]<<8)+(K[H+2]<<16)+((K[H+3]&127)<<24),Q>=2140000000)crypto.randomBytes(4).copy(K,H);else F.push(Q%1e7),H+=4;H=W/4}else throw Error(nJ);if(W=F[--H],J%=_,W&&J)Q=f(10,_-J),F[H]=(W/Q|0)*Q;for(;F[H]===0;H--)F.pop();if(H<0)$=0,F=[0];else{$=-1;for(;F[0]===0;$-=_)F.shift();for(W=1,Q=F[0];Q>=10;Q/=10)W++;if(W<_)$-=_-W}return Y.e=$,Y.d=F,Y}function J$(J){return I(J=new this(J),J.e+1,this.rounding)}function K$(J){return J=new this(J),J.d?J.d[0]?J.s:0*J.s:J.s||NaN}function $$(J){return new this(J).sin()}function W$(J){return new this(J).sinh()}function Q$(J){return new this(J).sqrt()}function H$(J,K){return new this(J).sub(K)}function Y$(){var J=0,K=arguments,$=new this(K[J]);O=!1;for(;$.s&&++J<K.length;)$=$.plus(K[J]);return O=!0,I($,this.precision,this.rounding)}function F$(J){return new this(J).tan()}function Z$(J){return new this(J).tanh()}function X$(J){return I(J=new this(J),J.e+1,1)}G[Symbol.for("nodejs.util.inspect.custom")]=G.toString;G[Symbol.toStringTag]="Decimal";var KJ=G.constructor=eJ(SJ);XJ=new KJ(XJ);UJ=new KJ(UJ);var Z=KJ;var jJ=(J)=>{if(J===null||J===void 0)throw new Error(`Cannot convert ${J===null?"null":"undefined"} to Decimal`);if(J instanceof Z)return J;try{return new Z(J)}catch(K){throw new Error(`Invalid numeric value: ${K.message}`)}};class E{constructor(J){if(!Array.isArray(J))throw new Error("Vector requires array");if(J.length===0)throw new Error("Vector requires at least one component");try{this.data=J.map((K,$)=>{if(K===null||K===void 0)throw new Error(`Vector component at index ${$} is ${K===null?"null":"undefined"}`);return jJ(K)})}catch(K){throw new Error(`Vector constructor failed: ${K.message}`)}this.length=this.data.length}static from(J){if(J===null||J===void 0)throw new Error(`Vector.from: argument is ${J===null?"null":"undefined"}`);return new E(J)}clone(){return new E(this.data.map((J)=>new Z(J)))}toArray(){return this.data.slice()}toNumberArray(){return this.data.map((J)=>J.toNumber())}toStringArray(){return this.data.map((J)=>J.toString())}add(J){if(!J||!(J instanceof E))throw new Error("add: argument must be a Vector");if(this.length!==J.length)throw new Error(`add: dimension mismatch (${this.length} vs ${J.length})`);return new E(this.data.map((K,$)=>K.plus(J.data[$])))}sub(J){if(!J||!(J instanceof E))throw new Error("sub: argument must be a Vector");if(this.length!==J.length)throw new Error(`sub: dimension mismatch (${this.length} vs ${J.length})`);return new E(this.data.map((K,$)=>K.minus(J.data[$])))}scale(J){if(J===null||J===void 0)throw new Error(`scale: scalar is ${J===null?"null":"undefined"}`);let K;try{K=jJ(J)}catch($){throw new Error(`scale: invalid scalar - ${$.message}`)}return new E(this.data.map(($)=>$.mul(K)))}negate(){return new E(this.data.map((J)=>J.negated()))}dot(J){if(!J||!(J instanceof E))throw new Error("dot: argument must be a Vector");if(this.length!==J.length)throw new Error(`dot: dimension mismatch (${this.length} vs ${J.length})`);return this.data.reduce((K,$,W)=>K.plus($.mul(J.data[W])),new Z(0))}outer(J){if(!J||!(J instanceof E))throw new Error("outer: argument must be a Vector");if(this.length===0||J.length===0)throw new Error("outer: cannot compute outer product with empty vector");let K=this.length,$=J.length;return Array.from({length:K},(Q,H)=>Array.from({length:$},(Y,F)=>this.data[H].mul(J.data[F])))}cross(J){if(!J||!(J instanceof E))throw new Error("cross: argument must be a Vector");if(this.length!==3||J.length!==3)throw new Error(`cross: requires 3D vectors (got ${this.length}D and ${J.length}D)`);let[K,$,W]=this.data,[Q,H,Y]=J.data;return new E([$.mul(Y).minus(W.mul(H)),W.mul(Q).minus(K.mul(Y)),K.mul(H).minus($.mul(Q))])}norm(){let J=new Z(0);for(let K of this.data)J=J.plus(K.mul(K));return J.sqrt()}normalize(){let J=this.norm();if(J.isZero())throw new Error("Cannot normalize zero vector");return this.scale(new Z(1).div(J))}angleBetween(J){if(!J||!(J instanceof E))throw new Error("angleBetween: argument must be a Vector");if(this.length!==J.length)throw new Error(`angleBetween: dimension mismatch (${this.length} vs ${J.length})`);let K=this.dot(J),$=this.norm(),W=J.norm();if($.isZero()||W.isZero())throw new Error("angleBetween: angle with zero vector is undefined");let H=K.div($.mul(W)).toNumber(),Y=Math.min(1,Math.max(-1,H));return new Z(Math.acos(Y))}projectOnto(J){if(!J||!(J instanceof E))throw new Error("projectOnto: argument must be a Vector");if(this.length!==J.length)throw new Error(`projectOnto: dimension mismatch (${this.length} vs ${J.length})`);let K=J.dot(J);if(K.isZero())throw new Error("projectOnto: cannot project onto zero vector");let $=this.dot(J).div(K);return J.scale($)}orthogonal(){if(this.norm().isZero())throw new Error("orthogonal: cannot find orthogonal vector to zero vector");if(this.length===2)return new E([this.data[1].negated(),this.data[0]]);for(let K=0;K<this.length;K++){let $=Array.from({length:this.length},(F,U)=>new Z(U===K?1:0)),W=new E($),Q=W.projectOnto(this),H=W.sub(Q);if(!H.norm().isZero())return H.normalize()}throw new Error("orthogonal: unable to find orthogonal vector (degenerate case)")}isOrthogonalTo(J){if(!J||!(J instanceof E))throw new Error("isOrthogonalTo: argument must be a Vector");if(this.length!==J.length)throw new Error(`isOrthogonalTo: dimension mismatch (${this.length} vs ${J.length})`);return this.dot(J).isZero()}distance(J){if(!J||!(J instanceof E))throw new Error("distance: argument must be a Vector");if(this.length!==J.length)throw new Error(`distance: dimension mismatch (${this.length} vs ${J.length})`);return this.sub(J).norm()}equals(J,K=0){if(!(J instanceof E))return!1;if(J.length!==this.length)return!1;if(K===null)throw new Error("equals: tolerance cannot be null");let $;try{if($=jJ(K),$.isNaN())throw new Error("equals: tolerance cannot be NaN");if($.isNegative())throw new Error("equals: tolerance must be non-negative")}catch(W){throw new Error(`equals: invalid tolerance - ${W.message}`)}for(let W=0;W<this.length;W++)if(this.data[W].minus(J.data[W]).abs().greaterThan($))return!1;return!0}}var e=(J)=>{if(J==null)throw new Error("Cannot convert null or undefined to Decimal");return J instanceof Z?J:new Z(J)};class N{constructor(J){if(!Array.isArray(J)||J.length===0)throw new Error("Matrix requires non-empty 2D array");if(!Array.isArray(J[0])||J[0].length===0)throw new Error("Matrix rows must be non-empty arrays");let K=J[0].length;for(let $ of J)if(!Array.isArray($)||$.length!==K)throw new Error("All rows must have same length");this.data=J.map(($)=>$.map((W)=>e(W))),this.rows=J.length,this.cols=K}static from(J){return new N(J)}static zeros(J,K){if(!Number.isInteger(J)||J<=0)throw new Error("rows must be a positive integer");if(!Number.isInteger(K)||K<=0)throw new Error("cols must be a positive integer");let $=Array.from({length:J},()=>Array.from({length:K},()=>new Z(0)));return new N($)}static identity(J){if(!Number.isInteger(J)||J<=0)throw new Error("size must be a positive integer");let K=Array.from({length:J},($,W)=>Array.from({length:J},(Q,H)=>W===H?new Z(1):new Z(0)));return new N(K)}clone(){return new N(this.data.map((J)=>J.map((K)=>new Z(K))))}toArrayOfStrings(){return this.data.map((J)=>J.map((K)=>K.toString()))}toNumberArray(){return this.data.map((J)=>J.map((K)=>K.toNumber()))}isSquare(){return this.rows===this.cols}applyToVector(J){let K;if(J instanceof E)K=J;else if(Array.isArray(J))K=E.from(J);else throw new Error("applyToVector expects Vector or array");if(this.cols!==K.length)throw new Error("shape mismatch: matrix cols must equal vector length");let $=[];for(let W=0;W<this.rows;W++){let Q=new Z(0);for(let H=0;H<this.cols;H++)Q=Q.plus(this.data[W][H].mul(K.data[H]));$.push(Q)}return new E($)}add(J){if(J instanceof N){if(this.rows!==J.rows||this.cols!==J.cols)throw new Error("shape mismatch: matrices must have same dimensions");return new N(this.data.map((K,$)=>K.map((W,Q)=>W.plus(J.data[$][Q]))))}else{let K=e(J);return new N(this.data.map(($)=>$.map((W)=>W.plus(K))))}}sub(J){if(J instanceof N){if(this.rows!==J.rows||this.cols!==J.cols)throw new Error("shape mismatch: matrices must have same dimensions");return new N(this.data.map((K,$)=>K.map((W,Q)=>W.minus(J.data[$][Q]))))}else{let K=e(J);return new N(this.data.map(($)=>$.map((W)=>W.minus(K))))}}mul(J){if(J instanceof N){if(this.cols!==J.rows)throw new Error("shape mismatch: A.cols must equal B.rows for matrix multiplication");let K=Array.from({length:this.rows},()=>Array.from({length:J.cols},()=>new Z(0)));for(let $=0;$<this.rows;$++)for(let W=0;W<this.cols;W++){let Q=this.data[$][W];if(Q.isZero())continue;for(let H=0;H<J.cols;H++)K[$][H]=K[$][H].plus(Q.mul(J.data[W][H]))}return new N(K)}else{let K=e(J);return new N(this.data.map(($)=>$.map((W)=>W.mul(K))))}}div(J){let K=e(J);if(K.isZero())throw new Error("Cannot divide by zero");return new N(this.data.map(($)=>$.map((W)=>W.div(K))))}negate(){return new N(this.data.map((J)=>J.map((K)=>K.negated())))}transpose(){let J=Array.from({length:this.cols},(K,$)=>Array.from({length:this.rows},(W,Q)=>new Z(this.data[Q][$])));return new N(J)}trace(){if(!this.isSquare())throw new Error("Trace only defined for square matrices");let J=new Z(0);for(let K=0;K<this.rows;K++)J=J.plus(this.data[K][K]);return J}equals(J,K=0){if(!(J instanceof N))return!1;if(this.rows!==J.rows||this.cols!==J.cols)return!1;let $=e(K);if($.isNegative()||!$.isFinite())throw new Error("tolerance must be non-negative and finite");for(let W=0;W<this.rows;W++)for(let Q=0;Q<this.cols;Q++)if(this.data[W][Q].minus(J.data[W][Q]).abs().greaterThan($))return!1;return!0}lu(){if(!this.isSquare())throw new Error("LU decomposition requires square matrix");let J=this.rows,K=this.data.map((Y)=>Y.map((F)=>new Z(F))),$=Array.from({length:J},(Y,F)=>F),W=Array.from({length:J},()=>Array.from({length:J},()=>new Z(0)));for(let Y=0;Y<J;Y++)W[Y][Y]=new Z(1);for(let Y=0;Y<J;Y++){let F=Y,U=K[Y][Y].abs();for(let X=Y+1;X<J;X++){let q=K[X][Y].abs();if(q.greaterThan(U))U=q,F=X}if(K[F][Y].isZero())throw new Error("Singular matrix: LU decomposition failed");if(F!==Y){let X=K[Y];K[Y]=K[F],K[F]=X;let q=$[Y];$[Y]=$[F],$[F]=q;for(let R=0;R<Y;R++){let V=W[Y][R];W[Y][R]=W[F][R],W[F][R]=V}}for(let X=Y+1;X<J;X++){let q=K[X][Y].div(K[Y][Y]);W[X][Y]=q;for(let R=Y;R<J;R++)K[X][R]=K[X][R].minus(q.mul(K[Y][R]))}}let Q=Array.from({length:J},(Y,F)=>Array.from({length:J},(U,X)=>X<F?new Z(0):K[F][X])),H=N.zeros(J,J);for(let Y=0;Y<J;Y++)H.data[Y][$[Y]]=new Z(1);return{L:new N(W),U:new N(Q),P:H}}determinant(){if(!this.isSquare())throw new Error("Determinant only defined for square matrices");let J=this.rows,{L:K,U:$,P:W}=this.lu(),Q=new Z(1);for(let F=0;F<J;F++)Q=Q.mul($.data[F][F]);let H=[];for(let F=0;F<J;F++)for(let U=0;U<J;U++)if(W.data[F][U].equals(1))H.push(U);let Y=0;for(let F=0;F<H.length;F++)for(let U=F+1;U<H.length;U++)if(H[F]>H[U])Y++;if(Y%2===1)Q=Q.negated();return Q}inverse(){if(!this.isSquare())throw new Error("Inverse only defined for square matrices");let J=this.rows,K=Array.from({length:J},(W,Q)=>Array.from({length:2*J},(H,Y)=>Y<J?new Z(this.data[Q][Y]):Y-J===Q?new Z(1):new Z(0)));for(let W=0;W<J;W++){let Q=W,H=K[W][W].abs();for(let F=W+1;F<J;F++){let U=K[F][W].abs();if(U.greaterThan(H))H=U,Q=F}if(K[Q][W].isZero())throw new Error("Singular matrix: inverse does not exist");if(Q!==W){let F=K[W];K[W]=K[Q],K[Q]=F}let Y=K[W][W];for(let F=0;F<2*J;F++)K[W][F]=K[W][F].div(Y);for(let F=0;F<J;F++){if(F===W)continue;let U=K[F][W];if(U.isZero())continue;for(let X=0;X<2*J;X++)K[F][X]=K[F][X].minus(U.mul(K[W][X]))}}let $=K.map((W)=>W.slice(J));return new N($)}solve(J){let K;if(J instanceof E)K=J;else if(Array.isArray(J))K=E.from(J);else throw new Error("b must be Vector or array");if(!this.isSquare())throw new Error("solve() only implemented for square matrices");let $=this.rows;if(K.length!==$)throw new Error("dimension mismatch: b length must equal matrix rows");let W=Array.from({length:$},(H,Y)=>Array.from({length:$+1},(F,U)=>new Z(U<$?this.data[Y][U]:K.data[Y])));for(let H=0;H<$;H++){let Y=H,F=W[H][H].abs();for(let U=H+1;U<$;U++){let X=W[U][H].abs();if(X.greaterThan(F))F=X,Y=U}if(W[Y][H].isZero())throw new Error("Singular matrix: no unique solution");if(Y!==H){let U=W[H];W[H]=W[Y],W[Y]=U}for(let U=H+1;U<$;U++){let X=W[U][H].div(W[H][H]);if(X.isZero())continue;for(let q=H;q<$+1;q++)W[U][q]=W[U][q].minus(X.mul(W[H][q]))}}let Q=Array.from({length:$},()=>new Z(0));for(let H=$-1;H>=0;H--){if(W[H][H].isZero())throw new Error("Zero diagonal element in back substitution: system is singular");let Y=new Z(0);for(let F=H+1;F<$;F++)Y=Y.plus(W[H][F].mul(Q[F]));Q[H]=W[H][$].minus(Y).div(W[H][H])}return new E(Q)}qr(){let J=this.rows,K=this.cols,$=this.data.map((H)=>H.map((Y)=>new Z(Y))),W=N.identity(J).data;for(let H=0;H<Math.min(J,K);H++){let Y=[];for(let R=H;R<J;R++)Y.push($[R][H]);let F=new Z(0);for(let R of Y)F=F.plus(R.mul(R));if(F=F.sqrt(),F.isZero())continue;let U=Y[0].isNegative()?new Z(-1):new Z(1),X=Y.slice();X[0]=X[0].plus(U.mul(F));let q=new Z(0);for(let R of X)q=q.plus(R.mul(R));if(q=q.sqrt(),q.isZero())continue;for(let R=0;R<X.length;R++)X[R]=X[R].div(q);for(let R=H;R<K;R++){let V=new Z(0);for(let z=0;z<X.length;z++)V=V.plus(X[z].mul($[H+z][R]));for(let z=0;z<X.length;z++)$[H+z][R]=$[H+z][R].minus(new Z(2).mul(X[z]).mul(V))}for(let R=0;R<J;R++){let V=new Z(0);for(let z=0;z<X.length;z++)V=V.plus(X[z].mul(W[H+z][R]));for(let z=0;z<X.length;z++)W[H+z][R]=W[H+z][R].minus(new Z(2).mul(X[z]).mul(V))}}let Q=Array.from({length:J},(H,Y)=>Array.from({length:K},(F,U)=>Y<=U?$[Y][U]:new Z(0)));return{Q:new N(W).transpose(),R:new N(Q)}}exp(J={}){let K=this.rows;if(!this.isSquare())throw new Error("Matrix exponential requires square matrix");let $=N.identity(K),W=J.maxIter||120;if(!Number.isInteger(W)||W<=0)throw new Error("maxIter must be a positive integer");let Q=new Z(J.tolerance||"1e-40");if(Q.isNegative()||Q.isZero()||!Q.isFinite())throw new Error("tolerance must be positive and finite");let Y=((R)=>{let V=new Z(0);for(let z=0;z<R.rows;z++){let B=new Z(0);for(let T=0;T<R.cols;T++)B=B.plus(R.data[z][T].abs());if(B.greaterThan(V))V=B}return V})(this),F=0;if(Y.greaterThan(new Z(1))){let R=Y.toNumber();if(!isFinite(R))throw new Error("Matrix norm too large for exponential computation");if(F=Math.max(0,Math.ceil(Math.log2(R))),F>50)throw new Error(`Matrix norm too large: requires ${F} scaling steps (max 50 allowed)`)}let U=this;if(F>0)U=this.mul(new Z(1).div(new Z(2).pow(F)));let X=$.clone(),q=$.clone();for(let R=1;R<W;R++){X=X.mul(U).mul(new Z(1).div(R)),q=q.add(X);let V=new Z(0);for(let z=0;z<X.rows;z++)for(let B=0;B<X.cols;B++)V=V.plus(X.data[z][B].abs());if(V.lessThan(Q))break}for(let R=0;R<F;R++)q=q.mul(q);return q}}var IJ={};AJ(IJ,{translation:()=>$J,stretchAlongAxis:()=>q$,skew:()=>LJ,scale:()=>bJ,rotateAroundPoint:()=>U$,rotate:()=>zJ,reflectY:()=>V$,reflectX:()=>R$,reflectOrigin:()=>G$,applyTransform:()=>kJ});var u=(J)=>{if(J instanceof Z){if(!J.isFinite())throw new Error(`Value must be finite (got ${J.toString()})`);return J}try{let K=new Z(J);if(!K.isFinite())throw new Error(`Value must be finite (got ${J})`);return K}catch(K){throw new Error(`Invalid numeric value: "${J}" (${K.message})`)}};function h(J,K){if(J===void 0||J===null)throw new Error(`${K} is required`);if(typeof J!=="number"&&typeof J!=="string"&&!(J instanceof Z))throw new Error(`${K} must be a number, string, or Decimal`);if(typeof J==="number"&&!isFinite(J))throw new Error(`${K} must be a finite number (got ${J})`);if(J instanceof Z&&!J.isFinite())throw new Error(`${K} must be a finite Decimal (got ${J.toString()})`)}function $J(J,K){return h(J,"tx"),h(K,"ty"),N.from([[new Z(1),new Z(0),u(J)],[new Z(0),new Z(1),u(K)],[new Z(0),new Z(0),new Z(1)]])}function bJ(J,K=null){if(h(J,"sx"),K!==null)h(K,"sy");let $=K===null?J:K,W=u(J),Q=u($);if(W.isZero()||Q.isZero())throw new Error("Scale factors cannot be zero (creates singular matrix)");return N.from([[W,new Z(0),new Z(0)],[new Z(0),Q,new Z(0)],[new Z(0),new Z(0),new Z(1)]])}function zJ(J){h(J,"theta");let $=u(J).toNumber(),W=Math.PI,Q=$-2*W*Math.floor(($+W)/(2*W));if(!isFinite(Q))throw new Error(`Angle normalization failed for theta=${J} (too large or invalid)`);let H=new Z(Math.cos(Q)),Y=new Z(Math.sin(Q));if(!H.isFinite()||!Y.isFinite())throw new Error(`Trigonometric computation failed for theta=${J} (produced non-finite values)`);return N.from([[H,Y.negated(),new Z(0)],[Y,H,new Z(0)],[new Z(0),new Z(0),new Z(1)]])}function U$(J,K,$){h(J,"theta"),h(K,"px"),h($,"py");let W=u(K),Q=u($);return $J(W,Q).mul(zJ(J)).mul($J(W.negated(),Q.negated()))}function LJ(J,K){h(J,"ax"),h(K,"ay");let $=u(J),W=u(K);if(new Z(1).minus($.mul(W)).lessThanOrEqualTo(0))throw new Error(`Skew parameters create singular or orientation-inverting matrix (ax*ay = ${$.mul(W).toString()}, must be < 1)`);return N.from([[new Z(1),$,new Z(0)],[W,new Z(1),new Z(0)],[new Z(0),new Z(0),new Z(1)]])}function q$(J,K,$){h(J,"ux"),h(K,"uy"),h($,"k");let W=u(J),Q=u(K),H=u($);if(H.isZero())throw new Error("Stretch factor k cannot be zero (creates singular matrix)");let Y=W.mul(W).plus(Q.mul(Q));if(Y.isZero())throw new Error("Axis vector (ux, uy) cannot be zero");let F=Y.minus(1).abs(),U=new Z(0.000001);if(F.greaterThan(U))throw new Error(`Axis vector (ux, uy) must be normalized (||u|| = 1). Current magnitude squared: ${Y.toString()}, expected: 1. Use normalized vector: (${W.div(Y.sqrt()).toString()}, ${Q.div(Y.sqrt()).toString()})`);let X=new Z(1),q=H.minus(X),R=X.plus(q.mul(W.mul(W))),V=q.mul(W.mul(Q)),z=q.mul(Q.mul(W)),B=X.plus(q.mul(Q.mul(Q)));return N.from([[R,V,new Z(0)],[z,B,new Z(0)],[new Z(0),new Z(0),new Z(1)]])}function kJ(J,K,$){if(!J||typeof J.mul!=="function")throw new Error("applyTransform: first argument must be a Matrix");if(!J.data||!Array.isArray(J.data)||J.data.length!==3||!J.data[0]||J.data[0].length!==3||!J.data[1]||J.data[1].length!==3||!J.data[2]||J.data[2].length!==3)throw new Error("applyTransform: matrix must be 3x3");h(K,"x"),h($,"y");let W=N.from([[u(K)],[u($)],[new Z(1)]]),Q=J.mul(W);if(!Q||!Q.data||!Array.isArray(Q.data)||Q.data.length!==3||!Q.data[0]||!Q.data[0][0]||!Q.data[1]||!Q.data[1][0]||!Q.data[2]||!Q.data[2][0])throw new Error("applyTransform: matrix multiplication produced invalid result");let H=Q.data[0][0],Y=Q.data[1][0],F=Q.data[2][0];if(F.isZero())throw new Error("applyTransform: perspective division by zero (invalid transformation matrix)");return[H.div(F),Y.div(F)]}function R$(){return N.from([[new Z(1),new Z(0),new Z(0)],[new Z(0),new Z(-1),new Z(0)],[new Z(0),new Z(0),new Z(1)]])}function V$(){return N.from([[new Z(-1),new Z(0),new Z(0)],[new Z(0),new Z(1),new Z(0)],[new Z(0),new Z(0),new Z(1)]])}function G$(){return N.from([[new Z(-1),new Z(0),new Z(0)],[new Z(0),new Z(-1),new Z(0)],[new Z(0),new Z(0),new Z(1)]])}var _J={};AJ(_J,{translation:()=>WJ,scale:()=>gJ,rotateZ:()=>vJ,rotateY:()=>hJ,rotateX:()=>CJ,rotateAroundPoint:()=>z$,rotateAroundAxis:()=>rJ,reflectYZ:()=>_$,reflectXZ:()=>N$,reflectXY:()=>I$,reflectOrigin:()=>T$,applyTransform:()=>uJ});var j=(J)=>{if(J instanceof Z)return J;try{let K=new Z(J);if(!K.isFinite())throw new Error(`Value must be finite, got ${J}`);return K}catch(K){throw new Error(`Invalid numeric value: ${J}`)}};function P(J,K){if(J===void 0||J===null)throw new Error(`${K} is required`);if(typeof J!=="number"&&typeof J!=="string"&&!(J instanceof Z))throw new Error(`${K} must be a number, string, or Decimal`)}function NJ(J){let K=J.toNumber();if(!Number.isFinite(K))throw new Error(`Angle must be finite, got ${J}`);if(Math.abs(K)<=6.283185307179586)return K;return K%6.283185307179586}function WJ(J,K,$){return P(J,"tx"),P(K,"ty"),P($,"tz"),N.from([[new Z(1),new Z(0),new Z(0),j(J)],[new Z(0),new Z(1),new Z(0),j(K)],[new Z(0),new Z(0),new Z(1),j($)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function gJ(J,K=null,$=null){if(P(J,"sx"),K!==null)P(K,"sy");if($!==null)P($,"sz");let W=K===null?J:K,Q=$===null?J:$,H=j(J),Y=j(W),F=j(Q);return N.from([[H,new Z(0),new Z(0),new Z(0)],[new Z(0),Y,new Z(0),new Z(0)],[new Z(0),new Z(0),F,new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function CJ(J){P(J,"theta");let K=j(J),$=NJ(K),W=new Z(Math.cos($)),Q=new Z(Math.sin($));return N.from([[new Z(1),new Z(0),new Z(0),new Z(0)],[new Z(0),W,Q.negated(),new Z(0)],[new Z(0),Q,W,new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function hJ(J){P(J,"theta");let K=j(J),$=NJ(K),W=new Z(Math.cos($)),Q=new Z(Math.sin($));return N.from([[W,new Z(0),Q,new Z(0)],[new Z(0),new Z(1),new Z(0),new Z(0)],[Q.negated(),new Z(0),W,new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function vJ(J){P(J,"theta");let K=j(J),$=NJ(K),W=new Z(Math.cos($)),Q=new Z(Math.sin($));return N.from([[W,Q.negated(),new Z(0),new Z(0)],[Q,W,new Z(0),new Z(0)],[new Z(0),new Z(0),new Z(1),new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function rJ(J,K,$,W){P(J,"ux"),P(K,"uy"),P($,"uz"),P(W,"theta");let Q=[j(J),j(K),j($)],H=Q[0].mul(Q[0]).plus(Q[1].mul(Q[1])).plus(Q[2].mul(Q[2])).sqrt();if(H.isZero())throw new Error("Rotation axis cannot be zero vector (ux=0, uy=0, uz=0)");Q[0]=Q[0].div(H),Q[1]=Q[1].div(H),Q[2]=Q[2].div(H);let Y=j(W),F=NJ(Y),U=new Z(Math.cos(F)),X=new Z(Math.sin(F)),q=new Z(1),R=Q[0].mul(Q[0]),V=Q[1].mul(Q[1]),z=Q[2].mul(Q[2]),B=R.plus(U.mul(q.minus(R))),T=Q[0].mul(Q[1]).mul(q.minus(U)).minus(Q[2].mul(X)),L=Q[0].mul(Q[2]).mul(q.minus(U)).plus(Q[1].mul(X)),M=Q[1].mul(Q[0]).mul(q.minus(U)).plus(Q[2].mul(X)),D=V.plus(U.mul(q.minus(V))),A=Q[1].mul(Q[2]).mul(q.minus(U)).minus(Q[0].mul(X)),b=Q[2].mul(Q[0]).mul(q.minus(U)).minus(Q[1].mul(X)),a=Q[2].mul(Q[1]).mul(q.minus(U)).plus(Q[0].mul(X)),p=z.plus(U.mul(q.minus(z)));return N.from([[B,T,L,new Z(0)],[M,D,A,new Z(0)],[b,a,p,new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function z$(J,K,$,W,Q,H,Y){P(J,"ux"),P(K,"uy"),P($,"uz"),P(W,"theta"),P(Q,"px"),P(H,"py"),P(Y,"pz");let F=j(Q),U=j(H),X=j(Y);return WJ(F,U,X).mul(rJ(J,K,$,W)).mul(WJ(F.negated(),U.negated(),X.negated()))}function uJ(J,K,$,W){if(!(J instanceof N))throw new Error("M must be a Matrix instance");if(J.rows!==4||J.cols!==4)throw new Error(`M must be a 4x4 matrix, got ${J.rows}x${J.cols}`);P(K,"x"),P($,"y"),P(W,"z");let Q=N.from([[j(K)],[j($)],[j(W)],[new Z(1)]]),H=J.mul(Q),Y=H.data[0][0],F=H.data[1][0],U=H.data[2][0],X=H.data[3][0];if(X.isZero())throw new Error("Perspective division by zero: transformation results in point at infinity");return[Y.div(X),F.div(X),U.div(X)]}function I$(){return N.from([[new Z(1),new Z(0),new Z(0),new Z(0)],[new Z(0),new Z(1),new Z(0),new Z(0)],[new Z(0),new Z(0),new Z(-1),new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function N$(){return N.from([[new Z(1),new Z(0),new Z(0),new Z(0)],[new Z(0),new Z(-1),new Z(0),new Z(0)],[new Z(0),new Z(0),new Z(1),new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function _$(){return N.from([[new Z(-1),new Z(0),new Z(0),new Z(0)],[new Z(0),new Z(1),new Z(0),new Z(0)],[new Z(0),new Z(0),new Z(1),new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}function T$(){return N.from([[new Z(-1),new Z(0),new Z(0),new Z(0)],[new Z(0),new Z(-1),new Z(0),new Z(0)],[new Z(0),new Z(0),new Z(-1),new Z(0)],[new Z(0),new Z(0),new Z(0),new Z(1)]])}Z.set({precision:80});var JK="1.3.15";var KK=$J,$K=zJ,WK=bJ,QK=LJ,HK=kJ,YK=WJ,FK=CJ,ZK=hJ,XK=vJ,UK=gJ,qK=uJ,RK={VERSION:JK,Decimal:Z,Matrix:N,Vector:E,Transforms2D:IJ,Transforms3D:_J,translate2D:KK,rotate2D:$K,scale2D:WK,skew2D:QK,applyTransform2D:HK,translate3D:YK,rotateX:FK,rotateY:ZK,rotateZ:XK,scale3D:UK,applyTransform3D:qK},O$=RK;if(typeof window!=="undefined")window.SVGMatrixLib=RK;})();
|
package/dist/svg-matrix.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/*! svg-matrix v1.3.
|
|
1
|
+
/*! svg-matrix v1.3.15 | MIT License | https://github.com/Emasoft/svg-matrix */
|
|
2
2
|
var rJ=Object.defineProperty;var vJ=(J,K)=>{for(var $ in K)rJ(J,$,{get:K[$],enumerable:!0,configurable:!0,set:(W)=>K[$]=()=>W})};/*!
|
|
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 i=9000000000000000,x=1e9,BJ="0123456789abcdef",XJ="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",UJ="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",OJ={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-i,maxE:i,crypto:!1},yJ,n,O=!0,RJ="[DecimalError] ",o=RJ+"Invalid argument: ",cJ=RJ+"Precision limit exceeded",lJ=RJ+"crypto unavailable",dJ="[object Decimal]",C=Math.floor,f=Math.pow,JK=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,KK=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,$K=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,nJ=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,c=1e7,N=7,WK=9007199254740991,QK=XJ.length-1,EJ=UJ.length-1,G={toStringTag:dJ};G.absoluteValue=G.abs=function(){var J=new this.constructor(this);if(J.s<0)J.s=1;return I(J)};G.ceil=function(){return I(new this.constructor(this),this.e+1,2)};G.clampedTo=G.clamp=function(J,K){var $,W=this,Q=W.constructor;if(J=new Q(J),K=new Q(K),!J.s||!K.s)return new Q(NaN);if(J.gt(K))throw Error(o+K);return $=W.cmp(J),$<0?J:W.cmp(K)>0?K:new Q(W)};G.comparedTo=G.cmp=function(J){var K,$,W,Q,H=this,Y=H.d,F=(J=new H.constructor(J)).d,U=H.s,Z=J.s;if(!Y||!F)return!U||!Z?NaN:U!==Z?U:Y===F?0:!Y^U<0?1:-1;if(!Y[0]||!F[0])return Y[0]?U:F[0]?-Z:0;if(U!==Z)return U;if(H.e!==J.e)return H.e>J.e^U<0?1:-1;W=Y.length,Q=F.length;for(K=0,$=W<Q?W:Q;K<$;++K)if(Y[K]!==F[K])return Y[K]>F[K]^U<0?1:-1;return W===Q?0:W>Q^U<0?1:-1};G.cosine=G.cos=function(){var J,K,$=this,W=$.constructor;if(!$.d)return new W(NaN);if(!$.d[0])return new W(1);return J=W.precision,K=W.rounding,W.precision=J+Math.max($.e,$.sd())+N,W.rounding=1,$=HK(W,aJ(W,$)),W.precision=J,W.rounding=K,I(n==2||n==3?$.neg():$,J,K,!0)};G.cubeRoot=G.cbrt=function(){var J,K,$,W,Q,H,Y,F,U,Z,q=this,R=q.constructor;if(!q.isFinite()||q.isZero())return new R(q);if(O=!1,H=q.s*f(q.s*q,0.3333333333333333),!H||Math.abs(H)==1/0){if($=k(q.d),J=q.e,H=(J-$.length+1)%3)$+=H==1||H==-2?"0":"00";if(H=f($,0.3333333333333333),J=C((J+1)/3)-(J%3==(J<0?-1:2)),H==1/0)$="5e"+J;else $=H.toExponential(),$=$.slice(0,$.indexOf("e")+1)+J;W=new R($),W.s=q.s}else W=new R(H.toString());Y=(J=R.precision)+3;for(;;)if(F=W,U=F.times(F).times(F),Z=U.plus(q),W=w(Z.plus(q).times(F),Z.plus(U),Y+2,1),k(F.d).slice(0,Y)===($=k(W.d)).slice(0,Y))if($=$.slice(Y-3,Y+1),$=="9999"||!Q&&$=="4999"){if(!Q){if(I(F,J+1,0),F.times(F).times(F).eq(q)){W=F;break}}Y+=4,Q=1}else{if(!+$||!+$.slice(1)&&$.charAt(0)=="5")I(W,J+1,1),K=!W.times(W).times(W).eq(q);break}return O=!0,I(W,J,R.rounding,K)};G.decimalPlaces=G.dp=function(){var J,K=this.d,$=NaN;if(K){if(J=K.length-1,$=(J-C(this.e/N))*N,J=K[J],J)for(;J%10==0;J/=10)$--;if($<0)$=0}return $};G.dividedBy=G.div=function(J){return w(this,new this.constructor(J))};G.dividedToIntegerBy=G.divToInt=function(J){var K=this,$=K.constructor;return I(w(K,new $(J),0,1,1),$.precision,$.rounding)};G.equals=G.eq=function(J){return this.cmp(J)===0};G.floor=function(){return I(new this.constructor(this),this.e+1,3)};G.greaterThan=G.gt=function(J){return this.cmp(J)>0};G.greaterThanOrEqualTo=G.gte=function(J){var K=this.cmp(J);return K==1||K===0};G.hyperbolicCosine=G.cosh=function(){var J,K,$,W,Q,H=this,Y=H.constructor,F=new Y(1);if(!H.isFinite())return new Y(H.s?1/0:NaN);if(H.isZero())return F;if($=Y.precision,W=Y.rounding,Y.precision=$+Math.max(H.e,H.sd())+4,Y.rounding=1,Q=H.d.length,Q<32)J=Math.ceil(Q/3),K=(1/GJ(4,J)).toString();else J=16,K="2.3283064365386962890625e-10";H=t(Y,1,H.times(K),new Y(1),!0);var U,Z=J,q=new Y(8);for(;Z--;)U=H.times(H),H=F.minus(U.times(q.minus(U.times(q))));return I(H,Y.precision=$,Y.rounding=W,!0)};G.hyperbolicSine=G.sinh=function(){var J,K,$,W,Q=this,H=Q.constructor;if(!Q.isFinite()||Q.isZero())return new H(Q);if(K=H.precision,$=H.rounding,H.precision=K+Math.max(Q.e,Q.sd())+4,H.rounding=1,W=Q.d.length,W<3)Q=t(H,2,Q,Q,!0);else{J=1.4*Math.sqrt(W),J=J>16?16:J|0,Q=Q.times(1/GJ(5,J)),Q=t(H,2,Q,Q,!0);var Y,F=new H(5),U=new H(16),Z=new H(20);for(;J--;)Y=Q.times(Q),Q=Q.times(F.plus(Y.times(U.times(Y).plus(Z))))}return H.precision=K,H.rounding=$,I(Q,K,$,!0)};G.hyperbolicTangent=G.tanh=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite())return new W($.s);if($.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+7,W.rounding=1,w($.sinh(),$.cosh(),W.precision=J,W.rounding=K)};G.inverseCosine=G.acos=function(){var J=this,K=J.constructor,$=J.abs().cmp(1),W=K.precision,Q=K.rounding;if($!==-1)return $===0?J.isNeg()?l(K,W,Q):new K(0):new K(NaN);if(J.isZero())return l(K,W+4,Q).times(0.5);return K.precision=W+6,K.rounding=1,J=new K(1).minus(J).div(J.plus(1)).sqrt().atan(),K.precision=W,K.rounding=Q,J.times(2)};G.inverseHyperbolicCosine=G.acosh=function(){var J,K,$=this,W=$.constructor;if($.lte(1))return new W($.eq(1)?0:NaN);if(!$.isFinite())return new W($);return J=W.precision,K=W.rounding,W.precision=J+Math.max(Math.abs($.e),$.sd())+4,W.rounding=1,O=!1,$=$.times($).minus(1).sqrt().plus($),O=!0,W.precision=J,W.rounding=K,$.ln()};G.inverseHyperbolicSine=G.asinh=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite()||$.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+2*Math.max(Math.abs($.e),$.sd())+6,W.rounding=1,O=!1,$=$.times($).plus(1).sqrt().plus($),O=!0,W.precision=J,W.rounding=K,$.ln()};G.inverseHyperbolicTangent=G.atanh=function(){var J,K,$,W,Q=this,H=Q.constructor;if(!Q.isFinite())return new H(NaN);if(Q.e>=0)return new H(Q.abs().eq(1)?Q.s/0:Q.isZero()?Q:NaN);if(J=H.precision,K=H.rounding,W=Q.sd(),Math.max(W,J)<2*-Q.e-1)return I(new H(Q),J,K,!0);return H.precision=$=W-Q.e,Q=w(Q.plus(1),new H(1).minus(Q),$+J,1),H.precision=J+4,H.rounding=1,Q=Q.ln(),H.precision=J,H.rounding=K,Q.times(0.5)};G.inverseSine=G.asin=function(){var J,K,$,W,Q=this,H=Q.constructor;if(Q.isZero())return new H(Q);if(K=Q.abs().cmp(1),$=H.precision,W=H.rounding,K!==-1){if(K===0)return J=l(H,$+4,W).times(0.5),J.s=Q.s,J;return new H(NaN)}return H.precision=$+6,H.rounding=1,Q=Q.div(new H(1).minus(Q.times(Q)).sqrt().plus(1)).atan(),H.precision=$,H.rounding=W,Q.times(2)};G.inverseTangent=G.atan=function(){var J,K,$,W,Q,H,Y,F,U,Z=this,q=Z.constructor,R=q.precision,V=q.rounding;if(!Z.isFinite()){if(!Z.s)return new q(NaN);if(R+4<=EJ)return Y=l(q,R+4,V).times(0.5),Y.s=Z.s,Y}else if(Z.isZero())return new q(Z);else if(Z.abs().eq(1)&&R+4<=EJ)return Y=l(q,R+4,V).times(0.25),Y.s=Z.s,Y;q.precision=F=R+10,q.rounding=1,$=Math.min(28,F/N+2|0);for(J=$;J;--J)Z=Z.div(Z.times(Z).plus(1).sqrt().plus(1));O=!1,K=Math.ceil(F/N),W=1,U=Z.times(Z),Y=new q(Z),Q=Z;for(;J!==-1;)if(Q=Q.times(U),H=Y.minus(Q.div(W+=2)),Q=Q.times(U),Y=H.plus(Q.div(W+=2)),Y.d[K]!==void 0)for(J=K;Y.d[J]===H.d[J]&&J--;);if($)Y=Y.times(2<<$-1);return O=!0,I(Y,q.precision=R,q.rounding=V,!0)};G.isFinite=function(){return!!this.d};G.isInteger=G.isInt=function(){return!!this.d&&C(this.e/N)>this.d.length-2};G.isNaN=function(){return!this.s};G.isNegative=G.isNeg=function(){return this.s<0};G.isPositive=G.isPos=function(){return this.s>0};G.isZero=function(){return!!this.d&&this.d[0]===0};G.lessThan=G.lt=function(J){return this.cmp(J)<0};G.lessThanOrEqualTo=G.lte=function(J){return this.cmp(J)<1};G.logarithm=G.log=function(J){var K,$,W,Q,H,Y,F,U,Z=this,q=Z.constructor,R=q.precision,V=q.rounding,z=5;if(J==null)J=new q(10),K=!0;else{if(J=new q(J),$=J.d,J.s<0||!$||!$[0]||J.eq(1))return new q(NaN);K=J.eq(10)}if($=Z.d,Z.s<0||!$||!$[0]||Z.eq(1))return new q($&&!$[0]?-1/0:Z.s!=1?NaN:$?0:1/0);if(K)if($.length>1)H=!0;else{for(Q=$[0];Q%10===0;)Q/=10;H=Q!==1}if(O=!1,F=R+z,Y=s(Z,F),W=K?qJ(q,F+10):s(J,F),U=w(Y,W,F,1),JJ(U.d,Q=R,V))do if(F+=10,Y=s(Z,F),W=K?qJ(q,F+10):s(J,F),U=w(Y,W,F,1),!H){if(+k(U.d).slice(Q+1,Q+15)+1==100000000000000)U=I(U,R+1,0);break}while(JJ(U.d,Q+=10,V));return O=!0,I(U,R,V)};G.minus=G.sub=function(J){var K,$,W,Q,H,Y,F,U,Z,q,R,V,z=this,B=z.constructor;if(J=new B(J),!z.d||!J.d){if(!z.s||!J.s)J=new B(NaN);else if(z.d)J.s=-J.s;else J=new B(J.d||z.s!==J.s?z:NaN);return J}if(z.s!=J.s)return J.s=-J.s,z.plus(J);if(Z=z.d,V=J.d,F=B.precision,U=B.rounding,!Z[0]||!V[0]){if(V[0])J.s=-J.s;else if(Z[0])J=new B(z);else return new B(U===3?-0:0);return O?I(J,F,U):J}if($=C(J.e/N),q=C(z.e/N),Z=Z.slice(),H=q-$,H){if(R=H<0,R)K=Z,H=-H,Y=V.length;else K=V,$=q,Y=Z.length;if(W=Math.max(Math.ceil(F/N),Y)+2,H>W)H=W,K.length=1;K.reverse();for(W=H;W--;)K.push(0);K.reverse()}else{if(W=Z.length,Y=V.length,R=W<Y,R)Y=W;for(W=0;W<Y;W++)if(Z[W]!=V[W]){R=Z[W]<V[W];break}H=0}if(R)K=Z,Z=V,V=K,J.s=-J.s;Y=Z.length;for(W=V.length-Y;W>0;--W)Z[Y++]=0;for(W=V.length;W>H;){if(Z[--W]<V[W]){for(Q=W;Q&&Z[--Q]===0;)Z[Q]=c-1;--Z[Q],Z[W]+=c}Z[W]-=V[W]}for(;Z[--Y]===0;)Z.pop();for(;Z[0]===0;Z.shift())--$;if(!Z[0])return new B(U===3?-0:0);return J.d=Z,J.e=VJ(Z,$),O?I(J,F,U):J};G.modulo=G.mod=function(J){var K,$=this,W=$.constructor;if(J=new W(J),!$.d||!J.s||J.d&&!J.d[0])return new W(NaN);if(!J.d||$.d&&!$.d[0])return I(new W($),W.precision,W.rounding);if(O=!1,W.modulo==9)K=w($,J.abs(),0,3,1),K.s*=J.s;else K=w($,J,0,W.modulo,1);return K=K.times(J),O=!0,$.minus(K)};G.naturalExponential=G.exp=function(){return AJ(this)};G.naturalLogarithm=G.ln=function(){return s(this)};G.negated=G.neg=function(){var J=new this.constructor(this);return J.s=-J.s,I(J)};G.plus=G.add=function(J){var K,$,W,Q,H,Y,F,U,Z,q,R=this,V=R.constructor;if(J=new V(J),!R.d||!J.d){if(!R.s||!J.s)J=new V(NaN);else if(!R.d)J=new V(J.d||R.s===J.s?R:NaN);return J}if(R.s!=J.s)return J.s=-J.s,R.minus(J);if(Z=R.d,q=J.d,F=V.precision,U=V.rounding,!Z[0]||!q[0]){if(!q[0])J=new V(R);return O?I(J,F,U):J}if(H=C(R.e/N),W=C(J.e/N),Z=Z.slice(),Q=H-W,Q){if(Q<0)$=Z,Q=-Q,Y=q.length;else $=q,W=H,Y=Z.length;if(H=Math.ceil(F/N),Y=H>Y?H+1:Y+1,Q>Y)Q=Y,$.length=1;$.reverse();for(;Q--;)$.push(0);$.reverse()}if(Y=Z.length,Q=q.length,Y-Q<0)Q=Y,$=q,q=Z,Z=$;for(K=0;Q;)K=(Z[--Q]=Z[Q]+q[Q]+K)/c|0,Z[Q]%=c;if(K)Z.unshift(K),++W;for(Y=Z.length;Z[--Y]==0;)Z.pop();return J.d=Z,J.e=VJ(Z,W),O?I(J,F,U):J};G.precision=G.sd=function(J){var K,$=this;if(J!==void 0&&J!==!!J&&J!==1&&J!==0)throw Error(o+J);if($.d){if(K=mJ($.d),J&&$.e+1>K)K=$.e+1}else K=NaN;return K};G.round=function(){var J=this,K=J.constructor;return I(new K(J),J.e+1,K.rounding)};G.sine=G.sin=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite())return new W(NaN);if($.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+Math.max($.e,$.sd())+N,W.rounding=1,$=FK(W,aJ(W,$)),W.precision=J,W.rounding=K,I(n>2?$.neg():$,J,K,!0)};G.squareRoot=G.sqrt=function(){var J,K,$,W,Q,H,Y=this,F=Y.d,U=Y.e,Z=Y.s,q=Y.constructor;if(Z!==1||!F||!F[0])return new q(!Z||Z<0&&(!F||F[0])?NaN:F?Y:1/0);if(O=!1,Z=Math.sqrt(+Y),Z==0||Z==1/0){if(K=k(F),(K.length+U)%2==0)K+="0";if(Z=Math.sqrt(K),U=C((U+1)/2)-(U<0||U%2),Z==1/0)K="5e"+U;else K=Z.toExponential(),K=K.slice(0,K.indexOf("e")+1)+U;W=new q(K)}else W=new q(Z.toString());$=(U=q.precision)+3;for(;;)if(H=W,W=H.plus(w(Y,H,$+2,1)).times(0.5),k(H.d).slice(0,$)===(K=k(W.d)).slice(0,$))if(K=K.slice($-3,$+1),K=="9999"||!Q&&K=="4999"){if(!Q){if(I(H,U+1,0),H.times(H).eq(Y)){W=H;break}}$+=4,Q=1}else{if(!+K||!+K.slice(1)&&K.charAt(0)=="5")I(W,U+1,1),J=!W.times(W).eq(Y);break}return O=!0,I(W,U,q.rounding,J)};G.tangent=G.tan=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite())return new W(NaN);if($.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+10,W.rounding=1,$=$.sin(),$.s=1,$=w($,new W(1).minus($.times($)).sqrt(),J+10,0),W.precision=J,W.rounding=K,I(n==2||n==4?$.neg():$,J,K,!0)};G.times=G.mul=function(J){var K,$,W,Q,H,Y,F,U,Z,q=this,R=q.constructor,V=q.d,z=(J=new R(J)).d;if(J.s*=q.s,!V||!V[0]||!z||!z[0])return new R(!J.s||V&&!V[0]&&!z||z&&!z[0]&&!V?NaN:!V||!z?J.s/0:J.s*0);if($=C(q.e/N)+C(J.e/N),U=V.length,Z=z.length,U<Z)H=V,V=z,z=H,Y=U,U=Z,Z=Y;H=[],Y=U+Z;for(W=Y;W--;)H.push(0);for(W=Z;--W>=0;){K=0;for(Q=U+W;Q>W;)F=H[Q]+z[W]*V[Q-W-1]+K,H[Q--]=F%c|0,K=F/c|0;H[Q]=(H[Q]+K)%c|0}for(;!H[--Y];)H.pop();if(K)++$;else H.shift();return J.d=H,J.e=VJ(H,$),O?I(J,R.precision,R.rounding):J};G.toBinary=function(J,K){return wJ(this,2,J,K)};G.toDecimalPlaces=G.toDP=function(J,K){var $=this,W=$.constructor;if($=new W($),J===void 0)return $;if(v(J,0,x),K===void 0)K=W.rounding;else v(K,0,8);return I($,J+$.e+1,K)};G.toExponential=function(J,K){var $,W=this,Q=W.constructor;if(J===void 0)$=d(W,!0);else{if(v(J,0,x),K===void 0)K=Q.rounding;else v(K,0,8);W=I(new Q(W),J+1,K),$=d(W,!0,J+1)}return W.isNeg()&&!W.isZero()?"-"+$:$};G.toFixed=function(J,K){var $,W,Q=this,H=Q.constructor;if(J===void 0)$=d(Q);else{if(v(J,0,x),K===void 0)K=H.rounding;else v(K,0,8);W=I(new H(Q),J+Q.e+1,K),$=d(W,!1,J+W.e+1)}return Q.isNeg()&&!Q.isZero()?"-"+$:$};G.toFraction=function(J){var K,$,W,Q,H,Y,F,U,Z,q,R,V,z=this,B=z.d,T=z.constructor;if(!B)return new T(z);if(Z=$=new T(1),W=U=new T(0),K=new T(W),H=K.e=mJ(B)-z.e-1,Y=H%N,K.d[0]=f(10,Y<0?N+Y:Y),J==null)J=H>0?K:Z;else{if(F=new T(J),!F.isInt()||F.lt(Z))throw Error(o+F);J=F.gt(K)?H>0?K:Z:F}O=!1,F=new T(k(B)),q=T.precision,T.precision=H=B.length*N*2;for(;;){if(R=w(F,K,0,1,1),Q=$.plus(R.times(W)),Q.cmp(J)==1)break;$=W,W=Q,Q=Z,Z=U.plus(R.times(Q)),U=Q,Q=K,K=F.minus(R.times(Q)),F=Q}return Q=w(J.minus($),W,0,1,1),U=U.plus(Q.times(Z)),$=$.plus(Q.times(W)),U.s=Z.s=z.s,V=w(Z,W,H,1).minus(z).abs().cmp(w(U,$,H,1).minus(z).abs())<1?[Z,W]:[U,$],T.precision=q,O=!0,V};G.toHexadecimal=G.toHex=function(J,K){return wJ(this,16,J,K)};G.toNearest=function(J,K){var $=this,W=$.constructor;if($=new W($),J==null){if(!$.d)return $;J=new W(1),K=W.rounding}else{if(J=new W(J),K===void 0)K=W.rounding;else v(K,0,8);if(!$.d)return J.s?$:J;if(!J.d){if(J.s)J.s=$.s;return J}}if(J.d[0])O=!1,$=w($,J,0,K,1).times(J),O=!0,I($);else J.s=$.s,$=J;return $};G.toNumber=function(){return+this};G.toOctal=function(J,K){return wJ(this,8,J,K)};G.toPower=G.pow=function(J){var K,$,W,Q,H,Y,F=this,U=F.constructor,Z=+(J=new U(J));if(!F.d||!J.d||!F.d[0]||!J.d[0])return new U(f(+F,Z));if(F=new U(F),F.eq(1))return F;if(W=U.precision,H=U.rounding,J.eq(1))return I(F,W,H);if(K=C(J.e/N),K>=J.d.length-1&&($=Z<0?-Z:Z)<=WK)return Q=sJ(U,F,$,W),J.s<0?new U(1).div(Q):I(Q,W,H);if(Y=F.s,Y<0){if(K<J.d.length-1)return new U(NaN);if((J.d[K]&1)==0)Y=1;if(F.e==0&&F.d[0]==1&&F.d.length==1)return F.s=Y,F}if($=f(+F,Z),K=$==0||!isFinite($)?C(Z*(Math.log("0."+k(F.d))/Math.LN10+F.e+1)):new U($+"").e,K>U.maxE+1||K<U.minE-1)return new U(K>0?Y/0:0);if(O=!1,U.rounding=F.s=1,$=Math.min(12,(K+"").length),Q=AJ(J.times(s(F,W+$)),W),Q.d){if(Q=I(Q,W+5,1),JJ(Q.d,W,H)){if(K=W+10,Q=I(AJ(J.times(s(F,K+$)),K),K+5,1),+k(Q.d).slice(W+1,W+15)+1==100000000000000)Q=I(Q,W+1,0)}}return Q.s=Y,O=!0,U.rounding=H,I(Q,W,H)};G.toPrecision=function(J,K){var $,W=this,Q=W.constructor;if(J===void 0)$=d(W,W.e<=Q.toExpNeg||W.e>=Q.toExpPos);else{if(v(J,1,x),K===void 0)K=Q.rounding;else v(K,0,8);W=I(new Q(W),J,K),$=d(W,J<=W.e||W.e<=Q.toExpNeg,J)}return W.isNeg()&&!W.isZero()?"-"+$:$};G.toSignificantDigits=G.toSD=function(J,K){var $=this,W=$.constructor;if(J===void 0)J=W.precision,K=W.rounding;else if(v(J,1,x),K===void 0)K=W.rounding;else v(K,0,8);return I(new W($),J,K)};G.toString=function(){var J=this,K=J.constructor,$=d(J,J.e<=K.toExpNeg||J.e>=K.toExpPos);return J.isNeg()&&!J.isZero()?"-"+$:$};G.truncated=G.trunc=function(){return I(new this.constructor(this),this.e+1,1)};G.valueOf=G.toJSON=function(){var J=this,K=J.constructor,$=d(J,J.e<=K.toExpNeg||J.e>=K.toExpPos);return J.isNeg()?"-"+$:$};function k(J){var K,$,W,Q=J.length-1,H="",Y=J[0];if(Q>0){H+=Y;for(K=1;K<Q;K++){if(W=J[K]+"",$=N-W.length,$)H+=m($);H+=W}if(Y=J[K],W=Y+"",$=N-W.length,$)H+=m($)}else if(Y===0)return"0";for(;Y%10===0;)Y/=10;return H+Y}function v(J,K,$){if(J!==~~J||J<K||J>$)throw Error(o+J)}function JJ(J,K,$,W){var Q,H,Y,F;for(H=J[0];H>=10;H/=10)--K;if(--K<0)K+=N,Q=0;else Q=Math.ceil((K+1)/N),K%=N;if(H=f(10,N-K),F=J[Q]%H|0,W==null)if(K<3){if(K==0)F=F/100|0;else if(K==1)F=F/10|0;Y=$<4&&F==99999||$>3&&F==49999||F==50000||F==0}else Y=($<4&&F+1==H||$>3&&F+1==H/2)&&(J[Q+1]/H/100|0)==f(10,K-2)-1||(F==H/2||F==0)&&(J[Q+1]/H/100|0)==0;else if(K<4){if(K==0)F=F/1000|0;else if(K==1)F=F/100|0;else if(K==2)F=F/10|0;Y=(W||$<4)&&F==9999||!W&&$>3&&F==4999}else Y=((W||$<4)&&F+1==H||!W&&$>3&&F+1==H/2)&&(J[Q+1]/H/1000|0)==f(10,K-3)-1;return Y}function FJ(J,K,$){var W,Q=[0],H,Y=0,F=J.length;for(;Y<F;){for(H=Q.length;H--;)Q[H]*=K;Q[0]+=BJ.indexOf(J.charAt(Y++));for(W=0;W<Q.length;W++)if(Q[W]>$-1){if(Q[W+1]===void 0)Q[W+1]=0;Q[W+1]+=Q[W]/$|0,Q[W]%=$}}return Q.reverse()}function HK(J,K){var $,W,Q;if(K.isZero())return K;if(W=K.d.length,W<32)$=Math.ceil(W/3),Q=(1/GJ(4,$)).toString();else $=16,Q="2.3283064365386962890625e-10";J.precision+=$,K=t(J,1,K.times(Q),new J(1));for(var H=$;H--;){var Y=K.times(K);K=Y.times(Y).minus(Y).times(8).plus(1)}return J.precision-=$,K}var w=function(){function J(W,Q,H){var Y,F=0,U=W.length;for(W=W.slice();U--;)Y=W[U]*Q+F,W[U]=Y%H|0,F=Y/H|0;if(F)W.unshift(F);return W}function K(W,Q,H,Y){var F,U;if(H!=Y)U=H>Y?1:-1;else for(F=U=0;F<H;F++)if(W[F]!=Q[F]){U=W[F]>Q[F]?1:-1;break}return U}function $(W,Q,H,Y){var F=0;for(;H--;)W[H]-=F,F=W[H]<Q[H]?1:0,W[H]=F*Y+W[H]-Q[H];for(;!W[0]&&W.length>1;)W.shift()}return function(W,Q,H,Y,F,U){var Z,q,R,V,z,B,T,L,M,D,E,b,a,p,NJ,QJ,r,_J,y,HJ,YJ=W.constructor,TJ=W.s==Q.s?1:-1,g=W.d,S=Q.d;if(!g||!g[0]||!S||!S[0])return new YJ(!W.s||!Q.s||(g?S&&g[0]==S[0]:!S)?NaN:g&&g[0]==0||!S?TJ*0:TJ/0);if(U)z=1,q=W.e-Q.e;else U=c,z=N,q=C(W.e/z)-C(Q.e/z);y=S.length,r=g.length,M=new YJ(TJ),D=M.d=[];for(R=0;S[R]==(g[R]||0);R++);if(S[R]>(g[R]||0))q--;if(H==null)p=H=YJ.precision,Y=YJ.rounding;else if(F)p=H+(W.e-Q.e)+1;else p=H;if(p<0)D.push(1),B=!0;else{if(p=p/z+2|0,R=0,y==1){V=0,S=S[0],p++;for(;(R<r||V)&&p--;R++)NJ=V*U+(g[R]||0),D[R]=NJ/S|0,V=NJ%S|0;B=V||R<r}else{if(V=U/(S[0]+1)|0,V>1)S=J(S,V,U),g=J(g,V,U),y=S.length,r=g.length;QJ=y,E=g.slice(0,y),b=E.length;for(;b<y;)E[b++]=0;if(HJ=S.slice(),HJ.unshift(0),_J=S[0],S[1]>=U/2)++_J;do{if(V=0,Z=K(S,E,y,b),Z<0){if(a=E[0],y!=b)a=a*U+(E[1]||0);if(V=a/_J|0,V>1){if(V>=U)V=U-1;if(T=J(S,V,U),L=T.length,b=E.length,Z=K(T,E,L,b),Z==1)V--,$(T,y<L?HJ:S,L,U)}else{if(V==0)Z=V=1;T=S.slice()}if(L=T.length,L<b)T.unshift(0);if($(E,T,b,U),Z==-1){if(b=E.length,Z=K(S,E,y,b),Z<1)V++,$(E,y<b?HJ:S,b,U)}b=E.length}else if(Z===0)V++,E=[0];if(D[R++]=V,Z&&E[0])E[b++]=g[QJ]||0;else E=[g[QJ]],b=1}while((QJ++<r||E[0]!==void 0)&&p--);B=E[0]!==void 0}if(!D[0])D.shift()}if(z==1)M.e=q,yJ=B;else{for(R=1,V=D[0];V>=10;V/=10)R++;M.e=R+q*z-1,I(M,F?H+M.e+1:H,Y,B)}return M}}();function I(J,K,$,W){var Q,H,Y,F,U,Z,q,R,V,z=J.constructor;J:if(K!=null){if(R=J.d,!R)return J;for(Q=1,F=R[0];F>=10;F/=10)Q++;if(H=K-Q,H<0)H+=N,Y=K,q=R[V=0],U=q/f(10,Q-Y-1)%10|0;else if(V=Math.ceil((H+1)/N),F=R.length,V>=F)if(W){for(;F++<=V;)R.push(0);q=U=0,Q=1,H%=N,Y=H-N+1}else break J;else{q=F=R[V];for(Q=1;F>=10;F/=10)Q++;H%=N,Y=H-N+Q,U=Y<0?0:q/f(10,Q-Y-1)%10|0}if(W=W||K<0||R[V+1]!==void 0||(Y<0?q:q%f(10,Q-Y-1)),Z=$<4?(U||W)&&($==0||$==(J.s<0?3:2)):U>5||U==5&&($==4||W||$==6&&(H>0?Y>0?q/f(10,Q-Y):0:R[V-1])%10&1||$==(J.s<0?8:7)),K<1||!R[0]){if(R.length=0,Z)K-=J.e+1,R[0]=f(10,(N-K%N)%N),J.e=-K||0;else R[0]=J.e=0;return J}if(H==0)R.length=V,F=1,V--;else R.length=V+1,F=f(10,N-H),R[V]=Y>0?(q/f(10,Q-Y)%f(10,Y)|0)*F:0;if(Z)for(;;)if(V==0){for(H=1,Y=R[0];Y>=10;Y/=10)H++;Y=R[0]+=F;for(F=1;Y>=10;Y/=10)F++;if(H!=F){if(J.e++,R[0]==c)R[0]=1}break}else{if(R[V]+=F,R[V]!=c)break;R[V--]=0,F=1}for(H=R.length;R[--H]===0;)R.pop()}if(O){if(J.e>z.maxE)J.d=null,J.e=NaN;else if(J.e<z.minE)J.e=0,J.d=[0]}return J}function d(J,K,$){if(!J.isFinite())return xJ(J);var W,Q=J.e,H=k(J.d),Y=H.length;if(K){if($&&(W=$-Y)>0)H=H.charAt(0)+"."+H.slice(1)+m(W);else if(Y>1)H=H.charAt(0)+"."+H.slice(1);H=H+(J.e<0?"e":"e+")+J.e}else if(Q<0){if(H="0."+m(-Q-1)+H,$&&(W=$-Y)>0)H+=m(W)}else if(Q>=Y){if(H+=m(Q+1-Y),$&&(W=$-Q-1)>0)H=H+"."+m(W)}else{if((W=Q+1)<Y)H=H.slice(0,W)+"."+H.slice(W);if($&&(W=$-Y)>0){if(Q+1===Y)H+=".";H+=m(W)}}return H}function VJ(J,K){var $=J[0];for(K*=N;$>=10;$/=10)K++;return K}function qJ(J,K,$){if(K>QK){if(O=!0,$)J.precision=$;throw Error(cJ)}return I(new J(XJ),K,1,!0)}function l(J,K,$){if(K>EJ)throw Error(cJ);return I(new J(UJ),K,$,!0)}function mJ(J){var K=J.length-1,$=K*N+1;if(K=J[K],K){for(;K%10==0;K/=10)$--;for(K=J[0];K>=10;K/=10)$++}return $}function m(J){var K="";for(;J--;)K+="0";return K}function sJ(J,K,$,W){var Q,H=new J(1),Y=Math.ceil(W/N+4);O=!1;for(;;){if($%2){if(H=H.times(K),DJ(H.d,Y))Q=!0}if($=C($/2),$===0){if($=H.d.length-1,Q&&H.d[$]===0)++H.d[$];break}K=K.times(K),DJ(K.d,Y)}return O=!0,H}function uJ(J){return J.d[J.d.length-1]&1}function oJ(J,K,$){var W,Q,H=new J(K[0]),Y=0;for(;++Y<K.length;){if(Q=new J(K[Y]),!Q.s){H=Q;break}if(W=H.cmp(Q),W===$||W===0&&H.s===$)H=Q}return H}function AJ(J,K){var $,W,Q,H,Y,F,U,Z=0,q=0,R=0,V=J.constructor,z=V.rounding,B=V.precision;if(!J.d||!J.d[0]||J.e>17)return new V(J.d?!J.d[0]?1:J.s<0?0:1/0:J.s?J.s<0?0:J:NaN);if(K==null)O=!1,U=B;else U=K;F=new V(0.03125);while(J.e>-2)J=J.times(F),R+=5;W=Math.log(f(2,R))/Math.LN10*2+5|0,U+=W,$=H=Y=new V(1),V.precision=U;for(;;){if(H=I(H.times(J),U,1),$=$.times(++q),F=Y.plus(w(H,$,U,1)),k(F.d).slice(0,U)===k(Y.d).slice(0,U)){Q=R;while(Q--)Y=I(Y.times(Y),U,1);if(K==null)if(Z<3&&JJ(Y.d,U-W,z,Z))V.precision=U+=10,$=H=F=new V(1),q=0,Z++;else return I(Y,V.precision=B,z,O=!0);else return V.precision=B,Y}Y=F}}function s(J,K){var $,W,Q,H,Y,F,U,Z,q,R,V,z=1,B=10,T=J,L=T.d,M=T.constructor,D=M.rounding,E=M.precision;if(T.s<0||!L||!L[0]||!T.e&&L[0]==1&&L.length==1)return new M(L&&!L[0]?-1/0:T.s!=1?NaN:L?0:T);if(K==null)O=!1,q=E;else q=K;if(M.precision=q+=B,$=k(L),W=$.charAt(0),Math.abs(H=T.e)<1500000000000000){while(W<7&&W!=1||W==1&&$.charAt(1)>3)T=T.times(J),$=k(T.d),W=$.charAt(0),z++;if(H=T.e,W>1)T=new M("0."+$),H++;else T=new M(W+"."+$.slice(1))}else return Z=qJ(M,q+2,E).times(H+""),T=s(new M(W+"."+$.slice(1)),q-B).plus(Z),M.precision=E,K==null?I(T,E,D,O=!0):T;R=T,U=Y=T=w(T.minus(1),T.plus(1),q,1),V=I(T.times(T),q,1),Q=3;for(;;){if(Y=I(Y.times(V),q,1),Z=U.plus(w(Y,new M(Q),q,1)),k(Z.d).slice(0,q)===k(U.d).slice(0,q)){if(U=U.times(2),H!==0)U=U.plus(qJ(M,q+2,E).times(H+""));if(U=w(U,new M(z),q,1),K==null)if(JJ(U.d,q-B,D,F))M.precision=q+=B,Z=Y=T=w(R.minus(1),R.plus(1),q,1),V=I(T.times(T),q,1),Q=F=1;else return I(U,M.precision=E,D,O=!0);else return M.precision=E,U}U=Z,Q+=2}}function xJ(J){return String(J.s*J.s/0)}function ZJ(J,K){var $,W,Q;if(($=K.indexOf("."))>-1)K=K.replace(".","");if((W=K.search(/e/i))>0){if($<0)$=W;$+=+K.slice(W+1),K=K.substring(0,W)}else if($<0)$=K.length;for(W=0;K.charCodeAt(W)===48;W++);for(Q=K.length;K.charCodeAt(Q-1)===48;--Q);if(K=K.slice(W,Q),K){if(Q-=W,J.e=$=$-W-1,J.d=[],W=($+1)%N,$<0)W+=N;if(W<Q){if(W)J.d.push(+K.slice(0,W));for(Q-=N;W<Q;)J.d.push(+K.slice(W,W+=N));K=K.slice(W),W=N-K.length}else W-=Q;for(;W--;)K+="0";if(J.d.push(+K),O){if(J.e>J.constructor.maxE)J.d=null,J.e=NaN;else if(J.e<J.constructor.minE)J.e=0,J.d=[0]}}else J.e=0,J.d=[0];return J}function YK(J,K){var $,W,Q,H,Y,F,U,Z,q;if(K.indexOf("_")>-1){if(K=K.replace(/(\d)_(?=\d)/g,"$1"),nJ.test(K))return ZJ(J,K)}else if(K==="Infinity"||K==="NaN"){if(!+K)J.s=NaN;return J.e=NaN,J.d=null,J}if(KK.test(K))$=16,K=K.toLowerCase();else if(JK.test(K))$=2;else if($K.test(K))$=8;else throw Error(o+K);if(H=K.search(/p/i),H>0)U=+K.slice(H+1),K=K.substring(2,H);else K=K.slice(2);if(H=K.indexOf("."),Y=H>=0,W=J.constructor,Y)K=K.replace(".",""),F=K.length,H=F-H,Q=sJ(W,new W($),H,H*2);Z=FJ(K,$,c),q=Z.length-1;for(H=q;Z[H]===0;--H)Z.pop();if(H<0)return new W(J.s*0);if(J.e=VJ(Z,q),J.d=Z,O=!1,Y)J=w(J,Q,F*4);if(U)J=J.times(Math.abs(U)<54?f(2,U):KJ.pow(2,U));return O=!0,J}function FK(J,K){var $,W=K.d.length;if(W<3)return K.isZero()?K:t(J,2,K,K);$=1.4*Math.sqrt(W),$=$>16?16:$|0,K=K.times(1/GJ(5,$)),K=t(J,2,K,K);var Q,H=new J(5),Y=new J(16),F=new J(20);for(;$--;)Q=K.times(K),K=K.times(H.plus(Q.times(Y.times(Q).minus(F))));return K}function t(J,K,$,W,Q){var H,Y,F,U,Z=1,q=J.precision,R=Math.ceil(q/N);O=!1,U=$.times($),F=new J(W);for(;;){if(Y=w(F.times(U),new J(K++*K++),q,1),F=Q?W.plus(Y):W.minus(Y),W=w(Y.times(U),new J(K++*K++),q,1),Y=F.plus(W),Y.d[R]!==void 0){for(H=R;Y.d[H]===F.d[H]&&H--;);if(H==-1)break}H=F,F=W,W=Y,Y=H,Z++}return O=!0,Y.d.length=R+1,Y}function GJ(J,K){var $=J;while(--K)$*=J;return $}function aJ(J,K){var $,W=K.s<0,Q=l(J,J.precision,1),H=Q.times(0.5);if(K=K.abs(),K.lte(H))return n=W?4:1,K;if($=K.divToInt(Q),$.isZero())n=W?3:2;else{if(K=K.minus($.times(Q)),K.lte(H))return n=uJ($)?W?2:3:W?4:1,K;n=uJ($)?W?1:4:W?3:2}return K.minus(Q).abs()}function wJ(J,K,$,W){var Q,H,Y,F,U,Z,q,R,V,z=J.constructor,B=$!==void 0;if(B)if(v($,1,x),W===void 0)W=z.rounding;else v(W,0,8);else $=z.precision,W=z.rounding;if(!J.isFinite())q=xJ(J);else{if(q=d(J),Y=q.indexOf("."),B){if(Q=2,K==16)$=$*4-3;else if(K==8)$=$*3-2}else Q=K;if(Y>=0)q=q.replace(".",""),V=new z(1),V.e=q.length-Y,V.d=FJ(d(V),10,Q),V.e=V.d.length;R=FJ(q,10,Q),H=U=R.length;for(;R[--U]==0;)R.pop();if(!R[0])q=B?"0p+0":"0";else{if(Y<0)H--;else J=new z(J),J.d=R,J.e=H,J=w(J,V,$,W,0,Q),R=J.d,H=J.e,Z=yJ;if(Y=R[$],F=Q/2,Z=Z||R[$+1]!==void 0,Z=W<4?(Y!==void 0||Z)&&(W===0||W===(J.s<0?3:2)):Y>F||Y===F&&(W===4||Z||W===6&&R[$-1]&1||W===(J.s<0?8:7)),R.length=$,Z){for(;++R[--$]>Q-1;)if(R[$]=0,!$)++H,R.unshift(1)}for(U=R.length;!R[U-1];--U);for(Y=0,q="";Y<U;Y++)q+=BJ.charAt(R[Y]);if(B){if(U>1)if(K==16||K==8){Y=K==16?4:3;for(--U;U%Y;U++)q+="0";R=FJ(q,Q,K);for(U=R.length;!R[U-1];--U);for(Y=1,q="1.";Y<U;Y++)q+=BJ.charAt(R[Y])}else q=q.charAt(0)+"."+q.slice(1);q=q+(H<0?"p":"p+")+H}else if(H<0){for(;++H;)q="0"+q;q="0."+q}else if(++H>U)for(H-=U;H--;)q+="0";else if(H<U)q=q.slice(0,H)+"."+q.slice(H)}q=(K==16?"0x":K==2?"0b":K==8?"0o":"")+q}return J.s<0?"-"+q:q}function DJ(J,K){if(J.length>K)return J.length=K,!0}function ZK(J){return new this(J).abs()}function XK(J){return new this(J).acos()}function UK(J){return new this(J).acosh()}function qK(J,K){return new this(J).plus(K)}function RK(J){return new this(J).asin()}function VK(J){return new this(J).asinh()}function GK(J){return new this(J).atan()}function zK(J){return new this(J).atanh()}function IK(J,K){J=new this(J),K=new this(K);var $,W=this.precision,Q=this.rounding,H=W+4;if(!J.s||!K.s)$=new this(NaN);else if(!J.d&&!K.d)$=l(this,H,1).times(K.s>0?0.25:0.75),$.s=J.s;else if(!K.d||J.isZero())$=K.s<0?l(this,W,Q):new this(0),$.s=J.s;else if(!J.d||K.isZero())$=l(this,H,1).times(0.5),$.s=J.s;else if(K.s<0)this.precision=H,this.rounding=1,$=this.atan(w(J,K,H,1)),K=l(this,H,1),this.precision=W,this.rounding=Q,$=J.s<0?$.minus(K):$.plus(K);else $=this.atan(w(J,K,H,1));return $}function NK(J){return new this(J).cbrt()}function _K(J){return I(J=new this(J),J.e+1,2)}function TK(J,K,$){return new this(J).clamp(K,$)}function BK(J){if(!J||typeof J!=="object")throw Error(RJ+"Object expected");var K,$,W,Q=J.defaults===!0,H=["precision",1,x,"rounding",0,8,"toExpNeg",-i,0,"toExpPos",0,i,"maxE",0,i,"minE",-i,0,"modulo",0,9];for(K=0;K<H.length;K+=3){if($=H[K],Q)this[$]=OJ[$];if((W=J[$])!==void 0)if(C(W)===W&&W>=H[K+1]&&W<=H[K+2])this[$]=W;else throw Error(o+$+": "+W)}if($="crypto",Q)this[$]=OJ[$];if((W=J[$])!==void 0)if(W===!0||W===!1||W===0||W===1)if(W)if(typeof crypto!="undefined"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[$]=!0;else throw Error(lJ);else this[$]=!1;else throw Error(o+$+": "+W);return this}function OK(J){return new this(J).cos()}function EK(J){return new this(J).cosh()}function iJ(J){var K,$,W;function Q(H){var Y,F,U,Z=this;if(!(Z instanceof Q))return new Q(H);if(Z.constructor=Q,pJ(H)){if(Z.s=H.s,O)if(!H.d||H.e>Q.maxE)Z.e=NaN,Z.d=null;else if(H.e<Q.minE)Z.e=0,Z.d=[0];else Z.e=H.e,Z.d=H.d.slice();else Z.e=H.e,Z.d=H.d?H.d.slice():H.d;return}if(U=typeof H,U==="number"){if(H===0){Z.s=1/H<0?-1:1,Z.e=0,Z.d=[0];return}if(H<0)H=-H,Z.s=-1;else Z.s=1;if(H===~~H&&H<1e7){for(Y=0,F=H;F>=10;F/=10)Y++;if(O)if(Y>Q.maxE)Z.e=NaN,Z.d=null;else if(Y<Q.minE)Z.e=0,Z.d=[0];else Z.e=Y,Z.d=[H];else Z.e=Y,Z.d=[H];return}if(H*0!==0){if(!H)Z.s=NaN;Z.e=NaN,Z.d=null;return}return ZJ(Z,H.toString())}if(U==="string"){if((F=H.charCodeAt(0))===45)H=H.slice(1),Z.s=-1;else{if(F===43)H=H.slice(1);Z.s=1}return nJ.test(H)?ZJ(Z,H):YK(Z,H)}if(U==="bigint"){if(H<0)H=-H,Z.s=-1;else Z.s=1;return ZJ(Z,H.toString())}throw Error(o+H)}if(Q.prototype=G,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=BK,Q.clone=iJ,Q.isDecimal=pJ,Q.abs=ZK,Q.acos=XK,Q.acosh=UK,Q.add=qK,Q.asin=RK,Q.asinh=VK,Q.atan=GK,Q.atanh=zK,Q.atan2=IK,Q.cbrt=NK,Q.ceil=_K,Q.clamp=TK,Q.cos=OK,Q.cosh=EK,Q.div=AK,Q.exp=wK,Q.floor=SK,Q.hypot=MK,Q.ln=PK,Q.log=fK,Q.log10=bK,Q.log2=jK,Q.max=LK,Q.min=kK,Q.mod=gK,Q.mul=CK,Q.pow=hK,Q.random=vK,Q.round=uK,Q.sign=DK,Q.sin=pK,Q.sinh=yK,Q.sqrt=cK,Q.sub=lK,Q.sum=dK,Q.tan=nK,Q.tanh=mK,Q.trunc=sK,J===void 0)J={};if(J){if(J.defaults!==!0){W=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"];for(K=0;K<W.length;)if(!J.hasOwnProperty($=W[K++]))J[$]=this[$]}}return Q.config(J),Q}function AK(J,K){return new this(J).div(K)}function wK(J){return new this(J).exp()}function SK(J){return I(J=new this(J),J.e+1,3)}function MK(){var J,K,$=new this(0);O=!1;for(J=0;J<arguments.length;)if(K=new this(arguments[J++]),!K.d){if(K.s)return O=!0,new this(1/0);$=K}else if($.d)$=$.plus(K.times(K));return O=!0,$.sqrt()}function pJ(J){return J instanceof KJ||J&&J.toStringTag===dJ||!1}function PK(J){return new this(J).ln()}function fK(J,K){return new this(J).log(K)}function jK(J){return new this(J).log(2)}function bK(J){return new this(J).log(10)}function LK(){return oJ(this,arguments,-1)}function kK(){return oJ(this,arguments,1)}function gK(J,K){return new this(J).mod(K)}function CK(J,K){return new this(J).mul(K)}function hK(J,K){return new this(J).pow(K)}function vK(J){var K,$,W,Q,H=0,Y=new this(1),F=[];if(J===void 0)J=this.precision;else v(J,1,x);if(W=Math.ceil(J/N),!this.crypto)for(;H<W;)F[H++]=Math.random()*1e7|0;else if(crypto.getRandomValues){K=crypto.getRandomValues(new Uint32Array(W));for(;H<W;)if(Q=K[H],Q>=4290000000)K[H]=crypto.getRandomValues(new Uint32Array(1))[0];else F[H++]=Q%1e7}else if(crypto.randomBytes){K=crypto.randomBytes(W*=4);for(;H<W;)if(Q=K[H]+(K[H+1]<<8)+(K[H+2]<<16)+((K[H+3]&127)<<24),Q>=2140000000)crypto.randomBytes(4).copy(K,H);else F.push(Q%1e7),H+=4;H=W/4}else throw Error(lJ);if(W=F[--H],J%=N,W&&J)Q=f(10,N-J),F[H]=(W/Q|0)*Q;for(;F[H]===0;H--)F.pop();if(H<0)$=0,F=[0];else{$=-1;for(;F[0]===0;$-=N)F.shift();for(W=1,Q=F[0];Q>=10;Q/=10)W++;if(W<N)$-=N-W}return Y.e=$,Y.d=F,Y}function uK(J){return I(J=new this(J),J.e+1,this.rounding)}function DK(J){return J=new this(J),J.d?J.d[0]?J.s:0*J.s:J.s||NaN}function pK(J){return new this(J).sin()}function yK(J){return new this(J).sinh()}function cK(J){return new this(J).sqrt()}function lK(J,K){return new this(J).sub(K)}function dK(){var J=0,K=arguments,$=new this(K[J]);O=!1;for(;$.s&&++J<K.length;)$=$.plus(K[J]);return O=!0,I($,this.precision,this.rounding)}function nK(J){return new this(J).tan()}function mK(J){return new this(J).tanh()}function sK(J){return I(J=new this(J),J.e+1,1)}G[Symbol.for("nodejs.util.inspect.custom")]=G.toString;G[Symbol.toStringTag]="Decimal";var KJ=G.constructor=iJ(OJ);XJ=new KJ(XJ);UJ=new KJ(UJ);var X=KJ;var SJ=(J)=>{if(J===null||J===void 0)throw new Error(`Cannot convert ${J===null?"null":"undefined"} to Decimal`);if(J instanceof X)return J;try{return new X(J)}catch(K){throw new Error(`Invalid numeric value: ${K.message}`)}};class A{constructor(J){if(!Array.isArray(J))throw new Error("Vector requires array");if(J.length===0)throw new Error("Vector requires at least one component");try{this.data=J.map((K,$)=>{if(K===null||K===void 0)throw new Error(`Vector component at index ${$} is ${K===null?"null":"undefined"}`);return SJ(K)})}catch(K){throw new Error(`Vector constructor failed: ${K.message}`)}this.length=this.data.length}static from(J){if(J===null||J===void 0)throw new Error(`Vector.from: argument is ${J===null?"null":"undefined"}`);return new A(J)}clone(){return new A(this.data.map((J)=>new X(J)))}toArray(){return this.data.slice()}toNumberArray(){return this.data.map((J)=>J.toNumber())}toStringArray(){return this.data.map((J)=>J.toString())}add(J){if(!J||!(J instanceof A))throw new Error("add: argument must be a Vector");if(this.length!==J.length)throw new Error(`add: dimension mismatch (${this.length} vs ${J.length})`);return new A(this.data.map((K,$)=>K.plus(J.data[$])))}sub(J){if(!J||!(J instanceof A))throw new Error("sub: argument must be a Vector");if(this.length!==J.length)throw new Error(`sub: dimension mismatch (${this.length} vs ${J.length})`);return new A(this.data.map((K,$)=>K.minus(J.data[$])))}scale(J){if(J===null||J===void 0)throw new Error(`scale: scalar is ${J===null?"null":"undefined"}`);let K;try{K=SJ(J)}catch($){throw new Error(`scale: invalid scalar - ${$.message}`)}return new A(this.data.map(($)=>$.mul(K)))}negate(){return new A(this.data.map((J)=>J.negated()))}dot(J){if(!J||!(J instanceof A))throw new Error("dot: argument must be a Vector");if(this.length!==J.length)throw new Error(`dot: dimension mismatch (${this.length} vs ${J.length})`);return this.data.reduce((K,$,W)=>K.plus($.mul(J.data[W])),new X(0))}outer(J){if(!J||!(J instanceof A))throw new Error("outer: argument must be a Vector");if(this.length===0||J.length===0)throw new Error("outer: cannot compute outer product with empty vector");let K=this.length,$=J.length;return Array.from({length:K},(Q,H)=>Array.from({length:$},(Y,F)=>this.data[H].mul(J.data[F])))}cross(J){if(!J||!(J instanceof A))throw new Error("cross: argument must be a Vector");if(this.length!==3||J.length!==3)throw new Error(`cross: requires 3D vectors (got ${this.length}D and ${J.length}D)`);let[K,$,W]=this.data,[Q,H,Y]=J.data;return new A([$.mul(Y).minus(W.mul(H)),W.mul(Q).minus(K.mul(Y)),K.mul(H).minus($.mul(Q))])}norm(){let J=new X(0);for(let K of this.data)J=J.plus(K.mul(K));return J.sqrt()}normalize(){let J=this.norm();if(J.isZero())throw new Error("Cannot normalize zero vector");return this.scale(new X(1).div(J))}angleBetween(J){if(!J||!(J instanceof A))throw new Error("angleBetween: argument must be a Vector");if(this.length!==J.length)throw new Error(`angleBetween: dimension mismatch (${this.length} vs ${J.length})`);let K=this.dot(J),$=this.norm(),W=J.norm();if($.isZero()||W.isZero())throw new Error("angleBetween: angle with zero vector is undefined");let H=K.div($.mul(W)).toNumber(),Y=Math.min(1,Math.max(-1,H));return new X(Math.acos(Y))}projectOnto(J){if(!J||!(J instanceof A))throw new Error("projectOnto: argument must be a Vector");if(this.length!==J.length)throw new Error(`projectOnto: dimension mismatch (${this.length} vs ${J.length})`);let K=J.dot(J);if(K.isZero())throw new Error("projectOnto: cannot project onto zero vector");let $=this.dot(J).div(K);return J.scale($)}orthogonal(){if(this.norm().isZero())throw new Error("orthogonal: cannot find orthogonal vector to zero vector");if(this.length===2)return new A([this.data[1].negated(),this.data[0]]);for(let K=0;K<this.length;K++){let $=Array.from({length:this.length},(F,U)=>new X(U===K?1:0)),W=new A($),Q=W.projectOnto(this),H=W.sub(Q);if(!H.norm().isZero())return H.normalize()}throw new Error("orthogonal: unable to find orthogonal vector (degenerate case)")}isOrthogonalTo(J){if(!J||!(J instanceof A))throw new Error("isOrthogonalTo: argument must be a Vector");if(this.length!==J.length)throw new Error(`isOrthogonalTo: dimension mismatch (${this.length} vs ${J.length})`);return this.dot(J).isZero()}distance(J){if(!J||!(J instanceof A))throw new Error("distance: argument must be a Vector");if(this.length!==J.length)throw new Error(`distance: dimension mismatch (${this.length} vs ${J.length})`);return this.sub(J).norm()}equals(J,K=0){if(!(J instanceof A))return!1;if(J.length!==this.length)return!1;if(K===null)throw new Error("equals: tolerance cannot be null");let $;try{if($=SJ(K),$.isNaN())throw new Error("equals: tolerance cannot be NaN");if($.isNegative())throw new Error("equals: tolerance must be non-negative")}catch(W){throw new Error(`equals: invalid tolerance - ${W.message}`)}for(let W=0;W<this.length;W++)if(this.data[W].minus(J.data[W]).abs().greaterThan($))return!1;return!0}}var e=(J)=>{if(J==null)throw new Error("Cannot convert null or undefined to Decimal");return J instanceof X?J:new X(J)};class _{constructor(J){if(!Array.isArray(J)||J.length===0)throw new Error("Matrix requires non-empty 2D array");if(!Array.isArray(J[0])||J[0].length===0)throw new Error("Matrix rows must be non-empty arrays");let K=J[0].length;for(let $ of J)if(!Array.isArray($)||$.length!==K)throw new Error("All rows must have same length");this.data=J.map(($)=>$.map((W)=>e(W))),this.rows=J.length,this.cols=K}static from(J){return new _(J)}static zeros(J,K){if(!Number.isInteger(J)||J<=0)throw new Error("rows must be a positive integer");if(!Number.isInteger(K)||K<=0)throw new Error("cols must be a positive integer");let $=Array.from({length:J},()=>Array.from({length:K},()=>new X(0)));return new _($)}static identity(J){if(!Number.isInteger(J)||J<=0)throw new Error("size must be a positive integer");let K=Array.from({length:J},($,W)=>Array.from({length:J},(Q,H)=>W===H?new X(1):new X(0)));return new _(K)}clone(){return new _(this.data.map((J)=>J.map((K)=>new X(K))))}toArrayOfStrings(){return this.data.map((J)=>J.map((K)=>K.toString()))}toNumberArray(){return this.data.map((J)=>J.map((K)=>K.toNumber()))}isSquare(){return this.rows===this.cols}applyToVector(J){let K;if(J instanceof A)K=J;else if(Array.isArray(J))K=A.from(J);else throw new Error("applyToVector expects Vector or array");if(this.cols!==K.length)throw new Error("shape mismatch: matrix cols must equal vector length");let $=[];for(let W=0;W<this.rows;W++){let Q=new X(0);for(let H=0;H<this.cols;H++)Q=Q.plus(this.data[W][H].mul(K.data[H]));$.push(Q)}return new A($)}add(J){if(J instanceof _){if(this.rows!==J.rows||this.cols!==J.cols)throw new Error("shape mismatch: matrices must have same dimensions");return new _(this.data.map((K,$)=>K.map((W,Q)=>W.plus(J.data[$][Q]))))}else{let K=e(J);return new _(this.data.map(($)=>$.map((W)=>W.plus(K))))}}sub(J){if(J instanceof _){if(this.rows!==J.rows||this.cols!==J.cols)throw new Error("shape mismatch: matrices must have same dimensions");return new _(this.data.map((K,$)=>K.map((W,Q)=>W.minus(J.data[$][Q]))))}else{let K=e(J);return new _(this.data.map(($)=>$.map((W)=>W.minus(K))))}}mul(J){if(J instanceof _){if(this.cols!==J.rows)throw new Error("shape mismatch: A.cols must equal B.rows for matrix multiplication");let K=Array.from({length:this.rows},()=>Array.from({length:J.cols},()=>new X(0)));for(let $=0;$<this.rows;$++)for(let W=0;W<this.cols;W++){let Q=this.data[$][W];if(Q.isZero())continue;for(let H=0;H<J.cols;H++)K[$][H]=K[$][H].plus(Q.mul(J.data[W][H]))}return new _(K)}else{let K=e(J);return new _(this.data.map(($)=>$.map((W)=>W.mul(K))))}}div(J){let K=e(J);if(K.isZero())throw new Error("Cannot divide by zero");return new _(this.data.map(($)=>$.map((W)=>W.div(K))))}negate(){return new _(this.data.map((J)=>J.map((K)=>K.negated())))}transpose(){let J=Array.from({length:this.cols},(K,$)=>Array.from({length:this.rows},(W,Q)=>new X(this.data[Q][$])));return new _(J)}trace(){if(!this.isSquare())throw new Error("Trace only defined for square matrices");let J=new X(0);for(let K=0;K<this.rows;K++)J=J.plus(this.data[K][K]);return J}equals(J,K=0){if(!(J instanceof _))return!1;if(this.rows!==J.rows||this.cols!==J.cols)return!1;let $=e(K);if($.isNegative()||!$.isFinite())throw new Error("tolerance must be non-negative and finite");for(let W=0;W<this.rows;W++)for(let Q=0;Q<this.cols;Q++)if(this.data[W][Q].minus(J.data[W][Q]).abs().greaterThan($))return!1;return!0}lu(){if(!this.isSquare())throw new Error("LU decomposition requires square matrix");let J=this.rows,K=this.data.map((Y)=>Y.map((F)=>new X(F))),$=Array.from({length:J},(Y,F)=>F),W=Array.from({length:J},()=>Array.from({length:J},()=>new X(0)));for(let Y=0;Y<J;Y++)W[Y][Y]=new X(1);for(let Y=0;Y<J;Y++){let F=Y,U=K[Y][Y].abs();for(let Z=Y+1;Z<J;Z++){let q=K[Z][Y].abs();if(q.greaterThan(U))U=q,F=Z}if(K[F][Y].isZero())throw new Error("Singular matrix: LU decomposition failed");if(F!==Y){let Z=K[Y];K[Y]=K[F],K[F]=Z;let q=$[Y];$[Y]=$[F],$[F]=q;for(let R=0;R<Y;R++){let V=W[Y][R];W[Y][R]=W[F][R],W[F][R]=V}}for(let Z=Y+1;Z<J;Z++){let q=K[Z][Y].div(K[Y][Y]);W[Z][Y]=q;for(let R=Y;R<J;R++)K[Z][R]=K[Z][R].minus(q.mul(K[Y][R]))}}let Q=Array.from({length:J},(Y,F)=>Array.from({length:J},(U,Z)=>Z<F?new X(0):K[F][Z])),H=_.zeros(J,J);for(let Y=0;Y<J;Y++)H.data[Y][$[Y]]=new X(1);return{L:new _(W),U:new _(Q),P:H}}determinant(){if(!this.isSquare())throw new Error("Determinant only defined for square matrices");let J=this.rows,{L:K,U:$,P:W}=this.lu(),Q=new X(1);for(let F=0;F<J;F++)Q=Q.mul($.data[F][F]);let H=[];for(let F=0;F<J;F++)for(let U=0;U<J;U++)if(W.data[F][U].equals(1))H.push(U);let Y=0;for(let F=0;F<H.length;F++)for(let U=F+1;U<H.length;U++)if(H[F]>H[U])Y++;if(Y%2===1)Q=Q.negated();return Q}inverse(){if(!this.isSquare())throw new Error("Inverse only defined for square matrices");let J=this.rows,K=Array.from({length:J},(W,Q)=>Array.from({length:2*J},(H,Y)=>Y<J?new X(this.data[Q][Y]):Y-J===Q?new X(1):new X(0)));for(let W=0;W<J;W++){let Q=W,H=K[W][W].abs();for(let F=W+1;F<J;F++){let U=K[F][W].abs();if(U.greaterThan(H))H=U,Q=F}if(K[Q][W].isZero())throw new Error("Singular matrix: inverse does not exist");if(Q!==W){let F=K[W];K[W]=K[Q],K[Q]=F}let Y=K[W][W];for(let F=0;F<2*J;F++)K[W][F]=K[W][F].div(Y);for(let F=0;F<J;F++){if(F===W)continue;let U=K[F][W];if(U.isZero())continue;for(let Z=0;Z<2*J;Z++)K[F][Z]=K[F][Z].minus(U.mul(K[W][Z]))}}let $=K.map((W)=>W.slice(J));return new _($)}solve(J){let K;if(J instanceof A)K=J;else if(Array.isArray(J))K=A.from(J);else throw new Error("b must be Vector or array");if(!this.isSquare())throw new Error("solve() only implemented for square matrices");let $=this.rows;if(K.length!==$)throw new Error("dimension mismatch: b length must equal matrix rows");let W=Array.from({length:$},(H,Y)=>Array.from({length:$+1},(F,U)=>new X(U<$?this.data[Y][U]:K.data[Y])));for(let H=0;H<$;H++){let Y=H,F=W[H][H].abs();for(let U=H+1;U<$;U++){let Z=W[U][H].abs();if(Z.greaterThan(F))F=Z,Y=U}if(W[Y][H].isZero())throw new Error("Singular matrix: no unique solution");if(Y!==H){let U=W[H];W[H]=W[Y],W[Y]=U}for(let U=H+1;U<$;U++){let Z=W[U][H].div(W[H][H]);if(Z.isZero())continue;for(let q=H;q<$+1;q++)W[U][q]=W[U][q].minus(Z.mul(W[H][q]))}}let Q=Array.from({length:$},()=>new X(0));for(let H=$-1;H>=0;H--){if(W[H][H].isZero())throw new Error("Zero diagonal element in back substitution: system is singular");let Y=new X(0);for(let F=H+1;F<$;F++)Y=Y.plus(W[H][F].mul(Q[F]));Q[H]=W[H][$].minus(Y).div(W[H][H])}return new A(Q)}qr(){let J=this.rows,K=this.cols,$=this.data.map((H)=>H.map((Y)=>new X(Y))),W=_.identity(J).data;for(let H=0;H<Math.min(J,K);H++){let Y=[];for(let R=H;R<J;R++)Y.push($[R][H]);let F=new X(0);for(let R of Y)F=F.plus(R.mul(R));if(F=F.sqrt(),F.isZero())continue;let U=Y[0].isNegative()?new X(-1):new X(1),Z=Y.slice();Z[0]=Z[0].plus(U.mul(F));let q=new X(0);for(let R of Z)q=q.plus(R.mul(R));if(q=q.sqrt(),q.isZero())continue;for(let R=0;R<Z.length;R++)Z[R]=Z[R].div(q);for(let R=H;R<K;R++){let V=new X(0);for(let z=0;z<Z.length;z++)V=V.plus(Z[z].mul($[H+z][R]));for(let z=0;z<Z.length;z++)$[H+z][R]=$[H+z][R].minus(new X(2).mul(Z[z]).mul(V))}for(let R=0;R<J;R++){let V=new X(0);for(let z=0;z<Z.length;z++)V=V.plus(Z[z].mul(W[H+z][R]));for(let z=0;z<Z.length;z++)W[H+z][R]=W[H+z][R].minus(new X(2).mul(Z[z]).mul(V))}}let Q=Array.from({length:J},(H,Y)=>Array.from({length:K},(F,U)=>Y<=U?$[Y][U]:new X(0)));return{Q:new _(W).transpose(),R:new _(Q)}}exp(J={}){let K=this.rows;if(!this.isSquare())throw new Error("Matrix exponential requires square matrix");let $=_.identity(K),W=J.maxIter||120;if(!Number.isInteger(W)||W<=0)throw new Error("maxIter must be a positive integer");let Q=new X(J.tolerance||"1e-40");if(Q.isNegative()||Q.isZero()||!Q.isFinite())throw new Error("tolerance must be positive and finite");let Y=((R)=>{let V=new X(0);for(let z=0;z<R.rows;z++){let B=new X(0);for(let T=0;T<R.cols;T++)B=B.plus(R.data[z][T].abs());if(B.greaterThan(V))V=B}return V})(this),F=0;if(Y.greaterThan(new X(1))){let R=Y.toNumber();if(!isFinite(R))throw new Error("Matrix norm too large for exponential computation");if(F=Math.max(0,Math.ceil(Math.log2(R))),F>50)throw new Error(`Matrix norm too large: requires ${F} scaling steps (max 50 allowed)`)}let U=this;if(F>0)U=this.mul(new X(1).div(new X(2).pow(F)));let Z=$.clone(),q=$.clone();for(let R=1;R<W;R++){Z=Z.mul(U).mul(new X(1).div(R)),q=q.add(Z);let V=new X(0);for(let z=0;z<Z.rows;z++)for(let B=0;B<Z.cols;B++)V=V.plus(Z.data[z][B].abs());if(V.lessThan(Q))break}for(let R=0;R<F;R++)q=q.mul(q);return q}}var jJ={};vJ(jJ,{translation:()=>$J,stretchAlongAxis:()=>xK,skew:()=>PJ,scale:()=>MJ,rotateAroundPoint:()=>oK,rotate:()=>zJ,reflectY:()=>iK,reflectX:()=>aK,reflectOrigin:()=>tK,applyTransform:()=>fJ});var u=(J)=>{if(J instanceof X){if(!J.isFinite())throw new Error(`Value must be finite (got ${J.toString()})`);return J}try{let K=new X(J);if(!K.isFinite())throw new Error(`Value must be finite (got ${J})`);return K}catch(K){throw new Error(`Invalid numeric value: "${J}" (${K.message})`)}};function h(J,K){if(J===void 0||J===null)throw new Error(`${K} is required`);if(typeof J!=="number"&&typeof J!=="string"&&!(J instanceof X))throw new Error(`${K} must be a number, string, or Decimal`);if(typeof J==="number"&&!isFinite(J))throw new Error(`${K} must be a finite number (got ${J})`);if(J instanceof X&&!J.isFinite())throw new Error(`${K} must be a finite Decimal (got ${J.toString()})`)}function $J(J,K){return h(J,"tx"),h(K,"ty"),_.from([[new X(1),new X(0),u(J)],[new X(0),new X(1),u(K)],[new X(0),new X(0),new X(1)]])}function MJ(J,K=null){if(h(J,"sx"),K!==null)h(K,"sy");let $=K===null?J:K,W=u(J),Q=u($);if(W.isZero()||Q.isZero())throw new Error("Scale factors cannot be zero (creates singular matrix)");return _.from([[W,new X(0),new X(0)],[new X(0),Q,new X(0)],[new X(0),new X(0),new X(1)]])}function zJ(J){h(J,"theta");let $=u(J).toNumber(),W=Math.PI,Q=$-2*W*Math.floor(($+W)/(2*W));if(!isFinite(Q))throw new Error(`Angle normalization failed for theta=${J} (too large or invalid)`);let H=new X(Math.cos(Q)),Y=new X(Math.sin(Q));if(!H.isFinite()||!Y.isFinite())throw new Error(`Trigonometric computation failed for theta=${J} (produced non-finite values)`);return _.from([[H,Y.negated(),new X(0)],[Y,H,new X(0)],[new X(0),new X(0),new X(1)]])}function oK(J,K,$){h(J,"theta"),h(K,"px"),h($,"py");let W=u(K),Q=u($);return $J(W,Q).mul(zJ(J)).mul($J(W.negated(),Q.negated()))}function PJ(J,K){h(J,"ax"),h(K,"ay");let $=u(J),W=u(K);if(new X(1).minus($.mul(W)).lessThanOrEqualTo(0))throw new Error(`Skew parameters create singular or orientation-inverting matrix (ax*ay = ${$.mul(W).toString()}, must be < 1)`);return _.from([[new X(1),$,new X(0)],[W,new X(1),new X(0)],[new X(0),new X(0),new X(1)]])}function xK(J,K,$){h(J,"ux"),h(K,"uy"),h($,"k");let W=u(J),Q=u(K),H=u($);if(H.isZero())throw new Error("Stretch factor k cannot be zero (creates singular matrix)");let Y=W.mul(W).plus(Q.mul(Q));if(Y.isZero())throw new Error("Axis vector (ux, uy) cannot be zero");let F=Y.minus(1).abs(),U=new X(0.000001);if(F.greaterThan(U))throw new Error(`Axis vector (ux, uy) must be normalized (||u|| = 1). Current magnitude squared: ${Y.toString()}, expected: 1. Use normalized vector: (${W.div(Y.sqrt()).toString()}, ${Q.div(Y.sqrt()).toString()})`);let Z=new X(1),q=H.minus(Z),R=Z.plus(q.mul(W.mul(W))),V=q.mul(W.mul(Q)),z=q.mul(Q.mul(W)),B=Z.plus(q.mul(Q.mul(Q)));return _.from([[R,V,new X(0)],[z,B,new X(0)],[new X(0),new X(0),new X(1)]])}function fJ(J,K,$){if(!J||typeof J.mul!=="function")throw new Error("applyTransform: first argument must be a Matrix");if(!J.data||!Array.isArray(J.data)||J.data.length!==3||!J.data[0]||J.data[0].length!==3||!J.data[1]||J.data[1].length!==3||!J.data[2]||J.data[2].length!==3)throw new Error("applyTransform: matrix must be 3x3");h(K,"x"),h($,"y");let W=_.from([[u(K)],[u($)],[new X(1)]]),Q=J.mul(W);if(!Q||!Q.data||!Array.isArray(Q.data)||Q.data.length!==3||!Q.data[0]||!Q.data[0][0]||!Q.data[1]||!Q.data[1][0]||!Q.data[2]||!Q.data[2][0])throw new Error("applyTransform: matrix multiplication produced invalid result");let H=Q.data[0][0],Y=Q.data[1][0],F=Q.data[2][0];if(F.isZero())throw new Error("applyTransform: perspective division by zero (invalid transformation matrix)");return[H.div(F),Y.div(F)]}function aK(){return _.from([[new X(1),new X(0),new X(0)],[new X(0),new X(-1),new X(0)],[new X(0),new X(0),new X(1)]])}function iK(){return _.from([[new X(-1),new X(0),new X(0)],[new X(0),new X(1),new X(0)],[new X(0),new X(0),new X(1)]])}function tK(){return _.from([[new X(-1),new X(0),new X(0)],[new X(0),new X(-1),new X(0)],[new X(0),new X(0),new X(1)]])}var hJ={};vJ(hJ,{translation:()=>WJ,scale:()=>bJ,rotateZ:()=>gJ,rotateY:()=>kJ,rotateX:()=>LJ,rotateAroundPoint:()=>eK,rotateAroundAxis:()=>tJ,reflectYZ:()=>K$,reflectXZ:()=>J$,reflectXY:()=>rK,reflectOrigin:()=>$$,applyTransform:()=>CJ});var j=(J)=>{if(J instanceof X)return J;try{let K=new X(J);if(!K.isFinite())throw new Error(`Value must be finite, got ${J}`);return K}catch(K){throw new Error(`Invalid numeric value: ${J}`)}};function P(J,K){if(J===void 0||J===null)throw new Error(`${K} is required`);if(typeof J!=="number"&&typeof J!=="string"&&!(J instanceof X))throw new Error(`${K} must be a number, string, or Decimal`)}function IJ(J){let K=J.toNumber();if(!Number.isFinite(K))throw new Error(`Angle must be finite, got ${J}`);if(Math.abs(K)<=6.283185307179586)return K;return K%6.283185307179586}function WJ(J,K,$){return P(J,"tx"),P(K,"ty"),P($,"tz"),_.from([[new X(1),new X(0),new X(0),j(J)],[new X(0),new X(1),new X(0),j(K)],[new X(0),new X(0),new X(1),j($)],[new X(0),new X(0),new X(0),new X(1)]])}function bJ(J,K=null,$=null){if(P(J,"sx"),K!==null)P(K,"sy");if($!==null)P($,"sz");let W=K===null?J:K,Q=$===null?J:$,H=j(J),Y=j(W),F=j(Q);return _.from([[H,new X(0),new X(0),new X(0)],[new X(0),Y,new X(0),new X(0)],[new X(0),new X(0),F,new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function LJ(J){P(J,"theta");let K=j(J),$=IJ(K),W=new X(Math.cos($)),Q=new X(Math.sin($));return _.from([[new X(1),new X(0),new X(0),new X(0)],[new X(0),W,Q.negated(),new X(0)],[new X(0),Q,W,new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function kJ(J){P(J,"theta");let K=j(J),$=IJ(K),W=new X(Math.cos($)),Q=new X(Math.sin($));return _.from([[W,new X(0),Q,new X(0)],[new X(0),new X(1),new X(0),new X(0)],[Q.negated(),new X(0),W,new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function gJ(J){P(J,"theta");let K=j(J),$=IJ(K),W=new X(Math.cos($)),Q=new X(Math.sin($));return _.from([[W,Q.negated(),new X(0),new X(0)],[Q,W,new X(0),new X(0)],[new X(0),new X(0),new X(1),new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function tJ(J,K,$,W){P(J,"ux"),P(K,"uy"),P($,"uz"),P(W,"theta");let Q=[j(J),j(K),j($)],H=Q[0].mul(Q[0]).plus(Q[1].mul(Q[1])).plus(Q[2].mul(Q[2])).sqrt();if(H.isZero())throw new Error("Rotation axis cannot be zero vector (ux=0, uy=0, uz=0)");Q[0]=Q[0].div(H),Q[1]=Q[1].div(H),Q[2]=Q[2].div(H);let Y=j(W),F=IJ(Y),U=new X(Math.cos(F)),Z=new X(Math.sin(F)),q=new X(1),R=Q[0].mul(Q[0]),V=Q[1].mul(Q[1]),z=Q[2].mul(Q[2]),B=R.plus(U.mul(q.minus(R))),T=Q[0].mul(Q[1]).mul(q.minus(U)).minus(Q[2].mul(Z)),L=Q[0].mul(Q[2]).mul(q.minus(U)).plus(Q[1].mul(Z)),M=Q[1].mul(Q[0]).mul(q.minus(U)).plus(Q[2].mul(Z)),D=V.plus(U.mul(q.minus(V))),E=Q[1].mul(Q[2]).mul(q.minus(U)).minus(Q[0].mul(Z)),b=Q[2].mul(Q[0]).mul(q.minus(U)).minus(Q[1].mul(Z)),a=Q[2].mul(Q[1]).mul(q.minus(U)).plus(Q[0].mul(Z)),p=z.plus(U.mul(q.minus(z)));return _.from([[B,T,L,new X(0)],[M,D,E,new X(0)],[b,a,p,new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function eK(J,K,$,W,Q,H,Y){P(J,"ux"),P(K,"uy"),P($,"uz"),P(W,"theta"),P(Q,"px"),P(H,"py"),P(Y,"pz");let F=j(Q),U=j(H),Z=j(Y);return WJ(F,U,Z).mul(tJ(J,K,$,W)).mul(WJ(F.negated(),U.negated(),Z.negated()))}function CJ(J,K,$,W){if(!(J instanceof _))throw new Error("M must be a Matrix instance");if(J.rows!==4||J.cols!==4)throw new Error(`M must be a 4x4 matrix, got ${J.rows}x${J.cols}`);P(K,"x"),P($,"y"),P(W,"z");let Q=_.from([[j(K)],[j($)],[j(W)],[new X(1)]]),H=J.mul(Q),Y=H.data[0][0],F=H.data[1][0],U=H.data[2][0],Z=H.data[3][0];if(Z.isZero())throw new Error("Perspective division by zero: transformation results in point at infinity");return[Y.div(Z),F.div(Z),U.div(Z)]}function rK(){return _.from([[new X(1),new X(0),new X(0),new X(0)],[new X(0),new X(1),new X(0),new X(0)],[new X(0),new X(0),new X(-1),new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function J$(){return _.from([[new X(1),new X(0),new X(0),new X(0)],[new X(0),new X(-1),new X(0),new X(0)],[new X(0),new X(0),new X(1),new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function K$(){return _.from([[new X(-1),new X(0),new X(0),new X(0)],[new X(0),new X(1),new X(0),new X(0)],[new X(0),new X(0),new X(1),new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function $$(){return _.from([[new X(-1),new X(0),new X(0),new X(0)],[new X(0),new X(-1),new X(0),new X(0)],[new X(0),new X(0),new X(-1),new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}X.set({precision:80});var W$="1.3.14";var Q$=$J,H$=zJ,Y$=MJ,F$=PJ,Z$=fJ,X$=WJ,U$=LJ,q$=kJ,R$=gJ,V$=bJ,G$=CJ,eJ={VERSION:W$,Decimal:X,Matrix:_,Vector:A,Transforms2D:jJ,Transforms3D:hJ,translate2D:Q$,rotate2D:H$,scale2D:Y$,skew2D:F$,applyTransform2D:Z$,translate3D:X$,rotateX:U$,rotateY:q$,rotateZ:R$,scale3D:V$,applyTransform3D:G$},b$=eJ;if(typeof window!=="undefined")window.SVGMatrixLib=eJ;export{X$ as translate3D,Q$ as translate2D,F$ as skew2D,V$ as scale3D,Y$ as scale2D,R$ as rotateZ,q$ as rotateY,U$ as rotateX,H$ as rotate2D,b$ as default,G$ as applyTransform3D,Z$ as applyTransform2D,A as Vector,W$ as VERSION,hJ as Transforms3D,jJ as Transforms2D,_ as Matrix,X as Decimal};
|
|
8
|
+
*/var i=9000000000000000,x=1e9,BJ="0123456789abcdef",XJ="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",UJ="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",OJ={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-i,maxE:i,crypto:!1},yJ,n,O=!0,RJ="[DecimalError] ",o=RJ+"Invalid argument: ",cJ=RJ+"Precision limit exceeded",lJ=RJ+"crypto unavailable",dJ="[object Decimal]",C=Math.floor,f=Math.pow,JK=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,KK=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,$K=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,nJ=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,c=1e7,N=7,WK=9007199254740991,QK=XJ.length-1,EJ=UJ.length-1,G={toStringTag:dJ};G.absoluteValue=G.abs=function(){var J=new this.constructor(this);if(J.s<0)J.s=1;return I(J)};G.ceil=function(){return I(new this.constructor(this),this.e+1,2)};G.clampedTo=G.clamp=function(J,K){var $,W=this,Q=W.constructor;if(J=new Q(J),K=new Q(K),!J.s||!K.s)return new Q(NaN);if(J.gt(K))throw Error(o+K);return $=W.cmp(J),$<0?J:W.cmp(K)>0?K:new Q(W)};G.comparedTo=G.cmp=function(J){var K,$,W,Q,H=this,Y=H.d,F=(J=new H.constructor(J)).d,U=H.s,Z=J.s;if(!Y||!F)return!U||!Z?NaN:U!==Z?U:Y===F?0:!Y^U<0?1:-1;if(!Y[0]||!F[0])return Y[0]?U:F[0]?-Z:0;if(U!==Z)return U;if(H.e!==J.e)return H.e>J.e^U<0?1:-1;W=Y.length,Q=F.length;for(K=0,$=W<Q?W:Q;K<$;++K)if(Y[K]!==F[K])return Y[K]>F[K]^U<0?1:-1;return W===Q?0:W>Q^U<0?1:-1};G.cosine=G.cos=function(){var J,K,$=this,W=$.constructor;if(!$.d)return new W(NaN);if(!$.d[0])return new W(1);return J=W.precision,K=W.rounding,W.precision=J+Math.max($.e,$.sd())+N,W.rounding=1,$=HK(W,aJ(W,$)),W.precision=J,W.rounding=K,I(n==2||n==3?$.neg():$,J,K,!0)};G.cubeRoot=G.cbrt=function(){var J,K,$,W,Q,H,Y,F,U,Z,q=this,R=q.constructor;if(!q.isFinite()||q.isZero())return new R(q);if(O=!1,H=q.s*f(q.s*q,0.3333333333333333),!H||Math.abs(H)==1/0){if($=k(q.d),J=q.e,H=(J-$.length+1)%3)$+=H==1||H==-2?"0":"00";if(H=f($,0.3333333333333333),J=C((J+1)/3)-(J%3==(J<0?-1:2)),H==1/0)$="5e"+J;else $=H.toExponential(),$=$.slice(0,$.indexOf("e")+1)+J;W=new R($),W.s=q.s}else W=new R(H.toString());Y=(J=R.precision)+3;for(;;)if(F=W,U=F.times(F).times(F),Z=U.plus(q),W=w(Z.plus(q).times(F),Z.plus(U),Y+2,1),k(F.d).slice(0,Y)===($=k(W.d)).slice(0,Y))if($=$.slice(Y-3,Y+1),$=="9999"||!Q&&$=="4999"){if(!Q){if(I(F,J+1,0),F.times(F).times(F).eq(q)){W=F;break}}Y+=4,Q=1}else{if(!+$||!+$.slice(1)&&$.charAt(0)=="5")I(W,J+1,1),K=!W.times(W).times(W).eq(q);break}return O=!0,I(W,J,R.rounding,K)};G.decimalPlaces=G.dp=function(){var J,K=this.d,$=NaN;if(K){if(J=K.length-1,$=(J-C(this.e/N))*N,J=K[J],J)for(;J%10==0;J/=10)$--;if($<0)$=0}return $};G.dividedBy=G.div=function(J){return w(this,new this.constructor(J))};G.dividedToIntegerBy=G.divToInt=function(J){var K=this,$=K.constructor;return I(w(K,new $(J),0,1,1),$.precision,$.rounding)};G.equals=G.eq=function(J){return this.cmp(J)===0};G.floor=function(){return I(new this.constructor(this),this.e+1,3)};G.greaterThan=G.gt=function(J){return this.cmp(J)>0};G.greaterThanOrEqualTo=G.gte=function(J){var K=this.cmp(J);return K==1||K===0};G.hyperbolicCosine=G.cosh=function(){var J,K,$,W,Q,H=this,Y=H.constructor,F=new Y(1);if(!H.isFinite())return new Y(H.s?1/0:NaN);if(H.isZero())return F;if($=Y.precision,W=Y.rounding,Y.precision=$+Math.max(H.e,H.sd())+4,Y.rounding=1,Q=H.d.length,Q<32)J=Math.ceil(Q/3),K=(1/GJ(4,J)).toString();else J=16,K="2.3283064365386962890625e-10";H=t(Y,1,H.times(K),new Y(1),!0);var U,Z=J,q=new Y(8);for(;Z--;)U=H.times(H),H=F.minus(U.times(q.minus(U.times(q))));return I(H,Y.precision=$,Y.rounding=W,!0)};G.hyperbolicSine=G.sinh=function(){var J,K,$,W,Q=this,H=Q.constructor;if(!Q.isFinite()||Q.isZero())return new H(Q);if(K=H.precision,$=H.rounding,H.precision=K+Math.max(Q.e,Q.sd())+4,H.rounding=1,W=Q.d.length,W<3)Q=t(H,2,Q,Q,!0);else{J=1.4*Math.sqrt(W),J=J>16?16:J|0,Q=Q.times(1/GJ(5,J)),Q=t(H,2,Q,Q,!0);var Y,F=new H(5),U=new H(16),Z=new H(20);for(;J--;)Y=Q.times(Q),Q=Q.times(F.plus(Y.times(U.times(Y).plus(Z))))}return H.precision=K,H.rounding=$,I(Q,K,$,!0)};G.hyperbolicTangent=G.tanh=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite())return new W($.s);if($.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+7,W.rounding=1,w($.sinh(),$.cosh(),W.precision=J,W.rounding=K)};G.inverseCosine=G.acos=function(){var J=this,K=J.constructor,$=J.abs().cmp(1),W=K.precision,Q=K.rounding;if($!==-1)return $===0?J.isNeg()?l(K,W,Q):new K(0):new K(NaN);if(J.isZero())return l(K,W+4,Q).times(0.5);return K.precision=W+6,K.rounding=1,J=new K(1).minus(J).div(J.plus(1)).sqrt().atan(),K.precision=W,K.rounding=Q,J.times(2)};G.inverseHyperbolicCosine=G.acosh=function(){var J,K,$=this,W=$.constructor;if($.lte(1))return new W($.eq(1)?0:NaN);if(!$.isFinite())return new W($);return J=W.precision,K=W.rounding,W.precision=J+Math.max(Math.abs($.e),$.sd())+4,W.rounding=1,O=!1,$=$.times($).minus(1).sqrt().plus($),O=!0,W.precision=J,W.rounding=K,$.ln()};G.inverseHyperbolicSine=G.asinh=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite()||$.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+2*Math.max(Math.abs($.e),$.sd())+6,W.rounding=1,O=!1,$=$.times($).plus(1).sqrt().plus($),O=!0,W.precision=J,W.rounding=K,$.ln()};G.inverseHyperbolicTangent=G.atanh=function(){var J,K,$,W,Q=this,H=Q.constructor;if(!Q.isFinite())return new H(NaN);if(Q.e>=0)return new H(Q.abs().eq(1)?Q.s/0:Q.isZero()?Q:NaN);if(J=H.precision,K=H.rounding,W=Q.sd(),Math.max(W,J)<2*-Q.e-1)return I(new H(Q),J,K,!0);return H.precision=$=W-Q.e,Q=w(Q.plus(1),new H(1).minus(Q),$+J,1),H.precision=J+4,H.rounding=1,Q=Q.ln(),H.precision=J,H.rounding=K,Q.times(0.5)};G.inverseSine=G.asin=function(){var J,K,$,W,Q=this,H=Q.constructor;if(Q.isZero())return new H(Q);if(K=Q.abs().cmp(1),$=H.precision,W=H.rounding,K!==-1){if(K===0)return J=l(H,$+4,W).times(0.5),J.s=Q.s,J;return new H(NaN)}return H.precision=$+6,H.rounding=1,Q=Q.div(new H(1).minus(Q.times(Q)).sqrt().plus(1)).atan(),H.precision=$,H.rounding=W,Q.times(2)};G.inverseTangent=G.atan=function(){var J,K,$,W,Q,H,Y,F,U,Z=this,q=Z.constructor,R=q.precision,V=q.rounding;if(!Z.isFinite()){if(!Z.s)return new q(NaN);if(R+4<=EJ)return Y=l(q,R+4,V).times(0.5),Y.s=Z.s,Y}else if(Z.isZero())return new q(Z);else if(Z.abs().eq(1)&&R+4<=EJ)return Y=l(q,R+4,V).times(0.25),Y.s=Z.s,Y;q.precision=F=R+10,q.rounding=1,$=Math.min(28,F/N+2|0);for(J=$;J;--J)Z=Z.div(Z.times(Z).plus(1).sqrt().plus(1));O=!1,K=Math.ceil(F/N),W=1,U=Z.times(Z),Y=new q(Z),Q=Z;for(;J!==-1;)if(Q=Q.times(U),H=Y.minus(Q.div(W+=2)),Q=Q.times(U),Y=H.plus(Q.div(W+=2)),Y.d[K]!==void 0)for(J=K;Y.d[J]===H.d[J]&&J--;);if($)Y=Y.times(2<<$-1);return O=!0,I(Y,q.precision=R,q.rounding=V,!0)};G.isFinite=function(){return!!this.d};G.isInteger=G.isInt=function(){return!!this.d&&C(this.e/N)>this.d.length-2};G.isNaN=function(){return!this.s};G.isNegative=G.isNeg=function(){return this.s<0};G.isPositive=G.isPos=function(){return this.s>0};G.isZero=function(){return!!this.d&&this.d[0]===0};G.lessThan=G.lt=function(J){return this.cmp(J)<0};G.lessThanOrEqualTo=G.lte=function(J){return this.cmp(J)<1};G.logarithm=G.log=function(J){var K,$,W,Q,H,Y,F,U,Z=this,q=Z.constructor,R=q.precision,V=q.rounding,z=5;if(J==null)J=new q(10),K=!0;else{if(J=new q(J),$=J.d,J.s<0||!$||!$[0]||J.eq(1))return new q(NaN);K=J.eq(10)}if($=Z.d,Z.s<0||!$||!$[0]||Z.eq(1))return new q($&&!$[0]?-1/0:Z.s!=1?NaN:$?0:1/0);if(K)if($.length>1)H=!0;else{for(Q=$[0];Q%10===0;)Q/=10;H=Q!==1}if(O=!1,F=R+z,Y=s(Z,F),W=K?qJ(q,F+10):s(J,F),U=w(Y,W,F,1),JJ(U.d,Q=R,V))do if(F+=10,Y=s(Z,F),W=K?qJ(q,F+10):s(J,F),U=w(Y,W,F,1),!H){if(+k(U.d).slice(Q+1,Q+15)+1==100000000000000)U=I(U,R+1,0);break}while(JJ(U.d,Q+=10,V));return O=!0,I(U,R,V)};G.minus=G.sub=function(J){var K,$,W,Q,H,Y,F,U,Z,q,R,V,z=this,B=z.constructor;if(J=new B(J),!z.d||!J.d){if(!z.s||!J.s)J=new B(NaN);else if(z.d)J.s=-J.s;else J=new B(J.d||z.s!==J.s?z:NaN);return J}if(z.s!=J.s)return J.s=-J.s,z.plus(J);if(Z=z.d,V=J.d,F=B.precision,U=B.rounding,!Z[0]||!V[0]){if(V[0])J.s=-J.s;else if(Z[0])J=new B(z);else return new B(U===3?-0:0);return O?I(J,F,U):J}if($=C(J.e/N),q=C(z.e/N),Z=Z.slice(),H=q-$,H){if(R=H<0,R)K=Z,H=-H,Y=V.length;else K=V,$=q,Y=Z.length;if(W=Math.max(Math.ceil(F/N),Y)+2,H>W)H=W,K.length=1;K.reverse();for(W=H;W--;)K.push(0);K.reverse()}else{if(W=Z.length,Y=V.length,R=W<Y,R)Y=W;for(W=0;W<Y;W++)if(Z[W]!=V[W]){R=Z[W]<V[W];break}H=0}if(R)K=Z,Z=V,V=K,J.s=-J.s;Y=Z.length;for(W=V.length-Y;W>0;--W)Z[Y++]=0;for(W=V.length;W>H;){if(Z[--W]<V[W]){for(Q=W;Q&&Z[--Q]===0;)Z[Q]=c-1;--Z[Q],Z[W]+=c}Z[W]-=V[W]}for(;Z[--Y]===0;)Z.pop();for(;Z[0]===0;Z.shift())--$;if(!Z[0])return new B(U===3?-0:0);return J.d=Z,J.e=VJ(Z,$),O?I(J,F,U):J};G.modulo=G.mod=function(J){var K,$=this,W=$.constructor;if(J=new W(J),!$.d||!J.s||J.d&&!J.d[0])return new W(NaN);if(!J.d||$.d&&!$.d[0])return I(new W($),W.precision,W.rounding);if(O=!1,W.modulo==9)K=w($,J.abs(),0,3,1),K.s*=J.s;else K=w($,J,0,W.modulo,1);return K=K.times(J),O=!0,$.minus(K)};G.naturalExponential=G.exp=function(){return AJ(this)};G.naturalLogarithm=G.ln=function(){return s(this)};G.negated=G.neg=function(){var J=new this.constructor(this);return J.s=-J.s,I(J)};G.plus=G.add=function(J){var K,$,W,Q,H,Y,F,U,Z,q,R=this,V=R.constructor;if(J=new V(J),!R.d||!J.d){if(!R.s||!J.s)J=new V(NaN);else if(!R.d)J=new V(J.d||R.s===J.s?R:NaN);return J}if(R.s!=J.s)return J.s=-J.s,R.minus(J);if(Z=R.d,q=J.d,F=V.precision,U=V.rounding,!Z[0]||!q[0]){if(!q[0])J=new V(R);return O?I(J,F,U):J}if(H=C(R.e/N),W=C(J.e/N),Z=Z.slice(),Q=H-W,Q){if(Q<0)$=Z,Q=-Q,Y=q.length;else $=q,W=H,Y=Z.length;if(H=Math.ceil(F/N),Y=H>Y?H+1:Y+1,Q>Y)Q=Y,$.length=1;$.reverse();for(;Q--;)$.push(0);$.reverse()}if(Y=Z.length,Q=q.length,Y-Q<0)Q=Y,$=q,q=Z,Z=$;for(K=0;Q;)K=(Z[--Q]=Z[Q]+q[Q]+K)/c|0,Z[Q]%=c;if(K)Z.unshift(K),++W;for(Y=Z.length;Z[--Y]==0;)Z.pop();return J.d=Z,J.e=VJ(Z,W),O?I(J,F,U):J};G.precision=G.sd=function(J){var K,$=this;if(J!==void 0&&J!==!!J&&J!==1&&J!==0)throw Error(o+J);if($.d){if(K=mJ($.d),J&&$.e+1>K)K=$.e+1}else K=NaN;return K};G.round=function(){var J=this,K=J.constructor;return I(new K(J),J.e+1,K.rounding)};G.sine=G.sin=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite())return new W(NaN);if($.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+Math.max($.e,$.sd())+N,W.rounding=1,$=FK(W,aJ(W,$)),W.precision=J,W.rounding=K,I(n>2?$.neg():$,J,K,!0)};G.squareRoot=G.sqrt=function(){var J,K,$,W,Q,H,Y=this,F=Y.d,U=Y.e,Z=Y.s,q=Y.constructor;if(Z!==1||!F||!F[0])return new q(!Z||Z<0&&(!F||F[0])?NaN:F?Y:1/0);if(O=!1,Z=Math.sqrt(+Y),Z==0||Z==1/0){if(K=k(F),(K.length+U)%2==0)K+="0";if(Z=Math.sqrt(K),U=C((U+1)/2)-(U<0||U%2),Z==1/0)K="5e"+U;else K=Z.toExponential(),K=K.slice(0,K.indexOf("e")+1)+U;W=new q(K)}else W=new q(Z.toString());$=(U=q.precision)+3;for(;;)if(H=W,W=H.plus(w(Y,H,$+2,1)).times(0.5),k(H.d).slice(0,$)===(K=k(W.d)).slice(0,$))if(K=K.slice($-3,$+1),K=="9999"||!Q&&K=="4999"){if(!Q){if(I(H,U+1,0),H.times(H).eq(Y)){W=H;break}}$+=4,Q=1}else{if(!+K||!+K.slice(1)&&K.charAt(0)=="5")I(W,U+1,1),J=!W.times(W).eq(Y);break}return O=!0,I(W,U,q.rounding,J)};G.tangent=G.tan=function(){var J,K,$=this,W=$.constructor;if(!$.isFinite())return new W(NaN);if($.isZero())return new W($);return J=W.precision,K=W.rounding,W.precision=J+10,W.rounding=1,$=$.sin(),$.s=1,$=w($,new W(1).minus($.times($)).sqrt(),J+10,0),W.precision=J,W.rounding=K,I(n==2||n==4?$.neg():$,J,K,!0)};G.times=G.mul=function(J){var K,$,W,Q,H,Y,F,U,Z,q=this,R=q.constructor,V=q.d,z=(J=new R(J)).d;if(J.s*=q.s,!V||!V[0]||!z||!z[0])return new R(!J.s||V&&!V[0]&&!z||z&&!z[0]&&!V?NaN:!V||!z?J.s/0:J.s*0);if($=C(q.e/N)+C(J.e/N),U=V.length,Z=z.length,U<Z)H=V,V=z,z=H,Y=U,U=Z,Z=Y;H=[],Y=U+Z;for(W=Y;W--;)H.push(0);for(W=Z;--W>=0;){K=0;for(Q=U+W;Q>W;)F=H[Q]+z[W]*V[Q-W-1]+K,H[Q--]=F%c|0,K=F/c|0;H[Q]=(H[Q]+K)%c|0}for(;!H[--Y];)H.pop();if(K)++$;else H.shift();return J.d=H,J.e=VJ(H,$),O?I(J,R.precision,R.rounding):J};G.toBinary=function(J,K){return wJ(this,2,J,K)};G.toDecimalPlaces=G.toDP=function(J,K){var $=this,W=$.constructor;if($=new W($),J===void 0)return $;if(v(J,0,x),K===void 0)K=W.rounding;else v(K,0,8);return I($,J+$.e+1,K)};G.toExponential=function(J,K){var $,W=this,Q=W.constructor;if(J===void 0)$=d(W,!0);else{if(v(J,0,x),K===void 0)K=Q.rounding;else v(K,0,8);W=I(new Q(W),J+1,K),$=d(W,!0,J+1)}return W.isNeg()&&!W.isZero()?"-"+$:$};G.toFixed=function(J,K){var $,W,Q=this,H=Q.constructor;if(J===void 0)$=d(Q);else{if(v(J,0,x),K===void 0)K=H.rounding;else v(K,0,8);W=I(new H(Q),J+Q.e+1,K),$=d(W,!1,J+W.e+1)}return Q.isNeg()&&!Q.isZero()?"-"+$:$};G.toFraction=function(J){var K,$,W,Q,H,Y,F,U,Z,q,R,V,z=this,B=z.d,T=z.constructor;if(!B)return new T(z);if(Z=$=new T(1),W=U=new T(0),K=new T(W),H=K.e=mJ(B)-z.e-1,Y=H%N,K.d[0]=f(10,Y<0?N+Y:Y),J==null)J=H>0?K:Z;else{if(F=new T(J),!F.isInt()||F.lt(Z))throw Error(o+F);J=F.gt(K)?H>0?K:Z:F}O=!1,F=new T(k(B)),q=T.precision,T.precision=H=B.length*N*2;for(;;){if(R=w(F,K,0,1,1),Q=$.plus(R.times(W)),Q.cmp(J)==1)break;$=W,W=Q,Q=Z,Z=U.plus(R.times(Q)),U=Q,Q=K,K=F.minus(R.times(Q)),F=Q}return Q=w(J.minus($),W,0,1,1),U=U.plus(Q.times(Z)),$=$.plus(Q.times(W)),U.s=Z.s=z.s,V=w(Z,W,H,1).minus(z).abs().cmp(w(U,$,H,1).minus(z).abs())<1?[Z,W]:[U,$],T.precision=q,O=!0,V};G.toHexadecimal=G.toHex=function(J,K){return wJ(this,16,J,K)};G.toNearest=function(J,K){var $=this,W=$.constructor;if($=new W($),J==null){if(!$.d)return $;J=new W(1),K=W.rounding}else{if(J=new W(J),K===void 0)K=W.rounding;else v(K,0,8);if(!$.d)return J.s?$:J;if(!J.d){if(J.s)J.s=$.s;return J}}if(J.d[0])O=!1,$=w($,J,0,K,1).times(J),O=!0,I($);else J.s=$.s,$=J;return $};G.toNumber=function(){return+this};G.toOctal=function(J,K){return wJ(this,8,J,K)};G.toPower=G.pow=function(J){var K,$,W,Q,H,Y,F=this,U=F.constructor,Z=+(J=new U(J));if(!F.d||!J.d||!F.d[0]||!J.d[0])return new U(f(+F,Z));if(F=new U(F),F.eq(1))return F;if(W=U.precision,H=U.rounding,J.eq(1))return I(F,W,H);if(K=C(J.e/N),K>=J.d.length-1&&($=Z<0?-Z:Z)<=WK)return Q=sJ(U,F,$,W),J.s<0?new U(1).div(Q):I(Q,W,H);if(Y=F.s,Y<0){if(K<J.d.length-1)return new U(NaN);if((J.d[K]&1)==0)Y=1;if(F.e==0&&F.d[0]==1&&F.d.length==1)return F.s=Y,F}if($=f(+F,Z),K=$==0||!isFinite($)?C(Z*(Math.log("0."+k(F.d))/Math.LN10+F.e+1)):new U($+"").e,K>U.maxE+1||K<U.minE-1)return new U(K>0?Y/0:0);if(O=!1,U.rounding=F.s=1,$=Math.min(12,(K+"").length),Q=AJ(J.times(s(F,W+$)),W),Q.d){if(Q=I(Q,W+5,1),JJ(Q.d,W,H)){if(K=W+10,Q=I(AJ(J.times(s(F,K+$)),K),K+5,1),+k(Q.d).slice(W+1,W+15)+1==100000000000000)Q=I(Q,W+1,0)}}return Q.s=Y,O=!0,U.rounding=H,I(Q,W,H)};G.toPrecision=function(J,K){var $,W=this,Q=W.constructor;if(J===void 0)$=d(W,W.e<=Q.toExpNeg||W.e>=Q.toExpPos);else{if(v(J,1,x),K===void 0)K=Q.rounding;else v(K,0,8);W=I(new Q(W),J,K),$=d(W,J<=W.e||W.e<=Q.toExpNeg,J)}return W.isNeg()&&!W.isZero()?"-"+$:$};G.toSignificantDigits=G.toSD=function(J,K){var $=this,W=$.constructor;if(J===void 0)J=W.precision,K=W.rounding;else if(v(J,1,x),K===void 0)K=W.rounding;else v(K,0,8);return I(new W($),J,K)};G.toString=function(){var J=this,K=J.constructor,$=d(J,J.e<=K.toExpNeg||J.e>=K.toExpPos);return J.isNeg()&&!J.isZero()?"-"+$:$};G.truncated=G.trunc=function(){return I(new this.constructor(this),this.e+1,1)};G.valueOf=G.toJSON=function(){var J=this,K=J.constructor,$=d(J,J.e<=K.toExpNeg||J.e>=K.toExpPos);return J.isNeg()?"-"+$:$};function k(J){var K,$,W,Q=J.length-1,H="",Y=J[0];if(Q>0){H+=Y;for(K=1;K<Q;K++){if(W=J[K]+"",$=N-W.length,$)H+=m($);H+=W}if(Y=J[K],W=Y+"",$=N-W.length,$)H+=m($)}else if(Y===0)return"0";for(;Y%10===0;)Y/=10;return H+Y}function v(J,K,$){if(J!==~~J||J<K||J>$)throw Error(o+J)}function JJ(J,K,$,W){var Q,H,Y,F;for(H=J[0];H>=10;H/=10)--K;if(--K<0)K+=N,Q=0;else Q=Math.ceil((K+1)/N),K%=N;if(H=f(10,N-K),F=J[Q]%H|0,W==null)if(K<3){if(K==0)F=F/100|0;else if(K==1)F=F/10|0;Y=$<4&&F==99999||$>3&&F==49999||F==50000||F==0}else Y=($<4&&F+1==H||$>3&&F+1==H/2)&&(J[Q+1]/H/100|0)==f(10,K-2)-1||(F==H/2||F==0)&&(J[Q+1]/H/100|0)==0;else if(K<4){if(K==0)F=F/1000|0;else if(K==1)F=F/100|0;else if(K==2)F=F/10|0;Y=(W||$<4)&&F==9999||!W&&$>3&&F==4999}else Y=((W||$<4)&&F+1==H||!W&&$>3&&F+1==H/2)&&(J[Q+1]/H/1000|0)==f(10,K-3)-1;return Y}function FJ(J,K,$){var W,Q=[0],H,Y=0,F=J.length;for(;Y<F;){for(H=Q.length;H--;)Q[H]*=K;Q[0]+=BJ.indexOf(J.charAt(Y++));for(W=0;W<Q.length;W++)if(Q[W]>$-1){if(Q[W+1]===void 0)Q[W+1]=0;Q[W+1]+=Q[W]/$|0,Q[W]%=$}}return Q.reverse()}function HK(J,K){var $,W,Q;if(K.isZero())return K;if(W=K.d.length,W<32)$=Math.ceil(W/3),Q=(1/GJ(4,$)).toString();else $=16,Q="2.3283064365386962890625e-10";J.precision+=$,K=t(J,1,K.times(Q),new J(1));for(var H=$;H--;){var Y=K.times(K);K=Y.times(Y).minus(Y).times(8).plus(1)}return J.precision-=$,K}var w=function(){function J(W,Q,H){var Y,F=0,U=W.length;for(W=W.slice();U--;)Y=W[U]*Q+F,W[U]=Y%H|0,F=Y/H|0;if(F)W.unshift(F);return W}function K(W,Q,H,Y){var F,U;if(H!=Y)U=H>Y?1:-1;else for(F=U=0;F<H;F++)if(W[F]!=Q[F]){U=W[F]>Q[F]?1:-1;break}return U}function $(W,Q,H,Y){var F=0;for(;H--;)W[H]-=F,F=W[H]<Q[H]?1:0,W[H]=F*Y+W[H]-Q[H];for(;!W[0]&&W.length>1;)W.shift()}return function(W,Q,H,Y,F,U){var Z,q,R,V,z,B,T,L,M,D,E,b,a,p,NJ,QJ,r,_J,y,HJ,YJ=W.constructor,TJ=W.s==Q.s?1:-1,g=W.d,S=Q.d;if(!g||!g[0]||!S||!S[0])return new YJ(!W.s||!Q.s||(g?S&&g[0]==S[0]:!S)?NaN:g&&g[0]==0||!S?TJ*0:TJ/0);if(U)z=1,q=W.e-Q.e;else U=c,z=N,q=C(W.e/z)-C(Q.e/z);y=S.length,r=g.length,M=new YJ(TJ),D=M.d=[];for(R=0;S[R]==(g[R]||0);R++);if(S[R]>(g[R]||0))q--;if(H==null)p=H=YJ.precision,Y=YJ.rounding;else if(F)p=H+(W.e-Q.e)+1;else p=H;if(p<0)D.push(1),B=!0;else{if(p=p/z+2|0,R=0,y==1){V=0,S=S[0],p++;for(;(R<r||V)&&p--;R++)NJ=V*U+(g[R]||0),D[R]=NJ/S|0,V=NJ%S|0;B=V||R<r}else{if(V=U/(S[0]+1)|0,V>1)S=J(S,V,U),g=J(g,V,U),y=S.length,r=g.length;QJ=y,E=g.slice(0,y),b=E.length;for(;b<y;)E[b++]=0;if(HJ=S.slice(),HJ.unshift(0),_J=S[0],S[1]>=U/2)++_J;do{if(V=0,Z=K(S,E,y,b),Z<0){if(a=E[0],y!=b)a=a*U+(E[1]||0);if(V=a/_J|0,V>1){if(V>=U)V=U-1;if(T=J(S,V,U),L=T.length,b=E.length,Z=K(T,E,L,b),Z==1)V--,$(T,y<L?HJ:S,L,U)}else{if(V==0)Z=V=1;T=S.slice()}if(L=T.length,L<b)T.unshift(0);if($(E,T,b,U),Z==-1){if(b=E.length,Z=K(S,E,y,b),Z<1)V++,$(E,y<b?HJ:S,b,U)}b=E.length}else if(Z===0)V++,E=[0];if(D[R++]=V,Z&&E[0])E[b++]=g[QJ]||0;else E=[g[QJ]],b=1}while((QJ++<r||E[0]!==void 0)&&p--);B=E[0]!==void 0}if(!D[0])D.shift()}if(z==1)M.e=q,yJ=B;else{for(R=1,V=D[0];V>=10;V/=10)R++;M.e=R+q*z-1,I(M,F?H+M.e+1:H,Y,B)}return M}}();function I(J,K,$,W){var Q,H,Y,F,U,Z,q,R,V,z=J.constructor;J:if(K!=null){if(R=J.d,!R)return J;for(Q=1,F=R[0];F>=10;F/=10)Q++;if(H=K-Q,H<0)H+=N,Y=K,q=R[V=0],U=q/f(10,Q-Y-1)%10|0;else if(V=Math.ceil((H+1)/N),F=R.length,V>=F)if(W){for(;F++<=V;)R.push(0);q=U=0,Q=1,H%=N,Y=H-N+1}else break J;else{q=F=R[V];for(Q=1;F>=10;F/=10)Q++;H%=N,Y=H-N+Q,U=Y<0?0:q/f(10,Q-Y-1)%10|0}if(W=W||K<0||R[V+1]!==void 0||(Y<0?q:q%f(10,Q-Y-1)),Z=$<4?(U||W)&&($==0||$==(J.s<0?3:2)):U>5||U==5&&($==4||W||$==6&&(H>0?Y>0?q/f(10,Q-Y):0:R[V-1])%10&1||$==(J.s<0?8:7)),K<1||!R[0]){if(R.length=0,Z)K-=J.e+1,R[0]=f(10,(N-K%N)%N),J.e=-K||0;else R[0]=J.e=0;return J}if(H==0)R.length=V,F=1,V--;else R.length=V+1,F=f(10,N-H),R[V]=Y>0?(q/f(10,Q-Y)%f(10,Y)|0)*F:0;if(Z)for(;;)if(V==0){for(H=1,Y=R[0];Y>=10;Y/=10)H++;Y=R[0]+=F;for(F=1;Y>=10;Y/=10)F++;if(H!=F){if(J.e++,R[0]==c)R[0]=1}break}else{if(R[V]+=F,R[V]!=c)break;R[V--]=0,F=1}for(H=R.length;R[--H]===0;)R.pop()}if(O){if(J.e>z.maxE)J.d=null,J.e=NaN;else if(J.e<z.minE)J.e=0,J.d=[0]}return J}function d(J,K,$){if(!J.isFinite())return xJ(J);var W,Q=J.e,H=k(J.d),Y=H.length;if(K){if($&&(W=$-Y)>0)H=H.charAt(0)+"."+H.slice(1)+m(W);else if(Y>1)H=H.charAt(0)+"."+H.slice(1);H=H+(J.e<0?"e":"e+")+J.e}else if(Q<0){if(H="0."+m(-Q-1)+H,$&&(W=$-Y)>0)H+=m(W)}else if(Q>=Y){if(H+=m(Q+1-Y),$&&(W=$-Q-1)>0)H=H+"."+m(W)}else{if((W=Q+1)<Y)H=H.slice(0,W)+"."+H.slice(W);if($&&(W=$-Y)>0){if(Q+1===Y)H+=".";H+=m(W)}}return H}function VJ(J,K){var $=J[0];for(K*=N;$>=10;$/=10)K++;return K}function qJ(J,K,$){if(K>QK){if(O=!0,$)J.precision=$;throw Error(cJ)}return I(new J(XJ),K,1,!0)}function l(J,K,$){if(K>EJ)throw Error(cJ);return I(new J(UJ),K,$,!0)}function mJ(J){var K=J.length-1,$=K*N+1;if(K=J[K],K){for(;K%10==0;K/=10)$--;for(K=J[0];K>=10;K/=10)$++}return $}function m(J){var K="";for(;J--;)K+="0";return K}function sJ(J,K,$,W){var Q,H=new J(1),Y=Math.ceil(W/N+4);O=!1;for(;;){if($%2){if(H=H.times(K),DJ(H.d,Y))Q=!0}if($=C($/2),$===0){if($=H.d.length-1,Q&&H.d[$]===0)++H.d[$];break}K=K.times(K),DJ(K.d,Y)}return O=!0,H}function uJ(J){return J.d[J.d.length-1]&1}function oJ(J,K,$){var W,Q,H=new J(K[0]),Y=0;for(;++Y<K.length;){if(Q=new J(K[Y]),!Q.s){H=Q;break}if(W=H.cmp(Q),W===$||W===0&&H.s===$)H=Q}return H}function AJ(J,K){var $,W,Q,H,Y,F,U,Z=0,q=0,R=0,V=J.constructor,z=V.rounding,B=V.precision;if(!J.d||!J.d[0]||J.e>17)return new V(J.d?!J.d[0]?1:J.s<0?0:1/0:J.s?J.s<0?0:J:NaN);if(K==null)O=!1,U=B;else U=K;F=new V(0.03125);while(J.e>-2)J=J.times(F),R+=5;W=Math.log(f(2,R))/Math.LN10*2+5|0,U+=W,$=H=Y=new V(1),V.precision=U;for(;;){if(H=I(H.times(J),U,1),$=$.times(++q),F=Y.plus(w(H,$,U,1)),k(F.d).slice(0,U)===k(Y.d).slice(0,U)){Q=R;while(Q--)Y=I(Y.times(Y),U,1);if(K==null)if(Z<3&&JJ(Y.d,U-W,z,Z))V.precision=U+=10,$=H=F=new V(1),q=0,Z++;else return I(Y,V.precision=B,z,O=!0);else return V.precision=B,Y}Y=F}}function s(J,K){var $,W,Q,H,Y,F,U,Z,q,R,V,z=1,B=10,T=J,L=T.d,M=T.constructor,D=M.rounding,E=M.precision;if(T.s<0||!L||!L[0]||!T.e&&L[0]==1&&L.length==1)return new M(L&&!L[0]?-1/0:T.s!=1?NaN:L?0:T);if(K==null)O=!1,q=E;else q=K;if(M.precision=q+=B,$=k(L),W=$.charAt(0),Math.abs(H=T.e)<1500000000000000){while(W<7&&W!=1||W==1&&$.charAt(1)>3)T=T.times(J),$=k(T.d),W=$.charAt(0),z++;if(H=T.e,W>1)T=new M("0."+$),H++;else T=new M(W+"."+$.slice(1))}else return Z=qJ(M,q+2,E).times(H+""),T=s(new M(W+"."+$.slice(1)),q-B).plus(Z),M.precision=E,K==null?I(T,E,D,O=!0):T;R=T,U=Y=T=w(T.minus(1),T.plus(1),q,1),V=I(T.times(T),q,1),Q=3;for(;;){if(Y=I(Y.times(V),q,1),Z=U.plus(w(Y,new M(Q),q,1)),k(Z.d).slice(0,q)===k(U.d).slice(0,q)){if(U=U.times(2),H!==0)U=U.plus(qJ(M,q+2,E).times(H+""));if(U=w(U,new M(z),q,1),K==null)if(JJ(U.d,q-B,D,F))M.precision=q+=B,Z=Y=T=w(R.minus(1),R.plus(1),q,1),V=I(T.times(T),q,1),Q=F=1;else return I(U,M.precision=E,D,O=!0);else return M.precision=E,U}U=Z,Q+=2}}function xJ(J){return String(J.s*J.s/0)}function ZJ(J,K){var $,W,Q;if(($=K.indexOf("."))>-1)K=K.replace(".","");if((W=K.search(/e/i))>0){if($<0)$=W;$+=+K.slice(W+1),K=K.substring(0,W)}else if($<0)$=K.length;for(W=0;K.charCodeAt(W)===48;W++);for(Q=K.length;K.charCodeAt(Q-1)===48;--Q);if(K=K.slice(W,Q),K){if(Q-=W,J.e=$=$-W-1,J.d=[],W=($+1)%N,$<0)W+=N;if(W<Q){if(W)J.d.push(+K.slice(0,W));for(Q-=N;W<Q;)J.d.push(+K.slice(W,W+=N));K=K.slice(W),W=N-K.length}else W-=Q;for(;W--;)K+="0";if(J.d.push(+K),O){if(J.e>J.constructor.maxE)J.d=null,J.e=NaN;else if(J.e<J.constructor.minE)J.e=0,J.d=[0]}}else J.e=0,J.d=[0];return J}function YK(J,K){var $,W,Q,H,Y,F,U,Z,q;if(K.indexOf("_")>-1){if(K=K.replace(/(\d)_(?=\d)/g,"$1"),nJ.test(K))return ZJ(J,K)}else if(K==="Infinity"||K==="NaN"){if(!+K)J.s=NaN;return J.e=NaN,J.d=null,J}if(KK.test(K))$=16,K=K.toLowerCase();else if(JK.test(K))$=2;else if($K.test(K))$=8;else throw Error(o+K);if(H=K.search(/p/i),H>0)U=+K.slice(H+1),K=K.substring(2,H);else K=K.slice(2);if(H=K.indexOf("."),Y=H>=0,W=J.constructor,Y)K=K.replace(".",""),F=K.length,H=F-H,Q=sJ(W,new W($),H,H*2);Z=FJ(K,$,c),q=Z.length-1;for(H=q;Z[H]===0;--H)Z.pop();if(H<0)return new W(J.s*0);if(J.e=VJ(Z,q),J.d=Z,O=!1,Y)J=w(J,Q,F*4);if(U)J=J.times(Math.abs(U)<54?f(2,U):KJ.pow(2,U));return O=!0,J}function FK(J,K){var $,W=K.d.length;if(W<3)return K.isZero()?K:t(J,2,K,K);$=1.4*Math.sqrt(W),$=$>16?16:$|0,K=K.times(1/GJ(5,$)),K=t(J,2,K,K);var Q,H=new J(5),Y=new J(16),F=new J(20);for(;$--;)Q=K.times(K),K=K.times(H.plus(Q.times(Y.times(Q).minus(F))));return K}function t(J,K,$,W,Q){var H,Y,F,U,Z=1,q=J.precision,R=Math.ceil(q/N);O=!1,U=$.times($),F=new J(W);for(;;){if(Y=w(F.times(U),new J(K++*K++),q,1),F=Q?W.plus(Y):W.minus(Y),W=w(Y.times(U),new J(K++*K++),q,1),Y=F.plus(W),Y.d[R]!==void 0){for(H=R;Y.d[H]===F.d[H]&&H--;);if(H==-1)break}H=F,F=W,W=Y,Y=H,Z++}return O=!0,Y.d.length=R+1,Y}function GJ(J,K){var $=J;while(--K)$*=J;return $}function aJ(J,K){var $,W=K.s<0,Q=l(J,J.precision,1),H=Q.times(0.5);if(K=K.abs(),K.lte(H))return n=W?4:1,K;if($=K.divToInt(Q),$.isZero())n=W?3:2;else{if(K=K.minus($.times(Q)),K.lte(H))return n=uJ($)?W?2:3:W?4:1,K;n=uJ($)?W?1:4:W?3:2}return K.minus(Q).abs()}function wJ(J,K,$,W){var Q,H,Y,F,U,Z,q,R,V,z=J.constructor,B=$!==void 0;if(B)if(v($,1,x),W===void 0)W=z.rounding;else v(W,0,8);else $=z.precision,W=z.rounding;if(!J.isFinite())q=xJ(J);else{if(q=d(J),Y=q.indexOf("."),B){if(Q=2,K==16)$=$*4-3;else if(K==8)$=$*3-2}else Q=K;if(Y>=0)q=q.replace(".",""),V=new z(1),V.e=q.length-Y,V.d=FJ(d(V),10,Q),V.e=V.d.length;R=FJ(q,10,Q),H=U=R.length;for(;R[--U]==0;)R.pop();if(!R[0])q=B?"0p+0":"0";else{if(Y<0)H--;else J=new z(J),J.d=R,J.e=H,J=w(J,V,$,W,0,Q),R=J.d,H=J.e,Z=yJ;if(Y=R[$],F=Q/2,Z=Z||R[$+1]!==void 0,Z=W<4?(Y!==void 0||Z)&&(W===0||W===(J.s<0?3:2)):Y>F||Y===F&&(W===4||Z||W===6&&R[$-1]&1||W===(J.s<0?8:7)),R.length=$,Z){for(;++R[--$]>Q-1;)if(R[$]=0,!$)++H,R.unshift(1)}for(U=R.length;!R[U-1];--U);for(Y=0,q="";Y<U;Y++)q+=BJ.charAt(R[Y]);if(B){if(U>1)if(K==16||K==8){Y=K==16?4:3;for(--U;U%Y;U++)q+="0";R=FJ(q,Q,K);for(U=R.length;!R[U-1];--U);for(Y=1,q="1.";Y<U;Y++)q+=BJ.charAt(R[Y])}else q=q.charAt(0)+"."+q.slice(1);q=q+(H<0?"p":"p+")+H}else if(H<0){for(;++H;)q="0"+q;q="0."+q}else if(++H>U)for(H-=U;H--;)q+="0";else if(H<U)q=q.slice(0,H)+"."+q.slice(H)}q=(K==16?"0x":K==2?"0b":K==8?"0o":"")+q}return J.s<0?"-"+q:q}function DJ(J,K){if(J.length>K)return J.length=K,!0}function ZK(J){return new this(J).abs()}function XK(J){return new this(J).acos()}function UK(J){return new this(J).acosh()}function qK(J,K){return new this(J).plus(K)}function RK(J){return new this(J).asin()}function VK(J){return new this(J).asinh()}function GK(J){return new this(J).atan()}function zK(J){return new this(J).atanh()}function IK(J,K){J=new this(J),K=new this(K);var $,W=this.precision,Q=this.rounding,H=W+4;if(!J.s||!K.s)$=new this(NaN);else if(!J.d&&!K.d)$=l(this,H,1).times(K.s>0?0.25:0.75),$.s=J.s;else if(!K.d||J.isZero())$=K.s<0?l(this,W,Q):new this(0),$.s=J.s;else if(!J.d||K.isZero())$=l(this,H,1).times(0.5),$.s=J.s;else if(K.s<0)this.precision=H,this.rounding=1,$=this.atan(w(J,K,H,1)),K=l(this,H,1),this.precision=W,this.rounding=Q,$=J.s<0?$.minus(K):$.plus(K);else $=this.atan(w(J,K,H,1));return $}function NK(J){return new this(J).cbrt()}function _K(J){return I(J=new this(J),J.e+1,2)}function TK(J,K,$){return new this(J).clamp(K,$)}function BK(J){if(!J||typeof J!=="object")throw Error(RJ+"Object expected");var K,$,W,Q=J.defaults===!0,H=["precision",1,x,"rounding",0,8,"toExpNeg",-i,0,"toExpPos",0,i,"maxE",0,i,"minE",-i,0,"modulo",0,9];for(K=0;K<H.length;K+=3){if($=H[K],Q)this[$]=OJ[$];if((W=J[$])!==void 0)if(C(W)===W&&W>=H[K+1]&&W<=H[K+2])this[$]=W;else throw Error(o+$+": "+W)}if($="crypto",Q)this[$]=OJ[$];if((W=J[$])!==void 0)if(W===!0||W===!1||W===0||W===1)if(W)if(typeof crypto!="undefined"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[$]=!0;else throw Error(lJ);else this[$]=!1;else throw Error(o+$+": "+W);return this}function OK(J){return new this(J).cos()}function EK(J){return new this(J).cosh()}function iJ(J){var K,$,W;function Q(H){var Y,F,U,Z=this;if(!(Z instanceof Q))return new Q(H);if(Z.constructor=Q,pJ(H)){if(Z.s=H.s,O)if(!H.d||H.e>Q.maxE)Z.e=NaN,Z.d=null;else if(H.e<Q.minE)Z.e=0,Z.d=[0];else Z.e=H.e,Z.d=H.d.slice();else Z.e=H.e,Z.d=H.d?H.d.slice():H.d;return}if(U=typeof H,U==="number"){if(H===0){Z.s=1/H<0?-1:1,Z.e=0,Z.d=[0];return}if(H<0)H=-H,Z.s=-1;else Z.s=1;if(H===~~H&&H<1e7){for(Y=0,F=H;F>=10;F/=10)Y++;if(O)if(Y>Q.maxE)Z.e=NaN,Z.d=null;else if(Y<Q.minE)Z.e=0,Z.d=[0];else Z.e=Y,Z.d=[H];else Z.e=Y,Z.d=[H];return}if(H*0!==0){if(!H)Z.s=NaN;Z.e=NaN,Z.d=null;return}return ZJ(Z,H.toString())}if(U==="string"){if((F=H.charCodeAt(0))===45)H=H.slice(1),Z.s=-1;else{if(F===43)H=H.slice(1);Z.s=1}return nJ.test(H)?ZJ(Z,H):YK(Z,H)}if(U==="bigint"){if(H<0)H=-H,Z.s=-1;else Z.s=1;return ZJ(Z,H.toString())}throw Error(o+H)}if(Q.prototype=G,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=BK,Q.clone=iJ,Q.isDecimal=pJ,Q.abs=ZK,Q.acos=XK,Q.acosh=UK,Q.add=qK,Q.asin=RK,Q.asinh=VK,Q.atan=GK,Q.atanh=zK,Q.atan2=IK,Q.cbrt=NK,Q.ceil=_K,Q.clamp=TK,Q.cos=OK,Q.cosh=EK,Q.div=AK,Q.exp=wK,Q.floor=SK,Q.hypot=MK,Q.ln=PK,Q.log=fK,Q.log10=bK,Q.log2=jK,Q.max=LK,Q.min=kK,Q.mod=gK,Q.mul=CK,Q.pow=hK,Q.random=vK,Q.round=uK,Q.sign=DK,Q.sin=pK,Q.sinh=yK,Q.sqrt=cK,Q.sub=lK,Q.sum=dK,Q.tan=nK,Q.tanh=mK,Q.trunc=sK,J===void 0)J={};if(J){if(J.defaults!==!0){W=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"];for(K=0;K<W.length;)if(!J.hasOwnProperty($=W[K++]))J[$]=this[$]}}return Q.config(J),Q}function AK(J,K){return new this(J).div(K)}function wK(J){return new this(J).exp()}function SK(J){return I(J=new this(J),J.e+1,3)}function MK(){var J,K,$=new this(0);O=!1;for(J=0;J<arguments.length;)if(K=new this(arguments[J++]),!K.d){if(K.s)return O=!0,new this(1/0);$=K}else if($.d)$=$.plus(K.times(K));return O=!0,$.sqrt()}function pJ(J){return J instanceof KJ||J&&J.toStringTag===dJ||!1}function PK(J){return new this(J).ln()}function fK(J,K){return new this(J).log(K)}function jK(J){return new this(J).log(2)}function bK(J){return new this(J).log(10)}function LK(){return oJ(this,arguments,-1)}function kK(){return oJ(this,arguments,1)}function gK(J,K){return new this(J).mod(K)}function CK(J,K){return new this(J).mul(K)}function hK(J,K){return new this(J).pow(K)}function vK(J){var K,$,W,Q,H=0,Y=new this(1),F=[];if(J===void 0)J=this.precision;else v(J,1,x);if(W=Math.ceil(J/N),!this.crypto)for(;H<W;)F[H++]=Math.random()*1e7|0;else if(crypto.getRandomValues){K=crypto.getRandomValues(new Uint32Array(W));for(;H<W;)if(Q=K[H],Q>=4290000000)K[H]=crypto.getRandomValues(new Uint32Array(1))[0];else F[H++]=Q%1e7}else if(crypto.randomBytes){K=crypto.randomBytes(W*=4);for(;H<W;)if(Q=K[H]+(K[H+1]<<8)+(K[H+2]<<16)+((K[H+3]&127)<<24),Q>=2140000000)crypto.randomBytes(4).copy(K,H);else F.push(Q%1e7),H+=4;H=W/4}else throw Error(lJ);if(W=F[--H],J%=N,W&&J)Q=f(10,N-J),F[H]=(W/Q|0)*Q;for(;F[H]===0;H--)F.pop();if(H<0)$=0,F=[0];else{$=-1;for(;F[0]===0;$-=N)F.shift();for(W=1,Q=F[0];Q>=10;Q/=10)W++;if(W<N)$-=N-W}return Y.e=$,Y.d=F,Y}function uK(J){return I(J=new this(J),J.e+1,this.rounding)}function DK(J){return J=new this(J),J.d?J.d[0]?J.s:0*J.s:J.s||NaN}function pK(J){return new this(J).sin()}function yK(J){return new this(J).sinh()}function cK(J){return new this(J).sqrt()}function lK(J,K){return new this(J).sub(K)}function dK(){var J=0,K=arguments,$=new this(K[J]);O=!1;for(;$.s&&++J<K.length;)$=$.plus(K[J]);return O=!0,I($,this.precision,this.rounding)}function nK(J){return new this(J).tan()}function mK(J){return new this(J).tanh()}function sK(J){return I(J=new this(J),J.e+1,1)}G[Symbol.for("nodejs.util.inspect.custom")]=G.toString;G[Symbol.toStringTag]="Decimal";var KJ=G.constructor=iJ(OJ);XJ=new KJ(XJ);UJ=new KJ(UJ);var X=KJ;var SJ=(J)=>{if(J===null||J===void 0)throw new Error(`Cannot convert ${J===null?"null":"undefined"} to Decimal`);if(J instanceof X)return J;try{return new X(J)}catch(K){throw new Error(`Invalid numeric value: ${K.message}`)}};class A{constructor(J){if(!Array.isArray(J))throw new Error("Vector requires array");if(J.length===0)throw new Error("Vector requires at least one component");try{this.data=J.map((K,$)=>{if(K===null||K===void 0)throw new Error(`Vector component at index ${$} is ${K===null?"null":"undefined"}`);return SJ(K)})}catch(K){throw new Error(`Vector constructor failed: ${K.message}`)}this.length=this.data.length}static from(J){if(J===null||J===void 0)throw new Error(`Vector.from: argument is ${J===null?"null":"undefined"}`);return new A(J)}clone(){return new A(this.data.map((J)=>new X(J)))}toArray(){return this.data.slice()}toNumberArray(){return this.data.map((J)=>J.toNumber())}toStringArray(){return this.data.map((J)=>J.toString())}add(J){if(!J||!(J instanceof A))throw new Error("add: argument must be a Vector");if(this.length!==J.length)throw new Error(`add: dimension mismatch (${this.length} vs ${J.length})`);return new A(this.data.map((K,$)=>K.plus(J.data[$])))}sub(J){if(!J||!(J instanceof A))throw new Error("sub: argument must be a Vector");if(this.length!==J.length)throw new Error(`sub: dimension mismatch (${this.length} vs ${J.length})`);return new A(this.data.map((K,$)=>K.minus(J.data[$])))}scale(J){if(J===null||J===void 0)throw new Error(`scale: scalar is ${J===null?"null":"undefined"}`);let K;try{K=SJ(J)}catch($){throw new Error(`scale: invalid scalar - ${$.message}`)}return new A(this.data.map(($)=>$.mul(K)))}negate(){return new A(this.data.map((J)=>J.negated()))}dot(J){if(!J||!(J instanceof A))throw new Error("dot: argument must be a Vector");if(this.length!==J.length)throw new Error(`dot: dimension mismatch (${this.length} vs ${J.length})`);return this.data.reduce((K,$,W)=>K.plus($.mul(J.data[W])),new X(0))}outer(J){if(!J||!(J instanceof A))throw new Error("outer: argument must be a Vector");if(this.length===0||J.length===0)throw new Error("outer: cannot compute outer product with empty vector");let K=this.length,$=J.length;return Array.from({length:K},(Q,H)=>Array.from({length:$},(Y,F)=>this.data[H].mul(J.data[F])))}cross(J){if(!J||!(J instanceof A))throw new Error("cross: argument must be a Vector");if(this.length!==3||J.length!==3)throw new Error(`cross: requires 3D vectors (got ${this.length}D and ${J.length}D)`);let[K,$,W]=this.data,[Q,H,Y]=J.data;return new A([$.mul(Y).minus(W.mul(H)),W.mul(Q).minus(K.mul(Y)),K.mul(H).minus($.mul(Q))])}norm(){let J=new X(0);for(let K of this.data)J=J.plus(K.mul(K));return J.sqrt()}normalize(){let J=this.norm();if(J.isZero())throw new Error("Cannot normalize zero vector");return this.scale(new X(1).div(J))}angleBetween(J){if(!J||!(J instanceof A))throw new Error("angleBetween: argument must be a Vector");if(this.length!==J.length)throw new Error(`angleBetween: dimension mismatch (${this.length} vs ${J.length})`);let K=this.dot(J),$=this.norm(),W=J.norm();if($.isZero()||W.isZero())throw new Error("angleBetween: angle with zero vector is undefined");let H=K.div($.mul(W)).toNumber(),Y=Math.min(1,Math.max(-1,H));return new X(Math.acos(Y))}projectOnto(J){if(!J||!(J instanceof A))throw new Error("projectOnto: argument must be a Vector");if(this.length!==J.length)throw new Error(`projectOnto: dimension mismatch (${this.length} vs ${J.length})`);let K=J.dot(J);if(K.isZero())throw new Error("projectOnto: cannot project onto zero vector");let $=this.dot(J).div(K);return J.scale($)}orthogonal(){if(this.norm().isZero())throw new Error("orthogonal: cannot find orthogonal vector to zero vector");if(this.length===2)return new A([this.data[1].negated(),this.data[0]]);for(let K=0;K<this.length;K++){let $=Array.from({length:this.length},(F,U)=>new X(U===K?1:0)),W=new A($),Q=W.projectOnto(this),H=W.sub(Q);if(!H.norm().isZero())return H.normalize()}throw new Error("orthogonal: unable to find orthogonal vector (degenerate case)")}isOrthogonalTo(J){if(!J||!(J instanceof A))throw new Error("isOrthogonalTo: argument must be a Vector");if(this.length!==J.length)throw new Error(`isOrthogonalTo: dimension mismatch (${this.length} vs ${J.length})`);return this.dot(J).isZero()}distance(J){if(!J||!(J instanceof A))throw new Error("distance: argument must be a Vector");if(this.length!==J.length)throw new Error(`distance: dimension mismatch (${this.length} vs ${J.length})`);return this.sub(J).norm()}equals(J,K=0){if(!(J instanceof A))return!1;if(J.length!==this.length)return!1;if(K===null)throw new Error("equals: tolerance cannot be null");let $;try{if($=SJ(K),$.isNaN())throw new Error("equals: tolerance cannot be NaN");if($.isNegative())throw new Error("equals: tolerance must be non-negative")}catch(W){throw new Error(`equals: invalid tolerance - ${W.message}`)}for(let W=0;W<this.length;W++)if(this.data[W].minus(J.data[W]).abs().greaterThan($))return!1;return!0}}var e=(J)=>{if(J==null)throw new Error("Cannot convert null or undefined to Decimal");return J instanceof X?J:new X(J)};class _{constructor(J){if(!Array.isArray(J)||J.length===0)throw new Error("Matrix requires non-empty 2D array");if(!Array.isArray(J[0])||J[0].length===0)throw new Error("Matrix rows must be non-empty arrays");let K=J[0].length;for(let $ of J)if(!Array.isArray($)||$.length!==K)throw new Error("All rows must have same length");this.data=J.map(($)=>$.map((W)=>e(W))),this.rows=J.length,this.cols=K}static from(J){return new _(J)}static zeros(J,K){if(!Number.isInteger(J)||J<=0)throw new Error("rows must be a positive integer");if(!Number.isInteger(K)||K<=0)throw new Error("cols must be a positive integer");let $=Array.from({length:J},()=>Array.from({length:K},()=>new X(0)));return new _($)}static identity(J){if(!Number.isInteger(J)||J<=0)throw new Error("size must be a positive integer");let K=Array.from({length:J},($,W)=>Array.from({length:J},(Q,H)=>W===H?new X(1):new X(0)));return new _(K)}clone(){return new _(this.data.map((J)=>J.map((K)=>new X(K))))}toArrayOfStrings(){return this.data.map((J)=>J.map((K)=>K.toString()))}toNumberArray(){return this.data.map((J)=>J.map((K)=>K.toNumber()))}isSquare(){return this.rows===this.cols}applyToVector(J){let K;if(J instanceof A)K=J;else if(Array.isArray(J))K=A.from(J);else throw new Error("applyToVector expects Vector or array");if(this.cols!==K.length)throw new Error("shape mismatch: matrix cols must equal vector length");let $=[];for(let W=0;W<this.rows;W++){let Q=new X(0);for(let H=0;H<this.cols;H++)Q=Q.plus(this.data[W][H].mul(K.data[H]));$.push(Q)}return new A($)}add(J){if(J instanceof _){if(this.rows!==J.rows||this.cols!==J.cols)throw new Error("shape mismatch: matrices must have same dimensions");return new _(this.data.map((K,$)=>K.map((W,Q)=>W.plus(J.data[$][Q]))))}else{let K=e(J);return new _(this.data.map(($)=>$.map((W)=>W.plus(K))))}}sub(J){if(J instanceof _){if(this.rows!==J.rows||this.cols!==J.cols)throw new Error("shape mismatch: matrices must have same dimensions");return new _(this.data.map((K,$)=>K.map((W,Q)=>W.minus(J.data[$][Q]))))}else{let K=e(J);return new _(this.data.map(($)=>$.map((W)=>W.minus(K))))}}mul(J){if(J instanceof _){if(this.cols!==J.rows)throw new Error("shape mismatch: A.cols must equal B.rows for matrix multiplication");let K=Array.from({length:this.rows},()=>Array.from({length:J.cols},()=>new X(0)));for(let $=0;$<this.rows;$++)for(let W=0;W<this.cols;W++){let Q=this.data[$][W];if(Q.isZero())continue;for(let H=0;H<J.cols;H++)K[$][H]=K[$][H].plus(Q.mul(J.data[W][H]))}return new _(K)}else{let K=e(J);return new _(this.data.map(($)=>$.map((W)=>W.mul(K))))}}div(J){let K=e(J);if(K.isZero())throw new Error("Cannot divide by zero");return new _(this.data.map(($)=>$.map((W)=>W.div(K))))}negate(){return new _(this.data.map((J)=>J.map((K)=>K.negated())))}transpose(){let J=Array.from({length:this.cols},(K,$)=>Array.from({length:this.rows},(W,Q)=>new X(this.data[Q][$])));return new _(J)}trace(){if(!this.isSquare())throw new Error("Trace only defined for square matrices");let J=new X(0);for(let K=0;K<this.rows;K++)J=J.plus(this.data[K][K]);return J}equals(J,K=0){if(!(J instanceof _))return!1;if(this.rows!==J.rows||this.cols!==J.cols)return!1;let $=e(K);if($.isNegative()||!$.isFinite())throw new Error("tolerance must be non-negative and finite");for(let W=0;W<this.rows;W++)for(let Q=0;Q<this.cols;Q++)if(this.data[W][Q].minus(J.data[W][Q]).abs().greaterThan($))return!1;return!0}lu(){if(!this.isSquare())throw new Error("LU decomposition requires square matrix");let J=this.rows,K=this.data.map((Y)=>Y.map((F)=>new X(F))),$=Array.from({length:J},(Y,F)=>F),W=Array.from({length:J},()=>Array.from({length:J},()=>new X(0)));for(let Y=0;Y<J;Y++)W[Y][Y]=new X(1);for(let Y=0;Y<J;Y++){let F=Y,U=K[Y][Y].abs();for(let Z=Y+1;Z<J;Z++){let q=K[Z][Y].abs();if(q.greaterThan(U))U=q,F=Z}if(K[F][Y].isZero())throw new Error("Singular matrix: LU decomposition failed");if(F!==Y){let Z=K[Y];K[Y]=K[F],K[F]=Z;let q=$[Y];$[Y]=$[F],$[F]=q;for(let R=0;R<Y;R++){let V=W[Y][R];W[Y][R]=W[F][R],W[F][R]=V}}for(let Z=Y+1;Z<J;Z++){let q=K[Z][Y].div(K[Y][Y]);W[Z][Y]=q;for(let R=Y;R<J;R++)K[Z][R]=K[Z][R].minus(q.mul(K[Y][R]))}}let Q=Array.from({length:J},(Y,F)=>Array.from({length:J},(U,Z)=>Z<F?new X(0):K[F][Z])),H=_.zeros(J,J);for(let Y=0;Y<J;Y++)H.data[Y][$[Y]]=new X(1);return{L:new _(W),U:new _(Q),P:H}}determinant(){if(!this.isSquare())throw new Error("Determinant only defined for square matrices");let J=this.rows,{L:K,U:$,P:W}=this.lu(),Q=new X(1);for(let F=0;F<J;F++)Q=Q.mul($.data[F][F]);let H=[];for(let F=0;F<J;F++)for(let U=0;U<J;U++)if(W.data[F][U].equals(1))H.push(U);let Y=0;for(let F=0;F<H.length;F++)for(let U=F+1;U<H.length;U++)if(H[F]>H[U])Y++;if(Y%2===1)Q=Q.negated();return Q}inverse(){if(!this.isSquare())throw new Error("Inverse only defined for square matrices");let J=this.rows,K=Array.from({length:J},(W,Q)=>Array.from({length:2*J},(H,Y)=>Y<J?new X(this.data[Q][Y]):Y-J===Q?new X(1):new X(0)));for(let W=0;W<J;W++){let Q=W,H=K[W][W].abs();for(let F=W+1;F<J;F++){let U=K[F][W].abs();if(U.greaterThan(H))H=U,Q=F}if(K[Q][W].isZero())throw new Error("Singular matrix: inverse does not exist");if(Q!==W){let F=K[W];K[W]=K[Q],K[Q]=F}let Y=K[W][W];for(let F=0;F<2*J;F++)K[W][F]=K[W][F].div(Y);for(let F=0;F<J;F++){if(F===W)continue;let U=K[F][W];if(U.isZero())continue;for(let Z=0;Z<2*J;Z++)K[F][Z]=K[F][Z].minus(U.mul(K[W][Z]))}}let $=K.map((W)=>W.slice(J));return new _($)}solve(J){let K;if(J instanceof A)K=J;else if(Array.isArray(J))K=A.from(J);else throw new Error("b must be Vector or array");if(!this.isSquare())throw new Error("solve() only implemented for square matrices");let $=this.rows;if(K.length!==$)throw new Error("dimension mismatch: b length must equal matrix rows");let W=Array.from({length:$},(H,Y)=>Array.from({length:$+1},(F,U)=>new X(U<$?this.data[Y][U]:K.data[Y])));for(let H=0;H<$;H++){let Y=H,F=W[H][H].abs();for(let U=H+1;U<$;U++){let Z=W[U][H].abs();if(Z.greaterThan(F))F=Z,Y=U}if(W[Y][H].isZero())throw new Error("Singular matrix: no unique solution");if(Y!==H){let U=W[H];W[H]=W[Y],W[Y]=U}for(let U=H+1;U<$;U++){let Z=W[U][H].div(W[H][H]);if(Z.isZero())continue;for(let q=H;q<$+1;q++)W[U][q]=W[U][q].minus(Z.mul(W[H][q]))}}let Q=Array.from({length:$},()=>new X(0));for(let H=$-1;H>=0;H--){if(W[H][H].isZero())throw new Error("Zero diagonal element in back substitution: system is singular");let Y=new X(0);for(let F=H+1;F<$;F++)Y=Y.plus(W[H][F].mul(Q[F]));Q[H]=W[H][$].minus(Y).div(W[H][H])}return new A(Q)}qr(){let J=this.rows,K=this.cols,$=this.data.map((H)=>H.map((Y)=>new X(Y))),W=_.identity(J).data;for(let H=0;H<Math.min(J,K);H++){let Y=[];for(let R=H;R<J;R++)Y.push($[R][H]);let F=new X(0);for(let R of Y)F=F.plus(R.mul(R));if(F=F.sqrt(),F.isZero())continue;let U=Y[0].isNegative()?new X(-1):new X(1),Z=Y.slice();Z[0]=Z[0].plus(U.mul(F));let q=new X(0);for(let R of Z)q=q.plus(R.mul(R));if(q=q.sqrt(),q.isZero())continue;for(let R=0;R<Z.length;R++)Z[R]=Z[R].div(q);for(let R=H;R<K;R++){let V=new X(0);for(let z=0;z<Z.length;z++)V=V.plus(Z[z].mul($[H+z][R]));for(let z=0;z<Z.length;z++)$[H+z][R]=$[H+z][R].minus(new X(2).mul(Z[z]).mul(V))}for(let R=0;R<J;R++){let V=new X(0);for(let z=0;z<Z.length;z++)V=V.plus(Z[z].mul(W[H+z][R]));for(let z=0;z<Z.length;z++)W[H+z][R]=W[H+z][R].minus(new X(2).mul(Z[z]).mul(V))}}let Q=Array.from({length:J},(H,Y)=>Array.from({length:K},(F,U)=>Y<=U?$[Y][U]:new X(0)));return{Q:new _(W).transpose(),R:new _(Q)}}exp(J={}){let K=this.rows;if(!this.isSquare())throw new Error("Matrix exponential requires square matrix");let $=_.identity(K),W=J.maxIter||120;if(!Number.isInteger(W)||W<=0)throw new Error("maxIter must be a positive integer");let Q=new X(J.tolerance||"1e-40");if(Q.isNegative()||Q.isZero()||!Q.isFinite())throw new Error("tolerance must be positive and finite");let Y=((R)=>{let V=new X(0);for(let z=0;z<R.rows;z++){let B=new X(0);for(let T=0;T<R.cols;T++)B=B.plus(R.data[z][T].abs());if(B.greaterThan(V))V=B}return V})(this),F=0;if(Y.greaterThan(new X(1))){let R=Y.toNumber();if(!isFinite(R))throw new Error("Matrix norm too large for exponential computation");if(F=Math.max(0,Math.ceil(Math.log2(R))),F>50)throw new Error(`Matrix norm too large: requires ${F} scaling steps (max 50 allowed)`)}let U=this;if(F>0)U=this.mul(new X(1).div(new X(2).pow(F)));let Z=$.clone(),q=$.clone();for(let R=1;R<W;R++){Z=Z.mul(U).mul(new X(1).div(R)),q=q.add(Z);let V=new X(0);for(let z=0;z<Z.rows;z++)for(let B=0;B<Z.cols;B++)V=V.plus(Z.data[z][B].abs());if(V.lessThan(Q))break}for(let R=0;R<F;R++)q=q.mul(q);return q}}var jJ={};vJ(jJ,{translation:()=>$J,stretchAlongAxis:()=>xK,skew:()=>PJ,scale:()=>MJ,rotateAroundPoint:()=>oK,rotate:()=>zJ,reflectY:()=>iK,reflectX:()=>aK,reflectOrigin:()=>tK,applyTransform:()=>fJ});var u=(J)=>{if(J instanceof X){if(!J.isFinite())throw new Error(`Value must be finite (got ${J.toString()})`);return J}try{let K=new X(J);if(!K.isFinite())throw new Error(`Value must be finite (got ${J})`);return K}catch(K){throw new Error(`Invalid numeric value: "${J}" (${K.message})`)}};function h(J,K){if(J===void 0||J===null)throw new Error(`${K} is required`);if(typeof J!=="number"&&typeof J!=="string"&&!(J instanceof X))throw new Error(`${K} must be a number, string, or Decimal`);if(typeof J==="number"&&!isFinite(J))throw new Error(`${K} must be a finite number (got ${J})`);if(J instanceof X&&!J.isFinite())throw new Error(`${K} must be a finite Decimal (got ${J.toString()})`)}function $J(J,K){return h(J,"tx"),h(K,"ty"),_.from([[new X(1),new X(0),u(J)],[new X(0),new X(1),u(K)],[new X(0),new X(0),new X(1)]])}function MJ(J,K=null){if(h(J,"sx"),K!==null)h(K,"sy");let $=K===null?J:K,W=u(J),Q=u($);if(W.isZero()||Q.isZero())throw new Error("Scale factors cannot be zero (creates singular matrix)");return _.from([[W,new X(0),new X(0)],[new X(0),Q,new X(0)],[new X(0),new X(0),new X(1)]])}function zJ(J){h(J,"theta");let $=u(J).toNumber(),W=Math.PI,Q=$-2*W*Math.floor(($+W)/(2*W));if(!isFinite(Q))throw new Error(`Angle normalization failed for theta=${J} (too large or invalid)`);let H=new X(Math.cos(Q)),Y=new X(Math.sin(Q));if(!H.isFinite()||!Y.isFinite())throw new Error(`Trigonometric computation failed for theta=${J} (produced non-finite values)`);return _.from([[H,Y.negated(),new X(0)],[Y,H,new X(0)],[new X(0),new X(0),new X(1)]])}function oK(J,K,$){h(J,"theta"),h(K,"px"),h($,"py");let W=u(K),Q=u($);return $J(W,Q).mul(zJ(J)).mul($J(W.negated(),Q.negated()))}function PJ(J,K){h(J,"ax"),h(K,"ay");let $=u(J),W=u(K);if(new X(1).minus($.mul(W)).lessThanOrEqualTo(0))throw new Error(`Skew parameters create singular or orientation-inverting matrix (ax*ay = ${$.mul(W).toString()}, must be < 1)`);return _.from([[new X(1),$,new X(0)],[W,new X(1),new X(0)],[new X(0),new X(0),new X(1)]])}function xK(J,K,$){h(J,"ux"),h(K,"uy"),h($,"k");let W=u(J),Q=u(K),H=u($);if(H.isZero())throw new Error("Stretch factor k cannot be zero (creates singular matrix)");let Y=W.mul(W).plus(Q.mul(Q));if(Y.isZero())throw new Error("Axis vector (ux, uy) cannot be zero");let F=Y.minus(1).abs(),U=new X(0.000001);if(F.greaterThan(U))throw new Error(`Axis vector (ux, uy) must be normalized (||u|| = 1). Current magnitude squared: ${Y.toString()}, expected: 1. Use normalized vector: (${W.div(Y.sqrt()).toString()}, ${Q.div(Y.sqrt()).toString()})`);let Z=new X(1),q=H.minus(Z),R=Z.plus(q.mul(W.mul(W))),V=q.mul(W.mul(Q)),z=q.mul(Q.mul(W)),B=Z.plus(q.mul(Q.mul(Q)));return _.from([[R,V,new X(0)],[z,B,new X(0)],[new X(0),new X(0),new X(1)]])}function fJ(J,K,$){if(!J||typeof J.mul!=="function")throw new Error("applyTransform: first argument must be a Matrix");if(!J.data||!Array.isArray(J.data)||J.data.length!==3||!J.data[0]||J.data[0].length!==3||!J.data[1]||J.data[1].length!==3||!J.data[2]||J.data[2].length!==3)throw new Error("applyTransform: matrix must be 3x3");h(K,"x"),h($,"y");let W=_.from([[u(K)],[u($)],[new X(1)]]),Q=J.mul(W);if(!Q||!Q.data||!Array.isArray(Q.data)||Q.data.length!==3||!Q.data[0]||!Q.data[0][0]||!Q.data[1]||!Q.data[1][0]||!Q.data[2]||!Q.data[2][0])throw new Error("applyTransform: matrix multiplication produced invalid result");let H=Q.data[0][0],Y=Q.data[1][0],F=Q.data[2][0];if(F.isZero())throw new Error("applyTransform: perspective division by zero (invalid transformation matrix)");return[H.div(F),Y.div(F)]}function aK(){return _.from([[new X(1),new X(0),new X(0)],[new X(0),new X(-1),new X(0)],[new X(0),new X(0),new X(1)]])}function iK(){return _.from([[new X(-1),new X(0),new X(0)],[new X(0),new X(1),new X(0)],[new X(0),new X(0),new X(1)]])}function tK(){return _.from([[new X(-1),new X(0),new X(0)],[new X(0),new X(-1),new X(0)],[new X(0),new X(0),new X(1)]])}var hJ={};vJ(hJ,{translation:()=>WJ,scale:()=>bJ,rotateZ:()=>gJ,rotateY:()=>kJ,rotateX:()=>LJ,rotateAroundPoint:()=>eK,rotateAroundAxis:()=>tJ,reflectYZ:()=>K$,reflectXZ:()=>J$,reflectXY:()=>rK,reflectOrigin:()=>$$,applyTransform:()=>CJ});var j=(J)=>{if(J instanceof X)return J;try{let K=new X(J);if(!K.isFinite())throw new Error(`Value must be finite, got ${J}`);return K}catch(K){throw new Error(`Invalid numeric value: ${J}`)}};function P(J,K){if(J===void 0||J===null)throw new Error(`${K} is required`);if(typeof J!=="number"&&typeof J!=="string"&&!(J instanceof X))throw new Error(`${K} must be a number, string, or Decimal`)}function IJ(J){let K=J.toNumber();if(!Number.isFinite(K))throw new Error(`Angle must be finite, got ${J}`);if(Math.abs(K)<=6.283185307179586)return K;return K%6.283185307179586}function WJ(J,K,$){return P(J,"tx"),P(K,"ty"),P($,"tz"),_.from([[new X(1),new X(0),new X(0),j(J)],[new X(0),new X(1),new X(0),j(K)],[new X(0),new X(0),new X(1),j($)],[new X(0),new X(0),new X(0),new X(1)]])}function bJ(J,K=null,$=null){if(P(J,"sx"),K!==null)P(K,"sy");if($!==null)P($,"sz");let W=K===null?J:K,Q=$===null?J:$,H=j(J),Y=j(W),F=j(Q);return _.from([[H,new X(0),new X(0),new X(0)],[new X(0),Y,new X(0),new X(0)],[new X(0),new X(0),F,new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function LJ(J){P(J,"theta");let K=j(J),$=IJ(K),W=new X(Math.cos($)),Q=new X(Math.sin($));return _.from([[new X(1),new X(0),new X(0),new X(0)],[new X(0),W,Q.negated(),new X(0)],[new X(0),Q,W,new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function kJ(J){P(J,"theta");let K=j(J),$=IJ(K),W=new X(Math.cos($)),Q=new X(Math.sin($));return _.from([[W,new X(0),Q,new X(0)],[new X(0),new X(1),new X(0),new X(0)],[Q.negated(),new X(0),W,new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function gJ(J){P(J,"theta");let K=j(J),$=IJ(K),W=new X(Math.cos($)),Q=new X(Math.sin($));return _.from([[W,Q.negated(),new X(0),new X(0)],[Q,W,new X(0),new X(0)],[new X(0),new X(0),new X(1),new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function tJ(J,K,$,W){P(J,"ux"),P(K,"uy"),P($,"uz"),P(W,"theta");let Q=[j(J),j(K),j($)],H=Q[0].mul(Q[0]).plus(Q[1].mul(Q[1])).plus(Q[2].mul(Q[2])).sqrt();if(H.isZero())throw new Error("Rotation axis cannot be zero vector (ux=0, uy=0, uz=0)");Q[0]=Q[0].div(H),Q[1]=Q[1].div(H),Q[2]=Q[2].div(H);let Y=j(W),F=IJ(Y),U=new X(Math.cos(F)),Z=new X(Math.sin(F)),q=new X(1),R=Q[0].mul(Q[0]),V=Q[1].mul(Q[1]),z=Q[2].mul(Q[2]),B=R.plus(U.mul(q.minus(R))),T=Q[0].mul(Q[1]).mul(q.minus(U)).minus(Q[2].mul(Z)),L=Q[0].mul(Q[2]).mul(q.minus(U)).plus(Q[1].mul(Z)),M=Q[1].mul(Q[0]).mul(q.minus(U)).plus(Q[2].mul(Z)),D=V.plus(U.mul(q.minus(V))),E=Q[1].mul(Q[2]).mul(q.minus(U)).minus(Q[0].mul(Z)),b=Q[2].mul(Q[0]).mul(q.minus(U)).minus(Q[1].mul(Z)),a=Q[2].mul(Q[1]).mul(q.minus(U)).plus(Q[0].mul(Z)),p=z.plus(U.mul(q.minus(z)));return _.from([[B,T,L,new X(0)],[M,D,E,new X(0)],[b,a,p,new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function eK(J,K,$,W,Q,H,Y){P(J,"ux"),P(K,"uy"),P($,"uz"),P(W,"theta"),P(Q,"px"),P(H,"py"),P(Y,"pz");let F=j(Q),U=j(H),Z=j(Y);return WJ(F,U,Z).mul(tJ(J,K,$,W)).mul(WJ(F.negated(),U.negated(),Z.negated()))}function CJ(J,K,$,W){if(!(J instanceof _))throw new Error("M must be a Matrix instance");if(J.rows!==4||J.cols!==4)throw new Error(`M must be a 4x4 matrix, got ${J.rows}x${J.cols}`);P(K,"x"),P($,"y"),P(W,"z");let Q=_.from([[j(K)],[j($)],[j(W)],[new X(1)]]),H=J.mul(Q),Y=H.data[0][0],F=H.data[1][0],U=H.data[2][0],Z=H.data[3][0];if(Z.isZero())throw new Error("Perspective division by zero: transformation results in point at infinity");return[Y.div(Z),F.div(Z),U.div(Z)]}function rK(){return _.from([[new X(1),new X(0),new X(0),new X(0)],[new X(0),new X(1),new X(0),new X(0)],[new X(0),new X(0),new X(-1),new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function J$(){return _.from([[new X(1),new X(0),new X(0),new X(0)],[new X(0),new X(-1),new X(0),new X(0)],[new X(0),new X(0),new X(1),new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function K$(){return _.from([[new X(-1),new X(0),new X(0),new X(0)],[new X(0),new X(1),new X(0),new X(0)],[new X(0),new X(0),new X(1),new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}function $$(){return _.from([[new X(-1),new X(0),new X(0),new X(0)],[new X(0),new X(-1),new X(0),new X(0)],[new X(0),new X(0),new X(-1),new X(0)],[new X(0),new X(0),new X(0),new X(1)]])}X.set({precision:80});var W$="1.3.15";var Q$=$J,H$=zJ,Y$=MJ,F$=PJ,Z$=fJ,X$=WJ,U$=LJ,q$=kJ,R$=gJ,V$=bJ,G$=CJ,eJ={VERSION:W$,Decimal:X,Matrix:_,Vector:A,Transforms2D:jJ,Transforms3D:hJ,translate2D:Q$,rotate2D:H$,scale2D:Y$,skew2D:F$,applyTransform2D:Z$,translate3D:X$,rotateX:U$,rotateY:q$,rotateZ:R$,scale3D:V$,applyTransform3D:G$},b$=eJ;if(typeof window!=="undefined")window.SVGMatrixLib=eJ;export{X$ as translate3D,Q$ as translate2D,F$ as skew2D,V$ as scale3D,Y$ as scale2D,R$ as rotateZ,q$ as rotateY,U$ as rotateX,H$ as rotate2D,b$ as default,G$ as applyTransform3D,Z$ as applyTransform2D,A as Vector,W$ as VERSION,hJ as Transforms3D,jJ as Transforms2D,_ as Matrix,X as Decimal};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! svg-matrix v1.3.
|
|
1
|
+
/*! svg-matrix v1.3.15 | MIT License | https://github.com/Emasoft/svg-matrix */
|
|
2
2
|
(()=>{var FZ=Object.create;var{getPrototypeOf:_Z,defineProperty:v6,getOwnPropertyNames:DJ,getOwnPropertyDescriptor:UZ}=Object,hJ=Object.prototype.hasOwnProperty;var Q6=($,J,Z)=>{Z=$!=null?FZ(_Z($)):{};let K=J||!$||!$.__esModule?v6(Z,"default",{value:$,enumerable:!0}):Z;for(let Q of DJ($))if(!hJ.call(K,Q))v6(K,Q,{get:()=>$[Q],enumerable:!0});return K},vJ=new WeakMap,yJ=($)=>{var J=vJ.get($),Z;if(J)return J;if(J=v6({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")DJ($).map((K)=>!hJ.call(J,K)&&v6(J,K,{get:()=>$[K],enumerable:!(Z=UZ($,K))||Z.enumerable}));return vJ.set($,J),J};var W$=($,J)=>{for(var Z in J)v6($,Z,{get:J[Z],enumerable:!0,configurable:!0,set:(K)=>J[Z]=()=>K})};var VZ=($,J)=>()=>($&&(J=$($=0)),J);var v7=(($)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy($,{get:(J,Z)=>(typeof require!=="undefined"?require:J)[Z]}):$)(function($){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+$+'" is not supported')});var I6={};W$(I6,{win32:()=>W8,toNamespacedPath:()=>yz,sep:()=>pz,resolve:()=>fz,relative:()=>hz,posix:()=>K6,parse:()=>dz,normalize:()=>Sz,join:()=>Dz,isAbsolute:()=>vz,format:()=>mz,extname:()=>xz,dirname:()=>uz,delimiter:()=>cz,default:()=>bz,basename:()=>gz});var wz,gK,Rz,Bz,Nz,Cz,Iz=($,J)=>()=>(J||$((J={exports:{}}).exports,J),J.exports),Pz=($,J,Z,K)=>{if(J&&typeof J=="object"||typeof J=="function")for(let Q of Bz(J))!Cz.call($,Q)&&Q!==Z&&gK($,Q,{get:()=>J[Q],enumerable:!(K=Rz(J,Q))||K.enumerable});return $},Az=($,J,Z)=>(Z=$!=null?wz(Nz($)):{},Pz(J||!$||!$.__esModule?gK(Z,"default",{value:$,enumerable:!0}):Z,$)),Ez,xK,d0,Tz,uK=function($){return $},mK=function(){throw new Error("Not implemented")},K6,W8,bz,fz,Sz,vz,Dz,hz,yz,uz,gz,xz,mz,dz,pz,cz;var P6=VZ(()=>{wz=Object.create,gK=Object.defineProperty,Rz=Object.getOwnPropertyDescriptor,Bz=Object.getOwnPropertyNames,Nz=Object.getPrototypeOf,Cz=Object.prototype.hasOwnProperty,Ez=Iz(($,J)=>{function Z(z){if(typeof z!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(z))}function K(z,q){for(var j="",W=0,G=-1,F=0,_,U=0;U<=z.length;++U){if(U<z.length)_=z.charCodeAt(U);else{if(_===47)break;_=47}if(_===47){if(!(G===U-1||F===1))if(G!==U-1&&F===2){if(j.length<2||W!==2||j.charCodeAt(j.length-1)!==46||j.charCodeAt(j.length-2)!==46){if(j.length>2){var M=j.lastIndexOf("/");if(M!==j.length-1){M===-1?(j="",W=0):(j=j.slice(0,M),W=j.length-1-j.lastIndexOf("/")),G=U,F=0;continue}}else if(j.length===2||j.length===1){j="",W=0,G=U,F=0;continue}}q&&(j.length>0?j+="/..":j="..",W=2)}else j.length>0?j+="/"+z.slice(G+1,U):j=z.slice(G+1,U),W=U-G-1;G=U,F=0}else _===46&&F!==-1?++F:F=-1}return j}function Q(z,q){var j=q.dir||q.root,W=q.base||(q.name||"")+(q.ext||"");return j?j===q.root?j+W:j+z+W:W}var H={resolve:function(){for(var z="",q=!1,j,W=arguments.length-1;W>=-1&&!q;W--){var G;W>=0?G=arguments[W]:(j===void 0&&(j=process.cwd()),G=j),Z(G),G.length!==0&&(z=G+"/"+z,q=G.charCodeAt(0)===47)}return z=K(z,!q),q?z.length>0?"/"+z:"/":z.length>0?z:"."},normalize:function(z){if(Z(z),z.length===0)return".";var q=z.charCodeAt(0)===47,j=z.charCodeAt(z.length-1)===47;return z=K(z,!q),z.length===0&&!q&&(z="."),z.length>0&&j&&(z+="/"),q?"/"+z:z},isAbsolute:function(z){return Z(z),z.length>0&&z.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var z,q=0;q<arguments.length;++q){var j=arguments[q];Z(j),j.length>0&&(z===void 0?z=j:z+="/"+j)}return z===void 0?".":H.normalize(z)},relative:function(z,q){if(Z(z),Z(q),z===q||(z=H.resolve(z),q=H.resolve(q),z===q))return"";for(var j=1;j<z.length&&z.charCodeAt(j)===47;++j);for(var W=z.length,G=W-j,F=1;F<q.length&&q.charCodeAt(F)===47;++F);for(var _=q.length,U=_-F,M=G<U?G:U,V=-1,Y=0;Y<=M;++Y){if(Y===M){if(U>M){if(q.charCodeAt(F+Y)===47)return q.slice(F+Y+1);if(Y===0)return q.slice(F+Y)}else G>M&&(z.charCodeAt(j+Y)===47?V=Y:Y===0&&(V=0));break}var O=z.charCodeAt(j+Y),X=q.charCodeAt(F+Y);if(O!==X)break;O===47&&(V=Y)}var w="";for(Y=j+V+1;Y<=W;++Y)(Y===W||z.charCodeAt(Y)===47)&&(w.length===0?w+="..":w+="/..");return w.length>0?w+q.slice(F+V):(F+=V,q.charCodeAt(F)===47&&++F,q.slice(F))},_makeLong:function(z){return z},dirname:function(z){if(Z(z),z.length===0)return".";for(var q=z.charCodeAt(0),j=q===47,W=-1,G=!0,F=z.length-1;F>=1;--F)if(q=z.charCodeAt(F),q===47){if(!G){W=F;break}}else G=!1;return W===-1?j?"/":".":j&&W===1?"//":z.slice(0,W)},basename:function(z,q){if(q!==void 0&&typeof q!="string")throw new TypeError('"ext" argument must be a string');Z(z);var j=0,W=-1,G=!0,F;if(q!==void 0&&q.length>0&&q.length<=z.length){if(q.length===z.length&&q===z)return"";var _=q.length-1,U=-1;for(F=z.length-1;F>=0;--F){var M=z.charCodeAt(F);if(M===47){if(!G){j=F+1;break}}else U===-1&&(G=!1,U=F+1),_>=0&&(M===q.charCodeAt(_)?--_===-1&&(W=F):(_=-1,W=U))}return j===W?W=U:W===-1&&(W=z.length),z.slice(j,W)}else{for(F=z.length-1;F>=0;--F)if(z.charCodeAt(F)===47){if(!G){j=F+1;break}}else W===-1&&(G=!1,W=F+1);return W===-1?"":z.slice(j,W)}},extname:function(z){Z(z);for(var q=-1,j=0,W=-1,G=!0,F=0,_=z.length-1;_>=0;--_){var U=z.charCodeAt(_);if(U===47){if(!G){j=_+1;break}continue}W===-1&&(G=!1,W=_+1),U===46?q===-1?q=_:F!==1&&(F=1):q!==-1&&(F=-1)}return q===-1||W===-1||F===0||F===1&&q===W-1&&q===j+1?"":z.slice(q,W)},format:function(z){if(z===null||typeof z!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof z);return Q("/",z)},parse:function(z){Z(z);var q={root:"",dir:"",base:"",ext:"",name:""};if(z.length===0)return q;var j=z.charCodeAt(0),W=j===47,G;W?(q.root="/",G=1):G=0;for(var F=-1,_=0,U=-1,M=!0,V=z.length-1,Y=0;V>=G;--V){if(j=z.charCodeAt(V),j===47){if(!M){_=V+1;break}continue}U===-1&&(M=!1,U=V+1),j===46?F===-1?F=V:Y!==1&&(Y=1):F!==-1&&(Y=-1)}return F===-1||U===-1||Y===0||Y===1&&F===U-1&&F===_+1?U!==-1&&(_===0&&W?q.base=q.name=z.slice(1,U):q.base=q.name=z.slice(_,U)):(_===0&&W?(q.name=z.slice(1,F),q.base=z.slice(1,U)):(q.name=z.slice(_,F),q.base=z.slice(_,U)),q.ext=z.slice(F,U)),_>0?q.dir=z.slice(0,_-1):W&&(q.dir="/"),q},sep:"/",delimiter:":",win32:null,posix:null};H.posix=H,J.exports=H}),xK=Az(Ez()),d0=xK,Tz=xK;d0.parse??=mK;Tz.parse??=mK;K6={resolve:d0.resolve.bind(d0),normalize:d0.normalize.bind(d0),isAbsolute:d0.isAbsolute.bind(d0),join:d0.join.bind(d0),relative:d0.relative.bind(d0),toNamespacedPath:uK,dirname:d0.dirname.bind(d0),basename:d0.basename.bind(d0),extname:d0.extname.bind(d0),format:d0.format.bind(d0),parse:d0.parse.bind(d0),sep:"/",delimiter:":",win32:void 0,posix:void 0,_makeLong:uK},W8={sep:"\\",delimiter:";",win32:void 0,...K6,posix:K6};K6.win32=W8.win32=W8;K6.posix=K6;bz=K6,{resolve:fz,normalize:Sz,isAbsolute:vz,join:Dz,relative:hz,toNamespacedPath:yz,dirname:uz,basename:gz,extname:xz,format:mz,parse:dz,sep:pz,delimiter:cz}=K6});var Iq={};W$(Iq,{validateXML:()=>MJ,validateSVGAsync:()=>HZ,validateSVG:()=>OJ,straightCurves:()=>d$,sortDefsChildren:()=>l8,sortAttrs:()=>c8,simplifyPaths:()=>BJ,simplifyPath:()=>kJ,saveOutput:()=>Y8,reusePaths:()=>n8,removeXlink:()=>i8,removeXMLProcInst:()=>I8,removeXMLNS:()=>f8,removeViewBox:()=>b8,removeUselessDefs:()=>B8,removeUselessCommands:()=>l$,removeUnknownsAndDefaults:()=>w8,removeTitle:()=>P8,removeStyleElement:()=>o8,removeScriptElement:()=>v8,removeRasterImages:()=>S8,removeOffCanvasPath:()=>s8,removeNonInheritableGroupAttrs:()=>R8,removeMetadata:()=>H$,removeLeadingZero:()=>h$,removeHiddenElements:()=>K$,removeEmptyText:()=>N8,removeEmptyContainers:()=>Z$,removeEmptyAttrs:()=>E8,removeElementsByAttr:()=>KJ,removeEditorsNSData:()=>K9,removeDoctype:()=>C8,removeDimensions:()=>e8,removeDesc:()=>A8,removeComments:()=>Q$,removeAttrs:()=>JJ,removeAttributesBySelector:()=>$J,printHierarchicalMatrix:()=>KZ,presetNone:()=>z9,presetDefault:()=>H9,prefixIds:()=>t8,optimizePaths:()=>RJ,optimizeAnimationTiming:()=>wJ,optimize:()=>QJ,negativeExtraSpace:()=>y$,moveGroupAttrsToElems:()=>m8,moveElemsAttrsToGroup:()=>d8,minifyStyles:()=>Q9,mergePaths:()=>x8,measureDistance:()=>VJ,loadInput:()=>b6,lineShorthands:()=>x$,inlineStyles:()=>p8,imageToPath:()=>_J,generateOutput:()=>f6,generateFullCompatibilityMatrix:()=>JZ,generateFlexibleSVGTable:()=>YJ,generateCompatibilityMatrixSVG:()=>ZZ,generateCompatibilityMatrixFlexible:()=>QZ,formatPrecision:()=>O8,floatPrecision:()=>c$,flattenUseElements:()=>FJ,flattenPatterns:()=>jJ,flattenMasks:()=>qJ,flattenGradients:()=>WJ,flattenFilters:()=>GJ,flattenClipPaths:()=>zJ,flattenAll:()=>LJ,fixInvalidSVG:()=>XJ,exportEmbeddedResources:()=>IJ,escapeXml:()=>aK,embedExternalDependencies:()=>q9,detectOutputTarget:()=>$9,detectInputType:()=>T6,detectCollisions:()=>UJ,default:()=>Pq,decomposeTransform:()=>NJ,createOperation:()=>G0,createConfig:()=>HJ,convertTransform:()=>y8,convertToZ:()=>m$,convertToRelative:()=>u$,convertToPlainSVG:()=>T8,convertToAbsolute:()=>g$,convertStyleToAttrs:()=>Z9,convertShapesToPath:()=>D8,convertQuadraticToSmooth:()=>s$,convertPathData:()=>h8,convertEllipseToCircle:()=>u8,convertCubicToSmooth:()=>o$,convertCubicToQuadratic:()=>n$,convertColors:()=>z$,collapseRepeated:()=>p$,collapseGroups:()=>g8,cleanupNumericValues:()=>J$,cleanupListOfValues:()=>X8,cleanupIds:()=>J9,cleanupEnableBackground:()=>k8,cleanupAttributes:()=>L8,arcShorthands:()=>i$,applyPreset:()=>ZJ,analyzeCompatibilityMatrix:()=>$Z,analyzeCompatibility:()=>eK,addClassesToSVGElement:()=>a8,addAttributesToSVGElement:()=>r8,ValidationSeverity:()=>R0,VERSION:()=>WZ,PRECISION_LEVELS:()=>V8,OutputTarget:()=>j7,OutputFormat:()=>G7,MAX_PRECISION:()=>E6,InputType:()=>v0,DEFAULT_PRECISION:()=>$$});var PJ={};W$(PJ,{validateXML:()=>MJ,validateSVGAsync:()=>HZ,validateSVG:()=>OJ,straightCurves:()=>d$,sortDefsChildren:()=>l8,sortAttrs:()=>c8,simplifyPaths:()=>BJ,simplifyPath:()=>kJ,saveOutput:()=>Y8,reusePaths:()=>n8,removeXlink:()=>i8,removeXMLProcInst:()=>I8,removeXMLNS:()=>f8,removeViewBox:()=>b8,removeUselessDefs:()=>B8,removeUselessCommands:()=>l$,removeUnknownsAndDefaults:()=>w8,removeTitle:()=>P8,removeStyleElement:()=>o8,removeScriptElement:()=>v8,removeRasterImages:()=>S8,removeOffCanvasPath:()=>s8,removeNonInheritableGroupAttrs:()=>R8,removeMetadata:()=>H$,removeLeadingZero:()=>h$,removeHiddenElements:()=>K$,removeEmptyText:()=>N8,removeEmptyContainers:()=>Z$,removeEmptyAttrs:()=>E8,removeElementsByAttr:()=>KJ,removeEditorsNSData:()=>K9,removeDoctype:()=>C8,removeDimensions:()=>e8,removeDesc:()=>A8,removeComments:()=>Q$,removeAttrs:()=>JJ,removeAttributesBySelector:()=>$J,printHierarchicalMatrix:()=>KZ,presetNone:()=>z9,presetDefault:()=>H9,prefixIds:()=>t8,optimizePaths:()=>RJ,optimizeAnimationTiming:()=>wJ,optimize:()=>QJ,negativeExtraSpace:()=>y$,moveGroupAttrsToElems:()=>m8,moveElemsAttrsToGroup:()=>d8,minifyStyles:()=>Q9,mergePaths:()=>x8,measureDistance:()=>VJ,loadInput:()=>b6,lineShorthands:()=>x$,inlineStyles:()=>p8,imageToPath:()=>_J,generateOutput:()=>f6,generateFullCompatibilityMatrix:()=>JZ,generateFlexibleSVGTable:()=>YJ,generateCompatibilityMatrixSVG:()=>ZZ,generateCompatibilityMatrixFlexible:()=>QZ,formatPrecision:()=>O8,floatPrecision:()=>c$,flattenUseElements:()=>FJ,flattenPatterns:()=>jJ,flattenMasks:()=>qJ,flattenGradients:()=>WJ,flattenFilters:()=>GJ,flattenClipPaths:()=>zJ,flattenAll:()=>LJ,fixInvalidSVG:()=>XJ,exportEmbeddedResources:()=>IJ,escapeXml:()=>aK,embedExternalDependencies:()=>q9,detectOutputTarget:()=>$9,detectInputType:()=>T6,detectCollisions:()=>UJ,default:()=>Cq,decomposeTransform:()=>NJ,createOperation:()=>G0,createConfig:()=>HJ,convertTransform:()=>y8,convertToZ:()=>m$,convertToRelative:()=>u$,convertToPlainSVG:()=>T8,convertToAbsolute:()=>g$,convertStyleToAttrs:()=>Z9,convertShapesToPath:()=>D8,convertQuadraticToSmooth:()=>s$,convertPathData:()=>h8,convertEllipseToCircle:()=>u8,convertCubicToSmooth:()=>o$,convertCubicToQuadratic:()=>n$,convertColors:()=>z$,collapseRepeated:()=>p$,collapseGroups:()=>g8,cleanupNumericValues:()=>J$,cleanupListOfValues:()=>X8,cleanupIds:()=>J9,cleanupEnableBackground:()=>k8,cleanupAttributes:()=>L8,arcShorthands:()=>i$,applyPreset:()=>ZJ,analyzeCompatibilityMatrix:()=>$Z,analyzeCompatibility:()=>eK,addClassesToSVGElement:()=>a8,addAttributesToSVGElement:()=>r8,ValidationSeverity:()=>R0,PRECISION_LEVELS:()=>V8,OutputTarget:()=>j7,OutputFormat:()=>G7,MAX_PRECISION:()=>E6,InputType:()=>v0,DEFAULT_PRECISION:()=>$$});/*!
|
|
3
3
|
* decimal.js v10.6.0
|
|
4
4
|
* An arbitrary-precision Decimal type for JavaScript.
|
|
@@ -490,4 +490,4 @@ ${z}
|
|
|
490
490
|
// ===== END EMBEDDED RESOURCES INTERCEPTOR =====
|
|
491
491
|
|
|
492
492
|
`}function Lq($){let J=new Map,Z=(Q,H)=>{if(!Q||!H)return;let z=Q.replace(/['"]/g,"").trim().split(",")[0].trim();if(!J.has(z))J.set(z,new Set);let q=J.get(z);for(let j of H)q.add(j)},K=(Q)=>{if(!Q)return;let z=(Q.getAttribute?.("style")||"").match(/font-family:\s*([^;]+)/i),q=z?z[1]:null,j=Q.getAttribute?.("font-family"),W=Q.getAttribute?.("face"),G=q||j||W,F="";if(Q.childNodes){for(let _ of Q.childNodes)if(_.nodeType===3)F+=_.nodeValue||""}if(G&&F.trim())Z(G,F);if(Q.tagName==="text"||Q.tagName==="tspan"){let _=G;if(!_&&Q.parentNode){let M=(Q.parentNode.getAttribute?.("style")||"").match(/font-family:\s*([^;]+)/i);_=M?M[1]:Q.parentNode.getAttribute?.("font-family")}if(_&&F.trim())Z(_,F)}if(Q.children)for(let _ of Q.children)K(_)};return K($),J}function kq($){let J=[...$].sort().join("");return encodeURIComponent(J)}function wq($){return $&&($.includes("fonts.googleapis.com")||$.includes("fonts.gstatic.com"))}function Rq($){try{let Z=new URL($).searchParams.get("family");if(Z)return Z.split(":")[0].replace(/\+/g," ")}catch(J){if(process.env.DEBUG)console.warn(`[svg-toolbox] ${J.message}`);let Z=$.match(/family=([^&:]+)/);if(Z)return Z[1].replace(/\+/g," ")}return null}function Bq($,J){if(!J)return $;try{let Z=new URL($);return Z.searchParams.set("text",decodeURIComponent(J)),Z.toString()}catch(Z){if(process.env.DEBUG)console.warn(`[svg-toolbox] ${Z.message}`);let K=$.includes("?")?"&":"?";return`${$}${K}text=${J}`}}var q9=G0(async($,J={})=>{let{basePath:Z="",embedImages:K=!0,embedExternalSVGs:Q=!0,externalSVGMode:H="extract",embedCSS:z=!0,embedFonts:q=!0,embedScripts:j=!0,embedAudio:W=!1,subsetFonts:G=!0,verbose:F=!1,recursive:_=!0,maxRecursionDepth:U=10,timeout:M=30000,onMissingResource:V="warn",onProgress:Y=null,idPrefix:O="ext_",_visitedURLs:X=null}=J,w=X||new Set,R=[],B=new Map,I=0,h=(y)=>{if(!y||!y.attributes)return;let T=["http://www.inkscape.org/namespaces/inkscape","http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd","http://ns.adobe.com/AdobeIllustrator/","http://ns.adobe.com/AdobeSVGViewerExtensions/","http://www.bohemiancoding.com/sketch/ns","http://www.figma.com/figma/ns","http://www.serif.com/","http://www.vecta.io/nano"],d=["http://www.w3.org/2000/svg","http://www.w3.org/1999/xlink","http://www.w3.org/XML/1998/namespace","http://www.w3.org/2000/xmlns/"],p=y.attributes;for(let c=0;c<p.length;c++){let C=p[c];if(C.name.startsWith("xmlns:")){let u=C.name.substring(6),N=C.value;if(T.some((e)=>N.startsWith(e))||!d.includes(N))B.set(u,N)}}},m=(y,T)=>{let d=`Failed to fetch resource: ${y} - ${T.message}`;if(V==="fail")throw new Error(d);else if(V==="warn")R.push(d),console.warn("embedExternalDependencies:",d);return null};if(K){let T=[...$.getElementsByTagName("image")];if(Y)Y("images",0,T.length);for(let d=0;d<T.length;d++){let p=T[d],c=p.getAttribute("href")||p.getAttribute("xlink:href");if(!c||!rK(c))continue;try{let C=m7(c,Z),{content:u,contentType:N}=await d7(C,"binary",M),e=e6(u,N.split(";")[0]);if(p.getAttribute("href"))p.setAttribute("href",e);if(p.getAttribute("xlink:href"))p.setAttribute("xlink:href",e)}catch(C){m(c,C)}if(Y)Y("images",d+1,T.length)}}if(Q){let T=[...$.getElementsByTagName("use")];if(Y)Y("externalSVGs",0,T.length);let d=$.querySelector("defs");if(!d){let p=$.documentElement||$;if(!p){if(R.push("Cannot add defs: document has no root SVG element"),Y)Y("externalSVGs",T.length,T.length)}else if(d=new B0("defs",{},[]),typeof p.insertBefore==="function"&&p.firstChild)p.insertBefore(d,p.firstChild);else if(typeof p.appendChild==="function")p.appendChild(d);else if(p.children&&Array.isArray(p.children))p.children.unshift(d),d.parentNode=p}if(d)for(let p=0;p<T.length;p++){let c=T[p],C=c.getAttribute("href")||c.getAttribute("xlink:href");if(!C||!rK(C))continue;let{path:u,fragment:N}=Vq(C);if(!u)continue;let e=m7(u,Z);if(w.has(e)){R.push(`Circular reference detected: ${e}`);continue}w.add(e);try{let{content:a}=await d7(e,"text",M),s=p0(a);if(!s){m(u,new Error("Failed to parse SVG"));continue}let H0=s.documentElement||s;if(h(H0),_&&U>0)await q9(s,{...J,basePath:e,maxRecursionDepth:U-1,_visitedURLs:w});I++;let S=`${O}${I}_`;if(H==="extract"&&N){let E=s.getElementById(N);if(E){let t=E.clone?E.clone():JSON.parse(JSON.stringify(E));U8(t,S),d.children.push(t);let $0=S+N;if(c.getAttribute("href"))c.setAttribute("href","#"+$0);if(c.getAttribute("xlink:href"))c.setAttribute("xlink:href","#"+$0)}else m(C,new Error(`Fragment #${N} not found in ${u}`))}else{let E=s.documentElement||s;U8(E,S);let t=S+"svg";E.setAttribute("id",t),d.children.push(E);let $0=N?"#"+S+N:"#"+t;if(c.getAttribute("href"))c.setAttribute("href",$0);if(c.getAttribute("xlink:href"))c.setAttribute("xlink:href",$0)}}catch(a){m(u,a)}if(Y)Y("externalSVGs",p+1,T.length)}}if(z||q){let T=[...$.getElementsByTagName("style")];if(Y)Y("stylesheets",0,T.length);let d=G?Lq($):null;for(let p=0;p<T.length;p++){let c=T[p],C=c.textContent||"";if(z){let{imports:u}=G8(C);for(let N of u.reverse())try{let e=N.url;if(d&&wq(e)){let E=Rq(e);if(E&&d.has(E)){let t=kq(d.get(E));if(e=Bq(e,t),F)console.log(`Font subsetting: ${E} -> ${d.get(E).size} chars`)}}let a=m7(e,Z),{content:s}=await d7(a,"text",M),H0=s,S=G8(s).imports;if(S.length>0)for(let E of S.reverse())try{let t=m7(E.url,a),$0=await d7(t,"text",M);H0=H0.substring(0,E.index)+$0.content+H0.substring(E.index+E.fullMatch.length)}catch(t){m(E.url,t)}C=C.substring(0,N.index)+H0+C.substring(N.index+N.fullMatch.length)}catch(e){m(N.url,e)}}if(z||q){let{urls:u}=G8(C);for(let N of u.reverse()){let e=e$(N.url),a=e.startsWith("font/")||e.includes("fontobject");if(a&&!q)continue;if(!a&&!z)continue;try{let s=m7(N.url,Z),{content:H0,contentType:S}=await d7(s,"binary",M),t=`url("${e6(H0,S.split(";")[0])}")`;C=C.substring(0,N.index)+t+C.substring(N.index+N.fullMatch.length)}catch(s){m(N.url,s)}}}if(c.textContent=C,Y)Y("stylesheets",p+1,T.length)}}if(j){let T=[...$.getElementsByTagName("script")];if(Y)Y("scripts",0,T.length);for(let d=0;d<T.length;d++){let p=T[d],c=p.getAttribute("src")||p.getAttribute("href")||p.getAttribute("xlink:href");if(!c)continue;if(c.startsWith("data:"))continue;try{let C=m7(c,Z),{content:u}=await d7(C,"text",M);p.removeAttribute("src"),p.removeAttribute("href"),p.removeAttribute("xlink:href"),qZ(p,u,$)}catch(C){m(c,C)}if(Y)Y("scripts",d+1,T.length)}}if(W){let T=[...$.getElementsByTagName("audio")];if(Y)Y("audio",0,T.length);for(let d=0;d<T.length;d++){let p=T[d],c=p.getAttribute("src");if(c&&!c.startsWith("data:"))try{let u=m7(c,Z),{content:N,contentType:e}=await d7(u,"binary",M),a=e.split(";")[0]||"audio/mpeg",s=e6(N,a);p.setAttribute("src",s)}catch(u){m(c,u)}let C=p.getElementsByTagName("source");for(let u of C){let N=u.getAttribute("src");if(N&&!N.startsWith("data:"))try{let e=m7(N,Z),{content:a,contentType:s}=await d7(e,"binary",M),H0=s.split(";")[0]||u.getAttribute("type")||"audio/mpeg",S=e6(a,H0);u.setAttribute("src",S)}catch(e){m(N,e)}}if(Y)Y("audio",d+1,T.length)}}if(j){let y=[],T=$.getElementsByTagName("script");for(let C of T)if(C.textContent)y.push(C.textContent);let d=$.getElementsByTagName("style");for(let C of d)if(C.textContent)y.push(C.textContent);let p=$.getElementsByTagName("foreignObject");for(let C of p){let u=C.textContent||"";if(u)y.push(u)}let c=new Set;for(let C of y){let u=Yq(C);for(let N of u)c.add(N)}if(c.size>0){let C=new Map;if(Y)Y("resources",0,c.size);let u=0;for(let N of c){try{let e=m7(N,Z),{content:a,contentType:s}=await d7(e,"binary",M),H0=s.split(";")[0]||e$(N),S=e6(a,H0);if(C.set(N,S),F){let E=(a.length/1024).toFixed(1);console.log(`Embedded resource: ${N} (${E} KB)`)}}catch(e){m(N,e)}if(u++,Y)Y("resources",u,c.size)}if(C.size>0){let N=Xq(C),e=T[0];if(e){let a=e.textContent||"";if(N.includes("<")||N.includes("&")||a.includes("<")||a.includes("&"))e.setAttribute("data-cdata-pending","true");e.textContent=N+a}else{let a=$.createElement("script");a.setAttribute("type","text/javascript"),a.setAttribute("data-cdata-pending","true"),a.textContent=N;let s=$.documentElement||$;if(s.firstChild)s.insertBefore(a,s.firstChild);else s.appendChild(a)}if(F)console.log(`Injected resource interceptor for ${C.size} embedded resources`)}}}let v=$.documentElement||$;if(!v.getAttribute("xmlns"))v.setAttribute("xmlns","http://www.w3.org/2000/svg");if(N7($).includes("xlink:")&&!v.getAttribute("xmlns:xlink"))v.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink");for(let[y,T]of B){let d=`xmlns:${y}`;if(!v.getAttribute(d))v.setAttribute(d,T)}if(R.length>0)$._embedWarnings=R;return $}),Nq={"image/png":".png","image/jpeg":".jpg","image/gif":".gif","image/webp":".webp","image/svg+xml":".svg","image/bmp":".bmp","image/x-icon":".ico","image/tiff":".tiff","audio/mpeg":".mp3","audio/wav":".wav","audio/ogg":".ogg","audio/webm":".webm","audio/aac":".aac","audio/flac":".flac","video/mp4":".mp4","video/webm":".webm","video/ogg":".ogv","video/quicktime":".mov","application/javascript":".js","text/javascript":".js","text/css":".css","font/woff":".woff","font/woff2":".woff2","font/ttf":".ttf","font/otf":".otf","application/font-woff":".woff","application/font-woff2":".woff2","application/x-font-ttf":".ttf","application/x-font-opentype":".otf"};function G6($){if(!$||!$.startsWith("data:"))return null;let J=$.match(/^data:([^;,]+)?(?:;([^,]+))?,(.*)$/);if(!J)return null;let Z=J[1]||"application/octet-stream",K=J[2]||"",Q=J[3]||"";return{mimeType:Z,encoding:K,data:Q}}function F6($){if($.encoding==="base64")return Buffer.from($.data,"base64");try{return decodeURIComponent($.data)}catch(J){if(process.env.DEBUG)console.warn(`[svg-toolbox] ${J.message}`);return $.data}}function Z6($,J,Z,K=null){let Q=Nq[J]||".bin";if(K){let z=K.replace(/[^a-zA-Z0-9._-]/g,"_");return`${$}_${z}`}let H="resource";if(J.startsWith("image/"))H="image";else if(J.startsWith("audio/"))H="audio";else if(J.startsWith("video/"))H="video";else if(J.startsWith("font/")||J.includes("font"))H="font";else if(J.includes("javascript"))H="script";else if(J.includes("css"))H="style";return`${$}_${H}_${String(Z).padStart(3,"0")}${Q}`}async function IJ($,J={}){let Z=T6($),K=await b6($,Z),Q=J.outputFormat||(Z===v0.DOM_ELEMENT?G7.DOM_ELEMENT:G7.SVG_STRING),{outputDir:H=null,filenamePrefix:z="resource",extractImages:q=!0,extractFonts:j=!0,extractScripts:W=!0,extractStyles:G=!0,extractAudio:F=!0,extractVideo:_=!0,elementIds:U=null,restoreGoogleFonts:M=!0,dryRun:V=!1,extractOnly:Y=!1,onProgress:O=null}=J,X=[],w=[],R=0,B=U?new Set(Array.isArray(U)?U:[U]):null,I=(v)=>{if(!B)return!0;let x=v;while(x&&x.getAttribute){let y=x.getAttribute("id");if(y&&B.has(y))return!0;x=x.parentNode}return!1},h=async(v,x,y)=>{let T=0;if(typeof Buffer!=="undefined"&&Buffer.isBuffer(x))T=x.length;else if(typeof Buffer!=="undefined")T=Buffer.byteLength(x,"utf8");else if(typeof Blob!=="undefined")T=new Blob([x]).size;else T=x.length||0;let d={filename:v,path:H?`${H}/${v}`:v,mimeType:y,size:T};if(!V&&H)try{let p=await import("node:fs/promises"),c=await Promise.resolve().then(() => (P6(),I6));await p.mkdir(H,{recursive:!0});let C=c.join(H,v);if(typeof Buffer!=="undefined"&&Buffer.isBuffer(x))await p.writeFile(C,x);else await p.writeFile(C,x,"utf8");d.path=C,X.push(d)}catch(p){w.push(`Failed to save ${v}: ${p.message}`),d.error=p.message}else X.push(d);return d};if(q){let x=[...K.getElementsByTagName("image")];if(O)O("images",0,x.length);for(let y=0;y<x.length;y++){let T=x[y];if(!I(T))continue;let d=T.getAttribute("href")||T.getAttribute("xlink:href");if(!d||!d.startsWith("data:"))continue;let p=G6(d);if(!p)continue;if(!p.mimeType.startsWith("image/"))continue;R++;let c=Z6(z,p.mimeType,R),C=F6(p),u=await h(c,C,p.mimeType);if(u.type="image",u.elementId=T.getAttribute("id"),!Y){let N=`./${c}`;if(T.getAttribute("href"))T.setAttribute("href",N);if(T.getAttribute("xlink:href"))T.setAttribute("xlink:href",N)}if(O)O("images",y+1,x.length)}}if(F){let x=[...K.getElementsByTagName("audio")];if(O)O("audio",0,x.length);for(let y=0;y<x.length;y++){let T=x[y];if(!I(T))continue;let d=T.getAttribute("src");if(d&&d.startsWith("data:")){let c=G6(d);if(c&&c.mimeType.startsWith("audio/")){R++;let C=Z6(z,c.mimeType,R),u=F6(c),N=await h(C,u,c.mimeType);if(N.type="audio",N.elementId=T.getAttribute("id"),!Y)T.setAttribute("src",`./${C}`)}}let p=T.getElementsByTagName("source");for(let c of p){let C=c.getAttribute("src");if(C&&C.startsWith("data:")){let u=G6(C);if(u&&u.mimeType.startsWith("audio/")){R++;let N=Z6(z,u.mimeType,R),e=F6(u),a=await h(N,e,u.mimeType);if(a.type="audio",!Y)c.setAttribute("src",`./${N}`)}}}if(O)O("audio",y+1,x.length)}}if(_){let x=[...K.getElementsByTagName("video")];if(O)O("video",0,x.length);for(let y=0;y<x.length;y++){let T=x[y];if(!I(T))continue;let d=T.getAttribute("src");if(d&&d.startsWith("data:")){let c=G6(d);if(c&&c.mimeType.startsWith("video/")){R++;let C=Z6(z,c.mimeType,R),u=F6(c),N=await h(C,u,c.mimeType);if(N.type="video",N.elementId=T.getAttribute("id"),!Y)T.setAttribute("src",`./${C}`)}}let p=T.getElementsByTagName("source");for(let c of p){let C=c.getAttribute("src");if(C&&C.startsWith("data:")){let u=G6(C);if(u&&u.mimeType.startsWith("video/")){R++;let N=Z6(z,u.mimeType,R),e=F6(u),a=await h(N,e,u.mimeType);if(a.type="video",!Y)c.setAttribute("src",`./${N}`)}}}if(O)O("video",y+1,x.length)}}if(W){let x=[...K.getElementsByTagName("script")];if(O)O("scripts",0,x.length);for(let y=0;y<x.length;y++){let T=x[y];if(!I(T))continue;let d=T.getAttribute("href")||T.getAttribute("xlink:href");if(d&&!d.startsWith("data:"))continue;let p="";if(d&&d.startsWith("data:")){let u=G6(d);if(u){let N=F6(u);p=typeof N==="string"?N:N.toString("utf8")}}else if(p=T.textContent||"",T.firstChild&&T.firstChild.nodeType===4)p=T.firstChild.nodeValue||"";if(!p.trim())continue;R++;let c=Z6(z,"application/javascript",R),C=await h(c,p,"application/javascript");if(C.type="script",C.elementId=T.getAttribute("id"),!Y){let u=0;while(T.firstChild&&u++<1e4){let N=T.firstChild;if(T.removeChild(N),T.firstChild===N)break}if(u>=1e4)console.error("Safety limit reached removing script children: 10000 iterations");T.setAttribute("href",`./${c}`)}if(O)O("scripts",y+1,x.length)}}if(G||j){let x=[...K.getElementsByTagName("style")];if(O)O("styles",0,x.length);for(let y=0;y<x.length;y++){let T=x[y];if(!I(T))continue;let d=T.textContent||"";if(T.firstChild&&T.firstChild.nodeType===4)d=T.firstChild.nodeValue||"";if(!d.trim())continue;let p=!1;if(j){let c=/@font-face\s*\{[^}]*\}/gi,C=d.match(c)||[];for(let u of C){let N=u.match(/src:\s*url\(["']?(data:[^"')]+)["']?\)/);if(N){let e=N[1],a=G6(e);if(a){R++;let s=Z6(z,a.mimeType,R),H0=F6(a),S=await h(s,H0,a.mimeType);S.type="font";let E=u.match(/font-family:\s*["']?([^"';]+)["']?/);if(E)S.fontFamily=E[1].trim();if(!Y)d=d.replace(e,`./${s}`),p=!0}}}if(M){let u=[],N=/font-family:\s*["']?([^"';,]+)/gi,e;while((e=N.exec(d))!==null){let a=e[1].trim();if(["Roboto","Open Sans","Lato","Montserrat","Oswald","Raleway","Poppins","Source Sans Pro","Ubuntu","Playfair Display","Merriweather","Nunito","PT Sans","Rubik","Work Sans","DM Serif Display","Monofett","Dokdo","Orbitron","Notable","Fira Mono","Fira Code","Inter","Noto Sans","Noto Serif"].some((H0)=>a.toLowerCase().includes(H0.toLowerCase())))u.push(a)}if(u.length>0&&!Y){let a=[...new Set(u)],s=`@import url('https://fonts.googleapis.com/css2?family=${a.map((H0)=>H0.replace(/\s+/g,"+")).join("&family=")}&display=swap');
|
|
493
|
-
`;if(!d.includes("fonts.googleapis.com"))d=s+d,p=!0,w.push(`Restored Google Fonts import for: ${a.join(", ")}`)}}}if(G&&d.trim()){R++;let c=Z6(z,"text/css",R),C=await h(c,d,"text/css");if(C.type="stylesheet",C.elementId=T.getAttribute("id"),!Y){let u=0;while(T.firstChild&&u++<1e4){let N=T.firstChild;if(T.removeChild(N),T.firstChild===N)break}if(u>=1e4)console.error("Safety limit reached removing style children: 10000 iterations");T.textContent=`@import url('./${c}');`,p=!0}}else if(p&&!Y){let c=0;while(T.firstChild&&c++<1e4){let C=T.firstChild;if(T.removeChild(C),T.firstChild===C)break}if(c>=1e4)console.error("Safety limit reached updating style children: 10000 iterations");qZ(T,d,K)}if(O)O("styles",y+1,x.length)}}if(!Y){if(K._exportedResources=X,w.length>0)K._exportWarnings=w}return{doc:Y?null:f6(K,Q,J),extractedFiles:X,warnings:w,summary:{totalExtracted:X.length,images:X.filter((v)=>v.type==="image").length,audio:X.filter((v)=>v.type==="audio").length,video:X.filter((v)=>v.type==="video").length,scripts:X.filter((v)=>v.type==="script").length,fonts:X.filter((v)=>v.type==="font").length,stylesheets:X.filter((v)=>v.type==="stylesheet").length,totalSize:X.reduce((v,x)=>v+x.size,0)}}}var Cq={MAX_PRECISION:E6,DEFAULT_PRECISION:$$,PRECISION_LEVELS:V8,formatPrecision:O8,InputType:v0,OutputFormat:G7,OutputTarget:j7,detectInputType:T6,detectOutputTarget:$9,loadInput:b6,generateOutput:f6,saveOutput:Y8,createOperation:G0,cleanupIds:J9,cleanupNumericValues:J$,cleanupListOfValues:X8,cleanupAttributes:L8,cleanupEnableBackground:k8,removeUnknownsAndDefaults:w8,removeNonInheritableGroupAttrs:R8,removeUselessDefs:B8,removeHiddenElements:K$,removeEmptyText:N8,removeEmptyContainers:Z$,removeDoctype:C8,removeXMLProcInst:I8,removeComments:Q$,removeMetadata:H$,removeTitle:P8,removeDesc:A8,removeEditorsNSData:K9,removeEmptyAttrs:E8,removeViewBox:b8,removeXMLNS:f8,removeRasterImages:S8,removeScriptElement:v8,convertToPlainSVG:T8,convertShapesToPath:D8,convertPathData:h8,convertTransform:y8,convertColors:z$,convertStyleToAttrs:Z9,convertEllipseToCircle:u8,collapseGroups:g8,mergePaths:x8,moveGroupAttrsToElems:m8,moveElemsAttrsToGroup:d8,minifyStyles:Q9,inlineStyles:p8,sortAttrs:c8,sortDefsChildren:l8,reusePaths:n8,removeOffCanvasPath:s8,removeStyleElement:o8,removeXlink:i8,addAttributesToSVGElement:r8,addClassesToSVGElement:a8,prefixIds:t8,removeDimensions:e8,removeAttributesBySelector:$J,removeAttrs:JJ,removeElementsByAttr:KJ,presetDefault:H9,presetNone:z9,applyPreset:ZJ,optimize:QJ,createConfig:HJ,flattenClipPaths:zJ,flattenMasks:qJ,flattenGradients:WJ,flattenPatterns:jJ,flattenFilters:GJ,flattenUseElements:FJ,imageToPath:_J,detectCollisions:UJ,measureDistance:VJ,validateXML:MJ,validateSVG:OJ,fixInvalidSVG:XJ,ValidationSeverity:R0,flattenAll:LJ,simplifyPath:kJ,decomposeTransform:NJ,optimizeAnimationTiming:wJ,optimizePaths:RJ,simplifyPaths:BJ,embedExternalDependencies:q9,exportEmbeddedResources:IJ,convertPathDataAdvanced:K8,parsePathCommands:n0,serializePathCommands:s0,formatPathNumber:f7,douglasPeucker:a6,visvalingamWhyatt:Z8,simplifyPolyline:Q8,simplifyPolylinePath:z8,isPurePolyline:H8,optimizeKeySplines:a9,optimizeKeyTimes:t9,optimizeAnimationValues:f$,formatSplineValue:r6,parseKeySplines:S$,serializeKeySplines:i9,isLinearSpline:v$,areAllSplinesLinear:SK,identifyStandardEasing:r9,STANDARD_EASINGS:o9,removeLeadingZero:h$,negativeExtraSpace:y$,convertToRelative:u$,convertToAbsolute:g$,lineShorthands:x$,convertToZ:m$,straightCurves:d$,collapseRepeated:p$,floatPrecision:c$,removeUselessCommands:l$,convertCubicToQuadratic:n$,convertQuadraticToSmooth:s$,convertCubicToSmooth:o$,arcShorthands:i$};var WZ="1.3.
|
|
493
|
+
`;if(!d.includes("fonts.googleapis.com"))d=s+d,p=!0,w.push(`Restored Google Fonts import for: ${a.join(", ")}`)}}}if(G&&d.trim()){R++;let c=Z6(z,"text/css",R),C=await h(c,d,"text/css");if(C.type="stylesheet",C.elementId=T.getAttribute("id"),!Y){let u=0;while(T.firstChild&&u++<1e4){let N=T.firstChild;if(T.removeChild(N),T.firstChild===N)break}if(u>=1e4)console.error("Safety limit reached removing style children: 10000 iterations");T.textContent=`@import url('./${c}');`,p=!0}}else if(p&&!Y){let c=0;while(T.firstChild&&c++<1e4){let C=T.firstChild;if(T.removeChild(C),T.firstChild===C)break}if(c>=1e4)console.error("Safety limit reached updating style children: 10000 iterations");qZ(T,d,K)}if(O)O("styles",y+1,x.length)}}if(!Y){if(K._exportedResources=X,w.length>0)K._exportWarnings=w}return{doc:Y?null:f6(K,Q,J),extractedFiles:X,warnings:w,summary:{totalExtracted:X.length,images:X.filter((v)=>v.type==="image").length,audio:X.filter((v)=>v.type==="audio").length,video:X.filter((v)=>v.type==="video").length,scripts:X.filter((v)=>v.type==="script").length,fonts:X.filter((v)=>v.type==="font").length,stylesheets:X.filter((v)=>v.type==="stylesheet").length,totalSize:X.reduce((v,x)=>v+x.size,0)}}}var Cq={MAX_PRECISION:E6,DEFAULT_PRECISION:$$,PRECISION_LEVELS:V8,formatPrecision:O8,InputType:v0,OutputFormat:G7,OutputTarget:j7,detectInputType:T6,detectOutputTarget:$9,loadInput:b6,generateOutput:f6,saveOutput:Y8,createOperation:G0,cleanupIds:J9,cleanupNumericValues:J$,cleanupListOfValues:X8,cleanupAttributes:L8,cleanupEnableBackground:k8,removeUnknownsAndDefaults:w8,removeNonInheritableGroupAttrs:R8,removeUselessDefs:B8,removeHiddenElements:K$,removeEmptyText:N8,removeEmptyContainers:Z$,removeDoctype:C8,removeXMLProcInst:I8,removeComments:Q$,removeMetadata:H$,removeTitle:P8,removeDesc:A8,removeEditorsNSData:K9,removeEmptyAttrs:E8,removeViewBox:b8,removeXMLNS:f8,removeRasterImages:S8,removeScriptElement:v8,convertToPlainSVG:T8,convertShapesToPath:D8,convertPathData:h8,convertTransform:y8,convertColors:z$,convertStyleToAttrs:Z9,convertEllipseToCircle:u8,collapseGroups:g8,mergePaths:x8,moveGroupAttrsToElems:m8,moveElemsAttrsToGroup:d8,minifyStyles:Q9,inlineStyles:p8,sortAttrs:c8,sortDefsChildren:l8,reusePaths:n8,removeOffCanvasPath:s8,removeStyleElement:o8,removeXlink:i8,addAttributesToSVGElement:r8,addClassesToSVGElement:a8,prefixIds:t8,removeDimensions:e8,removeAttributesBySelector:$J,removeAttrs:JJ,removeElementsByAttr:KJ,presetDefault:H9,presetNone:z9,applyPreset:ZJ,optimize:QJ,createConfig:HJ,flattenClipPaths:zJ,flattenMasks:qJ,flattenGradients:WJ,flattenPatterns:jJ,flattenFilters:GJ,flattenUseElements:FJ,imageToPath:_J,detectCollisions:UJ,measureDistance:VJ,validateXML:MJ,validateSVG:OJ,fixInvalidSVG:XJ,ValidationSeverity:R0,flattenAll:LJ,simplifyPath:kJ,decomposeTransform:NJ,optimizeAnimationTiming:wJ,optimizePaths:RJ,simplifyPaths:BJ,embedExternalDependencies:q9,exportEmbeddedResources:IJ,convertPathDataAdvanced:K8,parsePathCommands:n0,serializePathCommands:s0,formatPathNumber:f7,douglasPeucker:a6,visvalingamWhyatt:Z8,simplifyPolyline:Q8,simplifyPolylinePath:z8,isPurePolyline:H8,optimizeKeySplines:a9,optimizeKeyTimes:t9,optimizeAnimationValues:f$,formatSplineValue:r6,parseKeySplines:S$,serializeKeySplines:i9,isLinearSpline:v$,areAllSplinesLinear:SK,identifyStandardEasing:r9,STANDARD_EASINGS:o9,removeLeadingZero:h$,negativeExtraSpace:y$,convertToRelative:u$,convertToAbsolute:g$,lineShorthands:x$,convertToZ:m$,straightCurves:d$,collapseRepeated:p$,floatPrecision:c$,removeUselessCommands:l$,convertCubicToQuadratic:n$,convertQuadraticToSmooth:s$,convertCubicToSmooth:o$,arcShorthands:i$};var WZ="1.3.15",jZ={VERSION:WZ,...PJ},Pq=jZ;if(typeof window!=="undefined")window.SVGToolbox=jZ;})();
|
package/dist/svg-toolbox.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! svg-matrix v1.3.
|
|
1
|
+
/*! svg-matrix v1.3.15 | MIT License | https://github.com/Emasoft/svg-matrix */
|
|
2
2
|
var $Z=Object.create;var{getPrototypeOf:JZ,defineProperty:T6,getOwnPropertyNames:N8,getOwnPropertyDescriptor:KZ}=Object,C8=Object.prototype.hasOwnProperty;var Q6=($,J,Z)=>{Z=$!=null?$Z(JZ($)):{};let K=J||!$||!$.__esModule?T6(Z,"default",{value:$,enumerable:!0}):Z;for(let Q of N8($))if(!C8.call(K,Q))T6(K,Q,{get:()=>$[Q],enumerable:!0});return K},B8=new WeakMap,ZZ=($)=>{var J=B8.get($),Z;if(J)return J;if(J=T6({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")N8($).map((K)=>!C8.call(J,K)&&T6(J,K,{get:()=>$[K],enumerable:!(Z=KZ($,K))||Z.enumerable}));return B8.set($,J),J};var m$=($,J)=>{for(var Z in J)T6($,Z,{get:J[Z],enumerable:!0,configurable:!0,set:(K)=>J[Z]=()=>K})};var QZ=($,J)=>()=>($&&(J=$($=0)),J);var v7=(($)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy($,{get:(J,Z)=>(typeof require!=="undefined"?require:J)[Z]}):$)(function($){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+$+'" is not supported')});var I6={};m$(I6,{win32:()=>$8,toNamespacedPath:()=>Az,sep:()=>vz,resolve:()=>Bz,relative:()=>Pz,posix:()=>K6,parse:()=>Sz,normalize:()=>Nz,join:()=>Iz,isAbsolute:()=>Cz,format:()=>fz,extname:()=>bz,dirname:()=>Ez,delimiter:()=>Dz,default:()=>Rz,basename:()=>Tz});var _z,I5,Uz,Vz,Mz,Oz,Yz=($,J)=>()=>(J||$((J={exports:{}}).exports,J),J.exports),Xz=($,J,Z,K)=>{if(J&&typeof J=="object"||typeof J=="function")for(let Q of Vz(J))!Oz.call($,Q)&&Q!==Z&&I5($,Q,{get:()=>J[Q],enumerable:!(K=Uz(J,Q))||K.enumerable});return $},Lz=($,J,Z)=>(Z=$!=null?_z(Mz($)):{},Xz(J||!$||!$.__esModule?I5(Z,"default",{value:$,enumerable:!0}):Z,$)),kz,P5,d0,wz,C5=function($){return $},A5=function(){throw new Error("Not implemented")},K6,$8,Rz,Bz,Nz,Cz,Iz,Pz,Az,Ez,Tz,bz,fz,Sz,vz,Dz;var P6=QZ(()=>{_z=Object.create,I5=Object.defineProperty,Uz=Object.getOwnPropertyDescriptor,Vz=Object.getOwnPropertyNames,Mz=Object.getPrototypeOf,Oz=Object.prototype.hasOwnProperty,kz=Yz(($,J)=>{function Z(z){if(typeof z!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(z))}function K(z,q){for(var j="",W=0,G=-1,F=0,_,U=0;U<=z.length;++U){if(U<z.length)_=z.charCodeAt(U);else{if(_===47)break;_=47}if(_===47){if(!(G===U-1||F===1))if(G!==U-1&&F===2){if(j.length<2||W!==2||j.charCodeAt(j.length-1)!==46||j.charCodeAt(j.length-2)!==46){if(j.length>2){var M=j.lastIndexOf("/");if(M!==j.length-1){M===-1?(j="",W=0):(j=j.slice(0,M),W=j.length-1-j.lastIndexOf("/")),G=U,F=0;continue}}else if(j.length===2||j.length===1){j="",W=0,G=U,F=0;continue}}q&&(j.length>0?j+="/..":j="..",W=2)}else j.length>0?j+="/"+z.slice(G+1,U):j=z.slice(G+1,U),W=U-G-1;G=U,F=0}else _===46&&F!==-1?++F:F=-1}return j}function Q(z,q){var j=q.dir||q.root,W=q.base||(q.name||"")+(q.ext||"");return j?j===q.root?j+W:j+z+W:W}var H={resolve:function(){for(var z="",q=!1,j,W=arguments.length-1;W>=-1&&!q;W--){var G;W>=0?G=arguments[W]:(j===void 0&&(j=process.cwd()),G=j),Z(G),G.length!==0&&(z=G+"/"+z,q=G.charCodeAt(0)===47)}return z=K(z,!q),q?z.length>0?"/"+z:"/":z.length>0?z:"."},normalize:function(z){if(Z(z),z.length===0)return".";var q=z.charCodeAt(0)===47,j=z.charCodeAt(z.length-1)===47;return z=K(z,!q),z.length===0&&!q&&(z="."),z.length>0&&j&&(z+="/"),q?"/"+z:z},isAbsolute:function(z){return Z(z),z.length>0&&z.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var z,q=0;q<arguments.length;++q){var j=arguments[q];Z(j),j.length>0&&(z===void 0?z=j:z+="/"+j)}return z===void 0?".":H.normalize(z)},relative:function(z,q){if(Z(z),Z(q),z===q||(z=H.resolve(z),q=H.resolve(q),z===q))return"";for(var j=1;j<z.length&&z.charCodeAt(j)===47;++j);for(var W=z.length,G=W-j,F=1;F<q.length&&q.charCodeAt(F)===47;++F);for(var _=q.length,U=_-F,M=G<U?G:U,V=-1,Y=0;Y<=M;++Y){if(Y===M){if(U>M){if(q.charCodeAt(F+Y)===47)return q.slice(F+Y+1);if(Y===0)return q.slice(F+Y)}else G>M&&(z.charCodeAt(j+Y)===47?V=Y:Y===0&&(V=0));break}var O=z.charCodeAt(j+Y),X=q.charCodeAt(F+Y);if(O!==X)break;O===47&&(V=Y)}var w="";for(Y=j+V+1;Y<=W;++Y)(Y===W||z.charCodeAt(Y)===47)&&(w.length===0?w+="..":w+="/..");return w.length>0?w+q.slice(F+V):(F+=V,q.charCodeAt(F)===47&&++F,q.slice(F))},_makeLong:function(z){return z},dirname:function(z){if(Z(z),z.length===0)return".";for(var q=z.charCodeAt(0),j=q===47,W=-1,G=!0,F=z.length-1;F>=1;--F)if(q=z.charCodeAt(F),q===47){if(!G){W=F;break}}else G=!1;return W===-1?j?"/":".":j&&W===1?"//":z.slice(0,W)},basename:function(z,q){if(q!==void 0&&typeof q!="string")throw new TypeError('"ext" argument must be a string');Z(z);var j=0,W=-1,G=!0,F;if(q!==void 0&&q.length>0&&q.length<=z.length){if(q.length===z.length&&q===z)return"";var _=q.length-1,U=-1;for(F=z.length-1;F>=0;--F){var M=z.charCodeAt(F);if(M===47){if(!G){j=F+1;break}}else U===-1&&(G=!1,U=F+1),_>=0&&(M===q.charCodeAt(_)?--_===-1&&(W=F):(_=-1,W=U))}return j===W?W=U:W===-1&&(W=z.length),z.slice(j,W)}else{for(F=z.length-1;F>=0;--F)if(z.charCodeAt(F)===47){if(!G){j=F+1;break}}else W===-1&&(G=!1,W=F+1);return W===-1?"":z.slice(j,W)}},extname:function(z){Z(z);for(var q=-1,j=0,W=-1,G=!0,F=0,_=z.length-1;_>=0;--_){var U=z.charCodeAt(_);if(U===47){if(!G){j=_+1;break}continue}W===-1&&(G=!1,W=_+1),U===46?q===-1?q=_:F!==1&&(F=1):q!==-1&&(F=-1)}return q===-1||W===-1||F===0||F===1&&q===W-1&&q===j+1?"":z.slice(q,W)},format:function(z){if(z===null||typeof z!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof z);return Q("/",z)},parse:function(z){Z(z);var q={root:"",dir:"",base:"",ext:"",name:""};if(z.length===0)return q;var j=z.charCodeAt(0),W=j===47,G;W?(q.root="/",G=1):G=0;for(var F=-1,_=0,U=-1,M=!0,V=z.length-1,Y=0;V>=G;--V){if(j=z.charCodeAt(V),j===47){if(!M){_=V+1;break}continue}U===-1&&(M=!1,U=V+1),j===46?F===-1?F=V:Y!==1&&(Y=1):F!==-1&&(Y=-1)}return F===-1||U===-1||Y===0||Y===1&&F===U-1&&F===_+1?U!==-1&&(_===0&&W?q.base=q.name=z.slice(1,U):q.base=q.name=z.slice(_,U)):(_===0&&W?(q.name=z.slice(1,F),q.base=z.slice(1,U)):(q.name=z.slice(_,F),q.base=z.slice(_,U)),q.ext=z.slice(F,U)),_>0?q.dir=z.slice(0,_-1):W&&(q.dir="/"),q},sep:"/",delimiter:":",win32:null,posix:null};H.posix=H,J.exports=H}),P5=Lz(kz()),d0=P5,wz=P5;d0.parse??=A5;wz.parse??=A5;K6={resolve:d0.resolve.bind(d0),normalize:d0.normalize.bind(d0),isAbsolute:d0.isAbsolute.bind(d0),join:d0.join.bind(d0),relative:d0.relative.bind(d0),toNamespacedPath:C5,dirname:d0.dirname.bind(d0),basename:d0.basename.bind(d0),extname:d0.extname.bind(d0),format:d0.format.bind(d0),parse:d0.parse.bind(d0),sep:"/",delimiter:":",win32:void 0,posix:void 0,_makeLong:C5},$8={sep:"\\",delimiter:";",win32:void 0,...K6,posix:K6};K6.win32=$8.win32=$8;K6.posix=K6;Rz=K6,{resolve:Bz,normalize:Nz,isAbsolute:Cz,join:Iz,relative:Pz,toNamespacedPath:Az,dirname:Ez,basename:Tz,extname:bz,format:fz,parse:Sz,sep:vz,delimiter:Dz}=K6});var O8={};m$(O8,{validateXML:()=>gK,validateSVGAsync:()=>Wq,validateSVG:()=>xK,straightCurves:()=>n9,sortDefsChildren:()=>VK,sortAttrs:()=>UK,simplifyPaths:()=>oK,simplifyPath:()=>lK,saveOutput:()=>x5,reusePaths:()=>MK,removeXlink:()=>XK,removeXMLProcInst:()=>i5,removeXMLNS:()=>JK,removeViewBox:()=>$K,removeUselessDefs:()=>n5,removeUselessCommands:()=>i9,removeUnknownsAndDefaults:()=>c5,removeTitle:()=>r5,removeStyleElement:()=>YK,removeScriptElement:()=>ZK,removeRasterImages:()=>KK,removeOffCanvasPath:()=>OK,removeNonInheritableGroupAttrs:()=>l5,removeMetadata:()=>y$,removeLeadingZero:()=>x9,removeHiddenElements:()=>v$,removeEmptyText:()=>s5,removeEmptyContainers:()=>D$,removeEmptyAttrs:()=>t5,removeElementsByAttr:()=>CK,removeEditorsNSData:()=>j8,removeDoctype:()=>o5,removeDimensions:()=>RK,removeDesc:()=>a5,removeComments:()=>h$,removeAttrs:()=>NK,removeAttributesBySelector:()=>BK,printHierarchicalMatrix:()=>Jq,presetNone:()=>U8,presetDefault:()=>_8,prefixIds:()=>wK,optimizePaths:()=>sK,optimizeAnimationTiming:()=>nK,optimize:()=>PK,negativeExtraSpace:()=>m9,moveGroupAttrsToElems:()=>GK,moveElemsAttrsToGroup:()=>FK,minifyStyles:()=>F8,mergePaths:()=>jK,measureDistance:()=>uK,loadInput:()=>t6,lineShorthands:()=>c9,inlineStyles:()=>_K,imageToPath:()=>hK,generateOutput:()=>e6,generateFullCompatibilityMatrix:()=>$q,generateFlexibleSVGTable:()=>mK,generateCompatibilityMatrixSVG:()=>Kq,generateCompatibilityMatrixFlexible:()=>Zq,formatPrecision:()=>g5,floatPrecision:()=>o9,flattenUseElements:()=>DK,flattenPatterns:()=>SK,flattenMasks:()=>TK,flattenGradients:()=>bK,flattenFilters:()=>vK,flattenClipPaths:()=>EK,flattenAll:()=>cK,fixInvalidSVG:()=>dK,exportEmbeddedResources:()=>aK,escapeXml:()=>pz,embedExternalDependencies:()=>M8,detectOutputTarget:()=>q8,detectInputType:()=>a6,detectCollisions:()=>yK,default:()=>Nq,decomposeTransform:()=>iK,createOperation:()=>G0,createConfig:()=>AK,convertTransform:()=>zK,convertToZ:()=>l9,convertToRelative:()=>d9,convertToPlainSVG:()=>e5,convertToAbsolute:()=>p9,convertStyleToAttrs:()=>G8,convertShapesToPath:()=>QK,convertQuadraticToSmooth:()=>a9,convertPathData:()=>HK,convertEllipseToCircle:()=>qK,convertCubicToSmooth:()=>t9,convertCubicToQuadratic:()=>r9,convertColors:()=>u$,collapseRepeated:()=>s9,collapseGroups:()=>WK,cleanupNumericValues:()=>S$,cleanupListOfValues:()=>m5,cleanupIds:()=>W8,cleanupEnableBackground:()=>p5,cleanupAttributes:()=>d5,arcShorthands:()=>e9,applyPreset:()=>IK,analyzeCompatibilityMatrix:()=>ez,analyzeCompatibility:()=>oz,addClassesToSVGElement:()=>kK,addAttributesToSVGElement:()=>LK,ValidationSeverity:()=>B0,PRECISION_LEVELS:()=>u5,OutputTarget:()=>_7,OutputFormat:()=>U7,MAX_PRECISION:()=>r6,InputType:()=>h0,DEFAULT_PRECISION:()=>T$});/*!
|
|
3
3
|
* decimal.js v10.6.0
|
|
4
4
|
* An arbitrary-precision Decimal type for JavaScript.
|
|
@@ -490,4 +490,4 @@ ${z}
|
|
|
490
490
|
// ===== END EMBEDDED RESOURCES INTERCEPTOR =====
|
|
491
491
|
|
|
492
492
|
`}function Xq($){let J=new Map,Z=(Q,H)=>{if(!Q||!H)return;let z=Q.replace(/['"]/g,"").trim().split(",")[0].trim();if(!J.has(z))J.set(z,new Set);let q=J.get(z);for(let j of H)q.add(j)},K=(Q)=>{if(!Q)return;let z=(Q.getAttribute?.("style")||"").match(/font-family:\s*([^;]+)/i),q=z?z[1]:null,j=Q.getAttribute?.("font-family"),W=Q.getAttribute?.("face"),G=q||j||W,F="";if(Q.childNodes){for(let _ of Q.childNodes)if(_.nodeType===3)F+=_.nodeValue||""}if(G&&F.trim())Z(G,F);if(Q.tagName==="text"||Q.tagName==="tspan"){let _=G;if(!_&&Q.parentNode){let M=(Q.parentNode.getAttribute?.("style")||"").match(/font-family:\s*([^;]+)/i);_=M?M[1]:Q.parentNode.getAttribute?.("font-family")}if(_&&F.trim())Z(_,F)}if(Q.children)for(let _ of Q.children)K(_)};return K($),J}function Lq($){let J=[...$].sort().join("");return encodeURIComponent(J)}function kq($){return $&&($.includes("fonts.googleapis.com")||$.includes("fonts.gstatic.com"))}function wq($){try{let Z=new URL($).searchParams.get("family");if(Z)return Z.split(":")[0].replace(/\+/g," ")}catch(J){if(process.env.DEBUG)console.warn(`[svg-toolbox] ${J.message}`);let Z=$.match(/family=([^&:]+)/);if(Z)return Z[1].replace(/\+/g," ")}return null}function Rq($,J){if(!J)return $;try{let Z=new URL($);return Z.searchParams.set("text",decodeURIComponent(J)),Z.toString()}catch(Z){if(process.env.DEBUG)console.warn(`[svg-toolbox] ${Z.message}`);let K=$.includes("?")?"&":"?";return`${$}${K}text=${J}`}}var M8=G0(async($,J={})=>{let{basePath:Z="",embedImages:K=!0,embedExternalSVGs:Q=!0,externalSVGMode:H="extract",embedCSS:z=!0,embedFonts:q=!0,embedScripts:j=!0,embedAudio:W=!1,subsetFonts:G=!0,verbose:F=!1,recursive:_=!0,maxRecursionDepth:U=10,timeout:M=30000,onMissingResource:V="warn",onProgress:Y=null,idPrefix:O="ext_",_visitedURLs:X=null}=J,w=X||new Set,R=[],B=new Map,I=0,h=(y)=>{if(!y||!y.attributes)return;let T=["http://www.inkscape.org/namespaces/inkscape","http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd","http://ns.adobe.com/AdobeIllustrator/","http://ns.adobe.com/AdobeSVGViewerExtensions/","http://www.bohemiancoding.com/sketch/ns","http://www.figma.com/figma/ns","http://www.serif.com/","http://www.vecta.io/nano"],d=["http://www.w3.org/2000/svg","http://www.w3.org/1999/xlink","http://www.w3.org/XML/1998/namespace","http://www.w3.org/2000/xmlns/"],p=y.attributes;for(let c=0;c<p.length;c++){let C=p[c];if(C.name.startsWith("xmlns:")){let u=C.name.substring(6),N=C.value;if(T.some((e)=>N.startsWith(e))||!d.includes(N))B.set(u,N)}}},m=(y,T)=>{let d=`Failed to fetch resource: ${y} - ${T.message}`;if(V==="fail")throw new Error(d);else if(V==="warn")R.push(d),console.warn("embedExternalDependencies:",d);return null};if(K){let T=[...$.getElementsByTagName("image")];if(Y)Y("images",0,T.length);for(let d=0;d<T.length;d++){let p=T[d],c=p.getAttribute("href")||p.getAttribute("xlink:href");if(!c||!y5(c))continue;try{let C=m7(c,Z),{content:u,contentType:N}=await d7(C,"binary",M),e=i6(u,N.split(";")[0]);if(p.getAttribute("href"))p.setAttribute("href",e);if(p.getAttribute("xlink:href"))p.setAttribute("xlink:href",e)}catch(C){m(c,C)}if(Y)Y("images",d+1,T.length)}}if(Q){let T=[...$.getElementsByTagName("use")];if(Y)Y("externalSVGs",0,T.length);let d=$.querySelector("defs");if(!d){let p=$.documentElement||$;if(!p){if(R.push("Cannot add defs: document has no root SVG element"),Y)Y("externalSVGs",T.length,T.length)}else if(d=new R0("defs",{},[]),typeof p.insertBefore==="function"&&p.firstChild)p.insertBefore(d,p.firstChild);else if(typeof p.appendChild==="function")p.appendChild(d);else if(p.children&&Array.isArray(p.children))p.children.unshift(d),d.parentNode=p}if(d)for(let p=0;p<T.length;p++){let c=T[p],C=c.getAttribute("href")||c.getAttribute("xlink:href");if(!C||!y5(C))continue;let{path:u,fragment:N}=Uq(C);if(!u)continue;let e=m7(u,Z);if(w.has(e)){R.push(`Circular reference detected: ${e}`);continue}w.add(e);try{let{content:a}=await d7(e,"text",M),s=p0(a);if(!s){m(u,new Error("Failed to parse SVG"));continue}let H0=s.documentElement||s;if(h(H0),_&&U>0)await M8(s,{...J,basePath:e,maxRecursionDepth:U-1,_visitedURLs:w});I++;let S=`${O}${I}_`;if(H==="extract"&&N){let E=s.getElementById(N);if(E){let t=E.clone?E.clone():JSON.parse(JSON.stringify(E));H8(t,S),d.children.push(t);let $0=S+N;if(c.getAttribute("href"))c.setAttribute("href","#"+$0);if(c.getAttribute("xlink:href"))c.setAttribute("xlink:href","#"+$0)}else m(C,new Error(`Fragment #${N} not found in ${u}`))}else{let E=s.documentElement||s;H8(E,S);let t=S+"svg";E.setAttribute("id",t),d.children.push(E);let $0=N?"#"+S+N:"#"+t;if(c.getAttribute("href"))c.setAttribute("href",$0);if(c.getAttribute("xlink:href"))c.setAttribute("xlink:href",$0)}}catch(a){m(u,a)}if(Y)Y("externalSVGs",p+1,T.length)}}if(z||q){let T=[...$.getElementsByTagName("style")];if(Y)Y("stylesheets",0,T.length);let d=G?Xq($):null;for(let p=0;p<T.length;p++){let c=T[p],C=c.textContent||"";if(z){let{imports:u}=K8(C);for(let N of u.reverse())try{let e=N.url;if(d&&kq(e)){let E=wq(e);if(E&&d.has(E)){let t=Lq(d.get(E));if(e=Rq(e,t),F)console.log(`Font subsetting: ${E} -> ${d.get(E).size} chars`)}}let a=m7(e,Z),{content:s}=await d7(a,"text",M),H0=s,S=K8(s).imports;if(S.length>0)for(let E of S.reverse())try{let t=m7(E.url,a),$0=await d7(t,"text",M);H0=H0.substring(0,E.index)+$0.content+H0.substring(E.index+E.fullMatch.length)}catch(t){m(E.url,t)}C=C.substring(0,N.index)+H0+C.substring(N.index+N.fullMatch.length)}catch(e){m(N.url,e)}}if(z||q){let{urls:u}=K8(C);for(let N of u.reverse()){let e=f$(N.url),a=e.startsWith("font/")||e.includes("fontobject");if(a&&!q)continue;if(!a&&!z)continue;try{let s=m7(N.url,Z),{content:H0,contentType:S}=await d7(s,"binary",M),t=`url("${i6(H0,S.split(";")[0])}")`;C=C.substring(0,N.index)+t+C.substring(N.index+N.fullMatch.length)}catch(s){m(N.url,s)}}}if(c.textContent=C,Y)Y("stylesheets",p+1,T.length)}}if(j){let T=[...$.getElementsByTagName("script")];if(Y)Y("scripts",0,T.length);for(let d=0;d<T.length;d++){let p=T[d],c=p.getAttribute("src")||p.getAttribute("href")||p.getAttribute("xlink:href");if(!c)continue;if(c.startsWith("data:"))continue;try{let C=m7(c,Z),{content:u}=await d7(C,"text",M);p.removeAttribute("src"),p.removeAttribute("href"),p.removeAttribute("xlink:href"),rK(p,u,$)}catch(C){m(c,C)}if(Y)Y("scripts",d+1,T.length)}}if(W){let T=[...$.getElementsByTagName("audio")];if(Y)Y("audio",0,T.length);for(let d=0;d<T.length;d++){let p=T[d],c=p.getAttribute("src");if(c&&!c.startsWith("data:"))try{let u=m7(c,Z),{content:N,contentType:e}=await d7(u,"binary",M),a=e.split(";")[0]||"audio/mpeg",s=i6(N,a);p.setAttribute("src",s)}catch(u){m(c,u)}let C=p.getElementsByTagName("source");for(let u of C){let N=u.getAttribute("src");if(N&&!N.startsWith("data:"))try{let e=m7(N,Z),{content:a,contentType:s}=await d7(e,"binary",M),H0=s.split(";")[0]||u.getAttribute("type")||"audio/mpeg",S=i6(a,H0);u.setAttribute("src",S)}catch(e){m(N,e)}}if(Y)Y("audio",d+1,T.length)}}if(j){let y=[],T=$.getElementsByTagName("script");for(let C of T)if(C.textContent)y.push(C.textContent);let d=$.getElementsByTagName("style");for(let C of d)if(C.textContent)y.push(C.textContent);let p=$.getElementsByTagName("foreignObject");for(let C of p){let u=C.textContent||"";if(u)y.push(u)}let c=new Set;for(let C of y){let u=Oq(C);for(let N of u)c.add(N)}if(c.size>0){let C=new Map;if(Y)Y("resources",0,c.size);let u=0;for(let N of c){try{let e=m7(N,Z),{content:a,contentType:s}=await d7(e,"binary",M),H0=s.split(";")[0]||f$(N),S=i6(a,H0);if(C.set(N,S),F){let E=(a.length/1024).toFixed(1);console.log(`Embedded resource: ${N} (${E} KB)`)}}catch(e){m(N,e)}if(u++,Y)Y("resources",u,c.size)}if(C.size>0){let N=Yq(C),e=T[0];if(e){let a=e.textContent||"";if(N.includes("<")||N.includes("&")||a.includes("<")||a.includes("&"))e.setAttribute("data-cdata-pending","true");e.textContent=N+a}else{let a=$.createElement("script");a.setAttribute("type","text/javascript"),a.setAttribute("data-cdata-pending","true"),a.textContent=N;let s=$.documentElement||$;if(s.firstChild)s.insertBefore(a,s.firstChild);else s.appendChild(a)}if(F)console.log(`Injected resource interceptor for ${C.size} embedded resources`)}}}let v=$.documentElement||$;if(!v.getAttribute("xmlns"))v.setAttribute("xmlns","http://www.w3.org/2000/svg");if(N7($).includes("xlink:")&&!v.getAttribute("xmlns:xlink"))v.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink");for(let[y,T]of B){let d=`xmlns:${y}`;if(!v.getAttribute(d))v.setAttribute(d,T)}if(R.length>0)$._embedWarnings=R;return $}),Bq={"image/png":".png","image/jpeg":".jpg","image/gif":".gif","image/webp":".webp","image/svg+xml":".svg","image/bmp":".bmp","image/x-icon":".ico","image/tiff":".tiff","audio/mpeg":".mp3","audio/wav":".wav","audio/ogg":".ogg","audio/webm":".webm","audio/aac":".aac","audio/flac":".flac","video/mp4":".mp4","video/webm":".webm","video/ogg":".ogv","video/quicktime":".mov","application/javascript":".js","text/javascript":".js","text/css":".css","font/woff":".woff","font/woff2":".woff2","font/ttf":".ttf","font/otf":".otf","application/font-woff":".woff","application/font-woff2":".woff2","application/x-font-ttf":".ttf","application/x-font-opentype":".otf"};function G6($){if(!$||!$.startsWith("data:"))return null;let J=$.match(/^data:([^;,]+)?(?:;([^,]+))?,(.*)$/);if(!J)return null;let Z=J[1]||"application/octet-stream",K=J[2]||"",Q=J[3]||"";return{mimeType:Z,encoding:K,data:Q}}function F6($){if($.encoding==="base64")return Buffer.from($.data,"base64");try{return decodeURIComponent($.data)}catch(J){if(process.env.DEBUG)console.warn(`[svg-toolbox] ${J.message}`);return $.data}}function Z6($,J,Z,K=null){let Q=Bq[J]||".bin";if(K){let z=K.replace(/[^a-zA-Z0-9._-]/g,"_");return`${$}_${z}`}let H="resource";if(J.startsWith("image/"))H="image";else if(J.startsWith("audio/"))H="audio";else if(J.startsWith("video/"))H="video";else if(J.startsWith("font/")||J.includes("font"))H="font";else if(J.includes("javascript"))H="script";else if(J.includes("css"))H="style";return`${$}_${H}_${String(Z).padStart(3,"0")}${Q}`}async function aK($,J={}){let Z=a6($),K=await t6($,Z),Q=J.outputFormat||(Z===h0.DOM_ELEMENT?U7.DOM_ELEMENT:U7.SVG_STRING),{outputDir:H=null,filenamePrefix:z="resource",extractImages:q=!0,extractFonts:j=!0,extractScripts:W=!0,extractStyles:G=!0,extractAudio:F=!0,extractVideo:_=!0,elementIds:U=null,restoreGoogleFonts:M=!0,dryRun:V=!1,extractOnly:Y=!1,onProgress:O=null}=J,X=[],w=[],R=0,B=U?new Set(Array.isArray(U)?U:[U]):null,I=(v)=>{if(!B)return!0;let x=v;while(x&&x.getAttribute){let y=x.getAttribute("id");if(y&&B.has(y))return!0;x=x.parentNode}return!1},h=async(v,x,y)=>{let T=0;if(typeof Buffer!=="undefined"&&Buffer.isBuffer(x))T=x.length;else if(typeof Buffer!=="undefined")T=Buffer.byteLength(x,"utf8");else if(typeof Blob!=="undefined")T=new Blob([x]).size;else T=x.length||0;let d={filename:v,path:H?`${H}/${v}`:v,mimeType:y,size:T};if(!V&&H)try{let p=await import("node:fs/promises"),c=await Promise.resolve().then(() => (P6(),I6));await p.mkdir(H,{recursive:!0});let C=c.join(H,v);if(typeof Buffer!=="undefined"&&Buffer.isBuffer(x))await p.writeFile(C,x);else await p.writeFile(C,x,"utf8");d.path=C,X.push(d)}catch(p){w.push(`Failed to save ${v}: ${p.message}`),d.error=p.message}else X.push(d);return d};if(q){let x=[...K.getElementsByTagName("image")];if(O)O("images",0,x.length);for(let y=0;y<x.length;y++){let T=x[y];if(!I(T))continue;let d=T.getAttribute("href")||T.getAttribute("xlink:href");if(!d||!d.startsWith("data:"))continue;let p=G6(d);if(!p)continue;if(!p.mimeType.startsWith("image/"))continue;R++;let c=Z6(z,p.mimeType,R),C=F6(p),u=await h(c,C,p.mimeType);if(u.type="image",u.elementId=T.getAttribute("id"),!Y){let N=`./${c}`;if(T.getAttribute("href"))T.setAttribute("href",N);if(T.getAttribute("xlink:href"))T.setAttribute("xlink:href",N)}if(O)O("images",y+1,x.length)}}if(F){let x=[...K.getElementsByTagName("audio")];if(O)O("audio",0,x.length);for(let y=0;y<x.length;y++){let T=x[y];if(!I(T))continue;let d=T.getAttribute("src");if(d&&d.startsWith("data:")){let c=G6(d);if(c&&c.mimeType.startsWith("audio/")){R++;let C=Z6(z,c.mimeType,R),u=F6(c),N=await h(C,u,c.mimeType);if(N.type="audio",N.elementId=T.getAttribute("id"),!Y)T.setAttribute("src",`./${C}`)}}let p=T.getElementsByTagName("source");for(let c of p){let C=c.getAttribute("src");if(C&&C.startsWith("data:")){let u=G6(C);if(u&&u.mimeType.startsWith("audio/")){R++;let N=Z6(z,u.mimeType,R),e=F6(u),a=await h(N,e,u.mimeType);if(a.type="audio",!Y)c.setAttribute("src",`./${N}`)}}}if(O)O("audio",y+1,x.length)}}if(_){let x=[...K.getElementsByTagName("video")];if(O)O("video",0,x.length);for(let y=0;y<x.length;y++){let T=x[y];if(!I(T))continue;let d=T.getAttribute("src");if(d&&d.startsWith("data:")){let c=G6(d);if(c&&c.mimeType.startsWith("video/")){R++;let C=Z6(z,c.mimeType,R),u=F6(c),N=await h(C,u,c.mimeType);if(N.type="video",N.elementId=T.getAttribute("id"),!Y)T.setAttribute("src",`./${C}`)}}let p=T.getElementsByTagName("source");for(let c of p){let C=c.getAttribute("src");if(C&&C.startsWith("data:")){let u=G6(C);if(u&&u.mimeType.startsWith("video/")){R++;let N=Z6(z,u.mimeType,R),e=F6(u),a=await h(N,e,u.mimeType);if(a.type="video",!Y)c.setAttribute("src",`./${N}`)}}}if(O)O("video",y+1,x.length)}}if(W){let x=[...K.getElementsByTagName("script")];if(O)O("scripts",0,x.length);for(let y=0;y<x.length;y++){let T=x[y];if(!I(T))continue;let d=T.getAttribute("href")||T.getAttribute("xlink:href");if(d&&!d.startsWith("data:"))continue;let p="";if(d&&d.startsWith("data:")){let u=G6(d);if(u){let N=F6(u);p=typeof N==="string"?N:N.toString("utf8")}}else if(p=T.textContent||"",T.firstChild&&T.firstChild.nodeType===4)p=T.firstChild.nodeValue||"";if(!p.trim())continue;R++;let c=Z6(z,"application/javascript",R),C=await h(c,p,"application/javascript");if(C.type="script",C.elementId=T.getAttribute("id"),!Y){let u=0;while(T.firstChild&&u++<1e4){let N=T.firstChild;if(T.removeChild(N),T.firstChild===N)break}if(u>=1e4)console.error("Safety limit reached removing script children: 10000 iterations");T.setAttribute("href",`./${c}`)}if(O)O("scripts",y+1,x.length)}}if(G||j){let x=[...K.getElementsByTagName("style")];if(O)O("styles",0,x.length);for(let y=0;y<x.length;y++){let T=x[y];if(!I(T))continue;let d=T.textContent||"";if(T.firstChild&&T.firstChild.nodeType===4)d=T.firstChild.nodeValue||"";if(!d.trim())continue;let p=!1;if(j){let c=/@font-face\s*\{[^}]*\}/gi,C=d.match(c)||[];for(let u of C){let N=u.match(/src:\s*url\(["']?(data:[^"')]+)["']?\)/);if(N){let e=N[1],a=G6(e);if(a){R++;let s=Z6(z,a.mimeType,R),H0=F6(a),S=await h(s,H0,a.mimeType);S.type="font";let E=u.match(/font-family:\s*["']?([^"';]+)["']?/);if(E)S.fontFamily=E[1].trim();if(!Y)d=d.replace(e,`./${s}`),p=!0}}}if(M){let u=[],N=/font-family:\s*["']?([^"';,]+)/gi,e;while((e=N.exec(d))!==null){let a=e[1].trim();if(["Roboto","Open Sans","Lato","Montserrat","Oswald","Raleway","Poppins","Source Sans Pro","Ubuntu","Playfair Display","Merriweather","Nunito","PT Sans","Rubik","Work Sans","DM Serif Display","Monofett","Dokdo","Orbitron","Notable","Fira Mono","Fira Code","Inter","Noto Sans","Noto Serif"].some((H0)=>a.toLowerCase().includes(H0.toLowerCase())))u.push(a)}if(u.length>0&&!Y){let a=[...new Set(u)],s=`@import url('https://fonts.googleapis.com/css2?family=${a.map((H0)=>H0.replace(/\s+/g,"+")).join("&family=")}&display=swap');
|
|
493
|
-
`;if(!d.includes("fonts.googleapis.com"))d=s+d,p=!0,w.push(`Restored Google Fonts import for: ${a.join(", ")}`)}}}if(G&&d.trim()){R++;let c=Z6(z,"text/css",R),C=await h(c,d,"text/css");if(C.type="stylesheet",C.elementId=T.getAttribute("id"),!Y){let u=0;while(T.firstChild&&u++<1e4){let N=T.firstChild;if(T.removeChild(N),T.firstChild===N)break}if(u>=1e4)console.error("Safety limit reached removing style children: 10000 iterations");T.textContent=`@import url('./${c}');`,p=!0}}else if(p&&!Y){let c=0;while(T.firstChild&&c++<1e4){let C=T.firstChild;if(T.removeChild(C),T.firstChild===C)break}if(c>=1e4)console.error("Safety limit reached updating style children: 10000 iterations");rK(T,d,K)}if(O)O("styles",y+1,x.length)}}if(!Y){if(K._exportedResources=X,w.length>0)K._exportWarnings=w}return{doc:Y?null:e6(K,Q,J),extractedFiles:X,warnings:w,summary:{totalExtracted:X.length,images:X.filter((v)=>v.type==="image").length,audio:X.filter((v)=>v.type==="audio").length,video:X.filter((v)=>v.type==="video").length,scripts:X.filter((v)=>v.type==="script").length,fonts:X.filter((v)=>v.type==="font").length,stylesheets:X.filter((v)=>v.type==="stylesheet").length,totalSize:X.reduce((v,x)=>v+x.size,0)}}}var Nq={MAX_PRECISION:r6,DEFAULT_PRECISION:T$,PRECISION_LEVELS:u5,formatPrecision:g5,InputType:h0,OutputFormat:U7,OutputTarget:_7,detectInputType:a6,detectOutputTarget:q8,loadInput:t6,generateOutput:e6,saveOutput:x5,createOperation:G0,cleanupIds:W8,cleanupNumericValues:S$,cleanupListOfValues:m5,cleanupAttributes:d5,cleanupEnableBackground:p5,removeUnknownsAndDefaults:c5,removeNonInheritableGroupAttrs:l5,removeUselessDefs:n5,removeHiddenElements:v$,removeEmptyText:s5,removeEmptyContainers:D$,removeDoctype:o5,removeXMLProcInst:i5,removeComments:h$,removeMetadata:y$,removeTitle:r5,removeDesc:a5,removeEditorsNSData:j8,removeEmptyAttrs:t5,removeViewBox:$K,removeXMLNS:JK,removeRasterImages:KK,removeScriptElement:ZK,convertToPlainSVG:e5,convertShapesToPath:QK,convertPathData:HK,convertTransform:zK,convertColors:u$,convertStyleToAttrs:G8,convertEllipseToCircle:qK,collapseGroups:WK,mergePaths:jK,moveGroupAttrsToElems:GK,moveElemsAttrsToGroup:FK,minifyStyles:F8,inlineStyles:_K,sortAttrs:UK,sortDefsChildren:VK,reusePaths:MK,removeOffCanvasPath:OK,removeStyleElement:YK,removeXlink:XK,addAttributesToSVGElement:LK,addClassesToSVGElement:kK,prefixIds:wK,removeDimensions:RK,removeAttributesBySelector:BK,removeAttrs:NK,removeElementsByAttr:CK,presetDefault:_8,presetNone:U8,applyPreset:IK,optimize:PK,createConfig:AK,flattenClipPaths:EK,flattenMasks:TK,flattenGradients:bK,flattenPatterns:SK,flattenFilters:vK,flattenUseElements:DK,imageToPath:hK,detectCollisions:yK,measureDistance:uK,validateXML:gK,validateSVG:xK,fixInvalidSVG:dK,ValidationSeverity:B0,flattenAll:cK,simplifyPath:lK,decomposeTransform:iK,optimizeAnimationTiming:nK,optimizePaths:sK,simplifyPaths:oK,embedExternalDependencies:M8,exportEmbeddedResources:aK,convertPathDataAdvanced:v9,parsePathCommands:n0,serializePathCommands:s0,formatPathNumber:f7,douglasPeucker:s6,visvalingamWhyatt:D9,simplifyPolyline:h9,simplifyPolylinePath:u9,isPurePolyline:y9,optimizeKeySplines:E9,optimizeKeyTimes:T9,optimizeAnimationValues:N$,formatSplineValue:n6,parseKeySplines:C$,serializeKeySplines:P9,isLinearSpline:I$,areAllSplinesLinear:k5,identifyStandardEasing:A9,STANDARD_EASINGS:I9,removeLeadingZero:x9,negativeExtraSpace:m9,convertToRelative:d9,convertToAbsolute:p9,lineShorthands:c9,convertToZ:l9,straightCurves:n9,collapseRepeated:s9,floatPrecision:o9,removeUselessCommands:i9,convertCubicToQuadratic:r9,convertQuadraticToSmooth:a9,convertCubicToSmooth:t9,arcShorthands:e9};var Cq="1.3.
|
|
493
|
+
`;if(!d.includes("fonts.googleapis.com"))d=s+d,p=!0,w.push(`Restored Google Fonts import for: ${a.join(", ")}`)}}}if(G&&d.trim()){R++;let c=Z6(z,"text/css",R),C=await h(c,d,"text/css");if(C.type="stylesheet",C.elementId=T.getAttribute("id"),!Y){let u=0;while(T.firstChild&&u++<1e4){let N=T.firstChild;if(T.removeChild(N),T.firstChild===N)break}if(u>=1e4)console.error("Safety limit reached removing style children: 10000 iterations");T.textContent=`@import url('./${c}');`,p=!0}}else if(p&&!Y){let c=0;while(T.firstChild&&c++<1e4){let C=T.firstChild;if(T.removeChild(C),T.firstChild===C)break}if(c>=1e4)console.error("Safety limit reached updating style children: 10000 iterations");rK(T,d,K)}if(O)O("styles",y+1,x.length)}}if(!Y){if(K._exportedResources=X,w.length>0)K._exportWarnings=w}return{doc:Y?null:e6(K,Q,J),extractedFiles:X,warnings:w,summary:{totalExtracted:X.length,images:X.filter((v)=>v.type==="image").length,audio:X.filter((v)=>v.type==="audio").length,video:X.filter((v)=>v.type==="video").length,scripts:X.filter((v)=>v.type==="script").length,fonts:X.filter((v)=>v.type==="font").length,stylesheets:X.filter((v)=>v.type==="stylesheet").length,totalSize:X.reduce((v,x)=>v+x.size,0)}}}var Nq={MAX_PRECISION:r6,DEFAULT_PRECISION:T$,PRECISION_LEVELS:u5,formatPrecision:g5,InputType:h0,OutputFormat:U7,OutputTarget:_7,detectInputType:a6,detectOutputTarget:q8,loadInput:t6,generateOutput:e6,saveOutput:x5,createOperation:G0,cleanupIds:W8,cleanupNumericValues:S$,cleanupListOfValues:m5,cleanupAttributes:d5,cleanupEnableBackground:p5,removeUnknownsAndDefaults:c5,removeNonInheritableGroupAttrs:l5,removeUselessDefs:n5,removeHiddenElements:v$,removeEmptyText:s5,removeEmptyContainers:D$,removeDoctype:o5,removeXMLProcInst:i5,removeComments:h$,removeMetadata:y$,removeTitle:r5,removeDesc:a5,removeEditorsNSData:j8,removeEmptyAttrs:t5,removeViewBox:$K,removeXMLNS:JK,removeRasterImages:KK,removeScriptElement:ZK,convertToPlainSVG:e5,convertShapesToPath:QK,convertPathData:HK,convertTransform:zK,convertColors:u$,convertStyleToAttrs:G8,convertEllipseToCircle:qK,collapseGroups:WK,mergePaths:jK,moveGroupAttrsToElems:GK,moveElemsAttrsToGroup:FK,minifyStyles:F8,inlineStyles:_K,sortAttrs:UK,sortDefsChildren:VK,reusePaths:MK,removeOffCanvasPath:OK,removeStyleElement:YK,removeXlink:XK,addAttributesToSVGElement:LK,addClassesToSVGElement:kK,prefixIds:wK,removeDimensions:RK,removeAttributesBySelector:BK,removeAttrs:NK,removeElementsByAttr:CK,presetDefault:_8,presetNone:U8,applyPreset:IK,optimize:PK,createConfig:AK,flattenClipPaths:EK,flattenMasks:TK,flattenGradients:bK,flattenPatterns:SK,flattenFilters:vK,flattenUseElements:DK,imageToPath:hK,detectCollisions:yK,measureDistance:uK,validateXML:gK,validateSVG:xK,fixInvalidSVG:dK,ValidationSeverity:B0,flattenAll:cK,simplifyPath:lK,decomposeTransform:iK,optimizeAnimationTiming:nK,optimizePaths:sK,simplifyPaths:oK,embedExternalDependencies:M8,exportEmbeddedResources:aK,convertPathDataAdvanced:v9,parsePathCommands:n0,serializePathCommands:s0,formatPathNumber:f7,douglasPeucker:s6,visvalingamWhyatt:D9,simplifyPolyline:h9,simplifyPolylinePath:u9,isPurePolyline:y9,optimizeKeySplines:E9,optimizeKeyTimes:T9,optimizeAnimationValues:N$,formatSplineValue:n6,parseKeySplines:C$,serializeKeySplines:P9,isLinearSpline:I$,areAllSplinesLinear:k5,identifyStandardEasing:A9,STANDARD_EASINGS:I9,removeLeadingZero:x9,negativeExtraSpace:m9,convertToRelative:d9,convertToAbsolute:p9,lineShorthands:c9,convertToZ:l9,straightCurves:n9,collapseRepeated:s9,floatPrecision:o9,removeUselessCommands:i9,convertCubicToQuadratic:r9,convertQuadraticToSmooth:a9,convertCubicToSmooth:t9,arcShorthands:e9};var Cq="1.3.15",tK={VERSION:Cq,...O8},F4=tK;if(typeof window!=="undefined")window.SVGToolbox=tK;export{gK as validateXML,Wq as validateSVGAsync,xK as validateSVG,n9 as straightCurves,VK as sortDefsChildren,UK as sortAttrs,oK as simplifyPaths,lK as simplifyPath,x5 as saveOutput,MK as reusePaths,XK as removeXlink,i5 as removeXMLProcInst,JK as removeXMLNS,$K as removeViewBox,n5 as removeUselessDefs,i9 as removeUselessCommands,c5 as removeUnknownsAndDefaults,r5 as removeTitle,YK as removeStyleElement,ZK as removeScriptElement,KK as removeRasterImages,OK as removeOffCanvasPath,l5 as removeNonInheritableGroupAttrs,y$ as removeMetadata,x9 as removeLeadingZero,v$ as removeHiddenElements,s5 as removeEmptyText,D$ as removeEmptyContainers,t5 as removeEmptyAttrs,CK as removeElementsByAttr,j8 as removeEditorsNSData,o5 as removeDoctype,RK as removeDimensions,a5 as removeDesc,h$ as removeComments,NK as removeAttrs,BK as removeAttributesBySelector,Jq as printHierarchicalMatrix,U8 as presetNone,_8 as presetDefault,wK as prefixIds,sK as optimizePaths,nK as optimizeAnimationTiming,PK as optimize,m9 as negativeExtraSpace,GK as moveGroupAttrsToElems,FK as moveElemsAttrsToGroup,F8 as minifyStyles,jK as mergePaths,uK as measureDistance,t6 as loadInput,c9 as lineShorthands,_K as inlineStyles,hK as imageToPath,e6 as generateOutput,$q as generateFullCompatibilityMatrix,mK as generateFlexibleSVGTable,Kq as generateCompatibilityMatrixSVG,Zq as generateCompatibilityMatrixFlexible,g5 as formatPrecision,o9 as floatPrecision,DK as flattenUseElements,SK as flattenPatterns,TK as flattenMasks,bK as flattenGradients,vK as flattenFilters,EK as flattenClipPaths,cK as flattenAll,dK as fixInvalidSVG,aK as exportEmbeddedResources,pz as escapeXml,M8 as embedExternalDependencies,q8 as detectOutputTarget,a6 as detectInputType,yK as detectCollisions,F4 as default,iK as decomposeTransform,G0 as createOperation,AK as createConfig,zK as convertTransform,l9 as convertToZ,d9 as convertToRelative,e5 as convertToPlainSVG,p9 as convertToAbsolute,G8 as convertStyleToAttrs,QK as convertShapesToPath,a9 as convertQuadraticToSmooth,HK as convertPathData,qK as convertEllipseToCircle,t9 as convertCubicToSmooth,r9 as convertCubicToQuadratic,u$ as convertColors,s9 as collapseRepeated,WK as collapseGroups,S$ as cleanupNumericValues,m5 as cleanupListOfValues,W8 as cleanupIds,p5 as cleanupEnableBackground,d5 as cleanupAttributes,e9 as arcShorthands,IK as applyPreset,ez as analyzeCompatibilityMatrix,oz as analyzeCompatibility,kK as addClassesToSVGElement,LK as addAttributesToSVGElement,B0 as ValidationSeverity,Cq as VERSION,u5 as PRECISION_LEVELS,_7 as OutputTarget,U7 as OutputFormat,r6 as MAX_PRECISION,h0 as InputType,T$ as DEFAULT_PRECISION};
|
package/dist/svgm.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! svg-matrix v1.3.
|
|
1
|
+
/*! svg-matrix v1.3.15 | MIT License | https://github.com/Emasoft/svg-matrix */
|
|
2
2
|
var mQ=Object.create;var{getPrototypeOf:dQ,defineProperty:g$,getOwnPropertyNames:$8,getOwnPropertyDescriptor:pQ}=Object,J8=Object.prototype.hasOwnProperty;var t7=($,J,Z)=>{Z=$!=null?mQ(dQ($)):{};let Q=J||!$||!$.__esModule?g$(Z,"default",{value:$,enumerable:!0}):Z;for(let K of $8($))if(!J8.call(Q,K))g$(Q,K,{get:()=>$[K],enumerable:!0});return Q},eJ=new WeakMap,cQ=($)=>{var J=eJ.get($),Z;if(J)return J;if(J=g$({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")$8($).map((Q)=>!J8.call(J,Q)&&g$(J,Q,{get:()=>$[Q],enumerable:!(Z=pQ($,Q))||Z.enumerable}));return eJ.set($,J),J};var d7=($,J)=>{for(var Z in J)g$($,Z,{get:J[Z],enumerable:!0,configurable:!0,set:(Q)=>J[Z]=()=>Q})};var Z8=($,J)=>()=>($&&(J=$($=0)),J);var T7=(($)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy($,{get:(J,Z)=>(typeof require!=="undefined"?require:J)[Z]}):$)(function($){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+$+'" is not supported')});var Y$={};d7(Y$,{win32:()=>MJ,toNamespacedPath:()=>TW,sep:()=>hW,resolve:()=>CW,relative:()=>EW,posix:()=>j$,parse:()=>DW,normalize:()=>IW,join:()=>AW,isAbsolute:()=>PW,format:()=>vW,extname:()=>SW,dirname:()=>bW,delimiter:()=>yW,default:()=>NW,basename:()=>fW});var VW,ZZ,OW,YW,MW,XW,kW=($,J)=>()=>(J||$((J={exports:{}}).exports,J),J.exports),LW=($,J,Z,Q)=>{if(J&&typeof J=="object"||typeof J=="function")for(let K of YW(J))!XW.call($,K)&&K!==Z&&ZZ($,K,{get:()=>J[K],enumerable:!(Q=OW(J,K))||Q.enumerable});return $},wW=($,J,Z)=>(Z=$!=null?VW(MW($)):{},LW(J||!$||!$.__esModule?ZZ(Z,"default",{value:$,enumerable:!0}):Z,$)),RW,QZ,c0,BW,JZ=function($){return $},KZ=function(){throw new Error("Not implemented")},j$,MJ,NW,CW,IW,PW,AW,EW,TW,bW,fW,SW,vW,DW,hW,yW;var M$=Z8(()=>{VW=Object.create,ZZ=Object.defineProperty,OW=Object.getOwnPropertyDescriptor,YW=Object.getOwnPropertyNames,MW=Object.getPrototypeOf,XW=Object.prototype.hasOwnProperty,RW=kW(($,J)=>{function Z(H){if(typeof H!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(H))}function Q(H,W){for(var j="",z=0,G=-1,F=0,_,U=0;U<=H.length;++U){if(U<H.length)_=H.charCodeAt(U);else{if(_===47)break;_=47}if(_===47){if(!(G===U-1||F===1))if(G!==U-1&&F===2){if(j.length<2||z!==2||j.charCodeAt(j.length-1)!==46||j.charCodeAt(j.length-2)!==46){if(j.length>2){var Y=j.lastIndexOf("/");if(Y!==j.length-1){Y===-1?(j="",z=0):(j=j.slice(0,Y),z=j.length-1-j.lastIndexOf("/")),G=U,F=0;continue}}else if(j.length===2||j.length===1){j="",z=0,G=U,F=0;continue}}W&&(j.length>0?j+="/..":j="..",z=2)}else j.length>0?j+="/"+H.slice(G+1,U):j=H.slice(G+1,U),z=U-G-1;G=U,F=0}else _===46&&F!==-1?++F:F=-1}return j}function K(H,W){var j=W.dir||W.root,z=W.base||(W.name||"")+(W.ext||"");return j?j===W.root?j+z:j+H+z:z}var q={resolve:function(){for(var H="",W=!1,j,z=arguments.length-1;z>=-1&&!W;z--){var G;z>=0?G=arguments[z]:(j===void 0&&(j=process.cwd()),G=j),Z(G),G.length!==0&&(H=G+"/"+H,W=G.charCodeAt(0)===47)}return H=Q(H,!W),W?H.length>0?"/"+H:"/":H.length>0?H:"."},normalize:function(H){if(Z(H),H.length===0)return".";var W=H.charCodeAt(0)===47,j=H.charCodeAt(H.length-1)===47;return H=Q(H,!W),H.length===0&&!W&&(H="."),H.length>0&&j&&(H+="/"),W?"/"+H:H},isAbsolute:function(H){return Z(H),H.length>0&&H.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var H,W=0;W<arguments.length;++W){var j=arguments[W];Z(j),j.length>0&&(H===void 0?H=j:H+="/"+j)}return H===void 0?".":q.normalize(H)},relative:function(H,W){if(Z(H),Z(W),H===W||(H=q.resolve(H),W=q.resolve(W),H===W))return"";for(var j=1;j<H.length&&H.charCodeAt(j)===47;++j);for(var z=H.length,G=z-j,F=1;F<W.length&&W.charCodeAt(F)===47;++F);for(var _=W.length,U=_-F,Y=G<U?G:U,V=-1,M=0;M<=Y;++M){if(M===Y){if(U>Y){if(W.charCodeAt(F+M)===47)return W.slice(F+M+1);if(M===0)return W.slice(F+M)}else G>Y&&(H.charCodeAt(j+M)===47?V=M:M===0&&(V=0));break}var X=H.charCodeAt(j+M),k=W.charCodeAt(F+M);if(X!==k)break;X===47&&(V=M)}var L="";for(M=j+V+1;M<=z;++M)(M===z||H.charCodeAt(M)===47)&&(L.length===0?L+="..":L+="/..");return L.length>0?L+W.slice(F+V):(F+=V,W.charCodeAt(F)===47&&++F,W.slice(F))},_makeLong:function(H){return H},dirname:function(H){if(Z(H),H.length===0)return".";for(var W=H.charCodeAt(0),j=W===47,z=-1,G=!0,F=H.length-1;F>=1;--F)if(W=H.charCodeAt(F),W===47){if(!G){z=F;break}}else G=!1;return z===-1?j?"/":".":j&&z===1?"//":H.slice(0,z)},basename:function(H,W){if(W!==void 0&&typeof W!="string")throw new TypeError('"ext" argument must be a string');Z(H);var j=0,z=-1,G=!0,F;if(W!==void 0&&W.length>0&&W.length<=H.length){if(W.length===H.length&&W===H)return"";var _=W.length-1,U=-1;for(F=H.length-1;F>=0;--F){var Y=H.charCodeAt(F);if(Y===47){if(!G){j=F+1;break}}else U===-1&&(G=!1,U=F+1),_>=0&&(Y===W.charCodeAt(_)?--_===-1&&(z=F):(_=-1,z=U))}return j===z?z=U:z===-1&&(z=H.length),H.slice(j,z)}else{for(F=H.length-1;F>=0;--F)if(H.charCodeAt(F)===47){if(!G){j=F+1;break}}else z===-1&&(G=!1,z=F+1);return z===-1?"":H.slice(j,z)}},extname:function(H){Z(H);for(var W=-1,j=0,z=-1,G=!0,F=0,_=H.length-1;_>=0;--_){var U=H.charCodeAt(_);if(U===47){if(!G){j=_+1;break}continue}z===-1&&(G=!1,z=_+1),U===46?W===-1?W=_:F!==1&&(F=1):W!==-1&&(F=-1)}return W===-1||z===-1||F===0||F===1&&W===z-1&&W===j+1?"":H.slice(W,z)},format:function(H){if(H===null||typeof H!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof H);return K("/",H)},parse:function(H){Z(H);var W={root:"",dir:"",base:"",ext:"",name:""};if(H.length===0)return W;var j=H.charCodeAt(0),z=j===47,G;z?(W.root="/",G=1):G=0;for(var F=-1,_=0,U=-1,Y=!0,V=H.length-1,M=0;V>=G;--V){if(j=H.charCodeAt(V),j===47){if(!Y){_=V+1;break}continue}U===-1&&(Y=!1,U=V+1),j===46?F===-1?F=V:M!==1&&(M=1):F!==-1&&(M=-1)}return F===-1||U===-1||M===0||M===1&&F===U-1&&F===_+1?U!==-1&&(_===0&&z?W.base=W.name=H.slice(1,U):W.base=W.name=H.slice(_,U)):(_===0&&z?(W.name=H.slice(1,F),W.base=H.slice(1,U)):(W.name=H.slice(_,F),W.base=H.slice(_,U)),W.ext=H.slice(F,U)),_>0?W.dir=H.slice(0,_-1):z&&(W.dir="/"),W},sep:"/",delimiter:":",win32:null,posix:null};q.posix=q,J.exports=q}),QZ=wW(RW()),c0=QZ,BW=QZ;c0.parse??=KZ;BW.parse??=KZ;j$={resolve:c0.resolve.bind(c0),normalize:c0.normalize.bind(c0),isAbsolute:c0.isAbsolute.bind(c0),join:c0.join.bind(c0),relative:c0.relative.bind(c0),toNamespacedPath:JZ,dirname:c0.dirname.bind(c0),basename:c0.basename.bind(c0),extname:c0.extname.bind(c0),format:c0.format.bind(c0),parse:c0.parse.bind(c0),sep:"/",delimiter:":",win32:void 0,posix:void 0,_makeLong:JZ},MJ={sep:"\\",delimiter:";",win32:void 0,...j$,posix:j$};j$.win32=MJ.win32=MJ;j$.posix=j$;NW=j$,{resolve:CW,normalize:IW,isAbsolute:PW,join:AW,relative:EW,toNamespacedPath:TW,dirname:bW,basename:fW,extname:SW,format:vW,parse:DW,sep:hW,delimiter:yW}=j$});var hQ={};d7(hQ,{resolveObject:()=>DQ,resolve:()=>vQ,parse:()=>y$,format:()=>SQ,default:()=>hz,Url:()=>L7,URLSearchParams:()=>bQ,URL:()=>hJ});function yJ($){return typeof $=="string"}function fQ($){return typeof $=="object"&&$!==null}function q9($){return $===null}function Pz($){return $==null}function L7(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function y$($,J,Z){if($&&fQ($)&&$ instanceof L7)return $;var Q=new L7;return Q.parse($,J,Z),Q}function SQ($){return yJ($)&&($=y$($)),$ instanceof L7?$.format():L7.prototype.format.call($)}function vQ($,J){return y$($,!1,!0).resolve(J)}function DQ($,J){return $?y$($,!1,!0).resolveObject(J):J}var hJ,bQ,Az,Ez,Tz,bz,fz,SJ,AQ,EQ,Sz=255,TQ,vz,Dz,vJ,h$,DJ,hz;var yQ=Z8(()=>{({URL:hJ,URLSearchParams:bQ}=globalThis);Az=/^([a-z0-9.+-]+:)/i,Ez=/:[0-9]*$/,Tz=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,bz=["<",">",'"',"`"," ","\r",`
|
|
3
3
|
`,"\t"],fz=["{","}","|","\\","^","`"].concat(bz),SJ=["'"].concat(fz),AQ=["%","/","?",";","#"].concat(SJ),EQ=["/","?","#"],TQ=/^[+a-z0-9A-Z_-]{0,63}$/,vz=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Dz={javascript:!0,"javascript:":!0},vJ={javascript:!0,"javascript:":!0},h$={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},DJ={parse($){var J=decodeURIComponent;return($+"").replace(/\+/g," ").split("&").filter(Boolean).reduce(function(Z,Q,K){var q=Q.split("="),H=J(q[0]||""),W=J(q[1]||""),j=Z[H];return Z[H]=j===void 0?W:[].concat(j,W),Z},{})},stringify($){var J=encodeURIComponent;return Object.keys($||{}).reduce(function(Z,Q){return[].concat($[Q]).forEach(function(K){Z.push(J(Q)+"="+J(K))}),Z},[]).join("&").replace(/\s/g,"+")}};L7.prototype.parse=function($,J,Z){if(!yJ($))throw new TypeError("Parameter 'url' must be a string, not "+typeof $);var Q=$.indexOf("?"),K=Q!==-1&&Q<$.indexOf("#")?"?":"#",q=$.split(K),H=/\\/g;q[0]=q[0].replace(H,"/"),$=q.join(K);var W=$;if(W=W.trim(),!Z&&$.split("#").length===1){var j=Tz.exec(W);if(j)return this.path=W,this.href=W,this.pathname=j[1],j[2]?(this.search=j[2],J?this.query=DJ.parse(this.search.substr(1)):this.query=this.search.substr(1)):J&&(this.search="",this.query={}),this}var z=Az.exec(W);if(z){z=z[0];var G=z.toLowerCase();this.protocol=G,W=W.substr(z.length)}if(Z||z||W.match(/^\/\/[^@\/]+@[^@\/]+/)){var F=W.substr(0,2)==="//";F&&!(z&&vJ[z])&&(W=W.substr(2),this.slashes=!0)}if(!vJ[z]&&(F||z&&!h$[z])){for(var _=-1,U=0;U<EQ.length;U++){var Y=W.indexOf(EQ[U]);Y!==-1&&(_===-1||Y<_)&&(_=Y)}var V,M;_===-1?M=W.lastIndexOf("@"):M=W.lastIndexOf("@",_),M!==-1&&(V=W.slice(0,M),W=W.slice(M+1),this.auth=decodeURIComponent(V)),_=-1;for(var U=0;U<AQ.length;U++){var Y=W.indexOf(AQ[U]);Y!==-1&&(_===-1||Y<_)&&(_=Y)}_===-1&&(_=W.length),this.host=W.slice(0,_),W=W.slice(_),this.parseHost(),this.hostname=this.hostname||"";var X=this.hostname[0]==="["&&this.hostname[this.hostname.length-1]==="]";if(!X)for(var k=this.hostname.split(/\./),U=0,L=k.length;U<L;U++){var R=k[U];if(!!R&&!R.match(TQ)){for(var B="",I=0,h=R.length;I<h;I++)R.charCodeAt(I)>127?B+="x":B+=R[I];if(!B.match(TQ)){var g=k.slice(0,U),f=k.slice(U+1),x=R.match(vz);x&&(g.push(x[1]),f.unshift(x[2])),f.length&&(W="/"+f.join(".")+W),this.hostname=g.join(".");break}}}this.hostname.length>Sz?this.hostname="":this.hostname=this.hostname.toLowerCase(),X||(this.hostname=new hJ(`https://${this.hostname}`).hostname);var D=this.port?":"+this.port:"",T=this.hostname||"";this.host=T+D,this.href+=this.host,X&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),W[0]!=="/"&&(W="/"+W))}if(!Dz[G])for(var U=0,L=SJ.length;U<L;U++){var d=SJ[U];if(W.indexOf(d)!==-1){var c=encodeURIComponent(d);c===d&&(c=escape(d)),W=W.split(d).join(c)}}var p=W.indexOf("#");p!==-1&&(this.hash=W.substr(p),W=W.slice(0,p));var C=W.indexOf("?");if(C!==-1?(this.search=W.substr(C),this.query=W.substr(C+1),J&&(this.query=DJ.parse(this.query)),W=W.slice(0,C)):J&&(this.search="",this.query={}),W&&(this.pathname=W),h$[G]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var D=this.pathname||"",y=this.search||"";this.path=D+y}return this.href=this.format(),this};L7.prototype.format=function(){var $=this.auth||"";$&&($=encodeURIComponent($),$=$.replace(/%3A/i,":"),$+="@");var J=this.protocol||"",Z=this.pathname||"",Q=this.hash||"",K=!1,q="";this.host?K=$+this.host:this.hostname&&(K=$+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(K+=":"+this.port)),this.query&&fQ(this.query)&&Object.keys(this.query).length&&(q=DJ.stringify(this.query));var H=this.search||q&&"?"+q||"";return J&&J.substr(-1)!==":"&&(J+=":"),this.slashes||(!J||h$[J])&&K!==!1?(K="//"+(K||""),Z&&Z.charAt(0)!=="/"&&(Z="/"+Z)):K||(K=""),Q&&Q.charAt(0)!=="#"&&(Q="#"+Q),H&&H.charAt(0)!=="?"&&(H="?"+H),Z=Z.replace(/[?#]/g,function(W){return encodeURIComponent(W)}),H=H.replace("#","%23"),J+K+Z+H+Q};L7.prototype.resolve=function($){return this.resolveObject(y$($,!1,!0)).format()};L7.prototype.resolveObject=function($){if(yJ($)){var J=new L7;J.parse($,!1,!0),$=J}for(var Z=new L7,Q=Object.keys(this),K=0;K<Q.length;K++){var q=Q[K];Z[q]=this[q]}if(Z.hash=$.hash,$.href==="")return Z.href=Z.format(),Z;if($.slashes&&!$.protocol){for(var H=Object.keys($),W=0;W<H.length;W++){var j=H[W];j!=="protocol"&&(Z[j]=$[j])}return h$[Z.protocol]&&Z.hostname&&!Z.pathname&&(Z.path=Z.pathname="/"),Z.href=Z.format(),Z}if($.protocol&&$.protocol!==Z.protocol){if(!h$[$.protocol]){for(var z=Object.keys($),G=0;G<z.length;G++){var F=z[G];Z[F]=$[F]}return Z.href=Z.format(),Z}if(Z.protocol=$.protocol,!$.host&&!vJ[$.protocol]){for(var L=($.pathname||"").split("/");L.length&&!($.host=L.shift()););$.host||($.host=""),$.hostname||($.hostname=""),L[0]!==""&&L.unshift(""),L.length<2&&L.unshift(""),Z.pathname=L.join("/")}else Z.pathname=$.pathname;if(Z.search=$.search,Z.query=$.query,Z.host=$.host||"",Z.auth=$.auth,Z.hostname=$.hostname||$.host,Z.port=$.port,Z.pathname||Z.search){var _=Z.pathname||"",U=Z.search||"";Z.path=_+U}return Z.slashes=Z.slashes||$.slashes,Z.href=Z.format(),Z}var Y=Z.pathname&&Z.pathname.charAt(0)==="/",V=$.host||$.pathname&&$.pathname.charAt(0)==="/",M=V||Y||Z.host&&$.pathname,X=M,k=Z.pathname&&Z.pathname.split("/")||[],L=$.pathname&&$.pathname.split("/")||[],R=Z.protocol&&!h$[Z.protocol];if(R&&(Z.hostname="",Z.port=null,Z.host&&(k[0]===""?k[0]=Z.host:k.unshift(Z.host)),Z.host="",$.protocol&&($.hostname=null,$.port=null,$.host&&(L[0]===""?L[0]=$.host:L.unshift($.host)),$.host=null),M=M&&(L[0]===""||k[0]==="")),V)Z.host=$.host||$.host===""?$.host:Z.host,Z.hostname=$.hostname||$.hostname===""?$.hostname:Z.hostname,Z.search=$.search,Z.query=$.query,k=L;else if(L.length)k||(k=[]),k.pop(),k=k.concat(L),Z.search=$.search,Z.query=$.query;else if(!Pz($.search)){if(R){Z.hostname=Z.host=k.shift();var B=Z.host&&Z.host.indexOf("@")>0?Z.host.split("@"):!1;B&&(Z.auth=B.shift(),Z.host=Z.hostname=B.shift())}return Z.search=$.search,Z.query=$.query,(!q9(Z.pathname)||!q9(Z.search))&&(Z.path=(Z.pathname?Z.pathname:"")+(Z.search?Z.search:"")),Z.href=Z.format(),Z}if(!k.length)return Z.pathname=null,Z.search?Z.path="/"+Z.search:Z.path=null,Z.href=Z.format(),Z;for(var I=k.slice(-1)[0],h=(Z.host||$.host||k.length>1)&&(I==="."||I==="..")||I==="",g=0,f=k.length;f>=0;f--)I=k[f],I==="."?k.splice(f,1):I===".."?(k.splice(f,1),g++):g&&(k.splice(f,1),g--);if(!M&&!X)for(;g--;g)k.unshift("..");M&&k[0]!==""&&(!k[0]||k[0].charAt(0)!=="/")&&k.unshift(""),h&&k.join("/").substr(-1)!=="/"&&k.push("");var x=k[0]===""||k[0]&&k[0].charAt(0)==="/";if(R){Z.hostname=Z.host=x?"":k.length?k.shift():"";var B=Z.host&&Z.host.indexOf("@")>0?Z.host.split("@"):!1;B&&(Z.auth=B.shift(),Z.host=Z.hostname=B.shift())}return M=M||Z.host&&k.length,M&&!x&&k.unshift(""),k.length?Z.pathname=k.join("/"):(Z.pathname=null,Z.path=null),(!q9(Z.pathname)||!q9(Z.search))&&(Z.path=(Z.pathname?Z.pathname:"")+(Z.search?Z.search:"")),Z.auth=$.auth||Z.auth,Z.slashes=Z.slashes||$.slashes,Z.href=Z.format(),Z};L7.prototype.parseHost=function(){var $=this.host,J=Ez.exec($);J&&(J=J[0],J!==":"&&(this.port=J.substr(1)),$=$.substr(0,$.length-J.length)),$&&(this.hostname=$)};hz={parse:y$,resolve:vQ,resolveObject:DQ,format:SQ,Url:L7,URL:hJ,URLSearchParams:bQ}});/*!
|
|
4
4
|
* decimal.js v10.6.0
|
|
@@ -496,4 +496,4 @@ ${H}
|
|
|
496
496
|
// <![CDATA[
|
|
497
497
|
${Q}
|
|
498
498
|
// ]]>
|
|
499
|
-
`,H=new w0("script",{type:"text/javascript",id:"svg-matrix-polyfill"},[],q);if(!Array.isArray(K.children))K.children=[];if(K.children.length>0){let W=0;for(let j=0;j<K.children.length;j++)if(K.children[j]?.tagName==="defs")W=j+1;K.children.splice(W,0,H)}else K.children.push(H);return $}function pz($){if(!$)return $;let J=(Z)=>{if(!Z||!Z.children||!Array.isArray(Z.children))return;Z.children=Z.children.filter((Q)=>{if(Q?.tagName==="script"){if(Q.getAttribute?.("id")==="svg-matrix-polyfill")return!1;if((Q.textContent||"").includes("SVG 2.0 Polyfills - Generated by svg-matrix"))return!1}return!0});for(let Q of Z.children)if(Q)J(Q)};return J($),$}O.set({precision:80});var cz="1.3.
|
|
499
|
+
`,H=new w0("script",{type:"text/javascript",id:"svg-matrix-polyfill"},[],q);if(!Array.isArray(K.children))K.children=[];if(K.children.length>0){let W=0;for(let j=0;j<K.children.length;j++)if(K.children[j]?.tagName==="defs")W=j+1;K.children.splice(W,0,H)}else K.children.push(H);return $}function pz($){if(!$)return $;let J=(Z)=>{if(!Z||!Z.children||!Array.isArray(Z.children))return;Z.children=Z.children.filter((Q)=>{if(Q?.tagName==="script"){if(Q.getAttribute?.("id")==="svg-matrix-polyfill")return!1;if((Q.textContent||"").includes("SVG 2.0 Polyfills - Generated by svg-matrix"))return!1}return!0});for(let Q of Z.children)if(Q)J(Q)};return J($),$}O.set({precision:80});var cz="1.3.15";var{parseSVG:vj,serializeSVG:Dj}=b9,{detectSVG2Features:hj,injectPolyfills:yj,setPolyfillMinification:uj,setPolyfillContent:gj}=lJ;async function nz($,J={}){let{loadInput:Z,saveOutput:Q,optimize:K}=K9,q=R$($),H=await Z($,q),W=await K(H,{precision:J.precision||6,...J});if(J.output)return Q(W,J.output,J);return Q(W,null,J)}var gQ={VERSION:cz,Decimal:O,Matrix:W0,Vector:v0,Transforms2D:S7,Transforms3D:Y9,GeometryToPath:l$,...K9,parseSVG:x0,serializeSVG:q7,detectSVG2Features:G6,injectPolyfills:nJ,setPolyfillMinification:pJ,setPolyfillContent:cJ,process:nz},dj=gQ;if(typeof window!=="undefined")window.SVGM=gQ;export{OQ as validateXML,Gz as validateSVGAsync,YQ as validateSVG,jJ as straightCurves,cZ as sortDefsChildren,pZ as sortAttrs,NQ as simplifyPaths,wQ as simplifyPath,uj as setPolyfillMinification,gj as setPolyfillContent,Dj as serializeSVG,YZ as saveOutput,nZ as reusePaths,oZ as removeXlink,CZ as removeXMLProcInst,bZ as removeXMLNS,TZ as removeViewBox,RZ as removeUselessDefs,_J as removeUselessCommands,LZ as removeUnknownsAndDefaults,IZ as removeTitle,sZ as removeStyleElement,SZ as removeScriptElement,fZ as removeRasterImages,lZ as removeOffCanvasPath,wZ as removeNonInheritableGroupAttrs,Z9 as removeMetadata,QJ as removeLeadingZero,e6 as removeHiddenElements,BZ as removeEmptyText,$9 as removeEmptyContainers,AZ as removeEmptyAttrs,JQ as removeElementsByAttr,IJ as removeEditorsNSData,NZ as removeDoctype,tZ as removeDimensions,PZ as removeDesc,J9 as removeComments,$Q as removeAttrs,eZ as removeAttributesBySelector,nz as process,Qz as printHierarchicalMatrix,TJ as presetNone,EJ as presetDefault,aZ as prefixIds,vj as parseSVG,BQ as optimizePaths,RQ as optimizeAnimationTiming,QQ as optimize,KJ as negativeExtraSpace,xZ as moveGroupAttrsToElems,mZ as moveElemsAttrsToGroup,AJ as minifyStyles,gZ as mergePaths,VQ as measureDistance,z6 as loadInput,WJ as lineShorthands,dZ as inlineStyles,yj as injectPolyfills,_Q as imageToPath,j6 as generateOutput,Zz as generateFullCompatibilityMatrix,MQ as generateFlexibleSVGTable,Kz as generateCompatibilityMatrixSVG,qz as generateCompatibilityMatrixFlexible,OZ as formatPrecision,FJ as floatPrecision,FQ as flattenUseElements,jQ as flattenPatterns,HQ as flattenMasks,WQ as flattenGradients,GQ as flattenFilters,qQ as flattenClipPaths,LQ as flattenAll,XQ as fixInvalidSVG,PQ as exportEmbeddedResources,nW as escapeXml,fJ as embedExternalDependencies,hj as detectSVG2Features,NJ as detectOutputTarget,R$ as detectInputType,UQ as detectCollisions,dj as default,CQ as decomposeTransform,F0 as createOperation,KQ as createConfig,hZ as convertTransform,zJ as convertToZ,qJ as convertToRelative,EZ as convertToPlainSVG,HJ as convertToAbsolute,PJ as convertStyleToAttrs,vZ as convertShapesToPath,VJ as convertQuadraticToSmooth,DZ as convertPathData,yZ as convertEllipseToCircle,OJ as convertCubicToSmooth,UJ as convertCubicToQuadratic,Q9 as convertColors,GJ as collapseRepeated,uZ as collapseGroups,t6 as cleanupNumericValues,MZ as cleanupListOfValues,CJ as cleanupIds,kZ as cleanupEnableBackground,XZ as cleanupAttributes,YJ as arcShorthands,ZQ as applyPreset,Jz as analyzeCompatibilityMatrix,rW as analyzeCompatibility,rZ as addClassesToSVGElement,iZ as addAttributesToSVGElement,v0 as Vector,B0 as ValidationSeverity,cz as VERSION,Y9 as Transforms3D,S7 as Transforms2D,VZ as PRECISION_LEVELS,X7 as OutputTarget,k7 as OutputFormat,W0 as Matrix,W6 as MAX_PRECISION,h0 as InputType,l$ as GeometryToPath,O as Decimal,i6 as DEFAULT_PRECISION};
|
package/dist/version.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.3.
|
|
3
|
-
"buildTime": "2026-01-
|
|
2
|
+
"version": "1.3.15",
|
|
3
|
+
"buildTime": "2026-01-31T16:34:13.576Z",
|
|
4
4
|
"bundles": {
|
|
5
5
|
"esm": [
|
|
6
6
|
{
|
|
7
7
|
"name": "svg-matrix.min.js",
|
|
8
8
|
"size": 56106,
|
|
9
|
-
"gzipSize":
|
|
9
|
+
"gzipSize": 19414,
|
|
10
10
|
"description": "ESM bundle for bundlers/Node.js (includes decimal.js)"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"name": "svg-toolbox.min.js",
|
|
14
14
|
"size": 595474,
|
|
15
|
-
"gzipSize":
|
|
15
|
+
"gzipSize": 157636,
|
|
16
16
|
"description": "ESM bundle for bundlers/Node.js (includes decimal.js)"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
"name": "svgm.min.js",
|
|
20
20
|
"size": 620776,
|
|
21
|
-
"gzipSize":
|
|
21
|
+
"gzipSize": 164738,
|
|
22
22
|
"description": "ESM bundle for bundlers/Node.js (includes decimal.js)"
|
|
23
23
|
}
|
|
24
24
|
],
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
{
|
|
27
27
|
"name": "svg-matrix.global.min.js",
|
|
28
28
|
"size": 56489,
|
|
29
|
-
"gzipSize":
|
|
29
|
+
"gzipSize": 19639,
|
|
30
30
|
"description": "IIFE bundle for browsers via <script> (includes decimal.js)"
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"name": "svg-toolbox.global.min.js",
|
|
34
34
|
"size": 595604,
|
|
35
|
-
"gzipSize":
|
|
35
|
+
"gzipSize": 156941,
|
|
36
36
|
"description": "IIFE bundle for browsers via <script> (includes decimal.js)"
|
|
37
37
|
},
|
|
38
38
|
{
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* SVG path conversion, and 2D/3D affine transformations using Decimal.js.
|
|
6
6
|
*
|
|
7
7
|
* @module @emasoft/svg-matrix
|
|
8
|
-
* @version 1.3.
|
|
8
|
+
* @version 1.3.15
|
|
9
9
|
* @license MIT
|
|
10
10
|
*
|
|
11
11
|
* @example
|
|
@@ -135,7 +135,7 @@ Decimal.set({ precision: 80 });
|
|
|
135
135
|
* Library version
|
|
136
136
|
* @constant {string}
|
|
137
137
|
*/
|
|
138
|
-
export const VERSION = "1.3.
|
|
138
|
+
export const VERSION = "1.3.15";
|
|
139
139
|
|
|
140
140
|
/**
|
|
141
141
|
* Default precision for path output (decimal places)
|
package/src/svg-matrix-lib.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Works in both Node.js and browser environments.
|
|
6
6
|
*
|
|
7
7
|
* @module svg-matrix-lib
|
|
8
|
-
* @version 1.3.
|
|
8
|
+
* @version 1.3.15
|
|
9
9
|
* @license MIT
|
|
10
10
|
*
|
|
11
11
|
* @example Browser usage:
|
|
@@ -32,7 +32,7 @@ Decimal.set({ precision: 80 });
|
|
|
32
32
|
/**
|
|
33
33
|
* Library version
|
|
34
34
|
*/
|
|
35
|
-
export const VERSION = "1.3.
|
|
35
|
+
export const VERSION = "1.3.15";
|
|
36
36
|
|
|
37
37
|
// Export core classes
|
|
38
38
|
export { Decimal, Matrix, Vector };
|
package/src/svg-toolbox-lib.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Provides 69+ operations for cleaning, optimizing, and transforming SVG files.
|
|
6
6
|
*
|
|
7
7
|
* @module svg-toolbox-lib
|
|
8
|
-
* @version 1.3.
|
|
8
|
+
* @version 1.3.15
|
|
9
9
|
* @license MIT
|
|
10
10
|
*
|
|
11
11
|
* @example Browser usage:
|
|
@@ -34,7 +34,7 @@ import * as SVGToolboxModule from "./svg-toolbox.js";
|
|
|
34
34
|
/**
|
|
35
35
|
* Library version
|
|
36
36
|
*/
|
|
37
|
-
export const VERSION = "1.3.
|
|
37
|
+
export const VERSION = "1.3.15";
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
40
|
* Default export for browser global (window.SVGToolbox)
|
package/src/svgm-lib.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* comprehensive SVG manipulation (SVGToolbox). Works in Node.js and browser.
|
|
6
6
|
*
|
|
7
7
|
* @module svgm-lib
|
|
8
|
-
* @version 1.3.
|
|
8
|
+
* @version 1.3.15
|
|
9
9
|
* @license MIT
|
|
10
10
|
*
|
|
11
11
|
* @example Browser usage:
|
|
@@ -49,7 +49,7 @@ Decimal.set({ precision: 80 });
|
|
|
49
49
|
/**
|
|
50
50
|
* Library version
|
|
51
51
|
*/
|
|
52
|
-
export const VERSION = "1.3.
|
|
52
|
+
export const VERSION = "1.3.15";
|
|
53
53
|
|
|
54
54
|
// Export math classes
|
|
55
55
|
export { Decimal, Matrix, Vector };
|