function div(d,c){return(d-(d%c))/c}BigDecimal.prototype.div=div;function arraycopy(f,e,a,d,c){var b;if(d>e){for(b=c-1;b>=0;--b){a[b+d]=f[b+e]}}else{for(b=0;b<c;++b){a[b+d]=f[b+e]}}}BigDecimal.prototype.arraycopy=arraycopy;function createArrayWithZeros(b){var c=new Array(b);var a;for(a=0;a<b;++a){c[a]=0}return c}BigDecimal.prototype.createArrayWithZeros=createArrayWithZeros;BigDecimal.prototype.abs=abs;BigDecimal.prototype.add=add;BigDecimal.prototype.compareTo=compareTo;BigDecimal.prototype.divide=divide;BigDecimal.prototype.divideInteger=divideInteger;BigDecimal.prototype.max=max;BigDecimal.prototype.min=min;BigDecimal.prototype.multiply=multiply;BigDecimal.prototype.negate=negate;BigDecimal.prototype.plus=plus;BigDecimal.prototype.pow=pow;BigDecimal.prototype.remainder=remainder;BigDecimal.prototype.subtract=subtract;BigDecimal.prototype.equals=equals;BigDecimal.prototype.format=format;BigDecimal.prototype.intValueExact=intValueExact;BigDecimal.prototype.movePointLeft=movePointLeft;BigDecimal.prototype.movePointRight=movePointRight;BigDecimal.prototype.scale=scale;BigDecimal.prototype.setScale=setScale;BigDecimal.prototype.signum=signum;BigDecimal.prototype.toString=toString;BigDecimal.prototype.layout=layout;BigDecimal.prototype.intcheck=intcheck;BigDecimal.prototype.dodivide=dodivide;BigDecimal.prototype.bad=bad;BigDecimal.prototype.badarg=badarg;BigDecimal.prototype.extend=extend;BigDecimal.prototype.byteaddsub=byteaddsub;BigDecimal.prototype.diginit=diginit;BigDecimal.prototype.clone=clone;BigDecimal.prototype.checkdigits=checkdigits;BigDecimal.prototype.round=round;BigDecimal.prototype.allzero=allzero;BigDecimal.prototype.finish=finish;BigDecimal.prototype.sqroot=sqroot;BigDecimal.prototype.ROUND_CEILING=MathContext.prototype.ROUND_CEILING;BigDecimal.prototype.ROUND_DOWN=MathContext.prototype.ROUND_DOWN;BigDecimal.prototype.ROUND_FLOOR=MathContext.prototype.ROUND_FLOOR;BigDecimal.prototype.ROUND_HALF_DOWN=MathContext.prototype.ROUND_HALF_DOWN;BigDecimal.prototype.ROUND_HALF_EVEN=MathContext.prototype.ROUND_HALF_EVEN;BigDecimal.prototype.ROUND_HALF_UP=MathContext.prototype.ROUND_HALF_UP;BigDecimal.prototype.ROUND_UNNECESSARY=MathContext.prototype.ROUND_UNNECESSARY;BigDecimal.prototype.ROUND_UP=MathContext.prototype.ROUND_UP;BigDecimal.prototype.ispos=1;BigDecimal.prototype.iszero=0;BigDecimal.prototype.isneg=-1;BigDecimal.prototype.MinExp=-999999999;BigDecimal.prototype.MaxExp=999999999;BigDecimal.prototype.MinArg=-999999999;BigDecimal.prototype.MaxArg=999999999;BigDecimal.prototype.plainMC=new MathContext(0,MathContext.prototype.PLAIN);BigDecimal.prototype.bytecar=new Array((90+99)+1);BigDecimal.prototype.bytedig=diginit();BigDecimal.prototype.ZERO=new BigDecimal("0");BigDecimal.prototype.ONE=new BigDecimal("1");BigDecimal.prototype.TEN=new BigDecimal("10");function BigDecimal(){this.ind=0;this.form=MathContext.prototype.PLAIN;this.mant=null;this.exp=0;if(BigDecimal.arguments.length==0){return}var t;var m;var h;if(BigDecimal.arguments.length==1){t=BigDecimal.arguments[0];m=0;h=t.length}else{t=BigDecimal.arguments[0];m=BigDecimal.arguments[1];h=BigDecimal.arguments[2]}if(typeof t=="string"){t=t.split("")}var o;var s;var v;var z;var n;var r=0;var y=0;var a=false;var p=0;var u=0;var q=0;var x=0;var w=0;var c=0;if(h<=0){this.bad("BigDecimal(): ",t)}this.ind=this.ispos;if(t[0]==("-")){h--;if(h==0){this.bad("BigDecimal(): ",t)}this.ind=this.isneg;m++}else{if(t[0]==("+")){h--;if(h==0){this.bad("BigDecimal(): ",t)}m++}}o=false;s=false;v=0;z=-1;n=-1;var l=h;r=m;r:for(;l>0;l--,r++){y=t[r];if(y>="0"){if(y<="9"){n=r;v++;continue r}}if(y=="."){if(z>=0){this.bad("BigDecimal(): ",t)}z=r-m;continue r}if(y!="e"){if(y!="E"){if(y<"0"||y>"9"){this.bad("BigDecimal(): ",t)}o=true;n=r;v++;continue r}}if((r-m)>(h-2)){this.bad("BigDecimal(): ",t)}a=false;if((t[r+1])==("-")){a=true;p=r+2}else{if((t[r+1])==("+")){p=r+2}else{p=r+1}}u=h-((p-m));if((u==0)||(u>9)){this.bad("BigDecimal(): ",t)}var g=u;q=p;q:for(;g>0;g--,q++){x=t[q];if(x<"0"){this.bad("BigDecimal(): ",t)}if(x>"9"){this.bad("BigDecimal(): ",t)}else{w=x-"0"}this.exp=(this.exp*10)+w}if(a){this.exp=-this.exp}s=true;break r}if(v==0){this.bad("BigDecimal(): ",t)}if(z>=0){this.exp=(this.exp+z)-v}var f=n-1;r=m;r:for(;r<=f;r++){y=t[r];if(y=="0"){m++;z--;v--}else{if(y=="."){m++;z--}else{if(y<="9"){break r}else{break r}}}}this.mant=new Array(v);q=m;if(o){exotica:do{var e=v;r=0;r:for(;e>0;e--,r++){if(r==z){q++}x=t[q];if(x<="9"){this.mant[r]=x-"0"}else{this.bad("BigDecimal(): ",t)}q++}}while(false)}else{simple:do{var b=v;r=0;r:for(;b>0;b--,r++){if(r==z){q++}this.mant[r]=t[q]-"0";q++}}while(false)}if(this.mant[0]==0){this.ind=this.iszero;if(this.exp>0){this.exp=0}if(s){this.mant=this.ZERO.mant;this.exp=0}}else{if(s){this.form=MathContext.prototype.SCIENTIFIC;c=(this.exp+this.mant.length)-1;if((c<this.MinExp)||(c>this.MaxExp)){this.bad("BigDecimal(): ",t)}}}return}function abs(){var a;if(abs.arguments.length==1){a=abs.arguments[0]}else{if(abs.arguments.length==0){a=this.plainMC}else{throw"abs(): "+abs.arguments.length+" arguments given; expected 0 or 1"}}if(this.ind==this.isneg){return this.negate(a)}return this.plus(a)}MathContext.prototype.BETTER=new MathContext(31,MathContext.prototype.DEFAULT_FORM,MathContext.prototype.DEFAULT_LOSTDIGITS,MathContext.prototype.ROUND_UNNECESSARY);function sqroot(){var j;if(sqroot.arguments.length==1){j=sqroot.arguments[0]}else{j=this.plainMC}var c=function(m){var l=new BigDecimal(m.format(-1,0,-1,-1,MathContext.prototype.SCIENTIFIC,MathContext.prototype.ROUND_DOWN));var k=l.toString().length;if((k%2)==0){k--}k=k>>1;return this.ONE.movePointRight(k)};var a=this;if(a.compareTo(this.ZERO)<=0){return}var f=new BigDecimal("2");var d;var e=c.call(this,a);var i=new BigDecimal("11111.0");var h=99;var b=0;var g=true;while(g){d=e;e=a.dodivide("D",e,j,31);e=e.add(d,j);e=e.dodivide("D",f,j,31);i=a.subtract(e.multiply(e,j));if(++b>=h){g=false}else{if(d.equals(e)){g=i.abs().compareTo(this.ONE.movePointLeft(5))>=0}}}return e.finish(j,false)}function add(){var j;if(add.arguments.length==2){j=add.arguments[1]}else{if(add.arguments.length==1){j=this.plainMC}else{throw"add(): "+add.arguments.length+" arguments given; expected 1 or 2"}}var a=add.arguments[0];var p;var b;var r;var d;var q;var s;var n;var h=0;var c=0;var e=0;var i=null;var o=0;var m=0;var g=0;var f=0;var l=0;var k=0;if(j.lostDigits){this.checkdigits(a,j.digits)}p=this;if(p.ind==0){if(j.form!=MathContext.prototype.PLAIN){return a.plus(j)}}if(a.ind==0){if(j.form!=MathContext.prototype.PLAIN){return p.plus(j)}}b=j.digits;if(b>0){if(p.mant.length>b){p=this.clone(p).round(j)}if(a.mant.length>b){a=this.clone(a).round(j)}}r=new BigDecimal();d=p.mant;q=p.mant.length;s=a.mant;n=a.mant.length;padder:do{if(p.exp==a.exp){r.exp=p.exp}else{if(p.exp>a.exp){h=(q+p.exp)-a.exp;if(h>=((n+b)+1)){if(b>0){r.mant=d;r.exp=p.exp;r.ind=p.ind;if(q<b){r.mant=this.extend(p.mant,b);r.exp=r.exp-((b-q))}return r.finish(j,false)}}r.exp=a.exp;if(h>(b+1)){if(b>0){c=(h-b)-1;n=n-c;r.exp=r.exp+c;h=b+1}}if(h>q){q=h}}else{h=(n+a.exp)-p.exp;if(h>=((q+b)+1)){if(b>0){r.mant=s;r.exp=a.exp;r.ind=a.ind;if(n<b){r.mant=this.extend(a.mant,b);r.exp=r.exp-((b-n))}return r.finish(j,false)}}r.exp=p.exp;if(h>(b+1)){if(b>0){c=(h-b)-1;q=q-c;r.exp=r.exp+c;h=b+1}}if(h>n){n=h}}}}while(false);if(p.ind==this.iszero){r.ind=this.ispos}else{r.ind=p.ind}if(((p.ind==this.isneg)?1:0)==((a.ind==this.isneg)?1:0)){e=1}else{signdiff:do{e=-1;swaptest:do{if(a.ind==this.iszero){}else{if((q<n)||(p.ind==this.iszero)){i=d;d=s;s=i;c=q;q=n;n=c;r.ind=-r.ind}else{if(q>n){}else{o=0;m=0;g=d.length-1;f=s.length-1;compare:for(;;){if(o<=g){l=d[o]}else{if(m>f){if(j.form!=MathContext.prototype.PLAIN){return this.ZERO}break compare}l=0}if(m<=f){k=s[m]}else{k=0}if(l!=k){if(l<k){i=d;d=s;s=i;c=q;q=n;n=c;r.ind=-r.ind}break compare}o++;m++}}}}}while(false)}while(false)}r.mant=this.byteaddsub(d,q,s,n,e,false);return r.finish(j,false)}function compareTo(){var f;if(compareTo.arguments.length==2){f=compareTo.arguments[1]}else{if(compareTo.arguments.length==1){f=this.plainMC}else{throw"compareTo(): "+compareTo.arguments.length+" arguments given; expected 1 or 2"}}var e=compareTo.arguments[0];var d=0;var a=0;var c;if(f.lostDigits){this.checkdigits(e,f.digits)}if((this.ind==e.ind)&&(this.exp==e.exp)){d=this.mant.length;if(d<e.mant.length){return -this.ind}if(d>e.mant.length){return this.ind}if((d<=f.digits)||(f.digits==0)){var b=d;a=0;a:for(;b>0;b--,a++){if(this.mant[a]<e.mant[a]){return -this.ind}if(this.mant[a]>e.mant[a]){return this.ind}}return 0}}else{if(this.ind<e.ind){return -1}if(this.ind>e.ind){return 1}}c=this.clone(e);c.ind=-c.ind;return this.add(c,f).ind}function divide(){var c;var a=-1;if(divide.arguments.length==2){if(typeof divide.arguments[1]=="number"){c=new MathContext(0,MathContext.prototype.PLAIN,false,divide.arguments[1])}else{c=divide.arguments[1]}}else{if(divide.arguments.length==3){a=divide.arguments[1];if(a<0){throw"divide(): Negative scale: "+a}c=new MathContext(0,MathContext.prototype.PLAIN,false,divide.arguments[2])}else{if(divide.arguments.length==1){c=this.plainMC}else{throw"divide(): "+divide.arguments.length+" arguments given; expected between 1 and 3"}}}var b=divide.arguments[0];return this.dodivide("D",b,c,a)}function divideInteger(){var b;if(divideInteger.arguments.length==2){b=divideInteger.arguments[1]}else{if(divideInteger.arguments.length==1){b=this.plainMC}else{throw"divideInteger(): "+divideInteger.arguments.length+" arguments given; expected 1 or 2"}}var a=divideInteger.arguments[0];return this.dodivide("I",a,b,0)}function max(){var b;if(max.arguments.length==2){b=max.arguments[1]}else{if(max.arguments.length==1){b=this.plainMC}else{throw"max(): "+max.arguments.length+" arguments given; expected 1 or 2"}}var a=max.arguments[0];if((this.compareTo(a,b))>=0){return this.plus(b)}else{return a.plus(b)}}function min(){var b;if(min.arguments.length==2){b=min.arguments[1]}else{if(min.arguments.length==1){b=this.plainMC}else{throw"min(): "+min.arguments.length+" arguments given; expected 1 or 2"}}var a=min.arguments[0];if((this.compareTo(a,b))<=0){return this.plus(b)}else{return a.plus(b)}}function multiply(){var l;if(multiply.arguments.length==2){l=multiply.arguments[1]}else{if(multiply.arguments.length==1){l=this.plainMC}else{throw"multiply(): "+multiply.arguments.length+" arguments given; expected 1 or 2"}}var h=multiply.arguments[0];var d;var k;var g;var c=null;var m=null;var i;var o=0;var j;var e;var b=0;var f=0;if(l.lostDigits){this.checkdigits(h,l.digits)}d=this;k=0;g=l.digits;if(g>0){if(d.mant.length>g){d=this.clone(d).round(l)}if(h.mant.length>g){h=this.clone(h).round(l)}}else{if(d.exp>0){k=k+d.exp}if(h.exp>0){k=k+h.exp}}if(d.mant.length<h.mant.length){c=d.mant;m=h.mant}else{c=h.mant;m=d.mant}i=(c.length+m.length)-1;if((c[0]*m[0])>9){o=i+1}else{o=i}j=new BigDecimal();e=this.createArrayWithZeros(o);var a=c.length;b=0;b:for(;a>0;a--,b++){f=c[b];if(f!=0){e=this.byteaddsub(e,e.length,m,i,f,true)}i--}j.ind=d.ind*h.ind;j.exp=(d.exp+h.exp)-k;if(k==0){j.mant=e}else{j.mant=this.extend(e,e.length+k)}return j.finish(l,false)}function negate(){var b;if(negate.arguments.length==1){b=negate.arguments[0]}else{if(negate.arguments.length==0){b=this.plainMC}else{throw"negate(): "+negate.arguments.length+" arguments given; expected 0 or 1"}}var a;if(b.lostDigits){this.checkdigits(null,b.digits)}a=this.clone(this);a.ind=-a.ind;return a.finish(b,false)}function plus(){var a;if(plus.arguments.length==1){a=plus.arguments[0]}else{if(plus.arguments.length==0){a=this.plainMC}else{throw"plus(): "+plus.arguments.length+" arguments given; expected 0 or 1"}}if(a.lostDigits){this.checkdigits(null,a.digits)}if(a.form==MathContext.prototype.PLAIN){if(this.form==MathContext.prototype.PLAIN){if(this.mant.length<=a.digits){return this}if(a.digits==0){return this}}}return this.clone(this).finish(a,false)}function pow(){var l;if(pow.arguments.length==2){l=pow.arguments[1]}else{if(pow.arguments.length==1){l=this.plainMC}else{throw"pow(): "+pow.arguments.length+" arguments given; expected 1 or 2"}}var h=pow.arguments[0];var a;var b;var d;var g=0;var k=0;var f;var j;var e;var c=0;if(l.lostDigits){this.checkdigits(h,l.digits)}a=h.intcheck(this.MinArg,this.MaxArg);b=this;d=l.digits;if(d==0){if(h.ind==this.isneg){throw"pow(): Negative power: "+h.toString()}g=0}else{if((h.mant.length+h.exp)>d){throw"pow(): Too many digits: "+h.toString()}if(b.mant.length>d){b=this.clone(b).round(l)}k=h.mant.length+h.exp;g=(d+k)+1}f=new MathContext(g,l.form,false,l.roundingMode);j=this.ONE;if(a==0){return j}if(a<0){a=-a}e=false;c=1;c:for(;;c++){a=a+a;if(a<0){e=true;j=j.multiply(b,f)}if(c==31){break c}if((!e)){continue c}j=j.multiply(j,f)}if(h.ind<0){j=this.ONE.divide(j,f)}return j.finish(l,true)}function remainder(){var b;if(remainder.arguments.length==2){b=remainder.arguments[1]}else{if(remainder.arguments.length==1){b=this.plainMC}else{throw"remainder(): "+remainder.arguments.length+" arguments given; expected 1 or 2"}}var a=remainder.arguments[0];return this.dodivide("R",a,b,-1)}function subtract(){var c;if(subtract.arguments.length==2){c=subtract.arguments[1]}else{if(subtract.arguments.length==1){c=this.plainMC}else{throw"subtract(): "+subtract.arguments.length+" arguments given; expected 1 or 2"}}var b=subtract.arguments[0];var a;if(c.lostDigits){this.checkdigits(b,c.digits)}a=this.clone(b);a.ind=-a.ind;return this.add(a,c)}function equals(e){var g;var c=0;var f=null;var d=null;if(e==null){return false}if((!(((e instanceof BigDecimal))))){return false}g=e;if(this.ind!=g.ind){return false}if(((this.mant.length==g.mant.length)&&(this.exp==g.exp))&&(this.form==g.form)){var b=this.mant.length;c=0;c:for(;b>0;b--,c++){if(this.mant[c]!=g.mant[c]){return false}}}else{f=this.layout();d=g.layout();if(f.length!=d.length){return false}var a=f.length;c=0;c:for(;a>0;a--,c++){if(f[c]!=d[c]){return false}}}return true}function format(){var y;var g;var d;var e;if(format.arguments.length==6){y=format.arguments[2];g=format.arguments[3];d=format.arguments[4];e=format.arguments[5]}else{if(format.arguments.length==2){y=-1;g=-1;d=MathContext.prototype.SCIENTIFIC;e=this.ROUND_HALF_UP}else{throw"format(): "+format.arguments.length+" arguments given; expected 2 or 6"}}var s=format.arguments[0];var f=format.arguments[1];var j;var c=0;var h=0;var A=0;var b=null;var w=0;var o=0;var m=0;var B;var v=0;var x=null;var z=0;var r=0;if((s<(-1))||(s==0)){this.badarg("format",1,s)}if(f<(-1)){this.badarg("format",2,f)}if((y<(-1))||(y==0)){this.badarg("format",3,y)}if(g<(-1)){this.badarg("format",4,g)}if(d==MathContext.prototype.SCIENTIFIC){}else{if(d==MathContext.prototype.ENGINEERING){}else{if(d==(-1)){d=MathContext.prototype.SCIENTIFIC}else{this.badarg("format",5,d)}}}if(e!=this.ROUND_HALF_UP){try{if(e==(-1)){e=this.ROUND_HALF_UP}else{new MathContext(9,MathContext.prototype.SCIENTIFIC,false,e)}}catch(u){this.badarg("format",6,e)}}j=this.clone(this);setform:do{if(g==(-1)){j.form=MathContext.prototype.PLAIN}else{if(j.ind==this.iszero){j.form=MathContext.prototype.PLAIN}else{c=j.exp+j.mant.length;if(c>g){j.form=d}else{if(c<(-5)){j.form=d}else{j.form=MathContext.prototype.PLAIN}}}}}while(false);if(f>=0){setafter:for(;;){if(j.form==MathContext.prototype.PLAIN){h=-j.exp}else{if(j.form==MathContext.prototype.SCIENTIFIC){h=j.mant.length-1}else{A=(((j.exp+j.mant.length)-1))%3;if(A<0){A=3+A}A++;if(A>=j.mant.length){h=0}else{h=j.mant.length-A}}}if(h==f){break setafter}if(h<f){b=this.extend(j.mant,(j.mant.length+f)-h);j.mant=b;j.exp=j.exp-((f-h));if(j.exp<this.MinExp){throw"format(): Exponent Overflow: "+j.exp}break setafter}w=h-f;if(w>j.mant.length){j.mant=this.ZERO.mant;j.ind=this.iszero;j.exp=0;continue setafter}o=j.mant.length-w;m=j.exp;j.round(o,e);if((j.exp-m)==w){break setafter}}}B=j.layout();if(s>0){var t=B.length;v=0;v:for(;t>0;t--,v++){if(B[v]=="."){break v}if(B[v]=="E"){break v}}if(v>s){this.badarg("format",1,s)}if(v<s){x=new Array((B.length+s)-v);var q=s-v;z=0;z:for(;q>0;q--,z++){x[z]=" "}this.arraycopy(B,0,x,z,B.length);B=x}}if(y>0){var n=B.length-1;v=B.length-1;v:for(;n>0;n--,v--){if(B[v]=="E"){break v}}if(v==0){x=new Array((B.length+y)+2);this.arraycopy(B,0,x,0,B.length);var l=y+2;z=B.length;z:for(;l>0;l--,z++){x[z]=" "}B=x}else{r=(B.length-v)-2;if(r>y){this.badarg("format",3,y)}if(r<y){x=new Array((B.length+y)-r);this.arraycopy(B,0,x,0,v+2);var k=y-r;z=v+2;z:for(;k>0;k--,z++){x[z]="0"}this.arraycopy(B,v+2,x,z,r);B=x}}}return B.join("")}function intValueExact(){var e;var c=0;var a;var b=0;var f=0;if(this.ind==this.iszero){return 0}e=this.mant.length-1;if(this.exp<0){e=e+this.exp;if((!(this.allzero(this.mant,e+1)))){throw"intValueExact(): Decimal part non-zero: "+this.toString()}if(e<0){return 0}c=0}else{if((this.exp+e)>9){throw"intValueExact(): Conversion overflow: "+this.toString()}c=this.exp}a=0;var d=e+c;b=0;b:for(;b<=d;b++){a=a*10;if(b<=e){a=a+this.mant[b]}}if((e+c)==9){f=div(a,1000000000);if(f!=this.mant[0]){if(a==-2147483648){if(this.ind==this.isneg){if(this.mant[0]==2){return a}}}throw"intValueExact(): Conversion overflow: "+this.toString()}}if(this.ind==this.ispos){return a}return -a}function movePointLeft(b){var a;a=this.clone(this);a.exp=a.exp-b;return a.finish(this.plainMC,false)}function movePointRight(b){var a;a=this.clone(this);a.exp=a.exp+b;return a.finish(this.plainMC,false)}function scale(){if(this.exp>=0){return 0}return -this.exp}function setScale(){var b;if(setScale.arguments.length==2){b=setScale.arguments[1]}else{if(setScale.arguments.length==1){b=this.ROUND_UNNECESSARY}else{throw"setScale(): "+setScale.arguments.length+" given; expected 1 or 2"}}var f=setScale.arguments[0];var a;var c;var d=0;var e=0;a=this.scale();if(a==f){if(this.form==MathContext.prototype.PLAIN){return this}}c=this.clone(this);if(a<=f){if(a==0){d=c.exp+f}else{d=f-a}c.mant=this.extend(c.mant,c.mant.length+d);c.exp=-f}else{if(f<0){throw"setScale(): Negative scale: "+f}e=c.mant.length-((a-f));c=c.round(e,b);if(c.exp!=(-f)){c.mant=this.extend(c.mant,c.mant.length+1);c.exp=c.exp-1}}c.form=MathContext.prototype.PLAIN;return c}function signum(){return this.ind}function toString(){return this.layout().join("").trim0()}function layout(){var n;var f=0;var m=null;var l=0;var o=0;var k=0;var e=null;var j;var g;var h=0;n=new Array(this.mant.length);var d=this.mant.length;f=0;f:for(;d>0;d--,f++){n[f]=this.mant[f]+""}if(this.form!=MathContext.prototype.PLAIN){m="";if(this.ind==this.isneg){m+="-"}l=(this.exp+n.length)-1;if(this.form==MathContext.prototype.SCIENTIFIC){m+=n[0];if(n.length>1){m+="."}m+=n.slice(1).join("")}else{engineering:do{o=l%3;if(o<0){o=3+o}l=l-o;o++;if(o>=n.length){m+=n.join("");var b=o-n.length;for(;b>0;b--){m+="0"}}else{m+=n.slice(0,o).join("");m+=".";m+=n.slice(o).join("")}}while(false)}if(l!=0){if(l<0){k="-";l=-l}else{k="+"}m+="E";m+=k;m+=l}return m.split("")}if(this.exp==0){if(this.ind>=0){return n}e=new Array(n.length+1);e[0]="-";this.arraycopy(n,0,e,1,n.length);return e}j=((this.ind==this.isneg)?1:0);g=this.exp+n.length;if(g<1){h=(j+2)-this.exp;e=new Array(h);if(j!=0){e[0]="-"}e[j]="0";e[j+1]=".";var c=-g;f=j+2;f:for(;c>0;c--,f++){e[f]="0"}this.arraycopy(n,0,e,(j+2)-g,n.length);return e}if(g>n.length){h=j+g;e=new Array(h);if(j!=0){e[0]="-"}this.arraycopy(n,0,e,j,n.length);var a=g-n.length;f=j+n.length;f:for(;a>0;a--,f++){e[f]="0"}return e}h=(j+1)+n.length;e=new Array(h);if(j!=0){e[0]="-"}this.arraycopy(n,0,e,j,g);e[j+g]=".";this.arraycopy(n,g,e,(j+g)+1,n.length-g);return e}function intcheck(c,a){var b;b=this.intValueExact();if((b<c)||(b>a)){throw"intcheck(): Conversion overflow: "+b}return b}function dodivide(c,a,s,C){var v;var b;var A;var D;var q;var E;var h;var B;var o;var j;var k;var u=0;var w=0;var g=0;var p=0;var n=0;var m=0;var t=0;var z=0;var l=null;var r=0;var f=0;var e=null;if(s.lostDigits){this.checkdigits(a,s.digits)}v=this;if(a.ind==0){throw"dodivide(): Divide by 0"}if(v.ind==0){if(s.form!=MathContext.prototype.PLAIN){return this.ZERO}if(C==(-1)){return v}return v.setScale(C)}b=s.digits;if(b>0){if(v.mant.length>b){v=this.clone(v).round(s)}if(a.mant.length>b){a=this.clone(a).round(s)}}else{if(C==(-1)){C=v.scale()}b=v.mant.length;if(C!=(-v.exp)){b=(b+C)+v.exp}b=(b-((a.mant.length-1)))-a.exp;if(b<v.mant.length){b=v.mant.length}if(b<a.mant.length){b=a.mant.length}}A=((v.exp-a.exp)+v.mant.length)-a.mant.length;if(A<0){if(c!="D"){if(c=="I"){return this.ZERO}return this.clone(v).finish(s,false)}}D=new BigDecimal();D.ind=(v.ind*a.ind);D.exp=A;D.mant=this.createArrayWithZeros(b+1);q=(b+b)+1;E=this.extend(v.mant,q);h=q;B=a.mant;o=q;j=(B[0]*10)+1;if(B.length>1){j=j+B[1]}k=0;outer:for(;;){u=0;inner:for(;;){if(h<o){break inner}if(h==o){compare:do{var y=h;w=0;w:for(;y>0;y--,w++){if(w<B.length){g=B[w]}else{g=0}if(E[w]<g){break inner}if(E[w]>g){break compare}}u++;D.mant[k]=u;k++;E[0]=0;break outer}while(false);p=E[0]}else{p=E[0]*10;if(h>1){p=p+E[1]}}n=div((p*10),j);if(n==0){n=1}u=u+n;E=this.byteaddsub(E,h,B,o,-n,true);if(E[0]!=0){continue inner}var x=h-2;m=0;m:for(;m<=x;m++){if(E[m]!=0){break m}h--}if(m==0){continue inner}this.arraycopy(E,m,E,0,h)}if((k!=0)||(u!=0)){D.mant[k]=u;k++;if(k==(b+1)){break outer}if(E[0]==0){break outer}}if(C>=0){if((-D.exp)>C){break outer}}if(c!="D"){if(D.exp<=0){break outer}}D.exp=D.exp-1;o--}if(k==0){k=1}if((c=="I")||(c=="R")){if((k+D.exp)>b){throw"dodivide(): Integer overflow"}if(c=="R"){remainder:do{if(D.mant[0]==0){return this.clone(v).finish(s,false)}if(E[0]==0){return this.ZERO}D.ind=v.ind;t=((b+b)+1)-v.mant.length;D.exp=(D.exp-t)+v.exp;z=h;w=z-1;w:for(;w>=1;w--){if(!((D.exp<v.exp)&&(D.exp<a.exp))){break}if(E[w]!=0){break w}z--;D.exp=D.exp+1}if(z<E.length){l=new Array(z);this.arraycopy(E,0,l,0,z);E=l}D.mant=E;return D.finish(s,false)}while(false)}}else{if(E[0]!=0){r=D.mant[k-1];if(((r%5))==0){D.mant[k-1]=(r+1)}}}if(C>=0){scaled:do{if(k!=D.mant.length){D.exp=D.exp-((D.mant.length-k))}f=D.mant.length-(((-D.exp)-C));D.round(f,s.roundingMode);if(D.exp!=(-C)){D.mant=this.extend(D.mant,D.mant.length+1);D.exp=D.exp-1}return D.finish(s,true)}while(false)}if(k==D.mant.length){D.round(s);k=b}else{if(D.mant[0]==0){return this.ZERO}e=new Array(k);this.arraycopy(D.mant,0,e,0,k);D.mant=e}return D.finish(s,true)}function bad(b,a){throw b+"Not a number: "+a}function badarg(a,c,b){throw"Bad argument "+c+" to "+a+": "+b}function extend(a,c){var b;if(a.length==c){return a}b=createArrayWithZeros(c);this.arraycopy(a,0,b,0,a.length);return b}function byteaddsub(u,e,t,r,o,c){var v;var s;var n;var w;var d;var g;var j;var l;var h=0;var f=0;var k;var p=0;v=u.length;s=t.length;n=e-1;w=r-1;d=w;if(d<n){d=n}g=null;if(c){if((d+1)==v){g=u}}if(g==null){g=this.createArrayWithZeros(d+1)}j=false;if(o==1){j=true}else{if(o==(-1)){j=true}}l=0;h=d;h:for(;h>=0;h--){if(n>=0){if(n<v){l=l+u[n]}n--}if(w>=0){if(w<s){if(j){if(o>0){l=l+t[w]}else{l=l-t[w]}}else{l=l+(t[w]*o)}}w--}if(l<10){if(l>=0){quick:do{g[h]=l;l=0;continue h}while(false)}}f=l+90;g[h]=this.bytedig[f];l=this.bytecar[f]}if(l==0){return g}k=null;if(c){if((d+2)==u.length){k=u}}if(k==null){k=new Array(d+2)}k[0]=l;var q=d+1;p=0;p:for(;q>0;q--,p++){k[p+1]=g[p]}return k}function diginit(){var a;var c=0;var b=0;a=new Array((90+99)+1);c=0;c:for(;c<=(90+99);c++){b=c-90;if(b>=0){a[c]=(b%10);BigDecimal.prototype.bytecar[c]=(div(b,10));continue c}b=b+100;a[c]=(b%10);BigDecimal.prototype.bytecar[c]=((div(b,10))-10)}return a}function clone(b){var a;a=new BigDecimal();a.ind=b.ind;a.exp=b.exp;a.form=b.form;a.mant=b.mant;return a}function checkdigits(b,a){if(a==0){return}if(this.mant.length>a){if((!(this.allzero(this.mant,a)))){throw"Too many digits: "+this.toString()}}if(b==null){return}if(b.mant.length>a){if((!(this.allzero(b.mant,a)))){throw"Too many digits: "+b.toString()}}return}function round(){var f;var d;if(round.arguments.length==2){f=round.arguments[0];d=round.arguments[1]}else{if(round.arguments.length==1){var i=round.arguments[0];f=i.digits;d=i.roundingMode}else{throw"round(): "+round.arguments.length+" arguments given; expected 1 or 2"}}var j;var b;var a;var g=false;var c=0;var h;var e=null;j=this.mant.length-f;if(j<=0){return this}this.exp=this.exp+j;b=this.ind;a=this.mant;if(f>0){this.mant=new Array(f);this.arraycopy(a,0,this.mant,0,f);g=true;c=a[f]}else{this.mant=this.ZERO.mant;this.ind=this.iszero;g=false;if(f==0){c=a[0]}else{c=0}}h=0;modes:do{if(d==this.ROUND_HALF_UP){if(c>=5){h=b}}else{if(d==this.ROUND_UNNECESSARY){if((!(this.allzero(a,f)))){throw"round(): Rounding necessary"}}else{if(d==this.ROUND_HALF_DOWN){if(c>5){h=b}else{if(c==5){if((!(this.allzero(a,f+1)))){h=b}}}}else{if(d==this.ROUND_HALF_EVEN){if(c>5){h=b}else{if(c==5){if((!(this.allzero(a,f+1)))){h=b}else{if((((this.mant[this.mant.length-1])%2))==1){h=b}}}}}else{if(d==this.ROUND_DOWN){}else{if(d==this.ROUND_UP){if((!(this.allzero(a,f)))){h=b}}else{if(d==this.ROUND_CEILING){if(b>0){if((!(this.allzero(a,f)))){h=b}}}else{if(d==this.ROUND_FLOOR){if(b<0){if((!(this.allzero(a,f)))){h=b}}}else{throw"round(): Bad round value: "+d}}}}}}}}}while(false);if(h!=0){bump:do{if(this.ind==this.iszero){this.mant=this.ONE.mant;this.ind=h}else{if(this.ind==this.isneg){h=-h}e=this.byteaddsub(this.mant,this.mant.length,this.ONE.mant,1,h,g);if(e.length>this.mant.length){this.exp++;this.arraycopy(e,0,this.mant,0,this.mant.length)}else{this.mant=e}}}while(false)}if(this.exp>this.MaxExp){throw"round(): Exponent Overflow: "+this.exp}return this}function allzero(d,c){var b=0;if(c<0){c=0}var a=d.length-1;b=c;b:for(;b<=a;b++){if(d[b]!=0){return false}}return true}function finish(j,e){var h=0;var b=0;var c=null;var f=0;var g=0;if(j.digits!=0){if(this.mant.length>j.digits){this.round(j)}}if(e){if(j.form!=MathContext.prototype.PLAIN){h=this.mant.length;b=h-1;b:for(;b>=1;b--){if(this.mant[b]!=0){break b}h--;this.exp++}if(h<this.mant.length){c=new Array(h);this.arraycopy(this.mant,0,c,0,h);this.mant=c}}}this.form=MathContext.prototype.PLAIN;var a=this.mant.length;b=0;b:for(;a>0;a--,b++){if(this.mant[b]!=0){if(b>0){delead:do{c=new Array(this.mant.length-b);this.arraycopy(this.mant,b,c,0,this.mant.length-b);this.mant=c}while(false)}f=this.exp+this.mant.length;if(f>0){if(f>j.digits){if(j.digits!=0){this.form=j.form}}if((f-1)<=this.MaxExp){return this}}else{if(f<(-5)){this.form=j.form}}f--;if((f<this.MinExp)||(f>this.MaxExp)){overflow:do{if(this.form==MathContext.prototype.ENGINEERING){g=f%3;if(g<0){g=3+g}f=f-g;if(f>=this.MinExp){if(f<=this.MaxExp){break overflow}}}throw"finish(): Exponent Overflow: "+f}while(false)}return this}}this.ind=this.iszero;if(j.form!=MathContext.prototype.PLAIN){this.exp=0}else{if(this.exp>0){this.exp=0}else{if(this.exp<this.MinExp){throw"finish(): Exponent Overflow: "+this.exp}}}this.mant=this.ZERO.mant;return this};
