dicom-microscopy-viewer-changed
Version:
Interactive web-based viewer for DICOM Microscopy Images
13 lines (11 loc) • 497 kB
JavaScript
var OpenJPEGJS = (() => {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
return (
function(OpenJPEGJS) {
OpenJPEGJS = OpenJPEGJS || {};
var Module=typeof OpenJPEGJS!="undefined"?OpenJPEGJS:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=(
// EMSCRIPTEN_START_ASM
function instantiate(Da){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new ArrayBuffer(16);var g=new Int32Array(f);var h=new Float32Array(f);var i=new Float64Array(f);function j(k){return g[k]}function l(k,m){g[k]=m}function n(){return i[0]}function o(m){i[0]=m}function p(){throw new Error("abort")}function Ba(Ca){var q=Ca.a;var r=q.a;var s=r.buffer;r.grow=za;var t=new Int8Array(s);var u=new Int16Array(s);var v=new Int32Array(s);var w=new Uint8Array(s);var x=new Uint16Array(s);var y=new Uint32Array(s);var z=new Float32Array(s);var A=new Float64Array(s);var B=Math.imul;var C=Math.fround;var D=Math.abs;var E=Math.clz32;var F=Math.min;var G=Math.max;var H=Math.floor;var I=Math.ceil;var J=Math.trunc;var K=Math.sqrt;var L=NaN;var M=Infinity;var N=q.b;var O=q.c;var P=q.d;var Q=q.e;var R=q.f;var S=q.g;var T=q.h;var U=q.i;var V=q.j;var W=q.k;var X=q.l;var Y=q.m;var Z=q.n;var _=q.o;var $=q.p;var aa=q.q;var ba=q.r;var ca=q.s;var da=q.t;var ea=q.u;var fa=q.v;var ga=q.w;var ha=q.x;var ia=q.y;var ja=q.z;var ka=q.A;var la=q.B;var ma=q.C;var na=q.D;var oa=q.E;var pa=97840;var qa=0;var ra=0;var sa=0;
// EMSCRIPTEN_START_FUNCS
function Me(a,b){a=a|0;b=b|0;var c=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,A=0,D=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=C(0),_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,qa=0,ra=0,sa=0;W=pa-96|0;pa=W;M=v[a+8>>2];a:{b:{c:{if(!v[a>>2]){f=B(v[M+16>>2]-v[M+8>>2]|0,v[M+20>>2]-v[M+12>>2]|0)<<2;d=Pa(f);v[M+60>>2]=d;if(!d){Ea(v[a+32>>2],1,9030,0);l=a+28|0;break b}Ka(d,0,f);break c}d=v[M+60>>2];if(!d){break c}Fa(d);v[M+60>>2]=0}if(!v[v[a+28>>2]>>2]){break a}ba=v[a+16>>2];d=(B(v[ba+24>>2],152)+v[ba+28>>2]|0)-152|0;qa=v[d>>2];ra=v[d+8>>2];ca=v[a+20>>2];da=v[a+12>>2];ka=v[a+4>>2];l=a+28|0;d:{h=v[b+4>>2];e:{if((h|0)>0){f=v[b>>2];d=0;while(1){k=f+B(d,12)|0;e=v[k+4>>2];if(!v[k>>2]){break e}d=d+1|0;if((h|0)!=(d|0)){continue}break}}e=0}if(e){break d}e=Ia(1,156);if(!e){Ea(v[a+32>>2],1,7377,0);break b}v[e+140>>2]=0;d=0;h=v[b+4>>2];f:{if((h|0)!=2147483647){f=v[b>>2];if((h|0)>0){while(1){if(!v[f+B(d,12)>>2]){d=B(d,12);h=d+f|0;k=v[h+8>>2];if(k){ta[k|0](v[h+4>>2]);f=v[b>>2]}b=f+d|0;v[b+8>>2]=155;v[b+4>>2]=e;f=1;break f}d=d+1|0;if((h|0)!=(d|0)){continue}break}}d=Oa(f,B(h,12)+12|0);f=0;if(!d){break f}v[b>>2]=d;f=v[b+4>>2];d=d+B(f,12)|0;v[d+8>>2]=155;v[d+4>>2]=e;v[d>>2]=0;v[b+4>>2]=f+1;f=1}else{f=0}}if(f){break d}Ea(v[a+32>>2],1,9345,0);b=v[e+116>>2];if(b){Fa(b);v[e+116>>2]=0}b=v[e+120>>2];if(b){Fa(b);v[e+120>>2]=0}Fa(v[e+148>>2]);Fa(e);break b}v[e+144>>2]=v[a+24>>2];$=v[a+40>>2];V=v[a+36>>2];S=v[a+32>>2];F=v[ca+808>>2];b=v[da+16>>2];g:{U=v[ca+16>>2];h:{if(U&64){A=pa-304|0;pa=A;i:{if(F){if(V){Ea(S,1,4316,0);break i}Ea(S,1,4316,0);break i}h=v[e+116>>2];d=v[M+20>>2]-v[M+12>>2]|0;f=v[M+16>>2]-v[M+8>>2]|0;b=B(d,f);j:{k:{if(b>>>0>y[e+132>>2]){Fa(h);G=b<<2;h=Pa(G);v[e+116>>2]=h;if(!h){break i}v[e+132>>2]=b;break k}if(!h){break j}G=b<<2}Ka(h,0,G)}h=v[e+120>>2];l:{if(y[e+136>>2]>2639){break l}Fa(h);h=Pa(10560);v[e+120>>2]=h;if(h){break l}break i}v[e+136>>2]=2640;Ka(h,0,10560);v[e+128>>2]=d;v[e+124>>2]=f;k=v[M+24>>2];if(!k){c=1;break i}q=v[M+28>>2];m:{n:{o:{p:{q:{d=v[M+52>>2];if(d){b=v[M+4>>2];G=0;h=0;if(d>>>0>=4){n=d&-4;while(1){f=c<<3;h=v[(b+(f|24)|0)+4>>2]+(v[(b+(f|16)|0)+4>>2]+(v[(b+(f|8)|0)+4>>2]+(v[(b+f|0)+4>>2]+h|0)|0)|0)|0;c=c+4|0;g=g+4|0;if((n|0)!=(g|0)){continue}break}}f=d&3;if(f){while(1){h=v[(b+(c<<3)|0)+4>>2]+h|0;c=c+1|0;G=G+1|0;if((f|0)!=(G|0)){continue}break}}if(!v[e+144>>2]&d>>>0<=1){break p}if(y[e+152>>2]<h>>>0){break q}break o}if(v[e+144>>2]){break o}c=1;break i}G=Oa(v[e+148>>2],h);if(!G){c=0;break i}v[e+152>>2]=h;v[e+148>>2]=G;d=v[M+52>>2];break n}c=1;if((d|0)!=1){break i}G=v[v[M+4>>2]>>2];break m}G=v[e+148>>2]}if(!d){h=0;break m}f=v[M+4>>2];h=0;c=0;while(1){b=c<<3;d=b+f|0;Ha(h+G|0,v[d>>2],v[d+4>>2]);f=v[M+4>>2];h=v[(b+f|0)+4>>2]+h|0;c=c+1|0;if(c>>>0<y[M+52>>2]){continue}break}}c=0;f=0;b=v[M+40>>2];m=0;r:{if(!b){break r}d=v[M>>2];f=v[d+8>>2];m=0;if((b|0)==1){break r}m=v[d+32>>2]}b=m;d=k-q|0;f=b+f|0;s:{if(!f){break s}c=1;b=v[M>>2];D=v[b>>2];if((f|0)==1){c=0;break s}i=v[b+24>>2]}N=d+1|0;X=v[e+116>>2];p=v[e+120>>2];J=v[M+12>>2];T=v[M+20>>2];ia=v[M+8>>2];la=v[M+16>>2];t:{u:{v:{w:{x:{y:{z:{A:{if(!(i|!c)){if(!V){break A}Ea(S,2,11542,0);f=1;break z}if(f>>>0<4){break z}if(V){v[A+112>>2]=f;Ea(S,1,10353,A+112|0);break t}v[A+96>>2]=f;Ea(S,1,10353,A+96|0);c=0;break i}Ea(S,2,11542,0);c=v[M+24>>2];if(c>>>0>30){break y}r=1;if(c>>>0>=N>>>0){break w}break u}c=v[M+24>>2];if(c>>>0<=30){break x}if(!V){break y}v[A+32>>2]=v[M+24>>2];Ea(S,1,12944,A+32|0);break t}v[A>>2]=c;Ea(S,1,12944,A);c=0;break i}if(c>>>0<N>>>0){break v}if((c|0)!=(N|0)){r=f;break w}if(f>>>0<2){r=f;break w}r=1;if(w[29352]){break w}if(!V){t[29352]=1;v[A+64>>2]=f;Ea(S,2,11035,A- -64|0);break w}if(!w[29352]){t[29352]=1;v[A+80>>2]=f;Ea(S,2,11035,A+80|0)}}if(!(!(D>>>0<2|h>>>0<D>>>0)&i+D>>>0<=h>>>0)){if(V){c=0;Ea(S,1,10295,0);break i}c=0;Ea(S,1,10295,0);break i}R=D+G|0;k=w[R-1|0]<<4|w[R-2|0]&15;if(!(!(k>>>0<2|(k|0)>(D|0))&k>>>0<4080)){if(V){c=0;Ea(S,1,15947,0);break i}c=0;Ea(S,1,15947,0);break i}K=v[M+28>>2];v[A+272>>2]=0;v[A+280>>2]=0;v[A+264>>2]=0;v[A+268>>2]=0;v[A+296>>2]=0;v[A+300>>2]=0;v[A+284>>2]=0;v[A+288>>2]=0;h=k-1|0;v[A+276>>2]=h;d=(D+G|0)-k|0;v[A+256>>2]=d;f=k>>>0<2?255:w[d|0];b=8;v[A+272>>2]=8;F=k-2|0;v[A+276>>2]=F;n=0;q=(h|0)==1?f|15:f;v[A+264>>2]=q;v[A+268>>2]=0;f=d+(k>>>0>1)|0;v[A+256>>2]=f;v[A+280>>2]=(q|0)==255;c=d&3;B:{C:{if((c|0)==3){break C}if((q|0)==255){m=0;if(w[f|0]>143){break B}}d=k>>>0<3?255:w[f|0];j=k-3|0;v[A+276>>2]=j;n=(q|0)==255;b=n?15:16;v[A+272>>2]=b;h=f+(k>>>0>2)|0;v[A+256>>2]=h;d=(F|0)==1?d|15:d;v[A+280>>2]=(d|0)==255;n=n?7:8;f=n&31;if((n&63)>>>0>=32){P=q<<f;f=0}else{P=(1<<f)-1&q>>>32-f;f=q<<f}q=f|d;v[A+264>>2]=q;n=P;v[A+268>>2]=n;if((c|0)==2){break C}if((d|0)==255){m=0;if(w[h|0]>143){break B}}f=k>>>0<4?255:w[h|0];P=k-4|0;v[A+276>>2]=P;h=h+(k>>>0>3)|0;v[A+256>>2]=h;f=(j|0)==1?f|15:f;v[A+280>>2]=(f|0)==255;F=(d|0)==255;b=(F?7:8)+b|0;v[A+272>>2]=b;d=f;F=F?7:8;f=F&31;if((F&63)>>>0>=32){F=q<<f;f=0}else{F=(1<<f)-1&q>>>32-f|n<<f;f=q<<f}q=f|d;v[A+264>>2]=q;n=F;v[A+268>>2]=n;if((c|0)==1){break C}if((d|0)==255){m=0;if(w[h|0]>143){break B}}f=k>>>0<5?255:w[h|0];v[A+276>>2]=k-5;v[A+256>>2]=h+(k>>>0>4);f=(P|0)==1?f|15:f;v[A+280>>2]=(f|0)==255;d=(d|0)==255;b=(d?7:8)+b|0;v[A+272>>2]=b;h=d?7:8;d=h&31;if((h&63)>>>0>=32){j=q<<d;d=0}else{j=(1<<d)-1&q>>>32-d|n<<d;d=q<<d}q=d|f;v[A+264>>2]=q;n=j;v[A+268>>2]=j}d=64-b|0;b=d&31;if((d&63)>>>0>=32){F=q<<b;b=0}else{F=(1<<b)-1&q>>>32-b|n<<b;b=q<<b}v[A+264>>2]=b;v[A+268>>2]=F;m=1}if(!m){if(V){c=0;Ea(S,1,12152,0);break i}c=0;Ea(S,1,12152,0);break i}I=la-ia|0;g=k-2|0;v[A+244>>2]=g;d=D+G|0;b=d-3|0;v[A+224>>2]=b;F=w[d-2|0];m=F>>>0>143;v[A+248>>2]=m;n=0;q=F>>>4|0;v[A+232>>2]=q;v[A+236>>2]=0;d=(q&7)==7?3:4;v[A+240>>2]=d;f=(b&3)+1|0;h=(g|0)>(f|0)?f:g;D:{E:{if(k>>>0<=2){f=g-h|0;v[A+244>>2]=f;break E}f=b-1|0;v[A+224>>2]=f;c=w[b|0];m=c>>>0>143;v[A+248>>2]=m;b=d&31;if((d&63)>>>0>=32){j=c<<b;b=0}else{j=(1<<b)-1&c>>>32-b;b=c<<b}q=b|q;v[A+232>>2]=q;n=j;v[A+236>>2]=j;d=(F>>>0<=143?8:(c&127)==127?7:8)+d|0;v[A+240>>2]=d;F:{if((h|0)<2){b=f;break F}b=f-1|0;v[A+224>>2]=b;j=w[f|0];m=j>>>0>143;v[A+248>>2]=m;f=d&31;if((d&63)>>>0>=32){F=j<<f;f=0}else{F=(1<<f)-1&j>>>32-f;f=j<<f}q=f|q;v[A+232>>2]=q;n=n|F;v[A+236>>2]=n;d=(c>>>0<=143?8:(j&127)==127?7:8)+d|0;v[A+240>>2]=d;P=(h|0)<=1?1:h;if((P|0)==2){break F}f=b-1|0;v[A+224>>2]=f;c=w[b|0];m=c>>>0>143;v[A+248>>2]=m;b=d&31;if((d&63)>>>0>=32){F=c<<b;b=0}else{F=(1<<b)-1&c>>>32-b;b=c<<b}q=b|q;b=n|F;n=b;v[A+232>>2]=q;v[A+236>>2]=b;d=(j>>>0<=143?8:(c&127)==127?7:8)+d|0;v[A+240>>2]=d;if((P|0)==3){b=f;break F}b=f-1|0;v[A+224>>2]=b;f=w[f|0];m=f>>>0>143;v[A+248>>2]=m;F=d&31;if((d&63)>>>0>=32){P=f<<F;j=0}else{P=(1<<F)-1&f>>>32-F;j=f<<F}q=j|q;v[A+232>>2]=q;n=n|P;v[A+236>>2]=n;d=(c>>>0<=143?8:(f&127)==127?7:8)+d|0;v[A+240>>2]=d}f=g-h|0;v[A+244>>2]=f;if(d>>>0>32){break D}}G:{if((f|0)>=4){h=v[b-3>>2];v[A+244>>2]=f-4;v[A+224>>2]=b-4;break G}if((f|0)<=0){h=0;break G}j=f&1;H:{if((f|0)==1){c=24;h=0;break H}P=f&-2;c=24;h=0;F=0;while(1){g=b-1|0;v[A+224>>2]=g;L=w[b|0];b=b-2|0;v[A+224>>2]=b;v[A+244>>2]=f-1;g=w[g|0];f=f-2|0;v[A+244>>2]=f;h=L<<c|h|g<<c-8;c=c-16|0;F=F+2|0;if((P|0)!=(F|0)){continue}break}}if(!j){break G}v[A+224>>2]=b-1;b=w[b|0];v[A+244>>2]=f-1;h=b<<c|h}b=h&255;v[A+248>>2]=b>>>0>143;f=m?(h&2130706432)==2130706432?7:8:8;c=f+(h>>>0<=2415919103?8:(h&8323072)==8323072?7:8)|0;F=h>>>16&255;j=c+(F>>>0<=143?8:(h&32512)==32512?7:8)|0;P=h>>>8&255;v[A+240>>2]=j+((P>>>0<=143?8:(h&127)==127?7:8)+d|0);f=F<<f|h>>>24|P<<c|b<<j;b=d&31;if((d&63)>>>0>=32){F=f<<b;b=0}else{F=(1<<b)-1&f>>>32-b;b=f<<b}v[A+232>>2]=b|q;v[A+236>>2]=n|F}Kc(A+192|0,G,D-k|0,255);b=0;I:{if(r>>>0<2){break I}Kc(A+160|0,R,i,0);b=0;if((r|0)==2){break I}q=0;n=0;c=0;v[A+152>>2]=1;v[A+144>>2]=0;v[A+136>>2]=0;v[A+140>>2]=0;k=i;h=k-1|0;v[A+148>>2]=h;d=(D+G|0)+h|0;v[A+128>>2]=d;j=d&3;J:{if((k|0)<=0){b=d;break J}b=d-1|0;v[A+128>>2]=b;q=w[d|0]}v[A+136>>2]=q;v[A+140>>2]=0;g=q>>>0>143;v[A+152>>2]=g;m=(q&127)==127?7:8;v[A+144>>2]=m;K:{if(!j){break K}i=k-2|0;v[A+148>>2]=i;L:{if((k|0)<2){d=b;break L}d=b-1|0;v[A+128>>2]=d;c=w[b|0]}g=c>>>0>143;v[A+152>>2]=g;b=m&31;if((m&63)>>>0>=32){F=c<<b;b=0}else{F=(1<<b)-1&c>>>32-b;b=c<<b}D=b|q;v[A+136>>2]=D;n=F;v[A+140>>2]=n;m=(q>>>0<=143?8:(c&127)==127?7:8)+m|0;v[A+144>>2]=m;if((j|0)==1){b=d;q=D;k=h;h=i;break K}F=k-3|0;v[A+148>>2]=F;M:{if((k|0)<3){f=d;break M}f=d-1|0;v[A+128>>2]=f;o=w[d|0]}g=o>>>0>143;v[A+152>>2]=g;b=m&31;if((m&63)>>>0>=32){P=o<<b;b=0}else{P=(1<<b)-1&o>>>32-b;b=o<<b}q=b|D;b=n|P;n=b;v[A+136>>2]=q;v[A+140>>2]=b;m=(c>>>0<=143?8:(o&127)==127?7:8)+m|0;v[A+144>>2]=m;if((j|0)==2){b=f;k=i;h=F;break K}h=k-4|0;v[A+148>>2]=h;c=0;N:{if((k|0)<4){b=f;break N}b=f-1|0;v[A+128>>2]=b;c=w[f|0]}g=c>>>0>143;v[A+152>>2]=g;d=m&31;if((m&63)>>>0>=32){j=c<<d;d=0}else{j=(1<<d)-1&c>>>32-d;d=c<<d}q=d|q;d=j|n;n=d;v[A+136>>2]=q;v[A+140>>2]=d;m=(o>>>0<=143?8:(c&127)==127?7:8)+m|0;v[A+144>>2]=m;k=F}if(m>>>0<=32){O:{if((k|0)>=5){d=v[b-3>>2];v[A+148>>2]=k-5;v[A+128>>2]=b-4;break O}d=0;if((k|0)<2){break O}k=24;while(1){f=b-1|0;v[A+128>>2]=f;b=w[b|0];c=h-1|0;v[A+148>>2]=c;d=b<<k|d;F=h>>>0>1;b=f;k=k-8|0;h=c;if(F){continue}break}}b=d&255;v[A+152>>2]=b>>>0>143;f=g?(d&2130706432)==2130706432?7:8:8;h=f+(d>>>0<=2415919103?8:(d&8323072)==8323072?7:8)|0;k=d>>>16&255;c=h+(k>>>0<=143?8:(d&32512)==32512?7:8)|0;F=d>>>8&255;v[A+144>>2]=c+((F>>>0<=143?8:(d&127)==127?7:8)+m|0);d=k<<f|d>>>24|F<<h|b<<c;b=m&31;if((m&63)>>>0>=32){F=d<<b;b=0}else{F=(1<<b)-1&d>>>32-b;b=d<<b}v[A+136>>2]=b|q;v[A+140>>2]=n|F}b=1}H=b;T=T-J|0;ea=N+1|0;t[p+2112|0]=0;P=p+2112|0;d=ib(A+256|0);P:{if((I|0)<=0){R=K-1|0;break P}R=K-1|0;i=p;f=P;G=0;k=X;g=0;while(1){D=g;c=x[(G<<8|(xb(A+224|0)&127)<<1)+18096>>1];Q:{if(G){break Q}b=d-2|0;c=(b|0)==-1?c:0;if((d|0)>1){d=b;break Q}d=ib(A+256|0)}q=v[A+232>>2];h=v[A+236>>2];b=v[A+240>>2];o=c>>>4|0;F=v[i>>2]|(o&3|c>>>2&48)<<Q;v[i>>2]=F;J=c&16;G=c>>>5&7|J>>>4;m=b;b=c&7;g=m-b|0;n=h>>>b|0;q=((1<<b)-1&h)<<32-b|q>>>b;b=q;h=0;if((I|0)>(D|2)){h=x[(G<<8|(b&127)<<1)+18096>>1];R:{if(G){break R}b=d-2|0;h=(b|0)==-1?h:0;if((d|0)>1){d=b;break R}d=ib(A+256|0)}G=h>>>4&1|h>>>5&7;b=h&7;g=g-b|0;q=((1<<b)-1&n)<<32-b|q>>>b;n=n>>>b|0;b=q}v[i>>2]=F|(h<<2&768|h&48)<<Q+4;m=h>>>2&2|c>>>3&1;S:{if((m|0)!=3){break S}F=d-2|0;m=(F|0)==-1?4:3;if((d|0)>1){d=F;break S}d=ib(A+256|0)}T:{if(!m){v[A+120>>2]=1;v[A+124>>2]=1;F=0;break T}if(m>>>0<=2){F=w[(b&7)+22244|0];j=F>>>2&7;s=b;b=F&3;F=(((-1<<j^-1)&s>>>b)+(F>>>5|0)|0)+1|0;m=(m|0)==1;v[A+124>>2]=m?1:F;v[A+120>>2]=m?F:1;F=b+j|0;break T}F=w[(b&7)+22244|0];j=F&3;b=b>>>j|0;if((m|0)==3){m=(F>>>5|0)+1|0;if((j|0)==3){v[A+124>>2]=b&1|2;F=F>>>2&7;v[A+120>>2]=m+((-1<<F^-1)&b>>>1);F=F+4|0;break T}s=b;b=w[(b&7)+22244|0];N=b&3;L=s>>>N|0;F=F>>>2&7;v[A+120>>2]=m+(L&(-1<<F^-1));m=b>>>2&7;v[A+124>>2]=(((-1<<m^-1)&L>>>F)+(b>>>5|0)|0)+1;F=m+(N+(j+F|0)|0)|0;break T}m=b;b=w[(b&7)+22244|0];N=b&3;L=m>>>N|0;m=F>>>2&7;v[A+120>>2]=((L&(-1<<m^-1))+(F>>>5|0)|0)+3;F=b>>>2&7;v[A+124>>2]=(((-1<<F^-1)&L>>>m)+(b>>>5|0)|0)+3;F=F+(m+(j+N|0)|0)|0}U:{j=v[A+120>>2];if(j>>>0<=ea>>>0){N=v[A+124>>2];if(N>>>0<=ea>>>0){break U}}if(V){c=0;Ea(S,1,16398,0);break i}c=0;Ea(S,1,16398,0);break i}v[A+240>>2]=g-F;b=F&31;if((F&63)>>>0>=32){F=0;b=n>>>b|0}else{F=n>>>b|0;b=((1<<b)-1&n)<<32-b|q>>>b}v[A+232>>2]=b;v[A+236>>2]=F;g=D+4|0;b=(g|0)<=(I|0)?255:255>>>(g-I<<1)|0;b=(T|0)>1?b:b&85;if((h&240|o&15)&(b^-1)){if(V){c=0;Ea(S,1,12836,0);break i}c=0;Ea(S,1,12836,0);break i}V:{W:{if(J){o=Ua(A+192|0);n=j+(c<<19>>31)|0;v[A+208>>2]=v[A+208>>2]-n;m=v[A+204>>2];J=v[A+200>>2];q=n&31;if((n&63)>>>0>=32){F=0;m=m>>>q|0}else{F=m>>>q|0;m=((1<<q)-1&m)<<32-q|J>>>q}v[A+200>>2]=m;v[A+204>>2]=F;m=(o&(-1<<n^-1)|(c>>>8&1)<<n|1)+2<<R|o<<31;break W}m=0;if(!(b&1)){break V}}v[k>>2]=m}X:{if(c&32){o=Ua(A+192|0);n=j+(c<<18>>31)|0;v[A+208>>2]=v[A+208>>2]-n;m=v[A+204>>2];J=v[A+200>>2];q=n&31;if((n&63)>>>0>=32){F=0;m=m>>>q|0}else{F=m>>>q|0;m=((1<<q)-1&m)<<32-q|J>>>q}v[A+200>>2]=m;v[A+204>>2]=F;q=o&(-1<<n^-1)|(c>>>9&1)<<n|1;v[(I<<2)+k>>2]=q+2<<R|o<<31;q=32-E(q)|0;n=w[f|0]&127;t[f|0]=(n>>>0<q>>>0?q:n)|128;break X}if(!(b&2)){break X}v[(I<<2)+k>>2]=0}m=k+4|0;Y:{Z:{if(c&64){J=Ua(A+192|0);n=j+(c<<17>>31)|0;v[A+208>>2]=v[A+208>>2]-n;o=v[A+204>>2];L=v[A+200>>2];q=n&31;if((n&63)>>>0>=32){F=0;o=o>>>q|0}else{F=o>>>q|0;o=((1<<q)-1&o)<<32-q|L>>>q}v[A+200>>2]=o;v[A+204>>2]=F;J=(J&(-1<<n^-1)|(c>>>10&1)<<n|1)+2<<R|J<<31;break Z}J=0;if(!(b&4)){break Y}}v[m>>2]=J}t[f+1|0]=0;_:{if(c&128){o=Ua(A+192|0);n=j+(c<<16>>31)|0;v[A+208>>2]=v[A+208>>2]-n;j=v[A+204>>2];J=v[A+200>>2];q=n&31;if((n&63)>>>0>=32){F=0;j=j>>>q|0}else{F=j>>>q|0;j=((1<<q)-1&j)<<32-q|J>>>q}v[A+200>>2]=j;v[A+204>>2]=F;q=o&(-1<<n^-1)|(c>>>11&1)<<n|1;v[m+(I<<2)>>2]=q+2<<R|o<<31;t[f+1|0]=-96-E(q);break _}if(!(b&8)){break _}v[m+(I<<2)>>2]=0}n=k+8|0;$:{aa:{if(h&16){m=Ua(A+192|0);c=N+(h<<19>>31)|0;v[A+208>>2]=v[A+208>>2]-c;j=v[A+204>>2];o=v[A+200>>2];q=c&31;if((c&63)>>>0>=32){F=0;o=j>>>q|0}else{F=j>>>q|0;o=((1<<q)-1&j)<<32-q|o>>>q}v[A+200>>2]=o;v[A+204>>2]=F;m=(m&(-1<<c^-1)|(h>>>8&1)<<c|1)+2<<R|m<<31;break aa}m=0;if(!(b&16)){break $}}v[n>>2]=m}ba:{if(h&32){m=Ua(A+192|0);c=N+(h<<18>>31)|0;v[A+208>>2]=v[A+208>>2]-c;j=v[A+204>>2];o=v[A+200>>2];q=c&31;if((c&63)>>>0>=32){F=0;o=j>>>q|0}else{F=j>>>q|0;o=((1<<q)-1&j)<<32-q|o>>>q}v[A+200>>2]=o;v[A+204>>2]=F;q=m&(-1<<c^-1)|(h>>>9&1)<<c|1;v[n+(I<<2)>>2]=q+2<<R|m<<31;q=32-E(q)|0;c=w[f+1|0]&127;t[f+1|0]=(c>>>0<q>>>0?q:c)|128;break ba}if(!(b&32)){break ba}v[n+(I<<2)>>2]=0}n=k+12|0;f=f+2|0;ca:{da:{if(h&64){m=Ua(A+192|0);c=N+(h<<17>>31)|0;v[A+208>>2]=v[A+208>>2]-c;j=v[A+204>>2];o=v[A+200>>2];q=c&31;if((c&63)>>>0>=32){F=0;o=j>>>q|0}else{F=j>>>q|0;o=((1<<q)-1&j)<<32-q|o>>>q}v[A+200>>2]=o;v[A+204>>2]=F;m=(m&(-1<<c^-1)|(h>>>10&1)<<c|1)+2<<R|m<<31;break da}m=0;if(!(b&64)){break ca}}v[n>>2]=m}j=D&4;t[f|0]=0;ea:{if(h&128){D=Ua(A+192|0);q=N+(h<<16>>31)|0;v[A+208>>2]=v[A+208>>2]-q;c=v[A+204>>2];m=v[A+200>>2];b=q&31;if((q&63)>>>0>=32){F=0;b=c>>>b|0}else{F=c>>>b|0;b=((1<<b)-1&c)<<32-b|m>>>b}v[A+200>>2]=b;v[A+204>>2]=F;b=D&(-1<<q^-1)|(h>>>11&1)<<q|1;v[n+(I<<2)>>2]=b+2<<R|D<<31;t[f|0]=-96-E(b);break ea}if(b>>>0<128){break ea}v[n+(I<<2)>>2]=0}Q=Q^16;i=i+j|0;k=k+16|0;if((g|0)<(I|0)){continue}break}}ma=U&8;$=p+1584|0;aa=p+1056|0;U=p+528|0;fa=B(I,3);ga=I<<1;b=K-2|0;s=3<<b;O=1<<b;m=2;if((T|0)>2){sa=(I+7>>>1&2147483644)+4|0;while(1){o=m;K=w[P|0];t[P|0]=0;Q=Q&-17^2;fa:{if((I|0)<=0){m=o+2|0;break fa}G=o&4?U:p;m=o+2|0;k=X+(B(o,I)<<2)|0;N=0;f=P;D=0;while(1){F=D;K=K&255;b=w[f+1|0]>>>5&4|(K>>>7|N);h=x[(b<<8|(xb(A+224|0)&127)<<1)+20144>>1];ga:{if(b){break ga}b=d-2|0;h=(b|0)==-1?h:0;if((d|0)>1){d=b;break ga}d=ib(A+256|0)}c=v[A+232>>2];q=v[A+236>>2];b=v[A+240>>2];i=v[G>>2]|(h>>>4&3|h>>>2&48)<<Q;v[G>>2]=i;Y=h&64;ja=h&128;N=Y>>>5|ja>>>6;n=b;b=h&7;J=n-b|0;n=q>>>b|0;q=((1<<b)-1&q)<<32-b|c>>>b;D=q;g=0;ha:{if((I|0)<=(F|2)){c=0;break ha}b=w[f+2|0]>>>5&4|w[f+1|0]>>>7|N;c=x[(b<<8|(D&127)<<1)+20144>>1];ia:{if(b){break ia}b=d-2|0;c=(b|0)==-1?c:0;if((d|0)>1){d=b;break ia}d=ib(A+256|0)}N=(c>>>5|c>>>6)&2;b=c&7;J=J-b|0;q=((1<<b)-1&n)<<32-b|q>>>b;n=n>>>b|0;D=q}v[G>>2]=i|(c<<2&768|c&48)<<Q+4;b=1;i=1;j=c>>>2&2|h>>>3&1;ja:{if(!j){break ja}g=D;b=w[(D&7)+22244|0];D=b&3;i=g>>>D|0;if((j|0)!=3){g=b>>>2&7;i=((i&(-1<<g^-1))+(b>>>5|0)|0)+1|0;j=(j|0)==1;b=j?1:i;i=j?i:1;g=g+D|0;break ja}j=w[(i&7)+22244|0];L=j&3;g=D;D=b>>>2&7;_=j>>>2&7;g=(L+(g+D|0)|0)+_|0;L=i>>>L|0;i=((L&(-1<<D^-1))+(b>>>5|0)|0)+1|0;b=(((-1<<_^-1)&L>>>D)+(j>>>5|0)|0)+1|0}v[A+240>>2]=J-g;D=g&31;if((g&63)>>>0>=32){j=0;n=n>>>D|0}else{j=n>>>D|0;n=((1<<D)-1&n)<<32-D|q>>>D}v[A+232>>2]=n;v[A+236>>2]=j;q=h&240;if(q-1&q){j=i;n=K&127;i=w[f+1|0]&127;n=i>>>0<n>>>0?n:i;i=n-2|0;i=j+(i>>>0<=n>>>0?i:0)|0}n=c&240;if(n-1&n){D=w[f+1|0]&127;j=w[f+2|0]&127;D=j>>>0<D>>>0?D:j;b=b+(D>>>0>2?D-2|0:0)|0}if(!(i>>>0<=ea>>>0&b>>>0<=ea>>>0)){if(V){c=0;Ea(S,1,16498,0);break i}c=0;Ea(S,1,16498,0);break i}K=w[f+2|0];t[f+1|0]=0;t[f+2|0]=0;n=n|q>>>4;D=F+4|0;q=(D|0)<=(I|0)?255:255>>>(D-I<<1)|0;q=(m|0)>(T|0)?q&85:q;if(n&(q^-1)){if(V){c=0;Ea(S,1,12836,0);break i}c=0;Ea(S,1,12836,0);break i}ka:{la:{if(h&16){L=Ua(A+192|0);g=(h<<19>>31)+i|0;v[A+208>>2]=v[A+208>>2]-g;J=v[A+204>>2];_=v[A+200>>2];n=g&31;if((g&63)>>>0>=32){j=0;n=J>>>n|0}else{j=J>>>n|0;n=((1<<n)-1&J)<<32-n|_>>>n}v[A+200>>2]=n;v[A+204>>2]=j;J=(L&(-1<<g^-1)|(h>>>8&1)<<g|1)+2<<R|L<<31;break la}J=0;if(!(q&1)){break ka}}v[k>>2]=J}ma:{if(h&32){L=Ua(A+192|0);g=(h<<18>>31)+i|0;v[A+208>>2]=v[A+208>>2]-g;J=v[A+204>>2];_=v[A+200>>2];n=g&31;if((g&63)>>>0>=32){j=0;n=J>>>n|0}else{j=J>>>n|0;n=((1<<n)-1&J)<<32-n|_>>>n}v[A+200>>2]=n;v[A+204>>2]=j;n=L&(-1<<g^-1)|(h>>>9&1)<<g|1;v[(I<<2)+k>>2]=n+2<<R|L<<31;n=32-E(n)|0;j=w[f|0]&127;t[f|0]=(j>>>0<n>>>0?n:j)|128;break ma}if(!(q&2)){break ma}v[(I<<2)+k>>2]=0}J=k+4|0;na:{oa:{if(Y){Y=Ua(A+192|0);g=(h<<17>>31)+i|0;v[A+208>>2]=v[A+208>>2]-g;L=v[A+204>>2];_=v[A+200>>2];n=g&31;if((g&63)>>>0>=32){j=0;n=L>>>n|0}else{j=L>>>n|0;n=((1<<n)-1&L)<<32-n|_>>>n}v[A+200>>2]=n;v[A+204>>2]=j;L=(Y&(-1<<g^-1)|(h>>>10&1)<<g|1)+2<<R|Y<<31;break oa}L=0;if(!(q&4)){break na}}v[J>>2]=L}pa:{if(ja){L=Ua(A+192|0);i=(h<<16>>31)+i|0;v[A+208>>2]=v[A+208>>2]-i;g=v[A+204>>2];Y=v[A+200>>2];n=i&31;if((i&63)>>>0>=32){j=0;n=g>>>n|0}else{j=g>>>n|0;n=((1<<n)-1&g)<<32-n|Y>>>n}v[A+200>>2]=n;v[A+204>>2]=j;h=L&(-1<<i^-1)|(h>>>11&1)<<i|1;v[J+(I<<2)>>2]=h+2<<R|L<<31;t[f+1|0]=-96-E(h);break pa}if(!(q&8)){break pa}v[J+(I<<2)>>2]=0}g=k+8|0;qa:{ra:{if(c&16){J=Ua(A+192|0);n=(c<<19>>31)+b|0;v[A+208>>2]=v[A+208>>2]-n;i=v[A+204>>2];L=v[A+200>>2];h=n&31;if((n&63)>>>0>=32){j=0;h=i>>>h|0}else{j=i>>>h|0;h=((1<<h)-1&i)<<32-h|L>>>h}v[A+200>>2]=h;v[A+204>>2]=j;i=(J&(-1<<n^-1)|(c>>>8&1)<<n|1)+2<<R|J<<31;break ra}i=0;if(!(q&16)){break qa}}v[g>>2]=i}sa:{if(c&32){J=Ua(A+192|0);n=(c<<18>>31)+b|0;v[A+208>>2]=v[A+208>>2]-n;i=v[A+204>>2];L=v[A+200>>2];h=n&31;if((n&63)>>>0>=32){j=0;h=i>>>h|0}else{j=i>>>h|0;h=((1<<h)-1&i)<<32-h|L>>>h}v[A+200>>2]=h;v[A+204>>2]=j;h=J&(-1<<n^-1)|(c>>>9&1)<<n|1;v[g+(I<<2)>>2]=h+2<<R|J<<31;h=32-E(h)|0;n=w[f+1|0]&127;t[f+1|0]=(h>>>0>n>>>0?h:n)|128;break sa}if(!(q&32)){break sa}v[g+(I<<2)>>2]=0}g=k+12|0;ta:{ua:{if(c&64){J=Ua(A+192|0);n=(c<<17>>31)+b|0;v[A+208>>2]=v[A+208>>2]-n;i=v[A+204>>2];L=v[A+200>>2];h=n&31;if((n&63)>>>0>=32){j=0;h=i>>>h|0}else{j=i>>>h|0;h=((1<<h)-1&i)<<32-h|L>>>h}v[A+200>>2]=h;v[A+204>>2]=j;i=(J&(-1<<n^-1)|(c>>>10&1)<<n|1)+2<<R|J<<31;break ua}i=0;if(!(q&64)){break ta}}v[g>>2]=i}F=F&4;f=f+2|0;va:{if(c&128){n=Ua(A+192|0);h=(c<<16>>31)+b|0;v[A+208>>2]=v[A+208>>2]-h;q=v[A+204>>2];i=v[A+200>>2];b=h&31;if((h&63)>>>0>=32){j=0;b=q>>>b|0}else{j=q>>>b|0;b=((1<<b)-1&q)<<32-b|i>>>b}v[A+200>>2]=b;v[A+204>>2]=j;b=n&(-1<<h^-1)|(c>>>11&1)<<h|1;v[g+(I<<2)>>2]=b+2<<R|n<<31;t[f|0]=-96-E(b);break va}if(q>>>0<128){break va}v[g+(I<<2)>>2]=0}Q=Q^16;G=F+G|0;k=k+16|0;if((D|0)<(I|0)){continue}break}}wa:{if(m&3|r>>>0<2){break wa}k=m&4;xa:{ya:{if(H){F=k?p:U;g=0;if((I|0)<=0){break ya}i=X+(B(I,o-2|0)<<2)|0;while(1){h=xb(A+128|0);c=0;q=v[F>>2];if(q){c=i+(g<<2)|0;b=0;f=15;while(1){za:{if(!(f&q)){break za}n=f&286331153;if(n&q){v[c>>2]=O|v[c>>2]^((h^-1)&1)<<R;h=h>>>1|0}if(q&n<<1){D=(I<<2)+c|0;v[D>>2]=O|v[D>>2]^((h^-1)&1)<<R;h=h>>>1|0}if(q&n<<2){D=(ga<<2)+c|0;v[D>>2]=O|v[D>>2]^((h^-1)&1)<<R;h=h>>>1|0}if(!(q&n<<3)){break za}n=(fa<<2)+c|0;v[n>>2]=O|v[n>>2]^((h^-1)&1)<<R;h=h>>>1|0}c=c+4|0;f=f<<4;b=b+1|0;if((b|0)!=8){continue}break}c=Uf(q)}F=F+4|0;v[A+144>>2]=v[A+144>>2]-c;f=v[A+140>>2];h=v[A+136>>2];b=c&31;if((c&63)>>>0>=32){j=0;b=f>>>b|0}else{j=f>>>b|0;b=((1<<b)-1&f)<<32-b|h>>>b}v[A+136>>2]=b;v[A+140>>2]=j;g=g+8|0;if((I|0)>(g|0)){continue}break}}G=!k;i=0;h=0;L=k?aa:$;c=L;F=k?p:U;f=F;if((I|0)<=0){break xa}while(1){b=h>>>28|0;h=v[f>>2];b=h|(b|h<<4|h>>>4);v[c>>2]=b;b=b|v[f+4>>2]<<28;v[c>>2]=(b>>>1&2004318071|b<<1&-286331154|b)&(h^-1);c=c+4|0;f=f+4|0;i=i+8|0;if((I|0)>(i|0)){continue}break}break xa}G=!k;L=k?aa:$}if(o>>>0<6){break wa}i=0;b=0;c=F;K=G?aa:$;h=K;q=G?p:U;f=q;n=(I|0)<=0;Aa:{if(n){break Aa}while(1){k=v[c>>2];c=c+4|0;v[h>>2]=(v[f>>2]^-1)&(ma?v[h>>2]:v[h>>2]|(k<<4|b>>>28|k>>>4|v[c>>2]<<28|k)<<3&-2004318072);f=f+4|0;h=h+4|0;b=k;i=i+8|0;if((I|0)>(i|0)){continue}break}if(n){break Aa}ja=X+(B(I,o-6|0)<<2)|0;J=0;o=q;while(1){i=0;c=v[K>>2];if(c){_=I-J|0;h=0;N=0;while(1){n=h;h=Ua(A+160|0);b=N+4|0;Y=(I|0)>(b+J|0)?b:_;na=(Y|0)<=(N|0);Ba:{if(na){f=0;break Ba}j=v[o>>2]^-1;g=((J|N)<<2)+ja|0;f=0;b=N;oa=b<<2;D=15<<oa;k=D;while(1){Ca:{if(!(c&k)){break Ca}G=k&286331153;if(G&c){if(h&1){i=i|G;c=j&50<<(b<<2)|c}h=h>>>1|0;f=f+1|0}ha=G<<1;if(ha&c){if(h&1){i=i|ha;c=j&116<<(b<<2)|c}h=h>>>1|0;f=f+1|0}ha=G<<2;if(ha&c){if(h&1){i=i|ha;c=j&232<<(b<<2)|c}h=h>>>1|0;f=f+1|0}G=G<<3;if(!(G&c)){break Ca}if(h&1){i=i|G;c=j&192<<(b<<2)|c}f=f+1|0;h=h>>>1|0}k=k<<4;b=b+1|0;if((Y|0)>(b|0)){continue}break}if(na|!(i>>>oa&65535)){break Ba}while(1){Da:{if(!(i&D)){break Da}b=D&286331153;if(b&i){v[g>>2]=s|(v[g>>2]|h<<31);h=h>>>1|0;f=f+1|0}if(b<<1&i){k=(I<<2)+g|0;v[k>>2]=s|(v[k>>2]|h<<31);h=h>>>1|0;f=f+1|0}if(b<<2&i){k=(ga<<2)+g|0;v[k>>2]=s|(v[k>>2]|h<<31);h=h>>>1|0;f=f+1|0}if(!(b<<3&i)){break Da}b=(fa<<2)+g|0;v[b>>2]=s|(v[b>>2]|h<<31);f=f+1|0;h=h>>>1|0}D=D<<4;g=g+4|0;N=N+1|0;if((Y|0)>(N|0)){continue}break}}v[A+176>>2]=v[A+176>>2]-f;h=v[A+172>>2];k=v[A+168>>2];b=f&31;if((f&63)>>>0>=32){j=0;b=h>>>b|0}else{j=h>>>b|0;b=((1<<b)-1&h)<<32-b|k>>>b}v[A+168>>2]=b;v[A+172>>2]=j;h=1;N=4;if(!(n&1)){continue}break}v[K+4>>2]=v[K+4>>2]|(i>>>27&14|i>>>29|i>>>28)&(v[o+4>>2]^-1)}f=v[o>>2]|i;b=f>>>3&286331153;h=b>>>4|b<<4|b;if(J){k=L-4|0;v[k>>2]=v[k>>2]|(v[F-4>>2]^-1)&b<<28}v[L>>2]=v[L>>2]|h&(v[F>>2]^-1);v[L+4>>2]=v[L+4>>2]|(v[F+4>>2]^-1)&f>>>31;K=K+4|0;o=o+4|0;L=L+4|0;F=F+4|0;J=J+8|0;if((I|0)>(J|0)){continue}break}}Ka(q,0,sa)}if((m|0)<(T|0)){continue}break}}Ea:{if(r>>>0<2){break Ea}q=(T&3)-1|0;Fa:{if(q>>>0<2&H){if((I|0)<=0){break Fa}n=X+(B(I,T&16777212)<<2)|0;g=T&4?U:p;P=0;while(1){h=xb(A+128|0);c=0;d=v[g>>2];if(d){c=n+(P<<2)|0;f=15;b=0;while(1){Ga:{if(!(d&f)){break Ga}k=f&286331153;if(k&d){v[c>>2]=O|v[c>>2]^((h^-1)&1)<<R;h=h>>>1|0}if(d&k<<1){F=(I<<2)+c|0;v[F>>2]=O|v[F>>2]^((h^-1)&1)<<R;h=h>>>1|0}if(d&k<<2){F=(ga<<2)+c|0;v[F>>2]=O|v[F>>2]^((h^-1)&1)<<R;h=h>>>1|0}if(!(d&k<<3)){break Ga}k=(fa<<2)+c|0;v[k>>2]=O|v[k>>2]^((h^-1)&1)<<R;h=h>>>1|0}c=c+4|0;f=f<<4;b=b+1|0;if((b|0)!=8){continue}break}c=Uf(d)}g=g+4|0;v[A+144>>2]=v[A+144>>2]-c;d=v[A+140>>2];f=v[A+136>>2];b=c&31;if((c&63)>>>0>=32){j=0;b=d>>>b|0}else{j=d>>>b|0;b=((1<<b)-1&d)<<32-b|f>>>b}v[A+136>>2]=b;v[A+140>>2]=j;P=P+8|0;if((I|0)>(P|0)){continue}break}}if((I|0)<=0|q>>>0>1){break Fa}b=T&4;c=b?U:p;f=b?$:aa;i=0;h=0;while(1){b=h>>>28|0;h=v[c>>2];b=h|(b|h<<4|h>>>4);v[f>>2]=b;b=b|v[c+4>>2]<<28;v[f>>2]=(b>>>1&2004318071|b<<1&-286331154|b)&(h^-1);f=f+4|0;c=c+4|0;i=i+8|0;if((I|0)>(i|0)){continue}break}}r=(T|0)>6?(T-(T+1&3)|0)-3|0:0;if((T|0)<=(r|0)){break Ea}N=(I|0)<=0;while(1){b=T-r|0;d=b-1|0;Ha:{Ia:{if(d>>>0>=3){J=-1;if((b|0)<5){break Ia}if(N){break Ha}b=r&4;c=b?U:p;h=b?$:aa;f=0;if(!ma){f=b?p:U;i=0;k=0;while(1){b=k>>>28|0;k=v[f>>2];v[h>>2]=(v[h>>2]|(k|(b|k<<4|k>>>4|v[f+4>>2]<<28))<<3&-2004318072)&(v[c>>2]^-1);c=c+4|0;h=h+4|0;f=f+4|0;i=i+8|0;if((I|0)>(i|0)){continue}break}break Ia}while(1){v[h>>2]=v[h>>2]&(v[c>>2]^-1);c=c+4|0;h=h+4|0;f=f+8|0;if((I|0)>(f|0)){continue}break}break Ia}J=v[(d<<2)+22252>>2]}if(N){break Ha}b=r&4;Q=b?U:p;m=b?$:aa;D=b?p:U;d=b?aa:$;G=X+(B(r,I)<<2)|0;K=0;while(1){i=0;c=v[m>>2]&J;if(c){S=I-K|0;h=0;q=0;while(1){n=h;h=Ua(A+160|0);b=q+4|0;o=(I|0)>(b+K|0)?b:S;R=(o|0)<=(q|0);Ja:{if(R){f=0;break Ja}F=(v[Q>>2]^-1)&J;g=G+((q|K)<<2)|0;f=0;b=q;V=b<<2;P=15<<V;k=P;while(1){Ka:{if(!(c&k)){break Ka}j=k&286331153;if(j&c){if(h&1){i=i|j;c=F&50<<(b<<2)|c}h=h>>>1|0;f=f+1|0}L=j<<1;if(L&c){if(h&1){i=i|L;c=F&116<<(b<<2)|c}h=h>>>1|0;f=f+1|0}L=j<<2;if(L&c){if(h&1){i=i|L;c=F&232<<(b<<2)|c}h=h>>>1|0;f=f+1|0}j=j<<3;if(!(j&c)){break Ka}if(h&1){i=i|j;c=F&192<<(b<<2)|c}f=f+1|0;h=h>>>1|0}k=k<<4;b=b+1|0;if((o|0)>(b|0)){continue}break}if(R|!(i>>>V&65535)){break Ja}while(1){La:{if(!(i&P)){break La}b=P&286331153;if(b&i){v[g>>2]=s|(v[g>>2]|h<<31);h=h>>>1|0;f=f+1|0}if(b<<1&i){k=(I<<2)+g|0;v[k>>2]=s|(v[k>>2]|h<<31);h=h>>>1|0;f=f+1|0}if(b<<2&i){k=(ga<<2)+g|0;v[k>>2]=s|(v[k>>2]|h<<31);h=h>>>1|0;f=f+1|0}if(!(b<<3&i)){break La}b=(fa<<2)+g|0;v[b>>2]=s|(v[b>>2]|h<<31);f=f+1|0;h=h>>>1|0}P=P<<4;g=g+4|0;q=q+1|0;if((o|0)>(q|0)){continue}break}}v[A+176>>2]=v[A+176>>2]-f;h=v[A+172>>2];k=v[A+168>>2];b=f&31;if((f&63)>>>0>=32){j=0;b=h>>>b|0}else{j=h>>>b|0;b=((1<<b)-1&h)<<32-b|k>>>b}v[A+168>>2]=b;v[A+172>>2]=j;h=1;q=4;if(!(n&1)){continue}break}v[m+4>>2]=v[m+4>>2]|(i>>>27&14|i>>>29|i>>>28)&(v[Q+4>>2]^-1)}f=v[Q>>2]|i;b=f>>>3&286331153;h=b>>>4|b<<4|b;if(K){k=d-4|0;v[k>>2]=v[k>>2]|(v[D-4>>2]^-1)&b<<28}v[d>>2]=v[d>>2]|h&(v[D>>2]^-1);v[d+4>>2]=v[d+4>>2]|(v[D+4>>2]^-1)&f>>>31;m=m+4|0;Q=Q+4|0;d=d+4|0;D=D+4|0;K=K+8|0;if((I|0)>(K|0)){continue}break}}r=r+4|0;if((T|0)>(r|0)){continue}break}}c=1;if((T|0)<=0|(I|0)<=0){break i}d=I&-4;b=I&3;f=(ia^-1)+la>>>0<3;G=0;while(1){h=X+(B(G,I)<<2)|0;c=0;if(!f){while(1){k=v[h>>2];q=k&2147483647;v[h>>2]=(k|0)<0?0-q|0:q;k=v[h+4>>2];q=k&2147483647;v[h+4>>2]=(k|0)<0?0-q|0:q;k=v[h+8>>2];q=k&2147483647;v[h+8>>2]=(k|0)<0?0-q|0:q;k=v[h+12>>2];q=k&2147483647;v[h+12>>2]=(k|0)<0?0-q|0:q;h=h+16|0;c=c+4|0;if((d|0)!=(c|0)){continue}break}}c=0;if(b){while(1){k=v[h>>2];q=k&2147483647;v[h>>2]=(k|0)<0?0-q|0:q;h=h+4|0;c=c+1|0;if((b|0)!=(c|0)){continue}break}}c=1;G=G+1|0;if((T|0)!=(G|0)){continue}break}break i}if(!V){break u}v[A+52>>2]=v[M+24>>2];v[A+48>>2]=N;Ea(S,1,10449,A+48|0);break t}v[A+20>>2]=c;v[A+16>>2]=N;Ea(S,1,10449,A+16|0);c=0;break i}c=0}pa=A+304|0;if(c){break h}break b}v[e+108>>2]=(b<<9)+23776;f=0;b=v[e+116>>2];Ma:{Na:{k=v[M+16>>2]-v[M+8>>2]|0;q=v[M+20>>2]-v[M+12>>2]|0;d=B(k,q);Oa:{Pa:{Qa:{if(d>>>0>y[e+132>>2]){Fa(b);b=Pa(d<<2);v[e+116>>2]=b;if(!b){break Oa}v[e+132>>2]=d;break Qa}if(!b){break Pa}}Ka(b,0,d<<2)}b=v[e+120>>2];h=k+2|0;i=q+3>>>2|0;n=B(h,i+2|0);if(n>>>0<=y[e+136>>2]){d=n<<2;break Na}Fa(b);d=n<<2;b=Pa(d);v[e+120>>2]=b;if(b){break Na}}b=0;break Ma}v[e+136>>2]=n;Ka(b,0,d);d=v[e+120>>2];Ra:{if(!h){break Ra}b=d;n=k+1|0;if(n>>>0>=7){D=h&-8;while(1){v[b+24>>2]=1226833920;v[b+28>>2]=1226833920;v[b+16>>2]=1226833920;v[b+20>>2]=1226833920;v[b+8>>2]=1226833920;v[b+12>>2]=1226833920;v[b>>2]=1226833920;v[b+4>>2]=1226833920;b=b+32|0;f=f+8|0;if((D|0)!=(f|0)){continue}break}}D=h&7;if(D){f=0;while(1){v[b>>2]=1226833920;b=b+4|0;f=f+1|0;if((D|0)!=(f|0)){continue}break}}if(!h){break Ra}b=d+(B(h,i+1|0)<<2)|0;if(n>>>0>=7){n=h&-8;f=0;while(1){v[b+24>>2]=1226833920;v[b+28>>2]=1226833920;v[b+16>>2]=1226833920;v[b+20>>2]=1226833920;v[b+8>>2]=1226833920;v[b+12>>2]=1226833920;v[b>>2]=1226833920;v[b+4>>2]=1226833920;b=b+32|0;f=f+8|0;if((n|0)!=(f|0)){continue}break}}n=h&7;if(!n){break Ra}f=0;while(1){v[b>>2]=1226833920;b=b+4|0;f=f+1|0;if((n|0)!=(f|0)){continue}break}}b=q&3;Sa:{if(!b|!h){break Sa}f=(b|0)==1?1224736768:(b|0)==2?1207959552:1073741824;b=d+(B(h,i)<<2)|0;if(k+1>>>0>=7){n=h&-8;d=0;while(1){v[b+28>>2]=f;v[b+24>>2]=f;v[b+20>>2]=f;v[b+16>>2]=f;v[b+12>>2]=f;v[b+8>>2]=f;v[b+4>>2]=f;v[b>>2]=f;b=b+32|0;d=d+8|0;if((n|0)!=(d|0)){continue}break}}h=h&7;if(!h){break Sa}d=0;while(1){v[b>>2]=f;b=b+4|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}}v[e+128>>2]=q;v[e+124>>2]=k;b=1}if(!b){break b}N=F+v[M+28>>2]|0;if((N|0)>=31){if(!V){break g}v[W+16>>2]=N;Ea(S,2,9674,W+16|0);break b}Jc(e);v[e+100>>2]=23744;v[e+96>>2]=22368;v[e+28>>2]=22400;Ta:{Ua:{Va:{Wa:{k=v[M+52>>2];if(k>>>0>1){break Wa}if(!v[e+144>>2]){break Ua}if(k){break Wa}break Va}b=v[M+4>>2];if(k-1>>>0>=3){h=k&-4;d=0;while(1){f=r<<3;c=v[(b+(f|24)|0)+4>>2]+(v[(b+(f|16)|0)+4>>2]+(v[(b+(f|8)|0)+4>>2]+(v[(b+f|0)+4>>2]+c|0)|0)|0)|0;r=r+4|0;d=d+4|0;if((h|0)!=(d|0)){continue}break}}d=k&3;if(!d){break Va}f=0;while(1){c=v[(b+(r<<3)|0)+4>>2]+c|0;r=r+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}b=c+2|0;if(b>>>0>y[e+152>>2]){d=Oa(v[e+148>>2],b);if(!d){break b}v[e+148>>2]=d;d=c+d|0;t[d|0]=0;t[d+1|0]=0;v[e+152>>2]=b;k=v[M+52>>2]}R=v[e+148>>2];if(!k){break Ta}c=v[M+4>>2];r=0;b=0;while(1){d=b<<3;f=d+c|0;Ha(r+R|0,v[f>>2],v[f+4>>2]);c=v[M+4>>2];r=v[(d+c|0)+4>>2]+r|0;b=b+1|0;if(b>>>0<y[M+52>>2]){continue}break}break Ta}if((k|0)!=1){break h}R=v[v[M+4>>2]>>2]}b=v[M+60>>2];if(b){aa=v[e+116>>2];v[e+116>>2]=b}if(v[M+44>>2]){I=U&8;ea=U&1;fa=!(U&2);P=2;while(1){b=L+R|0;X=v[M>>2]+B(J,24)|0;d=v[X>>2];A=ea&(P>>>0<2&(v[M+28>>2]-4|0)>=(N|0));Xa:{if(A){v[e+20>>2]=b;d=b+d|0;v[e+24>>2]=d;u[e+112>>1]=w[d|0]|w[d+1|0]<<8;t[d|0]=255;t[v[e+24>>2]+1|0]=255;v[e+8>>2]=0;v[e>>2]=0;v[e+16>>2]=b;break Xa}v[e+20>>2]=b;f=b+d|0;v[e+24>>2]=f;u[e+112>>1]=w[f|0]|w[f+1|0]<<8;t[f|0]=255;t[v[e+24>>2]+1|0]=255;v[e+104>>2]=e+28;v[e+16>>2]=b;v[e+12>>2]=0;d=d?w[b|0]<<16:16711680;v[e>>2]=d;l=1;h=b+1|0;f=w[b+1|0];Ya:{if(w[b|0]==255){if(f>>>0>=144){v[e+12>>2]=1;b=d|65280;break Ya}v[e+16>>2]=h;l=0;b=d+(f<<9)|0;break Ya}v[e+16>>2]=h;b=d|f<<8}v[e+8>>2]=l;v[e+4>>2]=32768;v[e>>2]=b<<7}ga=v[X>>2];Za:{if(!v[X+8>>2]|(N|0)<=0){break Za}ia=A|fa;T=0;while(1){_a:{$a:{ab:{switch(P|0){case 0:if(A){b=1<<N;k=b>>>1|b;q=v[e+124>>2];i=q<<2;b=(i+v[e+120>>2]|0)+12|0;f=v[e+116>>2];h=0;d=v[e+128>>2];if(d>>>0>=4){if(!q){break _a}F=B(q,3);r=q<<1;c=0-k|0;while(1){d=0;while(1){l=b;b=v[b>>2];bb:{if(!b){break bb}if(!(!(b&495)|b&2097168)){b=v[e>>2];n=v[e+8>>2];cb:{if(n){n=n-1|0;break cb}D=(b|0)==255;n=v[e+16>>2];b=w[n|0];db:{if(!D){v[e>>2]=b;v[e+16>>2]=n+1;break db}if(b>>>0<=143){v[e>>2]=b;v[e+16>>2]=n+1;n=6;break cb}b=255;v[e>>2]=255}n=7}v[e+8>>2]=n;eb:{if(!(b>>>n&1)){break eb}m=n-1|0;fb:{if(n){break fb}D=(b|0)==255;n=v[e+16>>2];b=w[n|0];gb:{if(!D){v[e>>2]=b;v[e+16>>2]=n+1;break gb}if(b>>>0<=143){v[e>>2]=b;v[e+16>>2]=n+1;m=6;break fb}b=255;v[e>>2]=255}m=7}n=m;v[e+8>>2]=n;n=b>>>n&1;v[f>>2]=n?c:k;b=v[e+124>>2];D=l-4|0;v[D>>2]=v[D>>2]|32;v[l+4>>2]=v[l+4>>2]|8;v[l>>2]=v[l>>2]|n<<19|16;if(I){break eb}b=l+(-2-b<<2)|0;v[b+4>>2]=v[b+4>>2]|32768;v[b>>2]=v[b>>2]|n<<31|65536;b=b-4|0;v[b>>2]=v[b>>2]|131072}b=v[l>>2]|2097152;v[l>>2]=b}if(!(!(b&3960)|b&16777344)){b=v[e>>2];n=v[e+8>>2];hb:{if(n){n=n-1|0;break hb}D=(b|0)==255;n=v[e+16>>2];b=w[n|0];ib:{if(!D){v[e>>2]=b;v[e+16>>2]=n+1;break ib}if(b>>>0<=143){v[e>>2]=b;v[e+16>>2]=n+1;n=6;break hb}b=255;v[e>>2]=255}n=7}v[e+8>>2]=n;if(b>>>n&1){D=f+i|0;m=n-1|0;jb:{if(n){break jb}j=(b|0)==255;n=v[e+16>>2];b=w[n|0];kb:{if(!j){v[e>>2]=b;v[e+16>>2]=n+1;break kb}if(b>>>0<=143){v[e>>2]=b;v[e+16>>2]=n+1;m=6;break jb}b=255;v[e>>2]=255}m=7}n=m;v[e+8>>2]=n;b=b>>>n&1;v[D>>2]=b?c:k;n=l-4|0;v[n>>2]=v[n>>2]|256;v[l+4>>2]=v[l+4>>2]|64;b=v[l>>2]|b<<22|128}else{b=v[l>>2]}b=b|16777216;v[l>>2]=b}if(!(!(b&31680)|b&134218752)){b=v[e>>2];n=v[e+8>>2];lb:{if(n){n=n-1|0;break lb}D=(b|0)==255;n=v[e+16>>2];b=w[n|0];mb:{if(!D){v[e>>2]=b;v[e+16>>2]=n+1;break mb}if(b>>>0<=143){v[e>>2]=b;v[e+16>>2]=n+1;n=6;break lb}b=255;v[e>>2]=255}n=7}v[e+8>>2]=n;if(b>>>n&1){D=(r<<2)+f|0;m=n-1|0;nb:{if(n){break nb}j=(b|0)==255;n=v[e+16>>2];b=w[n|0];ob:{if(!j){v[e>>2]=b;v[e+16>>2]=n+1;break ob}if(b>>>0<=143){v[e>>2]=b;v[e+16>>2]=n+1;m=6;break nb}b=255;v[e>>2]=255}m=7}n=m;v[e+8>>2]=n;b=b>>>n&1;v[D>>2]=b?c:k;n=l-4|0;v[n>>2]=v[n>>2]|2048;v[l+4>>2]=v[l+4>>2]|512;b=v[l>>2]|b<<25|1024}else{b=v[l>>2]}b=b|134217728;v[l>>2]=b}if(!(b&253440)|b&1073750016){break bb}b=v[e>>2];n=v[e+8>>2];pb:{if(n){n=n-1|0;break pb}D=(b|0)==255;n=v[e+16>>2];b=w[n|0];qb:{if(!D){v[e>>2]=b;v[e+16>>2]=n+1;break qb}if(b>>>0<=143){v[e>>2]=b;v[e+16>>2]=n+1;n=6;break pb}b=255;v[e>>2]=255}n=7}v[e+8>>2]=n;if(b>>>n&1){D=(F<<2)+f|0;m=n-1|0;rb:{if(n){break rb}j=(b|0)==255;n=v[e+16>>2];b=w[n|0];sb:{if(!j){v[e>>2]=b;v[e+16>>2]=n+1;break sb}if(b>>>0<=143){v[e>>2]=b;v[e+16>>2]=n+1;m=6;break rb}b=255;v[e>>2]=255}m=7}n=m;v[e+8>>2]=n;n=b>>>n&1;v[D>>2]=n?c:k;b=v[e+124>>2];D=l-4|0;v[D>>2]=v[D>>2]|16384;v[l+4>>2]=v[l+4>>2]|4096;v[l>>2]=v[l>>2]|n<<28|8192;b=l+(b<<2)|0;v[b+4>>2]=v[b+4>>2]|4;v[b+12>>2]=v[b+12>>2]|1;v[b+8>>2]=v[b+8>>2]|n<<18|2}v[l>>2]=v[l>>2]|1073741824}f=f+4|0;b=l+4|0;d=d+1|0;if((q|0)!=(d|0)){continue}break}b=l+12|0;f=(F<<2)+f|0;h=h+4|0;d=v[e+128>>2];if(h>>>0<(d&-4)>>>0){continue}break}}if(!q|d>>>0<=h>>>0){break $a}m=0;i=0-k|0;l=d;while(1){tb:{if((h|0)==(l|0)){l=h;break tb}n=b-4|0;g=v[b>>2];r=0;while(1){l=B(r,3);c=g>>>l|0;if(!(c&2097168|!(c&495))){d=v[e>>2];c=v[e+8>>2];ub:{if(c){c=c-1|0;break ub}F=(d|0)!=255;c=v[e+16>>2];d=w[c|0];vb:{if(!F){if(d>>>0>=144){d=255;v[e>>2]=255;break vb}v[e>>2]=d;v[e+16>>2]=c+1;c=6;break ub}v[e>>2]=d;v[e+16>>2]=c+1}c=7}v[e+8>>2]=c;wb:{if(!(d>>>c&1)){break wb}F=(B(q,r)<<2)+f|0;o=c-1|0;xb:{if(c){break xb}D=(d|0)!=255;c=v[e+16>>2];d=w[c|0];yb:{if(!D){if(d>>>0>=144){d=255;v[e>>2]=255;break yb}v[e>>2]=d;v[e+16>>2]=c+1;o=6;break xb}v[e>>2]=d;v[e+16>>2]=c+1}o=7}c=o;v[e+8>>2]=c;c=d>>>c&1;v[F>>2]=c?i:k;F=v[e+124>>2];v[n>>2]=v[n>>2]|32<<l;v[b>>2]=v[b>>2]|(c<<19|16)<<l;v[b+4>>2]=v[b+4>>2]|8<<l;if(!(r|I)){d=(-2-F<<2)+b|0;v[d+4>>2]=v[d+4>>2]|32768;v[d>>2]=v[d>>2]|c<<31|65536;d=d-4|0;v[d>>2]=v[d>>2]|131072}if((r|0)!=3){break wb}d=(F+2<<2)+b|0;v[d+4>>2]=v[d+4>>2]|1;v[d>>2]=v[d>>2]|c<<18|2;d=d-4|0;v[d>>2]=v[d>>2]|4}g=v[b>>2]|2097152<<l;v[b>>2]=g;d=v[e+128>>2]}l=d;r=r+1|0;if(r>>>0<d-h>>>0){continue}break}}f=f+4|0;b=b+4|0;m=m+1|0;if((q|0)!=(m|0)){continue}break}break $a}F=0;zb:{Ab:{Bb:{q=v[e+124>>2];if(!((q|0)!=64|v[e+128>>2]!=64)){b=1<<N;k=b>>>1|b;q=0-k|0;d=v[e+120>>2]+268|0;i=v[e+8>>2];b=v[e+4>>2];c=v[e>>2];r=v[e+104>>2];f=v[e+116>>2];if(U&8){break Bb}while(1){g=0;while(1){h=f;l=d;d=v[d>>2];if(d){Cb:{if(d&2097168){break Cb}f=d&495;if(!f){break Cb}D=(w[f+v[e+108>>2]|0]<<2)+e|0;r=D+28|0;n=v[r>>2];f=v[n>>2];b=b-f|0;Db:{if(c>>>16>>>0<f>>>0){j=v[n+4>>2];m=D;D=b>>>0<f>>>0;v[m+28>>2]=v[n+(D?8:12)>>2];while(1){Eb:{if(i){break Eb}n=v[e+16>>2];i=n+1|0;b=w[n+1|0];if(w[n|0]==255){if(b>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Eb}v[e+16>>2]=i;c=(b<<9)+c|0;i=7;break Eb}v[e+16>>2]=i;i=8;c=(b<<8)+c|0}i=i-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=D?j:!j;break Db}c=c-(f<<16)|0;if(!(b&32768)){j=v[n+4>>2];m=D;D=b>>>0<f>>>0;v[m+28>>2]=v[n+(D?12:8)>>2];while(1){Fb:{if(i){break Fb}n=v[e+16>>2];i=n+1|0;f=w[n+1|0];if(w[n|0]==255){if(f>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Fb}v[e+16>>2]=i;c=(f<<9)+c|0;i=7;break Fb}v[e+16>>2]=i;i=8;c=(f<<8)+c|0}i=i-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=D?!j:j;break Db}f=v[n+4>>2]}if(f){D=l-4|0;m=v[l+4>>2]>>>17&4|(v[D>>2]>>>19&1|(d>>>14&16|(d>>>16&64|d&170)));j=(w[m+25824|0]<<2)+e|0;r=j+28|0;n=v[r>>2];f=v[n>>2];b=b-f|0;o=w[m+26080|0];Gb:{if(c>>>16>>>0<f>>>0){m=v[n+4>>2];p=j;j=b>>>0<f>>>0;v[p+28>>2]=v[n+(j?8:12)>>2];while(1){Hb:{if(i){break Hb}n=v[e+16>>2];i=n+1|0;b=w[n+1|0];if(w[n|0]==255){if(b>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Hb}v[e+16>>2]=i;c=(b<<9)+c|0;i=7;break Hb}v[e+16>>2]=i;i=8;c=(b<<8)+c|0}i=i-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=j?m:!m;break Gb}c=c-(f<<16)|0;if(!(b&32768)){m=v[n+4>>2];p=j;j=b>>>0<f>>>0;v[p+28>>2]=v[n+(j?12:8)>>2];while(1){Ib:{if(i){break Ib}n=v[e+16>>2];i=n+1|0;f=w[n+1|0];if(w[n|0]==255){if(f>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Ib}v[e+16>>2]=i;c=(f<<9)+c|0;i=7;break Ib}v[e+16>>2]=i;i=8;c=(f<<8)+c|0}i=i-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=j?!m:m;break Gb}f=v[n+4>>2]}f=f^o;v[h>>2]=f?q:k;v[D>>2]=v[D>>2]|32;v[l+4>>2]=v[l+4>>2]|8;n=l-268|0;v[n>>2]=v[n>>2]|131072;n=l-260|0;v[n>>2]=v[n>>2]|32768;n=l-264|0;v[n>>2]=v[n>>2]|f<<31|65536;d=f<<19|d|16}d=d|2097152}if(!(!(d&3960)|d&16777344)){m=d>>>3|0;D=(w[v[e+108>>2]+(m&495)|0]<<2)+e|0;r=D+28|0;n=v[r>>2];f=v[n>>2];b=b-f|0;Jb:{if(c>>>16>>>0<f>>>0){j=v[n+4>>2];o=D;D=b>>>0<f>>>0;v[o+28>>2]=v[n+(D?8:12)>>2];while(1){Kb:{if(i){break Kb}n=v[e+16>>2];i=n+1|0;b=w[n+1|0];if(w[n|0]==255){if(b>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Kb}v[e+16>>2]=i;c=(b<<9)+c|0;i=7;break Kb}v[e+16>>2]=i;i=8;c=(b<<8)+c|0}i=i-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=D?j:!j;break Jb}c=c-(f<<16)|0;if(!(b&32768)){j=v[n+4>>2];o=D;D=b>>>0<f>>>0;v[o+28>>2]=v[n+(D?12:8)>>2];while(1){Lb:{if(i){break Lb}n=v[e+16>>2];i=n+1|0;f=w[n+1|0];if(w[n|0]==255){if(f>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Lb}v[e+16>>2]=i;c=(f<<9)+c|0;i=7;break Lb}v[e+16>>2]=i;i=8;c=(f<<8)+c|0}i=i-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=D?!j:j;break Jb}f=v[n+4>>2]}if(f){D=l-4|0;m=v[l+4>>2]>>>20&4|(v[D>>2]>>>22&1|(d>>>15&16|(d>>>19&64|m&170)));j=(w[m+25824|0]<<2)+e|0;r=j+28|0;n=v[r>>2];f=v[n>>2];b=b-f|0;o=w[m+26080|0];Mb:{if(c>>>16>>>0<f>>>0){m=v[n+4>>2];p=j;j=b>>>0<f>>>0;v[p+28>>2]=v[n+(j?8:12)>>2];while(1){Nb:{if(i){break Nb}n=v[e+16>>2];i=n+1|0;b=w[n+1|0];if(w[n|0]==255){if(b>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Nb}v[e+16>>2]=i;c=(b<<9)+c|0;i=7;break Nb}v[e+16>>2]=i;i=8;c=(b<<8)+c|0}i=i-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=j?m:!m;break Mb}c=c-(f<<16)|0;if(!(b&32768)){m=v[n+4>>2];p=j;j=b>>>0<f>>>0;v[p+28>>2]=v[n+(j?12:8)>>2];while(1){Ob:{if(i){break Ob}n=v[e+16>>2];i=n+1|0;f=w[n+1|0];if(w[n|0]==255){if(f>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Ob}v[e+16>>2]=i;c=(f<<9)+c|0;i=7;break Ob}v[e+16>>2]=i;i=8;c=(f<<8)+c|0}i=i-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=j?!m:m;break Mb}f=v[n+4>>2]}f=f^o;v[h+256>>2]=f?q:k;v[D>>2]=v[D>>2]|256;v[l+4>>2]=v[l+4>>2]|64;d=f<<22|d|128}d=d|16777216}if(!(!(d&31680)|d&134218752)){m=d>>>6|0;D=(w[v[e+108>>2]+(m&495)|0]<<2)+e|0;r=D+28|0;n=v[r>>2];f=v[n>>2];b=b-f|0;Pb:{if(c>>>16>>>0<f>>>0){j=v[n+4>>2];o=D;D=b>>>0<f>>>0;v[o+28>>2]=v[n+(D?8:12)>>2];while(1){Qb:{if(i){break Qb}n=v[e+16>>2];i=n+1|0;b=w[n+1|0];if(w[n|0]==255){if(b>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Qb}v[e+16>>2]=i;c=(b<<9)+c|0;i=7;break Qb}v[e+16>>2]=i;i=8;c=(b<<8)+c|0}i=i-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=D?j:!j;break Pb}c=c-(f<<16)|0;if(!(b&32768)){j=v[n+4>>2];o=D;D=b>>>0<f>>>0;v[o+28>>2]=v[n+(D?12:8)>>2];while(1){Rb:{if(i){break Rb}n=v[e+16>>2];i=n+1|0;f=w[n+1|0];if(w[n|0]==255){if(f>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Rb}v[e+16>>2]=i;c=(f<<9)+c|0;i=7;break Rb}v[e+16>>2]=i;i=8;c=(f<<8)+c|0}i=i-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=D?!j:j;break Pb}f=v[n+4>>2]}if(f){D=l-4|0;m=v[l+4>>2]>>>23&4|(v[D>>2]>>>25&1|(d>>>18&16|(d>>>22&64|m&170)));j=(w[m+25824|0]<<2)+e|0;r=j+28|0;n=v[r>>2];f=v[n>>2];b=b-f|0;o=w[m+26080|0];Sb:{if(c>>>16>>>0<f>>>0){m=v[n+4>>2];p=j;j=b>>>0<f>>>0;v[p+28>>2]=v[n+(j?8:12)>>2];while(1){Tb:{if(i){break Tb}n=v[e+16>>2];i=n+1|0;b=w[n+1|0];if(w[n|0]==255){if(b>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Tb}v[e+16>>2]=i;c=(b<<9)+c|0;i=7;break Tb}v[e+16>>2]=i;i=8;c=(b<<8)+c|0}i=i-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=j?m:!m;break Sb}c=c-(f<<16)|0;if(!(b&32768)){m=v[n+4>>2];p=j;j=b>>>0<f>>>0;v[p+28>>2]=v[n+(j?12:8)>>2];while(1){Ub:{if(i){break Ub}n=v[e+16>>2];i=n+1|0;f=w[n+1|0];if(w[n|0]==255){if(f>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Ub}v[e+16>>2]=i;c=(f<<9)+c|0;i=7;break Ub}v[e+16>>2]=i;i=8;c=(f<<8)+c|0}i=i-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=j?!m:m;break Sb}f=v[n+4>>2]}f=f^o;v[h+512>>2]=f?q:k;v[D>>2]=v[D>>2]|2048;v[l+4>>2]=v[l+4>>2]|512;d=f<<25|d|1024}d=d|134217728}if(!(!(d&253440)|d&1073750016)){m=d>>>9|0;D=(w[v[e+108>>2]+(m&495)|0]<<2)+e|0;r=D+28|0;n=v[r>>2];f=v[n>>2];b=b-f|0;Vb:{if(c>>>16>>>0<f>>>0){j=v[n+4>>2];o=D;D=b>>>0<f>>>0;v[o+28>>2]=v[n+(D?8:12)>>2];while(1){Wb:{if(i){break Wb}n=v[e+16>>2];i=n+1|0;b=w[n+1|0];if(w[n|0]==255){if(b>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Wb}v[e+16>>2]=i;c=(b<<9)+c|0;i=7;break Wb}v[e+16>>2]=i;i=8;c=(b<<8)+c|0}i=i-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=D?j:!j;break Vb}c=c-(f<<16)|0;if(!(b&32768)){j=v[n+4>>2];o=D;D=b>>>0<f>>>0;v[o+28>>2]=v[n+(D?12:8)>>2];while(1){Xb:{if(i){break Xb}n=v[e+16>>2];i=n+1|0;f=w[n+1|0];if(w[n|0]==255){if(f>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Xb}v[e+16>>2]=i;c=(f<<9)+c|0;i=7;break Xb}v[e+16>>2]=i;i=8;c=(f<<8)+c|0}i=i-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=D?!j:j;break Vb}f=v[n+4>>2]}if(f){D=l-4|0;m=v[l+4>>2]>>>26&4|(v[D>>2]>>>28&1|(d>>>21&16|(d>>>25&64|m&170)));j=(w[m+25824|0]<<2)+e|0;r=j+28|0;n=v[r>>2];f=v[n>>2];b=b-f|0;o=w[m+26080|0];Yb:{if(c>>>16>>>0<f>>>0){m=v[n+4>>2];p=j;j=b>>>0<f>>>0;v[p+28>>2]=v[n+(j?8:12)>>2];while(1){Zb:{if(i){break Zb}n=v[e+16>>2];i=n+1|0;b=w[n+1|0];if(w[n|0]==255){if(b>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break Zb}v[e+16>>2]=i;c=(b<<9)+c|0;i=7;break Zb}v[e+16>>2]=i;i=8;c=(b<<8)+c|0}i=i-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=j?m:!m;break Yb}c=c-(f<<16)|0;if(!(b&32768)){m=v[n+4>>2];p=j;j=b>>>0<f>>>0;v[p+28>>2]=v[n+(j?12:8)>>2];while(1){_b:{if(i){break _b}n=v[e+16>>2];i=n+1|0;f=w[n+1|0];if(w[n|0]==255){if(f>>>0>=144){v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8;break _b}v[e+16>>2]=i;c=(f<<9)+c|0;i=7;break _b}v[e+16>>2]=i;i=8;c=(f<<8)+c|0}i=i-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=j?!m:m;break Yb}f=v[n+4>>2]}f=f^o;v[h+768>>2]=f?q:k;v[D>>2]=v[D>>2]|16384;v[l+4>>2]=v[l+4>>2]|4096;v[l+260>>2]=v[l+260>>2]|4;v[l+268>>2]=v[l+268>>2]|1;v[l+264>>2]=v[l+264>>2]|f<<18|2;d=f<<28|d|8192}d=d|1073741824}v[l>>2]=d}d=l+4|0;f=h+4|0;g=g+1|0;if((g|0)!=64){continue}break}d=l+12|0;f=h+772|0;l=F>>>0<60;F=F+4|0;if(l){continue}break}break Ab}b=1<<N;n=b>>>1|b;k=v[e+120>>2];l=(k+(q<<2)|0)+12|0;d=v[e+128>>2];i=v[e+8>>2];b=v[e+4>>2];c=v[e>>2];r=v[e+104>>2];f=v[e+116>>2];$b:{if(U&8){ac:{if(d>>>0<4){h=0;break ac}if(q){h=0;g=0-n|0;m=B(q,12);K=q<<3;while(1){D=0;while(1){k=l;l=v[k>>2];if(l){bc:{if(l&2097168){break bc}d=l&495;if(!d){break bc}o=(w[d+v[e+108>>2]|0]<<2)+e|0;r=o+28|0;j=v[r>>2];d=v[j>>2];b=b-d|0;cc:{if(c>>>16>>>0>=d>>>0){c=c-(d<<16)|0;p=v[j+4>>2];if(b&32768){break cc}p=v[j+4>>2];s=o;o=b>>>0<d>>>0;v[s+28>>2]=v[j+(o?12:8)>>2];while(1){dc:{if(i){break dc}i=v[e+16>>2];j=i+1|0;d=w[i+1|0];if(w[i|0]!=255){v[e+16>>2]=j;i=8;c=(d<<8)+c|0;break dc}if(d>>>0<=143){v[e+16>>2]=j;c=(d<<9)+c|0;i=7;break dc}v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8}i=i-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}p=o?!p:p;break cc}p=v[j+4>>2];s=o;o=b>>>0<d>>>0;v[s+28>>2]=v[j+(o?8:12)>>2];while(1){ec:{if(i){break ec}i=v[e+16>>2];j=i+1|0;b=w[i+1|0];if(w[i|0]!=255){v[e+16>>2]=j;i=8;c=(b<<8)+c|0;break ec}if(b>>>0<=143){v[e+16>>2]=j;c=(b<<9)+c|0;i=7;break ec}v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8}i=i-1|0;c=c<<1;d=d<<1;if(d>>>0<32768){continue}break}b=d;p=o?p:!p}if(p){o=k-4|0;G=v[k+4>>2]>>>17&4|(v[o>>2]>>>19&1|(l>>>14&16|(l>>>16&64|l&170)));p=(w[G+25824|0]<<2)+e|0;r=p+28|0;j=v[r>>2];d=v[j>>2];b=b-d|0;Q=w[G+26080|0];fc:{if(c>>>16>>>0>=d>>>0){c=c-(d<<16)|0;s=v[j+4>>2];if(b&32768){break fc}G=v[j+4>>2];s=p;p=b>>>0<d>>>0;v[s+28>>2]=v[j+(p?12:8)>>2];while(1){gc:{if(i){break gc}i=v[e+16>>2];j=i+1|0;d=w[i+1|0];if(w[i|0]!=255){v[e+16>>2]=j;i=8;c=(d<<8)+c|0;break gc}if(d>>>0<=143){v[e+16>>2]=j;c=(d<<9)+c|0;i=7;break gc}v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8}i=i-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}s=p?!G:G;break fc}G=v[j+4>>2];s=p;p=b>>>0<d>>>0;v[s+28>>2]=v[j+(p?8:12)>>2];while(1){hc:{if(i){break hc}i=v[e+16>>2];j=i+1|0;b=w[i+1|0];if(w[i|0]!=255){v[e+16>>2]=j;i=8;c=(b<<8)+c|0;break hc}if(b>>>0<=143){v[e+16>>2]=j;c=(b<<9)+c|0;i=7;break hc}v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8}i=i-1|0;c=c<<1;d=d<<1;if(d>>>0<32768){continue}break}b=d;s=p?G:!G}d=s^Q;v[f>>2]=d?g:n;v[o>>2]=v[o>>2]|32;v[k+4>>2]=v[k+4>>2]|8;l=d<<19|l|16}l=l|2097152}if(!(!(l&3960)|l&16777344)){G=l>>>3|0;o=(w[v[e+108>>2]+(G&495)|0]<<2)+e|0;r=o+28|0;j=v[r>>2];d=v[j>>2];b=b-d|0;ic:{if(c>>>16>>>0>=d>>>0){c=c-(d<<16)|0;p=v[j+4>>2];if(b&32768){break ic}p=v[j+4>>2];s=o;o=b>>>0<d>>>0;v[s+28>>2]=v[j+(o?12:8)>>2];while(1){jc:{if(i){break jc}i=v[e+16>>2];j=i+1|0;d=w[i+1|0];if(w[i|0]!=255){v[e+16>>2]=j;i=8;c=(d<<8)+c|0;break jc}if(d>>>0<=143){v[e+16>>2]=j;c=(d<<9)+c|0;i=7;break jc}v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8}i=i-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}p=o?!p:p;break ic}p=v[j+4>>2];s=o;o=b>>>0<d>>>0;v[s+28>>2]=v[j+(o?8:12)>>2];while(1){kc:{if(i){break kc}i=v[e+16>>2];j=i+1|0;b=w[i+1|0];if(w[i|0]!=255){v[e+16>>2]=j;i=8;c=(b<<8)+c|0;break kc}if(b>>>0<=143){v[e+16>>2]=j;c=(b<<9)+c|0;i=7;break kc}v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8}i=i-1|0;c=c<<1;d=d<<1;if(d>>>0<32768){continue}break}b=d;p=o?p:!p}if(p){o=k-4|0;G=v[k+4>>2]>>>20&4|(v[o>>2]>>>22&1|(l>>>15&16|(l>>>19&64|G&170)));p=(w[G+25824|0]<<2)+e|0;r=p+28|0;j=v[r>>2];d=v[j>>2];b=b-d|0;Q=w[G+26080|0];H=(q<<2)+f|0;lc:{if(c>>>16>>>0>=d>>>0){c=c-(d<<16)|0;s=v[j+4>>2];if(b&32768){break lc}G=v[j+4>>2];s=p;p=b>>>0<d>>>0;v[s+28>>2]=v[j+(p?12:8)>>2];while(1){mc:{if(i){break mc}i=v[e+16>>2];j=i+1|0;d=w[i+1|0];if(w[i|0]!=255){v[e+16>>2]=j;i=8;c=(d<<8)+c|0;break mc}if(d>>>0<=143){v[e+16>>2]=j;c=(d<<9)+c|0;i=7;break mc}v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8}i=i-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}s=p?!G:G;break lc}G=v[j+4>>2];s=p;p=b>>>0<d>>>0;v[s+28>>2]=v[j+(p?8:12)>>2];while(1){nc:{if(i){break nc}i=v[e+16>>2];j=i+1|0;b=w[i+1|0];if(w[i|0]!=255){v[e+16>>2]=j;i=8;c=(b<<8)+c|0;break nc}if(b>>>0<=143){v[e+16>>2]=j;c=(b<<9)+c|0;i=7;break nc}v[e+12>>2]=v[e+12>>2]+1;c=c+65280|0;i=8}i=i-1|0;c=c<<1;d=d<<1;if(d>>>0<32768){continue}break}b=d;s=p?G:!G}d=s^Q;v[H>>2]=d?g:n;v[o>>2]=v[o>>2]|256;v[k+4>>2]=v[k+4>>2]|64;l=d<<22|l|128}l=l|16777216}if(!(!(l&31680)|l&134218752)){G=l>>>6|0;o=(w[v[e+108>>2]+(G&495)|0]<<2)+e|0;r=o+28|0;j=v[r>>2];d=v[j>>2];b=b-d|0;oc:{if(c>>>16>>>0>=d>>>0){c=c-(d<<16)|0;p=v[j+4>>2];if(b&32768){break oc}p=v[j+4>>2];s=o;o=b>>>0<d>>>0;v[s+28>>2]=v[j+(o?12:8)>>2];whil