From 9515d72da7acbfca58c6634eeb4a6cf16bbb5057 Mon Sep 17 00:00:00 2001 From: Nicholas Rabinowitz Date: Thu, 24 Jan 2019 14:19:16 -0800 Subject: [PATCH 1/4] Bump core library to 3.4.0, add getRes0Indexes --- .build-emscripten.sh | 3 +++ .npmignore | 2 ++ H3_VERSION | 2 +- lib/bindings.js | 4 +++- lib/h3core.js | 16 ++++++++++++++++ out/binding-functions | 1 + out/libh3.js | 6 +++--- test/h3core.spec.js | 8 ++++++++ 8 files changed, 37 insertions(+), 5 deletions(-) diff --git a/.build-emscripten.sh b/.build-emscripten.sh index b0446a4..125758b 100755 --- a/.build-emscripten.sh +++ b/.build-emscripten.sh @@ -25,6 +25,9 @@ pushd h3c git pull origin master --tags git checkout "v$(cat ../H3_VERSION)" +# Run cmake - necessary for building h3api.h +cmake . + # Get canonical list of functions the lib should expose ./scripts/binding_functions.sh && cp binding-functions ../out diff --git a/.npmignore b/.npmignore index 7d8fe54..522af2c 100644 --- a/.npmignore +++ b/.npmignore @@ -6,3 +6,5 @@ node_modules/ .* build/ test/ +*.sublime-project +*.sublime-workspace diff --git a/H3_VERSION b/H3_VERSION index 15a2799..1809198 100644 --- a/H3_VERSION +++ b/H3_VERSION @@ -1 +1 @@ -3.3.0 +3.4.0 diff --git a/lib/bindings.js b/lib/bindings.js index d34bba0..ab5a917 100644 --- a/lib/bindings.js +++ b/lib/bindings.js @@ -75,5 +75,7 @@ module.exports = [ ['hexAreaKm2', NUMBER, [RESOLUTION]], ['edgeLengthM', NUMBER, [RESOLUTION]], ['edgeLengthKm', NUMBER, [RESOLUTION]], - ['numHexagons', NUMBER, [RESOLUTION]] + ['numHexagons', NUMBER, [RESOLUTION]], + ['getRes0Indexes', null, [POINTER]], + ['res0IndexCount', NUMBER], ]; diff --git a/lib/h3core.js b/lib/h3core.js index bf5a4ea..3d0dc8a 100644 --- a/lib/h3core.js +++ b/lib/h3core.js @@ -1082,6 +1082,21 @@ function numHexagons(res) { return upper * Math.pow(2, 32) + lower; } +/** + * Get all H3 indexes at resolution 0. As every index at every resolution > 0 is + * the descendant of a res 0 index, this can be used with h3ToChildren to iterate + * over H3 indexes at any resolution. + * @return {H3Index[]} All H3 indexes at res 0 + */ +function getRes0Indexes() { + const count = H3.res0IndexCount(); + const hexagons = C._malloc(SZ_H3INDEX * count); + H3.getRes0Indexes(hexagons); + const out = readArrayOfHexagons(hexagons, count); + C._free(hexagons); + return out; +} + /** * Convert degrees to radians * @static @@ -1138,6 +1153,7 @@ module.exports = { hexArea, edgeLength, numHexagons, + getRes0Indexes, degsToRads, radsToDegs, UNITS diff --git a/out/binding-functions b/out/binding-functions index ff0b8b8..445d397 100644 --- a/out/binding-functions +++ b/out/binding-functions @@ -11,6 +11,7 @@ radsToDegs hexArea edgeLength numHexagons +getRes0Indexes h3GetResolution h3GetBaseCell stringToH3 diff --git a/out/libh3.js b/out/libh3.js index a9b7641..1474f59 100644 --- a/out/libh3.js +++ b/out/libh3.js @@ -9,14 +9,14 @@ var Module=typeof libh3!=="undefined"?libh3:{};var moduleOverrides={};var key;fo var asm=(/** @suppress {uselessCode} */ function(global,env,buffer) { "almost asm";var a=global.Int8Array;var b=new a(buffer);var c=global.Int16Array;var d=new c(buffer);var e=global.Int32Array;var f=new e(buffer);var g=global.Uint8Array;var h=new g(buffer);var i=global.Uint16Array;var j=new i(buffer);var k=global.Uint32Array;var l=new k(buffer);var m=global.Float32Array;var n=new m(buffer);var o=global.Float64Array;var p=new o(buffer);var q=global.byteLength;var r=env.k|0;var s=env.l|0;var t=env.m|0;var u=env.n|0;var v=0;var w=0;var x=0;var y=0;var z=global.NaN,A=global.Infinity;var B=0,C=0,D=0,E=0,F=0.0;var G=global.Math.floor;var H=global.Math.abs;var I=global.Math.sqrt;var J=global.Math.pow;var K=global.Math.cos;var L=global.Math.sin;var M=global.Math.tan;var N=global.Math.acos;var O=global.Math.asin;var P=global.Math.atan;var Q=global.Math.atan2;var R=global.Math.exp;var S=global.Math.log;var T=global.Math.ceil;var U=global.Math.imul;var V=global.Math.min;var W=global.Math.max;var X=global.Math.clz32;var Y=env.a;var Z=env.b;var _=env.c;var $=env.d;var aa=env.e;var ba=env.f;var ca=env.g;var da=env.h;var ea=env.i;var fa=env.j;var ga=0.0;function ha(newBuffer){if(q(newBuffer)&16777215||q(newBuffer)<=16777215||q(newBuffer)>2147483648)return false;b=new a(newBuffer);d=new c(newBuffer);f=new e(newBuffer);h=new g(newBuffer);j=new i(newBuffer);l=new k(newBuffer);n=new m(newBuffer);p=new o(newBuffer);buffer=newBuffer;return true} // EMSCRIPTEN_START_FUNCS -function ia(a){a=a|0;var b=0;b=t;t=t+a|0;t=t+15&-16;return b|0}function ja(){return t|0}function ka(a){a=a|0;t=a}function la(a,b){a=a|0;b=b|0;t=a;u=b}function ma(a,b){a=a|0;b=b|0;if(!v){v=a;w=b}}function na(a){a=a|0;return (U(a*3|0,a+1|0)|0)+1|0}function oa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=(U(c*3|0,c+1|0)|0)+1|0;f=e<<2;g=Lc(f)|0;if(!(qa(a,b,c,d,g)|0)){Mc(g);return}_c(d|0,0,e<<3|0)|0;_c(g|0,0,f|0)|0;ra(a,b,c,d,g,e,0);Mc(g);return}function pa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=(U(c*3|0,c+1|0)|0)+1|0;if(!(qa(a,b,c,d,e)|0))return;_c(d|0,0,f<<3|0)|0;_c(e|0,0,f<<2|0)|0;ra(a,b,c,d,e,f,0);return}function qa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=t;t=t+16|0;n=o;g=d;f[g>>2]=a;f[g+4>>2]=b;g=(e|0)!=0;if(g)f[e>>2]=0;if(Eb(a,b)|0){n=1;t=o;return n|0}f[n>>2]=0;a:do if((c|0)>=1)if(g){k=0;l=1;m=1;h=0;g=a;while(1){if(!(h|k)){g=sa(g,b,4,n)|0;b=ba()|0;if((g|0)==0&(b|0)==0){g=2;break a}if(Eb(g,b)|0){g=1;break a}}g=sa(g,b,f[16+(k<<2)>>2]|0,n)|0;b=ba()|0;if((g|0)==0&(b|0)==0){g=2;break a}a=d+(m<<3)|0;f[a>>2]=g;f[a+4>>2]=b;f[e+(m<<2)>>2]=l;h=h+1|0;a=(h|0)==(l|0);i=k+1|0;j=(i|0)==6;if(Eb(g,b)|0){g=1;break a}l=l+(j&a&1)|0;if((l|0)>(c|0)){g=0;break}else{k=a?(j?0:i):k;m=m+1|0;h=a?0:h}}}else{k=0;l=1;m=1;h=0;g=a;while(1){if(!(h|k)){g=sa(g,b,4,n)|0;b=ba()|0;if((g|0)==0&(b|0)==0){g=2;break a}if(Eb(g,b)|0){g=1;break a}}g=sa(g,b,f[16+(k<<2)>>2]|0,n)|0;b=ba()|0;if((g|0)==0&(b|0)==0){g=2;break a}a=d+(m<<3)|0;f[a>>2]=g;f[a+4>>2]=b;h=h+1|0;a=(h|0)==(l|0);i=k+1|0;j=(i|0)==6;if(Eb(g,b)|0){g=1;break a}l=l+(j&a&1)|0;if((l|0)>(c|0)){g=0;break}else{k=a?(j?0:i):k;m=m+1|0;h=a?0:h}}}else g=0;while(0);n=g;t=o;return n|0}function ra(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=t;t=t+16|0;l=m;if((a|0)==0&(b|0)==0){t=m;return}i=Vc(a|0,b|0,g|0,((g|0)<0)<<31>>31|0)|0;ba()|0;j=d+(i<<3)|0;n=j;o=f[n>>2]|0;n=f[n+4>>2]|0;k=(o|0)==(a|0)&(n|0)==(b|0);if(!((o|0)==0&(n|0)==0|k))do{i=(i+1|0)%(g|0)|0;j=d+(i<<3)|0;o=j;n=f[o>>2]|0;o=f[o+4>>2]|0;k=(n|0)==(a|0)&(o|0)==(b|0)}while(!((n|0)==0&(o|0)==0|k));i=e+(i<<2)|0;if(k?(f[i>>2]|0)<=(h|0):0){t=m;return}o=j;f[o>>2]=a;f[o+4>>2]=b;f[i>>2]=h;if((h|0)>=(c|0)){t=m;return}o=h+1|0;f[l>>2]=0;n=sa(a,b,2,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,3,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,1,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,5,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,4,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,6,l)|0;ra(n,ba()|0,c,d,e,g,o);t=m;return}function sa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if((f[d>>2]|0)>0){e=0;do{c=Ya(c)|0;e=e+1|0}while((e|0)<(f[d>>2]|0))}i=Wc(a|0,b|0,45)|0;ba()|0;j=i&127;g=Jb(a,b)|0;e=Wc(a|0,b|0,52)|0;ba()|0;e=e&15;a:do if(!e)h=6;else while(1){m=(15-e|0)*3|0;n=Wc(a|0,b|0,m|0)|0;ba()|0;n=n&7;o=(Pb(e)|0)==0;e=e+-1|0;l=Xc(7,0,m|0)|0;b=b&~(ba()|0);m=Xc(f[(o?464:48)+(n*28|0)+(c<<2)>>2]|0,0,m|0)|0;k=ba()|0;c=f[(o?672:256)+(n*28|0)+(c<<2)>>2]|0;a=m|a&~l;b=k|b;if(!c){c=0;break a}if(!e){h=6;break}}while(0);if((h|0)==6){o=f[880+(j*28|0)+(c<<2)>>2]|0;n=Xc(o|0,0,45)|0;a=n|a;b=ba()|0|b&-1040385;c=f[4304+(j*28|0)+(c<<2)>>2]|0;if((o&127|0)==127){o=Xc(f[880+(j*28|0)+20>>2]|0,0,45)|0;b=ba()|0|b&-1040385;c=f[4304+(j*28|0)+20>>2]|0;a=Lb(o|a,b)|0;b=ba()|0;f[d>>2]=(f[d>>2]|0)+1}}h=Wc(a|0,b|0,45)|0;ba()|0;h=h&127;b:do if(!(ya(h)|0)){if((c|0)>0){e=0;do{a=Lb(a,b)|0;b=ba()|0;e=e+1|0}while((e|0)!=(c|0))}}else{c:do if((Jb(a,b)|0)==1){if((j|0)!=(h|0))if(Ca(h,f[7728+(j*28|0)>>2]|0)|0){a=Nb(a,b)|0;g=1;b=ba()|0;break}else{a=Lb(a,b)|0;g=1;b=ba()|0;break}switch(g|0){case 5:{a=Nb(a,b)|0;b=ba()|0;f[d>>2]=(f[d>>2]|0)+5;g=0;break c}case 3:{a=Lb(a,b)|0;b=ba()|0;f[d>>2]=(f[d>>2]|0)+1;g=0;break c}default:{n=0;o=0;aa(n|0);return o|0}}}else g=0;while(0);if((c|0)>0){e=0;do{a=Kb(a,b)|0;b=ba()|0;e=e+1|0}while((e|0)!=(c|0))}if((j|0)!=(h|0)){if(!(za(h)|0)){if((g|0)!=0|(Jb(a,b)|0)!=5)break;f[d>>2]=(f[d>>2]|0)+1;break}switch(i&127){case 8:case 118:break b;default:{}}if((Jb(a,b)|0)!=3)f[d>>2]=(f[d>>2]|0)+1}}while(0);f[d>>2]=((f[d>>2]|0)+c|0)%6|0;n=b;o=a;aa(n|0);return o|0}function ta(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=t;t=t+16|0;l=m;if(!c){l=d;f[l>>2]=a;f[l+4>>2]=b;l=0;t=m;return l|0}f[l>>2]=0;a:do if(!(Eb(a,b)|0)){g=(c|0)>0;if(g){e=0;k=a;do{k=sa(k,b,4,l)|0;b=ba()|0;if((k|0)==0&(b|0)==0){a=2;break a}e=e+1|0;if(Eb(k,b)|0){a=1;break a}}while((e|0)<(c|0));j=d;f[j>>2]=k;f[j+4>>2]=b;j=c+-1|0;if(g){g=0;h=1;e=k;a=b;do{e=sa(e,a,2,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}i=d+(h<<3)|0;f[i>>2]=e;f[i+4>>2]=a;h=h+1|0;if(Eb(e,a)|0){a=1;break a}g=g+1|0}while((g|0)<(c|0));i=0;g=h;do{e=sa(e,a,3,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}h=d+(g<<3)|0;f[h>>2]=e;f[h+4>>2]=a;g=g+1|0;if(Eb(e,a)|0){a=1;break a}i=i+1|0}while((i|0)<(c|0));h=0;do{e=sa(e,a,1,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}i=d+(g<<3)|0;f[i>>2]=e;f[i+4>>2]=a;g=g+1|0;if(Eb(e,a)|0){a=1;break a}h=h+1|0}while((h|0)<(c|0));h=0;do{e=sa(e,a,5,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}i=d+(g<<3)|0;f[i>>2]=e;f[i+4>>2]=a;g=g+1|0;if(Eb(e,a)|0){a=1;break a}h=h+1|0}while((h|0)<(c|0));h=0;do{e=sa(e,a,4,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}i=d+(g<<3)|0;f[i>>2]=e;f[i+4>>2]=a;g=g+1|0;if(Eb(e,a)|0){a=1;break a}h=h+1|0}while((h|0)<(c|0));h=0;while(1){e=sa(e,a,6,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}if((h|0)!=(j|0)){i=d+(g<<3)|0;f[i>>2]=e;f[i+4>>2]=a;if(!(Eb(e,a)|0))g=g+1|0;else{a=1;break a}}h=h+1|0;if((h|0)>=(c|0)){h=k;g=b;break}}}else{h=k;e=k;g=b;a=b}}else{h=d;f[h>>2]=a;f[h+4>>2]=b;h=a;e=a;g=b;a=b}a=((h|0)!=(e|0)|(g|0)!=(a|0))&1}else a=1;while(0);l=a;t=m;return l|0}function ua(a,b){a=a|0;b=b|0;var c=0,d=0;c=t;t=t+32|0;d=c;pc(a,d);b=Ia(d,b)|0;b=(U(b*3|0,b+1|0)|0)+1|0;t=c;return b|0}function va(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0;m=t;t=t+32|0;d=m+16|0;k=m;l=Lc((f[a+8>>2]<<5)+32|0)|0;if(!l)da(22551,22160,672,22168);qc(a,l);h=Ia(l,b)|0;i=U(h*3|0,h+1|0)|0;j=i+1|0;Ga(l,d);b=Qb(d,b)|0;d=ba()|0;e=j<<2;g=Lc(e)|0;if(qa(b,d,h,c,g)|0){_c(c|0,0,j<<3|0)|0;_c(g|0,0,e|0)|0;ra(b,d,h,c,g,j,0)}Mc(g);if((i|0)<0){Mc(l);t=m;return}d=k+8|0;b=0;do{e=c+(b<<3)|0;h=e;g=f[h>>2]|0;h=f[h+4>>2]|0;if(!((g|0)==0&(h|0)==0)?(Tb(g,h,k),n=+pb(+p[k>>3]),p[k>>3]=n,n=+qb(+p[d>>3]),p[d>>3]=n,!(rc(a,l,k)|0)):0){i=e;f[i>>2]=0;f[i+4>>2]=0}b=b+1|0}while((b|0)!=(j|0));Mc(l);t=m;return}function wa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=t;t=t+176|0;j=k;if((b|0)<1){Ec(c,0,0);t=k;return}h=a;h=Wc(f[h>>2]|0,f[h+4>>2]|0,52)|0;ba()|0;Ec(c,(b|0)>6?b:6,h&15);h=0;do{d=a+(h<<3)|0;Ub(f[d>>2]|0,f[d+4>>2]|0,j);d=f[j>>2]|0;if((d|0)>0){i=0;do{g=j+8+(i<<4)|0;i=i+1|0;d=j+8+(((i|0)%(d|0)|0)<<4)|0;e=Jc(c,d,g)|0;if(!e)Ic(c,g,d)|0;else Hc(c,e)|0;d=f[j>>2]|0}while((i|0)<(d|0))}h=h+1|0}while((h|0)!=(b|0));t=k;return}function xa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;g=t;t=t+32|0;d=g;e=g+16|0;wa(a,b,e);f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;a=Gc(e)|0;if(!a){ec(c)|0;Fc(e);t=g;return}do{b=bc(c)|0;do{cc(b,a)|0;h=a+16|0;f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];f[d+8>>2]=f[h+8>>2];f[d+12>>2]=f[h+12>>2];Hc(e,a)|0;a=Kc(e,d)|0}while((a|0)!=0);a=Gc(e)|0}while((a|0)!=0);ec(c)|0;Fc(e);t=g;return}function ya(a){a=a|0;return f[7728+(a*28|0)+16>>2]|0}function za(a){a=a|0;return (a|0)==4|(a|0)==117|0}function Aa(a){a=a|0;return f[11152+((f[a>>2]|0)*216|0)+((f[a+4>>2]|0)*72|0)+((f[a+8>>2]|0)*24|0)+(f[a+12>>2]<<3)>>2]|0}function Ba(a){a=a|0;return f[11152+((f[a>>2]|0)*216|0)+((f[a+4>>2]|0)*72|0)+((f[a+8>>2]|0)*24|0)+(f[a+12>>2]<<3)+4>>2]|0}function Ca(a,b){a=a|0;b=b|0;if((f[7728+(a*28|0)+20>>2]|0)==(b|0)){b=1;return b|0}b=(f[7728+(a*28|0)+24>>2]|0)==(b|0);return b|0}function Da(a,b){a=a|0;b=b|0;return f[880+(a*28|0)+(b<<2)>>2]|0}function Ea(a,b){a=a|0;b=b|0;if((f[880+(a*28|0)>>2]|0)==(b|0)){b=0;return b|0}if((f[880+(a*28|0)+4>>2]|0)==(b|0)){b=1;return b|0}if((f[880+(a*28|0)+8>>2]|0)==(b|0)){b=2;return b|0}if((f[880+(a*28|0)+12>>2]|0)==(b|0)){b=3;return b|0}if((f[880+(a*28|0)+16>>2]|0)==(b|0)){b=4;return b|0}if((f[880+(a*28|0)+20>>2]|0)==(b|0)){b=5;return b|0}else return ((f[880+(a*28|0)+24>>2]|0)==(b|0)?6:7)|0;return 0}function Fa(a){a=a|0;return +p[a+16>>3]<+p[a+24>>3]|0}function Ga(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;p[b>>3]=(+p[a>>3]+ +p[a+8>>3])*.5;c=+p[a+16>>3];d=+p[a+24>>3];c=+qb((d+(c>3]=c;return}function Ha(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;c=+p[b>>3];if(!(c>=+p[a+8>>3])){b=0;return b|0}if(!(c<=+p[a>>3])){b=0;return b|0}d=+p[a+16>>3];c=+p[a+24>>3];e=+p[b+8>>3];b=e>=c;a=e<=d&1;if(d>3]=(+p[a>>3]+ +p[l>>3])*.5;i=a+16|0;f=+p[i>>3];k=+p[a+24>>3];f=+qb((k+(f>3]=f;f=+p[a>>3];k=+H(+f);j=+p[l>>3];a=k>+H(+j);p[h>>3]=a?j:f;p[h+8>>3]=+p[i>>3];f=+rb(g,h);a=Qb(g,b)|0;b=ba()|0;Tb(a,b,e);Ub(a,b,d);b=~~+T(+(f/(+rb(e,d+8|0)*1.5)));t=c;return b|0}function Ja(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=b;f[a+4>>2]=c;f[a+8>>2]=d;return}function Ka(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0.0;m=b+8|0;f[m>>2]=0;j=+p[a>>3];h=+H(+j);k=+p[a+8>>3];i=+H(+k)/.8660254037844386;h=h+i*.5;c=~~h;a=~~i;h=h-+(c|0);i=i-+(a|0);do if(h<.5)if(h<.3333333333333333){f[b>>2]=c;if(i<(h+1.0)*.5){f[b+4>>2]=a;break}else{a=a+1|0;f[b+4>>2]=a;break}}else{n=1.0-h;a=(!(i>2]=a;if(n<=i&i>2]=c;break}else{f[b>>2]=c;break}}else{if(!(h<.6666666666666666)){c=c+1|0;f[b>>2]=c;if(i>2]=a;break}else{a=a+1|0;f[b+4>>2]=a;break}}if(i<1.0-h){f[b+4>>2]=a;if(h*2.0+-1.0>2]=c;break}}else{a=a+1|0;f[b+4>>2]=a}c=c+1|0;f[b>>2]=c}while(0);do if(j<0.0)if(!(a&1)){l=(a|0)/2|0;l=Sc(c|0,((c|0)<0)<<31>>31|0,l|0,((l|0)<0)<<31>>31|0)|0;c=~~(+(c|0)-(+(l>>>0)+4294967296.0*+(ba()|0))*2.0);f[b>>2]=c;break}else{l=(a+1|0)/2|0;l=Sc(c|0,((c|0)<0)<<31>>31|0,l|0,((l|0)<0)<<31>>31|0)|0;c=~~(+(c|0)-((+(l>>>0)+4294967296.0*+(ba()|0))*2.0+1.0));f[b>>2]=c;break}while(0);l=b+4|0;if(k<0.0){c=c-((a<<1|1|0)/2|0)|0;f[b>>2]=c;a=0-a|0;f[l>>2]=a}d=a-c|0;if((c|0)<0){e=0-c|0;f[l>>2]=d;f[m>>2]=e;f[b>>2]=0;a=d;c=0}else e=0;if((a|0)<0){c=c-a|0;f[b>>2]=c;e=e-a|0;f[m>>2]=e;f[l>>2]=0;a=0}g=c-e|0;d=a-e|0;if((e|0)<0){f[b>>2]=g;f[l>>2]=d;f[m>>2]=0;a=d;c=g;e=0}d=(a|0)<(c|0)?a:c;d=(e|0)<(d|0)?e:d;if((d|0)<=0)return;f[b>>2]=c-d;f[l>>2]=a-d;f[m>>2]=e-d;return}function La(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=f[a>>2]|0;h=a+4|0;c=f[h>>2]|0;if((b|0)<0){c=c-b|0;f[h>>2]=c;g=a+8|0;f[g>>2]=(f[g>>2]|0)-b;f[a>>2]=0;b=0}if((c|0)<0){b=b-c|0;f[a>>2]=b;g=a+8|0;e=(f[g>>2]|0)-c|0;f[g>>2]=e;f[h>>2]=0;c=0}else{e=a+8|0;g=e;e=f[e>>2]|0}if((e|0)<0){b=b-e|0;f[a>>2]=b;c=c-e|0;f[h>>2]=c;f[g>>2]=0;e=0}d=(c|0)<(b|0)?c:b;d=(e|0)<(d|0)?e:d;if((d|0)<=0)return;f[a>>2]=b-d;f[h>>2]=c-d;f[g>>2]=e-d;return}function Ma(a,b){a=a|0;b=b|0;var c=0.0,d=0;d=f[a+8>>2]|0;c=+((f[a+4>>2]|0)-d|0);p[b>>3]=+((f[a>>2]|0)-d|0)-c*.5;p[b+8>>3]=c*.8660254037844386;return}function Na(a,b,c){a=a|0;b=b|0;c=c|0;f[c>>2]=(f[b>>2]|0)+(f[a>>2]|0);f[c+4>>2]=(f[b+4>>2]|0)+(f[a+4>>2]|0);f[c+8>>2]=(f[b+8>>2]|0)+(f[a+8>>2]|0);return}function Oa(a,b,c){a=a|0;b=b|0;c=c|0;f[c>>2]=(f[a>>2]|0)-(f[b>>2]|0);f[c+4>>2]=(f[a+4>>2]|0)-(f[b+4>>2]|0);f[c+8>>2]=(f[a+8>>2]|0)-(f[b+8>>2]|0);return}function Pa(a,b){a=a|0;b=b|0;var c=0,d=0;c=U(f[a>>2]|0,b)|0;f[a>>2]=c;c=a+4|0;d=U(f[c>>2]|0,b)|0;f[c>>2]=d;a=a+8|0;b=U(f[a>>2]|0,b)|0;f[a>>2]=b;return}function Qa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;h=f[a>>2]|0;i=(h|0)<0;d=(f[a+4>>2]|0)-(i?h:0)|0;g=(d|0)<0;e=(g?0-d|0:0)+((f[a+8>>2]|0)-(i?h:0))|0;c=(e|0)<0;a=c?0:e;b=(g?0:d)-(c?e:0)|0;e=(i?0:h)-(g?d:0)-(c?e:0)|0;c=(b|0)<(e|0)?b:e;c=(a|0)<(c|0)?a:c;d=(c|0)>0;a=a-(d?c:0)|0;b=b-(d?c:0)|0;a:do switch(e-(d?c:0)|0){case 0:switch(b|0){case 0:{i=(a|0)==0?0:(a|0)==1?1:7;return i|0}case 1:{i=(a|0)==0?2:(a|0)==1?3:7;return i|0}default:break a}case 1:switch(b|0){case 0:{i=(a|0)==0?4:(a|0)==1?5:7;return i|0}case 1:{if(!a)a=6;else break a;return a|0}default:break a}default:{}}while(0);i=7;return i|0}function Ra(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;h=a+8|0;c=f[h>>2]|0;b=(f[a>>2]|0)-c|0;i=a+4|0;c=(f[i>>2]|0)-c|0;d=Qc(+((b*3|0)-c|0)/7.0)|0;f[a>>2]=d;b=Qc(+((c<<1)+b|0)/7.0)|0;f[i>>2]=b;f[h>>2]=0;c=b-d|0;if((d|0)<0){g=0-d|0;f[i>>2]=c;f[h>>2]=g;f[a>>2]=0;b=c;d=0;c=g}else c=0;if((b|0)<0){d=d-b|0;f[a>>2]=d;c=c-b|0;f[h>>2]=c;f[i>>2]=0;b=0}g=d-c|0;e=b-c|0;if((c|0)<0){f[a>>2]=g;f[i>>2]=e;f[h>>2]=0;b=e;e=g;c=0}else e=d;d=(b|0)<(e|0)?b:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;f[a>>2]=e-d;f[i>>2]=b-d;f[h>>2]=c-d;return}function Sa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;h=a+8|0;c=f[h>>2]|0;b=(f[a>>2]|0)-c|0;i=a+4|0;c=(f[i>>2]|0)-c|0;d=Qc(+((b<<1)+c|0)/7.0)|0;f[a>>2]=d;b=Qc(+((c*3|0)-b|0)/7.0)|0;f[i>>2]=b;f[h>>2]=0;c=b-d|0;if((d|0)<0){g=0-d|0;f[i>>2]=c;f[h>>2]=g;f[a>>2]=0;b=c;d=0;c=g}else c=0;if((b|0)<0){d=d-b|0;f[a>>2]=d;c=c-b|0;f[h>>2]=c;f[i>>2]=0;b=0}g=d-c|0;e=b-c|0;if((c|0)<0){f[a>>2]=g;f[i>>2]=e;f[h>>2]=0;b=e;e=g;c=0}else e=d;d=(b|0)<(e|0)?b:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;f[a>>2]=e-d;f[i>>2]=b-d;f[h>>2]=c-d;return}function Ta(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=f[a>>2]|0;h=a+4|0;c=f[h>>2]|0;i=a+8|0;d=f[i>>2]|0;e=c+(b*3|0)|0;f[a>>2]=e;c=d+(c*3|0)|0;f[h>>2]=c;b=(d*3|0)+b|0;f[i>>2]=b;d=c-e|0;if((e|0)<0){b=b-e|0;f[h>>2]=d;f[i>>2]=b;f[a>>2]=0;c=d;d=0}else d=e;if((c|0)<0){d=d-c|0;f[a>>2]=d;b=b-c|0;f[i>>2]=b;f[h>>2]=0;c=0}g=d-b|0;e=c-b|0;if((b|0)<0){f[a>>2]=g;f[h>>2]=e;f[i>>2]=0;d=g;b=0}else e=c;c=(e|0)<(d|0)?e:d;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=d-c;f[h>>2]=e-c;f[i>>2]=b-c;return}function Ua(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;e=f[a>>2]|0;h=a+4|0;b=f[h>>2]|0;i=a+8|0;c=f[i>>2]|0;d=(b*3|0)+e|0;e=c+(e*3|0)|0;f[a>>2]=e;f[h>>2]=d;b=(c*3|0)+b|0;f[i>>2]=b;c=d-e|0;if((e|0)<0){b=b-e|0;f[h>>2]=c;f[i>>2]=b;f[a>>2]=0;e=0}else c=d;if((c|0)<0){e=e-c|0;f[a>>2]=e;b=b-c|0;f[i>>2]=b;f[h>>2]=0;c=0}g=e-b|0;d=c-b|0;if((b|0)<0){f[a>>2]=g;f[h>>2]=d;f[i>>2]=0;e=g;b=0}else d=c;c=(d|0)<(e|0)?d:e;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=e-c;f[h>>2]=d-c;f[i>>2]=b-c;return}function Va(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;if((b+-1|0)>>>0>=6)return;e=(f[15472+(b*12|0)>>2]|0)+(f[a>>2]|0)|0;f[a>>2]=e;i=a+4|0;d=(f[15472+(b*12|0)+4>>2]|0)+(f[i>>2]|0)|0;f[i>>2]=d;h=a+8|0;b=(f[15472+(b*12|0)+8>>2]|0)+(f[h>>2]|0)|0;f[h>>2]=b;c=d-e|0;if((e|0)<0){b=b-e|0;f[i>>2]=c;f[h>>2]=b;f[a>>2]=0;d=0}else{c=d;d=e}if((c|0)<0){d=d-c|0;f[a>>2]=d;b=b-c|0;f[h>>2]=b;f[i>>2]=0;c=0}g=d-b|0;e=c-b|0;if((b|0)<0){f[a>>2]=g;f[i>>2]=e;f[h>>2]=0;d=g;b=0}else e=c;c=(e|0)<(d|0)?e:d;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=d-c;f[i>>2]=e-c;f[h>>2]=b-c;return}function Wa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;e=f[a>>2]|0;h=a+4|0;b=f[h>>2]|0;i=a+8|0;c=f[i>>2]|0;d=b+e|0;e=c+e|0;f[a>>2]=e;f[h>>2]=d;b=c+b|0;f[i>>2]=b;c=d-e|0;if((e|0)<0){b=b-e|0;f[h>>2]=c;f[i>>2]=b;f[a>>2]=0;d=0}else{c=d;d=e}if((c|0)<0){d=d-c|0;f[a>>2]=d;b=b-c|0;f[i>>2]=b;f[h>>2]=0;c=0}g=d-b|0;e=c-b|0;if((b|0)<0){f[a>>2]=g;f[h>>2]=e;f[i>>2]=0;d=g;b=0}else e=c;c=(e|0)<(d|0)?e:d;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=d-c;f[h>>2]=e-c;f[i>>2]=b-c;return}function Xa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=f[a>>2]|0;h=a+4|0;d=f[h>>2]|0;i=a+8|0;c=f[i>>2]|0;e=d+b|0;f[a>>2]=e;d=c+d|0;f[h>>2]=d;b=c+b|0;f[i>>2]=b;c=d-e|0;if((e|0)<0){b=b-e|0;f[h>>2]=c;f[i>>2]=b;f[a>>2]=0;d=0}else{c=d;d=e}if((c|0)<0){d=d-c|0;f[a>>2]=d;b=b-c|0;f[i>>2]=b;f[h>>2]=0;c=0}g=d-b|0;e=c-b|0;if((b|0)<0){f[a>>2]=g;f[h>>2]=e;f[i>>2]=0;d=g;b=0}else e=c;c=(e|0)<(d|0)?e:d;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=d-c;f[h>>2]=e-c;f[i>>2]=b-c;return}function Ya(a){a=a|0;switch(a|0){case 1:{a=5;break}case 5:{a=4;break}case 4:{a=6;break}case 6:{a=2;break}case 2:{a=3;break}case 3:{a=1;break}default:{}}return a|0}function Za(a){a=a|0;switch(a|0){case 1:{a=3;break}case 3:{a=2;break}case 2:{a=6;break}case 6:{a=4;break}case 4:{a=5;break}case 5:{a=1;break}default:{}}return a|0}function _a(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=f[a>>2]|0;h=a+4|0;c=f[h>>2]|0;i=a+8|0;d=f[i>>2]|0;e=c+(b<<1)|0;f[a>>2]=e;c=d+(c<<1)|0;f[h>>2]=c;b=(d<<1)+b|0;f[i>>2]=b;d=c-e|0;if((e|0)<0){b=b-e|0;f[h>>2]=d;f[i>>2]=b;f[a>>2]=0;c=d;d=0}else d=e;if((c|0)<0){d=d-c|0;f[a>>2]=d;b=b-c|0;f[i>>2]=b;f[h>>2]=0;c=0}g=d-b|0;e=c-b|0;if((b|0)<0){f[a>>2]=g;f[h>>2]=e;f[i>>2]=0;d=g;b=0}else e=c;c=(e|0)<(d|0)?e:d;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=d-c;f[h>>2]=e-c;f[i>>2]=b-c;return}function $a(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;e=f[a>>2]|0;h=a+4|0;b=f[h>>2]|0;i=a+8|0;c=f[i>>2]|0;d=(b<<1)+e|0;e=c+(e<<1)|0;f[a>>2]=e;f[h>>2]=d;b=(c<<1)+b|0;f[i>>2]=b;c=d-e|0;if((e|0)<0){b=b-e|0;f[h>>2]=c;f[i>>2]=b;f[a>>2]=0;e=0}else c=d;if((c|0)<0){e=e-c|0;f[a>>2]=e;b=b-c|0;f[i>>2]=b;f[h>>2]=0;c=0}g=e-b|0;d=c-b|0;if((b|0)<0){f[a>>2]=g;f[h>>2]=d;f[i>>2]=0;e=g;b=0}else d=c;c=(d|0)<(e|0)?d:e;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=e-c;f[h>>2]=d-c;f[i>>2]=b-c;return}function ab(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;h=(f[a>>2]|0)-(f[b>>2]|0)|0;i=(h|0)<0;d=(f[a+4>>2]|0)-(f[b+4>>2]|0)-(i?h:0)|0;g=(d|0)<0;e=(i?0-h|0:0)+(f[a+8>>2]|0)-(f[b+8>>2]|0)+(g?0-d|0:0)|0;a=(e|0)<0;b=a?0:e;c=(g?0:d)-(a?e:0)|0;e=(i?0:h)-(g?d:0)-(a?e:0)|0;a=(c|0)<(e|0)?c:e;a=(b|0)<(a|0)?b:a;d=(a|0)>0;b=b-(d?a:0)|0;c=c-(d?a:0)|0;a=e-(d?a:0)|0;a=(a|0)>-1?a:0-a|0;c=(c|0)>-1?c:0-c|0;b=(b|0)>-1?b:0-b|0;b=(c|0)>(b|0)?c:b;return ((a|0)>(b|0)?a:b)|0}function bb(a,b){a=a|0;b=b|0;var c=0;c=f[a+8>>2]|0;f[b>>2]=(f[a>>2]|0)-c;f[b+4>>2]=(f[a+4>>2]|0)-c;return}function cb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;d=f[a>>2]|0;f[b>>2]=d;a=f[a+4>>2]|0;h=b+4|0;f[h>>2]=a;i=b+8|0;f[i>>2]=0;c=a-d|0;if((d|0)<0){a=0-d|0;f[h>>2]=c;f[i>>2]=a;f[b>>2]=0;d=0}else{c=a;a=0}if((c|0)<0){d=d-c|0;f[b>>2]=d;a=a-c|0;f[i>>2]=a;f[h>>2]=0;c=0}g=d-a|0;e=c-a|0;if((a|0)<0){f[b>>2]=g;f[h>>2]=e;f[i>>2]=0;c=e;e=g;a=0}else e=d;d=(c|0)<(e|0)?c:e;d=(a|0)<(d|0)?a:d;if((d|0)<=0)return;f[b>>2]=e-d;f[h>>2]=c-d;f[i>>2]=a-d;return}function db(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+8|0;e=f[b>>2]|0;c=e-(f[a>>2]|0)|0;f[a>>2]=c;d=a+4|0;a=(f[d>>2]|0)-e|0;f[d>>2]=a;f[b>>2]=0-(a+c);return}function eb(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;c=f[a>>2]|0;b=0-c|0;f[a>>2]=b;h=a+8|0;f[h>>2]=0;i=a+4|0;d=f[i>>2]|0;e=d+c|0;if((c|0)>0){f[i>>2]=e;f[h>>2]=c;f[a>>2]=0;b=0;d=e}else c=0;if((d|0)<0){g=b-d|0;f[a>>2]=g;c=c-d|0;f[h>>2]=c;f[i>>2]=0;e=g-c|0;b=0-c|0;if((c|0)<0){f[a>>2]=e;f[i>>2]=b;f[h>>2]=0;d=b;c=0}else{d=0;e=g}}else e=b;b=(d|0)<(e|0)?d:e;b=(c|0)<(b|0)?c:b;if((b|0)<=0)return;f[a>>2]=e-b;f[i>>2]=d-b;f[h>>2]=c-b;return}function fb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=t;t=t+16|0;e=d;gb(a,b,c,e);Ka(e,c+4|0);t=d;return}function gb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,g=0,h=0.0,i=0.0,j=0;j=t;t=t+32|0;g=j;Dc(a,g);f[c>>2]=0;e=+Cc(15888,g);h=+Cc(15912,g);if(h>2]=1;e=h}h=+Cc(15936,g);if(h>2]=2;e=h}h=+Cc(15960,g);if(h>2]=3;e=h}h=+Cc(15984,g);if(h>2]=4;e=h}h=+Cc(16008,g);if(h>2]=5;e=h}h=+Cc(16032,g);if(h>2]=6;e=h}h=+Cc(16056,g);if(h>2]=7;e=h}h=+Cc(16080,g);if(h>2]=8;e=h}h=+Cc(16104,g);if(h>2]=9;e=h}h=+Cc(16128,g);if(h>2]=10;e=h}h=+Cc(16152,g);if(h>2]=11;e=h}h=+Cc(16176,g);if(h>2]=12;e=h}h=+Cc(16200,g);if(h>2]=13;e=h}h=+Cc(16224,g);if(h>2]=14;e=h}h=+Cc(16248,g);if(h>2]=15;e=h}h=+Cc(16272,g);if(h>2]=16;e=h}h=+Cc(16296,g);if(h>2]=17;e=h}h=+Cc(16320,g);if(h>2]=18;e=h}h=+Cc(16344,g);if(h>2]=19;e=h}h=+N(+(1.0-e*.5));if(h<1.0e-16){f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;t=j;return}c=f[c>>2]|0;e=+p[16368+(c*24|0)>>3];e=+mb(e-+mb(+sb(15568+(c<<4)|0,a)));if(!(Pb(b)|0))i=e;else i=+mb(e+-.3334731722518321);e=+M(+h)/.381966011250105;if((b|0)>0){g=0;do{e=e*2.6457513110645907;g=g+1|0}while((g|0)!=(b|0))}h=+K(+i)*e;p[d>>3]=h;i=+L(+i)*e;p[d+8>>3]=i;t=j;return}function hb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0.0,h=0.0;g=+zc(a);if(g<1.0e-16){b=15568+(b<<4)|0;f[e>>2]=f[b>>2];f[e+4>>2]=f[b+4>>2];f[e+8>>2]=f[b+8>>2];f[e+12>>2]=f[b+12>>2];return}h=+Q(+(+p[a+8>>3]),+(+p[a>>3]));if((c|0)>0){a=0;do{g=g/2.6457513110645907;a=a+1|0}while((a|0)!=(c|0))}if(!d){g=+P(+(g*.381966011250105));if(Pb(c)|0)h=+mb(h+.3334731722518321)}else{g=g/3.0;c=(Pb(c)|0)==0;g=+P(+((c?g:g/2.6457513110645907)*.381966011250105))}tb(15568+(b<<4)|0,+mb(+p[16368+(b*24|0)>>3]-h),g,e);return}function ib(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=t;t=t+16|0;e=d;Ma(a+4|0,e);hb(e,f[a>>2]|0,b,0,c);t=d;return}function jb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0.0;E=t;t=t+384|0;d=E+144|0;e=E+80|0;j=E+368|0;A=E;B=E+352|0;C=E+336|0;D=E+304|0;s=E+288|0;u=E+320|0;v=E+272|0;w=E+256|0;x=E+240|0;y=E+224|0;z=E+208|0;g=d;h=16848;i=g+60|0;do{f[g>>2]=f[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=e;h=16912;i=g+60|0;do{f[g>>2]=f[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));r=(Pb(b)|0)==0;e=r?d:e;f[j>>2]=f[a>>2];f[j+4>>2]=f[a+4>>2];f[j+8>>2]=f[a+8>>2];f[j+12>>2]=f[a+12>>2];d=j+4|0;_a(d);$a(d);if(!(Pb(b)|0))r=b;else{Ua(d);r=b+1|0}f[A>>2]=f[j>>2];a=A+4|0;Na(d,e,a);La(a);f[A+16>>2]=f[j>>2];a=A+20|0;Na(d,e+12|0,a);La(a);f[A+32>>2]=f[j>>2];a=A+36|0;Na(d,e+24|0,a);La(a);f[A+48>>2]=f[j>>2];a=A+52|0;Na(d,e+36|0,a);La(a);f[A+64>>2]=f[j>>2];a=A+68|0;Na(d,e+48|0,a);La(a);f[c>>2]=0;a=B+4|0;j=D+4|0;k=16976+(r<<2)|0;l=17056+(r<<2)|0;m=w+8|0;n=x+8|0;o=y+8|0;q=C+4|0;i=0;a:while(1){h=A+(((i>>>0)%5|0)<<4)|0;f[C>>2]=f[h>>2];f[C+4>>2]=f[h+4>>2];f[C+8>>2]=f[h+8>>2];f[C+12>>2]=f[h+12>>2];if((kb(C,r,0,1)|0)==2)do{}while((kb(C,r,0,1)|0)==2);if((i|0)!=0&(Pb(b)|0)!=0){f[D>>2]=f[C>>2];f[D+4>>2]=f[C+4>>2];f[D+8>>2]=f[C+8>>2];f[D+12>>2]=f[C+12>>2];Ma(a,s);e=f[D>>2]|0;g=f[17136+(e*80|0)+(f[B>>2]<<2)>>2]|0;f[D>>2]=f[18736+(e*80|0)+(g*20|0)>>2];h=f[18736+(e*80|0)+(g*20|0)+16>>2]|0;if((h|0)>0){d=0;do{Wa(j);d=d+1|0}while((d|0)<(h|0))}h=18736+(e*80|0)+(g*20|0)+4|0;f[u>>2]=f[h>>2];f[u+4>>2]=f[h+4>>2];f[u+8>>2]=f[h+8>>2];Pa(u,(f[k>>2]|0)*3|0);Na(j,u,j);La(j);Ma(j,v);F=+(f[l>>2]|0);p[w>>3]=F*3.0;p[m>>3]=0.0;G=F*-1.5;p[x>>3]=G;p[n>>3]=F*2.598076211353316;p[y>>3]=G;p[o>>3]=F*-2.598076211353316;switch(f[17136+((f[D>>2]|0)*80|0)+(f[C>>2]<<2)>>2]|0){case 1:{d=x;e=w;break}case 3:{d=y;e=x;break}case 2:{d=w;e=y;break}default:{d=14;break a}}Ac(s,v,e,d,z);hb(z,f[D>>2]|0,r,1,c+8+(f[c>>2]<<4)|0);f[c>>2]=(f[c>>2]|0)+1}if(i>>>0<5){Ma(q,D);hb(D,f[C>>2]|0,r,1,c+8+(f[c>>2]<<4)|0);f[c>>2]=(f[c>>2]|0)+1};f[B>>2]=f[C>>2];f[B+4>>2]=f[C+4>>2];f[B+8>>2]=f[C+8>>2];f[B+12>>2]=f[C+12>>2];i=i+1|0;if(i>>>0>=6){d=4;break}}if((d|0)==4){t=E;return}else if((d|0)==14)da(22177,22224,630,22234)}function kb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=t;t=t+32|0;n=p+12|0;i=p;o=a+4|0;m=f[17056+(b<<2)>>2]|0;l=(d|0)!=0;m=l?m*3|0:m;e=f[o>>2]|0;k=a+8|0;h=f[k>>2]|0;if(l){g=a+12|0;d=f[g>>2]|0;e=h+e+d|0;if((e|0)==(m|0)){o=1;t=p;return o|0}else j=g}else{j=a+12|0;d=f[j>>2]|0;e=h+e+d|0}if((e|0)<=(m|0)){o=0;t=p;return o|0}do if((d|0)>0){d=f[a>>2]|0;if((h|0)>0){g=18736+(d*80|0)+60|0;d=a;break}d=18736+(d*80|0)+40|0;if(!c){g=d;d=a}else{Ja(n,m,0,0);Oa(o,n,i);Xa(i);Na(i,n,o);g=d;d=a}}else{g=18736+((f[a>>2]|0)*80|0)+20|0;d=a}while(0);f[d>>2]=f[g>>2];e=g+16|0;if((f[e>>2]|0)>0){d=0;do{Wa(o);d=d+1|0}while((d|0)<(f[e>>2]|0))}a=g+4|0;f[n>>2]=f[a>>2];f[n+4>>2]=f[a+4>>2];f[n+8>>2]=f[a+8>>2];b=f[16976+(b<<2)>>2]|0;Pa(n,l?b*3|0:b);Na(o,n,o);La(o);if(l)d=((f[k>>2]|0)+(f[o>>2]|0)+(f[j>>2]|0)|0)==(m|0)?1:2;else d=2;o=d;t=p;return o|0}function lb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0;A=t;t=t+384|0;h=A+176|0;i=A+96|0;v=A+360|0;w=A;x=A+344|0;y=A+328|0;o=A+312|0;q=A+296|0;r=A+280|0;s=A+264|0;u=A+248|0;if(c|0){jb(a,b,d);t=A;return}c=h;e=20336;g=c+72|0;do{f[c>>2]=f[e>>2];c=c+4|0;e=e+4|0}while((c|0)<(g|0));c=i;e=20416;g=c+72|0;do{f[c>>2]=f[e>>2];c=c+4|0;e=e+4|0}while((c|0)<(g|0));e=(Pb(b)|0)==0;e=e?h:i;f[v>>2]=f[a>>2];f[v+4>>2]=f[a+4>>2];f[v+8>>2]=f[a+8>>2];f[v+12>>2]=f[a+12>>2];c=v+4|0;_a(c);$a(c);if(!(Pb(b)|0))n=b;else{Ua(c);n=b+1|0}f[w>>2]=f[v>>2];a=w+4|0;Na(c,e,a);La(a);f[w+16>>2]=f[v>>2];a=w+20|0;Na(c,e+12|0,a);La(a);f[w+32>>2]=f[v>>2];a=w+36|0;Na(c,e+24|0,a);La(a);f[w+48>>2]=f[v>>2];a=w+52|0;Na(c,e+36|0,a);La(a);f[w+64>>2]=f[v>>2];a=w+68|0;Na(c,e+48|0,a);La(a);f[w+80>>2]=f[v>>2];a=w+84|0;Na(c,e+60|0,a);La(a);f[d>>2]=0;a=17056+(n<<2)|0;j=q+8|0;k=r+8|0;l=s+8|0;m=x+4|0;c=-1;h=0;i=0;a:while(1){g=(i>>>0)%6|0;e=w+(g<<4)|0;f[x>>2]=f[e>>2];f[x+4>>2]=f[e+4>>2];f[x+8>>2]=f[e+8>>2];f[x+12>>2]=f[e+12>>2];e=h;h=kb(x,n,0,1)|0;if((i|0)!=0&(Pb(b)|0)!=0?((e|0)!=1?(f[x>>2]|0)!=(c|0):0):0){Ma(w+((((g+5|0)>>>0)%6|0)<<4)+4|0,y);Ma(w+(g<<4)+4|0,o);B=+(f[a>>2]|0);p[q>>3]=B*3.0;p[j>>3]=0.0;C=B*-1.5;p[r>>3]=C;p[k>>3]=B*2.598076211353316;p[s>>3]=C;p[l>>3]=B*-2.598076211353316;g=f[v>>2]|0;switch(f[17136+(g*80|0)+(((c|0)==(g|0)?f[x>>2]|0:c)<<2)>>2]|0){case 1:{c=r;e=q;break}case 3:{c=s;e=r;break}case 2:{c=q;e=s;break}default:{z=11;break a}}Ac(y,o,e,c,u);if(!(Bc(y,u)|0)?!(Bc(o,u)|0):0){hb(u,f[v>>2]|0,n,1,d+8+(f[d>>2]<<4)|0);f[d>>2]=(f[d>>2]|0)+1}}if(i>>>0<6){Ma(m,y);hb(y,f[x>>2]|0,n,1,d+8+(f[d>>2]<<4)|0);f[d>>2]=(f[d>>2]|0)+1}i=i+1|0;if(i>>>0>=7)break;else c=f[x>>2]|0}if((z|0)==11)da(22260,22224,784,22305);t=A;return}function mb(a){a=+a;var b=0.0;b=a<0.0?a+6.283185307179586:a;return +(!(a>=6.283185307179586)?b:b+-6.283185307179586)}function nb(a,b,c){a=a|0;b=b|0;c=+c;if(!(+H(+(+p[a>>3]-+p[b>>3]))>3]-+p[b+8>>3]))>3]-+p[b>>3]))<1.7453292519943298e-11)){b=0;return b|0}b=+H(+(+p[a+8>>3]-+p[b+8>>3]))<1.7453292519943298e-11;return b|0}function pb(a){a=+a;if(!(a>1.5707963267948966))return +a;do a=a+-3.141592653589793;while(a>1.5707963267948966);return +a}function qb(a){a=+a;if(a>3.141592653589793)do a=a+-6.283185307179586;while(a>3.141592653589793);if(!(a<-3.141592653589793))return +a;do a=a+6.283185307179586;while(a<-3.141592653589793);return +a}function rb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;d=+p[b+8>>3];e=+p[a+8>>3];c=+H(+(d-e));if(c>3.141592653589793)c=+H(+((d<0.0?d+6.283185307179586:d)-(e<0.0?e+6.283185307179586:e)));d=1.5707963267948966-+p[a>>3];e=1.5707963267948966-+p[b>>3];e=+K(+d)*+K(+e)+ +K(+c)*(+L(+d)*+L(+e));e=e>1.0?1.0:e;return +(+N(+(e<-1.0?-1.0:e))*6371.007180918475)}function sb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0,g=0.0;f=+p[b>>3];d=+K(+f);e=+p[b+8>>3]-+p[a+8>>3];g=d*+L(+e);c=+p[a>>3];return +(+Q(+g,+(+L(+f)*+K(+c)-+K(+e)*(d*+L(+c)))))}function tb(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0,g=0.0,h=0.0,i=0.0;if(c<1.0e-16){f[d>>2]=f[a>>2];f[d+4>>2]=f[a+4>>2];f[d+8>>2]=f[a+8>>2];f[d+12>>2]=f[a+12>>2];return}g=b<0.0?b+6.283185307179586:b;g=!(b>=6.283185307179586)?g:g+-6.283185307179586;do if(g<1.0e-16){b=+p[a>>3]+c;p[d>>3]=b;e=d}else{e=+H(+(g+-3.141592653589793))<1.0e-16;b=+p[a>>3];if(e){b=b-c;p[d>>3]=b;e=d;break}h=+K(+c);c=+L(+c);b=h*+L(+b)+ +K(+g)*(c*+K(+b));b=b>1.0?1.0:b;b=+O(+(b<-1.0?-1.0:b));p[d>>3]=b;if(+H(+(b+-1.5707963267948966))<1.0e-16){p[d>>3]=1.5707963267948966;p[d+8>>3]=0.0;return}if(+H(+(b+1.5707963267948966))<1.0e-16){p[d>>3]=-1.5707963267948966;p[d+8>>3]=0.0;return}i=+K(+b);g=c*+L(+g)/i;c=+p[a>>3];b=(h-+L(+b)*+L(+c))/+K(+c)/i;h=g>1.0?1.0:g;b=+p[a+8>>3]+ +Q(+(b<-1.0?-1.0:b>1.0?1.0:h<-1.0?-1.0:h),+b);if(b>3.141592653589793)do b=b+-6.283185307179586;while(b>3.141592653589793);if(b<-3.141592653589793)do b=b+6.283185307179586;while(b<-3.141592653589793);p[d+8>>3]=b;return}while(0);if(+H(+(b+-1.5707963267948966))<1.0e-16){p[e>>3]=1.5707963267948966;p[d+8>>3]=0.0;return}if(+H(+(b+1.5707963267948966))<1.0e-16){p[e>>3]=-1.5707963267948966;p[d+8>>3]=0.0;return}b=+p[a+8>>3];if(b>3.141592653589793)do b=b+-6.283185307179586;while(b>3.141592653589793);if(b<-3.141592653589793)do b=b+6.283185307179586;while(b<-3.141592653589793);p[d+8>>3]=b;return}function ub(a){a=a|0;return +(+p[20496+(a<<3)>>3])}function vb(a){a=a|0;return +(+p[20624+(a<<3)>>3])}function wb(a){a=a|0;return +(+p[20752+(a<<3)>>3])}function xb(a){a=a|0;return +(+p[20880+(a<<3)>>3])}function yb(a){a=a|0;var b=0;b=21008+(a<<3)|0;a=f[b>>2]|0;aa(f[b+4>>2]|0);return a|0}function zb(a,b){a=a|0;b=b|0;b=Wc(a|0,b|0,45)|0;ba()|0;return b&127|0}function Ab(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(!(0==0&(b&2013265920|0)==134217728)){b=0;return b|0}g=Wc(a|0,b|0,45)|0;ba()|0;g=g&127;if(g>>>0>121){b=0;return b|0}c=Wc(a|0,b|0,52)|0;ba()|0;c=c&15;do if(c|0){e=1;d=0;while(1){f=Wc(a|0,b|0,(15-e|0)*3|0)|0;ba()|0;f=f&7;if((f|0)!=0&(d^1))if((f|0)==1&(ya(g)|0)!=0){h=0;d=13;break}else d=1;if((f|0)==7){h=0;d=13;break}if(e>>>0>>0)e=e+1|0;else{d=9;break}}if((d|0)==9){if((c|0)==15)h=1;else break;return h|0}else if((d|0)==13)return h|0}while(0);while(1){h=Wc(a|0,b|0,(14-c|0)*3|0)|0;ba()|0;if(!((h&7|0)==7&0==0)){h=0;d=13;break}if(c>>>0<14)c=c+1|0;else{h=1;d=13;break}}if((d|0)==13)return h|0;return 0}function Bb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Wc(a|0,b|0,52)|0;ba()|0;d=d&15;if((d|0)>=(c|0)){if((d|0)!=(c|0))if(c>>>0<=15){e=Xc(c|0,0,52)|0;a=e|a;b=ba()|0|b&-15728641;if((d|0)>(c|0))do{e=Xc(7,0,(14-c|0)*3|0)|0;c=c+1|0;a=e|a;b=ba()|0|b}while((c|0)<(d|0))}else{b=0;a=0}}else{b=0;a=0}aa(b|0);return a|0}function Cb(a,b,c){a=a|0;b=b|0;c=c|0;a=Wc(a|0,b|0,52)|0;ba()|0;a=a&15;if((a|0)>(c|0)){c=0;return c|0}c=nc(7,c-a|0)|0;return c|0}function Db(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;h=Wc(a|0,b|0,52)|0;ba()|0;h=h&15;if((h|0)>(c|0))return;if((h|0)==(c|0)){c=d;f[c>>2]=a;f[c+4>>2]=b;return}j=nc(7,c-h|0)|0;k=(j|0)/7|0;i=Wc(a|0,b|0,45)|0;ba()|0;if(!(ya(i&127)|0))g=0;else{a:do if(!h)e=0;else{g=1;while(1){e=Wc(a|0,b|0,(15-g|0)*3|0)|0;ba()|0;e=e&7;if(e|0)break a;if(g>>>0>>0)g=g+1|0;else{e=0;break}}}while(0);g=(e|0)==0}l=Xc(h+1|0,0,52)|0;e=ba()|0|b&-15728641;i=(14-h|0)*3|0;b=Xc(7,0,i|0)|0;b=(l|a)&~b;h=e&~(ba()|0);Db(b,h,c,d);e=d+(k<<3)|0;if(!g){l=Xc(1,0,i|0)|0;Db(l|b,ba()|0|h,c,e);l=e+(k<<3)|0;j=Xc(2,0,i|0)|0;Db(j|b,ba()|0|h,c,l);l=l+(k<<3)|0;j=Xc(3,0,i|0)|0;Db(j|b,ba()|0|h,c,l);l=l+(k<<3)|0;j=Xc(4,0,i|0)|0;Db(j|b,ba()|0|h,c,l);l=l+(k<<3)|0;j=Xc(5,0,i|0)|0;Db(j|b,ba()|0|h,c,l);j=Xc(6,0,i|0)|0;Db(j|b,ba()|0|h,c,l+(k<<3)|0);return}g=e+(k<<3)|0;if((j|0)>6){j=e+8|0;l=(g>>>0>j>>>0?g:j)+-1+(0-e)|0;_c(e|0,0,l+8&-8|0)|0;e=j+(l>>>3<<3)|0}l=Xc(2,0,i|0)|0;Db(l|b,ba()|0|h,c,e);l=e+(k<<3)|0;j=Xc(3,0,i|0)|0;Db(j|b,ba()|0|h,c,l);l=l+(k<<3)|0;j=Xc(4,0,i|0)|0;Db(j|b,ba()|0|h,c,l);l=l+(k<<3)|0;j=Xc(5,0,i|0)|0;Db(j|b,ba()|0|h,c,l);j=Xc(6,0,i|0)|0;Db(j|b,ba()|0|h,c,l+(k<<3)|0);return}function Eb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=Wc(a|0,b|0,45)|0;ba()|0;if(!(ya(e&127)|0)){e=0;return e|0}e=Wc(a|0,b|0,52)|0;ba()|0;e=e&15;a:do if(!e)c=0;else{d=1;while(1){c=Wc(a|0,b|0,(15-d|0)*3|0)|0;ba()|0;c=c&7;if(c|0)break a;if(d>>>0>>0)d=d+1|0;else{c=0;break}}}while(0);e=(c|0)==0&1;return e|0}function Fb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=a;d=f[e>>2]|0;e=f[e+4>>2]|0;if(0==0&(e&15728640|0)==0){if((c|0)<=0){x=0;return x|0}x=b;f[x>>2]=d;f[x+4>>2]=e;if((c|0)==1){x=0;return x|0}d=1;do{v=a+(d<<3)|0;w=f[v+4>>2]|0;x=b+(d<<3)|0;f[x>>2]=f[v>>2];f[x+4>>2]=w;d=d+1|0}while((d|0)!=(c|0));d=0;return d|0}v=c<<3;w=Lc(v)|0;Zc(w|0,a|0,v|0)|0;u=Nc(c,8)|0;a:do if(c|0){d=c;b:while(1){h=w;l=f[h>>2]|0;h=f[h+4>>2]|0;s=Wc(l|0,h|0,52)|0;ba()|0;s=s&15;t=s+-1|0;r=(d|0)>0;c:do if(r){q=((d|0)<0)<<31>>31;o=Xc(t|0,0,52)|0;p=ba()|0;if(t>>>0>15){e=0;a=l;c=h;while(1){if(!((a|0)==0&(c|0)==0)){g=Wc(a|0,c|0,52)|0;ba()|0;g=g&15;i=(g|0)<(t|0);g=(g|0)==(t|0);k=i?0:g?a:0;a=i?0:g?c:0;c=Vc(k|0,a|0,d|0,q|0)|0;ba()|0;g=u+(c<<3)|0;i=g;j=f[i>>2]|0;i=f[i+4>>2]|0;if((j|0)==0&(i|0)==0)c=k;else{o=0;n=c;m=j;c=k;j=g;while(1){if((o|0)>(d|0)){x=33;break b}if((m|0)==(c|0)&(i&-117440513|0)==(a|0)){g=Wc(m|0,i|0,56)|0;ba()|0;g=g&7;if((g|0)==7){x=38;break b}p=Xc(g+1|0,0,56)|0;a=ba()|0|a&-117440513;f[j>>2]=0;f[j+4>>2]=0;j=n;c=p|c}else j=(n+1|0)%(d|0)|0;g=u+(j<<3)|0;i=g;m=f[i>>2]|0;i=f[i+4>>2]|0;if((m|0)==0&(i|0)==0)break;else{o=o+1|0;n=j;j=g}}}p=g;f[p>>2]=c;f[p+4>>2]=a}e=e+1|0;if((e|0)>=(d|0))break c;c=w+(e<<3)|0;a=f[c>>2]|0;c=f[c+4>>2]|0}}e=0;a=l;c=h;while(1){if(!((a|0)==0&(c|0)==0)){i=Wc(a|0,c|0,52)|0;ba()|0;i=i&15;if((i|0)>=(t|0)){if((i|0)!=(t|0)){a=a|o;c=c&-15728641|p;if(i>>>0>=s>>>0){g=t;do{n=Xc(7,0,(14-g|0)*3|0)|0;g=g+1|0;a=n|a;c=ba()|0|c}while(g>>>0>>0)}}}else{a=0;c=0}i=Vc(a|0,c|0,d|0,q|0)|0;ba()|0;g=u+(i<<3)|0;j=g;k=f[j>>2]|0;j=f[j+4>>2]|0;if(!((k|0)==0&(j|0)==0)){n=0;m=k;k=g;while(1){if((n|0)>(d|0)){x=33;break b}if((m|0)==(a|0)&(j&-117440513|0)==(c|0)){g=Wc(m|0,j|0,56)|0;ba()|0;g=g&7;if((g|0)==7){x=38;break b}m=Xc(g+1|0,0,56)|0;c=ba()|0|c&-117440513;f[k>>2]=0;f[k+4>>2]=0;a=m|a}else i=(i+1|0)%(d|0)|0;g=u+(i<<3)|0;j=g;m=f[j>>2]|0;j=f[j+4>>2]|0;if((m|0)==0&(j|0)==0)break;else{n=n+1|0;k=g}}}n=g;f[n>>2]=a;f[n+4>>2]=c}e=e+1|0;if((e|0)>=(d|0))break c;c=w+(e<<3)|0;a=f[c>>2]|0;c=f[c+4>>2]|0}}while(0);if((d+5|0)>>>0<11){x=84;break}q=Lc(((d|0)/6|0)<<3)|0;d:do if(r){o=0;n=0;do{i=u+(o<<3)|0;a=i;e=f[a>>2]|0;a=f[a+4>>2]|0;if(!((e|0)==0&(a|0)==0)){j=Wc(e|0,a|0,56)|0;ba()|0;j=j&7;c=j+1|0;k=a&-117440513;p=Wc(e|0,a|0,45)|0;ba()|0;e:do if(ya(p&127)|0){m=Wc(e|0,a|0,52)|0;ba()|0;m=m&15;if(m|0){g=1;while(1){p=Xc(7,0,(15-g|0)*3|0)|0;if(!((e&p|0)==0&(k&(ba()|0)|0)==0))break e;if(g>>>0>>0)g=g+1|0;else break}}a=Xc(c|0,0,56)|0;e=a|e;a=ba()|0|k;c=i;f[c>>2]=e;f[c+4>>2]=a;c=j+2|0}while(0);if((c|0)==7){p=q+(n<<3)|0;f[p>>2]=e;f[p+4>>2]=a&-117440513;n=n+1|0}}o=o+1|0}while((o|0)!=(d|0));if(r){p=((d|0)<0)<<31>>31;m=Xc(t|0,0,52)|0;o=ba()|0;if(t>>>0>15){a=0;e=0;while(1){do if(!((l|0)==0&(h|0)==0)){j=Wc(l|0,h|0,52)|0;ba()|0;j=j&15;g=(j|0)<(t|0);j=(j|0)==(t|0);i=g?0:j?l:0;j=g?0:j?h:0;g=Vc(i|0,j|0,d|0,p|0)|0;ba()|0;c=0;while(1){if((c|0)>(d|0)){x=83;break b}s=u+(g<<3)|0;k=f[s+4>>2]|0;if((k&-117440513|0)==(j|0)?(f[s>>2]|0)==(i|0):0){x=55;break}g=(g+1|0)%(d|0)|0;s=u+(g<<3)|0;if((f[s>>2]|0)==(i|0)?(f[s+4>>2]|0)==(j|0):0)break;else c=c+1|0}if((x|0)==55?(x=0,0==0&(k&117440512|0)==100663296):0)break;s=b+(e<<3)|0;f[s>>2]=l;f[s+4>>2]=h;e=e+1|0}while(0);a=a+1|0;if((a|0)>=(d|0)){d=n;break d}h=w+(a<<3)|0;l=f[h>>2]|0;h=f[h+4>>2]|0}}a=0;e=0;while(1){do if(!((l|0)==0&(h|0)==0)){j=Wc(l|0,h|0,52)|0;ba()|0;j=j&15;if((j|0)>=(t|0))if((j|0)!=(t|0)){c=l|m;g=h&-15728641|o;if(j>>>0>>0)j=g;else{i=t;do{r=Xc(7,0,(14-i|0)*3|0)|0;i=i+1|0;c=r|c;g=ba()|0|g}while(i>>>0>>0);j=g}}else{c=l;j=h}else{c=0;j=0}i=Vc(c|0,j|0,d|0,p|0)|0;ba()|0;g=0;while(1){if((g|0)>(d|0)){x=83;break b}r=u+(i<<3)|0;k=f[r+4>>2]|0;if((k&-117440513|0)==(j|0)?(f[r>>2]|0)==(c|0):0){x=78;break}i=(i+1|0)%(d|0)|0;r=u+(i<<3)|0;if((f[r>>2]|0)==(c|0)?(f[r+4>>2]|0)==(j|0):0)break;else g=g+1|0}if((x|0)==78?(x=0,0==0&(k&117440512|0)==100663296):0)break;r=b+(e<<3)|0;f[r>>2]=l;f[r+4>>2]=h;e=e+1|0}while(0);a=a+1|0;if((a|0)>=(d|0)){d=n;break d}h=w+(a<<3)|0;l=f[h>>2]|0;h=f[h+4>>2]|0}}else{e=0;d=n}}else{e=0;d=0}while(0);_c(u|0,0,v|0)|0;Zc(w|0,q|0,d<<3|0)|0;Mc(q);if(!d)break a;else b=b+(e<<3)|0}if((x|0)==33){Mc(w);Mc(u);x=-1;return x|0}else if((x|0)==38){Mc(w);Mc(u);x=-2;return x|0}else if((x|0)==83){Mc(q);Mc(w);Mc(u);x=-1;return x|0}else if((x|0)==84){Zc(b|0,w|0,d<<3|0)|0;break}}while(0);Mc(w);Mc(u);x=0;return x|0}function Gb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0;if((b|0)<=0){e=0;return e|0}g=0;l=0;a:while(1){if((g|0)>=(d|0)){g=-1;h=11;break}k=a+(l<<3)|0;i=k;h=f[i>>2]|0;i=f[i+4>>2]|0;do if(!((h|0)==0&(i|0)==0)){j=Wc(h|0,i|0,52)|0;ba()|0;j=j&15;if((j|0)>(e|0)){g=-2;h=11;break a}if((j|0)==(e|0)){k=c+(g<<3)|0;f[k>>2]=h;f[k+4>>2]=i;g=g+1|0;break}h=(nc(7,e-j|0)|0)+g|0;if((h|0)>(d|0)){g=-1;h=11;break a}Db(f[k>>2]|0,f[k+4>>2]|0,e,c+(g<<3)|0);g=h}while(0);l=l+1|0;if((l|0)>=(b|0)){g=0;h=11;break}}if((h|0)==11)return g|0;return 0}function Hb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;if((b|0)<=0){c=0;return c|0}d=0;h=0;a:while(1){e=a+(h<<3)|0;g=f[e>>2]|0;e=f[e+4>>2]|0;do if(!((g|0)==0&(e|0)==0)){e=Wc(g|0,e|0,52)|0;ba()|0;e=e&15;if((e|0)>(c|0)){d=-1;e=9;break a}if((e|0)==(c|0)){d=d+1|0;break}else{d=(nc(7,c-e|0)|0)+d|0;break}}while(0);h=h+1|0;if((h|0)>=(b|0)){e=9;break}}if((e|0)==9)return d|0;return 0}function Ib(a,b){a=a|0;b=b|0;b=Wc(a|0,b|0,52)|0;ba()|0;return b&1|0}function Jb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=Wc(a|0,b|0,52)|0;ba()|0;e=e&15;if(!e){e=0;return e|0}d=1;while(1){c=Wc(a|0,b|0,(15-d|0)*3|0)|0;ba()|0;c=c&7;if(c|0){d=5;break}if(d>>>0>>0)d=d+1|0;else{c=0;d=5;break}}if((d|0)==5)return c|0;return 0}function Kb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=Wc(a|0,b|0,52)|0;ba()|0;i=i&15;if(!i){h=b;i=a;aa(h|0);return i|0}h=1;c=0;while(1){f=(15-h|0)*3|0;d=Xc(7,0,f|0)|0;e=ba()|0;g=Wc(a|0,b|0,f|0)|0;ba()|0;f=Xc(Ya(g&7)|0,0,f|0)|0;g=ba()|0;a=f|a&~d;b=g|b&~e;a:do if(!c)if(!((f&d|0)==0&(g&e|0)==0)){d=Wc(a|0,b|0,52)|0;ba()|0;d=d&15;if(!d)c=1;else{c=1;b:while(1){g=Wc(a|0,b|0,(15-c|0)*3|0)|0;ba()|0;switch(g&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0>>0)c=c+1|0;else{c=1;break a}}c=1;while(1){g=(15-c|0)*3|0;e=Wc(a|0,b|0,g|0)|0;ba()|0;f=Xc(7,0,g|0)|0;b=b&~(ba()|0);g=Xc(Ya(e&7)|0,0,g|0)|0;a=a&~f|g;b=b|(ba()|0);if(c>>>0>>0)c=c+1|0;else{c=1;break}}}}else c=0;while(0);if(h>>>0>>0)h=h+1|0;else break}aa(b|0);return a|0}function Lb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=Wc(a|0,b|0,52)|0;ba()|0;d=d&15;if(!d){c=b;d=a;aa(c|0);return d|0}c=1;while(1){f=(15-c|0)*3|0;g=Wc(a|0,b|0,f|0)|0;ba()|0;e=Xc(7,0,f|0)|0;b=b&~(ba()|0);f=Xc(Ya(g&7)|0,0,f|0)|0;a=f|a&~e;b=ba()|0|b;if(c>>>0>>0)c=c+1|0;else break}aa(b|0);return a|0}function Mb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=Wc(a|0,b|0,52)|0;ba()|0;i=i&15;if(!i){h=b;i=a;aa(h|0);return i|0}h=1;c=0;while(1){f=(15-h|0)*3|0;d=Xc(7,0,f|0)|0;e=ba()|0;g=Wc(a|0,b|0,f|0)|0;ba()|0;f=Xc(Za(g&7)|0,0,f|0)|0;g=ba()|0;a=f|a&~d;b=g|b&~e;a:do if(!c)if(!((f&d|0)==0&(g&e|0)==0)){d=Wc(a|0,b|0,52)|0;ba()|0;d=d&15;if(!d)c=1;else{c=1;b:while(1){g=Wc(a|0,b|0,(15-c|0)*3|0)|0;ba()|0;switch(g&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0>>0)c=c+1|0;else{c=1;break a}}c=1;while(1){e=(15-c|0)*3|0;f=Xc(7,0,e|0)|0;g=b&~(ba()|0);b=Wc(a|0,b|0,e|0)|0;ba()|0;b=Xc(Za(b&7)|0,0,e|0)|0;a=a&~f|b;b=g|(ba()|0);if(c>>>0>>0)c=c+1|0;else{c=1;break}}}}else c=0;while(0);if(h>>>0>>0)h=h+1|0;else break}aa(b|0);return a|0}function Nb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=Wc(a|0,b|0,52)|0;ba()|0;d=d&15;if(!d){c=b;d=a;aa(c|0);return d|0}c=1;while(1){g=(15-c|0)*3|0;f=Xc(7,0,g|0)|0;e=b&~(ba()|0);b=Wc(a|0,b|0,g|0)|0;ba()|0;b=Xc(Za(b&7)|0,0,g|0)|0;a=b|a&~f;b=ba()|0|e;if(c>>>0>>0)c=c+1|0;else break}aa(b|0);return a|0}function Ob(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;j=t;t=t+64|0;i=j+40|0;d=j+24|0;e=j+12|0;g=j;Xc(b|0,0,52)|0;c=ba()|0|134225919;if(!b){if((f[a+4>>2]|0)>2){h=0;i=0;aa(h|0);t=j;return i|0}if((f[a+8>>2]|0)>2){h=0;i=0;aa(h|0);t=j;return i|0}if((f[a+12>>2]|0)>2){h=0;i=0;aa(h|0);t=j;return i|0}Xc(Aa(a)|0,0,45)|0;h=ba()|0|c;i=-1;aa(h|0);t=j;return i|0};f[i>>2]=f[a>>2];f[i+4>>2]=f[a+4>>2];f[i+8>>2]=f[a+8>>2];f[i+12>>2]=f[a+12>>2];h=i+4|0;if((b|0)>0){a=-1;while(1){f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];f[d+8>>2]=f[h+8>>2];if(!(b&1)){Sa(h);f[e>>2]=f[h>>2];f[e+4>>2]=f[h+4>>2];f[e+8>>2]=f[h+8>>2];Ua(e)}else{Ra(h);f[e>>2]=f[h>>2];f[e+4>>2]=f[h+4>>2];f[e+8>>2]=f[h+8>>2];Ta(e)}Oa(d,e,g);La(g);l=(15-b|0)*3|0;k=Xc(7,0,l|0)|0;c=c&~(ba()|0);l=Xc(Qa(g)|0,0,l|0)|0;a=l|a&~k;c=ba()|0|c;if((b|0)>1)b=b+-1|0;else break}}else a=-1;a:do if(((f[h>>2]|0)<=2?(f[i+8>>2]|0)<=2:0)?(f[i+12>>2]|0)<=2:0){d=Aa(i)|0;b=Xc(d|0,0,45)|0;b=b|a;a=ba()|0|c&-1040385;g=Ba(i)|0;if(!(ya(d)|0)){if((g|0)<=0)break;e=0;while(1){d=Wc(b|0,a|0,52)|0;ba()|0;d=d&15;if(d){c=1;while(1){l=(15-c|0)*3|0;i=Wc(b|0,a|0,l|0)|0;ba()|0;k=Xc(7,0,l|0)|0;a=a&~(ba()|0);l=Xc(Ya(i&7)|0,0,l|0)|0;b=b&~k|l;a=a|(ba()|0);if(c>>>0>>0)c=c+1|0;else break}}e=e+1|0;if((e|0)==(g|0))break a}}e=Wc(b|0,a|0,52)|0;ba()|0;e=e&15;b:do if(e){c=1;c:while(1){l=Wc(b|0,a|0,(15-c|0)*3|0)|0;ba()|0;switch(l&7){case 1:break c;case 0:break;default:break b}if(c>>>0>>0)c=c+1|0;else break b}if(Ca(d,f[i>>2]|0)|0){c=1;while(1){i=(15-c|0)*3|0;k=Xc(7,0,i|0)|0;l=a&~(ba()|0);a=Wc(b|0,a|0,i|0)|0;ba()|0;a=Xc(Za(a&7)|0,0,i|0)|0;b=b&~k|a;a=l|(ba()|0);if(c>>>0>>0)c=c+1|0;else break}}else{c=1;while(1){l=(15-c|0)*3|0;i=Wc(b|0,a|0,l|0)|0;ba()|0;k=Xc(7,0,l|0)|0;a=a&~(ba()|0);l=Xc(Ya(i&7)|0,0,l|0)|0;b=b&~k|l;a=a|(ba()|0);if(c>>>0>>0)c=c+1|0;else break}}}while(0);if((g|0)>0){c=0;do{b=Kb(b,a)|0;a=ba()|0;c=c+1|0}while((c|0)!=(g|0))}}else{b=0;a=0}while(0);k=a;l=b;aa(k|0);t=j;return l|0}function Pb(a){a=a|0;return (a|0)%2|0|0}function Qb(a,b){a=a|0;b=b|0;var c=0,d=0;d=t;t=t+16|0;c=d;if((b>>>0<=15?!(0==0?(f[a+4>>2]&2146435072|0)==2146435072:0):0)?!(0==0?(f[a+8+4>>2]&2146435072|0)==2146435072:0):0){fb(a,b,c);b=Ob(c,b)|0;a=ba()|0}else{a=0;b=0}aa(a|0);t=d;return b|0}function Rb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;e=c+4|0;g=Wc(a|0,b|0,52)|0;ba()|0;g=g&15;h=Wc(a|0,b|0,45)|0;ba()|0;d=(g|0)==0;if(!(ya(h&127)|0)){if(d){h=0;return h|0}if((f[e>>2]|0)==0?(f[c+8>>2]|0)==0:0)d=(f[c+12>>2]|0)!=0&1;else d=1}else if(d){h=1;return h|0}else d=1;c=1;while(1){if(!(c&1))Ua(e);else Ta(e);h=Wc(a|0,b|0,(15-c|0)*3|0)|0;ba()|0;Va(e,h&7);if(c>>>0>>0)c=c+1|0;else break}return d|0}function Sb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=t;t=t+16|0;j=l;k=Wc(a|0,b|0,45)|0;ba()|0;k=k&127;a:do if((ya(k)|0)!=0?(g=Wc(a|0,b|0,52)|0,ba()|0,g=g&15,(g|0)!=0):0){d=1;b:while(1){i=Wc(a|0,b|0,(15-d|0)*3|0)|0;ba()|0;switch(i&7){case 5:break b;case 0:break;default:{d=b;break a}}if(d>>>0>>0)d=d+1|0;else{d=b;break a}}e=1;d=b;while(1){b=(15-e|0)*3|0;h=Xc(7,0,b|0)|0;i=d&~(ba()|0);d=Wc(a|0,d|0,b|0)|0;ba()|0;d=Xc(Za(d&7)|0,0,b|0)|0;a=a&~h|d;d=i|(ba()|0);if(e>>>0>>0)e=e+1|0;else break}}else d=b;while(0);i=7728+(k*28|0)|0;f[c>>2]=f[i>>2];f[c+4>>2]=f[i+4>>2];f[c+8>>2]=f[i+8>>2];f[c+12>>2]=f[i+12>>2];if(!(Rb(a,d,c)|0)){t=l;return}h=c+4|0;f[j>>2]=f[h>>2];f[j+4>>2]=f[h+4>>2];f[j+8>>2]=f[h+8>>2];g=Wc(a|0,d|0,52)|0;ba()|0;i=g&15;if(!(g&1))g=i;else{Ua(h);g=i+1|0}if(!(ya(k)|0))d=0;else{c:do if(!i)d=0;else{b=1;while(1){e=Wc(a|0,d|0,(15-b|0)*3|0)|0;ba()|0;e=e&7;if(e|0){d=e;break c}if(b>>>0>>0)b=b+1|0;else{d=0;break}}}while(0);d=(d|0)==4&1}if(!(kb(c,g,d,0)|0)){if((g|0)!=(i|0)){f[h>>2]=f[j>>2];f[h+4>>2]=f[j+4>>2];f[h+8>>2]=f[j+8>>2]}}else{if(ya(k)|0)do{}while((kb(c,g,0,0)|0)!=0);if((g|0)!=(i|0))Sa(h)}t=l;return}function Tb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=t;t=t+16|0;e=d;Sb(a,b,e);b=Wc(a|0,b|0,52)|0;ba()|0;ib(e,b&15,c);t=d;return}function Ub(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;h=t;t=t+16|0;f=h;Sb(a,b,f);g=Wc(a|0,b|0,52)|0;ba()|0;g=g&15;e=Wc(a|0,b|0,45)|0;ba()|0;if(!(ya(e&127)|0)){b=0;lb(f,g,b,c);t=h;return}a:do if(!g)d=0;else{e=1;while(1){d=Wc(a|0,b|0,(15-e|0)*3|0)|0;ba()|0;d=d&7;if(d|0)break a;if(e>>>0>>0)e=e+1|0;else{d=0;break}}}while(0);b=(d|0)==0&1;lb(f,g,b,c);t=h;return}function Vb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;i=t;t=t+64|0;h=i;if((a|0)==(c|0)&(b|0)==(d|0)|(0!=0|(b&2013265920|0)!=134217728|(0!=0|(d&2013265920|0)!=134217728))){h=0;t=i;return h|0}e=Wc(a|0,b|0,52)|0;ba()|0;e=e&15;g=Wc(c|0,d|0,52)|0;ba()|0;if((e|0)!=(g&15|0)){h=0;t=i;return h|0}g=e+-1|0;if(e>>>0>1?(k=Bb(a,b,g)|0,j=ba()|0,g=Bb(c,d,g)|0,(k|0)==(g|0)&(j|0)==(ba()|0)):0){g=(e^15)*3|0;e=Wc(a|0,b|0,g|0)|0;ba()|0;e=e&7;g=Wc(c|0,d|0,g|0)|0;ba()|0;g=g&7;if((e|0)==0|(g|0)==0){k=1;t=i;return k|0}if((f[21136+(e<<2)>>2]|0)==(g|0)){k=1;t=i;return k|0}if((f[21168+(e<<2)>>2]|0)==(g|0)){k=1;t=i;return k|0}}e=h;g=e+56|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));oa(a,b,1,h);k=h;if(((((!((f[k>>2]|0)==(c|0)?(f[k+4>>2]|0)==(d|0):0)?(k=h+8|0,!((f[k>>2]|0)==(c|0)?(f[k+4>>2]|0)==(d|0):0)):0)?(k=h+16|0,!((f[k>>2]|0)==(c|0)?(f[k+4>>2]|0)==(d|0):0)):0)?(k=h+24|0,!((f[k>>2]|0)==(c|0)?(f[k+4>>2]|0)==(d|0):0)):0)?(k=h+32|0,!((f[k>>2]|0)==(c|0)?(f[k+4>>2]|0)==(d|0):0)):0)?(k=h+40|0,!((f[k>>2]|0)==(c|0)?(f[k+4>>2]|0)==(d|0):0)):0){e=h+48|0;e=((f[e>>2]|0)==(c|0)?(f[e+4>>2]|0)==(d|0):0)&1}else e=1;k=e;t=i;return k|0}function Wb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;h=t;t=t+16|0;e=h;if(!(Vb(a,b,c,d)|0)){a=0;g=0;aa(a|0);t=h;return g|0}g=b&-2130706433;f[e>>2]=0;i=sa(a,b,1,e)|0;if(!((i|0)==(c|0)&(ba()|0)==(d|0))){f[e>>2]=0;i=sa(a,b,2,e)|0;if(!((i|0)==(c|0)&(ba()|0)==(d|0))){f[e>>2]=0;i=sa(a,b,3,e)|0;if(!((i|0)==(c|0)&(ba()|0)==(d|0))){f[e>>2]=0;i=sa(a,b,4,e)|0;if(!((i|0)==(c|0)&(ba()|0)==(d|0))){f[e>>2]=0;i=sa(a,b,5,e)|0;if(!((i|0)==(c|0)&(ba()|0)==(d|0))){f[e>>2]=0;i=sa(a,b,6,e)|0;if((i|0)==(c|0)&(ba()|0)==(d|0)){b=0;c=100663296}else{g=0;i=0;aa(g|0);t=h;return i|0}}else{b=0;c=83886080}}else{b=0;c=67108864}}else{b=0;c=50331648}}else{b=0;c=33554432}}else{b=0;c=16777216}g=g|c|268435456;i=a|b;aa(g|0);t=h;return i|0}function Xb(a,b){a=a|0;b=b|0;var c=0;c=0==0&(b&2013265920|0)==268435456;aa((c?b&-2130706433|134217728:0)|0);return (c?a:0)|0}function Yb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=t;t=t+16|0;c=d;if(!(0==0&(b&2013265920|0)==268435456)){b=0;c=0;aa(b|0);t=d;return c|0}e=Wc(a|0,b|0,56)|0;ba()|0;f[c>>2]=0;c=sa(a,b&-2130706433|134217728,e&7,c)|0;b=ba()|0;aa(b|0);t=d;return c|0}function Zb(a,b){a=a|0;b=b|0;var c=0;if(!(0==0&(b&2013265920|0)==268435456)){c=0;return c|0}c=Wc(a|0,b|0,56)|0;ba()|0;switch(c&7){case 0:case 7:{c=0;return c|0}default:{}}c=b&-2130706433|134217728;if(0==0&(b&117440512|0)==16777216&(Eb(a,c)|0)!=0){c=0;return c|0}c=Ab(a,c)|0;return c|0}function _b(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;g=t;t=t+16|0;d=g;h=0==0&(b&2013265920|0)==268435456;e=b&-2130706433|134217728;i=c;f[i>>2]=h?a:0;f[i+4>>2]=h?e:0;if(h){b=Wc(a|0,b|0,56)|0;ba()|0;f[d>>2]=0;a=sa(a,e,b&7,d)|0;b=ba()|0}else{a=0;b=0}i=c+8|0;f[i>>2]=a;f[i+4>>2]=b;t=g;return}function $b(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=(Eb(a,b)|0)==0;b=b&-2130706433;d=c;f[d>>2]=e?a:0;f[d+4>>2]=e?b|285212672:0;d=c+8|0;f[d>>2]=a;f[d+4>>2]=b|301989888;d=c+16|0;f[d>>2]=a;f[d+4>>2]=b|318767104;d=c+24|0;f[d>>2]=a;f[d+4>>2]=b|335544320;d=c+32|0;f[d>>2]=a;f[d+4>>2]=b|352321536;c=c+40|0;f[c>>2]=a;f[c+4>>2]=b|369098752;return}function ac(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=t;t=t+368|0;e=l+352|0;i=l+184|0;j=l+16|0;k=l;_c(i|0,0,168)|0;_c(j|0,0,168)|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;h=0==0&(b&2013265920|0)==268435456;d=b&-2130706433|134217728;Ub(h?a:0,h?d:0,i);if(h){b=Wc(a|0,b|0,56)|0;ba()|0;f[e>>2]=0;a=sa(a,d,b&7,e)|0;b=ba()|0}else{a=0;b=0}Ub(a,b,j);if((f[i>>2]|0)<=0){k=0;f[c>>2]=k;t=l;return}h=i+24|0;a=0;b=0;g=0;do{e=i+8+(g<<4)|0;a:do if((f[j>>2]|0)>0){d=0;while(1){if(nb(e,j+8+(d<<4)|0,1.0e-06)|0)break;d=d+1|0;if((d|0)>=(f[j>>2]|0))break a}b:do if(!g){if((f[j>>2]|0)>0){d=0;do{if(nb(h,j+8+(d<<4)|0,1.0e-06)|0)break b;d=d+1|0}while((d|0)<(f[j>>2]|0))};f[k>>2]=f[e>>2];f[k+4>>2]=f[e+4>>2];f[k+8>>2]=f[e+8>>2];f[k+12>>2]=f[e+12>>2];b=1;break a}while(0);d=c+8+(a<<4)|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2];a=a+1|0}while(0);g=g+1|0}while((g|0)<(f[i>>2]|0));if(!b){k=a;f[c>>2]=k;t=l;return}j=c+8+(a<<4)|0;f[j>>2]=f[k>>2];f[j+4>>2]=f[k+4>>2];f[j+8>>2]=f[k+8>>2];f[j+12>>2]=f[k+12>>2];k=a+1|0;f[c>>2]=k;t=l;return}function bc(a){a=a|0;var b=0,c=0,d=0;b=Nc(1,12)|0;if(!b)da(22394,22349,46,22407);c=a+4|0;d=f[c>>2]|0;if(d|0){d=d+8|0;f[d>>2]=b;f[c>>2]=b;return b|0}if(f[a>>2]|0)da(22424,22349,58,22447);d=a;f[d>>2]=b;f[c>>2]=b;return b|0}function cc(a,b){a=a|0;b=b|0;var c=0,d=0;d=Lc(24)|0;if(!d)da(22461,22349,75,22475);f[d>>2]=f[b>>2];f[d+4>>2]=f[b+4>>2];f[d+8>>2]=f[b+8>>2];f[d+12>>2]=f[b+12>>2];f[d+16>>2]=0;b=a+4|0;c=f[b>>2]|0;if(c|0){f[c+16>>2]=d;f[b>>2]=d;return d|0}if(f[a>>2]|0)da(22490,22349,79,22475);f[a>>2]=d;f[b>>2]=d;return d|0}function dc(a){a=a|0;var b=0,c=0,d=0,e=0;if(!a)return;d=1;while(1){b=f[a>>2]|0;if(b|0)do{c=f[b>>2]|0;if(c|0)do{e=c;c=f[c+16>>2]|0;Mc(e)}while((c|0)!=0);e=b;b=f[b+8>>2]|0;Mc(e)}while((b|0)!=0);b=a;a=f[a+8>>2]|0;if(!d)Mc(b);if(!a)break;else d=0}return}function ec(a){a=a|0;var b=0,c=0,d=0,e=0,g=0.0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0;e=a+8|0;if(f[e>>2]|0){J=1;return J|0}d=f[a>>2]|0;if(!d){J=0;return J|0}b=d;c=0;do{c=c+1|0;b=f[b+8>>2]|0}while((b|0)!=0);if(c>>>0<2){J=0;return J|0}G=Lc(c<<2)|0;if(!G)da(22510,22349,312,22529);F=Lc(c<<5)|0;if(!F)da(22551,22349,316,22529);f[a>>2]=0;y=a+4|0;f[y>>2]=0;f[e>>2]=0;c=0;E=0;x=0;m=0;a:while(1){l=f[d>>2]|0;if(l){g=0.0;h=l;do{j=+p[h+8>>3];b=h;h=f[h+16>>2]|0;k=(h|0)==0;e=k?l:h;i=+p[e+8>>3];if(+H(+(j-i))>3.141592653589793){J=14;break}g=g+(i-j)*(+p[b>>3]+ +p[e>>3])}while(!k);if((J|0)==14){J=0;g=0.0;b=l;do{w=+p[b+8>>3];D=b+16|0;C=f[D>>2]|0;C=(C|0)==0?l:C;v=+p[C+8>>3];g=g+(+p[b>>3]+ +p[C>>3])*((v<0.0?v+6.283185307179586:v)-(w<0.0?w+6.283185307179586:w));b=f[((b|0)==0?d:D)>>2]|0}while((b|0)!=0)}if(g>0.0){f[G+(E<<2)>>2]=d;E=E+1|0;e=x;b=m}else J=19}else J=19;if((J|0)==19){J=0;do if(!c)if(!m)if(!(f[a>>2]|0)){e=y;h=a;b=d;c=a;break}else{J=27;break a}else{e=y;h=m+8|0;b=d;c=a;break}else{b=c+8|0;if(f[b>>2]|0){J=21;break a}c=Nc(1,12)|0;if(!c){J=23;break a}f[b>>2]=c;e=c+4|0;h=c;b=m}while(0);f[h>>2]=d;f[e>>2]=d;h=F+(x<<5)|0;k=f[d>>2]|0;if(k){l=F+(x<<5)+8|0;p[l>>3]=1797693134862315708145274.0e284;m=F+(x<<5)+24|0;p[m>>3]=1797693134862315708145274.0e284;p[h>>3]=-1797693134862315708145274.0e284;n=F+(x<<5)+16|0;p[n>>3]=-1797693134862315708145274.0e284;t=1797693134862315708145274.0e284;u=-1797693134862315708145274.0e284;e=0;o=k;j=1797693134862315708145274.0e284;r=1797693134862315708145274.0e284;s=-1797693134862315708145274.0e284;i=-1797693134862315708145274.0e284;while(1){g=+p[o>>3];w=+p[o+8>>3];o=f[o+16>>2]|0;q=(o|0)==0;v=+p[(q?k:o)+8>>3];if(g>3]=g;j=g}if(w>3]=w;r=w}if(g>s)p[h>>3]=g;else g=s;if(w>i){p[n>>3]=w;i=w}t=w>0.0&wu?w:u;e=e|+H(+(w-v))>3.141592653589793;if(q)break;else s=g}if(e){p[n>>3]=u;p[m>>3]=t}}else{f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[h+24>>2]=0;f[h+28>>2]=0}e=x+1|0}D=d+8|0;d=f[D>>2]|0;f[D>>2]=0;if(!d){J=45;break}else{x=e;m=b}}if((J|0)==21)da(22327,22349,32,22361);else if((J|0)==23)da(22381,22349,34,22361);else if((J|0)==27)da(22424,22349,58,22447);else if((J|0)==45){b:do if((E|0)>0){D=(e|0)==0;B=e<<2;C=(a|0)==0;A=0;b=0;while(1){z=f[G+(A<<2)>>2]|0;if(!D){x=Lc(B)|0;if(!x){J=50;break}y=Lc(B)|0;if(!y){J=52;break}c:do if(!C){e=0;c=0;h=a;while(1){d=F+(e<<5)|0;if(fc(f[h>>2]|0,d,f[z>>2]|0)|0){f[x+(c<<2)>>2]=h;f[y+(c<<2)>>2]=d;q=c+1|0}else q=c;h=f[h+8>>2]|0;if(!h)break;else{e=e+1|0;c=q}}if((q|0)>0){d=f[x>>2]|0;if((q|0)==1)c=d;else{n=0;o=-1;c=d;m=d;while(1){k=f[m>>2]|0;d=0;h=0;while(1){e=f[f[x+(h<<2)>>2]>>2]|0;if((e|0)==(k|0))l=d;else l=d+((fc(e,f[y+(h<<2)>>2]|0,f[k>>2]|0)|0)&1)|0;h=h+1|0;if((h|0)==(q|0))break;else d=l}e=(l|0)>(o|0);c=e?m:c;d=n+1|0;if((d|0)==(q|0))break c;n=d;o=e?l:o;m=f[x+(d<<2)>>2]|0}}}else c=0}else c=0;while(0);Mc(x);Mc(y);if(c){e=c+4|0;d=f[e>>2]|0;if(!d){if(f[c>>2]|0){J=70;break}}else c=d+8|0;f[c>>2]=z;f[e>>2]=z}else J=73}else J=73;if((J|0)==73){J=0;b=f[z>>2]|0;if(b|0)do{y=b;b=f[b+16>>2]|0;Mc(y)}while((b|0)!=0);Mc(z);b=2}A=A+1|0;if((A|0)>=(E|0)){I=b;break b}}if((J|0)==50)da(22566,22349,246,22585);else if((J|0)==52)da(22604,22349,248,22585);else if((J|0)==70)da(22424,22349,58,22447)}else I=0;while(0);Mc(G);Mc(F);J=I;return J|0}return 0}function fc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0;if(!(Ha(b,c)|0)){a=0;return a|0}b=Fa(b)|0;k=+p[c>>3];d=+p[c+8>>3];d=b&d<0.0?d+6.283185307179586:d;a=f[a>>2]|0;if(!a){a=0;return a|0}if(b){b=0;c=a;a:while(1){while(1){h=+p[c>>3];j=+p[c+8>>3];c=c+16|0;l=f[c>>2]|0;l=(l|0)==0?a:l;g=+p[l>>3];e=+p[l+8>>3];if(h>g){i=h;h=j}else{i=g;g=h;h=e;e=j}if(!(ki))break;c=f[c>>2]|0;if(!c){c=22;break a}}j=e<0.0?e+6.283185307179586:e;h=h<0.0?h+6.283185307179586:h;d=h==d|j==d?d+-2.220446049250313e-16:d;j=j+(k-g)/(i-g)*(h-j);if((j<0.0?j+6.283185307179586:j)>d)b=b^1;c=f[c>>2]|0;if(!c){c=22;break}}if((c|0)==22)return b|0}else{b=0;c=a;b:while(1){while(1){h=+p[c>>3];j=+p[c+8>>3];c=c+16|0;l=f[c>>2]|0;l=(l|0)==0?a:l;g=+p[l>>3];e=+p[l+8>>3];if(h>g){i=h;h=j}else{i=g;g=h;h=e;e=j}if(!(ki))break;c=f[c>>2]|0;if(!c){c=22;break b}}d=h==d|e==d?d+-2.220446049250313e-16:d;if(e+(k-g)/(i-g)*(h-e)>d)b=b^1;c=f[c>>2]|0;if(!c){c=22;break}}if((c|0)==22)return b|0}return 0}function gc(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,v=0;v=t;t=t+32|0;u=v+16|0;s=v;h=Wc(a|0,c|0,52)|0;ba()|0;h=h&15;p=Wc(d|0,e|0,52)|0;ba()|0;if((h|0)!=(p&15|0)){u=1;t=v;return u|0}l=Wc(a|0,c|0,45)|0;ba()|0;l=l&127;m=Wc(d|0,e|0,45)|0;ba()|0;m=m&127;p=(l|0)!=(m|0);if(p){j=Ea(l,m)|0;if((j|0)==7){u=2;t=v;return u|0}k=Ea(m,l)|0;if((k|0)==7)da(22628,22652,147,22662);else{q=j;i=k}}else{q=0;i=0}n=ya(l)|0;o=ya(m)|0;f[u>>2]=0;f[u+4>>2]=0;f[u+8>>2]=0;f[u+12>>2]=0;do if(!q){Rb(d,e,u)|0;if((n|0)!=0&(o|0)!=0){if((m|0)!=(l|0))da(22780,22652,246,22662);i=Jb(a,c)|0;h=Jb(d,e)|0;if((b[22096+(i*7|0)+h>>0]|0)==0?(b[22032+(i*7|0)+h>>0]|0)==0:0){i=f[21200+(i*28|0)+(h<<2)>>2]|0;if((i|0)>0){j=u+4|0;h=0;do{Xa(j);h=h+1|0}while((h|0)!=(i|0));r=55}else r=55}else h=5}else r=55}else{m=f[4304+(l*28|0)+(q<<2)>>2]|0;j=(m|0)>0;if(!o)if(j){l=0;k=d;j=e;do{k=Nb(k,j)|0;j=ba()|0;i=Za(i)|0;l=l+1|0}while((l|0)!=(m|0));m=i;l=k;k=j}else{m=i;l=d;k=e}else if(j){l=0;k=d;j=e;do{k=Mb(k,j)|0;j=ba()|0;i=Za(i)|0;if((i|0)==1)i=Za(1)|0;l=l+1|0}while((l|0)!=(m|0));m=i;l=k;k=j}else{m=i;l=d;k=e}Rb(l,k,u)|0;if(!p)da(22675,22652,177,22662);j=(n|0)!=0;i=(o|0)!=0;if(j&i)da(22702,22652,178,22662);if(!j)if(i){i=Jb(l,k)|0;if(Pb(h)|0?b[22096+(i*7|0)+m>>0]|0:0){h=4;break}if((Pb(h)|0)==0?b[22032+(i*7|0)+m>>0]|0:0){h=4;break}l=0;k=f[21200+(m*28|0)+(i<<2)>>2]|0;r=30}else i=0;else{i=Jb(a,c)|0;if(b[22096+(i*7|0)+q>>0]|0){h=3;break}if(b[22032+(i*7|0)+q>>0]|0){h=3;break}k=f[21200+(i*28|0)+(q<<2)>>2]|0;l=k;r=30}if((r|0)==30){if((k|0)<=-1)da(22733,22652,215,22662);if((l|0)<=-1)da(22756,22652,216,22662);if((k|0)>0){j=u+4|0;i=0;do{Xa(j);i=i+1|0}while((i|0)!=(k|0));i=l}else i=l};f[s>>2]=0;f[s+4>>2]=0;f[s+8>>2]=0;Va(s,q);if(h|0)while(1){if(!(Pb(h)|0))Ua(s);else Ta(s);if((h|0)>1)h=h+-1|0;else break}if((i|0)>0){h=0;do{Xa(s);h=h+1|0}while((h|0)!=(i|0))}r=u+4|0;Na(r,s,r);La(r);r=55}while(0);if((r|0)==55){h=u+4|0;f[g>>2]=f[h>>2];f[g+4>>2]=f[h+4>>2];f[g+8>>2]=f[h+8>>2];h=0}u=h;t=v;return u|0}function hc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0;p=t;t=t+48|0;h=p+36|0;i=p+24|0;j=p+12|0;k=p;g=Wc(a|0,b|0,52)|0;ba()|0;g=g&15;n=Wc(a|0,b|0,45)|0;ba()|0;n=n&127;l=ya(n)|0;Xc(g|0,0,52)|0;r=ba()|0|134225919;q=d;f[q>>2]=-1;f[q+4>>2]=r;if(!g){if((f[c>>2]|0)>1){r=1;t=p;return r|0}e=Da(n,Qa(c)|0)|0;if((e|0)==127){r=1;t=p;return r|0}o=Xc(e|0,0,45)|0;q=ba()|0;n=d;q=f[n+4>>2]&-1040385|q;r=d;f[r>>2]=f[n>>2]|o;f[r+4>>2]=q;r=0;t=p;return r|0};f[h>>2]=f[c>>2];f[h+4>>2]=f[c+4>>2];f[h+8>>2]=f[c+8>>2];while(1){f[i>>2]=f[h>>2];f[i+4>>2]=f[h+4>>2];f[i+8>>2]=f[h+8>>2];if(!(Pb(g)|0)){Sa(h);f[j>>2]=f[h>>2];f[j+4>>2]=f[h+4>>2];f[j+8>>2]=f[h+8>>2];Ua(j)}else{Ra(h);f[j>>2]=f[h>>2];f[j+4>>2]=f[h+4>>2];f[j+8>>2]=f[h+8>>2];Ta(j)}Oa(i,j,k);La(k);q=d;s=f[q>>2]|0;q=f[q+4>>2]|0;u=(15-g|0)*3|0;c=Xc(7,0,u|0)|0;q=q&~(ba()|0);u=Xc(Qa(k)|0,0,u|0)|0;q=ba()|0|q;r=d;f[r>>2]=u|s&~c;f[r+4>>2]=q;if((g|0)>1)g=g+-1|0;else break}a:do if(((f[h>>2]|0)<=1?(f[h+4>>2]|0)<=1:0)?(f[h+8>>2]|0)<=1:0){g=Qa(h)|0;i=Da(n,g)|0;if((i|0)==127)k=0;else k=ya(i)|0;b:do if(!g)if((l|0)!=0&(k|0)!=0){u=Jb(a,b)|0;g=d;g=21408+(u*28|0)+((Jb(f[g>>2]|0,f[g+4>>2]|0)|0)<<2)|0;g=f[g>>2]|0;if((g|0)<=-1)da(22904,22652,437,22837);if(!g){e=i;g=53}else{h=d;e=0;c=f[h>>2]|0;h=f[h+4>>2]|0;do{c=Lb(c,h)|0;h=ba()|0;u=d;f[u>>2]=c;f[u+4>>2]=h;e=e+1|0}while((e|0)<(g|0));e=i;g=52}}else{e=i;g=52}else{if(l){h=21408+((Jb(a,b)|0)*28|0)+(g<<2)|0;h=f[h>>2]|0;if((h|0)>0){c=0;do{g=Ya(g)|0;c=c+1|0}while((c|0)!=(h|0))}if((g|0)==1){e=3;break a}c=Da(n,g)|0;if((c|0)==127)da(22807,22652,380,22837);if(!(ya(c)|0)){o=h;m=g;e=c}else da(22850,22652,381,22837)}else{o=0;m=g;e=i}j=f[4304+(n*28|0)+(m<<2)>>2]|0;if((j|0)<=-1)da(22881,22652,388,22837);if(!k){if((o|0)<=-1)da(22733,22652,421,22837);if(o|0){h=d;g=0;c=f[h>>2]|0;h=f[h+4>>2]|0;do{c=Lb(c,h)|0;h=ba()|0;u=d;f[u>>2]=c;f[u+4>>2]=h;g=g+1|0}while((g|0)<(o|0))}if((j|0)<=0){g=52;break}h=d;g=0;c=f[h>>2]|0;h=f[h+4>>2]|0;while(1){c=Lb(c,h)|0;h=ba()|0;u=d;f[u>>2]=c;f[u+4>>2]=h;g=g+1|0;if((g|0)==(j|0)){g=52;break b}}}i=Ea(e,n)|0;if((i|0)==7)da(22628,22652,397,22837);g=d;c=f[g>>2]|0;g=f[g+4>>2]|0;if((j|0)>0){h=0;do{c=Lb(c,g)|0;g=ba()|0;u=d;f[u>>2]=c;f[u+4>>2]=g;h=h+1|0}while((h|0)!=(j|0))}c=Jb(c,g)|0;u=za(e)|0;c=f[(u?21824:21616)+(i*28|0)+(c<<2)>>2]|0;if((c|0)<=-1)da(22733,22652,416,22837);if(!c)g=52;else{i=d;g=0;h=f[i>>2]|0;i=f[i+4>>2]|0;do{h=Kb(h,i)|0;i=ba()|0;u=d;f[u>>2]=h;f[u+4>>2]=i;g=g+1|0}while((g|0)<(c|0));g=52}}while(0);if((g|0)==52)if(k)g=53;if((g|0)==53){u=d;if((Jb(f[u>>2]|0,f[u+4>>2]|0)|0)==1){e=4;break}}u=d;r=f[u>>2]|0;u=f[u+4>>2]&-1040385;s=Xc(e|0,0,45)|0;u=u|(ba()|0);e=d;f[e>>2]=r|s;f[e+4>>2]=u;e=0}else e=2;while(0);u=e;t=p;return u|0}function ic(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=t;t=t+16|0;f=g;a=gc(a,b,c,d,f)|0;if(!a){bb(f,e);a=0}t=g;return a|0}function jc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=t;t=t+16|0;f=e;cb(c,f);d=hc(a,b,f,d)|0;t=e;return d|0}function kc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=t;t=t+32|0;e=g+12|0;f=g;if((gc(a,b,a,b,e)|0)==0?(gc(a,b,c,d,f)|0)==0:0)a=ab(e,f)|0;else a=-1;t=g;return a|0}function lc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=t;t=t+32|0;e=g+12|0;f=g;if((gc(a,b,a,b,e)|0)==0?(gc(a,b,c,d,f)|0)==0:0)a=ab(e,f)|0;else a=-1;t=g;return (a>>>31^1)+a|0}function mc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,u=0,v=0,w=0,x=0,y=0.0;x=t;t=t+48|0;g=x+24|0;h=x+12|0;w=x;if((gc(a,b,a,b,g)|0)==0?(gc(a,b,c,d,h)|0)==0:0){v=ab(g,h)|0;if((v|0)<0){w=v;t=x;return w|0};f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;gc(a,b,a,b,g)|0;gc(a,b,c,d,h)|0;db(g);db(h);if(!v){d=g+4|0;n=g+8|0;r=d;s=n;u=g;c=f[g>>2]|0;d=f[d>>2]|0;g=f[n>>2]|0;p=0.0;q=0.0;o=0.0}else{l=f[g>>2]|0;o=+(v|0);r=g+4|0;m=f[r>>2]|0;s=g+8|0;n=f[s>>2]|0;u=g;c=l;d=m;g=n;p=+((f[h>>2]|0)-l|0)/o;q=+((f[h+4>>2]|0)-m|0)/o;o=+((f[h+8>>2]|0)-n|0)/o}f[w>>2]=c;n=w+4|0;f[n>>2]=d;m=w+8|0;f[m>>2]=g;l=0;while(1){j=+(l|0);y=p*j+ +(c|0);i=q*j+ +(f[r>>2]|0);j=o*j+ +(f[s>>2]|0);d=~~+Yc(+y);h=~~+Yc(+i);c=~~+Yc(+j);y=+H(+(+(d|0)-y));i=+H(+(+(h|0)-i));j=+H(+(+(c|0)-j));do if(!(y>i&y>j)){k=0-d|0;if(i>j){g=k-c|0;break}else{g=h;c=k-h|0;break}}else{d=0-(h+c)|0;g=h}while(0);f[w>>2]=d;f[n>>2]=g;f[m>>2]=c;eb(w);hc(a,b,w,e+(l<<3)|0)|0;if((l|0)==(v|0))break;l=l+1|0;c=f[u>>2]|0}w=0;t=x;return w|0}w=-1;t=x;return w|0}function nc(a,b){a=a|0;b=b|0;var c=0;if(!b){c=1;return c|0}c=a;a=1;do{a=U((b&1|0)==0?1:c,a)|0;b=b>>1;c=U(c,c)|0}while((b|0)!=0);return a|0}function oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0.0;if(!(Ha(b,c)|0)){m=0;return m|0}b=Fa(b)|0;n=+p[c>>3];d=+p[c+8>>3];d=b&d<0.0?d+6.283185307179586:d;m=f[a>>2]|0;if((m|0)<=0){m=0;return m|0}l=f[a+4>>2]|0;if(b){b=0;c=-1;a=0;a:while(1){k=a;while(1){h=+p[l+(k<<4)>>3];j=+p[l+(k<<4)+8>>3];a=(c+2|0)%(m|0)|0;g=+p[l+(a<<4)>>3];e=+p[l+(a<<4)+8>>3];if(h>g){i=h;h=j}else{i=g;g=h;h=e;e=j}if(!(ni))break;c=k+1|0;if((c|0)<(m|0)){a=k;k=c;c=a}else{c=22;break a}}j=e<0.0?e+6.283185307179586:e;h=h<0.0?h+6.283185307179586:h;d=h==d|j==d?d+-2.220446049250313e-16:d;j=j+(n-g)/(i-g)*(h-j);if((j<0.0?j+6.283185307179586:j)>d)b=b^1;a=k+1|0;if((a|0)>=(m|0)){c=22;break}else c=k}if((c|0)==22)return b|0}else{b=0;c=-1;a=0;b:while(1){k=a;while(1){h=+p[l+(k<<4)>>3];j=+p[l+(k<<4)+8>>3];a=(c+2|0)%(m|0)|0;g=+p[l+(a<<4)>>3];e=+p[l+(a<<4)+8>>3];if(h>g){i=h;h=j}else{i=g;g=h;h=e;e=j}if(!(ni))break;c=k+1|0;if((c|0)<(m|0)){a=k;k=c;c=a}else{c=22;break b}}d=h==d|e==d?d+-2.220446049250313e-16:d;if(e+(n-g)/(i-g)*(h-e)>d)b=b^1;a=k+1|0;if((a|0)>=(m|0)){c=22;break}else c=k}if((c|0)==22)return b|0}return 0}function pc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0;q=f[a>>2]|0;if(!q){f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[b+24>>2]=0;f[b+28>>2]=0;return}r=b+8|0;p[r>>3]=1797693134862315708145274.0e284;s=b+24|0;p[s>>3]=1797693134862315708145274.0e284;p[b>>3]=-1797693134862315708145274.0e284;t=b+16|0;p[t>>3]=-1797693134862315708145274.0e284;if((q|0)<=0)return;n=f[a+4>>2]|0;k=1797693134862315708145274.0e284;l=-1797693134862315708145274.0e284;m=0;a=-1;g=1797693134862315708145274.0e284;h=1797693134862315708145274.0e284;j=-1797693134862315708145274.0e284;d=-1797693134862315708145274.0e284;o=0;while(1){c=+p[n+(o<<4)>>3];i=+p[n+(o<<4)+8>>3];a=a+2|0;e=+p[n+(((a|0)==(q|0)?0:a)<<4)+8>>3];if(c>3]=c;g=c}if(i>3]=i;h=i}if(c>j)p[b>>3]=c;else c=j;if(i>d){p[t>>3]=i;d=i}k=i>0.0&il?i:l;m=m|+H(+(i-e))>3.141592653589793;a=o+1|0;if((a|0)==(q|0))break;else{u=o;j=c;o=a;a=u}}if(!m)return;p[t>>3]=l;p[s>>3]=k;return}function qc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;q=f[a>>2]|0;if(q){r=b+8|0;p[r>>3]=1797693134862315708145274.0e284;s=b+24|0;p[s>>3]=1797693134862315708145274.0e284;p[b>>3]=-1797693134862315708145274.0e284;t=b+16|0;p[t>>3]=-1797693134862315708145274.0e284;if((q|0)>0){e=f[a+4>>2]|0;n=1797693134862315708145274.0e284;o=-1797693134862315708145274.0e284;d=0;c=-1;j=1797693134862315708145274.0e284;k=1797693134862315708145274.0e284;m=-1797693134862315708145274.0e284;h=-1797693134862315708145274.0e284;u=0;while(1){g=+p[e+(u<<4)>>3];l=+p[e+(u<<4)+8>>3];y=c+2|0;i=+p[e+(((y|0)==(q|0)?0:y)<<4)+8>>3];if(g>3]=g;j=g}if(l>3]=l;k=l}if(g>m)p[b>>3]=g;else g=m;if(l>h){p[t>>3]=l;h=l}n=l>0.0&lo?l:o;d=d|+H(+(l-i))>3.141592653589793;c=u+1|0;if((c|0)==(q|0))break;else{y=u;m=g;u=c;c=y}}if(d){p[t>>3]=o;p[s>>3]=n}}}else{f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[b+24>>2]=0;f[b+28>>2]=0}y=a+8|0;c=f[y>>2]|0;if((c|0)<=0)return;x=a+12|0;w=0;do{e=f[x>>2]|0;d=w;w=w+1|0;s=b+(w<<5)|0;t=f[e+(d<<3)>>2]|0;if(t){u=b+(w<<5)+8|0;p[u>>3]=1797693134862315708145274.0e284;a=b+(w<<5)+24|0;p[a>>3]=1797693134862315708145274.0e284;p[s>>3]=-1797693134862315708145274.0e284;v=b+(w<<5)+16|0;p[v>>3]=-1797693134862315708145274.0e284;if((t|0)>0){q=f[e+(d<<3)+4>>2]|0;n=1797693134862315708145274.0e284;o=-1797693134862315708145274.0e284;e=0;d=-1;r=0;j=1797693134862315708145274.0e284;k=1797693134862315708145274.0e284;l=-1797693134862315708145274.0e284;h=-1797693134862315708145274.0e284;while(1){g=+p[q+(r<<4)>>3];m=+p[q+(r<<4)+8>>3];d=d+2|0;i=+p[q+(((d|0)==(t|0)?0:d)<<4)+8>>3];if(g>3]=g;j=g}if(m>3]=m;k=m}if(g>l)p[s>>3]=g;else g=l;if(m>h){p[v>>3]=m;h=m}n=m>0.0&mo?m:o;e=e|+H(+(m-i))>3.141592653589793;d=r+1|0;if((d|0)==(t|0))break;else{z=r;r=d;l=g;d=z}}if(e){p[v>>3]=o;p[a>>3]=n}}}else{f[s>>2]=0;f[s+4>>2]=0;f[s+8>>2]=0;f[s+12>>2]=0;f[s+16>>2]=0;f[s+20>>2]=0;f[s+24>>2]=0;f[s+28>>2]=0;c=f[y>>2]|0}}while((w|0)<(c|0));return}function rc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;if(!(oc(a,b,c)|0)){e=0;return e|0}e=a+8|0;if((f[e>>2]|0)<=0){e=1;return e|0}d=a+12|0;a=0;while(1){g=a;a=a+1|0;if(oc((f[d>>2]|0)+(g<<3)|0,b+(a<<5)|0,c)|0){a=0;d=6;break}if((a|0)>=(f[e>>2]|0)){a=1;d=6;break}}if((d|0)==6)return a|0;return 0}function sc(){return 8}function tc(){return 16}function uc(){return 168}function vc(){return 8}function wc(){return 16}function xc(){return 12}function yc(){return 8}function zc(a){a=a|0;var b=0.0,c=0.0;c=+p[a>>3];b=+p[a+8>>3];return +(+I(+(c*c+b*b)))}function Ac(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;j=+p[a>>3];i=+p[b>>3]-j;h=+p[a+8>>3];g=+p[b+8>>3]-h;l=+p[c>>3];f=+p[d>>3]-l;m=+p[c+8>>3];k=+p[d+8>>3]-m;f=(f*(h-m)-(j-l)*k)/(i*k-g*f);p[e>>3]=j+i*f;p[e+8>>3]=h+g*f;return}function Bc(a,b){a=a|0;b=b|0;if(!(+p[a>>3]==+p[b>>3])){b=0;return b|0}b=+p[a+8>>3]==+p[b+8>>3];return b|0}function Cc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;e=+p[a>>3]-+p[b>>3];d=+p[a+8>>3]-+p[b+8>>3];c=+p[a+16>>3]-+p[b+16>>3];return +(e*e+d*d+c*c)}function Dc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;c=+p[a>>3];d=+K(+c);c=+L(+c);p[b+16>>3]=c;c=+p[a+8>>3];e=d*+K(+c);p[b>>3]=e;c=d*+L(+c);p[b+8>>3]=c;return}function Ec(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)>0){d=Nc(b,4)|0;f[a>>2]=d;if(!d)da(22933,22956,37,22970)}else f[a>>2]=0;f[a+4>>2]=b;f[a+8>>2]=0;f[a+12>>2]=c;return}function Fc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;e=a+4|0;g=a+12|0;h=a+8|0;a:while(1){c=f[e>>2]|0;b=0;while(1){if((b|0)>=(c|0))break a;d=f[a>>2]|0;i=f[d+(b<<2)>>2]|0;if(!i)b=b+1|0;else break}b=d+(~~(+H(+(+J(10.0,+(+(15-(f[g>>2]|0)|0)))*(+p[i>>3]+ +p[i+8>>3])))%+(c|0))>>>0<<2)|0;c=f[b>>2]|0;b:do if(c|0){d=i+32|0;if((c|0)==(i|0))f[b>>2]=f[d>>2];else{c=c+32|0;b=f[c>>2]|0;if(!b)break;while(1){if((b|0)==(i|0))break;c=b+32|0;b=f[c>>2]|0;if(!b)break b}f[c>>2]=f[d>>2]}Mc(i);f[h>>2]=(f[h>>2]|0)+-1}while(0)}Mc(f[a>>2]|0);return}function Gc(a){a=a|0;var b=0,c=0,d=0;d=f[a+4>>2]|0;c=0;while(1){if((c|0)>=(d|0)){b=0;c=4;break}b=f[(f[a>>2]|0)+(c<<2)>>2]|0;if(!b)c=c+1|0;else{c=4;break}}if((c|0)==4)return b|0;return 0}function Hc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=~~(+H(+(+J(10.0,+(+(15-(f[a+12>>2]|0)|0)))*(+p[b>>3]+ +p[b+8>>3])))%+(f[a+4>>2]|0))>>>0;c=(f[a>>2]|0)+(c<<2)|0;d=f[c>>2]|0;if(!d){g=1;return g|0}g=b+32|0;do if((d|0)!=(b|0)){c=f[d+32>>2]|0;if(!c){g=1;return g|0}e=c;while(1){if((e|0)==(b|0)){e=8;break}c=f[e+32>>2]|0;if(!c){c=1;e=10;break}else{d=e;e=c}}if((e|0)==8){f[d+32>>2]=f[g>>2];break}else if((e|0)==10)return c|0}else f[c>>2]=f[g>>2];while(0);Mc(b);g=a+8|0;f[g>>2]=(f[g>>2]|0)+-1;g=0;return g|0}function Ic(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;g=Lc(40)|0;if(!g)da(22986,22956,95,22999);f[g>>2]=f[b>>2];f[g+4>>2]=f[b+4>>2];f[g+8>>2]=f[b+8>>2];f[g+12>>2]=f[b+12>>2];e=g+16|0;f[e>>2]=f[c>>2];f[e+4>>2]=f[c+4>>2];f[e+8>>2]=f[c+8>>2];f[e+12>>2]=f[c+12>>2];f[g+32>>2]=0;e=~~(+H(+(+J(10.0,+(+(15-(f[a+12>>2]|0)|0)))*(+p[b>>3]+ +p[b+8>>3])))%+(f[a+4>>2]|0))>>>0;e=(f[a>>2]|0)+(e<<2)|0;d=f[e>>2]|0;do if(!d)f[e>>2]=g;else{while(1){if(ob(d,b)|0?ob(d+16|0,c)|0:0)break;e=f[d+32>>2]|0;d=(e|0)==0?d:e;if(!(f[d+32>>2]|0)){h=10;break}}if((h|0)==10){f[d+32>>2]=g;break}Mc(g);h=d;return h|0}while(0);h=a+8|0;f[h>>2]=(f[h>>2]|0)+1;h=g;return h|0}function Jc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=~~(+H(+(+J(10.0,+(+(15-(f[a+12>>2]|0)|0)))*(+p[b>>3]+ +p[b+8>>3])))%+(f[a+4>>2]|0))>>>0;e=f[(f[a>>2]|0)+(e<<2)>>2]|0;if(!e){c=0;return c|0}if(!c){a=e;while(1){if(ob(a,b)|0){d=10;break}a=f[a+32>>2]|0;if(!a){a=0;d=10;break}}if((d|0)==10)return a|0}a=e;while(1){if(ob(a,b)|0?ob(a+16|0,c)|0:0){d=10;break}a=f[a+32>>2]|0;if(!a){a=0;d=10;break}}if((d|0)==10)return a|0;return 0}function Kc(a,b){a=a|0;b=b|0;var c=0;c=~~(+H(+(+J(10.0,+(+(15-(f[a+12>>2]|0)|0)))*(+p[b>>3]+ +p[b+8>>3])))%+(f[a+4>>2]|0))>>>0;a=f[(f[a>>2]|0)+(c<<2)>>2]|0;if(!a){c=0;return c|0}while(1){if(ob(a,b)|0){b=5;break}a=f[a+32>>2]|0;if(!a){a=0;b=5;break}}if((b|0)==5)return a|0;return 0}function Lc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0;x=t;t=t+16|0;n=x;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=f[5756]|0;c=m>>>a;if(c&3|0){b=(c&1^1)+a|0;a=23064+(b<<1<<2)|0;c=a+8|0;d=f[c>>2]|0;e=d+8|0;g=f[e>>2]|0;if((g|0)==(a|0))f[5756]=m&~(1<>2]=a;f[c>>2]=g}w=b<<3;f[d+4>>2]=w|3;w=d+w+4|0;f[w>>2]=f[w>>2]|1;w=e;t=x;return w|0}l=f[5758]|0;if(k>>>0>l>>>0){if(c|0){b=2<>>12&16;b=b>>>i;c=b>>>5&8;b=b>>>c;g=b>>>2&4;b=b>>>g;a=b>>>1&2;b=b>>>a;d=b>>>1&1;d=(c|i|g|a|d)+(b>>>d)|0;b=23064+(d<<1<<2)|0;a=b+8|0;g=f[a>>2]|0;i=g+8|0;c=f[i>>2]|0;if((c|0)==(b|0)){a=m&~(1<>2]=b;f[a>>2]=c;a=m}w=d<<3;h=w-k|0;f[g+4>>2]=k|3;e=g+k|0;f[e+4>>2]=h|1;f[g+w>>2]=h;if(l|0){d=f[5761]|0;b=l>>>3;c=23064+(b<<1<<2)|0;b=1<>2]|0}f[a>>2]=d;f[b+12>>2]=d;f[d+8>>2]=b;f[d+12>>2]=c}f[5758]=h;f[5761]=e;w=i;t=x;return w|0}g=f[5757]|0;if(g){c=(g&0-g)+-1|0;e=c>>>12&16;c=c>>>e;d=c>>>5&8;c=c>>>d;h=c>>>2&4;c=c>>>h;i=c>>>1&2;c=c>>>i;j=c>>>1&1;j=f[23328+((d|e|h|i|j)+(c>>>j)<<2)>>2]|0;c=j;i=j;j=(f[j+4>>2]&-8)-k|0;while(1){a=f[c+16>>2]|0;if(!a){a=f[c+20>>2]|0;if(!a)break}h=(f[a+4>>2]&-8)-k|0;e=h>>>0>>0;c=a;i=e?a:i;j=e?h:j}h=i+k|0;if(h>>>0>i>>>0){e=f[i+24>>2]|0;b=f[i+12>>2]|0;do if((b|0)==(i|0)){a=i+20|0;b=f[a>>2]|0;if(!b){a=i+16|0;b=f[a>>2]|0;if(!b){c=0;break}}while(1){d=b+20|0;c=f[d>>2]|0;if(!c){d=b+16|0;c=f[d>>2]|0;if(!c)break;else{b=c;a=d}}else{b=c;a=d}}f[a>>2]=0;c=b}else{c=f[i+8>>2]|0;f[c+12>>2]=b;f[b+8>>2]=c;c=b}while(0);do if(e|0){b=f[i+28>>2]|0;a=23328+(b<<2)|0;if((i|0)==(f[a>>2]|0)){f[a>>2]=c;if(!c){f[5757]=g&~(1<>2]|0)==(i|0)?w:e+20|0)>>2]=c;if(!c)break}f[c+24>>2]=e;b=f[i+16>>2]|0;if(b|0){f[c+16>>2]=b;f[b+24>>2]=c}b=f[i+20>>2]|0;if(b|0){f[c+20>>2]=b;f[b+24>>2]=c}}while(0);if(j>>>0<16){w=j+k|0;f[i+4>>2]=w|3;w=i+w+4|0;f[w>>2]=f[w>>2]|1}else{f[i+4>>2]=k|3;f[h+4>>2]=j|1;f[h+j>>2]=j;if(l|0){d=f[5761]|0;b=l>>>3;c=23064+(b<<1<<2)|0;b=1<>2]|0}f[a>>2]=d;f[b+12>>2]=d;f[d+8>>2]=b;f[d+12>>2]=c}f[5758]=j;f[5761]=h}w=i+8|0;t=x;return w|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;d=f[5757]|0;if(d){e=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{m=(a+1048320|0)>>>16&8;q=a<>>16&4;q=q<>>16&2;j=14-(i|m|j)+(q<>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;c=f[23328+(j<<2)>>2]|0;a:do if(!c){c=0;a=0;q=61}else{a=0;i=k<<((j|0)==31?0:25-(j>>>1)|0);g=0;while(1){h=(f[c+4>>2]&-8)-k|0;if(h>>>0>>0)if(!h){a=c;e=0;q=65;break a}else{a=c;e=h}q=f[c+20>>2]|0;c=f[c+16+(i>>>31<<2)>>2]|0;g=(q|0)==0|(q|0)==(c|0)?g:q;if(!c){c=g;q=61;break}else i=i<<1}}while(0);if((q|0)==61){if((c|0)==0&(a|0)==0){a=2<>>12&16;m=m>>>h;g=m>>>5&8;m=m>>>g;i=m>>>2&4;m=m>>>i;j=m>>>1&2;m=m>>>j;c=m>>>1&1;a=0;c=f[23328+((g|h|i|j|c)+(m>>>c)<<2)>>2]|0}if(!c){i=a;h=e}else q=65}if((q|0)==65){g=c;while(1){m=(f[g+4>>2]&-8)-k|0;c=m>>>0>>0;e=c?m:e;a=c?g:a;c=f[g+16>>2]|0;if(!c)c=f[g+20>>2]|0;if(!c){i=a;h=e;break}else g=c}}if(((i|0)!=0?h>>>0<((f[5758]|0)-k|0)>>>0:0)?(l=i+k|0,l>>>0>i>>>0):0){g=f[i+24>>2]|0;b=f[i+12>>2]|0;do if((b|0)==(i|0)){a=i+20|0;b=f[a>>2]|0;if(!b){a=i+16|0;b=f[a>>2]|0;if(!b){b=0;break}}while(1){e=b+20|0;c=f[e>>2]|0;if(!c){e=b+16|0;c=f[e>>2]|0;if(!c)break;else{b=c;a=e}}else{b=c;a=e}}f[a>>2]=0}else{w=f[i+8>>2]|0;f[w+12>>2]=b;f[b+8>>2]=w}while(0);do if(g){a=f[i+28>>2]|0;c=23328+(a<<2)|0;if((i|0)==(f[c>>2]|0)){f[c>>2]=b;if(!b){d=d&~(1<>2]|0)==(i|0)?w:g+20|0)>>2]=b;if(!b)break}f[b+24>>2]=g;a=f[i+16>>2]|0;if(a|0){f[b+16>>2]=a;f[a+24>>2]=b}a=f[i+20>>2]|0;if(a){f[b+20>>2]=a;f[a+24>>2]=b}}while(0);b:do if(h>>>0<16){w=h+k|0;f[i+4>>2]=w|3;w=i+w+4|0;f[w>>2]=f[w>>2]|1}else{f[i+4>>2]=k|3;f[l+4>>2]=h|1;f[l+h>>2]=h;b=h>>>3;if(h>>>0<256){c=23064+(b<<1<<2)|0;a=f[5756]|0;b=1<>2]|0}f[a>>2]=l;f[b+12>>2]=l;f[l+8>>2]=b;f[l+12>>2]=c;break}b=h>>>8;if(b)if(h>>>0>16777215)c=31;else{v=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;c=14-(u|v|c)+(w<>>15)|0;c=h>>>(c+7|0)&1|c<<1}else c=0;b=23328+(c<<2)|0;f[l+28>>2]=c;a=l+16|0;f[a+4>>2]=0;f[a>>2]=0;a=1<>2]=l;f[l+24>>2]=b;f[l+12>>2]=l;f[l+8>>2]=l;break}b=f[b>>2]|0;c:do if((f[b+4>>2]&-8|0)!=(h|0)){d=h<<((c|0)==31?0:25-(c>>>1)|0);while(1){c=b+16+(d>>>31<<2)|0;a=f[c>>2]|0;if(!a)break;if((f[a+4>>2]&-8|0)==(h|0)){b=a;break c}else{d=d<<1;b=a}}f[c>>2]=l;f[l+24>>2]=b;f[l+12>>2]=l;f[l+8>>2]=l;break b}while(0);v=b+8|0;w=f[v>>2]|0;f[w+12>>2]=l;f[v>>2]=l;f[l+8>>2]=w;f[l+12>>2]=b;f[l+24>>2]=0}while(0);w=i+8|0;t=x;return w|0}else m=k}else m=k}else m=-1;while(0);c=f[5758]|0;if(c>>>0>=m>>>0){b=c-m|0;a=f[5761]|0;if(b>>>0>15){w=a+m|0;f[5761]=w;f[5758]=b;f[w+4>>2]=b|1;f[a+c>>2]=b;f[a+4>>2]=m|3}else{f[5758]=0;f[5761]=0;f[a+4>>2]=c|3;w=a+c+4|0;f[w>>2]=f[w>>2]|1}w=a+8|0;t=x;return w|0}h=f[5759]|0;if(h>>>0>m>>>0){u=h-m|0;f[5759]=u;w=f[5762]|0;v=w+m|0;f[5762]=v;f[v+4>>2]=u|1;f[w+4>>2]=m|3;w=w+8|0;t=x;return w|0}if(!(f[5874]|0)){f[5876]=4096;f[5875]=4096;f[5877]=-1;f[5878]=-1;f[5879]=0;f[5867]=0;f[5874]=n&-16^1431655768;a=4096}else a=f[5876]|0;i=m+48|0;j=m+47|0;g=a+j|0;e=0-a|0;k=g&e;if(k>>>0<=m>>>0){w=0;t=x;return w|0}a=f[5866]|0;if(a|0?(l=f[5864]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){w=0;t=x;return w|0}d:do if(!(f[5867]&4)){c=f[5762]|0;e:do if(c){d=23472;while(1){n=f[d>>2]|0;if(n>>>0<=c>>>0?(n+(f[d+4>>2]|0)|0)>>>0>c>>>0:0)break;a=f[d+8>>2]|0;if(!a){q=128;break e}else d=a}b=g-h&e;if(b>>>0<2147483647){a=ad(b|0)|0;if((a|0)==((f[d>>2]|0)+(f[d+4>>2]|0)|0)){if((a|0)!=(-1|0)){h=b;g=a;q=145;break d}}else{d=a;q=136}}else b=0}else q=128;while(0);do if((q|0)==128){c=ad(0)|0;if((c|0)!=(-1|0)?(b=c,o=f[5875]|0,p=o+-1|0,b=((p&b|0)==0?0:(p+b&0-o)-b|0)+k|0,o=f[5864]|0,p=b+o|0,b>>>0>m>>>0&b>>>0<2147483647):0){n=f[5866]|0;if(n|0?p>>>0<=o>>>0|p>>>0>n>>>0:0){b=0;break}a=ad(b|0)|0;if((a|0)==(c|0)){h=b;g=c;q=145;break d}else{d=a;q=136}}else b=0}while(0);do if((q|0)==136){c=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(d|0)!=(-1|0))))if((d|0)==(-1|0)){b=0;break}else{h=b;g=d;q=145;break d}a=f[5876]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=b;g=d;q=145;break d}if((ad(a|0)|0)==(-1|0)){ad(c|0)|0;b=0;break}else{h=a+b|0;g=d;q=145;break d}}while(0);f[5867]=f[5867]|4;q=143}else{b=0;q=143}while(0);if(((q|0)==143?k>>>0<2147483647:0)?(u=ad(k|0)|0,p=ad(0)|0,r=p-u|0,s=r>>>0>(m+40|0)>>>0,!((u|0)==(-1|0)|s^1|u>>>0

>>0&((u|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=s?r:b;g=u;q=145}if((q|0)==145){b=(f[5864]|0)+h|0;f[5864]=b;if(b>>>0>(f[5865]|0)>>>0)f[5865]=b;j=f[5762]|0;f:do if(j){b=23472;while(1){a=f[b>>2]|0;c=f[b+4>>2]|0;if((g|0)==(a+c|0)){q=154;break}d=f[b+8>>2]|0;if(!d)break;else b=d}if(((q|0)==154?(v=b+4|0,(f[b+12>>2]&8|0)==0):0)?g>>>0>j>>>0&a>>>0<=j>>>0:0){f[v>>2]=c+h;w=(f[5759]|0)+h|0;u=j+8|0;u=(u&7|0)==0?0:0-u&7;v=j+u|0;u=w-u|0;f[5762]=v;f[5759]=u;f[v+4>>2]=u|1;f[j+w+4>>2]=40;f[5763]=f[5878];break}if(g>>>0<(f[5760]|0)>>>0)f[5760]=g;c=g+h|0;b=23472;while(1){if((f[b>>2]|0)==(c|0)){q=162;break}a=f[b+8>>2]|0;if(!a)break;else b=a}if((q|0)==162?(f[b+12>>2]&8|0)==0:0){f[b>>2]=g;l=b+4|0;f[l>>2]=(f[l>>2]|0)+h;l=g+8|0;l=g+((l&7|0)==0?0:0-l&7)|0;b=c+8|0;b=c+((b&7|0)==0?0:0-b&7)|0;k=l+m|0;i=b-l-m|0;f[l+4>>2]=m|3;g:do if((j|0)==(b|0)){w=(f[5759]|0)+i|0;f[5759]=w;f[5762]=k;f[k+4>>2]=w|1}else{if((f[5761]|0)==(b|0)){w=(f[5758]|0)+i|0;f[5758]=w;f[5761]=k;f[k+4>>2]=w|1;f[k+w>>2]=w;break}a=f[b+4>>2]|0;if((a&3|0)==1){h=a&-8;d=a>>>3;h:do if(a>>>0<256){a=f[b+8>>2]|0;c=f[b+12>>2]|0;if((c|0)==(a|0)){f[5756]=f[5756]&~(1<>2]=c;f[c+8>>2]=a;break}}else{g=f[b+24>>2]|0;a=f[b+12>>2]|0;do if((a|0)==(b|0)){c=b+16|0;d=c+4|0;a=f[d>>2]|0;if(!a){a=f[c>>2]|0;if(!a){a=0;break}}else c=d;while(1){e=a+20|0;d=f[e>>2]|0;if(!d){e=a+16|0;d=f[e>>2]|0;if(!d)break;else{a=d;c=e}}else{a=d;c=e}}f[c>>2]=0}else{w=f[b+8>>2]|0;f[w+12>>2]=a;f[a+8>>2]=w}while(0);if(!g)break;c=f[b+28>>2]|0;d=23328+(c<<2)|0;do if((f[d>>2]|0)!=(b|0)){w=g+16|0;f[((f[w>>2]|0)==(b|0)?w:g+20|0)>>2]=a;if(!a)break h}else{f[d>>2]=a;if(a|0)break;f[5757]=f[5757]&~(1<>2]=g;c=b+16|0;d=f[c>>2]|0;if(d|0){f[a+16>>2]=d;f[d+24>>2]=a}c=f[c+4>>2]|0;if(!c)break;f[a+20>>2]=c;f[c+24>>2]=a}while(0);b=b+h|0;e=h+i|0}else e=i;b=b+4|0;f[b>>2]=f[b>>2]&-2;f[k+4>>2]=e|1;f[k+e>>2]=e;b=e>>>3;if(e>>>0<256){c=23064+(b<<1<<2)|0;a=f[5756]|0;b=1<>2]|0}f[a>>2]=k;f[b+12>>2]=k;f[k+8>>2]=b;f[k+12>>2]=c;break}b=e>>>8;do if(!b)d=0;else{if(e>>>0>16777215){d=31;break}v=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;d=14-(u|v|d)+(w<>>15)|0;d=e>>>(d+7|0)&1|d<<1}while(0);b=23328+(d<<2)|0;f[k+28>>2]=d;a=k+16|0;f[a+4>>2]=0;f[a>>2]=0;a=f[5757]|0;c=1<>2]=k;f[k+24>>2]=b;f[k+12>>2]=k;f[k+8>>2]=k;break}b=f[b>>2]|0;i:do if((f[b+4>>2]&-8|0)!=(e|0)){d=e<<((d|0)==31?0:25-(d>>>1)|0);while(1){c=b+16+(d>>>31<<2)|0;a=f[c>>2]|0;if(!a)break;if((f[a+4>>2]&-8|0)==(e|0)){b=a;break i}else{d=d<<1;b=a}}f[c>>2]=k;f[k+24>>2]=b;f[k+12>>2]=k;f[k+8>>2]=k;break g}while(0);v=b+8|0;w=f[v>>2]|0;f[w+12>>2]=k;f[v>>2]=k;f[k+8>>2]=w;f[k+12>>2]=b;f[k+24>>2]=0}while(0);w=l+8|0;t=x;return w|0}b=23472;while(1){a=f[b>>2]|0;if(a>>>0<=j>>>0?(w=a+(f[b+4>>2]|0)|0,w>>>0>j>>>0):0)break;b=f[b+8>>2]|0}e=w+-47|0;a=e+8|0;a=e+((a&7|0)==0?0:0-a&7)|0;e=j+16|0;a=a>>>0>>0?j:a;b=a+8|0;c=h+-40|0;u=g+8|0;u=(u&7|0)==0?0:0-u&7;v=g+u|0;u=c-u|0;f[5762]=v;f[5759]=u;f[v+4>>2]=u|1;f[g+c+4>>2]=40;f[5763]=f[5878];c=a+4|0;f[c>>2]=27;f[b>>2]=f[5868];f[b+4>>2]=f[5869];f[b+8>>2]=f[5870];f[b+12>>2]=f[5871];f[5868]=g;f[5869]=h;f[5871]=0;f[5870]=b;b=a+24|0;do{v=b;b=b+4|0;f[b>>2]=7}while((v+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;f[c>>2]=f[c>>2]&-2;f[j+4>>2]=g|1;f[a>>2]=g;b=g>>>3;if(g>>>0<256){c=23064+(b<<1<<2)|0;a=f[5756]|0;b=1<>2]|0}f[a>>2]=j;f[b+12>>2]=j;f[j+8>>2]=b;f[j+12>>2]=c;break}b=g>>>8;if(b)if(g>>>0>16777215)d=31;else{v=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;d=14-(u|v|d)+(w<>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;c=23328+(d<<2)|0;f[j+28>>2]=d;f[j+20>>2]=0;f[e>>2]=0;b=f[5757]|0;a=1<>2]=j;f[j+24>>2]=c;f[j+12>>2]=j;f[j+8>>2]=j;break}b=f[c>>2]|0;j:do if((f[b+4>>2]&-8|0)!=(g|0)){d=g<<((d|0)==31?0:25-(d>>>1)|0);while(1){c=b+16+(d>>>31<<2)|0;a=f[c>>2]|0;if(!a)break;if((f[a+4>>2]&-8|0)==(g|0)){b=a;break j}else{d=d<<1;b=a}}f[c>>2]=j;f[j+24>>2]=b;f[j+12>>2]=j;f[j+8>>2]=j;break f}while(0);v=b+8|0;w=f[v>>2]|0;f[w+12>>2]=j;f[v>>2]=j;f[j+8>>2]=w;f[j+12>>2]=b;f[j+24>>2]=0}}else{w=f[5760]|0;if((w|0)==0|g>>>0>>0)f[5760]=g;f[5868]=g;f[5869]=h;f[5871]=0;f[5765]=f[5874];f[5764]=-1;f[5769]=23064;f[5768]=23064;f[5771]=23072;f[5770]=23072;f[5773]=23080;f[5772]=23080;f[5775]=23088;f[5774]=23088;f[5777]=23096;f[5776]=23096;f[5779]=23104;f[5778]=23104;f[5781]=23112;f[5780]=23112;f[5783]=23120;f[5782]=23120;f[5785]=23128;f[5784]=23128;f[5787]=23136;f[5786]=23136;f[5789]=23144;f[5788]=23144;f[5791]=23152;f[5790]=23152;f[5793]=23160;f[5792]=23160;f[5795]=23168;f[5794]=23168;f[5797]=23176;f[5796]=23176;f[5799]=23184;f[5798]=23184;f[5801]=23192;f[5800]=23192;f[5803]=23200;f[5802]=23200;f[5805]=23208;f[5804]=23208;f[5807]=23216;f[5806]=23216;f[5809]=23224;f[5808]=23224;f[5811]=23232;f[5810]=23232;f[5813]=23240;f[5812]=23240;f[5815]=23248;f[5814]=23248;f[5817]=23256;f[5816]=23256;f[5819]=23264;f[5818]=23264;f[5821]=23272;f[5820]=23272;f[5823]=23280;f[5822]=23280;f[5825]=23288;f[5824]=23288;f[5827]=23296;f[5826]=23296;f[5829]=23304;f[5828]=23304;f[5831]=23312;f[5830]=23312;w=h+-40|0;u=g+8|0;u=(u&7|0)==0?0:0-u&7;v=g+u|0;u=w-u|0;f[5762]=v;f[5759]=u;f[v+4>>2]=u|1;f[g+w+4>>2]=40;f[5763]=f[5878]}while(0);b=f[5759]|0;if(b>>>0>m>>>0){u=b-m|0;f[5759]=u;w=f[5762]|0;v=w+m|0;f[5762]=v;f[v+4>>2]=u|1;f[w+4>>2]=m|3;w=w+8|0;t=x;return w|0}}w=Oc()|0;f[w>>2]=12;w=0;t=x;return w|0}function Mc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;if(!a)return;c=a+-8|0;e=f[5760]|0;a=f[a+-4>>2]|0;b=a&-8;j=c+b|0;do if(!(a&1)){d=f[c>>2]|0;if(!(a&3))return;h=c+(0-d)|0;g=d+b|0;if(h>>>0>>0)return;if((f[5761]|0)==(h|0)){a=j+4|0;b=f[a>>2]|0;if((b&3|0)!=3){i=h;b=g;break}f[5758]=g;f[a>>2]=b&-2;f[h+4>>2]=g|1;f[h+g>>2]=g;return}c=d>>>3;if(d>>>0<256){a=f[h+8>>2]|0;b=f[h+12>>2]|0;if((b|0)==(a|0)){f[5756]=f[5756]&~(1<>2]=b;f[b+8>>2]=a;i=h;b=g;break}}e=f[h+24>>2]|0;a=f[h+12>>2]|0;do if((a|0)==(h|0)){b=h+16|0;c=b+4|0;a=f[c>>2]|0;if(!a){a=f[b>>2]|0;if(!a){a=0;break}}else b=c;while(1){d=a+20|0;c=f[d>>2]|0;if(!c){d=a+16|0;c=f[d>>2]|0;if(!c)break;else{a=c;b=d}}else{a=c;b=d}}f[b>>2]=0}else{i=f[h+8>>2]|0;f[i+12>>2]=a;f[a+8>>2]=i}while(0);if(e){b=f[h+28>>2]|0;c=23328+(b<<2)|0;if((f[c>>2]|0)==(h|0)){f[c>>2]=a;if(!a){f[5757]=f[5757]&~(1<>2]|0)==(h|0)?i:e+20|0)>>2]=a;if(!a){i=h;b=g;break}}f[a+24>>2]=e;b=h+16|0;c=f[b>>2]|0;if(c|0){f[a+16>>2]=c;f[c+24>>2]=a}b=f[b+4>>2]|0;if(b){f[a+20>>2]=b;f[b+24>>2]=a;i=h;b=g}else{i=h;b=g}}else{i=h;b=g}}else{i=c;h=c}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;d=f[a>>2]|0;if(!(d&1))return;if(!(d&2)){if((f[5762]|0)==(j|0)){j=(f[5759]|0)+b|0;f[5759]=j;f[5762]=i;f[i+4>>2]=j|1;if((i|0)!=(f[5761]|0))return;f[5761]=0;f[5758]=0;return}if((f[5761]|0)==(j|0)){j=(f[5758]|0)+b|0;f[5758]=j;f[5761]=h;f[i+4>>2]=j|1;f[h+j>>2]=j;return}e=(d&-8)+b|0;c=d>>>3;do if(d>>>0<256){b=f[j+8>>2]|0;a=f[j+12>>2]|0;if((a|0)==(b|0)){f[5756]=f[5756]&~(1<>2]=a;f[a+8>>2]=b;break}}else{g=f[j+24>>2]|0;a=f[j+12>>2]|0;do if((a|0)==(j|0)){b=j+16|0;c=b+4|0;a=f[c>>2]|0;if(!a){a=f[b>>2]|0;if(!a){c=0;break}}else b=c;while(1){d=a+20|0;c=f[d>>2]|0;if(!c){d=a+16|0;c=f[d>>2]|0;if(!c)break;else{a=c;b=d}}else{a=c;b=d}}f[b>>2]=0;c=a}else{c=f[j+8>>2]|0;f[c+12>>2]=a;f[a+8>>2]=c;c=a}while(0);if(g|0){a=f[j+28>>2]|0;b=23328+(a<<2)|0;if((f[b>>2]|0)==(j|0)){f[b>>2]=c;if(!c){f[5757]=f[5757]&~(1<>2]|0)==(j|0)?d:g+20|0)>>2]=c;if(!c)break}f[c+24>>2]=g;a=j+16|0;b=f[a>>2]|0;if(b|0){f[c+16>>2]=b;f[b+24>>2]=c}a=f[a+4>>2]|0;if(a|0){f[c+20>>2]=a;f[a+24>>2]=c}}}while(0);f[i+4>>2]=e|1;f[h+e>>2]=e;if((i|0)==(f[5761]|0)){f[5758]=e;return}}else{f[a>>2]=d&-2;f[i+4>>2]=b|1;f[h+b>>2]=b;e=b}a=e>>>3;if(e>>>0<256){c=23064+(a<<1<<2)|0;b=f[5756]|0;a=1<>2]|0}f[b>>2]=i;f[a+12>>2]=i;f[i+8>>2]=a;f[i+12>>2]=c;return}a=e>>>8;if(a)if(e>>>0>16777215)d=31;else{h=(a+1048320|0)>>>16&8;j=a<>>16&4;j=j<>>16&2;d=14-(g|h|d)+(j<>>15)|0;d=e>>>(d+7|0)&1|d<<1}else d=0;a=23328+(d<<2)|0;f[i+28>>2]=d;f[i+20>>2]=0;f[i+16>>2]=0;b=f[5757]|0;c=1<>2]=i;f[i+24>>2]=a;f[i+12>>2]=i;f[i+8>>2]=i}else{a=f[a>>2]|0;b:do if((f[a+4>>2]&-8|0)!=(e|0)){d=e<<((d|0)==31?0:25-(d>>>1)|0);while(1){c=a+16+(d>>>31<<2)|0;b=f[c>>2]|0;if(!b)break;if((f[b+4>>2]&-8|0)==(e|0)){a=b;break b}else{d=d<<1;a=b}}f[c>>2]=i;f[i+24>>2]=a;f[i+12>>2]=i;f[i+8>>2]=i;break a}while(0);h=a+8|0;j=f[h>>2]|0;f[j+12>>2]=i;f[h>>2]=i;f[i+8>>2]=j;f[i+12>>2]=a;f[i+24>>2]=0}while(0);j=(f[5764]|0)+-1|0;f[5764]=j;if(j|0)return;a=23480;while(1){a=f[a>>2]|0;if(!a)break;else a=a+8|0}f[5764]=-1;return}function Nc(a,b){a=a|0;b=b|0;var c=0;if(a){c=U(b,a)|0;if((b|a)>>>0>65535)c=((c>>>0)/(a>>>0)|0|0)==(b|0)?c:-1}else c=0;a=Lc(c)|0;if(!a)return a|0;if(!(f[a+-4>>2]&3))return a|0;_c(a|0,0,c|0)|0;return a|0}function Oc(){return 23520}function Pc(a){a=+a;return +(+$c(+a))}function Qc(a){a=+a;return ~~+Pc(a)|0}function Rc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (aa(b+d+(c>>>0>>0|0)>>>0|0),c|0)|0}function Sc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (aa(d|0),a-c>>>0|0)|0}function Tc(a){a=a|0;return (a?31-(X(a^a-1)|0)|0:32)|0}function Uc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=c;n=d;i=n;if(!k){g=(e|0)!=0;if(!i){if(g){f[e>>2]=(l>>>0)%(h>>>0);f[e+4>>2]=0}n=0;e=(l>>>0)/(h>>>0)>>>0;return (aa(n|0),e)|0}else{if(!g){n=0;e=0;return (aa(n|0),e)|0}f[e>>2]=a|0;f[e+4>>2]=b&0;n=0;e=0;return (aa(n|0),e)|0}}g=(i|0)==0;do if(h){if(!g){g=(X(i|0)|0)-(X(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<>>(m>>>0)&b;g=0;i=l<>2]=a|0;f[e+4>>2]=j|b&0;n=0;e=0;return (aa(n|0),e)|0}g=h-1|0;if(g&h|0){i=(X(h|0)|0)+33-(X(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(e|0){f[e>>2]=g&l;f[e+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (aa(o|0),p)|0}else{p=Tc(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (aa(o|0),p)|0}}else{if(g){if(e|0){f[e>>2]=(k>>>0)%(h>>>0);f[e+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (aa(o|0),p)|0}if(!l){if(e|0){f[e>>2]=0;f[e+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (aa(o|0),p)|0}g=i-1|0;if(!(g&i)){if(e|0){f[e>>2]=a|0;f[e+4>>2]=g&k|b&0}o=0;p=k>>>((Tc(i|0)|0)>>>0);return (aa(o|0),p)|0}g=(X(i|0)|0)-(X(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<>2]=a|0;f[e+4>>2]=j|b&0;o=0;p=0;return (aa(o|0),p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=c|0|0;l=n|d&0;k=Rc(m|0,l|0,-1,-1)|0;c=ba()|0;j=i;i=0;do{d=j;j=g>>>31|j<<1;g=i|g<<1;d=a<<1|d>>>31|0;n=a>>>31|b<<1|0;Sc(k|0,c|0,d|0,n|0)|0;p=ba()|0;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=Sc(d|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=ba()|0;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(e|0){f[e>>2]=a;f[e+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (aa(o|0),p)|0}function Vc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;g=t;t=t+16|0;e=g|0;Uc(a,b,c,d,e)|0;t=g;return (aa(f[e+4>>2]|0),f[e>>2]|0)|0}function Wc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){aa(b>>>c|0);return a>>>c|(b&(1<>>c-32|0}function Xc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){aa(b<>>32-c|0);return a<=0.0?+G(a+.5):+T(a-.5)}function Zc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;if((d|0)>=8192)return fa(a|0,c|0,d|0)|0;h=a|0;g=a+d|0;if((a&3)==(c&3)){while(a&3){if(!d)return h|0;b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0;d=d-1|0}d=g&-4|0;e=d-64|0;while((a|0)<=(e|0)){f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2];f[a+12>>2]=f[c+12>>2];f[a+16>>2]=f[c+16>>2];f[a+20>>2]=f[c+20>>2];f[a+24>>2]=f[c+24>>2];f[a+28>>2]=f[c+28>>2];f[a+32>>2]=f[c+32>>2];f[a+36>>2]=f[c+36>>2];f[a+40>>2]=f[c+40>>2];f[a+44>>2]=f[c+44>>2];f[a+48>>2]=f[c+48>>2];f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];a=a+64|0;c=c+64|0}while((a|0)<(d|0)){f[a>>2]=f[c>>2];a=a+4|0;c=c+4|0}}else{d=g-4|0;while((a|0)<(d|0)){b[a>>0]=b[c>>0]|0;b[a+1>>0]=b[c+1>>0]|0;b[a+2>>0]=b[c+2>>0]|0;b[a+3>>0]=b[c+3>>0]|0;a=a+4|0;c=c+4|0}}while((a|0)<(g|0)){b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0}return h|0}function _c(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;h=a+d|0;c=c&255;if((d|0)>=67){while(a&3){b[a>>0]=c;a=a+1|0}e=h&-4|0;g=e-64|0;i=c|c<<8|c<<16|c<<24;while((a|0)<=(g|0)){f[a>>2]=i;f[a+4>>2]=i;f[a+8>>2]=i;f[a+12>>2]=i;f[a+16>>2]=i;f[a+20>>2]=i;f[a+24>>2]=i;f[a+28>>2]=i;f[a+32>>2]=i;f[a+36>>2]=i;f[a+40>>2]=i;f[a+44>>2]=i;f[a+48>>2]=i;f[a+52>>2]=i;f[a+56>>2]=i;f[a+60>>2]=i;a=a+64|0}while((a|0)<(e|0)){f[a>>2]=i;a=a+4|0}}while((a|0)<(h|0)){b[a>>0]=c;a=a+1|0}return h-d|0}function $c(a){a=+a;return a>=0.0?+G(a+.5):+T(a-.5)}function ad(a){a=a|0;var b=0,c=0;c=f[r>>2]|0;b=c+a|0;if((a|0)>0&(b|0)<(c|0)|(b|0)<0){ca()|0;ea(12);return -1}f[r>>2]=b;if((b|0)>($()|0)?(_()|0)==0:0){f[r>>2]=c;ea(12);return -1}return c|0} +function ia(a){a=a|0;var b=0;b=t;t=t+a|0;t=t+15&-16;return b|0}function ja(){return t|0}function ka(a){a=a|0;t=a}function la(a,b){a=a|0;b=b|0;t=a;u=b}function ma(a,b){a=a|0;b=b|0;if(!v){v=a;w=b}}function na(a){a=a|0;return (U(a*3|0,a+1|0)|0)+1|0}function oa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=(U(c*3|0,c+1|0)|0)+1|0;f=e<<2;g=Nc(f)|0;if(!(qa(a,b,c,d,g)|0)){Oc(g);return}ad(d|0,0,e<<3|0)|0;ad(g|0,0,f|0)|0;ra(a,b,c,d,g,e,0);Oc(g);return}function pa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=(U(c*3|0,c+1|0)|0)+1|0;if(!(qa(a,b,c,d,e)|0))return;ad(d|0,0,f<<3|0)|0;ad(e|0,0,f<<2|0)|0;ra(a,b,c,d,e,f,0);return}function qa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=t;t=t+16|0;n=o;g=d;f[g>>2]=a;f[g+4>>2]=b;g=(e|0)!=0;if(g)f[e>>2]=0;if(Gb(a,b)|0){n=1;t=o;return n|0}f[n>>2]=0;a:do if((c|0)>=1)if(g){k=0;l=1;m=1;h=0;g=a;while(1){if(!(h|k)){g=sa(g,b,4,n)|0;b=ba()|0;if((g|0)==0&(b|0)==0){g=2;break a}if(Gb(g,b)|0){g=1;break a}}g=sa(g,b,f[16+(k<<2)>>2]|0,n)|0;b=ba()|0;if((g|0)==0&(b|0)==0){g=2;break a}a=d+(m<<3)|0;f[a>>2]=g;f[a+4>>2]=b;f[e+(m<<2)>>2]=l;h=h+1|0;a=(h|0)==(l|0);i=k+1|0;j=(i|0)==6;if(Gb(g,b)|0){g=1;break a}l=l+(j&a&1)|0;if((l|0)>(c|0)){g=0;break}else{k=a?(j?0:i):k;m=m+1|0;h=a?0:h}}}else{k=0;l=1;m=1;h=0;g=a;while(1){if(!(h|k)){g=sa(g,b,4,n)|0;b=ba()|0;if((g|0)==0&(b|0)==0){g=2;break a}if(Gb(g,b)|0){g=1;break a}}g=sa(g,b,f[16+(k<<2)>>2]|0,n)|0;b=ba()|0;if((g|0)==0&(b|0)==0){g=2;break a}a=d+(m<<3)|0;f[a>>2]=g;f[a+4>>2]=b;h=h+1|0;a=(h|0)==(l|0);i=k+1|0;j=(i|0)==6;if(Gb(g,b)|0){g=1;break a}l=l+(j&a&1)|0;if((l|0)>(c|0)){g=0;break}else{k=a?(j?0:i):k;m=m+1|0;h=a?0:h}}}else g=0;while(0);n=g;t=o;return n|0}function ra(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=t;t=t+16|0;l=m;if((a|0)==0&(b|0)==0){t=m;return}i=Xc(a|0,b|0,g|0,((g|0)<0)<<31>>31|0)|0;ba()|0;j=d+(i<<3)|0;n=j;o=f[n>>2]|0;n=f[n+4>>2]|0;k=(o|0)==(a|0)&(n|0)==(b|0);if(!((o|0)==0&(n|0)==0|k))do{i=(i+1|0)%(g|0)|0;j=d+(i<<3)|0;o=j;n=f[o>>2]|0;o=f[o+4>>2]|0;k=(n|0)==(a|0)&(o|0)==(b|0)}while(!((n|0)==0&(o|0)==0|k));i=e+(i<<2)|0;if(k?(f[i>>2]|0)<=(h|0):0){t=m;return}o=j;f[o>>2]=a;f[o+4>>2]=b;f[i>>2]=h;if((h|0)>=(c|0)){t=m;return}o=h+1|0;f[l>>2]=0;n=sa(a,b,2,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,3,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,1,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,5,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,4,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,6,l)|0;ra(n,ba()|0,c,d,e,g,o);t=m;return}function sa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if((f[d>>2]|0)>0){e=0;do{c=_a(c)|0;e=e+1|0}while((e|0)<(f[d>>2]|0))}i=Yc(a|0,b|0,45)|0;ba()|0;j=i&127;g=Lb(a,b)|0;e=Yc(a|0,b|0,52)|0;ba()|0;e=e&15;a:do if(!e)h=6;else while(1){m=(15-e|0)*3|0;n=Yc(a|0,b|0,m|0)|0;ba()|0;n=n&7;o=(Rb(e)|0)==0;e=e+-1|0;l=Zc(7,0,m|0)|0;b=b&~(ba()|0);m=Zc(f[(o?464:48)+(n*28|0)+(c<<2)>>2]|0,0,m|0)|0;k=ba()|0;c=f[(o?672:256)+(n*28|0)+(c<<2)>>2]|0;a=m|a&~l;b=k|b;if(!c){c=0;break a}if(!e){h=6;break}}while(0);if((h|0)==6){o=f[880+(j*28|0)+(c<<2)>>2]|0;n=Zc(o|0,0,45)|0;a=n|a;b=ba()|0|b&-1040385;c=f[4304+(j*28|0)+(c<<2)>>2]|0;if((o&127|0)==127){o=Zc(f[880+(j*28|0)+20>>2]|0,0,45)|0;b=ba()|0|b&-1040385;c=f[4304+(j*28|0)+20>>2]|0;a=Nb(o|a,b)|0;b=ba()|0;f[d>>2]=(f[d>>2]|0)+1}}h=Yc(a|0,b|0,45)|0;ba()|0;h=h&127;b:do if(!(ya(h)|0)){if((c|0)>0){e=0;do{a=Nb(a,b)|0;b=ba()|0;e=e+1|0}while((e|0)!=(c|0))}}else{c:do if((Lb(a,b)|0)==1){if((j|0)!=(h|0))if(Ca(h,f[7728+(j*28|0)>>2]|0)|0){a=Pb(a,b)|0;g=1;b=ba()|0;break}else{a=Nb(a,b)|0;g=1;b=ba()|0;break}switch(g|0){case 5:{a=Pb(a,b)|0;b=ba()|0;f[d>>2]=(f[d>>2]|0)+5;g=0;break c}case 3:{a=Nb(a,b)|0;b=ba()|0;f[d>>2]=(f[d>>2]|0)+1;g=0;break c}default:{n=0;o=0;aa(n|0);return o|0}}}else g=0;while(0);if((c|0)>0){e=0;do{a=Mb(a,b)|0;b=ba()|0;e=e+1|0}while((e|0)!=(c|0))}if((j|0)!=(h|0)){if(!(za(h)|0)){if((g|0)!=0|(Lb(a,b)|0)!=5)break;f[d>>2]=(f[d>>2]|0)+1;break}switch(i&127){case 8:case 118:break b;default:{}}if((Lb(a,b)|0)!=3)f[d>>2]=(f[d>>2]|0)+1}}while(0);f[d>>2]=((f[d>>2]|0)+c|0)%6|0;n=b;o=a;aa(n|0);return o|0}function ta(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=t;t=t+16|0;l=m;if(!c){l=d;f[l>>2]=a;f[l+4>>2]=b;l=0;t=m;return l|0}f[l>>2]=0;a:do if(!(Gb(a,b)|0)){g=(c|0)>0;if(g){e=0;k=a;do{k=sa(k,b,4,l)|0;b=ba()|0;if((k|0)==0&(b|0)==0){a=2;break a}e=e+1|0;if(Gb(k,b)|0){a=1;break a}}while((e|0)<(c|0));j=d;f[j>>2]=k;f[j+4>>2]=b;j=c+-1|0;if(g){g=0;h=1;e=k;a=b;do{e=sa(e,a,2,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}i=d+(h<<3)|0;f[i>>2]=e;f[i+4>>2]=a;h=h+1|0;if(Gb(e,a)|0){a=1;break a}g=g+1|0}while((g|0)<(c|0));i=0;g=h;do{e=sa(e,a,3,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}h=d+(g<<3)|0;f[h>>2]=e;f[h+4>>2]=a;g=g+1|0;if(Gb(e,a)|0){a=1;break a}i=i+1|0}while((i|0)<(c|0));h=0;do{e=sa(e,a,1,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}i=d+(g<<3)|0;f[i>>2]=e;f[i+4>>2]=a;g=g+1|0;if(Gb(e,a)|0){a=1;break a}h=h+1|0}while((h|0)<(c|0));h=0;do{e=sa(e,a,5,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}i=d+(g<<3)|0;f[i>>2]=e;f[i+4>>2]=a;g=g+1|0;if(Gb(e,a)|0){a=1;break a}h=h+1|0}while((h|0)<(c|0));h=0;do{e=sa(e,a,4,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}i=d+(g<<3)|0;f[i>>2]=e;f[i+4>>2]=a;g=g+1|0;if(Gb(e,a)|0){a=1;break a}h=h+1|0}while((h|0)<(c|0));h=0;while(1){e=sa(e,a,6,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}if((h|0)!=(j|0)){i=d+(g<<3)|0;f[i>>2]=e;f[i+4>>2]=a;if(!(Gb(e,a)|0))g=g+1|0;else{a=1;break a}}h=h+1|0;if((h|0)>=(c|0)){h=k;g=b;break}}}else{h=k;e=k;g=b;a=b}}else{h=d;f[h>>2]=a;f[h+4>>2]=b;h=a;e=a;g=b;a=b}a=((h|0)!=(e|0)|(g|0)!=(a|0))&1}else a=1;while(0);l=a;t=m;return l|0}function ua(a,b){a=a|0;b=b|0;var c=0,d=0;c=t;t=t+32|0;d=c;rc(a,d);b=Ka(d,b)|0;b=(U(b*3|0,b+1|0)|0)+1|0;t=c;return b|0}function va(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0;m=t;t=t+32|0;d=m+16|0;k=m;l=Nc((f[a+8>>2]<<5)+32|0)|0;if(!l)da(22551,22160,672,22168);sc(a,l);h=Ka(l,b)|0;i=U(h*3|0,h+1|0)|0;j=i+1|0;Ia(l,d);b=Sb(d,b)|0;d=ba()|0;e=j<<2;g=Nc(e)|0;if(qa(b,d,h,c,g)|0){ad(c|0,0,j<<3|0)|0;ad(g|0,0,e|0)|0;ra(b,d,h,c,g,j,0)}Oc(g);if((i|0)<0){Oc(l);t=m;return}d=k+8|0;b=0;do{e=c+(b<<3)|0;h=e;g=f[h>>2]|0;h=f[h+4>>2]|0;if(!((g|0)==0&(h|0)==0)?(Vb(g,h,k),n=+rb(+p[k>>3]),p[k>>3]=n,n=+sb(+p[d>>3]),p[d>>3]=n,!(tc(a,l,k)|0)):0){i=e;f[i>>2]=0;f[i+4>>2]=0}b=b+1|0}while((b|0)!=(j|0));Oc(l);t=m;return}function wa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=t;t=t+176|0;j=k;if((b|0)<1){Gc(c,0,0);t=k;return}h=a;h=Yc(f[h>>2]|0,f[h+4>>2]|0,52)|0;ba()|0;Gc(c,(b|0)>6?b:6,h&15);h=0;do{d=a+(h<<3)|0;Wb(f[d>>2]|0,f[d+4>>2]|0,j);d=f[j>>2]|0;if((d|0)>0){i=0;do{g=j+8+(i<<4)|0;i=i+1|0;d=j+8+(((i|0)%(d|0)|0)<<4)|0;e=Lc(c,d,g)|0;if(!e)Kc(c,g,d)|0;else Jc(c,e)|0;d=f[j>>2]|0}while((i|0)<(d|0))}h=h+1|0}while((h|0)!=(b|0));t=k;return}function xa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;g=t;t=t+32|0;d=g;e=g+16|0;wa(a,b,e);f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;a=Ic(e)|0;if(!a){gc(c)|0;Hc(e);t=g;return}do{b=dc(c)|0;do{ec(b,a)|0;h=a+16|0;f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];f[d+8>>2]=f[h+8>>2];f[d+12>>2]=f[h+12>>2];Jc(e,a)|0;a=Mc(e,d)|0}while((a|0)!=0);a=Ic(e)|0}while((a|0)!=0);gc(c)|0;Hc(e);t=g;return}function ya(a){a=a|0;return f[7728+(a*28|0)+16>>2]|0}function za(a){a=a|0;return (a|0)==4|(a|0)==117|0}function Aa(a){a=a|0;return f[11152+((f[a>>2]|0)*216|0)+((f[a+4>>2]|0)*72|0)+((f[a+8>>2]|0)*24|0)+(f[a+12>>2]<<3)>>2]|0}function Ba(a){a=a|0;return f[11152+((f[a>>2]|0)*216|0)+((f[a+4>>2]|0)*72|0)+((f[a+8>>2]|0)*24|0)+(f[a+12>>2]<<3)+4>>2]|0}function Ca(a,b){a=a|0;b=b|0;if((f[7728+(a*28|0)+20>>2]|0)==(b|0)){b=1;return b|0}b=(f[7728+(a*28|0)+24>>2]|0)==(b|0);return b|0}function Da(a,b){a=a|0;b=b|0;return f[880+(a*28|0)+(b<<2)>>2]|0}function Ea(a,b){a=a|0;b=b|0;if((f[880+(a*28|0)>>2]|0)==(b|0)){b=0;return b|0}if((f[880+(a*28|0)+4>>2]|0)==(b|0)){b=1;return b|0}if((f[880+(a*28|0)+8>>2]|0)==(b|0)){b=2;return b|0}if((f[880+(a*28|0)+12>>2]|0)==(b|0)){b=3;return b|0}if((f[880+(a*28|0)+16>>2]|0)==(b|0)){b=4;return b|0}if((f[880+(a*28|0)+20>>2]|0)==(b|0)){b=5;return b|0}else return ((f[880+(a*28|0)+24>>2]|0)==(b|0)?6:7)|0;return 0}function Fa(){return 122}function Ga(a){a=a|0;var b=0,c=0,d=0;b=0;do{Zc(b|0,0,45)|0;d=ba()|0|134225919;c=a+(b<<3)|0;f[c>>2]=-1;f[c+4>>2]=d;b=b+1|0}while((b|0)!=122);return}function Ha(a){a=a|0;return +p[a+16>>3]<+p[a+24>>3]|0}function Ia(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;p[b>>3]=(+p[a>>3]+ +p[a+8>>3])*.5;c=+p[a+16>>3];d=+p[a+24>>3];c=+sb((d+(c>3]=c;return}function Ja(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;c=+p[b>>3];if(!(c>=+p[a+8>>3])){b=0;return b|0}if(!(c<=+p[a>>3])){b=0;return b|0}d=+p[a+16>>3];c=+p[a+24>>3];e=+p[b+8>>3];b=e>=c;a=e<=d&1;if(d>3]=(+p[a>>3]+ +p[l>>3])*.5;i=a+16|0;f=+p[i>>3];k=+p[a+24>>3];f=+sb((k+(f>3]=f;f=+p[a>>3];k=+H(+f);j=+p[l>>3];a=k>+H(+j);p[h>>3]=a?j:f;p[h+8>>3]=+p[i>>3];f=+tb(g,h);a=Sb(g,b)|0;b=ba()|0;Vb(a,b,e);Wb(a,b,d);b=~~+T(+(f/(+tb(e,d+8|0)*1.5)));t=c;return b|0}function La(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=b;f[a+4>>2]=c;f[a+8>>2]=d;return}function Ma(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0.0;m=b+8|0;f[m>>2]=0;j=+p[a>>3];h=+H(+j);k=+p[a+8>>3];i=+H(+k)/.8660254037844386;h=h+i*.5;c=~~h;a=~~i;h=h-+(c|0);i=i-+(a|0);do if(h<.5)if(h<.3333333333333333){f[b>>2]=c;if(i<(h+1.0)*.5){f[b+4>>2]=a;break}else{a=a+1|0;f[b+4>>2]=a;break}}else{n=1.0-h;a=(!(i>2]=a;if(n<=i&i>2]=c;break}else{f[b>>2]=c;break}}else{if(!(h<.6666666666666666)){c=c+1|0;f[b>>2]=c;if(i>2]=a;break}else{a=a+1|0;f[b+4>>2]=a;break}}if(i<1.0-h){f[b+4>>2]=a;if(h*2.0+-1.0>2]=c;break}}else{a=a+1|0;f[b+4>>2]=a}c=c+1|0;f[b>>2]=c}while(0);do if(j<0.0)if(!(a&1)){l=(a|0)/2|0;l=Uc(c|0,((c|0)<0)<<31>>31|0,l|0,((l|0)<0)<<31>>31|0)|0;c=~~(+(c|0)-(+(l>>>0)+4294967296.0*+(ba()|0))*2.0);f[b>>2]=c;break}else{l=(a+1|0)/2|0;l=Uc(c|0,((c|0)<0)<<31>>31|0,l|0,((l|0)<0)<<31>>31|0)|0;c=~~(+(c|0)-((+(l>>>0)+4294967296.0*+(ba()|0))*2.0+1.0));f[b>>2]=c;break}while(0);l=b+4|0;if(k<0.0){c=c-((a<<1|1|0)/2|0)|0;f[b>>2]=c;a=0-a|0;f[l>>2]=a}d=a-c|0;if((c|0)<0){e=0-c|0;f[l>>2]=d;f[m>>2]=e;f[b>>2]=0;a=d;c=0}else e=0;if((a|0)<0){c=c-a|0;f[b>>2]=c;e=e-a|0;f[m>>2]=e;f[l>>2]=0;a=0}g=c-e|0;d=a-e|0;if((e|0)<0){f[b>>2]=g;f[l>>2]=d;f[m>>2]=0;a=d;c=g;e=0}d=(a|0)<(c|0)?a:c;d=(e|0)<(d|0)?e:d;if((d|0)<=0)return;f[b>>2]=c-d;f[l>>2]=a-d;f[m>>2]=e-d;return}function Na(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=f[a>>2]|0;h=a+4|0;c=f[h>>2]|0;if((b|0)<0){c=c-b|0;f[h>>2]=c;g=a+8|0;f[g>>2]=(f[g>>2]|0)-b;f[a>>2]=0;b=0}if((c|0)<0){b=b-c|0;f[a>>2]=b;g=a+8|0;e=(f[g>>2]|0)-c|0;f[g>>2]=e;f[h>>2]=0;c=0}else{e=a+8|0;g=e;e=f[e>>2]|0}if((e|0)<0){b=b-e|0;f[a>>2]=b;c=c-e|0;f[h>>2]=c;f[g>>2]=0;e=0}d=(c|0)<(b|0)?c:b;d=(e|0)<(d|0)?e:d;if((d|0)<=0)return;f[a>>2]=b-d;f[h>>2]=c-d;f[g>>2]=e-d;return}function Oa(a,b){a=a|0;b=b|0;var c=0.0,d=0;d=f[a+8>>2]|0;c=+((f[a+4>>2]|0)-d|0);p[b>>3]=+((f[a>>2]|0)-d|0)-c*.5;p[b+8>>3]=c*.8660254037844386;return}function Pa(a,b,c){a=a|0;b=b|0;c=c|0;f[c>>2]=(f[b>>2]|0)+(f[a>>2]|0);f[c+4>>2]=(f[b+4>>2]|0)+(f[a+4>>2]|0);f[c+8>>2]=(f[b+8>>2]|0)+(f[a+8>>2]|0);return}function Qa(a,b,c){a=a|0;b=b|0;c=c|0;f[c>>2]=(f[a>>2]|0)-(f[b>>2]|0);f[c+4>>2]=(f[a+4>>2]|0)-(f[b+4>>2]|0);f[c+8>>2]=(f[a+8>>2]|0)-(f[b+8>>2]|0);return}function Ra(a,b){a=a|0;b=b|0;var c=0,d=0;c=U(f[a>>2]|0,b)|0;f[a>>2]=c;c=a+4|0;d=U(f[c>>2]|0,b)|0;f[c>>2]=d;a=a+8|0;b=U(f[a>>2]|0,b)|0;f[a>>2]=b;return}function Sa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;h=f[a>>2]|0;i=(h|0)<0;d=(f[a+4>>2]|0)-(i?h:0)|0;g=(d|0)<0;e=(g?0-d|0:0)+((f[a+8>>2]|0)-(i?h:0))|0;c=(e|0)<0;a=c?0:e;b=(g?0:d)-(c?e:0)|0;e=(i?0:h)-(g?d:0)-(c?e:0)|0;c=(b|0)<(e|0)?b:e;c=(a|0)<(c|0)?a:c;d=(c|0)>0;a=a-(d?c:0)|0;b=b-(d?c:0)|0;a:do switch(e-(d?c:0)|0){case 0:switch(b|0){case 0:{i=(a|0)==0?0:(a|0)==1?1:7;return i|0}case 1:{i=(a|0)==0?2:(a|0)==1?3:7;return i|0}default:break a}case 1:switch(b|0){case 0:{i=(a|0)==0?4:(a|0)==1?5:7;return i|0}case 1:{if(!a)a=6;else break a;return a|0}default:break a}default:{}}while(0);i=7;return i|0}function Ta(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;h=a+8|0;c=f[h>>2]|0;b=(f[a>>2]|0)-c|0;i=a+4|0;c=(f[i>>2]|0)-c|0;d=Sc(+((b*3|0)-c|0)/7.0)|0;f[a>>2]=d;b=Sc(+((c<<1)+b|0)/7.0)|0;f[i>>2]=b;f[h>>2]=0;c=b-d|0;if((d|0)<0){g=0-d|0;f[i>>2]=c;f[h>>2]=g;f[a>>2]=0;b=c;d=0;c=g}else c=0;if((b|0)<0){d=d-b|0;f[a>>2]=d;c=c-b|0;f[h>>2]=c;f[i>>2]=0;b=0}g=d-c|0;e=b-c|0;if((c|0)<0){f[a>>2]=g;f[i>>2]=e;f[h>>2]=0;b=e;e=g;c=0}else e=d;d=(b|0)<(e|0)?b:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;f[a>>2]=e-d;f[i>>2]=b-d;f[h>>2]=c-d;return}function Ua(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;h=a+8|0;c=f[h>>2]|0;b=(f[a>>2]|0)-c|0;i=a+4|0;c=(f[i>>2]|0)-c|0;d=Sc(+((b<<1)+c|0)/7.0)|0;f[a>>2]=d;b=Sc(+((c*3|0)-b|0)/7.0)|0;f[i>>2]=b;f[h>>2]=0;c=b-d|0;if((d|0)<0){g=0-d|0;f[i>>2]=c;f[h>>2]=g;f[a>>2]=0;b=c;d=0;c=g}else c=0;if((b|0)<0){d=d-b|0;f[a>>2]=d;c=c-b|0;f[h>>2]=c;f[i>>2]=0;b=0}g=d-c|0;e=b-c|0;if((c|0)<0){f[a>>2]=g;f[i>>2]=e;f[h>>2]=0;b=e;e=g;c=0}else e=d;d=(b|0)<(e|0)?b:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;f[a>>2]=e-d;f[i>>2]=b-d;f[h>>2]=c-d;return}function Va(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=f[a>>2]|0;h=a+4|0;c=f[h>>2]|0;i=a+8|0;d=f[i>>2]|0;e=c+(b*3|0)|0;f[a>>2]=e;c=d+(c*3|0)|0;f[h>>2]=c;b=(d*3|0)+b|0;f[i>>2]=b;d=c-e|0;if((e|0)<0){b=b-e|0;f[h>>2]=d;f[i>>2]=b;f[a>>2]=0;c=d;d=0}else d=e;if((c|0)<0){d=d-c|0;f[a>>2]=d;b=b-c|0;f[i>>2]=b;f[h>>2]=0;c=0}g=d-b|0;e=c-b|0;if((b|0)<0){f[a>>2]=g;f[h>>2]=e;f[i>>2]=0;d=g;b=0}else e=c;c=(e|0)<(d|0)?e:d;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=d-c;f[h>>2]=e-c;f[i>>2]=b-c;return}function Wa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;e=f[a>>2]|0;h=a+4|0;b=f[h>>2]|0;i=a+8|0;c=f[i>>2]|0;d=(b*3|0)+e|0;e=c+(e*3|0)|0;f[a>>2]=e;f[h>>2]=d;b=(c*3|0)+b|0;f[i>>2]=b;c=d-e|0;if((e|0)<0){b=b-e|0;f[h>>2]=c;f[i>>2]=b;f[a>>2]=0;e=0}else c=d;if((c|0)<0){e=e-c|0;f[a>>2]=e;b=b-c|0;f[i>>2]=b;f[h>>2]=0;c=0}g=e-b|0;d=c-b|0;if((b|0)<0){f[a>>2]=g;f[h>>2]=d;f[i>>2]=0;e=g;b=0}else d=c;c=(d|0)<(e|0)?d:e;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=e-c;f[h>>2]=d-c;f[i>>2]=b-c;return}function Xa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;if((b+-1|0)>>>0>=6)return;e=(f[15472+(b*12|0)>>2]|0)+(f[a>>2]|0)|0;f[a>>2]=e;i=a+4|0;d=(f[15472+(b*12|0)+4>>2]|0)+(f[i>>2]|0)|0;f[i>>2]=d;h=a+8|0;b=(f[15472+(b*12|0)+8>>2]|0)+(f[h>>2]|0)|0;f[h>>2]=b;c=d-e|0;if((e|0)<0){b=b-e|0;f[i>>2]=c;f[h>>2]=b;f[a>>2]=0;d=0}else{c=d;d=e}if((c|0)<0){d=d-c|0;f[a>>2]=d;b=b-c|0;f[h>>2]=b;f[i>>2]=0;c=0}g=d-b|0;e=c-b|0;if((b|0)<0){f[a>>2]=g;f[i>>2]=e;f[h>>2]=0;d=g;b=0}else e=c;c=(e|0)<(d|0)?e:d;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=d-c;f[i>>2]=e-c;f[h>>2]=b-c;return}function Ya(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;e=f[a>>2]|0;h=a+4|0;b=f[h>>2]|0;i=a+8|0;c=f[i>>2]|0;d=b+e|0;e=c+e|0;f[a>>2]=e;f[h>>2]=d;b=c+b|0;f[i>>2]=b;c=d-e|0;if((e|0)<0){b=b-e|0;f[h>>2]=c;f[i>>2]=b;f[a>>2]=0;d=0}else{c=d;d=e}if((c|0)<0){d=d-c|0;f[a>>2]=d;b=b-c|0;f[i>>2]=b;f[h>>2]=0;c=0}g=d-b|0;e=c-b|0;if((b|0)<0){f[a>>2]=g;f[h>>2]=e;f[i>>2]=0;d=g;b=0}else e=c;c=(e|0)<(d|0)?e:d;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=d-c;f[h>>2]=e-c;f[i>>2]=b-c;return}function Za(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=f[a>>2]|0;h=a+4|0;d=f[h>>2]|0;i=a+8|0;c=f[i>>2]|0;e=d+b|0;f[a>>2]=e;d=c+d|0;f[h>>2]=d;b=c+b|0;f[i>>2]=b;c=d-e|0;if((e|0)<0){b=b-e|0;f[h>>2]=c;f[i>>2]=b;f[a>>2]=0;d=0}else{c=d;d=e}if((c|0)<0){d=d-c|0;f[a>>2]=d;b=b-c|0;f[i>>2]=b;f[h>>2]=0;c=0}g=d-b|0;e=c-b|0;if((b|0)<0){f[a>>2]=g;f[h>>2]=e;f[i>>2]=0;d=g;b=0}else e=c;c=(e|0)<(d|0)?e:d;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=d-c;f[h>>2]=e-c;f[i>>2]=b-c;return}function _a(a){a=a|0;switch(a|0){case 1:{a=5;break}case 5:{a=4;break}case 4:{a=6;break}case 6:{a=2;break}case 2:{a=3;break}case 3:{a=1;break}default:{}}return a|0}function $a(a){a=a|0;switch(a|0){case 1:{a=3;break}case 3:{a=2;break}case 2:{a=6;break}case 6:{a=4;break}case 4:{a=5;break}case 5:{a=1;break}default:{}}return a|0}function ab(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=f[a>>2]|0;h=a+4|0;c=f[h>>2]|0;i=a+8|0;d=f[i>>2]|0;e=c+(b<<1)|0;f[a>>2]=e;c=d+(c<<1)|0;f[h>>2]=c;b=(d<<1)+b|0;f[i>>2]=b;d=c-e|0;if((e|0)<0){b=b-e|0;f[h>>2]=d;f[i>>2]=b;f[a>>2]=0;c=d;d=0}else d=e;if((c|0)<0){d=d-c|0;f[a>>2]=d;b=b-c|0;f[i>>2]=b;f[h>>2]=0;c=0}g=d-b|0;e=c-b|0;if((b|0)<0){f[a>>2]=g;f[h>>2]=e;f[i>>2]=0;d=g;b=0}else e=c;c=(e|0)<(d|0)?e:d;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=d-c;f[h>>2]=e-c;f[i>>2]=b-c;return}function bb(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;e=f[a>>2]|0;h=a+4|0;b=f[h>>2]|0;i=a+8|0;c=f[i>>2]|0;d=(b<<1)+e|0;e=c+(e<<1)|0;f[a>>2]=e;f[h>>2]=d;b=(c<<1)+b|0;f[i>>2]=b;c=d-e|0;if((e|0)<0){b=b-e|0;f[h>>2]=c;f[i>>2]=b;f[a>>2]=0;e=0}else c=d;if((c|0)<0){e=e-c|0;f[a>>2]=e;b=b-c|0;f[i>>2]=b;f[h>>2]=0;c=0}g=e-b|0;d=c-b|0;if((b|0)<0){f[a>>2]=g;f[h>>2]=d;f[i>>2]=0;e=g;b=0}else d=c;c=(d|0)<(e|0)?d:e;c=(b|0)<(c|0)?b:c;if((c|0)<=0)return;f[a>>2]=e-c;f[h>>2]=d-c;f[i>>2]=b-c;return}function cb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;h=(f[a>>2]|0)-(f[b>>2]|0)|0;i=(h|0)<0;d=(f[a+4>>2]|0)-(f[b+4>>2]|0)-(i?h:0)|0;g=(d|0)<0;e=(i?0-h|0:0)+(f[a+8>>2]|0)-(f[b+8>>2]|0)+(g?0-d|0:0)|0;a=(e|0)<0;b=a?0:e;c=(g?0:d)-(a?e:0)|0;e=(i?0:h)-(g?d:0)-(a?e:0)|0;a=(c|0)<(e|0)?c:e;a=(b|0)<(a|0)?b:a;d=(a|0)>0;b=b-(d?a:0)|0;c=c-(d?a:0)|0;a=e-(d?a:0)|0;a=(a|0)>-1?a:0-a|0;c=(c|0)>-1?c:0-c|0;b=(b|0)>-1?b:0-b|0;b=(c|0)>(b|0)?c:b;return ((a|0)>(b|0)?a:b)|0}function db(a,b){a=a|0;b=b|0;var c=0;c=f[a+8>>2]|0;f[b>>2]=(f[a>>2]|0)-c;f[b+4>>2]=(f[a+4>>2]|0)-c;return}function eb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;d=f[a>>2]|0;f[b>>2]=d;a=f[a+4>>2]|0;h=b+4|0;f[h>>2]=a;i=b+8|0;f[i>>2]=0;c=a-d|0;if((d|0)<0){a=0-d|0;f[h>>2]=c;f[i>>2]=a;f[b>>2]=0;d=0}else{c=a;a=0}if((c|0)<0){d=d-c|0;f[b>>2]=d;a=a-c|0;f[i>>2]=a;f[h>>2]=0;c=0}g=d-a|0;e=c-a|0;if((a|0)<0){f[b>>2]=g;f[h>>2]=e;f[i>>2]=0;c=e;e=g;a=0}else e=d;d=(c|0)<(e|0)?c:e;d=(a|0)<(d|0)?a:d;if((d|0)<=0)return;f[b>>2]=e-d;f[h>>2]=c-d;f[i>>2]=a-d;return}function fb(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+8|0;e=f[b>>2]|0;c=e-(f[a>>2]|0)|0;f[a>>2]=c;d=a+4|0;a=(f[d>>2]|0)-e|0;f[d>>2]=a;f[b>>2]=0-(a+c);return}function gb(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;c=f[a>>2]|0;b=0-c|0;f[a>>2]=b;h=a+8|0;f[h>>2]=0;i=a+4|0;d=f[i>>2]|0;e=d+c|0;if((c|0)>0){f[i>>2]=e;f[h>>2]=c;f[a>>2]=0;b=0;d=e}else c=0;if((d|0)<0){g=b-d|0;f[a>>2]=g;c=c-d|0;f[h>>2]=c;f[i>>2]=0;e=g-c|0;b=0-c|0;if((c|0)<0){f[a>>2]=e;f[i>>2]=b;f[h>>2]=0;d=b;c=0}else{d=0;e=g}}else e=b;b=(d|0)<(e|0)?d:e;b=(c|0)<(b|0)?c:b;if((b|0)<=0)return;f[a>>2]=e-b;f[i>>2]=d-b;f[h>>2]=c-b;return}function hb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=t;t=t+16|0;e=d;ib(a,b,c,e);Ma(e,c+4|0);t=d;return}function ib(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,g=0,h=0.0,i=0.0,j=0;j=t;t=t+32|0;g=j;Fc(a,g);f[c>>2]=0;e=+Ec(15888,g);h=+Ec(15912,g);if(h>2]=1;e=h}h=+Ec(15936,g);if(h>2]=2;e=h}h=+Ec(15960,g);if(h>2]=3;e=h}h=+Ec(15984,g);if(h>2]=4;e=h}h=+Ec(16008,g);if(h>2]=5;e=h}h=+Ec(16032,g);if(h>2]=6;e=h}h=+Ec(16056,g);if(h>2]=7;e=h}h=+Ec(16080,g);if(h>2]=8;e=h}h=+Ec(16104,g);if(h>2]=9;e=h}h=+Ec(16128,g);if(h>2]=10;e=h}h=+Ec(16152,g);if(h>2]=11;e=h}h=+Ec(16176,g);if(h>2]=12;e=h}h=+Ec(16200,g);if(h>2]=13;e=h}h=+Ec(16224,g);if(h>2]=14;e=h}h=+Ec(16248,g);if(h>2]=15;e=h}h=+Ec(16272,g);if(h>2]=16;e=h}h=+Ec(16296,g);if(h>2]=17;e=h}h=+Ec(16320,g);if(h>2]=18;e=h}h=+Ec(16344,g);if(h>2]=19;e=h}h=+N(+(1.0-e*.5));if(h<1.0e-16){f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;t=j;return}c=f[c>>2]|0;e=+p[16368+(c*24|0)>>3];e=+ob(e-+ob(+ub(15568+(c<<4)|0,a)));if(!(Rb(b)|0))i=e;else i=+ob(e+-.3334731722518321);e=+M(+h)/.381966011250105;if((b|0)>0){g=0;do{e=e*2.6457513110645907;g=g+1|0}while((g|0)!=(b|0))}h=+K(+i)*e;p[d>>3]=h;i=+L(+i)*e;p[d+8>>3]=i;t=j;return}function jb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0.0,h=0.0;g=+Bc(a);if(g<1.0e-16){b=15568+(b<<4)|0;f[e>>2]=f[b>>2];f[e+4>>2]=f[b+4>>2];f[e+8>>2]=f[b+8>>2];f[e+12>>2]=f[b+12>>2];return}h=+Q(+(+p[a+8>>3]),+(+p[a>>3]));if((c|0)>0){a=0;do{g=g/2.6457513110645907;a=a+1|0}while((a|0)!=(c|0))}if(!d){g=+P(+(g*.381966011250105));if(Rb(c)|0)h=+ob(h+.3334731722518321)}else{g=g/3.0;c=(Rb(c)|0)==0;g=+P(+((c?g:g/2.6457513110645907)*.381966011250105))}vb(15568+(b<<4)|0,+ob(+p[16368+(b*24|0)>>3]-h),g,e);return}function kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=t;t=t+16|0;e=d;Oa(a+4|0,e);jb(e,f[a>>2]|0,b,0,c);t=d;return}function lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0.0;E=t;t=t+384|0;d=E+144|0;e=E+80|0;j=E+368|0;A=E;B=E+352|0;C=E+336|0;D=E+304|0;s=E+288|0;u=E+320|0;v=E+272|0;w=E+256|0;x=E+240|0;y=E+224|0;z=E+208|0;g=d;h=16848;i=g+60|0;do{f[g>>2]=f[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=e;h=16912;i=g+60|0;do{f[g>>2]=f[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));r=(Rb(b)|0)==0;e=r?d:e;f[j>>2]=f[a>>2];f[j+4>>2]=f[a+4>>2];f[j+8>>2]=f[a+8>>2];f[j+12>>2]=f[a+12>>2];d=j+4|0;ab(d);bb(d);if(!(Rb(b)|0))r=b;else{Wa(d);r=b+1|0}f[A>>2]=f[j>>2];a=A+4|0;Pa(d,e,a);Na(a);f[A+16>>2]=f[j>>2];a=A+20|0;Pa(d,e+12|0,a);Na(a);f[A+32>>2]=f[j>>2];a=A+36|0;Pa(d,e+24|0,a);Na(a);f[A+48>>2]=f[j>>2];a=A+52|0;Pa(d,e+36|0,a);Na(a);f[A+64>>2]=f[j>>2];a=A+68|0;Pa(d,e+48|0,a);Na(a);f[c>>2]=0;a=B+4|0;j=D+4|0;k=16976+(r<<2)|0;l=17056+(r<<2)|0;m=w+8|0;n=x+8|0;o=y+8|0;q=C+4|0;i=0;a:while(1){h=A+(((i>>>0)%5|0)<<4)|0;f[C>>2]=f[h>>2];f[C+4>>2]=f[h+4>>2];f[C+8>>2]=f[h+8>>2];f[C+12>>2]=f[h+12>>2];if((mb(C,r,0,1)|0)==2)do{}while((mb(C,r,0,1)|0)==2);if((i|0)!=0&(Rb(b)|0)!=0){f[D>>2]=f[C>>2];f[D+4>>2]=f[C+4>>2];f[D+8>>2]=f[C+8>>2];f[D+12>>2]=f[C+12>>2];Oa(a,s);e=f[D>>2]|0;g=f[17136+(e*80|0)+(f[B>>2]<<2)>>2]|0;f[D>>2]=f[18736+(e*80|0)+(g*20|0)>>2];h=f[18736+(e*80|0)+(g*20|0)+16>>2]|0;if((h|0)>0){d=0;do{Ya(j);d=d+1|0}while((d|0)<(h|0))}h=18736+(e*80|0)+(g*20|0)+4|0;f[u>>2]=f[h>>2];f[u+4>>2]=f[h+4>>2];f[u+8>>2]=f[h+8>>2];Ra(u,(f[k>>2]|0)*3|0);Pa(j,u,j);Na(j);Oa(j,v);F=+(f[l>>2]|0);p[w>>3]=F*3.0;p[m>>3]=0.0;G=F*-1.5;p[x>>3]=G;p[n>>3]=F*2.598076211353316;p[y>>3]=G;p[o>>3]=F*-2.598076211353316;switch(f[17136+((f[D>>2]|0)*80|0)+(f[C>>2]<<2)>>2]|0){case 1:{d=x;e=w;break}case 3:{d=y;e=x;break}case 2:{d=w;e=y;break}default:{d=14;break a}}Cc(s,v,e,d,z);jb(z,f[D>>2]|0,r,1,c+8+(f[c>>2]<<4)|0);f[c>>2]=(f[c>>2]|0)+1}if(i>>>0<5){Oa(q,D);jb(D,f[C>>2]|0,r,1,c+8+(f[c>>2]<<4)|0);f[c>>2]=(f[c>>2]|0)+1};f[B>>2]=f[C>>2];f[B+4>>2]=f[C+4>>2];f[B+8>>2]=f[C+8>>2];f[B+12>>2]=f[C+12>>2];i=i+1|0;if(i>>>0>=6){d=4;break}}if((d|0)==4){t=E;return}else if((d|0)==14)da(22177,22224,630,22234)}function mb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=t;t=t+32|0;n=p+12|0;i=p;o=a+4|0;m=f[17056+(b<<2)>>2]|0;l=(d|0)!=0;m=l?m*3|0:m;e=f[o>>2]|0;k=a+8|0;h=f[k>>2]|0;if(l){g=a+12|0;d=f[g>>2]|0;e=h+e+d|0;if((e|0)==(m|0)){o=1;t=p;return o|0}else j=g}else{j=a+12|0;d=f[j>>2]|0;e=h+e+d|0}if((e|0)<=(m|0)){o=0;t=p;return o|0}do if((d|0)>0){d=f[a>>2]|0;if((h|0)>0){g=18736+(d*80|0)+60|0;d=a;break}d=18736+(d*80|0)+40|0;if(!c){g=d;d=a}else{La(n,m,0,0);Qa(o,n,i);Za(i);Pa(i,n,o);g=d;d=a}}else{g=18736+((f[a>>2]|0)*80|0)+20|0;d=a}while(0);f[d>>2]=f[g>>2];e=g+16|0;if((f[e>>2]|0)>0){d=0;do{Ya(o);d=d+1|0}while((d|0)<(f[e>>2]|0))}a=g+4|0;f[n>>2]=f[a>>2];f[n+4>>2]=f[a+4>>2];f[n+8>>2]=f[a+8>>2];b=f[16976+(b<<2)>>2]|0;Ra(n,l?b*3|0:b);Pa(o,n,o);Na(o);if(l)d=((f[k>>2]|0)+(f[o>>2]|0)+(f[j>>2]|0)|0)==(m|0)?1:2;else d=2;o=d;t=p;return o|0}function nb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0;A=t;t=t+384|0;h=A+176|0;i=A+96|0;v=A+360|0;w=A;x=A+344|0;y=A+328|0;o=A+312|0;q=A+296|0;r=A+280|0;s=A+264|0;u=A+248|0;if(c|0){lb(a,b,d);t=A;return}c=h;e=20336;g=c+72|0;do{f[c>>2]=f[e>>2];c=c+4|0;e=e+4|0}while((c|0)<(g|0));c=i;e=20416;g=c+72|0;do{f[c>>2]=f[e>>2];c=c+4|0;e=e+4|0}while((c|0)<(g|0));e=(Rb(b)|0)==0;e=e?h:i;f[v>>2]=f[a>>2];f[v+4>>2]=f[a+4>>2];f[v+8>>2]=f[a+8>>2];f[v+12>>2]=f[a+12>>2];c=v+4|0;ab(c);bb(c);if(!(Rb(b)|0))n=b;else{Wa(c);n=b+1|0}f[w>>2]=f[v>>2];a=w+4|0;Pa(c,e,a);Na(a);f[w+16>>2]=f[v>>2];a=w+20|0;Pa(c,e+12|0,a);Na(a);f[w+32>>2]=f[v>>2];a=w+36|0;Pa(c,e+24|0,a);Na(a);f[w+48>>2]=f[v>>2];a=w+52|0;Pa(c,e+36|0,a);Na(a);f[w+64>>2]=f[v>>2];a=w+68|0;Pa(c,e+48|0,a);Na(a);f[w+80>>2]=f[v>>2];a=w+84|0;Pa(c,e+60|0,a);Na(a);f[d>>2]=0;a=17056+(n<<2)|0;j=q+8|0;k=r+8|0;l=s+8|0;m=x+4|0;c=-1;h=0;i=0;a:while(1){g=(i>>>0)%6|0;e=w+(g<<4)|0;f[x>>2]=f[e>>2];f[x+4>>2]=f[e+4>>2];f[x+8>>2]=f[e+8>>2];f[x+12>>2]=f[e+12>>2];e=h;h=mb(x,n,0,1)|0;if((i|0)!=0&(Rb(b)|0)!=0?((e|0)!=1?(f[x>>2]|0)!=(c|0):0):0){Oa(w+((((g+5|0)>>>0)%6|0)<<4)+4|0,y);Oa(w+(g<<4)+4|0,o);B=+(f[a>>2]|0);p[q>>3]=B*3.0;p[j>>3]=0.0;C=B*-1.5;p[r>>3]=C;p[k>>3]=B*2.598076211353316;p[s>>3]=C;p[l>>3]=B*-2.598076211353316;g=f[v>>2]|0;switch(f[17136+(g*80|0)+(((c|0)==(g|0)?f[x>>2]|0:c)<<2)>>2]|0){case 1:{c=r;e=q;break}case 3:{c=s;e=r;break}case 2:{c=q;e=s;break}default:{z=11;break a}}Cc(y,o,e,c,u);if(!(Dc(y,u)|0)?!(Dc(o,u)|0):0){jb(u,f[v>>2]|0,n,1,d+8+(f[d>>2]<<4)|0);f[d>>2]=(f[d>>2]|0)+1}}if(i>>>0<6){Oa(m,y);jb(y,f[x>>2]|0,n,1,d+8+(f[d>>2]<<4)|0);f[d>>2]=(f[d>>2]|0)+1}i=i+1|0;if(i>>>0>=7)break;else c=f[x>>2]|0}if((z|0)==11)da(22260,22224,784,22305);t=A;return}function ob(a){a=+a;var b=0.0;b=a<0.0?a+6.283185307179586:a;return +(!(a>=6.283185307179586)?b:b+-6.283185307179586)}function pb(a,b,c){a=a|0;b=b|0;c=+c;if(!(+H(+(+p[a>>3]-+p[b>>3]))>3]-+p[b+8>>3]))>3]-+p[b>>3]))<1.7453292519943298e-11)){b=0;return b|0}b=+H(+(+p[a+8>>3]-+p[b+8>>3]))<1.7453292519943298e-11;return b|0}function rb(a){a=+a;if(!(a>1.5707963267948966))return +a;do a=a+-3.141592653589793;while(a>1.5707963267948966);return +a}function sb(a){a=+a;if(a>3.141592653589793)do a=a+-6.283185307179586;while(a>3.141592653589793);if(!(a<-3.141592653589793))return +a;do a=a+6.283185307179586;while(a<-3.141592653589793);return +a}function tb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;d=+p[b+8>>3];e=+p[a+8>>3];c=+H(+(d-e));if(c>3.141592653589793)c=+H(+((d<0.0?d+6.283185307179586:d)-(e<0.0?e+6.283185307179586:e)));d=1.5707963267948966-+p[a>>3];e=1.5707963267948966-+p[b>>3];e=+K(+d)*+K(+e)+ +K(+c)*(+L(+d)*+L(+e));e=e>1.0?1.0:e;return +(+N(+(e<-1.0?-1.0:e))*6371.007180918475)}function ub(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0,g=0.0;f=+p[b>>3];d=+K(+f);e=+p[b+8>>3]-+p[a+8>>3];g=d*+L(+e);c=+p[a>>3];return +(+Q(+g,+(+L(+f)*+K(+c)-+K(+e)*(d*+L(+c)))))}function vb(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0,g=0.0,h=0.0,i=0.0;if(c<1.0e-16){f[d>>2]=f[a>>2];f[d+4>>2]=f[a+4>>2];f[d+8>>2]=f[a+8>>2];f[d+12>>2]=f[a+12>>2];return}g=b<0.0?b+6.283185307179586:b;g=!(b>=6.283185307179586)?g:g+-6.283185307179586;do if(g<1.0e-16){b=+p[a>>3]+c;p[d>>3]=b;e=d}else{e=+H(+(g+-3.141592653589793))<1.0e-16;b=+p[a>>3];if(e){b=b-c;p[d>>3]=b;e=d;break}h=+K(+c);c=+L(+c);b=h*+L(+b)+ +K(+g)*(c*+K(+b));b=b>1.0?1.0:b;b=+O(+(b<-1.0?-1.0:b));p[d>>3]=b;if(+H(+(b+-1.5707963267948966))<1.0e-16){p[d>>3]=1.5707963267948966;p[d+8>>3]=0.0;return}if(+H(+(b+1.5707963267948966))<1.0e-16){p[d>>3]=-1.5707963267948966;p[d+8>>3]=0.0;return}i=+K(+b);g=c*+L(+g)/i;c=+p[a>>3];b=(h-+L(+b)*+L(+c))/+K(+c)/i;h=g>1.0?1.0:g;b=+p[a+8>>3]+ +Q(+(b<-1.0?-1.0:b>1.0?1.0:h<-1.0?-1.0:h),+b);if(b>3.141592653589793)do b=b+-6.283185307179586;while(b>3.141592653589793);if(b<-3.141592653589793)do b=b+6.283185307179586;while(b<-3.141592653589793);p[d+8>>3]=b;return}while(0);if(+H(+(b+-1.5707963267948966))<1.0e-16){p[e>>3]=1.5707963267948966;p[d+8>>3]=0.0;return}if(+H(+(b+1.5707963267948966))<1.0e-16){p[e>>3]=-1.5707963267948966;p[d+8>>3]=0.0;return}b=+p[a+8>>3];if(b>3.141592653589793)do b=b+-6.283185307179586;while(b>3.141592653589793);if(b<-3.141592653589793)do b=b+6.283185307179586;while(b<-3.141592653589793);p[d+8>>3]=b;return}function wb(a){a=a|0;return +(+p[20496+(a<<3)>>3])}function xb(a){a=a|0;return +(+p[20624+(a<<3)>>3])}function yb(a){a=a|0;return +(+p[20752+(a<<3)>>3])}function zb(a){a=a|0;return +(+p[20880+(a<<3)>>3])}function Ab(a){a=a|0;var b=0;b=21008+(a<<3)|0;a=f[b>>2]|0;aa(f[b+4>>2]|0);return a|0}function Bb(a,b){a=a|0;b=b|0;b=Yc(a|0,b|0,45)|0;ba()|0;return b&127|0}function Cb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(!(0==0&(b&2013265920|0)==134217728)){b=0;return b|0}g=Yc(a|0,b|0,45)|0;ba()|0;g=g&127;if(g>>>0>121){b=0;return b|0}c=Yc(a|0,b|0,52)|0;ba()|0;c=c&15;do if(c|0){e=1;d=0;while(1){f=Yc(a|0,b|0,(15-e|0)*3|0)|0;ba()|0;f=f&7;if((f|0)!=0&(d^1))if((f|0)==1&(ya(g)|0)!=0){h=0;d=13;break}else d=1;if((f|0)==7){h=0;d=13;break}if(e>>>0>>0)e=e+1|0;else{d=9;break}}if((d|0)==9){if((c|0)==15)h=1;else break;return h|0}else if((d|0)==13)return h|0}while(0);while(1){h=Yc(a|0,b|0,(14-c|0)*3|0)|0;ba()|0;if(!((h&7|0)==7&0==0)){h=0;d=13;break}if(c>>>0<14)c=c+1|0;else{h=1;d=13;break}}if((d|0)==13)return h|0;return 0}function Db(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Yc(a|0,b|0,52)|0;ba()|0;d=d&15;if((d|0)>=(c|0)){if((d|0)!=(c|0))if(c>>>0<=15){e=Zc(c|0,0,52)|0;a=e|a;b=ba()|0|b&-15728641;if((d|0)>(c|0))do{e=Zc(7,0,(14-c|0)*3|0)|0;c=c+1|0;a=e|a;b=ba()|0|b}while((c|0)<(d|0))}else{b=0;a=0}}else{b=0;a=0}aa(b|0);return a|0}function Eb(a,b,c){a=a|0;b=b|0;c=c|0;a=Yc(a|0,b|0,52)|0;ba()|0;a=a&15;if((a|0)>(c|0)){c=0;return c|0}c=pc(7,c-a|0)|0;return c|0}function Fb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;h=Yc(a|0,b|0,52)|0;ba()|0;h=h&15;if((h|0)>(c|0))return;if((h|0)==(c|0)){c=d;f[c>>2]=a;f[c+4>>2]=b;return}j=pc(7,c-h|0)|0;k=(j|0)/7|0;i=Yc(a|0,b|0,45)|0;ba()|0;if(!(ya(i&127)|0))g=0;else{a:do if(!h)e=0;else{g=1;while(1){e=Yc(a|0,b|0,(15-g|0)*3|0)|0;ba()|0;e=e&7;if(e|0)break a;if(g>>>0>>0)g=g+1|0;else{e=0;break}}}while(0);g=(e|0)==0}l=Zc(h+1|0,0,52)|0;e=ba()|0|b&-15728641;i=(14-h|0)*3|0;b=Zc(7,0,i|0)|0;b=(l|a)&~b;h=e&~(ba()|0);Fb(b,h,c,d);e=d+(k<<3)|0;if(!g){l=Zc(1,0,i|0)|0;Fb(l|b,ba()|0|h,c,e);l=e+(k<<3)|0;j=Zc(2,0,i|0)|0;Fb(j|b,ba()|0|h,c,l);l=l+(k<<3)|0;j=Zc(3,0,i|0)|0;Fb(j|b,ba()|0|h,c,l);l=l+(k<<3)|0;j=Zc(4,0,i|0)|0;Fb(j|b,ba()|0|h,c,l);l=l+(k<<3)|0;j=Zc(5,0,i|0)|0;Fb(j|b,ba()|0|h,c,l);j=Zc(6,0,i|0)|0;Fb(j|b,ba()|0|h,c,l+(k<<3)|0);return}g=e+(k<<3)|0;if((j|0)>6){j=e+8|0;l=(g>>>0>j>>>0?g:j)+-1+(0-e)|0;ad(e|0,0,l+8&-8|0)|0;e=j+(l>>>3<<3)|0}l=Zc(2,0,i|0)|0;Fb(l|b,ba()|0|h,c,e);l=e+(k<<3)|0;j=Zc(3,0,i|0)|0;Fb(j|b,ba()|0|h,c,l);l=l+(k<<3)|0;j=Zc(4,0,i|0)|0;Fb(j|b,ba()|0|h,c,l);l=l+(k<<3)|0;j=Zc(5,0,i|0)|0;Fb(j|b,ba()|0|h,c,l);j=Zc(6,0,i|0)|0;Fb(j|b,ba()|0|h,c,l+(k<<3)|0);return}function Gb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=Yc(a|0,b|0,45)|0;ba()|0;if(!(ya(e&127)|0)){e=0;return e|0}e=Yc(a|0,b|0,52)|0;ba()|0;e=e&15;a:do if(!e)c=0;else{d=1;while(1){c=Yc(a|0,b|0,(15-d|0)*3|0)|0;ba()|0;c=c&7;if(c|0)break a;if(d>>>0>>0)d=d+1|0;else{c=0;break}}}while(0);e=(c|0)==0&1;return e|0}function Hb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=a;d=f[e>>2]|0;e=f[e+4>>2]|0;if(0==0&(e&15728640|0)==0){if((c|0)<=0){x=0;return x|0}x=b;f[x>>2]=d;f[x+4>>2]=e;if((c|0)==1){x=0;return x|0}d=1;do{v=a+(d<<3)|0;w=f[v+4>>2]|0;x=b+(d<<3)|0;f[x>>2]=f[v>>2];f[x+4>>2]=w;d=d+1|0}while((d|0)!=(c|0));d=0;return d|0}v=c<<3;w=Nc(v)|0;$c(w|0,a|0,v|0)|0;u=Pc(c,8)|0;a:do if(c|0){d=c;b:while(1){h=w;l=f[h>>2]|0;h=f[h+4>>2]|0;s=Yc(l|0,h|0,52)|0;ba()|0;s=s&15;t=s+-1|0;r=(d|0)>0;c:do if(r){q=((d|0)<0)<<31>>31;o=Zc(t|0,0,52)|0;p=ba()|0;if(t>>>0>15){e=0;a=l;c=h;while(1){if(!((a|0)==0&(c|0)==0)){g=Yc(a|0,c|0,52)|0;ba()|0;g=g&15;i=(g|0)<(t|0);g=(g|0)==(t|0);k=i?0:g?a:0;a=i?0:g?c:0;c=Xc(k|0,a|0,d|0,q|0)|0;ba()|0;g=u+(c<<3)|0;i=g;j=f[i>>2]|0;i=f[i+4>>2]|0;if((j|0)==0&(i|0)==0)c=k;else{o=0;n=c;m=j;c=k;j=g;while(1){if((o|0)>(d|0)){x=33;break b}if((m|0)==(c|0)&(i&-117440513|0)==(a|0)){g=Yc(m|0,i|0,56)|0;ba()|0;g=g&7;if((g|0)==7){x=38;break b}p=Zc(g+1|0,0,56)|0;a=ba()|0|a&-117440513;f[j>>2]=0;f[j+4>>2]=0;j=n;c=p|c}else j=(n+1|0)%(d|0)|0;g=u+(j<<3)|0;i=g;m=f[i>>2]|0;i=f[i+4>>2]|0;if((m|0)==0&(i|0)==0)break;else{o=o+1|0;n=j;j=g}}}p=g;f[p>>2]=c;f[p+4>>2]=a}e=e+1|0;if((e|0)>=(d|0))break c;c=w+(e<<3)|0;a=f[c>>2]|0;c=f[c+4>>2]|0}}e=0;a=l;c=h;while(1){if(!((a|0)==0&(c|0)==0)){i=Yc(a|0,c|0,52)|0;ba()|0;i=i&15;if((i|0)>=(t|0)){if((i|0)!=(t|0)){a=a|o;c=c&-15728641|p;if(i>>>0>=s>>>0){g=t;do{n=Zc(7,0,(14-g|0)*3|0)|0;g=g+1|0;a=n|a;c=ba()|0|c}while(g>>>0>>0)}}}else{a=0;c=0}i=Xc(a|0,c|0,d|0,q|0)|0;ba()|0;g=u+(i<<3)|0;j=g;k=f[j>>2]|0;j=f[j+4>>2]|0;if(!((k|0)==0&(j|0)==0)){n=0;m=k;k=g;while(1){if((n|0)>(d|0)){x=33;break b}if((m|0)==(a|0)&(j&-117440513|0)==(c|0)){g=Yc(m|0,j|0,56)|0;ba()|0;g=g&7;if((g|0)==7){x=38;break b}m=Zc(g+1|0,0,56)|0;c=ba()|0|c&-117440513;f[k>>2]=0;f[k+4>>2]=0;a=m|a}else i=(i+1|0)%(d|0)|0;g=u+(i<<3)|0;j=g;m=f[j>>2]|0;j=f[j+4>>2]|0;if((m|0)==0&(j|0)==0)break;else{n=n+1|0;k=g}}}n=g;f[n>>2]=a;f[n+4>>2]=c}e=e+1|0;if((e|0)>=(d|0))break c;c=w+(e<<3)|0;a=f[c>>2]|0;c=f[c+4>>2]|0}}while(0);if((d+5|0)>>>0<11){x=84;break}q=Nc(((d|0)/6|0)<<3)|0;d:do if(r){o=0;n=0;do{i=u+(o<<3)|0;a=i;e=f[a>>2]|0;a=f[a+4>>2]|0;if(!((e|0)==0&(a|0)==0)){j=Yc(e|0,a|0,56)|0;ba()|0;j=j&7;c=j+1|0;k=a&-117440513;p=Yc(e|0,a|0,45)|0;ba()|0;e:do if(ya(p&127)|0){m=Yc(e|0,a|0,52)|0;ba()|0;m=m&15;if(m|0){g=1;while(1){p=Zc(7,0,(15-g|0)*3|0)|0;if(!((e&p|0)==0&(k&(ba()|0)|0)==0))break e;if(g>>>0>>0)g=g+1|0;else break}}a=Zc(c|0,0,56)|0;e=a|e;a=ba()|0|k;c=i;f[c>>2]=e;f[c+4>>2]=a;c=j+2|0}while(0);if((c|0)==7){p=q+(n<<3)|0;f[p>>2]=e;f[p+4>>2]=a&-117440513;n=n+1|0}}o=o+1|0}while((o|0)!=(d|0));if(r){p=((d|0)<0)<<31>>31;m=Zc(t|0,0,52)|0;o=ba()|0;if(t>>>0>15){a=0;e=0;while(1){do if(!((l|0)==0&(h|0)==0)){j=Yc(l|0,h|0,52)|0;ba()|0;j=j&15;g=(j|0)<(t|0);j=(j|0)==(t|0);i=g?0:j?l:0;j=g?0:j?h:0;g=Xc(i|0,j|0,d|0,p|0)|0;ba()|0;c=0;while(1){if((c|0)>(d|0)){x=83;break b}s=u+(g<<3)|0;k=f[s+4>>2]|0;if((k&-117440513|0)==(j|0)?(f[s>>2]|0)==(i|0):0){x=55;break}g=(g+1|0)%(d|0)|0;s=u+(g<<3)|0;if((f[s>>2]|0)==(i|0)?(f[s+4>>2]|0)==(j|0):0)break;else c=c+1|0}if((x|0)==55?(x=0,0==0&(k&117440512|0)==100663296):0)break;s=b+(e<<3)|0;f[s>>2]=l;f[s+4>>2]=h;e=e+1|0}while(0);a=a+1|0;if((a|0)>=(d|0)){d=n;break d}h=w+(a<<3)|0;l=f[h>>2]|0;h=f[h+4>>2]|0}}a=0;e=0;while(1){do if(!((l|0)==0&(h|0)==0)){j=Yc(l|0,h|0,52)|0;ba()|0;j=j&15;if((j|0)>=(t|0))if((j|0)!=(t|0)){c=l|m;g=h&-15728641|o;if(j>>>0>>0)j=g;else{i=t;do{r=Zc(7,0,(14-i|0)*3|0)|0;i=i+1|0;c=r|c;g=ba()|0|g}while(i>>>0>>0);j=g}}else{c=l;j=h}else{c=0;j=0}i=Xc(c|0,j|0,d|0,p|0)|0;ba()|0;g=0;while(1){if((g|0)>(d|0)){x=83;break b}r=u+(i<<3)|0;k=f[r+4>>2]|0;if((k&-117440513|0)==(j|0)?(f[r>>2]|0)==(c|0):0){x=78;break}i=(i+1|0)%(d|0)|0;r=u+(i<<3)|0;if((f[r>>2]|0)==(c|0)?(f[r+4>>2]|0)==(j|0):0)break;else g=g+1|0}if((x|0)==78?(x=0,0==0&(k&117440512|0)==100663296):0)break;r=b+(e<<3)|0;f[r>>2]=l;f[r+4>>2]=h;e=e+1|0}while(0);a=a+1|0;if((a|0)>=(d|0)){d=n;break d}h=w+(a<<3)|0;l=f[h>>2]|0;h=f[h+4>>2]|0}}else{e=0;d=n}}else{e=0;d=0}while(0);ad(u|0,0,v|0)|0;$c(w|0,q|0,d<<3|0)|0;Oc(q);if(!d)break a;else b=b+(e<<3)|0}if((x|0)==33){Oc(w);Oc(u);x=-1;return x|0}else if((x|0)==38){Oc(w);Oc(u);x=-2;return x|0}else if((x|0)==83){Oc(q);Oc(w);Oc(u);x=-1;return x|0}else if((x|0)==84){$c(b|0,w|0,d<<3|0)|0;break}}while(0);Oc(w);Oc(u);x=0;return x|0}function Ib(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0;if((b|0)<=0){e=0;return e|0}g=0;l=0;a:while(1){if((g|0)>=(d|0)){g=-1;h=11;break}k=a+(l<<3)|0;i=k;h=f[i>>2]|0;i=f[i+4>>2]|0;do if(!((h|0)==0&(i|0)==0)){j=Yc(h|0,i|0,52)|0;ba()|0;j=j&15;if((j|0)>(e|0)){g=-2;h=11;break a}if((j|0)==(e|0)){k=c+(g<<3)|0;f[k>>2]=h;f[k+4>>2]=i;g=g+1|0;break}h=(pc(7,e-j|0)|0)+g|0;if((h|0)>(d|0)){g=-1;h=11;break a}Fb(f[k>>2]|0,f[k+4>>2]|0,e,c+(g<<3)|0);g=h}while(0);l=l+1|0;if((l|0)>=(b|0)){g=0;h=11;break}}if((h|0)==11)return g|0;return 0}function Jb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;if((b|0)<=0){c=0;return c|0}d=0;h=0;a:while(1){e=a+(h<<3)|0;g=f[e>>2]|0;e=f[e+4>>2]|0;do if(!((g|0)==0&(e|0)==0)){e=Yc(g|0,e|0,52)|0;ba()|0;e=e&15;if((e|0)>(c|0)){d=-1;e=9;break a}if((e|0)==(c|0)){d=d+1|0;break}else{d=(pc(7,c-e|0)|0)+d|0;break}}while(0);h=h+1|0;if((h|0)>=(b|0)){e=9;break}}if((e|0)==9)return d|0;return 0}function Kb(a,b){a=a|0;b=b|0;b=Yc(a|0,b|0,52)|0;ba()|0;return b&1|0}function Lb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=Yc(a|0,b|0,52)|0;ba()|0;e=e&15;if(!e){e=0;return e|0}d=1;while(1){c=Yc(a|0,b|0,(15-d|0)*3|0)|0;ba()|0;c=c&7;if(c|0){d=5;break}if(d>>>0>>0)d=d+1|0;else{c=0;d=5;break}}if((d|0)==5)return c|0;return 0}function Mb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=Yc(a|0,b|0,52)|0;ba()|0;i=i&15;if(!i){h=b;i=a;aa(h|0);return i|0}h=1;c=0;while(1){f=(15-h|0)*3|0;d=Zc(7,0,f|0)|0;e=ba()|0;g=Yc(a|0,b|0,f|0)|0;ba()|0;f=Zc(_a(g&7)|0,0,f|0)|0;g=ba()|0;a=f|a&~d;b=g|b&~e;a:do if(!c)if(!((f&d|0)==0&(g&e|0)==0)){d=Yc(a|0,b|0,52)|0;ba()|0;d=d&15;if(!d)c=1;else{c=1;b:while(1){g=Yc(a|0,b|0,(15-c|0)*3|0)|0;ba()|0;switch(g&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0>>0)c=c+1|0;else{c=1;break a}}c=1;while(1){g=(15-c|0)*3|0;e=Yc(a|0,b|0,g|0)|0;ba()|0;f=Zc(7,0,g|0)|0;b=b&~(ba()|0);g=Zc(_a(e&7)|0,0,g|0)|0;a=a&~f|g;b=b|(ba()|0);if(c>>>0>>0)c=c+1|0;else{c=1;break}}}}else c=0;while(0);if(h>>>0>>0)h=h+1|0;else break}aa(b|0);return a|0}function Nb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=Yc(a|0,b|0,52)|0;ba()|0;d=d&15;if(!d){c=b;d=a;aa(c|0);return d|0}c=1;while(1){f=(15-c|0)*3|0;g=Yc(a|0,b|0,f|0)|0;ba()|0;e=Zc(7,0,f|0)|0;b=b&~(ba()|0);f=Zc(_a(g&7)|0,0,f|0)|0;a=f|a&~e;b=ba()|0|b;if(c>>>0>>0)c=c+1|0;else break}aa(b|0);return a|0}function Ob(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=Yc(a|0,b|0,52)|0;ba()|0;i=i&15;if(!i){h=b;i=a;aa(h|0);return i|0}h=1;c=0;while(1){f=(15-h|0)*3|0;d=Zc(7,0,f|0)|0;e=ba()|0;g=Yc(a|0,b|0,f|0)|0;ba()|0;f=Zc($a(g&7)|0,0,f|0)|0;g=ba()|0;a=f|a&~d;b=g|b&~e;a:do if(!c)if(!((f&d|0)==0&(g&e|0)==0)){d=Yc(a|0,b|0,52)|0;ba()|0;d=d&15;if(!d)c=1;else{c=1;b:while(1){g=Yc(a|0,b|0,(15-c|0)*3|0)|0;ba()|0;switch(g&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0>>0)c=c+1|0;else{c=1;break a}}c=1;while(1){e=(15-c|0)*3|0;f=Zc(7,0,e|0)|0;g=b&~(ba()|0);b=Yc(a|0,b|0,e|0)|0;ba()|0;b=Zc($a(b&7)|0,0,e|0)|0;a=a&~f|b;b=g|(ba()|0);if(c>>>0>>0)c=c+1|0;else{c=1;break}}}}else c=0;while(0);if(h>>>0>>0)h=h+1|0;else break}aa(b|0);return a|0}function Pb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=Yc(a|0,b|0,52)|0;ba()|0;d=d&15;if(!d){c=b;d=a;aa(c|0);return d|0}c=1;while(1){g=(15-c|0)*3|0;f=Zc(7,0,g|0)|0;e=b&~(ba()|0);b=Yc(a|0,b|0,g|0)|0;ba()|0;b=Zc($a(b&7)|0,0,g|0)|0;a=b|a&~f;b=ba()|0|e;if(c>>>0>>0)c=c+1|0;else break}aa(b|0);return a|0}function Qb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;j=t;t=t+64|0;i=j+40|0;d=j+24|0;e=j+12|0;g=j;Zc(b|0,0,52)|0;c=ba()|0|134225919;if(!b){if((f[a+4>>2]|0)>2){h=0;i=0;aa(h|0);t=j;return i|0}if((f[a+8>>2]|0)>2){h=0;i=0;aa(h|0);t=j;return i|0}if((f[a+12>>2]|0)>2){h=0;i=0;aa(h|0);t=j;return i|0}Zc(Aa(a)|0,0,45)|0;h=ba()|0|c;i=-1;aa(h|0);t=j;return i|0};f[i>>2]=f[a>>2];f[i+4>>2]=f[a+4>>2];f[i+8>>2]=f[a+8>>2];f[i+12>>2]=f[a+12>>2];h=i+4|0;if((b|0)>0){a=-1;while(1){f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];f[d+8>>2]=f[h+8>>2];if(!(b&1)){Ua(h);f[e>>2]=f[h>>2];f[e+4>>2]=f[h+4>>2];f[e+8>>2]=f[h+8>>2];Wa(e)}else{Ta(h);f[e>>2]=f[h>>2];f[e+4>>2]=f[h+4>>2];f[e+8>>2]=f[h+8>>2];Va(e)}Qa(d,e,g);Na(g);l=(15-b|0)*3|0;k=Zc(7,0,l|0)|0;c=c&~(ba()|0);l=Zc(Sa(g)|0,0,l|0)|0;a=l|a&~k;c=ba()|0|c;if((b|0)>1)b=b+-1|0;else break}}else a=-1;a:do if(((f[h>>2]|0)<=2?(f[i+8>>2]|0)<=2:0)?(f[i+12>>2]|0)<=2:0){d=Aa(i)|0;b=Zc(d|0,0,45)|0;b=b|a;a=ba()|0|c&-1040385;g=Ba(i)|0;if(!(ya(d)|0)){if((g|0)<=0)break;e=0;while(1){d=Yc(b|0,a|0,52)|0;ba()|0;d=d&15;if(d){c=1;while(1){l=(15-c|0)*3|0;i=Yc(b|0,a|0,l|0)|0;ba()|0;k=Zc(7,0,l|0)|0;a=a&~(ba()|0);l=Zc(_a(i&7)|0,0,l|0)|0;b=b&~k|l;a=a|(ba()|0);if(c>>>0>>0)c=c+1|0;else break}}e=e+1|0;if((e|0)==(g|0))break a}}e=Yc(b|0,a|0,52)|0;ba()|0;e=e&15;b:do if(e){c=1;c:while(1){l=Yc(b|0,a|0,(15-c|0)*3|0)|0;ba()|0;switch(l&7){case 1:break c;case 0:break;default:break b}if(c>>>0>>0)c=c+1|0;else break b}if(Ca(d,f[i>>2]|0)|0){c=1;while(1){i=(15-c|0)*3|0;k=Zc(7,0,i|0)|0;l=a&~(ba()|0);a=Yc(b|0,a|0,i|0)|0;ba()|0;a=Zc($a(a&7)|0,0,i|0)|0;b=b&~k|a;a=l|(ba()|0);if(c>>>0>>0)c=c+1|0;else break}}else{c=1;while(1){l=(15-c|0)*3|0;i=Yc(b|0,a|0,l|0)|0;ba()|0;k=Zc(7,0,l|0)|0;a=a&~(ba()|0);l=Zc(_a(i&7)|0,0,l|0)|0;b=b&~k|l;a=a|(ba()|0);if(c>>>0>>0)c=c+1|0;else break}}}while(0);if((g|0)>0){c=0;do{b=Mb(b,a)|0;a=ba()|0;c=c+1|0}while((c|0)!=(g|0))}}else{b=0;a=0}while(0);k=a;l=b;aa(k|0);t=j;return l|0}function Rb(a){a=a|0;return (a|0)%2|0|0}function Sb(a,b){a=a|0;b=b|0;var c=0,d=0;d=t;t=t+16|0;c=d;if((b>>>0<=15?!(0==0?(f[a+4>>2]&2146435072|0)==2146435072:0):0)?!(0==0?(f[a+8+4>>2]&2146435072|0)==2146435072:0):0){hb(a,b,c);b=Qb(c,b)|0;a=ba()|0}else{a=0;b=0}aa(a|0);t=d;return b|0}function Tb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;e=c+4|0;g=Yc(a|0,b|0,52)|0;ba()|0;g=g&15;h=Yc(a|0,b|0,45)|0;ba()|0;d=(g|0)==0;if(!(ya(h&127)|0)){if(d){h=0;return h|0}if((f[e>>2]|0)==0?(f[c+8>>2]|0)==0:0)d=(f[c+12>>2]|0)!=0&1;else d=1}else if(d){h=1;return h|0}else d=1;c=1;while(1){if(!(c&1))Wa(e);else Va(e);h=Yc(a|0,b|0,(15-c|0)*3|0)|0;ba()|0;Xa(e,h&7);if(c>>>0>>0)c=c+1|0;else break}return d|0}function Ub(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=t;t=t+16|0;j=l;k=Yc(a|0,b|0,45)|0;ba()|0;k=k&127;a:do if((ya(k)|0)!=0?(g=Yc(a|0,b|0,52)|0,ba()|0,g=g&15,(g|0)!=0):0){d=1;b:while(1){i=Yc(a|0,b|0,(15-d|0)*3|0)|0;ba()|0;switch(i&7){case 5:break b;case 0:break;default:{d=b;break a}}if(d>>>0>>0)d=d+1|0;else{d=b;break a}}e=1;d=b;while(1){b=(15-e|0)*3|0;h=Zc(7,0,b|0)|0;i=d&~(ba()|0);d=Yc(a|0,d|0,b|0)|0;ba()|0;d=Zc($a(d&7)|0,0,b|0)|0;a=a&~h|d;d=i|(ba()|0);if(e>>>0>>0)e=e+1|0;else break}}else d=b;while(0);i=7728+(k*28|0)|0;f[c>>2]=f[i>>2];f[c+4>>2]=f[i+4>>2];f[c+8>>2]=f[i+8>>2];f[c+12>>2]=f[i+12>>2];if(!(Tb(a,d,c)|0)){t=l;return}h=c+4|0;f[j>>2]=f[h>>2];f[j+4>>2]=f[h+4>>2];f[j+8>>2]=f[h+8>>2];g=Yc(a|0,d|0,52)|0;ba()|0;i=g&15;if(!(g&1))g=i;else{Wa(h);g=i+1|0}if(!(ya(k)|0))d=0;else{c:do if(!i)d=0;else{b=1;while(1){e=Yc(a|0,d|0,(15-b|0)*3|0)|0;ba()|0;e=e&7;if(e|0){d=e;break c}if(b>>>0>>0)b=b+1|0;else{d=0;break}}}while(0);d=(d|0)==4&1}if(!(mb(c,g,d,0)|0)){if((g|0)!=(i|0)){f[h>>2]=f[j>>2];f[h+4>>2]=f[j+4>>2];f[h+8>>2]=f[j+8>>2]}}else{if(ya(k)|0)do{}while((mb(c,g,0,0)|0)!=0);if((g|0)!=(i|0))Ua(h)}t=l;return}function Vb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=t;t=t+16|0;e=d;Ub(a,b,e);b=Yc(a|0,b|0,52)|0;ba()|0;kb(e,b&15,c);t=d;return}function Wb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;h=t;t=t+16|0;f=h;Ub(a,b,f);g=Yc(a|0,b|0,52)|0;ba()|0;g=g&15;e=Yc(a|0,b|0,45)|0;ba()|0;if(!(ya(e&127)|0)){b=0;nb(f,g,b,c);t=h;return}a:do if(!g)d=0;else{e=1;while(1){d=Yc(a|0,b|0,(15-e|0)*3|0)|0;ba()|0;d=d&7;if(d|0)break a;if(e>>>0>>0)e=e+1|0;else{d=0;break}}}while(0);b=(d|0)==0&1;nb(f,g,b,c);t=h;return}function Xb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;i=t;t=t+64|0;h=i;if((a|0)==(c|0)&(b|0)==(d|0)|(0!=0|(b&2013265920|0)!=134217728|(0!=0|(d&2013265920|0)!=134217728))){h=0;t=i;return h|0}e=Yc(a|0,b|0,52)|0;ba()|0;e=e&15;g=Yc(c|0,d|0,52)|0;ba()|0;if((e|0)!=(g&15|0)){h=0;t=i;return h|0}g=e+-1|0;if(e>>>0>1?(k=Db(a,b,g)|0,j=ba()|0,g=Db(c,d,g)|0,(k|0)==(g|0)&(j|0)==(ba()|0)):0){g=(e^15)*3|0;e=Yc(a|0,b|0,g|0)|0;ba()|0;e=e&7;g=Yc(c|0,d|0,g|0)|0;ba()|0;g=g&7;if((e|0)==0|(g|0)==0){k=1;t=i;return k|0}if((f[21136+(e<<2)>>2]|0)==(g|0)){k=1;t=i;return k|0}if((f[21168+(e<<2)>>2]|0)==(g|0)){k=1;t=i;return k|0}}e=h;g=e+56|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));oa(a,b,1,h);k=h;if(((((!((f[k>>2]|0)==(c|0)?(f[k+4>>2]|0)==(d|0):0)?(k=h+8|0,!((f[k>>2]|0)==(c|0)?(f[k+4>>2]|0)==(d|0):0)):0)?(k=h+16|0,!((f[k>>2]|0)==(c|0)?(f[k+4>>2]|0)==(d|0):0)):0)?(k=h+24|0,!((f[k>>2]|0)==(c|0)?(f[k+4>>2]|0)==(d|0):0)):0)?(k=h+32|0,!((f[k>>2]|0)==(c|0)?(f[k+4>>2]|0)==(d|0):0)):0)?(k=h+40|0,!((f[k>>2]|0)==(c|0)?(f[k+4>>2]|0)==(d|0):0)):0){e=h+48|0;e=((f[e>>2]|0)==(c|0)?(f[e+4>>2]|0)==(d|0):0)&1}else e=1;k=e;t=i;return k|0}function Yb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;h=t;t=t+16|0;e=h;if(!(Xb(a,b,c,d)|0)){a=0;g=0;aa(a|0);t=h;return g|0}g=b&-2130706433;f[e>>2]=0;i=sa(a,b,1,e)|0;if(!((i|0)==(c|0)&(ba()|0)==(d|0))){f[e>>2]=0;i=sa(a,b,2,e)|0;if(!((i|0)==(c|0)&(ba()|0)==(d|0))){f[e>>2]=0;i=sa(a,b,3,e)|0;if(!((i|0)==(c|0)&(ba()|0)==(d|0))){f[e>>2]=0;i=sa(a,b,4,e)|0;if(!((i|0)==(c|0)&(ba()|0)==(d|0))){f[e>>2]=0;i=sa(a,b,5,e)|0;if(!((i|0)==(c|0)&(ba()|0)==(d|0))){f[e>>2]=0;i=sa(a,b,6,e)|0;if((i|0)==(c|0)&(ba()|0)==(d|0)){b=0;c=100663296}else{g=0;i=0;aa(g|0);t=h;return i|0}}else{b=0;c=83886080}}else{b=0;c=67108864}}else{b=0;c=50331648}}else{b=0;c=33554432}}else{b=0;c=16777216}g=g|c|268435456;i=a|b;aa(g|0);t=h;return i|0}function Zb(a,b){a=a|0;b=b|0;var c=0;c=0==0&(b&2013265920|0)==268435456;aa((c?b&-2130706433|134217728:0)|0);return (c?a:0)|0}function _b(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=t;t=t+16|0;c=d;if(!(0==0&(b&2013265920|0)==268435456)){b=0;c=0;aa(b|0);t=d;return c|0}e=Yc(a|0,b|0,56)|0;ba()|0;f[c>>2]=0;c=sa(a,b&-2130706433|134217728,e&7,c)|0;b=ba()|0;aa(b|0);t=d;return c|0}function $b(a,b){a=a|0;b=b|0;var c=0;if(!(0==0&(b&2013265920|0)==268435456)){c=0;return c|0}c=Yc(a|0,b|0,56)|0;ba()|0;switch(c&7){case 0:case 7:{c=0;return c|0}default:{}}c=b&-2130706433|134217728;if(0==0&(b&117440512|0)==16777216&(Gb(a,c)|0)!=0){c=0;return c|0}c=Cb(a,c)|0;return c|0}function ac(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;g=t;t=t+16|0;d=g;h=0==0&(b&2013265920|0)==268435456;e=b&-2130706433|134217728;i=c;f[i>>2]=h?a:0;f[i+4>>2]=h?e:0;if(h){b=Yc(a|0,b|0,56)|0;ba()|0;f[d>>2]=0;a=sa(a,e,b&7,d)|0;b=ba()|0}else{a=0;b=0}i=c+8|0;f[i>>2]=a;f[i+4>>2]=b;t=g;return}function bc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=(Gb(a,b)|0)==0;b=b&-2130706433;d=c;f[d>>2]=e?a:0;f[d+4>>2]=e?b|285212672:0;d=c+8|0;f[d>>2]=a;f[d+4>>2]=b|301989888;d=c+16|0;f[d>>2]=a;f[d+4>>2]=b|318767104;d=c+24|0;f[d>>2]=a;f[d+4>>2]=b|335544320;d=c+32|0;f[d>>2]=a;f[d+4>>2]=b|352321536;c=c+40|0;f[c>>2]=a;f[c+4>>2]=b|369098752;return}function cc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=t;t=t+368|0;e=l+352|0;i=l+184|0;j=l+16|0;k=l;ad(i|0,0,168)|0;ad(j|0,0,168)|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;h=0==0&(b&2013265920|0)==268435456;d=b&-2130706433|134217728;Wb(h?a:0,h?d:0,i);if(h){b=Yc(a|0,b|0,56)|0;ba()|0;f[e>>2]=0;a=sa(a,d,b&7,e)|0;b=ba()|0}else{a=0;b=0}Wb(a,b,j);if((f[i>>2]|0)<=0){k=0;f[c>>2]=k;t=l;return}h=i+24|0;a=0;b=0;g=0;do{e=i+8+(g<<4)|0;a:do if((f[j>>2]|0)>0){d=0;while(1){if(pb(e,j+8+(d<<4)|0,1.0e-06)|0)break;d=d+1|0;if((d|0)>=(f[j>>2]|0))break a}b:do if(!g){if((f[j>>2]|0)>0){d=0;do{if(pb(h,j+8+(d<<4)|0,1.0e-06)|0)break b;d=d+1|0}while((d|0)<(f[j>>2]|0))};f[k>>2]=f[e>>2];f[k+4>>2]=f[e+4>>2];f[k+8>>2]=f[e+8>>2];f[k+12>>2]=f[e+12>>2];b=1;break a}while(0);d=c+8+(a<<4)|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2];a=a+1|0}while(0);g=g+1|0}while((g|0)<(f[i>>2]|0));if(!b){k=a;f[c>>2]=k;t=l;return}j=c+8+(a<<4)|0;f[j>>2]=f[k>>2];f[j+4>>2]=f[k+4>>2];f[j+8>>2]=f[k+8>>2];f[j+12>>2]=f[k+12>>2];k=a+1|0;f[c>>2]=k;t=l;return}function dc(a){a=a|0;var b=0,c=0,d=0;b=Pc(1,12)|0;if(!b)da(22394,22349,46,22407);c=a+4|0;d=f[c>>2]|0;if(d|0){d=d+8|0;f[d>>2]=b;f[c>>2]=b;return b|0}if(f[a>>2]|0)da(22424,22349,58,22447);d=a;f[d>>2]=b;f[c>>2]=b;return b|0}function ec(a,b){a=a|0;b=b|0;var c=0,d=0;d=Nc(24)|0;if(!d)da(22461,22349,75,22475);f[d>>2]=f[b>>2];f[d+4>>2]=f[b+4>>2];f[d+8>>2]=f[b+8>>2];f[d+12>>2]=f[b+12>>2];f[d+16>>2]=0;b=a+4|0;c=f[b>>2]|0;if(c|0){f[c+16>>2]=d;f[b>>2]=d;return d|0}if(f[a>>2]|0)da(22490,22349,79,22475);f[a>>2]=d;f[b>>2]=d;return d|0}function fc(a){a=a|0;var b=0,c=0,d=0,e=0;if(!a)return;d=1;while(1){b=f[a>>2]|0;if(b|0)do{c=f[b>>2]|0;if(c|0)do{e=c;c=f[c+16>>2]|0;Oc(e)}while((c|0)!=0);e=b;b=f[b+8>>2]|0;Oc(e)}while((b|0)!=0);b=a;a=f[a+8>>2]|0;if(!d)Oc(b);if(!a)break;else d=0}return}function gc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0.0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0;e=a+8|0;if(f[e>>2]|0){J=1;return J|0}d=f[a>>2]|0;if(!d){J=0;return J|0}b=d;c=0;do{c=c+1|0;b=f[b+8>>2]|0}while((b|0)!=0);if(c>>>0<2){J=0;return J|0}G=Nc(c<<2)|0;if(!G)da(22510,22349,312,22529);F=Nc(c<<5)|0;if(!F)da(22551,22349,316,22529);f[a>>2]=0;y=a+4|0;f[y>>2]=0;f[e>>2]=0;c=0;E=0;x=0;m=0;a:while(1){l=f[d>>2]|0;if(l){g=0.0;h=l;do{j=+p[h+8>>3];b=h;h=f[h+16>>2]|0;k=(h|0)==0;e=k?l:h;i=+p[e+8>>3];if(+H(+(j-i))>3.141592653589793){J=14;break}g=g+(i-j)*(+p[b>>3]+ +p[e>>3])}while(!k);if((J|0)==14){J=0;g=0.0;b=l;do{w=+p[b+8>>3];D=b+16|0;C=f[D>>2]|0;C=(C|0)==0?l:C;v=+p[C+8>>3];g=g+(+p[b>>3]+ +p[C>>3])*((v<0.0?v+6.283185307179586:v)-(w<0.0?w+6.283185307179586:w));b=f[((b|0)==0?d:D)>>2]|0}while((b|0)!=0)}if(g>0.0){f[G+(E<<2)>>2]=d;E=E+1|0;e=x;b=m}else J=19}else J=19;if((J|0)==19){J=0;do if(!c)if(!m)if(!(f[a>>2]|0)){e=y;h=a;b=d;c=a;break}else{J=27;break a}else{e=y;h=m+8|0;b=d;c=a;break}else{b=c+8|0;if(f[b>>2]|0){J=21;break a}c=Pc(1,12)|0;if(!c){J=23;break a}f[b>>2]=c;e=c+4|0;h=c;b=m}while(0);f[h>>2]=d;f[e>>2]=d;h=F+(x<<5)|0;k=f[d>>2]|0;if(k){l=F+(x<<5)+8|0;p[l>>3]=1797693134862315708145274.0e284;m=F+(x<<5)+24|0;p[m>>3]=1797693134862315708145274.0e284;p[h>>3]=-1797693134862315708145274.0e284;n=F+(x<<5)+16|0;p[n>>3]=-1797693134862315708145274.0e284;t=1797693134862315708145274.0e284;u=-1797693134862315708145274.0e284;e=0;o=k;j=1797693134862315708145274.0e284;r=1797693134862315708145274.0e284;s=-1797693134862315708145274.0e284;i=-1797693134862315708145274.0e284;while(1){g=+p[o>>3];w=+p[o+8>>3];o=f[o+16>>2]|0;q=(o|0)==0;v=+p[(q?k:o)+8>>3];if(g>3]=g;j=g}if(w>3]=w;r=w}if(g>s)p[h>>3]=g;else g=s;if(w>i){p[n>>3]=w;i=w}t=w>0.0&wu?w:u;e=e|+H(+(w-v))>3.141592653589793;if(q)break;else s=g}if(e){p[n>>3]=u;p[m>>3]=t}}else{f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[h+24>>2]=0;f[h+28>>2]=0}e=x+1|0}D=d+8|0;d=f[D>>2]|0;f[D>>2]=0;if(!d){J=45;break}else{x=e;m=b}}if((J|0)==21)da(22327,22349,32,22361);else if((J|0)==23)da(22381,22349,34,22361);else if((J|0)==27)da(22424,22349,58,22447);else if((J|0)==45){b:do if((E|0)>0){D=(e|0)==0;B=e<<2;C=(a|0)==0;A=0;b=0;while(1){z=f[G+(A<<2)>>2]|0;if(!D){x=Nc(B)|0;if(!x){J=50;break}y=Nc(B)|0;if(!y){J=52;break}c:do if(!C){e=0;c=0;h=a;while(1){d=F+(e<<5)|0;if(hc(f[h>>2]|0,d,f[z>>2]|0)|0){f[x+(c<<2)>>2]=h;f[y+(c<<2)>>2]=d;q=c+1|0}else q=c;h=f[h+8>>2]|0;if(!h)break;else{e=e+1|0;c=q}}if((q|0)>0){d=f[x>>2]|0;if((q|0)==1)c=d;else{n=0;o=-1;c=d;m=d;while(1){k=f[m>>2]|0;d=0;h=0;while(1){e=f[f[x+(h<<2)>>2]>>2]|0;if((e|0)==(k|0))l=d;else l=d+((hc(e,f[y+(h<<2)>>2]|0,f[k>>2]|0)|0)&1)|0;h=h+1|0;if((h|0)==(q|0))break;else d=l}e=(l|0)>(o|0);c=e?m:c;d=n+1|0;if((d|0)==(q|0))break c;n=d;o=e?l:o;m=f[x+(d<<2)>>2]|0}}}else c=0}else c=0;while(0);Oc(x);Oc(y);if(c){e=c+4|0;d=f[e>>2]|0;if(!d){if(f[c>>2]|0){J=70;break}}else c=d+8|0;f[c>>2]=z;f[e>>2]=z}else J=73}else J=73;if((J|0)==73){J=0;b=f[z>>2]|0;if(b|0)do{y=b;b=f[b+16>>2]|0;Oc(y)}while((b|0)!=0);Oc(z);b=2}A=A+1|0;if((A|0)>=(E|0)){I=b;break b}}if((J|0)==50)da(22566,22349,246,22585);else if((J|0)==52)da(22604,22349,248,22585);else if((J|0)==70)da(22424,22349,58,22447)}else I=0;while(0);Oc(G);Oc(F);J=I;return J|0}return 0}function hc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0;if(!(Ja(b,c)|0)){a=0;return a|0}b=Ha(b)|0;k=+p[c>>3];d=+p[c+8>>3];d=b&d<0.0?d+6.283185307179586:d;a=f[a>>2]|0;if(!a){a=0;return a|0}if(b){b=0;c=a;a:while(1){while(1){h=+p[c>>3];j=+p[c+8>>3];c=c+16|0;l=f[c>>2]|0;l=(l|0)==0?a:l;g=+p[l>>3];e=+p[l+8>>3];if(h>g){i=h;h=j}else{i=g;g=h;h=e;e=j}if(!(ki))break;c=f[c>>2]|0;if(!c){c=22;break a}}j=e<0.0?e+6.283185307179586:e;h=h<0.0?h+6.283185307179586:h;d=h==d|j==d?d+-2.220446049250313e-16:d;j=j+(k-g)/(i-g)*(h-j);if((j<0.0?j+6.283185307179586:j)>d)b=b^1;c=f[c>>2]|0;if(!c){c=22;break}}if((c|0)==22)return b|0}else{b=0;c=a;b:while(1){while(1){h=+p[c>>3];j=+p[c+8>>3];c=c+16|0;l=f[c>>2]|0;l=(l|0)==0?a:l;g=+p[l>>3];e=+p[l+8>>3];if(h>g){i=h;h=j}else{i=g;g=h;h=e;e=j}if(!(ki))break;c=f[c>>2]|0;if(!c){c=22;break b}}d=h==d|e==d?d+-2.220446049250313e-16:d;if(e+(k-g)/(i-g)*(h-e)>d)b=b^1;c=f[c>>2]|0;if(!c){c=22;break}}if((c|0)==22)return b|0}return 0}function ic(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,v=0;v=t;t=t+32|0;u=v+16|0;s=v;h=Yc(a|0,c|0,52)|0;ba()|0;h=h&15;p=Yc(d|0,e|0,52)|0;ba()|0;if((h|0)!=(p&15|0)){u=1;t=v;return u|0}l=Yc(a|0,c|0,45)|0;ba()|0;l=l&127;m=Yc(d|0,e|0,45)|0;ba()|0;m=m&127;p=(l|0)!=(m|0);if(p){j=Ea(l,m)|0;if((j|0)==7){u=2;t=v;return u|0}k=Ea(m,l)|0;if((k|0)==7)da(22628,22652,147,22662);else{q=j;i=k}}else{q=0;i=0}n=ya(l)|0;o=ya(m)|0;f[u>>2]=0;f[u+4>>2]=0;f[u+8>>2]=0;f[u+12>>2]=0;do if(!q){Tb(d,e,u)|0;if((n|0)!=0&(o|0)!=0){if((m|0)!=(l|0))da(22780,22652,246,22662);i=Lb(a,c)|0;h=Lb(d,e)|0;if((b[22096+(i*7|0)+h>>0]|0)==0?(b[22032+(i*7|0)+h>>0]|0)==0:0){i=f[21200+(i*28|0)+(h<<2)>>2]|0;if((i|0)>0){j=u+4|0;h=0;do{Za(j);h=h+1|0}while((h|0)!=(i|0));r=55}else r=55}else h=5}else r=55}else{m=f[4304+(l*28|0)+(q<<2)>>2]|0;j=(m|0)>0;if(!o)if(j){l=0;k=d;j=e;do{k=Pb(k,j)|0;j=ba()|0;i=$a(i)|0;l=l+1|0}while((l|0)!=(m|0));m=i;l=k;k=j}else{m=i;l=d;k=e}else if(j){l=0;k=d;j=e;do{k=Ob(k,j)|0;j=ba()|0;i=$a(i)|0;if((i|0)==1)i=$a(1)|0;l=l+1|0}while((l|0)!=(m|0));m=i;l=k;k=j}else{m=i;l=d;k=e}Tb(l,k,u)|0;if(!p)da(22675,22652,177,22662);j=(n|0)!=0;i=(o|0)!=0;if(j&i)da(22702,22652,178,22662);if(!j)if(i){i=Lb(l,k)|0;if(Rb(h)|0?b[22096+(i*7|0)+m>>0]|0:0){h=4;break}if((Rb(h)|0)==0?b[22032+(i*7|0)+m>>0]|0:0){h=4;break}l=0;k=f[21200+(m*28|0)+(i<<2)>>2]|0;r=30}else i=0;else{i=Lb(a,c)|0;if(b[22096+(i*7|0)+q>>0]|0){h=3;break}if(b[22032+(i*7|0)+q>>0]|0){h=3;break}k=f[21200+(i*28|0)+(q<<2)>>2]|0;l=k;r=30}if((r|0)==30){if((k|0)<=-1)da(22733,22652,215,22662);if((l|0)<=-1)da(22756,22652,216,22662);if((k|0)>0){j=u+4|0;i=0;do{Za(j);i=i+1|0}while((i|0)!=(k|0));i=l}else i=l};f[s>>2]=0;f[s+4>>2]=0;f[s+8>>2]=0;Xa(s,q);if(h|0)while(1){if(!(Rb(h)|0))Wa(s);else Va(s);if((h|0)>1)h=h+-1|0;else break}if((i|0)>0){h=0;do{Za(s);h=h+1|0}while((h|0)!=(i|0))}r=u+4|0;Pa(r,s,r);Na(r);r=55}while(0);if((r|0)==55){h=u+4|0;f[g>>2]=f[h>>2];f[g+4>>2]=f[h+4>>2];f[g+8>>2]=f[h+8>>2];h=0}u=h;t=v;return u|0}function jc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0;p=t;t=t+48|0;h=p+36|0;i=p+24|0;j=p+12|0;k=p;g=Yc(a|0,b|0,52)|0;ba()|0;g=g&15;n=Yc(a|0,b|0,45)|0;ba()|0;n=n&127;l=ya(n)|0;Zc(g|0,0,52)|0;r=ba()|0|134225919;q=d;f[q>>2]=-1;f[q+4>>2]=r;if(!g){if((f[c>>2]|0)>1){r=1;t=p;return r|0}e=Da(n,Sa(c)|0)|0;if((e|0)==127){r=1;t=p;return r|0}o=Zc(e|0,0,45)|0;q=ba()|0;n=d;q=f[n+4>>2]&-1040385|q;r=d;f[r>>2]=f[n>>2]|o;f[r+4>>2]=q;r=0;t=p;return r|0};f[h>>2]=f[c>>2];f[h+4>>2]=f[c+4>>2];f[h+8>>2]=f[c+8>>2];while(1){f[i>>2]=f[h>>2];f[i+4>>2]=f[h+4>>2];f[i+8>>2]=f[h+8>>2];if(!(Rb(g)|0)){Ua(h);f[j>>2]=f[h>>2];f[j+4>>2]=f[h+4>>2];f[j+8>>2]=f[h+8>>2];Wa(j)}else{Ta(h);f[j>>2]=f[h>>2];f[j+4>>2]=f[h+4>>2];f[j+8>>2]=f[h+8>>2];Va(j)}Qa(i,j,k);Na(k);q=d;s=f[q>>2]|0;q=f[q+4>>2]|0;u=(15-g|0)*3|0;c=Zc(7,0,u|0)|0;q=q&~(ba()|0);u=Zc(Sa(k)|0,0,u|0)|0;q=ba()|0|q;r=d;f[r>>2]=u|s&~c;f[r+4>>2]=q;if((g|0)>1)g=g+-1|0;else break}a:do if(((f[h>>2]|0)<=1?(f[h+4>>2]|0)<=1:0)?(f[h+8>>2]|0)<=1:0){g=Sa(h)|0;i=Da(n,g)|0;if((i|0)==127)k=0;else k=ya(i)|0;b:do if(!g)if((l|0)!=0&(k|0)!=0){u=Lb(a,b)|0;g=d;g=21408+(u*28|0)+((Lb(f[g>>2]|0,f[g+4>>2]|0)|0)<<2)|0;g=f[g>>2]|0;if((g|0)<=-1)da(22904,22652,437,22837);if(!g){e=i;g=53}else{h=d;e=0;c=f[h>>2]|0;h=f[h+4>>2]|0;do{c=Nb(c,h)|0;h=ba()|0;u=d;f[u>>2]=c;f[u+4>>2]=h;e=e+1|0}while((e|0)<(g|0));e=i;g=52}}else{e=i;g=52}else{if(l){h=21408+((Lb(a,b)|0)*28|0)+(g<<2)|0;h=f[h>>2]|0;if((h|0)>0){c=0;do{g=_a(g)|0;c=c+1|0}while((c|0)!=(h|0))}if((g|0)==1){e=3;break a}c=Da(n,g)|0;if((c|0)==127)da(22807,22652,380,22837);if(!(ya(c)|0)){o=h;m=g;e=c}else da(22850,22652,381,22837)}else{o=0;m=g;e=i}j=f[4304+(n*28|0)+(m<<2)>>2]|0;if((j|0)<=-1)da(22881,22652,388,22837);if(!k){if((o|0)<=-1)da(22733,22652,421,22837);if(o|0){h=d;g=0;c=f[h>>2]|0;h=f[h+4>>2]|0;do{c=Nb(c,h)|0;h=ba()|0;u=d;f[u>>2]=c;f[u+4>>2]=h;g=g+1|0}while((g|0)<(o|0))}if((j|0)<=0){g=52;break}h=d;g=0;c=f[h>>2]|0;h=f[h+4>>2]|0;while(1){c=Nb(c,h)|0;h=ba()|0;u=d;f[u>>2]=c;f[u+4>>2]=h;g=g+1|0;if((g|0)==(j|0)){g=52;break b}}}i=Ea(e,n)|0;if((i|0)==7)da(22628,22652,397,22837);g=d;c=f[g>>2]|0;g=f[g+4>>2]|0;if((j|0)>0){h=0;do{c=Nb(c,g)|0;g=ba()|0;u=d;f[u>>2]=c;f[u+4>>2]=g;h=h+1|0}while((h|0)!=(j|0))}c=Lb(c,g)|0;u=za(e)|0;c=f[(u?21824:21616)+(i*28|0)+(c<<2)>>2]|0;if((c|0)<=-1)da(22733,22652,416,22837);if(!c)g=52;else{i=d;g=0;h=f[i>>2]|0;i=f[i+4>>2]|0;do{h=Mb(h,i)|0;i=ba()|0;u=d;f[u>>2]=h;f[u+4>>2]=i;g=g+1|0}while((g|0)<(c|0));g=52}}while(0);if((g|0)==52)if(k)g=53;if((g|0)==53){u=d;if((Lb(f[u>>2]|0,f[u+4>>2]|0)|0)==1){e=4;break}}u=d;r=f[u>>2]|0;u=f[u+4>>2]&-1040385;s=Zc(e|0,0,45)|0;u=u|(ba()|0);e=d;f[e>>2]=r|s;f[e+4>>2]=u;e=0}else e=2;while(0);u=e;t=p;return u|0}function kc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=t;t=t+16|0;f=g;a=ic(a,b,c,d,f)|0;if(!a){db(f,e);a=0}t=g;return a|0}function lc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=t;t=t+16|0;f=e;eb(c,f);d=jc(a,b,f,d)|0;t=e;return d|0}function mc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=t;t=t+32|0;e=g+12|0;f=g;if((ic(a,b,a,b,e)|0)==0?(ic(a,b,c,d,f)|0)==0:0)a=cb(e,f)|0;else a=-1;t=g;return a|0}function nc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=t;t=t+32|0;e=g+12|0;f=g;if((ic(a,b,a,b,e)|0)==0?(ic(a,b,c,d,f)|0)==0:0)a=cb(e,f)|0;else a=-1;t=g;return (a>>>31^1)+a|0}function oc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,u=0,v=0,w=0,x=0,y=0.0;x=t;t=t+48|0;g=x+24|0;h=x+12|0;w=x;if((ic(a,b,a,b,g)|0)==0?(ic(a,b,c,d,h)|0)==0:0){v=cb(g,h)|0;if((v|0)<0){w=v;t=x;return w|0};f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;ic(a,b,a,b,g)|0;ic(a,b,c,d,h)|0;fb(g);fb(h);if(!v){d=g+4|0;n=g+8|0;r=d;s=n;u=g;c=f[g>>2]|0;d=f[d>>2]|0;g=f[n>>2]|0;p=0.0;q=0.0;o=0.0}else{l=f[g>>2]|0;o=+(v|0);r=g+4|0;m=f[r>>2]|0;s=g+8|0;n=f[s>>2]|0;u=g;c=l;d=m;g=n;p=+((f[h>>2]|0)-l|0)/o;q=+((f[h+4>>2]|0)-m|0)/o;o=+((f[h+8>>2]|0)-n|0)/o}f[w>>2]=c;n=w+4|0;f[n>>2]=d;m=w+8|0;f[m>>2]=g;l=0;while(1){j=+(l|0);y=p*j+ +(c|0);i=q*j+ +(f[r>>2]|0);j=o*j+ +(f[s>>2]|0);d=~~+_c(+y);h=~~+_c(+i);c=~~+_c(+j);y=+H(+(+(d|0)-y));i=+H(+(+(h|0)-i));j=+H(+(+(c|0)-j));do if(!(y>i&y>j)){k=0-d|0;if(i>j){g=k-c|0;break}else{g=h;c=k-h|0;break}}else{d=0-(h+c)|0;g=h}while(0);f[w>>2]=d;f[n>>2]=g;f[m>>2]=c;gb(w);jc(a,b,w,e+(l<<3)|0)|0;if((l|0)==(v|0))break;l=l+1|0;c=f[u>>2]|0}w=0;t=x;return w|0}w=-1;t=x;return w|0}function pc(a,b){a=a|0;b=b|0;var c=0;if(!b){c=1;return c|0}c=a;a=1;do{a=U((b&1|0)==0?1:c,a)|0;b=b>>1;c=U(c,c)|0}while((b|0)!=0);return a|0}function qc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0.0;if(!(Ja(b,c)|0)){m=0;return m|0}b=Ha(b)|0;n=+p[c>>3];d=+p[c+8>>3];d=b&d<0.0?d+6.283185307179586:d;m=f[a>>2]|0;if((m|0)<=0){m=0;return m|0}l=f[a+4>>2]|0;if(b){b=0;c=-1;a=0;a:while(1){k=a;while(1){h=+p[l+(k<<4)>>3];j=+p[l+(k<<4)+8>>3];a=(c+2|0)%(m|0)|0;g=+p[l+(a<<4)>>3];e=+p[l+(a<<4)+8>>3];if(h>g){i=h;h=j}else{i=g;g=h;h=e;e=j}if(!(ni))break;c=k+1|0;if((c|0)<(m|0)){a=k;k=c;c=a}else{c=22;break a}}j=e<0.0?e+6.283185307179586:e;h=h<0.0?h+6.283185307179586:h;d=h==d|j==d?d+-2.220446049250313e-16:d;j=j+(n-g)/(i-g)*(h-j);if((j<0.0?j+6.283185307179586:j)>d)b=b^1;a=k+1|0;if((a|0)>=(m|0)){c=22;break}else c=k}if((c|0)==22)return b|0}else{b=0;c=-1;a=0;b:while(1){k=a;while(1){h=+p[l+(k<<4)>>3];j=+p[l+(k<<4)+8>>3];a=(c+2|0)%(m|0)|0;g=+p[l+(a<<4)>>3];e=+p[l+(a<<4)+8>>3];if(h>g){i=h;h=j}else{i=g;g=h;h=e;e=j}if(!(ni))break;c=k+1|0;if((c|0)<(m|0)){a=k;k=c;c=a}else{c=22;break b}}d=h==d|e==d?d+-2.220446049250313e-16:d;if(e+(n-g)/(i-g)*(h-e)>d)b=b^1;a=k+1|0;if((a|0)>=(m|0)){c=22;break}else c=k}if((c|0)==22)return b|0}return 0}function rc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0;q=f[a>>2]|0;if(!q){f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[b+24>>2]=0;f[b+28>>2]=0;return}r=b+8|0;p[r>>3]=1797693134862315708145274.0e284;s=b+24|0;p[s>>3]=1797693134862315708145274.0e284;p[b>>3]=-1797693134862315708145274.0e284;t=b+16|0;p[t>>3]=-1797693134862315708145274.0e284;if((q|0)<=0)return;n=f[a+4>>2]|0;k=1797693134862315708145274.0e284;l=-1797693134862315708145274.0e284;m=0;a=-1;g=1797693134862315708145274.0e284;h=1797693134862315708145274.0e284;j=-1797693134862315708145274.0e284;d=-1797693134862315708145274.0e284;o=0;while(1){c=+p[n+(o<<4)>>3];i=+p[n+(o<<4)+8>>3];a=a+2|0;e=+p[n+(((a|0)==(q|0)?0:a)<<4)+8>>3];if(c>3]=c;g=c}if(i>3]=i;h=i}if(c>j)p[b>>3]=c;else c=j;if(i>d){p[t>>3]=i;d=i}k=i>0.0&il?i:l;m=m|+H(+(i-e))>3.141592653589793;a=o+1|0;if((a|0)==(q|0))break;else{u=o;j=c;o=a;a=u}}if(!m)return;p[t>>3]=l;p[s>>3]=k;return}function sc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;q=f[a>>2]|0;if(q){r=b+8|0;p[r>>3]=1797693134862315708145274.0e284;s=b+24|0;p[s>>3]=1797693134862315708145274.0e284;p[b>>3]=-1797693134862315708145274.0e284;t=b+16|0;p[t>>3]=-1797693134862315708145274.0e284;if((q|0)>0){e=f[a+4>>2]|0;n=1797693134862315708145274.0e284;o=-1797693134862315708145274.0e284;d=0;c=-1;j=1797693134862315708145274.0e284;k=1797693134862315708145274.0e284;m=-1797693134862315708145274.0e284;h=-1797693134862315708145274.0e284;u=0;while(1){g=+p[e+(u<<4)>>3];l=+p[e+(u<<4)+8>>3];y=c+2|0;i=+p[e+(((y|0)==(q|0)?0:y)<<4)+8>>3];if(g>3]=g;j=g}if(l>3]=l;k=l}if(g>m)p[b>>3]=g;else g=m;if(l>h){p[t>>3]=l;h=l}n=l>0.0&lo?l:o;d=d|+H(+(l-i))>3.141592653589793;c=u+1|0;if((c|0)==(q|0))break;else{y=u;m=g;u=c;c=y}}if(d){p[t>>3]=o;p[s>>3]=n}}}else{f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[b+24>>2]=0;f[b+28>>2]=0}y=a+8|0;c=f[y>>2]|0;if((c|0)<=0)return;x=a+12|0;w=0;do{e=f[x>>2]|0;d=w;w=w+1|0;s=b+(w<<5)|0;t=f[e+(d<<3)>>2]|0;if(t){u=b+(w<<5)+8|0;p[u>>3]=1797693134862315708145274.0e284;a=b+(w<<5)+24|0;p[a>>3]=1797693134862315708145274.0e284;p[s>>3]=-1797693134862315708145274.0e284;v=b+(w<<5)+16|0;p[v>>3]=-1797693134862315708145274.0e284;if((t|0)>0){q=f[e+(d<<3)+4>>2]|0;n=1797693134862315708145274.0e284;o=-1797693134862315708145274.0e284;e=0;d=-1;r=0;j=1797693134862315708145274.0e284;k=1797693134862315708145274.0e284;l=-1797693134862315708145274.0e284;h=-1797693134862315708145274.0e284;while(1){g=+p[q+(r<<4)>>3];m=+p[q+(r<<4)+8>>3];d=d+2|0;i=+p[q+(((d|0)==(t|0)?0:d)<<4)+8>>3];if(g>3]=g;j=g}if(m>3]=m;k=m}if(g>l)p[s>>3]=g;else g=l;if(m>h){p[v>>3]=m;h=m}n=m>0.0&mo?m:o;e=e|+H(+(m-i))>3.141592653589793;d=r+1|0;if((d|0)==(t|0))break;else{z=r;r=d;l=g;d=z}}if(e){p[v>>3]=o;p[a>>3]=n}}}else{f[s>>2]=0;f[s+4>>2]=0;f[s+8>>2]=0;f[s+12>>2]=0;f[s+16>>2]=0;f[s+20>>2]=0;f[s+24>>2]=0;f[s+28>>2]=0;c=f[y>>2]|0}}while((w|0)<(c|0));return}function tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;if(!(qc(a,b,c)|0)){e=0;return e|0}e=a+8|0;if((f[e>>2]|0)<=0){e=1;return e|0}d=a+12|0;a=0;while(1){g=a;a=a+1|0;if(qc((f[d>>2]|0)+(g<<3)|0,b+(a<<5)|0,c)|0){a=0;d=6;break}if((a|0)>=(f[e>>2]|0)){a=1;d=6;break}}if((d|0)==6)return a|0;return 0}function uc(){return 8}function vc(){return 16}function wc(){return 168}function xc(){return 8}function yc(){return 16}function zc(){return 12}function Ac(){return 8}function Bc(a){a=a|0;var b=0.0,c=0.0;c=+p[a>>3];b=+p[a+8>>3];return +(+I(+(c*c+b*b)))}function Cc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;j=+p[a>>3];i=+p[b>>3]-j;h=+p[a+8>>3];g=+p[b+8>>3]-h;l=+p[c>>3];f=+p[d>>3]-l;m=+p[c+8>>3];k=+p[d+8>>3]-m;f=(f*(h-m)-(j-l)*k)/(i*k-g*f);p[e>>3]=j+i*f;p[e+8>>3]=h+g*f;return}function Dc(a,b){a=a|0;b=b|0;if(!(+p[a>>3]==+p[b>>3])){b=0;return b|0}b=+p[a+8>>3]==+p[b+8>>3];return b|0}function Ec(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;e=+p[a>>3]-+p[b>>3];d=+p[a+8>>3]-+p[b+8>>3];c=+p[a+16>>3]-+p[b+16>>3];return +(e*e+d*d+c*c)}function Fc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;c=+p[a>>3];d=+K(+c);c=+L(+c);p[b+16>>3]=c;c=+p[a+8>>3];e=d*+K(+c);p[b>>3]=e;c=d*+L(+c);p[b+8>>3]=c;return}function Gc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)>0){d=Pc(b,4)|0;f[a>>2]=d;if(!d)da(22933,22956,37,22970)}else f[a>>2]=0;f[a+4>>2]=b;f[a+8>>2]=0;f[a+12>>2]=c;return}function Hc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;e=a+4|0;g=a+12|0;h=a+8|0;a:while(1){c=f[e>>2]|0;b=0;while(1){if((b|0)>=(c|0))break a;d=f[a>>2]|0;i=f[d+(b<<2)>>2]|0;if(!i)b=b+1|0;else break}b=d+(~~(+H(+(+J(10.0,+(+(15-(f[g>>2]|0)|0)))*(+p[i>>3]+ +p[i+8>>3])))%+(c|0))>>>0<<2)|0;c=f[b>>2]|0;b:do if(c|0){d=i+32|0;if((c|0)==(i|0))f[b>>2]=f[d>>2];else{c=c+32|0;b=f[c>>2]|0;if(!b)break;while(1){if((b|0)==(i|0))break;c=b+32|0;b=f[c>>2]|0;if(!b)break b}f[c>>2]=f[d>>2]}Oc(i);f[h>>2]=(f[h>>2]|0)+-1}while(0)}Oc(f[a>>2]|0);return}function Ic(a){a=a|0;var b=0,c=0,d=0;d=f[a+4>>2]|0;c=0;while(1){if((c|0)>=(d|0)){b=0;c=4;break}b=f[(f[a>>2]|0)+(c<<2)>>2]|0;if(!b)c=c+1|0;else{c=4;break}}if((c|0)==4)return b|0;return 0}function Jc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=~~(+H(+(+J(10.0,+(+(15-(f[a+12>>2]|0)|0)))*(+p[b>>3]+ +p[b+8>>3])))%+(f[a+4>>2]|0))>>>0;c=(f[a>>2]|0)+(c<<2)|0;d=f[c>>2]|0;if(!d){g=1;return g|0}g=b+32|0;do if((d|0)!=(b|0)){c=f[d+32>>2]|0;if(!c){g=1;return g|0}e=c;while(1){if((e|0)==(b|0)){e=8;break}c=f[e+32>>2]|0;if(!c){c=1;e=10;break}else{d=e;e=c}}if((e|0)==8){f[d+32>>2]=f[g>>2];break}else if((e|0)==10)return c|0}else f[c>>2]=f[g>>2];while(0);Oc(b);g=a+8|0;f[g>>2]=(f[g>>2]|0)+-1;g=0;return g|0}function Kc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;g=Nc(40)|0;if(!g)da(22986,22956,95,22999);f[g>>2]=f[b>>2];f[g+4>>2]=f[b+4>>2];f[g+8>>2]=f[b+8>>2];f[g+12>>2]=f[b+12>>2];e=g+16|0;f[e>>2]=f[c>>2];f[e+4>>2]=f[c+4>>2];f[e+8>>2]=f[c+8>>2];f[e+12>>2]=f[c+12>>2];f[g+32>>2]=0;e=~~(+H(+(+J(10.0,+(+(15-(f[a+12>>2]|0)|0)))*(+p[b>>3]+ +p[b+8>>3])))%+(f[a+4>>2]|0))>>>0;e=(f[a>>2]|0)+(e<<2)|0;d=f[e>>2]|0;do if(!d)f[e>>2]=g;else{while(1){if(qb(d,b)|0?qb(d+16|0,c)|0:0)break;e=f[d+32>>2]|0;d=(e|0)==0?d:e;if(!(f[d+32>>2]|0)){h=10;break}}if((h|0)==10){f[d+32>>2]=g;break}Oc(g);h=d;return h|0}while(0);h=a+8|0;f[h>>2]=(f[h>>2]|0)+1;h=g;return h|0}function Lc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=~~(+H(+(+J(10.0,+(+(15-(f[a+12>>2]|0)|0)))*(+p[b>>3]+ +p[b+8>>3])))%+(f[a+4>>2]|0))>>>0;e=f[(f[a>>2]|0)+(e<<2)>>2]|0;if(!e){c=0;return c|0}if(!c){a=e;while(1){if(qb(a,b)|0){d=10;break}a=f[a+32>>2]|0;if(!a){a=0;d=10;break}}if((d|0)==10)return a|0}a=e;while(1){if(qb(a,b)|0?qb(a+16|0,c)|0:0){d=10;break}a=f[a+32>>2]|0;if(!a){a=0;d=10;break}}if((d|0)==10)return a|0;return 0}function Mc(a,b){a=a|0;b=b|0;var c=0;c=~~(+H(+(+J(10.0,+(+(15-(f[a+12>>2]|0)|0)))*(+p[b>>3]+ +p[b+8>>3])))%+(f[a+4>>2]|0))>>>0;a=f[(f[a>>2]|0)+(c<<2)>>2]|0;if(!a){c=0;return c|0}while(1){if(qb(a,b)|0){b=5;break}a=f[a+32>>2]|0;if(!a){a=0;b=5;break}}if((b|0)==5)return a|0;return 0}function Nc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0;x=t;t=t+16|0;n=x;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=f[5756]|0;c=m>>>a;if(c&3|0){b=(c&1^1)+a|0;a=23064+(b<<1<<2)|0;c=a+8|0;d=f[c>>2]|0;e=d+8|0;g=f[e>>2]|0;if((g|0)==(a|0))f[5756]=m&~(1<>2]=a;f[c>>2]=g}w=b<<3;f[d+4>>2]=w|3;w=d+w+4|0;f[w>>2]=f[w>>2]|1;w=e;t=x;return w|0}l=f[5758]|0;if(k>>>0>l>>>0){if(c|0){b=2<>>12&16;b=b>>>i;c=b>>>5&8;b=b>>>c;g=b>>>2&4;b=b>>>g;a=b>>>1&2;b=b>>>a;d=b>>>1&1;d=(c|i|g|a|d)+(b>>>d)|0;b=23064+(d<<1<<2)|0;a=b+8|0;g=f[a>>2]|0;i=g+8|0;c=f[i>>2]|0;if((c|0)==(b|0)){a=m&~(1<>2]=b;f[a>>2]=c;a=m}w=d<<3;h=w-k|0;f[g+4>>2]=k|3;e=g+k|0;f[e+4>>2]=h|1;f[g+w>>2]=h;if(l|0){d=f[5761]|0;b=l>>>3;c=23064+(b<<1<<2)|0;b=1<>2]|0}f[a>>2]=d;f[b+12>>2]=d;f[d+8>>2]=b;f[d+12>>2]=c}f[5758]=h;f[5761]=e;w=i;t=x;return w|0}g=f[5757]|0;if(g){c=(g&0-g)+-1|0;e=c>>>12&16;c=c>>>e;d=c>>>5&8;c=c>>>d;h=c>>>2&4;c=c>>>h;i=c>>>1&2;c=c>>>i;j=c>>>1&1;j=f[23328+((d|e|h|i|j)+(c>>>j)<<2)>>2]|0;c=j;i=j;j=(f[j+4>>2]&-8)-k|0;while(1){a=f[c+16>>2]|0;if(!a){a=f[c+20>>2]|0;if(!a)break}h=(f[a+4>>2]&-8)-k|0;e=h>>>0>>0;c=a;i=e?a:i;j=e?h:j}h=i+k|0;if(h>>>0>i>>>0){e=f[i+24>>2]|0;b=f[i+12>>2]|0;do if((b|0)==(i|0)){a=i+20|0;b=f[a>>2]|0;if(!b){a=i+16|0;b=f[a>>2]|0;if(!b){c=0;break}}while(1){d=b+20|0;c=f[d>>2]|0;if(!c){d=b+16|0;c=f[d>>2]|0;if(!c)break;else{b=c;a=d}}else{b=c;a=d}}f[a>>2]=0;c=b}else{c=f[i+8>>2]|0;f[c+12>>2]=b;f[b+8>>2]=c;c=b}while(0);do if(e|0){b=f[i+28>>2]|0;a=23328+(b<<2)|0;if((i|0)==(f[a>>2]|0)){f[a>>2]=c;if(!c){f[5757]=g&~(1<>2]|0)==(i|0)?w:e+20|0)>>2]=c;if(!c)break}f[c+24>>2]=e;b=f[i+16>>2]|0;if(b|0){f[c+16>>2]=b;f[b+24>>2]=c}b=f[i+20>>2]|0;if(b|0){f[c+20>>2]=b;f[b+24>>2]=c}}while(0);if(j>>>0<16){w=j+k|0;f[i+4>>2]=w|3;w=i+w+4|0;f[w>>2]=f[w>>2]|1}else{f[i+4>>2]=k|3;f[h+4>>2]=j|1;f[h+j>>2]=j;if(l|0){d=f[5761]|0;b=l>>>3;c=23064+(b<<1<<2)|0;b=1<>2]|0}f[a>>2]=d;f[b+12>>2]=d;f[d+8>>2]=b;f[d+12>>2]=c}f[5758]=j;f[5761]=h}w=i+8|0;t=x;return w|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;d=f[5757]|0;if(d){e=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{m=(a+1048320|0)>>>16&8;q=a<>>16&4;q=q<>>16&2;j=14-(i|m|j)+(q<>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;c=f[23328+(j<<2)>>2]|0;a:do if(!c){c=0;a=0;q=61}else{a=0;i=k<<((j|0)==31?0:25-(j>>>1)|0);g=0;while(1){h=(f[c+4>>2]&-8)-k|0;if(h>>>0>>0)if(!h){a=c;e=0;q=65;break a}else{a=c;e=h}q=f[c+20>>2]|0;c=f[c+16+(i>>>31<<2)>>2]|0;g=(q|0)==0|(q|0)==(c|0)?g:q;if(!c){c=g;q=61;break}else i=i<<1}}while(0);if((q|0)==61){if((c|0)==0&(a|0)==0){a=2<>>12&16;m=m>>>h;g=m>>>5&8;m=m>>>g;i=m>>>2&4;m=m>>>i;j=m>>>1&2;m=m>>>j;c=m>>>1&1;a=0;c=f[23328+((g|h|i|j|c)+(m>>>c)<<2)>>2]|0}if(!c){i=a;h=e}else q=65}if((q|0)==65){g=c;while(1){m=(f[g+4>>2]&-8)-k|0;c=m>>>0>>0;e=c?m:e;a=c?g:a;c=f[g+16>>2]|0;if(!c)c=f[g+20>>2]|0;if(!c){i=a;h=e;break}else g=c}}if(((i|0)!=0?h>>>0<((f[5758]|0)-k|0)>>>0:0)?(l=i+k|0,l>>>0>i>>>0):0){g=f[i+24>>2]|0;b=f[i+12>>2]|0;do if((b|0)==(i|0)){a=i+20|0;b=f[a>>2]|0;if(!b){a=i+16|0;b=f[a>>2]|0;if(!b){b=0;break}}while(1){e=b+20|0;c=f[e>>2]|0;if(!c){e=b+16|0;c=f[e>>2]|0;if(!c)break;else{b=c;a=e}}else{b=c;a=e}}f[a>>2]=0}else{w=f[i+8>>2]|0;f[w+12>>2]=b;f[b+8>>2]=w}while(0);do if(g){a=f[i+28>>2]|0;c=23328+(a<<2)|0;if((i|0)==(f[c>>2]|0)){f[c>>2]=b;if(!b){d=d&~(1<>2]|0)==(i|0)?w:g+20|0)>>2]=b;if(!b)break}f[b+24>>2]=g;a=f[i+16>>2]|0;if(a|0){f[b+16>>2]=a;f[a+24>>2]=b}a=f[i+20>>2]|0;if(a){f[b+20>>2]=a;f[a+24>>2]=b}}while(0);b:do if(h>>>0<16){w=h+k|0;f[i+4>>2]=w|3;w=i+w+4|0;f[w>>2]=f[w>>2]|1}else{f[i+4>>2]=k|3;f[l+4>>2]=h|1;f[l+h>>2]=h;b=h>>>3;if(h>>>0<256){c=23064+(b<<1<<2)|0;a=f[5756]|0;b=1<>2]|0}f[a>>2]=l;f[b+12>>2]=l;f[l+8>>2]=b;f[l+12>>2]=c;break}b=h>>>8;if(b)if(h>>>0>16777215)c=31;else{v=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;c=14-(u|v|c)+(w<>>15)|0;c=h>>>(c+7|0)&1|c<<1}else c=0;b=23328+(c<<2)|0;f[l+28>>2]=c;a=l+16|0;f[a+4>>2]=0;f[a>>2]=0;a=1<>2]=l;f[l+24>>2]=b;f[l+12>>2]=l;f[l+8>>2]=l;break}b=f[b>>2]|0;c:do if((f[b+4>>2]&-8|0)!=(h|0)){d=h<<((c|0)==31?0:25-(c>>>1)|0);while(1){c=b+16+(d>>>31<<2)|0;a=f[c>>2]|0;if(!a)break;if((f[a+4>>2]&-8|0)==(h|0)){b=a;break c}else{d=d<<1;b=a}}f[c>>2]=l;f[l+24>>2]=b;f[l+12>>2]=l;f[l+8>>2]=l;break b}while(0);v=b+8|0;w=f[v>>2]|0;f[w+12>>2]=l;f[v>>2]=l;f[l+8>>2]=w;f[l+12>>2]=b;f[l+24>>2]=0}while(0);w=i+8|0;t=x;return w|0}else m=k}else m=k}else m=-1;while(0);c=f[5758]|0;if(c>>>0>=m>>>0){b=c-m|0;a=f[5761]|0;if(b>>>0>15){w=a+m|0;f[5761]=w;f[5758]=b;f[w+4>>2]=b|1;f[a+c>>2]=b;f[a+4>>2]=m|3}else{f[5758]=0;f[5761]=0;f[a+4>>2]=c|3;w=a+c+4|0;f[w>>2]=f[w>>2]|1}w=a+8|0;t=x;return w|0}h=f[5759]|0;if(h>>>0>m>>>0){u=h-m|0;f[5759]=u;w=f[5762]|0;v=w+m|0;f[5762]=v;f[v+4>>2]=u|1;f[w+4>>2]=m|3;w=w+8|0;t=x;return w|0}if(!(f[5874]|0)){f[5876]=4096;f[5875]=4096;f[5877]=-1;f[5878]=-1;f[5879]=0;f[5867]=0;f[5874]=n&-16^1431655768;a=4096}else a=f[5876]|0;i=m+48|0;j=m+47|0;g=a+j|0;e=0-a|0;k=g&e;if(k>>>0<=m>>>0){w=0;t=x;return w|0}a=f[5866]|0;if(a|0?(l=f[5864]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){w=0;t=x;return w|0}d:do if(!(f[5867]&4)){c=f[5762]|0;e:do if(c){d=23472;while(1){n=f[d>>2]|0;if(n>>>0<=c>>>0?(n+(f[d+4>>2]|0)|0)>>>0>c>>>0:0)break;a=f[d+8>>2]|0;if(!a){q=128;break e}else d=a}b=g-h&e;if(b>>>0<2147483647){a=cd(b|0)|0;if((a|0)==((f[d>>2]|0)+(f[d+4>>2]|0)|0)){if((a|0)!=(-1|0)){h=b;g=a;q=145;break d}}else{d=a;q=136}}else b=0}else q=128;while(0);do if((q|0)==128){c=cd(0)|0;if((c|0)!=(-1|0)?(b=c,o=f[5875]|0,p=o+-1|0,b=((p&b|0)==0?0:(p+b&0-o)-b|0)+k|0,o=f[5864]|0,p=b+o|0,b>>>0>m>>>0&b>>>0<2147483647):0){n=f[5866]|0;if(n|0?p>>>0<=o>>>0|p>>>0>n>>>0:0){b=0;break}a=cd(b|0)|0;if((a|0)==(c|0)){h=b;g=c;q=145;break d}else{d=a;q=136}}else b=0}while(0);do if((q|0)==136){c=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(d|0)!=(-1|0))))if((d|0)==(-1|0)){b=0;break}else{h=b;g=d;q=145;break d}a=f[5876]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=b;g=d;q=145;break d}if((cd(a|0)|0)==(-1|0)){cd(c|0)|0;b=0;break}else{h=a+b|0;g=d;q=145;break d}}while(0);f[5867]=f[5867]|4;q=143}else{b=0;q=143}while(0);if(((q|0)==143?k>>>0<2147483647:0)?(u=cd(k|0)|0,p=cd(0)|0,r=p-u|0,s=r>>>0>(m+40|0)>>>0,!((u|0)==(-1|0)|s^1|u>>>0

>>0&((u|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=s?r:b;g=u;q=145}if((q|0)==145){b=(f[5864]|0)+h|0;f[5864]=b;if(b>>>0>(f[5865]|0)>>>0)f[5865]=b;j=f[5762]|0;f:do if(j){b=23472;while(1){a=f[b>>2]|0;c=f[b+4>>2]|0;if((g|0)==(a+c|0)){q=154;break}d=f[b+8>>2]|0;if(!d)break;else b=d}if(((q|0)==154?(v=b+4|0,(f[b+12>>2]&8|0)==0):0)?g>>>0>j>>>0&a>>>0<=j>>>0:0){f[v>>2]=c+h;w=(f[5759]|0)+h|0;u=j+8|0;u=(u&7|0)==0?0:0-u&7;v=j+u|0;u=w-u|0;f[5762]=v;f[5759]=u;f[v+4>>2]=u|1;f[j+w+4>>2]=40;f[5763]=f[5878];break}if(g>>>0<(f[5760]|0)>>>0)f[5760]=g;c=g+h|0;b=23472;while(1){if((f[b>>2]|0)==(c|0)){q=162;break}a=f[b+8>>2]|0;if(!a)break;else b=a}if((q|0)==162?(f[b+12>>2]&8|0)==0:0){f[b>>2]=g;l=b+4|0;f[l>>2]=(f[l>>2]|0)+h;l=g+8|0;l=g+((l&7|0)==0?0:0-l&7)|0;b=c+8|0;b=c+((b&7|0)==0?0:0-b&7)|0;k=l+m|0;i=b-l-m|0;f[l+4>>2]=m|3;g:do if((j|0)==(b|0)){w=(f[5759]|0)+i|0;f[5759]=w;f[5762]=k;f[k+4>>2]=w|1}else{if((f[5761]|0)==(b|0)){w=(f[5758]|0)+i|0;f[5758]=w;f[5761]=k;f[k+4>>2]=w|1;f[k+w>>2]=w;break}a=f[b+4>>2]|0;if((a&3|0)==1){h=a&-8;d=a>>>3;h:do if(a>>>0<256){a=f[b+8>>2]|0;c=f[b+12>>2]|0;if((c|0)==(a|0)){f[5756]=f[5756]&~(1<>2]=c;f[c+8>>2]=a;break}}else{g=f[b+24>>2]|0;a=f[b+12>>2]|0;do if((a|0)==(b|0)){c=b+16|0;d=c+4|0;a=f[d>>2]|0;if(!a){a=f[c>>2]|0;if(!a){a=0;break}}else c=d;while(1){e=a+20|0;d=f[e>>2]|0;if(!d){e=a+16|0;d=f[e>>2]|0;if(!d)break;else{a=d;c=e}}else{a=d;c=e}}f[c>>2]=0}else{w=f[b+8>>2]|0;f[w+12>>2]=a;f[a+8>>2]=w}while(0);if(!g)break;c=f[b+28>>2]|0;d=23328+(c<<2)|0;do if((f[d>>2]|0)!=(b|0)){w=g+16|0;f[((f[w>>2]|0)==(b|0)?w:g+20|0)>>2]=a;if(!a)break h}else{f[d>>2]=a;if(a|0)break;f[5757]=f[5757]&~(1<>2]=g;c=b+16|0;d=f[c>>2]|0;if(d|0){f[a+16>>2]=d;f[d+24>>2]=a}c=f[c+4>>2]|0;if(!c)break;f[a+20>>2]=c;f[c+24>>2]=a}while(0);b=b+h|0;e=h+i|0}else e=i;b=b+4|0;f[b>>2]=f[b>>2]&-2;f[k+4>>2]=e|1;f[k+e>>2]=e;b=e>>>3;if(e>>>0<256){c=23064+(b<<1<<2)|0;a=f[5756]|0;b=1<>2]|0}f[a>>2]=k;f[b+12>>2]=k;f[k+8>>2]=b;f[k+12>>2]=c;break}b=e>>>8;do if(!b)d=0;else{if(e>>>0>16777215){d=31;break}v=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;d=14-(u|v|d)+(w<>>15)|0;d=e>>>(d+7|0)&1|d<<1}while(0);b=23328+(d<<2)|0;f[k+28>>2]=d;a=k+16|0;f[a+4>>2]=0;f[a>>2]=0;a=f[5757]|0;c=1<>2]=k;f[k+24>>2]=b;f[k+12>>2]=k;f[k+8>>2]=k;break}b=f[b>>2]|0;i:do if((f[b+4>>2]&-8|0)!=(e|0)){d=e<<((d|0)==31?0:25-(d>>>1)|0);while(1){c=b+16+(d>>>31<<2)|0;a=f[c>>2]|0;if(!a)break;if((f[a+4>>2]&-8|0)==(e|0)){b=a;break i}else{d=d<<1;b=a}}f[c>>2]=k;f[k+24>>2]=b;f[k+12>>2]=k;f[k+8>>2]=k;break g}while(0);v=b+8|0;w=f[v>>2]|0;f[w+12>>2]=k;f[v>>2]=k;f[k+8>>2]=w;f[k+12>>2]=b;f[k+24>>2]=0}while(0);w=l+8|0;t=x;return w|0}b=23472;while(1){a=f[b>>2]|0;if(a>>>0<=j>>>0?(w=a+(f[b+4>>2]|0)|0,w>>>0>j>>>0):0)break;b=f[b+8>>2]|0}e=w+-47|0;a=e+8|0;a=e+((a&7|0)==0?0:0-a&7)|0;e=j+16|0;a=a>>>0>>0?j:a;b=a+8|0;c=h+-40|0;u=g+8|0;u=(u&7|0)==0?0:0-u&7;v=g+u|0;u=c-u|0;f[5762]=v;f[5759]=u;f[v+4>>2]=u|1;f[g+c+4>>2]=40;f[5763]=f[5878];c=a+4|0;f[c>>2]=27;f[b>>2]=f[5868];f[b+4>>2]=f[5869];f[b+8>>2]=f[5870];f[b+12>>2]=f[5871];f[5868]=g;f[5869]=h;f[5871]=0;f[5870]=b;b=a+24|0;do{v=b;b=b+4|0;f[b>>2]=7}while((v+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;f[c>>2]=f[c>>2]&-2;f[j+4>>2]=g|1;f[a>>2]=g;b=g>>>3;if(g>>>0<256){c=23064+(b<<1<<2)|0;a=f[5756]|0;b=1<>2]|0}f[a>>2]=j;f[b+12>>2]=j;f[j+8>>2]=b;f[j+12>>2]=c;break}b=g>>>8;if(b)if(g>>>0>16777215)d=31;else{v=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;d=14-(u|v|d)+(w<>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;c=23328+(d<<2)|0;f[j+28>>2]=d;f[j+20>>2]=0;f[e>>2]=0;b=f[5757]|0;a=1<>2]=j;f[j+24>>2]=c;f[j+12>>2]=j;f[j+8>>2]=j;break}b=f[c>>2]|0;j:do if((f[b+4>>2]&-8|0)!=(g|0)){d=g<<((d|0)==31?0:25-(d>>>1)|0);while(1){c=b+16+(d>>>31<<2)|0;a=f[c>>2]|0;if(!a)break;if((f[a+4>>2]&-8|0)==(g|0)){b=a;break j}else{d=d<<1;b=a}}f[c>>2]=j;f[j+24>>2]=b;f[j+12>>2]=j;f[j+8>>2]=j;break f}while(0);v=b+8|0;w=f[v>>2]|0;f[w+12>>2]=j;f[v>>2]=j;f[j+8>>2]=w;f[j+12>>2]=b;f[j+24>>2]=0}}else{w=f[5760]|0;if((w|0)==0|g>>>0>>0)f[5760]=g;f[5868]=g;f[5869]=h;f[5871]=0;f[5765]=f[5874];f[5764]=-1;f[5769]=23064;f[5768]=23064;f[5771]=23072;f[5770]=23072;f[5773]=23080;f[5772]=23080;f[5775]=23088;f[5774]=23088;f[5777]=23096;f[5776]=23096;f[5779]=23104;f[5778]=23104;f[5781]=23112;f[5780]=23112;f[5783]=23120;f[5782]=23120;f[5785]=23128;f[5784]=23128;f[5787]=23136;f[5786]=23136;f[5789]=23144;f[5788]=23144;f[5791]=23152;f[5790]=23152;f[5793]=23160;f[5792]=23160;f[5795]=23168;f[5794]=23168;f[5797]=23176;f[5796]=23176;f[5799]=23184;f[5798]=23184;f[5801]=23192;f[5800]=23192;f[5803]=23200;f[5802]=23200;f[5805]=23208;f[5804]=23208;f[5807]=23216;f[5806]=23216;f[5809]=23224;f[5808]=23224;f[5811]=23232;f[5810]=23232;f[5813]=23240;f[5812]=23240;f[5815]=23248;f[5814]=23248;f[5817]=23256;f[5816]=23256;f[5819]=23264;f[5818]=23264;f[5821]=23272;f[5820]=23272;f[5823]=23280;f[5822]=23280;f[5825]=23288;f[5824]=23288;f[5827]=23296;f[5826]=23296;f[5829]=23304;f[5828]=23304;f[5831]=23312;f[5830]=23312;w=h+-40|0;u=g+8|0;u=(u&7|0)==0?0:0-u&7;v=g+u|0;u=w-u|0;f[5762]=v;f[5759]=u;f[v+4>>2]=u|1;f[g+w+4>>2]=40;f[5763]=f[5878]}while(0);b=f[5759]|0;if(b>>>0>m>>>0){u=b-m|0;f[5759]=u;w=f[5762]|0;v=w+m|0;f[5762]=v;f[v+4>>2]=u|1;f[w+4>>2]=m|3;w=w+8|0;t=x;return w|0}}w=Qc()|0;f[w>>2]=12;w=0;t=x;return w|0}function Oc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;if(!a)return;c=a+-8|0;e=f[5760]|0;a=f[a+-4>>2]|0;b=a&-8;j=c+b|0;do if(!(a&1)){d=f[c>>2]|0;if(!(a&3))return;h=c+(0-d)|0;g=d+b|0;if(h>>>0>>0)return;if((f[5761]|0)==(h|0)){a=j+4|0;b=f[a>>2]|0;if((b&3|0)!=3){i=h;b=g;break}f[5758]=g;f[a>>2]=b&-2;f[h+4>>2]=g|1;f[h+g>>2]=g;return}c=d>>>3;if(d>>>0<256){a=f[h+8>>2]|0;b=f[h+12>>2]|0;if((b|0)==(a|0)){f[5756]=f[5756]&~(1<>2]=b;f[b+8>>2]=a;i=h;b=g;break}}e=f[h+24>>2]|0;a=f[h+12>>2]|0;do if((a|0)==(h|0)){b=h+16|0;c=b+4|0;a=f[c>>2]|0;if(!a){a=f[b>>2]|0;if(!a){a=0;break}}else b=c;while(1){d=a+20|0;c=f[d>>2]|0;if(!c){d=a+16|0;c=f[d>>2]|0;if(!c)break;else{a=c;b=d}}else{a=c;b=d}}f[b>>2]=0}else{i=f[h+8>>2]|0;f[i+12>>2]=a;f[a+8>>2]=i}while(0);if(e){b=f[h+28>>2]|0;c=23328+(b<<2)|0;if((f[c>>2]|0)==(h|0)){f[c>>2]=a;if(!a){f[5757]=f[5757]&~(1<>2]|0)==(h|0)?i:e+20|0)>>2]=a;if(!a){i=h;b=g;break}}f[a+24>>2]=e;b=h+16|0;c=f[b>>2]|0;if(c|0){f[a+16>>2]=c;f[c+24>>2]=a}b=f[b+4>>2]|0;if(b){f[a+20>>2]=b;f[b+24>>2]=a;i=h;b=g}else{i=h;b=g}}else{i=h;b=g}}else{i=c;h=c}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;d=f[a>>2]|0;if(!(d&1))return;if(!(d&2)){if((f[5762]|0)==(j|0)){j=(f[5759]|0)+b|0;f[5759]=j;f[5762]=i;f[i+4>>2]=j|1;if((i|0)!=(f[5761]|0))return;f[5761]=0;f[5758]=0;return}if((f[5761]|0)==(j|0)){j=(f[5758]|0)+b|0;f[5758]=j;f[5761]=h;f[i+4>>2]=j|1;f[h+j>>2]=j;return}e=(d&-8)+b|0;c=d>>>3;do if(d>>>0<256){b=f[j+8>>2]|0;a=f[j+12>>2]|0;if((a|0)==(b|0)){f[5756]=f[5756]&~(1<>2]=a;f[a+8>>2]=b;break}}else{g=f[j+24>>2]|0;a=f[j+12>>2]|0;do if((a|0)==(j|0)){b=j+16|0;c=b+4|0;a=f[c>>2]|0;if(!a){a=f[b>>2]|0;if(!a){c=0;break}}else b=c;while(1){d=a+20|0;c=f[d>>2]|0;if(!c){d=a+16|0;c=f[d>>2]|0;if(!c)break;else{a=c;b=d}}else{a=c;b=d}}f[b>>2]=0;c=a}else{c=f[j+8>>2]|0;f[c+12>>2]=a;f[a+8>>2]=c;c=a}while(0);if(g|0){a=f[j+28>>2]|0;b=23328+(a<<2)|0;if((f[b>>2]|0)==(j|0)){f[b>>2]=c;if(!c){f[5757]=f[5757]&~(1<>2]|0)==(j|0)?d:g+20|0)>>2]=c;if(!c)break}f[c+24>>2]=g;a=j+16|0;b=f[a>>2]|0;if(b|0){f[c+16>>2]=b;f[b+24>>2]=c}a=f[a+4>>2]|0;if(a|0){f[c+20>>2]=a;f[a+24>>2]=c}}}while(0);f[i+4>>2]=e|1;f[h+e>>2]=e;if((i|0)==(f[5761]|0)){f[5758]=e;return}}else{f[a>>2]=d&-2;f[i+4>>2]=b|1;f[h+b>>2]=b;e=b}a=e>>>3;if(e>>>0<256){c=23064+(a<<1<<2)|0;b=f[5756]|0;a=1<>2]|0}f[b>>2]=i;f[a+12>>2]=i;f[i+8>>2]=a;f[i+12>>2]=c;return}a=e>>>8;if(a)if(e>>>0>16777215)d=31;else{h=(a+1048320|0)>>>16&8;j=a<>>16&4;j=j<>>16&2;d=14-(g|h|d)+(j<>>15)|0;d=e>>>(d+7|0)&1|d<<1}else d=0;a=23328+(d<<2)|0;f[i+28>>2]=d;f[i+20>>2]=0;f[i+16>>2]=0;b=f[5757]|0;c=1<>2]=i;f[i+24>>2]=a;f[i+12>>2]=i;f[i+8>>2]=i}else{a=f[a>>2]|0;b:do if((f[a+4>>2]&-8|0)!=(e|0)){d=e<<((d|0)==31?0:25-(d>>>1)|0);while(1){c=a+16+(d>>>31<<2)|0;b=f[c>>2]|0;if(!b)break;if((f[b+4>>2]&-8|0)==(e|0)){a=b;break b}else{d=d<<1;a=b}}f[c>>2]=i;f[i+24>>2]=a;f[i+12>>2]=i;f[i+8>>2]=i;break a}while(0);h=a+8|0;j=f[h>>2]|0;f[j+12>>2]=i;f[h>>2]=i;f[i+8>>2]=j;f[i+12>>2]=a;f[i+24>>2]=0}while(0);j=(f[5764]|0)+-1|0;f[5764]=j;if(j|0)return;a=23480;while(1){a=f[a>>2]|0;if(!a)break;else a=a+8|0}f[5764]=-1;return}function Pc(a,b){a=a|0;b=b|0;var c=0;if(a){c=U(b,a)|0;if((b|a)>>>0>65535)c=((c>>>0)/(a>>>0)|0|0)==(b|0)?c:-1}else c=0;a=Nc(c)|0;if(!a)return a|0;if(!(f[a+-4>>2]&3))return a|0;ad(a|0,0,c|0)|0;return a|0}function Qc(){return 23520}function Rc(a){a=+a;return +(+bd(+a))}function Sc(a){a=+a;return ~~+Rc(a)|0}function Tc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (aa(b+d+(c>>>0>>0|0)>>>0|0),c|0)|0}function Uc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (aa(d|0),a-c>>>0|0)|0}function Vc(a){a=a|0;return (a?31-(X(a^a-1)|0)|0:32)|0}function Wc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=c;n=d;i=n;if(!k){g=(e|0)!=0;if(!i){if(g){f[e>>2]=(l>>>0)%(h>>>0);f[e+4>>2]=0}n=0;e=(l>>>0)/(h>>>0)>>>0;return (aa(n|0),e)|0}else{if(!g){n=0;e=0;return (aa(n|0),e)|0}f[e>>2]=a|0;f[e+4>>2]=b&0;n=0;e=0;return (aa(n|0),e)|0}}g=(i|0)==0;do if(h){if(!g){g=(X(i|0)|0)-(X(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<>>(m>>>0)&b;g=0;i=l<>2]=a|0;f[e+4>>2]=j|b&0;n=0;e=0;return (aa(n|0),e)|0}g=h-1|0;if(g&h|0){i=(X(h|0)|0)+33-(X(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(e|0){f[e>>2]=g&l;f[e+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (aa(o|0),p)|0}else{p=Vc(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (aa(o|0),p)|0}}else{if(g){if(e|0){f[e>>2]=(k>>>0)%(h>>>0);f[e+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (aa(o|0),p)|0}if(!l){if(e|0){f[e>>2]=0;f[e+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (aa(o|0),p)|0}g=i-1|0;if(!(g&i)){if(e|0){f[e>>2]=a|0;f[e+4>>2]=g&k|b&0}o=0;p=k>>>((Vc(i|0)|0)>>>0);return (aa(o|0),p)|0}g=(X(i|0)|0)-(X(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<>2]=a|0;f[e+4>>2]=j|b&0;o=0;p=0;return (aa(o|0),p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=c|0|0;l=n|d&0;k=Tc(m|0,l|0,-1,-1)|0;c=ba()|0;j=i;i=0;do{d=j;j=g>>>31|j<<1;g=i|g<<1;d=a<<1|d>>>31|0;n=a>>>31|b<<1|0;Uc(k|0,c|0,d|0,n|0)|0;p=ba()|0;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=Uc(d|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=ba()|0;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(e|0){f[e>>2]=a;f[e+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (aa(o|0),p)|0}function Xc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;g=t;t=t+16|0;e=g|0;Wc(a,b,c,d,e)|0;t=g;return (aa(f[e+4>>2]|0),f[e>>2]|0)|0}function Yc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){aa(b>>>c|0);return a>>>c|(b&(1<>>c-32|0}function Zc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){aa(b<>>32-c|0);return a<=0.0?+G(a+.5):+T(a-.5)}function $c(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;if((d|0)>=8192)return fa(a|0,c|0,d|0)|0;h=a|0;g=a+d|0;if((a&3)==(c&3)){while(a&3){if(!d)return h|0;b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0;d=d-1|0}d=g&-4|0;e=d-64|0;while((a|0)<=(e|0)){f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2];f[a+12>>2]=f[c+12>>2];f[a+16>>2]=f[c+16>>2];f[a+20>>2]=f[c+20>>2];f[a+24>>2]=f[c+24>>2];f[a+28>>2]=f[c+28>>2];f[a+32>>2]=f[c+32>>2];f[a+36>>2]=f[c+36>>2];f[a+40>>2]=f[c+40>>2];f[a+44>>2]=f[c+44>>2];f[a+48>>2]=f[c+48>>2];f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];a=a+64|0;c=c+64|0}while((a|0)<(d|0)){f[a>>2]=f[c>>2];a=a+4|0;c=c+4|0}}else{d=g-4|0;while((a|0)<(d|0)){b[a>>0]=b[c>>0]|0;b[a+1>>0]=b[c+1>>0]|0;b[a+2>>0]=b[c+2>>0]|0;b[a+3>>0]=b[c+3>>0]|0;a=a+4|0;c=c+4|0}}while((a|0)<(g|0)){b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0}return h|0}function ad(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;h=a+d|0;c=c&255;if((d|0)>=67){while(a&3){b[a>>0]=c;a=a+1|0}e=h&-4|0;g=e-64|0;i=c|c<<8|c<<16|c<<24;while((a|0)<=(g|0)){f[a>>2]=i;f[a+4>>2]=i;f[a+8>>2]=i;f[a+12>>2]=i;f[a+16>>2]=i;f[a+20>>2]=i;f[a+24>>2]=i;f[a+28>>2]=i;f[a+32>>2]=i;f[a+36>>2]=i;f[a+40>>2]=i;f[a+44>>2]=i;f[a+48>>2]=i;f[a+52>>2]=i;f[a+56>>2]=i;f[a+60>>2]=i;a=a+64|0}while((a|0)<(e|0)){f[a>>2]=i;a=a+4|0}}while((a|0)<(h|0)){b[a>>0]=c;a=a+1|0}return h-d|0}function bd(a){a=+a;return a>=0.0?+G(a+.5):+T(a-.5)}function cd(a){a=a|0;var b=0,c=0;c=f[r>>2]|0;b=c+a|0;if((a|0)>0&(b|0)<(c|0)|(b|0)<0){ca()|0;ea(12);return -1}f[r>>2]=b;if((b|0)>($()|0)?(_()|0)==0:0){f[r>>2]=c;ea(12);return -1}return c|0} // EMSCRIPTEN_END_FUNCS -return{___uremdi3:Vc,_bitshift64Lshr:Wc,_bitshift64Shl:Xc,_calloc:Nc,_compact:Fb,_destroyLinkedPolygon:dc,_edgeLengthKm:wb,_edgeLengthM:xb,_emscripten_replace_memory:ha,_experimentalH3ToLocalIj:ic,_experimentalLocalIjToH3:jc,_free:Mc,_geoToH3:Qb,_getDestinationH3IndexFromUnidirectionalEdge:Yb,_getH3IndexesFromUnidirectionalEdge:_b,_getH3UnidirectionalEdge:Wb,_getH3UnidirectionalEdgeBoundary:ac,_getH3UnidirectionalEdgesFromHexagon:$b,_getOriginH3IndexFromUnidirectionalEdge:Xb,_h3Distance:kc,_h3GetBaseCell:zb,_h3IndexesAreNeighbors:Vb,_h3IsPentagon:Eb,_h3IsResClassIII:Ib,_h3IsValid:Ab,_h3Line:mc,_h3LineSize:lc,_h3SetToLinkedGeo:xa,_h3ToChildren:Db,_h3ToGeo:Tb,_h3ToGeoBoundary:Ub,_h3ToParent:Bb,_h3UnidirectionalEdgeIsValid:Zb,_hexAreaKm2:ub,_hexAreaM2:vb,_hexRing:ta,_i64Subtract:Sc,_kRing:oa,_kRingDistances:pa,_llvm_round_f64:Yc,_malloc:Lc,_maxH3ToChildrenSize:Cb,_maxKringSize:na,_maxPolyfillSize:ua,_maxUncompactSize:Hb,_memcpy:Zc,_memset:_c,_numHexagons:yb,_polyfill:va,_round:$c,_sbrk:ad,_sizeOfCoordIJ:yc,_sizeOfGeoBoundary:uc,_sizeOfGeoCoord:tc,_sizeOfGeoPolygon:wc,_sizeOfGeofence:vc,_sizeOfH3Index:sc,_sizeOfLinkedGeoPolygon:xc,_uncompact:Gb,establishStackSpace:la,setThrew:ma,stackAlloc:ia,stackRestore:ka,stackSave:ja}}) +return{___uremdi3:Xc,_bitshift64Lshr:Yc,_bitshift64Shl:Zc,_calloc:Pc,_compact:Hb,_destroyLinkedPolygon:fc,_edgeLengthKm:yb,_edgeLengthM:zb,_emscripten_replace_memory:ha,_experimentalH3ToLocalIj:kc,_experimentalLocalIjToH3:lc,_free:Oc,_geoToH3:Sb,_getDestinationH3IndexFromUnidirectionalEdge:_b,_getH3IndexesFromUnidirectionalEdge:ac,_getH3UnidirectionalEdge:Yb,_getH3UnidirectionalEdgeBoundary:cc,_getH3UnidirectionalEdgesFromHexagon:bc,_getOriginH3IndexFromUnidirectionalEdge:Zb,_getRes0Indexes:Ga,_h3Distance:mc,_h3GetBaseCell:Bb,_h3IndexesAreNeighbors:Xb,_h3IsPentagon:Gb,_h3IsResClassIII:Kb,_h3IsValid:Cb,_h3Line:oc,_h3LineSize:nc,_h3SetToLinkedGeo:xa,_h3ToChildren:Fb,_h3ToGeo:Vb,_h3ToGeoBoundary:Wb,_h3ToParent:Db,_h3UnidirectionalEdgeIsValid:$b,_hexAreaKm2:wb,_hexAreaM2:xb,_hexRing:ta,_i64Subtract:Uc,_kRing:oa,_kRingDistances:pa,_llvm_round_f64:_c,_malloc:Nc,_maxH3ToChildrenSize:Eb,_maxKringSize:na,_maxPolyfillSize:ua,_maxUncompactSize:Jb,_memcpy:$c,_memset:ad,_numHexagons:Ab,_polyfill:va,_res0IndexCount:Fa,_round:bd,_sbrk:cd,_sizeOfCoordIJ:Ac,_sizeOfGeoBoundary:wc,_sizeOfGeoCoord:vc,_sizeOfGeoPolygon:yc,_sizeOfGeofence:xc,_sizeOfH3Index:uc,_sizeOfLinkedGeoPolygon:zc,_uncompact:Ib,establishStackSpace:la,setThrew:ma,stackAlloc:ia,stackRestore:ka,stackSave:ja}}) // EMSCRIPTEN_END_ASM -(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _calloc=Module["_calloc"]=asm["_calloc"];var _compact=Module["_compact"]=asm["_compact"];var _destroyLinkedPolygon=Module["_destroyLinkedPolygon"]=asm["_destroyLinkedPolygon"];var _edgeLengthKm=Module["_edgeLengthKm"]=asm["_edgeLengthKm"];var _edgeLengthM=Module["_edgeLengthM"]=asm["_edgeLengthM"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _experimentalH3ToLocalIj=Module["_experimentalH3ToLocalIj"]=asm["_experimentalH3ToLocalIj"];var _experimentalLocalIjToH3=Module["_experimentalLocalIjToH3"]=asm["_experimentalLocalIjToH3"];var _free=Module["_free"]=asm["_free"];var _geoToH3=Module["_geoToH3"]=asm["_geoToH3"];var _getDestinationH3IndexFromUnidirectionalEdge=Module["_getDestinationH3IndexFromUnidirectionalEdge"]=asm["_getDestinationH3IndexFromUnidirectionalEdge"];var _getH3IndexesFromUnidirectionalEdge=Module["_getH3IndexesFromUnidirectionalEdge"]=asm["_getH3IndexesFromUnidirectionalEdge"];var _getH3UnidirectionalEdge=Module["_getH3UnidirectionalEdge"]=asm["_getH3UnidirectionalEdge"];var _getH3UnidirectionalEdgeBoundary=Module["_getH3UnidirectionalEdgeBoundary"]=asm["_getH3UnidirectionalEdgeBoundary"];var _getH3UnidirectionalEdgesFromHexagon=Module["_getH3UnidirectionalEdgesFromHexagon"]=asm["_getH3UnidirectionalEdgesFromHexagon"];var _getOriginH3IndexFromUnidirectionalEdge=Module["_getOriginH3IndexFromUnidirectionalEdge"]=asm["_getOriginH3IndexFromUnidirectionalEdge"];var _h3Distance=Module["_h3Distance"]=asm["_h3Distance"];var _h3GetBaseCell=Module["_h3GetBaseCell"]=asm["_h3GetBaseCell"];var _h3IndexesAreNeighbors=Module["_h3IndexesAreNeighbors"]=asm["_h3IndexesAreNeighbors"];var _h3IsPentagon=Module["_h3IsPentagon"]=asm["_h3IsPentagon"];var _h3IsResClassIII=Module["_h3IsResClassIII"]=asm["_h3IsResClassIII"];var _h3IsValid=Module["_h3IsValid"]=asm["_h3IsValid"];var _h3Line=Module["_h3Line"]=asm["_h3Line"];var _h3LineSize=Module["_h3LineSize"]=asm["_h3LineSize"];var _h3SetToLinkedGeo=Module["_h3SetToLinkedGeo"]=asm["_h3SetToLinkedGeo"];var _h3ToChildren=Module["_h3ToChildren"]=asm["_h3ToChildren"];var _h3ToGeo=Module["_h3ToGeo"]=asm["_h3ToGeo"];var _h3ToGeoBoundary=Module["_h3ToGeoBoundary"]=asm["_h3ToGeoBoundary"];var _h3ToParent=Module["_h3ToParent"]=asm["_h3ToParent"];var _h3UnidirectionalEdgeIsValid=Module["_h3UnidirectionalEdgeIsValid"]=asm["_h3UnidirectionalEdgeIsValid"];var _hexAreaKm2=Module["_hexAreaKm2"]=asm["_hexAreaKm2"];var _hexAreaM2=Module["_hexAreaM2"]=asm["_hexAreaM2"];var _hexRing=Module["_hexRing"]=asm["_hexRing"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _kRing=Module["_kRing"]=asm["_kRing"];var _kRingDistances=Module["_kRingDistances"]=asm["_kRingDistances"];var _llvm_round_f64=Module["_llvm_round_f64"]=asm["_llvm_round_f64"];var _malloc=Module["_malloc"]=asm["_malloc"];var _maxH3ToChildrenSize=Module["_maxH3ToChildrenSize"]=asm["_maxH3ToChildrenSize"];var _maxKringSize=Module["_maxKringSize"]=asm["_maxKringSize"];var _maxPolyfillSize=Module["_maxPolyfillSize"]=asm["_maxPolyfillSize"];var _maxUncompactSize=Module["_maxUncompactSize"]=asm["_maxUncompactSize"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memset=Module["_memset"]=asm["_memset"];var _numHexagons=Module["_numHexagons"]=asm["_numHexagons"];var _polyfill=Module["_polyfill"]=asm["_polyfill"];var _round=Module["_round"]=asm["_round"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _sizeOfCoordIJ=Module["_sizeOfCoordIJ"]=asm["_sizeOfCoordIJ"];var _sizeOfGeoBoundary=Module["_sizeOfGeoBoundary"]=asm["_sizeOfGeoBoundary"];var _sizeOfGeoCoord=Module["_sizeOfGeoCoord"]=asm["_sizeOfGeoCoord"];var _sizeOfGeoPolygon=Module["_sizeOfGeoPolygon"]=asm["_sizeOfGeoPolygon"];var _sizeOfGeofence=Module["_sizeOfGeofence"]=asm["_sizeOfGeofence"];var _sizeOfH3Index=Module["_sizeOfH3Index"]=asm["_sizeOfH3Index"];var _sizeOfLinkedGeoPolygon=Module["_sizeOfLinkedGeoPolygon"]=asm["_sizeOfLinkedGeoPolygon"];var _uncompact=Module["_uncompact"]=asm["_uncompact"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var setThrew=Module["setThrew"]=asm["setThrew"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];Module["asm"]=asm;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}Module["then"]=(function(func){if(Module["calledRun"]){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run() +(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _calloc=Module["_calloc"]=asm["_calloc"];var _compact=Module["_compact"]=asm["_compact"];var _destroyLinkedPolygon=Module["_destroyLinkedPolygon"]=asm["_destroyLinkedPolygon"];var _edgeLengthKm=Module["_edgeLengthKm"]=asm["_edgeLengthKm"];var _edgeLengthM=Module["_edgeLengthM"]=asm["_edgeLengthM"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _experimentalH3ToLocalIj=Module["_experimentalH3ToLocalIj"]=asm["_experimentalH3ToLocalIj"];var _experimentalLocalIjToH3=Module["_experimentalLocalIjToH3"]=asm["_experimentalLocalIjToH3"];var _free=Module["_free"]=asm["_free"];var _geoToH3=Module["_geoToH3"]=asm["_geoToH3"];var _getDestinationH3IndexFromUnidirectionalEdge=Module["_getDestinationH3IndexFromUnidirectionalEdge"]=asm["_getDestinationH3IndexFromUnidirectionalEdge"];var _getH3IndexesFromUnidirectionalEdge=Module["_getH3IndexesFromUnidirectionalEdge"]=asm["_getH3IndexesFromUnidirectionalEdge"];var _getH3UnidirectionalEdge=Module["_getH3UnidirectionalEdge"]=asm["_getH3UnidirectionalEdge"];var _getH3UnidirectionalEdgeBoundary=Module["_getH3UnidirectionalEdgeBoundary"]=asm["_getH3UnidirectionalEdgeBoundary"];var _getH3UnidirectionalEdgesFromHexagon=Module["_getH3UnidirectionalEdgesFromHexagon"]=asm["_getH3UnidirectionalEdgesFromHexagon"];var _getOriginH3IndexFromUnidirectionalEdge=Module["_getOriginH3IndexFromUnidirectionalEdge"]=asm["_getOriginH3IndexFromUnidirectionalEdge"];var _getRes0Indexes=Module["_getRes0Indexes"]=asm["_getRes0Indexes"];var _h3Distance=Module["_h3Distance"]=asm["_h3Distance"];var _h3GetBaseCell=Module["_h3GetBaseCell"]=asm["_h3GetBaseCell"];var _h3IndexesAreNeighbors=Module["_h3IndexesAreNeighbors"]=asm["_h3IndexesAreNeighbors"];var _h3IsPentagon=Module["_h3IsPentagon"]=asm["_h3IsPentagon"];var _h3IsResClassIII=Module["_h3IsResClassIII"]=asm["_h3IsResClassIII"];var _h3IsValid=Module["_h3IsValid"]=asm["_h3IsValid"];var _h3Line=Module["_h3Line"]=asm["_h3Line"];var _h3LineSize=Module["_h3LineSize"]=asm["_h3LineSize"];var _h3SetToLinkedGeo=Module["_h3SetToLinkedGeo"]=asm["_h3SetToLinkedGeo"];var _h3ToChildren=Module["_h3ToChildren"]=asm["_h3ToChildren"];var _h3ToGeo=Module["_h3ToGeo"]=asm["_h3ToGeo"];var _h3ToGeoBoundary=Module["_h3ToGeoBoundary"]=asm["_h3ToGeoBoundary"];var _h3ToParent=Module["_h3ToParent"]=asm["_h3ToParent"];var _h3UnidirectionalEdgeIsValid=Module["_h3UnidirectionalEdgeIsValid"]=asm["_h3UnidirectionalEdgeIsValid"];var _hexAreaKm2=Module["_hexAreaKm2"]=asm["_hexAreaKm2"];var _hexAreaM2=Module["_hexAreaM2"]=asm["_hexAreaM2"];var _hexRing=Module["_hexRing"]=asm["_hexRing"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _kRing=Module["_kRing"]=asm["_kRing"];var _kRingDistances=Module["_kRingDistances"]=asm["_kRingDistances"];var _llvm_round_f64=Module["_llvm_round_f64"]=asm["_llvm_round_f64"];var _malloc=Module["_malloc"]=asm["_malloc"];var _maxH3ToChildrenSize=Module["_maxH3ToChildrenSize"]=asm["_maxH3ToChildrenSize"];var _maxKringSize=Module["_maxKringSize"]=asm["_maxKringSize"];var _maxPolyfillSize=Module["_maxPolyfillSize"]=asm["_maxPolyfillSize"];var _maxUncompactSize=Module["_maxUncompactSize"]=asm["_maxUncompactSize"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memset=Module["_memset"]=asm["_memset"];var _numHexagons=Module["_numHexagons"]=asm["_numHexagons"];var _polyfill=Module["_polyfill"]=asm["_polyfill"];var _res0IndexCount=Module["_res0IndexCount"]=asm["_res0IndexCount"];var _round=Module["_round"]=asm["_round"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _sizeOfCoordIJ=Module["_sizeOfCoordIJ"]=asm["_sizeOfCoordIJ"];var _sizeOfGeoBoundary=Module["_sizeOfGeoBoundary"]=asm["_sizeOfGeoBoundary"];var _sizeOfGeoCoord=Module["_sizeOfGeoCoord"]=asm["_sizeOfGeoCoord"];var _sizeOfGeoPolygon=Module["_sizeOfGeoPolygon"]=asm["_sizeOfGeoPolygon"];var _sizeOfGeofence=Module["_sizeOfGeofence"]=asm["_sizeOfGeofence"];var _sizeOfH3Index=Module["_sizeOfH3Index"]=asm["_sizeOfH3Index"];var _sizeOfLinkedGeoPolygon=Module["_sizeOfLinkedGeoPolygon"]=asm["_sizeOfLinkedGeoPolygon"];var _uncompact=Module["_uncompact"]=asm["_uncompact"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var setThrew=Module["setThrew"]=asm["setThrew"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];Module["asm"]=asm;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}Module["then"]=(function(func){if(Module["calledRun"]){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run() diff --git a/test/h3core.spec.js b/test/h3core.spec.js index 61c28c0..f9d5229 100644 --- a/test/h3core.spec.js +++ b/test/h3core.spec.js @@ -1421,3 +1421,11 @@ test('numHexagons - bad resolution', assert => { assert.end(); }); + +test('getRes0Indexes', assert => { + const indexes = h3core.getRes0Indexes(); + assert.equal(indexes.length, 122, 'Got expected count'); + assert.ok(indexes.every(h3core.h3IsValid), 'All indexes are valid'); + + assert.end(); +}); From 7fff56872d1575467215e16fe6a5c0afb231823b Mon Sep 17 00:00:00 2001 From: Nicholas Rabinowitz Date: Thu, 24 Jan 2019 14:22:20 -0800 Subject: [PATCH 2/4] Update CHANGELOG --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26e88db..31538a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,10 @@ All notable changes to this project will be documented in this file. This library adheres to a versioning policy described in [the README](./README.md#versioning). The public API of this library consists of the functions exported in [h3core.js](./lib/h3core.js). ## [Unreleased] -- *None* +### Changed +- Updated the core library to v3.4.0 (#31) +### Added +- Added `getRes0Indexes` binding (#31) ## [3.3.0] - 2019-1-8 ### Changed From 9c1a9fbfde3903fa4422b6037aacc8fd77432453 Mon Sep 17 00:00:00 2001 From: Nicholas Rabinowitz Date: Thu, 24 Jan 2019 14:34:18 -0800 Subject: [PATCH 3/4] Prettier fix --- lib/bindings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/bindings.js b/lib/bindings.js index ab5a917..8a611c5 100644 --- a/lib/bindings.js +++ b/lib/bindings.js @@ -77,5 +77,5 @@ module.exports = [ ['edgeLengthKm', NUMBER, [RESOLUTION]], ['numHexagons', NUMBER, [RESOLUTION]], ['getRes0Indexes', null, [POINTER]], - ['res0IndexCount', NUMBER], + ['res0IndexCount', NUMBER] ]; From 66e49007b5076b5013fb2de183a3225c452d6b53 Mon Sep 17 00:00:00 2001 From: Nicholas Rabinowitz Date: Thu, 24 Jan 2019 15:01:06 -0800 Subject: [PATCH 4/4] Regen docs --- README.md | 14 +++++++++++++- lib/h3core.js | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7ef3b30..b120f34 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # h3-js -[![H3 Version](https://img.shields.io/badge/h3_api-v3.3.0-blue.svg)](https://github.com/uber/h3/releases/tag/v3.3.0) [![Build Status](https://travis-ci.org/uber/h3-js.svg?branch=master)](https://travis-ci.org/uber/h3-js) [![Coverage Status](https://coveralls.io/repos/github/uber/h3-js/badge.svg?branch=master)](https://coveralls.io/github/uber/h3-js?branch=master) +[![H3 Version](https://img.shields.io/badge/h3_api-v3.4.0-blue.svg)](https://github.com/uber/h3/releases/tag/v3.4.0) [![Build Status](https://travis-ci.org/uber/h3-js.svg?branch=master)](https://travis-ci.org/uber/h3-js) [![Coverage Status](https://coveralls.io/repos/github/uber/h3-js/badge.svg?branch=master)](https://coveralls.io/github/uber/h3-js?branch=master) The `h3-js` library provides a pure-JavaScript version of the [H3 Core Library](https://github.com/uber/h3), a hexagon-based geographic grid system. It can be used either in Node >= 4 or in the browser. The core library is transpiled from C using [emscripten](http://kripken.github.io/emscripten-site), offering full parity with the C API and highly efficient operations. @@ -99,6 +99,7 @@ const coordinates = h3.h3SetToMultiPolygon(hexagons, true); * [.hexArea(res, unit)](#module_h3.hexArea) ⇒ Number * [.edgeLength(res, unit)](#module_h3.edgeLength) ⇒ Number * [.numHexagons(res)](#module_h3.numHexagons) ⇒ Number + * [.getRes0Indexes()](#module_h3.getRes0Indexes) ⇒ Array.<H3Index> * [.degsToRads(deg)](#module_h3.degsToRads) ⇒ Number * [.radsToDegs(rad)](#module_h3.radsToDegs) ⇒ Number @@ -656,6 +657,17 @@ so consumers should use caution when applying further operations to the output. | res | Number | Hexagon resolution | +* * * + + + +### h3.getRes0Indexes() ⇒ Array.<H3Index> +Get all H3 indexes at resolution 0. As every index at every resolution > 0 is +the descendant of a res 0 index, this can be used with h3ToChildren to iterate +over H3 indexes at any resolution. + +**Returns**: Array.<H3Index> - All H3 indexes at res 0 + * * * diff --git a/lib/h3core.js b/lib/h3core.js index 3d0dc8a..73cf8b5 100644 --- a/lib/h3core.js +++ b/lib/h3core.js @@ -1086,6 +1086,7 @@ function numHexagons(res) { * Get all H3 indexes at resolution 0. As every index at every resolution > 0 is * the descendant of a res 0 index, this can be used with h3ToChildren to iterate * over H3 indexes at any resolution. + * @static * @return {H3Index[]} All H3 indexes at res 0 */ function getRes0Indexes() {