UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 61.3 kB
var xn=Object.defineProperty,An=Object.defineProperties;var Pn=Object.getOwnPropertyDescriptors;var Mt=Object.getOwnPropertySymbols;var kn=Object.prototype.hasOwnProperty,Bn=Object.prototype.propertyIsEnumerable;var _t=(t,e,n)=>e in t?xn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,oe=(t,e)=>{for(var n in e||(e={}))kn.call(e,n)&&_t(t,n,e[n]);if(Mt)for(var n of Mt(e))Bn.call(e,n)&&_t(t,n,e[n]);return t},ce=(t,e)=>An(t,Pn(e));import ae from"bn.js";var Pe=9e15,he=1e9,it="0123456789abcdef",Ue="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",We="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ot={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Pe,maxE:Pe,crypto:!1},Dt,me,w=!0,ze="[DecimalError] ",ge=ze+"Invalid argument: ",Kt=ze+"Precision limit exceeded",qt=ze+"crypto unavailable",Gt="[object Decimal]",U=Math.floor,v=Math.pow,In=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Nn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Sn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Vt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ne=1e7,h=7,Cn=9007199254740991,Ln=Ue.length-1,st=We.length-1,f={toStringTag:Gt};f.absoluteValue=f.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),g(t)};f.ceil=function(){return g(new this.constructor(this),this.e+1,2)};f.clampedTo=f.clamp=function(t,e){var n,r=this,i=r.constructor;if(t=new i(t),e=new i(e),!t.s||!e.s)return new i(NaN);if(t.gt(e))throw Error(ge+e);return n=r.cmp(t),n<0?t:r.cmp(e)>0?e:new i(r)};f.comparedTo=f.cmp=function(t){var e,n,r,i,o=this,s=o.d,a=(t=new o.constructor(t)).d,c=o.s,u=t.s;if(!s||!a)return!c||!u?NaN:c!==u?c:s===a?0:!s^c<0?1:-1;if(!s[0]||!a[0])return s[0]?c:a[0]?-u:0;if(c!==u)return c;if(o.e!==t.e)return o.e>t.e^c<0?1:-1;for(r=s.length,i=a.length,e=0,n=r<i?r:i;e<n;++e)if(s[e]!==a[e])return s[e]>a[e]^c<0?1:-1;return r===i?0:r>i^c<0?1:-1};f.cosine=f.cos=function(){var t,e,n=this,r=n.constructor;return n.d?n.d[0]?(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+h,r.rounding=1,n=En(r,Ht(r,n)),r.precision=t,r.rounding=e,g(me==2||me==3?n.neg():n,t,e,!0)):new r(1):new r(NaN)};f.cubeRoot=f.cbrt=function(){var t,e,n,r,i,o,s,a,c,u,m=this,l=m.constructor;if(!m.isFinite()||m.isZero())return new l(m);for(w=!1,o=m.s*v(m.s*m,1/3),!o||Math.abs(o)==1/0?(n=G(m.d),t=m.e,(o=(t-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=v(n,1/3),t=U((t+1)/3)-(t%3==(t<0?-1:2)),o==1/0?n="5e"+t:(n=o.toExponential(),n=n.slice(0,n.indexOf("e")+1)+t),r=new l(n),r.s=m.s):r=new l(o.toString()),s=(t=l.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(m),r=C(u.plus(m).times(a),u.plus(c),s+2,1),G(a.d).slice(0,s)===(n=G(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!i&&n=="4999"){if(!i&&(g(a,t+1,0),a.times(a).times(a).eq(m))){r=a;break}s+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(g(r,t+1,1),e=!r.times(r).times(r).eq(m));break}return w=!0,g(r,t,l.rounding,e)};f.decimalPlaces=f.dp=function(){var t,e=this.d,n=NaN;if(e){if(t=e.length-1,n=(t-U(this.e/h))*h,t=e[t],t)for(;t%10==0;t/=10)n--;n<0&&(n=0)}return n};f.dividedBy=f.div=function(t){return C(this,new this.constructor(t))};f.dividedToIntegerBy=f.divToInt=function(t){var e=this,n=e.constructor;return g(C(e,new n(t),0,1,1),n.precision,n.rounding)};f.equals=f.eq=function(t){return this.cmp(t)===0};f.floor=function(){return g(new this.constructor(this),this.e+1,3)};f.greaterThan=f.gt=function(t){return this.cmp(t)>0};f.greaterThanOrEqualTo=f.gte=function(t){var e=this.cmp(t);return e==1||e===0};f.hyperbolicCosine=f.cosh=function(){var t,e,n,r,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;n=s.precision,r=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(t=Math.ceil(i/3),e=(1/je(4,t)).toString()):(t=16,e="2.3283064365386962890625e-10"),o=ke(s,1,o.times(e),new s(1),!0);for(var c,u=t,m=new s(8);u--;)c=o.times(o),o=a.minus(c.times(m.minus(c.times(m))));return g(o,s.precision=n,s.rounding=r,!0)};f.hyperbolicSine=f.sinh=function(){var t,e,n,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(e=o.precision,n=o.rounding,o.precision=e+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=ke(o,2,i,i,!0);else{t=1.4*Math.sqrt(r),t=t>16?16:t|0,i=i.times(1/je(5,t)),i=ke(o,2,i,i,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);t--;)s=i.times(i),i=i.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=e,o.rounding=n,g(i,e,n,!0)};f.hyperbolicTangent=f.tanh=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+7,r.rounding=1,C(n.sinh(),n.cosh(),r.precision=t,r.rounding=e)):new r(n.s)};f.inverseCosine=f.acos=function(){var t,e=this,n=e.constructor,r=e.abs().cmp(1),i=n.precision,o=n.rounding;return r!==-1?r===0?e.isNeg()?te(n,i,o):new n(0):new n(NaN):e.isZero()?te(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,e=e.asin(),t=te(n,i+4,o).times(.5),n.precision=i,n.rounding=o,t.minus(e))};f.inverseHyperbolicCosine=f.acosh=function(){var t,e,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(t=r.precision,e=r.rounding,r.precision=t+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,w=!1,n=n.times(n).minus(1).sqrt().plus(n),w=!0,r.precision=t,r.rounding=e,n.ln()):new r(n)};f.inverseHyperbolicSine=f.asinh=function(){var t,e,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,w=!1,n=n.times(n).plus(1).sqrt().plus(n),w=!0,r.precision=t,r.rounding=e,n.ln())};f.inverseHyperbolicTangent=f.atanh=function(){var t,e,n,r,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(t=o.precision,e=o.rounding,r=i.sd(),Math.max(r,t)<2*-i.e-1?g(new o(i),t,e,!0):(o.precision=n=r-i.e,i=C(i.plus(1),new o(1).minus(i),n+t,1),o.precision=t+4,o.rounding=1,i=i.ln(),o.precision=t,o.rounding=e,i.times(.5))):new o(NaN)};f.inverseSine=f.asin=function(){var t,e,n,r,i=this,o=i.constructor;return i.isZero()?new o(i):(e=i.abs().cmp(1),n=o.precision,r=o.rounding,e!==-1?e===0?(t=te(o,n+4,r).times(.5),t.s=i.s,t):new o(NaN):(o.precision=n+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=r,i.times(2)))};f.inverseTangent=f.atan=function(){var t,e,n,r,i,o,s,a,c,u=this,m=u.constructor,l=m.precision,d=m.rounding;if(u.isFinite()){if(u.isZero())return new m(u);if(u.abs().eq(1)&&l+4<=st)return s=te(m,l+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new m(NaN);if(l+4<=st)return s=te(m,l+4,d).times(.5),s.s=u.s,s}for(m.precision=a=l+10,m.rounding=1,n=Math.min(28,a/h+2|0),t=n;t;--t)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(w=!1,e=Math.ceil(a/h),r=1,c=u.times(u),s=new m(u),i=u;t!==-1;)if(i=i.times(c),o=s.minus(i.div(r+=2)),i=i.times(c),s=o.plus(i.div(r+=2)),s.d[e]!==void 0)for(t=e;s.d[t]===o.d[t]&&t--;);return n&&(s=s.times(2<<n-1)),w=!0,g(s,m.precision=l,m.rounding=d,!0)};f.isFinite=function(){return!!this.d};f.isInteger=f.isInt=function(){return!!this.d&&U(this.e/h)>this.d.length-2};f.isNaN=function(){return!this.s};f.isNegative=f.isNeg=function(){return this.s<0};f.isPositive=f.isPos=function(){return this.s>0};f.isZero=function(){return!!this.d&&this.d[0]===0};f.lessThan=f.lt=function(t){return this.cmp(t)<0};f.lessThanOrEqualTo=f.lte=function(t){return this.cmp(t)<1};f.logarithm=f.log=function(t){var e,n,r,i,o,s,a,c,u=this,m=u.constructor,l=m.precision,d=m.rounding,p=5;if(t==null)t=new m(10),e=!0;else{if(t=new m(t),n=t.d,t.s<0||!n||!n[0]||t.eq(1))return new m(NaN);e=t.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new m(n&&!n[0]?-1/0:u.s!=1?NaN:n?0:1/0);if(e)if(n.length>1)o=!0;else{for(i=n[0];i%10===0;)i/=10;o=i!==1}if(w=!1,a=l+p,s=pe(u,a),r=e?Xe(m,a+10):pe(t,a),c=C(s,r,a,1),Ce(c.d,i=l,d))do if(a+=10,s=pe(u,a),r=e?Xe(m,a+10):pe(t,a),c=C(s,r,a,1),!o){+G(c.d).slice(i+1,i+15)+1==1e14&&(c=g(c,l+1,0));break}while(Ce(c.d,i+=10,d));return w=!0,g(c,l,d)};f.minus=f.sub=function(t){var e,n,r,i,o,s,a,c,u,m,l,d,p=this,y=p.constructor;if(t=new y(t),!p.d||!t.d)return!p.s||!t.s?t=new y(NaN):p.d?t.s=-t.s:t=new y(t.d||p.s!==t.s?p:NaN),t;if(p.s!=t.s)return t.s=-t.s,p.plus(t);if(u=p.d,d=t.d,a=y.precision,c=y.rounding,!u[0]||!d[0]){if(d[0])t.s=-t.s;else if(u[0])t=new y(p);else return new y(c===3?-0:0);return w?g(t,a,c):t}if(n=U(t.e/h),m=U(p.e/h),u=u.slice(),o=m-n,o){for(l=o<0,l?(e=u,o=-o,s=d.length):(e=d,n=m,s=u.length),r=Math.max(Math.ceil(a/h),s)+2,o>r&&(o=r,e.length=1),e.reverse(),r=o;r--;)e.push(0);e.reverse()}else{for(r=u.length,s=d.length,l=r<s,l&&(s=r),r=0;r<s;r++)if(u[r]!=d[r]){l=u[r]<d[r];break}o=0}for(l&&(e=u,u=d,d=e,t.s=-t.s),s=u.length,r=d.length-s;r>0;--r)u[s++]=0;for(r=d.length;r>o;){if(u[--r]<d[r]){for(i=r;i&&u[--i]===0;)u[i]=ne-1;--u[i],u[r]+=ne}u[r]-=d[r]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(t.d=u,t.e=He(u,n),w?g(t,a,c):t):new y(c===3?-0:0)};f.modulo=f.mod=function(t){var e,n=this,r=n.constructor;return t=new r(t),!n.d||!t.s||t.d&&!t.d[0]?new r(NaN):!t.d||n.d&&!n.d[0]?g(new r(n),r.precision,r.rounding):(w=!1,r.modulo==9?(e=C(n,t.abs(),0,3,1),e.s*=t.s):e=C(n,t,0,r.modulo,1),e=e.times(t),w=!0,n.minus(e))};f.naturalExponential=f.exp=function(){return at(this)};f.naturalLogarithm=f.ln=function(){return pe(this)};f.negated=f.neg=function(){var t=new this.constructor(this);return t.s=-t.s,g(t)};f.plus=f.add=function(t){var e,n,r,i,o,s,a,c,u,m,l=this,d=l.constructor;if(t=new d(t),!l.d||!t.d)return!l.s||!t.s?t=new d(NaN):l.d||(t=new d(t.d||l.s===t.s?l:NaN)),t;if(l.s!=t.s)return t.s=-t.s,l.minus(t);if(u=l.d,m=t.d,a=d.precision,c=d.rounding,!u[0]||!m[0])return m[0]||(t=new d(l)),w?g(t,a,c):t;if(o=U(l.e/h),r=U(t.e/h),u=u.slice(),i=o-r,i){for(i<0?(n=u,i=-i,s=m.length):(n=m,r=o,s=u.length),o=Math.ceil(a/h),s=o>s?o+1:s+1,i>s&&(i=s,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(s=u.length,i=m.length,s-i<0&&(i=s,n=m,m=u,u=n),e=0;i;)e=(u[--i]=u[i]+m[i]+e)/ne|0,u[i]%=ne;for(e&&(u.unshift(e),++r),s=u.length;u[--s]==0;)u.pop();return t.d=u,t.e=He(u,r),w?g(t,a,c):t};f.precision=f.sd=function(t){var e,n=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(ge+t);return n.d?(e=Ut(n.d),t&&n.e+1>e&&(e=n.e+1)):e=NaN,e};f.round=function(){var t=this,e=t.constructor;return g(new e(t),t.e+1,e.rounding)};f.sine=f.sin=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+h,r.rounding=1,n=Mn(r,Ht(r,n)),r.precision=t,r.rounding=e,g(me>2?n.neg():n,t,e,!0)):new r(NaN)};f.squareRoot=f.sqrt=function(){var t,e,n,r,i,o,s=this,a=s.d,c=s.e,u=s.s,m=s.constructor;if(u!==1||!a||!a[0])return new m(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(w=!1,u=Math.sqrt(+s),u==0||u==1/0?(e=G(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=U((c+1)/2)-(c<0||c%2),u==1/0?e="5e"+c:(e=u.toExponential(),e=e.slice(0,e.indexOf("e")+1)+c),r=new m(e)):r=new m(u.toString()),n=(c=m.precision)+3;;)if(o=r,r=o.plus(C(s,o,n+2,1)).times(.5),G(o.d).slice(0,n)===(e=G(r.d)).slice(0,n))if(e=e.slice(n-3,n+1),e=="9999"||!i&&e=="4999"){if(!i&&(g(o,c+1,0),o.times(o).eq(s))){r=o;break}n+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(g(r,c+1,1),t=!r.times(r).eq(s));break}return w=!0,g(r,c,m.rounding,t)};f.tangent=f.tan=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+10,r.rounding=1,n=n.sin(),n.s=1,n=C(n,new r(1).minus(n.times(n)).sqrt(),t+10,0),r.precision=t,r.rounding=e,g(me==2||me==4?n.neg():n,t,e,!0)):new r(NaN)};f.times=f.mul=function(t){var e,n,r,i,o,s,a,c,u,m=this,l=m.constructor,d=m.d,p=(t=new l(t)).d;if(t.s*=m.s,!d||!d[0]||!p||!p[0])return new l(!t.s||d&&!d[0]&&!p||p&&!p[0]&&!d?NaN:!d||!p?t.s/0:t.s*0);for(n=U(m.e/h)+U(t.e/h),c=d.length,u=p.length,c<u&&(o=d,d=p,p=o,s=c,c=u,u=s),o=[],s=c+u,r=s;r--;)o.push(0);for(r=u;--r>=0;){for(e=0,i=c+r;i>r;)a=o[i]+p[r]*d[i-r-1]+e,o[i--]=a%ne|0,e=a/ne|0;o[i]=(o[i]+e)%ne|0}for(;!o[--s];)o.pop();return e?++n:o.shift(),t.d=o,t.e=He(o,n),w?g(t,l.precision,l.rounding):t};f.toBinary=function(t,e){return ct(this,2,t,e)};f.toDecimalPlaces=f.toDP=function(t,e){var n=this,r=n.constructor;return n=new r(n),t===void 0?n:(H(t,0,he),e===void 0?e=r.rounding:H(e,0,8),g(n,t+n.e+1,e))};f.toExponential=function(t,e){var n,r=this,i=r.constructor;return t===void 0?n=se(r,!0):(H(t,0,he),e===void 0?e=i.rounding:H(e,0,8),r=g(new i(r),t+1,e),n=se(r,!0,t+1)),r.isNeg()&&!r.isZero()?"-"+n:n};f.toFixed=function(t,e){var n,r,i=this,o=i.constructor;return t===void 0?n=se(i):(H(t,0,he),e===void 0?e=o.rounding:H(e,0,8),r=g(new o(i),t+i.e+1,e),n=se(r,!1,t+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};f.toFraction=function(t){var e,n,r,i,o,s,a,c,u,m,l,d,p=this,y=p.d,b=p.constructor;if(!y)return new b(p);if(u=n=new b(1),r=c=new b(0),e=new b(r),o=e.e=Ut(y)-p.e-1,s=o%h,e.d[0]=v(10,s<0?h+s:s),t==null)t=o>0?e:u;else{if(a=new b(t),!a.isInt()||a.lt(u))throw Error(ge+a);t=a.gt(e)?o>0?e:u:a}for(w=!1,a=new b(G(y)),m=b.precision,b.precision=o=y.length*h*2;l=C(a,e,0,1,1),i=n.plus(l.times(r)),i.cmp(t)!=1;)n=r,r=i,i=u,u=c.plus(l.times(i)),c=i,i=e,e=a.minus(l.times(i)),a=i;return i=C(t.minus(n),r,0,1,1),c=c.plus(i.times(u)),n=n.plus(i.times(r)),c.s=u.s=p.s,d=C(u,r,o,1).minus(p).abs().cmp(C(c,n,o,1).minus(p).abs())<1?[u,r]:[c,n],b.precision=m,w=!0,d};f.toHexadecimal=f.toHex=function(t,e){return ct(this,16,t,e)};f.toNearest=function(t,e){var n=this,r=n.constructor;if(n=new r(n),t==null){if(!n.d)return n;t=new r(1),e=r.rounding}else{if(t=new r(t),e===void 0?e=r.rounding:H(e,0,8),!n.d)return t.s?n:t;if(!t.d)return t.s&&(t.s=n.s),t}return t.d[0]?(w=!1,n=C(n,t,0,e,1).times(t),w=!0,g(n)):(t.s=n.s,n=t),n};f.toNumber=function(){return+this};f.toOctal=function(t,e){return ct(this,8,t,e)};f.toPower=f.pow=function(t){var e,n,r,i,o,s,a=this,c=a.constructor,u=+(t=new c(t));if(!a.d||!t.d||!a.d[0]||!t.d[0])return new c(v(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,o=c.rounding,t.eq(1))return g(a,r,o);if(e=U(t.e/h),e>=t.d.length-1&&(n=u<0?-u:u)<=Cn)return i=Wt(c,a,n,r),t.s<0?new c(1).div(i):g(i,r,o);if(s=a.s,s<0){if(e<t.d.length-1)return new c(NaN);if((t.d[e]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return n=v(+a,u),e=n==0||!isFinite(n)?U(u*(Math.log("0."+G(a.d))/Math.LN10+a.e+1)):new c(n+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?s/0:0):(w=!1,c.rounding=a.s=1,n=Math.min(12,(e+"").length),i=at(t.times(pe(a,r+n)),r),i.d&&(i=g(i,r+5,1),Ce(i.d,r,o)&&(e=r+10,i=g(at(t.times(pe(a,e+n)),e),e+5,1),+G(i.d).slice(r+1,r+15)+1==1e14&&(i=g(i,r+1,0)))),i.s=s,w=!0,c.rounding=o,g(i,r,o))};f.toPrecision=function(t,e){var n,r=this,i=r.constructor;return t===void 0?n=se(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(H(t,1,he),e===void 0?e=i.rounding:H(e,0,8),r=g(new i(r),t,e),n=se(r,t<=r.e||r.e<=i.toExpNeg,t)),r.isNeg()&&!r.isZero()?"-"+n:n};f.toSignificantDigits=f.toSD=function(t,e){var n=this,r=n.constructor;return t===void 0?(t=r.precision,e=r.rounding):(H(t,1,he),e===void 0?e=r.rounding:H(e,0,8)),g(new r(n),t,e)};f.toString=function(){var t=this,e=t.constructor,n=se(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()&&!t.isZero()?"-"+n:n};f.truncated=f.trunc=function(){return g(new this.constructor(this),this.e+1,1)};f.valueOf=f.toJSON=function(){var t=this,e=t.constructor,n=se(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()?"-"+n:n};function G(t){var e,n,r,i=t.length-1,o="",s=t[0];if(i>0){for(o+=s,e=1;e<i;e++)r=t[e]+"",n=h-r.length,n&&(o+=fe(n)),o+=r;s=t[e],r=s+"",n=h-r.length,n&&(o+=fe(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function H(t,e,n){if(t!==~~t||t<e||t>n)throw Error(ge+t)}function Ce(t,e,n,r){var i,o,s,a;for(o=t[0];o>=10;o/=10)--e;return--e<0?(e+=h,i=0):(i=Math.ceil((e+1)/h),e%=h),o=v(10,h-e),a=t[i]%o|0,r==null?e<3?(e==0?a=a/100|0:e==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==o||n>3&&a+1==o/2)&&(t[i+1]/o/100|0)==v(10,e-2)-1||(a==o/2||a==0)&&(t[i+1]/o/100|0)==0:e<4?(e==0?a=a/1e3|0:e==1?a=a/100|0:e==2&&(a=a/10|0),s=(r||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==o||!r&&n>3&&a+1==o/2)&&(t[i+1]/o/1e3|0)==v(10,e-3)-1,s}function Ve(t,e,n){for(var r,i=[0],o,s=0,a=t.length;s<a;){for(o=i.length;o--;)i[o]*=e;for(i[0]+=it.indexOf(t.charAt(s++)),r=0;r<i.length;r++)i[r]>n-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/n|0,i[r]%=n)}return i.reverse()}function En(t,e){var n,r,i;if(e.isZero())return e;r=e.d.length,r<32?(n=Math.ceil(r/3),i=(1/je(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),t.precision+=n,e=ke(t,1,e.times(i),new t(1));for(var o=n;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return t.precision-=n,e}var C=function(){function t(r,i,o){var s,a=0,c=r.length;for(r=r.slice();c--;)s=r[c]*i+a,r[c]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function e(r,i,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(r[a]!=i[a]){c=r[a]>i[a]?1:-1;break}return c}function n(r,i,o,s){for(var a=0;o--;)r[o]-=a,a=r[o]<i[o]?1:0,r[o]=a*s+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s,a,c){var u,m,l,d,p,y,b,F,N,q,I,O,ye,ue,tt,Ke,Se,nt,ee,qe,Ge=r.constructor,rt=r.s==i.s?1:-1,V=r.d,L=i.d;if(!V||!V[0]||!L||!L[0])return new Ge(!r.s||!i.s||(V?L&&V[0]==L[0]:!L)?NaN:V&&V[0]==0||!L?rt*0:rt/0);for(c?(p=1,m=r.e-i.e):(c=ne,p=h,m=U(r.e/p)-U(i.e/p)),ee=L.length,Se=V.length,N=new Ge(rt),q=N.d=[],l=0;L[l]==(V[l]||0);l++);if(L[l]>(V[l]||0)&&m--,o==null?(ue=o=Ge.precision,s=Ge.rounding):a?ue=o+(r.e-i.e)+1:ue=o,ue<0)q.push(1),y=!0;else{if(ue=ue/p+2|0,l=0,ee==1){for(d=0,L=L[0],ue++;(l<Se||d)&&ue--;l++)tt=d*c+(V[l]||0),q[l]=tt/L|0,d=tt%L|0;y=d||l<Se}else{for(d=c/(L[0]+1)|0,d>1&&(L=t(L,d,c),V=t(V,d,c),ee=L.length,Se=V.length),Ke=ee,I=V.slice(0,ee),O=I.length;O<ee;)I[O++]=0;qe=L.slice(),qe.unshift(0),nt=L[0],L[1]>=c/2&&++nt;do d=0,u=e(L,I,ee,O),u<0?(ye=I[0],ee!=O&&(ye=ye*c+(I[1]||0)),d=ye/nt|0,d>1?(d>=c&&(d=c-1),b=t(L,d,c),F=b.length,O=I.length,u=e(b,I,F,O),u==1&&(d--,n(b,ee<F?qe:L,F,c))):(d==0&&(u=d=1),b=L.slice()),F=b.length,F<O&&b.unshift(0),n(I,b,O,c),u==-1&&(O=I.length,u=e(L,I,ee,O),u<1&&(d++,n(I,ee<O?qe:L,O,c))),O=I.length):u===0&&(d++,I=[0]),q[l++]=d,u&&I[0]?I[O++]=V[Ke]||0:(I=[V[Ke]],O=1);while((Ke++<Se||I[0]!==void 0)&&ue--);y=I[0]!==void 0}q[0]||q.shift()}if(p==1)N.e=m,Dt=y;else{for(l=1,d=q[0];d>=10;d/=10)l++;N.e=l+m*p-1,g(N,a?o+N.e+1:o,s,y)}return N}}();function g(t,e,n,r){var i,o,s,a,c,u,m,l,d,p=t.constructor;e:if(e!=null){if(l=t.d,!l)return t;for(i=1,a=l[0];a>=10;a/=10)i++;if(o=e-i,o<0)o+=h,s=e,m=l[d=0],c=m/v(10,i-s-1)%10|0;else if(d=Math.ceil((o+1)/h),a=l.length,d>=a)if(r){for(;a++<=d;)l.push(0);m=c=0,i=1,o%=h,s=o-h+1}else break e;else{for(m=a=l[d],i=1;a>=10;a/=10)i++;o%=h,s=o-h+i,c=s<0?0:m/v(10,i-s-1)%10|0}if(r=r||e<0||l[d+1]!==void 0||(s<0?m:m%v(10,i-s-1)),u=n<4?(c||r)&&(n==0||n==(t.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(o>0?s>0?m/v(10,i-s):0:l[d-1])%10&1||n==(t.s<0?8:7)),e<1||!l[0])return l.length=0,u?(e-=t.e+1,l[0]=v(10,(h-e%h)%h),t.e=-e||0):l[0]=t.e=0,t;if(o==0?(l.length=d,a=1,d--):(l.length=d+1,a=v(10,h-o),l[d]=s>0?(m/v(10,i-s)%v(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=l[0];s>=10;s/=10)o++;for(s=l[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(t.e++,l[0]==ne&&(l[0]=1));break}else{if(l[d]+=a,l[d]!=ne)break;l[d--]=0,a=1}for(o=l.length;l[--o]===0;)l.pop()}return w&&(t.e>p.maxE?(t.d=null,t.e=NaN):t.e<p.minE&&(t.e=0,t.d=[0])),t}function se(t,e,n){if(!t.isFinite())return zt(t);var r,i=t.e,o=G(t.d),s=o.length;return e?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+fe(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(t.e<0?"e":"e+")+t.e):i<0?(o="0."+fe(-i-1)+o,n&&(r=n-s)>0&&(o+=fe(r))):i>=s?(o+=fe(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+fe(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=fe(r))),o}function He(t,e){var n=t[0];for(e*=h;n>=10;n/=10)e++;return e}function Xe(t,e,n){if(e>Ln)throw w=!0,n&&(t.precision=n),Error(Kt);return g(new t(Ue),e,1,!0)}function te(t,e,n){if(e>st)throw Error(Kt);return g(new t(We),e,n,!0)}function Ut(t){var e=t.length-1,n=e*h+1;if(e=t[e],e){for(;e%10==0;e/=10)n--;for(e=t[0];e>=10;e/=10)n++}return n}function fe(t){for(var e="";t--;)e+="0";return e}function Wt(t,e,n,r){var i,o=new t(1),s=Math.ceil(r/h+4);for(w=!1;;){if(n%2&&(o=o.times(e),Ot(o.d,s)&&(i=!0)),n=U(n/2),n===0){n=o.d.length-1,i&&o.d[n]===0&&++o.d[n];break}e=e.times(e),Ot(e.d,s)}return w=!0,o}function Ft(t){return t.d[t.d.length-1]&1}function Xt(t,e,n){for(var r,i=new t(e[0]),o=0;++o<e.length;)if(r=new t(e[o]),r.s)i[n](r)&&(i=r);else{i=r;break}return i}function at(t,e){var n,r,i,o,s,a,c,u=0,m=0,l=0,d=t.constructor,p=d.rounding,y=d.precision;if(!t.d||!t.d[0]||t.e>17)return new d(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:0/0);for(e==null?(w=!1,c=y):c=e,a=new d(.03125);t.e>-2;)t=t.times(a),l+=5;for(r=Math.log(v(2,l))/Math.LN10*2+5|0,c+=r,n=o=s=new d(1),d.precision=c;;){if(o=g(o.times(t),c,1),n=n.times(++m),a=s.plus(C(o,n,c,1)),G(a.d).slice(0,c)===G(s.d).slice(0,c)){for(i=l;i--;)s=g(s.times(s),c,1);if(e==null)if(u<3&&Ce(s.d,c-r,p,u))d.precision=c+=10,n=o=a=new d(1),m=0,u++;else return g(s,d.precision=y,p,w=!0);else return d.precision=y,s}s=a}}function pe(t,e){var n,r,i,o,s,a,c,u,m,l,d,p=1,y=10,b=t,F=b.d,N=b.constructor,q=N.rounding,I=N.precision;if(b.s<0||!F||!F[0]||!b.e&&F[0]==1&&F.length==1)return new N(F&&!F[0]?-1/0:b.s!=1?NaN:F?0:b);if(e==null?(w=!1,m=I):m=e,N.precision=m+=y,n=G(F),r=n.charAt(0),Math.abs(o=b.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)b=b.times(t),n=G(b.d),r=n.charAt(0),p++;o=b.e,r>1?(b=new N("0."+n),o++):b=new N(r+"."+n.slice(1))}else return u=Xe(N,m+2,I).times(o+""),b=pe(new N(r+"."+n.slice(1)),m-y).plus(u),N.precision=I,e==null?g(b,I,q,w=!0):b;for(l=b,c=s=b=C(b.minus(1),b.plus(1),m,1),d=g(b.times(b),m,1),i=3;;){if(s=g(s.times(d),m,1),u=c.plus(C(s,new N(i),m,1)),G(u.d).slice(0,m)===G(c.d).slice(0,m))if(c=c.times(2),o!==0&&(c=c.plus(Xe(N,m+2,I).times(o+""))),c=C(c,new N(p),m,1),e==null)if(Ce(c.d,m-y,q,a))N.precision=m+=y,u=s=b=C(l.minus(1),l.plus(1),m,1),d=g(b.times(b),m,1),i=a=1;else return g(c,N.precision=I,q,w=!0);else return N.precision=I,c;c=u,i+=2}}function zt(t){return String(t.s*t.s/0)}function ut(t,e){var n,r,i;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charCodeAt(r)===48;r++);for(i=e.length;e.charCodeAt(i-1)===48;--i);if(e=e.slice(r,i),e){if(i-=r,t.e=n=n-r-1,t.d=[],r=(n+1)%h,n<0&&(r+=h),r<i){for(r&&t.d.push(+e.slice(0,r)),i-=h;r<i;)t.d.push(+e.slice(r,r+=h));e=e.slice(r),r=h-e.length}else r-=i;for(;r--;)e+="0";t.d.push(+e),w&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function Rn(t,e){var n,r,i,o,s,a,c,u,m;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),Vt.test(e))return ut(t,e)}else if(e==="Infinity"||e==="NaN")return+e||(t.s=NaN),t.e=NaN,t.d=null,t;if(Nn.test(e))n=16,e=e.toLowerCase();else if(In.test(e))n=2;else if(Sn.test(e))n=8;else throw Error(ge+e);for(o=e.search(/p/i),o>0?(c=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),s=o>=0,r=t.constructor,s&&(e=e.replace(".",""),a=e.length,o=a-o,i=Wt(r,new r(n),o,o*2)),u=Ve(e,n,ne),m=u.length-1,o=m;u[o]===0;--o)u.pop();return o<0?new r(t.s*0):(t.e=He(u,m),t.d=u,w=!1,s&&(t=C(t,i,a*4)),c&&(t=t.times(Math.abs(c)<54?v(2,c):Le.pow(2,c))),w=!0,t)}function Mn(t,e){var n,r=e.d.length;if(r<3)return e.isZero()?e:ke(t,2,e,e);n=1.4*Math.sqrt(r),n=n>16?16:n|0,e=e.times(1/je(5,n)),e=ke(t,2,e,e);for(var i,o=new t(5),s=new t(16),a=new t(20);n--;)i=e.times(e),e=e.times(o.plus(i.times(s.times(i).minus(a))));return e}function ke(t,e,n,r,i){var o,s,a,c,u=1,m=t.precision,l=Math.ceil(m/h);for(w=!1,c=n.times(n),a=new t(r);;){if(s=C(a.times(c),new t(e++*e++),m,1),a=i?r.plus(s):r.minus(s),r=C(s.times(c),new t(e++*e++),m,1),s=a.plus(r),s.d[l]!==void 0){for(o=l;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,u++}return w=!0,s.d.length=l+1,s}function je(t,e){for(var n=t;--e;)n*=t;return n}function Ht(t,e){var n,r=e.s<0,i=te(t,t.precision,1),o=i.times(.5);if(e=e.abs(),e.lte(o))return me=r?4:1,e;if(n=e.divToInt(i),n.isZero())me=r?3:2;else{if(e=e.minus(n.times(i)),e.lte(o))return me=Ft(n)?r?2:3:r?4:1,e;me=Ft(n)?r?1:4:r?3:2}return e.minus(i).abs()}function ct(t,e,n,r){var i,o,s,a,c,u,m,l,d,p=t.constructor,y=n!==void 0;if(y?(H(n,1,he),r===void 0?r=p.rounding:H(r,0,8)):(n=p.precision,r=p.rounding),!t.isFinite())m=zt(t);else{for(m=se(t),s=m.indexOf("."),y?(i=2,e==16?n=n*4-3:e==8&&(n=n*3-2)):i=e,s>=0&&(m=m.replace(".",""),d=new p(1),d.e=m.length-s,d.d=Ve(se(d),10,i),d.e=d.d.length),l=Ve(m,10,i),o=c=l.length;l[--c]==0;)l.pop();if(!l[0])m=y?"0p+0":"0";else{if(s<0?o--:(t=new p(t),t.d=l,t.e=o,t=C(t,d,n,r,0,i),l=t.d,o=t.e,u=Dt),s=l[n],a=i/2,u=u||l[n+1]!==void 0,u=r<4?(s!==void 0||u)&&(r===0||r===(t.s<0?3:2)):s>a||s===a&&(r===4||u||r===6&&l[n-1]&1||r===(t.s<0?8:7)),l.length=n,u)for(;++l[--n]>i-1;)l[n]=0,n||(++o,l.unshift(1));for(c=l.length;!l[c-1];--c);for(s=0,m="";s<c;s++)m+=it.charAt(l[s]);if(y){if(c>1)if(e==16||e==8){for(s=e==16?4:3,--c;c%s;c++)m+="0";for(l=Ve(m,i,e),c=l.length;!l[c-1];--c);for(s=1,m="1.";s<c;s++)m+=it.charAt(l[s])}else m=m.charAt(0)+"."+m.slice(1);m=m+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)m="0"+m;m="0."+m}else if(++o>c)for(o-=c;o--;)m+="0";else o<c&&(m=m.slice(0,o)+"."+m.slice(o))}m=(e==16?"0x":e==2?"0b":e==8?"0o":"")+m}return t.s<0?"-"+m:m}function Ot(t,e){if(t.length>e)return t.length=e,!0}function _n(t){return new this(t).abs()}function Fn(t){return new this(t).acos()}function On(t){return new this(t).acosh()}function vn(t,e){return new this(t).plus(e)}function Dn(t){return new this(t).asin()}function Kn(t){return new this(t).asinh()}function qn(t){return new this(t).atan()}function Gn(t){return new this(t).atanh()}function Vn(t,e){t=new this(t),e=new this(e);var n,r=this.precision,i=this.rounding,o=r+4;return!t.s||!e.s?n=new this(NaN):!t.d&&!e.d?(n=te(this,o,1).times(e.s>0?.25:.75),n.s=t.s):!e.d||t.isZero()?(n=e.s<0?te(this,r,i):new this(0),n.s=t.s):!t.d||e.isZero()?(n=te(this,o,1).times(.5),n.s=t.s):e.s<0?(this.precision=o,this.rounding=1,n=this.atan(C(t,e,o,1)),e=te(this,o,1),this.precision=r,this.rounding=i,n=t.s<0?n.minus(e):n.plus(e)):n=this.atan(C(t,e,o,1)),n}function Un(t){return new this(t).cbrt()}function Wn(t){return g(t=new this(t),t.e+1,2)}function Xn(t,e,n){return new this(t).clamp(e,n)}function zn(t){if(!t||typeof t!="object")throw Error(ze+"Object expected");var e,n,r,i=t.defaults===!0,o=["precision",1,he,"rounding",0,8,"toExpNeg",-Pe,0,"toExpPos",0,Pe,"maxE",0,Pe,"minE",-Pe,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(n=o[e],i&&(this[n]=ot[n]),(r=t[n])!==void 0)if(U(r)===r&&r>=o[e+1]&&r<=o[e+2])this[n]=r;else throw Error(ge+n+": "+r);if(n="crypto",i&&(this[n]=ot[n]),(r=t[n])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(qt);else this[n]=!1;else throw Error(ge+n+": "+r);return this}function Hn(t){return new this(t).cos()}function jn(t){return new this(t).cosh()}function jt(t){var e,n,r;function i(o){var s,a,c,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,vt(o)){u.s=o.s,w?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e<i.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;w?s>i.maxE?(u.e=NaN,u.d=null):s<i.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return ut(u,o.toString())}else if(c!=="string")throw Error(ge+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),Vt.test(o)?ut(u,o):Rn(u,o)}if(i.prototype=f,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=zn,i.clone=jt,i.isDecimal=vt,i.abs=_n,i.acos=Fn,i.acosh=On,i.add=vn,i.asin=Dn,i.asinh=Kn,i.atan=qn,i.atanh=Gn,i.atan2=Vn,i.cbrt=Un,i.ceil=Wn,i.clamp=Xn,i.cos=Hn,i.cosh=jn,i.div=Zn,i.exp=Yn,i.floor=Qn,i.hypot=Jn,i.ln=$n,i.log=er,i.log10=nr,i.log2=tr,i.max=rr,i.min=ir,i.mod=or,i.mul=sr,i.pow=ar,i.random=ur,i.round=cr,i.sign=mr,i.sin=lr,i.sinh=dr,i.sqrt=fr,i.sub=pr,i.sum=gr,i.tan=hr,i.tanh=br,i.trunc=wr,t===void 0&&(t={}),t&&t.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<r.length;)t.hasOwnProperty(n=r[e++])||(t[n]=this[n]);return i.config(t),i}function Zn(t,e){return new this(t).div(e)}function Yn(t){return new this(t).exp()}function Qn(t){return g(t=new this(t),t.e+1,3)}function Jn(){var t,e,n=new this(0);for(w=!1,t=0;t<arguments.length;)if(e=new this(arguments[t++]),e.d)n.d&&(n=n.plus(e.times(e)));else{if(e.s)return w=!0,new this(1/0);n=e}return w=!0,n.sqrt()}function vt(t){return t instanceof Le||t&&t.toStringTag===Gt||!1}function $n(t){return new this(t).ln()}function er(t,e){return new this(t).log(e)}function tr(t){return new this(t).log(2)}function nr(t){return new this(t).log(10)}function rr(){return Xt(this,arguments,"lt")}function ir(){return Xt(this,arguments,"gt")}function or(t,e){return new this(t).mod(e)}function sr(t,e){return new this(t).mul(e)}function ar(t,e){return new this(t).pow(e)}function ur(t){var e,n,r,i,o=0,s=new this(1),a=[];if(t===void 0?t=this.precision:H(t,1,he),r=Math.ceil(t/h),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(r));o<r;)i=e[o],i>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(r*=4);o<r;)i=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(e,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(qt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],t%=h,r&&t&&(i=v(10,h-t),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=h)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<h&&(n-=h-r)}return s.e=n,s.d=a,s}function cr(t){return g(t=new this(t),t.e+1,this.rounding)}function mr(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function lr(t){return new this(t).sin()}function dr(t){return new this(t).sinh()}function fr(t){return new this(t).sqrt()}function pr(t,e){return new this(t).sub(e)}function gr(){var t=0,e=arguments,n=new this(e[t]);for(w=!1;n.s&&++t<e.length;)n=n.plus(e[t]);return w=!0,g(n,this.precision,this.rounding)}function hr(t){return new this(t).tan()}function br(t){return new this(t).tanh()}function wr(t){return g(t=new this(t),t.e+1,1)}f[Symbol.for("nodejs.util.inspect.custom")]=f.toString;f[Symbol.toStringTag]="Decimal";var Le=f.constructor=jt(ot);Ue=new Le(Ue);We=new Le(We);var D=Le;import{PublicKey as xi}from"@solana/web3.js";import{get as Zt,set as yr}from"lodash";var mt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Yt={},Tr={};function Y(t){let e=Zt(Yt,t);if(!e){let n=Zt(Tr,t);e=new mt({name:t,logLevel:n}),yr(Yt,t,e)}return e}import{MINT_SIZE as Bi,TOKEN_PROGRAM_ID as Ii,getTransferFeeConfig as Ni,unpackMint as Si}from"@solana/spl-token";var Ci=Y("Raydium_accountInfo_util");import de from"bn.js";import Cr from"big.js";import Hi from"bn.js";import Ar from"toformat";var Pr=Ar,Ee=Pr;import Ye from"big.js";import Br from"bn.js";import Ir from"decimal.js-light";import Re from"bn.js";var Qt=9007199254740991;function le(t){let e=Y("Raydium_parseBigNumberish");if(t instanceof Re)return t;if(typeof t=="string"){if(t.match(/^-?[0-9]+$/))return new Re(t);e.logWithError(`invalid BigNumberish string: ${t}`)}return typeof t=="number"?(t%1&&e.logWithError(`BigNumberish number underflow: ${t}`),(t>=Qt||t<=-Qt)&&e.logWithError(`BigNumberish number overflow: ${t}`),new Re(String(t))):typeof t=="bigint"?new Re(t.toString()):(e.error(`invalid BigNumberish value: ${t}`),new Re(0))}var Ze=Y("module/fraction"),dt=Ee(Ye),Me=Ee(Ir),Nr={[0]:Me.ROUND_DOWN,[1]:Me.ROUND_HALF_UP,[2]:Me.ROUND_UP},Sr={[0]:Ye.roundDown,[1]:Ye.roundHalfUp,[2]:Ye.roundUp},E=class{constructor(e,n=new Br(1)){this.numerator=le(e),this.denominator=le(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new E(this.denominator,this.numerator)}add(e){let n=e instanceof E?e:new E(le(e));return this.denominator.eq(n.denominator)?new E(this.numerator.add(n.numerator),this.denominator):new E(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof E?e:new E(le(e));return this.denominator.eq(n.denominator)?new E(this.numerator.sub(n.numerator),this.denominator):new E(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof E?e:new E(le(e));return new E(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof E?e:new E(le(e));return new E(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},r=1){Number.isInteger(e)||Ze.logWithError(`${e} is not an integer.`),e<=0&&Ze.logWithError(`${e} is not positive.`),Me.set({precision:e+1,rounding:Nr[r]});let i=new Me(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return i.toFormat(i.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},r=1){return Number.isInteger(e)||Ze.logWithError(`${e} is not an integer.`),e<0&&Ze.logWithError(`${e} is negative.`),dt.DP=e,dt.RM=Sr[r]||1,new dt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var no=Y("Raydium_amount"),ro=Ee(Cr);import{PublicKey as Er}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jt}from"@solana/spl-token";var $t={chainId:101,address:Er.default.toBase58(),programId:Jt.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Te={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Jt.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as pt}from"@solana/web3.js";import{PublicKey as R,SystemProgram as en,SYSVAR_RENT_PUBKEY as Rr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Mr}from"@solana/spl-token";function ft({pubkey:t,isSigner:e=!1,isWritable:n=!0}){return{pubkey:t,isWritable:n,isSigner:e}}var lo=[ft({pubkey:Mr,isWritable:!1}),ft({pubkey:en.programId,isWritable:!1}),ft({pubkey:Rr,isWritable:!1})];function tn({publicKey:t,transformSol:e}){let n=nn(t.toString());if(n instanceof R)return e&&n.equals(_e)?lt:n;if(e&&n.toString()===_e.toBase58())return lt;if(typeof n=="string"){if(n===R.default.toBase58())return R.default;try{return new R(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function nn(t){try{return new R(t)}catch{return t}}var fo=new R("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),po=new R("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),go=new R("SysvarRent111111111111111111111111111111111"),ho=new R("SysvarC1ock11111111111111111111111111111111"),_r=new R("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),bo=new R("Sysvar1nstructions1111111111111111111111111"),wo=en.programId,yo=new R("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),To=new R("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),xo=new R("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ao=new R("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Po=new R("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ko=new R("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Bo=new R("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Io=new R("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),No=new R("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),So=new R("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Co=new R("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),lt=new R("So11111111111111111111111111111111111111112"),_e=R.default;var gt=class{constructor({mint:e,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(e===_e.toBase58()||e instanceof pt&&_e.equals(e)){this.decimals=Te.decimals,this.symbol=Te.symbol,this.name=Te.name,this.mint=new pt(Te.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||e.toString().substring(0,6),this.name=i||e.toString().substring(0,6),this.mint=o?pt.default:tn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},xe=gt;xe.WSOL=new gt(ce(oe({},Te),{mint:Te.address}));var ht=class{constructor({decimals:e,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=r}equals(e){return this===e}},Qe=ht;Qe.SOL=new ht($t);import Fr from"bn.js";var Go=new E(new Fr(100));var Ho=Y("Raydium_price");import{PublicKey as ms}from"@solana/web3.js";import ds from"bn.js";var Or=new de(0),Ls=new de(1),Es=new de(2),Rs=new de(3),Ms=new de(5),Lr=new de(10),_s=new de(100),Fs=new de(1e3),Os=new de(1e4);import{PublicKey as aa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ca}from"@solana/spl-token";import{ComputeBudgetProgram as Ws,Keypair as Hs,PublicKey as js,Transaction as Ys,TransactionMessage as Js,VersionedTransaction as $s}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ra}from"@solana/spl-token";var ia=Y("Raydium_txUtil");import{PublicKey as T}from"@solana/web3.js";var fa=new T("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),pa=new T("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),ga=new T("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),ha=new T("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ba=new T("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),wa=new T("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ya=new T("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Ta=new T("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),xa=new T("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Aa=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Pa=new T("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ka=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ba=new T("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Ia=new T("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Na=new T("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Sa=new T("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ca=new T("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),La=new T("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ea=new T("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Ra=new T("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ma=new T("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),_a=new T("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Kr=new T("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),qr=new T("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Gr=new T("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),Fa=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Vr=new T("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),Oa=new T("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ur=new T("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix");var va={SERUM_MARKET:T.default,OPENBOOK_MARKET:new T("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:T.default,FarmV3:new T("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new T("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new T("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new T("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new T("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new T("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new T("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new T("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),Router:new T("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:Kr,CREATE_CPMM_POOL_AUTH:qr,CREATE_CPMM_POOL_FEE_ACC:Gr,FEE_DESTINATION_ID:new T("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:Vr,LCOK_CPMM_AUTH:Ur};import re from"bn.js";var Fe=1e4;function ie(t,e,n,r){if(e===void 0)return{amount:t,fee:void 0,expirationTime:void 0};let i=ce(oe({},e),{olderTransferFee:{epoch:BigInt(e.olderTransferFee.epoch),maximumFee:BigInt(e.olderTransferFee.maximumFee),transferFeeBasisPoints:e.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(e.newerTransferFee.epoch),maximumFee:BigInt(e.newerTransferFee.maximumFee),transferFeeBasisPoints:e.newerTransferFee.transferFeeBasisPoints}}),o=n.epoch<i.newerTransferFee.epoch?i.olderTransferFee:i.newerTransferFee,s=new re(o.maximumFee.toString()),a=n.epoch<i.newerTransferFee.epoch?(Number(i.newerTransferFee.epoch)*n.slotsInEpoch-n.absoluteSlot)*400/1e3:void 0;if(r)if(o.transferFeeBasisPoints===Fe){let c=new re(o.maximumFee.toString());return{amount:t.add(c),fee:c,expirationTime:a}}else{let c=Tt(t.mul(new re(Fe)),new re(Fe-o.transferFeeBasisPoints)),u=new re(o.maximumFee.toString()),m=c.sub(t).gt(u)?t.add(u):c,l=Tt(m.mul(new re(o.transferFeeBasisPoints)),new re(Fe)),d=l.gt(s)?s:l;return{amount:m,fee:d,expirationTime:a}}else{let c=Tt(t.mul(new re(o.transferFeeBasisPoints)),new re(Fe)),u=c.gt(s)?s:c;return{amount:t,fee:u,expirationTime:a}}}function Oe(t,e){return t===void 0?e:e===void 0?t:Math.min(t,e)}function Tt(t,e){let{div:n,mod:r}=t.divmod(e);return r.gt(new re(0))?n.add(new re(1)):n}import{PublicKey as Wr,AddressLookupTableAccount as rn}from"@solana/web3.js";var Xr={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new rn({key:new Wr("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:rn.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};import{PublicKey as ru,sendAndConfirmTransaction as iu,SystemProgram as au,Transaction as uu,TransactionMessage as mu,VersionedTransaction as lu}from"@solana/web3.js";import fu from"axios";import Q from"bn.js";var J=new Q(0),be=new Q(1),sn=new Q(-1),$=new Q(1).shln(64),Je=new Q(1).shln(128),xt=$.sub(be),ve=64,an=Je.subn(1),Ae=-443636,Be=-Ae,At=new Q("4295048016"),Pt=new Q("79226673521066979257578248091"),Du=new Q("4295048017"),Ku=new Q("79226673521066979257578248090"),un=16,cn="59543866431248",mn="184467440737095516",ln="15793534762490258745",zr=new Q(10).pow(new Q(6));var qu=new Q("18446744073700000000");import B from"bn.js";var Hu=Buffer.from("amm_config","utf8"),ju=Buffer.from("pool","utf8"),Zu=Buffer.from("pool_vault","utf8"),Yu=Buffer.from("pool_reward_vault","utf8"),Qu=Buffer.from("position","utf8"),Ju=Buffer.from("tick_array","utf8"),$u=Buffer.from("operation","utf8"),ec=Buffer.from("pool_tick_array_bitmap_extension","utf8"),tc=Buffer.from("observation","utf8");var nc=Buffer.from("locked_position","utf8");import{PublicKey as zm}from"@solana/web3.js";import{TOKEN_2022_PROGRAM_ID as jm}from"@solana/spl-token";import Ym from"bn.js";import{PublicKey as ti}from"@solana/web3.js";import gn,{isBN as hn}from"bn.js";import{bits as oc,BitStructure as sc,blob as Hr,Blob as ac,cstr as uc,f32 as cc,f32be as mc,f64 as lc,f64be as dc,greedy as fc,Layout as jr,ns64 as pc,ns64be as gc,nu64 as hc,nu64be as bc,offset as wc,s16 as yc,s16be as Tc,s24 as xc,s24be as Ac,s32 as Zr,s32be as Pc,s40 as kc,s40be as Bc,s48 as Ic,s48be as Nc,s8 as Sc,seq as Yr,struct as Cc,Structure as Qr,u16 as Jr,u16be as Lc,u24 as Ec,u24be as Rc,u32 as Mc,u32be as _c,u40 as Fc,u40be as Oc,u48 as vc,u48be as Dc,u8 as $r,UInt as ei,union as Kc,Union as qc,unionLayoutDiscriminator as Gc,utf8 as Vc}from"@solana/buffer-layout";var kt=jr,dn=Qr;var Bt=ei;var fn=$r,De=Jr;var we=Zr;var pn=Yr;var Z=Hr;var Ie=class extends kt{constructor(n,r,i){super(n,i);this.blob=Z(n),this.signed=r}decode(n,r=0){let i=new gn(this.blob.decode(n,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(n,r,i=0){return typeof n=="number"&&(n=new gn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,i)}};function j(t){return new Bt(1,t)}function Ne(t){return new Bt(4,t)}function k(t){return new Ie(8,!1,t)}function _(t){return new Ie(16,!1,t)}function bn(t){return new Ie(8,!0,t)}function wn(t){return new Ie(16,!0,t)}var $e=class extends kt{constructor(n,r,i,o){super(n.span,o);this.layout=n,this.decoder=r,this.encoder=i}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,i){return this.layout.encode(this.encoder(n),r,i)}getSpan(n,r){return this.layout.getSpan(n,r)}};function S(t){return new $e(Z(32),e=>new ti(e),e=>e.toBuffer(),t)}function yn(t){return new $e(fn(),ni,ri,t)}function ni(t){if(t===0)return!1;if(t===1)return!0;throw new Error("Invalid bool: "+t)}function ri(t){return t?1:0}var It=class extends dn{decode(e,n){return super.decode(e,n)}};function X(t,e,n){return new It(t,e,n)}function M(t,e,n){let r,i=typeof e=="number"?e:hn(e)?e.toNumber():new Proxy(e,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=hn(a)?a.toNumber():a,Reflect.set(o,"count",r)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(r=a),Reflect.set(o,s,a)}});return pn(t,i,n)}import mm from"bn.js";var et=60;var Lt=14;var Em=X([Z(8),j("bump"),De("index"),S(""),Ne("protocolFeeRate"),Ne("tradeFeeRate"),De("tickSpacing"),M(k(),8,"")]),oi=X([Ne("blockTimestamp"),bn("tickCumulative"),M(k(),4)]),Rm=X([Z(8),yn("initialized"),k("recentEpoch"),De("observationIndex"),S("poolId"),M(oi,100,"observations"),M(k(),4)]),si=X([j("rewardState"),k("openTime"),k("endTime"),k("lastUpdateTime"),_("emissionsPerSecondX64"),k("rewardTotalEmissioned"),k("rewardClaimed"),S("tokenMint"),S("tokenVault"),S("creator"),_("rewardGrowthGlobalX64")]),ai=X([Z(8),j("bump"),S("ammConfig"),S("creator"),S("mintA"),S("mintB"),S("vaultA"),S("vaultB"),S("observationId"),j("mintDecimalsA"),j("mintDecimalsB"),De("tickSpacing"),_("liquidity"),_("sqrtPriceX64"),we("tickCurrent"),Ne(),_("feeGrowthGlobalX64A"),_("feeGrowthGlobalX64B"),k("protocolFeesTokenA"),k("protocolFeesTokenB"),_("swapInAmountTokenA"),_("swapOutAmountTokenB"),_("swapInAmountTokenB"),_("swapOutAmountTokenA"),j("status"),M(j(),7,""),M(si,3,"rewardInfos"),M(k(),16,"tickArrayBitmap"),k("totalFeesTokenA"),k("totalFeesClaimedTokenA"),k("totalFeesTokenB"),k("totalFeesClaimedTokenB"),k("fundFeesTokenA"),k("fundFeesTokenB"),k("startTime"),M(k(),15*4-3,"padding")]),ui=X([_("growthInsideLastX64"),k("rewardAmountOwed")]),ci=X([Z(8),j("bump"),S("nftMint"),S("poolId"),we("tickLower"),we("tickUpper"),_("liquidity"),_("feeGrowthInsideLastX64A"),_("feeGrowthInsideLastX64B"),k("tokenFeesOwedA"),k("tokenFeesOwedB"),M(ui,3,"rewardInfos"),M(k(),8,"")]),Mm=X([Z(8),j("bump"),S("poolId"),we("tickLowerIndex"),we("tickUpperIndex"),_("liquidity"),_("feeGrowthInsideLastX64A"),_("feeGrowthInsideLastX64B"),k("tokenFeesOwedA"),k("tokenFeesOwedB"),M(_(),3,"rewardGrowthInside"),M(k(),8,"")]),mi=X([we("tick"),wn("liquidityNet"),_("liquidityGross"),_("feeGrowthOutsideX64A"),_("feeGrowthOutsideX64B"),M(_(),3,"rewardGrowthsOutsideX64"),M(Ne(),13,"")]),Tn=X([Z(8),S("poolId"),we("startTickIndex"),M(mi,et,"ticks"),j("initializedTickCount"),M(j(),115,"")]),_m=X([Z(329),M(S(),100,"whitelistMints")]),li=X([Z(8),S("poolId"),M(M(k(),8),Lt,"positiveTickArrayBitmap"),M(M(k(),8),Lt,"negativeTickArrayBitmap")]),Fm=X([k(),j("bump"),S("owner"),S("poolId"),S("positionId"),S("nftAccount"),M(k(),8)]),Om=X([Z(8),j("bump"),S("lockOwner"),S("poolId"),S("positionId"),S("nftAccount"),S("lockNftMint"),k("recentEpoch"),M(k(),8)]);var P=class{static mulDivRoundingUp(e,n,r){let i=e.mul(n),o=i.div(r);return i.mod(r).eq(J)||(o=o.add(be)),o}static mulDivFloor(e,n,r){if(r.eq(J))throw new Error("division by 0");return e.mul(n).div(r)}static mulDivCeil(e,n,r){if(r.eq(J))throw new Error("division by 0");return e.mul(n).add(r.sub(be)).div(r)}static x64ToDecimal(e,n){return new D(e.toString()).div(D.pow(2,64)).toDecimalPlaces(n)}static decimalToX64(e){return new B(e.mul(D.pow(2,64)).floor().toFixed())}static wrappingSubU128(e,n){return e.add(Je).sub(n).mod(Je)}};function K(t,e){return Rt(t.mul(e),64,256)}function di(t,e,n){let r=t.toTwos(n).shln(e);return r.imaskn(n+1),r.fromTwos(n)}function Rt(t,e,n){let r=t.toTwos(n).shrn(e);return r.imaskn(n-e+1),r.fromTwos(n-e)}var z=class{static sqrtPriceX64ToPrice(e,n,r){return P.x64ToDecimal(e).pow(2).mul(D.pow(10,n-r))}static priceToSqrtPriceX64(e,n,r){return P.decimalToX64(e.mul(D.pow(10,r-n)).sqrt())}static getNextSqrtPriceX64FromInput(e,n,r,i){if(!e.gt(J))throw new Error("sqrtPriceX64 must greater than 0");if(!n.gt(J))throw new Error("liquidity must greater than 0");return i?this.getNextSqrtPriceFromTokenAmountARoundingUp(e,n,r,!0):this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,n,r,!0)}static getNextSqrtPriceX64FromOutput(e,n,r,i){if(!e.gt(J))throw new Error("sqrtPriceX64 must greater than 0");if(!n.gt(J))throw new Error("liquidity must greater than 0");return i?this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,n,r,!1):this.getNextSqrtPriceFromTokenAmountARoundingUp(e,n,r,!1)}static getNextSqrtPriceFromTokenAmountARoundingUp(e,n,r,i){if(r.eq(J))return e;let o=n.shln(ve);if(i){let s=o,a=o.add(r.mul(e));return a.gte(s)?P.mulDivCeil(s,e,a):P.mulDivRoundingUp(s,be,s.div(e).add(r))}else{let s=r.mul(e);if(!o.gt(s))throw new Error("getNextSqrtPriceFromTokenAmountARoundingUp,liquidityLeftShift must gt amountMulSqrtPrice");let a=o.sub(s);return P.mulDivCeil(o,e,a)}}static getNextSqrtPriceFromTokenAmountBRoundingDown(e,n,r,i){let o=r.shln(ve);if(i)return e.add(o.div(n));{let s=P.mulDivRoundingUp(o,be,n);if(!e.gt(s))throw new Error("getNextSqrtPriceFromTokenAmountBRoundingDown sqrtPriceX64 must gt amountDivLiquidity");return e.sub(s)}}static getSqrtPriceX64FromTick(e){if(!Number.isInteger(e))throw new Error("tick must be integer");if(e<Ae||e>Be)throw new Error("tick must be in MIN_TICK and MAX_TICK");let n=e<0?e*-1:e,r=(n&1)!=0?new B("18445821805675395072"):new B("18446744073709551616");return(n&2)!=0&&(r=K(r,new B("18444899583751176192"))),(n&4)!=0&&(r=K(r,new B("18443055278223355904"))),(n&8)!=0&&(r=K(r,new B("18439367220385607680"))),(n&16)!=0&&(r=K(r,new B("18431993317065453568"))),(n&32)!=0&&(r=K(r,new B("18417254355718170624"))),(n&64)!=0&&(r=K(r,new B("18387811781193609216"))),(n&128)!=0&&(r=K(r,new B("18329067761203558400"))),(n&256)!=0&&(r=K(r,new B("18212142134806163456"))),(n&512)!=0&&(r=K(r,new B("17980523815641700352"))),(n&1024)!=0&&(r=K(r,new B("17526086738831433728"))),(n&2048)!=0&&(r=K(r,new B("16651378430235570176"))),(n&4096)!=0&&(r=K(r,new B("15030750278694412288"))),(n&8192)!=0&&(r=K(r,new B("12247334978884435968"))),(n&16384)!=0&&(r=K(r,new B("8131365268886854656"))),(n&32768)!=0&&(r=K(r,new B("3584323654725218816"))),(n&65536)!=0&&(r=K(r,new B("696457651848324352"))),(n&131072)!=0&&(r=K(r,new B("26294789957507116"))),(n&262144)!=0&&(r=K(r,new B("37481735321082"))),e>0&&(r=an.div(r)),r}static getTickFromPrice(e,n,r){return z.getTickFromSqrtPriceX64(z.priceToSqrtPriceX64(e,n,r))}static getTickFromSqrtPriceX64(e){if(e.gt(Pt)||e.lt(At))throw new Error("Provided sqrtPrice is not within the supported sqrtPrice range.");let n=e.bitLength()-1,r=new B(n-64),i=di(r,32,128),o=new B("8000000000000000","hex"),s=0,a=new B(0),c=n>=64?e.shrn(n-63):e.shln(63-n);for(;o.gt(new B(0))&&s<un;){c=c.mul(c);let y=c.shrn(127);c=c.shrn(63+y.toNumber()),a=a.add(o.mul(y)),o=o.shrn(1),s+=1}let u=a.shrn(32),l=i.add(u).mul(new B(cn)),d=Rt(l.sub(new B(mn)),64,128).toNumber(),p=Rt(l.add(new B(ln)),64,128).toNumber();return d==p?d:z.getSqrtPriceX64FromTick(p).lte(e)?p:d}};var W=class{static addDelta(e,n){return e.add(n)}static getTokenAmountAFromLiquidity(e,n,r,i){if(e.gt(n)&&([e,n]=[n,e]),!e.gt(J))throw new Error("sqrtPriceX64A must greater than 0");let o=r.ushln(ve),s=n.sub(e);return i?P.mulDivRoundingUp(P.mulDivCeil(o,s,n),be,e):P.mulDivFloor(o,s,n).div(e)}static getTokenAmountBFromLiquidity(e,n,r,i){if(e.gt(n)&&([e,n]=[n,e]),!e.gt(J))throw new Error("sqrtPriceX64A must greater than 0");return i?P.mulDivCeil(r,n.sub(e),$):P.mulDivFloor(r,n.sub(e),$)}static getLiquidityFromTokenAmountA(e,n,r,i){e.gt(n)&&([e,n]=[n,e]);let o=r.mul(e).mul(n),s=n.sub(e),a=o.div(s);return i?P.mulDivRoundingUp(a,be,xt):a.shrn(ve)}static getLiquidityFromTokenAmountB(e,n,r){return e.gt(n)&&([e,n]=[n,e]),P.mulDivFloor(r,xt,n.sub(e))}static getLiquidityFromTokenAmounts(e,n,r,i,o){if(n.gt(r)&&([n,r]=[r,n]),e.lte(n))return W.getLiquidityFromTokenAmountA(n,r,i,!1);if(e.lt(r)){let s=W.getLiquidityFromTokenAmountA(e,r,i,!1),a=W.getLiquidityFromTokenAmountB(n,e,o);return s.lt(a)?s:a}else return W.getLiquidityFromTokenAmountB(n,r,o)}static getAmountsFromLiquidity(e,n,r,i,o){if(n.gt(r)&&([n,r]=[r,n]),e.lte(n))return{amountA:W.getTokenAmountAFromLiquidity(n,r,i,o),amountB:new B(0)};if(e.lt(r)){let s=W.getTokenAmountAFromLiquidity(e,r,i,o),a=W.getTokenAmountBFromLiquidity(n,e,i,o);return{amountA:s,amountB:a}}else return{amountA:new B(0),amountB:W.getTokenAmountBFromLiquidity(n,r,i,o)}}static getAmountsFromLiquidityWithSlippage(e,n,r,i,o,s,a){let{amountA:c,amountB:u}=W.getAmountsFromLiquidity(e,n,r,i,s),m=o?1+a:1-a,l=new B(new D(c.toString()).mul(m).toFixed(0)),d=new B(new D(u.toString()).mul(m).toFixed(0));return{amountSlippageA:l,amountSlippageB:d}}static getAmountsOutFromLiquidity({poolInfo:e,tickLower:n,tickUpper:r,liquidity:i,slippage:o,add:s,epochInfo:a,amountAddFee:c}){var q,I,O,ye;let u=z.priceToSqrtPriceX64(new D(e.price),e.mintA.decimals,e.mintB.decimals),m=z.getSqrtPriceX64FromTick(n),l=z.getSqrtPriceX64FromTick(r),d=s?1+o:1-o,p=W.getAmountsFromLiquidity(u,m,l,i,s),[y,b]=[ie(p.amountA,(q=e.mintA.extensions)==null?void 0:q.feeConfig,a,c),ie(p.amountB,(I=e.mintB.extensions)==null?void 0:I.feeConfig,a,c)],[F,N]=[ie(new B(new D(p.amountA.toString()).mul(d).toFixed(0)),(O=e.mintA.extensions)==null?void 0:O.feeConfig,a,c),ie(new B(new D(p.amountB.toString()).mul(d).toFixed(0)),(ye=e.mintB.extensions)==null?void 0:ye.feeConfig,a,c)];return{liquidity:i,amountA:y,amountB:b,amountSlippageA:F,amountSlippageB:N,expirationTime:Oe(y.expirationTime,b.expirationTime)}}};var Et=class{static getfeeGrowthInside(e,n,r){let i=new ae(0),o=new ae(0);e.tickCurrent>=n.tick?(i=n.feeGrowthOutsideX64A,o=n.feeGrowthOutsideX64B):(i=e.feeGrowthGlobalX64A.sub(n.feeGrowthOutsideX64A),o=e.feeGrowthGlobalX64B.sub(n.feeGrowthOutsideX64B));let s=new ae(0),a=new ae(0);e.tickCurrent<r.tick?(s=r.feeGrowthOutsideX64A,a=r.feeGrowthOutsideX64B):(s=e.feeGrowthGlobalX64A.sub(r.feeGrowthOutsideX64A),a=e.feeGrowthGlobalX64B.sub(r.feeGrowthOutsideX64B));let c=P.wrappingSubU128(P.wrappingSubU128(e.feeGrowthGlobalX64A,i),s),u=P.wrappingSubU128(P.wrappingSubU128(e.feeGrowthGlobalX64B,o),a);return{feeGrowthInsideX64A:c,feeGrowthInsideBX64:u}}static GetPositionFees(e,n,r,i){let{feeGrowthInsideX64A:o,feeGrowthInsideBX64:s}=this.getfeeGrowthInside(e,r,i),a=P.mulDivFloor(P.wrappingSubU128(o,n.feeGrowthInsideLastX64A),n.liquidity,$),c=n.tokenFeesOwedA.add(a),u=P.mulDivFloor(P.wrappingSubU128(s,n.feeGrowthInsideLastX64B),n.liquidity,$),m=n.tokenFeesOwedB.add(u);return{tokenFeeAmountA:c,tokenFeeAmountB:m}}static GetPositionFeesV2(e,n,r,i){let{feeGrowthInsideX64A:o,feeGrowthInsideBX64:s}=this.getfeeGrowthInside(e,r,i),a=P.mulDivFloor(P.wrappingSubU128(o,n.feeGrowthInsideLastX64A),n.liquidity,$),c=n.tokenFeesOwedA.add(a),u=P.mulDivFloor(P.wrappingSubU128(s,n.feeGrowthInsideLastX64B),n.liquidity,$),m=n.tokenFeesOwedB.add(u);return{tokenFeeAmountA:c,tokenFeeAmountB:m}}static GetPositionRewardsV2(e,n,r,i){let o=[],s=this.getRewardGrowthInsideV2(e.tickCurrent,r,i,e.rewardInfos);for(let a=0;a<s.length;a++){let c=s[a],u=n.rewardInfos[a],m=P.wrappingSubU128(c,u.growthInsideLastX64),l=P.mulDivFloor(m,n.liquidity,$),d=u.rewardAmountOwed.add(l);o.push(d)}return o}static GetPositionRewards(e,n,r,i){let o=[],s=this.getRewardGrowthInside(e.tickCurrent,r,i,e.rewardInfos);for(let a=0;a<s.length;a++){let c=s[a],u=n.rewardInfos[a],m=P.wrappingSubU128(c,u.growthInsideLastX64),l=P.mulDivFloor(m,n.liquidity,$),d=u.rewardAmountOwed.add(l);o.push(d)}return o}static getRewardGrowthInside(e,n,r,i){let o=[];for(let s=0;s<i.length;s++){let a=new ae(0);n.liquidityGross.eqn(0)?a=i[s].rewardGrowthGlobalX64:e<n.tick?a=i[s].rewardGrowthGlobalX64.sub(n.rewardGrowthsOutsideX64[s]):a=n.rewardGrowthsOutsideX64[s];let c=new ae(0);r.liquidityGross.eqn(0)||(e<r.tick?c=r.rewardGrowthsOutsideX64[s]:c=i[s].rewardGrowthGlobalX64.sub(r.rewardGrowthsOutsideX64[s])),o.push(P.wrappingSubU128(P.wrappingSubU128(i[s].rewardGrowthGlobalX64,a),c))}return o}static getRewardGrowthInsideV2(e,n,r,i){let o=[];for(let s=0;s<i.length;s++){let a=new ae(0);n.liquidityGross.eqn(0)?a=i[s].rewardGrowthGlobalX64:e<n.tick?a=i[s].rewardGrowthGlobalX64.sub(n.rewardGrowthsOutsideX64[s]):a=n.rewardGrowthsOutsideX64[s];let c=new ae(0);r.liquidityGross.eqn(0)||(e<r.tick?c=r.rewardGrowthsOutsideX64[s]:c=i[s].rewardGrowthGlobalX64.sub(r.rewardGrowthsOutsideX64[s])),o.push(P.wrappingSubU128(P.wrappingSubU128(i[s].rewardGrowthGlobalX64,a),c))}return o}static getAmountsFromLiquidity({poolInfo:e,ownerPosition:n,liquidity:r,slippage:i,add:o,epochInfo:s}){var F,N,q,I;let a=z.priceToSqrtPriceX64(new D(e.price),e.mintA.decimals,e.mintB.decimals),c=z.getSqrtPriceX64FromTick(n.tickLower),u=z.getSqrtPriceX64FromTick(n.tickUpper),m=o?1+i:1-i,l=W.getAmountsFromLiquidity(a,c,u,r,o),[d,p]=[ie(l.amountA,(F=e.mintA.extensions)==null?void 0:F.feeConfig,s,!0),ie(l.amountB,(N=e.mintB.extensions)==null?void 0:N.feeConfig,s,!0)],[y,b]=[ie(new ae(new D(l.amountA.toString()).mul(m).toFixed(0)),(q=e.mintA.extensions)==null?void 0:q.feeConfig,s,!0),ie(new ae(new D(l.amountB.toString()).mul(m).toFixed(0)),(I=e.mintB.extensions)==null?void 0:I.feeConfig,s,!0)];return{liquidity:r,amountA:d,amountB:p,amountSlippageA:y,amountSlippageB:b,expirationTime:Oe(d.expirationTime,p.expirationTime)}}};export{Et as PositionUtils};
//# sourceMappingURL=position.mjs.map