-
Notifications
You must be signed in to change notification settings - Fork 0
/
minisat.js
170 lines (167 loc) · 203 KB
/
minisat.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
// Some of the code below is compiled from minisat, which is available under the following license:
/*
MiniSat -- Copyright (c) 2003-2006, Niklas Een, Niklas Sorensson
Copyright (c) 2007-2010 Niklas Sorensson
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
function e(a){throw a;}var j=void 0,l=!0,m=null,n=!1;function r(){return function(){}}var t;t||(t=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var aa={},u;for(u in t)t.hasOwnProperty(u)&&(aa[u]=t[u]);var v="object"===typeof process&&"function"===typeof require,ba="object"===typeof window,ca="function"===typeof importScripts,da=!ba&&!v&&!ca;
if(v){t.print=function(a){process.stdout.write(a+"\n")};t.printErr=function(a){process.stderr.write(a+"\n")};var ea=require("fs"),fa=require("path");t.read=function(a,b){var a=fa.normalize(a),c=ea.readFileSync(a);!c&&a!=fa.resolve(a)&&(a=path.join(__dirname,"..","src",a),c=ea.readFileSync(a));c&&!b&&(c=c.toString());return c};t.readBinary=function(a){return t.read(a,l)};t.load=function(a){ga(read(a))};t.arguments=process.argv.slice(2);module.exports=t}else da?(t.print=print,"undefined"!=typeof printErr&&
(t.printErr=printErr),t.read="undefined"!=typeof read?read:function(){e("no read() available (jsc?)")},t.readBinary=function(a){return read(a,"binary")},"undefined"!=typeof scriptArgs?t.arguments=scriptArgs:"undefined"!=typeof arguments&&(t.arguments=arguments),this.Module=t):ba||ca?(t.read=function(a){var b=new XMLHttpRequest;b.open("GET",a,n);b.send(m);return b.responseText},"undefined"!=typeof arguments&&(t.arguments=arguments),"undefined"!==typeof console?(t.print=function(a){console.log(a)},
t.printErr=function(a){console.log(a)}):t.print=r(),ba?this.Module=t:t.load=importScripts):e("Unknown runtime environment. Where are we?");function ga(a){eval.call(m,a)}"undefined"==!t.load&&t.read&&(t.load=function(a){ga(t.read(a))});t.print||(t.print=r());t.printErr||(t.printErr=t.print);t.arguments||(t.arguments=[]);t.print=t.print;t.T=t.printErr;t.preRun=[];t.postRun=[];for(u in aa)aa.hasOwnProperty(u)&&(t[u]=aa[u]);function ha(){return w}function ia(a){w=a}
function ja(a){switch(a){case "i1":case "i8":return 1;case "i16":return 2;case "i32":return 4;case "i64":return 8;case "float":return 4;case "double":return 8;default:return"*"===a[a.length-1]?ka:"i"===a[0]?(a=parseInt(a.substr(1)),y(0===a%8),a/8):0}}function la(a,b,c){c&&c.length?(c.splice||(c=Array.prototype.slice.call(c)),c.splice(0,0,b),t["dynCall_"+a].apply(m,c)):t["dynCall_"+a].call(m,b)}var ma;
function na(){var a=[],b=0;this.Ca=function(c){c&=255;if(0==a.length){if(0==(c&128))return String.fromCharCode(c);a.push(c);b=192==(c&224)?1:224==(c&240)?2:3;return""}if(b&&(a.push(c),b--,0<b))return"";var c=a[0],d=a[1],f=a[2],g=a[3];2==a.length?c=String.fromCharCode((c&31)<<6|d&63):3==a.length?c=String.fromCharCode((c&15)<<12|(d&63)<<6|f&63):(c=(c&7)<<18|(d&63)<<12|(f&63)<<6|g&63,c=String.fromCharCode(Math.floor((c-65536)/1024)+55296,(c-65536)%1024+56320));a.length=0;return c};this.Jb=function(a){for(var a=
unescape(encodeURIComponent(a)),b=[],f=0;f<a.length;f++)b.push(a.charCodeAt(f));return b}}function oa(a){var b=w;w=w+a|0;w=w+7&-8;return b}function pa(a){var b=z;z=z+a|0;z=z+7&-8;return b}function qa(a){var b=D;D=D+a|0;D=D+7&-8;D>=ra&&E("Cannot enlarge memory arrays in asm.js. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+ra+", or (2) set Module.TOTAL_MEMORY before the program runs.");return b}function sa(a,b){return Math.ceil(a/(b?b:8))*(b?b:8)}
var ka=4,ta={},ua=n,va;function y(a,b){a||E("Assertion failed: "+b)}t.ccall=function(a,b,c,d){return wa(xa(a),b,c,d)};function xa(a){try{var b=t["_"+a];b||(b=eval("_"+a))}catch(c){}y(b,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return b}
function wa(a,b,c,d){function f(a,b){if("string"==b){if(a===m||a===j||0===a)return 0;a=G(a);b="array"}if("array"==b){g||(g=ha());var c=oa(a.length);ya(a,c);return c}return a}var g=0,h=0,d=d?d.map(function(a){return f(a,c[h++])}):[];a=a.apply(m,d);"string"==b?b=za(a):(y("array"!=b),b=a);g&&ia(g);return b}t.cwrap=function(a,b,c){var d=xa(a);return function(){return wa(d,b,c,Array.prototype.slice.call(arguments))}};
function Aa(a,b,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":I[a]=b;break;case "i8":I[a]=b;break;case "i16":Ba[a>>1]=b;break;case "i32":J[a>>2]=b;break;case "i64":va=[b>>>0,(tempDouble=b,1<=+Ca(tempDouble)?0<tempDouble?(Da(+Ea(tempDouble/4294967296),4294967295)|0)>>>0:~~+Fa((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)];J[a>>2]=va[0];J[a+4>>2]=va[1];break;case "float":Ga[a>>2]=b;break;case "double":Ha[a>>3]=b;break;default:E("invalid type for setValue: "+c)}}
t.setValue=Aa;t.getValue=function(a,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":return I[a];case "i8":return I[a];case "i16":return Ba[a>>1];case "i32":return J[a>>2];case "i64":return J[a>>2];case "float":return Ga[a>>2];case "double":return Ha[a>>3];default:E("invalid type for setValue: "+b)}return m};var Ia=1,K=2,Ja=4;t.ALLOC_NORMAL=0;t.ALLOC_STACK=Ia;t.ALLOC_STATIC=K;t.ALLOC_DYNAMIC=3;t.ALLOC_NONE=Ja;
function L(a,b,c,d){var f,g;"number"===typeof a?(f=l,g=a):(f=n,g=a.length);var h="string"===typeof b?b:m,c=c==Ja?d:[Ka,oa,pa,qa][c===j?K:c](Math.max(g,h?1:b.length));if(f){d=c;y(0==(c&3));for(a=c+(g&-4);d<a;d+=4)J[d>>2]=0;for(a=c+g;d<a;)I[d++|0]=0;return c}if("i8"===h)return a.subarray||a.slice?M.set(a,c):M.set(new Uint8Array(a),c),c;for(var d=0,i,q;d<g;){var k=a[d];"function"===typeof k&&(k=ta.Yd(k));f=h||b[d];0===f?d++:("i64"==f&&(f="i32"),Aa(c+d,k,f),q!==f&&(i=ja(f),q=f),d+=i)}return c}
t.allocate=L;function za(a,b){for(var c=n,d,f=0;;){d=M[a+f|0];if(128<=d)c=l;else if(0==d&&!b)break;f++;if(b&&f==b)break}b||(b=f);var g="";if(!c){for(;0<b;)d=String.fromCharCode.apply(String,M.subarray(a,a+Math.min(b,1024))),g=g?g+d:d,a+=1024,b-=1024;return g}c=new na;for(f=0;f<b;f++)d=M[a+f|0],g+=c.Ca(d);return g}t.Pointer_stringify=za;t.UTF16ToString=function(a){for(var b=0,c="";;){var d=Ba[a+2*b>>1];if(0==d)return c;++b;c+=String.fromCharCode(d)}};
t.stringToUTF16=function(a,b){for(var c=0;c<a.length;++c)Ba[b+2*c>>1]=a.charCodeAt(c);Ba[b+2*a.length>>1]=0};t.UTF32ToString=function(a){for(var b=0,c="";;){var d=J[a+4*b>>2];if(0==d)return c;++b;65536<=d?(d-=65536,c+=String.fromCharCode(55296|d>>10,56320|d&1023)):c+=String.fromCharCode(d)}};t.stringToUTF32=function(a,b){for(var c=0,d=0;d<a.length;++d){var f=a.charCodeAt(d);if(55296<=f&&57343>=f)var g=a.charCodeAt(++d),f=65536+((f&1023)<<10)|g&1023;J[b+4*c>>2]=f;++c}J[b+4*c>>2]=0};
function La(a){try{"number"===typeof a&&(a=za(a));if("_"!==a[0]||"_"!==a[1]||"Z"!==a[2])return a;var b=3,c={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},d=[],f=function(g,i,q){var i=i||Infinity,k="",A=[],x;if("N"!==a[b]){"K"===a[b]&&b++;var s=parseInt(a.substr(b));if(s){var F=s.toString().length;x=a.substr(b+F,s);b+=F+s}}else{b++;
"K"===a[b]&&b++;for(x=[];"E"!==a[b];)if("S"===a[b])b++,s=a.indexOf("_",b),x.push(d[a.substring(b,s)||0]||"?"),b=s+1;else{s=parseInt(a.substr(b));F=s.toString().length;if(!s||!F){b--;break}var H=a.substr(b+F,s);x.push(H);d.push(H);b+=F+s}b++;x=x.join("::");i--;if(0===i)return g?[x]:x}"I"===a[b]?(b++,s=f(l),F=f(l,1,l),k+=F[0]+" "+x+"<"+s.join(", ")+">"):k=x;a:for(;b<a.length&&0<i--;)if(x=a[b++],x in c)A.push(c[x]);else switch(x){case "P":A.push(f(l,1,l)[0]+"*");break;case "R":A.push(f(l,1,l)[0]+"&");
break;case "L":b++;s=a.indexOf("E",b)-b;A.push(a.substr(b,s));b+=s+2;break;case "A":s=parseInt(a.substr(b));b+=s.toString().length;"_"!==a[b]&&e("?");b++;A.push(f(l,1,l)[0]+" ["+s+"]");break;case "E":break a;default:k+="?"+x;break a}!q&&(1===A.length&&"void"===A[0])&&(A=[]);return g?A:k+("("+A.join(", ")+")")};return f()}catch(g){return a}}function Ma(){var a=Error().stack;return a?a.replace(/__Z[\w\d_]+/g,function(a){var c=La(a);return a===c?a:a+" ["+c+"]"}):"(no stack trace available)"}
var I,M,Ba,Na,J,Oa,Ga,Ha,Pa=0,z=0,Qa=0,w=0,Ra=0,Sa=0,D=0,ra=t.TOTAL_MEMORY||67108864;y("undefined"!==typeof Int32Array&&"undefined"!==typeof Float64Array&&!!(new Int32Array(1)).subarray&&!!(new Int32Array(1)).set,"Cannot fallback to non-typed array case: Code is too specialized");var N=new ArrayBuffer(ra);I=new Int8Array(N);Ba=new Int16Array(N);J=new Int32Array(N);M=new Uint8Array(N);Na=new Uint16Array(N);Oa=new Uint32Array(N);Ga=new Float32Array(N);Ha=new Float64Array(N);J[0]=255;
y(255===M[0]&&0===M[3],"Typed arrays 2 must be run on a little-endian system");t.HEAP=j;t.HEAP8=I;t.HEAP16=Ba;t.HEAP32=J;t.HEAPU8=M;t.HEAPU16=Na;t.HEAPU32=Oa;t.HEAPF32=Ga;t.HEAPF64=Ha;function Ta(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var c=b.D;"number"===typeof c?b.ha===j?la("v",c):la("vi",c,[b.ha]):c(b.ha===j?m:b.ha)}}}var Va=[],Wa=[],Xa=[],Ya=[],Za=[],$a=n;function ab(a){Va.unshift(a)}t.addOnPreRun=t.Od=ab;t.addOnInit=t.Ld=function(a){Wa.unshift(a)};
t.addOnPreMain=t.Nd=function(a){Xa.unshift(a)};t.addOnExit=t.Kd=function(a){Ya.unshift(a)};function bb(a){Za.unshift(a)}t.addOnPostRun=t.Md=bb;function G(a,b,c){a=(new na).Jb(a);c&&(a.length=c);b||a.push(0);return a}t.intArrayFromString=G;t.intArrayToString=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];255<d&&(d&=255);b.push(String.fromCharCode(d))}return b.join("")};t.writeStringToMemory=function(a,b,c){a=G(a,c);for(c=0;c<a.length;)I[b+c|0]=a[c],c+=1};
function ya(a,b){for(var c=0;c<a.length;c++)I[b+c|0]=a[c]}t.writeArrayToMemory=ya;t.writeAsciiToMemory=function(a,b,c){for(var d=0;d<a.length;d++)I[b+d|0]=a.charCodeAt(d);c||(I[b+a.length|0]=0)};function cb(a,b){return 0<=a?a:32>=b?2*Math.abs(1<<b-1)+a:Math.pow(2,b)+a}function db(a,b){if(0>=a)return a;var c=32>=b?Math.abs(1<<b-1):Math.pow(2,b-1);if(a>=c&&(32>=b||a>c))a=-2*c+a;return a}Math.imul||(Math.imul=function(a,b){var c=a&65535,d=b&65535;return c*d+((a>>>16)*d+c*(b>>>16)<<16)|0});Math.ae=Math.imul;
var Ca=Math.abs,Fa=Math.ceil,Ea=Math.floor,eb=Math.pow,Da=Math.min,O=0,fb=m,gb=m;function hb(){O++;t.monitorRunDependencies&&t.monitorRunDependencies(O)}t.addRunDependency=hb;function ib(){O--;t.monitorRunDependencies&&t.monitorRunDependencies(O);if(0==O&&(fb!==m&&(clearInterval(fb),fb=m),gb)){var a=gb;gb=m;a()}}t.removeRunDependency=ib;t.preloadedImages={};t.preloadedAudios={};var Pa=8,z=Pa+4528,jb;jb=jb=L([0,0,0,0,0,0,0,0],"i8",K);Wa.push({D:function(){kb()}},{D:function(){lb()}},{D:function(){mb()}});
var nb;nb=L([0,0,0,0,104,12,0,0,22,0,0,0,44,0,0,0,34,0,0,0,30,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0],"i8",K);var ob;ob=L([0,0,0,0,120,12,0,0,22,0,0,0,10,0,0,0,34,0,0,0,30,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],"i8",K);
L([61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,91,32,83,101,97,114,99,104,32,83,116,97,116,105,115,116,105,99,115,32,93,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,124,32,32,32,32,32,32,32,32,32,32,32,124,32,32,32,32,86,97,114,115,32,32,67,108,97,117,115,101,115,32,76,105,116,101,114,97,108,115,32,124,32,32,32,32,76,105,109,105,116,32,32,67,108,97,117,115,101,115,32,76,105,116,47,67,108,32,124,32,32,32,32,32,32,
32,32,32,32,124,0,124,32,67,111,110,102,108,105,99,116,115,32,124,32,32,32,32,32,32,32,32,32,32,79,82,73,71,73,78,65,76,32,32,32,32,32,32,32,32,32,124,32,32,32,32,32,32,32,32,32,32,76,69,65,82,78,84,32,32,32,32,32,32,32,32,32,32,124,32,80,114,111,103,114,101,115,115,32,124,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
61,61,61,61,0,0,0,0,0,0,0,36,64,0,0,0,0,0,0,89,64,0,0,0,0,0,136,195,64,0,0,0,0,132,215,151,65,0,128,224,55,121,195,65,67,23,110,5,181,181,184,147,70,245,249,63,233,3,79,56,77,50,29,48,249,72,119,130,90,60,191,115,127,221,79,21,117,101,108,105,109,0,0,0,0,114,110,100,45,102,114,101,113,0,0,0,0,0,0,0,0,97,115,121,109,109,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,37,99,37,52,46,50,103,32,46,46,32,37,52,46,50,103,37,99,32,40,100,101,102,97,117,108,116,58,32,37,103,41,10,0,0,0,0,0,0,0,67,
79,82,69,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,67,104,101,99,107,32,105,102,32,97,32,99,108,97,117,115,101,32,105,115,32,97,108,114,101,97,100,121,32,105,109,112,108,105,101,100,46,32,40,99,111,115,116,108,121,41,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,111,112,
116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,61,0,0,0,0,0,0,0,84,104,101,32,99,108,97,117,115,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,114,99,104,101,99,107,0,0,10,32,32,32,32,32,32,32,32,37,115,10,0,0,0,0,93,32,40,100,101,102,97,117,108,116,58,32,37,100,41,10,0,0,0,0,0,0,0,0,105,109,97,120,0,0,0,0,32,46,46,32,0,0,0,0,37,52,100,0,0,0,0,0,105,109,105,110,0,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,91,0,0,0,0,0,0,0,99,
108,97,45,100,101,99,97,121,0,0,0,0,0,0,0,110,111,45,0,0,0,0,0,111,102,102,0,0,0,0,0,111,110,0,0,0,0,0,0,40,100,101,102,97,117,108,116,58,32,37,115,41,10,0,0,32,32,45,37,115,44,32,45,110,111,45,37,115,0,0,0,83,104,114,105,110,107,32,99,108,97,117,115,101,115,32,98,121,32,97,115,121,109,109,101,116,114,105,99,32,98,114,97,110,99,104,105,110,103,46,0,80,65,82,83,69,32,69,82,82,79,82,33,32,85,110,101,120,112,101,99,116,101,100,32,99,104,97,114,58,32,37,99,10,0,0,0,0,0,0,0,84,104,101,32,118,97,114,105,
97,98,108,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,0,0,0,0,0,0,73,78,68,69,84,0,0,0,32,37,115,37,100,0,0,0,45,0,0,0,0,0,0,0,60,98,111,111,108,62,0,0,83,65,84,0,0,0,0,0,83,73,77,80,0,0,0,0,85,78,83,65,84,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,124,32,37,57,100,32,124,32,37,55,100,32,37,56,100,32,37,56,100,32,124,32,37,56,100,32,37,56,100,32,37,54,46,48,102,32,124,32,37,54,46,51,102,32,37,37,32,124,10,0,0,0,0,0,0,0,77,105,110,105,109,117,
109,32,108,101,97,114,110,116,32,99,108,97,117,115,101,32,108,105,109,105,116,0,0,0,0,0,109,105,110,45,108,101,97,114,110,116,115,0,0,0,0,0,60,105,110,116,51,50,62,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,114,105,103,103,101,114,101,100,0,0,103,99,45,102,114,97,99,0,82,101,115,116,97,
114,116,32,105,110,116,101,114,118,97,108,32,105,110,99,114,101,97,115,101,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,114,105,110,99,0,0,0,0,84,104,101,32,98,97,115,101,32,114,101,115,116,97,114,116,32,105,110,116,101,114,118,97,108,0,0,0,0,0,0,0,60,100,111,117,98,108,101,62,0,0,0,0,0,0,0,0,114,102,105,114,115,116,0,0,124,32,32,71,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,58,32,32,32,37,49,50,100,32,98,121,116,101,115,32,61,62,32,37,49,50,100,32,98,121,116,101,115,32,32,32,32,32,
32,32,32,32,32,32,32,32,124,10,0,0,0,0,0,0,0,0,124,32,32,69,108,105,109,105,110,97,116,101,100,32,99,108,97,117,115,101,115,58,32,32,32,32,32,37,49,48,46,50,102,32,77,98,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,101,108,105,109,105,110,97,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,13,0,85,115,101,32,116,104,101,32,76,117,98,121,32,114,101,115,116,97,114,116,32,115,101,113,117,101,110,99,101,0,0,0,115,
117,98,115,117,109,112,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,32,40,37,49,48,100,32,115,117,98,115,117,109,101,100,44,32,37,49,48,100,32,100,101,108,101,116,101,100,32,108,105,116,101,114,97,108,115,41,13,0,0,108,117,98,121,0,0,0,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,
114,105,103,103,101,114,101,100,32,100,117,114,105,110,103,32,115,105,109,112,108,105,102,105,99,97,116,105,111,110,46,0,0,0,82,97,110,100,111,109,105,122,101,32,116,104,101,32,105,110,105,116,105,97,108,32,97,99,116,105,118,105,116,121,0,0,115,105,109,112,45,103,99,45,102,114,97,99,0,0,0,0,114,110,100,45,105,110,105,116,0,0,0,0,0,0,0,0,118,97,114,45,100,101,99,97,121,0,0,0,0,0,0,0,68,111,32,110,111,116,32,99,104,101,99,107,32,105,102,32,115,117,98,115,117,109,112,116,105,111,110,32,97,103,97,105,
110,115,116,32,97,32,99,108,97,117,115,101,32,108,97,114,103,101,114,32,116,104,97,110,32,116,104,105,115,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,46,0,0,0,0,0,0,0,67,111,110,116,114,111,108,115,32,116,104,101,32,108,101,118,101,108,32,111,102,32,112,104,97,115,101,32,115,97,118,105,110,103,32,40,48,61,110,111,110,101,44,32,49,61,108,105,109,105,116,101,100,44,32,50,61,102,117,108,108,41,0,0,115,117,98,45,108,105,109,0,112,104,97,115,101,45,115,97,118,105,110,103,0,0,0,
0,86,97,114,105,97,98,108,101,115,32,97,114,101,32,110,111,116,32,101,108,105,109,105,110,97,116,101,100,32,105,102,32,105,116,32,112,114,111,100,117,99,101,115,32,97,32,114,101,115,111,108,118,101,110,116,32,119,105,116,104,32,97,32,108,101,110,103,116,104,32,97,98,111,118,101,32,116,104,105,115,32,108,105,109,105,116,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,0,0,0,0,0,0,0,67,111,110,116,114,111,108,115,32,99,111,110,102,108,105,99,116,32,99,108,97,117,115,101,32,109,105,
110,105,109,105,122,97,116,105,111,110,32,40,48,61,110,111,110,101,44,32,49,61,98,97,115,105,99,44,32,50,61,100,101,101,112,41,0,99,108,45,108,105,109,0,0,99,99,109,105,110,45,109,111,100,101,0,0,0,0,0,0,65,108,108,111,119,32,97,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,32,115,116,101,112,32,116,111,32,103,114,111,119,32,98,121,32,97,32,110,117,109,98,101,114,32,111,102,32,99,108,97,117,115,101,115,46,0,0,0,0,0,0,0,85,115,101,100,32,98,121,32,116,104,101,32,114,
97,110,100,111,109,32,118,97,114,105,97,98,108,101,32,115,101,108,101,99,116,105,111,110,0,0,0,103,114,111,119,0,0,0,0,114,110,100,45,115,101,101,100,0,0,0,0,0,0,0,0,80,101,114,102,111,114,109,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,46,0,0,0,84,104,101,32,102,114,101,113,117,101,110,99,121,32,119,105,116,104,32,119,104,105,99,104,32,116,104,101,32,100,101,99,105,115,105,111,110,32,104,101,117,114,105,115,116,105,99,32,116,114,105,101,115,32,116,111,32,99,104,
111,111,115,101,32,97,32,114,97,110,100,111,109,32,118,97,114,105,97,98,108,101,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,26,0,0,0,6,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,12,0,0,42,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,12,0,0,14,0,0,0,28,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,20,0,0,0,24,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,12,0,0,38,0,0,0,40,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,12,0,0,18,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,88,12,0,0,8,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,83,116,57,116,121,112,101,95,105,110,102,111,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,78,55,77,105,110,105,115,97,116,57,73,110,116,79,112,116,105,111,110,69,0,0,0,0,78,55,77,105,110,105,115,97,116,54,83,111,108,118,101,114,69,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,54,79,112,116,105,111,110,69,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,50,48,79,117,116,79,
102,77,101,109,111,114,121,69,120,99,101,112,116,105,111,110,69,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,49,50,68,111,117,98,108,101,79,112,116,105,111,110,69,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,49,48,83,105,109,112,83,111,108,118,101,114,69,0,0,78,55,77,105,110,105,115,97,116,49,48,66,111,111,108,79,112,116,105,111,110,69,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,78,49,48,95,95,99,120,
120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,0,0,0,0,0,136,10,0,0,0,0,0,0,152,10,0,0,0,0,0,0,168,10,0,0,248,11,0,0,0,0,0,0,0,0,0,0,184,10,0,0,40,12,0,0,0,0,0,0,0,0,0,0,208,10,0,0,0,0,0,0,232,10,0,0,0,0,0,0,0,11,0,0,0,0,0,0,40,11,0,0,40,12,0,0,0,0,0,0,0,0,0,0,72,11,0,0,32,12,0,0,0,0,0,0,0,0,0,0,96,11,0,0,40,12,0,0,
0,0,0,0,0,0,0,0,120,11,0,0,120,12,0,0,0,0,0,0,0,0,0,0,160,11,0,0,136,12,0,0,0,0,0,0,0,0,0,0,200,11,0,0,240,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",Ja,8);var pb=sa(L(12,"i8",K),8);y(0==pb%8);
var Q={Z:1,fa:2,wd:3,uc:4,P:5,Ja:6,Rb:7,Rc:8,ea:9,ec:10,Y:11,Gd:11,qb:12,jb:13,pc:14,cd:15,cc:16,Ga:17,Hd:18,Ha:19,dd:20,ta:21,u:22,Mc:23,pb:24,hd:25,Dd:26,qc:27,Zc:28,wa:29,td:30,Fc:31,nd:32,mc:33,Ka:34,Vc:42,sc:43,fc:44,wc:45,xc:46,yc:47,Ec:48,Ed:49,Pc:50,vc:51,kc:35,Sc:37,Wb:52,Zb:53,Id:54,Nc:55,$b:56,ac:57,lc:35,bc:59,ad:60,Qc:61,Ad:62,$c:63,Wc:64,Xc:65,sd:66,Tc:67,Ub:68,xd:69,gc:70,od:71,Hc:72,nc:73,Yb:74,jd:76,Xb:77,rd:78,zc:79,Ac:80,Dc:81,Cc:82,Bc:83,bd:38,Ia:39,Ic:36,ua:40,va:95,md:96,jc:104,
Oc:105,Vb:97,qd:91,fd:88,Yc:92,ud:108,ic:111,Sb:98,hc:103,Lc:101,Jc:100,Bd:110,rc:112,mb:113,nb:115,kb:114,lb:89,Gc:90,pd:93,vd:94,Tb:99,Kc:102,ob:106,ga:107,Cd:109,Fd:87,oc:122,yd:116,gd:95,Uc:123,tc:84,kd:75,dc:125,ed:131,ld:130,zd:86},qb={"0":"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",
12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",
34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",
53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",
74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",
90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",
107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"},rb=0;function R(a){return J[rb>>2]=a}
function sb(a,b){for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];"."===f?a.splice(d,1):".."===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c--;c)a.unshift("..");return a}function S(a){var b="/"===a.charAt(0),c="/"===a.substr(-1),a=sb(a.split("/").filter(function(a){return!!a}),!b).join("/");!a&&!b&&(a=".");a&&c&&(a+="/");return(b?"/":"")+a}function tb(a){if("/"===a)return"/";var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)}
function ub(){for(var a="",b=n,c=arguments.length-1;-1<=c&&!b;c--){var d=0<=c?arguments[c]:"/";"string"!==typeof d&&e(new TypeError("Arguments to path.resolve must be strings"));d&&(a=d+"/"+a,b="/"===d.charAt(0))}a=sb(a.split("/").filter(function(a){return!!a}),!b).join("/");return(b?"/":"")+a||"."}var vb=[];function wb(a,b){vb[a]={input:[],R:[],ba:b};xb[a]={k:yb}}
var yb={open:function(a){var b=vb[a.e.pa];b||e(new T(Q.Ha));a.B=b;a.seekable=n},close:function(a){a.B.R.length&&a.B.ba.oa(a.B,10)},O:function(a,b,c,d){(!a.B||!a.B.ba.Va)&&e(new T(Q.Ja));for(var f=0,g=0;g<d;g++){var h;try{h=a.B.ba.Va(a.B)}catch(i){e(new T(Q.P))}h===j&&0===f&&e(new T(Q.Y));if(h===m||h===j)break;f++;b[c+g]=h}f&&(a.e.timestamp=Date.now());return f},write:function(a,b,c,d){(!a.B||!a.B.ba.oa)&&e(new T(Q.Ja));for(var f=0;f<d;f++)try{a.B.ba.oa(a.B,b[c+f])}catch(g){e(new T(Q.P))}d&&(a.e.timestamp=
Date.now());return f}},U={F:m,ib:1,sa:2,hb:3,K:function(){return U.createNode(m,"/",16895,0)},createNode:function(a,b,c,d){(24576===(c&61440)||4096===(c&61440))&&e(new T(Q.Z));U.F||(U.F={dir:{e:{N:U.n.N,A:U.n.A,Aa:U.n.Aa,S:U.n.S,S:U.n.S,rename:U.n.rename,gb:U.n.gb,eb:U.n.eb,ab:U.n.ab,ra:U.n.ra},G:{Q:U.k.Q}},file:{e:{N:U.n.N,A:U.n.A},G:{Q:U.k.Q,O:U.k.O,write:U.k.write,Na:U.k.Na,Ya:U.k.Ya}},link:{e:{N:U.n.N,A:U.n.A,qa:U.n.qa},G:{}},Qa:{e:{N:U.n.N,A:U.n.A},G:zb}});c=Ab(a,b,c,d);16384===(c.mode&61440)?
(c.n=U.F.dir.e,c.k=U.F.dir.G,c.o={}):32768===(c.mode&61440)?(c.n=U.F.file.e,c.k=U.F.file.G,c.o=[],c.ja=U.sa):40960===(c.mode&61440)?(c.n=U.F.link.e,c.k=U.F.link.G):8192===(c.mode&61440)&&(c.n=U.F.Qa.e,c.k=U.F.Qa.G);c.timestamp=Date.now();a&&(a.o[b]=c);return c},ya:function(a){a.ja!==U.sa&&(a.o=Array.prototype.slice.call(a.o),a.ja=U.sa)},n:{N:function(a){var b={};b.Wd=8192===(a.mode&61440)?a.id:1;b.be=a.id;b.mode=a.mode;b.ge=1;b.uid=0;b.$d=0;b.pa=a.pa;b.size=16384===(a.mode&61440)?4096:32768===(a.mode&
61440)?a.o.length:40960===(a.mode&61440)?a.link.length:0;b.Qd=new Date(a.timestamp);b.fe=new Date(a.timestamp);b.Vd=new Date(a.timestamp);b.ub=4096;b.Sd=Math.ceil(b.size/b.ub);return b},A:function(a,b){b.mode!==j&&(a.mode=b.mode);b.timestamp!==j&&(a.timestamp=b.timestamp);if(b.size!==j){U.ya(a);var c=a.o;if(b.size<c.length)c.length=b.size;else for(;b.size>c.length;)c.push(0)}},Aa:function(){e(Bb[Q.fa])},S:function(a,b,c,d){return U.createNode(a,b,c,d)},rename:function(a,b,c){if(16384===(a.mode&61440)){var d;
try{d=Cb(b,c)}catch(f){}if(d)for(var g in d.o)e(new T(Q.Ia))}delete a.parent.o[a.name];a.name=c;b.o[c]=a;a.parent=b},gb:function(a,b){delete a.o[b]},eb:function(a,b){var c=Cb(a,b),d;for(d in c.o)e(new T(Q.Ia));delete a.o[b]},ab:function(a){var b=[".",".."],c;for(c in a.o)a.o.hasOwnProperty(c)&&b.push(c);return b},ra:function(a,b,c){a=U.createNode(a,b,41471,0);a.link=c;return a},qa:function(a){40960!==(a.mode&61440)&&e(new T(Q.u));return a.link}},k:{O:function(a,b,c,d,f){a=a.e.o;if(f>=a.length)return 0;
d=Math.min(a.length-f,d);y(0<=d);if(8<d&&a.subarray)b.set(a.subarray(f,f+d),c);else for(var g=0;g<d;g++)b[c+g]=a[f+g];return d},write:function(a,b,c,d,f,g){var h=a.e;h.timestamp=Date.now();a=h.o;if(d&&0===a.length&&0===f&&b.subarray)return g&&b.buffer===I.buffer&&0===c?(h.o=b,h.ja=U.ib):(h.o=new Uint8Array(b.subarray(c,c+d)),h.ja=U.hb),d;U.ya(h);for(a=h.o;a.length<f;)a.push(0);for(g=0;g<d;g++)a[f+g]=b[c+g];return d},Q:function(a,b,c){1===c?b+=a.position:2===c&&32768===(a.e.mode&61440)&&(b+=a.e.o.length);
0>b&&e(new T(Q.u));a.Ob=[];return a.position=b},Na:function(a,b,c){U.ya(a.e);a=a.e.o;for(b+=c;b>a.length;)a.push(0)},Ya:function(a,b,c,d,f,g,h){32768!==(a.e.mode&61440)&&e(new T(Q.Ha));a=a.e.o;if(!(h&2)&&(a.buffer===b||a.buffer===b.buffer))f=n,d=a.byteOffset;else{if(0<f||f+d<a.length)a=a.subarray?a.subarray(f,f+d):Array.prototype.slice.call(a,f,f+d);f=l;(d=Ka(d))||e(new T(Q.qb));b.set(a,d)}return{je:d,Pd:f}}}},Db=L(1,"i32*",K),Eb=L(1,"i32*",K);jb=L(1,"i32*",K);
var Fb=m,Gb=[],xb=[m],V=[m],Hb=1,Ib=m,Jb=l,T=m,Bb={};function Kb(a){a instanceof T||e(a+" : "+Ma());R(a.Sa)}
function W(a,b){a=ub("/",a);b=b||{Da:0};8<b.Da&&e(new T(Q.ua));for(var c=sb(a.split("/").filter(function(a){return!!a}),n),d=Fb,f="/",g=0;g<c.length;g++){var h=g===c.length-1;if(h&&b.parent)break;d=Cb(d,c[g]);f=S(f+"/"+c[g]);d.Gb&&(d=d.K.root);if(!h||b.$)for(h=0;40960===(d.mode&61440);){d=W(f,{$:n}).e;d.n.qa||e(new T(Q.u));var d=d.n.qa(d),i=ub;var q=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(f).slice(1),f=q[0],q=q[1];!f&&!q?f=".":(q&&(q=q.substr(0,q.length-1)),f+=q);f=i(f,
d);d=W(f,{Da:b.Da}).e;40<h++&&e(new T(Q.ua))}}return{path:f,e:d}}function Lb(a){for(var b;;){if(a===a.parent)return a=a.K.Hb,!b?a:"/"!==a[a.length-1]?a+"/"+b:a+b;b=b?a.name+"/"+b:a.name;a=a.parent}}function Mb(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%Ib.length}function Cb(a,b){var c=Nb(a,"x");c&&e(new T(c));for(c=Ib[Mb(a.id,b)];c;c=c.Ib){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.n.Aa(a,b)}
function Ab(a,b,c,d){Ob||(Ob=function(a,b,c,d){this.id=Hb++;this.name=b;this.mode=c;this.n={};this.k={};this.pa=d;this.K=this.parent=m;a||(a=this);this.parent=a;this.K=a.K;a=Mb(this.parent.id,this.name);this.Ib=Ib[a];Ib[a]=this},Ob.prototype={},Object.defineProperties(Ob.prototype,{O:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},Eb:{get:function(){return 16384===
(this.mode&61440)}},Db:{get:function(){return 8192===(this.mode&61440)}}}));return new Ob(a,b,c,d)}var Pb={r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218};function Qb(a){var b=Pb[a];"undefined"===typeof b&&e(Error("Unknown file open mode: "+a));return b}function Nb(a,b){return Jb?0:-1!==b.indexOf("r")&&!(a.mode&292)||-1!==b.indexOf("w")&&!(a.mode&146)||-1!==b.indexOf("x")&&!(a.mode&73)?Q.jb:0}
function Rb(a,b){try{return Cb(a,b),Q.Ga}catch(c){}return Nb(a,"wx")}function Sb(a,b,c){Tb||(Tb={},Object.defineProperties(Tb,{object:{get:function(){return this.e},set:function(a){this.e=a}},de:{get:function(){return 1!==(this.M&2097155)}},ee:{get:function(){return 0!==(this.M&2097155)}},ce:{get:function(){return this.M&1024}}}));a.prototype=Tb;var d;a:{b=b||1;for(c=c||4096;b<=c;b++)if(!V[b]){d=b;break a}e(new T(Q.pb))}a.C=d;return V[d]=a}
var zb={open:function(a){a.k=xb[a.e.pa].k;a.k.open&&a.k.open(a)},Q:function(){e(new T(Q.wa))}};function Ub(a,b){var c;b&&(c=W(b,{$:n}),b=c.path);var d={type:a,ie:{},Hb:b,root:m},f=a.K(d);f.K=d;d.root=f;c&&(c.e.K=d,c.e.Gb=l,"/"===b&&(Fb=d.root));Gb.push(d);return f}function Vb(a,b,c){var d=W(a,{parent:l}).e,a=tb(a),f=Rb(d,a);f&&e(new T(f));d.n.S||e(new T(Q.Z));return d.n.S(d,a,b,c)}function Wb(a,b){b=(b!==j?b:438)&4095;b|=32768;return Vb(a,b,0)}
function Xb(a,b){b=(b!==j?b:511)&1023;b|=16384;return Vb(a,b,0)}function Yb(a,b,c){"undefined"===typeof c&&(c=b,b=438);return Vb(a,b|8192,c)}function Zb(a,b){var c=W(b,{parent:l}).e,d=tb(b),f=Rb(c,d);f&&e(new T(f));c.n.ra||e(new T(Q.Z));return c.n.ra(c,d,a)}function $b(a,b){var c;c="string"===typeof a?W(a,{$:l}).e:a;c.n.A||e(new T(Q.Z));c.n.A(c,{mode:b&4095|c.mode&-4096,timestamp:Date.now()})}
function ac(a,b){var c,b="string"===typeof b?Qb(b):b;c=b&64?("undefined"===typeof c?438:c)&4095|32768:0;var d;if("object"===typeof a)d=a;else{a=S(a);try{d=W(a,{$:!(b&131072)}).e}catch(f){}}b&64&&(d?b&128&&e(new T(Q.Ga)):d=Vb(a,c,0));d||e(new T(Q.fa));8192===(d.mode&61440)&&(b&=-513);d?40960===(d.mode&61440)?c=Q.ua:16384===(d.mode&61440)&&(0!==(b&2097155)||b&512)?c=Q.ta:(c=["r","w","rw"][b&2097155],b&512&&(c+="w"),c=Nb(d,c)):c=Q.fa;c&&e(new T(c));if(b&512){c=d;c="string"===typeof c?W(c,{$:l}).e:c;
c.n.A||e(new T(Q.Z));16384===(c.mode&61440)&&e(new T(Q.ta));32768!==(c.mode&61440)&&e(new T(Q.u));var g=Nb(c,"w");g&&e(new T(g));c.n.A(c,{size:0,timestamp:Date.now()})}b&=-641;d=Sb({e:d,path:Lb(d),M:b,seekable:l,position:0,k:d.k,Ob:[],error:n},j,j);d.k.open&&d.k.open(d);t.logReadFiles&&!(b&1)&&(bc||(bc={}),a in bc||(bc[a]=1,t.printErr("read file: "+a)));return d}function cc(a){try{a.k.close&&a.k.close(a)}catch(b){e(b)}finally{V[a.C]=m}}
function dc(a,b,c,d,f,g){(0>d||0>f)&&e(new T(Q.u));0===(a.M&2097155)&&e(new T(Q.ea));16384===(a.e.mode&61440)&&e(new T(Q.ta));a.k.write||e(new T(Q.u));var h=l;"undefined"===typeof f?(f=a.position,h=n):a.seekable||e(new T(Q.wa));a.M&1024&&((!a.seekable||!a.k.Q)&&e(new T(Q.wa)),a.k.Q(a,0,2));b=a.k.write(a,b,c,d,f,g);h||(a.position+=b);return b}
function ec(){T||(T=function(a){this.Sa=a;for(var b in Q)if(Q[b]===a){this.code=b;break}this.message=qb[a];this.stack=Ma()},T.prototype=Error(),[Q.fa].forEach(function(a){Bb[a]=new T(a);Bb[a].stack="<generic error, no stack>"}))}var fc;function gc(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c}
function hc(a,b,c,d,f,g){a=b?S(("string"===typeof a?a:Lb(a))+"/"+b):a;d=gc(d,f);f=Wb(a,d);if(c){if("string"===typeof c){for(var a=Array(c.length),b=0,h=c.length;b<h;++b)a[b]=c.charCodeAt(b);c=a}$b(f,d|146);a=ac(f,"w");dc(a,c,0,c.length,0,g);cc(a);$b(f,d)}return f}
function ic(a,b,c,d){a=S(("string"===typeof a?a:Lb(a))+"/"+b);b=gc(!!c,!!d);ic.Xa||(ic.Xa=64);var f;f=ic.Xa++<<8|0;xb[f]={k:{open:function(a){a.seekable=n},close:function(){d&&(d.buffer&&d.buffer.length)&&d(10)},O:function(a,b,d,f){for(var k=0,A=0;A<f;A++){var x;try{x=c()}catch(s){e(new T(Q.P))}x===j&&0===k&&e(new T(Q.Y));if(x===m||x===j)break;k++;b[d+A]=x}k&&(a.e.timestamp=Date.now());return k},write:function(a,b,c,f){for(var k=0;k<f;k++)try{d(b[c+k])}catch(A){e(new T(Q.P))}f&&(a.e.timestamp=Date.now());
return k}}};return Yb(a,b,f)}function jc(a){if(a.Db||a.Eb||a.link||a.o)return l;var b=l;"undefined"!==typeof XMLHttpRequest&&e(Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."));if(t.read)try{a.o=G(t.read(a.url),l)}catch(c){b=n}else e(Error("Cannot load without read() or XMLHttpRequest."));b||R(Q.P);return b}
var Ob,Tb,bc,Y={K:function(){return Ab(m,"/",16895,0)},xb:function(a,b,c){c&&y(1==b==(6==c));a={yb:a,type:b,protocol:c,p:m,ca:{},Ba:[],U:[],W:Y.q};b=Y.na();c=Ab(Y.root,b,49152,0);c.V=a;b=Sb({path:b,e:c,M:Qb("r+"),seekable:n,k:Y.k});a.G=b;return a},zb:function(a){a=V[a];return!a||49152!==(a.e.mode&49152)?m:a.e.V},k:{$a:function(a){a=a.e.V;return a.W.$a(a)},Wa:function(a,b,c){a=a.e.V;return a.W.Wa(a,b,c)},O:function(a,b,c,d){a=a.e.V;d=a.W.Kb(a,d);if(!d)return 0;b.set(d.buffer,c);return d.buffer.length},
write:function(a,b,c,d){a=a.e.V;return a.W.Mb(a,b,c,d)},close:function(a){a=a.e.V;a.W.close(a)}},na:function(){Y.na.Ra||(Y.na.Ra=0);return"socket["+Y.na.Ra++ +"]"},q:{ka:function(a,b,c){var d;"object"===typeof b&&(d=b,c=b=m);if(d)d.La?(b=d.La.ke,c=d.La.le):((c=/ws[s]?:\/\/([^:]+):(\d+)/.exec(d.url))||e(Error("WebSocket URL must be in the format ws(s)://address:port")),b=c[1],c=parseInt(c[2],10));else try{d=new WebSocket("ws://"+b+":"+c,v?{}:["binary"]),d.binaryType="arraybuffer"}catch(f){e(new T(Q.mb))}b=
{H:b,port:c,g:d,la:[]};Y.q.Ma(a,b);Y.q.Bb(a,b);2===a.type&&"undefined"!==typeof a.X&&b.la.push(new Uint8Array([255,255,255,255,112,111,114,116,(a.X&65280)>>8,a.X&255]));return b},ma:function(a,b,c){return a.ca[b+":"+c]},Ma:function(a,b){a.ca[b.H+":"+b.port]=b},bb:function(a,b){delete a.ca[b.H+":"+b.port]},Bb:function(a,b){function c(c){y("string"!==typeof c&&c.byteLength!==j);var c=new Uint8Array(c),d=f;f=n;d&&10===c.length&&255===c[0]&&255===c[1]&&255===c[2]&&255===c[3]&&112===c[4]&&111===c[5]&&
114===c[6]&&116===c[7]?(c=c[8]<<8|c[9],Y.q.bb(a,b),b.port=c,Y.q.Ma(a,b)):a.U.push({H:b.H,port:b.port,data:c})}function d(){try{for(var a=b.la.shift();a;)b.g.send(a),a=b.la.shift()}catch(c){b.g.close()}}var f=l;v?(b.g.aa("open",d),b.g.aa("message",function(a,b){b.Rd&&c((new Uint8Array(a)).buffer)}),b.g.aa("error",r())):(b.g.onopen=d,b.g.onmessage=function(a){c(a.data)})},$a:function(a){if(1===a.type&&a.p)return a.Ba.length?65:0;var b=0,c=1===a.type?Y.q.ma(a,a.I,a.J):m;if(a.U.length||!c||c&&c.g.readyState===
c.g.da||c&&c.g.readyState===c.g.CLOSED)b|=65;if(!c||c&&c.g.readyState===c.g.OPEN)b|=4;if(c&&c.g.readyState===c.g.da||c&&c.g.readyState===c.g.CLOSED)b|=16;return b},Wa:function(a,b,c){switch(b){case 21531:return b=0,a.U.length&&(b=a.U[0].data.length),J[c>>2]=b,0;default:return Q.u}},close:function(a){if(a.p){try{a.p.close()}catch(b){}a.p=m}for(var c=Object.keys(a.ca),d=0;d<c.length;d++){var f=a.ca[c[d]];try{f.g.close()}catch(g){}Y.q.bb(a,f)}return 0},bind:function(a,b,c){("undefined"!==typeof a.Fa||
"undefined"!==typeof a.X)&&e(new T(Q.u));a.Fa=b;a.X=c||_mkport();if(2===a.type){a.p&&(a.p.close(),a.p=m);try{a.W.Fb(a,0)}catch(d){d instanceof T||e(d),d.Sa!==Q.va&&e(d)}}},Ud:function(a,b,c){a.p&&e(new T(ERRNO_CODS.va));if("undefined"!==typeof a.I&&"undefined"!==typeof a.J){var d=Y.q.ma(a,a.I,a.J);d&&(d.g.readyState===d.g.CONNECTING&&e(new T(Q.kb)),e(new T(Q.ob)))}b=Y.q.ka(a,b,c);a.I=b.H;a.J=b.port;e(new T(Q.nb))},Fb:function(a){v||e(new T(Q.va));a.p&&e(new T(Q.u));var b=require("ws").Jd;a.p=new b({host:a.Fa,
port:a.X});a.p.aa("connection",function(b){if(1===a.type){var d=Y.xb(a.yb,a.type,a.protocol),b=Y.q.ka(d,b);d.I=b.H;d.J=b.port;a.Ba.push(d)}else Y.q.ka(a,b)});a.p.aa("closed",function(){a.p=m});a.p.aa("error",r())},accept:function(a){a.p||e(new T(Q.u));var b=a.Ba.shift();b.G.M=a.G.M;return b},Zd:function(a,b){var c,d;b?((a.I===j||a.J===j)&&e(new T(Q.ga)),c=a.I,d=a.J):(c=a.Fa||0,d=a.X||0);return{H:c,port:d}},Mb:function(a,b,c,d,f,g){if(2===a.type){if(f===j||g===j)f=a.I,g=a.J;(f===j||g===j)&&e(new T(Q.lb))}else f=
a.I,g=a.J;var h=Y.q.ma(a,f,g);1===a.type&&((!h||h.g.readyState===h.g.da||h.g.readyState===h.g.CLOSED)&&e(new T(Q.ga)),h.g.readyState===h.g.CONNECTING&&e(new T(Q.Y)));b=b instanceof Array||b instanceof ArrayBuffer?b.slice(c,c+d):b.buffer.slice(b.byteOffset+c,b.byteOffset+c+d);if(2===a.type&&(!h||h.g.readyState!==h.g.OPEN)){if(!h||h.g.readyState===h.g.da||h.g.readyState===h.g.CLOSED)h=Y.q.ka(a,f,g);h.la.push(b);return d}try{return h.g.send(b),d}catch(i){e(new T(Q.u))}},Kb:function(a,b){1===a.type&&
a.p&&e(new T(Q.ga));var c=a.U.shift();if(!c){if(1===a.type){var d=Y.q.ma(a,a.I,a.J);if(d){if(d.g.readyState===d.g.da||d.g.readyState===d.g.CLOSED)return m;e(new T(Q.Y))}e(new T(Q.ga))}e(new T(Q.Y))}var d=c.data.byteLength||c.data.length,f=c.data.byteOffset||0,g=c.data.buffer||c.data,h=Math.min(b,d),i={buffer:new Uint8Array(g,f,h),H:c.H,port:c.port};1===a.type&&h<d&&(c.data=new Uint8Array(g,f+h,d-h),a.U.unshift(c));return i}}};
function kc(a,b,c){a=V[a];if(!a)return R(Q.ea),-1;try{return dc(a,I,b,c)}catch(d){return Kb(d),-1}}function lc(a,b,c,d){c*=b;if(0==c)return 0;a=kc(d,a,c);if(-1==a){if(b=V[d])b.error=l;return 0}return Math.floor(a/b)}t._strlen=mc;function nc(a){return 0>a||0===a&&-Infinity===1/a}
function oc(a,b){function c(a){var c;"double"===a?c=Ha[b+f>>3]:"i64"==a?(c=[J[b+f>>2],J[b+(f+8)>>2]],f+=8):(a="i32",c=J[b+f>>2]);f+=Math.max(Math.max(ja(a),ka),8);return c}for(var d=a,f=0,g=[],h,i;;){var q=d;h=I[d];if(0===h)break;i=I[d+1|0];if(37==h){var k=n,A=n,x=n,s=n,F=n;a:for(;;){switch(i){case 43:k=l;break;case 45:A=l;break;case 35:x=l;break;case 48:if(s)break a;else{s=l;break}case 32:F=l;break;default:break a}d++;i=I[d+1|0]}var H=0;if(42==i)H=c("i32"),d++,i=I[d+1|0];else for(;48<=i&&57>=i;)H=
10*H+(i-48),d++,i=I[d+1|0];var P=n;if(46==i){var C=0,P=l;d++;i=I[d+1|0];if(42==i)C=c("i32"),d++;else for(;;){i=I[d+1|0];if(48>i||57<i)break;C=10*C+(i-48);d++}i=I[d+1|0]}else C=6;var B;switch(String.fromCharCode(i)){case "h":i=I[d+2|0];104==i?(d++,B=1):B=2;break;case "l":i=I[d+2|0];108==i?(d++,B=8):B=4;break;case "L":case "q":case "j":B=8;break;case "z":case "t":case "I":B=4;break;default:B=m}B&&d++;i=I[d+1|0];switch(String.fromCharCode(i)){case "d":case "i":case "u":case "o":case "x":case "X":case "p":q=
100==i||105==i;B=B||4;h=c("i"+8*B);var p;8==B&&(h=117==i?+(h[0]>>>0)+4294967296*+(h[1]>>>0):+(h[0]>>>0)+4294967296*+(h[1]|0));4>=B&&(h=(q?db:cb)(h&Math.pow(256,B)-1,8*B));var X=Math.abs(h),q="";if(100==i||105==i)p=db(h,8*B).toString(10);else if(117==i)p=cb(h,8*B).toString(10),h=Math.abs(h);else if(111==i)p=(x?"0":"")+X.toString(8);else if(120==i||88==i){q=x&&0!=h?"0x":"";if(0>h){h=-h;p=(X-1).toString(16);X=[];for(x=0;x<p.length;x++)X.push((15-parseInt(p[x],16)).toString(16));for(p=X.join("");p.length<
2*B;)p="f"+p}else p=X.toString(16);88==i&&(q=q.toUpperCase(),p=p.toUpperCase())}else 112==i&&(0===X?p="(nil)":(q="0x",p=X.toString(16)));if(P)for(;p.length<C;)p="0"+p;0<=h&&(k?q="+"+q:F&&(q=" "+q));"-"==p.charAt(0)&&(q="-"+q,p=p.substr(1));for(;q.length+p.length<H;)A?p+=" ":s?p="0"+p:q=" "+q;p=q+p;p.split("").forEach(function(a){g.push(a.charCodeAt(0))});break;case "f":case "F":case "e":case "E":case "g":case "G":h=c("double");if(isNaN(h))p="nan",s=n;else if(isFinite(h)){P=n;B=Math.min(C,20);if(103==
i||71==i)P=l,C=C||1,B=parseInt(h.toExponential(B).split("e")[1],10),C>B&&-4<=B?(i=(103==i?"f":"F").charCodeAt(0),C-=B+1):(i=(103==i?"e":"E").charCodeAt(0),C--),B=Math.min(C,20);if(101==i||69==i)p=h.toExponential(B),/[eE][-+]\d$/.test(p)&&(p=p.slice(0,-1)+"0"+p.slice(-1));else if(102==i||70==i)p=h.toFixed(B),0===h&&nc(h)&&(p="-"+p);q=p.split("e");if(P&&!x)for(;1<q[0].length&&-1!=q[0].indexOf(".")&&("0"==q[0].slice(-1)||"."==q[0].slice(-1));)q[0]=q[0].slice(0,-1);else for(x&&-1==p.indexOf(".")&&(q[0]+=
".");C>B++;)q[0]+="0";p=q[0]+(1<q.length?"e"+q[1]:"");69==i&&(p=p.toUpperCase());0<=h&&(k?p="+"+p:F&&(p=" "+p))}else p=(0>h?"-":"")+"inf",s=n;for(;p.length<H;)p=A?p+" ":s&&("-"==p[0]||"+"==p[0])?p[0]+"0"+p.slice(1):(s?"0":" ")+p;97>i&&(p=p.toUpperCase());p.split("").forEach(function(a){g.push(a.charCodeAt(0))});break;case "s":s=(k=c("i8*"))?mc(k):6;P&&(s=Math.min(s,C));if(!A)for(;s<H--;)g.push(32);if(k)for(x=0;x<s;x++)g.push(M[k++|0]);else g=g.concat(G("(null)".substr(0,s),l));if(A)for(;s<H--;)g.push(32);
break;case "c":for(A&&g.push(c("i8"));0<--H;)g.push(32);A||g.push(c("i8"));break;case "n":A=c("i32*");J[A>>2]=g.length;break;case "%":g.push(h);break;default:for(x=q;x<d+2;x++)g.push(I[x])}d+=2}else g.push(h),d+=1}return g}function pc(a,b,c){c=oc(b,c);b=ha();a=lc(L(c,"i8",Ia),1,c.length,a);ia(b);return a}function qc(a){t.print("exit("+a+") called");t.exit(a)}function Z(){return J[Z.L>>2]}function rc(){return!!rc.fb}
function sc(a){var b=n;try{a==__ZTIi&&(b=l)}catch(c){}try{a==__ZTIj&&(b=l)}catch(d){}try{a==__ZTIl&&(b=l)}catch(f){}try{a==__ZTIm&&(b=l)}catch(g){}try{a==__ZTIx&&(b=l)}catch(h){}try{a==__ZTIy&&(b=l)}catch(i){}try{a==__ZTIf&&(b=l)}catch(q){}try{a==__ZTId&&(b=l)}catch(k){}try{a==__ZTIe&&(b=l)}catch(A){}try{a==__ZTIc&&(b=l)}catch(x){}try{a==__ZTIa&&(b=l)}catch(s){}try{a==__ZTIh&&(b=l)}catch(F){}try{a==__ZTIs&&(b=l)}catch(H){}try{a==__ZTIt&&(b=l)}catch(P){}return b}
function tc(a,b,c){if(0==c)return n;if(0==b||b==a)return l;switch(sc(b)?b:J[J[b>>2]-8>>2]){case 0:return 0==J[J[a>>2]-8>>2]?tc(J[a+8>>2],J[b+8>>2],c):n;case 1:return n;case 2:return tc(a,J[b+8>>2],c);default:return n}}
function uc(a,b,c){if(!uc.Cb){try{J[__ZTVN10__cxxabiv119__pointer_type_infoE>>2]=0}catch(d){}try{J[ob>>2]=1}catch(f){}try{J[nb>>2]=2}catch(g){}uc.Cb=l}J[Z.L>>2]=a;J[Z.L+4>>2]=b;J[Z.L+8>>2]=c;"uncaught_exception"in rc?rc.fb++:rc.fb=1;e(a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.")}
function vc(a,b,c){for(var d=0;d<c;){var f=M[a+d|0],g=M[b+d|0];if(f==g&&0==f)break;if(0==f)return-1;if(0==g)return 1;if(f==g)d++;else return f>g?1:-1}return 0}function wc(a){return 32==a||9<=a&&13>=a}
function xc(a,b,c,d,f,g,h){for(;wc(I[a]);)a++;var i=1;45==I[a]?(i=-1,a++):43==I[a]&&a++;if(c){if(16==c&&48==I[a]&&(120==I[a+1|0]||88==I[a+1|0]))a+=2}else 48==I[a]&&(120==I[a+1|0]||88==I[a+1|0]?(c=16,a+=2):(c=8,a++));c||(c=10);for(var q,k=0;0!=(q=I[a])&&!(q=parseInt(String.fromCharCode(q),c),isNaN(q));)k=k*c+q,a++;k*=i;b&&(J[b>>2]=a);h&&(Math.abs(k)>f?(k=f,R(Q.Ka)):k=cb(k,g));if(k>f||k<d)k=k>f?f:d,R(Q.Ka);return 64==g?($.setTempRet0((tempDouble=k,1<=+Ca(tempDouble)?0<tempDouble?(Da(+Ea(tempDouble/
4294967296),4294967295)|0)>>>0:~~+Fa((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)),k>>>0)|0:k}function yc(a,b){return kc(b,a,mc(a))}function zc(a,b){var c=cb(a&255);I[zc.cb|0]=c;if(-1==kc(b,zc.cb,1)){if(c=V[b])c.error=l;return-1}return c}t._memcpy=Ac;t._memset=Bc;function Cc(a){Cc.vb||(D=D+4095&-4096,Cc.vb=l,y(qa),Cc.tb=qa,qa=function(){E("cannot dynamically allocate, sbrk now has control")});var b=D;0!=a&&Cc.tb(a);return b}var Dc=n,Ec=n,Fc=n,Gc=n,Hc=j,Ic=j;
function Jc(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]}var Kc=[];function Lc(){var a=t.canvas;Kc.forEach(function(b){b(a.width,a.height)})}function Mc(){var a=t.canvas;this.Qb=a.width;this.Pb=a.height;a.width=screen.width;a.height=screen.height;"undefined"!=typeof SDL&&(a=Oa[SDL.screen+0*ka>>2],J[SDL.screen+0*ka>>2]=a|8388608);Lc()}
function Nc(){var a=t.canvas;a.width=this.Qb;a.height=this.Pb;"undefined"!=typeof SDL&&(a=Oa[SDL.screen+0*ka>>2],J[SDL.screen+0*ka>>2]=a&-8388609);Lc()}var Oc,Pc,Qc,Rc;ec();Ib=Array(4096);Fb=Ab(m,"/",16895,0);Ub(U,"/");Xb("/tmp");Xb("/dev");xb[259]={k:{O:function(){return 0},write:function(){return 0}}};Yb("/dev/null",259);
wb(1280,{Va:function(a){if(!a.input.length){var b=m;if(v){if(b=process.stdin.read(),!b){if(process.stdin._readableState&&process.stdin._readableState.ended)return m;return}}else"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),b!==m&&(b+="\n")):"function"==typeof readline&&(b=readline(),b!==m&&(b+="\n"));if(!b)return m;a.input=G(b,l)}return a.input.shift()},oa:function(a,b){b===m||10===b?(t.print(a.R.join("")),a.R=[]):a.R.push(Sc.Ca(b))}});
wb(1536,{oa:function(a,b){b===m||10===b?(t.printErr(a.R.join("")),a.R=[]):a.R.push(Sc.Ca(b))}});Yb("/dev/tty",1280);Yb("/dev/tty1",1536);Xb("/dev/shm");Xb("/dev/shm/tmp");
Wa.unshift({D:function(){if(!t.noFSInit&&!fc){y(!fc,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");fc=l;ec();t.stdin=t.stdin;t.stdout=t.stdout;t.stderr=t.stderr;t.stdin?ic("/dev","stdin",t.stdin):Zb("/dev/tty","/dev/stdin");t.stdout?ic("/dev","stdout",m,t.stdout):Zb("/dev/tty","/dev/stdout");t.stderr?ic("/dev","stderr",m,t.stderr):Zb("/dev/tty1","/dev/stderr");var a=ac("/dev/stdin",
"r");J[Db>>2]=a.C;y(1===a.C,"invalid handle for stdin ("+a.C+")");a=ac("/dev/stdout","w");J[Eb>>2]=a.C;y(2===a.C,"invalid handle for stdout ("+a.C+")");a=ac("/dev/stderr","w");J[jb>>2]=a.C;y(3===a.C,"invalid handle for stderr ("+a.C+")")}}});Xa.push({D:function(){Jb=n}});Ya.push({D:function(){fc=n;for(var a=0;a<V.length;a++){var b=V[a];b&&cc(b)}}});t.FS_createFolder=function(a,b,c,d){a=S(("string"===typeof a?a:Lb(a))+"/"+b);return Xb(a,gc(c,d))};
t.FS_createPath=function(a,b){for(var a="string"===typeof a?a:Lb(a),c=b.split("/").reverse();c.length;){var d=c.pop();if(d){var f=S(a+"/"+d);try{Xb(f)}catch(g){}a=f}}return f};t.FS_createDataFile=hc;
t.FS_createPreloadedFile=function(a,b,c,d,f,g,h,i,q){function k(){Fc=document.pointerLockElement===s||document.mozPointerLockElement===s||document.webkitPointerLockElement===s}function A(c){function p(c){i||hc(a,b,c,d,f,q);g&&g();ib()}var k=n;t.preloadPlugins.forEach(function(a){!k&&a.canHandle(F)&&(a.handle(c,F,p,function(){h&&h();ib()}),k=l)});k||p(c)}t.preloadPlugins||(t.preloadPlugins=[]);if(!Oc&&!ca){Oc=l;try{new Blob,Pc=l}catch(x){Pc=n,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Qc=
"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:!Pc?console.log("warning: no BlobBuilder"):m;Rc="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:j;!t.Za&&"undefined"===typeof Rc&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),t.Za=l);t.preloadPlugins.push({canHandle:function(a){return!t.Za&&/\.(jpg|jpeg|png|bmp)$/i.test(a)},handle:function(a,b,
c,d){var f=m;if(Pc)try{f=new Blob([a],{type:Jc(b)}),f.size!==a.length&&(f=new Blob([(new Uint8Array(a)).buffer],{type:Jc(b)}))}catch(g){var h="Blob constructor present but fails: "+g+"; falling back to blob builder";ma||(ma={});ma[h]||(ma[h]=1,t.T(h))}f||(f=new Qc,f.append((new Uint8Array(a)).buffer),f=f.getBlob());var i=Rc.createObjectURL(f),k=new Image;k.onload=function(){y(k.complete,"Image "+b+" could not be decoded");var d=document.createElement("canvas");d.width=k.width;d.height=k.height;d.getContext("2d").drawImage(k,
0,0);t.preloadedImages[b]=d;Rc.revokeObjectURL(i);c&&c(a)};k.onerror=function(){console.log("Image "+i+" could not be decoded");d&&d()};k.src=i}});t.preloadPlugins.push({canHandle:function(a){return!t.he&&a.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(a,b,c,d){function f(d){h||(h=l,t.preloadedAudios[b]=d,c&&c(a))}function g(){h||(h=l,t.preloadedAudios[b]=new Audio,d&&d())}var h=n;if(Pc){try{var i=new Blob([a],{type:Jc(b)})}catch(k){return g()}var i=Rc.createObjectURL(i),s=new Audio;s.addEventListener("canplaythrough",
function(){f(s)},n);s.onerror=function(){if(!h){console.log("warning: browser could not fully decode audio "+b+", trying slower base64 approach");for(var c="",d=0,g=0,i=0;i<a.length;i++){d=d<<8|a[i];for(g+=8;6<=g;)var k=d>>g-6&63,g=g-6,c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[k]}2==g?(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(d&3)<<4],c+="=="):4==g&&(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(d&15)<<2],c+="=");
s.src="data:audio/x-"+b.substr(-3)+";base64,"+c;f(s)}};s.src=i;setTimeout(function(){ua||f(s)},1E4)}else return g()}});var s=t.canvas;s.Ea=s.requestPointerLock||s.mozRequestPointerLock||s.webkitRequestPointerLock;s.Ta=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||r();s.Ta=s.Ta.bind(document);document.addEventListener("pointerlockchange",k,n);document.addEventListener("mozpointerlockchange",k,n);document.addEventListener("webkitpointerlockchange",k,n);t.elementPointerLock&&
s.addEventListener("click",function(a){!Fc&&s.Ea&&(s.Ea(),a.preventDefault())},n)}var F=b?ub(S(a+"/"+b)):a;hb();if("string"==typeof c){var H=h,P=function(){H?H():e('Loading data file "'+c+'" failed.')},C=new XMLHttpRequest;C.open("GET",c,l);C.responseType="arraybuffer";C.onload=function(){if(200==C.status||0==C.status&&C.response){var a=C.response;y(a,'Loading data file "'+c+'" failed (no arrayBuffer).');a=new Uint8Array(a);A(a);ib()}else P()};C.onerror=P;C.send(m);hb()}else A(c)};
t.FS_createLazyFile=function(a,b,c,d,f){var g,h;"undefined"!==typeof XMLHttpRequest?(ca||e("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"),g=function(){this.za=n;this.ia=[]},g.prototype.get=function(a){if(!(a>this.length-1||0>a)){var b=a%this.wb;return this.Ab(Math.floor(a/this.wb))[b]}},g.prototype.Nb=function(a){this.Ab=a},g.prototype.Oa=function(){var a=new XMLHttpRequest;a.open("HEAD",c,n);a.send(m);200<=a.status&&300>a.status||
304===a.status||e(Error("Couldn't load "+c+". Status: "+a.status));var b=Number(a.getResponseHeader("Content-length")),d,f=1048576;if(!((d=a.getResponseHeader("Accept-Ranges"))&&"bytes"===d))f=b;var g=this;g.Nb(function(a){var d=a*f,h=(a+1)*f-1,h=Math.min(h,b-1);if("undefined"===typeof g.ia[a]){var i=g.ia;d>h&&e(Error("invalid range ("+d+", "+h+") or no bytes requested!"));h>b-1&&e(Error("only "+b+" bytes available! programmer error!"));var k=new XMLHttpRequest;k.open("GET",c,n);b!==f&&k.setRequestHeader("Range",
"bytes="+d+"-"+h);"undefined"!=typeof Uint8Array&&(k.responseType="arraybuffer");k.overrideMimeType&&k.overrideMimeType("text/plain; charset=x-user-defined");k.send(m);200<=k.status&&300>k.status||304===k.status||e(Error("Couldn't load "+c+". Status: "+k.status));d=k.response!==j?new Uint8Array(k.response||[]):G(k.responseText||"",l);i[a]=d}"undefined"===typeof g.ia[a]&&e(Error("doXHR failed!"));return g.ia[a]});this.sb=b;this.rb=f;this.za=l},g=new g,Object.defineProperty(g,"length",{get:function(){this.za||
this.Oa();return this.sb}}),Object.defineProperty(g,"chunkSize",{get:function(){this.za||this.Oa();return this.rb}}),h=j):(h=c,g=j);var i,a=S(("string"===typeof a?a:Lb(a))+"/"+b);i=Wb(a,gc(d,f));g?i.o=g:h&&(i.o=m,i.url=h);var q={};Object.keys(i.k).forEach(function(a){var b=i.k[a];q[a]=function(){jc(i)||e(new T(Q.P));return b.apply(m,arguments)}});q.O=function(a,b,c,d,f){jc(i)||e(new T(Q.P));a=a.e.o;if(f>=a.length)return 0;d=Math.min(a.length-f,d);y(0<=d);if(a.slice)for(var g=0;g<d;g++)b[c+g]=a[f+
g];else for(g=0;g<d;g++)b[c+g]=a.get(f+g);return d};i.k=q;return i};t.FS_createLink=function(a,b,c){a=S(("string"===typeof a?a:Lb(a))+"/"+b);return Zb(c,a)};t.FS_createDevice=ic;rb=pa(4);J[rb>>2]=0;Wa.unshift({D:r()});Ya.push({D:r()});var Sc=new na;v&&(require("fs"),process.platform.match(/^win/));Wa.push({D:function(){Y.root=Ub(Y,m)}});Z.L=L(12,"void*",K);zc.cb=L([0],"i8",K);
t.requestFullScreen=function(a,b){function c(){Ec=n;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement)===d?(d.Pa=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen,d.Pa=d.Pa.bind(document),Hc&&d.Ea(),Ec=l,Ic&&Mc()):Ic&&Nc();if(t.onFullScreen)t.onFullScreen(Ec)}Hc=a;Ic=b;"undefined"===typeof Hc&&(Hc=l);"undefined"===typeof Ic&&
(Ic=n);var d=t.canvas;Gc||(Gc=l,document.addEventListener("fullscreenchange",c,n),document.addEventListener("mozfullscreenchange",c,n),document.addEventListener("webkitfullscreenchange",c,n));d.Lb=d.requestFullScreen||d.mozRequestFullScreen||(d.webkitRequestFullScreen?function(){d.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:m);d.Lb()};
t.requestAnimationFrame=function(a){window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||window.setTimeout);window.requestAnimationFrame(a)};t.setCanvasSize=function(a,b,c){var d=t.canvas;d.width=a;d.height=b;c||Lc()};t.pauseMainLoop=r();t.resumeMainLoop=function(){Dc&&(Dc=n,m())};
t.getUserMedia=function(){window.Ua||(window.Ua=navigator.getUserMedia||navigator.mozGetUserMedia);window.Ua(j)};Qa=w=sa(z);Ra=Qa+5242880;Sa=D=sa(Ra);y(Sa<ra);Da=Math.min;
var $=(function(global,env,buffer) {
// EMSCRIPTEN_START_ASM
"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.tempDoublePtr|0;var l=env.ABORT|0;var m=env.__ZTVN10__cxxabiv120__si_class_type_infoE|0;var n=env.___dso_handle|0;var o=env._stderr|0;var p=env.__ZTVN10__cxxabiv117__class_type_infoE|0;var q=+env.NaN;var r=+env.Infinity;var s=0;var t=0;var u=0;var v=0;var w=0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0.0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=0;var N=0;var O=0;var P=global.Math.floor;var Q=global.Math.abs;var R=global.Math.sqrt;var S=global.Math.pow;var T=global.Math.cos;var U=global.Math.sin;var V=global.Math.tan;var W=global.Math.acos;var X=global.Math.asin;var Y=global.Math.atan;var Z=global.Math.atan2;var _=global.Math.exp;var $=global.Math.log;var aa=global.Math.ceil;var ab=global.Math.imul;var ac=env.abort;var ad=env.assert;var ae=env.asmPrintInt;var af=env.asmPrintFloat;var ag=env.min;var ah=env.invoke_viiiii;var ai=env.invoke_vi;var aj=env.invoke_vii;var ak=env.invoke_ii;var al=env.invoke_iiii;var am=env.invoke_v;var an=env.invoke_viiiiii;var ao=env.invoke_iii;var ap=env.invoke_viiii;var aq=env._strncmp;var ar=env._llvm_lifetime_end;var as=env._llvm_uadd_with_overflow_i32;var at=env.___cxa_call_unexpected;var au=env._snprintf;var av=env.___cxa_throw;var aw=env._atexit;var ax=env._abort;var ay=env._fprintf;var az=env._llvm_eh_exception;var aA=env._printf;var aB=env._fflush;var aC=env.__reallyNegative;var aD=env._strtol;var aE=env._fputc;var aF=env._sysconf;var aG=env._puts;var aH=env.___setErrNo;var aI=env._fwrite;var aJ=env._send;var aK=env._write;var aL=env._fputs;var aM=env._exit;var aN=env._time;var aO=env.___cxa_find_matching_catch;var aP=env.___cxa_allocate_exception;var aQ=env._isspace;var aR=env.___cxa_pure_virtual;var aS=env.___cxa_is_number_type;var aT=env.___cxa_guard_release;var aU=env.__formatString;var aV=env.___cxa_does_inherit;var aW=env.___cxa_guard_acquire;var aX=env.__ZSt18uncaught_exceptionv;var aY=env._pwrite;var aZ=env._llvm_pow_f64;var a_=env._sbrk;var a$=env.___errno_location;var a0=env.___gxx_personality_v0;var a1=env._llvm_lifetime_start;var a2=env.__parseInt;var a3=env.___resumeException;var a4=env.__exit;var a5=env._strcmp;
// EMSCRIPTEN_START_FUNCS
function bf(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+7&-8;return b|0}function bg(){return i|0}function bh(a){a=a|0;i=a}function bi(a,b){a=a|0;b=b|0;if((s|0)==0){s=a;t=b}}function bj(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+2|0];a[k+3|0]=a[b+3|0]}function bk(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+2|0];a[k+3|0]=a[b+3|0];a[k+4|0]=a[b+4|0];a[k+5|0]=a[b+5|0];a[k+6|0]=a[b+6|0];a[k+7|0]=a[b+7|0]}function bl(a){a=a|0;F=a}function bm(a){a=a|0;G=a}function bn(a){a=a|0;H=a}function bo(a){a=a|0;I=a}function bp(a){a=a|0;J=a}function bq(a){a=a|0;K=a}function br(a){a=a|0;L=a}function bs(a){a=a|0;M=a}function bt(a){a=a|0;N=a}function bu(a){a=a|0;O=a}function bv(){c[764]=p+8;c[766]=p+8;c[768]=m+8;c[772]=m+8;c[776]=p+8;c[778]=p+8;c[780]=p+8;c[782]=m+8;c[786]=m+8;c[790]=m+8;c[794]=m+8;c[798]=m+8;c[802]=m+8}function bw(a){a=a|0;return}function bx(a){a=a|0;return}function by(b,e){b=b|0;e=e|0;var f=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,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,ab=0,ac=0,ad=0,ae=0,af=0,ah=0,ai=0,aj=0,ak=0,al=0,am=0,an=0,ao=0,ap=0,aq=0,ar=0,as=0,at=0,aw=0,ax=0,ay=0,az=0,aB=0,aC=0,aD=0,aE=0,aF=0,aH=0,aI=0,aJ=0,aK=0,aL=0,aM=0,aN=0,aO=0,aQ=0,aR=0,aS=0,aT=0,aU=0,aV=0,aW=0,aX=0,aY=0,aZ=0,a_=0,a0=0,a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a8=0,a9=0,ba=0,bc=0,bd=0,be=0,bf=0,bg=0,bh=0,bi=0,bj=0,bk=0,bl=0,bm=0,bn=0,bo=0,bp=0,bq=0,br=0,bs=0,bt=0,bu=0,bv=0,bw=0,bx=0,by=0,bA=0,bB=0,bC=0,bD=0,bE=0,bF=0,bG=0,bH=0,bI=0,bJ=0,bK=0,bL=0,bM=0,bN=0,bU=0,bY=0,bZ=0,b0=0.0,b1=0.0,b4=0.0,b6=0,b8=0,b9=0,ca=0,cb=0,cc=0,cd=0,cj=0,ck=0,cl=0,cn=0.0,co=0,cp=0,cq=0,cr=0,cs=0,ct=0,cu=0,cv=0,cw=0,cx=0,cy=0,cz=0,cA=0,cB=0.0,cC=0,cD=0,cE=0,cI=0,cJ=0,cK=0,cL=0.0,cM=0,cN=0,cP=0.0,cQ=0,cR=0,cS=0,cT=0,cU=0,cV=0,cW=0,cX=0,cY=0,cZ=0,c_=0,c$=0,c0=0,c1=0,c2=0,c3=0,c4=0,c5=0,c6=0,c7=0,c8=0,c9=0,da=0,db=0,dc=0,dd=0,de=0,df=0,dg=0,dh=0,di=0,dj=0,dk=0,dl=0,dm=0,dn=0,dp=0,dq=0,dr=0,ds=0,dt=0,du=0,dv=0,dw=0,dx=0,dy=0,dz=0,dA=0,dB=0,dC=0.0,dD=0.0,dE=0,dF=0,dG=0.0,dH=0.0,dI=0,dJ=0,dK=0,dL=0,dM=0,dN=0,dO=0,dP=0,dQ=0,dR=0,dS=0,dT=0,dU=0,dV=0,dW=0,dX=0,dY=0,dZ=0,d_=0,d$=0,d0=0,d1=0;f=i;i=i+1104|0;j=f|0;k=f+8|0;l=f+16|0;m=f+24|0;n=f+32|0;o=f+40|0;p=f+48|0;q=f+64|0;r=f+80|0;s=f+88|0;t=f+96|0;u=f+104|0;v=f+120|0;w=f+128|0;x=f+144|0;y=f+152|0;z=f+168|0;A=z;c[z>>2]=2544;B=z+4|0;C=B;F=z+8|0;G=z+16|0;H=G;I=z+32|0;J=I;K=z+36|0;L=z+48|0;cO(B|0,0,24);cO(I|0,0,16);h[L>>3]=+h[558];M=z+56|0;h[M>>3]=+h[526];N=z+64|0;h[N>>3]=+h[494];O=z+72|0;h[O>>3]=+h[540];R=z+80|0;a[R]=a[4100]&1;T=z+84|0;c[T>>2]=c[1103];c[z+88>>2]=c[1019];U=z+92|0;a[U]=0;V=z+93|0;a[V]=a[4044]&1;W=z+96|0;h[W>>3]=+h[519];X=z+104|0;c[X>>2]=c[997];Y=z+108|0;c[Y>>2]=c[1005];Z=z+112|0;h[Z>>3]=+h[533];_=z+120|0;h[_>>3]=.3333333333333333;$=z+128|0;h[$>>3]=1.1;ab=z+136|0;c[ab>>2]=100;ac=z+144|0;h[ac>>3]=1.5;ad=z+152|0;ae=z+268|0;af=z+272|0;ah=z+276|0;ai=z+280|0;aj=z+284|0;ak=z+288|0;al=z+292|0;am=al;an=z+296|0;ao=z+304|0;ap=z+308|0;aq=z+312|0;ar=z+316|0;as=ar;at=z+320|0;aw=z+324|0;ax=z+332|0;ay=ax;c[ay>>2]=0;c[z+336>>2]=0;c[z+340>>2]=0;az=z+348|0;aB=az;c[aB>>2]=0;c[z+352>>2]=0;c[z+356>>2]=0;aC=z+364|0;aD=aC;c[aD>>2]=0;c[z+368>>2]=0;c[z+372>>2]=0;aE=z+380|0;c[aE>>2]=0;aF=z+384|0;c[aF>>2]=0;aH=z+388|0;c[aH>>2]=0;aI=z+396|0;c[aI>>2]=0;aJ=z+400|0;c[aJ>>2]=0;aK=z+404|0;c[aK>>2]=0;aL=z+412|0;aM=z+544|0;aN=aM;c[aL>>2]=0;c[z+416>>2]=0;c[z+420>>2]=0;c[z+428>>2]=0;c[z+432>>2]=0;c[z+436>>2]=0;c[z+444>>2]=0;c[z+448>>2]=0;c[z+452>>2]=0;cO(ad|0,0,176);c[z+456>>2]=aN;aO=z+460|0;cO(aO|0,0,24);aQ=z+488|0;c[aQ>>2]=ar;ar=z+492|0;a[ar]=1;aR=z+496|0;h[aR>>3]=1.0;aS=z+504|0;h[aS>>3]=1.0;c[z+512>>2]=0;c[z+516>>2]=-1;aT=z+536|0;cO(z+520|0,0,16);a[aT]=1;aU=z+540|0;cO(aU|0,0,20);b5(aM,1048576);aV=z+560|0;a[aV]=0;aW=z+604|0;aX=z+664|0;cO(z+564|0,0,36);cO(aW|0,0,36);aY=z+680|0;cO(aX|0,-1|0,16);a[aY]=0;c[z>>2]=2640;c[z+684>>2]=c[951];c[z+688>>2]=c[1095];c[z+692>>2]=c[975];h[z+696>>3]=+h[483];a[z+704|0]=a[4492]&1;a[z+705|0]=a[4348]&1;a[z+706|0]=a[4524]&1;aZ=z+707|0;a[aZ]=1;c[z+708>>2]=0;c[z+712>>2]=0;c[z+716>>2]=0;c[z+720>>2]=1;a_=z+724|0;a[a_]=1;a0=z+732|0;a1=z+736|0;a2=z+760|0;c[a2>>2]=0;a3=z+764|0;c[a3>>2]=0;a4=z+768|0;c[a4>>2]=0;c[z+776>>2]=0;a5=z+780|0;c[a5>>2]=0;a6=z+784|0;c[a6>>2]=0;c[z+792>>2]=0;c[z+796>>2]=0;c[z+800>>2]=0;cO(a0|0,0,24);c[z+804>>2]=aN;a8=z+808|0;c[a8>>2]=0;c[z+812>>2]=0;c[z+816>>2]=0;a9=z+824|0;cO(a9|0,0,24);c[z+852>>2]=a8;a8=z+856|0;c[a8>>2]=0;ba=z+860|0;c[ba>>2]=0;c[z+864>>2]=2;bc=cF(8)|0;bd=bc;c[a8>>2]=bd;do{if((bc|0)==0){if((c[(a$()|0)>>2]|0)!=12){break}av(aP(1)|0,3120,0);return 0}}while(0);bc=c[ba>>2]|0;L9:do{if((bc|0)<1){be=bc;bf=bd;while(1){bg=bf+(be<<2)|0;if((bg|0)!=0){c[bg>>2]=0}if((be|0)>=0){break L9}be=be+1|0;bf=c[a8>>2]|0}}}while(0);c[ba>>2]=1;ba=z+876|0;c[z+920>>2]=0;c[z+924>>2]=0;a8=u|0;cO(z+868|0,0,20);cO(z+892|0,0,24);bd=u+4|0;c[bd>>2]=0;bc=u+8|0;c[bc>>2]=2;bf=cF(8)|0;c[a8>>2]=bf;do{if((bf|0)==0){if((c[(a$()|0)>>2]|0)!=12){break}av(aP(1)|0,3120,0);return 0}}while(0);c[bf>>2]=-2;c[bd>>2]=1;a[aV]=1;c[z+928>>2]=bS(aN,u,0)|0;a[aT]=0;aT=c[a8>>2]|0;if((aT|0)!=0){c[bd>>2]=0;cG(aT);c[a8>>2]=0;c[bc>>2]=0}c[952]=A;bc=y|0;c[bc>>2]=b;b=y+4|0;c[b>>2]=0;a8=y+8|0;c[a8>>2]=e;aT=w|0;c[aT>>2]=0;bd=w+4|0;c[bd>>2]=0;u=w+8|0;c[u>>2]=0;a[x]=0;aV=aU;aU=z+580|0;bf=z+576|0;be=aL;aL=s|0;bg=t|0;bh=ax;ax=z+588|0;bi=ax;bj=az;az=aC;aC=z+200|0;bk=aO;bl=z+476|0;bm=z+472|0;bn=z+876|0;bo=z+904|0;bp=z+808|0;bq=z+776|0;br=z+744|0;bs=0;bt=e;L26:while(1){L28:do{if((bs|0)<(bt|0)){e=c[bc>>2]|0;bu=bs;while(1){bv=a[e+bu|0]|0;if((bv&255)<=8){bw=bu;break L28}if(!((bv&255)<14|bv<<24>>24==32)){bw=bu;break L28}bv=bu+1|0;c[b>>2]=bv;if((bv|0)<(bt|0)){bu=bv}else{bw=bv;break}}}else{bw=bs}}while(0);bx=(a[x]&1)==0;if(!((bw|0)<(bt|0)&bx)){by=233;break}bu=c[bc>>2]|0;e=a[bu+bw|0]|0;L36:do{if((e<<24>>24|0)==112){bv=bw+1|0;c[b>>2]=bv;do{if((bv|0)<(bt|0)){if((a[bu+bv|0]|0)!=32){bA=bv;break}bB=bw+2|0;c[b>>2]=bB;if((bB|0)>=(bt|0)){bA=bB;break}if((a[bu+bB|0]|0)!=99){bA=bB;break}bB=bw+3|0;c[b>>2]=bB;if((bB|0)>=(bt|0)){bA=bB;break}if((a[bu+bB|0]|0)!=110){bA=bB;break}bB=bw+4|0;c[b>>2]=bB;if((bB|0)>=(bt|0)){bA=bB;break}if((a[bu+bB|0]|0)!=102){bA=bB;break}c[b>>2]=bw+5;bz(y,x)|0;bz(y,x)|0;break L36}else{bA=bv}}while(0);if((bA|0)<(bt|0)){bC=d[bu+bA|0]|0}else{bC=-1}aA(920,(bD=i,i=i+8|0,c[bD>>2]=bC,bD)|0)|0;i=bD;a[x]=1}else if((e<<24>>24|0)==99){bv=bw;while(1){if((bv|0)<(bt|0)){bB=(a[bu+bv|0]|0)==10;bE=bv+1|0;c[b>>2]=bE;if(bB){break L36}else{bF=bE}}else{bE=bv+1|0;c[b>>2]=bE;bF=bE}if((bF|0)<(bt|0)){bv=bF}else{break}}}else{a[v]=0;bv=c[aT>>2]|0;if((bv|0)!=0){c[bd>>2]=0}bE=bz(y,v)|0;L61:do{if((bE|0)!=0){bB=bE;bG=bv;while(1){if((a[v]&1)!=0){break L61}bH=((bB|0)>-1?bB:-bB|0)-1|0;bI=c[aV>>2]|0;if((bH|0)>=(bI|0)){bJ=bI;do{bI=c[aU>>2]|0;if((bI|0)>0){bK=bI-1|0;bI=c[(c[bf>>2]|0)+(bK<<2)>>2]|0;c[aU>>2]=bK;bL=bI}else{c[aV>>2]=bJ+1;bL=bJ}bI=bL<<1;c[aL>>2]=bI;bO(be,s);bK=bI|1;c[bg>>2]=bK;bO(be,t);bM=a[3232]|0;bN=bL+1|0;b$(bh,bN);a[(c[ay>>2]|0)+bL|0]=bM?2:0;if((c[aJ>>2]|0)<(bN|0)){bM=c[aK>>2]|0;do{if((bM|0)<(bN|0)){bU=bL+2-bM&-2;bY=(bM>>1)+2&-2;bZ=(bU|0)>(bY|0)?bU:bY;if((bZ|0)>(2147483647-bM|0)){by=143;break L26}bY=c[aI>>2]|0;bU=bZ+bM|0;c[aK>>2]=bU;bZ=cH(bY,bU<<3)|0;c[aI>>2]=bZ;if((bZ|0)!=0){break}if((c[(a$()|0)>>2]|0)==12){by=143;break L26}}}while(0);bM=c[aJ>>2]|0;if((bM|0)<(bN|0)){bZ=bM;do{bM=(c[aI>>2]|0)+(bZ<<3)|0;if((bM|0)!=0){bU=bM;c[bU>>2]=0;c[bU+4>>2]=0}bZ=bZ+1|0;}while((bZ|0)<(bN|0))}c[aJ>>2]=bN}bZ=(c[aI>>2]|0)+(bL<<3)|0;c[bZ>>2]=-1;c[bZ+4>>2]=0;if((a[V]&1)==0){b0=0.0}else{b1=+h[O>>3]*1389796.0;b4=b1- +(~~(b1/2147483647.0)|0)*2147483647.0;h[O>>3]=b4;b0=b4/2147483647.0*1.0e-5}if((c[at>>2]|0)<(bN|0)){bZ=c[aw>>2]|0;do{if((bZ|0)<(bN|0)){bU=bL+2-bZ&-2;bM=(bZ>>1)+2&-2;bY=(bU|0)>(bM|0)?bU:bM;if((bY|0)>(2147483647-bZ|0)){by=157;break L26}bM=c[as>>2]|0;bU=bY+bZ|0;c[aw>>2]=bU;bY=cH(bM,bU<<3)|0;c[as>>2]=bY;if((bY|0)!=0){break}if((c[(a$()|0)>>2]|0)==12){by=157;break L26}}}while(0);bZ=c[at>>2]|0;if((bZ|0)<(bN|0)){bY=bZ;do{bZ=(c[as>>2]|0)+(bY<<3)|0;if((bZ|0)!=0){h[bZ>>3]=0.0}bY=bY+1|0;}while((bY|0)<(bN|0))}c[at>>2]=bN}h[(c[as>>2]|0)+(bL<<3)>>3]=b0;bP(bi,bL,0);bP(bj,bL,1);b$(az,bN);a[(c[aD>>2]|0)+bL|0]=2;if((c[aF>>2]|0)<(bN|0)){bY=c[aH>>2]|0;do{if((bY|0)<(bN|0)){bZ=bL+2-bY&-2;bU=(bY>>1)+2&-2;bM=(bZ|0)>(bU|0)?bZ:bU;if((bM|0)>(2147483647-bY|0)){by=172;break L26}bU=c[aE>>2]|0;bZ=bM+bY|0;c[aH>>2]=bZ;bM=cH(bU,bZ)|0;c[aE>>2]=bM;if((bM|0)!=0){break}if((c[(a$()|0)>>2]|0)==12){by=172;break L26}}}while(0);bY=c[aF>>2]|0;if((bY|0)<(bN|0)){bM=bY;do{bY=(c[aE>>2]|0)+bM|0;if((bY|0)!=0){a[bY]=0}bM=bM+1|0;}while((bM|0)<(bN|0))}c[aF>>2]=bN}bM=c[ak>>2]|0;do{if((bM|0)<(bN|0)){bY=bL+2-bM&-2;bZ=(bM>>1)+2&-2;bU=(bY|0)>(bZ|0)?bY:bZ;if((bU|0)>(2147483647-bM|0)){by=183;break L26}bZ=c[ai>>2]|0;bY=bU+bM|0;c[ak>>2]=bY;bU=cH(bZ,bY<<2)|0;c[ai>>2]=bU;if((bU|0)!=0){break}if((c[(a$()|0)>>2]|0)==12){by=183;break L26}}}while(0);bM=(c[aE>>2]|0)+bL|0;if((a[bM]|0)==0){bU=c[aC>>2]|0;bY=c[aC+4>>2]|0;bZ=1;b6=0;b8=(E=+(bU>>>0)+ +(bY|0)*4294967296.0+(+(bZ>>>0)+ +(b6|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[aC>>2]=~~(+(bU>>>0)+ +(bY|0)*4294967296.0+(+(bZ>>>0)+ +(b6|0)*4294967296.0))>>>0;c[aC+4>>2]=b8}a[bM]=1;if((c[bl>>2]|0)>(bL|0)){if((c[(c[bm>>2]|0)+(bL<<2)>>2]|0)<=-1){by=189}}else{by=189}do{if((by|0)==189){by=0;if((a[(c[aE>>2]|0)+bL|0]|0)==0){break}b7(bk,bL)}}while(0);bP(bn,bL,0);bP(bo,bL,0);if((a[a_]&1)!=0){cf(bp,bI);cf(bp,bK);if((c[a3>>2]|0)<(bN|0)){bM=c[a4>>2]|0;do{if((bM|0)<(bN|0)){b8=bL+2-bM&-2;b6=(bM>>1)+2&-2;bZ=(b8|0)>(b6|0)?b8:b6;if((bZ|0)>(2147483647-bM|0)){by=201;break L26}b6=c[a2>>2]|0;b8=bZ+bM|0;c[a4>>2]=b8;bZ=cH(b6,b8*12|0)|0;c[a2>>2]=bZ;if((bZ|0)!=0){break}if((c[(a$()|0)>>2]|0)==12){by=201;break L26}}}while(0);bM=c[a3>>2]|0;if((bM|0)<(bN|0)){bK=bM;do{bM=c[a2>>2]|0;bI=bM+(bK*12|0)|0;if((bI|0)!=0){c[bI>>2]=0;c[bM+(bK*12|0)+4>>2]=0;c[bM+(bK*12|0)+8>>2]=0}bK=bK+1|0;}while((bK|0)<(bN|0))}c[a3>>2]=bN}bK=c[a2>>2]|0;if((c[bK+(bL*12|0)>>2]|0)!=0){c[bK+(bL*12|0)+4>>2]=0}if((c[a5>>2]|0)<(bN|0)){bK=c[a6>>2]|0;do{if((bK|0)<(bN|0)){bM=bL+2-bK&-2;bI=(bK>>1)+2&-2;bZ=(bM|0)>(bI|0)?bM:bI;if((bZ|0)>(2147483647-bK|0)){by=215;break L26}bI=c[bq>>2]|0;bM=bZ+bK|0;c[a6>>2]=bM;bZ=cH(bI,bM)|0;c[bq>>2]=bZ;if((bZ|0)!=0){break}if((c[(a$()|0)>>2]|0)==12){by=215;break L26}}}while(0);bK=c[a5>>2]|0;if((bK|0)<(bN|0)){bZ=bK;do{a[(c[bq>>2]|0)+bZ|0]=0;bZ=bZ+1|0;}while((bZ|0)<(bN|0))}c[a5>>2]=bN}bP(br,bL,0);cg(a9,bL)}bJ=c[aV>>2]|0;}while((bH|0)>=(bJ|0))}bJ=bH<<1|(bB|0)<1;bZ=c[bd>>2]|0;do{if((bZ|0)==(c[u>>2]|0)){bK=(bZ>>1)+2&-2;bM=(bK|0)<2?2:bK;if((bM|0)>(2147483647-bZ|0)){b9=bG;by=227;break L26}bK=bM+bZ|0;c[u>>2]=bK;bM=cH(bG,bK<<2)|0;bK=bM;c[aT>>2]=bK;if((bM|0)!=0){ca=bK;break}if((c[(a$()|0)>>2]|0)==12){b9=bK;by=227;break L26}else{ca=bK}}else{ca=bG}}while(0);c[bd>>2]=bZ+1;bH=ca+(bZ<<2)|0;if((bH|0)!=0){c[bH>>2]=bJ}bH=bz(y,v)|0;if((bH|0)==0){break}else{bB=bH;bG=ca}}}}while(0);a[x]=a[v]&1;ci(z,w)|0}}while(0);bs=c[b>>2]|0;bt=c[a8>>2]|0}if((by|0)==143){av(aP(1)|0,3120,0);return 0}else if((by|0)==157){av(aP(1)|0,3120,0);return 0}else if((by|0)==172){av(aP(1)|0,3120,0);return 0}else if((by|0)==183){av(aP(1)|0,3120,0);return 0}else if((by|0)==201){av(aP(1)|0,3120,0);return 0}else if((by|0)==215){av(aP(1)|0,3120,0);return 0}else if((by|0)==227){av(aP(1)|0,3120,0);return 0}else if((by|0)==233){a8=c[aT>>2]|0;if((a8|0)!=0){c[bd>>2]=0;cG(a8);c[aT>>2]=0;c[u>>2]=0}if(!bx){cb=3280;ce(z);i=f;return cb|0}ch(z,1)|0;if((a[ar]&1)==0){cb=1048;ce(z);i=f;return cb|0}bx=c[ao>>2]|0;do{if((bx|0)==0){if((c[ap>>2]|0)>=0){break}u=c[aq>>2]|0;do{if((u|0)<0){aT=1-u&-2;a8=(u>>1)+2&-2;bd=(aT|0)>(a8|0)?aT:a8;if((bd|0)<=(2147483647-u|0)){a8=bd+u|0;c[aq>>2]=a8;bd=cH(bx,a8<<2)|0;a8=bd;c[ao>>2]=a8;if((bd|0)!=0){cc=a8;break}if((c[(a$()|0)>>2]|0)!=12){cc=a8;break}}av(aP(1)|0,3120,0);return 0}else{cc=bx}}while(0);u=c[ap>>2]|0;L227:do{if((u|0)<0){a8=u;bd=cc;while(1){aT=bd+(a8<<2)|0;if((aT|0)!=0){c[aT>>2]=0}aT=a8+1|0;if((aT|0)>=0){break L227}a8=aT;bd=c[ao>>2]|0}}}while(0);c[ap>>2]=0}else{c[ap>>2]=0}}while(0);cc=q|0;c[cc>>2]=0;bx=q+4|0;c[bx>>2]=0;aq=q+8|0;c[aq>>2]=0;u=(a[a_]&1)!=0;do{if(u){bd=c[ap>>2]|0;if((bd|0)>0){a8=0;aT=bd;while(1){bd=c[(c[ao>>2]|0)+(a8<<2)>>2]>>1;c[r>>2]=bd;bt=(c[ba>>2]|0)+bd|0;if((a[bt]|0)==0){a[bt]=1;bQ(q,r);cd=c[ap>>2]|0}else{cd=aT}bt=a8+1|0;if((bt|0)<(cd|0)){a8=bt;aT=cd}else{break}}}aT=ch(z,0)|0;a8=aT&1^1;if(aT){by=269;break}if((c[z+44>>2]|0)<=0){cj=a8;break}aG(248)|0;cj=a8}else{by=269}}while(0);do{if((by|0)==269){cd=B;if((c[C>>2]|0)!=0){c[F>>2]=0}if((c[K>>2]|0)>0){r=0;do{a[(c[H>>2]|0)+(c[(c[J>>2]|0)+(r<<2)>>2]|0)|0]=0;r=r+1|0;}while((r|0)<(c[K>>2]|0))}if((c[J>>2]|0)!=0){c[K>>2]=0}if((a[ar]&1)==0){cj=a[3240]&1;break}r=ad;q=c[r>>2]|0;a8=c[r+4>>2]|0;aT=1;bt=0;bd=(E=+(q>>>0)+ +(a8|0)*4294967296.0+(+(aT>>>0)+ +(bt|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[r>>2]=~~(+(q>>>0)+ +(a8|0)*4294967296.0+(+(aT>>>0)+ +(bt|0)*4294967296.0))>>>0;c[r+4>>2]=bd;bd=z+208|0;b0=+h[_>>3]*+(c[bd>>2]|0);r=z+640|0;h[r>>3]=b0;b4=+(c[X>>2]|0);if(b0<b4){h[r>>3]=b4}bt=c[ab>>2]|0;aT=z+648|0;h[aT>>3]=+(bt|0);a8=z+656|0;c[a8>>2]=bt;bt=a[3232]|0?2:0;q=z+44|0;if((c[q>>2]|0)>0){aG(8)|0;aG(168)|0;aG(88)|0;aG(248)|0;ck=a[3232]|0?2:0}else{ck=bt}b=z+192|0;bs=z+184|0;L270:do{if((((ck&255)>>>1^1)&bt<<24>>24==ck<<24>>24|ck&bt&255|0)==0){cl=bt}else{w=aX;v=z+672|0;x=p|0;ca=p+4|0;y=p+8|0;b9=z+160|0;bL=al;a9=z+168|0;br=z+224|0;a5=z+216|0;bq=z+232|0;a6=aM;a2=z+556|0;a3=z+548|0;a4=z;bp=z+464|0;bo=aO;bn=z+176|0;bk=ax;ak=m|0;aF=z+616|0;aH=aF;az=z+620|0;bj=z+624|0;bi=z+240|0;at=z+248|0;aw=l|0;V=aW;aJ=z+608|0;aK=z+612|0;bh=aF;aF=j|0;t=G;be=I;bg=k|0;s=z+528|0;aL=0;L272:while(1){b4=+h[Z>>3];if((a[R]&1)==0){cn=+S(+b4,+(+(aL|0)))}else{aU=aL+1|0;if((aL|0)>0){bf=1;bF=0;do{bF=bF+1|0;bf=bf<<1|1;}while((bf|0)<(aU|0));co=bf-1|0;cp=bF}else{co=0;cp=0}if((co|0)==(aL|0)){cq=cp}else{aU=aL;bw=cp;bC=co;while(1){bA=bC>>1;bc=bw-1|0;bu=(aU|0)%(bA|0)|0;e=bA-1|0;if((e|0)==(bu|0)){cq=bc;break}else{aU=bu;bw=bc;bC=e}}}cn=+S(+b4,+(+(cq|0)))}bC=~~(cn*+(c[Y>>2]|0));c[x>>2]=0;c[ca>>2]=0;c[y>>2]=0;bw=c[b9>>2]|0;aU=c[b9+4>>2]|0;bF=1;bf=0;e=(E=+(bw>>>0)+ +(aU|0)*4294967296.0+(+(bF>>>0)+ +(bf|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[b9>>2]=~~(+(bw>>>0)+ +(aU|0)*4294967296.0+(+(bF>>>0)+ +(bf|0)*4294967296.0))>>>0;c[b9+4>>2]=e;e=(bC|0)<0;bf=0;bF=0;L287:while(1){aU=e|(bf|0)<(bC|0);while(1){cr=bR(A)|0;if((cr|0)!=-1){break}if(!aU){by=469;break L287}if((a[aY]&1)!=0){by=469;break L287}bw=c[w>>2]|0;bc=c[w+4>>2]|0;bu=0;if(!((bc|0)<(bu|0)|(bc|0)==(bu|0)&bw>>>0<0>>>0)){bu=c[b+4>>2]|0;if(!(bu>>>0<bc>>>0|bu>>>0==bc>>>0&(c[b>>2]|0)>>>0<bw>>>0)){by=469;break L287}}bw=c[v>>2]|0;bc=c[v+4>>2]|0;bu=0;if(!((bc|0)<(bu|0)|(bc|0)==(bu|0)&bw>>>0<0>>>0)){bu=c[bs+4>>2]|0;if(!(bu>>>0<bc>>>0|bu>>>0==bc>>>0&(c[bs>>2]|0)>>>0<bw>>>0)){by=469;break L287}}if((c[an>>2]|0)==0){if(!(b_(A)|0)){by=480;break L287}}bw=c[af>>2]|0;do{if(+(bw-(c[aj>>2]|0)|0)>=+h[r>>3]){b0=+h[aR>>3]/+(bw|0);b2(c[ae>>2]|0,bw,aN);bc=c[af>>2]|0;if((bc|0)>0){bu=0;bA=0;bv=bc;while(1){bE=c[ae>>2]|0;bG=c[bE+(bA<<2)>>2]|0;bB=c[a6>>2]|0;bH=bB+(bG<<2)|0;bK=bH;bM=c[bH>>2]|0;do{if(bM>>>0>95){bI=bB+(bG+1<<2)|0;b8=c[bI>>2]|0;b6=b8>>1;if((a[(c[ay>>2]|0)+b6|0]|0)==(b8&1)){b8=c[(c[aI>>2]|0)+(b6<<3)>>2]|0;if((b8|0)!=-1&(b8|0)==(bG|0)){by=494;break}}if((bA|0)>=((bv|0)/2|0|0)){if(+g[bK+4+(bM>>>5<<2)>>2]>=b0){by=494;break}}bV(A,bG,0);b8=c[bI>>2]|0;bI=b8>>1;do{if((a[(c[ay>>2]|0)+bI|0]|0)==(b8&1)){b6=(c[aI>>2]|0)+(bI<<3)|0;bY=c[b6>>2]|0;if((bY|0)==-1){break}if(((c[a6>>2]|0)+(bY<<2)|0)!=(bH|0)){break}c[b6>>2]=-1}}while(0);c[bH>>2]=c[bH>>2]&-4|1;bI=c[(c[a6>>2]|0)+(bG<<2)>>2]|0;c[a2>>2]=((((bI>>>3&1)+(bI>>>5)<<2)+4|0)>>>2)+(c[a2>>2]|0);cs=bu}else{by=494}}while(0);if((by|0)==494){by=0;c[bE+(bu<<2)>>2]=bG;cs=bu+1|0}bH=bA+1|0;bM=c[af>>2]|0;if((bH|0)<(bM|0)){bu=cs;bA=bH;bv=bM}else{ct=cs;cu=bH;cv=bM;break}}}else{ct=0;cu=0;cv=bc}bv=cu-ct|0;if((bv|0)>0){c[af>>2]=cv-bv}if(+((c[a2>>2]|0)>>>0>>>0)<=+h[W>>3]*+((c[a3>>2]|0)>>>0>>>0)){break}a7[c[(c[a4>>2]|0)+8>>2]&63](A)}}while(0);while(1){bw=c[an>>2]|0;if((bw|0)>=(c[ap>>2]|0)){by=528;break}cw=c[(c[ao>>2]|0)+(bw<<2)>>2]|0;cx=a[(c[ay>>2]|0)+(cw>>1)|0]|0;cy=cw&1;if(cx<<24>>24!=cy<<24>>24){by=503;break}c[n>>2]=c[aj>>2];bQ(bL,n)}if((by|0)==503){by=0;if((cx^cy)<<24>>24==(a[3240]&1)){by=504;break L287}if((cw|0)==-2){by=528}else{cz=cw}}if((by|0)==528){by=0;bw=c[a9>>2]|0;bN=c[a9+4>>2]|0;bv=1;bA=0;bu=(E=+(bw>>>0)+ +(bN|0)*4294967296.0+(+(bv>>>0)+ +(bA|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[a9>>2]=~~(+(bw>>>0)+ +(bN|0)*4294967296.0+(+(bv>>>0)+ +(bA|0)*4294967296.0))>>>0;c[a9+4>>2]=bu;b0=+h[O>>3]*1389796.0;b1=b0- +(~~(b0/2147483647.0)|0)*2147483647.0;h[O>>3]=b1;do{if(b1/2147483647.0<+h[N>>3]){bu=c[bp>>2]|0;if((bu|0)==0){cA=-1;break}b0=b1*1389796.0;cB=b0- +(~~(b0/2147483647.0)|0)*2147483647.0;h[O>>3]=cB;bA=c[(c[bo>>2]|0)+(~~(+(bu|0)*(cB/2147483647.0))<<2)>>2]|0;bu=a[(c[ay>>2]|0)+bA|0]|0;bv=a[3232]|0?2:0;if((((bv&255)>>>1^1)&bu<<24>>24==bv<<24>>24|bv&bu&255|0)==0){cA=bA;break}if((a[(c[aE>>2]|0)+bA|0]|0)==0){cA=bA;break}bu=c[bn>>2]|0;bv=c[bn+4>>2]|0;bN=1;bw=0;bM=(E=+(bu>>>0)+ +(bv|0)*4294967296.0+(+(bN>>>0)+ +(bw|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[bn>>2]=~~(+(bu>>>0)+ +(bv|0)*4294967296.0+(+(bN>>>0)+ +(bw|0)*4294967296.0))>>>0;c[bn+4>>2]=bM;cA=bA}else{cA=-1}}while(0);L346:while(1){do{if((cA|0)!=-1){bA=a[(c[ay>>2]|0)+cA|0]|0;cC=a[3232]|0?2:0;cD=(cC&255)>>>1^1;if((cD&bA<<24>>24==cC<<24>>24|cC&bA&255|0)==0){break}if((a[(c[aE>>2]|0)+cA|0]|0)!=0){break L346}}}while(0);bc=c[bp>>2]|0;if((bc|0)==0){cE=0;break L287}bA=c[bo>>2]|0;bM=c[bA>>2]|0;c[bA>>2]=c[bA+(bc-1<<2)>>2];c[(c[bm>>2]|0)+(c[c[bo>>2]>>2]<<2)>>2]=0;c[(c[bm>>2]|0)+(bM<<2)>>2]=-1;bc=(c[bp>>2]|0)-1|0;c[bp>>2]=bc;if((bc|0)<=1){cA=bM;continue}bA=c[bo>>2]|0;bw=c[bA>>2]|0;bN=0;bv=1;bu=bc;bc=bA;while(1){bA=(bN<<1)+2|0;if((bA|0)<(bu|0)){bH=c[bc+(bA<<2)>>2]|0;bK=c[bc+(bv<<2)>>2]|0;bB=c[c[aQ>>2]>>2]|0;b1=+h[bB+(bH<<3)>>3];cB=+h[bB+(bK<<3)>>3];if(b1>cB){cI=bA;cJ=bH;cK=bB;cL=b1}else{cM=bK;cN=bB;cP=cB;by=542}}else{bB=c[bc+(bv<<2)>>2]|0;bK=c[c[aQ>>2]>>2]|0;cM=bB;cN=bK;cP=+h[bK+(bB<<3)>>3];by=542}if((by|0)==542){by=0;cI=bv;cJ=cM;cK=cN;cL=cP}if(cL<=+h[cK+(bw<<3)>>3]){cQ=bN;cR=bc;break}c[bc+(bN<<2)>>2]=cJ;c[(c[bm>>2]|0)+(c[(c[bo>>2]|0)+(bN<<2)>>2]<<2)>>2]=bN;bB=cI<<1|1;bK=c[bp>>2]|0;bH=c[bo>>2]|0;if((bB|0)<(bK|0)){bN=cI;bv=bB;bu=bK;bc=bH}else{cQ=cI;cR=bH;break}}c[cR+(cQ<<2)>>2]=bw;c[(c[bm>>2]|0)+(bw<<2)>>2]=cQ;cA=bM}bc=a[(c[aD>>2]|0)+cA|0]|0;do{if((bc<<24>>24==cC<<24>>24&cD|bc&cC&255|0)==0){cS=bc<<24>>24==0|cA<<1}else{if((a[U]&1)==0){cS=(a[(c[aB>>2]|0)+cA|0]|0)!=0|cA<<1;break}else{cB=+h[O>>3]*1389796.0;b1=cB- +(~~(cB/2147483647.0)|0)*2147483647.0;h[O>>3]=b1;cS=b1/2147483647.0<.5|cA<<1;break}}}while(0);if((cS|0)==-2){cE=0;break L287}else{cz=cS}}c[o>>2]=c[aj>>2];bQ(bL,o);bc=cz>>1;a[(c[ay>>2]|0)+bc|0]=(cz&1^1)&255^1;bu=(c[aI>>2]|0)+(bc<<3)|0;bc=c[an>>2]|0;c[bu>>2]=-1;c[bu+4>>2]=bc;bc=c[aj>>2]|0;c[aj>>2]=bc+1;c[(c[ai>>2]|0)+(bc<<2)>>2]=cz}aU=c[b>>2]|0;bJ=c[b+4>>2]|0;bZ=1;bc=0;bu=(E=+(aU>>>0)+ +(bJ|0)*4294967296.0+(+(bZ>>>0)+ +(bc|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[b>>2]=~~(+(aU>>>0)+ +(bJ|0)*4294967296.0+(+(bZ>>>0)+ +(bc|0)*4294967296.0))>>>0;c[b+4>>2]=bu;bu=bf+1|0;if((c[an>>2]|0)==0){by=296;break}if((bF|0)==0){cT=c[ca>>2]|0}else{c[ca>>2]=0;cT=0}do{if((cT|0)==(c[y>>2]|0)){bc=(cT>>1)+2&-2;bZ=(bc|0)<2?2:bc;if((bZ|0)>(2147483647-cT|0)){by=318;break L272}bc=c[x>>2]|0;bJ=bZ+cT|0;c[y>>2]=bJ;bZ=cH(bc,bJ<<2)|0;bJ=bZ;c[x>>2]=bJ;if((bZ|0)!=0){cU=bJ;break}if((c[(a$()|0)>>2]|0)==12){by=318;break L272}else{cU=bJ}}else{cU=c[x>>2]|0}}while(0);bJ=cU+(cT<<2)|0;if((bJ|0)!=0){c[bJ>>2]=0}c[ca>>2]=cT+1;bJ=cr;bZ=0;bc=(c[aj>>2]|0)-1|0;aU=-2;while(1){bv=(c[a6>>2]|0)+(bJ<<2)|0;bN=bv;bH=c[bv>>2]|0;do{if((bH&4|0)!=0){bK=bN+4+(bH>>>5<<2)|0;b1=+h[aR>>3]+ +g[bK>>2];g[bK>>2]=b1;if(b1<=1.0e20){break}if((c[af>>2]|0)>0){bK=0;do{bB=(c[a6>>2]|0)+(c[(c[ae>>2]|0)+(bK<<2)>>2]<<2)|0;bA=bB+4+((c[bB>>2]|0)>>>5<<2)|0;g[bA>>2]=+g[bA>>2]*1.0e-20;bK=bK+1|0;}while((bK|0)<(c[af>>2]|0))}h[aR>>3]=+h[aR>>3]*1.0e-20}}while(0);bH=(aU|0)!=-2|0;if(bH>>>0<(c[bv>>2]|0)>>>5>>>0){bK=bH;bH=bZ;while(1){bM=c[bN+4+(bK<<2)>>2]|0;c[ak>>2]=bM;bw=bM>>1;do{if((a[(c[bk>>2]|0)+bw|0]|0)==0){if((c[(c[aI>>2]|0)+(bw<<3)+4>>2]|0)<=0){cV=bH;break}bM=(c[as>>2]|0)+(bw<<3)|0;b1=+h[aS>>3]+ +h[bM>>3];h[bM>>3]=b1;if(b1>1.0e+100){if((c[aV>>2]|0)>0){bM=0;do{bA=(c[as>>2]|0)+(bM<<3)|0;h[bA>>3]=+h[bA>>3]*1.0e-100;bM=bM+1|0;}while((bM|0)<(c[aV>>2]|0))}h[aS>>3]=+h[aS>>3]*1.0e-100}do{if((c[bl>>2]|0)>(bw|0)){bM=c[(c[bm>>2]|0)+(bw<<2)>>2]|0;if((bM|0)<=-1){break}bG=c[bo>>2]|0;bE=c[bG+(bM<<2)>>2]|0;L415:do{if((bM|0)==0){cW=0;cX=bG}else{bA=bM;bB=bG;while(1){bI=bA-1>>1;b8=c[bB+(bI<<2)>>2]|0;b6=c[c[aQ>>2]>>2]|0;if(+h[b6+(bE<<3)>>3]<=+h[b6+(b8<<3)>>3]){cW=bA;cX=bB;break L415}c[bB+(bA<<2)>>2]=b8;c[(c[bm>>2]|0)+(c[(c[bo>>2]|0)+(bI<<2)>>2]<<2)>>2]=bA;b8=c[bo>>2]|0;if((bI|0)==0){cW=0;cX=b8;break}else{bA=bI;bB=b8}}}}while(0);c[cX+(cW<<2)>>2]=bE;c[(c[bm>>2]|0)+(bE<<2)>>2]=cW}}while(0);a[(c[bk>>2]|0)+bw|0]=1;if((c[(c[aI>>2]|0)+(bw<<3)+4>>2]|0)<(c[an>>2]|0)){bX(p,m);cV=bH;break}else{cV=bH+1|0;break}}else{cV=bH}}while(0);bw=bK+1|0;if((bw|0)<((c[bv>>2]|0)>>>5|0)){bK=bw;bH=cV}else{cY=cV;break}}}else{cY=bZ}bH=c[ai>>2]|0;bK=c[bk>>2]|0;bv=bc;while(1){cZ=bv-1|0;c_=c[bH+(bv<<2)>>2]|0;c$=c_>>1;c0=bK+c$|0;if((a[c0]|0)==0){bv=cZ}else{break}}bv=c[(c[aI>>2]|0)+(c$<<3)>>2]|0;a[c0]=0;bK=cY-1|0;if((bK|0)>0){bJ=bv;bZ=bK;bc=cZ;aU=c_}else{break}}c[c[x>>2]>>2]=c_^1;aU=c[aH>>2]|0;if((aU|0)==0){c1=c[az>>2]|0}else{c[az>>2]=0;c1=0}bc=c[ca>>2]|0;if((c1|0)<(bc|0)){bZ=c[bj>>2]|0;do{if((bZ|0)<(bc|0)){bJ=bc+1-bZ&-2;bK=(bZ>>1)+2&-2;bv=(bJ|0)>(bK|0)?bJ:bK;if((bv|0)>(2147483647-bZ|0)){by=356;break L272}bK=bv+bZ|0;c[bj>>2]=bK;bv=cH(aU,bK<<2)|0;bK=bv;c[aH>>2]=bK;if((bv|0)!=0){c2=bK;break}if((c[(a$()|0)>>2]|0)==12){by=356;break L272}else{c2=bK}}else{c2=aU}}while(0);aU=c[az>>2]|0;if((aU|0)<(bc|0)){bZ=aU;aU=c2;while(1){bK=aU+(bZ<<2)|0;if((bK|0)!=0){c[bK>>2]=0}bK=bZ+1|0;if((bK|0)>=(bc|0)){break}bZ=bK;aU=c[aH>>2]|0}c3=c[ca>>2]|0}else{c3=bc}c[az>>2]=bc;c4=c3}else{c4=bc}if((c4|0)>0){aU=c[x>>2]|0;bZ=0;do{c[(c[aH>>2]|0)+(bZ<<2)>>2]=c[aU+(bZ<<2)>>2];bZ=bZ+1|0;}while((bZ|0)<(c4|0))}bZ=c[T>>2]|0;do{if((bZ|0)==1){if((c4|0)<=1){c5=1;c6=1;c7=c4;break}aU=c[x>>2]|0;bc=1;bK=1;while(1){bv=c[aU+(bc<<2)>>2]|0;bJ=c[aI>>2]|0;bH=c[bJ+(bv>>1<<3)>>2]|0;L461:do{if((bH|0)==-1){c[aU+(bK<<2)>>2]=bv;c8=bK+1|0}else{bN=(c[a6>>2]|0)+(bH<<2)|0;bw=bN;bG=c[bN>>2]|0;if(bG>>>0<=63){c8=bK;break}bN=c[bk>>2]|0;bM=bG>>>5;bG=1;while(1){bB=c[bw+4+(bG<<2)>>2]>>1;if((a[bN+bB|0]|0)==0){if((c[bJ+(bB<<3)+4>>2]|0)>0){break}}bB=bG+1|0;if((bB|0)<(bM|0)){bG=bB}else{c8=bK;break L461}}c[aU+(bK<<2)>>2]=bv;c8=bK+1|0}}while(0);bv=bc+1|0;if((bv|0)<(c4|0)){bc=bv;bK=c8}else{c5=c8;c6=bv;c7=c4;break}}}else if((bZ|0)==2){if((c4|0)<=1){c5=1;c6=1;c7=c4;break}bK=1;bc=1;aU=c[x>>2]|0;bv=c4;while(1){bJ=c[aU+(bK<<2)>>2]|0;bH=c[aI>>2]|0;bG=c[bH+(bJ>>1<<3)>>2]|0;L476:do{if((bG|0)==-1){c9=aU;da=bJ;by=412}else{c[aw>>2]=bJ;bM=(c[a6>>2]|0)+(bG<<2)|0;if((c[V>>2]|0)==0){db=1;dc=bM;dd=bH;de=bJ}else{c[aJ>>2]=0;db=1;dc=bM;dd=bH;de=bJ}L480:while(1){do{if(db>>>0<(c[dc>>2]|0)>>>5>>>0){bM=c[dc+4+(db<<2)>>2]|0;bN=bM>>1;if((c[dd+(bN<<3)+4>>2]|0)==0){df=db;dg=dc;dh=dd;di=de;break}bw=a[(c[bk>>2]|0)+bN|0]|0;if((bw-1&255)<2){df=db;dg=dc;dh=dd;di=de;break}dj=c[aJ>>2]|0;dk=(dj|0)==(c[aK>>2]|0);if((c[dd+(bN<<3)>>2]|0)==-1|bw<<24>>24==3){break L480}if(dk){bw=(dj>>1)+2&-2;bB=(bw|0)<2?2:bw;if((bB|0)>(2147483647-dj|0)){by=400;break L272}bw=c[V>>2]|0;bA=bB+dj|0;c[aK>>2]=bA;bB=cH(bw,bA<<3)|0;bA=bB;c[V>>2]=bA;if((bB|0)==0){if((c[(a$()|0)>>2]|0)==12){by=400;break L272}}dl=c[aJ>>2]|0;dm=bA}else{dl=dj;dm=c[V>>2]|0}c[aJ>>2]=dl+1;bA=dm+(dl<<3)|0;if((bA|0)!=0){bB=bA;c[bB>>2]=db;c[bB+4>>2]=de}c[aw>>2]=bM;bB=c[aI>>2]|0;df=0;dg=(c[a6>>2]|0)+(c[bB+(bN<<3)>>2]<<2)|0;dh=bB;di=bM}else{bM=(c[bk>>2]|0)+(de>>1)|0;if((a[bM]|0)==0){a[bM]=2;bX(bh,l)}bM=c[aJ>>2]|0;if((bM|0)==0){dn=bc;dp=aU;dq=bv;break L476}bB=bM-1|0;bM=c[V>>2]|0;bN=c[bM+(bB<<3)>>2]|0;bA=c[bM+(bB<<3)+4>>2]|0;c[aw>>2]=bA;bM=c[aI>>2]|0;bw=(c[a6>>2]|0)+(c[bM+(bA>>1<<3)>>2]<<2)|0;c[aJ>>2]=bB;df=bN;dg=bw;dh=bM;di=bA}}while(0);db=df+1|0;dc=dg;dd=dh;de=di}if(dk){bE=(dj>>1)+2&-2;bA=(bE|0)<2?2:bE;if((bA|0)>(2147483647-dj|0)){by=385;break L272}bE=c[V>>2]|0;bM=bA+dj|0;c[aK>>2]=bM;bA=cH(bE,bM<<3)|0;bM=bA;c[V>>2]=bM;if((bA|0)==0){if((c[(a$()|0)>>2]|0)==12){by=385;break L272}}dr=c[aJ>>2]|0;ds=bM}else{dr=dj;ds=c[V>>2]|0}bM=dr+1|0;c[aJ>>2]=bM;bA=ds+(dr<<3)|0;if((bA|0)==0){dt=bM}else{bM=bA;c[bM>>2]=0;c[bM+4>>2]=de;dt=c[aJ>>2]|0}if((dt|0)>0){bM=0;bA=dt;while(1){bE=(c[bk>>2]|0)+(c[(c[V>>2]|0)+(bM<<3)+4>>2]>>1)|0;if((a[bE]|0)==0){a[bE]=3;bX(bh,(c[V>>2]|0)+(bM<<3)+4|0);du=c[aJ>>2]|0}else{du=bA}bE=bM+1|0;if((bE|0)<(du|0)){bM=bE;bA=du}else{break}}}bA=c[x>>2]|0;c9=bA;da=c[bA+(bK<<2)>>2]|0;by=412}}while(0);if((by|0)==412){by=0;c[c9+(bc<<2)>>2]=da;dn=bc+1|0;dp=c9;dq=c[ca>>2]|0}bJ=bK+1|0;if((bJ|0)<(dq|0)){bK=bJ;bc=dn;aU=dp;bv=dq}else{c5=dn;c6=bJ;c7=dq;break}}}else{c5=c4;c6=c4;c7=c4}}while(0);bZ=c7;bv=(c7|0)<0|0?-1:0;aU=c[bi>>2]|0;bc=c[bi+4>>2]|0;bK=(E=+(aU>>>0)+ +(bc|0)*4294967296.0+(+(bZ>>>0)+ +(bv|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[bi>>2]=~~(+(aU>>>0)+ +(bc|0)*4294967296.0+(+(bZ>>>0)+ +(bv|0)*4294967296.0))>>>0;c[bi+4>>2]=bK;bK=c6-c5|0;if((bK|0)>0){bv=c7-bK|0;c[ca>>2]=bv;dv=bv}else{dv=c7}bv=dv;bK=(dv|0)<0|0?-1:0;bZ=c[at>>2]|0;bc=c[at+4>>2]|0;aU=(E=+(bZ>>>0)+ +(bc|0)*4294967296.0+(+(bv>>>0)+ +(bK|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[at>>2]=~~(+(bZ>>>0)+ +(bc|0)*4294967296.0+(+(bv>>>0)+ +(bK|0)*4294967296.0))>>>0;c[at+4>>2]=aU;aU=(dv|0)==1;if(aU){dw=0}else{bK=c[x>>2]|0;if((dv|0)>2){bv=c[aI>>2]|0;bc=1;bZ=2;while(1){bJ=(c[bv+(c[bK+(bZ<<2)>>2]>>1<<3)+4>>2]|0)>(c[bv+(c[bK+(bc<<2)>>2]>>1<<3)+4>>2]|0)?bZ:bc;bH=bZ+1|0;if((bH|0)<(dv|0)){bc=bJ;bZ=bH}else{dx=bJ;break}}}else{dx=1}bZ=bK+(dx<<2)|0;bc=c[bZ>>2]|0;bv=bK+4|0;c[bZ>>2]=c[bv>>2];c[bv>>2]=bc;dw=c[(c[aI>>2]|0)+(bc>>1<<3)+4>>2]|0}if((c[az>>2]|0)>0){bc=0;do{a[(c[bk>>2]|0)+(c[(c[aH>>2]|0)+(bc<<2)>>2]>>1)|0]=0;bc=bc+1|0;}while((bc|0)<(c[az>>2]|0))}bW(A,dw);if(aU){bc=c[x>>2]|0;bK=c[bc>>2]|0;bv=bK>>1;a[(c[ay>>2]|0)+bv|0]=(bK&1^1)&255^1;bZ=(c[aI>>2]|0)+(bv<<3)|0;bv=c[an>>2]|0;c[bZ>>2]=-1;c[bZ+4>>2]=bv;bv=c[aj>>2]|0;c[aj>>2]=bv+1;c[(c[ai>>2]|0)+(bv<<2)>>2]=bK;dy=bc}else{bc=bS(aN,p,1)|0;bK=c[af>>2]|0;if((bK|0)==(c[ah>>2]|0)){bv=(bK>>1)+2&-2;bZ=(bv|0)<2?2:bv;if((bZ|0)>(2147483647-bK|0)){by=441;break L272}bv=c[ae>>2]|0;bJ=bZ+bK|0;c[ah>>2]=bJ;bZ=cH(bv,bJ<<2)|0;bJ=bZ;c[ae>>2]=bJ;if((bZ|0)==0){if((c[(a$()|0)>>2]|0)==12){by=441;break L272}}dz=c[af>>2]|0;dA=bJ}else{dz=bK;dA=c[ae>>2]|0}c[af>>2]=dz+1;bK=dA+(dz<<2)|0;if((bK|0)!=0){c[bK>>2]=bc}bT(A,bc);bK=(c[a6>>2]|0)+(bc<<2)|0;bJ=bK+4+((c[bK>>2]|0)>>>5<<2)|0;b1=+h[aR>>3]+ +g[bJ>>2];g[bJ>>2]=b1;if(b1>1.0e20){if((c[af>>2]|0)>0){bJ=0;do{bK=(c[a6>>2]|0)+(c[(c[ae>>2]|0)+(bJ<<2)>>2]<<2)|0;bZ=bK+4+((c[bK>>2]|0)>>>5<<2)|0;g[bZ>>2]=+g[bZ>>2]*1.0e-20;bJ=bJ+1|0;}while((bJ|0)<(c[af>>2]|0))}h[aR>>3]=+h[aR>>3]*1.0e-20}bJ=c[x>>2]|0;aU=c[bJ>>2]|0;bZ=aU>>1;a[(c[ay>>2]|0)+bZ|0]=(aU&1^1)&255^1;bK=(c[aI>>2]|0)+(bZ<<3)|0;bZ=c[an>>2]|0;c[bK>>2]=bc;c[bK+4>>2]=bZ;bZ=c[aj>>2]|0;c[aj>>2]=bZ+1;c[(c[ai>>2]|0)+(bZ<<2)>>2]=aU;dy=bJ}h[aS>>3]=1.0/+h[L>>3]*+h[aS>>3];h[aR>>3]=1.0/+h[M>>3]*+h[aR>>3];bJ=(c[a8>>2]|0)-1|0;c[a8>>2]=bJ;if((bJ|0)!=0){bf=bu;bF=dy;continue}b1=+h[ac>>3]*+h[aT>>3];h[aT>>3]=b1;c[a8>>2]=~~b1;b1=+h[$>>3]*+h[r>>3];h[r>>3]=b1;if((c[q>>2]|0)<=0){bf=bu;bF=dy;continue}bJ=c[b>>2]|0;aU=c[aC>>2]|0;bZ=c[an>>2]|0;if((bZ|0)==0){dB=aj}else{dB=c[am>>2]|0}bK=c[dB>>2]|0;bv=c[bd>>2]|0;bH=c[br>>2]|0;bG=c[a5>>2]|0;bA=c[bq>>2]|0;bM=c[bq+4>>2]|0;cB=+(c[aV>>2]|0);b0=1.0/cB;if((bZ|0)<0){dC=0.0}else{bE=0;dD=0.0;while(1){if((bE|0)==0){dE=0}else{dE=c[(c[am>>2]|0)+(bE-1<<2)>>2]|0}if((bE|0)==(bZ|0)){dF=aj}else{dF=(c[am>>2]|0)+(bE<<2)|0}bw=c[dF>>2]|0;dG=dD+ +S(+b0,+(+(bE|0)))*+(bw-dE|0);bw=bE+1|0;if((bw|0)>(bZ|0)){dC=dG;break}else{bE=bw;dD=dG}}}aA(1072,(bD=i,i=i+64|0,c[bD>>2]=bJ,c[bD+8>>2]=aU-bK,c[bD+16>>2]=bv,c[bD+24>>2]=bH,c[bD+32>>2]=~~b1,c[bD+40>>2]=bG,h[bD+48>>3]=(+(bA>>>0)+ +(bM>>>0)*4294967296.0)/+(bG|0),h[bD+56>>3]=dC/cB*100.0,bD)|0)|0;i=bD;bf=bu;bF=dy}if((by|0)==296){by=0;cE=a[3240]&1}else if((by|0)==469){by=0;b4=+(c[aV>>2]|0);dD=1.0/b4;bf=c[an>>2]|0;if((bf|0)<0){dH=0.0}else{bC=0;b0=0.0;while(1){if((bC|0)==0){dI=0}else{dI=c[(c[am>>2]|0)+(bC-1<<2)>>2]|0}if((bC|0)==(bf|0)){dJ=aj}else{dJ=(c[am>>2]|0)+(bC<<2)|0}e=c[dJ>>2]|0;dG=b0+ +S(+dD,+(+(bC|0)))*+(e-dI|0);e=bC+1|0;if((e|0)>(bf|0)){dH=dG;break}else{bC=e;b0=dG}}}h[s>>3]=dH/b4;bW(A,0);cE=a[3232]|0?2:0}else if((by|0)==480){by=0;cE=a[3240]&1}else if((by|0)==504){by=0;bC=cw^1;if((c[K>>2]|0)>0){bf=0;do{a[(c[H>>2]|0)+(c[(c[J>>2]|0)+(bf<<2)>>2]|0)|0]=0;bf=bf+1|0;}while((bf|0)<(c[K>>2]|0))}if((c[J>>2]|0)!=0){c[K>>2]=0}c[aF>>2]=bC;b3(t,bC);bf=(c[H>>2]|0)+bC|0;if((a[bf]|0)==0){a[bf]=1;bX(be,j)}if((c[an>>2]|0)!=0){bf=bC>>1;a[(c[bk>>2]|0)+bf|0]=1;e=(c[aj>>2]|0)-1|0;bE=c[c[am>>2]>>2]|0;if((e|0)>=(bE|0)){bZ=e;e=bE;while(1){bE=c[(c[ai>>2]|0)+(bZ<<2)>>2]|0;bc=bE>>1;if((a[(c[bk>>2]|0)+bc|0]|0)==0){dK=e}else{bw=c[aI>>2]|0;bN=c[bw+(bc<<3)>>2]|0;L617:do{if((bN|0)==-1){bB=bE^1;c[bg>>2]=bB;b3(t,bB);b8=(c[H>>2]|0)+bB|0;if((a[b8]|0)!=0){break}a[b8]=1;bX(be,k)}else{b8=(c[a6>>2]|0)+(bN<<2)|0;bB=b8;bI=c[b8>>2]|0;if(bI>>>0>63){dL=1;dM=bI;dN=bw}else{break}while(1){bI=c[bB+4+(dL<<2)>>2]>>1;if((c[dN+(bI<<3)+4>>2]|0)>0){a[(c[bk>>2]|0)+bI|0]=1;dO=c[b8>>2]|0}else{dO=dM}bI=dL+1|0;if((bI|0)>=(dO>>>5|0)){break L617}dL=bI;dM=dO;dN=c[aI>>2]|0}}}while(0);a[(c[bk>>2]|0)+bc|0]=0;dK=c[c[am>>2]>>2]|0}bw=bZ-1|0;if((bw|0)<(dK|0)){break}else{bZ=bw;e=dK}}}a[(c[bk>>2]|0)+bf|0]=0}cE=a[3240]&1}if((bF|0)!=0){c[ca>>2]=0;cG(bF);c[x>>2]=0;c[y>>2]=0}if((a[aY]&1)!=0){cl=cE;break L270}e=c[w>>2]|0;bZ=c[w+4>>2]|0;bC=0;if(!((bZ|0)<(bC|0)|(bZ|0)==(bC|0)&e>>>0<0>>>0)){bC=c[b+4>>2]|0;if(!(bC>>>0<bZ>>>0|bC>>>0==bZ>>>0&(c[b>>2]|0)>>>0<e>>>0)){cl=cE;break L270}}e=c[v>>2]|0;bZ=c[v+4>>2]|0;bC=0;if(!((bZ|0)<(bC|0)|(bZ|0)==(bC|0)&e>>>0<0>>>0)){bC=c[bs+4>>2]|0;if(!(bC>>>0<bZ>>>0|bC>>>0==bZ>>>0&(c[bs>>2]|0)>>>0<e>>>0)){cl=cE;break L270}}e=a[3232]|0?2:0;if((((e&255)>>>1^1)&cE<<24>>24==e<<24>>24|e&cE&255|0)==0){cl=cE;break L270}else{aL=aL+1|0}}if((by|0)==318){av(aP(1)|0,3120,0);return 0}else if((by|0)==356){av(aP(1)|0,3120,0);return 0}else if((by|0)==385){av(aP(1)|0,3120,0);return 0}else if((by|0)==400){av(aP(1)|0,3120,0);return 0}else if((by|0)==441){av(aP(1)|0,3120,0);return 0}}}while(0);if((c[q>>2]|0)>0){aG(248)|0}do{if(cl<<24>>24==0){b$(cd,c[aV>>2]|0);if((c[aV>>2]|0)>0){dP=0}else{break}do{a[(c[C>>2]|0)+dP|0]=a[(c[ay>>2]|0)+dP|0]|0;dP=dP+1|0;}while((dP|0)<(c[aV>>2]|0))}else{if(cl<<24>>24!=(a[3240]&1)){break}if((c[K>>2]|0)!=0){break}a[ar]=0}}while(0);bW(A,0);cj=cl}}while(0);do{if(cj<<24>>24==0){if((a[aZ]&1)==0){break}cl=(c[a1>>2]|0)-1|0;if((cl|0)<=0){break}A=a[3248]|0;ar=cl;do{cl=c[a0>>2]|0;K=A&1;dP=c[C>>2]|0;ay=ar;cE=c[cl+(ar<<2)>>2]|0;while(1){dQ=ay-1|0;dR=c[cl+(dQ<<2)>>2]|0;dS=dR>>1;if((cE|0)<=1){by=581;break}if((a[dP+dS|0]^dR&1)<<24>>24==K<<24>>24){ay=dQ;cE=cE-1|0}else{break}}if((by|0)==581){by=0;a[dP+dS|0]=(dR&1^1)&255^1}ar=dQ-cE|0;}while((ar|0)>0)}}while(0);do{if(u){dQ=c[bx>>2]|0;if((dQ|0)<=0){break}dR=c[cc>>2]|0;dS=0;do{a0=c[dR+(dS<<2)>>2]|0;a[(c[ba>>2]|0)+a0|0]=0;if((a[a_]&1)!=0){cm(z,a0)}dS=dS+1|0;}while((dS|0)<(dQ|0))}}while(0);a_=c[cc>>2]|0;if((a_|0)!=0){c[bx>>2]=0;cG(a_);c[cc>>2]=0;c[aq>>2]=0}if(cj<<24>>24!=0){cb=cj<<24>>24==1?1048:1e3;ce(z);i=f;return cb|0}cj=c[aV>>2]|0;if((cj|0)>0){aq=c[C>>2]|0;cc=3;a_=0;while(1){bx=a[aq+a_|0]|0;if((bx&2)==0){ba=bx<<24>>24==0|0;bx=a_+1|0;if((bx|0)>0){u=0;dQ=bx;while(1){dS=u+1|0;if((dQ|0)>9){u=dS;dQ=(dQ|0)/10|0}else{dT=dS;break}}}else{dT=0}dU=cc+2-ba+dT|0;dV=bx}else{dU=cc;dV=a_+1|0}if((dV|0)<(cj|0)){cc=dU;a_=dV}else{dW=dU;break}}}else{dW=3}dU=dW+1|0;dW=(dU|0)>-1?dU:-1;dV=(dW|0)==0?1:dW;while(1){dX=cF(dV)|0;if((dX|0)!=0){break}dW=(D=c[1124]|0,c[1124]=D+0,D);if((dW|0)==0){by=611;break}bb[dW&3]()}if((by|0)==611){by=aP(4)|0;c[by>>2]=2480;av(by|0,3072,26);return 0}by=au(dX|0,dU|0,1032,(bD=i,i=i+1|0,i=i+7&-8,c[bD>>2]=0,bD)|0)|0;i=bD;dV=c[aV>>2]|0;if((dV|0)>0){dY=by;dZ=0;d_=dV}else{cb=dX;ce(z);i=f;return cb|0}while(1){dV=a[(c[C>>2]|0)+dZ|0]|0;if((dV&2)==0){by=dZ+1|0;dW=au(dX+dY|0,dU-dY|0,1008,(bD=i,i=i+16|0,c[bD>>2]=dV<<24>>24==0?3280:1016,c[bD+8>>2]=by,bD)|0)|0;i=bD;d$=dW+dY|0;d0=c[aV>>2]|0;d1=by}else{d$=dY;d0=d_;d1=dZ+1|0}if((d1|0)<(d0|0)){dY=d$;dZ=d1;d_=d0}else{cb=dX;break}}ce(z);i=f;return cb|0}return 0}function bz(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,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=i;f=b|0;g=b+4|0;h=c[g>>2]|0;j=c[b+8>>2]|0;L728:do{if((h|0)<(j|0)){b=c[f>>2]|0;k=h;while(1){l=a[b+k|0]|0;if((l&255)<=8){m=k;break L728}if(!((l&255)<14|l<<24>>24==32)){m=k;break L728}l=k+1|0;c[g>>2]=l;if((l|0)<(j|0)){k=l}else{m=l;break}}}else{m=h}}while(0);do{if((m|0)<(j|0)){h=a[(c[f>>2]|0)+m|0]|0;if((h<<24>>24|0)==45){k=m+1|0;c[g>>2]=k;n=1;p=k;break}else if((h<<24>>24|0)==43){h=m+1|0;c[g>>2]=h;n=0;p=h;break}else{n=0;p=m;break}}else{n=0;p=m}}while(0);do{if((p|0)<(j|0)){m=c[f>>2]|0;h=a[m+p|0]|0;if((h&255)<48|(h&255)>57){q=h&255;break}if((a[d]&1)==0){r=0;s=p;t=h}else{u=0;i=e;return u|0}while(1){if((t-48&255)>=10){v=r;break}h=(t&255)-48+(r*10|0)|0;k=s+1|0;c[g>>2]=k;if((k|0)>=(j|0)){v=h;break}r=h;s=k;t=a[m+k|0]|0}u=n?-v|0:v;i=e;return u|0}else{q=-1}}while(0);ay(c[o>>2]|0,920,(v=i,i=i+8|0,c[v>>2]=q,v)|0)|0;i=v;a[d]=1;u=0;i=e;return u|0}function bA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;c[b>>2]=2576;c[b+4>>2]=d;c[b+8>>2]=e;c[b+12>>2]=f;c[b+16>>2]=g;do{if((a[4528]|0)==0){if((aW(4528)|0)==0){break}c[940]=0;c[941]=0;c[942]=0;aw(36,3760,n|0)|0}}while(0);g=c[941]|0;if((g|0)==(c[942]|0)){f=(g>>1)+2&-2;e=(f|0)<2?2:f;if((e|0)>(2147483647-g|0)){h=aP(1)|0;av(h|0,3120,0)}f=c[940]|0;d=e+g|0;c[942]=d;e=cH(f,d<<2)|0;d=e;c[940]=d;do{if((e|0)==0){if((c[(a$()|0)>>2]|0)!=12){break}h=aP(1)|0;av(h|0,3120,0)}}while(0);i=c[941]|0;j=d}else{i=g;j=c[940]|0}c[941]=i+1;g=j+(i<<2)|0;if((g|0)==0){return}c[g>>2]=b;return}function bB(a){a=a|0;return}function bC(a){a=a|0;if((a|0)==0){return}cG(a);return}function bD(a){a=a|0;var b=0,d=0;b=a|0;d=c[b>>2]|0;if((d|0)==0){return}c[a+4>>2]=0;cG(d);c[b>>2]=0;c[a+8>>2]=0;return}function bE(a){a=a|0;if((a|0)==0){return}cG(a);return}function bF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=0;while(1){f=d+e|0;if((e|0)==1){g=0;break}if((a[f]|0)==(a[1016+e|0]|0)){e=e+1|0}else{h=0;i=695;break}}if((i|0)==695){return h|0}while(1){i=g+1|0;e=d+i|0;if((g|0)==3){j=0;k=e;break}if((a[e]|0)==(a[824+g|0]|0)){g=i}else{j=1;k=f;break}}if((a5(k|0,c[b+4>>2]|0)|0)!=0){h=0;return h|0}a[b+20|0]=j;h=1;return h|0}function bG(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;f=c[o>>2]|0;g=b+4|0;h=c[g>>2]|0;ay(f|0,864,(j=i,i=i+16|0,c[j>>2]=h,c[j+8>>2]=h,j)|0)|0;i=j;h=0;while(1){k=h>>>0<(32-((cM(c[g>>2]|0)|0)<<1)|0)>>>0;aE(32,f|0)|0;if(k){h=h+1|0}else{break}}ay(f|0,848,(j=i,i=i+8|0,c[j>>2]=(a[b+20|0]&1)!=0?840:832,j)|0)|0;i=j;if(!d){i=e;return}ay(f|0,712,(j=i,i=i+8|0,c[j>>2]=c[b+8>>2],j)|0)|0;i=j;aE(10,f|0)|0;i=e;return}function bH(a){a=a|0;if((a|0)==0){return}cG(a);return}function bI(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,p=0,q=0,r=0;e=i;i=i+8|0;f=e|0;g=0;while(1){if((g|0)==1){break}if((a[d+g|0]|0)==(a[1016+g|0]|0)){g=g+1|0}else{h=0;j=724;break}}if((j|0)==724){i=e;return h|0}g=b+4|0;k=c[g>>2]|0;l=0;while(1){m=a[k+l|0]|0;n=l+1|0;if(m<<24>>24==0){p=0;break}if((a[d+n|0]|0)==m<<24>>24){l=n}else{h=0;j=727;break}}if((j|0)==727){i=e;return h|0}while(1){q=d+(p+n)|0;if((p|0)==1){break}if((a[q]|0)==(a[656+p|0]|0)){p=p+1|0}else{h=0;j=725;break}}if((j|0)==725){i=e;return h|0}j=aD(q|0,f|0,10)|0;if((c[f>>2]|0)==0){h=0;i=e;return h|0}if((j|0)>(c[b+24>>2]|0)){f=c[o>>2]|0;p=c[g>>2]|0;ay(f|0,600,(r=i,i=i+16|0,c[r>>2]=q,c[r+8>>2]=p,r)|0)|0;i=r;aM(1);return 0}if((j|0)<(c[b+20>>2]|0)){p=c[o>>2]|0;f=c[g>>2]|0;ay(p|0,496,(r=i,i=i+16|0,c[r>>2]=q,c[r+8>>2]=f,r)|0)|0;i=r;aM(1);return 0}c[b+28>>2]=j;h=1;i=e;return h|0}function bJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;e=c[o>>2]|0;f=c[a+16>>2]|0;ay(e|0,784,(g=i,i=i+16|0,c[g>>2]=c[a+4>>2],c[g+8>>2]=f,g)|0)|0;i=g;f=c[a+20>>2]|0;if((f|0)==-2147483648){aI(776,4,1,e|0)|0}else{ay(e|0,768,(g=i,i=i+8|0,c[g>>2]=f,g)|0)|0;i=g}aI(760,4,1,e|0)|0;f=c[a+24>>2]|0;if((f|0)==2147483647){aI(752,4,1,e|0)|0}else{ay(e|0,768,(g=i,i=i+8|0,c[g>>2]=f,g)|0)|0;i=g}ay(e|0,728,(g=i,i=i+8|0,c[g>>2]=c[a+28>>2],g)|0)|0;i=g;if(!b){i=d;return}ay(e|0,712,(g=i,i=i+8|0,c[g>>2]=c[a+8>>2],g)|0)|0;i=g;aE(10,e|0)|0;i=d;return}function bK(a){a=a|0;return}function bL(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;b=a+32|0;d=c[b>>2]|0;if((d|0)!=0){c[a+36>>2]=0;cG(d);c[b>>2]=0;c[a+40>>2]=0}b=a+16|0;d=c[b>>2]|0;if((d|0)!=0){c[a+20>>2]=0;cG(d);c[b>>2]=0;c[a+24>>2]=0}b=a|0;d=c[b>>2]|0;if((d|0)==0){return}e=a+4|0;f=c[e>>2]|0;if((f|0)>0){g=0;h=f;f=d;while(1){i=f+(g*12|0)|0;j=c[i>>2]|0;if((j|0)==0){k=h;l=f}else{c[f+(g*12|0)+4>>2]=0;cG(j);c[i>>2]=0;c[f+(g*12|0)+8>>2]=0;k=c[e>>2]|0;l=c[b>>2]|0}i=g+1|0;if((i|0)<(k|0)){g=i;h=k;f=l}else{m=l;break}}}else{m=d}c[e>>2]=0;cG(m);c[b>>2]=0;c[a+8>>2]=0;return}function bM(a){a=a|0;bN(a);if((a|0)==0){return}cG(a);return}function bN(a){a=a|0;var b=0,d=0;c[a>>2]=2544;b=a+628|0;d=c[b>>2]|0;if((d|0)!=0){c[a+632>>2]=0;cG(d);c[b>>2]=0;c[a+636>>2]=0}b=a+616|0;d=c[b>>2]|0;if((d|0)!=0){c[a+620>>2]=0;cG(d);c[b>>2]=0;c[a+624>>2]=0}b=a+604|0;d=c[b>>2]|0;if((d|0)!=0){c[a+608>>2]=0;cG(d);c[b>>2]=0;c[a+612>>2]=0}b=a+588|0;d=c[b>>2]|0;if((d|0)!=0){c[a+592>>2]=0;cG(d);c[b>>2]=0;c[a+596>>2]=0}b=a+576|0;d=c[b>>2]|0;if((d|0)!=0){c[a+580>>2]=0;cG(d);c[b>>2]=0;c[a+584>>2]=0}b=a+564|0;d=c[b>>2]|0;if((d|0)!=0){c[a+568>>2]=0;cG(d);c[b>>2]=0;c[a+572>>2]=0}b=c[a+544>>2]|0;if((b|0)!=0){cG(b)}b=a+472|0;d=c[b>>2]|0;if((d|0)!=0){c[a+476>>2]=0;cG(d);c[b>>2]=0;c[a+480>>2]=0}b=a+460|0;d=c[b>>2]|0;if((d|0)!=0){c[a+464>>2]=0;cG(d);c[b>>2]=0;c[a+468>>2]=0}bL(a+412|0);b=a+396|0;d=c[b>>2]|0;if((d|0)!=0){c[a+400>>2]=0;cG(d);c[b>>2]=0;c[a+404>>2]=0}b=a+380|0;d=c[b>>2]|0;if((d|0)!=0){c[a+384>>2]=0;cG(d);c[b>>2]=0;c[a+388>>2]=0}b=a+364|0;d=c[b>>2]|0;if((d|0)!=0){c[a+368>>2]=0;cG(d|0);c[b>>2]=0;c[a+372>>2]=0}b=a+348|0;d=c[b>>2]|0;if((d|0)!=0){c[a+352>>2]=0;cG(d);c[b>>2]=0;c[a+356>>2]=0}b=a+332|0;d=c[b>>2]|0;if((d|0)!=0){c[a+336>>2]=0;cG(d|0);c[b>>2]=0;c[a+340>>2]=0}b=a+316|0;d=c[b>>2]|0;if((d|0)!=0){c[a+320>>2]=0;cG(d);c[b>>2]=0;c[a+324>>2]=0}b=a+304|0;d=c[b>>2]|0;if((d|0)!=0){c[a+308>>2]=0;cG(d);c[b>>2]=0;c[a+312>>2]=0}b=a+292|0;d=c[b>>2]|0;if((d|0)!=0){c[a+296>>2]=0;cG(d);c[b>>2]=0;c[a+300>>2]=0}b=a+280|0;d=c[b>>2]|0;if((d|0)!=0){c[a+284>>2]=0;cG(d);c[b>>2]=0;c[a+288>>2]=0}b=a+268|0;d=c[b>>2]|0;if((d|0)!=0){c[a+272>>2]=0;cG(d);c[b>>2]=0;c[a+276>>2]=0}b=a+256|0;d=c[b>>2]|0;if((d|0)!=0){c[a+260>>2]=0;cG(d);c[b>>2]=0;c[a+264>>2]=0}b=a+32|0;d=c[b>>2]|0;if((d|0)!=0){c[a+36>>2]=0;cG(d);c[b>>2]=0;c[a+40>>2]=0}b=a+16|0;d=c[b>>2]|0;if((d|0)!=0){c[a+20>>2]=0;cG(d);c[b>>2]=0;c[a+24>>2]=0}b=a+4|0;d=c[b>>2]|0;if((d|0)==0){return}c[a+8>>2]=0;cG(d|0);c[b>>2]=0;c[a+12>>2]=0;return}function bO(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,m=0,n=0,o=0,p=0;d=b|0;b=c[d>>2]|0;e=b+1|0;f=a+4|0;if((c[f>>2]|0)<(e|0)){g=a+8|0;h=c[g>>2]|0;do{if((h|0)<(e|0)){i=b+2-h&-2;j=(h>>1)+2&-2;k=(i|0)>(j|0)?i:j;if((k|0)>(2147483647-h|0)){l=aP(1)|0;av(l|0,3120,0)}j=a|0;i=c[j>>2]|0;m=k+h|0;c[g>>2]=m;k=cH(i,m*12|0)|0;c[j>>2]=k;if((k|0)!=0){break}if((c[(a$()|0)>>2]|0)!=12){break}l=aP(1)|0;av(l|0,3120,0)}}while(0);l=c[f>>2]|0;if((l|0)<(e|0)){g=a|0;h=l;do{l=c[g>>2]|0;k=l+(h*12|0)|0;if((k|0)!=0){c[k>>2]=0;c[l+(h*12|0)+4>>2]=0;c[l+(h*12|0)+8>>2]=0}h=h+1|0;}while((h|0)<(e|0))}c[f>>2]=e;n=c[d>>2]|0}else{n=b}b=c[a>>2]|0;if((c[b+(n*12|0)>>2]|0)==0){o=n;p=a+16|0;b3(p,o);return}c[b+(n*12|0)+4>>2]=0;o=c[d>>2]|0;p=a+16|0;b3(p,o);return}function bP(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,q=0;f=d+1|0;g=b+4|0;if((c[g>>2]|0)>=(f|0)){h=b|0;i=c[h>>2]|0;j=i+d|0;a[j]=e;return}k=b+8|0;l=c[k>>2]|0;do{if((l|0)<(f|0)){m=d+2-l&-2;n=(l>>1)+2&-2;o=(m|0)>(n|0)?m:n;if((o|0)>(2147483647-l|0)){p=aP(1)|0;av(p|0,3120,0)}n=b|0;m=c[n>>2]|0;q=o+l|0;c[k>>2]=q;o=cH(m,q)|0;c[n>>2]=o;if((o|0)!=0){break}if((c[(a$()|0)>>2]|0)!=12){break}p=aP(1)|0;av(p|0,3120,0)}}while(0);p=c[g>>2]|0;if((p|0)<(f|0)){k=b|0;l=p;do{p=(c[k>>2]|0)+l|0;if((p|0)!=0){a[p]=0}l=l+1|0;}while((l|0)<(f|0))}c[g>>2]=f;h=b|0;i=c[h>>2]|0;j=i+d|0;a[j]=e;return}function bQ(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,m=0;d=a+4|0;e=c[d>>2]|0;f=a+8|0;g=c[f>>2]|0;do{if((e|0)==(g|0)&(g|0)<(e+1|0)){h=(e>>1)+2&-2;i=(h|0)<2?2:h;if((i|0)>(2147483647-e|0)){j=aP(1)|0;av(j|0,3120,0)}h=a|0;k=c[h>>2]|0;l=i+e|0;c[f>>2]=l;i=cH(k,l<<2)|0;l=i;c[h>>2]=l;if((i|0)!=0){m=l;break}if((c[(a$()|0)>>2]|0)!=12){m=l;break}j=aP(1)|0;av(j|0,3120,0)}else{m=c[a>>2]|0}}while(0);a=c[d>>2]|0;c[d>>2]=a+1;d=m+(a<<2)|0;if((d|0)==0){return}c[d>>2]=c[b>>2];return}function bR(b){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,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,ab=0,ac=0,ad=0,ae=0,af=0,ah=0,ai=0,aj=0,ak=0,al=0,am=0,an=0,ao=0,ap=0,aq=0,ar=0;d=i;i=i+8|0;e=d|0;f=e;g=b+512|0;h=c[g>>2]|0;j=b+284|0;if((h|0)<(c[j>>2]|0)){k=b+280|0;l=b+428|0;m=b+412|0;n=b+332|0;o=b+544|0;p=e;q=f+4|0;r=b+396|0;s=b+296|0;t=b+456|0;u=1;v=-1;w=h;while(1){c[g>>2]=w+1;h=c[(c[k>>2]|0)+(w<<2)>>2]|0;if((a[(c[l>>2]|0)+h|0]|0)!=0){x=c[m>>2]|0;y=x+(h*12|0)+4|0;z=c[y>>2]|0;if((z|0)>0){A=x+(h*12|0)|0;x=0;B=0;C=z;while(1){D=c[A>>2]|0;F=D+(x<<3)|0;if((c[(c[c[t>>2]>>2]|0)+(c[F>>2]<<2)>>2]&3|0)==1){G=B;H=C}else{I=F;F=D+(B<<3)|0;D=c[I+4>>2]|0;c[F>>2]=c[I>>2];c[F+4>>2]=D;G=B+1|0;H=c[y>>2]|0}D=x+1|0;if((D|0)<(H|0)){x=D;B=G;C=H}else{J=D;K=G;L=H;break}}}else{J=0;K=0;L=z}C=J-K|0;if((C|0)>0){c[y>>2]=L-C}a[(c[l>>2]|0)+h|0]=0}C=c[m>>2]|0;B=c[C+(h*12|0)>>2]|0;x=C+(h*12|0)+4|0;C=c[x>>2]|0;A=B+(C<<3)|0;L1033:do{if((C|0)==0){M=B;N=B;O=v}else{D=h^1;F=B;I=B;R=v;while(1){S=F;T=I;while(1){U=T;L1039:while(1){V=c[U+4>>2]|0;if((a[(c[n>>2]|0)+(V>>1)|0]|0)==(V&1)){W=873;break}X=c[U>>2]|0;Y=c[o>>2]|0;Z=Y+(X<<2)|0;_=Z;$=Y+(X+1<<2)|0;ab=c[$>>2]|0;if((ab|0)==(D|0)){ac=Y+(X+2<<2)|0;ad=c[ac>>2]|0;c[$>>2]=ad;c[ac>>2]=D;ae=ad}else{ae=ab}af=U+8|0;c[p>>2]=X;c[q>>2]=ae;if((ae|0)!=(V|0)){if((a[(c[n>>2]|0)+(ae>>1)|0]|0)==(ae&1)){W=880;break}}V=(c[Z>>2]|0)>>>5;ah=a[3240]&1;Z=2;while(1){if((Z|0)>=(V|0)){W=884;break L1039}ai=_+4+(Z<<2)|0;aj=c[ai>>2]|0;if((a[(c[n>>2]|0)+(aj>>1)|0]^aj&1)<<24>>24==ah<<24>>24){Z=Z+1|0}else{break}}Z=Y+(X+2<<2)|0;c[Z>>2]=aj;c[ai>>2]=D;bU((c[m>>2]|0)+((c[Z>>2]^1)*12|0)|0,f);if((af|0)==(A|0)){M=A;N=S;O=R;break L1033}else{U=af}}if((W|0)==873){W=0;Z=U;_=S;V=c[Z+4>>2]|0;c[_>>2]=c[Z>>2];c[_+4>>2]=V;ak=U+8|0;al=S+8|0}else if((W|0)==880){W=0;V=S;_=c[e+4>>2]|0;c[V>>2]=c[e>>2];c[V+4>>2]=_;ak=af;al=S+8|0}else if((W|0)==884){W=0;am=S+8|0;_=S;V=c[e+4>>2]|0;c[_>>2]=c[e>>2];c[_+4>>2]=V;V=ae>>1;_=(c[n>>2]|0)+V|0;if((a[_]^ae&1)<<24>>24==ah<<24>>24){break}a[_]=(ae&1^1)&255^1;_=(c[r>>2]|0)+(V<<3)|0;V=c[s>>2]|0;c[_>>2]=X;c[_+4>>2]=V;V=c[j>>2]|0;c[j>>2]=V+1;c[(c[k>>2]|0)+(V<<2)>>2]=ae;ak=af;al=am}if((ak|0)==(A|0)){M=A;N=al;O=R;break L1033}else{S=al;T=ak}}c[g>>2]=c[j>>2];if(af>>>0<A>>>0){T=am;S=af;while(1){V=T+8|0;_=S+8|0;Z=S;ab=T;ad=c[Z+4>>2]|0;c[ab>>2]=c[Z>>2];c[ab+4>>2]=ad;if(_>>>0<A>>>0){T=V;S=_}else{an=V;ao=_;break}}}else{an=am;ao=af}if((ao|0)==(A|0)){M=A;N=an;O=X;break}else{F=an;I=ao;R=X}}}}while(0);A=M-N|0;if((A|0)>0){c[x>>2]=(c[x>>2]|0)-(A>>3)}A=c[g>>2]|0;if((A|0)>=(c[j>>2]|0)){break}u=u+1|0;v=O;w=A}ap=(u|0)<0|0?-1:0;aq=u;ar=O}else{ap=0;aq=0;ar=-1}O=b+184|0;u=c[O>>2]|0;w=c[O+4>>2]|0;v=(E=+(u>>>0)+ +(w|0)*4294967296.0+(+(aq>>>0)+ +(ap|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[O>>2]=~~(+(u>>>0)+ +(w|0)*4294967296.0+(+(aq>>>0)+ +(ap|0)*4294967296.0))>>>0;c[O+4>>2]=v;v=b+520|0;b=c[v>>2]|0;O=c[v+4>>2]|0;w=(E=+(b>>>0)+ +(O|0)*4294967296.0-(+(aq>>>0)+ +(ap|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[v>>2]=~~(+(b>>>0)+ +(O|0)*4294967296.0-(+(aq>>>0)+ +(ap|0)*4294967296.0))>>>0;c[v+4>>2]=w;i=d;return ar|0}function bS(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=e&1;e=a[b+16|0]&1|f;h=d+4|0;i=((e+(c[h>>2]|0)<<2)+4|0)>>>2;j=b+4|0;b5(b|0,i+(c[j>>2]|0)|0);k=c[j>>2]|0;l=as(k|0,i|0)|0;c[j>>2]=l;if(F){av(aP(1)|0,3120,0);return 0}l=(c[b>>2]|0)+(k<<2)|0;b=l;if((l|0)==0){return k|0}j=e<<3|f<<2;c[l>>2]=c[l>>2]&-32|j;f=c[h>>2]<<5|j;c[l>>2]=f;if((c[h>>2]|0)>0){j=d|0;d=0;do{c[b+4+(d<<2)>>2]=c[(c[j>>2]|0)+(d<<2)>>2];d=d+1|0;}while((d|0)<(c[h>>2]|0));m=c[l>>2]|0}else{m=f}if((m&8|0)==0){return k|0}f=m>>>5;if((m&4|0)!=0){g[b+4+(f<<2)>>2]=0.0;return k|0}if((f|0)==0){n=0;o=0}else{m=0;l=0;while(1){h=1<<((c[b+4+(l<<2)>>2]|0)>>>1&31)|m;d=l+1|0;if((d|0)<(f|0)){m=h;l=d}else{n=h;o=f;break}}}c[b+4+(o<<2)>>2]=n;return k|0}function bT(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;d=i;i=i+16|0;e=d|0;f=d+8|0;g=c[a+544>>2]|0;h=g+(b<<2)|0;j=g+(b+1<<2)|0;k=a+412|0;l=(c[k>>2]|0)+((c[j>>2]^1)*12|0)|0;m=g+(b+2<<2)|0;g=c[m>>2]|0;c[e>>2]=b;c[e+4>>2]=g;bU(l,e);e=(c[k>>2]|0)+((c[m>>2]^1)*12|0)|0;m=c[j>>2]|0;c[f>>2]=b;c[f+4>>2]=m;bU(e,f);if((c[h>>2]&4|0)==0){f=a+208|0;e=c[f>>2]|0;m=c[f+4>>2]|0;b=1;j=0;k=(E=+(e>>>0)+ +(m|0)*4294967296.0+(+(b>>>0)+ +(j|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[f>>2]=~~(+(e>>>0)+ +(m|0)*4294967296.0+(+(b>>>0)+ +(j|0)*4294967296.0))>>>0;c[f+4>>2]=k;k=(c[h>>2]|0)>>>5;f=0;j=a+224|0;b=c[j>>2]|0;m=c[j+4>>2]|0;e=(E=+(k>>>0)+ +(f|0)*4294967296.0+(+(b>>>0)+ +(m|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[j>>2]=~~(+(k>>>0)+ +(f|0)*4294967296.0+(+(b>>>0)+ +(m|0)*4294967296.0))>>>0;c[j+4>>2]=e;i=d;return}else{e=a+216|0;j=c[e>>2]|0;m=c[e+4>>2]|0;b=1;f=0;k=(E=+(j>>>0)+ +(m|0)*4294967296.0+(+(b>>>0)+ +(f|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[e>>2]=~~(+(j>>>0)+ +(m|0)*4294967296.0+(+(b>>>0)+ +(f|0)*4294967296.0))>>>0;c[e+4>>2]=k;k=(c[h>>2]|0)>>>5;h=0;e=a+232|0;a=c[e>>2]|0;f=c[e+4>>2]|0;b=(E=+(k>>>0)+ +(h|0)*4294967296.0+(+(a>>>0)+ +(f|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[e>>2]=~~(+(k>>>0)+ +(h|0)*4294967296.0+(+(a>>>0)+ +(f|0)*4294967296.0))>>>0;c[e+4>>2]=b;i=d;return}}function bU(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,m=0;d=a+4|0;e=c[d>>2]|0;f=a+8|0;g=c[f>>2]|0;do{if((e|0)==(g|0)&(g|0)<(e+1|0)){h=(e>>1)+2&-2;i=(h|0)<2?2:h;if((i|0)>(2147483647-e|0)){j=aP(1)|0;av(j|0,3120,0)}h=a|0;k=c[h>>2]|0;l=i+e|0;c[f>>2]=l;i=cH(k,l<<3)|0;l=i;c[h>>2]=l;if((i|0)!=0){m=l;break}if((c[(a$()|0)>>2]|0)!=12){m=l;break}j=aP(1)|0;av(j|0,3120,0)}else{m=c[a>>2]|0}}while(0);a=c[d>>2]|0;c[d>>2]=a+1;d=m+(a<<3)|0;if((d|0)==0){return}a=b;b=d;d=c[a+4>>2]|0;c[b>>2]=c[a>>2];c[b+4>>2]=d;return}function bV(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,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;f=i;i=i+16|0;g=f|0;h=f+8|0;j=c[b+544>>2]|0;k=j+(d<<2)|0;l=c[j+(d+1<<2)>>2]^1;do{if(e){m=b+412|0;n=c[m>>2]|0;o=j+(d+2<<2)|0;p=n+(l*12|0)|0;q=n+(l*12|0)+4|0;n=c[q>>2]|0;r=0;while(1){if((r|0)>=(n|0)){break}if((c[(c[p>>2]|0)+(r<<3)>>2]|0)==(d|0)){break}else{r=r+1|0}}s=n-1|0;if((r|0)<(s|0)){t=r;while(1){u=c[p>>2]|0;v=t+1|0;w=u+(v<<3)|0;x=u+(t<<3)|0;u=c[w+4>>2]|0;c[x>>2]=c[w>>2];c[x+4>>2]=u;u=(c[q>>2]|0)-1|0;if((v|0)<(u|0)){t=v}else{y=u;break}}}else{y=s}c[q>>2]=y;t=c[o>>2]^1;p=c[m>>2]|0;r=p+(t*12|0)|0;n=p+(t*12|0)+4|0;t=c[n>>2]|0;p=0;while(1){if((p|0)>=(t|0)){break}if((c[(c[r>>2]|0)+(p<<3)>>2]|0)==(d|0)){break}else{p=p+1|0}}m=t-1|0;if((p|0)<(m|0)){o=p;while(1){q=c[r>>2]|0;s=o+1|0;u=q+(s<<3)|0;v=q+(o<<3)|0;q=c[u+4>>2]|0;c[v>>2]=c[u>>2];c[v+4>>2]=q;q=(c[n>>2]|0)-1|0;if((s|0)<(q|0)){o=s}else{z=q;break}}}else{z=m}c[n>>2]=z}else{c[g>>2]=l;o=b+428|0;r=c[o>>2]|0;p=r+l|0;if((a[p]|0)==0){a[p]=1;bX(b+444|0,g);A=c[o>>2]|0}else{A=r}r=c[j+(d+2<<2)>>2]^1;c[h>>2]=r;o=A+r|0;if((a[o]|0)!=0){break}a[o]=1;bX(b+444|0,h)}}while(0);if((c[k>>2]&4|0)==0){h=b+208|0;A=c[h>>2]|0;d=c[h+4>>2]|0;j=-1;g=-1;l=(E=+(A>>>0)+ +(d|0)*4294967296.0+(+(j>>>0)+ +(g|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[h>>2]=~~(+(A>>>0)+ +(d|0)*4294967296.0+(+(j>>>0)+ +(g|0)*4294967296.0))>>>0;c[h+4>>2]=l;l=(c[k>>2]|0)>>>5;h=0;g=b+224|0;j=c[g>>2]|0;d=c[g+4>>2]|0;A=(E=+(j>>>0)+ +(d|0)*4294967296.0-(+(l>>>0)+ +(h|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[g>>2]=~~(+(j>>>0)+ +(d|0)*4294967296.0-(+(l>>>0)+ +(h|0)*4294967296.0))>>>0;c[g+4>>2]=A;i=f;return}else{A=b+216|0;g=c[A>>2]|0;h=c[A+4>>2]|0;l=-1;d=-1;j=(E=+(g>>>0)+ +(h|0)*4294967296.0+(+(l>>>0)+ +(d|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[A>>2]=~~(+(g>>>0)+ +(h|0)*4294967296.0+(+(l>>>0)+ +(d|0)*4294967296.0))>>>0;c[A+4>>2]=j;j=(c[k>>2]|0)>>>5;k=0;A=b+232|0;b=c[A>>2]|0;d=c[A+4>>2]|0;l=(E=+(b>>>0)+ +(d|0)*4294967296.0-(+(j>>>0)+ +(k|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[A>>2]=~~(+(b>>>0)+ +(d|0)*4294967296.0-(+(j>>>0)+ +(k|0)*4294967296.0))>>>0;c[A+4>>2]=l;i=f;return}}function bW(b,d){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,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=b+296|0;if((c[e>>2]|0)<=(d|0)){return}f=b+284|0;g=c[f>>2]|0;h=g-1|0;i=b+292|0;j=c[i>>2]|0;k=c[j+(d<<2)>>2]|0;if((h|0)<(k|0)){l=k;m=g;n=j}else{j=b+280|0;g=b+332|0;k=b+88|0;o=b+348|0;p=b+460|0;q=b+476|0;r=b+472|0;s=b+380|0;t=h;do{h=c[(c[j>>2]|0)+(t<<2)>>2]>>1;a[(c[g>>2]|0)+h|0]=a[3232]|0?2:0;u=c[k>>2]|0;do{if((u|0)>1){v=959}else{if((u|0)!=1){break}if((t|0)>(c[(c[i>>2]|0)+((c[e>>2]|0)-1<<2)>>2]|0)){v=959}}}while(0);if((v|0)==959){v=0;a[(c[o>>2]|0)+h|0]=c[(c[j>>2]|0)+(t<<2)>>2]&1}if((c[q>>2]|0)>(h|0)){if((c[(c[r>>2]|0)+(h<<2)>>2]|0)<=-1){v=963}}else{v=963}do{if((v|0)==963){v=0;if((a[(c[s>>2]|0)+h|0]|0)==0){break}b7(p,h)}}while(0);t=t-1|0;w=c[i>>2]|0;x=c[w+(d<<2)>>2]|0;}while((t|0)>=(x|0));l=x;m=c[f>>2]|0;n=w}c[b+512>>2]=l;l=c[n+(d<<2)>>2]|0;if((m-l|0)>0){c[f>>2]=l}if(((c[e>>2]|0)-d|0)<=0){return}c[e>>2]=d;return}function bX(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,m=0;d=a+4|0;e=c[d>>2]|0;f=a+8|0;g=c[f>>2]|0;do{if((e|0)==(g|0)&(g|0)<(e+1|0)){h=(e>>1)+2&-2;i=(h|0)<2?2:h;if((i|0)>(2147483647-e|0)){j=aP(1)|0;av(j|0,3120,0)}h=a|0;k=c[h>>2]|0;l=i+e|0;c[f>>2]=l;i=cH(k,l<<2)|0;l=i;c[h>>2]=l;if((i|0)!=0){m=l;break}if((c[(a$()|0)>>2]|0)!=12){m=l;break}j=aP(1)|0;av(j|0,3120,0)}else{m=c[a>>2]|0}}while(0);a=c[d>>2]|0;c[d>>2]=a+1;d=m+(a<<2)|0;if((d|0)==0){return}c[d>>2]=c[b>>2];return}function bY(b,d){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,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;e=d+4|0;f=c[e>>2]|0;if((f|0)>0){g=d|0;d=b+544|0;h=b+332|0;i=b+396|0;j=b+556|0;k=0;l=0;while(1){m=c[g>>2]|0;n=c[m+(l<<2)>>2]|0;o=c[d>>2]|0;p=o+(n<<2)|0;q=p;r=c[p>>2]|0;s=r>>>5;t=0;while(1){if((t|0)>=(s|0)){u=997;break}v=c[q+4+(t<<2)>>2]|0;if((a[(c[h>>2]|0)+(v>>1)|0]|0)==(v&1)){u=992;break}else{t=t+1|0}}if((u|0)==992){u=0;bV(b,n,0);t=c[o+(n+1<<2)>>2]|0;v=t>>1;do{if((a[(c[h>>2]|0)+v|0]|0)==(t&1)){w=(c[i>>2]|0)+(v<<3)|0;x=c[w>>2]|0;if((x|0)==-1){break}if(((c[d>>2]|0)+(x<<2)|0)!=(p|0)){break}c[w>>2]=-1}}while(0);c[p>>2]=c[p>>2]&-4|1;v=c[(c[d>>2]|0)+(n<<2)>>2]|0;c[j>>2]=((((v>>>3&1)+(v>>>5)<<2)+4|0)>>>2)+(c[j>>2]|0);y=k}else if((u|0)==997){u=0;if(r>>>0>95){v=a[3240]&1;t=2;o=s;w=r;while(1){x=q+4+(t<<2)|0;z=c[x>>2]|0;if((a[(c[h>>2]|0)+(z>>1)|0]^z&1)<<24>>24==v<<24>>24){c[x>>2]=c[q+4+(o-1<<2)>>2];x=c[p>>2]|0;if((x&8|0)==0){A=x}else{z=x>>>5;c[q+4+(z-1<<2)>>2]=c[q+4+(z<<2)>>2];A=c[p>>2]|0}z=A-32|0;c[p>>2]=z;B=t-1|0;C=z}else{B=t;C=w}z=B+1|0;x=C>>>5;if((z|0)<(x|0)){t=z;o=x;w=C}else{break}}w=c[g>>2]|0;D=w;E=c[w+(l<<2)>>2]|0}else{D=m;E=n}c[D+(k<<2)>>2]=E;y=k+1|0}w=l+1|0;o=c[e>>2]|0;if((w|0)<(o|0)){k=y;l=w}else{F=y;G=w;H=o;break}}}else{F=0;G=0;H=f}f=G-F|0;if((f|0)<=0){return}c[e>>2]=H-f;return}function bZ(b){b=b|0;var d=0,e=0,f=0,g=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.0,D=0.0,E=0,F=0,G=0,H=0.0,I=0,J=0,K=0.0,L=0,M=0,N=0;d=i;i=i+24|0;e=d|0;f=d+16|0;g=e|0;c[g>>2]=0;j=e+4|0;c[j>>2]=0;k=e+8|0;c[k>>2]=0;c[f>>2]=0;l=b+540|0;m=c[l>>2]|0;if((m|0)>0){n=b+380|0;o=b+332|0;p=0;q=m;while(1){do{if((a[(c[n>>2]|0)+p|0]|0)==0){r=p;s=q}else{m=a[(c[o>>2]|0)+p|0]|0;t=a[3232]|0?2:0;if((((t&255)>>>1^1)&m<<24>>24==t<<24>>24|t&m&255|0)==0){r=p;s=q;break}bQ(e,f);r=c[f>>2]|0;s=c[l>>2]|0}}while(0);m=r+1|0;c[f>>2]=m;if((m|0)<(s|0)){p=m;q=s}else{break}}}s=b+460|0;q=s|0;p=b+464|0;f=c[p>>2]|0;r=s|0;s=c[r>>2]|0;if((f|0)>0){l=b+472|0;e=0;o=s;while(1){c[(c[l>>2]|0)+(c[o+(e<<2)>>2]<<2)>>2]=-1;n=e+1|0;m=c[p>>2]|0;t=c[r>>2]|0;if((n|0)<(m|0)){e=n;o=t}else{u=t;v=m;break}}}else{u=s;v=f}if((u|0)==0){w=v}else{c[p>>2]=0;w=0}v=c[j>>2]|0;if((v|0)>0){u=b+472|0;f=c[g>>2]|0;s=0;do{o=f+(s<<2)|0;c[(c[u>>2]|0)+(c[o>>2]<<2)>>2]=s;bQ(q,o);s=s+1|0;}while((s|0)<(v|0));x=c[p>>2]|0}else{x=w}L1248:do{if((x|0)>1){w=b+488|0;v=b+472|0;s=(x|0)/2|0;q=x;while(1){u=s-1|0;f=c[r>>2]|0;o=c[f+(u<<2)>>2]|0;e=u<<1|1;L1252:do{if((e|0)<(q|0)){l=u;m=e;t=q;n=f;while(1){y=(l<<1)+2|0;if((y|0)<(t|0)){z=c[n+(y<<2)>>2]|0;A=c[n+(m<<2)>>2]|0;B=c[c[w>>2]>>2]|0;C=+h[B+(z<<3)>>3];D=+h[B+(A<<3)>>3];if(C>D){E=y;F=z;G=B;H=C}else{I=A;J=B;K=D;L=1039}}else{B=c[n+(m<<2)>>2]|0;A=c[c[w>>2]>>2]|0;I=B;J=A;K=+h[A+(B<<3)>>3];L=1039}if((L|0)==1039){L=0;E=m;F=I;G=J;H=K}if(H<=+h[G+(o<<3)>>3]){M=l;N=n;break L1252}c[n+(l<<2)>>2]=F;c[(c[v>>2]|0)+(c[(c[r>>2]|0)+(l<<2)>>2]<<2)>>2]=l;B=E<<1|1;A=c[p>>2]|0;z=c[r>>2]|0;if((B|0)<(A|0)){l=E;m=B;t=A;n=z}else{M=E;N=z;break}}}else{M=u;N=f}}while(0);c[N+(M<<2)>>2]=o;c[(c[v>>2]|0)+(o<<2)>>2]=M;if((u|0)<=0){break L1248}s=u;q=c[p>>2]|0}}}while(0);p=c[g>>2]|0;if((p|0)==0){i=d;return}c[j>>2]=0;cG(p);c[g>>2]=0;c[k>>2]=0;i=d;return}function b_(b){b=b|0;var d=0,e=0,f=0,g=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,F=0,G=0,H=0,I=0;d=b+492|0;do{if((a[d]&1)!=0){if((bR(b)|0)!=-1){break}e=b+284|0;f=b+516|0;if((c[e>>2]|0)==(c[f>>2]|0)){g=1;return g|0}i=b+520|0;j=c[i+4>>2]|0;k=0;if((j|0)>(k|0)|(j|0)==(k|0)&(c[i>>2]|0)>>>0>0>>>0){g=1;return g|0}bY(b,b+268|0);do{if((a[b+536|0]&1)!=0){bY(b,b+256|0);k=b+564|0;j=b+568|0;if((c[j>>2]|0)>0){l=k|0;m=b+588|0;n=0;do{a[(c[m>>2]|0)+(c[(c[l>>2]|0)+(n<<2)>>2]|0)|0]=1;n=n+1|0;}while((n|0)<(c[j>>2]|0))}n=c[e>>2]|0;if((n|0)>0){l=b+280|0;m=b+588|0;o=0;p=0;q=n;while(1){r=c[l>>2]|0;s=c[r+(o<<2)>>2]|0;if((a[(c[m>>2]|0)+(s>>1)|0]|0)==0){c[r+(p<<2)>>2]=s;t=p+1|0;u=c[e>>2]|0}else{t=p;u=q}s=o+1|0;if((s|0)<(u|0)){o=s;p=t;q=u}else{v=s;w=t;x=u;break}}}else{v=0;w=0;x=n}q=v-w|0;if((q|0)>0){p=x-q|0;c[e>>2]=p;y=p}else{y=x}c[b+512>>2]=y;p=k|0;L1297:do{if((c[j>>2]|0)>0){q=b+588|0;o=0;do{a[(c[q>>2]|0)+(c[(c[p>>2]|0)+(o<<2)>>2]|0)|0]=0;o=o+1|0;z=c[j>>2]|0;}while((o|0)<(z|0));if((z|0)<=0){break}o=b+580|0;q=b+584|0;m=b+576|0;l=0;while(1){s=c[o>>2]|0;if((s|0)==(c[q>>2]|0)){r=(s>>1)+2&-2;A=(r|0)<2?2:r;if((A|0)>(2147483647-s|0)){B=1087;break}r=c[m>>2]|0;C=A+s|0;c[q>>2]=C;A=cH(r,C<<2)|0;C=A;c[m>>2]=C;if((A|0)==0){if((c[(a$()|0)>>2]|0)==12){B=1088;break}}D=c[o>>2]|0;F=C}else{D=s;F=c[m>>2]|0}s=F+(D<<2)|0;if((s|0)==0){G=D;H=F}else{c[s>>2]=0;G=c[o>>2]|0;H=c[m>>2]|0}c[o>>2]=G+1;c[H+(G<<2)>>2]=c[(c[p>>2]|0)+(l<<2)>>2];l=l+1|0;if((l|0)>=(c[j>>2]|0)){break L1297}}if((B|0)==1087){I=aP(1)|0;av(I|0,3120,0);return 0}else if((B|0)==1088){I=aP(1)|0;av(I|0,3120,0);return 0}}}while(0);if((c[p>>2]|0)==0){break}c[j>>2]=0}}while(0);if(+((c[b+556>>2]|0)>>>0>>>0)>+h[b+96>>3]*+((c[b+548>>2]|0)>>>0>>>0)){a7[c[(c[b>>2]|0)+8>>2]&63](b)}bZ(b);c[f>>2]=c[e>>2];k=b+224|0;n=c[k>>2]|0;l=c[k+4>>2]|0;k=b+232|0;o=c[k>>2]|0;m=c[k+4>>2]|0;k=(E=+(o>>>0)+ +(m|0)*4294967296.0+(+(n>>>0)+ +(l|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[i>>2]=~~(+(o>>>0)+ +(m|0)*4294967296.0+(+(n>>>0)+ +(l|0)*4294967296.0))>>>0;c[i+4>>2]=k;g=1;return g|0}}while(0);a[d]=0;g=0;return g|0}function b$(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=b+4|0;if((c[e>>2]|0)>=(d|0)){return}f=b+8|0;g=c[f>>2]|0;do{if((g|0)<(d|0)){h=d+1-g&-2;i=(g>>1)+2&-2;j=(h|0)>(i|0)?h:i;if((j|0)>(2147483647-g|0)){k=aP(1)|0;av(k|0,3120,0)}i=b|0;h=c[i>>2]|0;l=j+g|0;c[f>>2]=l;j=cH(h,l)|0;c[i>>2]=j;if((j|0)!=0){break}if((c[(a$()|0)>>2]|0)!=12){break}k=aP(1)|0;av(k|0,3120,0)}}while(0);k=c[e>>2]|0;if((k|0)<(d|0)){f=b|0;b=k;do{k=(c[f>>2]|0)+b|0;if((k|0)!=0){a[k]=0}b=b+1|0;}while((b|0)<(d|0))}c[e>>2]=d;return}function b0(b,d){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,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,M=0,N=0,O=0,P=0,Q=0;e=b+412|0;f=b+448|0;g=c[f>>2]|0;h=b+444|0;i=c[h>>2]|0;if((g|0)>0){j=b+428|0;k=e|0;l=b+456|0;m=0;n=i;o=g;while(1){g=n+(m<<2)|0;p=c[g>>2]|0;if((a[(c[j>>2]|0)+p|0]|0)==0){q=o;r=n}else{s=c[k>>2]|0;t=s+(p*12|0)+4|0;u=c[t>>2]|0;if((u|0)>0){v=s+(p*12|0)|0;p=0;s=0;w=u;while(1){x=c[v>>2]|0;y=x+(p<<3)|0;if((c[(c[c[l>>2]>>2]|0)+(c[y>>2]<<2)>>2]&3|0)==1){z=s;A=w}else{B=y;y=x+(s<<3)|0;x=c[B+4>>2]|0;c[y>>2]=c[B>>2];c[y+4>>2]=x;z=s+1|0;A=c[t>>2]|0}x=p+1|0;if((x|0)<(A|0)){p=x;s=z;w=A}else{C=x;D=z;E=A;break}}}else{C=0;D=0;E=u}w=C-D|0;if((w|0)>0){c[t>>2]=E-w}a[(c[j>>2]|0)+(c[g>>2]|0)|0]=0;q=c[f>>2]|0;r=c[h>>2]|0}w=m+1|0;if((w|0)<(q|0)){m=w;n=r;o=q}else{F=r;break}}}else{F=i}if((F|0)!=0){c[f>>2]=0}f=b+540|0;if((c[f>>2]|0)>0){F=e|0;e=b+544|0;i=0;do{r=i<<1;q=c[F>>2]|0;o=q+(r*12|0)+4|0;if((c[o>>2]|0)>0){n=q+(r*12|0)|0;m=0;do{h=(c[n>>2]|0)+(m<<3)|0;j=c[h>>2]|0;E=c[e>>2]|0;D=E+(j<<2)|0;if((c[D>>2]&16|0)==0){C=b6(d,D)|0;c[h>>2]=C;c[D>>2]=c[D>>2]|16;c[E+(j+1<<2)>>2]=C}else{c[h>>2]=c[E+(j+1<<2)>>2]}m=m+1|0;}while((m|0)<(c[o>>2]|0));G=c[F>>2]|0}else{G=q}o=r|1;m=G+(o*12|0)+4|0;if((c[m>>2]|0)>0){n=G+(o*12|0)|0;o=0;do{g=(c[n>>2]|0)+(o<<3)|0;t=c[g>>2]|0;u=c[e>>2]|0;j=u+(t<<2)|0;if((c[j>>2]&16|0)==0){E=b6(d,j)|0;c[g>>2]=E;c[j>>2]=c[j>>2]|16;c[u+(t+1<<2)>>2]=E}else{c[g>>2]=c[u+(t+1<<2)>>2]}o=o+1|0;}while((o|0)<(c[m>>2]|0))}i=i+1|0;}while((i|0)<(c[f>>2]|0))}f=b+284|0;if((c[f>>2]|0)>0){i=b+280|0;e=b+396|0;G=b+544|0;F=b+332|0;m=0;do{o=c[e>>2]|0;n=o+(c[(c[i>>2]|0)+(m<<2)>>2]>>1<<3)|0;r=c[n>>2]|0;do{if((r|0)!=-1){q=c[G>>2]|0;t=q+(r<<2)|0;u=q+(r+1<<2)|0;q=c[u>>2]|0;if((c[t>>2]&16|0)!=0){c[n>>2]=q;break}g=q>>1;if((a[(c[F>>2]|0)+g|0]|0)!=(q&1)){break}q=c[o+(g<<3)>>2]|0;if(!((q|0)!=-1&(q|0)==(r|0))){break}q=b6(d,t)|0;c[n>>2]=q;c[t>>2]=c[t>>2]|16;c[u>>2]=q}}while(0);m=m+1|0;}while((m|0)<(c[f>>2]|0))}f=b+272|0;m=c[f>>2]|0;if((m|0)>0){F=b+268|0;G=b+544|0;i=0;e=0;n=m;while(1){r=(c[F>>2]|0)+(i<<2)|0;o=c[r>>2]|0;q=c[G>>2]|0;u=q+(o<<2)|0;t=c[u>>2]|0;if((t&3|0)==1){H=e;I=n}else{if((t&16|0)==0){t=b6(d,u)|0;c[r>>2]=t;c[u>>2]=c[u>>2]|16;c[q+(o+1<<2)>>2]=t}else{c[r>>2]=c[q+(o+1<<2)>>2]}o=c[F>>2]|0;c[o+(e<<2)>>2]=c[o+(i<<2)>>2];H=e+1|0;I=c[f>>2]|0}o=i+1|0;if((o|0)<(I|0)){i=o;e=H;n=I}else{J=o;K=H;L=I;break}}}else{J=0;K=0;L=m}m=J-K|0;if((m|0)>0){c[f>>2]=L-m}m=b+260|0;L=c[m>>2]|0;if((L|0)>0){f=b+256|0;K=b+544|0;b=0;J=0;I=L;while(1){H=(c[f>>2]|0)+(b<<2)|0;n=c[H>>2]|0;e=c[K>>2]|0;i=e+(n<<2)|0;F=c[i>>2]|0;if((F&3|0)==1){M=J;N=I}else{if((F&16|0)==0){F=b6(d,i)|0;c[H>>2]=F;c[i>>2]=c[i>>2]|16;c[e+(n+1<<2)>>2]=F}else{c[H>>2]=c[e+(n+1<<2)>>2]}n=c[f>>2]|0;c[n+(J<<2)>>2]=c[n+(b<<2)>>2];M=J+1|0;N=c[m>>2]|0}n=b+1|0;if((n|0)<(N|0)){b=n;J=M;I=N}else{O=n;P=M;Q=N;break}}}else{O=0;P=0;Q=L}L=O-P|0;if((L|0)<=0){return}c[m>>2]=Q-L;return}function b1(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;i=i+24|0;e=d|0;f=b+548|0;g=b+556|0;h=(c[f>>2]|0)-(c[g>>2]|0)|0;cO(e|0,0,16);b5(e|0,h);h=e+16|0;a[h]=0;b0(b,e);if((c[b+44>>2]|0)>1){j=c[f>>2]<<2;k=c[e+4>>2]<<2;aA(1376,(l=i,i=i+16|0,c[l>>2]=j,c[l+8>>2]=k,l)|0)|0;i=l}a[b+560|0]=a[h]&1;h=b+544|0;l=c[h>>2]|0;if((l|0)!=0){cG(l)}c[h>>2]=c[e>>2];c[f>>2]=c[e+4>>2];c[b+552>>2]=c[e+8>>2];c[g>>2]=c[e+12>>2];i=d;return}function b2(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=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.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;if((b|0)<16){e=b-1|0;if((e|0)<=0){return}f=d|0;h=0;while(1){i=h+1|0;if((i|0)<(b|0)){j=c[f>>2]|0;k=i;l=h;while(1){m=j+(c[a+(k<<2)>>2]<<2)|0;n=m;o=c[m>>2]|0;m=o>>>5;do{if(o>>>0>95){p=j+(c[a+(l<<2)>>2]<<2)|0;q=(c[p>>2]|0)>>>5;if((q|0)==2){r=k;break}r=+g[n+4+(m<<2)>>2]<+g[p+4+(q<<2)>>2]?k:l}else{r=l}}while(0);m=k+1|0;if((m|0)<(b|0)){k=m;l=r}else{s=r;break}}}else{s=h}l=a+(h<<2)|0;k=c[l>>2]|0;j=a+(s<<2)|0;c[l>>2]=c[j>>2];c[j>>2]=k;if((i|0)<(e|0)){h=i}else{break}}return}h=c[a+(((b|0)/2|0)<<2)>>2]|0;e=d|0;s=b;r=-1;while(1){f=r+1|0;k=a+(f<<2)|0;j=c[k>>2]|0;l=c[e>>2]|0;m=l+(j<<2)|0;n=c[m>>2]|0;o=l+(h<<2)|0;q=c[o>>2]|0;L1469:do{if(n>>>0>95){p=q>>>5;if((p|0)==2){t=f;while(1){u=t+1|0;v=a+(u<<2)|0;w=c[v>>2]|0;if((c[l+(w<<2)>>2]|0)>>>0>95){t=u}else{x=u;y=v;z=w;break L1469}}}A=+g[o+4+(p<<2)>>2];t=f;w=k;v=m;u=n;B=j;while(1){if(+g[v+4+(u>>>5<<2)>>2]>=A){x=t;y=w;z=B;break L1469}C=t+1|0;D=a+(C<<2)|0;E=c[D>>2]|0;F=l+(E<<2)|0;G=c[F>>2]|0;if(G>>>0>95){t=C;w=D;v=F;u=G;B=E}else{x=C;y=D;z=E;break}}}else{x=f;y=k;z=j}}while(0);j=s-1|0;k=a+(j<<2)|0;L1479:do{if(q>>>0>95){A=+g[o+4+(q>>>5<<2)>>2];f=j;n=k;while(1){m=l+(c[n>>2]<<2)|0;i=(c[m>>2]|0)>>>5;if((i|0)!=2){if(A>=+g[m+4+(i<<2)>>2]){H=f;I=n;break L1479}}i=f-1|0;f=i;n=a+(i<<2)|0}}else{H=j;I=k}}while(0);if((x|0)>=(H|0)){break}c[y>>2]=c[I>>2];c[I>>2]=z;s=H;r=x}b2(a,x,d);b2(y,b-x|0,d);return}function b3(b,d){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;e=d+1|0;f=b+4|0;if((c[f>>2]|0)>=(e|0)){return}g=b+8|0;h=c[g>>2]|0;do{if((h|0)<(e|0)){i=d+2-h&-2;j=(h>>1)+2&-2;k=(i|0)>(j|0)?i:j;if((k|0)>(2147483647-h|0)){l=aP(1)|0;av(l|0,3120,0)}j=b|0;i=c[j>>2]|0;m=k+h|0;c[g>>2]=m;k=cH(i,m)|0;c[j>>2]=k;if((k|0)!=0){break}if((c[(a$()|0)>>2]|0)!=12){break}l=aP(1)|0;av(l|0,3120,0)}}while(0);l=c[f>>2]|0;if((l|0)<(e|0)){g=b|0;b=l;do{a[(c[g>>2]|0)+b|0]=0;b=b+1|0;}while((b|0)<(e|0))}c[f>>2]=e;return}function b4(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,m=0,n=0,o=0,p=0,q=0,r=0;if((b|0)<16){d=b-1|0;if((d|0)>0){e=0}else{return}while(1){f=e+1|0;if((f|0)<(b|0)){g=f;h=e;while(1){i=(c[a+(g<<2)>>2]|0)<(c[a+(h<<2)>>2]|0)?g:h;j=g+1|0;if((j|0)<(b|0)){g=j;h=i}else{k=i;break}}}else{k=e}h=a+(e<<2)|0;g=c[h>>2]|0;i=a+(k<<2)|0;c[h>>2]=c[i>>2];c[i>>2]=g;if((f|0)<(d|0)){e=f}else{break}}return}e=c[a+(((b|0)/2|0)<<2)>>2]|0;d=b;k=-1;while(1){g=k;while(1){l=g+1|0;m=a+(l<<2)|0;n=m|0;o=c[n>>2]|0;if((o|0)<(e|0)){g=l}else{p=d;break}}do{p=p-1|0;q=a+(p<<2)|0;r=c[q>>2]|0;}while((e|0)<(r|0));if((l|0)>=(p|0)){break}c[n>>2]=r;c[q>>2]=o;d=p;k=l}b4(a,l);b4(m,b-l|0);return}function b5(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a+8|0;e=c[d>>2]|0;if(e>>>0<b>>>0){f=e}else{return}while(1){if(f>>>0>=b>>>0){break}g=((f>>>3)+2+(f>>>1)&-2)+f|0;c[d>>2]=g;if(g>>>0>e>>>0){f=g}else{h=1244;break}}if((h|0)==1244){av(aP(1)|0,3120,0)}h=a|0;a=cH(c[h>>2]|0,f<<2)|0;do{if((a|0)==0){if((c[(a$()|0)>>2]|0)!=12){break}av(aP(1)|0,3120,0)}}while(0);c[h>>2]=a;return}function b6(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0;e=d;f=c[e>>2]|0;h=a[b+16|0]&1|f>>>2&1;i=((h+(f>>>5)<<2)+4|0)>>>2;f=b+4|0;b5(b|0,i+(c[f>>2]|0)|0);j=c[f>>2]|0;k=as(j|0,i|0)|0;c[f>>2]=k;if(F){av(aP(1)|0,3120,0);return 0}k=(c[b>>2]|0)+(j<<2)|0;b=k;if((k|0)==0){return j|0}f=c[e>>2]&-9|h<<3;c[k>>2]=f;if((c[e>>2]|0)>>>0>31){h=0;do{c[b+4+(h<<2)>>2]=c[d+4+(h<<2)>>2];h=h+1|0;}while((h|0)<((c[e>>2]|0)>>>5|0));l=c[k>>2]|0}else{l=f}if((l&8|0)==0){return j|0}f=l>>>5;k=d+4+(f<<2)|0;if((l&4|0)==0){c[b+4+(f<<2)>>2]=c[k>>2];return j|0}else{g[b+4+(f<<2)>>2]=+g[k>>2];return j|0}return 0}function b7(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=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;d=i;i=i+8|0;e=d|0;c[e>>2]=b;f=a+12|0;g=b+1|0;j=a+16|0;if((c[j>>2]|0)<(g|0)){k=a+20|0;l=c[k>>2]|0;do{if((l|0)<(g|0)){m=b+2-l&-2;n=(l>>1)+2&-2;o=(m|0)>(n|0)?m:n;if((o|0)>(2147483647-l|0)){p=aP(1)|0;av(p|0,3120,0)}n=f|0;m=c[n>>2]|0;q=o+l|0;c[k>>2]=q;o=cH(m,q<<2)|0;c[n>>2]=o;if((o|0)!=0){break}if((c[(a$()|0)>>2]|0)!=12){break}p=aP(1)|0;av(p|0,3120,0)}}while(0);p=c[j>>2]|0;if((p|0)<(g|0)){k=f|0;l=p;do{c[(c[k>>2]|0)+(l<<2)>>2]=-1;l=l+1|0;}while((l|0)<(g|0))}c[j>>2]=g}g=f|0;c[(c[g>>2]|0)+(b<<2)>>2]=c[a+4>>2];bQ(a|0,e);b=c[(c[g>>2]|0)+(c[e>>2]<<2)>>2]|0;e=a|0;g=c[e>>2]|0;f=c[g+(b<<2)>>2]|0;if((b|0)==0){r=0;s=g;t=a+12|0;u=s+(r<<2)|0;c[u>>2]=f;v=c[t>>2]|0;w=v+(f<<2)|0;c[w>>2]=r;i=d;return}j=a+28|0;l=a+12|0;a=b;b=g;while(1){g=a-1>>1;k=c[b+(g<<2)>>2]|0;p=c[c[j>>2]>>2]|0;if(+h[p+(f<<3)>>3]<=+h[p+(k<<3)>>3]){r=a;s=b;t=l;x=1286;break}c[b+(a<<2)>>2]=k;c[(c[l>>2]|0)+(c[(c[e>>2]|0)+(g<<2)>>2]<<2)>>2]=a;k=c[e>>2]|0;if((g|0)==0){r=0;s=k;t=l;x=1287;break}else{a=g;b=k}}if((x|0)==1286){u=s+(r<<2)|0;c[u>>2]=f;v=c[t>>2]|0;w=v+(f<<2)|0;c[w>>2]=r;i=d;return}else if((x|0)==1287){u=s+(r<<2)|0;c[u>>2]=f;v=c[t>>2]|0;w=v+(f<<2)|0;c[w>>2]=r;i=d;return}}function b8(a){a=a|0;if((a|0)==0){return}cG(a);return}function b9(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0.0,D=0,E=0,F=0.0,G=0.0,H=0,I=0,J=0,K=0.0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0.0,U=0,V=0,W=0.0,X=0.0,Y=0.0,Z=0;e=i;f=0;while(1){if((f|0)==1){break}if((a[d+f|0]|0)==(a[1016+f|0]|0)){f=f+1|0}else{g=0;j=1348;break}}if((j|0)==1348){i=e;return g|0}f=b+4|0;k=c[f>>2]|0;l=0;while(1){m=a[k+l|0]|0;n=l+1|0;if(m<<24>>24==0){p=0;break}if((a[d+n|0]|0)==m<<24>>24){l=n}else{g=0;j=1350;break}}if((j|0)==1350){i=e;return g|0}while(1){q=d+(p+n)|0;if((p|0)==1){r=q;break}if((a[q]|0)==(a[656+p|0]|0)){p=p+1|0}else{g=0;j=1351;break}}if((j|0)==1351){i=e;return g|0}while(1){s=r+1|0;if((aQ(a[r]|0)|0)==0){break}else{r=s}}p=a[r]|0;if((p<<24>>24|0)==45){t=s;u=1}else if((p<<24>>24|0)==43){t=s;u=0}else{t=r;u=0}r=-1;s=0;p=t;while(1){v=a[p]|0;if(((v<<24>>24)-48|0)>>>0<10){w=r}else{if(v<<24>>24!=46|(r|0)>-1){break}else{w=s}}r=w;s=s+1|0;p=p+1|0}w=p+(-s|0)|0;t=(r|0)<0;n=((t^1)<<31>>31)+s|0;d=(n|0)>18;l=(d?-18:-n|0)+(t?s:r)|0;r=d?18:n;do{if((r|0)==0){x=q;y=0.0}else{if((r|0)>9){n=w;d=r;s=0;while(1){t=a[n]|0;k=n+1|0;if(t<<24>>24==46){z=a[k]|0;A=n+2|0}else{z=t;A=k}B=(s*10|0)-48+(z<<24>>24)|0;k=d-1|0;if((k|0)>9){n=A;d=k;s=B}else{break}}C=+(B|0)*1.0e9;D=9;E=A;j=1313}else{if((r|0)>0){C=0.0;D=r;E=w;j=1313}else{F=0.0;G=0.0}}if((j|0)==1313){s=E;d=D;n=0;while(1){k=a[s]|0;t=s+1|0;if(k<<24>>24==46){H=a[t]|0;I=s+2|0}else{H=k;I=t}J=(n*10|0)-48+(H<<24>>24)|0;t=d-1|0;if((t|0)>0){s=I;d=t;n=J}else{break}}F=+(J|0);G=C}K=G+F;do{if((v<<24>>24|0)==69|(v<<24>>24|0)==101){n=p+1|0;d=a[n]|0;if((d<<24>>24|0)==45){L=p+2|0;M=1}else if((d<<24>>24|0)==43){L=p+2|0;M=0}else{L=n;M=0}n=a[L]|0;if(((n<<24>>24)-48|0)>>>0<10){N=L;O=0;P=n}else{Q=0;R=L;S=M;break}while(1){n=(P<<24>>24)-48+(O*10|0)|0;d=N+1|0;s=a[d]|0;if(((s<<24>>24)-48|0)>>>0<10){N=d;O=n;P=s}else{Q=n;R=d;S=M;break}}}else{Q=0;R=p;S=0}}while(0);d=l+((S|0)==0?Q:-Q|0)|0;n=(d|0)<0?-d|0:d;if((n|0)>511){c[(a$()|0)>>2]=34;T=1.0;U=328;V=511;j=1330}else{if((n|0)==0){W=1.0}else{T=1.0;U=328;V=n;j=1330}}if((j|0)==1330){while(1){j=0;if((V&1|0)==0){X=T}else{X=T*+h[U>>3]}n=V>>1;if((n|0)==0){W=X;break}else{T=X;U=U+8|0;V=n;j=1330}}}if((d|0)>-1){x=R;y=K*W;break}else{x=R;y=K/W;break}}}while(0);if((u|0)==0){Y=y}else{Y=-0.0-y}if((x|0)==0){g=0;i=e;return g|0}y=+h[b+32>>3];do{if(Y>=y){if(!((a[b+41|0]&1)==0|Y!=y)){break}x=c[o>>2]|0;u=c[f>>2]|0;ay(x|0,600,(Z=i,i=i+16|0,c[Z>>2]=q,c[Z+8>>2]=u,Z)|0)|0;i=Z;aM(1);return 0}}while(0);y=+h[b+24>>3];do{if(Y<=y){if(!((a[b+40|0]&1)==0|Y!=y)){break}u=c[o>>2]|0;x=c[f>>2]|0;ay(u|0,496,(Z=i,i=i+16|0,c[Z>>2]=q,c[Z+8>>2]=x,Z)|0)|0;i=Z;aM(1);return 0}}while(0);h[b+48>>3]=Y;g=1;i=e;return g|0}function ca(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0.0,l=0.0,m=0,n=0.0,p=0;e=i;f=c[o>>2]|0;g=c[b+16>>2]|0;j=(a[b+40|0]&1)!=0?91:40;k=+h[b+24>>3];l=+h[b+32>>3];m=(a[b+41|0]&1)!=0?93:41;n=+h[b+48>>3];ay(f|0,432,(p=i,i=i+56|0,c[p>>2]=c[b+4>>2],c[p+8>>2]=g,c[p+16>>2]=j,h[p+24>>3]=k,h[p+32>>3]=l,c[p+40>>2]=m,h[p+48>>3]=n,p)|0)|0;i=p;if(!d){i=e;return}ay(f|0,712,(p=i,i=i+8|0,c[p>>2]=c[b+8>>2],p)|0)|0;i=p;aE(10,f|0)|0;i=e;return}function cb(){var d=0,e=0,f=0;d=i;i=i+8|0;a[3240]=1;a[3232]=1;e=d|0;bA(4416,1824,960,488,1352);c[1104]=2608;h[555]=0.0;h[556]=1.0;a[4456]=0;a[4457]=0;b[2229]=b[e>>1]|0;b[2230]=b[e+2>>1]|0;b[2231]=b[e+4>>1]|0;h[558]=.95;bA(4160,808,664,488,1352);c[1040]=2608;h[523]=0.0;h[524]=1.0;a[4200]=0;a[4201]=0;b[2101]=b[e>>1]|0;b[2102]=b[e+2>>1]|0;b[2103]=b[e+4>>1]|0;h[526]=.999;bA(3904,408,2384,488,1352);c[976]=2608;h[491]=0.0;h[492]=1.0;a[3944]=1;a[3945]=1;b[1973]=b[e>>1]|0;b[1974]=b[e+2>>1]|0;b[1975]=b[e+4>>1]|0;h[494]=0.0;bA(4272,2336,2288,488,1352);c[1068]=2608;h[537]=0.0;h[538]=+r;a[4312]=0;a[4313]=0;b[2157]=b[e>>1]|0;b[2158]=b[e+2>>1]|0;b[2159]=b[e+4>>1]|0;h[540]=91648253.0;bA(4384,2200,2128,488,1176);c[1096]=2512;f=4404;c[f>>2]=0;c[f+4>>2]=2;c[1103]=2;bA(4048,2e3,1928,488,1176);c[1012]=2512;f=4068;c[f>>2]=0;c[f+4>>2]=2;c[1019]=2;bA(4024,1808,1760,488,1024);c[1006]=2672;a[4044]=0;bA(4080,1648,1552,488,1024);c[1020]=2672;a[4100]=1;bA(3992,1368,1320,488,1176);c[998]=2512;f=4012;c[f>>2]=1;c[f+4>>2]=2147483647;c[1005]=100;bA(4216,1312,1272,488,1352);c[1054]=2608;h[530]=1.0;h[531]=+r;a[4256]=0;a[4257]=0;b[2129]=b[e>>1]|0;b[2130]=b[e+2>>1]|0;b[2131]=b[e+4>>1]|0;h[533]=2.0;bA(4104,1264,1184,488,1352);c[1026]=2608;h[516]=0.0;h[517]=+r;a[4144]=0;a[4145]=0;b[2073]=b[e>>1]|0;b[2074]=b[e+2>>1]|0;b[2075]=b[e+4>>1]|0;h[519]=.2;bA(3960,1160,1128,488,1176);c[990]=2512;e=3980;c[e>>2]=0;c[e+4>>2]=2147483647;c[997]=0;i=d;return}function cc(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;b=a+32|0;d=c[b>>2]|0;if((d|0)!=0){c[a+36>>2]=0;cG(d);c[b>>2]=0;c[a+40>>2]=0}b=a+16|0;d=c[b>>2]|0;if((d|0)!=0){c[a+20>>2]=0;cG(d);c[b>>2]=0;c[a+24>>2]=0}b=a|0;d=c[b>>2]|0;if((d|0)==0){return}e=a+4|0;f=c[e>>2]|0;if((f|0)>0){g=0;h=f;f=d;while(1){i=f+(g*12|0)|0;j=c[i>>2]|0;if((j|0)==0){k=h;l=f}else{c[f+(g*12|0)+4>>2]=0;cG(j);c[i>>2]=0;c[f+(g*12|0)+8>>2]=0;k=c[e>>2]|0;l=c[b>>2]|0}i=g+1|0;if((i|0)<(k|0)){g=i;h=k;f=l}else{m=l;break}}}else{m=d}c[e>>2]=0;cG(m);c[b>>2]=0;c[a+8>>2]=0;return}function cd(a){a=a|0;ce(a);if((a|0)==0){return}cG(a|0);return}function ce(a){a=a|0;var b=0,d=0,e=0;c[a>>2]=2640;b=a+904|0;d=c[b>>2]|0;if((d|0)!=0){c[a+908>>2]=0;cG(d);c[b>>2]=0;c[a+912>>2]=0}b=a+892|0;d=c[b>>2]|0;if((d|0)!=0){c[a+896>>2]=0;cG(d);c[b>>2]=0;c[a+900>>2]=0}b=a+876|0;d=c[b>>2]|0;if((d|0)!=0){c[a+880>>2]=0;cG(d);c[b>>2]=0;c[a+884>>2]=0}b=a+856|0;d=c[b>>2]|0;if((d|0)!=0){c[a+860>>2]=0;cG(d);c[b>>2]=0;c[a+864>>2]=0}b=a+836|0;d=c[b>>2]|0;if((d|0)!=0){c[a+840>>2]=0;cG(d);c[b>>2]=0;c[a+844>>2]=0}b=a+824|0;d=c[b>>2]|0;if((d|0)!=0){c[a+828>>2]=0;cG(d);c[b>>2]=0;c[a+832>>2]=0}b=a+808|0;d=c[b>>2]|0;if((d|0)!=0){c[a+812>>2]=0;cG(d);c[b>>2]=0;c[a+816>>2]=0}cc(a+760|0);b=a+744|0;d=c[b>>2]|0;if((d|0)!=0){c[a+748>>2]=0;cG(d);c[b>>2]=0;c[a+752>>2]=0}b=a+732|0;d=c[b>>2]|0;if((d|0)==0){e=a;bN(e);return}c[a+736>>2]=0;cG(d);c[b>>2]=0;c[a+740>>2]=0;e=a;bN(e);return}function cf(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,m=0,n=0,o=0;d=b+1|0;e=a+4|0;if((c[e>>2]|0)>=(d|0)){f=a|0;g=c[f>>2]|0;h=g+(b<<2)|0;c[h>>2]=0;return}i=a+8|0;j=c[i>>2]|0;do{if((j|0)<(d|0)){k=b+2-j&-2;l=(j>>1)+2&-2;m=(k|0)>(l|0)?k:l;if((m|0)>(2147483647-j|0)){n=aP(1)|0;av(n|0,3120,0)}l=a|0;k=c[l>>2]|0;o=m+j|0;c[i>>2]=o;m=cH(k,o<<2)|0;c[l>>2]=m;if((m|0)!=0){break}if((c[(a$()|0)>>2]|0)!=12){break}n=aP(1)|0;av(n|0,3120,0)}}while(0);n=c[e>>2]|0;if((n|0)<(d|0)){i=a|0;j=n;do{n=(c[i>>2]|0)+(j<<2)|0;if((n|0)!=0){c[n>>2]=0}j=j+1|0;}while((j|0)<(d|0))}c[e>>2]=d;f=a|0;g=c[f>>2]|0;h=g+(b<<2)|0;c[h>>2]=0;return}function cg(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,x=0,y=0,z=0,A=0,B=0,C=0,D=0;d=i;i=i+8|0;e=d|0;c[e>>2]=b;f=a+12|0;g=b+1|0;h=a+16|0;if((c[h>>2]|0)<(g|0)){j=a+20|0;k=c[j>>2]|0;do{if((k|0)<(g|0)){l=b+2-k&-2;m=(k>>1)+2&-2;n=(l|0)>(m|0)?l:m;if((n|0)>(2147483647-k|0)){o=aP(1)|0;av(o|0,3120,0)}m=f|0;l=c[m>>2]|0;p=n+k|0;c[j>>2]=p;n=cH(l,p<<2)|0;c[m>>2]=n;if((n|0)!=0){break}if((c[(a$()|0)>>2]|0)!=12){break}o=aP(1)|0;av(o|0,3120,0)}}while(0);o=c[h>>2]|0;if((o|0)<(g|0)){j=f|0;k=o;do{c[(c[j>>2]|0)+(k<<2)>>2]=-1;k=k+1|0;}while((k|0)<(g|0))}c[h>>2]=g}g=f|0;c[(c[g>>2]|0)+(b<<2)>>2]=c[a+4>>2];bQ(a|0,e);b=c[(c[g>>2]|0)+(c[e>>2]<<2)>>2]|0;e=a|0;g=c[e>>2]|0;f=c[g+(b<<2)>>2]|0;if((b|0)==0){q=0;r=g;s=a+12|0;t=r+(q<<2)|0;c[t>>2]=f;u=c[s>>2]|0;v=u+(f<<2)|0;c[v>>2]=q;i=d;return}h=a+28|0;k=f<<1;j=k|1;o=a+12|0;a=b;b=g;while(1){g=a-1>>1;n=c[b+(g<<2)>>2]|0;m=c[c[h>>2]>>2]|0;p=c[m+(k<<2)>>2]|0;l=p;w=(p|0)<0|0?-1:0;p=c[m+(j<<2)>>2]|0;x=p;y=(p|0)<0|0?-1:0;p=(E=(+(x>>>0)+ +(y|0)*4294967296.0)*(+(l>>>0)+ +(w|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);z=n<<1;A=c[m+(z<<2)>>2]|0;B=A;C=(A|0)<0|0?-1:0;A=c[m+((z|1)<<2)>>2]|0;z=A;m=(A|0)<0|0?-1:0;A=(E=(+(z>>>0)+ +(m|0)*4294967296.0)*(+(B>>>0)+ +(C|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);if(!(p>>>0<A>>>0|p>>>0==A>>>0&~~((+(x>>>0)+ +(y|0)*4294967296.0)*(+(l>>>0)+ +(w|0)*4294967296.0))>>>0>>>0<~~((+(z>>>0)+ +(m|0)*4294967296.0)*(+(B>>>0)+ +(C|0)*4294967296.0))>>>0>>>0)){q=a;r=b;s=o;D=1432;break}c[b+(a<<2)>>2]=n;c[(c[o>>2]|0)+(c[(c[e>>2]|0)+(g<<2)>>2]<<2)>>2]=a;n=c[e>>2]|0;if((g|0)==0){q=0;r=n;s=o;D=1433;break}else{a=g;b=n}}if((D|0)==1432){t=r+(q<<2)|0;c[t>>2]=f;u=c[s>>2]|0;v=u+(f<<2)|0;c[v>>2]=q;i=d;return}else if((D|0)==1433){t=r+(q<<2)|0;c[t>>2]=f;u=c[s>>2]|0;v=u+(f<<2)|0;c[v>>2]=q;i=d;return}}function ch(b,d){b=b|0;d=d|0;var e=0,f=0,g=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,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,ab=0,ac=0,ad=0,ae=0,af=0,ah=0,ai=0,aj=0,ak=0,al=0,am=0,an=0,ao=0,ap=0,aq=0,ar=0,as=0,at=0,au=0,av=0,aw=0,ax=0,ay=0,az=0,aB=0,aC=0,aD=0,aE=0,aF=0,aG=0,aH=0,aI=0,aJ=0,aK=0,aL=0,aM=0,aN=0,aO=0,aP=0,aQ=0,aR=0,aS=0,aT=0,aU=0,aV=0,aW=0,aX=0,aY=0,aZ=0,a_=0,a$=0,a0=0,a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a8=0,a9=0,ba=0,bb=0,bc=0,bd=0,be=0,bf=0,bg=0,bh=0,bi=0,bj=0,bk=0,bl=0,bm=0,bn=0,bo=0,bp=0,bq=0,br=0,bs=0,bt=0,bu=0,bv=0,bw=0,bx=0,by=0,bz=0,bA=0,bB=0,bC=0,bD=0,bE=0,bF=0,bG=0,bH=0,bI=0,bJ=0,bK=0,bL=0,bM=0,bN=0,bO=0,bP=0,bS=0,bT=0,bU=0,bV=0,bY=0,b$=0,b0=0,b1=0,b2=0,b3=0,b4=0,b5=0,b6=0,b8=0.0;e=i;i=i+120|0;f=e|0;g=e+8|0;j=e+16|0;k=e+24|0;l=e+32|0;m=e+40|0;n=e+48|0;o=e+56|0;p=e+64|0;q=e+72|0;r=e+80|0;s=e+96|0;t=e+112|0;u=b;if(!(b_(u)|0)){v=0;i=e;return v|0}w=b+724|0;if((a[w]&1)==0){v=1;i=e;return v|0}x=b+924|0;y=b+872|0;z=b+868|0;A=b+860|0;B=b+680|0;C=b+824|0;D=b+828|0;F=C|0;G=b+836|0;H=b+904|0;I=b+332|0;J=b+44|0;K=b+704|0;L=b+706|0;M=b+696|0;N=b+556|0;O=b+548|0;R=b;S=b+876|0;T=b+920|0;U=b+284|0;V=b+776|0;W=b+760|0;X=r|0;Y=r+4|0;Z=r+8|0;_=s|0;$=s+4|0;ab=s+8|0;ac=b+544|0;ad=b+708|0;ae=b+684|0;af=b+688|0;ah=b+380|0;ai=b+460|0;aj=b+476|0;ak=b+472|0;al=b+716|0;am=b+732|0;an=b+736|0;ao=am|0;ap=b+628|0;aq=ap;ar=ap;ap=f|0;as=g|0;at=b+632|0;au=b+412|0;av=b+200|0;aw=b+804|0;ax=b+292|0;ay=b+396|0;az=b+296|0;aB=b+280|0;aC=b+712|0;aD=b+856|0;aE=aD|0;aF=b+540|0;aG=b+744|0;L1797:while(1){aH=c[x>>2]|0;do{if((aH|0)>0){aI=0;aJ=1443}else{if((c[T>>2]|0)>=(c[U>>2]|0)){if((c[D>>2]|0)<=0){break L1797}}if((aH|0)!=0){aI=0;aJ=1443;break}aK=c[y>>2]|0;aL=c[z>>2]|0}}while(0);if((aJ|0)==1443){while(1){aJ=0;aH=c[y>>2]|0;aM=c[z>>2]|0;aN=aH-aM|0;if((aH|0)<(aM|0)){aO=(c[A>>2]|0)+aN|0}else{aO=aN}if((aI|0)>=(aO|0)){break}aN=(c[ac>>2]|0)+(c[(c[aE>>2]|0)+(((aM+aI|0)%(c[A>>2]|0)|0)<<2)>>2]<<2)|0;aM=c[aN>>2]|0;if((aM&3|0)==0){c[aN>>2]=aM&-4|2}aI=aI+1|0;aJ=1443}aM=c[aF>>2]|0;if((aM|0)>0){aN=0;aH=aM;while(1){if((a[(c[aG>>2]|0)+aN|0]|0)==0){aP=aH}else{if((a[(c[V>>2]|0)+aN|0]|0)!=0){aM=c[W>>2]|0;aQ=aM+(aN*12|0)+4|0;aR=c[aQ>>2]|0;if((aR|0)>0){aS=aM+(aN*12|0)|0;aM=0;aT=0;aU=aR;while(1){aV=c[aS>>2]|0;aW=c[aV+(aM<<2)>>2]|0;if((c[(c[c[aw>>2]>>2]|0)+(aW<<2)>>2]&3|0)==1){aX=aT;aY=aU}else{c[aV+(aT<<2)>>2]=aW;aX=aT+1|0;aY=c[aQ>>2]|0}aW=aM+1|0;if((aW|0)<(aY|0)){aM=aW;aT=aX;aU=aY}else{aZ=aW;a_=aX;a$=aY;break}}}else{aZ=0;a_=0;a$=aR}aU=aZ-a_|0;if((aU|0)>0){c[aQ>>2]=a$-aU}a[(c[V>>2]|0)+aN|0]=0}aU=c[W>>2]|0;aT=aU+(aN*12|0)+4|0;aM=c[aT>>2]|0;if((aM|0)>0){aS=aU+(aN*12|0)|0;aU=0;aW=aM;while(1){aM=c[(c[aS>>2]|0)+(aU<<2)>>2]|0;if((c[(c[ac>>2]|0)+(aM<<2)>>2]&3|0)==0){cj(aD,aM);aM=(c[ac>>2]|0)+(c[(c[aS>>2]|0)+(aU<<2)>>2]<<2)|0;c[aM>>2]=c[aM>>2]&-4|2;a0=c[aT>>2]|0}else{a0=aW}aM=aU+1|0;if((aM|0)<(a0|0)){aU=aM;aW=a0}else{break}}}a[(c[aG>>2]|0)+aN|0]=0;aP=c[aF>>2]|0}aW=aN+1|0;if((aW|0)<(aP|0)){aN=aW;aH=aP}else{a1=0;break}}}else{a1=0}while(1){a2=c[y>>2]|0;a3=c[z>>2]|0;aH=a2-a3|0;if((a2|0)<(a3|0)){a4=(c[A>>2]|0)+aH|0}else{a4=aH}if((a1|0)>=(a4|0)){break}aH=(c[ac>>2]|0)+(c[(c[aE>>2]|0)+(((a3+a1|0)%(c[A>>2]|0)|0)<<2)>>2]<<2)|0;aN=c[aH>>2]|0;if((aN&3|0)==2){c[aH>>2]=aN&-4}a1=a1+1|0}c[x>>2]=0;aK=a2;aL=a3}aN=aK-aL|0;if((aK|0)<(aL|0)){a5=(c[A>>2]|0)+aN|0}else{a5=aN}if((a5|0)>0){aJ=1478}else{if((c[T>>2]|0)<(c[U>>2]|0)){aJ=1478}}if((aJ|0)==1478){aJ=0;if(!(co(b,1)|0)){aJ=1479;break}}a6=c[D>>2]|0;if((a[B]&1)!=0){aJ=1482;break}if((a6|0)==0){continue}else{a8=0;a9=a6}while(1){aN=c[F>>2]|0;aH=c[aN>>2]|0;c[aN>>2]=c[aN+(a9-1<<2)>>2];c[(c[G>>2]|0)+(c[c[F>>2]>>2]<<2)>>2]=0;c[(c[G>>2]|0)+(aH<<2)>>2]=-1;aN=(c[D>>2]|0)-1|0;c[D>>2]=aN;if((aN|0)>1){cr(C,0)}if((a[B]&1)!=0){continue L1797}do{if((a[(c[H>>2]|0)+aH|0]|0)==0){aN=a[(c[I>>2]|0)+aH|0]|0;aW=a[3224]|0?2:0;if((((aW&255)>>>1^1)&aN<<24>>24==aW<<24>>24|aW&aN&255|0)==0){break}do{if((c[J>>2]|0)>1){if(((a8|0)%100|0|0)!=0){break}aN=c[D>>2]|0;aA(1528,(ba=i,i=i+8|0,c[ba>>2]=aN,ba)|0)|0;i=ba}}while(0);if((a[K]&1)!=0){aN=(c[S>>2]|0)+aH|0;aW=a[aN]|0;a[aN]=1;if((a[(c[V>>2]|0)+aH|0]|0)!=0){aN=c[W>>2]|0;aU=aN+(aH*12|0)+4|0;aT=c[aU>>2]|0;if((aT|0)>0){aS=aN+(aH*12|0)|0;aN=0;aQ=0;aR=aT;while(1){aM=c[aS>>2]|0;aV=c[aM+(aN<<2)>>2]|0;if((c[(c[c[aw>>2]>>2]|0)+(aV<<2)>>2]&3|0)==1){bb=aQ;bc=aR}else{c[aM+(aQ<<2)>>2]=aV;bb=aQ+1|0;bc=c[aU>>2]|0}aV=aN+1|0;if((aV|0)<(bc|0)){aN=aV;aQ=bb;aR=bc}else{bd=aV;be=bb;bf=bc;break}}}else{bd=0;be=0;bf=aT}aR=bd-be|0;if((aR|0)>0){c[aU>>2]=bf-aR}a[(c[V>>2]|0)+aH|0]=0}aR=c[W>>2]|0;aQ=a[(c[I>>2]|0)+aH|0]|0;aN=a[3224]|0?2:0;do{if((((aN&255)>>>1^1)&aQ<<24>>24==aN<<24>>24|aN&aQ&255|0)!=0){aS=aR+(aH*12|0)+4|0;aV=c[aS>>2]|0;if((aV|0)==0){break}aM=aR+(aH*12|0)|0;if((aV|0)>0){aV=0;do{bg=c[(c[aM>>2]|0)+(aV<<2)>>2]|0;bh=(c[ac>>2]|0)+(bg<<2)|0;bi=bh;bj=c[bh>>2]|0;L1899:do{if((bj&3|0)==0){bk=bj>>>5;bl=0;while(1){if((bl|0)>=(bk|0)){break}bm=c[bi+4+(bl<<2)>>2]|0;if((a[(c[I>>2]|0)+(bm>>1)|0]|0)==(bm&1)){break L1899}else{bl=bl+1|0}}c[t>>2]=c[U>>2];bQ(ax,t);bl=c[bh>>2]|0;if(bl>>>0>31){bk=-2;bm=0;bn=bl;while(1){bl=c[bi+4+(bm<<2)>>2]|0;bo=bl>>1;do{if((bo|0)==(aH|0)){bp=bl;bq=bn}else{br=c[I>>2]|0;if((a[br+bo|0]^bl&1)<<24>>24==(a[3248]&1)){bp=bl;bq=bn;break}bs=bl^1;bt=bs>>1;a[br+bt|0]=(bs&1^1)&255^1;br=(c[ay>>2]|0)+(bt<<3)|0;bt=c[az>>2]|0;c[br>>2]=-1;c[br+4>>2]=bt;bt=c[U>>2]|0;c[U>>2]=bt+1;c[(c[aB>>2]|0)+(bt<<2)>>2]=bs;bp=bk;bq=c[bh>>2]|0}}while(0);bl=bm+1|0;if((bl|0)<(bq>>>5|0)){bk=bp;bm=bl;bn=bq}else{bu=bp;break}}}else{bu=-2}bn=(bR(u)|0)==-1;bW(u,0);if(bn){break}c[aC>>2]=(c[aC>>2]|0)+1;if(!(cn(b,bg,bu)|0)){aJ=1520;break L1797}}}while(0);aV=aV+1|0;}while((aV|0)<(c[aS>>2]|0))}if(!(co(b,0)|0)){aJ=1520;break L1797}}}while(0);a[(c[S>>2]|0)+aH|0]=aW<<24>>24!=0|0}do{if((a[L]&1)!=0){aR=a[(c[I>>2]|0)+aH|0]|0;aQ=a[3224]|0?2:0;if((((aQ&255)>>>1^1)&aR<<24>>24==aQ<<24>>24|aQ&aR&255|0)==0){break}if((a[(c[S>>2]|0)+aH|0]|0)!=0){break}if((a[(c[V>>2]|0)+aH|0]|0)!=0){aR=c[W>>2]|0;aQ=aR+(aH*12|0)+4|0;aN=c[aQ>>2]|0;if((aN|0)>0){aU=aR+(aH*12|0)|0;aR=0;aT=0;aS=aN;while(1){aV=c[aU>>2]|0;aM=c[aV+(aR<<2)>>2]|0;if((c[(c[c[aw>>2]>>2]|0)+(aM<<2)>>2]&3|0)==1){bv=aT;bw=aS}else{c[aV+(aT<<2)>>2]=aM;bv=aT+1|0;bw=c[aQ>>2]|0}aM=aR+1|0;if((aM|0)<(bw|0)){aR=aM;aT=bv;aS=bw}else{bx=aM;by=bv;bz=bw;break}}}else{bx=0;by=0;bz=aN}aS=bx-by|0;if((aS|0)>0){c[aQ>>2]=bz-aS}a[(c[V>>2]|0)+aH|0]=0}aS=c[W>>2]|0;aT=aS+(aH*12|0)|0;c[X>>2]=0;c[Y>>2]=0;c[Z>>2]=0;c[_>>2]=0;c[$>>2]=0;c[ab>>2]=0;aR=aS+(aH*12|0)+4|0;L1936:do{if((c[aR>>2]|0)>0){aS=aT|0;aU=aH<<1;aM=0;do{aV=(c[aS>>2]|0)+(aM<<2)|0;bg=(c[ac>>2]|0)+(c[aV>>2]<<2)|0;bh=bg;bi=(c[bg>>2]|0)>>>5;bg=0;while(1){if((bg|0)>=(bi|0)){bA=s;break}if((c[bh+4+(bg<<2)>>2]|0)==(aU|0)){bA=r;break}else{bg=bg+1|0}}ck(bA,aV);aM=aM+1|0;}while((aM|0)<(c[aR>>2]|0));aM=c[Y>>2]|0;if((aM|0)<=0){bB=aM;bC=0;aJ=1568;break}aU=c[$>>2]|0;aS=c[X>>2]|0;bg=c[_>>2]|0;if((aU|0)<=0){bh=0;while(1){bi=bh+1|0;if((bi|0)<(aM|0)){bh=bi}else{bB=aM;bC=1;aJ=1568;break L1936}}}bh=c[ac>>2]|0;bi=0;bj=0;bn=c[ad>>2]|0;while(1){bm=aS+(bj<<2)|0;bk=bi;bl=0;bo=bn;while(1){bs=bh+(c[bm>>2]<<2)|0;bt=bs;br=bh+(c[bg+(bl<<2)>>2]<<2)|0;bD=br;bE=bo+1|0;c[ad>>2]=bE;bF=(c[bs>>2]|0)>>>5>>>0<(c[br>>2]|0)>>>5>>>0;br=bF?bD:bt;bs=bF?bt:bD;bD=br+4|0;bt=bs+4|0;bF=(c[br>>2]|0)>>>5;br=bF-1|0;bG=c[bs>>2]|0;L1955:do{if(bG>>>0>31){bs=bG>>>5;bH=0;bI=br;while(1){bJ=c[bt+(bH<<2)>>2]|0;bK=bJ>>1;do{if((bK|0)==(aH|0)){bL=bI}else{bM=0;while(1){if((bM|0)>=(bF|0)){aJ=1543;break}bN=c[bD+(bM<<2)>>2]|0;if((bN>>1|0)==(bK|0)){aJ=1545;break}else{bM=bM+1|0}}if((aJ|0)==1545){aJ=0;if((bN|0)==(bJ^1|0)){bO=bk;break L1955}else{bL=bI;break}}else if((aJ|0)==1543){aJ=0;bL=bI+1|0;break}}}while(0);bJ=bH+1|0;if((bJ|0)<(bs|0)){bH=bJ;bI=bL}else{bP=bL;aJ=1547;break}}}else{bP=br;aJ=1547}}while(0);if((aJ|0)==1547){aJ=0;br=bk+1|0;if((br|0)>((c[ae>>2]|0)+(c[aR>>2]|0)|0)){bS=1;bT=bg;break L1936}bD=c[af>>2]|0;if((bD|0)!=-1&(bP|0)>(bD|0)){bS=1;bT=bg;break L1936}else{bO=br}}br=bl+1|0;if((br|0)<(aU|0)){bk=bO;bl=br;bo=bE}else{break}}bo=bj+1|0;if((bo|0)<(aM|0)){bi=bO;bj=bo;bn=bE}else{bB=aM;bC=1;aJ=1568;break}}}else{bB=0;bC=0;aJ=1568}}while(0);L1972:do{if((aJ|0)==1568){aJ=0;a[(c[H>>2]|0)+aH|0]=1;aQ=(c[ah>>2]|0)+aH|0;if((a[aQ]|0)!=0){aN=c[av>>2]|0;aM=c[av+4>>2]|0;bn=-1;bj=-1;bi=(E=+(aN>>>0)+ +(aM|0)*4294967296.0+(+(bn>>>0)+ +(bj|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);c[av>>2]=~~(+(aN>>>0)+ +(aM|0)*4294967296.0+(+(bn>>>0)+ +(bj|0)*4294967296.0))>>>0;c[av+4>>2]=bi}a[aQ]=0;if((c[aj>>2]|0)>(aH|0)){if((c[(c[ak>>2]|0)+(aH<<2)>>2]|0)<=-1){aJ=1572}}else{aJ=1572}do{if((aJ|0)==1572){aJ=0;if((a[(c[ah>>2]|0)+aH|0]|0)==0){break}b7(ai,aH)}}while(0);c[al>>2]=(c[al>>2]|0)+1;aQ=c[$>>2]|0;if((bB|0)>(aQ|0)){if((aQ|0)>0){bi=c[_>>2]|0;bj=0;do{bn=(c[ac>>2]|0)+(c[bi+(bj<<2)>>2]<<2)|0;aM=bn;aN=c[an>>2]|0;if((c[bn>>2]|0)>>>0>31){aU=0;bg=-1;while(1){bh=aM+4+(aU<<2)|0;c[j>>2]=c[bh>>2];ck(am,j);aS=(c[bh>>2]>>1|0)==(aH|0)?aU+aN|0:bg;bh=aU+1|0;if((bh|0)<((c[bn>>2]|0)>>>5|0)){aU=bh;bg=aS}else{bU=aS;break}}}else{bU=-1}bg=c[ao>>2]|0;aU=bg+(bU<<2)|0;aM=c[aU>>2]|0;c[aU>>2]=c[bg+(aN<<2)>>2];c[(c[ao>>2]|0)+(aN<<2)>>2]=aM;c[k>>2]=(c[bn>>2]|0)>>>5;ck(am,k);bj=bj+1|0;}while((bj|0)<(aQ|0))}c[l>>2]=aH<<1;ck(am,l);c[m>>2]=1;ck(am,m)}else{if(bC){bj=c[X>>2]|0;bi=0;do{aM=(c[ac>>2]|0)+(c[bj+(bi<<2)>>2]<<2)|0;bg=aM;aU=c[an>>2]|0;if((c[aM>>2]|0)>>>0>31){aS=0;bh=-1;while(1){bo=bg+4+(aS<<2)|0;c[n>>2]=c[bo>>2];ck(am,n);bl=(c[bo>>2]>>1|0)==(aH|0)?aS+aU|0:bh;bo=aS+1|0;if((bo|0)<((c[aM>>2]|0)>>>5|0)){aS=bo;bh=bl}else{bV=bl;break}}}else{bV=-1}bh=c[ao>>2]|0;aS=bh+(bV<<2)|0;bg=c[aS>>2]|0;c[aS>>2]=c[bh+(aU<<2)>>2];c[(c[ao>>2]|0)+(aU<<2)>>2]=bg;c[o>>2]=(c[aM>>2]|0)>>>5;ck(am,o);bi=bi+1|0;}while((bi|0)<(bB|0))}c[p>>2]=aH<<1|1;ck(am,p);c[q>>2]=1;ck(am,q)}if((c[aR>>2]|0)>0){bi=aT|0;bj=0;do{cl(b,c[(c[bi>>2]|0)+(bj<<2)>>2]|0);bj=bj+1|0;}while((bj|0)<(c[aR>>2]|0))}do{if(bC){bj=c[X>>2]|0;bi=c[_>>2]|0;if((aQ|0)>0){bY=0}else{break}do{bg=bj+(bY<<2)|0;bh=0;do{aS=c[ac>>2]|0;bn=aS+(c[bg>>2]<<2)|0;aN=bn;bl=aS+(c[bi+(bh<<2)>>2]<<2)|0;aS=bl;c[ad>>2]=(c[ad>>2]|0)+1;if((c[ar>>2]|0)!=0){c[at>>2]=0}bo=(c[bn>>2]|0)>>>5>>>0<(c[bl>>2]|0)>>>5>>>0;bl=bo?aS:aN;bn=bo?aN:aS;aS=bn;aN=c[aS>>2]|0;bo=bl;L2026:do{if(aN>>>0>31){bk=0;bm=aN;while(1){aV=c[bn+4+(bk<<2)>>2]|0;br=aV>>1;do{if((br|0)==(aH|0)){b$=bm}else{bD=(c[bo>>2]|0)>>>5;bF=0;while(1){if((bF|0)>=(bD|0)){break}b0=c[bl+4+(bF<<2)>>2]|0;if((b0>>1|0)==(br|0)){aJ=1608;break}else{bF=bF+1|0}}if((aJ|0)==1608){aJ=0;if((b0|0)==(aV^1|0)){break L2026}else{b$=bm;break}}c[ap>>2]=aV;bX(aq,f);b$=c[aS>>2]|0}}while(0);aV=bk+1|0;if((aV|0)<(b$>>>5|0)){bk=aV;bm=b$}else{aJ=1603;break}}}else{aJ=1603}}while(0);if((aJ|0)==1603){aJ=0;aS=c[bo>>2]|0;if(aS>>>0>31){bn=0;aN=aS;while(1){aS=c[bl+4+(bn<<2)>>2]|0;if((aS>>1|0)==(aH|0)){b1=aN}else{c[as>>2]=aS;bX(aq,g);b1=c[bo>>2]|0}aS=bn+1|0;if((aS|0)<(b1>>>5|0)){bn=aS;aN=b1}else{break}}}if(!(ci(b,aq)|0)){bS=0;bT=bi;break L1972}}bh=bh+1|0;}while((bh|0)<(aQ|0));bY=bY+1|0;}while((bY|0)<(bB|0))}}while(0);aQ=c[W>>2]|0;bi=aQ+(aH*12|0)|0;bj=c[bi>>2]|0;if((bj|0)!=0){c[aQ+(aH*12|0)+4>>2]=0;cG(bj);c[bi>>2]=0;c[aQ+(aH*12|0)+8>>2]=0}aQ=aH<<1;bi=c[au>>2]|0;bj=bi+(aQ*12|0)+4|0;do{if((c[bj>>2]|0)==0){aM=bi+(aQ*12|0)|0;aU=c[aM>>2]|0;if((aU|0)==0){b2=bi;break}c[bj>>2]=0;cG(aU);c[aM>>2]=0;c[bi+(aQ*12|0)+8>>2]=0;b2=c[au>>2]|0}else{b2=bi}}while(0);bi=aQ|1;bj=b2+(bi*12|0)+4|0;do{if((c[bj>>2]|0)==0){aM=b2+(bi*12|0)|0;aU=c[aM>>2]|0;if((aU|0)==0){break}c[bj>>2]=0;cG(aU);c[aM>>2]=0;c[b2+(bi*12|0)+8>>2]=0}}while(0);bi=co(b,0)|0;bS=bi;bT=c[_>>2]|0}}while(0);if((bT|0)!=0){c[$>>2]=0;cG(bT);c[_>>2]=0;c[ab>>2]=0}aR=c[X>>2]|0;if((aR|0)!=0){c[Y>>2]=0;cG(aR);c[X>>2]=0;c[Z>>2]=0}if(!bS){aJ=1641;break L1797}}}while(0);if(+((c[N>>2]|0)>>>0>>>0)<=+h[M>>3]*+((c[O>>2]|0)>>>0>>>0)){break}a7[c[(c[R>>2]|0)+8>>2]&63](u)}}while(0);aH=c[D>>2]|0;if((aH|0)==0){continue L1797}else{a8=a8+1|0;a9=aH}}}do{if((aJ|0)==1641){a[b+492|0]=0}else if((aJ|0)==1520){a[b+492|0]=0}else if((aJ|0)==1479){a[b+492|0]=0}else if((aJ|0)==1482){a9=b+824|0;a8=c[a9>>2]|0;if((a6|0)>0){M=0;bS=a8;while(1){c[(c[G>>2]|0)+(c[bS+(M<<2)>>2]<<2)>>2]=-1;Z=M+1|0;X=c[a9>>2]|0;if((Z|0)<(c[D>>2]|0)){M=Z;bS=X}else{b3=X;break}}}else{b3=a8}if((b3|0)==0){break}c[D>>2]=0}}while(0);do{if(d){b3=c[aG>>2]|0;if((b3|0)!=0){c[b+748>>2]=0;cG(b3);c[aG>>2]=0;c[b+752>>2]=0}b3=c[W>>2]|0;if((b3|0)!=0){a6=b+764|0;aJ=c[a6>>2]|0;if((aJ|0)>0){bS=0;M=aJ;aJ=b3;while(1){a9=aJ+(bS*12|0)|0;X=c[a9>>2]|0;if((X|0)==0){b4=M}else{c[aJ+(bS*12|0)+4>>2]=0;cG(X);c[a9>>2]=0;c[aJ+(bS*12|0)+8>>2]=0;b4=c[a6>>2]|0}a9=bS+1|0;X=c[W>>2]|0;if((a9|0)<(b4|0)){bS=a9;M=b4;aJ=X}else{b5=X;break}}}else{b5=b3}c[a6>>2]=0;cG(b5);c[W>>2]=0;c[b+768>>2]=0}aJ=c[V>>2]|0;if((aJ|0)!=0){c[b+780>>2]=0;cG(aJ);c[V>>2]=0;c[b+784>>2]=0}aJ=b+792|0;M=c[aJ>>2]|0;if((M|0)!=0){c[b+796>>2]=0;cG(M);c[aJ>>2]=0;c[b+800>>2]=0}aJ=b+808|0;M=c[aJ>>2]|0;if((M|0)!=0){c[b+812>>2]=0;cG(M);c[aJ>>2]=0;c[b+816>>2]=0}aJ=b+824|0;M=c[aJ>>2]|0;if((c[D>>2]|0)>0){bS=0;a8=M;while(1){c[(c[G>>2]|0)+(c[a8+(bS<<2)>>2]<<2)>>2]=-1;X=bS+1|0;a9=c[aJ>>2]|0;if((X|0)<(c[D>>2]|0)){bS=X;a8=a9}else{b6=a9;break}}}else{b6=M}if((b6|0)!=0){c[D>>2]=0;cG(b6);c[aJ>>2]=0;c[b+832>>2]=0}cp(aD,1);a[w]=0;a[b+536|0]=1;a[b+560|0]=0;c[b+728>>2]=c[aF>>2];bZ(u);a7[c[(c[b>>2]|0)+8>>2]&63](b)}else{if(+((c[N>>2]|0)>>>0>>>0)<=+h[b+96>>3]*+((c[O>>2]|0)>>>0>>>0)){break}a7[c[(c[R>>2]|0)+8>>2]&63](u)}}while(0);do{if((c[J>>2]|0)>0){u=c[an>>2]|0;if((u|0)<=0){break}b8=+(u<<2>>>0>>>0)*9.5367431640625e-7;aA(1448,(ba=i,i=i+8|0,h[ba>>3]=b8,ba)|0)|0;i=ba}}while(0);v=(a[b+492|0]&1)!=0;i=e;return v|0}function ci(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,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,M=0;e=i;i=i+16|0;f=e|0;g=e+8|0;h=b;j=b+256|0;k=b+260|0;l=c[k>>2]|0;do{if((a[b+705|0]&1)!=0){m=b+284|0;c[f>>2]=c[m>>2];bQ(b+292|0,f);n=d+4|0;o=c[n>>2]|0;L2128:do{if((o|0)>0){p=d|0;q=b+332|0;r=b+396|0;s=b+296|0;t=b+280|0;u=0;v=o;while(1){w=c[(c[p>>2]|0)+(u<<2)>>2]|0;x=c[q>>2]|0;y=a[x+(w>>1)|0]|0;z=w&1;if(y<<24>>24==z<<24>>24){break}if((y^z)<<24>>24==(a[3248]&1)){A=v}else{z=w^1;w=z>>1;a[x+w|0]=(z&1^1)&255^1;x=(c[r>>2]|0)+(w<<3)|0;w=c[s>>2]|0;c[x>>2]=-1;c[x+4>>2]=w;w=c[m>>2]|0;c[m>>2]=w+1;c[(c[t>>2]|0)+(w<<2)>>2]=z;A=c[n>>2]|0}z=u+1|0;if((z|0)<(A|0)){u=z;v=A}else{break L2128}}bW(h,0);B=1;i=e;return B|0}}while(0);n=(bR(h)|0)==-1;bW(h,0);if(n){break}else{B=1}i=e;return B|0}}while(0);A=b+492|0;if((a[A]&1)==0){B=0;i=e;return B|0}f=d|0;n=d+4|0;b4(c[f>>2]|0,c[n>>2]|0);m=c[n>>2]|0;L2144:do{if((m|0)>0){o=b+332|0;v=-2;u=0;t=0;s=m;while(1){r=c[f>>2]|0;q=c[r+(u<<2)>>2]|0;p=a[(c[o>>2]|0)+(q>>1)|0]|0;z=q&1;if(p<<24>>24==z<<24>>24){break L2144}if((q|0)==(v^1|0)){break L2144}if((q|0)!=(v|0)&(p^z)<<24>>24!=(a[3240]&1)){c[r+(t<<2)>>2]=q;C=t+1|0;D=q;E=c[n>>2]|0}else{C=t;D=v;E=s}q=u+1|0;if((q|0)<(E|0)){v=D;u=q;t=C;s=E}else{F=q;G=C;H=E;I=1692;break}}}else{F=0;G=0;H=m;I=1692}}while(0);do{if((I|0)==1692){m=F-G|0;if((m|0)>0){E=H-m|0;c[n>>2]=E;J=E}else{J=H}if((J|0)==0){a[A]=0;B=0;i=e;return B|0}else if((J|0)==1){E=c[c[f>>2]>>2]|0;m=E>>1;a[(c[b+332>>2]|0)+m|0]=(E&1^1)&255^1;C=(c[b+396>>2]|0)+(m<<3)|0;m=c[b+296>>2]|0;c[C>>2]=-1;c[C+4>>2]=m;m=b+284|0;C=c[m>>2]|0;c[m>>2]=C+1;c[(c[b+280>>2]|0)+(C<<2)>>2]=E;E=(bR(h)|0)==-1;a[A]=E&1;if(E){break}else{B=0}i=e;return B|0}else{E=bS(b+544|0,d,0)|0;C=c[k>>2]|0;m=b+264|0;if((C|0)==(c[m>>2]|0)){D=(C>>1)+2&-2;s=(D|0)<2?2:D;if((s|0)>(2147483647-C|0)){K=aP(1)|0;av(K|0,3120,0);return 0}D=j;t=c[D>>2]|0;u=s+C|0;c[m>>2]=u;m=cH(t,u<<2)|0;u=m;c[D>>2]=u;do{if((m|0)==0){if((c[(a$()|0)>>2]|0)!=12){break}K=aP(1)|0;av(K|0,3120,0);return 0}}while(0);L=c[k>>2]|0;M=u}else{L=C;M=c[j>>2]|0}c[k>>2]=L+1;m=M+(L<<2)|0;if((m|0)!=0){c[m>>2]=E}bT(h,E);break}}}while(0);if((a[b+724|0]&1)==0){B=1;i=e;return B|0}h=c[k>>2]|0;if((h|0)!=(l+1|0)){B=1;i=e;return B|0}l=c[(c[j>>2]|0)+(h-1<<2)>>2]|0;c[g>>2]=l;h=(c[b+544>>2]|0)+(l<<2)|0;j=h;cj(b+856|0,l);if((c[h>>2]|0)>>>0<=31){B=1;i=e;return B|0}l=b+760|0;k=b+808|0;L=b+744|0;M=b+924|0;K=b+824|0;d=b+840|0;A=b+836|0;b=0;while(1){f=j+4+(b<<2)|0;ck((c[l>>2]|0)+((c[f>>2]>>1)*12|0)|0,g);J=(c[k>>2]|0)+(c[f>>2]<<2)|0;c[J>>2]=(c[J>>2]|0)+1;a[(c[L>>2]|0)+(c[f>>2]>>1)|0]=1;c[M>>2]=(c[M>>2]|0)+1;J=c[f>>2]>>1;do{if((c[d>>2]|0)>(J|0)){f=c[(c[A>>2]|0)+(J<<2)>>2]|0;if((f|0)<=-1){break}cr(K,f)}}while(0);J=b+1|0;if((J|0)<((c[h>>2]|0)>>>5|0)){b=J}else{B=1;break}}i=e;return B|0}function cj(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=a+16|0;e=c[d>>2]|0;c[d>>2]=e+1;f=a|0;c[(c[f>>2]|0)+(e<<2)>>2]=b;b=c[d>>2]|0;e=a+4|0;g=c[e>>2]|0;if((b|0)==(g|0)){c[d>>2]=0;h=0}else{h=b}b=a+12|0;if((c[b>>2]|0)!=(h|0)){return}i=(g*3|0)+1>>1;if((i|0)>0){j=i+1&-2;k=(j|0)>2?j:2;j=cF(k<<2)|0;l=j;do{if((j|0)==0){if((c[(a$()|0)>>2]|0)!=12){m=0;break}av(aP(1)|0,3120,0)}else{m=0}}while(0);do{j=l+(m<<2)|0;if((j|0)!=0){c[j>>2]=0}m=m+1|0;}while((m|0)<(i|0));n=l;o=i;p=k;q=c[b>>2]|0;r=c[e>>2]|0}else{n=0;o=0;p=0;q=h;r=g}if((q|0)<(r|0)){g=c[f>>2]|0;h=q;k=0;while(1){c[n+(k<<2)>>2]=c[g+(h<<2)>>2];i=h+1|0;if((i|0)<(r|0)){h=i;k=k+1|0}else{break}}s=r-q|0}else{s=0}q=c[d>>2]|0;k=c[f>>2]|0;do{if((q|0)>0){h=s;g=0;while(1){c[n+(h<<2)>>2]=c[k+(g<<2)>>2];i=g+1|0;if((i|0)<(q|0)){h=h+1|0;g=i}else{break}}c[b>>2]=0;c[d>>2]=r;t=1747}else{c[b>>2]=0;c[d>>2]=r;if((k|0)!=0){t=1747;break}u=a+8|0}}while(0);if((t|0)==1747){c[e>>2]=0;cG(k);c[f>>2]=0;k=a+8|0;c[k>>2]=0;u=k}c[f>>2]=n;c[e>>2]=o;c[u>>2]=p;return}function ck(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,m=0;d=a+4|0;e=c[d>>2]|0;f=a+8|0;g=c[f>>2]|0;do{if((e|0)==(g|0)&(g|0)<(e+1|0)){h=(e>>1)+2&-2;i=(h|0)<2?2:h;if((i|0)>(2147483647-e|0)){j=aP(1)|0;av(j|0,3120,0)}h=a|0;k=c[h>>2]|0;l=i+e|0;c[f>>2]=l;i=cH(k,l<<2)|0;l=i;c[h>>2]=l;if((i|0)!=0){m=l;break}if((c[(a$()|0)>>2]|0)!=12){m=l;break}j=aP(1)|0;av(j|0,3120,0)}else{m=c[a>>2]|0}}while(0);a=c[d>>2]|0;c[d>>2]=a+1;d=m+(a<<2)|0;if((d|0)==0){return}c[d>>2]=c[b>>2];return}function cl(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,p=0,q=0,r=0,s=0;e=i;i=i+8|0;f=e|0;g=b;h=b+544|0;j=c[h>>2]|0;k=j+(d<<2)|0;l=k;do{if((a[b+724|0]&1)==0){m=j}else{if((c[k>>2]|0)>>>0<=31){m=j;break}n=b+808|0;o=b+776|0;p=b+792|0;q=0;do{r=l+4+(q<<2)|0;s=(c[n>>2]|0)+(c[r>>2]<<2)|0;c[s>>2]=(c[s>>2]|0)-1;cm(b,c[r>>2]>>1);s=c[r>>2]>>1;c[f>>2]=s;r=(c[o>>2]|0)+s|0;if((a[r]|0)==0){a[r]=1;bQ(p,f)}q=q+1|0;}while((q|0)<((c[k>>2]|0)>>>5|0));m=c[h>>2]|0}}while(0);k=m+(d<<2)|0;bV(g,d,0);g=c[m+(d+1<<2)>>2]|0;m=g>>1;do{if((a[(c[b+332>>2]|0)+m|0]|0)==(g&1)){f=(c[b+396>>2]|0)+(m<<3)|0;l=c[f>>2]|0;if((l|0)==-1){break}if(((c[h>>2]|0)+(l<<2)|0)!=(k|0)){break}c[f>>2]=-1}}while(0);c[k>>2]=c[k>>2]&-4|1;k=c[(c[h>>2]|0)+(d<<2)>>2]|0;d=b+556|0;c[d>>2]=((((k>>>3&1)+(k>>>5)<<2)+4|0)>>>2)+(c[d>>2]|0);i=e;return}function cm(b,d){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,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;e=b+824|0;f=(c[b+840>>2]|0)>(d|0);if(f){g=c[(c[b+836>>2]|0)+(d<<2)>>2]|0;if((g|0)>-1){h=g}else{i=1779}}else{i=1779}do{if((i|0)==1779){if((a[(c[b+876>>2]|0)+d|0]|0)!=0){return}if((a[(c[b+904>>2]|0)+d|0]|0)!=0){return}g=a[(c[b+332>>2]|0)+d|0]|0;j=a[3224]|0?2:0;if((((j&255)>>>1^1)&g<<24>>24==j<<24>>24|j&g&255|0)==0){return}if(f){g=c[(c[b+836>>2]|0)+(d<<2)>>2]|0;if((g|0)>-1){h=g;break}}cg(e,d);return}}while(0);f=b+836|0;i=e|0;g=c[i>>2]|0;j=c[g+(h<<2)>>2]|0;L2279:do{if((h|0)==0){k=0;l=g}else{m=b+852|0;n=j<<1;o=n|1;p=h;q=g;while(1){r=p-1>>1;s=c[q+(r<<2)>>2]|0;t=c[c[m>>2]>>2]|0;u=c[t+(n<<2)>>2]|0;v=u;w=(u|0)<0|0?-1:0;u=c[t+(o<<2)>>2]|0;x=u;y=(u|0)<0|0?-1:0;u=(E=(+(x>>>0)+ +(y|0)*4294967296.0)*(+(v>>>0)+ +(w|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);z=s<<1;A=c[t+(z<<2)>>2]|0;B=A;C=(A|0)<0|0?-1:0;A=c[t+((z|1)<<2)>>2]|0;z=A;t=(A|0)<0|0?-1:0;A=(E=(+(z>>>0)+ +(t|0)*4294967296.0)*(+(B>>>0)+ +(C|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);if(!(u>>>0<A>>>0|u>>>0==A>>>0&~~((+(x>>>0)+ +(y|0)*4294967296.0)*(+(v>>>0)+ +(w|0)*4294967296.0))>>>0>>>0<~~((+(z>>>0)+ +(t|0)*4294967296.0)*(+(B>>>0)+ +(C|0)*4294967296.0))>>>0>>>0)){k=p;l=q;break L2279}c[q+(p<<2)>>2]=s;c[(c[f>>2]|0)+(c[(c[i>>2]|0)+(r<<2)>>2]<<2)>>2]=p;s=c[i>>2]|0;if((r|0)==0){k=0;l=s;break}else{p=r;q=s}}}}while(0);c[l+(k<<2)>>2]=j;c[(c[f>>2]|0)+(j<<2)>>2]=k;cr(e,c[(c[f>>2]|0)+(d<<2)>>2]|0);return}function cn(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,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=b;g=c[b+544>>2]|0;h=g+(d<<2)|0;i=h;cj(b+856|0,d);if((c[h>>2]&-32|0)==64){cl(b,d);j=c[h>>2]|0;k=j>>>5;l=0;while(1){if((l|0)>=(k|0)){break}if((c[i+4+(l<<2)>>2]|0)==(e|0)){break}else{l=l+1|0}}m=k-1|0;if((l|0)<(m|0)){n=l;while(1){l=n+1|0;c[i+4+(n<<2)>>2]=c[i+4+(l<<2)>>2];o=c[h>>2]|0;p=o>>>5;q=p-1|0;if((l|0)<(q|0)){n=l}else{r=o;s=p;t=q;break}}}else{r=j;s=k;t=m}if((r&8|0)==0){u=r}else{c[i+4+(t<<2)>>2]=c[i+4+(s<<2)>>2];u=c[h>>2]|0}s=u-32|0;c[h>>2]=s;u=s>>>5;if((u|0)==0){v=0;w=0}else{s=0;t=0;while(1){r=1<<((c[i+4+(t<<2)>>2]|0)>>>1&31)|s;m=t+1|0;if((m|0)<(u|0)){s=r;t=m}else{v=r;w=u;break}}}c[i+4+(w<<2)>>2]=v}else{bV(f,d,1);v=c[h>>2]|0;w=v>>>5;u=0;while(1){if((u|0)>=(w|0)){break}if((c[i+4+(u<<2)>>2]|0)==(e|0)){break}else{u=u+1|0}}t=w-1|0;if((u|0)<(t|0)){s=u;while(1){u=s+1|0;c[i+4+(s<<2)>>2]=c[i+4+(u<<2)>>2];r=c[h>>2]|0;m=r>>>5;k=m-1|0;if((u|0)<(k|0)){s=u}else{x=r;y=m;z=k;break}}}else{x=v;y=w;z=t}if((x&8|0)==0){A=x}else{c[i+4+(z<<2)>>2]=c[i+4+(y<<2)>>2];A=c[h>>2]|0}y=A-32|0;c[h>>2]=y;A=y>>>5;if((A|0)==0){B=0;C=0}else{y=0;z=0;while(1){x=1<<((c[i+4+(z<<2)>>2]|0)>>>1&31)|y;t=z+1|0;if((t|0)<(A|0)){y=x;z=t}else{B=x;C=A;break}}}c[i+4+(C<<2)>>2]=B;bT(f,d);B=e>>1;C=c[b+760>>2]|0;i=C+(B*12|0)|0;A=C+(B*12|0)+4|0;C=c[A>>2]|0;z=0;while(1){if((z|0)>=(C|0)){break}if((c[(c[i>>2]|0)+(z<<2)>>2]|0)==(d|0)){break}else{z=z+1|0}}y=C-1|0;if((z|0)<(y|0)){C=z;while(1){z=C+1|0;x=c[i>>2]|0;c[x+(C<<2)>>2]=c[x+(z<<2)>>2];x=(c[A>>2]|0)-1|0;if((z|0)<(x|0)){C=z}else{D=x;break}}}else{D=y}c[A>>2]=D;D=(c[b+808>>2]|0)+(e<<2)|0;c[D>>2]=(c[D>>2]|0)-1;cm(b,B)}if((c[h>>2]&-32|0)!=32){E=1;return E|0}h=c[g+(d+1<<2)>>2]|0;d=h>>1;g=(c[b+332>>2]|0)+d|0;B=a[g]^h&1;D=a[3224]|0?2:0;do{if((((D&255)>>>1^1)&B<<24>>24==D<<24>>24|D&B&255|0)==0){if(B<<24>>24==(a[3248]&1)){E=0}else{break}return E|0}else{a[g]=(h&1^1)&255^1;e=(c[b+396>>2]|0)+(d<<3)|0;A=c[b+296>>2]|0;c[e>>2]=-1;c[e+4>>2]=A;A=b+284|0;e=c[A>>2]|0;c[A>>2]=e+1;c[(c[b+280>>2]|0)+(e<<2)>>2]=h}}while(0);E=(bR(f)|0)==-1;return E|0}function co(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,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,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,$=0,aa=0,ab=0,ac=0,ad=0,ae=0,af=0,ag=0,ah=0,ai=0,aj=0,ak=0,al=0,am=0,an=0,ao=0,ap=0,aq=0,ar=0,as=0,at=0;e=i;f=b+856|0;g=b+872|0;h=b+868|0;j=b+860|0;k=b+680|0;l=b+920|0;m=b+284|0;n=b+280|0;o=b+928|0;p=b+544|0;q=f|0;r=b+44|0;s=b+776|0;t=b+692|0;u=b+804|0;v=b+760|0;w=0;x=0;y=0;L2339:while(1){z=w;while(1){A=c[h>>2]|0;while(1){B=c[g>>2]|0;C=(B|0)<(A|0);D=B-A|0;if(C){E=(c[j>>2]|0)+D|0}else{E=D}if((E|0)<=0){if((c[l>>2]|0)>=(c[m>>2]|0)){F=1;G=1888;break L2339}}if((a[k]&1)!=0){G=1839;break L2339}if(C){H=(c[j>>2]|0)+D|0}else{H=D}do{if((H|0)==0){D=c[l>>2]|0;if((D|0)>=(c[m>>2]|0)){I=A;break}c[l>>2]=D+1;c[(c[p>>2]|0)+((c[o>>2]|0)+1<<2)>>2]=c[(c[n>>2]|0)+(D<<2)>>2];D=(c[p>>2]|0)+(c[o>>2]<<2)|0;C=D;B=(c[D>>2]|0)>>>5;if((B|0)==0){J=0;K=0}else{D=0;L=0;while(1){M=1<<((c[C+4+(L<<2)>>2]|0)>>>1&31)|D;N=L+1|0;if((N|0)<(B|0)){D=M;L=N}else{J=M;K=B;break}}}c[C+4+(K<<2)>>2]=J;cj(f,c[o>>2]|0);I=c[h>>2]|0}else{I=A}}while(0);O=c[(c[q>>2]|0)+(I<<2)>>2]|0;B=I+1|0;c[h>>2]=B;P=c[j>>2]|0;if((B|0)==(P|0)){c[h>>2]=0;Q=0}else{Q=B}R=c[p>>2]|0;S=R+(O<<2)|0;T=c[S>>2]|0;if((T&3|0)==0){break}else{A=Q}}U=S;do{if(d){if((c[r>>2]|0)<=1){V=z;W=T;break}A=z+1|0;if(((z|0)%1e3|0|0)!=0){V=A;W=T;break}B=c[g>>2]|0;L=B-Q+((B|0)<(Q|0)?P:0)|0;aA(1584,(B=i,i=i+24|0,c[B>>2]=L,c[B+8>>2]=x,c[B+16>>2]=y,B)|0)|0;i=B;V=A;W=c[S>>2]|0}else{V=z;W=T}}while(0);X=R+(O+1<<2)|0;A=c[X>>2]>>1;if(W>>>0>63){B=c[v>>2]|0;L=W>>>5;D=A;M=1;while(1){N=c[U+4+(M<<2)>>2]>>1;Y=(c[B+(N*12|0)+4>>2]|0)<(c[B+(D*12|0)+4>>2]|0)?N:D;N=M+1|0;if((N|0)<(L|0)){D=Y;M=N}else{Z=Y;break}}}else{Z=A}if((a[(c[s>>2]|0)+Z|0]|0)!=0){M=c[v>>2]|0;D=M+(Z*12|0)+4|0;L=c[D>>2]|0;if((L|0)>0){B=M+(Z*12|0)|0;M=0;Y=0;N=L;while(1){_=c[B>>2]|0;$=c[_+(M<<2)>>2]|0;if((c[(c[c[u>>2]>>2]|0)+($<<2)>>2]&3|0)==1){aa=Y;ab=N}else{c[_+(Y<<2)>>2]=$;aa=Y+1|0;ab=c[D>>2]|0}$=M+1|0;if(($|0)<(ab|0)){M=$;Y=aa;N=ab}else{ac=$;ad=aa;ae=ab;break}}}else{ac=0;ad=0;ae=L}N=ac-ad|0;if((N|0)>0){c[D>>2]=ae-N}a[(c[s>>2]|0)+Z|0]=0}N=c[v>>2]|0;af=c[N+(Z*12|0)>>2]|0;ag=N+(Z*12|0)+4|0;if((c[ag>>2]|0)>0){break}else{z=V}}z=X;N=y;Y=x;M=0;while(1){B=c[S>>2]|0;if((B&3|0)!=0){w=V;x=Y;y=N;continue L2339}A=c[af+(M<<2)>>2]|0;$=c[p>>2]|0;_=$+(A<<2)|0;ah=c[_>>2]|0;L2395:do{if((ah&3|0)!=0|(A|0)==(O|0)){ai=M;aj=Y;ak=N}else{al=c[t>>2]|0;am=ah>>>5;if(!((al|0)==-1|(am|0)<(al|0))){ai=M;aj=Y;ak=N;break}al=B>>>5;if(am>>>0<al>>>0){ai=M;aj=Y;ak=N;break}if((c[U+4+(al<<2)>>2]&~c[_+4+(am<<2)>>2]|0)!=0){ai=M;aj=Y;ak=N;break}an=$+(A+1<<2)|0;do{if(B>>>0>31){if(ah>>>0>31){ao=-2;ap=0}else{ai=M;aj=Y;ak=N;break L2395}while(1){aq=c[z+(ap<<2)>>2]|0;L2404:do{if((ao|0)==-2){ar=0;while(1){as=c[an+(ar<<2)>>2]|0;if((aq|0)==(as|0)){at=-2;break L2404}if((aq|0)==(as^1|0)){at=aq;break L2404}as=ar+1|0;if(as>>>0<am>>>0){ar=as}else{ai=M;aj=Y;ak=N;break L2395}}}else{ar=0;while(1){if((aq|0)==(c[an+(ar<<2)>>2]|0)){at=ao;break L2404}as=ar+1|0;if(as>>>0<am>>>0){ar=as}else{ai=M;aj=Y;ak=N;break L2395}}}}while(0);aq=ap+1|0;if(aq>>>0<al>>>0){ao=at;ap=aq}else{break}}if((at|0)==(-2|0)){break}else if((at|0)==(-1|0)){ai=M;aj=Y;ak=N;break L2395}if(!(cn(b,A,at^1)|0)){F=0;G=1890;break L2339}ai=(((at>>1|0)==(Z|0))<<31>>31)+M|0;aj=Y;ak=N+1|0;break L2395}}while(0);cl(b,A);ai=M;aj=Y+1|0;ak=N}}while(0);A=ai+1|0;if((A|0)<(c[ag>>2]|0)){N=ak;Y=aj;M=A}else{w=V;x=aj;y=ak;continue L2339}}}if((G|0)==1839){cp(f,0);c[l>>2]=c[m>>2];F=1;i=e;return F|0}else if((G|0)==1888){i=e;return F|0}else if((G|0)==1890){i=e;return F|0}return 0}function cp(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,m=0,n=0;d=a|0;e=c[d>>2]|0;f=a+4|0;do{if((e|0)==0){g=1894}else{c[f>>2]=0;if(!b){h=e;break}cG(e);c[d>>2]=0;c[a+8>>2]=0;g=1894}}while(0);do{if((g|0)==1894){if((c[f>>2]|0)<1){h=0;break}i=a+16|0;c[i>>2]=0;j=a+12|0;c[j>>2]=0;return}}while(0);g=a+8|0;e=c[g>>2]|0;do{if((e|0)<1){b=2-e&-2;k=(e>>1)+2&-2;l=(b|0)>(k|0)?b:k;if((l|0)>(2147483647-e|0)){m=aP(1)|0;av(m|0,3120,0)}k=l+e|0;c[g>>2]=k;l=cH(h,k<<2)|0;k=l;c[d>>2]=k;if((l|0)!=0){n=k;break}if((c[(a$()|0)>>2]|0)!=12){n=k;break}m=aP(1)|0;av(m|0,3120,0)}else{n=h}}while(0);h=c[f>>2]|0;L2439:do{if((h|0)<1){m=h;g=n;while(1){e=g+(m<<2)|0;if((e|0)!=0){c[e>>2]=0}if((m|0)>=0){break L2439}m=m+1|0;g=c[d>>2]|0}}}while(0);c[f>>2]=1;i=a+16|0;c[i>>2]=0;j=a+12|0;c[j>>2]=0;return}function cq(b){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,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,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;d=i;i=i+24|0;e=d|0;f=b+544|0;g=b+548|0;h=b+556|0;j=(c[g>>2]|0)-(c[h>>2]|0)|0;cO(e|0,0,16);b5(e|0,j);j=e+16|0;k=b+560|0;a[j]=a[k]&1;do{if((a[b+724|0]&1)!=0){l=b+540|0;if((c[l>>2]|0)>0){m=b+760|0;n=b+804|0;o=b+776|0;p=f;q=0;do{r=c[m>>2]|0;s=r+(q*12|0)+4|0;t=c[s>>2]|0;if((t|0)>0){u=r+(q*12|0)|0;r=0;v=0;w=t;while(1){x=c[u>>2]|0;y=c[x+(r<<2)>>2]|0;if((c[(c[c[n>>2]>>2]|0)+(y<<2)>>2]&3|0)==1){z=v;A=w}else{c[x+(v<<2)>>2]=y;z=v+1|0;A=c[s>>2]|0}y=r+1|0;if((y|0)<(A|0)){r=y;v=z;w=A}else{B=y;C=z;D=A;break}}}else{B=0;C=0;D=t}w=B-C|0;if((w|0)>0){c[s>>2]=D-w}a[(c[o>>2]|0)+q|0]=0;w=c[m>>2]|0;v=w+(q*12|0)+4|0;if((c[v>>2]|0)>0){r=w+(q*12|0)|0;w=0;do{u=(c[r>>2]|0)+(w<<2)|0;y=c[u>>2]|0;x=c[p>>2]|0;E=x+(y<<2)|0;if((c[E>>2]&16|0)==0){F=b6(e,E)|0;c[u>>2]=F;c[E>>2]=c[E>>2]|16;c[x+(y+1<<2)>>2]=F}else{c[u>>2]=c[x+(y+1<<2)>>2]}w=w+1|0;}while((w|0)<(c[v>>2]|0))}q=q+1|0;}while((q|0)<(c[l>>2]|0))}l=b+856|0;q=c[b+872>>2]|0;p=b+868|0;m=c[p>>2]|0;o=q-m|0;if((q|0)<(m|0)){G=(c[b+860>>2]|0)+o|0}else{G=o}L2480:do{if((G|0)>0){o=l|0;q=b+860|0;n=f;v=G;w=m;while(1){r=c[(c[o>>2]|0)+(w<<2)>>2]|0;s=w+1|0;c[p>>2]=s;if((s|0)==(c[q>>2]|0)){c[p>>2]=0}s=c[n>>2]|0;t=s+(r<<2)|0;y=t;x=c[t>>2]|0;if((x&3|0)==0){if((x&16|0)==0){x=b6(e,y)|0;c[t>>2]=c[t>>2]|16;c[s+(r+1<<2)>>2]=x;H=x}else{H=c[s+(r+1<<2)>>2]|0}cj(l,H)}r=v-1|0;if((r|0)<=0){I=n;break L2480}v=r;w=c[p>>2]|0}}else{I=f}}while(0);p=b+928|0;l=c[p>>2]|0;m=c[I>>2]|0;w=m+(l<<2)|0;if((c[w>>2]&16|0)!=0){c[p>>2]=c[m+(l+1<<2)>>2];break}v=b6(e,w)|0;c[p>>2]=v;c[w>>2]=c[w>>2]|16;c[m+(l+1<<2)>>2]=v}}while(0);b0(b,e);if((c[b+44>>2]|0)>1){I=c[g>>2]<<2;H=c[e+4>>2]<<2;aA(1376,(G=i,i=i+16|0,c[G>>2]=I,c[G+8>>2]=H,G)|0)|0;i=G}a[k]=a[j]&1;j=f;f=c[j>>2]|0;if((f|0)==0){J=e|0;K=c[J>>2]|0;c[j>>2]=K;L=e+4|0;M=c[L>>2]|0;c[g>>2]=M;N=e+8|0;O=c[N>>2]|0;P=b+552|0;Q=P;c[Q>>2]=O;R=e+12|0;S=c[R>>2]|0;c[h>>2]=S;i=d;return}cG(f);J=e|0;K=c[J>>2]|0;c[j>>2]=K;L=e+4|0;M=c[L>>2]|0;c[g>>2]=M;N=e+8|0;O=c[N>>2]|0;P=b+552|0;Q=P;c[Q>>2]=O;R=e+12|0;S=c[R>>2]|0;c[h>>2]=S;i=d;return}function cr(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,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,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;d=a|0;e=c[d>>2]|0;f=c[e+(b<<2)>>2]|0;g=b<<1|1;h=a+4|0;i=c[h>>2]|0;if((g|0)>=(i|0)){j=b;k=e;l=a+12|0;m=k+(j<<2)|0;c[m>>2]=f;n=c[l>>2]|0;o=n+(f<<2)|0;c[o>>2]=j;return}p=a+28|0;q=f<<1;r=q|1;s=a+12|0;a=b;b=g;g=i;i=e;while(1){e=(a<<1)+2|0;if((e|0)<(g|0)){t=c[i+(e<<2)>>2]|0;u=c[i+(b<<2)>>2]|0;v=t<<1;w=c[c[p>>2]>>2]|0;x=c[w+(v<<2)>>2]|0;y=x;z=(x|0)<0|0?-1:0;x=c[w+((v|1)<<2)>>2]|0;v=x;A=(x|0)<0|0?-1:0;x=(E=(+(v>>>0)+ +(A|0)*4294967296.0)*(+(y>>>0)+ +(z|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);B=u<<1;C=c[w+(B<<2)>>2]|0;D=C;F=(C|0)<0|0?-1:0;C=c[w+((B|1)<<2)>>2]|0;B=C;G=(C|0)<0|0?-1:0;C=(E=(+(B>>>0)+ +(G|0)*4294967296.0)*(+(D>>>0)+ +(F|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);if(x>>>0<C>>>0|x>>>0==C>>>0&~~((+(v>>>0)+ +(A|0)*4294967296.0)*(+(y>>>0)+ +(z|0)*4294967296.0))>>>0>>>0<~~((+(B>>>0)+ +(G|0)*4294967296.0)*(+(D>>>0)+ +(F|0)*4294967296.0))>>>0>>>0){H=e;I=t;J=w}else{K=u;L=w;M=1968}}else{K=c[i+(b<<2)>>2]|0;L=c[c[p>>2]>>2]|0;M=1968}if((M|0)==1968){M=0;H=b;I=K;J=L}w=I<<1;u=c[J+(w<<2)>>2]|0;t=u;e=(u|0)<0|0?-1:0;u=c[J+((w|1)<<2)>>2]|0;w=u;F=(u|0)<0|0?-1:0;u=(E=(+(w>>>0)+ +(F|0)*4294967296.0)*(+(t>>>0)+ +(e|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);D=c[J+(q<<2)>>2]|0;G=D;B=(D|0)<0|0?-1:0;D=c[J+(r<<2)>>2]|0;z=D;y=(D|0)<0|0?-1:0;D=(E=(+(z>>>0)+ +(y|0)*4294967296.0)*(+(G>>>0)+ +(B|0)*4294967296.0),+Q(E)>=1.0?E>0.0?(ag(+P(E/4294967296.0),4294967295.0)|0)>>>0:~~+aa((E- +(~~E>>>0))/4294967296.0)>>>0:0);if(!(u>>>0<D>>>0|u>>>0==D>>>0&~~((+(w>>>0)+ +(F|0)*4294967296.0)*(+(t>>>0)+ +(e|0)*4294967296.0))>>>0>>>0<~~((+(z>>>0)+ +(y|0)*4294967296.0)*(+(G>>>0)+ +(B|0)*4294967296.0))>>>0>>>0)){j=a;k=i;l=s;M=1972;break}c[i+(a<<2)>>2]=I;c[(c[s>>2]|0)+(c[(c[d>>2]|0)+(a<<2)>>2]<<2)>>2]=a;B=H<<1|1;G=c[h>>2]|0;y=c[d>>2]|0;if((B|0)<(G|0)){a=H;b=B;g=G;i=y}else{j=H;k=y;l=s;M=1973;break}}if((M|0)==1972){m=k+(j<<2)|0;c[m>>2]=f;n=c[l>>2]|0;o=n+(f<<2)|0;c[o>>2]=j;return}else if((M|0)==1973){m=k+(j<<2)|0;c[m>>2]=f;n=c[l>>2]|0;o=n+(f<<2)|0;c[o>>2]=j;return}}function cs(){var d=0,e=0;d=i;i=i+8|0;a[3248]=1;a[3224]=1;bA(4472,424,880,1040,1024);c[1118]=2672;a[4492]=0;bA(4328,704,552,1040,1024);c[1082]=2672;a[4348]=0;bA(4504,400,2352,1040,1024);c[1126]=2672;a[4524]=1;bA(3776,2328,2216,1040,1176);c[944]=2512;e=3796;c[e>>2]=-2147483648;c[e+4>>2]=2147483647;c[951]=0;bA(4352,2192,2016,1040,1176);c[1088]=2512;e=4372;c[e>>2]=-1;c[e+4>>2]=2147483647;c[1095]=20;bA(3872,1992,1840,1040,1176);c[968]=2512;e=3892;c[e>>2]=-1;c[e+4>>2]=2147483647;c[975]=1e3;e=d|0;bA(3816,1792,1656,1040,1352);c[954]=2608;h[480]=0.0;h[481]=+r;a[3856]=0;a[3857]=0;b[1929]=b[e>>1]|0;b[1930]=b[e+2>>1]|0;b[1931]=b[e+4>>1]|0;h[483]=.5;i=d;return}function ct(a){a=a|0;return}function cu(a){a=a|0;return}function cv(a){a=a|0;return}function cw(a){a=a|0;if((a|0)==0){return}cG(a);return}function cx(a){a=a|0;if((a|0)==0){return}cG(a);return}function cy(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;e=i;i=i+112|0;f=e|0;g=e+56|0;if((a|0)==(b|0)){h=1;i=e;return h|0}if((b|0)==0){h=0;i=e;return h|0}j=b;k=c[b>>2]|0;b=j+(c[k-8>>2]|0)|0;l=c[k-4>>2]|0;k=l;c[f>>2]=3192;c[f+4>>2]=j;c[f+8>>2]=3208;c[f+12>>2]=-1;j=f+16|0;m=f+20|0;n=f+24|0;o=f+28|0;p=f+32|0;q=f+40|0;cO(j|0,0,39);do{if((l|0)==3192){c[f+48>>2]=1;bc[c[(c[798]|0)+20>>2]&7](k,f,b,b,1,0);r=(c[n>>2]|0)==1?b:0}else{a6[c[(c[l>>2]|0)+24>>2]&7](k,f,b,1,0);s=c[f+36>>2]|0;if((s|0)==0){if((c[q>>2]|0)!=1){r=0;break}if((c[o>>2]|0)!=1){r=0;break}r=(c[p>>2]|0)==1?c[m>>2]|0:0;break}else if((s|0)!=1){r=0;break}if((c[n>>2]|0)!=1){if((c[q>>2]|0)!=0){r=0;break}if((c[o>>2]|0)!=1){r=0;break}if((c[p>>2]|0)!=1){r=0;break}}r=c[j>>2]|0}}while(0);j=r;if((r|0)==0){h=0;i=e;return h|0}cO(g|0,0,56);c[g>>2]=j;c[g+8>>2]=a;c[g+12>>2]=-1;c[g+48>>2]=1;be[c[(c[r>>2]|0)+28>>2]&7](j,g,c[d>>2]|0,1);if((c[g+24>>2]|0)!=1){h=0;i=e;return h|0}c[d>>2]=c[g+16>>2];h=1;i=e;return h|0}function cz(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if((c[d+8>>2]|0)!=(b|0)){return}b=d+16|0;g=c[b>>2]|0;if((g|0)==0){c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1;return}if((g|0)!=(e|0)){e=d+36|0;c[e>>2]=(c[e>>2]|0)+1;c[d+24>>2]=2;a[d+54|0]=1;return}e=d+24|0;if((c[e>>2]|0)!=2){return}c[e>>2]=f;return}function cA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if((b|0)!=(c[d+8>>2]|0)){g=c[b+8>>2]|0;be[c[(c[g>>2]|0)+28>>2]&7](g,d,e,f);return}g=d+16|0;b=c[g>>2]|0;if((b|0)==0){c[g>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1;return}if((b|0)!=(e|0)){e=d+36|0;c[e>>2]=(c[e>>2]|0)+1;c[d+24>>2]=2;a[d+54|0]=1;return}e=d+24|0;if((c[e>>2]|0)!=2){return}c[e>>2]=f;return}function cB(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=b|0;if((h|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)!=(e|0)){return}i=d+28|0;if((c[i>>2]|0)==1){return}c[i>>2]=f;return}if((h|0)!=(c[d>>2]|0)){h=c[b+8>>2]|0;a6[c[(c[h>>2]|0)+24>>2]&7](h,d,e,f,g);return}do{if((c[d+16>>2]|0)!=(e|0)){h=d+20|0;if((c[h>>2]|0)==(e|0)){break}c[d+32>>2]=f;i=d+44|0;if((c[i>>2]|0)==4){return}j=d+52|0;a[j]=0;k=d+53|0;a[k]=0;l=c[b+8>>2]|0;bc[c[(c[l>>2]|0)+20>>2]&7](l,d,e,e,1,g);if((a[k]&1)==0){m=0;n=2050}else{if((a[j]&1)==0){m=1;n=2050}}L2626:do{if((n|0)==2050){c[h>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;do{if((c[d+36>>2]|0)==1){if((c[d+24>>2]|0)!=2){n=2053;break}a[d+54|0]=1;if(m){break L2626}}else{n=2053}}while(0);if((n|0)==2053){if(m){break}}c[i>>2]=4;return}}while(0);c[i>>2]=3;return}}while(0);if((f|0)!=1){return}c[d+32>>2]=1;return}function cC(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((c[d+8>>2]|0)==(b|0)){if((c[d+4>>2]|0)!=(e|0)){return}g=d+28|0;if((c[g>>2]|0)==1){return}c[g>>2]=f;return}if((c[d>>2]|0)!=(b|0)){return}do{if((c[d+16>>2]|0)!=(e|0)){b=d+20|0;if((c[b>>2]|0)==(e|0)){break}c[d+32>>2]=f;c[b>>2]=e;b=d+40|0;c[b>>2]=(c[b>>2]|0)+1;do{if((c[d+36>>2]|0)==1){if((c[d+24>>2]|0)!=2){break}a[d+54|0]=1}}while(0);c[d+44>>2]=4;return}}while(0);if((f|0)!=1){return}c[d+32>>2]=1;return}function cD(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 i=0,j=0;if((b|0)!=(c[d+8>>2]|0)){i=c[b+8>>2]|0;bc[c[(c[i>>2]|0)+20>>2]&7](i,d,e,f,g,h);return}a[d+53|0]=1;if((c[d+4>>2]|0)!=(f|0)){return}a[d+52|0]=1;f=d+16|0;h=c[f>>2]|0;if((h|0)==0){c[f>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((c[d+48>>2]|0)==1&(g|0)==1)){return}a[d+54|0]=1;return}if((h|0)!=(e|0)){e=d+36|0;c[e>>2]=(c[e>>2]|0)+1;a[d+54|0]=1;return}e=d+24|0;h=c[e>>2]|0;if((h|0)==2){c[e>>2]=g;j=g}else{j=h}if(!((c[d+48>>2]|0)==1&(j|0)==1)){return}a[d+54|0]=1;return}function cE(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 i=0;if((c[d+8>>2]|0)!=(b|0)){return}a[d+53|0]=1;if((c[d+4>>2]|0)!=(f|0)){return}a[d+52|0]=1;f=d+16|0;b=c[f>>2]|0;if((b|0)==0){c[f>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((c[d+48>>2]|0)==1&(g|0)==1)){return}a[d+54|0]=1;return}if((b|0)!=(e|0)){e=d+36|0;c[e>>2]=(c[e>>2]|0)+1;a[d+54|0]=1;return}e=d+24|0;b=c[e>>2]|0;if((b|0)==2){c[e>>2]=g;i=g}else{i=b}if(!((c[d+48>>2]|0)==1&(i|0)==1)){return}a[d+54|0]=1;return}function cF(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,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,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,$=0,aa=0,ab=0,ac=0,ad=0,ae=0,af=0,ag=0,ah=0,ai=0,aj=0,ak=0,al=0,am=0,an=0,ao=0,ap=0,aq=0,ar=0,as=0,at=0,au=0,av=0,aw=0,ay=0,az=0,aA=0,aB=0,aC=0,aD=0,aE=0,aG=0,aH=0,aI=0;do{if(a>>>0<245){if(a>>>0<11){b=16}else{b=a+11&-8}d=b>>>3;e=c[822]|0;f=e>>>(d>>>0);if((f&3|0)!=0){g=(f&1^1)+d|0;h=g<<1;i=3328+(h<<2)|0;j=3328+(h+2<<2)|0;h=c[j>>2]|0;k=h+8|0;l=c[k>>2]|0;do{if((i|0)==(l|0)){c[822]=e&~(1<<g)}else{if(l>>>0<(c[826]|0)>>>0){ax();return 0}m=l+12|0;if((c[m>>2]|0)==(h|0)){c[m>>2]=i;c[j>>2]=l;break}else{ax();return 0}}}while(0);l=g<<3;c[h+4>>2]=l|3;j=h+(l|4)|0;c[j>>2]=c[j>>2]|1;n=k;return n|0}if(b>>>0<=(c[824]|0)>>>0){o=b;break}if((f|0)!=0){j=2<<d;l=f<<d&(j|-j);j=(l&-l)-1|0;l=j>>>12&16;i=j>>>(l>>>0);j=i>>>5&8;m=i>>>(j>>>0);i=m>>>2&4;p=m>>>(i>>>0);m=p>>>1&2;q=p>>>(m>>>0);p=q>>>1&1;r=(j|l|i|m|p)+(q>>>(p>>>0))|0;p=r<<1;q=3328+(p<<2)|0;m=3328+(p+2<<2)|0;p=c[m>>2]|0;i=p+8|0;l=c[i>>2]|0;do{if((q|0)==(l|0)){c[822]=e&~(1<<r)}else{if(l>>>0<(c[826]|0)>>>0){ax();return 0}j=l+12|0;if((c[j>>2]|0)==(p|0)){c[j>>2]=q;c[m>>2]=l;break}else{ax();return 0}}}while(0);l=r<<3;m=l-b|0;c[p+4>>2]=b|3;q=p;e=q+b|0;c[q+(b|4)>>2]=m|1;c[q+l>>2]=m;l=c[824]|0;if((l|0)!=0){q=c[827]|0;d=l>>>3;l=d<<1;f=3328+(l<<2)|0;k=c[822]|0;h=1<<d;do{if((k&h|0)==0){c[822]=k|h;s=f;t=3328+(l+2<<2)|0}else{d=3328+(l+2<<2)|0;g=c[d>>2]|0;if(g>>>0>=(c[826]|0)>>>0){s=g;t=d;break}ax();return 0}}while(0);c[t>>2]=q;c[s+12>>2]=q;c[q+8>>2]=s;c[q+12>>2]=f}c[824]=m;c[827]=e;n=i;return n|0}l=c[823]|0;if((l|0)==0){o=b;break}h=(l&-l)-1|0;l=h>>>12&16;k=h>>>(l>>>0);h=k>>>5&8;p=k>>>(h>>>0);k=p>>>2&4;r=p>>>(k>>>0);p=r>>>1&2;d=r>>>(p>>>0);r=d>>>1&1;g=c[3592+((h|l|k|p|r)+(d>>>(r>>>0))<<2)>>2]|0;r=g;d=g;p=(c[g+4>>2]&-8)-b|0;while(1){g=c[r+16>>2]|0;if((g|0)==0){k=c[r+20>>2]|0;if((k|0)==0){break}else{u=k}}else{u=g}g=(c[u+4>>2]&-8)-b|0;k=g>>>0<p>>>0;r=u;d=k?u:d;p=k?g:p}r=d;i=c[826]|0;if(r>>>0<i>>>0){ax();return 0}e=r+b|0;m=e;if(r>>>0>=e>>>0){ax();return 0}e=c[d+24>>2]|0;f=c[d+12>>2]|0;do{if((f|0)==(d|0)){q=d+20|0;g=c[q>>2]|0;if((g|0)==0){k=d+16|0;l=c[k>>2]|0;if((l|0)==0){v=0;break}else{w=l;x=k}}else{w=g;x=q}while(1){q=w+20|0;g=c[q>>2]|0;if((g|0)!=0){w=g;x=q;continue}q=w+16|0;g=c[q>>2]|0;if((g|0)==0){break}else{w=g;x=q}}if(x>>>0<i>>>0){ax();return 0}else{c[x>>2]=0;v=w;break}}else{q=c[d+8>>2]|0;if(q>>>0<i>>>0){ax();return 0}g=q+12|0;if((c[g>>2]|0)!=(d|0)){ax();return 0}k=f+8|0;if((c[k>>2]|0)==(d|0)){c[g>>2]=f;c[k>>2]=q;v=f;break}else{ax();return 0}}}while(0);L2921:do{if((e|0)!=0){f=d+28|0;i=3592+(c[f>>2]<<2)|0;do{if((d|0)==(c[i>>2]|0)){c[i>>2]=v;if((v|0)!=0){break}c[823]=c[823]&~(1<<c[f>>2]);break L2921}else{if(e>>>0<(c[826]|0)>>>0){ax();return 0}q=e+16|0;if((c[q>>2]|0)==(d|0)){c[q>>2]=v}else{c[e+20>>2]=v}if((v|0)==0){break L2921}}}while(0);if(v>>>0<(c[826]|0)>>>0){ax();return 0}c[v+24>>2]=e;f=c[d+16>>2]|0;do{if((f|0)!=0){if(f>>>0<(c[826]|0)>>>0){ax();return 0}else{c[v+16>>2]=f;c[f+24>>2]=v;break}}}while(0);f=c[d+20>>2]|0;if((f|0)==0){break}if(f>>>0<(c[826]|0)>>>0){ax();return 0}else{c[v+20>>2]=f;c[f+24>>2]=v;break}}}while(0);if(p>>>0<16){e=p+b|0;c[d+4>>2]=e|3;f=r+(e+4)|0;c[f>>2]=c[f>>2]|1}else{c[d+4>>2]=b|3;c[r+(b|4)>>2]=p|1;c[r+(p+b)>>2]=p;f=c[824]|0;if((f|0)!=0){e=c[827]|0;i=f>>>3;f=i<<1;q=3328+(f<<2)|0;k=c[822]|0;g=1<<i;do{if((k&g|0)==0){c[822]=k|g;y=q;z=3328+(f+2<<2)|0}else{i=3328+(f+2<<2)|0;l=c[i>>2]|0;if(l>>>0>=(c[826]|0)>>>0){y=l;z=i;break}ax();return 0}}while(0);c[z>>2]=e;c[y+12>>2]=e;c[e+8>>2]=y;c[e+12>>2]=q}c[824]=p;c[827]=m}f=d+8|0;if((f|0)==0){o=b;break}else{n=f}return n|0}else{if(a>>>0>4294967231){o=-1;break}f=a+11|0;g=f&-8;k=c[823]|0;if((k|0)==0){o=g;break}r=-g|0;i=f>>>8;do{if((i|0)==0){A=0}else{if(g>>>0>16777215){A=31;break}f=(i+1048320|0)>>>16&8;l=i<<f;h=(l+520192|0)>>>16&4;j=l<<h;l=(j+245760|0)>>>16&2;B=14-(h|f|l)+(j<<l>>>15)|0;A=g>>>((B+7|0)>>>0)&1|B<<1}}while(0);i=c[3592+(A<<2)>>2]|0;L2729:do{if((i|0)==0){C=0;D=r;E=0}else{if((A|0)==31){F=0}else{F=25-(A>>>1)|0}d=0;m=r;p=i;q=g<<F;e=0;while(1){B=c[p+4>>2]&-8;l=B-g|0;if(l>>>0<m>>>0){if((B|0)==(g|0)){C=p;D=l;E=p;break L2729}else{G=p;H=l}}else{G=d;H=m}l=c[p+20>>2]|0;B=c[p+16+(q>>>31<<2)>>2]|0;j=(l|0)==0|(l|0)==(B|0)?e:l;if((B|0)==0){C=G;D=H;E=j;break}else{d=G;m=H;p=B;q=q<<1;e=j}}}}while(0);if((E|0)==0&(C|0)==0){i=2<<A;r=(i|-i)&k;if((r|0)==0){o=g;break}i=(r&-r)-1|0;r=i>>>12&16;e=i>>>(r>>>0);i=e>>>5&8;q=e>>>(i>>>0);e=q>>>2&4;p=q>>>(e>>>0);q=p>>>1&2;m=p>>>(q>>>0);p=m>>>1&1;I=c[3592+((i|r|e|q|p)+(m>>>(p>>>0))<<2)>>2]|0}else{I=E}if((I|0)==0){J=D;K=C}else{p=I;m=D;q=C;while(1){e=(c[p+4>>2]&-8)-g|0;r=e>>>0<m>>>0;i=r?e:m;e=r?p:q;r=c[p+16>>2]|0;if((r|0)!=0){p=r;m=i;q=e;continue}r=c[p+20>>2]|0;if((r|0)==0){J=i;K=e;break}else{p=r;m=i;q=e}}}if((K|0)==0){o=g;break}if(J>>>0>=((c[824]|0)-g|0)>>>0){o=g;break}q=K;m=c[826]|0;if(q>>>0<m>>>0){ax();return 0}p=q+g|0;k=p;if(q>>>0>=p>>>0){ax();return 0}e=c[K+24>>2]|0;i=c[K+12>>2]|0;do{if((i|0)==(K|0)){r=K+20|0;d=c[r>>2]|0;if((d|0)==0){j=K+16|0;B=c[j>>2]|0;if((B|0)==0){L=0;break}else{M=B;N=j}}else{M=d;N=r}while(1){r=M+20|0;d=c[r>>2]|0;if((d|0)!=0){M=d;N=r;continue}r=M+16|0;d=c[r>>2]|0;if((d|0)==0){break}else{M=d;N=r}}if(N>>>0<m>>>0){ax();return 0}else{c[N>>2]=0;L=M;break}}else{r=c[K+8>>2]|0;if(r>>>0<m>>>0){ax();return 0}d=r+12|0;if((c[d>>2]|0)!=(K|0)){ax();return 0}j=i+8|0;if((c[j>>2]|0)==(K|0)){c[d>>2]=i;c[j>>2]=r;L=i;break}else{ax();return 0}}}while(0);L2779:do{if((e|0)!=0){i=K+28|0;m=3592+(c[i>>2]<<2)|0;do{if((K|0)==(c[m>>2]|0)){c[m>>2]=L;if((L|0)!=0){break}c[823]=c[823]&~(1<<c[i>>2]);break L2779}else{if(e>>>0<(c[826]|0)>>>0){ax();return 0}r=e+16|0;if((c[r>>2]|0)==(K|0)){c[r>>2]=L}else{c[e+20>>2]=L}if((L|0)==0){break L2779}}}while(0);if(L>>>0<(c[826]|0)>>>0){ax();return 0}c[L+24>>2]=e;i=c[K+16>>2]|0;do{if((i|0)!=0){if(i>>>0<(c[826]|0)>>>0){ax();return 0}else{c[L+16>>2]=i;c[i+24>>2]=L;break}}}while(0);i=c[K+20>>2]|0;if((i|0)==0){break}if(i>>>0<(c[826]|0)>>>0){ax();return 0}else{c[L+20>>2]=i;c[i+24>>2]=L;break}}}while(0);do{if(J>>>0<16){e=J+g|0;c[K+4>>2]=e|3;i=q+(e+4)|0;c[i>>2]=c[i>>2]|1}else{c[K+4>>2]=g|3;c[q+(g|4)>>2]=J|1;c[q+(J+g)>>2]=J;i=J>>>3;if(J>>>0<256){e=i<<1;m=3328+(e<<2)|0;r=c[822]|0;j=1<<i;do{if((r&j|0)==0){c[822]=r|j;O=m;P=3328+(e+2<<2)|0}else{i=3328+(e+2<<2)|0;d=c[i>>2]|0;if(d>>>0>=(c[826]|0)>>>0){O=d;P=i;break}ax();return 0}}while(0);c[P>>2]=k;c[O+12>>2]=k;c[q+(g+8)>>2]=O;c[q+(g+12)>>2]=m;break}e=p;j=J>>>8;do{if((j|0)==0){Q=0}else{if(J>>>0>16777215){Q=31;break}r=(j+1048320|0)>>>16&8;i=j<<r;d=(i+520192|0)>>>16&4;B=i<<d;i=(B+245760|0)>>>16&2;l=14-(d|r|i)+(B<<i>>>15)|0;Q=J>>>((l+7|0)>>>0)&1|l<<1}}while(0);j=3592+(Q<<2)|0;c[q+(g+28)>>2]=Q;c[q+(g+20)>>2]=0;c[q+(g+16)>>2]=0;m=c[823]|0;l=1<<Q;if((m&l|0)==0){c[823]=m|l;c[j>>2]=e;c[q+(g+24)>>2]=j;c[q+(g+12)>>2]=e;c[q+(g+8)>>2]=e;break}if((Q|0)==31){R=0}else{R=25-(Q>>>1)|0}l=J<<R;m=c[j>>2]|0;while(1){if((c[m+4>>2]&-8|0)==(J|0)){break}S=m+16+(l>>>31<<2)|0;j=c[S>>2]|0;if((j|0)==0){T=2277;break}else{l=l<<1;m=j}}if((T|0)==2277){if(S>>>0<(c[826]|0)>>>0){ax();return 0}else{c[S>>2]=e;c[q+(g+24)>>2]=m;c[q+(g+12)>>2]=e;c[q+(g+8)>>2]=e;break}}l=m+8|0;j=c[l>>2]|0;i=c[826]|0;if(m>>>0<i>>>0){ax();return 0}if(j>>>0<i>>>0){ax();return 0}else{c[j+12>>2]=e;c[l>>2]=e;c[q+(g+8)>>2]=j;c[q+(g+12)>>2]=m;c[q+(g+24)>>2]=0;break}}}while(0);q=K+8|0;if((q|0)==0){o=g;break}else{n=q}return n|0}}while(0);K=c[824]|0;if(o>>>0<=K>>>0){S=K-o|0;J=c[827]|0;if(S>>>0>15){R=J;c[827]=R+o;c[824]=S;c[R+(o+4)>>2]=S|1;c[R+K>>2]=S;c[J+4>>2]=o|3}else{c[824]=0;c[827]=0;c[J+4>>2]=K|3;S=J+(K+4)|0;c[S>>2]=c[S>>2]|1}n=J+8|0;return n|0}J=c[825]|0;if(o>>>0<J>>>0){S=J-o|0;c[825]=S;J=c[828]|0;K=J;c[828]=K+o;c[K+(o+4)>>2]=S|1;c[J+4>>2]=o|3;n=J+8|0;return n|0}do{if((c[814]|0)==0){J=aF(30)|0;if((J-1&J|0)==0){c[816]=J;c[815]=J;c[817]=-1;c[818]=-1;c[819]=0;c[933]=0;c[814]=(aN(0)|0)&-16^1431655768;break}else{ax();return 0}}}while(0);J=o+48|0;S=c[816]|0;K=o+47|0;R=S+K|0;Q=-S|0;S=R&Q;if(S>>>0<=o>>>0){n=0;return n|0}O=c[932]|0;do{if((O|0)!=0){P=c[930]|0;L=P+S|0;if(L>>>0<=P>>>0|L>>>0>O>>>0){n=0}else{break}return n|0}}while(0);L2988:do{if((c[933]&4|0)==0){O=c[828]|0;L2990:do{if((O|0)==0){T=2307}else{L=O;P=3736;while(1){U=P|0;M=c[U>>2]|0;if(M>>>0<=L>>>0){V=P+4|0;if((M+(c[V>>2]|0)|0)>>>0>L>>>0){break}}M=c[P+8>>2]|0;if((M|0)==0){T=2307;break L2990}else{P=M}}if((P|0)==0){T=2307;break}L=R-(c[825]|0)&Q;if(L>>>0>=2147483647){W=0;break}m=a_(L|0)|0;e=(m|0)==((c[U>>2]|0)+(c[V>>2]|0)|0);X=e?m:-1;Y=e?L:0;Z=m;_=L;T=2316}}while(0);do{if((T|0)==2307){O=a_(0)|0;if((O|0)==-1){W=0;break}g=O;L=c[815]|0;m=L-1|0;if((m&g|0)==0){$=S}else{$=S-g+(m+g&-L)|0}L=c[930]|0;g=L+$|0;if(!($>>>0>o>>>0&$>>>0<2147483647)){W=0;break}m=c[932]|0;if((m|0)!=0){if(g>>>0<=L>>>0|g>>>0>m>>>0){W=0;break}}m=a_($|0)|0;g=(m|0)==(O|0);X=g?O:-1;Y=g?$:0;Z=m;_=$;T=2316}}while(0);L3010:do{if((T|0)==2316){m=-_|0;if((X|0)!=-1){aa=Y;ab=X;T=2327;break L2988}do{if((Z|0)!=-1&_>>>0<2147483647&_>>>0<J>>>0){g=c[816]|0;O=K-_+g&-g;if(O>>>0>=2147483647){ac=_;break}if((a_(O|0)|0)==-1){a_(m|0)|0;W=Y;break L3010}else{ac=O+_|0;break}}else{ac=_}}while(0);if((Z|0)==-1){W=Y}else{aa=ac;ab=Z;T=2327;break L2988}}}while(0);c[933]=c[933]|4;ad=W;T=2324}else{ad=0;T=2324}}while(0);do{if((T|0)==2324){if(S>>>0>=2147483647){break}W=a_(S|0)|0;Z=a_(0)|0;if(!((Z|0)!=-1&(W|0)!=-1&W>>>0<Z>>>0)){break}ac=Z-W|0;Z=ac>>>0>(o+40|0)>>>0;Y=Z?W:-1;if((Y|0)!=-1){aa=Z?ac:ad;ab=Y;T=2327}}}while(0);do{if((T|0)==2327){ad=(c[930]|0)+aa|0;c[930]=ad;if(ad>>>0>(c[931]|0)>>>0){c[931]=ad}ad=c[828]|0;L3030:do{if((ad|0)==0){S=c[826]|0;if((S|0)==0|ab>>>0<S>>>0){c[826]=ab}c[934]=ab;c[935]=aa;c[937]=0;c[831]=c[814];c[830]=-1;S=0;do{Y=S<<1;ac=3328+(Y<<2)|0;c[3328+(Y+3<<2)>>2]=ac;c[3328+(Y+2<<2)>>2]=ac;S=S+1|0;}while(S>>>0<32);S=ab+8|0;if((S&7|0)==0){ae=0}else{ae=-S&7}S=aa-40-ae|0;c[828]=ab+ae;c[825]=S;c[ab+(ae+4)>>2]=S|1;c[ab+(aa-36)>>2]=40;c[829]=c[818]}else{S=3736;while(1){af=c[S>>2]|0;ag=S+4|0;ah=c[ag>>2]|0;if((ab|0)==(af+ah|0)){T=2339;break}ac=c[S+8>>2]|0;if((ac|0)==0){break}else{S=ac}}do{if((T|0)==2339){if((c[S+12>>2]&8|0)!=0){break}ac=ad;if(!(ac>>>0>=af>>>0&ac>>>0<ab>>>0)){break}c[ag>>2]=ah+aa;ac=c[828]|0;Y=(c[825]|0)+aa|0;Z=ac;W=ac+8|0;if((W&7|0)==0){ai=0}else{ai=-W&7}W=Y-ai|0;c[828]=Z+ai;c[825]=W;c[Z+(ai+4)>>2]=W|1;c[Z+(Y+4)>>2]=40;c[829]=c[818];break L3030}}while(0);if(ab>>>0<(c[826]|0)>>>0){c[826]=ab}S=ab+aa|0;Y=3736;while(1){aj=Y|0;if((c[aj>>2]|0)==(S|0)){T=2349;break}Z=c[Y+8>>2]|0;if((Z|0)==0){break}else{Y=Z}}do{if((T|0)==2349){if((c[Y+12>>2]&8|0)!=0){break}c[aj>>2]=ab;S=Y+4|0;c[S>>2]=(c[S>>2]|0)+aa;S=ab+8|0;if((S&7|0)==0){ak=0}else{ak=-S&7}S=ab+(aa+8)|0;if((S&7|0)==0){al=0}else{al=-S&7}S=ab+(al+aa)|0;Z=S;W=ak+o|0;ac=ab+W|0;_=ac;K=S-(ab+ak)-o|0;c[ab+(ak+4)>>2]=o|3;do{if((Z|0)==(c[828]|0)){J=(c[825]|0)+K|0;c[825]=J;c[828]=_;c[ab+(W+4)>>2]=J|1}else{if((Z|0)==(c[827]|0)){J=(c[824]|0)+K|0;c[824]=J;c[827]=_;c[ab+(W+4)>>2]=J|1;c[ab+(J+W)>>2]=J;break}J=aa+4|0;X=c[ab+(al+J)>>2]|0;if((X&3|0)==1){$=X&-8;V=X>>>3;L3075:do{if(X>>>0<256){U=c[ab+((al|8)+aa)>>2]|0;Q=c[ab+(aa+12+al)>>2]|0;R=3328+(V<<1<<2)|0;do{if((U|0)!=(R|0)){if(U>>>0<(c[826]|0)>>>0){ax();return 0}if((c[U+12>>2]|0)==(Z|0)){break}ax();return 0}}while(0);if((Q|0)==(U|0)){c[822]=c[822]&~(1<<V);break}do{if((Q|0)==(R|0)){am=Q+8|0}else{if(Q>>>0<(c[826]|0)>>>0){ax();return 0}m=Q+8|0;if((c[m>>2]|0)==(Z|0)){am=m;break}ax();return 0}}while(0);c[U+12>>2]=Q;c[am>>2]=U}else{R=S;m=c[ab+((al|24)+aa)>>2]|0;P=c[ab+(aa+12+al)>>2]|0;do{if((P|0)==(R|0)){O=al|16;g=ab+(O+J)|0;L=c[g>>2]|0;if((L|0)==0){e=ab+(O+aa)|0;O=c[e>>2]|0;if((O|0)==0){an=0;break}else{ao=O;ap=e}}else{ao=L;ap=g}while(1){g=ao+20|0;L=c[g>>2]|0;if((L|0)!=0){ao=L;ap=g;continue}g=ao+16|0;L=c[g>>2]|0;if((L|0)==0){break}else{ao=L;ap=g}}if(ap>>>0<(c[826]|0)>>>0){ax();return 0}else{c[ap>>2]=0;an=ao;break}}else{g=c[ab+((al|8)+aa)>>2]|0;if(g>>>0<(c[826]|0)>>>0){ax();return 0}L=g+12|0;if((c[L>>2]|0)!=(R|0)){ax();return 0}e=P+8|0;if((c[e>>2]|0)==(R|0)){c[L>>2]=P;c[e>>2]=g;an=P;break}else{ax();return 0}}}while(0);if((m|0)==0){break}P=ab+(aa+28+al)|0;U=3592+(c[P>>2]<<2)|0;do{if((R|0)==(c[U>>2]|0)){c[U>>2]=an;if((an|0)!=0){break}c[823]=c[823]&~(1<<c[P>>2]);break L3075}else{if(m>>>0<(c[826]|0)>>>0){ax();return 0}Q=m+16|0;if((c[Q>>2]|0)==(R|0)){c[Q>>2]=an}else{c[m+20>>2]=an}if((an|0)==0){break L3075}}}while(0);if(an>>>0<(c[826]|0)>>>0){ax();return 0}c[an+24>>2]=m;R=al|16;P=c[ab+(R+aa)>>2]|0;do{if((P|0)!=0){if(P>>>0<(c[826]|0)>>>0){ax();return 0}else{c[an+16>>2]=P;c[P+24>>2]=an;break}}}while(0);P=c[ab+(R+J)>>2]|0;if((P|0)==0){break}if(P>>>0<(c[826]|0)>>>0){ax();return 0}else{c[an+20>>2]=P;c[P+24>>2]=an;break}}}while(0);aq=ab+(($|al)+aa)|0;ar=$+K|0}else{aq=Z;ar=K}J=aq+4|0;c[J>>2]=c[J>>2]&-2;c[ab+(W+4)>>2]=ar|1;c[ab+(ar+W)>>2]=ar;J=ar>>>3;if(ar>>>0<256){V=J<<1;X=3328+(V<<2)|0;P=c[822]|0;m=1<<J;do{if((P&m|0)==0){c[822]=P|m;as=X;at=3328+(V+2<<2)|0}else{J=3328+(V+2<<2)|0;U=c[J>>2]|0;if(U>>>0>=(c[826]|0)>>>0){as=U;at=J;break}ax();return 0}}while(0);c[at>>2]=_;c[as+12>>2]=_;c[ab+(W+8)>>2]=as;c[ab+(W+12)>>2]=X;break}V=ac;m=ar>>>8;do{if((m|0)==0){au=0}else{if(ar>>>0>16777215){au=31;break}P=(m+1048320|0)>>>16&8;$=m<<P;J=($+520192|0)>>>16&4;U=$<<J;$=(U+245760|0)>>>16&2;Q=14-(J|P|$)+(U<<$>>>15)|0;au=ar>>>((Q+7|0)>>>0)&1|Q<<1}}while(0);m=3592+(au<<2)|0;c[ab+(W+28)>>2]=au;c[ab+(W+20)>>2]=0;c[ab+(W+16)>>2]=0;X=c[823]|0;Q=1<<au;if((X&Q|0)==0){c[823]=X|Q;c[m>>2]=V;c[ab+(W+24)>>2]=m;c[ab+(W+12)>>2]=V;c[ab+(W+8)>>2]=V;break}if((au|0)==31){av=0}else{av=25-(au>>>1)|0}Q=ar<<av;X=c[m>>2]|0;while(1){if((c[X+4>>2]&-8|0)==(ar|0)){break}aw=X+16+(Q>>>31<<2)|0;m=c[aw>>2]|0;if((m|0)==0){T=2422;break}else{Q=Q<<1;X=m}}if((T|0)==2422){if(aw>>>0<(c[826]|0)>>>0){ax();return 0}else{c[aw>>2]=V;c[ab+(W+24)>>2]=X;c[ab+(W+12)>>2]=V;c[ab+(W+8)>>2]=V;break}}Q=X+8|0;m=c[Q>>2]|0;$=c[826]|0;if(X>>>0<$>>>0){ax();return 0}if(m>>>0<$>>>0){ax();return 0}else{c[m+12>>2]=V;c[Q>>2]=V;c[ab+(W+8)>>2]=m;c[ab+(W+12)>>2]=X;c[ab+(W+24)>>2]=0;break}}}while(0);n=ab+(ak|8)|0;return n|0}}while(0);Y=ad;W=3736;while(1){ay=c[W>>2]|0;if(ay>>>0<=Y>>>0){az=c[W+4>>2]|0;aA=ay+az|0;if(aA>>>0>Y>>>0){break}}W=c[W+8>>2]|0}W=ay+(az-39)|0;if((W&7|0)==0){aB=0}else{aB=-W&7}W=ay+(az-47+aB)|0;ac=W>>>0<(ad+16|0)>>>0?Y:W;W=ac+8|0;_=ab+8|0;if((_&7|0)==0){aC=0}else{aC=-_&7}_=aa-40-aC|0;c[828]=ab+aC;c[825]=_;c[ab+(aC+4)>>2]=_|1;c[ab+(aa-36)>>2]=40;c[829]=c[818];c[ac+4>>2]=27;c[W>>2]=c[934];c[W+4>>2]=c[935];c[W+8>>2]=c[936];c[W+12>>2]=c[937];c[934]=ab;c[935]=aa;c[937]=0;c[936]=W;W=ac+28|0;c[W>>2]=7;if((ac+32|0)>>>0<aA>>>0){_=W;while(1){W=_+4|0;c[W>>2]=7;if((_+8|0)>>>0<aA>>>0){_=W}else{break}}}if((ac|0)==(Y|0)){break}_=ac-ad|0;W=Y+(_+4)|0;c[W>>2]=c[W>>2]&-2;c[ad+4>>2]=_|1;c[Y+_>>2]=_;W=_>>>3;if(_>>>0<256){K=W<<1;Z=3328+(K<<2)|0;S=c[822]|0;m=1<<W;do{if((S&m|0)==0){c[822]=S|m;aD=Z;aE=3328+(K+2<<2)|0}else{W=3328+(K+2<<2)|0;Q=c[W>>2]|0;if(Q>>>0>=(c[826]|0)>>>0){aD=Q;aE=W;break}ax();return 0}}while(0);c[aE>>2]=ad;c[aD+12>>2]=ad;c[ad+8>>2]=aD;c[ad+12>>2]=Z;break}K=ad;m=_>>>8;do{if((m|0)==0){aG=0}else{if(_>>>0>16777215){aG=31;break}S=(m+1048320|0)>>>16&8;Y=m<<S;ac=(Y+520192|0)>>>16&4;W=Y<<ac;Y=(W+245760|0)>>>16&2;Q=14-(ac|S|Y)+(W<<Y>>>15)|0;aG=_>>>((Q+7|0)>>>0)&1|Q<<1}}while(0);m=3592+(aG<<2)|0;c[ad+28>>2]=aG;c[ad+20>>2]=0;c[ad+16>>2]=0;Z=c[823]|0;Q=1<<aG;if((Z&Q|0)==0){c[823]=Z|Q;c[m>>2]=K;c[ad+24>>2]=m;c[ad+12>>2]=ad;c[ad+8>>2]=ad;break}if((aG|0)==31){aH=0}else{aH=25-(aG>>>1)|0}Q=_<<aH;Z=c[m>>2]|0;while(1){if((c[Z+4>>2]&-8|0)==(_|0)){break}aI=Z+16+(Q>>>31<<2)|0;m=c[aI>>2]|0;if((m|0)==0){T=2457;break}else{Q=Q<<1;Z=m}}if((T|0)==2457){if(aI>>>0<(c[826]|0)>>>0){ax();return 0}else{c[aI>>2]=K;c[ad+24>>2]=Z;c[ad+12>>2]=ad;c[ad+8>>2]=ad;break}}Q=Z+8|0;_=c[Q>>2]|0;m=c[826]|0;if(Z>>>0<m>>>0){ax();return 0}if(_>>>0<m>>>0){ax();return 0}else{c[_+12>>2]=K;c[Q>>2]=K;c[ad+8>>2]=_;c[ad+12>>2]=Z;c[ad+24>>2]=0;break}}}while(0);ad=c[825]|0;if(ad>>>0<=o>>>0){break}_=ad-o|0;c[825]=_;ad=c[828]|0;Q=ad;c[828]=Q+o;c[Q+(o+4)>>2]=_|1;c[ad+4>>2]=o|3;n=ad+8|0;return n|0}}while(0);c[(a$()|0)>>2]=12;n=0;return n|0}function cG(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,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,M=0,N=0,O=0;if((a|0)==0){return}b=a-8|0;d=b;e=c[826]|0;if(b>>>0<e>>>0){ax()}f=c[a-4>>2]|0;g=f&3;if((g|0)==1){ax()}h=f&-8;i=a+(h-8)|0;j=i;L3247:do{if((f&1|0)==0){k=c[b>>2]|0;if((g|0)==0){return}l=-8-k|0;m=a+l|0;n=m;o=k+h|0;if(m>>>0<e>>>0){ax()}if((n|0)==(c[827]|0)){p=a+(h-4)|0;if((c[p>>2]&3|0)!=3){q=n;r=o;break}c[824]=o;c[p>>2]=c[p>>2]&-2;c[a+(l+4)>>2]=o|1;c[i>>2]=o;return}p=k>>>3;if(k>>>0<256){k=c[a+(l+8)>>2]|0;s=c[a+(l+12)>>2]|0;t=3328+(p<<1<<2)|0;do{if((k|0)!=(t|0)){if(k>>>0<e>>>0){ax()}if((c[k+12>>2]|0)==(n|0)){break}ax()}}while(0);if((s|0)==(k|0)){c[822]=c[822]&~(1<<p);q=n;r=o;break}do{if((s|0)==(t|0)){u=s+8|0}else{if(s>>>0<e>>>0){ax()}v=s+8|0;if((c[v>>2]|0)==(n|0)){u=v;break}ax()}}while(0);c[k+12>>2]=s;c[u>>2]=k;q=n;r=o;break}t=m;p=c[a+(l+24)>>2]|0;v=c[a+(l+12)>>2]|0;do{if((v|0)==(t|0)){w=a+(l+20)|0;x=c[w>>2]|0;if((x|0)==0){y=a+(l+16)|0;z=c[y>>2]|0;if((z|0)==0){A=0;break}else{B=z;C=y}}else{B=x;C=w}while(1){w=B+20|0;x=c[w>>2]|0;if((x|0)!=0){B=x;C=w;continue}w=B+16|0;x=c[w>>2]|0;if((x|0)==0){break}else{B=x;C=w}}if(C>>>0<e>>>0){ax()}else{c[C>>2]=0;A=B;break}}else{w=c[a+(l+8)>>2]|0;if(w>>>0<e>>>0){ax()}x=w+12|0;if((c[x>>2]|0)!=(t|0)){ax()}y=v+8|0;if((c[y>>2]|0)==(t|0)){c[x>>2]=v;c[y>>2]=w;A=v;break}else{ax()}}}while(0);if((p|0)==0){q=n;r=o;break}v=a+(l+28)|0;m=3592+(c[v>>2]<<2)|0;do{if((t|0)==(c[m>>2]|0)){c[m>>2]=A;if((A|0)!=0){break}c[823]=c[823]&~(1<<c[v>>2]);q=n;r=o;break L3247}else{if(p>>>0<(c[826]|0)>>>0){ax()}k=p+16|0;if((c[k>>2]|0)==(t|0)){c[k>>2]=A}else{c[p+20>>2]=A}if((A|0)==0){q=n;r=o;break L3247}}}while(0);if(A>>>0<(c[826]|0)>>>0){ax()}c[A+24>>2]=p;t=c[a+(l+16)>>2]|0;do{if((t|0)!=0){if(t>>>0<(c[826]|0)>>>0){ax()}else{c[A+16>>2]=t;c[t+24>>2]=A;break}}}while(0);t=c[a+(l+20)>>2]|0;if((t|0)==0){q=n;r=o;break}if(t>>>0<(c[826]|0)>>>0){ax()}else{c[A+20>>2]=t;c[t+24>>2]=A;q=n;r=o;break}}else{q=d;r=h}}while(0);d=q;if(d>>>0>=i>>>0){ax()}A=a+(h-4)|0;e=c[A>>2]|0;if((e&1|0)==0){ax()}do{if((e&2|0)==0){if((j|0)==(c[828]|0)){B=(c[825]|0)+r|0;c[825]=B;c[828]=q;c[q+4>>2]=B|1;if((q|0)!=(c[827]|0)){return}c[827]=0;c[824]=0;return}if((j|0)==(c[827]|0)){B=(c[824]|0)+r|0;c[824]=B;c[827]=q;c[q+4>>2]=B|1;c[d+B>>2]=B;return}B=(e&-8)+r|0;C=e>>>3;L3349:do{if(e>>>0<256){u=c[a+h>>2]|0;g=c[a+(h|4)>>2]|0;b=3328+(C<<1<<2)|0;do{if((u|0)!=(b|0)){if(u>>>0<(c[826]|0)>>>0){ax()}if((c[u+12>>2]|0)==(j|0)){break}ax()}}while(0);if((g|0)==(u|0)){c[822]=c[822]&~(1<<C);break}do{if((g|0)==(b|0)){D=g+8|0}else{if(g>>>0<(c[826]|0)>>>0){ax()}f=g+8|0;if((c[f>>2]|0)==(j|0)){D=f;break}ax()}}while(0);c[u+12>>2]=g;c[D>>2]=u}else{b=i;f=c[a+(h+16)>>2]|0;t=c[a+(h|4)>>2]|0;do{if((t|0)==(b|0)){p=a+(h+12)|0;v=c[p>>2]|0;if((v|0)==0){m=a+(h+8)|0;k=c[m>>2]|0;if((k|0)==0){E=0;break}else{F=k;G=m}}else{F=v;G=p}while(1){p=F+20|0;v=c[p>>2]|0;if((v|0)!=0){F=v;G=p;continue}p=F+16|0;v=c[p>>2]|0;if((v|0)==0){break}else{F=v;G=p}}if(G>>>0<(c[826]|0)>>>0){ax()}else{c[G>>2]=0;E=F;break}}else{p=c[a+h>>2]|0;if(p>>>0<(c[826]|0)>>>0){ax()}v=p+12|0;if((c[v>>2]|0)!=(b|0)){ax()}m=t+8|0;if((c[m>>2]|0)==(b|0)){c[v>>2]=t;c[m>>2]=p;E=t;break}else{ax()}}}while(0);if((f|0)==0){break}t=a+(h+20)|0;u=3592+(c[t>>2]<<2)|0;do{if((b|0)==(c[u>>2]|0)){c[u>>2]=E;if((E|0)!=0){break}c[823]=c[823]&~(1<<c[t>>2]);break L3349}else{if(f>>>0<(c[826]|0)>>>0){ax()}g=f+16|0;if((c[g>>2]|0)==(b|0)){c[g>>2]=E}else{c[f+20>>2]=E}if((E|0)==0){break L3349}}}while(0);if(E>>>0<(c[826]|0)>>>0){ax()}c[E+24>>2]=f;b=c[a+(h+8)>>2]|0;do{if((b|0)!=0){if(b>>>0<(c[826]|0)>>>0){ax()}else{c[E+16>>2]=b;c[b+24>>2]=E;break}}}while(0);b=c[a+(h+12)>>2]|0;if((b|0)==0){break}if(b>>>0<(c[826]|0)>>>0){ax()}else{c[E+20>>2]=b;c[b+24>>2]=E;break}}}while(0);c[q+4>>2]=B|1;c[d+B>>2]=B;if((q|0)!=(c[827]|0)){H=B;break}c[824]=B;return}else{c[A>>2]=e&-2;c[q+4>>2]=r|1;c[d+r>>2]=r;H=r}}while(0);r=H>>>3;if(H>>>0<256){d=r<<1;e=3328+(d<<2)|0;A=c[822]|0;E=1<<r;do{if((A&E|0)==0){c[822]=A|E;I=e;J=3328+(d+2<<2)|0}else{r=3328+(d+2<<2)|0;h=c[r>>2]|0;if(h>>>0>=(c[826]|0)>>>0){I=h;J=r;break}ax()}}while(0);c[J>>2]=q;c[I+12>>2]=q;c[q+8>>2]=I;c[q+12>>2]=e;return}e=q;I=H>>>8;do{if((I|0)==0){K=0}else{if(H>>>0>16777215){K=31;break}J=(I+1048320|0)>>>16&8;d=I<<J;E=(d+520192|0)>>>16&4;A=d<<E;d=(A+245760|0)>>>16&2;r=14-(E|J|d)+(A<<d>>>15)|0;K=H>>>((r+7|0)>>>0)&1|r<<1}}while(0);I=3592+(K<<2)|0;c[q+28>>2]=K;c[q+20>>2]=0;c[q+16>>2]=0;r=c[823]|0;d=1<<K;do{if((r&d|0)==0){c[823]=r|d;c[I>>2]=e;c[q+24>>2]=I;c[q+12>>2]=q;c[q+8>>2]=q}else{if((K|0)==31){L=0}else{L=25-(K>>>1)|0}A=H<<L;J=c[I>>2]|0;while(1){if((c[J+4>>2]&-8|0)==(H|0)){break}M=J+16+(A>>>31<<2)|0;E=c[M>>2]|0;if((E|0)==0){N=2634;break}else{A=A<<1;J=E}}if((N|0)==2634){if(M>>>0<(c[826]|0)>>>0){ax()}else{c[M>>2]=e;c[q+24>>2]=J;c[q+12>>2]=q;c[q+8>>2]=q;break}}A=J+8|0;B=c[A>>2]|0;E=c[826]|0;if(J>>>0<E>>>0){ax()}if(B>>>0<E>>>0){ax()}else{c[B+12>>2]=e;c[A>>2]=e;c[q+8>>2]=B;c[q+12>>2]=J;c[q+24>>2]=0;break}}}while(0);q=(c[830]|0)-1|0;c[830]=q;if((q|0)==0){O=3744}else{return}while(1){q=c[O>>2]|0;if((q|0)==0){break}else{O=q+8|0}}c[830]=-1;return}function cH(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,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;if((a|0)==0){d=cF(b)|0;return d|0}if(b>>>0>4294967231){c[(a$()|0)>>2]=12;d=0;return d|0}if(b>>>0<11){e=16}else{e=b+11&-8}f=a-8|0;g=a-4|0;h=c[g>>2]|0;i=h&-8;j=i-8|0;k=a+j|0;l=k;m=c[826]|0;if(f>>>0<m>>>0){ax();return 0}n=h&3;if(!((n|0)!=1&(j|0)>-8)){ax();return 0}j=i|4;o=a+(j-8)|0;p=c[o>>2]|0;if((p&1|0)==0){ax();return 0}L3485:do{if((n|0)==0){if(e>>>0<256|i>>>0<(e|4)>>>0){break}if((i-e|0)>>>0>c[816]<<1>>>0|(f|0)==0){break}else{d=a}return d|0}else{do{if(i>>>0<e>>>0){if((l|0)==(c[828]|0)){q=(c[825]|0)+i|0;if(q>>>0<=e>>>0){break L3485}r=q-e|0;c[g>>2]=h&1|e|2;c[a+((e|4)-8)>>2]=r|1;c[828]=a+(e-8);c[825]=r;break}if((l|0)==(c[827]|0)){r=(c[824]|0)+i|0;if(r>>>0<e>>>0){break L3485}q=r-e|0;if(q>>>0>15){c[g>>2]=h&1|e|2;c[a+((e|4)-8)>>2]=q|1;c[a+(r-8)>>2]=q;s=a+(r-4)|0;c[s>>2]=c[s>>2]&-2;t=a+(e-8)|0;u=q}else{c[g>>2]=h&1|r|2;q=a+(r-4)|0;c[q>>2]=c[q>>2]|1;t=0;u=0}c[824]=u;c[827]=t;break}if((p&2|0)!=0){break L3485}q=(p&-8)+i|0;if(q>>>0<e>>>0){break L3485}r=q-e|0;s=p>>>3;L3509:do{if(p>>>0<256){v=c[a+i>>2]|0;w=c[a+j>>2]|0;x=3328+(s<<1<<2)|0;do{if((v|0)!=(x|0)){if(v>>>0<m>>>0){ax();return 0}if((c[v+12>>2]|0)==(l|0)){break}ax();return 0}}while(0);if((w|0)==(v|0)){c[822]=c[822]&~(1<<s);break}do{if((w|0)==(x|0)){y=w+8|0}else{if(w>>>0<m>>>0){ax();return 0}z=w+8|0;if((c[z>>2]|0)==(l|0)){y=z;break}ax();return 0}}while(0);c[v+12>>2]=w;c[y>>2]=v}else{x=k;z=c[a+(i+16)>>2]|0;A=c[a+j>>2]|0;do{if((A|0)==(x|0)){B=a+(i+12)|0;C=c[B>>2]|0;if((C|0)==0){D=a+(i+8)|0;E=c[D>>2]|0;if((E|0)==0){F=0;break}else{G=E;H=D}}else{G=C;H=B}while(1){B=G+20|0;C=c[B>>2]|0;if((C|0)!=0){G=C;H=B;continue}B=G+16|0;C=c[B>>2]|0;if((C|0)==0){break}else{G=C;H=B}}if(H>>>0<m>>>0){ax();return 0}else{c[H>>2]=0;F=G;break}}else{B=c[a+i>>2]|0;if(B>>>0<m>>>0){ax();return 0}C=B+12|0;if((c[C>>2]|0)!=(x|0)){ax();return 0}D=A+8|0;if((c[D>>2]|0)==(x|0)){c[C>>2]=A;c[D>>2]=B;F=A;break}else{ax();return 0}}}while(0);if((z|0)==0){break}A=a+(i+20)|0;v=3592+(c[A>>2]<<2)|0;do{if((x|0)==(c[v>>2]|0)){c[v>>2]=F;if((F|0)!=0){break}c[823]=c[823]&~(1<<c[A>>2]);break L3509}else{if(z>>>0<(c[826]|0)>>>0){ax();return 0}w=z+16|0;if((c[w>>2]|0)==(x|0)){c[w>>2]=F}else{c[z+20>>2]=F}if((F|0)==0){break L3509}}}while(0);if(F>>>0<(c[826]|0)>>>0){ax();return 0}c[F+24>>2]=z;x=c[a+(i+8)>>2]|0;do{if((x|0)!=0){if(x>>>0<(c[826]|0)>>>0){ax();return 0}else{c[F+16>>2]=x;c[x+24>>2]=F;break}}}while(0);x=c[a+(i+12)>>2]|0;if((x|0)==0){break}if(x>>>0<(c[826]|0)>>>0){ax();return 0}else{c[F+20>>2]=x;c[x+24>>2]=F;break}}}while(0);if(r>>>0>=16){c[g>>2]=c[g>>2]&1|e|2;c[a+((e|4)-8)>>2]=r|3;s=a+((q|4)-8)|0;c[s>>2]=c[s>>2]|1;cI(a+(e-8)|0,r);break}c[g>>2]=q|c[g>>2]&1|2;s=a+((q|4)-8)|0;c[s>>2]=c[s>>2]|1;d=a;return d|0}else{s=i-e|0;if(s>>>0<=15){break}c[g>>2]=h&1|e|2;c[a+((e|4)-8)>>2]=s|3;c[o>>2]=c[o>>2]|1;cI(a+(e-8)|0,s);d=a;return d|0}}while(0);if((f|0)==0){break}else{d=a}return d|0}}while(0);f=cF(b)|0;if((f|0)==0){d=0;return d|0}e=c[g>>2]|0;g=(e&-8)-((e&3|0)==0?8:4)|0;e=g>>>0<b>>>0?g:b;cN(f|0,a|0,e)|0;cG(a);d=f;return d|0}function cI(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,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;d=a;e=d+b|0;f=e;g=c[a+4>>2]|0;L3591:do{if((g&1|0)==0){h=c[a>>2]|0;if((g&3|0)==0){return}i=d+(-h|0)|0;j=i;k=h+b|0;l=c[826]|0;if(i>>>0<l>>>0){ax()}if((j|0)==(c[827]|0)){m=d+(b+4)|0;if((c[m>>2]&3|0)!=3){n=j;o=k;break}c[824]=k;c[m>>2]=c[m>>2]&-2;c[d+(4-h)>>2]=k|1;c[e>>2]=k;return}m=h>>>3;if(h>>>0<256){p=c[d+(8-h)>>2]|0;q=c[d+(12-h)>>2]|0;r=3328+(m<<1<<2)|0;do{if((p|0)!=(r|0)){if(p>>>0<l>>>0){ax()}if((c[p+12>>2]|0)==(j|0)){break}ax()}}while(0);if((q|0)==(p|0)){c[822]=c[822]&~(1<<m);n=j;o=k;break}do{if((q|0)==(r|0)){s=q+8|0}else{if(q>>>0<l>>>0){ax()}t=q+8|0;if((c[t>>2]|0)==(j|0)){s=t;break}ax()}}while(0);c[p+12>>2]=q;c[s>>2]=p;n=j;o=k;break}r=i;m=c[d+(24-h)>>2]|0;t=c[d+(12-h)>>2]|0;do{if((t|0)==(r|0)){u=16-h|0;v=d+(u+4)|0;w=c[v>>2]|0;if((w|0)==0){x=d+u|0;u=c[x>>2]|0;if((u|0)==0){y=0;break}else{z=u;A=x}}else{z=w;A=v}while(1){v=z+20|0;w=c[v>>2]|0;if((w|0)!=0){z=w;A=v;continue}v=z+16|0;w=c[v>>2]|0;if((w|0)==0){break}else{z=w;A=v}}if(A>>>0<l>>>0){ax()}else{c[A>>2]=0;y=z;break}}else{v=c[d+(8-h)>>2]|0;if(v>>>0<l>>>0){ax()}w=v+12|0;if((c[w>>2]|0)!=(r|0)){ax()}x=t+8|0;if((c[x>>2]|0)==(r|0)){c[w>>2]=t;c[x>>2]=v;y=t;break}else{ax()}}}while(0);if((m|0)==0){n=j;o=k;break}t=d+(28-h)|0;l=3592+(c[t>>2]<<2)|0;do{if((r|0)==(c[l>>2]|0)){c[l>>2]=y;if((y|0)!=0){break}c[823]=c[823]&~(1<<c[t>>2]);n=j;o=k;break L3591}else{if(m>>>0<(c[826]|0)>>>0){ax()}i=m+16|0;if((c[i>>2]|0)==(r|0)){c[i>>2]=y}else{c[m+20>>2]=y}if((y|0)==0){n=j;o=k;break L3591}}}while(0);if(y>>>0<(c[826]|0)>>>0){ax()}c[y+24>>2]=m;r=16-h|0;t=c[d+r>>2]|0;do{if((t|0)!=0){if(t>>>0<(c[826]|0)>>>0){ax()}else{c[y+16>>2]=t;c[t+24>>2]=y;break}}}while(0);t=c[d+(r+4)>>2]|0;if((t|0)==0){n=j;o=k;break}if(t>>>0<(c[826]|0)>>>0){ax()}else{c[y+20>>2]=t;c[t+24>>2]=y;n=j;o=k;break}}else{n=a;o=b}}while(0);a=c[826]|0;if(e>>>0<a>>>0){ax()}y=d+(b+4)|0;z=c[y>>2]|0;do{if((z&2|0)==0){if((f|0)==(c[828]|0)){A=(c[825]|0)+o|0;c[825]=A;c[828]=n;c[n+4>>2]=A|1;if((n|0)!=(c[827]|0)){return}c[827]=0;c[824]=0;return}if((f|0)==(c[827]|0)){A=(c[824]|0)+o|0;c[824]=A;c[827]=n;c[n+4>>2]=A|1;c[n+A>>2]=A;return}A=(z&-8)+o|0;s=z>>>3;L3691:do{if(z>>>0<256){g=c[d+(b+8)>>2]|0;t=c[d+(b+12)>>2]|0;h=3328+(s<<1<<2)|0;do{if((g|0)!=(h|0)){if(g>>>0<a>>>0){ax()}if((c[g+12>>2]|0)==(f|0)){break}ax()}}while(0);if((t|0)==(g|0)){c[822]=c[822]&~(1<<s);break}do{if((t|0)==(h|0)){B=t+8|0}else{if(t>>>0<a>>>0){ax()}m=t+8|0;if((c[m>>2]|0)==(f|0)){B=m;break}ax()}}while(0);c[g+12>>2]=t;c[B>>2]=g}else{h=e;m=c[d+(b+24)>>2]|0;l=c[d+(b+12)>>2]|0;do{if((l|0)==(h|0)){i=d+(b+20)|0;p=c[i>>2]|0;if((p|0)==0){q=d+(b+16)|0;v=c[q>>2]|0;if((v|0)==0){C=0;break}else{D=v;E=q}}else{D=p;E=i}while(1){i=D+20|0;p=c[i>>2]|0;if((p|0)!=0){D=p;E=i;continue}i=D+16|0;p=c[i>>2]|0;if((p|0)==0){break}else{D=p;E=i}}if(E>>>0<a>>>0){ax()}else{c[E>>2]=0;C=D;break}}else{i=c[d+(b+8)>>2]|0;if(i>>>0<a>>>0){ax()}p=i+12|0;if((c[p>>2]|0)!=(h|0)){ax()}q=l+8|0;if((c[q>>2]|0)==(h|0)){c[p>>2]=l;c[q>>2]=i;C=l;break}else{ax()}}}while(0);if((m|0)==0){break}l=d+(b+28)|0;g=3592+(c[l>>2]<<2)|0;do{if((h|0)==(c[g>>2]|0)){c[g>>2]=C;if((C|0)!=0){break}c[823]=c[823]&~(1<<c[l>>2]);break L3691}else{if(m>>>0<(c[826]|0)>>>0){ax()}t=m+16|0;if((c[t>>2]|0)==(h|0)){c[t>>2]=C}else{c[m+20>>2]=C}if((C|0)==0){break L3691}}}while(0);if(C>>>0<(c[826]|0)>>>0){ax()}c[C+24>>2]=m;h=c[d+(b+16)>>2]|0;do{if((h|0)!=0){if(h>>>0<(c[826]|0)>>>0){ax()}else{c[C+16>>2]=h;c[h+24>>2]=C;break}}}while(0);h=c[d+(b+20)>>2]|0;if((h|0)==0){break}if(h>>>0<(c[826]|0)>>>0){ax()}else{c[C+20>>2]=h;c[h+24>>2]=C;break}}}while(0);c[n+4>>2]=A|1;c[n+A>>2]=A;if((n|0)!=(c[827]|0)){F=A;break}c[824]=A;return}else{c[y>>2]=z&-2;c[n+4>>2]=o|1;c[n+o>>2]=o;F=o}}while(0);o=F>>>3;if(F>>>0<256){z=o<<1;y=3328+(z<<2)|0;C=c[822]|0;b=1<<o;do{if((C&b|0)==0){c[822]=C|b;G=y;H=3328+(z+2<<2)|0}else{o=3328+(z+2<<2)|0;d=c[o>>2]|0;if(d>>>0>=(c[826]|0)>>>0){G=d;H=o;break}ax()}}while(0);c[H>>2]=n;c[G+12>>2]=n;c[n+8>>2]=G;c[n+12>>2]=y;return}y=n;G=F>>>8;do{if((G|0)==0){I=0}else{if(F>>>0>16777215){I=31;break}H=(G+1048320|0)>>>16&8;z=G<<H;b=(z+520192|0)>>>16&4;C=z<<b;z=(C+245760|0)>>>16&2;o=14-(b|H|z)+(C<<z>>>15)|0;I=F>>>((o+7|0)>>>0)&1|o<<1}}while(0);G=3592+(I<<2)|0;c[n+28>>2]=I;c[n+20>>2]=0;c[n+16>>2]=0;o=c[823]|0;z=1<<I;if((o&z|0)==0){c[823]=o|z;c[G>>2]=y;c[n+24>>2]=G;c[n+12>>2]=n;c[n+8>>2]=n;return}if((I|0)==31){J=0}else{J=25-(I>>>1)|0}I=F<<J;J=c[G>>2]|0;while(1){if((c[J+4>>2]&-8|0)==(F|0)){break}K=J+16+(I>>>31<<2)|0;G=c[K>>2]|0;if((G|0)==0){L=2900;break}else{I=I<<1;J=G}}if((L|0)==2900){if(K>>>0<(c[826]|0)>>>0){ax()}c[K>>2]=y;c[n+24>>2]=J;c[n+12>>2]=n;c[n+8>>2]=n;return}K=J+8|0;L=c[K>>2]|0;I=c[826]|0;if(J>>>0<I>>>0){ax()}if(L>>>0<I>>>0){ax()}c[L+12>>2]=y;c[K>>2]=y;c[n+8>>2]=L;c[n+12>>2]=J;c[n+24>>2]=0;return}function cJ(a){a=a|0;if((a|0)==0){return}cG(a);return}function cK(a){a=a|0;return}function cL(a){a=a|0;return 1056}function cM(b){b=b|0;var c=0;c=b;while(a[c]|0){c=c+1|0}return c-b|0}function cN(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=b|0;if((b&3)==(d&3)){while(b&3){if((e|0)==0)return f|0;a[b]=a[d]|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]=a[d]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function cO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=b+e|0;if((e|0)>=20){d=d&255;e=b&3;g=d|d<<8|d<<16|d<<24;h=f&~3;if(e){e=b+4-e|0;while((b|0)<(e|0)){a[b]=d;b=b+1|0}}while((b|0)<(h|0)){c[b>>2]=g;b=b+4|0}}while((b|0)<(f|0)){a[b]=d;b=b+1|0}}function cP(){aR()}function cQ(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;a6[a&7](b|0,c|0,d|0,e|0,f|0)}function cR(a,b){a=a|0;b=b|0;a7[a&63](b|0)}function cS(a,b,c){a=a|0;b=b|0;c=c|0;a8[a&7](b|0,c|0)}function cT(a,b){a=a|0;b=b|0;return a9[a&3](b|0)|0}function cU(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ba[a&3](b|0,c|0,d|0)|0}function cV(a){a=a|0;bb[a&3]()}function cW(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;bc[a&7](b|0,c|0,d|0,e|0,f|0,g|0)}function cX(a,b,c){a=a|0;b=b|0;c=c|0;return bd[a&7](b|0,c|0)|0}function cY(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;be[a&7](b|0,c|0,d|0,e|0)}function cZ(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ac(0)}function c_(a){a=a|0;ac(1)}function c$(a,b){a=a|0;b=b|0;ac(2)}function c0(a){a=a|0;ac(3);return 0}function c1(a,b,c){a=a|0;b=b|0;c=c|0;ac(4);return 0}function c2(){ac(5)}function c3(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ac(6)}function c4(a,b){a=a|0;b=b|0;ac(7);return 0}function c5(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ac(8)}
// EMSCRIPTEN_END_FUNCS
var a6=[cZ,cZ,cB,cZ,cC,cZ,cZ,cZ];var a7=[c_,c_,bH,c_,bE,c_,cJ,c_,bw,c_,cw,c_,b1,c_,bN,c_,cd,c_,ce,c_,bB,c_,ct,c_,bC,c_,cK,c_,bM,c_,cv,c_,cq,c_,cu,c_,bD,c_,bK,c_,b8,c_,bx,c_,cx,c_,c_,c_,c_,c_,c_,c_,c_,c_,c_,c_,c_,c_,c_,c_,c_,c_,c_,c_];var a8=[c$,c$,bG,c$,bJ,c$,ca,c$];var a9=[c0,c0,cL,c0];var ba=[c1,c1,cy,c1];var bb=[c2,c2,cP,c2];var bc=[c3,c3,cD,c3,cE,c3,c3,c3];var bd=[c4,c4,bF,c4,bI,c4,b9,c4];var be=[c5,c5,cz,c5,cA,c5,c5,c5];return{_strlen:cM,_free:cG,_solve_string:by,_realloc:cH,__GLOBAL__I_a:cb,_memset:cO,__GLOBAL__I_a131:cs,_malloc:cF,_memcpy:cN,runPostSets:bv,stackAlloc:bf,stackSave:bg,stackRestore:bh,setThrew:bi,setTempRet0:bl,setTempRet1:bm,setTempRet2:bn,setTempRet3:bo,setTempRet4:bp,setTempRet5:bq,setTempRet6:br,setTempRet7:bs,setTempRet8:bt,setTempRet9:bu,dynCall_viiiii:cQ,dynCall_vi:cR,dynCall_vii:cS,dynCall_ii:cT,dynCall_iiii:cU,dynCall_v:cV,dynCall_viiiiii:cW,dynCall_iii:cX,dynCall_viiii:cY}
// EMSCRIPTEN_END_ASM
})({Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array},{abort:E,assert:y,asmPrintInt:function(a,b){t.print("int "+a+","+b)},asmPrintFloat:function(a,b){t.print("float "+a+","+b)},min:Da,invoke_viiiii:function(a,b,c,d,f,g){try{t.dynCall_viiiii(a,b,c,d,f,g)}catch(h){"number"!==typeof h&&"longjmp"!==h&&e(h),$.setThrew(1,0)}},
invoke_vi:function(a,b){try{t.dynCall_vi(a,b)}catch(c){"number"!==typeof c&&"longjmp"!==c&&e(c),$.setThrew(1,0)}},invoke_vii:function(a,b,c){try{t.dynCall_vii(a,b,c)}catch(d){"number"!==typeof d&&"longjmp"!==d&&e(d),$.setThrew(1,0)}},invoke_ii:function(a,b){try{return t.dynCall_ii(a,b)}catch(c){"number"!==typeof c&&"longjmp"!==c&&e(c),$.setThrew(1,0)}},invoke_iiii:function(a,b,c,d){try{return t.dynCall_iiii(a,b,c,d)}catch(f){"number"!==typeof f&&"longjmp"!==f&&e(f),$.setThrew(1,0)}},invoke_v:function(a){try{t.dynCall_v(a)}catch(b){"number"!==
typeof b&&"longjmp"!==b&&e(b),$.setThrew(1,0)}},invoke_viiiiii:function(a,b,c,d,f,g,h){try{t.dynCall_viiiiii(a,b,c,d,f,g,h)}catch(i){"number"!==typeof i&&"longjmp"!==i&&e(i),$.setThrew(1,0)}},invoke_iii:function(a,b,c){try{return t.dynCall_iii(a,b,c)}catch(d){"number"!==typeof d&&"longjmp"!==d&&e(d),$.setThrew(1,0)}},invoke_viiii:function(a,b,c,d,f){try{t.dynCall_viiii(a,b,c,d,f)}catch(g){"number"!==typeof g&&"longjmp"!==g&&e(g),$.setThrew(1,0)}},_strncmp:vc,_llvm_lifetime_end:r(),_llvm_uadd_with_overflow_i32:function(a,
b){a>>>=0;b>>>=0;return($.setTempRet0(4294967295<a+b),a+b>>>0)|0},___cxa_call_unexpected:function(a){t.T("Unexpected exception thrown, this is not properly supported - aborting");ua=l;e(a)},_snprintf:function(a,b,c,d){c=oc(c,d);d=b===j?c.length:Math.min(c.length,Math.max(b-1,0));if(0>a)var a=-a,f=Ka(d+1),a=J[a>>2]=f;for(f=0;f<d;f++)I[a+f|0]=c[f];if(d<b||b===j)I[a+f|0]=0;return c.length},___cxa_throw:uc,_atexit:function(a,b){Ya.unshift({D:a,ha:b})},_abort:function(){t.abort()},_fprintf:pc,_llvm_eh_exception:Z,
_printf:function(a,b){return pc(J[Eb>>2],a,b)},_fflush:r(),__reallyNegative:nc,_strtol:function(a,b,c){return xc(a,b,c,-2147483648,2147483647,32)},_fputc:zc,_sysconf:function(a){switch(a){case 30:return 4096;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 79:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;
case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;
case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1E3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return 1}R(Q.u);return-1},_puts:function(a){var b=J[Eb>>2],a=yc(a,b);return 0>a?a:0>
zc(10,b)?-1:a+1},___setErrNo:R,_fwrite:lc,_send:function(a,b,c){return!Y.zb(a)?(R(Q.ea),-1):kc(a,b,c)},_write:kc,_fputs:yc,_exit:function(a){qc(a)},_time:function(a){var b=Math.floor(Date.now()/1E3);a&&(J[a>>2]=b);return b},___cxa_find_matching_catch:function(a,b){-1==a&&(a=J[Z.L>>2]);-1==b&&(b=J[Z.L+4>>2]);var c=Array.prototype.slice.call(arguments,2);0!=b&&!sc(b)&&0==J[J[b>>2]-8>>2]&&(a=J[a>>2]);for(var d=0;d<c.length;d++)if(tc(c[d],b,a))return($.setTempRet0(c[d]),a)|0;return($.setTempRet0(b),a)|
0},___cxa_allocate_exception:function(a){return Ka(a)},_isspace:wc,___cxa_pure_virtual:function(){ua=l;e("Pure virtual function called!")},___cxa_is_number_type:sc,___cxa_guard_release:r(),__formatString:oc,___cxa_does_inherit:tc,___cxa_guard_acquire:function(a){return!I[a]?I[a]=1:0},__ZSt18uncaught_exceptionv:rc,_pwrite:function(a,b,c,d){a=V[a];if(!a)return R(Q.ea),-1;try{return dc(a,I,b,c,d)}catch(f){return Kb(f),-1}},_llvm_pow_f64:eb,_sbrk:Cc,___errno_location:function(){return rb},___gxx_personality_v0:r(),
_llvm_lifetime_start:r(),__parseInt:xc,___resumeException:function(a){0==J[Z.L>>2]&&(J[Z.L>>2]=a);e(a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.")},__exit:qc,_strcmp:function(a,b){return vc(a,b,ra)},STACKTOP:w,STACK_MAX:Ra,tempDoublePtr:pb,ABORT:ua,NaN:NaN,Infinity:Infinity,__ZTVN10__cxxabiv120__si_class_type_infoE:nb,___dso_handle:j,_stderr:jb,__ZTVN10__cxxabiv117__class_type_infoE:ob},
N),mc=t._strlen=$._strlen;t._free=$._free;t._solve_string=$._solve_string;t._realloc=$._realloc;var lb=t.__GLOBAL__I_a=$.__GLOBAL__I_a,Bc=t._memset=$._memset,mb=t.__GLOBAL__I_a131=$.__GLOBAL__I_a131,Ka=t._malloc=$._malloc,Ac=t._memcpy=$._memcpy,kb=t.runPostSets=$.runPostSets;t.dynCall_viiiii=$.dynCall_viiiii;t.dynCall_vi=$.dynCall_vi;t.dynCall_vii=$.dynCall_vii;t.dynCall_ii=$.dynCall_ii;t.dynCall_iiii=$.dynCall_iiii;t.dynCall_v=$.dynCall_v;t.dynCall_viiiiii=$.dynCall_viiiiii;t.dynCall_iii=$.dynCall_iii;
t.dynCall_viiii=$.dynCall_viiii;oa=function(a){return $.stackAlloc(a)};ha=function(){return $.stackSave()};ia=function(a){$.stackRestore(a)};function Tc(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}Tc.prototype=Error();var Uc,Vc=m,gb=function Wc(){!t.calledRun&&Xc&&Yc();t.calledRun||(gb=Wc)};
t.callMain=t.Td=function(a){function b(){for(var a=0;3>a;a++)d.push(0)}y(0==O,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");y(0==Va.length,"cannot call main when preRun functions remain to be called");a=a||[];ba&&Vc!==m&&t.T("preload time: "+(Date.now()-Vc)+" ms");$a||($a=l,Ta(Wa));var c=a.length+1,d=[L(G("/bin/this.program"),"i8",0)];b();for(var f=0;f<c-1;f+=1)d.push(L(G(a[f]),"i8",0)),b();d.push(0);d=L(d,"i32",0);Uc=w;try{var g=t._main(c,d,0);t.noExitRuntime||Zc(g)}catch(h){h instanceof
Tc||("SimulateInfiniteLoop"==h?t.noExitRuntime=l:(h&&("object"===typeof h&&h.stack)&&t.T("exception thrown: "+[h,h.stack]),e(h)))}finally{}};
function Yc(a){function b(){$a||($a=l,Ta(Wa));Ta(Xa);t.calledRun=l;t._main&&Xc&&t.callMain(a);if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)bb(t.postRun.shift());Ta(Za)}a=a||t.arguments;Vc===m&&(Vc=Date.now());if(0<O)t.T("run() called, but dependencies remain, so not running");else{if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)ab(t.preRun.shift());Ta(Va);0<O||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},
1);ua||b()},1)):b())}}t.run=t.me=Yc;function Zc(a){ua=l;w=Uc;Ta(Ya);e(new Tc(a))}t.exit=t.Xd=Zc;function E(a){a&&(t.print(a),t.T(a));ua=l;e("abort() at "+Ma())}t.abort=t.abort=E;if(t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();var Xc=l;t.noInitialRun&&(Xc=n);Yc();