diff --git a/bip32.c b/bip32.c index f7b20ec1ed..b639af6009 100644 --- a/bip32.c +++ b/bip32.c @@ -25,6 +25,7 @@ #include #include +#include "address.h" #include "bignum.h" #include "hmac.h" #include "ecdsa.h" @@ -270,7 +271,7 @@ int hdnode_public_ckd(HDNode *inout, uint32_t i) return 1; } -int hdnode_public_ckd_address_optimized(const curve_point *pub, const uint8_t *chain_code, uint32_t i, uint32_t version, char *addr, int addrsize) +int hdnode_public_ckd_address_optimized(const curve_point *pub, const uint8_t *chain_code, uint32_t i, uint32_t version, char *addr, int addrsize, bool segwit) { uint8_t child_pubkey[33]; curve_point b; @@ -278,8 +279,27 @@ int hdnode_public_ckd_address_optimized(const curve_point *pub, const uint8_t *c hdnode_public_ckd_cp(&secp256k1, pub, chain_code, i, &b, NULL); child_pubkey[0] = 0x02 | (b.y.val[0] & 0x01); bn_write_be(&b.x, child_pubkey + 1); - ecdsa_get_address(child_pubkey, version, addr, addrsize); - return 1; + + if (!segwit) { + ecdsa_get_address(child_pubkey, version, addr, addrsize); + return 1; + } else { + uint8_t raw[32]; + size_t prelen = address_prefix_bytes_len(version); + uint8_t digest[MAX_ADDR_RAW_SIZE]; + + raw[0] = 0; // version byte + raw[1] = 20; // push 20 bytes + ecdsa_get_pubkeyhash(child_pubkey, raw + 2); + sha256_Raw(raw, 22, digest); + address_write_prefix_bytes(version, raw); + ripemd160(digest, 32, raw + prelen); + + if (!base58_encode_check(raw, prelen + 20, addr, MAX_ADDR_SIZE)) { + return 0; + } + return 1; + } } #if USE_BIP32_CACHE diff --git a/bip32.h b/bip32.h index 330294ace9..2bdeef721a 100644 --- a/bip32.h +++ b/bip32.h @@ -26,6 +26,7 @@ #include #include +#include #include "ecdsa.h" #include "options.h" @@ -57,7 +58,7 @@ int hdnode_public_ckd_cp(const ecdsa_curve *curve, const curve_point *parent, co int hdnode_public_ckd(HDNode *inout, uint32_t i); -int hdnode_public_ckd_address_optimized(const curve_point *pub, const uint8_t *chain_code, uint32_t i, uint32_t version, char *addr, int addrsize); +int hdnode_public_ckd_address_optimized(const curve_point *pub, const uint8_t *chain_code, uint32_t i, uint32_t version, char *addr, int addrsize, bool segwit); #if USE_BIP32_CACHE diff --git a/emscripten/post.js b/emscripten/post.js index e3a44bbca7..d10dc3bfa4 100644 --- a/emscripten/post.js +++ b/emscripten/post.js @@ -51,8 +51,8 @@ function serializeNode(node) { * @param {Number} version address version byte * @return {String} */ -function deriveAddress(index, version) { - _hdnode_public_ckd_address_optimized(_pubpoint, _chaincode, index, version, _address, ADDRESS_SIZE); +function deriveAddress(index, version, segwit) { + _hdnode_public_ckd_address_optimized(_pubpoint, _chaincode, index, version, _address, ADDRESS_SIZE, segwit); return Pointer_stringify(_address); } @@ -63,12 +63,12 @@ function deriveAddress(index, version) { * @param {Number} version address version byte * @return {Array} */ -function deriveAddressRange(node, firstIndex, lastIndex, version) { +function deriveAddressRange(node, firstIndex, lastIndex, version, segwit) { var addresses = []; serializeNode(node); var i; for (i = firstIndex; i <= lastIndex; i++) { - addresses.push(deriveAddress(i, version)); + addresses.push(deriveAddress(i, version, segwit)); } return addresses; } diff --git a/emscripten/test-correctness.js b/emscripten/test-correctness.js index 623e53b2bd..0640adcb0a 100644 --- a/emscripten/test-correctness.js +++ b/emscripten/test-correctness.js @@ -13,7 +13,10 @@ var nodeStruct = { public_key: node.keyPair.getPublicKeyBuffer() }; -var addresses = crypto.deriveAddressRange(nodeStruct, 0, 999, 0); +var addresses = crypto.deriveAddressRange(nodeStruct, 0, 999, 0, false); + +// for segwit: +// var addresses = crypto.deriveAddressRange(nodeStruct, 0, 999, 5, true); var fs = require('fs'); var loaded = fs.readFileSync('test-addresses.txt').toString().split("\n"); diff --git a/emscripten/trezor-crypto.js b/emscripten/trezor-crypto.js index 879b9a1a52..c625161f4b 100644 --- a/emscripten/trezor-crypto.js +++ b/emscripten/trezor-crypto.js @@ -360,7 +360,7 @@ bc(c,C,w[d+8*n>>2],w[d+(8*n+4)>>2],void 0);if(0>u){f=-1;break a}h+=u}f=h}return var Z=(function(global,env,buffer) { "use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.DYNAMICTOP_PTR|0;var l=env.tempDoublePtr|0;var m=env.ABORT|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=global.Math.floor;var E=global.Math.abs;var F=global.Math.sqrt;var G=global.Math.pow;var H=global.Math.cos;var I=global.Math.sin;var J=global.Math.tan;var K=global.Math.acos;var L=global.Math.asin;var M=global.Math.atan;var N=global.Math.atan2;var O=global.Math.exp;var P=global.Math.log;var Q=global.Math.ceil;var R=global.Math.imul;var S=global.Math.min;var T=global.Math.max;var U=global.Math.clz32;var V=env.abort;var W=env.assert;var X=env.enlargeMemory;var Y=env.getTotalMemory;var Z=env.abortOnCannotGrowMemory;var _=env.invoke_ii;var $=env.invoke_iiii;var aa=env.invoke_vi;var ba=env._pthread_cleanup_pop;var ca=env.___syscall221;var da=env.___syscall54;var ea=env.___lock;var fa=env._abort;var ga=env._pthread_cleanup_push;var ha=env.___syscall6;var ia=env._llvm_stacksave;var ja=env.___syscall140;var ka=env.___syscall5;var la=env._emscripten_memcpy_big;var ma=env._llvm_bswap_i64;var na=env.___unlock;var oa=env._llvm_stackrestore;var pa=env.___assert_fail;var qa=env.___syscall145;var ra=env.___syscall146;var sa=env.___setErrNo;var ta=0.0; // EMSCRIPTEN_START_FUNCS -function xa(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function ya(){return i|0}function za(a){a=a|0;i=a}function Aa(a,b){a=a|0;b=b|0;i=a;j=b}function Ba(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function Ca(a){a=a|0;C=a}function Da(){return C|0}function Ea(b,c){b=b|0;c=c|0;a[b>>0]=c>>>24;a[b+1>>0]=c>>>16;a[b+2>>0]=c>>>8;a[b+3>>0]=c;return}function Fa(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;e=0;f=0;do{h=a+(7-f<<2)|0;h=(d[h+1>>0]|0)<<16|(d[h>>0]|0)<<24|(d[h+2>>0]|0)<<8|(d[h+3>>0]|0);g=f<<1;c[b+(f<<2)>>2]=(h<>>(30-g|0);f=f+1|0}while((f|0)!=8);c[b+32>>2]=e;return}function Ga(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=c[b+32>>2]<<16;f=0;while(1){g=c[b+(7-f<<2)>>2]|0;h=f<<1;i=g>>>(14-h|0)|e;e=d+(f<<2)|0;a[e>>0]=i>>>24;a[e+1>>0]=i>>>16;a[e+2>>0]=i>>>8;a[e+3>>0]=i;f=f+1|0;if((f|0)==8)break;else e=g<>2]=0;a=a+4|0}while((a|0)<(b|0));return}function Ia(a){a=a|0;return (c[a+32>>2]|(c[a+28>>2]|(c[a+24>>2]|(c[a+20>>2]|(c[a+16>>2]|(c[a+12>>2]|(c[a+8>>2]|(c[a+4>>2]|c[a>>2])))))))|0)==0|0}function Ja(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=0;e=8;f=0;while(1){h=c[a+(e<<2)>>2]|0;g=c[b+(e<<2)>>2]|0;d=h>>>0>>0|d<<1;f=h>>>0>g>>>0|f<<1;if((e|0)<=0)break;else e=e+-1|0}return d>>>0>f>>>0|0}function Ka(a,b){a=a|0;b=b|0;var d=0,e=0;d=0;e=0;do{e=c[b+(d<<2)>>2]^c[a+(d<<2)>>2]|e;d=d+1|0}while((d|0)!=9);return (e|0)==0|0}function La(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=0-b|0;h=b+-1|0;if((b|1|0)==1)f=0;else pa(38200,38223,270,38235);do{c[a+(f<<2)>>2]=c[e+(f<<2)>>2]&h|c[d+(f<<2)>>2]&g;f=f+1|0}while((f|0)!=9);return}function Ma(a){a=a|0;var b=0,d=0,e=0,f=0;b=8;d=c[a+32>>2]|0;do{e=b;b=b+-1|0;f=d;d=c[a+(b<<2)>>2]|0;c[a+(e<<2)>>2]=d>>>29&1|f<<1&1073741822}while((e|0)>1);c[a>>2]=c[a>>2]<<1&1073741822;return}function Na(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[a>>2]|0;f=0-(d&1)|0;d=((c[b>>2]&f)+d|0)>>>1;e=0;do{i=e;e=e+1|0;g=(c[b+(e<<2)>>2]&f)+(c[a+(e<<2)>>2]|0)|0;h=(g<<29&536870912)+d|0;c[a+(i<<2)>>2]=h&1073741823;d=(h>>>30)+(g>>>1)|0}while((e|0)!=8);c[a+32>>2]=d;return}function Oa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=b&255;b=0;do{f=a+(b<<2)|0;c[f>>2]=R(c[f>>2]|0,e)|0;b=b+1|0}while((b|0)!=9);Pa(a,d);return}function Pa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=(c[a+32>>2]|0)>>>16;i=c[a>>2]|0;h=pc(c[b>>2]|0,0,g|0,0)|0;d=C;e=kc(i|0,536870912,h|0,d|0)|0;f=C;d=kc(i|0,0,h|0,d|0)|0;c[a>>2]=d&1073741823;d=1;while(1){l=mc(e|0,f|0,30)|0;k=C;i=a+(d<<2)|0;j=c[i>>2]|0;f=pc(c[b+(d<<2)>>2]|0,0,g|0,0)|0;h=C;k=qc(l|0,k|0,-2147483648,536870911)|0;j=qc(k|0,C|0,j|0,0)|0;e=kc(j|0,C|0,f|0,h|0)|0;c[i>>2]=e&1073741823;d=d+1|0;if((d|0)==9)break;else f=C}return}function Qa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;h=i;i=i+48|0;g=h;d=0;e=8;f=0;while(1){k=c[a+(e<<2)>>2]|0;j=c[b+(e<<2)>>2]|0;d=k>>>0>>0|d<<1;f=k>>>0>j>>>0|f<<1;if((e|0)<=0)break;else e=e+-1|0}f=d>>>0>f>>>0;e=0;d=1;while(1){d=d+1073741823+(c[a+(e<<2)>>2]|0)-(c[b+(e<<2)>>2]|0)|0;c[g+(e<<2)>>2]=d&1073741823;e=e+1|0;if((e|0)==9)break;else d=d>>>30}La(a,f&1,a,g);i=h;return}function Ra(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=0;e=1;while(1){e=e+1073741823+(c[a+(f<<2)>>2]|0)-(c[b+(f<<2)>>2]|0)|0;c[d+(f<<2)>>2]=e&1073741823;f=f+1|0;if((f|0)==9)break;else e=e>>>30}return}function Sa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;h=0;g=0;e=0;i=1;while(1){f=0;do{j=pc(c[b+(h-f<<2)>>2]|0,0,c[a+(f<<2)>>2]|0,0)|0;g=qc(j|0,C|0,g|0,e|0)|0;e=C;f=f+1|0}while((f|0)!=(i|0));c[d+(h<<2)>>2]=g&1073741823;g=mc(g|0,e|0,30)|0;e=C;h=h+1|0;if((h|0)==9){h=9;break}else i=i+1|0}while(1){f=h+-8|0;if((f|0)<9)do{j=pc(c[b+(h-f<<2)>>2]|0,0,c[a+(f<<2)>>2]|0,0)|0;g=qc(j|0,C|0,g|0,e|0)|0;e=C;f=f+1|0}while((f|0)!=9);c[d+(h<<2)>>2]=g&1073741823;g=mc(g|0,e|0,30)|0;h=h+1|0;if((h|0)==17)break;else e=C}c[d+68>>2]=g;return}function Ta(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+(d+1<<2)|0;j=(c[l>>2]<<14)+((c[a+(d<<2)>>2]|0)>>>16)|0;k=d+-8|0;e=a+(k<<2)|0;f=c[e>>2]|0;g=pc(c[b>>2]|0,0,j|0,0)|0;h=C;if((j|0)<=-1)pa(38243,38223,417,38262);i=kc(f|0,536870912,g|0,h|0)|0;m=C;h=kc(f|0,0,g|0,h|0)|0;c[e>>2]=h&1073741823;h=mc(i|0,m|0,30)|0;m=C;i=a+(d+-7<<2)|0;f=qc(c[i>>2]|0,0,-2147483648,536870911)|0;e=1;g=C;d=m;do{m=pc(c[b+(e<<2)>>2]|0,0,j|0,0)|0;m=kc(f|0,g|0,m|0,C|0)|0;m=qc(m|0,C|0,h|0,d|0)|0;c[i>>2]=m&1073741823;e=e+1|0;h=mc(m|0,C|0,30)|0;d=C;i=a+(e+k<<2)|0;f=qc(c[i>>2]|0,0,-2147483648,536870911)|0;g=C}while((e|0)!=9);m=qc(f|0,g|0,h|0,d|0)|0;c[l>>2]=m&1073741823;return}function Ua(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=16;while(1){Ta(b,d,e);if(c[b+(e+1<<2)>>2]|0){g=4;break}e=e+-1|0;if((e|0)<=7){f=0;break}}if((g|0)==4)pa(38286,38223,451,38302);do{c[a+(f<<2)>>2]=c[b+(f<<2)>>2];f=f+1|0}while((f|0)!=9);return}function Va(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+80|0;e=g;f=e;h=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(h|0));Sa(a,b,e);Ua(b,e,d);i=g;return}function Wa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+144|0;k=n+72|0;l=n+36|0;m=n;c[l>>2]=1;h=l+4|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;c[h+24>>2]=0;c[h+28>>2]=0;h=m;d=b;j=h+36|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(j|0));e=0;d=1;while(1){j=m+(e<<2)|0;d=(c[j>>2]|0)+d|0;c[j>>2]=d&1073741823;e=e+1|0;if((e|0)==9)break;else d=d>>>30}d=0;e=c[m>>2]|0;do{j=d;d=d+1|0;h=e;e=c[m+(d<<2)>>2]|0;c[m+(j<<2)>>2]=e<<29&536870912|h>>>1}while((d|0)!=8);e=m+32|0;c[e>>2]=(c[e>>2]|0)>>>1;d=0;f=c[m>>2]|0;do{j=d;d=d+1|0;h=f;f=c[m+(d<<2)>>2]|0;c[m+(j<<2)>>2]=f<<29&536870912|h>>>1}while((d|0)!=8);c[e>>2]=(c[e>>2]|0)>>>1;e=0;do{g=(e|0)==8;d=0;f=c[m+(e<<2)>>2]|0;do{if(g&(f|0)==0)break;if(f&1|0){h=k;j=h+72|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));Sa(a,l,k);Ua(l,k,b)}f=f>>>1;h=k;j=h+72|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));Sa(a,a,k);Ua(a,k,b);d=d+1|0}while(d>>>0<30);e=e+1|0}while((e|0)!=9);Qa(l,b);h=a;d=l;j=h+36|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(j|0));i=n;return}function Xa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=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;v=i;i=i+112|0;d=v+72|0;u=v+32|0;t=v;Pa(a,b);Qa(a,b);e=c[b>>2]|0;f=0;while(1){r=f;f=f+1|0;g=c[b+(f<<2)>>2]|0;h=r<<1;p=g<<30-h|e;c[t+(r<<2)>>2]=p;c[d+(r<<2)>>2]=p;if((f|0)==8)break;else e=g>>>(h+2|0)}e=c[a>>2]|0;f=0;while(1){r=f;f=f+1|0;b=c[a+(f<<2)>>2]|0;g=r<<1;c[u+(r<<2)>>2]=b<<30-g|e;if((f|0)==8)break;else e=b>>>(g+2|0)}o=d+36|0;c[o>>2]=8;p=u+36|0;c[p>>2]=8;r=d+32|0;c[r>>2]=1;c[u+32>>2]=0;f=0;n=u;e=8;g=c[d>>2]|0;b=1;a:while(1){if(!(g&1)){q=7;break}if(!(b&1)){q=10;break}l=n+36|0;b=e;while(1){e=b+-1|0;if(c[n+(e<<2)>>2]|0)break;c[l>>2]=e;if((b|0)<1)break a;else b=e}e=c[n>>2]|0;if(!e){g=n+32|0;do{e=0;do{m=e;e=e+1|0;c[n+(m<<2)>>2]=c[n+(e<<2)>>2]}while((e|0)!=8);c[g>>2]=0;b=(c[l>>2]|0)+-1|0;c[l>>2]=b;f=f+32|0;e=c[n>>2]|0}while((e|0)==0)}k=0;while(1)if(!(e&1<0){e=e>>>k;if((b|0)>1){j=32-k|0;g=1;h=n;while(1){b=n+(g<<2)|0;c[h>>2]=c[b>>2]<>2]|0)>>>k;if((e|0)<(c[l>>2]|0)){g=e;e=h;h=b}else break}}else{g=0;h=e;b=n;e=1}c[b>>2]=h;if(!h)c[l>>2]=(c[l>>2]|0)+-1;else g=e;e=n+(g<<2)|0;b=c[e>>2]<>2]=(c[e>>2]|0)>>>h|b;b=c[e>>2]<>2]=b;m=k+f|0}else m=f;if(!(c[n>>2]&1)){q=32;break}if(c[n+32>>2]&1|0){q=34;break}f=c[o>>2]|0;e=f-(c[p>>2]|0)|0;if(!e){e=f;while(1){b=e+-1|0;if((e|0)<=0){q=38;break}e=c[d+(b<<2)>>2]|0;f=u+(b<<2)|0;if((e|0)==(c[f>>2]|0))e=b;else break}if((q|0)==38){q=0;if(!e){q=56;break}f=u+(b<<2)|0;e=c[d+(b<<2)>>2]|0}e=e>>>0>(c[f>>2]|0)>>>0?1:-1}n=(e|0)>0;l=n?u:d;n=n?d:u;k=l+36|0;h=c[k>>2]|0;if((h|0)>0){e=0;f=1;b=0;while(1){j=n+(e<<2)|0;w=c[j>>2]|0;g=c[l+(e<<2)>>2]|0;f=qc(f|0,b|0,-1,0)|0;f=qc(f|0,C|0,w|0,0)|0;g=kc(f|0,C|0,g|0,0)|0;f=C;c[j>>2]=g;e=e+1|0;if((e|0)<(h|0))b=0;else{b=e;g=0;break}}}else{b=0;f=1;g=0}j=n+36|0;e=c[j>>2]|0;if((b|0)<(e|0)){e=g;while(1){w=n+(b<<2)|0;g=c[w>>2]|0;e=qc(f|0,e|0,-1,0)|0;e=qc(e|0,C|0,g|0,0)|0;c[w>>2]=e;b=b+1|0;e=c[j>>2]|0;if((b|0)>=(e|0))break;else{f=C;e=0}}}if((e|0)>8){f=8;g=0;b=0}else{f=8;g=0;b=0;while(1){w=l+(f<<2)|0;j=c[n+(f<<2)>>2]|0;h=qc(c[w>>2]|0,0,g|0,b|0)|0;j=qc(h|0,C|0,j|0,0)|0;g=C;c[w>>2]=j;w=f;f=f+-1|0;if((w|0)<=(e|0))break;else b=0}h=c[k>>2]|0;b=0}if((f|0)>=(h|0))while(1){w=l+(f<<2)|0;j=qc(c[w>>2]|0,0,g|0,b|0)|0;c[w>>2]=j;if((f|0)>(c[k>>2]|0)){f=f+-1|0;g=C;b=0}else break}g=c[l>>2]|0;if(!(g&1)){q=51;break}b=c[l+32>>2]|0;if(!(b&1)){q=53;break}if(c[n>>2]&1|0){q=55;break}else f=m}if((q|0)==7)pa(38321,38223,646,38335);else if((q|0)==10)pa(38346,38223,647,38335);else if((q|0)==32)pa(38360,38223,699,38335);else if((q|0)==34)pa(38375,38223,700,38335);else if((q|0)==51)pa(38321,38223,757,38335);else if((q|0)==53)pa(38346,38223,758,38335);else if((q|0)==55)pa(38397,38223,759,38335);else if((q|0)==56){l=c[t>>2]|0;if(!(l&1))pa(38419,38223,786,38335);f=l+-1|0;e=l+-2|0;if(!f)k=e;else{do{f=R(f,f)|0;e=R(f+1|0,e)|0}while((f|0)!=0);k=e}b:do if((m|0)>31){j=d+4|0;e=m;while(1){w=c[r>>2]|0;b=R(w,k)|0;q=pc(l|0,0,b|0,0)|0;w=qc(q|0,C|0,w|0,0)|0;if(!((w|0)==0&0==0))break;f=0;g=C;h=0;while(1){w=f;f=f+1|0;o=c[d+(7-w<<2)>>2]|0;p=pc(c[t+(f<<2)>>2]|0,0,b|0,0)|0;q=C;o=qc(o|0,0,g|0,h|0)|0;q=qc(o|0,C|0,p|0,q|0)|0;g=C;c[d+(8-w<<2)>>2]=q;if((f|0)==7)break;else h=0}c[j>>2]=g;e=e+-32|0;if((e|0)<=31){s=e;break b}}pa(38429,38223,802,38335)}else s=m;while(0);if((s|0)>0){w=(1<>2]|0;h=(R(e,k)|0)&w;if((R(h,l)|0)+e&w|0)pa(38454,38223,821,38335);b=pc(h|0,0,l|0,0)|0;b=qc(b|0,C|0,e|0,0)|0;b=mc(b|0,C|0,s|0)|0;f=32-s|0;e=0;g=C;while(1){w=e;e=e+1|0;s=c[d+(7-w<<2)>>2]|0;r=pc(c[t+(e<<2)>>2]|0,0,h|0,0)|0;s=qc(r|0,C|0,s|0,0)|0;s=nc(s|0,C|0,f|0)|0;s=qc(s|0,C|0,b|0,g|0)|0;b=C;c[d+(8-w<<2)>>2]=s;if((e|0)==7)break;else g=0}c[d+4>>2]=b;e=0;f=0}else{e=0;f=0}do{s=c[d+(8-e<<2)>>2]|0;w=e<<1;c[a+(e<<2)>>2]=s<>>(30-w|0);e=e+1|0}while((e|0)!=8);c[a+32>>2]=f;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;c[t+16>>2]=0;c[t+20>>2]=0;c[t+24>>2]=0;c[t+28>>2]=0;e=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));d=u;e=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0))}i=v;return}function Ya(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=0;d=0;while(1){f=a+(e<<2)|0;d=(c[f>>2]|0)+d+(c[b+(e<<2)>>2]|0)|0;c[f>>2]=d&1073741823;e=e+1|0;if((e|0)==9)break;else d=d>>>30}return}function Za(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=0;do{f=a+(e<<2)|0;c[f>>2]=(c[f>>2]|0)+(c[b+(e<<2)>>2]|0);e=e+1|0}while((e|0)!=9);Pa(a,d);return}function _a(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[d>>2]|0)>>>0>>0)pa(38495,38223,883,38514);b=(c[a>>2]|0)-b|0;c[a>>2]=b;b=b+(c[d>>2]|0)|0;c[a>>2]=b&1073741823;e=1;do{b=(c[a+(e<<2)>>2]|0)+(b>>>30)+(c[d+(e<<2)>>2]|0)|0;c[a+(e<<2)>>2]=b&1073741823;e=e+1|0}while((e|0)!=9);return}function $a(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=0;f=1;while(1){f=f+1073741823+(c[a+(g<<2)>>2]|0)+(c[e+(g<<2)>>2]<<1)-(c[b+(g<<2)>>2]|0)|0;c[d+(g<<2)>>2]=f&1073741823;g=g+1|0;if((g|0)==9)break;else f=f>>>30}return}function ab(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+144|0;k=n+108|0;e=n+72|0;l=n+36|0;m=n;do if(!(bb(b)|0)){if(bb(d)|0){e=d;f=b;g=e+72|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));break}if(cb(b,d)|0){db(a,d);break}if(!(eb(b,d)|0)){$a(d,b,e,a);Xa(e,a);h=d+36|0;j=b+36|0;$a(h,j,k,a);Va(e,k,a);e=l;f=k;g=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));Va(l,l,a);e=m;f=b;g=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));Za(m,d,a);$a(l,m,l,a);Pa(l,a);Qa(l,a);$a(b,l,m,a);Va(k,m,a);$a(m,j,m,a);Pa(m,a);Qa(m,a);e=d;f=l;g=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=h;f=m;g=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));break}else{Ha(d);Ha(d+36|0);break}}while(0);i=n;return}function bb(a){a=a|0;if(!(Ia(a)|0))a=0;else a=(Ia(a+36|0)|0)!=0;return a&1|0}function cb(a,b){a=a|0;b=b|0;if(!(Ka(a,b)|0))a=0;else a=(Ka(a+36|0,b+36|0)|0)!=0;return a&1|0}function db(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+112|0;d=j+72|0;e=j+36|0;f=j;do if(!(bb(b)|0)){g=b+36|0;if(!(Ia(g)|0)){h=d;k=g;l=h+36|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));Oa(d,2,a);Xa(d,a);h=e;k=b;l=h+36|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));Va(e,e,a);Oa(e,3,a);_a(e,0-(c[a+180>>2]|0)|0,a);Va(e,d,a);h=e;k=d;l=h+36|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));Va(e,e,a);h=f;k=b;l=h+36|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));Ma(f);$a(e,f,e,a);Pa(e,a);Qa(e,a);$a(b,e,f,a);Va(d,f,a);$a(f,g,f,a);Pa(f,a);Qa(f,a);h=b;k=e;l=h+36|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));h=g;k=f;l=h+36|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));break}else{Ha(b);Ha(g);break}}while(0);i=j;return}function eb(a,b){a=a|0;b=b|0;var c=0;if((Ka(a,b)|0)!=0?(c=a+36|0,(Ia(c)|0)==0):0)a=(Ka(c,b+36|0)|0)==0&1;else a=0;return a|0}function fb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;g=b+32|0;if((c[g>>2]|0)>>>0>=131072)pa(38522,38542,180,38553);h=a&1073741823;f=~a;a=c[b>>2]|0;e=(c[d>>2]<<1)+1073741824-a|0;c[b>>2]=h&e|a&f;a=0;do{a=a+1|0;i=b+(a<<2)|0;j=c[i>>2]|0;e=(e>>>30)+1073741823+(c[d+(a<<2)>>2]<<1)-j|0;c[i>>2]=h&e|j&f}while((a|0)!=8);if((c[g>>2]|0)>>>0<131072)return;else pa(38522,38542,188,38553)}function gb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+32|0;while(1){d=0;f=Kb()|0;do{c[a+(d<<2)>>2]=f&1073741823;d=d+1|0;f=Kb()|0}while((d|0)!=8);c[e>>2]=f&65535;if(Ia(a)|0)continue;if(Ja(a,b)|0)break}return}function hb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=b+72|0;gb(e,d);g=b;h=e;i=g+36|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));Va(e,b,d);f=b+36|0;g=f;h=b;i=g+36|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));Va(e,f,d);Va(a,b,d);Va(a+36|0,f,d);return}function ib(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=b+36|0;f=e;g=a+72|0;h=f+36|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));Xa(e,d);f=b;g=e;h=f+36|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));Va(b,b,d);Va(b,e,d);Va(a,b,d);Va(a+36|0,e,d);Qa(b,d);Qa(e,d);return}function jb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=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;s=i;i=i+288|0;k=s+252|0;l=s+216|0;m=s+180|0;n=s+144|0;o=s+108|0;p=s+72|0;q=s+36|0;g=s;e=c[d+180>>2]|0;if((e+3|0)>>>0>=4)pa(38572,38542,247,38590);h=b+72|0;r=p;t=h;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(p,p,d);r=q;t=h;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(p,q,d);j=(e|0)!=0;if(j){e=0-e|0;r=g;t=p;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(g,g,d);Oa(g,e&255,d)}Va(a,p,d);r=l;t=p;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));$a(l,b,l,d);Pa(l,d);Ya(p,b);f=Ka(l,d)|0;Va(a+36|0,q,d);e=b+36|0;$a(q,e,k,d);Ya(q,e);r=m;t=b;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(m,m,d);Oa(m,3,d);if(j)$a(m,g,m,d);La(k,f,m,k);La(l,f,q,l);r=o;t=l;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(o,o,d);r=n;t=l;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(o,n,d);Va(p,o,d);Va(q,n,d);Va(l,h,d);r=b;t=k;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(b,b,d);$a(b,o,b,d);Pa(b,d);$a(o,b,e,d);$a(e,b,e,d);Va(k,e,d);$a(e,n,e,d);Na(e,d);Pa(e,d);i=s;return}function kb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+144|0;l=n+108|0;m=n;if(!(Ja(b,a+108|0)|0))pa(38609,38542,552,38658);j=c[b>>2]|0;g=(j&1)+-1|0;f=1;e=0;h=j;do{k=f+1073741823+h-(c[a+108+(e<<2)>>2]&g)|0;c[l+(e<<2)>>2]=k&1073741823;f=k>>>30;e=e+1|0;h=c[b+(e<<2)>>2]|0;j=h|j}while((e|0)!=8);k=l+32|0;c[k>>2]=f+65535+h-(c[a+140>>2]&g);e=c[l>>2]|0;if(!(e&1))pa(38638,38542,575,38658);if(!j){Ha(d);Ha(d+36|0)}else{hb(a+220+((((e>>>4&1)+15^e)>>>1&7)*72|0)|0,m,a);h=m+36|0;g=1;do{f=0;e=e>>>4;b=l;do{f=f+1|0;j=b;b=l+(f<<2)|0;c[j>>2]=c[b>>2]<<26&1006632960|e;e=(c[b>>2]|0)>>>4}while((f|0)!=8);c[k>>2]=e;e=c[l>>2]|0;b=e>>>4&1;j=b+15^e;fb((j&1)+-1|0,h,a);jb(a+220+(g*576|0)+((j>>>1&7)*72|0)|0,m,a);g=g+1|0}while((g|0)!=64);fb(b+-1|0,h,a);ib(m,d,a)}i=n;return}function lb(b,c,d){b=b|0;c=c|0;d=d|0;b=(b|0)==0?712:b;switch(a[c>>0]|0){case 4:{Fa(c+1|0,d);Fa(c+33|0,d+36|0);b=mb(b,d)|0;break}case 3:case 2:{Fa(c+1|0,d);nb(b,a[c>>0]|0,d,d+36|0);b=mb(b,d)|0;break}default:b=0}return b|0}function mb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+80|0;d=k+36|0;e=k;if(((bb(b)|0)==0?(Ja(b,a)|0)!=0:0)?(f=b+36|0,(Ja(f,a)|0)!=0):0){g=d;h=f;j=g+36|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(j|0));g=e;h=b;j=g+36|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(j|0));Va(f,d,a);Qa(d,a);Va(b,e,a);_a(e,0-(c[a+180>>2]|0)|0,a);Va(b,e,a);Za(e,a+184|0,a);Qa(e,a);a=(Ka(e,d)|0)!=0&1}else a=0;i=k;return a|0}function nb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=e;g=d;h=f+36|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));Va(d,e,a);_a(e,0-(c[a+180>>2]|0)|0,a);Va(d,e,a);Ya(e,a+184|0);Wa(e,a);if((c[e>>2]^b&255)&1|0)Ra(a,e,e);return}function ob(b,c){b=b|0;c=c|0;var d=0,e=0;e=i;i=i+32|0;d=e;switch(a[b>>0]|0){case 4:{Eb(b,65,d);break}case 0:{Eb(b,1,d);break}default:Eb(b,33,d)}Ab(d,32,c);i=e;return}function pb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+48|0;g=e;f=Lb(b)|0;h=Lb(b)|0;Mb(b,g);ob(a,g+h|0);wb(g,f+20|0,c,d)|0;i=e;return}function qb(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+128|0;h=j;f=h;g=f+128|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(g|0));if(e>>>0>128){Jb(c,e,h);c=0}else{tc(h|0,c|0,e|0)|0;c=0}do{g=h+c|0;f=d[g>>0]|0;a[b+c>>0]=f^92;a[g>>0]=f^54;c=c+1|0}while((c|0)!=128);b=b+128|0;Fb(b);Hb(b,h,128);i=j;return}function rb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;i=i+64|0;e=c;d=a+128|0;Ib(d,e);Fb(d);Hb(d,a,128);Hb(d,e,64);Ib(d,b);lc(a|0,0,336)|0;i=c;return}function sb(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;f=i;i=i+336|0;g=f;qb(g,a,b);Hb(g+128|0,c,d);rb(g,e);i=f;return}function tb(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+144|0;o=r+104|0;p=r+40|0;q=r;if((f|0)<0)f=0;else{a[o>>0]=c[d+36>>2]&1|2;n=o+1|0;Ga(d,n);Ea(o+33|0,f);f=b+108|0;j=p+32|0;while(1){sb(e,32,o,37,p);Fa(p,q);if(Ja(q,f)|0?(kb(b,q,g),ab(b,d,g),(bb(g)|0)==0):0)break;a[o>>0]=1;k=n;l=j;m=k+32|0;do{a[k>>0]=a[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0))}if(h|0){k=h;l=j;m=k+32|0;do{a[k>>0]=a[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0))}k=o;m=k+37|0;do{a[k>>0]=0;k=k+1|0}while((k|0)<(m|0));k=p;m=k+64|0;do{a[k>>0]=0;k=k+1|0}while((k|0)<(m|0));k=q;m=k+36|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(m|0));f=1}i=r;return f|0}function ub(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;j=i;i=i+112|0;k=j+72|0;l=j;tb(712,b,d,e,l,0)|0;a[k>>0]=c[l+36>>2]&1|2;Ga(l,k+1|0);pb(k,f,g,h);i=j;return 1}function vb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;a:do if((g|0)>0){h=0;do{if(a[f+h>>0]|0)break a;h=h+1|0}while((h|0)<(g|0))}else h=0;while(0);o=(((g-h|0)*138|0)>>>0)/100|0;n=o+1|0;p=i;i=i+((1*n|0)+15&-16)|0;lc(p|0,0,n|0)|0;if((h|0)<(g|0)){j=o;m=h;do{k=a[f+m>>0]|0;if((o|0)>(j|0)|k<<24>>24!=0){k=k&255;l=o;while(1){r=p+l|0;k=(d[r>>0]<<8)+k|0;a[r>>0]=(k|0)%58|0;l=l+-1|0;if((l|0)>(j|0)|(k+57|0)>>>0>114)k=(k|0)/58|0;else{j=l;break}}}else j=o;m=m+1|0}while((m|0)!=(g|0));j=0}else j=0;while(1){if(a[p+j>>0]|0)break;k=j+1|0;if((j|0)<(o|0))j=k;else{j=k;break}}k=n+h-j|0;if((c[e>>2]|0)>>>0>k>>>0){if(!h)h=0;else lc(b|0,49,h|0)|0;if((j|0)<=(o|0))while(1){a[b+h>>0]=a[38674+(d[p+j>>0]|0)>>0]|0;h=h+1|0;if((j|0)<(o|0))j=j+1|0;else break}a[b+h>>0]=0;j=1}else{j=0;h=k}c[e>>2]=h+1;i=q;return j|0}function wb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;f=g;if((b|0)>128)a=0;else{j=b+32|0;h=ia()|0;k=i;i=i+((1*j|0)+15&-16)|0;l=k+b|0;tc(k|0,a|0,b|0)|0;Eb(a,b,l);Eb(l,32,l);c[f>>2]=e;a=vb(d,f,k,b+4|0)|0;lc(k|0,0,j|0)|0;a=a?c[f>>2]|0:0;oa(h|0)}i=g;return a|0}function xb(a,b){a=a|0;b=b|0;var e=0,f=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,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;s=(d[b+1>>0]|0)<<8|(d[b>>0]|0)|(d[b+2>>0]|0)<<16|(d[b+3>>0]|0)<<24;D=(d[b+5>>0]|0)<<8|(d[b+4>>0]|0)|(d[b+6>>0]|0)<<16|(d[b+7>>0]|0)<<24;v=(d[b+9>>0]|0)<<8|(d[b+8>>0]|0)|(d[b+10>>0]|0)<<16|(d[b+11>>0]|0)<<24;f=(d[b+13>>0]|0)<<8|(d[b+12>>0]|0)|(d[b+14>>0]|0)<<16|(d[b+15>>0]|0)<<24;x=(d[b+17>>0]|0)<<8|(d[b+16>>0]|0)|(d[b+18>>0]|0)<<16|(d[b+19>>0]|0)<<24;t=(d[b+21>>0]|0)<<8|(d[b+20>>0]|0)|(d[b+22>>0]|0)<<16|(d[b+23>>0]|0)<<24;y=(d[b+25>>0]|0)<<8|(d[b+24>>0]|0)|(d[b+26>>0]|0)<<16|(d[b+27>>0]|0)<<24;z=(d[b+29>>0]|0)<<8|(d[b+28>>0]|0)|(d[b+30>>0]|0)<<16|(d[b+31>>0]|0)<<24;B=(d[b+33>>0]|0)<<8|(d[b+32>>0]|0)|(d[b+34>>0]|0)<<16|(d[b+35>>0]|0)<<24;i=(d[b+37>>0]|0)<<8|(d[b+36>>0]|0)|(d[b+38>>0]|0)<<16|(d[b+39>>0]|0)<<24;F=(d[b+41>>0]|0)<<8|(d[b+40>>0]|0)|(d[b+42>>0]|0)<<16|(d[b+43>>0]|0)<<24;l=(d[b+45>>0]|0)<<8|(d[b+44>>0]|0)|(d[b+46>>0]|0)<<16|(d[b+47>>0]|0)<<24;H=(d[b+49>>0]|0)<<8|(d[b+48>>0]|0)|(d[b+50>>0]|0)<<16|(d[b+51>>0]|0)<<24;u=(d[b+53>>0]|0)<<8|(d[b+52>>0]|0)|(d[b+54>>0]|0)<<16|(d[b+55>>0]|0)<<24;m=(d[b+57>>0]|0)<<8|(d[b+56>>0]|0)|(d[b+58>>0]|0)<<16|(d[b+59>>0]|0)<<24;w=(d[b+61>>0]|0)<<8|(d[b+60>>0]|0)|(d[b+62>>0]|0)<<16|(d[b+63>>0]|0)<<24;b=a+8|0;A=c[b>>2]|0;p=a+12|0;e=c[p>>2]|0;n=a+16|0;r=c[n>>2]|0;k=a+20|0;I=c[k>>2]|0;g=a+24|0;E=c[g>>2]|0;j=A+s+(r^e^I)|0;j=(j<<11|j>>>21)+E|0;C=r<<10|r>>>22;A=t+1352829926+A+((r|~I)^e)|0;A=(A<<8|A>>>24)+E|0;o=E+D+(C^e^j)|0;o=(o<<14|o>>>18)+I|0;G=e<<10|e>>>22;E=m+1352829926+E+(A^(e|~C))|0;E=(E<<9|E>>>23)+I|0;J=I+v+(j^G^o)|0;J=(J<<15|J>>>17)+C|0;j=j<<10|j>>>22;I=z+1352829926+I+(E^(A|~G))|0;I=(I<<9|I>>>23)+C|0;A=A<<10|A>>>22;a=C+f+(o^j^J)|0;a=(a<<12|a>>>20)+G|0;o=o<<10|o>>>22;C=s+1352829926+C+(I^(E|~A))|0;C=(C<<11|C>>>21)+G|0;E=E<<10|E>>>22;h=G+x+(J^o^a)|0;h=(h<<5|h>>>27)+j|0;J=J<<10|J>>>22;G=i+1352829926+G+(C^(I|~E))|0;G=(G<<13|G>>>19)+A|0;I=I<<10|I>>>22;j=j+t+(a^J^h)|0;j=(j<<8|j>>>24)+o|0;a=a<<10|a>>>22;A=v+1352829926+A+(G^(C|~I))|0;A=(A<<15|A>>>17)+E|0;C=C<<10|C>>>22;o=o+y+(h^a^j)|0;o=(o<<7|o>>>25)+J|0;h=h<<10|h>>>22;E=l+1352829926+E+(A^(G|~C))|0;E=(E<<15|E>>>17)+I|0;G=G<<10|G>>>22;J=J+z+(j^h^o)|0;J=(J<<9|J>>>23)+a|0;j=j<<10|j>>>22;I=x+1352829926+I+(E^(A|~G))|0;I=(I<<5|I>>>27)+C|0;A=A<<10|A>>>22;a=a+B+(o^j^J)|0;a=(a<<11|a>>>21)+h|0;o=o<<10|o>>>22;C=u+1352829926+C+(I^(E|~A))|0;C=(C<<7|C>>>25)+G|0;E=E<<10|E>>>22;h=h+i+(J^o^a)|0;h=(h<<13|h>>>19)+j|0;J=J<<10|J>>>22;G=y+1352829926+G+(C^(I|~E))|0;G=(G<<7|G>>>25)+A|0;I=I<<10|I>>>22;j=j+F+(a^J^h)|0;j=(j<<14|j>>>18)+o|0;a=a<<10|a>>>22;A=w+1352829926+A+(G^(C|~I))|0;A=(A<<8|A>>>24)+E|0;C=C<<10|C>>>22;o=o+l+(h^a^j)|0;o=(o<<15|o>>>17)+J|0;h=h<<10|h>>>22;E=B+1352829926+E+(A^(G|~C))|0;E=(E<<11|E>>>21)+I|0;G=G<<10|G>>>22;J=J+H+(j^h^o)|0;J=(J<<6|J>>>26)+a|0;j=j<<10|j>>>22;I=D+1352829926+I+(E^(A|~G))|0;I=(I<<14|I>>>18)+C|0;A=A<<10|A>>>22;a=a+u+(o^j^J)|0;a=(a<<7|a>>>25)+h|0;o=o<<10|o>>>22;C=F+1352829926+C+(I^(E|~A))|0;C=(C<<14|C>>>18)+G|0;E=E<<10|E>>>22;h=h+m+(J^o^a)|0;h=(h<<9|h>>>23)+j|0;J=J<<10|J>>>22;G=f+1352829926+G+(C^(I|~E))|0;G=(G<<12|G>>>20)+A|0;I=I<<10|I>>>22;j=j+w+(a^J^h)|0;j=(j<<8|j>>>24)+o|0;a=a<<10|a>>>22;A=H+1352829926+A+(G^(C|~I))|0;A=(A<<6|A>>>26)+E|0;C=C<<10|C>>>22;o=z+1518500249+o+(j&h|a&~j)|0;o=(o<<7|o>>>25)+J|0;h=h<<10|h>>>22;E=y+1548603684+E+(A&C|G&~C)|0;E=(E<<9|E>>>23)+I|0;G=G<<10|G>>>22;J=x+1518500249+J+(o&j|h&~o)|0;J=(J<<6|J>>>26)+a|0;j=j<<10|j>>>22;I=l+1548603684+I+(E&G|A&~G)|0;I=(I<<13|I>>>19)+C|0;A=A<<10|A>>>22;a=u+1518500249+a+(J&o|j&~J)|0;a=(a<<8|a>>>24)+h|0;o=o<<10|o>>>22;C=f+1548603684+C+(I&A|E&~A)|0;C=(C<<15|C>>>17)+G|0;E=E<<10|E>>>22;h=D+1518500249+h+(a&J|o&~a)|0;h=(h<<13|h>>>19)+j|0;J=J<<10|J>>>22;G=z+1548603684+G+(C&E|I&~E)|0;G=(G<<7|G>>>25)+A|0;I=I<<10|I>>>22;j=F+1518500249+j+(h&a|J&~h)|0;j=(j<<11|j>>>21)+o|0;a=a<<10|a>>>22;A=s+1548603684+A+(G&I|C&~I)|0;A=(A<<12|A>>>20)+E|0;C=C<<10|C>>>22;o=y+1518500249+o+(j&h|a&~j)|0;o=(o<<9|o>>>23)+J|0;h=h<<10|h>>>22;E=u+1548603684+E+(A&C|G&~C)|0;E=(E<<8|E>>>24)+I|0;G=G<<10|G>>>22;J=w+1518500249+J+(o&j|h&~o)|0;J=(J<<7|J>>>25)+a|0;j=j<<10|j>>>22;I=t+1548603684+I+(E&G|A&~G)|0;I=(I<<9|I>>>23)+C|0;A=A<<10|A>>>22;a=f+1518500249+a+(J&o|j&~J)|0;a=(a<<15|a>>>17)+h|0;o=o<<10|o>>>22;C=F+1548603684+C+(I&A|E&~A)|0;C=(C<<11|C>>>21)+G|0;E=E<<10|E>>>22;h=H+1518500249+h+(a&J|o&~a)|0;h=(h<<7|h>>>25)+j|0;J=J<<10|J>>>22;G=m+1548603684+G+(C&E|I&~E)|0;G=(G<<7|G>>>25)+A|0;I=I<<10|I>>>22;j=s+1518500249+j+(h&a|J&~h)|0;j=(j<<12|j>>>20)+o|0;a=a<<10|a>>>22;A=w+1548603684+A+(G&I|C&~I)|0;A=(A<<7|A>>>25)+E|0;C=C<<10|C>>>22;o=i+1518500249+o+(j&h|a&~j)|0;o=(o<<15|o>>>17)+J|0;h=h<<10|h>>>22;E=B+1548603684+E+(A&C|G&~C)|0;E=(E<<12|E>>>20)+I|0;G=G<<10|G>>>22;J=t+1518500249+J+(o&j|h&~o)|0;J=(J<<9|J>>>23)+a|0;j=j<<10|j>>>22;I=H+1548603684+I+(E&G|A&~G)|0;I=(I<<7|I>>>25)+C|0;A=A<<10|A>>>22;a=v+1518500249+a+(J&o|j&~J)|0;a=(a<<11|a>>>21)+h|0;o=o<<10|o>>>22;C=x+1548603684+C+(I&A|E&~A)|0;C=(C<<6|C>>>26)+G|0;E=E<<10|E>>>22;h=m+1518500249+h+(a&J|o&~a)|0;h=(h<<7|h>>>25)+j|0;J=J<<10|J>>>22;G=i+1548603684+G+(C&E|I&~E)|0;G=(G<<15|G>>>17)+A|0;I=I<<10|I>>>22;j=l+1518500249+j+(h&a|J&~h)|0;j=(j<<13|j>>>19)+o|0;a=a<<10|a>>>22;A=D+1548603684+A+(G&I|C&~I)|0;A=(A<<13|A>>>19)+E|0;C=C<<10|C>>>22;q=~j;o=B+1518500249+o+(j&h|a&q)|0;o=(o<<12|o>>>20)+J|0;h=h<<10|h>>>22;E=v+1548603684+E+(A&C|G&~C)|0;E=(E<<11|E>>>21)+I|0;G=G<<10|G>>>22;q=f+1859775393+J+((o|q)^h)|0;q=(q<<11|q>>>21)+a|0;j=j<<10|j>>>22;I=w+1836072691+I+((E|~A)^G)|0;I=(I<<9|I>>>23)+C|0;A=A<<10|A>>>22;a=F+1859775393+a+((q|~o)^j)|0;a=(a<<13|a>>>19)+h|0;o=o<<10|o>>>22;C=t+1836072691+C+((I|~E)^A)|0;C=(C<<7|C>>>25)+G|0;E=E<<10|E>>>22;h=m+1859775393+h+((a|~q)^o)|0;h=(h<<6|h>>>26)+j|0;q=q<<10|q>>>22;G=D+1836072691+G+((C|~I)^E)|0;G=(G<<15|G>>>17)+A|0;I=I<<10|I>>>22;j=x+1859775393+j+((h|~a)^q)|0;j=(j<<7|j>>>25)+o|0;a=a<<10|a>>>22;A=f+1836072691+A+((G|~C)^I)|0;A=(A<<11|A>>>21)+E|0;C=C<<10|C>>>22;o=i+1859775393+o+((j|~h)^a)|0;o=(o<<14|o>>>18)+q|0;h=h<<10|h>>>22;E=z+1836072691+E+((A|~G)^C)|0;E=(E<<8|E>>>24)+I|0;G=G<<10|G>>>22;q=w+1859775393+q+((o|~j)^h)|0;q=(q<<9|q>>>23)+a|0;j=j<<10|j>>>22;I=m+1836072691+I+((E|~A)^G)|0;I=(I<<6|I>>>26)+C|0;A=A<<10|A>>>22;a=B+1859775393+a+((q|~o)^j)|0;a=(a<<13|a>>>19)+h|0;o=o<<10|o>>>22;C=y+1836072691+C+((I|~E)^A)|0;C=(C<<6|C>>>26)+G|0;E=E<<10|E>>>22;h=D+1859775393+h+((a|~q)^o)|0;h=(h<<15|h>>>17)+j|0;q=q<<10|q>>>22;G=i+1836072691+G+((C|~I)^E)|0;G=(G<<14|G>>>18)+A|0;I=I<<10|I>>>22;j=v+1859775393+j+((h|~a)^q)|0;j=(j<<14|j>>>18)+o|0;a=a<<10|a>>>22;A=l+1836072691+A+((G|~C)^I)|0;A=(A<<12|A>>>20)+E|0;C=C<<10|C>>>22;o=z+1859775393+o+((j|~h)^a)|0;o=(o<<8|o>>>24)+q|0;h=h<<10|h>>>22;E=B+1836072691+E+((A|~G)^C)|0;E=(E<<13|E>>>19)+I|0;G=G<<10|G>>>22;q=s+1859775393+q+((o|~j)^h)|0;q=(q<<13|q>>>19)+a|0;j=j<<10|j>>>22;I=H+1836072691+I+((E|~A)^G)|0;I=(I<<5|I>>>27)+C|0;A=A<<10|A>>>22;a=y+1859775393+a+((q|~o)^j)|0;a=(a<<6|a>>>26)+h|0;o=o<<10|o>>>22;C=v+1836072691+C+((I|~E)^A)|0;C=(C<<14|C>>>18)+G|0;E=E<<10|E>>>22;h=u+1859775393+h+((a|~q)^o)|0;h=(h<<5|h>>>27)+j|0;q=q<<10|q>>>22;G=F+1836072691+G+((C|~I)^E)|0;G=(G<<13|G>>>19)+A|0;I=I<<10|I>>>22;j=l+1859775393+j+((h|~a)^q)|0;j=(j<<12|j>>>20)+o|0;a=a<<10|a>>>22;A=s+1836072691+A+((G|~C)^I)|0;A=(A<<13|A>>>19)+E|0;C=C<<10|C>>>22;o=t+1859775393+o+((j|~h)^a)|0;o=(o<<7|o>>>25)+q|0;h=h<<10|h>>>22;E=x+1836072691+E+((A|~G)^C)|0;E=(E<<7|E>>>25)+I|0;G=G<<10|G>>>22;q=H+1859775393+q+((o|~j)^h)|0;q=(q<<5|q>>>27)+a|0;j=j<<10|j>>>22;I=u+1836072691+I+((E|~A)^G)|0;I=(I<<5|I>>>27)+C|0;A=A<<10|A>>>22;a=D+-1894007588+a+(q&j|o&~j)|0;a=(a<<11|a>>>21)+h|0;o=o<<10|o>>>22;C=B+2053994217+C+(I&E|A&~I)|0;C=(C<<15|C>>>17)+G|0;E=E<<10|E>>>22;h=i+-1894007588+h+(a&o|q&~o)|0;h=(h<<12|h>>>20)+j|0;q=q<<10|q>>>22;G=y+2053994217+G+(C&I|E&~C)|0;G=(G<<5|G>>>27)+A|0;I=I<<10|I>>>22;j=l+-1894007588+j+(h&q|a&~q)|0;j=(j<<14|j>>>18)+o|0;a=a<<10|a>>>22;A=x+2053994217+A+(G&C|I&~G)|0;A=(A<<8|A>>>24)+E|0;C=C<<10|C>>>22;o=F+-1894007588+o+(j&a|h&~a)|0;o=(o<<15|o>>>17)+q|0;h=h<<10|h>>>22;E=D+2053994217+E+(A&G|C&~A)|0;E=(E<<11|E>>>21)+I|0;G=G<<10|G>>>22;q=s+-1894007588+q+(o&h|j&~h)|0;q=(q<<14|q>>>18)+a|0;j=j<<10|j>>>22;I=f+2053994217+I+(E&A|G&~E)|0;I=(I<<14|I>>>18)+C|0;A=A<<10|A>>>22;a=B+-1894007588+a+(q&j|o&~j)|0;a=(a<<15|a>>>17)+h|0;o=o<<10|o>>>22;C=l+2053994217+C+(I&E|A&~I)|0;C=(C<<14|C>>>18)+G|0;E=E<<10|E>>>22;h=H+-1894007588+h+(a&o|q&~o)|0;h=(h<<9|h>>>23)+j|0;q=q<<10|q>>>22;G=w+2053994217+G+(C&I|E&~C)|0;G=(G<<6|G>>>26)+A|0;I=I<<10|I>>>22;j=x+-1894007588+j+(h&q|a&~q)|0;j=(j<<8|j>>>24)+o|0;a=a<<10|a>>>22;A=s+2053994217+A+(G&C|I&~G)|0;A=(A<<14|A>>>18)+E|0;C=C<<10|C>>>22;o=u+-1894007588+o+(j&a|h&~a)|0;o=(o<<9|o>>>23)+q|0;h=h<<10|h>>>22;E=t+2053994217+E+(A&G|C&~A)|0;E=(E<<6|E>>>26)+I|0;G=G<<10|G>>>22;q=f+-1894007588+q+(o&h|j&~h)|0;q=(q<<14|q>>>18)+a|0;j=j<<10|j>>>22;I=H+2053994217+I+(E&A|G&~E)|0;I=(I<<9|I>>>23)+C|0;A=A<<10|A>>>22;a=z+-1894007588+a+(q&j|o&~j)|0;a=(a<<5|a>>>27)+h|0;o=o<<10|o>>>22;C=v+2053994217+C+(I&E|A&~I)|0;C=(C<<12|C>>>20)+G|0;E=E<<10|E>>>22;h=w+-1894007588+h+(a&o|q&~o)|0;h=(h<<6|h>>>26)+j|0;q=q<<10|q>>>22;G=u+2053994217+G+(C&I|E&~C)|0;G=(G<<9|G>>>23)+A|0;I=I<<10|I>>>22;j=m+-1894007588+j+(h&q|a&~q)|0;j=(j<<8|j>>>24)+o|0;a=a<<10|a>>>22;A=i+2053994217+A+(G&C|I&~G)|0;A=(A<<12|A>>>20)+E|0;C=C<<10|C>>>22;o=t+-1894007588+o+(j&a|h&~a)|0;o=(o<<6|o>>>26)+q|0;h=h<<10|h>>>22;E=z+2053994217+E+(A&G|C&~A)|0;E=(E<<5|E>>>27)+I|0;G=G<<10|G>>>22;q=y+-1894007588+q+(o&h|j&~h)|0;q=(q<<5|q>>>27)+a|0;j=j<<10|j>>>22;I=F+2053994217+I+(E&A|G&~E)|0;I=(I<<15|I>>>17)+C|0;A=A<<10|A>>>22;a=v+-1894007588+a+(q&j|o&~j)|0;a=(a<<12|a>>>20)+h|0;o=o<<10|o>>>22;C=m+2053994217+C+(I&E|A&~I)|0;C=(C<<8|C>>>24)+G|0;E=E<<10|E>>>22;h=x+-1454113458+h+(a^(q|~o))|0;h=(h<<9|h>>>23)+j|0;q=q<<10|q>>>22;G=G+H+(I^E^C)|0;G=(G<<8|G>>>24)+A|0;I=I<<10|I>>>22;j=s+-1454113458+j+(h^(a|~q))|0;j=(j<<15|j>>>17)+o|0;a=a<<10|a>>>22;A=A+w+(C^I^G)|0;A=(A<<5|A>>>27)+E|0;C=C<<10|C>>>22;o=t+-1454113458+o+(j^(h|~a))|0;o=(o<<5|o>>>27)+q|0;h=h<<10|h>>>22;E=E+F+(G^C^A)|0;E=(E<<12|E>>>20)+I|0;G=G<<10|G>>>22;q=i+-1454113458+q+(o^(j|~h))|0;q=(q<<11|q>>>21)+a|0;j=j<<10|j>>>22;x=I+x+(A^G^E)|0;x=(x<<9|x>>>23)+C|0;A=A<<10|A>>>22;a=z+-1454113458+a+(q^(o|~j))|0;a=(a<<6|a>>>26)+h|0;o=o<<10|o>>>22;C=C+D+(E^A^x)|0;C=(C<<12|C>>>20)+G|0;E=E<<10|E>>>22;h=H+-1454113458+h+(a^(q|~o))|0;h=(h<<8|h>>>24)+j|0;q=q<<10|q>>>22;t=G+t+(x^E^C)|0;t=(t<<5|t>>>27)+A|0;x=x<<10|x>>>22;j=v+-1454113458+j+(h^(a|~q))|0;j=(j<<13|j>>>19)+o|0;a=a<<10|a>>>22;A=A+B+(C^x^t)|0;A=(A<<14|A>>>18)+E|0;C=C<<10|C>>>22;o=F+-1454113458+o+(j^(h|~a))|0;o=(o<<12|o>>>20)+q|0;h=h<<10|h>>>22;z=E+z+(t^C^A)|0;z=(z<<6|z>>>26)+x|0;t=t<<10|t>>>22;q=m+-1454113458+q+(o^(j|~h))|0;q=(q<<5|q>>>27)+a|0;j=j<<10|j>>>22;x=x+y+(A^t^z)|0;x=(x<<8|x>>>24)+C|0;A=A<<10|A>>>22;a=D+-1454113458+a+(q^(o|~j))|0;a=(a<<12|a>>>20)+h|0;o=o<<10|o>>>22;v=C+v+(z^A^x)|0;v=(v<<13|v>>>19)+t|0;z=z<<10|z>>>22;h=f+-1454113458+h+(a^(q|~o))|0;h=(h<<13|h>>>19)+j|0;q=q<<10|q>>>22;t=t+u+(x^z^v)|0;t=(t<<6|t>>>26)+A|0;x=x<<10|x>>>22;j=B+-1454113458+j+(h^(a|~q))|0;j=(j<<14|j>>>18)+o|0;a=a<<10|a>>>22;m=A+m+(v^x^t)|0;m=(m<<5|m>>>27)+z|0;v=v<<10|v>>>22;o=l+-1454113458+o+(j^(h|~a))|0;o=(o<<11|o>>>21)+q|0;h=h<<10|h>>>22;s=z+s+(t^v^m)|0;s=(s<<15|s>>>17)+x|0;t=t<<10|t>>>22;q=y+-1454113458+q+(o^(j|~h))|0;q=(q<<8|q>>>24)+a|0;j=j<<10|j>>>22;f=x+f+(m^t^s)|0;f=(f<<13|f>>>19)+v|0;m=m<<10|m>>>22;a=w+-1454113458+a+(q^(o|~j))|0;a=(a<<5|a>>>27)+h|0;o=o<<10|o>>>22;i=v+i+(s^m^f)|0;i=(i<<11|i>>>21)+t|0;s=s<<10|s>>>22;h=u+-1454113458+h+(a^(q|~o))|0;l=t+l+(f^s^i)|0;c[p>>2]=s+r+(q<<10|q>>>22);c[n>>2]=m+(c[k>>2]|0)+o;c[k>>2]=j+(c[g>>2]|0)+m+(l<<11|l>>>21);c[g>>2]=j+(c[b>>2]|0)+i+(h<<6|h>>>26);c[b>>2]=(f<<10|f>>>22)+e+a;return}function yb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if(d|0){h=c[a>>2]|0;e=h&63;f=64-e|0;h=h+d|0;c[a>>2]=h;if(h>>>0>>0){h=a+4|0;c[h>>2]=(c[h>>2]|0)+1}if(!((e|0)==0|f>>>0>d>>>0)){tc(a+28+e|0,b|0,f|0)|0;xb(a,a+28|0);e=0;b=b+f|0;d=d-f|0}if(d>>>0>63){g=d+-64|0;h=g&-64;f=b+(h+64)|0;while(1){xb(a,b);d=d+-64|0;if(d>>>0<=63)break;else b=b+64|0}b=f;d=g-h|0}if(d|0)tc(a+28+e|0,b|0,d|0)|0}return}function zb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e;g=c[b>>2]|0;h=c[b+4>>2]|0;a[f>>0]=g<<3;a[f+1>>0]=g>>>5;a[f+2>>0]=g>>>13;a[f+3>>0]=g>>>21;a[f+4>>0]=h<<3|g>>>29;a[f+5>>0]=h>>>5;a[f+6>>0]=h>>>13;a[f+7>>0]=h>>>21;g=g&63;yb(b,38733,(g>>>0<56?56:120)-g|0);yb(b,f,8);f=b+8|0;a[d>>0]=c[f>>2];a[d+1>>0]=(c[f>>2]|0)>>>8;a[d+2>>0]=(c[f>>2]|0)>>>16;a[d+3>>0]=(c[f>>2]|0)>>>24;f=b+12|0;a[d+4>>0]=c[f>>2];a[d+5>>0]=(c[f>>2]|0)>>>8;a[d+6>>0]=(c[f>>2]|0)>>>16;a[d+7>>0]=(c[f>>2]|0)>>>24;f=b+16|0;a[d+8>>0]=c[f>>2];a[d+9>>0]=(c[f>>2]|0)>>>8;a[d+10>>0]=(c[f>>2]|0)>>>16;a[d+11>>0]=(c[f>>2]|0)>>>24;f=b+20|0;a[d+12>>0]=c[f>>2];a[d+13>>0]=(c[f>>2]|0)>>>8;a[d+14>>0]=(c[f>>2]|0)>>>16;a[d+15>>0]=(c[f>>2]|0)>>>24;b=b+24|0;a[d+16>>0]=c[b>>2];a[d+17>>0]=(c[b>>2]|0)>>>8;a[d+18>>0]=(c[b>>2]|0)>>>16;a[d+19>>0]=(c[b>>2]|0)>>>24;i=e;return}function Ab(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+96|0;e=h;f=e+8|0;g=e;j=g+92|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(j|0));c[f>>2]=1732584193;c[e+12>>2]=-271733879;c[e+16>>2]=-1732584194;c[e+20>>2]=271733878;c[e+24>>2]=-1009589776;yb(e,a,b);zb(e,d);i=h;return}function Bb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=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,y=0,z=0,A=0,B=0,C=0;y=i;i=i+64|0;t=y;u=c[a>>2]|0;v=a+4|0;w=a+8|0;x=a+12|0;q=a+16|0;r=a+20|0;s=a+24|0;p=a+28|0;g=0;o=u;a=c[p>>2]|0;h=c[s>>2]|0;j=c[r>>2]|0;k=c[q>>2]|0;e=c[x>>2]|0;l=c[w>>2]|0;f=c[v>>2]|0;while(1){n=((k>>>6|k<<26)^(k>>>11|k<<21)^(k>>>25|k<<7))+a+(h&~k^j&k)+(c[37828+(g<<2)>>2]|0)|0;a=c[b>>2]|0;c[t+(g<<2)>>2]=a;a=n+a|0;e=a+e|0;a=((o>>>2|o<<30)^(o>>>13|o<<19)^(o>>>22|o<<10))+(o&(l^f)^l&f)+a|0;g=g+1|0;if((g|0)==16){n=16;m=a;g=e;a=l;e=o;break}else{C=o;B=f;A=l;z=k;m=j;n=h;b=b+4|0;o=a;k=e;f=C;l=B;e=A;j=z;h=m;a=n}}while(1){A=n;n=n+1|0;z=c[t+((n&15)<<2)>>2]|0;b=c[t+((A+14&15)<<2)>>2]|0;C=((g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7))+h+(j&~g^k&g)+(c[37828+(A<<2)>>2]|0)|0;B=t+((A&15)<<2)|0;b=((z>>>18|z<<14)^z>>>3^(z>>>7|z<<25))+(c[t+((A+9&15)<<2)>>2]|0)+(c[B>>2]|0)+((b>>>19|b<<13)^b>>>10^(b>>>17|b<<15))|0;c[B>>2]=b;b=C+b|0;a=b+a|0;b=((m>>>2|m<<30)^(m>>>13|m<<19)^(m>>>22|m<<10))+(m&(f^e)^f&e)+b|0;if((n|0)==64)break;else{o=m;z=e;A=f;B=g;C=k;h=j;m=b;g=a;e=o;f=z;a=A;k=B;j=C}}c[d>>2]=u+b;c[d+4>>2]=(c[v>>2]|0)+m;c[d+8>>2]=(c[w>>2]|0)+e;c[d+12>>2]=(c[x>>2]|0)+f;c[d+16>>2]=(c[q>>2]|0)+a;c[d+20>>2]=(c[r>>2]|0)+g;c[d+24>>2]=(c[s>>2]|0)+k;c[d+28>>2]=(c[p>>2]|0)+j;i=y;return}function Cb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;do if(e|0){n=b+32|0;g=n;h=c[g>>2]|0;g=c[g+4>>2]|0;f=mc(h|0,g|0,3)|0;f=f&63;if(f){i=64-f|0;j=b+40|0;f=j+f|0;if(i>>>0>e>>>0){tc(f|0,d|0,e|0)|0;b=qc(h|0,g|0,e<<3|0,0)|0;c[n>>2]=b;c[n+4>>2]=C;break}tc(f|0,d|0,i|0)|0;m=qc(h|0,g|0,i<<3|0,0)|0;f=n;c[f>>2]=m;c[f+4>>2]=C;e=e-i|0;f=0;do{m=b+40+(f<<2)|0;c[m>>2]=sc(c[m>>2]|0)|0;f=f+1|0}while((f|0)!=16);Bb(b,j,b);d=d+i|0}if(e>>>0>63){j=b+40|0;l=e+-64|0;m=l&-64;k=m+64|0;i=d;while(1){f=j;g=i;h=f+64|0;do{a[f>>0]=a[g>>0]|0;f=f+1|0;g=g+1|0}while((f|0)<(h|0));f=0;do{h=b+40+(f<<2)|0;c[h>>2]=sc(c[h>>2]|0)|0;f=f+1|0}while((f|0)!=16);Bb(b,j,b);g=n;g=qc(c[g>>2]|0,c[g+4>>2]|0,512,0)|0;h=n;c[h>>2]=g;c[h+4>>2]=C;e=e+-64|0;if(e>>>0<=63)break;else i=i+64|0}d=d+k|0;e=l-m|0}if(e|0){tc(b+40|0,d|0,e|0)|0;b=n;b=qc(c[b>>2]|0,c[b+4>>2]|0,e<<3|0,0)|0;c[n>>2]=b;c[n+4>>2]=C}}while(0);return}function Db(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if(d){h=b+32|0;f=h;f=mc(c[f>>2]|0,c[f+4>>2]|0,3)|0;f=f&63;e=f+1|0;g=b+40|0;a[g+f>>0]=-128;if(e>>>0>56){lc(g+e|0,0,f^63|0)|0;e=0;do{f=b+40+(e<<2)|0;c[f>>2]=sc(c[f>>2]|0)|0;e=e+1|0}while((e|0)!=16);Bb(b,g,b);e=0}lc(g+e|0,0,56-e|0)|0;e=0;do{f=b+40+(e<<2)|0;c[f>>2]=sc(c[f>>2]|0)|0;e=e+1|0}while((e|0)!=14);e=c[h>>2]|0;c[b+96>>2]=c[h+4>>2];c[b+100>>2]=e;Bb(b,g,b);e=0;do{h=b+(e<<2)|0;c[h>>2]=sc(c[h>>2]|0)|0;e=e+1|0}while((e|0)!=8);e=d;f=b;g=e+32|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0))}e=b;g=e+104|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(g|0));return}function Eb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+112|0;e=g;c[e>>2]=c[9449];c[e+4>>2]=c[9450];c[e+8>>2]=c[9451];c[e+12>>2]=c[9452];c[e+16>>2]=c[9453];c[e+20>>2]=c[9454];c[e+24>>2]=c[9455];c[e+28>>2]=c[9456];f=e+32|0;h=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(h|0));Cb(e,a,b);Db(e,d);i=g;return}function Fb(a){a=a|0;var b=0,d=0,e=0;if(a|0){b=a;d=8;e=b+64|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));lc(a+64|0,0,144)|0}return}function Gb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=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,y=0,z=0,A=0,B=0,D=0,E=0,F=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,Y=0,Z=0,_=0;L=i;i=i+128|0;F=L;K=a;J=c[K>>2]|0;K=c[K+4>>2]|0;B=a+8|0;w=B;D=a+16|0;e=D;E=a+24|0;f=E;G=a+32|0;p=G;H=a+40|0;q=H;I=a+48|0;m=I;A=a+56|0;h=A;j=0;l=J;u=K;t=c[w>>2]|0;z=c[e>>2]|0;w=c[w+4>>2]|0;a=c[e+4>>2]|0;e=c[f>>2]|0;f=c[f+4>>2]|0;o=c[p>>2]|0;p=c[p+4>>2]|0;g=c[h>>2]|0;h=c[h+4>>2]|0;r=c[q>>2]|0;q=c[q+4>>2]|0;k=c[m>>2]|0;m=c[m+4>>2]|0;while(1){v=mc(o|0,p|0,14)|0;N=C;x=nc(o|0,p|0,50)|0;N=N|C;y=mc(o|0,p|0,18)|0;O=C;M=nc(o|0,p|0,46)|0;O=N^(O|C);N=mc(o|0,p|0,41)|0;n=C;s=nc(o|0,p|0,23)|0;n=qc((v|x)^(y|M)^(N|s)|0,O^(n|C)|0,g|0,h|0)|0;n=qc(n|0,C|0,k&~o^r&o|0,m&~p^q&p|0)|0;O=72+(j<<3)|0;O=qc(n|0,C|0,c[O>>2]|0,c[O+4>>2]|0)|0;n=b;g=c[n>>2]|0;n=c[n+4>>2]|0;s=F+(j<<3)|0;c[s>>2]=g;c[s+4>>2]=n;n=qc(O|0,C|0,g|0,n|0)|0;g=C;O=mc(l|0,u|0,28)|0;s=C;N=nc(l|0,u|0,36)|0;s=s|C;M=mc(l|0,u|0,34)|0;y=C;h=nc(l|0,u|0,30)|0;y=s^(y|C);s=mc(l|0,u|0,39)|0;x=C;v=nc(l|0,u|0,25)|0;x=qc((O|N)^(M|h)^(s|v)|0,y^(x|C)|0,l&(z^t)^z&t|0,u&(a^w)^a&w|0)|0;y=C;e=qc(n|0,g|0,e|0,f|0)|0;f=C;g=qc(x|0,y|0,n|0,g|0)|0;n=C;j=j+1|0;if((j|0)==16){y=16;x=e;v=f;s=p;p=g;j=t;h=u;g=w;b=z;break}else{x=p;y=o;h=m;M=k;N=u;O=l;b=b+8|0;l=g;u=n;o=e;p=f;m=q;k=r;q=x;r=y;g=M;f=a;e=z;a=w;w=N;z=t;t=O}}while(1){t=y;y=y+1|0;T=F+((y&15)<<3)|0;W=c[T>>2]|0;T=c[T+4>>2]|0;S=mc(W|0,T|0,1)|0;Q=C;R=nc(W|0,T|0,63)|0;Q=Q|C;V=mc(W|0,T|0,8)|0;O=C;U=nc(W|0,T|0,56)|0;O=O|C;T=mc(W|0,T|0,7)|0;Q=O^C^Q;O=F+((t+14&15)<<3)|0;W=c[O>>2]|0;O=c[O+4>>2]|0;u=mc(W|0,O|0,19)|0;e=C;f=nc(W|0,O|0,45)|0;e=e|C;N=mc(W|0,O|0,61)|0;_=C;w=nc(W|0,O|0,3)|0;_=_|C;O=mc(W|0,O|0,6)|0;e=_^C^e;_=mc(x|0,v|0,14)|0;W=C;Z=nc(x|0,v|0,50)|0;W=W|C;Y=mc(x|0,v|0,18)|0;P=C;X=nc(x|0,v|0,46)|0;P=W^(P|C);W=mc(x|0,v|0,41)|0;z=C;M=nc(x|0,v|0,23)|0;m=qc((_|Z)^(Y|X)^(W|M)|0,P^(z|C)|0,k|0,m|0)|0;m=qc(m|0,C|0,r&~x^o&x|0,q&~v^s&v|0)|0;z=72+(t<<3)|0;z=qc(m|0,C|0,c[z>>2]|0,c[z+4>>2]|0)|0;m=C;P=F+((t+9&15)<<3)|0;t=F+((t&15)<<3)|0;M=t;k=c[M>>2]|0;M=c[M+4>>2]|0;P=qc((V|U)^T^(S|R)|0,Q|0,c[P>>2]|0,c[P+4>>2]|0)|0;M=qc(P|0,C|0,k|0,M|0)|0;e=qc(M|0,C|0,(N|w)^O^(u|f)|0,e|0)|0;f=C;c[t>>2]=e;c[t+4>>2]=f;f=qc(z|0,m|0,e|0,f|0)|0;e=C;m=mc(p|0,n|0,28)|0;z=C;t=nc(p|0,n|0,36)|0;z=z|C;u=mc(p|0,n|0,34)|0;O=C;w=nc(p|0,n|0,30)|0;O=z^(O|C);z=mc(p|0,n|0,39)|0;N=C;M=nc(p|0,n|0,25)|0;N=qc((m|t)^(u|w)^(z|M)|0,O^(N|C)|0,p&(j^l)^j&l|0,n&(g^h)^g&h|0)|0;O=C;a=qc(f|0,e|0,b|0,a|0)|0;b=C;e=qc(N|0,O|0,f|0,e|0)|0;f=C;if((y|0)==80)break;else{X=n;Y=p;Z=v;_=x;m=q;k=r;x=a;v=b;p=e;n=f;a=g;b=j;g=h;h=X;j=l;l=Y;q=s;r=o;s=Z;o=_}}_=qc(J|0,K|0,e|0,f|0)|0;Z=d;c[Z>>2]=_;c[Z+4>>2]=C;Z=B;Z=qc(c[Z>>2]|0,c[Z+4>>2]|0,p|0,n|0)|0;_=d+8|0;c[_>>2]=Z;c[_+4>>2]=C;_=D;_=qc(c[_>>2]|0,c[_+4>>2]|0,l|0,h|0)|0;Z=d+16|0;c[Z>>2]=_;c[Z+4>>2]=C;Z=E;Z=qc(c[Z>>2]|0,c[Z+4>>2]|0,j|0,g|0)|0;_=d+24|0;c[_>>2]=Z;c[_+4>>2]=C;_=G;_=qc(c[_>>2]|0,c[_+4>>2]|0,a|0,b|0)|0;Z=d+32|0;c[Z>>2]=_;c[Z+4>>2]=C;Z=H;Z=qc(c[Z>>2]|0,c[Z+4>>2]|0,x|0,v|0)|0;_=d+40|0;c[_>>2]=Z;c[_+4>>2]=C;_=I;_=qc(c[_>>2]|0,c[_+4>>2]|0,o|0,s|0)|0;Z=d+48|0;c[Z>>2]=_;c[Z+4>>2]=C;Z=A;Z=qc(c[Z>>2]|0,c[Z+4>>2]|0,r|0,q|0)|0;_=d+56|0;c[_>>2]=Z;c[_+4>>2]=C;i=L;return}function Hb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;do if(e|0){o=b+64|0;g=o;h=c[g>>2]|0;g=c[g+4>>2]|0;f=mc(h|0,g|0,3)|0;f=f&127;if(f){i=128-f|0;j=b+80|0;f=j+f|0;if(i>>>0>e>>>0){tc(f|0,d|0,e|0)|0;n=e<<3;m=qc(h|0,g|0,n|0,0)|0;l=C;c[o>>2]=m;c[o+4>>2]=l;if(!(l>>>0<0|(l|0)==0&m>>>0>>0))break;o=b+72|0;b=o;b=qc(c[b>>2]|0,c[b+4>>2]|0,1,0)|0;c[o>>2]=b;c[o+4>>2]=C;break}tc(f|0,d|0,i|0)|0;n=i<<3;m=qc(h|0,g|0,n|0,0)|0;l=C;k=o;c[k>>2]=m;c[k+4>>2]=l;if(l>>>0<0|(l|0)==0&m>>>0>>0){n=b+72|0;m=n;m=qc(c[m>>2]|0,c[m+4>>2]|0,1,0)|0;c[n>>2]=m;c[n+4>>2]=C}e=e-i|0;f=0;do{n=b+80+(f<<3)|0;m=n;m=ma(c[m>>2]|0,c[m+4>>2]|0)|0;c[n>>2]=m;c[n+4>>2]=C;f=f+1|0}while((f|0)!=16);Gb(b,j,b);d=d+i|0}if(e>>>0>127){j=b+80|0;k=b+72|0;m=e+-128|0;n=m&-128;l=n+128|0;i=d;while(1){f=j;g=i;h=f+128|0;do{a[f>>0]=a[g>>0]|0;f=f+1|0;g=g+1|0}while((f|0)<(h|0));f=0;do{h=b+80+(f<<3)|0;g=h;g=ma(c[g>>2]|0,c[g+4>>2]|0)|0;c[h>>2]=g;c[h+4>>2]=C;f=f+1|0}while((f|0)!=16);Gb(b,j,b);g=o;h=c[g>>2]|0;g=c[g+4>>2]|0;p=qc(h|0,g|0,1024,0)|0;f=o;c[f>>2]=p;c[f+4>>2]=C;if(g>>>0>4294967295|(g|0)==-1&h>>>0>4294966271){h=k;h=qc(c[h>>2]|0,c[h+4>>2]|0,1,0)|0;p=k;c[p>>2]=h;c[p+4>>2]=C}e=e+-128|0;if(e>>>0<=127)break;else i=i+128|0}d=d+l|0;e=m-n|0}if(e|0?(tc(b+80|0,d|0,e|0)|0,p=e<<3,n=o,n=qc(c[n>>2]|0,c[n+4>>2]|0,p|0,0)|0,m=C,o,c[o>>2]=n,c[o+4>>2]=m,m>>>0<0|(m|0)==0&n>>>0

>>0):0){p=b+72|0;o=p;o=qc(c[o>>2]|0,c[o+4>>2]|0,1,0)|0;c[p>>2]=o;c[p+4>>2]=C}}while(0);return}function Ib(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if(d){h=b+64|0;f=h;f=mc(c[f>>2]|0,c[f+4>>2]|0,3)|0;f=f&127;e=f+1|0;g=b+80|0;a[g+f>>0]=-128;if(e>>>0>112){lc(g+e|0,0,f^127|0)|0;e=0;do{f=b+80+(e<<3)|0;i=f;i=ma(c[i>>2]|0,c[i+4>>2]|0)|0;c[f>>2]=i;c[f+4>>2]=C;e=e+1|0}while((e|0)!=16);Gb(b,g,b);e=0}lc(g+e|0,0,112-e|0)|0;e=0;do{i=b+80+(e<<3)|0;f=i;f=ma(c[f>>2]|0,c[f+4>>2]|0)|0;c[i>>2]=f;c[i+4>>2]=C;e=e+1|0}while((e|0)!=14);f=b+72|0;e=c[f+4>>2]|0;i=b+192|0;c[i>>2]=c[f>>2];c[i+4>>2]=e;i=c[h+4>>2]|0;e=b+200|0;c[e>>2]=c[h>>2];c[e+4>>2]=i;Gb(b,g,b);e=0;do{i=b+(e<<3)|0;h=i;h=ma(c[h>>2]|0,c[h+4>>2]|0)|0;c[i>>2]=h;c[i+4>>2]=C;e=e+1|0}while((e|0)!=8);e=d;f=b;g=e+64|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0))}lc(b|0,0,208)|0;return}function Jb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+208|0;e=g;f=e;h=8;j=f+64|0;do{c[f>>2]=c[h>>2];f=f+4|0;h=h+4|0}while((f|0)<(j|0));lc(e+64|0,0,144)|0;Hb(e,a,b);Ib(e,d);i=g;return}function Kb(){var a=0,b=0,d=0;d=i;i=i+16|0;b=d;a=c[9714]|0;if(!a){a=bc(38797,38810)|0;c[9714]=a}if((gc(b,1,4,a)|0)==4){i=d;return c[b>>2]|0}else pa(38812,38828,60,38838);return 0}function Lb(a){a=a|0;if(a>>>0>=256)if(a>>>0<65536)a=2;else a=a>>>0<16777216?3:4;else a=1;return a|0}function Mb(b,c){b=b|0;c=c|0;var d=0;if(b>>>0<=16777215)if(b>>>0<=65535){if(b>>>0>255)d=6}else d=4;else{a[c>>0]=b>>>24;c=c+1|0;d=4}if((d|0)==4){a[c>>0]=b>>>16;c=c+1|0;d=6}if((d|0)==6){a[c>>0]=b>>>8;c=c+1|0}a[c>>0]=b;return}function Nb(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=Qb(ha(6,d|0)|0)|0;i=b;return a|0}function Ob(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+48|0;h=m+16|0;g=m;f=m+32|0;c[f>>2]=d;j=f+4|0;l=b+48|0;n=c[l>>2]|0;c[j>>2]=e-((n|0)!=0&1);k=b+44|0;c[f+8>>2]=c[k>>2];c[f+12>>2]=n;if(!(c[9715]|0)){c[h>>2]=c[b+60>>2];c[h+4>>2]=f;c[h+8>>2]=2;f=Qb(qa(145,h|0)|0)|0}else{ga(1,b|0);c[g>>2]=c[b+60>>2];c[g+4>>2]=f;c[g+8>>2]=2;f=Qb(qa(145,g|0)|0)|0;ba(0)}if((f|0)>=1){j=c[j>>2]|0;if(f>>>0>j>>>0){g=c[k>>2]|0;h=b+4|0;c[h>>2]=g;c[b+8>>2]=g+(f-j);if(!(c[l>>2]|0))f=e;else{c[h>>2]=g+1;a[d+(e+-1)>>0]=a[g>>0]|0;f=e}}}else{c[b>>2]=c[b>>2]|f&48^16;c[b+8>>2]=0;c[b+4>>2]=0}i=m;return f|0}function Pb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((Qb(ja(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;i=f;return a|0}function Qb(a){a=a|0;if(a>>>0>4294963200){c[(Rb()|0)>>2]=0-a;a=-1}return a|0}function Rb(){var a=0;if(!(c[9715]|0))a=38904;else a=c[(uc()|0)+64>>2]|0;return a|0}function Sb(a){a=a|0;if(!(c[a+68>>2]|0))Tb(a);return}function Tb(a){a=a|0;return}function Ub(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;n=q+16|0;m=q;j=q+32|0;o=a+28|0;h=c[o>>2]|0;c[j>>2]=h;p=a+20|0;h=(c[p>>2]|0)-h|0;c[j+4>>2]=h;c[j+8>>2]=b;c[j+12>>2]=d;k=a+60|0;l=a+44|0;g=2;b=h+d|0;while(1){if(!(c[9715]|0)){c[n>>2]=c[k>>2];c[n+4>>2]=j;c[n+8>>2]=g;f=Qb(ra(146,n|0)|0)|0}else{ga(2,a|0);c[m>>2]=c[k>>2];c[m+4>>2]=j;c[m+8>>2]=g;f=Qb(ra(146,m|0)|0)|0;ba(0)}if((b|0)==(f|0)){b=6;break}if((f|0)<0){b=8;break}b=b-f|0;e=c[j+4>>2]|0;if(f>>>0<=e>>>0)if((g|0)==2){c[o>>2]=(c[o>>2]|0)+f;g=2;h=j}else h=j;else{h=c[l>>2]|0;c[o>>2]=h;c[p>>2]=h;f=f-e|0;g=g+-1|0;h=j+8|0;e=c[j+12>>2]|0}c[h>>2]=(c[h>>2]|0)+f;c[h+4>>2]=e-f;j=h}if((b|0)==6){n=c[l>>2]|0;c[a+16>>2]=n+(c[a+48>>2]|0);a=n;c[o>>2]=a;c[p>>2]=a}else if((b|0)==8){c[a+16>>2]=0;c[o>>2]=0;c[p>>2]=0;c[a>>2]=c[a>>2]|32;if((g|0)==2)d=0;else d=d-(c[j+4>>2]|0)|0}i=q;return d|0}function Vb(a){a=a|0;if(!(c[a+68>>2]|0))Tb(a);return}function Wb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+80|0;f=g;c[b+36>>2]=3;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21505,c[f+8>>2]=g+12,da(54,f|0)|0):0)a[b+75>>0]=-1;f=Ub(b,d,e)|0;i=g;return f|0}function Xb(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=b+20|0;e=b+44|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)va[c[b+36>>2]&7](b,0,0)|0;c[b+16>>2]=0;c[b+28>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(d&20)if(!(d&4))d=-1;else{c[b>>2]=d|32;d=-1}else{d=c[e>>2]|0;c[b+8>>2]=d;c[b+4>>2]=d;d=0}return d|0}function Yb(a){a=a|0;return 0}function Zb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=R(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return (e|0?b:0)|0}function _b(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=f;while(1){if(!(a[b>>0]|0)){b=d;break a}b=b+1|0;d=b;if(!(d&3)){e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function $b(b,c){b=b|0;c=c|0;b=ac(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function ac(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(_b(b)|0)|0;else{if(b&3){e=d&255;do{g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break a;b=b+1|0}while((b&3|0)!=0)}f=R(f,16843009)|0;e=c[b>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009))do{g=e^f;if((g&-2139062144^-2139062144)&g+-16843009|0)break b;b=b+4|0;e=c[b>>2]|0}while(!((e&-2139062144^-2139062144)&e+-16843009|0));while(0);e=d&255;while(1){g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break;else b=b+1|0}}while(0);return b|0}function bc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+32|0;f=g+16|0;e=g;if(Zb(38847,a[d>>0]|0,4)|0){h=cc(d)|0|32768;c[e>>2]=b;c[e+4>>2]=h;c[e+8>>2]=438;e=Qb(ka(5,e|0)|0)|0;if((e|0)>=0){b=dc(e,d)|0;if(!b){c[f>>2]=e;ha(6,f|0)|0;b=0}}else b=0}else{c[(Rb()|0)>>2]=22;b=0}i=g;return b|0}function cc(b){b=b|0;var c=0,d=0,e=0;d=($b(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=($b(b,120)|0)==0;d=e?d:d|128;b=($b(b,101)|0)==0;b=b?d:d|524288;b=c<<24>>24==114?b:b|64;b=c<<24>>24==119?b|512:b;return (c<<24>>24==97?b|1024:b)|0}function dc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+112|0;n=o+40|0;l=o+24|0;k=o+16|0;g=o;m=o+52|0;f=a[d>>0]|0;if(Zb(38847,f<<24>>24,4)|0){e=hc(1144)|0;if(!e)e=0;else{h=e;j=h+112|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));if(!($b(d,43)|0))c[e>>2]=f<<24>>24==114?8:4;if($b(d,101)|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;ca(221,g|0)|0;f=a[d>>0]|0}if(f<<24>>24==97){c[k>>2]=b;c[k+4>>2]=3;f=ca(221,k|0)|0;if(!(f&1024)){c[l>>2]=b;c[l+4>>2]=4;c[l+8>>2]=f|1024;ca(221,l|0)|0}d=c[e>>2]|128;c[e>>2]=d}else d=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+120;c[e+48>>2]=1024;f=e+75|0;a[f>>0]=-1;if((d&8|0)==0?(c[n>>2]=b,c[n+4>>2]=21505,c[n+8>>2]=m,(da(54,n|0)|0)==0):0)a[f>>0]=10;c[e+32>>2]=4;c[e+36>>2]=3;c[e+40>>2]=2;c[e+12>>2]=1;if(!(c[9716]|0))c[e+76>>2]=-1;ea(38888);f=c[9721]|0;c[e+56>>2]=f;if(f|0)c[f+52>>2]=e;c[9721]=e;na(38888)}}else{c[(Rb()|0)>>2]=22;e=0}i=o;return e|0}function ec(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=fc(a)|0;break}d=(Yb(a)|0)==0;b=fc(a)|0;if(!d)Tb(a)}else{if(!(c[9549]|0))b=0;else b=ec(c[9549]|0)|0;ea(38888);a=c[9721]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=Yb(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=fc(a)|0|b;if(d|0)Tb(a);a=c[a+56>>2]|0}while((a|0)!=0);na(38888)}while(0);return b|0}function fc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;h=a+28|0;if((c[b>>2]|0)>>>0>(c[h>>2]|0)>>>0?(va[c[a+36>>2]&7](a,0,0)|0,(c[b>>2]|0)==0):0)a=-1;else{d=a+4|0;e=c[d>>2]|0;f=a+8|0;g=c[f>>2]|0;if(e>>>0>>0)va[c[a+40>>2]&7](a,e-g|0,1)|0;c[a+16>>2]=0;c[h>>2]=0;c[b>>2]=0;c[f>>2]=0;c[d>>2]=0;a=0}return a|0}function gc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=R(e,d)|0;if((c[f+76>>2]|0)>-1)j=Yb(f)|0;else j=0;g=f+74|0;i=a[g>>0]|0;a[g>>0]=i+255|i;g=f+4|0;i=c[g>>2]|0;h=(c[f+8>>2]|0)-i|0;if((h|0)>0){h=h>>>0>>0?h:k;tc(b|0,i|0,h|0)|0;c[g>>2]=i+h;g=k-h|0;b=b+h|0}else g=k;a:do if(!g)l=13;else{i=f+32|0;while(1){if(Xb(f)|0)break;h=va[c[i>>2]&7](f,b,g)|0;if((h+1|0)>>>0<2)break;g=g-h|0;if(!g){l=13;break a}else b=b+h|0}if(j|0)Tb(f);e=((k-g|0)>>>0)/(d>>>0)|0}while(0);if((l|0)==13)if(j)Tb(f);return e|0}function hc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=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,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=i;i=i+16|0;p=L;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;t=c[9727]|0;d=t>>>a;if(d&3|0){a=(d&1^1)+a|0;d=38948+(a<<1<<2)|0;e=d+8|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[9731]|0)>>>0)fa();b=h+12|0;if((c[b>>2]|0)==(f|0)){c[b>>2]=d;c[e>>2]=h;break}else fa()}else c[9727]=t&~(1<>2]=K|3;K=f+K+4|0;c[K>>2]=c[K>>2]|1;K=g;i=L;return K|0}s=c[9729]|0;if(o>>>0>s>>>0){if(d|0){j=2<>>12&16;a=a>>>j;e=a>>>5&8;a=a>>>e;g=a>>>2&4;a=a>>>g;d=a>>>1&2;a=a>>>d;b=a>>>1&1;b=(e|j|g|d|b)+(a>>>b)|0;a=38948+(b<<1<<2)|0;d=a+8|0;g=c[d>>2]|0;j=g+8|0;e=c[j>>2]|0;do if((a|0)!=(e|0)){if(e>>>0<(c[9731]|0)>>>0)fa();f=e+12|0;if((c[f>>2]|0)==(g|0)){c[f>>2]=a;c[d>>2]=e;k=t;break}else fa()}else{k=t&~(1<>2]=o|3;e=g+o|0;c[e+4>>2]=h|1;c[e+h>>2]=h;if(s|0){f=c[9732]|0;b=s>>>3;d=38948+(b<<1<<2)|0;b=1<>2]|0;if(a>>>0<(c[9731]|0)>>>0)fa();else{l=a;m=b}}else{c[9727]=k|b;l=d;m=d+8|0}c[m>>2]=f;c[l+12>>2]=f;c[f+8>>2]=l;c[f+12>>2]=d}c[9729]=h;c[9732]=e;K=j;i=L;return K|0}l=c[9728]|0;if(l){a=(l&0-l)+-1|0;J=a>>>12&16;a=a>>>J;I=a>>>5&8;a=a>>>I;K=a>>>2&4;a=a>>>K;j=a>>>1&2;a=a>>>j;k=a>>>1&1;k=c[39212+((I|J|K|j|k)+(a>>>k)<<2)>>2]|0;a=k;j=k;k=(c[k+4>>2]&-8)-o|0;while(1){b=c[a+16>>2]|0;if(!b){b=c[a+20>>2]|0;if(!b)break}K=(c[b+4>>2]&-8)-o|0;J=K>>>0>>0;a=b;j=J?b:j;k=J?K:k}f=c[9731]|0;if(j>>>0>>0)fa();h=j+o|0;if(j>>>0>=h>>>0)fa();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){n=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0>>0)fa();else{c[a>>2]=0;n=b;break}}else{e=c[j+8>>2]|0;if(e>>>0>>0)fa();b=e+12|0;if((c[b>>2]|0)!=(j|0))fa();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;n=d;break}else fa()}while(0);do if(g|0){b=c[j+28>>2]|0;a=39212+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[9728]=l&~(1<>>0<(c[9731]|0)>>>0)fa();b=g+16|0;if((c[b>>2]|0)==(j|0))c[b>>2]=n;else c[g+20>>2]=n;if(!n)break}a=c[9731]|0;if(n>>>0>>0)fa();c[n+24>>2]=g;b=c[j+16>>2]|0;do if(b|0)if(b>>>0>>0)fa();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);b=c[j+20>>2]|0;if(b|0)if(b>>>0<(c[9731]|0)>>>0)fa();else{c[n+20>>2]=b;c[b+24>>2]=n;break}}while(0);if(k>>>0<16){K=k+o|0;c[j+4>>2]=K|3;K=j+K+4|0;c[K>>2]=c[K>>2]|1}else{c[j+4>>2]=o|3;c[h+4>>2]=k|1;c[h+k>>2]=k;if(s|0){e=c[9732]|0;b=s>>>3;d=38948+(b<<1<<2)|0;b=1<>2]|0;if(a>>>0<(c[9731]|0)>>>0)fa();else{q=a;r=b}}else{c[9727]=t|b;q=d;r=d+8|0}c[r>>2]=e;c[q+12>>2]=e;c[e+8>>2]=q;c[e+12>>2]=d}c[9729]=k;c[9732]=h}K=j+8|0;i=L;return K|0}}}else if(a>>>0<=4294967231){a=a+11|0;o=a&-8;l=c[9728]|0;if(l){e=0-o|0;a=a>>>8;if(a)if(o>>>0>16777215)k=31;else{r=(a+1048320|0)>>>16&8;D=a<>>16&4;D=D<>>16&2;k=14-(q|r|k)+(D<>>15)|0;k=o>>>(k+7|0)&1|k<<1}else k=0;a=c[39212+(k<<2)>>2]|0;a:do if(!a){d=0;f=0;D=86}else{f=0;j=a;h=o<<((k|0)==31?0:25-(k>>>1)|0);d=0;while(1){a=(c[j+4>>2]&-8)-o|0;if(a>>>0>>0)if(!a){a=j;e=0;d=j;D=90;break a}else{f=j;e=a}a=c[j+20>>2]|0;j=c[j+16+(h>>>31<<2)>>2]|0;d=(a|0)==0|(a|0)==(j|0)?d:a;a=(j|0)==0;if(a){D=86;break}else h=h<<(a&1^1)}}while(0);if((D|0)==86){if((d|0)==0&(f|0)==0){a=2<>>12&16;r=r>>>m;k=r>>>5&8;r=r>>>k;n=r>>>2&4;r=r>>>n;q=r>>>1&2;r=r>>>q;d=r>>>1&1;d=c[39212+((k|m|n|q|d)+(r>>>d)<<2)>>2]|0}if(!d){k=f;j=e}else{a=f;D=90}}if((D|0)==90)while(1){D=0;r=(c[d+4>>2]&-8)-o|0;f=r>>>0>>0;e=f?r:e;a=f?d:a;f=c[d+16>>2]|0;if(f|0){d=f;D=90;continue}d=c[d+20>>2]|0;if(!d){k=a;j=e;break}else D=90}if((k|0)!=0?j>>>0<((c[9729]|0)-o|0)>>>0:0){f=c[9731]|0;if(k>>>0>>0)fa();h=k+o|0;if(k>>>0>=h>>>0)fa();g=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){a=k+20|0;b=c[a>>2]|0;if(!b){a=k+16|0;b=c[a>>2]|0;if(!b){s=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0>>0)fa();else{c[a>>2]=0;s=b;break}}else{e=c[k+8>>2]|0;if(e>>>0>>0)fa();b=e+12|0;if((c[b>>2]|0)!=(k|0))fa();a=d+8|0;if((c[a>>2]|0)==(k|0)){c[b>>2]=d;c[a>>2]=e;s=d;break}else fa()}while(0);do if(g){b=c[k+28>>2]|0;a=39212+(b<<2)|0;if((k|0)==(c[a>>2]|0)){c[a>>2]=s;if(!s){t=l&~(1<>>0<(c[9731]|0)>>>0)fa();b=g+16|0;if((c[b>>2]|0)==(k|0))c[b>>2]=s;else c[g+20>>2]=s;if(!s){t=l;break}}a=c[9731]|0;if(s>>>0>>0)fa();c[s+24>>2]=g;b=c[k+16>>2]|0;do if(b|0)if(b>>>0>>0)fa();else{c[s+16>>2]=b;c[b+24>>2]=s;break}while(0);b=c[k+20>>2]|0;if(b)if(b>>>0<(c[9731]|0)>>>0)fa();else{c[s+20>>2]=b;c[b+24>>2]=s;t=l;break}else t=l}else t=l;while(0);do if(j>>>0>=16){c[k+4>>2]=o|3;c[h+4>>2]=j|1;c[h+j>>2]=j;b=j>>>3;if(j>>>0<256){d=38948+(b<<1<<2)|0;a=c[9727]|0;b=1<>2]|0;if(a>>>0<(c[9731]|0)>>>0)fa();else{B=a;C=b}}else{c[9727]=a|b;B=d;C=d+8|0}c[C>>2]=h;c[B+12>>2]=h;c[h+8>>2]=B;c[h+12>>2]=d;break}b=j>>>8;if(b)if(j>>>0>16777215)b=31;else{J=(b+1048320|0)>>>16&8;K=b<>>16&4;K=K<>>16&2;b=14-(I|J|b)+(K<>>15)|0;b=j>>>(b+7|0)&1|b<<1}else b=0;d=39212+(b<<2)|0;c[h+28>>2]=b;a=h+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;break}a=j<<((b|0)==31?0:25-(b>>>1)|0);e=c[d>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(j|0)){D=148;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){D=145;break}else{a=a<<1;e=b}}if((D|0)==145)if(d>>>0<(c[9731]|0)>>>0)fa();else{c[d>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}else if((D|0)==148){b=e+8|0;a=c[b>>2]|0;K=c[9731]|0;if(a>>>0>=K>>>0&e>>>0>=K>>>0){c[a+12>>2]=h;c[b>>2]=h;c[h+8>>2]=a;c[h+12>>2]=e;c[h+24>>2]=0;break}else fa()}}else{K=j+o|0;c[k+4>>2]=K|3;K=k+K+4|0;c[K>>2]=c[K>>2]|1}while(0);K=k+8|0;i=L;return K|0}}}else o=-1;while(0);d=c[9729]|0;if(d>>>0>=o>>>0){b=d-o|0;a=c[9732]|0;if(b>>>0>15){K=a+o|0;c[9732]=K;c[9729]=b;c[K+4>>2]=b|1;c[K+b>>2]=b;c[a+4>>2]=o|3}else{c[9729]=0;c[9732]=0;c[a+4>>2]=d|3;K=a+d+4|0;c[K>>2]=c[K>>2]|1}K=a+8|0;i=L;return K|0}j=c[9730]|0;if(j>>>0>o>>>0){I=j-o|0;c[9730]=I;K=c[9733]|0;J=K+o|0;c[9733]=J;c[J+4>>2]=I|1;c[K+4>>2]=o|3;K=K+8|0;i=L;return K|0}if(!(c[9845]|0)){c[9847]=4096;c[9846]=4096;c[9848]=-1;c[9849]=-1;c[9850]=0;c[9838]=0;a=p&-16^1431655768;c[p>>2]=a;c[9845]=a;a=4096}else a=c[9847]|0;k=o+48|0;l=o+47|0;h=a+l|0;f=0-a|0;m=h&f;if(m>>>0<=o>>>0){K=0;i=L;return K|0}a=c[9837]|0;if(a|0?(B=c[9835]|0,C=B+m|0,C>>>0<=B>>>0|C>>>0>a>>>0):0){K=0;i=L;return K|0}b:do if(!(c[9838]&4)){d=c[9733]|0;c:do if(d){e=39356;while(1){a=c[e>>2]|0;if(a>>>0<=d>>>0?(u=e+4|0,(a+(c[u>>2]|0)|0)>>>0>d>>>0):0)break;a=c[e+8>>2]|0;if(!a){D=172;break c}else e=a}d=h-j&f;if(d>>>0<2147483647){a=rc(d|0)|0;if((a|0)==((c[e>>2]|0)+(c[u>>2]|0)|0)){if((a|0)!=(-1|0)){h=d;g=a;D=190;break b}}else{b=d;D=180}}}else D=172;while(0);do if(((D|0)==172?(g=rc(0)|0,(g|0)!=(-1|0)):0)?(b=g,v=c[9846]|0,w=v+-1|0,b=((w&b|0)==0?0:(w+b&0-v)-b|0)+m|0,v=c[9835]|0,w=b+v|0,b>>>0>o>>>0&b>>>0<2147483647):0){C=c[9837]|0;if(C|0?w>>>0<=v>>>0|w>>>0>C>>>0:0)break;a=rc(b|0)|0;if((a|0)==(g|0)){h=b;D=190;break b}else D=180}while(0);d:do if((D|0)==180){d=0-b|0;do if(k>>>0>b>>>0&(b>>>0<2147483647&(a|0)!=(-1|0))?(x=c[9847]|0,x=l-b+x&0-x,x>>>0<2147483647):0)if((rc(x|0)|0)==(-1|0)){rc(d|0)|0;break d}else{b=x+b|0;break}while(0);if((a|0)!=(-1|0)){h=b;g=a;D=190;break b}}while(0);c[9838]=c[9838]|4;D=187}else D=187;while(0);if((((D|0)==187?m>>>0<2147483647:0)?(A=rc(m|0)|0,y=rc(0)|0,A>>>0>>0&((A|0)!=(-1|0)&(y|0)!=(-1|0))):0)?(z=y-A|0,z>>>0>(o+40|0)>>>0):0){h=z;g=A;D=190}if((D|0)==190){b=(c[9835]|0)+h|0;c[9835]=b;if(b>>>0>(c[9836]|0)>>>0)c[9836]=b;l=c[9733]|0;do if(l){b=39356;while(1){a=c[b>>2]|0;d=b+4|0;e=c[d>>2]|0;if((g|0)==(a+e|0)){D=200;break}f=c[b+8>>2]|0;if(!f)break;else b=f}if(((D|0)==200?(c[b+12>>2]&8|0)==0:0)?l>>>0>>0&l>>>0>=a>>>0:0){c[d>>2]=e+h;K=l+8|0;K=(K&7|0)==0?0:0-K&7;J=l+K|0;K=h-K+(c[9730]|0)|0;c[9733]=J;c[9730]=K;c[J+4>>2]=K|1;c[J+K+4>>2]=40;c[9734]=c[9849];break}b=c[9731]|0;if(g>>>0>>0){c[9731]=g;j=g}else j=b;a=g+h|0;b=39356;while(1){if((c[b>>2]|0)==(a|0)){D=208;break}b=c[b+8>>2]|0;if(!b){a=39356;break}}if((D|0)==208)if(!(c[b+12>>2]&8)){c[b>>2]=g;n=b+4|0;c[n>>2]=(c[n>>2]|0)+h;n=g+8|0;n=g+((n&7|0)==0?0:0-n&7)|0;b=a+8|0;b=a+((b&7|0)==0?0:0-b&7)|0;m=n+o|0;k=b-n-o|0;c[n+4>>2]=o|3;do if((b|0)!=(l|0)){if((b|0)==(c[9732]|0)){K=(c[9729]|0)+k|0;c[9729]=K;c[9732]=m;c[m+4>>2]=K|1;c[m+K>>2]=K;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;f=a>>>3;e:do if(a>>>0>=256){g=c[b+24>>2]|0;e=c[b+12>>2]|0;do if((e|0)==(b|0)){e=b+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){I=0;break}else d=e}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;d=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;d=e}}if(d>>>0>>0)fa();else{c[d>>2]=0;I=a;break}}else{f=c[b+8>>2]|0;if(f>>>0>>0)fa();a=f+12|0;if((c[a>>2]|0)!=(b|0))fa();d=e+8|0;if((c[d>>2]|0)==(b|0)){c[a>>2]=e;c[d>>2]=f;I=e;break}else fa()}while(0);if(!g)break;a=c[b+28>>2]|0;d=39212+(a<<2)|0;do if((b|0)!=(c[d>>2]|0)){if(g>>>0<(c[9731]|0)>>>0)fa();a=g+16|0;if((c[a>>2]|0)==(b|0))c[a>>2]=I;else c[g+20>>2]=I;if(!I)break e}else{c[d>>2]=I;if(I|0)break;c[9728]=c[9728]&~(1<>>0>>0)fa();c[I+24>>2]=g;a=b+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0>>0)fa();else{c[I+16>>2]=d;c[d+24>>2]=I;break}while(0);a=c[a+4>>2]|0;if(!a)break;if(a>>>0<(c[9731]|0)>>>0)fa();else{c[I+20>>2]=a;c[a+24>>2]=I;break}}else{d=c[b+8>>2]|0;e=c[b+12>>2]|0;a=38948+(f<<1<<2)|0;do if((d|0)!=(a|0)){if(d>>>0>>0)fa();if((c[d+12>>2]|0)==(b|0))break;fa()}while(0);if((e|0)==(d|0)){c[9727]=c[9727]&~(1<>>0>>0)fa();a=e+8|0;if((c[a>>2]|0)==(b|0)){F=a;break}fa()}while(0);c[d+12>>2]=e;c[F>>2]=d}while(0);b=b+h|0;f=h+k|0}else f=k;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[m+4>>2]=f|1;c[m+f>>2]=f;b=f>>>3;if(f>>>0<256){d=38948+(b<<1<<2)|0;a=c[9727]|0;b=1<>2]|0;if(a>>>0>=(c[9731]|0)>>>0){J=a;K=b;break}fa()}while(0);c[K>>2]=m;c[J+12>>2]=m;c[m+8>>2]=J;c[m+12>>2]=d;break}b=f>>>8;do if(!b)b=0;else{if(f>>>0>16777215){b=31;break}J=(b+1048320|0)>>>16&8;K=b<>>16&4;K=K<>>16&2;b=14-(I|J|b)+(K<>>15)|0;b=f>>>(b+7|0)&1|b<<1}while(0);e=39212+(b<<2)|0;c[m+28>>2]=b;a=m+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[9728]|0;d=1<>2]=m;c[m+24>>2]=e;c[m+12>>2]=m;c[m+8>>2]=m;break}a=f<<((b|0)==31?0:25-(b>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){D=278;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){D=275;break}else{a=a<<1;e=b}}if((D|0)==275)if(d>>>0<(c[9731]|0)>>>0)fa();else{c[d>>2]=m;c[m+24>>2]=e;c[m+12>>2]=m;c[m+8>>2]=m;break}else if((D|0)==278){b=e+8|0;a=c[b>>2]|0;K=c[9731]|0;if(a>>>0>=K>>>0&e>>>0>=K>>>0){c[a+12>>2]=m;c[b>>2]=m;c[m+8>>2]=a;c[m+12>>2]=e;c[m+24>>2]=0;break}else fa()}}else{K=(c[9730]|0)+k|0;c[9730]=K;c[9733]=m;c[m+4>>2]=K|1}while(0);K=n+8|0;i=L;return K|0}else a=39356;while(1){b=c[a>>2]|0;if(b>>>0<=l>>>0?(E=b+(c[a+4>>2]|0)|0,E>>>0>l>>>0):0)break;a=c[a+8>>2]|0}f=E+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=l+16|0;a=a>>>0>>0?l:a;b=a+8|0;d=g+8|0;d=(d&7|0)==0?0:0-d&7;K=g+d|0;d=h+-40-d|0;c[9733]=K;c[9730]=d;c[K+4>>2]=d|1;c[K+d+4>>2]=40;c[9734]=c[9849];d=a+4|0;c[d>>2]=27;c[b>>2]=c[9839];c[b+4>>2]=c[9840];c[b+8>>2]=c[9841];c[b+12>>2]=c[9842];c[9839]=g;c[9840]=h;c[9842]=0;c[9841]=b;b=a+24|0;do{b=b+4|0;c[b>>2]=7}while((b+4|0)>>>0>>0);if((a|0)!=(l|0)){g=a-l|0;c[d>>2]=c[d>>2]&-2;c[l+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=38948+(b<<1<<2)|0;a=c[9727]|0;b=1<>2]|0;if(a>>>0<(c[9731]|0)>>>0)fa();else{G=a;H=b}}else{c[9727]=a|b;G=d;H=d+8|0}c[H>>2]=l;c[G+12>>2]=l;c[l+8>>2]=G;c[l+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)d=31;else{J=(b+1048320|0)>>>16&8;K=b<>>16&4;K=K<>>16&2;d=14-(I|J|d)+(K<>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=39212+(d<<2)|0;c[l+28>>2]=d;c[l+20>>2]=0;c[f>>2]=0;b=c[9728]|0;a=1<>2]=l;c[l+24>>2]=e;c[l+12>>2]=l;c[l+8>>2]=l;break}a=g<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(g|0)){D=304;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){D=301;break}else{a=a<<1;e=b}}if((D|0)==301)if(d>>>0<(c[9731]|0)>>>0)fa();else{c[d>>2]=l;c[l+24>>2]=e;c[l+12>>2]=l;c[l+8>>2]=l;break}else if((D|0)==304){b=e+8|0;a=c[b>>2]|0;K=c[9731]|0;if(a>>>0>=K>>>0&e>>>0>=K>>>0){c[a+12>>2]=l;c[b>>2]=l;c[l+8>>2]=a;c[l+12>>2]=e;c[l+24>>2]=0;break}else fa()}}}else{K=c[9731]|0;if((K|0)==0|g>>>0>>0)c[9731]=g;c[9839]=g;c[9840]=h;c[9842]=0;c[9736]=c[9845];c[9735]=-1;b=0;do{K=38948+(b<<1<<2)|0;c[K+12>>2]=K;c[K+8>>2]=K;b=b+1|0}while((b|0)!=32);K=g+8|0;K=(K&7|0)==0?0:0-K&7;J=g+K|0;K=h+-40-K|0;c[9733]=J;c[9730]=K;c[J+4>>2]=K|1;c[J+K+4>>2]=40;c[9734]=c[9849]}while(0);b=c[9730]|0;if(b>>>0>o>>>0){I=b-o|0;c[9730]=I;K=c[9733]|0;J=K+o|0;c[9733]=J;c[J+4>>2]=I|1;c[K+4>>2]=o|3;K=K+8|0;i=L;return K|0}}c[(Rb()|0)>>2]=12;K=0;i=L;return K|0}function ic(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!a)return;d=a+-8|0;h=c[9731]|0;if(d>>>0>>0)fa();a=c[a+-4>>2]|0;b=a&3;if((b|0)==1)fa();e=a&-8;n=d+e|0;do if(!(a&1)){a=c[d>>2]|0;if(!b)return;k=d+(0-a)|0;j=a+e|0;if(k>>>0>>0)fa();if((k|0)==(c[9732]|0)){a=n+4|0;b=c[a>>2]|0;if((b&3|0)!=3){q=k;f=j;break}c[9729]=j;c[a>>2]=b&-2;c[k+4>>2]=j|1;c[k+j>>2]=j;return}e=a>>>3;if(a>>>0<256){b=c[k+8>>2]|0;d=c[k+12>>2]|0;a=38948+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0>>0)fa();if((c[b+12>>2]|0)!=(k|0))fa()}if((d|0)==(b|0)){c[9727]=c[9727]&~(1<>>0>>0)fa();a=d+8|0;if((c[a>>2]|0)==(k|0))g=a;else fa()}else g=d+8|0;c[b+12>>2]=d;c[g>>2]=b;q=k;f=j;break}g=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){d=k+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){i=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0>>0)fa();else{c[b>>2]=0;i=a;break}}else{e=c[k+8>>2]|0;if(e>>>0>>0)fa();a=e+12|0;if((c[a>>2]|0)!=(k|0))fa();b=d+8|0;if((c[b>>2]|0)==(k|0)){c[a>>2]=d;c[b>>2]=e;i=d;break}else fa()}while(0);if(g){a=c[k+28>>2]|0;b=39212+(a<<2)|0;if((k|0)==(c[b>>2]|0)){c[b>>2]=i;if(!i){c[9728]=c[9728]&~(1<>>0<(c[9731]|0)>>>0)fa();a=g+16|0;if((c[a>>2]|0)==(k|0))c[a>>2]=i;else c[g+20>>2]=i;if(!i){q=k;f=j;break}}d=c[9731]|0;if(i>>>0>>0)fa();c[i+24>>2]=g;a=k+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0>>0)fa();else{c[i+16>>2]=b;c[b+24>>2]=i;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[9731]|0)>>>0)fa();else{c[i+20>>2]=a;c[a+24>>2]=i;q=k;f=j;break}else{q=k;f=j}}else{q=k;f=j}}else{q=d;f=e}while(0);if(q>>>0>=n>>>0)fa();a=n+4|0;b=c[a>>2]|0;if(!(b&1))fa();if(!(b&2)){if((n|0)==(c[9733]|0)){p=(c[9730]|0)+f|0;c[9730]=p;c[9733]=q;c[q+4>>2]=p|1;if((q|0)!=(c[9732]|0))return;c[9732]=0;c[9729]=0;return}if((n|0)==(c[9732]|0)){p=(c[9729]|0)+f|0;c[9729]=p;c[9732]=q;c[q+4>>2]=p|1;c[q+p>>2]=p;return}f=(b&-8)+f|0;e=b>>>3;do if(b>>>0>=256){g=c[n+24>>2]|0;a=c[n+12>>2]|0;do if((a|0)==(n|0)){d=n+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){m=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<(c[9731]|0)>>>0)fa();else{c[b>>2]=0;m=a;break}}else{b=c[n+8>>2]|0;if(b>>>0<(c[9731]|0)>>>0)fa();d=b+12|0;if((c[d>>2]|0)!=(n|0))fa();e=a+8|0;if((c[e>>2]|0)==(n|0)){c[d>>2]=a;c[e>>2]=b;m=a;break}else fa()}while(0);if(g|0){a=c[n+28>>2]|0;b=39212+(a<<2)|0;if((n|0)==(c[b>>2]|0)){c[b>>2]=m;if(!m){c[9728]=c[9728]&~(1<>>0<(c[9731]|0)>>>0)fa();a=g+16|0;if((c[a>>2]|0)==(n|0))c[a>>2]=m;else c[g+20>>2]=m;if(!m)break}d=c[9731]|0;if(m>>>0>>0)fa();c[m+24>>2]=g;a=n+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0>>0)fa();else{c[m+16>>2]=b;c[b+24>>2]=m;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[9731]|0)>>>0)fa();else{c[m+20>>2]=a;c[a+24>>2]=m;break}}}else{b=c[n+8>>2]|0;d=c[n+12>>2]|0;a=38948+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(c[9731]|0)>>>0)fa();if((c[b+12>>2]|0)!=(n|0))fa()}if((d|0)==(b|0)){c[9727]=c[9727]&~(1<>>0<(c[9731]|0)>>>0)fa();a=d+8|0;if((c[a>>2]|0)==(n|0))l=a;else fa()}else l=d+8|0;c[b+12>>2]=d;c[l>>2]=b}while(0);c[q+4>>2]=f|1;c[q+f>>2]=f;if((q|0)==(c[9732]|0)){c[9729]=f;return}}else{c[a>>2]=b&-2;c[q+4>>2]=f|1;c[q+f>>2]=f}a=f>>>3;if(f>>>0<256){d=38948+(a<<1<<2)|0;b=c[9727]|0;a=1<>2]|0;if(b>>>0<(c[9731]|0)>>>0)fa();else{o=b;p=a}}else{c[9727]=b|a;o=d;p=d+8|0}c[p>>2]=q;c[o+12>>2]=q;c[q+8>>2]=o;c[q+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{o=(a+1048320|0)>>>16&8;p=a<>>16&4;p=p<>>16&2;a=14-(n|o|a)+(p<>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=39212+(a<<2)|0;c[q+28>>2]=a;c[q+20>>2]=0;c[q+16>>2]=0;b=c[9728]|0;d=1<>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=130;break}d=e+16+(b>>>31<<2)|0;a=c[d>>2]|0;if(!a){a=127;break}else{b=b<<1;e=a}}if((a|0)==127)if(d>>>0<(c[9731]|0)>>>0)fa();else{c[d>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q;break}else if((a|0)==130){a=e+8|0;b=c[a>>2]|0;p=c[9731]|0;if(b>>>0>=p>>>0&e>>>0>=p>>>0){c[b+12>>2]=q;c[a>>2]=q;c[q+8>>2]=b;c[q+12>>2]=e;c[q+24>>2]=0;break}else fa()}}else{c[9728]=b|d;c[e>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q}while(0);q=(c[9735]|0)+-1|0;c[9735]=q;if(!q)a=39364;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[9735]=-1;return}function jc(){}function kc(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 (C=d,a-c>>>0|0)|0}function lc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function mc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<>>c-32|0}function nc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<>>32-c;return a<>>16;a=(c>>>16)+(R(e,d)|0)|0;e=b>>>16;b=R(e,f)|0;return (C=(a>>>16)+(R(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function pc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=oc(e,f)|0;a=C;return (C=(R(b,f)|0)+(R(d,e)|0)+a|a&0,c|0|0)|0}function qc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (C=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function rc(a){a=a|0;var b=0,d=0;d=a+15&-16|0;b=c[k>>2]|0;a=b+d|0;if((d|0)>0&(a|0)<(b|0)|(a|0)<0){Z()|0;sa(12);return -1}c[k>>2]=a;if((a|0)>(Y()|0)?(X()|0)==0:0){sa(12);c[k>>2]=b;return -1}return b|0}function sc(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function tc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return la(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function uc(){return 0}function vc(a,b){a=a|0;b=b|0;return ua[a&1](b|0)|0}function wc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return va[a&7](b|0,c|0,d|0)|0}function xc(a,b){a=a|0;b=b|0;wa[a&3](b|0)}function yc(a){a=a|0;V(0);return 0}function zc(a,b,c){a=a|0;b=b|0;c=c|0;V(1);return 0}function Ac(a){a=a|0;V(2)} +function xa(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function ya(){return i|0}function za(a){a=a|0;i=a}function Aa(a,b){a=a|0;b=b|0;i=a;j=b}function Ba(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function Ca(a){a=a|0;C=a}function Da(){return C|0}function Ea(b,c){b=b|0;c=c|0;a[b>>0]=c>>>24;a[b+1>>0]=c>>>16;a[b+2>>0]=c>>>8;a[b+3>>0]=c;return}function Fa(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;e=0;f=0;do{h=a+(7-f<<2)|0;h=(d[h+1>>0]|0)<<16|(d[h>>0]|0)<<24|(d[h+2>>0]|0)<<8|(d[h+3>>0]|0);g=f<<1;c[b+(f<<2)>>2]=(h<>>(30-g|0);f=f+1|0}while((f|0)!=8);c[b+32>>2]=e;return}function Ga(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=c[b+32>>2]<<16;f=0;while(1){g=c[b+(7-f<<2)>>2]|0;h=f<<1;i=g>>>(14-h|0)|e;e=d+(f<<2)|0;a[e>>0]=i>>>24;a[e+1>>0]=i>>>16;a[e+2>>0]=i>>>8;a[e+3>>0]=i;f=f+1|0;if((f|0)==8)break;else e=g<>2]=0;a=a+4|0}while((a|0)<(b|0));return}function Ia(a){a=a|0;return (c[a+32>>2]|(c[a+28>>2]|(c[a+24>>2]|(c[a+20>>2]|(c[a+16>>2]|(c[a+12>>2]|(c[a+8>>2]|(c[a+4>>2]|c[a>>2])))))))|0)==0|0}function Ja(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=0;e=8;f=0;while(1){h=c[a+(e<<2)>>2]|0;g=c[b+(e<<2)>>2]|0;d=h>>>0>>0|d<<1;f=h>>>0>g>>>0|f<<1;if((e|0)<=0)break;else e=e+-1|0}return d>>>0>f>>>0|0}function Ka(a,b){a=a|0;b=b|0;var d=0,e=0;d=0;e=0;do{e=c[b+(d<<2)>>2]^c[a+(d<<2)>>2]|e;d=d+1|0}while((d|0)!=9);return (e|0)==0|0}function La(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=0-b|0;h=b+-1|0;if((b|1|0)==1)f=0;else pa(38200,38223,270,38235);do{c[a+(f<<2)>>2]=c[e+(f<<2)>>2]&h|c[d+(f<<2)>>2]&g;f=f+1|0}while((f|0)!=9);return}function Ma(a){a=a|0;var b=0,d=0,e=0,f=0;b=8;d=c[a+32>>2]|0;do{e=b;b=b+-1|0;f=d;d=c[a+(b<<2)>>2]|0;c[a+(e<<2)>>2]=d>>>29&1|f<<1&1073741822}while((e|0)>1);c[a>>2]=c[a>>2]<<1&1073741822;return}function Na(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[a>>2]|0;f=0-(d&1)|0;d=((c[b>>2]&f)+d|0)>>>1;e=0;do{i=e;e=e+1|0;g=(c[b+(e<<2)>>2]&f)+(c[a+(e<<2)>>2]|0)|0;h=(g<<29&536870912)+d|0;c[a+(i<<2)>>2]=h&1073741823;d=(h>>>30)+(g>>>1)|0}while((e|0)!=8);c[a+32>>2]=d;return}function Oa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=b&255;b=0;do{f=a+(b<<2)|0;c[f>>2]=R(c[f>>2]|0,e)|0;b=b+1|0}while((b|0)!=9);Pa(a,d);return}function Pa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=(c[a+32>>2]|0)>>>16;i=c[a>>2]|0;h=pc(c[b>>2]|0,0,g|0,0)|0;d=C;e=kc(i|0,536870912,h|0,d|0)|0;f=C;d=kc(i|0,0,h|0,d|0)|0;c[a>>2]=d&1073741823;d=1;while(1){l=mc(e|0,f|0,30)|0;k=C;i=a+(d<<2)|0;j=c[i>>2]|0;f=pc(c[b+(d<<2)>>2]|0,0,g|0,0)|0;h=C;k=qc(l|0,k|0,-2147483648,536870911)|0;j=qc(k|0,C|0,j|0,0)|0;e=kc(j|0,C|0,f|0,h|0)|0;c[i>>2]=e&1073741823;d=d+1|0;if((d|0)==9)break;else f=C}return}function Qa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;h=i;i=i+48|0;g=h;d=0;e=8;f=0;while(1){k=c[a+(e<<2)>>2]|0;j=c[b+(e<<2)>>2]|0;d=k>>>0>>0|d<<1;f=k>>>0>j>>>0|f<<1;if((e|0)<=0)break;else e=e+-1|0}f=d>>>0>f>>>0;e=0;d=1;while(1){d=d+1073741823+(c[a+(e<<2)>>2]|0)-(c[b+(e<<2)>>2]|0)|0;c[g+(e<<2)>>2]=d&1073741823;e=e+1|0;if((e|0)==9)break;else d=d>>>30}La(a,f&1,a,g);i=h;return}function Ra(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=0;e=1;while(1){e=e+1073741823+(c[a+(f<<2)>>2]|0)-(c[b+(f<<2)>>2]|0)|0;c[d+(f<<2)>>2]=e&1073741823;f=f+1|0;if((f|0)==9)break;else e=e>>>30}return}function Sa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;h=0;g=0;e=0;i=1;while(1){f=0;do{j=pc(c[b+(h-f<<2)>>2]|0,0,c[a+(f<<2)>>2]|0,0)|0;g=qc(j|0,C|0,g|0,e|0)|0;e=C;f=f+1|0}while((f|0)!=(i|0));c[d+(h<<2)>>2]=g&1073741823;g=mc(g|0,e|0,30)|0;e=C;h=h+1|0;if((h|0)==9){h=9;break}else i=i+1|0}while(1){f=h+-8|0;if((f|0)<9)do{j=pc(c[b+(h-f<<2)>>2]|0,0,c[a+(f<<2)>>2]|0,0)|0;g=qc(j|0,C|0,g|0,e|0)|0;e=C;f=f+1|0}while((f|0)!=9);c[d+(h<<2)>>2]=g&1073741823;g=mc(g|0,e|0,30)|0;h=h+1|0;if((h|0)==17)break;else e=C}c[d+68>>2]=g;return}function Ta(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+(d+1<<2)|0;j=(c[l>>2]<<14)+((c[a+(d<<2)>>2]|0)>>>16)|0;k=d+-8|0;e=a+(k<<2)|0;f=c[e>>2]|0;g=pc(c[b>>2]|0,0,j|0,0)|0;h=C;if((j|0)<=-1)pa(38243,38223,417,38262);i=kc(f|0,536870912,g|0,h|0)|0;m=C;h=kc(f|0,0,g|0,h|0)|0;c[e>>2]=h&1073741823;h=mc(i|0,m|0,30)|0;m=C;i=a+(d+-7<<2)|0;f=qc(c[i>>2]|0,0,-2147483648,536870911)|0;e=1;g=C;d=m;do{m=pc(c[b+(e<<2)>>2]|0,0,j|0,0)|0;m=kc(f|0,g|0,m|0,C|0)|0;m=qc(m|0,C|0,h|0,d|0)|0;c[i>>2]=m&1073741823;e=e+1|0;h=mc(m|0,C|0,30)|0;d=C;i=a+(e+k<<2)|0;f=qc(c[i>>2]|0,0,-2147483648,536870911)|0;g=C}while((e|0)!=9);m=qc(f|0,g|0,h|0,d|0)|0;c[l>>2]=m&1073741823;return}function Ua(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=16;while(1){Ta(b,d,e);if(c[b+(e+1<<2)>>2]|0){g=4;break}e=e+-1|0;if((e|0)<=7){f=0;break}}if((g|0)==4)pa(38286,38223,451,38302);do{c[a+(f<<2)>>2]=c[b+(f<<2)>>2];f=f+1|0}while((f|0)!=9);return}function Va(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+80|0;e=g;f=e;h=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(h|0));Sa(a,b,e);Ua(b,e,d);i=g;return}function Wa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+144|0;k=n+72|0;l=n+36|0;m=n;c[l>>2]=1;h=l+4|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;c[h+24>>2]=0;c[h+28>>2]=0;h=m;d=b;j=h+36|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(j|0));e=0;d=1;while(1){j=m+(e<<2)|0;d=(c[j>>2]|0)+d|0;c[j>>2]=d&1073741823;e=e+1|0;if((e|0)==9)break;else d=d>>>30}d=0;e=c[m>>2]|0;do{j=d;d=d+1|0;h=e;e=c[m+(d<<2)>>2]|0;c[m+(j<<2)>>2]=e<<29&536870912|h>>>1}while((d|0)!=8);e=m+32|0;c[e>>2]=(c[e>>2]|0)>>>1;d=0;f=c[m>>2]|0;do{j=d;d=d+1|0;h=f;f=c[m+(d<<2)>>2]|0;c[m+(j<<2)>>2]=f<<29&536870912|h>>>1}while((d|0)!=8);c[e>>2]=(c[e>>2]|0)>>>1;e=0;do{g=(e|0)==8;d=0;f=c[m+(e<<2)>>2]|0;do{if(g&(f|0)==0)break;if(f&1|0){h=k;j=h+72|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));Sa(a,l,k);Ua(l,k,b)}f=f>>>1;h=k;j=h+72|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));Sa(a,a,k);Ua(a,k,b);d=d+1|0}while(d>>>0<30);e=e+1|0}while((e|0)!=9);Qa(l,b);h=a;d=l;j=h+36|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(j|0));i=n;return}function Xa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=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;v=i;i=i+112|0;d=v+72|0;u=v+32|0;t=v;Pa(a,b);Qa(a,b);e=c[b>>2]|0;f=0;while(1){r=f;f=f+1|0;g=c[b+(f<<2)>>2]|0;h=r<<1;p=g<<30-h|e;c[t+(r<<2)>>2]=p;c[d+(r<<2)>>2]=p;if((f|0)==8)break;else e=g>>>(h+2|0)}e=c[a>>2]|0;f=0;while(1){r=f;f=f+1|0;b=c[a+(f<<2)>>2]|0;g=r<<1;c[u+(r<<2)>>2]=b<<30-g|e;if((f|0)==8)break;else e=b>>>(g+2|0)}o=d+36|0;c[o>>2]=8;p=u+36|0;c[p>>2]=8;r=d+32|0;c[r>>2]=1;c[u+32>>2]=0;f=0;n=u;e=8;g=c[d>>2]|0;b=1;a:while(1){if(!(g&1)){q=7;break}if(!(b&1)){q=10;break}l=n+36|0;b=e;while(1){e=b+-1|0;if(c[n+(e<<2)>>2]|0)break;c[l>>2]=e;if((b|0)<1)break a;else b=e}e=c[n>>2]|0;if(!e){g=n+32|0;do{e=0;do{m=e;e=e+1|0;c[n+(m<<2)>>2]=c[n+(e<<2)>>2]}while((e|0)!=8);c[g>>2]=0;b=(c[l>>2]|0)+-1|0;c[l>>2]=b;f=f+32|0;e=c[n>>2]|0}while((e|0)==0)}k=0;while(1)if(!(e&1<0){e=e>>>k;if((b|0)>1){j=32-k|0;g=1;h=n;while(1){b=n+(g<<2)|0;c[h>>2]=c[b>>2]<>2]|0)>>>k;if((e|0)<(c[l>>2]|0)){g=e;e=h;h=b}else break}}else{g=0;h=e;b=n;e=1}c[b>>2]=h;if(!h)c[l>>2]=(c[l>>2]|0)+-1;else g=e;e=n+(g<<2)|0;b=c[e>>2]<>2]=(c[e>>2]|0)>>>h|b;b=c[e>>2]<>2]=b;m=k+f|0}else m=f;if(!(c[n>>2]&1)){q=32;break}if(c[n+32>>2]&1|0){q=34;break}f=c[o>>2]|0;e=f-(c[p>>2]|0)|0;if(!e){e=f;while(1){b=e+-1|0;if((e|0)<=0){q=38;break}e=c[d+(b<<2)>>2]|0;f=u+(b<<2)|0;if((e|0)==(c[f>>2]|0))e=b;else break}if((q|0)==38){q=0;if(!e){q=56;break}f=u+(b<<2)|0;e=c[d+(b<<2)>>2]|0}e=e>>>0>(c[f>>2]|0)>>>0?1:-1}n=(e|0)>0;l=n?u:d;n=n?d:u;k=l+36|0;h=c[k>>2]|0;if((h|0)>0){e=0;f=1;b=0;while(1){j=n+(e<<2)|0;w=c[j>>2]|0;g=c[l+(e<<2)>>2]|0;f=qc(f|0,b|0,-1,0)|0;f=qc(f|0,C|0,w|0,0)|0;g=kc(f|0,C|0,g|0,0)|0;f=C;c[j>>2]=g;e=e+1|0;if((e|0)<(h|0))b=0;else{b=e;g=0;break}}}else{b=0;f=1;g=0}j=n+36|0;e=c[j>>2]|0;if((b|0)<(e|0)){e=g;while(1){w=n+(b<<2)|0;g=c[w>>2]|0;e=qc(f|0,e|0,-1,0)|0;e=qc(e|0,C|0,g|0,0)|0;c[w>>2]=e;b=b+1|0;e=c[j>>2]|0;if((b|0)>=(e|0))break;else{f=C;e=0}}}if((e|0)>8){f=8;g=0;b=0}else{f=8;g=0;b=0;while(1){w=l+(f<<2)|0;j=c[n+(f<<2)>>2]|0;h=qc(c[w>>2]|0,0,g|0,b|0)|0;j=qc(h|0,C|0,j|0,0)|0;g=C;c[w>>2]=j;w=f;f=f+-1|0;if((w|0)<=(e|0))break;else b=0}h=c[k>>2]|0;b=0}if((f|0)>=(h|0))while(1){w=l+(f<<2)|0;j=qc(c[w>>2]|0,0,g|0,b|0)|0;c[w>>2]=j;if((f|0)>(c[k>>2]|0)){f=f+-1|0;g=C;b=0}else break}g=c[l>>2]|0;if(!(g&1)){q=51;break}b=c[l+32>>2]|0;if(!(b&1)){q=53;break}if(c[n>>2]&1|0){q=55;break}else f=m}if((q|0)==7)pa(38321,38223,646,38335);else if((q|0)==10)pa(38346,38223,647,38335);else if((q|0)==32)pa(38360,38223,699,38335);else if((q|0)==34)pa(38375,38223,700,38335);else if((q|0)==51)pa(38321,38223,757,38335);else if((q|0)==53)pa(38346,38223,758,38335);else if((q|0)==55)pa(38397,38223,759,38335);else if((q|0)==56){l=c[t>>2]|0;if(!(l&1))pa(38419,38223,786,38335);f=l+-1|0;e=l+-2|0;if(!f)k=e;else{do{f=R(f,f)|0;e=R(f+1|0,e)|0}while((f|0)!=0);k=e}b:do if((m|0)>31){j=d+4|0;e=m;while(1){w=c[r>>2]|0;b=R(w,k)|0;q=pc(l|0,0,b|0,0)|0;w=qc(q|0,C|0,w|0,0)|0;if(!((w|0)==0&0==0))break;f=0;g=C;h=0;while(1){w=f;f=f+1|0;o=c[d+(7-w<<2)>>2]|0;p=pc(c[t+(f<<2)>>2]|0,0,b|0,0)|0;q=C;o=qc(o|0,0,g|0,h|0)|0;q=qc(o|0,C|0,p|0,q|0)|0;g=C;c[d+(8-w<<2)>>2]=q;if((f|0)==7)break;else h=0}c[j>>2]=g;e=e+-32|0;if((e|0)<=31){s=e;break b}}pa(38429,38223,802,38335)}else s=m;while(0);if((s|0)>0){w=(1<>2]|0;h=(R(e,k)|0)&w;if((R(h,l)|0)+e&w|0)pa(38454,38223,821,38335);b=pc(h|0,0,l|0,0)|0;b=qc(b|0,C|0,e|0,0)|0;b=mc(b|0,C|0,s|0)|0;f=32-s|0;e=0;g=C;while(1){w=e;e=e+1|0;s=c[d+(7-w<<2)>>2]|0;r=pc(c[t+(e<<2)>>2]|0,0,h|0,0)|0;s=qc(r|0,C|0,s|0,0)|0;s=nc(s|0,C|0,f|0)|0;s=qc(s|0,C|0,b|0,g|0)|0;b=C;c[d+(8-w<<2)>>2]=s;if((e|0)==7)break;else g=0}c[d+4>>2]=b;e=0;f=0}else{e=0;f=0}do{s=c[d+(8-e<<2)>>2]|0;w=e<<1;c[a+(e<<2)>>2]=s<>>(30-w|0);e=e+1|0}while((e|0)!=8);c[a+32>>2]=f;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;c[t+16>>2]=0;c[t+20>>2]=0;c[t+24>>2]=0;c[t+28>>2]=0;e=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));d=u;e=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0))}i=v;return}function Ya(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=0;d=0;while(1){f=a+(e<<2)|0;d=(c[f>>2]|0)+d+(c[b+(e<<2)>>2]|0)|0;c[f>>2]=d&1073741823;e=e+1|0;if((e|0)==9)break;else d=d>>>30}return}function Za(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=0;do{f=a+(e<<2)|0;c[f>>2]=(c[f>>2]|0)+(c[b+(e<<2)>>2]|0);e=e+1|0}while((e|0)!=9);Pa(a,d);return}function _a(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[d>>2]|0)>>>0>>0)pa(38495,38223,883,38514);b=(c[a>>2]|0)-b|0;c[a>>2]=b;b=b+(c[d>>2]|0)|0;c[a>>2]=b&1073741823;e=1;do{b=(c[a+(e<<2)>>2]|0)+(b>>>30)+(c[d+(e<<2)>>2]|0)|0;c[a+(e<<2)>>2]=b&1073741823;e=e+1|0}while((e|0)!=9);return}function $a(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=0;f=1;while(1){f=f+1073741823+(c[a+(g<<2)>>2]|0)+(c[e+(g<<2)>>2]<<1)-(c[b+(g<<2)>>2]|0)|0;c[d+(g<<2)>>2]=f&1073741823;g=g+1|0;if((g|0)==9)break;else f=f>>>30}return}function ab(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+144|0;k=n+108|0;e=n+72|0;l=n+36|0;m=n;do if(!(bb(b)|0)){if(bb(d)|0){e=d;f=b;g=e+72|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));break}if(cb(b,d)|0){db(a,d);break}if(!(eb(b,d)|0)){$a(d,b,e,a);Xa(e,a);h=d+36|0;j=b+36|0;$a(h,j,k,a);Va(e,k,a);e=l;f=k;g=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));Va(l,l,a);e=m;f=b;g=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));Za(m,d,a);$a(l,m,l,a);Pa(l,a);Qa(l,a);$a(b,l,m,a);Va(k,m,a);$a(m,j,m,a);Pa(m,a);Qa(m,a);e=d;f=l;g=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=h;f=m;g=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));break}else{Ha(d);Ha(d+36|0);break}}while(0);i=n;return}function bb(a){a=a|0;if(!(Ia(a)|0))a=0;else a=(Ia(a+36|0)|0)!=0;return a&1|0}function cb(a,b){a=a|0;b=b|0;if(!(Ka(a,b)|0))a=0;else a=(Ka(a+36|0,b+36|0)|0)!=0;return a&1|0}function db(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+112|0;d=j+72|0;e=j+36|0;f=j;do if(!(bb(b)|0)){g=b+36|0;if(!(Ia(g)|0)){h=d;k=g;l=h+36|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));Oa(d,2,a);Xa(d,a);h=e;k=b;l=h+36|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));Va(e,e,a);Oa(e,3,a);_a(e,0-(c[a+180>>2]|0)|0,a);Va(e,d,a);h=e;k=d;l=h+36|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));Va(e,e,a);h=f;k=b;l=h+36|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));Ma(f);$a(e,f,e,a);Pa(e,a);Qa(e,a);$a(b,e,f,a);Va(d,f,a);$a(f,g,f,a);Pa(f,a);Qa(f,a);h=b;k=e;l=h+36|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));h=g;k=f;l=h+36|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));break}else{Ha(b);Ha(g);break}}while(0);i=j;return}function eb(a,b){a=a|0;b=b|0;var c=0;if((Ka(a,b)|0)!=0?(c=a+36|0,(Ia(c)|0)==0):0)a=(Ka(c,b+36|0)|0)==0&1;else a=0;return a|0}function fb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;g=b+32|0;if((c[g>>2]|0)>>>0>=131072)pa(38522,38542,180,38553);h=a&1073741823;f=~a;a=c[b>>2]|0;e=(c[d>>2]<<1)+1073741824-a|0;c[b>>2]=h&e|a&f;a=0;do{a=a+1|0;i=b+(a<<2)|0;j=c[i>>2]|0;e=(e>>>30)+1073741823+(c[d+(a<<2)>>2]<<1)-j|0;c[i>>2]=h&e|j&f}while((a|0)!=8);if((c[g>>2]|0)>>>0<131072)return;else pa(38522,38542,188,38553)}function gb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+32|0;while(1){d=0;f=Kb()|0;do{c[a+(d<<2)>>2]=f&1073741823;d=d+1|0;f=Kb()|0}while((d|0)!=8);c[e>>2]=f&65535;if(Ia(a)|0)continue;if(Ja(a,b)|0)break}return}function hb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=b+72|0;gb(e,d);g=b;h=e;i=g+36|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));Va(e,b,d);f=b+36|0;g=f;h=b;i=g+36|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));Va(e,f,d);Va(a,b,d);Va(a+36|0,f,d);return}function ib(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=b+36|0;f=e;g=a+72|0;h=f+36|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));Xa(e,d);f=b;g=e;h=f+36|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));Va(b,b,d);Va(b,e,d);Va(a,b,d);Va(a+36|0,e,d);Qa(b,d);Qa(e,d);return}function jb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=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;s=i;i=i+288|0;k=s+252|0;l=s+216|0;m=s+180|0;n=s+144|0;o=s+108|0;p=s+72|0;q=s+36|0;g=s;e=c[d+180>>2]|0;if((e+3|0)>>>0>=4)pa(38572,38542,247,38590);h=b+72|0;r=p;t=h;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(p,p,d);r=q;t=h;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(p,q,d);j=(e|0)!=0;if(j){e=0-e|0;r=g;t=p;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(g,g,d);Oa(g,e&255,d)}Va(a,p,d);r=l;t=p;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));$a(l,b,l,d);Pa(l,d);Ya(p,b);f=Ka(l,d)|0;Va(a+36|0,q,d);e=b+36|0;$a(q,e,k,d);Ya(q,e);r=m;t=b;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(m,m,d);Oa(m,3,d);if(j)$a(m,g,m,d);La(k,f,m,k);La(l,f,q,l);r=o;t=l;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(o,o,d);r=n;t=l;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(o,n,d);Va(p,o,d);Va(q,n,d);Va(l,h,d);r=b;t=k;u=r+36|0;do{c[r>>2]=c[t>>2];r=r+4|0;t=t+4|0}while((r|0)<(u|0));Va(b,b,d);$a(b,o,b,d);Pa(b,d);$a(o,b,e,d);$a(e,b,e,d);Va(k,e,d);$a(e,n,e,d);Na(e,d);Pa(e,d);i=s;return}function kb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+144|0;l=n+108|0;m=n;if(!(Ja(b,a+108|0)|0))pa(38609,38542,552,38658);j=c[b>>2]|0;g=(j&1)+-1|0;f=1;e=0;h=j;do{k=f+1073741823+h-(c[a+108+(e<<2)>>2]&g)|0;c[l+(e<<2)>>2]=k&1073741823;f=k>>>30;e=e+1|0;h=c[b+(e<<2)>>2]|0;j=h|j}while((e|0)!=8);k=l+32|0;c[k>>2]=f+65535+h-(c[a+140>>2]&g);e=c[l>>2]|0;if(!(e&1))pa(38638,38542,575,38658);if(!j){Ha(d);Ha(d+36|0)}else{hb(a+220+((((e>>>4&1)+15^e)>>>1&7)*72|0)|0,m,a);h=m+36|0;g=1;do{f=0;e=e>>>4;b=l;do{f=f+1|0;j=b;b=l+(f<<2)|0;c[j>>2]=c[b>>2]<<26&1006632960|e;e=(c[b>>2]|0)>>>4}while((f|0)!=8);c[k>>2]=e;e=c[l>>2]|0;b=e>>>4&1;j=b+15^e;fb((j&1)+-1|0,h,a);jb(a+220+(g*576|0)+((j>>>1&7)*72|0)|0,m,a);g=g+1|0}while((g|0)!=64);fb(b+-1|0,h,a);ib(m,d,a)}i=n;return}function lb(b,c,d){b=b|0;c=c|0;d=d|0;b=(b|0)==0?712:b;switch(a[c>>0]|0){case 4:{Fa(c+1|0,d);Fa(c+33|0,d+36|0);b=mb(b,d)|0;break}case 3:case 2:{Fa(c+1|0,d);nb(b,a[c>>0]|0,d,d+36|0);b=mb(b,d)|0;break}default:b=0}return b|0}function mb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+80|0;d=k+36|0;e=k;if(((bb(b)|0)==0?(Ja(b,a)|0)!=0:0)?(f=b+36|0,(Ja(f,a)|0)!=0):0){g=d;h=f;j=g+36|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(j|0));g=e;h=b;j=g+36|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(j|0));Va(f,d,a);Qa(d,a);Va(b,e,a);_a(e,0-(c[a+180>>2]|0)|0,a);Va(b,e,a);Za(e,a+184|0,a);Qa(e,a);a=(Ka(e,d)|0)!=0&1}else a=0;i=k;return a|0}function nb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=e;g=d;h=f+36|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));Va(d,e,a);_a(e,0-(c[a+180>>2]|0)|0,a);Va(d,e,a);Ya(e,a+184|0);Wa(e,a);if((c[e>>2]^b&255)&1|0)Ra(a,e,e);return}function ob(b,c){b=b|0;c=c|0;var d=0,e=0;e=i;i=i+32|0;d=e;switch(a[b>>0]|0){case 4:{Eb(b,65,d);break}case 0:{Eb(b,1,d);break}default:Eb(b,33,d)}Ab(d,32,c);i=e;return}function pb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+48|0;g=e;f=Lb(b)|0;h=Lb(b)|0;Mb(b,g);ob(a,g+h|0);wb(g,f+20|0,c,d)|0;i=e;return}function qb(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+128|0;h=j;f=h;g=f+128|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(g|0));if(e>>>0>128){Jb(c,e,h);c=0}else{tc(h|0,c|0,e|0)|0;c=0}do{g=h+c|0;f=d[g>>0]|0;a[b+c>>0]=f^92;a[g>>0]=f^54;c=c+1|0}while((c|0)!=128);b=b+128|0;Fb(b);Hb(b,h,128);i=j;return}function rb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;i=i+64|0;e=c;d=a+128|0;Ib(d,e);Fb(d);Hb(d,a,128);Hb(d,e,64);Ib(d,b);lc(a|0,0,336)|0;i=c;return}function sb(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;f=i;i=i+336|0;g=f;qb(g,a,b);Hb(g+128|0,c,d);rb(g,e);i=f;return}function tb(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+144|0;o=r+104|0;p=r+40|0;q=r;if((f|0)<0)f=0;else{a[o>>0]=c[d+36>>2]&1|2;n=o+1|0;Ga(d,n);Ea(o+33|0,f);f=b+108|0;j=p+32|0;while(1){sb(e,32,o,37,p);Fa(p,q);if(Ja(q,f)|0?(kb(b,q,g),ab(b,d,g),(bb(g)|0)==0):0)break;a[o>>0]=1;k=n;l=j;m=k+32|0;do{a[k>>0]=a[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0))}if(h|0){k=h;l=j;m=k+32|0;do{a[k>>0]=a[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0))}k=o;m=k+37|0;do{a[k>>0]=0;k=k+1|0}while((k|0)<(m|0));k=p;m=k+64|0;do{a[k>>0]=0;k=k+1|0}while((k|0)<(m|0));k=q;m=k+36|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(m|0));f=1}i=r;return f|0}function ub(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;n=i;i=i+192|0;l=n+152|0;o=n;m=n+120|0;k=n+72|0;tb(712,b,d,e,o,0)|0;a[l>>0]=c[o+36>>2]&1|2;Ga(o,l+1|0);if(j){b=Lb(f)|0;a[m>>0]=0;a[m+1>>0]=20;ob(l,m+2|0);Eb(m,22,k);Mb(f,m);Ab(k,32,m+b|0);b=(wb(m,b+20|0,g,54)|0)!=0&1}else{pb(l,f,g,h);b=1}i=n;return b|0}function vb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;a:do if((g|0)>0){h=0;do{if(a[f+h>>0]|0)break a;h=h+1|0}while((h|0)<(g|0))}else h=0;while(0);o=(((g-h|0)*138|0)>>>0)/100|0;n=o+1|0;p=i;i=i+((1*n|0)+15&-16)|0;lc(p|0,0,n|0)|0;if((h|0)<(g|0)){j=o;m=h;do{k=a[f+m>>0]|0;if((o|0)>(j|0)|k<<24>>24!=0){k=k&255;l=o;while(1){r=p+l|0;k=(d[r>>0]<<8)+k|0;a[r>>0]=(k|0)%58|0;l=l+-1|0;if((l|0)>(j|0)|(k+57|0)>>>0>114)k=(k|0)/58|0;else{j=l;break}}}else j=o;m=m+1|0}while((m|0)!=(g|0));j=0}else j=0;while(1){if(a[p+j>>0]|0)break;k=j+1|0;if((j|0)<(o|0))j=k;else{j=k;break}}k=n+h-j|0;if((c[e>>2]|0)>>>0>k>>>0){if(!h)h=0;else lc(b|0,49,h|0)|0;if((j|0)<=(o|0))while(1){a[b+h>>0]=a[38674+(d[p+j>>0]|0)>>0]|0;h=h+1|0;if((j|0)<(o|0))j=j+1|0;else break}a[b+h>>0]=0;j=1}else{j=0;h=k}c[e>>2]=h+1;i=q;return j|0}function wb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;f=g;if((b|0)>128)a=0;else{j=b+32|0;h=ia()|0;k=i;i=i+((1*j|0)+15&-16)|0;l=k+b|0;tc(k|0,a|0,b|0)|0;Eb(a,b,l);Eb(l,32,l);c[f>>2]=e;a=vb(d,f,k,b+4|0)|0;lc(k|0,0,j|0)|0;a=a?c[f>>2]|0:0;oa(h|0)}i=g;return a|0}function xb(a,b){a=a|0;b=b|0;var e=0,f=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,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;s=(d[b+1>>0]|0)<<8|(d[b>>0]|0)|(d[b+2>>0]|0)<<16|(d[b+3>>0]|0)<<24;D=(d[b+5>>0]|0)<<8|(d[b+4>>0]|0)|(d[b+6>>0]|0)<<16|(d[b+7>>0]|0)<<24;v=(d[b+9>>0]|0)<<8|(d[b+8>>0]|0)|(d[b+10>>0]|0)<<16|(d[b+11>>0]|0)<<24;f=(d[b+13>>0]|0)<<8|(d[b+12>>0]|0)|(d[b+14>>0]|0)<<16|(d[b+15>>0]|0)<<24;x=(d[b+17>>0]|0)<<8|(d[b+16>>0]|0)|(d[b+18>>0]|0)<<16|(d[b+19>>0]|0)<<24;t=(d[b+21>>0]|0)<<8|(d[b+20>>0]|0)|(d[b+22>>0]|0)<<16|(d[b+23>>0]|0)<<24;y=(d[b+25>>0]|0)<<8|(d[b+24>>0]|0)|(d[b+26>>0]|0)<<16|(d[b+27>>0]|0)<<24;z=(d[b+29>>0]|0)<<8|(d[b+28>>0]|0)|(d[b+30>>0]|0)<<16|(d[b+31>>0]|0)<<24;B=(d[b+33>>0]|0)<<8|(d[b+32>>0]|0)|(d[b+34>>0]|0)<<16|(d[b+35>>0]|0)<<24;i=(d[b+37>>0]|0)<<8|(d[b+36>>0]|0)|(d[b+38>>0]|0)<<16|(d[b+39>>0]|0)<<24;F=(d[b+41>>0]|0)<<8|(d[b+40>>0]|0)|(d[b+42>>0]|0)<<16|(d[b+43>>0]|0)<<24;l=(d[b+45>>0]|0)<<8|(d[b+44>>0]|0)|(d[b+46>>0]|0)<<16|(d[b+47>>0]|0)<<24;H=(d[b+49>>0]|0)<<8|(d[b+48>>0]|0)|(d[b+50>>0]|0)<<16|(d[b+51>>0]|0)<<24;u=(d[b+53>>0]|0)<<8|(d[b+52>>0]|0)|(d[b+54>>0]|0)<<16|(d[b+55>>0]|0)<<24;m=(d[b+57>>0]|0)<<8|(d[b+56>>0]|0)|(d[b+58>>0]|0)<<16|(d[b+59>>0]|0)<<24;w=(d[b+61>>0]|0)<<8|(d[b+60>>0]|0)|(d[b+62>>0]|0)<<16|(d[b+63>>0]|0)<<24;b=a+8|0;A=c[b>>2]|0;p=a+12|0;e=c[p>>2]|0;n=a+16|0;r=c[n>>2]|0;k=a+20|0;I=c[k>>2]|0;g=a+24|0;E=c[g>>2]|0;j=A+s+(r^e^I)|0;j=(j<<11|j>>>21)+E|0;C=r<<10|r>>>22;A=t+1352829926+A+((r|~I)^e)|0;A=(A<<8|A>>>24)+E|0;o=E+D+(C^e^j)|0;o=(o<<14|o>>>18)+I|0;G=e<<10|e>>>22;E=m+1352829926+E+(A^(e|~C))|0;E=(E<<9|E>>>23)+I|0;J=I+v+(j^G^o)|0;J=(J<<15|J>>>17)+C|0;j=j<<10|j>>>22;I=z+1352829926+I+(E^(A|~G))|0;I=(I<<9|I>>>23)+C|0;A=A<<10|A>>>22;a=C+f+(o^j^J)|0;a=(a<<12|a>>>20)+G|0;o=o<<10|o>>>22;C=s+1352829926+C+(I^(E|~A))|0;C=(C<<11|C>>>21)+G|0;E=E<<10|E>>>22;h=G+x+(J^o^a)|0;h=(h<<5|h>>>27)+j|0;J=J<<10|J>>>22;G=i+1352829926+G+(C^(I|~E))|0;G=(G<<13|G>>>19)+A|0;I=I<<10|I>>>22;j=j+t+(a^J^h)|0;j=(j<<8|j>>>24)+o|0;a=a<<10|a>>>22;A=v+1352829926+A+(G^(C|~I))|0;A=(A<<15|A>>>17)+E|0;C=C<<10|C>>>22;o=o+y+(h^a^j)|0;o=(o<<7|o>>>25)+J|0;h=h<<10|h>>>22;E=l+1352829926+E+(A^(G|~C))|0;E=(E<<15|E>>>17)+I|0;G=G<<10|G>>>22;J=J+z+(j^h^o)|0;J=(J<<9|J>>>23)+a|0;j=j<<10|j>>>22;I=x+1352829926+I+(E^(A|~G))|0;I=(I<<5|I>>>27)+C|0;A=A<<10|A>>>22;a=a+B+(o^j^J)|0;a=(a<<11|a>>>21)+h|0;o=o<<10|o>>>22;C=u+1352829926+C+(I^(E|~A))|0;C=(C<<7|C>>>25)+G|0;E=E<<10|E>>>22;h=h+i+(J^o^a)|0;h=(h<<13|h>>>19)+j|0;J=J<<10|J>>>22;G=y+1352829926+G+(C^(I|~E))|0;G=(G<<7|G>>>25)+A|0;I=I<<10|I>>>22;j=j+F+(a^J^h)|0;j=(j<<14|j>>>18)+o|0;a=a<<10|a>>>22;A=w+1352829926+A+(G^(C|~I))|0;A=(A<<8|A>>>24)+E|0;C=C<<10|C>>>22;o=o+l+(h^a^j)|0;o=(o<<15|o>>>17)+J|0;h=h<<10|h>>>22;E=B+1352829926+E+(A^(G|~C))|0;E=(E<<11|E>>>21)+I|0;G=G<<10|G>>>22;J=J+H+(j^h^o)|0;J=(J<<6|J>>>26)+a|0;j=j<<10|j>>>22;I=D+1352829926+I+(E^(A|~G))|0;I=(I<<14|I>>>18)+C|0;A=A<<10|A>>>22;a=a+u+(o^j^J)|0;a=(a<<7|a>>>25)+h|0;o=o<<10|o>>>22;C=F+1352829926+C+(I^(E|~A))|0;C=(C<<14|C>>>18)+G|0;E=E<<10|E>>>22;h=h+m+(J^o^a)|0;h=(h<<9|h>>>23)+j|0;J=J<<10|J>>>22;G=f+1352829926+G+(C^(I|~E))|0;G=(G<<12|G>>>20)+A|0;I=I<<10|I>>>22;j=j+w+(a^J^h)|0;j=(j<<8|j>>>24)+o|0;a=a<<10|a>>>22;A=H+1352829926+A+(G^(C|~I))|0;A=(A<<6|A>>>26)+E|0;C=C<<10|C>>>22;o=z+1518500249+o+(j&h|a&~j)|0;o=(o<<7|o>>>25)+J|0;h=h<<10|h>>>22;E=y+1548603684+E+(A&C|G&~C)|0;E=(E<<9|E>>>23)+I|0;G=G<<10|G>>>22;J=x+1518500249+J+(o&j|h&~o)|0;J=(J<<6|J>>>26)+a|0;j=j<<10|j>>>22;I=l+1548603684+I+(E&G|A&~G)|0;I=(I<<13|I>>>19)+C|0;A=A<<10|A>>>22;a=u+1518500249+a+(J&o|j&~J)|0;a=(a<<8|a>>>24)+h|0;o=o<<10|o>>>22;C=f+1548603684+C+(I&A|E&~A)|0;C=(C<<15|C>>>17)+G|0;E=E<<10|E>>>22;h=D+1518500249+h+(a&J|o&~a)|0;h=(h<<13|h>>>19)+j|0;J=J<<10|J>>>22;G=z+1548603684+G+(C&E|I&~E)|0;G=(G<<7|G>>>25)+A|0;I=I<<10|I>>>22;j=F+1518500249+j+(h&a|J&~h)|0;j=(j<<11|j>>>21)+o|0;a=a<<10|a>>>22;A=s+1548603684+A+(G&I|C&~I)|0;A=(A<<12|A>>>20)+E|0;C=C<<10|C>>>22;o=y+1518500249+o+(j&h|a&~j)|0;o=(o<<9|o>>>23)+J|0;h=h<<10|h>>>22;E=u+1548603684+E+(A&C|G&~C)|0;E=(E<<8|E>>>24)+I|0;G=G<<10|G>>>22;J=w+1518500249+J+(o&j|h&~o)|0;J=(J<<7|J>>>25)+a|0;j=j<<10|j>>>22;I=t+1548603684+I+(E&G|A&~G)|0;I=(I<<9|I>>>23)+C|0;A=A<<10|A>>>22;a=f+1518500249+a+(J&o|j&~J)|0;a=(a<<15|a>>>17)+h|0;o=o<<10|o>>>22;C=F+1548603684+C+(I&A|E&~A)|0;C=(C<<11|C>>>21)+G|0;E=E<<10|E>>>22;h=H+1518500249+h+(a&J|o&~a)|0;h=(h<<7|h>>>25)+j|0;J=J<<10|J>>>22;G=m+1548603684+G+(C&E|I&~E)|0;G=(G<<7|G>>>25)+A|0;I=I<<10|I>>>22;j=s+1518500249+j+(h&a|J&~h)|0;j=(j<<12|j>>>20)+o|0;a=a<<10|a>>>22;A=w+1548603684+A+(G&I|C&~I)|0;A=(A<<7|A>>>25)+E|0;C=C<<10|C>>>22;o=i+1518500249+o+(j&h|a&~j)|0;o=(o<<15|o>>>17)+J|0;h=h<<10|h>>>22;E=B+1548603684+E+(A&C|G&~C)|0;E=(E<<12|E>>>20)+I|0;G=G<<10|G>>>22;J=t+1518500249+J+(o&j|h&~o)|0;J=(J<<9|J>>>23)+a|0;j=j<<10|j>>>22;I=H+1548603684+I+(E&G|A&~G)|0;I=(I<<7|I>>>25)+C|0;A=A<<10|A>>>22;a=v+1518500249+a+(J&o|j&~J)|0;a=(a<<11|a>>>21)+h|0;o=o<<10|o>>>22;C=x+1548603684+C+(I&A|E&~A)|0;C=(C<<6|C>>>26)+G|0;E=E<<10|E>>>22;h=m+1518500249+h+(a&J|o&~a)|0;h=(h<<7|h>>>25)+j|0;J=J<<10|J>>>22;G=i+1548603684+G+(C&E|I&~E)|0;G=(G<<15|G>>>17)+A|0;I=I<<10|I>>>22;j=l+1518500249+j+(h&a|J&~h)|0;j=(j<<13|j>>>19)+o|0;a=a<<10|a>>>22;A=D+1548603684+A+(G&I|C&~I)|0;A=(A<<13|A>>>19)+E|0;C=C<<10|C>>>22;q=~j;o=B+1518500249+o+(j&h|a&q)|0;o=(o<<12|o>>>20)+J|0;h=h<<10|h>>>22;E=v+1548603684+E+(A&C|G&~C)|0;E=(E<<11|E>>>21)+I|0;G=G<<10|G>>>22;q=f+1859775393+J+((o|q)^h)|0;q=(q<<11|q>>>21)+a|0;j=j<<10|j>>>22;I=w+1836072691+I+((E|~A)^G)|0;I=(I<<9|I>>>23)+C|0;A=A<<10|A>>>22;a=F+1859775393+a+((q|~o)^j)|0;a=(a<<13|a>>>19)+h|0;o=o<<10|o>>>22;C=t+1836072691+C+((I|~E)^A)|0;C=(C<<7|C>>>25)+G|0;E=E<<10|E>>>22;h=m+1859775393+h+((a|~q)^o)|0;h=(h<<6|h>>>26)+j|0;q=q<<10|q>>>22;G=D+1836072691+G+((C|~I)^E)|0;G=(G<<15|G>>>17)+A|0;I=I<<10|I>>>22;j=x+1859775393+j+((h|~a)^q)|0;j=(j<<7|j>>>25)+o|0;a=a<<10|a>>>22;A=f+1836072691+A+((G|~C)^I)|0;A=(A<<11|A>>>21)+E|0;C=C<<10|C>>>22;o=i+1859775393+o+((j|~h)^a)|0;o=(o<<14|o>>>18)+q|0;h=h<<10|h>>>22;E=z+1836072691+E+((A|~G)^C)|0;E=(E<<8|E>>>24)+I|0;G=G<<10|G>>>22;q=w+1859775393+q+((o|~j)^h)|0;q=(q<<9|q>>>23)+a|0;j=j<<10|j>>>22;I=m+1836072691+I+((E|~A)^G)|0;I=(I<<6|I>>>26)+C|0;A=A<<10|A>>>22;a=B+1859775393+a+((q|~o)^j)|0;a=(a<<13|a>>>19)+h|0;o=o<<10|o>>>22;C=y+1836072691+C+((I|~E)^A)|0;C=(C<<6|C>>>26)+G|0;E=E<<10|E>>>22;h=D+1859775393+h+((a|~q)^o)|0;h=(h<<15|h>>>17)+j|0;q=q<<10|q>>>22;G=i+1836072691+G+((C|~I)^E)|0;G=(G<<14|G>>>18)+A|0;I=I<<10|I>>>22;j=v+1859775393+j+((h|~a)^q)|0;j=(j<<14|j>>>18)+o|0;a=a<<10|a>>>22;A=l+1836072691+A+((G|~C)^I)|0;A=(A<<12|A>>>20)+E|0;C=C<<10|C>>>22;o=z+1859775393+o+((j|~h)^a)|0;o=(o<<8|o>>>24)+q|0;h=h<<10|h>>>22;E=B+1836072691+E+((A|~G)^C)|0;E=(E<<13|E>>>19)+I|0;G=G<<10|G>>>22;q=s+1859775393+q+((o|~j)^h)|0;q=(q<<13|q>>>19)+a|0;j=j<<10|j>>>22;I=H+1836072691+I+((E|~A)^G)|0;I=(I<<5|I>>>27)+C|0;A=A<<10|A>>>22;a=y+1859775393+a+((q|~o)^j)|0;a=(a<<6|a>>>26)+h|0;o=o<<10|o>>>22;C=v+1836072691+C+((I|~E)^A)|0;C=(C<<14|C>>>18)+G|0;E=E<<10|E>>>22;h=u+1859775393+h+((a|~q)^o)|0;h=(h<<5|h>>>27)+j|0;q=q<<10|q>>>22;G=F+1836072691+G+((C|~I)^E)|0;G=(G<<13|G>>>19)+A|0;I=I<<10|I>>>22;j=l+1859775393+j+((h|~a)^q)|0;j=(j<<12|j>>>20)+o|0;a=a<<10|a>>>22;A=s+1836072691+A+((G|~C)^I)|0;A=(A<<13|A>>>19)+E|0;C=C<<10|C>>>22;o=t+1859775393+o+((j|~h)^a)|0;o=(o<<7|o>>>25)+q|0;h=h<<10|h>>>22;E=x+1836072691+E+((A|~G)^C)|0;E=(E<<7|E>>>25)+I|0;G=G<<10|G>>>22;q=H+1859775393+q+((o|~j)^h)|0;q=(q<<5|q>>>27)+a|0;j=j<<10|j>>>22;I=u+1836072691+I+((E|~A)^G)|0;I=(I<<5|I>>>27)+C|0;A=A<<10|A>>>22;a=D+-1894007588+a+(q&j|o&~j)|0;a=(a<<11|a>>>21)+h|0;o=o<<10|o>>>22;C=B+2053994217+C+(I&E|A&~I)|0;C=(C<<15|C>>>17)+G|0;E=E<<10|E>>>22;h=i+-1894007588+h+(a&o|q&~o)|0;h=(h<<12|h>>>20)+j|0;q=q<<10|q>>>22;G=y+2053994217+G+(C&I|E&~C)|0;G=(G<<5|G>>>27)+A|0;I=I<<10|I>>>22;j=l+-1894007588+j+(h&q|a&~q)|0;j=(j<<14|j>>>18)+o|0;a=a<<10|a>>>22;A=x+2053994217+A+(G&C|I&~G)|0;A=(A<<8|A>>>24)+E|0;C=C<<10|C>>>22;o=F+-1894007588+o+(j&a|h&~a)|0;o=(o<<15|o>>>17)+q|0;h=h<<10|h>>>22;E=D+2053994217+E+(A&G|C&~A)|0;E=(E<<11|E>>>21)+I|0;G=G<<10|G>>>22;q=s+-1894007588+q+(o&h|j&~h)|0;q=(q<<14|q>>>18)+a|0;j=j<<10|j>>>22;I=f+2053994217+I+(E&A|G&~E)|0;I=(I<<14|I>>>18)+C|0;A=A<<10|A>>>22;a=B+-1894007588+a+(q&j|o&~j)|0;a=(a<<15|a>>>17)+h|0;o=o<<10|o>>>22;C=l+2053994217+C+(I&E|A&~I)|0;C=(C<<14|C>>>18)+G|0;E=E<<10|E>>>22;h=H+-1894007588+h+(a&o|q&~o)|0;h=(h<<9|h>>>23)+j|0;q=q<<10|q>>>22;G=w+2053994217+G+(C&I|E&~C)|0;G=(G<<6|G>>>26)+A|0;I=I<<10|I>>>22;j=x+-1894007588+j+(h&q|a&~q)|0;j=(j<<8|j>>>24)+o|0;a=a<<10|a>>>22;A=s+2053994217+A+(G&C|I&~G)|0;A=(A<<14|A>>>18)+E|0;C=C<<10|C>>>22;o=u+-1894007588+o+(j&a|h&~a)|0;o=(o<<9|o>>>23)+q|0;h=h<<10|h>>>22;E=t+2053994217+E+(A&G|C&~A)|0;E=(E<<6|E>>>26)+I|0;G=G<<10|G>>>22;q=f+-1894007588+q+(o&h|j&~h)|0;q=(q<<14|q>>>18)+a|0;j=j<<10|j>>>22;I=H+2053994217+I+(E&A|G&~E)|0;I=(I<<9|I>>>23)+C|0;A=A<<10|A>>>22;a=z+-1894007588+a+(q&j|o&~j)|0;a=(a<<5|a>>>27)+h|0;o=o<<10|o>>>22;C=v+2053994217+C+(I&E|A&~I)|0;C=(C<<12|C>>>20)+G|0;E=E<<10|E>>>22;h=w+-1894007588+h+(a&o|q&~o)|0;h=(h<<6|h>>>26)+j|0;q=q<<10|q>>>22;G=u+2053994217+G+(C&I|E&~C)|0;G=(G<<9|G>>>23)+A|0;I=I<<10|I>>>22;j=m+-1894007588+j+(h&q|a&~q)|0;j=(j<<8|j>>>24)+o|0;a=a<<10|a>>>22;A=i+2053994217+A+(G&C|I&~G)|0;A=(A<<12|A>>>20)+E|0;C=C<<10|C>>>22;o=t+-1894007588+o+(j&a|h&~a)|0;o=(o<<6|o>>>26)+q|0;h=h<<10|h>>>22;E=z+2053994217+E+(A&G|C&~A)|0;E=(E<<5|E>>>27)+I|0;G=G<<10|G>>>22;q=y+-1894007588+q+(o&h|j&~h)|0;q=(q<<5|q>>>27)+a|0;j=j<<10|j>>>22;I=F+2053994217+I+(E&A|G&~E)|0;I=(I<<15|I>>>17)+C|0;A=A<<10|A>>>22;a=v+-1894007588+a+(q&j|o&~j)|0;a=(a<<12|a>>>20)+h|0;o=o<<10|o>>>22;C=m+2053994217+C+(I&E|A&~I)|0;C=(C<<8|C>>>24)+G|0;E=E<<10|E>>>22;h=x+-1454113458+h+(a^(q|~o))|0;h=(h<<9|h>>>23)+j|0;q=q<<10|q>>>22;G=G+H+(I^E^C)|0;G=(G<<8|G>>>24)+A|0;I=I<<10|I>>>22;j=s+-1454113458+j+(h^(a|~q))|0;j=(j<<15|j>>>17)+o|0;a=a<<10|a>>>22;A=A+w+(C^I^G)|0;A=(A<<5|A>>>27)+E|0;C=C<<10|C>>>22;o=t+-1454113458+o+(j^(h|~a))|0;o=(o<<5|o>>>27)+q|0;h=h<<10|h>>>22;E=E+F+(G^C^A)|0;E=(E<<12|E>>>20)+I|0;G=G<<10|G>>>22;q=i+-1454113458+q+(o^(j|~h))|0;q=(q<<11|q>>>21)+a|0;j=j<<10|j>>>22;x=I+x+(A^G^E)|0;x=(x<<9|x>>>23)+C|0;A=A<<10|A>>>22;a=z+-1454113458+a+(q^(o|~j))|0;a=(a<<6|a>>>26)+h|0;o=o<<10|o>>>22;C=C+D+(E^A^x)|0;C=(C<<12|C>>>20)+G|0;E=E<<10|E>>>22;h=H+-1454113458+h+(a^(q|~o))|0;h=(h<<8|h>>>24)+j|0;q=q<<10|q>>>22;t=G+t+(x^E^C)|0;t=(t<<5|t>>>27)+A|0;x=x<<10|x>>>22;j=v+-1454113458+j+(h^(a|~q))|0;j=(j<<13|j>>>19)+o|0;a=a<<10|a>>>22;A=A+B+(C^x^t)|0;A=(A<<14|A>>>18)+E|0;C=C<<10|C>>>22;o=F+-1454113458+o+(j^(h|~a))|0;o=(o<<12|o>>>20)+q|0;h=h<<10|h>>>22;z=E+z+(t^C^A)|0;z=(z<<6|z>>>26)+x|0;t=t<<10|t>>>22;q=m+-1454113458+q+(o^(j|~h))|0;q=(q<<5|q>>>27)+a|0;j=j<<10|j>>>22;x=x+y+(A^t^z)|0;x=(x<<8|x>>>24)+C|0;A=A<<10|A>>>22;a=D+-1454113458+a+(q^(o|~j))|0;a=(a<<12|a>>>20)+h|0;o=o<<10|o>>>22;v=C+v+(z^A^x)|0;v=(v<<13|v>>>19)+t|0;z=z<<10|z>>>22;h=f+-1454113458+h+(a^(q|~o))|0;h=(h<<13|h>>>19)+j|0;q=q<<10|q>>>22;t=t+u+(x^z^v)|0;t=(t<<6|t>>>26)+A|0;x=x<<10|x>>>22;j=B+-1454113458+j+(h^(a|~q))|0;j=(j<<14|j>>>18)+o|0;a=a<<10|a>>>22;m=A+m+(v^x^t)|0;m=(m<<5|m>>>27)+z|0;v=v<<10|v>>>22;o=l+-1454113458+o+(j^(h|~a))|0;o=(o<<11|o>>>21)+q|0;h=h<<10|h>>>22;s=z+s+(t^v^m)|0;s=(s<<15|s>>>17)+x|0;t=t<<10|t>>>22;q=y+-1454113458+q+(o^(j|~h))|0;q=(q<<8|q>>>24)+a|0;j=j<<10|j>>>22;f=x+f+(m^t^s)|0;f=(f<<13|f>>>19)+v|0;m=m<<10|m>>>22;a=w+-1454113458+a+(q^(o|~j))|0;a=(a<<5|a>>>27)+h|0;o=o<<10|o>>>22;i=v+i+(s^m^f)|0;i=(i<<11|i>>>21)+t|0;s=s<<10|s>>>22;h=u+-1454113458+h+(a^(q|~o))|0;l=t+l+(f^s^i)|0;c[p>>2]=s+r+(q<<10|q>>>22);c[n>>2]=m+(c[k>>2]|0)+o;c[k>>2]=j+(c[g>>2]|0)+m+(l<<11|l>>>21);c[g>>2]=j+(c[b>>2]|0)+i+(h<<6|h>>>26);c[b>>2]=(f<<10|f>>>22)+e+a;return}function yb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if(d|0){h=c[a>>2]|0;e=h&63;f=64-e|0;h=h+d|0;c[a>>2]=h;if(h>>>0>>0){h=a+4|0;c[h>>2]=(c[h>>2]|0)+1}if(!((e|0)==0|f>>>0>d>>>0)){tc(a+28+e|0,b|0,f|0)|0;xb(a,a+28|0);e=0;b=b+f|0;d=d-f|0}if(d>>>0>63){g=d+-64|0;h=g&-64;f=b+(h+64)|0;while(1){xb(a,b);d=d+-64|0;if(d>>>0<=63)break;else b=b+64|0}b=f;d=g-h|0}if(d|0)tc(a+28+e|0,b|0,d|0)|0}return}function zb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e;g=c[b>>2]|0;h=c[b+4>>2]|0;a[f>>0]=g<<3;a[f+1>>0]=g>>>5;a[f+2>>0]=g>>>13;a[f+3>>0]=g>>>21;a[f+4>>0]=h<<3|g>>>29;a[f+5>>0]=h>>>5;a[f+6>>0]=h>>>13;a[f+7>>0]=h>>>21;g=g&63;yb(b,38733,(g>>>0<56?56:120)-g|0);yb(b,f,8);f=b+8|0;a[d>>0]=c[f>>2];a[d+1>>0]=(c[f>>2]|0)>>>8;a[d+2>>0]=(c[f>>2]|0)>>>16;a[d+3>>0]=(c[f>>2]|0)>>>24;f=b+12|0;a[d+4>>0]=c[f>>2];a[d+5>>0]=(c[f>>2]|0)>>>8;a[d+6>>0]=(c[f>>2]|0)>>>16;a[d+7>>0]=(c[f>>2]|0)>>>24;f=b+16|0;a[d+8>>0]=c[f>>2];a[d+9>>0]=(c[f>>2]|0)>>>8;a[d+10>>0]=(c[f>>2]|0)>>>16;a[d+11>>0]=(c[f>>2]|0)>>>24;f=b+20|0;a[d+12>>0]=c[f>>2];a[d+13>>0]=(c[f>>2]|0)>>>8;a[d+14>>0]=(c[f>>2]|0)>>>16;a[d+15>>0]=(c[f>>2]|0)>>>24;b=b+24|0;a[d+16>>0]=c[b>>2];a[d+17>>0]=(c[b>>2]|0)>>>8;a[d+18>>0]=(c[b>>2]|0)>>>16;a[d+19>>0]=(c[b>>2]|0)>>>24;i=e;return}function Ab(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+96|0;e=h;f=e+8|0;g=e;j=g+92|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(j|0));c[f>>2]=1732584193;c[e+12>>2]=-271733879;c[e+16>>2]=-1732584194;c[e+20>>2]=271733878;c[e+24>>2]=-1009589776;yb(e,a,b);zb(e,d);i=h;return}function Bb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=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,y=0,z=0,A=0,B=0,C=0;y=i;i=i+64|0;t=y;u=c[a>>2]|0;v=a+4|0;w=a+8|0;x=a+12|0;q=a+16|0;r=a+20|0;s=a+24|0;p=a+28|0;g=0;o=u;a=c[p>>2]|0;h=c[s>>2]|0;j=c[r>>2]|0;k=c[q>>2]|0;e=c[x>>2]|0;l=c[w>>2]|0;f=c[v>>2]|0;while(1){n=((k>>>6|k<<26)^(k>>>11|k<<21)^(k>>>25|k<<7))+a+(h&~k^j&k)+(c[37828+(g<<2)>>2]|0)|0;a=c[b>>2]|0;c[t+(g<<2)>>2]=a;a=n+a|0;e=a+e|0;a=((o>>>2|o<<30)^(o>>>13|o<<19)^(o>>>22|o<<10))+(o&(l^f)^l&f)+a|0;g=g+1|0;if((g|0)==16){n=16;m=a;g=e;a=l;e=o;break}else{C=o;B=f;A=l;z=k;m=j;n=h;b=b+4|0;o=a;k=e;f=C;l=B;e=A;j=z;h=m;a=n}}while(1){A=n;n=n+1|0;z=c[t+((n&15)<<2)>>2]|0;b=c[t+((A+14&15)<<2)>>2]|0;C=((g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7))+h+(j&~g^k&g)+(c[37828+(A<<2)>>2]|0)|0;B=t+((A&15)<<2)|0;b=((z>>>18|z<<14)^z>>>3^(z>>>7|z<<25))+(c[t+((A+9&15)<<2)>>2]|0)+(c[B>>2]|0)+((b>>>19|b<<13)^b>>>10^(b>>>17|b<<15))|0;c[B>>2]=b;b=C+b|0;a=b+a|0;b=((m>>>2|m<<30)^(m>>>13|m<<19)^(m>>>22|m<<10))+(m&(f^e)^f&e)+b|0;if((n|0)==64)break;else{o=m;z=e;A=f;B=g;C=k;h=j;m=b;g=a;e=o;f=z;a=A;k=B;j=C}}c[d>>2]=u+b;c[d+4>>2]=(c[v>>2]|0)+m;c[d+8>>2]=(c[w>>2]|0)+e;c[d+12>>2]=(c[x>>2]|0)+f;c[d+16>>2]=(c[q>>2]|0)+a;c[d+20>>2]=(c[r>>2]|0)+g;c[d+24>>2]=(c[s>>2]|0)+k;c[d+28>>2]=(c[p>>2]|0)+j;i=y;return}function Cb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;do if(e|0){n=b+32|0;g=n;h=c[g>>2]|0;g=c[g+4>>2]|0;f=mc(h|0,g|0,3)|0;f=f&63;if(f){i=64-f|0;j=b+40|0;f=j+f|0;if(i>>>0>e>>>0){tc(f|0,d|0,e|0)|0;b=qc(h|0,g|0,e<<3|0,0)|0;c[n>>2]=b;c[n+4>>2]=C;break}tc(f|0,d|0,i|0)|0;m=qc(h|0,g|0,i<<3|0,0)|0;f=n;c[f>>2]=m;c[f+4>>2]=C;e=e-i|0;f=0;do{m=b+40+(f<<2)|0;c[m>>2]=sc(c[m>>2]|0)|0;f=f+1|0}while((f|0)!=16);Bb(b,j,b);d=d+i|0}if(e>>>0>63){j=b+40|0;l=e+-64|0;m=l&-64;k=m+64|0;i=d;while(1){f=j;g=i;h=f+64|0;do{a[f>>0]=a[g>>0]|0;f=f+1|0;g=g+1|0}while((f|0)<(h|0));f=0;do{h=b+40+(f<<2)|0;c[h>>2]=sc(c[h>>2]|0)|0;f=f+1|0}while((f|0)!=16);Bb(b,j,b);g=n;g=qc(c[g>>2]|0,c[g+4>>2]|0,512,0)|0;h=n;c[h>>2]=g;c[h+4>>2]=C;e=e+-64|0;if(e>>>0<=63)break;else i=i+64|0}d=d+k|0;e=l-m|0}if(e|0){tc(b+40|0,d|0,e|0)|0;b=n;b=qc(c[b>>2]|0,c[b+4>>2]|0,e<<3|0,0)|0;c[n>>2]=b;c[n+4>>2]=C}}while(0);return}function Db(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if(d){h=b+32|0;f=h;f=mc(c[f>>2]|0,c[f+4>>2]|0,3)|0;f=f&63;e=f+1|0;g=b+40|0;a[g+f>>0]=-128;if(e>>>0>56){lc(g+e|0,0,f^63|0)|0;e=0;do{f=b+40+(e<<2)|0;c[f>>2]=sc(c[f>>2]|0)|0;e=e+1|0}while((e|0)!=16);Bb(b,g,b);e=0}lc(g+e|0,0,56-e|0)|0;e=0;do{f=b+40+(e<<2)|0;c[f>>2]=sc(c[f>>2]|0)|0;e=e+1|0}while((e|0)!=14);e=c[h>>2]|0;c[b+96>>2]=c[h+4>>2];c[b+100>>2]=e;Bb(b,g,b);e=0;do{h=b+(e<<2)|0;c[h>>2]=sc(c[h>>2]|0)|0;e=e+1|0}while((e|0)!=8);e=d;f=b;g=e+32|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0))}e=b;g=e+104|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(g|0));return}function Eb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+112|0;e=g;c[e>>2]=c[9449];c[e+4>>2]=c[9450];c[e+8>>2]=c[9451];c[e+12>>2]=c[9452];c[e+16>>2]=c[9453];c[e+20>>2]=c[9454];c[e+24>>2]=c[9455];c[e+28>>2]=c[9456];f=e+32|0;h=f+72|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(h|0));Cb(e,a,b);Db(e,d);i=g;return}function Fb(a){a=a|0;var b=0,d=0,e=0;if(a|0){b=a;d=8;e=b+64|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));lc(a+64|0,0,144)|0}return}function Gb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=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,y=0,z=0,A=0,B=0,D=0,E=0,F=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,Y=0,Z=0,_=0;L=i;i=i+128|0;F=L;K=a;J=c[K>>2]|0;K=c[K+4>>2]|0;B=a+8|0;w=B;D=a+16|0;e=D;E=a+24|0;f=E;G=a+32|0;p=G;H=a+40|0;q=H;I=a+48|0;m=I;A=a+56|0;h=A;j=0;l=J;u=K;t=c[w>>2]|0;z=c[e>>2]|0;w=c[w+4>>2]|0;a=c[e+4>>2]|0;e=c[f>>2]|0;f=c[f+4>>2]|0;o=c[p>>2]|0;p=c[p+4>>2]|0;g=c[h>>2]|0;h=c[h+4>>2]|0;r=c[q>>2]|0;q=c[q+4>>2]|0;k=c[m>>2]|0;m=c[m+4>>2]|0;while(1){v=mc(o|0,p|0,14)|0;N=C;x=nc(o|0,p|0,50)|0;N=N|C;y=mc(o|0,p|0,18)|0;O=C;M=nc(o|0,p|0,46)|0;O=N^(O|C);N=mc(o|0,p|0,41)|0;n=C;s=nc(o|0,p|0,23)|0;n=qc((v|x)^(y|M)^(N|s)|0,O^(n|C)|0,g|0,h|0)|0;n=qc(n|0,C|0,k&~o^r&o|0,m&~p^q&p|0)|0;O=72+(j<<3)|0;O=qc(n|0,C|0,c[O>>2]|0,c[O+4>>2]|0)|0;n=b;g=c[n>>2]|0;n=c[n+4>>2]|0;s=F+(j<<3)|0;c[s>>2]=g;c[s+4>>2]=n;n=qc(O|0,C|0,g|0,n|0)|0;g=C;O=mc(l|0,u|0,28)|0;s=C;N=nc(l|0,u|0,36)|0;s=s|C;M=mc(l|0,u|0,34)|0;y=C;h=nc(l|0,u|0,30)|0;y=s^(y|C);s=mc(l|0,u|0,39)|0;x=C;v=nc(l|0,u|0,25)|0;x=qc((O|N)^(M|h)^(s|v)|0,y^(x|C)|0,l&(z^t)^z&t|0,u&(a^w)^a&w|0)|0;y=C;e=qc(n|0,g|0,e|0,f|0)|0;f=C;g=qc(x|0,y|0,n|0,g|0)|0;n=C;j=j+1|0;if((j|0)==16){y=16;x=e;v=f;s=p;p=g;j=t;h=u;g=w;b=z;break}else{x=p;y=o;h=m;M=k;N=u;O=l;b=b+8|0;l=g;u=n;o=e;p=f;m=q;k=r;q=x;r=y;g=M;f=a;e=z;a=w;w=N;z=t;t=O}}while(1){t=y;y=y+1|0;T=F+((y&15)<<3)|0;W=c[T>>2]|0;T=c[T+4>>2]|0;S=mc(W|0,T|0,1)|0;Q=C;R=nc(W|0,T|0,63)|0;Q=Q|C;V=mc(W|0,T|0,8)|0;O=C;U=nc(W|0,T|0,56)|0;O=O|C;T=mc(W|0,T|0,7)|0;Q=O^C^Q;O=F+((t+14&15)<<3)|0;W=c[O>>2]|0;O=c[O+4>>2]|0;u=mc(W|0,O|0,19)|0;e=C;f=nc(W|0,O|0,45)|0;e=e|C;N=mc(W|0,O|0,61)|0;_=C;w=nc(W|0,O|0,3)|0;_=_|C;O=mc(W|0,O|0,6)|0;e=_^C^e;_=mc(x|0,v|0,14)|0;W=C;Z=nc(x|0,v|0,50)|0;W=W|C;Y=mc(x|0,v|0,18)|0;P=C;X=nc(x|0,v|0,46)|0;P=W^(P|C);W=mc(x|0,v|0,41)|0;z=C;M=nc(x|0,v|0,23)|0;m=qc((_|Z)^(Y|X)^(W|M)|0,P^(z|C)|0,k|0,m|0)|0;m=qc(m|0,C|0,r&~x^o&x|0,q&~v^s&v|0)|0;z=72+(t<<3)|0;z=qc(m|0,C|0,c[z>>2]|0,c[z+4>>2]|0)|0;m=C;P=F+((t+9&15)<<3)|0;t=F+((t&15)<<3)|0;M=t;k=c[M>>2]|0;M=c[M+4>>2]|0;P=qc((V|U)^T^(S|R)|0,Q|0,c[P>>2]|0,c[P+4>>2]|0)|0;M=qc(P|0,C|0,k|0,M|0)|0;e=qc(M|0,C|0,(N|w)^O^(u|f)|0,e|0)|0;f=C;c[t>>2]=e;c[t+4>>2]=f;f=qc(z|0,m|0,e|0,f|0)|0;e=C;m=mc(p|0,n|0,28)|0;z=C;t=nc(p|0,n|0,36)|0;z=z|C;u=mc(p|0,n|0,34)|0;O=C;w=nc(p|0,n|0,30)|0;O=z^(O|C);z=mc(p|0,n|0,39)|0;N=C;M=nc(p|0,n|0,25)|0;N=qc((m|t)^(u|w)^(z|M)|0,O^(N|C)|0,p&(j^l)^j&l|0,n&(g^h)^g&h|0)|0;O=C;a=qc(f|0,e|0,b|0,a|0)|0;b=C;e=qc(N|0,O|0,f|0,e|0)|0;f=C;if((y|0)==80)break;else{X=n;Y=p;Z=v;_=x;m=q;k=r;x=a;v=b;p=e;n=f;a=g;b=j;g=h;h=X;j=l;l=Y;q=s;r=o;s=Z;o=_}}_=qc(J|0,K|0,e|0,f|0)|0;Z=d;c[Z>>2]=_;c[Z+4>>2]=C;Z=B;Z=qc(c[Z>>2]|0,c[Z+4>>2]|0,p|0,n|0)|0;_=d+8|0;c[_>>2]=Z;c[_+4>>2]=C;_=D;_=qc(c[_>>2]|0,c[_+4>>2]|0,l|0,h|0)|0;Z=d+16|0;c[Z>>2]=_;c[Z+4>>2]=C;Z=E;Z=qc(c[Z>>2]|0,c[Z+4>>2]|0,j|0,g|0)|0;_=d+24|0;c[_>>2]=Z;c[_+4>>2]=C;_=G;_=qc(c[_>>2]|0,c[_+4>>2]|0,a|0,b|0)|0;Z=d+32|0;c[Z>>2]=_;c[Z+4>>2]=C;Z=H;Z=qc(c[Z>>2]|0,c[Z+4>>2]|0,x|0,v|0)|0;_=d+40|0;c[_>>2]=Z;c[_+4>>2]=C;_=I;_=qc(c[_>>2]|0,c[_+4>>2]|0,o|0,s|0)|0;Z=d+48|0;c[Z>>2]=_;c[Z+4>>2]=C;Z=A;Z=qc(c[Z>>2]|0,c[Z+4>>2]|0,r|0,q|0)|0;_=d+56|0;c[_>>2]=Z;c[_+4>>2]=C;i=L;return}function Hb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;do if(e|0){o=b+64|0;g=o;h=c[g>>2]|0;g=c[g+4>>2]|0;f=mc(h|0,g|0,3)|0;f=f&127;if(f){i=128-f|0;j=b+80|0;f=j+f|0;if(i>>>0>e>>>0){tc(f|0,d|0,e|0)|0;n=e<<3;m=qc(h|0,g|0,n|0,0)|0;l=C;c[o>>2]=m;c[o+4>>2]=l;if(!(l>>>0<0|(l|0)==0&m>>>0>>0))break;o=b+72|0;b=o;b=qc(c[b>>2]|0,c[b+4>>2]|0,1,0)|0;c[o>>2]=b;c[o+4>>2]=C;break}tc(f|0,d|0,i|0)|0;n=i<<3;m=qc(h|0,g|0,n|0,0)|0;l=C;k=o;c[k>>2]=m;c[k+4>>2]=l;if(l>>>0<0|(l|0)==0&m>>>0>>0){n=b+72|0;m=n;m=qc(c[m>>2]|0,c[m+4>>2]|0,1,0)|0;c[n>>2]=m;c[n+4>>2]=C}e=e-i|0;f=0;do{n=b+80+(f<<3)|0;m=n;m=ma(c[m>>2]|0,c[m+4>>2]|0)|0;c[n>>2]=m;c[n+4>>2]=C;f=f+1|0}while((f|0)!=16);Gb(b,j,b);d=d+i|0}if(e>>>0>127){j=b+80|0;k=b+72|0;m=e+-128|0;n=m&-128;l=n+128|0;i=d;while(1){f=j;g=i;h=f+128|0;do{a[f>>0]=a[g>>0]|0;f=f+1|0;g=g+1|0}while((f|0)<(h|0));f=0;do{h=b+80+(f<<3)|0;g=h;g=ma(c[g>>2]|0,c[g+4>>2]|0)|0;c[h>>2]=g;c[h+4>>2]=C;f=f+1|0}while((f|0)!=16);Gb(b,j,b);g=o;h=c[g>>2]|0;g=c[g+4>>2]|0;p=qc(h|0,g|0,1024,0)|0;f=o;c[f>>2]=p;c[f+4>>2]=C;if(g>>>0>4294967295|(g|0)==-1&h>>>0>4294966271){h=k;h=qc(c[h>>2]|0,c[h+4>>2]|0,1,0)|0;p=k;c[p>>2]=h;c[p+4>>2]=C}e=e+-128|0;if(e>>>0<=127)break;else i=i+128|0}d=d+l|0;e=m-n|0}if(e|0?(tc(b+80|0,d|0,e|0)|0,p=e<<3,n=o,n=qc(c[n>>2]|0,c[n+4>>2]|0,p|0,0)|0,m=C,o,c[o>>2]=n,c[o+4>>2]=m,m>>>0<0|(m|0)==0&n>>>0

>>0):0){p=b+72|0;o=p;o=qc(c[o>>2]|0,c[o+4>>2]|0,1,0)|0;c[p>>2]=o;c[p+4>>2]=C}}while(0);return}function Ib(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if(d){h=b+64|0;f=h;f=mc(c[f>>2]|0,c[f+4>>2]|0,3)|0;f=f&127;e=f+1|0;g=b+80|0;a[g+f>>0]=-128;if(e>>>0>112){lc(g+e|0,0,f^127|0)|0;e=0;do{f=b+80+(e<<3)|0;i=f;i=ma(c[i>>2]|0,c[i+4>>2]|0)|0;c[f>>2]=i;c[f+4>>2]=C;e=e+1|0}while((e|0)!=16);Gb(b,g,b);e=0}lc(g+e|0,0,112-e|0)|0;e=0;do{i=b+80+(e<<3)|0;f=i;f=ma(c[f>>2]|0,c[f+4>>2]|0)|0;c[i>>2]=f;c[i+4>>2]=C;e=e+1|0}while((e|0)!=14);f=b+72|0;e=c[f+4>>2]|0;i=b+192|0;c[i>>2]=c[f>>2];c[i+4>>2]=e;i=c[h+4>>2]|0;e=b+200|0;c[e>>2]=c[h>>2];c[e+4>>2]=i;Gb(b,g,b);e=0;do{i=b+(e<<3)|0;h=i;h=ma(c[h>>2]|0,c[h+4>>2]|0)|0;c[i>>2]=h;c[i+4>>2]=C;e=e+1|0}while((e|0)!=8);e=d;f=b;g=e+64|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0))}lc(b|0,0,208)|0;return}function Jb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+208|0;e=g;f=e;h=8;j=f+64|0;do{c[f>>2]=c[h>>2];f=f+4|0;h=h+4|0}while((f|0)<(j|0));lc(e+64|0,0,144)|0;Hb(e,a,b);Ib(e,d);i=g;return}function Kb(){var a=0,b=0,d=0;d=i;i=i+16|0;b=d;a=c[9714]|0;if(!a){a=bc(38797,38810)|0;c[9714]=a}if((gc(b,1,4,a)|0)==4){i=d;return c[b>>2]|0}else pa(38812,38828,60,38838);return 0}function Lb(a){a=a|0;if(a>>>0>=256)if(a>>>0<65536)a=2;else a=a>>>0<16777216?3:4;else a=1;return a|0}function Mb(b,c){b=b|0;c=c|0;var d=0;if(b>>>0<=16777215)if(b>>>0<=65535){if(b>>>0>255)d=6}else d=4;else{a[c>>0]=b>>>24;c=c+1|0;d=4}if((d|0)==4){a[c>>0]=b>>>16;c=c+1|0;d=6}if((d|0)==6){a[c>>0]=b>>>8;c=c+1|0}a[c>>0]=b;return}function Nb(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=Qb(ha(6,d|0)|0)|0;i=b;return a|0}function Ob(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+48|0;h=m+16|0;g=m;f=m+32|0;c[f>>2]=d;j=f+4|0;l=b+48|0;n=c[l>>2]|0;c[j>>2]=e-((n|0)!=0&1);k=b+44|0;c[f+8>>2]=c[k>>2];c[f+12>>2]=n;if(!(c[9715]|0)){c[h>>2]=c[b+60>>2];c[h+4>>2]=f;c[h+8>>2]=2;f=Qb(qa(145,h|0)|0)|0}else{ga(1,b|0);c[g>>2]=c[b+60>>2];c[g+4>>2]=f;c[g+8>>2]=2;f=Qb(qa(145,g|0)|0)|0;ba(0)}if((f|0)>=1){j=c[j>>2]|0;if(f>>>0>j>>>0){g=c[k>>2]|0;h=b+4|0;c[h>>2]=g;c[b+8>>2]=g+(f-j);if(!(c[l>>2]|0))f=e;else{c[h>>2]=g+1;a[d+(e+-1)>>0]=a[g>>0]|0;f=e}}}else{c[b>>2]=c[b>>2]|f&48^16;c[b+8>>2]=0;c[b+4>>2]=0}i=m;return f|0}function Pb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((Qb(ja(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;i=f;return a|0}function Qb(a){a=a|0;if(a>>>0>4294963200){c[(Rb()|0)>>2]=0-a;a=-1}return a|0}function Rb(){var a=0;if(!(c[9715]|0))a=38904;else a=c[(uc()|0)+64>>2]|0;return a|0}function Sb(a){a=a|0;if(!(c[a+68>>2]|0))Tb(a);return}function Tb(a){a=a|0;return}function Ub(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;n=q+16|0;m=q;j=q+32|0;o=a+28|0;h=c[o>>2]|0;c[j>>2]=h;p=a+20|0;h=(c[p>>2]|0)-h|0;c[j+4>>2]=h;c[j+8>>2]=b;c[j+12>>2]=d;k=a+60|0;l=a+44|0;g=2;b=h+d|0;while(1){if(!(c[9715]|0)){c[n>>2]=c[k>>2];c[n+4>>2]=j;c[n+8>>2]=g;f=Qb(ra(146,n|0)|0)|0}else{ga(2,a|0);c[m>>2]=c[k>>2];c[m+4>>2]=j;c[m+8>>2]=g;f=Qb(ra(146,m|0)|0)|0;ba(0)}if((b|0)==(f|0)){b=6;break}if((f|0)<0){b=8;break}b=b-f|0;e=c[j+4>>2]|0;if(f>>>0<=e>>>0)if((g|0)==2){c[o>>2]=(c[o>>2]|0)+f;g=2;h=j}else h=j;else{h=c[l>>2]|0;c[o>>2]=h;c[p>>2]=h;f=f-e|0;g=g+-1|0;h=j+8|0;e=c[j+12>>2]|0}c[h>>2]=(c[h>>2]|0)+f;c[h+4>>2]=e-f;j=h}if((b|0)==6){n=c[l>>2]|0;c[a+16>>2]=n+(c[a+48>>2]|0);a=n;c[o>>2]=a;c[p>>2]=a}else if((b|0)==8){c[a+16>>2]=0;c[o>>2]=0;c[p>>2]=0;c[a>>2]=c[a>>2]|32;if((g|0)==2)d=0;else d=d-(c[j+4>>2]|0)|0}i=q;return d|0}function Vb(a){a=a|0;if(!(c[a+68>>2]|0))Tb(a);return}function Wb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+80|0;f=g;c[b+36>>2]=3;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21505,c[f+8>>2]=g+12,da(54,f|0)|0):0)a[b+75>>0]=-1;f=Ub(b,d,e)|0;i=g;return f|0}function Xb(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=b+20|0;e=b+44|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)va[c[b+36>>2]&7](b,0,0)|0;c[b+16>>2]=0;c[b+28>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(d&20)if(!(d&4))d=-1;else{c[b>>2]=d|32;d=-1}else{d=c[e>>2]|0;c[b+8>>2]=d;c[b+4>>2]=d;d=0}return d|0}function Yb(a){a=a|0;return 0}function Zb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=R(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return (e|0?b:0)|0}function _b(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=f;while(1){if(!(a[b>>0]|0)){b=d;break a}b=b+1|0;d=b;if(!(d&3)){e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function $b(b,c){b=b|0;c=c|0;b=ac(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function ac(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(_b(b)|0)|0;else{if(b&3){e=d&255;do{g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break a;b=b+1|0}while((b&3|0)!=0)}f=R(f,16843009)|0;e=c[b>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009))do{g=e^f;if((g&-2139062144^-2139062144)&g+-16843009|0)break b;b=b+4|0;e=c[b>>2]|0}while(!((e&-2139062144^-2139062144)&e+-16843009|0));while(0);e=d&255;while(1){g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break;else b=b+1|0}}while(0);return b|0}function bc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+32|0;f=g+16|0;e=g;if(Zb(38847,a[d>>0]|0,4)|0){h=cc(d)|0|32768;c[e>>2]=b;c[e+4>>2]=h;c[e+8>>2]=438;e=Qb(ka(5,e|0)|0)|0;if((e|0)>=0){b=dc(e,d)|0;if(!b){c[f>>2]=e;ha(6,f|0)|0;b=0}}else b=0}else{c[(Rb()|0)>>2]=22;b=0}i=g;return b|0}function cc(b){b=b|0;var c=0,d=0,e=0;d=($b(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=($b(b,120)|0)==0;d=e?d:d|128;b=($b(b,101)|0)==0;b=b?d:d|524288;b=c<<24>>24==114?b:b|64;b=c<<24>>24==119?b|512:b;return (c<<24>>24==97?b|1024:b)|0}function dc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+112|0;n=o+40|0;l=o+24|0;k=o+16|0;g=o;m=o+52|0;f=a[d>>0]|0;if(Zb(38847,f<<24>>24,4)|0){e=hc(1144)|0;if(!e)e=0;else{h=e;j=h+112|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));if(!($b(d,43)|0))c[e>>2]=f<<24>>24==114?8:4;if($b(d,101)|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;ca(221,g|0)|0;f=a[d>>0]|0}if(f<<24>>24==97){c[k>>2]=b;c[k+4>>2]=3;f=ca(221,k|0)|0;if(!(f&1024)){c[l>>2]=b;c[l+4>>2]=4;c[l+8>>2]=f|1024;ca(221,l|0)|0}d=c[e>>2]|128;c[e>>2]=d}else d=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+120;c[e+48>>2]=1024;f=e+75|0;a[f>>0]=-1;if((d&8|0)==0?(c[n>>2]=b,c[n+4>>2]=21505,c[n+8>>2]=m,(da(54,n|0)|0)==0):0)a[f>>0]=10;c[e+32>>2]=4;c[e+36>>2]=3;c[e+40>>2]=2;c[e+12>>2]=1;if(!(c[9716]|0))c[e+76>>2]=-1;ea(38888);f=c[9721]|0;c[e+56>>2]=f;if(f|0)c[f+52>>2]=e;c[9721]=e;na(38888)}}else{c[(Rb()|0)>>2]=22;e=0}i=o;return e|0}function ec(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=fc(a)|0;break}d=(Yb(a)|0)==0;b=fc(a)|0;if(!d)Tb(a)}else{if(!(c[9549]|0))b=0;else b=ec(c[9549]|0)|0;ea(38888);a=c[9721]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=Yb(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=fc(a)|0|b;if(d|0)Tb(a);a=c[a+56>>2]|0}while((a|0)!=0);na(38888)}while(0);return b|0}function fc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;h=a+28|0;if((c[b>>2]|0)>>>0>(c[h>>2]|0)>>>0?(va[c[a+36>>2]&7](a,0,0)|0,(c[b>>2]|0)==0):0)a=-1;else{d=a+4|0;e=c[d>>2]|0;f=a+8|0;g=c[f>>2]|0;if(e>>>0>>0)va[c[a+40>>2]&7](a,e-g|0,1)|0;c[a+16>>2]=0;c[h>>2]=0;c[b>>2]=0;c[f>>2]=0;c[d>>2]=0;a=0}return a|0}function gc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=R(e,d)|0;if((c[f+76>>2]|0)>-1)j=Yb(f)|0;else j=0;g=f+74|0;i=a[g>>0]|0;a[g>>0]=i+255|i;g=f+4|0;i=c[g>>2]|0;h=(c[f+8>>2]|0)-i|0;if((h|0)>0){h=h>>>0>>0?h:k;tc(b|0,i|0,h|0)|0;c[g>>2]=i+h;g=k-h|0;b=b+h|0}else g=k;a:do if(!g)l=13;else{i=f+32|0;while(1){if(Xb(f)|0)break;h=va[c[i>>2]&7](f,b,g)|0;if((h+1|0)>>>0<2)break;g=g-h|0;if(!g){l=13;break a}else b=b+h|0}if(j|0)Tb(f);e=((k-g|0)>>>0)/(d>>>0)|0}while(0);if((l|0)==13)if(j)Tb(f);return e|0}function hc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=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,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=i;i=i+16|0;p=L;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;t=c[9727]|0;d=t>>>a;if(d&3|0){a=(d&1^1)+a|0;d=38948+(a<<1<<2)|0;e=d+8|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[9731]|0)>>>0)fa();b=h+12|0;if((c[b>>2]|0)==(f|0)){c[b>>2]=d;c[e>>2]=h;break}else fa()}else c[9727]=t&~(1<>2]=K|3;K=f+K+4|0;c[K>>2]=c[K>>2]|1;K=g;i=L;return K|0}s=c[9729]|0;if(o>>>0>s>>>0){if(d|0){j=2<>>12&16;a=a>>>j;e=a>>>5&8;a=a>>>e;g=a>>>2&4;a=a>>>g;d=a>>>1&2;a=a>>>d;b=a>>>1&1;b=(e|j|g|d|b)+(a>>>b)|0;a=38948+(b<<1<<2)|0;d=a+8|0;g=c[d>>2]|0;j=g+8|0;e=c[j>>2]|0;do if((a|0)!=(e|0)){if(e>>>0<(c[9731]|0)>>>0)fa();f=e+12|0;if((c[f>>2]|0)==(g|0)){c[f>>2]=a;c[d>>2]=e;k=t;break}else fa()}else{k=t&~(1<>2]=o|3;e=g+o|0;c[e+4>>2]=h|1;c[e+h>>2]=h;if(s|0){f=c[9732]|0;b=s>>>3;d=38948+(b<<1<<2)|0;b=1<>2]|0;if(a>>>0<(c[9731]|0)>>>0)fa();else{l=a;m=b}}else{c[9727]=k|b;l=d;m=d+8|0}c[m>>2]=f;c[l+12>>2]=f;c[f+8>>2]=l;c[f+12>>2]=d}c[9729]=h;c[9732]=e;K=j;i=L;return K|0}l=c[9728]|0;if(l){a=(l&0-l)+-1|0;J=a>>>12&16;a=a>>>J;I=a>>>5&8;a=a>>>I;K=a>>>2&4;a=a>>>K;j=a>>>1&2;a=a>>>j;k=a>>>1&1;k=c[39212+((I|J|K|j|k)+(a>>>k)<<2)>>2]|0;a=k;j=k;k=(c[k+4>>2]&-8)-o|0;while(1){b=c[a+16>>2]|0;if(!b){b=c[a+20>>2]|0;if(!b)break}K=(c[b+4>>2]&-8)-o|0;J=K>>>0>>0;a=b;j=J?b:j;k=J?K:k}f=c[9731]|0;if(j>>>0>>0)fa();h=j+o|0;if(j>>>0>=h>>>0)fa();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){n=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0>>0)fa();else{c[a>>2]=0;n=b;break}}else{e=c[j+8>>2]|0;if(e>>>0>>0)fa();b=e+12|0;if((c[b>>2]|0)!=(j|0))fa();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;n=d;break}else fa()}while(0);do if(g|0){b=c[j+28>>2]|0;a=39212+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[9728]=l&~(1<>>0<(c[9731]|0)>>>0)fa();b=g+16|0;if((c[b>>2]|0)==(j|0))c[b>>2]=n;else c[g+20>>2]=n;if(!n)break}a=c[9731]|0;if(n>>>0>>0)fa();c[n+24>>2]=g;b=c[j+16>>2]|0;do if(b|0)if(b>>>0>>0)fa();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);b=c[j+20>>2]|0;if(b|0)if(b>>>0<(c[9731]|0)>>>0)fa();else{c[n+20>>2]=b;c[b+24>>2]=n;break}}while(0);if(k>>>0<16){K=k+o|0;c[j+4>>2]=K|3;K=j+K+4|0;c[K>>2]=c[K>>2]|1}else{c[j+4>>2]=o|3;c[h+4>>2]=k|1;c[h+k>>2]=k;if(s|0){e=c[9732]|0;b=s>>>3;d=38948+(b<<1<<2)|0;b=1<>2]|0;if(a>>>0<(c[9731]|0)>>>0)fa();else{q=a;r=b}}else{c[9727]=t|b;q=d;r=d+8|0}c[r>>2]=e;c[q+12>>2]=e;c[e+8>>2]=q;c[e+12>>2]=d}c[9729]=k;c[9732]=h}K=j+8|0;i=L;return K|0}}}else if(a>>>0<=4294967231){a=a+11|0;o=a&-8;l=c[9728]|0;if(l){e=0-o|0;a=a>>>8;if(a)if(o>>>0>16777215)k=31;else{r=(a+1048320|0)>>>16&8;D=a<>>16&4;D=D<>>16&2;k=14-(q|r|k)+(D<>>15)|0;k=o>>>(k+7|0)&1|k<<1}else k=0;a=c[39212+(k<<2)>>2]|0;a:do if(!a){d=0;f=0;D=86}else{f=0;j=a;h=o<<((k|0)==31?0:25-(k>>>1)|0);d=0;while(1){a=(c[j+4>>2]&-8)-o|0;if(a>>>0>>0)if(!a){a=j;e=0;d=j;D=90;break a}else{f=j;e=a}a=c[j+20>>2]|0;j=c[j+16+(h>>>31<<2)>>2]|0;d=(a|0)==0|(a|0)==(j|0)?d:a;a=(j|0)==0;if(a){D=86;break}else h=h<<(a&1^1)}}while(0);if((D|0)==86){if((d|0)==0&(f|0)==0){a=2<>>12&16;r=r>>>m;k=r>>>5&8;r=r>>>k;n=r>>>2&4;r=r>>>n;q=r>>>1&2;r=r>>>q;d=r>>>1&1;d=c[39212+((k|m|n|q|d)+(r>>>d)<<2)>>2]|0}if(!d){k=f;j=e}else{a=f;D=90}}if((D|0)==90)while(1){D=0;r=(c[d+4>>2]&-8)-o|0;f=r>>>0>>0;e=f?r:e;a=f?d:a;f=c[d+16>>2]|0;if(f|0){d=f;D=90;continue}d=c[d+20>>2]|0;if(!d){k=a;j=e;break}else D=90}if((k|0)!=0?j>>>0<((c[9729]|0)-o|0)>>>0:0){f=c[9731]|0;if(k>>>0>>0)fa();h=k+o|0;if(k>>>0>=h>>>0)fa();g=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){a=k+20|0;b=c[a>>2]|0;if(!b){a=k+16|0;b=c[a>>2]|0;if(!b){s=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0>>0)fa();else{c[a>>2]=0;s=b;break}}else{e=c[k+8>>2]|0;if(e>>>0>>0)fa();b=e+12|0;if((c[b>>2]|0)!=(k|0))fa();a=d+8|0;if((c[a>>2]|0)==(k|0)){c[b>>2]=d;c[a>>2]=e;s=d;break}else fa()}while(0);do if(g){b=c[k+28>>2]|0;a=39212+(b<<2)|0;if((k|0)==(c[a>>2]|0)){c[a>>2]=s;if(!s){t=l&~(1<>>0<(c[9731]|0)>>>0)fa();b=g+16|0;if((c[b>>2]|0)==(k|0))c[b>>2]=s;else c[g+20>>2]=s;if(!s){t=l;break}}a=c[9731]|0;if(s>>>0>>0)fa();c[s+24>>2]=g;b=c[k+16>>2]|0;do if(b|0)if(b>>>0>>0)fa();else{c[s+16>>2]=b;c[b+24>>2]=s;break}while(0);b=c[k+20>>2]|0;if(b)if(b>>>0<(c[9731]|0)>>>0)fa();else{c[s+20>>2]=b;c[b+24>>2]=s;t=l;break}else t=l}else t=l;while(0);do if(j>>>0>=16){c[k+4>>2]=o|3;c[h+4>>2]=j|1;c[h+j>>2]=j;b=j>>>3;if(j>>>0<256){d=38948+(b<<1<<2)|0;a=c[9727]|0;b=1<>2]|0;if(a>>>0<(c[9731]|0)>>>0)fa();else{B=a;C=b}}else{c[9727]=a|b;B=d;C=d+8|0}c[C>>2]=h;c[B+12>>2]=h;c[h+8>>2]=B;c[h+12>>2]=d;break}b=j>>>8;if(b)if(j>>>0>16777215)b=31;else{J=(b+1048320|0)>>>16&8;K=b<>>16&4;K=K<>>16&2;b=14-(I|J|b)+(K<>>15)|0;b=j>>>(b+7|0)&1|b<<1}else b=0;d=39212+(b<<2)|0;c[h+28>>2]=b;a=h+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;break}a=j<<((b|0)==31?0:25-(b>>>1)|0);e=c[d>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(j|0)){D=148;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){D=145;break}else{a=a<<1;e=b}}if((D|0)==145)if(d>>>0<(c[9731]|0)>>>0)fa();else{c[d>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}else if((D|0)==148){b=e+8|0;a=c[b>>2]|0;K=c[9731]|0;if(a>>>0>=K>>>0&e>>>0>=K>>>0){c[a+12>>2]=h;c[b>>2]=h;c[h+8>>2]=a;c[h+12>>2]=e;c[h+24>>2]=0;break}else fa()}}else{K=j+o|0;c[k+4>>2]=K|3;K=k+K+4|0;c[K>>2]=c[K>>2]|1}while(0);K=k+8|0;i=L;return K|0}}}else o=-1;while(0);d=c[9729]|0;if(d>>>0>=o>>>0){b=d-o|0;a=c[9732]|0;if(b>>>0>15){K=a+o|0;c[9732]=K;c[9729]=b;c[K+4>>2]=b|1;c[K+b>>2]=b;c[a+4>>2]=o|3}else{c[9729]=0;c[9732]=0;c[a+4>>2]=d|3;K=a+d+4|0;c[K>>2]=c[K>>2]|1}K=a+8|0;i=L;return K|0}j=c[9730]|0;if(j>>>0>o>>>0){I=j-o|0;c[9730]=I;K=c[9733]|0;J=K+o|0;c[9733]=J;c[J+4>>2]=I|1;c[K+4>>2]=o|3;K=K+8|0;i=L;return K|0}if(!(c[9845]|0)){c[9847]=4096;c[9846]=4096;c[9848]=-1;c[9849]=-1;c[9850]=0;c[9838]=0;a=p&-16^1431655768;c[p>>2]=a;c[9845]=a;a=4096}else a=c[9847]|0;k=o+48|0;l=o+47|0;h=a+l|0;f=0-a|0;m=h&f;if(m>>>0<=o>>>0){K=0;i=L;return K|0}a=c[9837]|0;if(a|0?(B=c[9835]|0,C=B+m|0,C>>>0<=B>>>0|C>>>0>a>>>0):0){K=0;i=L;return K|0}b:do if(!(c[9838]&4)){d=c[9733]|0;c:do if(d){e=39356;while(1){a=c[e>>2]|0;if(a>>>0<=d>>>0?(u=e+4|0,(a+(c[u>>2]|0)|0)>>>0>d>>>0):0)break;a=c[e+8>>2]|0;if(!a){D=172;break c}else e=a}d=h-j&f;if(d>>>0<2147483647){a=rc(d|0)|0;if((a|0)==((c[e>>2]|0)+(c[u>>2]|0)|0)){if((a|0)!=(-1|0)){h=d;g=a;D=190;break b}}else{b=d;D=180}}}else D=172;while(0);do if(((D|0)==172?(g=rc(0)|0,(g|0)!=(-1|0)):0)?(b=g,v=c[9846]|0,w=v+-1|0,b=((w&b|0)==0?0:(w+b&0-v)-b|0)+m|0,v=c[9835]|0,w=b+v|0,b>>>0>o>>>0&b>>>0<2147483647):0){C=c[9837]|0;if(C|0?w>>>0<=v>>>0|w>>>0>C>>>0:0)break;a=rc(b|0)|0;if((a|0)==(g|0)){h=b;D=190;break b}else D=180}while(0);d:do if((D|0)==180){d=0-b|0;do if(k>>>0>b>>>0&(b>>>0<2147483647&(a|0)!=(-1|0))?(x=c[9847]|0,x=l-b+x&0-x,x>>>0<2147483647):0)if((rc(x|0)|0)==(-1|0)){rc(d|0)|0;break d}else{b=x+b|0;break}while(0);if((a|0)!=(-1|0)){h=b;g=a;D=190;break b}}while(0);c[9838]=c[9838]|4;D=187}else D=187;while(0);if((((D|0)==187?m>>>0<2147483647:0)?(A=rc(m|0)|0,y=rc(0)|0,A>>>0>>0&((A|0)!=(-1|0)&(y|0)!=(-1|0))):0)?(z=y-A|0,z>>>0>(o+40|0)>>>0):0){h=z;g=A;D=190}if((D|0)==190){b=(c[9835]|0)+h|0;c[9835]=b;if(b>>>0>(c[9836]|0)>>>0)c[9836]=b;l=c[9733]|0;do if(l){b=39356;while(1){a=c[b>>2]|0;d=b+4|0;e=c[d>>2]|0;if((g|0)==(a+e|0)){D=200;break}f=c[b+8>>2]|0;if(!f)break;else b=f}if(((D|0)==200?(c[b+12>>2]&8|0)==0:0)?l>>>0>>0&l>>>0>=a>>>0:0){c[d>>2]=e+h;K=l+8|0;K=(K&7|0)==0?0:0-K&7;J=l+K|0;K=h-K+(c[9730]|0)|0;c[9733]=J;c[9730]=K;c[J+4>>2]=K|1;c[J+K+4>>2]=40;c[9734]=c[9849];break}b=c[9731]|0;if(g>>>0>>0){c[9731]=g;j=g}else j=b;a=g+h|0;b=39356;while(1){if((c[b>>2]|0)==(a|0)){D=208;break}b=c[b+8>>2]|0;if(!b){a=39356;break}}if((D|0)==208)if(!(c[b+12>>2]&8)){c[b>>2]=g;n=b+4|0;c[n>>2]=(c[n>>2]|0)+h;n=g+8|0;n=g+((n&7|0)==0?0:0-n&7)|0;b=a+8|0;b=a+((b&7|0)==0?0:0-b&7)|0;m=n+o|0;k=b-n-o|0;c[n+4>>2]=o|3;do if((b|0)!=(l|0)){if((b|0)==(c[9732]|0)){K=(c[9729]|0)+k|0;c[9729]=K;c[9732]=m;c[m+4>>2]=K|1;c[m+K>>2]=K;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;f=a>>>3;e:do if(a>>>0>=256){g=c[b+24>>2]|0;e=c[b+12>>2]|0;do if((e|0)==(b|0)){e=b+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){I=0;break}else d=e}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;d=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;d=e}}if(d>>>0>>0)fa();else{c[d>>2]=0;I=a;break}}else{f=c[b+8>>2]|0;if(f>>>0>>0)fa();a=f+12|0;if((c[a>>2]|0)!=(b|0))fa();d=e+8|0;if((c[d>>2]|0)==(b|0)){c[a>>2]=e;c[d>>2]=f;I=e;break}else fa()}while(0);if(!g)break;a=c[b+28>>2]|0;d=39212+(a<<2)|0;do if((b|0)!=(c[d>>2]|0)){if(g>>>0<(c[9731]|0)>>>0)fa();a=g+16|0;if((c[a>>2]|0)==(b|0))c[a>>2]=I;else c[g+20>>2]=I;if(!I)break e}else{c[d>>2]=I;if(I|0)break;c[9728]=c[9728]&~(1<>>0>>0)fa();c[I+24>>2]=g;a=b+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0>>0)fa();else{c[I+16>>2]=d;c[d+24>>2]=I;break}while(0);a=c[a+4>>2]|0;if(!a)break;if(a>>>0<(c[9731]|0)>>>0)fa();else{c[I+20>>2]=a;c[a+24>>2]=I;break}}else{d=c[b+8>>2]|0;e=c[b+12>>2]|0;a=38948+(f<<1<<2)|0;do if((d|0)!=(a|0)){if(d>>>0>>0)fa();if((c[d+12>>2]|0)==(b|0))break;fa()}while(0);if((e|0)==(d|0)){c[9727]=c[9727]&~(1<>>0>>0)fa();a=e+8|0;if((c[a>>2]|0)==(b|0)){F=a;break}fa()}while(0);c[d+12>>2]=e;c[F>>2]=d}while(0);b=b+h|0;f=h+k|0}else f=k;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[m+4>>2]=f|1;c[m+f>>2]=f;b=f>>>3;if(f>>>0<256){d=38948+(b<<1<<2)|0;a=c[9727]|0;b=1<>2]|0;if(a>>>0>=(c[9731]|0)>>>0){J=a;K=b;break}fa()}while(0);c[K>>2]=m;c[J+12>>2]=m;c[m+8>>2]=J;c[m+12>>2]=d;break}b=f>>>8;do if(!b)b=0;else{if(f>>>0>16777215){b=31;break}J=(b+1048320|0)>>>16&8;K=b<>>16&4;K=K<>>16&2;b=14-(I|J|b)+(K<>>15)|0;b=f>>>(b+7|0)&1|b<<1}while(0);e=39212+(b<<2)|0;c[m+28>>2]=b;a=m+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[9728]|0;d=1<>2]=m;c[m+24>>2]=e;c[m+12>>2]=m;c[m+8>>2]=m;break}a=f<<((b|0)==31?0:25-(b>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){D=278;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){D=275;break}else{a=a<<1;e=b}}if((D|0)==275)if(d>>>0<(c[9731]|0)>>>0)fa();else{c[d>>2]=m;c[m+24>>2]=e;c[m+12>>2]=m;c[m+8>>2]=m;break}else if((D|0)==278){b=e+8|0;a=c[b>>2]|0;K=c[9731]|0;if(a>>>0>=K>>>0&e>>>0>=K>>>0){c[a+12>>2]=m;c[b>>2]=m;c[m+8>>2]=a;c[m+12>>2]=e;c[m+24>>2]=0;break}else fa()}}else{K=(c[9730]|0)+k|0;c[9730]=K;c[9733]=m;c[m+4>>2]=K|1}while(0);K=n+8|0;i=L;return K|0}else a=39356;while(1){b=c[a>>2]|0;if(b>>>0<=l>>>0?(E=b+(c[a+4>>2]|0)|0,E>>>0>l>>>0):0)break;a=c[a+8>>2]|0}f=E+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=l+16|0;a=a>>>0>>0?l:a;b=a+8|0;d=g+8|0;d=(d&7|0)==0?0:0-d&7;K=g+d|0;d=h+-40-d|0;c[9733]=K;c[9730]=d;c[K+4>>2]=d|1;c[K+d+4>>2]=40;c[9734]=c[9849];d=a+4|0;c[d>>2]=27;c[b>>2]=c[9839];c[b+4>>2]=c[9840];c[b+8>>2]=c[9841];c[b+12>>2]=c[9842];c[9839]=g;c[9840]=h;c[9842]=0;c[9841]=b;b=a+24|0;do{b=b+4|0;c[b>>2]=7}while((b+4|0)>>>0>>0);if((a|0)!=(l|0)){g=a-l|0;c[d>>2]=c[d>>2]&-2;c[l+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=38948+(b<<1<<2)|0;a=c[9727]|0;b=1<>2]|0;if(a>>>0<(c[9731]|0)>>>0)fa();else{G=a;H=b}}else{c[9727]=a|b;G=d;H=d+8|0}c[H>>2]=l;c[G+12>>2]=l;c[l+8>>2]=G;c[l+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)d=31;else{J=(b+1048320|0)>>>16&8;K=b<>>16&4;K=K<>>16&2;d=14-(I|J|d)+(K<>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=39212+(d<<2)|0;c[l+28>>2]=d;c[l+20>>2]=0;c[f>>2]=0;b=c[9728]|0;a=1<>2]=l;c[l+24>>2]=e;c[l+12>>2]=l;c[l+8>>2]=l;break}a=g<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(g|0)){D=304;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){D=301;break}else{a=a<<1;e=b}}if((D|0)==301)if(d>>>0<(c[9731]|0)>>>0)fa();else{c[d>>2]=l;c[l+24>>2]=e;c[l+12>>2]=l;c[l+8>>2]=l;break}else if((D|0)==304){b=e+8|0;a=c[b>>2]|0;K=c[9731]|0;if(a>>>0>=K>>>0&e>>>0>=K>>>0){c[a+12>>2]=l;c[b>>2]=l;c[l+8>>2]=a;c[l+12>>2]=e;c[l+24>>2]=0;break}else fa()}}}else{K=c[9731]|0;if((K|0)==0|g>>>0>>0)c[9731]=g;c[9839]=g;c[9840]=h;c[9842]=0;c[9736]=c[9845];c[9735]=-1;b=0;do{K=38948+(b<<1<<2)|0;c[K+12>>2]=K;c[K+8>>2]=K;b=b+1|0}while((b|0)!=32);K=g+8|0;K=(K&7|0)==0?0:0-K&7;J=g+K|0;K=h+-40-K|0;c[9733]=J;c[9730]=K;c[J+4>>2]=K|1;c[J+K+4>>2]=40;c[9734]=c[9849]}while(0);b=c[9730]|0;if(b>>>0>o>>>0){I=b-o|0;c[9730]=I;K=c[9733]|0;J=K+o|0;c[9733]=J;c[J+4>>2]=I|1;c[K+4>>2]=o|3;K=K+8|0;i=L;return K|0}}c[(Rb()|0)>>2]=12;K=0;i=L;return K|0}function ic(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!a)return;d=a+-8|0;h=c[9731]|0;if(d>>>0>>0)fa();a=c[a+-4>>2]|0;b=a&3;if((b|0)==1)fa();e=a&-8;n=d+e|0;do if(!(a&1)){a=c[d>>2]|0;if(!b)return;k=d+(0-a)|0;j=a+e|0;if(k>>>0>>0)fa();if((k|0)==(c[9732]|0)){a=n+4|0;b=c[a>>2]|0;if((b&3|0)!=3){q=k;f=j;break}c[9729]=j;c[a>>2]=b&-2;c[k+4>>2]=j|1;c[k+j>>2]=j;return}e=a>>>3;if(a>>>0<256){b=c[k+8>>2]|0;d=c[k+12>>2]|0;a=38948+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0>>0)fa();if((c[b+12>>2]|0)!=(k|0))fa()}if((d|0)==(b|0)){c[9727]=c[9727]&~(1<>>0>>0)fa();a=d+8|0;if((c[a>>2]|0)==(k|0))g=a;else fa()}else g=d+8|0;c[b+12>>2]=d;c[g>>2]=b;q=k;f=j;break}g=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){d=k+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){i=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0>>0)fa();else{c[b>>2]=0;i=a;break}}else{e=c[k+8>>2]|0;if(e>>>0>>0)fa();a=e+12|0;if((c[a>>2]|0)!=(k|0))fa();b=d+8|0;if((c[b>>2]|0)==(k|0)){c[a>>2]=d;c[b>>2]=e;i=d;break}else fa()}while(0);if(g){a=c[k+28>>2]|0;b=39212+(a<<2)|0;if((k|0)==(c[b>>2]|0)){c[b>>2]=i;if(!i){c[9728]=c[9728]&~(1<>>0<(c[9731]|0)>>>0)fa();a=g+16|0;if((c[a>>2]|0)==(k|0))c[a>>2]=i;else c[g+20>>2]=i;if(!i){q=k;f=j;break}}d=c[9731]|0;if(i>>>0>>0)fa();c[i+24>>2]=g;a=k+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0>>0)fa();else{c[i+16>>2]=b;c[b+24>>2]=i;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[9731]|0)>>>0)fa();else{c[i+20>>2]=a;c[a+24>>2]=i;q=k;f=j;break}else{q=k;f=j}}else{q=k;f=j}}else{q=d;f=e}while(0);if(q>>>0>=n>>>0)fa();a=n+4|0;b=c[a>>2]|0;if(!(b&1))fa();if(!(b&2)){if((n|0)==(c[9733]|0)){p=(c[9730]|0)+f|0;c[9730]=p;c[9733]=q;c[q+4>>2]=p|1;if((q|0)!=(c[9732]|0))return;c[9732]=0;c[9729]=0;return}if((n|0)==(c[9732]|0)){p=(c[9729]|0)+f|0;c[9729]=p;c[9732]=q;c[q+4>>2]=p|1;c[q+p>>2]=p;return}f=(b&-8)+f|0;e=b>>>3;do if(b>>>0>=256){g=c[n+24>>2]|0;a=c[n+12>>2]|0;do if((a|0)==(n|0)){d=n+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){m=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<(c[9731]|0)>>>0)fa();else{c[b>>2]=0;m=a;break}}else{b=c[n+8>>2]|0;if(b>>>0<(c[9731]|0)>>>0)fa();d=b+12|0;if((c[d>>2]|0)!=(n|0))fa();e=a+8|0;if((c[e>>2]|0)==(n|0)){c[d>>2]=a;c[e>>2]=b;m=a;break}else fa()}while(0);if(g|0){a=c[n+28>>2]|0;b=39212+(a<<2)|0;if((n|0)==(c[b>>2]|0)){c[b>>2]=m;if(!m){c[9728]=c[9728]&~(1<>>0<(c[9731]|0)>>>0)fa();a=g+16|0;if((c[a>>2]|0)==(n|0))c[a>>2]=m;else c[g+20>>2]=m;if(!m)break}d=c[9731]|0;if(m>>>0>>0)fa();c[m+24>>2]=g;a=n+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0>>0)fa();else{c[m+16>>2]=b;c[b+24>>2]=m;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[9731]|0)>>>0)fa();else{c[m+20>>2]=a;c[a+24>>2]=m;break}}}else{b=c[n+8>>2]|0;d=c[n+12>>2]|0;a=38948+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(c[9731]|0)>>>0)fa();if((c[b+12>>2]|0)!=(n|0))fa()}if((d|0)==(b|0)){c[9727]=c[9727]&~(1<>>0<(c[9731]|0)>>>0)fa();a=d+8|0;if((c[a>>2]|0)==(n|0))l=a;else fa()}else l=d+8|0;c[b+12>>2]=d;c[l>>2]=b}while(0);c[q+4>>2]=f|1;c[q+f>>2]=f;if((q|0)==(c[9732]|0)){c[9729]=f;return}}else{c[a>>2]=b&-2;c[q+4>>2]=f|1;c[q+f>>2]=f}a=f>>>3;if(f>>>0<256){d=38948+(a<<1<<2)|0;b=c[9727]|0;a=1<>2]|0;if(b>>>0<(c[9731]|0)>>>0)fa();else{o=b;p=a}}else{c[9727]=b|a;o=d;p=d+8|0}c[p>>2]=q;c[o+12>>2]=q;c[q+8>>2]=o;c[q+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{o=(a+1048320|0)>>>16&8;p=a<>>16&4;p=p<>>16&2;a=14-(n|o|a)+(p<>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=39212+(a<<2)|0;c[q+28>>2]=a;c[q+20>>2]=0;c[q+16>>2]=0;b=c[9728]|0;d=1<>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=130;break}d=e+16+(b>>>31<<2)|0;a=c[d>>2]|0;if(!a){a=127;break}else{b=b<<1;e=a}}if((a|0)==127)if(d>>>0<(c[9731]|0)>>>0)fa();else{c[d>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q;break}else if((a|0)==130){a=e+8|0;b=c[a>>2]|0;p=c[9731]|0;if(b>>>0>=p>>>0&e>>>0>=p>>>0){c[b+12>>2]=q;c[a>>2]=q;c[q+8>>2]=b;c[q+12>>2]=e;c[q+24>>2]=0;break}else fa()}}else{c[9728]=b|d;c[e>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q}while(0);q=(c[9735]|0)+-1|0;c[9735]=q;if(!q)a=39364;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[9735]=-1;return}function jc(){}function kc(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 (C=d,a-c>>>0|0)|0}function lc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function mc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<>>c-32|0}function nc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<>>32-c;return a<>>16;a=(c>>>16)+(R(e,d)|0)|0;e=b>>>16;b=R(e,f)|0;return (C=(a>>>16)+(R(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function pc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=oc(e,f)|0;a=C;return (C=(R(b,f)|0)+(R(d,e)|0)+a|a&0,c|0|0)|0}function qc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (C=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function rc(a){a=a|0;var b=0,d=0;d=a+15&-16|0;b=c[k>>2]|0;a=b+d|0;if((d|0)>0&(a|0)<(b|0)|(a|0)<0){Z()|0;sa(12);return -1}c[k>>2]=a;if((a|0)>(Y()|0)?(X()|0)==0:0){sa(12);c[k>>2]=b;return -1}return b|0}function sc(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function tc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return la(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function uc(){return 0}function vc(a,b){a=a|0;b=b|0;return ua[a&1](b|0)|0}function wc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return va[a&7](b|0,c|0,d|0)|0}function xc(a,b){a=a|0;b=b|0;wa[a&3](b|0)}function yc(a){a=a|0;V(0);return 0}function zc(a,b,c){a=a|0;b=b|0;c=c|0;V(1);return 0}function Ac(a){a=a|0;V(2)} // EMSCRIPTEN_END_FUNCS var ua=[yc,Nb];var va=[zc,Wb,Pb,Ub,Ob,zc,zc,zc];var wa=[Ac,Sb,Vb,Ac];return{___muldsi3:oc,_sbrk:rc,_i64Subtract:kc,_free:ic,_ecdsa_read_pubkey:lb,_i64Add:qc,_pthread_self:uc,_memset:lc,_malloc:hc,_memcpy:tc,_llvm_bswap_i32:sc,___muldi3:pc,_bitshift64Lshr:mc,_fflush:ec,_hdnode_public_ckd_address_optimized:ub,___errno_location:Rb,_bitshift64Shl:nc,runPostSets:jc,stackAlloc:xa,stackSave:ya,stackRestore:za,establishStackSpace:Aa,setThrew:Ba,setTempRet0:Ca,getTempRet0:Da,dynCall_ii:vc,dynCall_iiii:wc,dynCall_vi:xc}}) @@ -374,6 +374,6 @@ e.callMain=e.ad=function(a){function b(){for(var a=0;3>a;a++)d.push(0)}a=a||[];z function wc(a){function b(){if(!e.calledRun&&(e.calledRun=!0,!ja)){za||(za=!0,Qa(Sa));Qa(Ta);if(e.onRuntimeInitialized)e.onRuntimeInitialized();e._main&&yc&&e.callMain(a);if(e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;)Wa(e.postRun.shift());Qa(Ua)}}a=a||e.arguments;null===uc&&(uc=Date.now());if(!(0