var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if(!ret&&filename!=nodePath["resolve"](filename)){filename=path.join(__dirname,"..","src",filename);ret=nodeFS["readFileSync"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){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:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,arguments)}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=DYNAMICTOP;DYNAMICTOP=DYNAMICTOP+size|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};var sourceRegex=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type==="number"}));var numericRet=returnType!=="string";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return"$"+i}));var funcstr="(function("+argNames.join(",")+") {";var nargs=argTypes.length;if(!numericArgs){funcstr+="var stack = "+JSsource["stackSave"].body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type==="number")continue;var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";";funcstr+=convertCode.body+";";funcstr+=arg+"="+convertCode.returnValue+";"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}if(!numericArgs){funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["ccall"]=ccall;Module["cwrap"]=cwrap;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(typeof _sbrk!=="undefined"&&!_sbrk.called||!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}Module["getMemory"]=getMemory;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"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":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a<i;a++)pre+=" ";Module.print(pre+"^")}function parseNested(){i++;if(func[i]==="K")i++;var parts=[];while(func[i]!=="E"){if(func[i]==="S"){i++;var next=func.indexOf("_",i);var num=func.substring(i,next)||0;parts.push(subs[num]||"?");i=next+1;continue}if(func[i]==="C"){parts.push(parts[parts.length-1]);i+=2;continue}var size=parseInt(func.substr(i));var pre=size.toString().length;if(!size||!pre){i--;break}var curr=func.substr(i+pre,size);parts.push(curr);subs.push(curr);i+=pre+size}i++;return parts}function parse(rawList,limit,allowVoid){limit=limit||Infinity;var ret="",list=[];function flushList(){return"("+list.join(", ")+")"}var name;if(func[i]==="N"){name=parseNested().join("::");limit--;if(limit===0)return rawList?[name]:name}else{if(func[i]==="K"||first&&func[i]==="L")i++;var size=parseInt(func.substr(i));if(size){var pre=size.toString().length;name=func.substr(i+pre,size);i+=pre+size}}first=false;if(func[i]==="I"){i++;var iList=parse(true);var iRet=parse(true,1,true);ret+=iRet[0]+" "+name+"<"+iList.join(", ")+">"}else{ret=name}paramLoop:while(i<func.length&&limit-->0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value "+TOTAL_MEMORY+", (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||8e7;var totalMemory=64*1024;while(totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK){if(totalMemory<16*1024*1024){totalMemory*=2}else{totalMemory+=16*1024*1024}}if(totalMemory!==TOTAL_MEMORY){TOTAL_MEMORY=totalMemory}assert(typeof Int32Array!=="undefined"&&typeof Float64Array!=="undefined"&&!!(new Int32Array(1))["subarray"]&&!!(new Int32Array(1))["set"],"JS engine does not provide full typed array support");var buffer;buffer=new ArrayBuffer(TOTAL_MEMORY);HEAP8=new Int8Array(buffer);HEAP16=new Int16Array(buffer);HEAP32=new Int32Array(buffer);HEAPU8=new Uint8Array(buffer);HEAPU16=new Uint16Array(buffer);HEAPU32=new Uint32Array(buffer);HEAPF32=new Float32Array(buffer);HEAPF64=new Float64Array(buffer);HEAP32[0]=255;assert(HEAPU8[0]===255&&HEAPU8[3]===0,"Typed arrays 2 must be run on a little-endian system");Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i<array.length){var chr=array[i];HEAP8[buffer+i>>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i<array.length;i++){HEAP8[buffer++>>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<<bits-1)+value:Math.pow(2,bits)+value}function reSign(value,bits,ignore){if(value<=0){return value}var half=bits<=32?Math.abs(1<<bits-1):Math.pow(2,bits-1);if(value>=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+646944;__ATINIT__.push();memoryInitializer="basis.js.mem";var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;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 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 79:return 0;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:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&Module["___cxa_can_catch"](typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}Module["_memset"]=_memset;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}Module["_bitshift64Lshr"]=_bitshift64Lshr;Module["_bitshift64Shl"]=_bitshift64Shl;function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function _abort(){Module["abort"]()}function ___lock(){}function ___unlock(){}var ERRNO_MESSAGES={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"};var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")})};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}for(var i=0;i<length;i++){try{stream.tty.ops.put_char(stream.tty,buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})},default_tty_ops:{get_char:(function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null);if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents}),getFileDataAsTypedArray:(function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)}),expandFileStorage:(function(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity)node.contents.push(0)}),resizeFileStorage:(function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize}),node_ops:{getattr:(function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}}),lookup:(function(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT]}),mknod:(function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)}),rename:(function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir}),unlink:(function(parent,name){delete parent.contents[name]}),rmdir:(function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete parent.contents[name]}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node}),readlink:(function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return node.link})},stream_ops:{read:(function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size}),write:(function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}),allocate:(function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0})}};var IDBFS={dbs:{},indexedDB:(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:(function(mount){return MEMFS.mount.apply(null,arguments)}),syncfs:(function(mount,populate,callback){IDBFS.getLocalSet(mount,(function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,(function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)}))}))}),getDB:(function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}req.onupgradeneeded=(function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),getLocalSet:(function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return(function(p){return PATH.join2(root,p)})}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})}),getRemoteSet:(function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,(function(err,db){if(err)return callback(err);var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=(function(e){callback(this.error);e.preventDefault()});var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=(function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()})}))}),loadLocalEntry:(function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}}),storeLocalEntry:(function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{encoding:"binary",canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)}),removeLocalEntry:(function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)}),loadRemoteEntry:(function(store,path,callback){var req=store.get(path);req.onsuccess=(function(event){callback(null,event.target.result)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),reconcile:(function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach((function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~32768;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i<res;i++){buffer[offset+i]=nbuffer[i]}}return res}),write:(function(stream,buffer,offset,length,position){var nbuffer=new Buffer(buffer.subarray(offset,offset+length));var res;try{res=fs.writeSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}return res}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,curr,WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],(function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)}));(mount.opts["blobs"]||[]).forEach((function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])}));(mount.opts["packages"]||[]).forEach((function(pack){pack["metadata"].files.forEach((function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))}))}));return root}),createNode:(function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node}),node_ops:{getattr:(function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}}),lookup:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}),mknod:(function(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rename:(function(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),unlink:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rmdir:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readdir:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),symlink:(function(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readlink:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)})},stream_ops:{read:(function(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var _stdin=allocate(1,"i32*",ALLOC_STATIC);var _stdout=allocate(1,"i32*",ALLOC_STATIC);var _stderr=allocate(1,"i32*",ALLOC_STATIC);var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"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},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if((flags&2097155)!==0||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}var mounts=FS.getMounts(FS.root.mount);var completed=0;function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=mounts.length){callback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"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)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}}),getMode:(function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}),joinPath:(function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path}),absolutePath:(function(relative,base){return PATH.resolve(base,relative)}),standardizePath:(function(path){return PATH.normalize(path)}),findObject:(function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}}),analyzePath:(function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret}),createFolder:(function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)}),createPath:(function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current}),createFile:(function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)}),createDataFile:(function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node}),createDevice:(function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:(function(stream){stream.seekable=false}),close:(function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}}),read:(function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})});return FS.mkdev(path,mode,dev)}),createLink:(function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)}),forceLoadFile:(function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new 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.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(ERRNO_CODES.EIO);return success}),createLazyFile:(function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperty(lazyArray,"length",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})});Object.defineProperty(lazyArray,"chunkSize",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperty(node,"usedBytes",{get:(function(){return this.contents.length})});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node}),createPreloadedFile:(function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach((function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,(function(){if(onerror)onerror();removeRunDependency(dep)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,(function(byteArray){processData(byteArray)}),onerror)}else{processData(url)}}),indexedDB:(function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB}),DB_NAME:(function(){return"EM_FS_"+window.location.pathname}),DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror}),loadFilesFromDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror})};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:(function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path}),doStat:(function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret}),doWritev:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){setTimeout(Browser.mainLoop.runner,value)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(!window["setImmediate"]){var setImmediates=[];var emscriptenMainLoopMessageId="__emcc";function Browser_setImmediate_messageHandler(event){if(event.source===window&&event.data===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}}window.addEventListener("message",Browser_setImmediate_messageHandler,true);window["setImmediate"]=function Browser_emulated_setImmediate(func){setImmediates.push(func);window.postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){window["setImmediate"](Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter((function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}}));if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:(function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++}),resume:(function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining<expected){Module["setStatus"](message+" ("+(expected-remaining)+"/"+expected+")")}else{Module["setStatus"](message)}}else{Module["setStatus"]("")}}}),runIter:(function(func){if(ABORT)return;if(Module["preMainLoop"]){var preRet=Module["preMainLoop"]();if(preRet===false){return}}try{func()}catch(e){if(e instanceof ExitStatus){return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}if(Module["postMainLoop"])Module["postMainLoop"]()})},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:(function(){if(!Module["preloadPlugins"])Module["preloadPlugins"]=[];if(Browser.initted)return;Browser.initted=true;try{new Blob;Browser.hasBlobConstructor=true}catch(e){Browser.hasBlobConstructor=false;console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:!Browser.hasBlobConstructor?console.log("warning: no BlobBuilder"):null;Browser.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:undefined;if(!Module.noImageDecoding&&typeof Browser.URLObject==="undefined"){console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");Module.noImageDecoding=true}var imagePlugin={};imagePlugin["canHandle"]=function imagePlugin_canHandle(name){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(name)};imagePlugin["handle"]=function imagePlugin_handle(byteArray,name,onload,onerror){var b=null;if(Browser.hasBlobConstructor){try{b=new Blob([byteArray],{type:Browser.getMimetype(name)});if(b.size!==byteArray.length){b=new Blob([(new Uint8Array(byteArray)).buffer],{type:Browser.getMimetype(name)})}}catch(e){Runtime.warnOnce("Blob constructor present but fails: "+e+"; falling back to blob builder")}}if(!b){var bb=new Browser.BlobBuilder;bb.append((new Uint8Array(byteArray)).buffer);b=bb.getBlob()}var url=Browser.URLObject.createObjectURL(b);var img=new Image;img.onload=function img_onload(){assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);Module["preloadedImages"][name]=canvas;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=function img_onerror(event){console.log("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["preloadPlugins"].push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;Module["preloadedAudios"][name]=audio;if(onload)onload(byteArray)}function fail(){if(done)return;done=true;Module["preloadedAudios"][name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",(function(){finish(audio)}),false);audio.onerror=function audio_onerror(event){if(done)return;console.log("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i<data.length;i++){leftchar=leftchar<<8|data[i];leftbits+=8;while(leftbits>=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),xhrLoad:(function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h<Module["forcedAspectRatio"]){w=Math.round(h*Module["forcedAspectRatio"])}else{h=Math.round(w/Module["forcedAspectRatio"])}}if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvas.parentNode&&typeof screen!="undefined"){var factor=Math.min(screen.width/w,screen.height/h);w=Math.round(w*factor);h=Math.round(h*factor)}if(Browser.resizeCanvas){if(canvas.width!=w)canvas.width=w;if(canvas.height!=h)canvas.height=h;if(typeof canvas.style!="undefined"){canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}else{if(canvas.width!=wNative)canvas.width=wNative;if(canvas.height!=hNative)canvas.height=hNative;if(typeof canvas.style!="undefined"){if(w!=wNative||h!=hNative){canvas.style.setProperty("width",w+"px","important");canvas.style.setProperty("height",h+"px","important")}else{canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}}}),wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:(function(){var handle=Browser.nextWgetRequestHandle;Browser.nextWgetRequestHandle++;return handle})};function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function ___cxa_allocate_exception(size){return _malloc(size)}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE<TOTAL_MEMORY,"TOTAL_MEMORY not big enough for stack");function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"invoke_iiii":invoke_iiii,"invoke_viiiii":invoke_viiiii,"invoke_vi":invoke_vi,"invoke_ii":invoke_ii,"invoke_v":invoke_v,"invoke_viiiiii":invoke_viiiiii,"invoke_viiii":invoke_viiii,"_pthread_cleanup_pop":_pthread_cleanup_pop,"___syscall6":___syscall6,"___setErrNo":___setErrNo,"___assert_fail":___assert_fail,"___cxa_allocate_exception":___cxa_allocate_exception,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"_emscripten_set_main_loop_timing":_emscripten_set_main_loop_timing,"_sbrk":_sbrk,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___resumeException":___resumeException,"___cxa_find_matching_catch":___cxa_find_matching_catch,"_sysconf":_sysconf,"_pthread_self":_pthread_self,"___syscall54":___syscall54,"___unlock":___unlock,"_emscripten_set_main_loop":_emscripten_set_main_loop,"___cxa_throw":___cxa_throw,"___lock":___lock,"_abort":_abort,"_pthread_cleanup_push":_pthread_cleanup_push,"_time":_time,"___syscall140":___syscall140,"___syscall146":___syscall146,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT};// EMSCRIPTEN_START_ASM
var asm=(function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=0;var n=0;var o=0;var p=0;var q=global.NaN,r=global.Infinity;var s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0;var B=0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=global.Math.floor;var M=global.Math.abs;var N=global.Math.sqrt;var O=global.Math.pow;var P=global.Math.cos;var Q=global.Math.sin;var R=global.Math.tan;var S=global.Math.acos;var T=global.Math.asin;var U=global.Math.atan;var V=global.Math.atan2;var W=global.Math.exp;var X=global.Math.log;var Y=global.Math.ceil;var Z=global.Math.imul;var _=global.Math.min;var $=global.Math.clz32;var aa=env.abort;var ba=env.assert;var ca=env.invoke_iiii;var da=env.invoke_viiiii;var ea=env.invoke_vi;var fa=env.invoke_ii;var ga=env.invoke_v;var ha=env.invoke_viiiiii;var ia=env.invoke_viiii;var ja=env._pthread_cleanup_pop;var ka=env.___syscall6;var la=env.___setErrNo;var ma=env.___assert_fail;var na=env.___cxa_allocate_exception;var oa=env.__ZSt18uncaught_exceptionv;var pa=env._emscripten_set_main_loop_timing;var qa=env._sbrk;var ra=env._emscripten_memcpy_big;var sa=env.___resumeException;var ta=env.___cxa_find_matching_catch;var ua=env._sysconf;var va=env._pthread_self;var wa=env.___syscall54;var xa=env.___unlock;var ya=env._emscripten_set_main_loop;var za=env.___cxa_throw;var Aa=env.___lock;var Ba=env._abort;var Ca=env._pthread_cleanup_push;var Da=env._time;var Ea=env.___syscall140;var Fa=env.___syscall146;var Ga=0.0;
// EMSCRIPTEN_START_FUNCS
function Oa(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function Pa(){return i|0}function Qa(a){a=a|0;i=a}function Ra(a,b){a=a|0;b=b|0;i=a;j=b}function Sa(a,b){a=a|0;b=b|0;if(!m){m=a;n=b}}function Ta(b){b=b|0;a[k>>0]=a[b>>0];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 Ua(b){b=b|0;a[k>>0]=a[b>>0];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 Va(a){a=a|0;B=a}function Wa(){return B|0}function Xa(){return c[123158]|0}function Ya(a){a=a|0;c[123158]=a;return}function Za(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;f=b+4|0;g=c[f>>2]|0;h=c[b>>2]|0;i=g-h>>4;if(i>>>0>=d>>>0){if(i>>>0>d>>>0?(j=h+(d<<4)|0,(g|0)!=(j|0)):0)c[f>>2]=g+(~((0-j+(g+-16)|0)>>>4)<<4)}else Db(b,d-i|0);if(!d)return;else k=0;do{i=c[b>>2]|0;g=c[e+(k<<2)>>2]|0;a[i+(k<<4)>>0]=g&3;a[i+(k<<4)+1>>0]=g>>>2&3;a[i+(k<<4)+2>>0]=g>>>4&3;a[i+(k<<4)+3>>0]=g>>>6&3;a[i+(k<<4)+4>>0]=g>>>8&3;a[i+(k<<4)+5>>0]=g>>>10&3;a[i+(k<<4)+6>>0]=g>>>12&3;a[i+(k<<4)+7>>0]=g>>>14&3;a[i+(k<<4)+8>>0]=g>>>16&3;a[i+(k<<4)+9>>0]=g>>>18&3;a[i+(k<<4)+10>>0]=g>>>20&3;a[i+(k<<4)+11>>0]=g>>>22&3;a[i+(k<<4)+12>>0]=g>>>24&3;a[i+(k<<4)+13>>0]=g>>>26&3;a[i+(k<<4)+14>>0]=g>>>28&3;a[i+(k<<4)+15>>0]=g>>>30;k=k+1|0}while((k|0)!=(d|0));return}function _a(){var b=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;b=i;i=i+96|0;e=b+64|0;f=b;if(!(a[641766]|0))g=0;else{i=b;return}do{a[e+g>>0]=g<<3|g>>>2;g=g+1|0}while((g|0)!=32);h=0;do{g=641767+(h<<1)|0;j=641767+(h<<1)+1|0;k=0;l=256;while(1){m=k&255;n=d[e+k>>0]|0;o=0;p=l;while(1){q=d[e+o>>0]|0;r=((((q<<1)+n|0)>>>0)/3|0)-h|0;s=q-n|0;q=(((s|0)>-1?s:0-s|0)>>5)+((r|0)>-1?r:0-r|0)|0;if((q|0)<(p|0)){a[g>>0]=o;a[j>>0]=m;t=q}else t=p;o=o+1|0;if((o|0)==32){u=t;break}else p=t}p=k+1|0;if((p|0)==32)break;else{k=p;l=u}}h=h+1|0}while((h|0)!=256);v=0;do{h=642279+(v<<1)|0;u=642279+(v<<1)+1|0;t=0;l=256;while(1){k=t&255;j=0;g=l;while(1){p=(d[e+j>>0]|0)-v|0;o=(p|0)>-1?p:0-p|0;if((o|0)<(g|0)){a[h>>0]=j;a[u>>0]=k;w=o}else w=g;j=j+1|0;if((j|0)==32){x=w;break}else g=w}g=t+1|0;if((g|0)==32)break;else{t=g;l=x}}v=v+1|0}while((v|0)!=256);v=0;do{a[f+v>>0]=v<<2|v>>>4;v=v+1|0}while((v|0)!=64);y=0;do{v=642791+(y<<1)|0;x=642791+(y<<1)+1|0;w=0;e=256;while(1){l=w&255;t=d[f+w>>0]|0;u=0;h=e;while(1){g=d[f+u>>0]|0;j=((((g<<1)+t|0)>>>0)/3|0)-y|0;k=g-t|0;g=(((k|0)>-1?k:0-k|0)>>5)+((j|0)>-1?j:0-j|0)|0;if((g|0)<(h|0)){a[v>>0]=u;a[x>>0]=l;z=g}else z=h;u=u+1|0;if((u|0)==64){A=z;break}else h=z}h=w+1|0;if((h|0)==64)break;else{w=h;e=A}}y=y+1|0}while((y|0)!=256);B=0;do{y=643303+(B<<1)|0;A=643303+(B<<1)+1|0;z=0;e=256;while(1){w=z&255;x=0;v=e;while(1){h=(d[f+x>>0]|0)-B|0;u=(h|0)>-1?h:0-h|0;if((u|0)<(v|0)){a[y>>0]=x;a[A>>0]=w;C=u}else C=v;x=x+1|0;if((x|0)==64){D=C;break}else v=C}v=z+1|0;if((v|0)==64)break;else{z=v;e=D}}B=B+1|0}while((B|0)!=256);c[127259]=0;c[127263]=1;c[127258]=2;c[127262]=3;c[127267]=4;c[127257]=5;B=0;do{D=d[643823+(B<<2)+2>>0]|0;C=a[643819+D>>0]|0;a[643863+(B<<2)>>0]=a[643815+D>>0]|0;a[643903+(B<<2)>>0]=C;C=d[643823+(B<<2)+3>>0]|0;D=a[643819+C>>0]|0;a[643863+(B<<2)+1>>0]=a[643815+C>>0]|0;a[643903+(B<<2)+1>>0]=D;D=d[643823+(B<<2)+1>>0]|0;C=a[643819+D>>0]|0;a[643863+(B<<2)+2>>0]=a[643815+D>>0]|0;a[643903+(B<<2)+2>>0]=C;C=d[643823+(B<<2)>>0]|0;D=a[643819+C>>0]|0;a[643863+(B<<2)+3>>0]=a[643815+C>>0]|0;a[643903+(B<<2)+3>>0]=D;B=B+1|0}while((B|0)!=10);c[127272]=0;c[127277]=1;c[127282]=2;c[127287]=3;c[127275]=4;c[127279]=5;c[127274]=6;c[127278]=7;c[127283]=8;c[127273]=9;B=0;do{D=a[643943+(B<<2)+2>>0]|0;a[644135+(B<<2)>>0]=D;a[644327+(B<<2)>>0]=15-(D&255);D=a[643943+(B<<2)+3>>0]|0;a[644135+(B<<2)+1>>0]=D;a[644327+(B<<2)+1>>0]=15-(D&255);D=a[643943+(B<<2)+1>>0]|0;a[644135+(B<<2)+2>>0]=D;a[644327+(B<<2)+2>>0]=15-(D&255);D=a[643943+(B<<2)>>0]|0;a[644135+(B<<2)+3>>0]=D;a[644327+(B<<2)+3>>0]=15-(D&255);B=B+1|0}while((B|0)!=48);a[641766]=1;i=b;return}function $a(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=b;Mc(a+28|0,0,152)|0;c[a+180>>2]=0;c[a+184>>2]=0;c[a+188>>2]=0;c[a+192>>2]=0;c[a+196>>2]=0;c[a+200>>2]=0;c[a+204>>2]=0;c[a+208>>2]=0;c[a+212>>2]=0;c[a+216>>2]=0;c[a+220>>2]=0;c[a+224>>2]=0;c[a+228>>2]=0;c[a+232>>2]=0;c[a+236>>2]=0;c[a+240>>2]=0;c[a+244>>2]=0;c[a+248>>2]=0;c[a+252>>2]=0;c[a+256>>2]=0;c[a+260>>2]=0;c[a+264>>2]=0;c[a+268>>2]=0;c[a+272>>2]=0;c[a+276>>2]=0;c[a+280>>2]=0;c[a+284>>2]=0;c[a+288>>2]=0;c[a+292>>2]=0;c[a+296>>2]=0;c[a+300>>2]=0;c[a+304>>2]=0;c[a+308>>2]=0;c[a+312>>2]=0;c[a+316>>2]=0;c[a+320>>2]=0;c[a+324>>2]=0;c[a+328>>2]=0;c[a+332>>2]=0;c[a+336>>2]=0;c[a+340>>2]=0;c[a+344>>2]=0;c[a+348>>2]=0;c[a+352>>2]=0;c[a+356>>2]=0;c[a+360>>2]=0;c[a+364>>2]=0;c[a+368>>2]=0;c[a+372>>2]=0;c[a+376>>2]=0;c[a+380>>2]=0;c[a+384>>2]=0;c[a+388>>2]=0;c[a+392>>2]=0;c[a+396>>2]=0;c[a+400>>2]=0;c[a+404>>2]=0;c[a+408>>2]=0;c[a+412>>2]=0;c[a+416>>2]=0;c[a+420>>2]=0;c[a+424>>2]=0;c[a+428>>2]=0;c[a+432>>2]=0;c[a+436>>2]=0;c[a+440>>2]=0;c[a+444>>2]=0;c[a+448>>2]=0;c[a+452>>2]=0;c[a+456>>2]=0;c[a+460>>2]=0;c[a+464>>2]=0;c[a+468>>2]=0;c[a+472>>2]=0;c[a+476>>2]=0;c[a+480>>2]=0;c[a+484>>2]=0;c[a+488>>2]=0;c[a+492>>2]=0;c[a+496>>2]=0;c[a+500>>2]=0;c[a+504>>2]=0;c[a+508>>2]=0;c[a+512>>2]=0;c[a+516>>2]=0;c[a+520>>2]=0;c[a+524>>2]=0;c[a+528>>2]=0;c[a+532>>2]=0;c[a+536>>2]=0;c[a+540>>2]=0;c[a+544>>2]=0;c[a+548>>2]=0;c[a+552>>2]=0;c[a+556>>2]=0;c[a+560>>2]=0;c[a+564>>2]=0;c[a+568>>2]=0;c[a+572>>2]=0;c[a+576>>2]=0;c[a+580>>2]=0;return}function ab(e,f,g,h,j,k,l){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var 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,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0;m=i;i=i+352|0;n=m+264|0;o=m+224|0;p=m+188|0;q=m+152|0;r=m+116|0;s=m+76|0;t=m+80|0;u=m+40|0;v=m+336|0;w=m+320|0;x=m+4|0;y=m+304|0;z=m+288|0;A=m;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;B=o;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));B=p;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));B=q;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));B=r;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));if((((((((!((g|0)==0&(h|0)!=0)?(c[n>>2]=h,D=n+4|0,c[D>>2]=g,E=n+8|0,c[E>>2]=g,F=n+12|0,c[F>>2]=g+h,h=n+16|0,c[h>>2]=0,g=n+20|0,c[g>>2]=0,bb(n,o)|0):0)?bb(n,p)|0:0)?bb(n,q)|0:0)?bb(n,r)|0:0)?(c[o+4>>2]|0)!=(c[o>>2]|0):0)?(c[p+4>>2]|0)!=(c[p>>2]|0):0)?(c[q+4>>2]|0)!=(c[q>>2]|0):0)?(c[r+4>>2]|0)!=(c[r>>2]|0):0){G=c[g>>2]|0;if(!G){H=c[D>>2]|0;if(H>>>0<(c[F>>2]|0)>>>0){c[D>>2]=H+1;I=d[H>>0]|0}else I=0;H=c[h>>2]|I;c[h>>2]=H;c[g>>2]=8;J=H;K=8}else{J=c[h>>2]|0;K=G}G=J&1;c[h>>2]=J>>>1;c[g>>2]=K+-1;K=(G|0)==0;J=e+4|0;H=c[J>>2]|0;I=c[e>>2]|0;L=H-I>>3;if(L>>>0>=f>>>0){if(L>>>0>f>>>0?(M=I+(f<<3)|0,(H|0)!=(M|0)):0)c[J>>2]=H+(~((H+-8-M|0)>>>3)<<3)}else Eb(e,f-L|0);a[s>>0]=16;a[s+1>>0]=16;a[s+2>>0]=16;a[s+3>>0]=0;if(f){L=r+12|0;M=G<<1^3;G=o+12|0;H=o+24|0;J=p+12|0;I=p+24|0;N=q+12|0;O=q+24|0;P=r+24|0;Q=0;R=0;do{S=c[g>>2]|0;if(S>>>0<16){T=c[F>>2]|0;U=15-S&-8;V=c[D>>2]|0;W=S;while(1){if(V>>>0<T>>>0){X=V+1|0;c[D>>2]=X;Y=X;Z=d[V>>0]|0}else{Y=V;Z=0}X=c[h>>2]|Z<<W;c[h>>2]=X;W=W+8|0;c[g>>2]=W;if(W>>>0>=16){_=X;break}else V=Y}$=S+8+U|0;aa=_}else{$=S;aa=c[h>>2]|0}V=c[(c[L>>2]|0)+((aa&1023)<<2)>>2]|0;if((V|0)>-1){ba=V>>16;ca=V&65535}else{W=c[P>>2]|0;T=10;X=V;while(1){V=T+1|0;da=b[W+((aa>>>T&1)+~X<<1)>>1]|0;ea=da<<16>>16;if(da<<16>>16<0){T=V;X=ea}else{ba=V;ca=ea;break}}}c[h>>2]=aa>>>ba;c[g>>2]=$-ba;R=ca+R&7;a[(c[e>>2]|0)+(Q<<3)+4>>0]=R;X=0;do{T=s+X|0;W=a[T>>0]|0;do if((W&255)>=10){S=c[g>>2]|0;U=S>>>0<16;if((W&255)<22){if(U){ea=c[F>>2]|0;V=15-S&-8;da=c[D>>2]|0;fa=S;while(1){if(da>>>0<ea>>>0){ga=da+1|0;c[D>>2]=ga;ha=ga;ia=d[da>>0]|0}else{ha=da;ia=0}ga=c[h>>2]|ia<<fa;c[h>>2]=ga;fa=fa+8|0;c[g>>2]=fa;if(fa>>>0>=16){ja=ga;break}else da=ha}ka=ja;la=S+8+V|0}else{ka=c[h>>2]|0;la=S}da=c[(c[J>>2]|0)+((ka&1023)<<2)>>2]|0;if((da|0)>-1){ma=da>>16;na=da&65535}else{fa=c[I>>2]|0;ea=10;ga=da;while(1){da=ea+1|0;oa=b[fa+((ka>>>ea&1)+~ga<<1)>>1]|0;pa=oa<<16>>16;if(oa<<16>>16<0){ea=da;ga=pa}else{ma=da;na=pa;break}}}c[h>>2]=ka>>>ma;c[g>>2]=la-ma;qa=na;break}else{if(U){ga=c[F>>2]|0;ea=15-S&-8;fa=c[D>>2]|0;V=S;while(1){if(fa>>>0<ga>>>0){pa=fa+1|0;c[D>>2]=pa;ra=pa;sa=d[fa>>0]|0}else{ra=fa;sa=0}pa=c[h>>2]|sa<<V;c[h>>2]=pa;V=V+8|0;c[g>>2]=V;if(V>>>0>=16){ta=pa;break}else fa=ra}ua=ta;va=S+8+ea|0}else{ua=c[h>>2]|0;va=S}fa=c[(c[N>>2]|0)+((ua&1023)<<2)>>2]|0;if((fa|0)>-1){wa=fa>>16;xa=fa&65535}else{V=c[O>>2]|0;ga=10;U=fa;while(1){fa=ga+1|0;pa=b[V+((ua>>>ga&1)+~U<<1)>>1]|0;da=pa<<16>>16;if(pa<<16>>16<0){ga=fa;U=da}else{wa=fa;xa=da;break}}}c[h>>2]=ua>>>wa;c[g>>2]=va-wa;qa=xa;break}}else{U=c[g>>2]|0;if(U>>>0<16){ga=c[F>>2]|0;V=15-U&-8;S=c[D>>2]|0;ea=U;while(1){if(S>>>0<ga>>>0){da=S+1|0;c[D>>2]=da;ya=da;za=d[S>>0]|0}else{ya=S;za=0}da=c[h>>2]|za<<ea;c[h>>2]=da;ea=ea+8|0;c[g>>2]=ea;if(ea>>>0>=16){Aa=da;break}else S=ya}Ba=Aa;Ca=U+8+V|0}else{Ba=c[h>>2]|0;Ca=U}S=c[(c[G>>2]|0)+((Ba&1023)<<2)>>2]|0;if((S|0)>-1){Da=S>>16;Ea=S&65535}else{ea=c[H>>2]|0;ga=10;da=S;while(1){S=ga+1|0;fa=b[ea+((Ba>>>ga&1)+~da<<1)>>1]|0;pa=fa<<16>>16;if(fa<<16>>16<0){ga=S;da=pa}else{Da=S;Ea=pa;break}}}c[h>>2]=Ba>>>Da;c[g>>2]=Ca-Da;qa=Ea}while(0);da=(W&255)+qa&31;a[(c[e>>2]|0)+(Q<<3)+X>>0]=da;a[T>>0]=da;X=X+1|0}while((X|0)!=(M|0));if(!K){X=(c[e>>2]|0)+(Q<<3)|0;a[X+1>>0]=a[X>>0]|0;X=(c[e>>2]|0)+(Q<<3)|0;a[X+2>>0]=a[X>>0]|0}Q=Q+1|0}while((Q|0)!=(f|0))}f=e+12|0;Q=e+16|0;K=c[Q>>2]|0;M=c[f>>2]|0;qa=(K-M|0)/7|0;if(qa>>>0>=j>>>0){if(qa>>>0>j>>>0?(Ea=M+(j*7|0)|0,(K|0)!=(Ea|0)):0)c[Q>>2]=K+(~(((0-Ea+(K+-7)|0)>>>0)/7|0)*7|0)}else Fb(f,j-qa|0);if(!((k|0)==0&(l|0)!=0)){c[n>>2]=l;c[D>>2]=k;c[E>>2]=k;E=k+l|0;c[F>>2]=E;c[h>>2]=0;c[g>>2]=0;B=t;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));if((l|0)>0){l=k+1|0;c[D>>2]=l;Fa=l;Ga=d[k>>0]|0}else{Fa=k;Ga=0}k=Ga>>>1;c[h>>2]=k;c[g>>2]=7;a:do if(!(Ga&1)){l=Ga>>>2;c[h>>2]=l;c[g>>2]=6;if(!(k&1)){c[h>>2]=Ga>>>3;c[g>>2]=5;if(l&1){if(!j){Ha=240;break}else Ia=0;while(1){qa=0;do{K=c[g>>2]|0;if(K>>>0<8){Ea=c[F>>2]|0;Q=c[D>>2]|0;M=K;while(1){if(Q>>>0<Ea>>>0){Da=Q+1|0;c[D>>2]=Da;Ja=Da;Ka=d[Q>>0]|0}else{Ja=Q;Ka=0}Da=c[h>>2]|Ka<<M;c[h>>2]=Da;Ca=M+8|0;c[g>>2]=Ca;if(M>>>0>4294967287){Q=Ja;M=Ca}else{La=Da;Ma=Ca;break}}}else{La=c[h>>2]|0;Ma=K}c[h>>2]=La>>>8;c[g>>2]=Ma+-8;M=c[f>>2]|0;Q=3-(qa>>>3)|0;Ea=M+(Ia*7|0)+Q|0;Ca=d[644560+(La&3)>>0]|0;Da=~(1<<qa);a[Ea>>0]=(d[Ea>>0]|0)&Da|(Ca&1)<<qa;Ea=Q+-2+(M+(Ia*7|0))|0;a[Ea>>0]=(d[Ea>>0]|0)&Da|Ca>>>1<<qa;Ca=c[f>>2]|0;Da=qa+4|0;Ea=3-(Da>>>3)|0;M=Ca+(Ia*7|0)+Ea|0;Q=d[644560+(La>>>2&3)>>0]|0;Ba=~(1<<Da);a[M>>0]=(d[M>>0]|0)&Ba|(Q&1)<<Da;M=Ea+-2+(Ca+(Ia*7|0))|0;a[M>>0]=(d[M>>0]|0)&Ba|Q>>>1<<Da;Da=c[f>>2]|0;Q=qa+8|0;Ba=3-(Q>>>3)|0;M=Da+(Ia*7|0)+Ba|0;Ca=Q&7;Q=d[644560+(La>>>4&3)>>0]|0;Ea=~(1<<Ca);a[M>>0]=(d[M>>0]|0)&Ea|(Q&1)<<Ca;M=Ba+-2+(Da+(Ia*7|0))|0;a[M>>0]=(d[M>>0]|0)&Ea|Q>>>1<<Ca;Ca=c[f>>2]|0;Q=qa+12|0;Ea=3-(Q>>>3)|0;M=Ca+(Ia*7|0)+Ea|0;Da=Q&7;Q=d[644560+(La>>>6&3)>>0]|0;Ba=~(1<<Da);a[M>>0]=(d[M>>0]|0)&Ba|(Q&1)<<Da;M=Ea+-2+(Ca+(Ia*7|0))|0;a[M>>0]=(d[M>>0]|0)&Ba|Q>>>1<<Da;qa=qa+1|0}while((qa|0)!=4);db((c[f>>2]|0)+(Ia*7|0)|0);Ia=Ia+1|0;if((Ia|0)==(j|0)){Ha=240;break a}}}if(!(bb(n,t)|0)){Na=0;break}if(j>>>0<=1){c[A>>2]=0;if(!j){Ha=240;break}}else{if((c[t+4>>2]|0)==(c[t>>2]|0)){Na=0;break}c[A>>2]=0}qa=t+12|0;T=t+24|0;W=0;while(1){if(!W){Da=0;do{Q=c[g>>2]|0;if(Q>>>0<8){Ba=c[F>>2]|0;M=c[D>>2]|0;Ca=Q;while(1){if(M>>>0<Ba>>>0){Ea=M+1|0;c[D>>2]=Ea;Oa=Ea;Pa=d[M>>0]|0}else{Oa=M;Pa=0}Ea=c[h>>2]|Pa<<Ca;c[h>>2]=Ea;H=Ca+8|0;c[g>>2]=H;if(Ca>>>0>4294967287){M=Oa;Ca=H}else{Qa=Ea;Ra=H;break}}}else{Qa=c[h>>2]|0;Ra=Q}c[h>>2]=Qa>>>8;c[g>>2]=Ra+-8;a[A+Da>>0]=Qa;Ca=c[f>>2]|0;M=3-(Da>>>3)|0;Ba=Ca+M|0;K=d[644560+(Qa&3)>>0]|0;H=~(1<<Da);a[Ba>>0]=(d[Ba>>0]|0)&H|(K&1)<<Da;Ba=Ca+(M+-2)|0;a[Ba>>0]=(d[Ba>>0]|0)&H|K>>>1<<Da;K=c[f>>2]|0;H=Da+4|0;Ba=3-(H>>>3)|0;M=K+Ba|0;Ca=d[644560+(Qa>>>2&3)>>0]|0;Ea=~(1<<H);a[M>>0]=(d[M>>0]|0)&Ea|(Ca&1)<<H;M=K+(Ba+-2)|0;a[M>>0]=(d[M>>0]|0)&Ea|Ca>>>1<<H;H=c[f>>2]|0;Ca=Da+8|0;Ea=3-(Ca>>>3)|0;M=H+Ea|0;Ba=Ca&7;Ca=d[644560+(Qa>>>4&3)>>0]|0;K=~(1<<Ba);a[M>>0]=(d[M>>0]|0)&K|(Ca&1)<<Ba;M=H+(Ea+-2)|0;a[M>>0]=(d[M>>0]|0)&K|Ca>>>1<<Ba;Ba=c[f>>2]|0;Ca=Da+12|0;K=3-(Ca>>>3)|0;M=Ba+K|0;Ea=Ca&7;Ca=d[644560+(Qa>>>6&3)>>0]|0;H=~(1<<Ea);a[M>>0]=(d[M>>0]|0)&H|(Ca&1)<<Ea;M=Ba+(K+-2)|0;a[M>>0]=(d[M>>0]|0)&H|Ca>>>1<<Ea;Da=Da+1|0}while((Da|0)!=4);db(c[f>>2]|0)}else{Da=0;do{Ea=c[g>>2]|0;if(Ea>>>0<16){Ca=c[F>>2]|0;H=15-Ea&-8;M=c[D>>2]|0;K=Ea;while(1){if(M>>>0<Ca>>>0){Ba=M+1|0;c[D>>2]=Ba;Sa=Ba;Ta=d[M>>0]|0}else{Sa=M;Ta=0}Ba=c[h>>2]|Ta<<K;c[h>>2]=Ba;K=K+8|0;c[g>>2]=K;if(K>>>0>=16){Ua=Ba;break}else M=Sa}Va=Ua;Wa=Ea+8+H|0}else{Va=c[h>>2]|0;Wa=Ea}M=c[(c[qa>>2]|0)+((Va&1023)<<2)>>2]|0;if((M|0)>-1){Xa=M>>16;Ya=M&65535}else{K=c[T>>2]|0;Ca=10;Q=M;while(1){M=Ca+1|0;Ba=b[K+((Va>>>Ca&1)+~Q<<1)>>1]|0;G=Ba<<16>>16;if(Ba<<16>>16<0){Ca=M;Q=G}else{Xa=M;Ya=G;break}}}c[h>>2]=Va>>>Xa;c[g>>2]=Wa-Xa;Q=A+Da|0;Ca=(d[Q>>0]|0)^Ya;a[Q>>0]=Ca;Q=c[f>>2]|0;K=3-(Da>>>3)|0;Ea=Q+(W*7|0)+K|0;H=d[644560+(Ca&3)>>0]|0;G=~(1<<Da);a[Ea>>0]=(d[Ea>>0]|0)&G|(H&1)<<Da;Ea=K+-2+(Q+(W*7|0))|0;a[Ea>>0]=(d[Ea>>0]|0)&G|H>>>1<<Da;H=c[f>>2]|0;G=Da+4|0;Ea=3-(G>>>3)|0;Q=H+(W*7|0)+Ea|0;K=d[644560+(Ca>>>2&3)>>0]|0;M=~(1<<G);a[Q>>0]=(d[Q>>0]|0)&M|(K&1)<<G;Q=Ea+-2+(H+(W*7|0))|0;a[Q>>0]=(d[Q>>0]|0)&M|K>>>1<<G;G=c[f>>2]|0;K=Da+8|0;M=3-(K>>>3)|0;Q=G+(W*7|0)+M|0;H=K&7;K=d[644560+(Ca>>>4&3)>>0]|0;Ea=~(1<<H);a[Q>>0]=(d[Q>>0]|0)&Ea|(K&1)<<H;Q=M+-2+(G+(W*7|0))|0;a[Q>>0]=(d[Q>>0]|0)&Ea|K>>>1<<H;H=c[f>>2]|0;K=Da+12|0;Ea=3-(K>>>3)|0;Q=H+(W*7|0)+Ea|0;G=K&7;K=d[644560+(Ca>>>6&3)>>0]|0;Ca=~(1<<G);a[Q>>0]=(d[Q>>0]|0)&Ca|(K&1)<<G;Q=Ea+-2+(H+(W*7|0))|0;a[Q>>0]=(d[Q>>0]|0)&Ca|K>>>1<<G;Da=Da+1|0}while((Da|0)!=4);db((c[f>>2]|0)+(W*7|0)|0)}W=W+1|0;if((W|0)==(j|0)){Ha=240;break a}}}W=l&15;T=Ga>>>6;c[h>>2]=T;c[g>>2]=2;if(Fa>>>0<E>>>0){c[D>>2]=Fa+1;Za=d[Fa>>0]|0}else Za=0;qa=T|Za<<2&12;c[h>>2]=Za>>>2;c[g>>2]=6;B=u;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));do if(bb(n,u)|0){if((c[u+4>>2]|0)==(c[u>>2]|0)){_a=1;break}B=x;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));l=(qa|0)!=0;do if(l){if(!(bb(n,x)|0)){$a=1;break}if((c[x+4>>2]|0)==(c[x>>2]|0))$a=1;else Ha=132}else Ha=132;while(0);b:do if((Ha|0)==132){if(!j){$a=0;break}T=u+12|0;Da=u+24|0;G=(W|0)==0;K=x+12|0;Ca=x+24|0;Q=e+24|0;H=z+12|0;Ea=z+6|0;M=z+5|0;Ba=z+4|0;Aa=z+2|0;ya=z+3|0;za=z+1|0;xa=z+7|0;wa=z+8|0;va=z+9|0;ua=z+10|0;O=z+11|0;N=0;ta=0;ra=0;while(1){if(!ra){sa=c[g>>2]|0;if(sa>>>0<16){na=c[F>>2]|0;ma=15-sa&-8;la=c[D>>2]|0;ka=sa;while(1){if(la>>>0<na>>>0){I=la+1|0;c[D>>2]=I;ab=I;eb=d[la>>0]|0}else{ab=la;eb=0}I=c[h>>2]|eb<<ka;c[h>>2]=I;ka=ka+8|0;c[g>>2]=ka;if(ka>>>0>=16){fb=I;break}else la=ab}gb=fb;hb=sa+8+ma|0}else{gb=c[h>>2]|0;hb=sa}la=c[(c[T>>2]|0)+((gb&1023)<<2)>>2]|0;if((la|0)>-1){ib=la>>16;jb=la&65535}else{ka=c[Da>>2]|0;na=10;I=la;while(1){la=na+1|0;J=b[ka+((gb>>>na&1)+~I<<1)>>1]|0;ja=J<<16>>16;if(J<<16>>16<0){na=la;I=ja}else{ib=la;jb=ja;break}}}c[h>>2]=gb>>>ib;c[g>>2]=hb-ib;kb=jb;lb=8}else{kb=N;lb=ra}ra=lb+-1|0;N=kb>>>1;if(!(kb&1)){I=0;do{na=c[g>>2]|0;if(na>>>0<8){ka=c[F>>2]|0;sa=c[D>>2]|0;ma=na;while(1){if(sa>>>0<ka>>>0){ja=sa+1|0;c[D>>2]=ja;mb=ja;nb=d[sa>>0]|0}else{mb=sa;nb=0}ja=c[h>>2]|nb<<ma;c[h>>2]=ja;la=ma+8|0;c[g>>2]=la;if(ma>>>0>4294967287){sa=mb;ma=la}else{ob=ja;pb=la;break}}}else{ob=c[h>>2]|0;pb=na}c[h>>2]=ob>>>8;c[g>>2]=pb+-8;ma=c[f>>2]|0;sa=3-(I>>>3)|0;ka=ma+(ta*7|0)+sa|0;la=d[644560+(ob&3)>>0]|0;ja=~(1<<I);a[ka>>0]=(d[ka>>0]|0)&ja|(la&1)<<I;ka=sa+-2+(ma+(ta*7|0))|0;a[ka>>0]=(d[ka>>0]|0)&ja|la>>>1<<I;la=c[f>>2]|0;ja=I+4|0;ka=3-(ja>>>3)|0;ma=la+(ta*7|0)+ka|0;sa=d[644560+(ob>>>2&3)>>0]|0;J=~(1<<ja);a[ma>>0]=(d[ma>>0]|0)&J|(sa&1)<<ja;ma=ka+-2+(la+(ta*7|0))|0;a[ma>>0]=(d[ma>>0]|0)&J|sa>>>1<<ja;ja=c[f>>2]|0;sa=I+8|0;J=3-(sa>>>3)|0;ma=ja+(ta*7|0)+J|0;la=sa&7;sa=d[644560+(ob>>>4&3)>>0]|0;ka=~(1<<la);a[ma>>0]=(d[ma>>0]|0)&ka|(sa&1)<<la;ma=J+-2+(ja+(ta*7|0))|0;a[ma>>0]=(d[ma>>0]|0)&ka|sa>>>1<<la;la=c[f>>2]|0;sa=I+12|0;ka=3-(sa>>>3)|0;ma=la+(ta*7|0)+ka|0;ja=sa&7;sa=d[644560+(ob>>>6&3)>>0]|0;J=~(1<<ja);a[ma>>0]=(d[ma>>0]|0)&J|(sa&1)<<ja;ma=ka+-2+(la+(ta*7|0))|0;a[ma>>0]=(d[ma>>0]|0)&J|sa>>>1<<ja;I=I+1|0}while((I|0)!=4)}else{if(G)qb=0;else qb=cb(n,W)|0;if(l){I=c[g>>2]|0;if(I>>>0<16){ja=c[F>>2]|0;sa=15-I&-8;J=c[D>>2]|0;ma=I;while(1){if(J>>>0<ja>>>0){la=J+1|0;c[D>>2]=la;rb=la;sb=d[J>>0]|0}else{rb=J;sb=0}la=c[h>>2]|sb<<ma;c[h>>2]=la;ma=ma+8|0;c[g>>2]=ma;if(ma>>>0>=16){tb=la;break}else J=rb}ub=tb;vb=I+8+sa|0}else{ub=c[h>>2]|0;vb=I}J=c[(c[K>>2]|0)+((ub&1023)<<2)>>2]|0;if((J|0)>-1){xb=J>>16;yb=J&65535}else{ma=c[Ca>>2]|0;ja=10;la=J;while(1){J=ja+1|0;ka=b[ma+((ub>>>ja&1)+~la<<1)>>1]|0;ha=ka<<16>>16;if(ka<<16>>16<0){ja=J;la=ha}else{xb=J;yb=ha;break}}}c[h>>2]=ub>>>xb;c[g>>2]=vb-xb;zb=yb}else zb=0;la=c[Q>>2]|0;ja=c[la>>2]|0;if(qb>>>0>=(c[la+4>>2]|0)-ja>>4>>>0){$a=1;break b}a[H>>0]=zb&3;a[Ea>>0]=zb>>>2&1;a[M>>0]=zb>>>3&1;a[z>>0]=zb>>>4&3;a[Ba>>0]=zb>>>6&1;a[Aa>>0]=zb>>>7&1;a[ya>>0]=zb>>>8&1;a[za>>0]=zb>>>9&1;a[xa>>0]=zb>>>10&1;a[wa>>0]=zb>>>11&1;a[va>>0]=zb>>>12&1;a[ua>>0]=zb>>>13&1;a[O>>0]=zb>>>14&1;wb(y,ja+(qb<<4)|0,z);ja=0;do{la=ja<<2;ma=c[f>>2]|0;I=3-(ja>>>3)|0;sa=ma+(ta*7|0)+I|0;ha=d[644560+(d[y+la>>0]|0)>>0]|0;J=~(1<<ja);a[sa>>0]=(d[sa>>0]|0)&J|(ha&1)<<ja;sa=I+-2+(ma+(ta*7|0))|0;a[sa>>0]=(d[sa>>0]|0)&J|ha>>>1<<ja;ha=c[f>>2]|0;J=ja+4|0;sa=3-(J>>>3)|0;ma=ha+(ta*7|0)+sa|0;I=d[644560+(d[y+(la|1)>>0]|0)>>0]|0;ka=~(1<<J);a[ma>>0]=(d[ma>>0]|0)&ka|(I&1)<<J;ma=sa+-2+(ha+(ta*7|0))|0;a[ma>>0]=(d[ma>>0]|0)&ka|I>>>1<<J;J=c[f>>2]|0;I=ja+8|0;ka=3-(I>>>3)|0;ma=J+(ta*7|0)+ka|0;ha=I&7;I=d[644560+(d[y+(la|2)>>0]|0)>>0]|0;sa=~(1<<ha);a[ma>>0]=(d[ma>>0]|0)&sa|(I&1)<<ha;ma=ka+-2+(J+(ta*7|0))|0;a[ma>>0]=(d[ma>>0]|0)&sa|I>>>1<<ha;ha=c[f>>2]|0;I=ja+12|0;sa=3-(I>>>3)|0;ma=ha+(ta*7|0)+sa|0;J=I&7;I=d[644560+(d[y+(la|3)>>0]|0)>>0]|0;la=~(1<<J);a[ma>>0]=(d[ma>>0]|0)&la|(I&1)<<J;ma=sa+-2+(ha+(ta*7|0))|0;a[ma>>0]=(d[ma>>0]|0)&la|I>>>1<<J;ja=ja+1|0}while((ja|0)!=4)}db((c[f>>2]|0)+(ta*7|0)|0);ta=ta+1|0;if(ta>>>0>=j>>>0){$a=0;break}}}while(0);l=c[x+24>>2]|0;ta=l;if(l){O=x+28|0;ua=c[O>>2]|0;if((ua|0)!=(l|0))c[O>>2]=ua+(~((ua+-2-ta|0)>>>1)<<1);Yb(l)}l=c[x+12>>2]|0;ta=l;if(l){ua=x+16|0;O=c[ua>>2]|0;if((O|0)!=(l|0))c[ua>>2]=O+(~((O+-4-ta|0)>>>2)<<2);Yb(l)}l=c[x>>2]|0;if(l){ta=x+4|0;if((c[ta>>2]|0)!=(l|0))c[ta>>2]=l;Yb(l)}_a=$a}else _a=1;while(0);W=c[u+24>>2]|0;qa=W;if(W){l=u+28|0;ta=c[l>>2]|0;if((ta|0)!=(W|0))c[l>>2]=ta+(~((ta+-2-qa|0)>>>1)<<1);Yb(W)}W=c[u+12>>2]|0;qa=W;if(W){ta=u+16|0;l=c[ta>>2]|0;if((l|0)!=(W|0))c[ta>>2]=l+(~((l+-4-qa|0)>>>2)<<2);Yb(W)}W=c[u>>2]|0;if(W){qa=u+4|0;if((c[qa>>2]|0)!=(W|0))c[qa>>2]=W;Yb(W)}if(!_a)Ha=240;else Na=0}else{W=k&15;qa=Ga>>>5;c[h>>2]=qa;c[g>>2]=3;if(Fa>>>0<E>>>0){c[D>>2]=Fa+1;Ab=d[Fa>>0]|0}else Ab=0;l=qa|Ab<<3&8;c[h>>2]=Ab>>>1;c[g>>2]=7;B=u;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));qa=(l|0)!=0;do if(qa){if(!(bb(n,u)|0)){Bb=1;break}if((c[u+4>>2]|0)==(c[u>>2]|0))Bb=1;else Ha=90}else Ha=90;while(0);c:do if((Ha|0)==90){if(!j){Bb=0;break}l=(W|0)==0;ta=u+12|0;O=u+24|0;ua=e+24|0;va=w+12|0;wa=w+6|0;xa=w+5|0;za=w+4|0;ya=w+2|0;Aa=w+3|0;Ba=w+1|0;M=w+7|0;Ea=w+8|0;H=w+9|0;Q=w+10|0;Ca=w+11|0;K=0;while(1){if(l)Cb=0;else Cb=cb(n,W)|0;if(qa){G=c[g>>2]|0;if(G>>>0<16){N=c[F>>2]|0;ra=15-G&-8;Da=c[D>>2]|0;T=G;while(1){if(Da>>>0<N>>>0){ja=Da+1|0;c[D>>2]=ja;Db=ja;Gb=d[Da>>0]|0}else{Db=Da;Gb=0}ja=c[h>>2]|Gb<<T;c[h>>2]=ja;T=T+8|0;c[g>>2]=T;if(T>>>0>=16){Hb=ja;break}else Da=Db}Ib=Hb;Jb=G+8+ra|0}else{Ib=c[h>>2]|0;Jb=G}Da=c[(c[ta>>2]|0)+((Ib&1023)<<2)>>2]|0;if((Da|0)>-1){Kb=Da>>16;Lb=Da&65535}else{T=c[O>>2]|0;N=10;ja=Da;while(1){Da=N+1|0;J=b[T+((Ib>>>N&1)+~ja<<1)>>1]|0;I=J<<16>>16;if(J<<16>>16<0){N=Da;ja=I}else{Kb=Da;Lb=I;break}}}c[h>>2]=Ib>>>Kb;c[g>>2]=Jb-Kb;Mb=Lb}else Mb=0;ja=c[ua>>2]|0;N=c[ja>>2]|0;if(Cb>>>0>=(c[ja+4>>2]|0)-N>>4>>>0){Bb=1;break c}a[va>>0]=Mb&3;a[wa>>0]=Mb>>>2&1;a[xa>>0]=Mb>>>3&1;a[w>>0]=Mb>>>4&3;a[za>>0]=Mb>>>6&1;a[ya>>0]=Mb>>>7&1;a[Aa>>0]=Mb>>>8&1;a[Ba>>0]=Mb>>>9&1;a[M>>0]=Mb>>>10&1;a[Ea>>0]=Mb>>>11&1;a[H>>0]=Mb>>>12&1;a[Q>>0]=Mb>>>13&1;a[Ca>>0]=Mb>>>14&1;wb(v,N+(Cb<<4)|0,w);N=0;do{ja=N<<2;T=c[f>>2]|0;G=3-(N>>>3)|0;ra=T+(K*7|0)+G|0;I=d[644560+(d[v+ja>>0]|0)>>0]|0;Da=~(1<<N);a[ra>>0]=(d[ra>>0]|0)&Da|(I&1)<<N;ra=G+-2+(T+(K*7|0))|0;a[ra>>0]=(d[ra>>0]|0)&Da|I>>>1<<N;I=c[f>>2]|0;Da=N+4|0;ra=3-(Da>>>3)|0;T=I+(K*7|0)+ra|0;G=d[644560+(d[v+(ja|1)>>0]|0)>>0]|0;J=~(1<<Da);a[T>>0]=(d[T>>0]|0)&J|(G&1)<<Da;T=ra+-2+(I+(K*7|0))|0;a[T>>0]=(d[T>>0]|0)&J|G>>>1<<Da;Da=c[f>>2]|0;G=N+8|0;J=3-(G>>>3)|0;T=Da+(K*7|0)+J|0;I=G&7;G=d[644560+(d[v+(ja|2)>>0]|0)>>0]|0;ra=~(1<<I);a[T>>0]=(d[T>>0]|0)&ra|(G&1)<<I;T=J+-2+(Da+(K*7|0))|0;a[T>>0]=(d[T>>0]|0)&ra|G>>>1<<I;I=c[f>>2]|0;G=N+12|0;ra=3-(G>>>3)|0;T=I+(K*7|0)+ra|0;Da=G&7;G=d[644560+(d[v+(ja|3)>>0]|0)>>0]|0;ja=~(1<<Da);a[T>>0]=(d[T>>0]|0)&ja|(G&1)<<Da;T=ra+-2+(I+(K*7|0))|0;a[T>>0]=(d[T>>0]|0)&ja|G>>>1<<Da;N=N+1|0}while((N|0)!=4);db((c[f>>2]|0)+(K*7|0)|0);K=K+1|0;if(K>>>0>=j>>>0){Bb=0;break}}}while(0);qa=c[u+24>>2]|0;W=qa;if(qa){K=u+28|0;Ca=c[K>>2]|0;if((Ca|0)!=(qa|0))c[K>>2]=Ca+(~((Ca+-2-W|0)>>>1)<<1);Yb(qa)}qa=c[u+12>>2]|0;W=qa;if(qa){Ca=u+16|0;K=c[Ca>>2]|0;if((K|0)!=(qa|0))c[Ca>>2]=K+(~((K+-4-W|0)>>>2)<<2);Yb(qa)}qa=c[u>>2]|0;if(qa){W=u+4|0;if((c[W>>2]|0)!=(qa|0))c[W>>2]=qa;Yb(qa)}if(!Bb)Ha=240;else Na=0}while(0);if((Ha|0)==240)Na=1;Ha=c[t+24>>2]|0;Bb=Ha;if(Ha){u=t+28|0;j=c[u>>2]|0;if((j|0)!=(Ha|0))c[u>>2]=j+(~((j+-2-Bb|0)>>>1)<<1);Yb(Ha)}Ha=c[t+12>>2]|0;Bb=Ha;if(Ha){j=t+16|0;u=c[j>>2]|0;if((u|0)!=(Ha|0))c[j>>2]=u+(~((u+-4-Bb|0)>>>2)<<2);Yb(Ha)}Ha=c[t>>2]|0;if(Ha){Bb=t+4|0;if((c[Bb>>2]|0)!=(Ha|0))c[Bb>>2]=Ha;Yb(Ha)}Nb=Na}else Nb=0}else Nb=0;Na=c[r+24>>2]|0;Ha=Na;if(Na){Bb=r+28|0;t=c[Bb>>2]|0;if((t|0)!=(Na|0))c[Bb>>2]=t+(~((t+-2-Ha|0)>>>1)<<1);Yb(Na)}Na=c[r+12>>2]|0;Ha=Na;if(Na){t=r+16|0;Bb=c[t>>2]|0;if((Bb|0)!=(Na|0))c[t>>2]=Bb+(~((Bb+-4-Ha|0)>>>2)<<2);Yb(Na)}Na=c[r>>2]|0;if(Na){Ha=r+4|0;if((c[Ha>>2]|0)!=(Na|0))c[Ha>>2]=Na;Yb(Na)}Na=c[q+24>>2]|0;Ha=Na;if(Na){r=q+28|0;Bb=c[r>>2]|0;if((Bb|0)!=(Na|0))c[r>>2]=Bb+(~((Bb+-2-Ha|0)>>>1)<<1);Yb(Na)}Na=c[q+12>>2]|0;Ha=Na;if(Na){Bb=q+16|0;r=c[Bb>>2]|0;if((r|0)!=(Na|0))c[Bb>>2]=r+(~((r+-4-Ha|0)>>>2)<<2);Yb(Na)}Na=c[q>>2]|0;if(Na){Ha=q+4|0;if((c[Ha>>2]|0)!=(Na|0))c[Ha>>2]=Na;Yb(Na)}Na=c[p+24>>2]|0;Ha=Na;if(Na){q=p+28|0;r=c[q>>2]|0;if((r|0)!=(Na|0))c[q>>2]=r+(~((r+-2-Ha|0)>>>1)<<1);Yb(Na)}Na=c[p+12>>2]|0;Ha=Na;if(Na){r=p+16|0;q=c[r>>2]|0;if((q|0)!=(Na|0))c[r>>2]=q+(~((q+-4-Ha|0)>>>2)<<2);Yb(Na)}Na=c[p>>2]|0;if(Na){Ha=p+4|0;if((c[Ha>>2]|0)!=(Na|0))c[Ha>>2]=Na;Yb(Na)}Na=c[o+24>>2]|0;Ha=Na;if(Na){p=o+28|0;q=c[p>>2]|0;if((q|0)!=(Na|0))c[p>>2]=q+(~((q+-2-Ha|0)>>>1)<<1);Yb(Na)}Na=c[o+12>>2]|0;Ha=Na;if(Na){q=o+16|0;p=c[q>>2]|0;if((p|0)!=(Na|0))c[q>>2]=p+(~((p+-4-Ha|0)>>>2)<<2);Yb(Na)}Na=c[o>>2]|0;if(!Na){i=m;return Nb|0}Ha=o+4|0;if((c[Ha>>2]|0)!=(Na|0))c[Ha>>2]=Na;Yb(Na);i=m;return Nb|0}function bb(e,f){e=e|0;f=f|0;var 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,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0;g=i;i=i+64|0;h=g+36|0;j=g;k=c[f>>2]|0;l=f+4|0;if((c[l>>2]|0)!=(k|0))c[l>>2]=k;k=c[f+12>>2]|0;l=f+16|0;m=c[l>>2]|0;if((k|0)!=(m|0))c[l>>2]=m+(~((m+-4-k|0)>>>2)<<2);k=c[f+24>>2]|0;m=f+28|0;l=c[m>>2]|0;if((k|0)!=(l|0))c[m>>2]=l+(~((l+-2-k|0)>>>1)<<1);k=e+20|0;l=c[k>>2]|0;if(l>>>0<14){m=e+4|0;n=e+16|0;o=c[e+12>>2]|0;p=l+(13-l&-8)|0;q=c[m>>2]|0;r=l;while(1){if(q>>>0<o>>>0){s=q+1|0;c[m>>2]=s;t=s;u=d[q>>0]|0}else{t=q;u=0}s=c[n>>2]|u<<r;c[n>>2]=s;r=r+8|0;c[k>>2]=r;if(r>>>0>=14){v=s;break}else q=t}w=n;x=v;y=p+8|0}else{p=e+16|0;w=p;x=c[p>>2]|0;y=l}l=x&16383;c[w>>2]=x>>>14;w=y+-14|0;c[k>>2]=w;if(!l){z=1;i=g;return z|0}p=h;v=p+21|0;do{a[p>>0]=0;p=p+1|0}while((p|0)<(v|0));if(w>>>0<5){n=e+4|0;t=e+16|0;q=c[e+12>>2]|0;r=w+(18-y&-8)|0;y=c[n>>2]|0;u=w;while(1){if(y>>>0<q>>>0){m=y+1|0;c[n>>2]=m;A=m;B=d[y>>0]|0}else{A=y;B=0}m=c[t>>2]|B<<u;c[t>>2]=m;u=u+8|0;c[k>>2]=u;if(u>>>0>=5){C=m;break}else y=A}D=t;E=C;F=r+8|0}else{r=e+16|0;D=r;E=c[r>>2]|0;F=w}w=E&31;c[D>>2]=E>>>5;D=F+-5|0;c[k>>2]=D;if((w+-1|0)>>>0>20){z=0;i=g;return z|0}if(w){w=e+4|0;F=e+12|0;r=e+16|0;C=E&31;E=D;D=0;do{if(E>>>0<3){t=c[F>>2]|0;A=2-E&-8;y=c[w>>2]|0;u=E;while(1){if(y>>>0<t>>>0){B=y+1|0;c[w>>2]=B;G=B;H=d[y>>0]|0}else{G=y;H=0}B=c[r>>2]|H<<u;c[r>>2]=B;u=u+8|0;c[k>>2]=u;if(u>>>0>=3){I=B;break}else y=G}J=E+8+A|0;K=I}else{J=E;K=c[r>>2]|0}c[r>>2]=K>>>3;E=J+-3|0;c[k>>2]=E;a[h+(d[644519+D>>0]|0)>>0]=K&7;D=D+1|0}while((D|0)!=(C|0))}p=j;v=p+36|0;do{c[p>>2]=0;p=p+4|0}while((p|0)<(v|0));if(sb(j,21,h)|0?(c[j+4>>2]|0)!=(c[j>>2]|0):0){h=Xb(l)|0;Mc(h|0,0,x&16383|0)|0;x=e+4|0;p=e+12|0;v=e+16|0;e=j+12|0;C=j+24|0;D=0;a:while(1){K=c[k>>2]|0;if(K>>>0<16){E=c[p>>2]|0;J=15-K&-8;r=c[x>>2]|0;I=K;while(1){if(r>>>0<E>>>0){G=r+1|0;c[x>>2]=G;L=G;M=d[r>>0]|0}else{L=r;M=0}G=c[v>>2]|M<<I;c[v>>2]=G;I=I+8|0;c[k>>2]=I;if(I>>>0>=16){N=G;break}else r=L}O=N;P=K+8+J|0}else{O=c[v>>2]|0;P=K}r=c[(c[e>>2]|0)+((O&1023)<<2)>>2]|0;if((r|0)>-1){Q=r>>16;R=r&65535}else{I=c[C>>2]|0;E=10;A=r;while(1){r=E+1|0;G=b[I+((O>>>E&1)+~A<<1)>>1]|0;H=G<<16>>16;if(G<<16>>16<0){E=r;A=H}else{Q=r;R=H;break}}}A=O>>>Q;c[v>>2]=A;E=P-Q|0;c[k>>2]=E;b:do if((R|0)<17){a[h+D>>0]=R;S=D+1|0}else switch(R|0){case 17:{if(E>>>0<3){I=c[p>>2]|0;K=P+8+(Q+2-P&-8)|0;J=c[x>>2]|0;H=E;r=A;while(1){if(J>>>0<I>>>0){G=J+1|0;c[x>>2]=G;T=G;U=d[J>>0]|0}else{T=J;U=0}G=r|U<<H;c[v>>2]=G;H=H+8|0;c[k>>2]=H;if(H>>>0>=3){V=G;break}else{J=T;r=G}}W=V;X=K-Q|0}else{W=A;X=E}c[v>>2]=W>>>3;c[k>>2]=X+-3;S=D+3+(W&7)|0;break b;break}case 18:{if(E>>>0<7){r=c[p>>2]|0;J=P+8+(Q+6-P&-8)|0;H=c[x>>2]|0;I=E;G=A;while(1){if(H>>>0<r>>>0){w=H+1|0;c[x>>2]=w;Y=w;Z=d[H>>0]|0}else{Y=H;Z=0}w=G|Z<<I;c[v>>2]=w;I=I+8|0;c[k>>2]=I;if(I>>>0>=7){_=w;break}else{H=Y;G=w}}$=_;aa=J-Q|0}else{$=A;aa=E}c[v>>2]=$>>>7;c[k>>2]=aa+-7;S=D+11+($&127)|0;break b;break}default:{if(!D){ba=0;break a}if((R|0)==19){if(E>>>0<2){G=c[p>>2]|0;H=P+8+(Q+1-P&-8)|0;I=c[x>>2]|0;r=E;K=A;while(1){if(I>>>0<G>>>0){w=I+1|0;c[x>>2]=w;ca=w;da=d[I>>0]|0}else{ca=I;da=0}w=K|da<<r;c[v>>2]=w;r=r+8|0;c[k>>2]=r;if(r>>>0>=2){ea=w;break}else{I=ca;K=w}}fa=ea;ga=H-Q|0}else{fa=A;ga=E}c[v>>2]=fa>>>2;c[k>>2]=ga+-2;ha=(fa&3)+3|0}else{if(E>>>0<7){K=c[p>>2]|0;I=P+8+(Q+6-P&-8)|0;r=c[x>>2]|0;G=E;J=A;while(1){if(r>>>0<K>>>0){w=r+1|0;c[x>>2]=w;ia=w;ja=d[r>>0]|0}else{ia=r;ja=0}w=J|ja<<G;c[v>>2]=w;G=G+8|0;c[k>>2]=G;if(G>>>0>=7){ka=w;break}else{r=ia;J=w}}la=ka;ma=I-Q|0}else{la=A;ma=E}c[v>>2]=la>>>7;c[k>>2]=ma+-7;ha=(la&127)+7|0}J=a[h+(D+-1)>>0]|0;if(!(J<<24>>24)){ba=0;break a}else{na=D;oa=ha}while(1){if(na>>>0>=l>>>0){ba=0;break a}r=na+1|0;a[h+na>>0]=J;oa=oa+-1|0;if(!oa){S=r;break}else na=r}}}while(0);if(S>>>0<l>>>0)D=S;else{pa=S;qa=84;break}}if((qa|0)==84)if((pa|0)==(l|0))ba=sb(f,l,h)|0;else ba=0;Yb(h);ra=ba}else ra=0;ba=c[j+24>>2]|0;h=ba;if(ba){l=j+28|0;f=c[l>>2]|0;if((f|0)!=(ba|0))c[l>>2]=f+(~((f+-2-h|0)>>>1)<<1);Yb(ba)}ba=c[j+12>>2]|0;h=ba;if(ba){f=j+16|0;l=c[f>>2]|0;if((l|0)!=(ba|0))c[f>>2]=l+(~((l+-4-h|0)>>>2)<<2);Yb(ba)}ba=c[j>>2]|0;if(ba){h=j+4|0;if((c[h>>2]|0)!=(ba|0))c[h>>2]=ba;Yb(ba)}z=ra;i=g;return z|0}function cb(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;if(b>>>0<=25){if(!b){e=a+16|0;f=a+20|0;g=0;h=e;i=f;j=c[e>>2]|0;k=c[f>>2]|0}else{f=a+20|0;e=c[f>>2]|0;if(e>>>0<b>>>0){l=a+4|0;m=a+16|0;n=c[a+12>>2]|0;o=c[l>>2]|0;p=e;while(1){if(o>>>0<n>>>0){q=o+1|0;c[l>>2]=q;r=q;s=d[o>>0]|0}else{r=o;s=0}q=c[m>>2]|s<<p;c[m>>2]=q;t=p+8|0;c[f>>2]=t;if(t>>>0<b>>>0){o=r;p=t}else{u=m;v=q;w=t;break}}}else{m=a+16|0;u=m;v=c[m>>2]|0;w=e}g=v&(1<<b)+-1;h=u;i=f;j=v;k=w}c[h>>2]=j>>>b;c[i>>2]=k-b;x=g;return x|0}g=a+20|0;k=c[g>>2]|0;if(k>>>0<25){i=a+4|0;j=a+16|0;h=c[a+12>>2]|0;w=k;v=c[i>>2]|0;while(1){if(v>>>0<h>>>0){f=v+1|0;c[i>>2]=f;y=f;z=d[v>>0]|0}else{y=v;z=0}f=c[j>>2]|z<<w;c[j>>2]=f;u=w+8|0;c[g>>2]=u;if(u>>>0<25){w=u;v=y}else{A=j;B=f;C=u;break}}}else{j=a+16|0;A=j;B=c[j>>2]|0;C=k}k=B&33554431;j=B>>>25;c[A>>2]=j;B=C+-25|0;c[g>>2]=B;C=b+-25|0;if(!C){D=0;E=j;F=B}else{if(B>>>0<C>>>0){b=a+4|0;y=c[a+12>>2]|0;a=c[b>>2]|0;v=B;w=j;while(1){if(a>>>0<y>>>0){z=a+1|0;c[b>>2]=z;G=z;H=d[a>>0]|0}else{G=a;H=0}z=w|H<<v;c[A>>2]=z;i=v+8|0;c[g>>2]=i;if(i>>>0<C>>>0){a=G;v=i;w=z}else{I=z;J=i;break}}}else{I=j;J=B}D=(I&(1<<C)+127)<<25;E=I;F=J}c[A>>2]=E>>>C;c[g>>2]=F-C;x=D|k;return x|0}function db(b){b=b|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;e=i;i=i+16|0;f=e;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g=0;do{h=3-(g>>>3)|0;j=f+((d[644564+((d[b+(h+-2)>>0]|0)>>>g<<1&2|(d[b+h>>0]|0)>>>g&1)>>0]|0)<<2)|0;c[j>>2]=(c[j>>2]|0)+1;j=g+4|0;h=3-(j>>>3)|0;k=f+((d[644564+((d[b+(h+-2)>>0]|0)>>>j<<1&2|(d[b+h>>0]|0)>>>j&1)>>0]|0)<<2)|0;c[k>>2]=(c[k>>2]|0)+1;k=g+8|0;j=k&7;h=3-(k>>>3)|0;k=f+((d[644564+((d[b+(h+-2)>>0]|0)>>>j<<1&2|(d[b+h>>0]|0)>>>j&1)>>0]|0)<<2)|0;c[k>>2]=(c[k>>2]|0)+1;k=g+12|0;j=k&7;h=3-(k>>>3)|0;k=f+((d[644564+((d[b+(h+-2)>>0]|0)>>>j<<1&2|(d[b+h>>0]|0)>>>j&1)>>0]|0)<<2)|0;c[k>>2]=(c[k>>2]|0)+1;g=g+1|0}while((g|0)!=4);g=b+4|0;a[g>>0]=3;k=b+5|0;a[k>>0]=0;j=b+6|0;a[j>>0]=0;if(!(c[f>>2]|0)){l=0;m=3}else{a[j>>0]=1;a[g>>0]=0;l=1;m=0}if(!(c[f+4>>2]|0)){n=l;o=m}else{b=l+1<<24>>24;a[j>>0]=b;if((m&255)>1){a[g>>0]=1;p=1}else p=m;a[k>>0]=1;n=b;o=p}if(!(c[f+8>>2]|0))q=n;else{p=n+1<<24>>24;a[j>>0]=p;if((o&255)>2)a[g>>0]=2;a[k>>0]=2;q=p}if(!(c[f+12>>2]|0)){i=e;return}a[j>>0]=q+1<<24>>24;a[k>>0]=3;i=e;return}function eb(a,b,e){a=a|0;b=b|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;f=i;i=i+32|0;g=f;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;if((b|0)==0&(e|0)!=0){h=0;i=f;return h|0}c[g>>2]=e;j=g+4|0;c[j>>2]=b;c[g+8>>2]=b;k=g+12|0;c[k>>2]=b+e;e=g+16|0;c[e>>2]=0;b=g+20|0;c[b>>2]=0;l=a+28|0;if(!(bb(g,l)|0)){h=0;i=f;return h|0}if((c[a+32>>2]|0)==(c[l>>2]|0)){h=0;i=f;return h|0}l=a+64|0;if(!(bb(g,l)|0)){h=0;i=f;return h|0}if((c[a+68>>2]|0)==(c[l>>2]|0)){h=0;i=f;return h|0}l=a+100|0;if(!(bb(g,l)|0)){h=0;i=f;return h|0}if((c[a+104>>2]|0)==(c[l>>2]|0)){h=0;i=f;return h|0}l=a+136|0;if(!(bb(g,l)|0)){h=0;i=f;return h|0}if((c[a+140>>2]|0)==(c[l>>2]|0)){h=0;i=f;return h|0}l=c[b>>2]|0;if(l>>>0<13){g=c[k>>2]|0;k=l+(12-l&-8)|0;m=c[j>>2]|0;n=l;while(1){if(m>>>0<g>>>0){o=m+1|0;c[j>>2]=o;p=o;q=d[m>>0]|0}else{p=m;q=0}o=c[e>>2]|q<<n;c[e>>2]=o;n=n+8|0;c[b>>2]=n;if(n>>>0>=13){r=o;break}else m=p}s=r;t=k+8|0}else{s=c[e>>2]|0;t=l}c[e>>2]=s>>>13;c[b>>2]=t+-13;c[a+172>>2]=s&8191;h=1;i=f;return h|0}function fb(f,g,h,j,k,l,m,n,o,p,q,r){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=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,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Db=0,Eb=0,Fb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0;s=i;i=i+192|0;t=s+120|0;u=s+56|0;v=s+24|0;w=s+8|0;x=s+40|0;y=s;z=(a[q+23>>0]|0)==3;q=Z(j,h)|0;if(z){A=a[r+3>>0]|0;if((A&255)>15){C=0;i=s;return C|0}D=A&255;A=d[r+4>>0]&1;r=f+200+(A*192|0)+(D*12|0)|0;E=(c[f+200+(A*192|0)+(D*12|0)+4>>2]|0)-(c[r>>2]|0)>>2;if(q>>>0>E>>>0){Gb(r,q-E|0);F=r}else F=r}else F=0;if((k|0)==0&(l|0)!=0){C=0;i=s;return C|0}r=k+l|0;l=f+172|0;E=c[l>>2]|0;c[x>>2]=0;D=x+4|0;c[D>>2]=0;c[x+8>>2]=0;if(!E)G=0;else{ub(x,E);G=c[l>>2]|0}A=x+12|0;c[A>>2]=E>>>1;E=f+16|0;H=f+12|0;I=G+(((c[E>>2]|0)-(c[H>>2]|0)|0)/7|0)|0;G=y;c[G>>2]=0;c[G+4>>2]=0;G=y+3|0;a[G>>0]=3;J=(m|0)==3;if(J){K=Dc(q*12|0)|0;if(!K)L=0;else{M=K+(q<<3)|0;N=K;O=11}}else{M=0;N=0;O=11}a:do if((O|0)==11){K=f+176|0;P=(c[f+180>>2]|0)-(c[K>>2]|0)>>2;do if(P>>>0<h>>>0){Hb(K,h-P|0);Q=f+188|0;R=f+192|0;S=c[R>>2]|0;T=c[Q>>2]|0;U=S-T>>2;if(U>>>0<h>>>0){Hb(Q,h-U|0);break}if(U>>>0>h>>>0?(U=T+(h<<2)|0,(S|0)!=(U|0)):0)c[R>>2]=S+(~((S+-4-U|0)>>>2)<<2)}while(0);do if(j){P=(h|0)==0;K=f+40|0;U=f+52|0;S=f+76|0;R=f+4|0;T=f+88|0;Q=z^1;V=f+112|0;W=f+148|0;X=f+160|0;Y=f+124|0;_=m>>>0<2;$=y+1|0;aa=y+2|0;ba=y+4|0;ca=y+5|0;da=y+6|0;ea=y+7|0;fa=t+1|0;ga=t+2|0;ha=t+3|0;ia=t+1|0;ja=t+2|0;ka=t+3|0;la=t+1|0;ma=t+2|0;na=t+3|0;oa=k;pa=0;qa=0;ra=0;sa=0;ta=0;ua=0;va=0;wa=0;b:while(1){xa=ra&1;c:do if(P){ya=qa;za=pa;Aa=oa;Ba=sa;Ca=ta;Da=ua;Ea=va;Fa=wa}else{Ga=(xa|0)==0;Ha=f+176+((xa^1)*12|0)|0;Ia=f+176+(xa*12|0)|0;Ja=Z(ra,h)|0;Ka=(ra|0)==0;La=(ra|0)!=0;Ma=pa;Na=oa;Oa=qa;Pa=0;Qa=sa;Ra=ta;Sa=ua;Ta=va;Ua=wa;while(1){do if(!(Pa&1)){if(!Ga){Va=Ma;Wa=Oa;Xa=Na;Ya=d[(c[Ia>>2]|0)+(Pa<<2)+2>>0]|0;Za=Sa;_a=Ua;break}if(!Sa){if(Ma>>>0<16){$a=15-Ma&-8;ab=Na;bb=Ma;cb=Oa;db=Na;while(1){if(ab>>>0<r>>>0){eb=ab+1|0;fb=eb;hb=eb;ib=d[ab>>0]|0}else{fb=db;hb=ab;ib=0}eb=ib<<bb|cb;bb=bb+8|0;if(bb>>>0>=16){jb=fb;kb=eb;break}else{ab=hb;cb=eb;db=fb}}lb=kb;mb=Ma+8+$a|0;nb=jb}else{lb=Oa;mb=Ma;nb=Na}db=c[(c[K>>2]|0)+((lb&1023)<<2)>>2]|0;if((db|0)>-1){ob=db>>16;pb=db&65535}else{cb=c[U>>2]|0;ab=10;bb=db;while(1){db=ab+1|0;eb=b[cb+((lb>>>ab&1)+~bb<<1)>>1]|0;qb=eb<<16>>16;if(eb<<16>>16<0){ab=db;bb=qb}else{ob=db;pb=qb;break}}}bb=lb>>>ob;ab=mb-ob|0;if((pb|0)==256){cb=ab;$a=bb;qb=nb;db=0;eb=0;while(1){if(cb>>>0<5){rb=4-cb&-8;sb=qb;tb=cb;vb=$a;wb=qb;while(1){if(sb>>>0<r>>>0){xb=sb+1|0;yb=xb;zb=xb;Ab=d[sb>>0]|0}else{yb=wb;zb=sb;Ab=0}xb=Ab<<tb|vb;tb=tb+8|0;if(tb>>>0>=5){Bb=yb;Db=xb;break}else{sb=zb;vb=xb;wb=yb}}Eb=Db;Fb=cb+8+rb|0;Ib=Bb}else{Eb=$a;Fb=cb;Ib=qb}wb=Eb>>>5;vb=Fb+-5|0;sb=(Eb&15)<<db|eb;db=db+4|0;if(db>>>0>31|(Eb&16|0)==0){Jb=Ib;Kb=wb;Lb=vb;Mb=sb;break}else{cb=vb;$a=wb;qb=Ib;eb=sb}}Nb=Kb;Ob=Lb;Pb=Jb;Qb=Mb+2|0;Rb=Ua}else{Nb=bb;Ob=ab;Pb=nb;Qb=0;Rb=pb}}else{Nb=Oa;Ob=Ma;Pb=Na;Qb=Sa+-1|0;Rb=Ua}a[(c[Ha>>2]|0)+(Pa<<2)+2>>0]=Rb>>>4;Va=Ob;Wa=Nb;Xa=Pb;Ya=Rb;Za=Qb;_a=Rb}else{Va=Ma;Wa=Oa;Xa=Na;Ya=Qa;Za=Sa;_a=Ua}while(0);eb=Ya&3;qb=Ya>>>2;d:do switch(eb|0){case 0:{if(!Pa){O=48;break b}else{Sb=Ta;O=71}break}case 1:{if(Ka){O=51;break b}Sb=e[(c[Ha>>2]|0)+(Pa<<2)>>1]|0;O=71;break}case 2:{if(z){$a=c[(c[F>>2]|0)+(Pa+Ja<<2)>>2]|0;Tb=Wa;Ub=Va;Vb=Xa;Wb=$a&65535;Xb=$a>>>16;O=72;break d}if(!(La&(Pa|0)!=0)){O=57;break b}Tb=Wa;Ub=Va;Vb=Xa;Wb=e[(c[Ha>>2]|0)+(Pa+-1<<2)>>1]|0;Xb=0;O=72;break}default:{if(Va>>>0<16){$a=15-Va&-8;cb=Xa;db=Va;sb=Wa;wb=Xa;while(1){if(cb>>>0<r>>>0){vb=cb+1|0;Zb=vb;_b=vb;$b=d[cb>>0]|0}else{Zb=wb;_b=cb;$b=0}vb=$b<<db|sb;db=db+8|0;if(db>>>0>=16){ac=Zb;bc=vb;break}else{cb=_b;sb=vb;wb=Zb}}cc=bc;dc=Va+8+$a|0;ec=ac}else{cc=Wa;dc=Va;ec=Xa}wb=c[(c[S>>2]|0)+((cc&1023)<<2)>>2]|0;if((wb|0)>-1){fc=wb>>16;gc=wb&65535}else{sb=c[T>>2]|0;cb=10;db=wb;while(1){wb=cb+1|0;ab=b[sb+((cc>>>cb&1)+~db<<1)>>1]|0;bb=ab<<16>>16;if(ab<<16>>16<0){cb=wb;db=bb}else{fc=wb;gc=bb;break}}}db=gc+Ta|0;cb=(c[R>>2]|0)-(c[f>>2]|0)>>3;Tb=cc>>>fc;Ub=dc-fc|0;Vb=ec;Wb=db-(db>>>0<cb>>>0?0:cb)|0;Xb=0;O=72}}while(0);if((O|0)==71){O=0;b[(c[Ia>>2]|0)+(Pa<<2)>>1]=Sb;hc=Va;ic=Xa;jc=Wa;kc=Sb;O=73}else if((O|0)==72){O=0;b[(c[Ia>>2]|0)+(Pa<<2)>>1]=Wb;if((eb|0)!=2|Q){hc=Ub;ic=Vb;jc=Tb;kc=Wb;O=73}else{lc=Tb;mc=Ub;nc=Vb;oc=Ra;pc=Wb;qc=Xb}}do if((O|0)==73){O=0;if(!Ra){if(hc>>>0<16){cb=15-hc&-8;db=ic;sb=hc;$a=jc;bb=ic;while(1){if(db>>>0<r>>>0){wb=db+1|0;rc=wb;sc=wb;tc=d[db>>0]|0}else{rc=bb;sc=db;tc=0}wb=tc<<sb|$a;sb=sb+8|0;if(sb>>>0>=16){uc=rc;vc=wb;break}else{db=sc;$a=wb;bb=rc}}wc=vc;xc=hc+8+cb|0;yc=uc}else{wc=jc;xc=hc;yc=ic}bb=c[(c[V>>2]|0)+((wc&1023)<<2)>>2]|0;if((bb|0)>-1){zc=bb>>16;Ac=bb&65535}else{$a=c[Y>>2]|0;db=10;sb=bb;while(1){bb=db+1|0;wb=b[$a+((wc>>>db&1)+~sb<<1)>>1]|0;ab=wb<<16>>16;if(wb<<16>>16<0){db=bb;sb=ab}else{zc=bb;Ac=ab;break}}}sb=wc>>>zc;db=xc-zc|0;if((Ac|0)==(I|0)){if(db>>>0<16){$a=xc+8+(zc+15-xc&-8)|0;cb=yc;ab=db;bb=sb;wb=yc;while(1){if(cb>>>0<r>>>0){vb=cb+1|0;Bc=vb;Cc=vb;Fc=d[cb>>0]|0}else{Bc=wb;Cc=cb;Fc=0}vb=Fc<<ab|bb;ab=ab+8|0;if(ab>>>0>=16){Gc=Bc;Hc=vb;break}else{cb=Cc;bb=vb;wb=Bc}}Ic=Hc;Jc=Gc;Kc=$a-zc|0}else{Ic=sb;Jc=yc;Kc=db}wb=c[(c[W>>2]|0)+((Ic&1023)<<2)>>2]|0;if((wb|0)>-1){Lc=wb>>16;Mc=wb&65535}else{bb=c[X>>2]|0;cb=10;ab=wb;while(1){wb=cb+1|0;vb=b[bb+((Ic>>>cb&1)+~ab<<1)>>1]|0;tb=vb<<16>>16;if(vb<<16>>16<0){cb=wb;ab=tb}else{Lc=wb;Mc=tb;break}}}ab=Ic>>>Lc;cb=Kc-Lc|0;if((Mc|0)==63){bb=ab;$a=Jc;tb=cb;wb=0;vb=0;while(1){if(tb>>>0<8){xb=$a;Pc=$a;Qc=tb;Rc=bb;while(1){if(Pc>>>0<r>>>0){Sc=Pc+1|0;Tc=Sc;Uc=Sc;Vc=d[Pc>>0]|0}else{Tc=xb;Uc=Pc;Vc=0}Sc=Vc<<Qc|Rc;Wc=Qc+8|0;if(Qc>>>0>4294967287){xb=Tc;Pc=Uc;Qc=Wc;Rc=Sc}else{Xc=Tc;Yc=Sc;Zc=Wc;break}}}else{Xc=$a;Yc=bb;Zc=tb}Rc=Yc>>>8;Qc=Zc+-8|0;Pc=(Yc&127)<<wb|vb;wb=wb+7|0;if(wb>>>0>31|(Yc&128|0)==0){_c=Rc;$c=Qc;ad=Xc;bd=Pc;break}else{bb=Rc;$a=Xc;tb=Qc;vb=Pc}}}else{_c=ab;$c=cb;ad=Jc;bd=Mc}if((bd+3|0)>>>0>q>>>0){O=103;break b}cd=_c;dd=$c;ed=ad;fd=bd+2|0;gd=((c[E>>2]|0)-(c[H>>2]|0)|0)/7|0}else{cd=sb;dd=db;ed=yc;fd=0;gd=Ac}}else{cd=jc;dd=hc;ed=ic;fd=Ra+-1|0;gd=((c[E>>2]|0)-(c[H>>2]|0)|0)/7|0}vb=((c[E>>2]|0)-(c[H>>2]|0)|0)/7|0;if((gd|0)<(vb|0)){if(!(c[l>>2]|0)){lc=cd;mc=dd;nc=ed;oc=fd;pc=kc;qc=gd;break}tb=c[A>>2]|0;c[A>>2]=tb+1;$a=c[x>>2]|0;c[$a+(tb<<2)>>2]=gd;tb=c[A>>2]|0;if((tb|0)!=((c[D>>2]|0)-$a>>2|0)){lc=cd;mc=dd;nc=ed;oc=fd;pc=kc;qc=gd;break}c[A>>2]=tb>>>1;lc=cd;mc=dd;nc=ed;oc=fd;pc=kc;qc=gd;break}else{tb=gd-vb|0;$a=c[x>>2]|0;if((tb|0)>=((c[D>>2]|0)-$a>>2|0)){O=108;break b}bb=$a+(tb<<2)|0;wb=c[bb>>2]|0;if((gd|0)==(vb|0)){lc=cd;mc=dd;nc=ed;oc=fd;pc=kc;qc=wb;break}vb=$a+(tb>>>1<<2)|0;tb=c[vb>>2]|0;c[vb>>2]=wb;c[bb>>2]=tb;lc=cd;mc=dd;nc=ed;oc=fd;pc=kc;qc=wb;break}}while(0);wb=c[f>>2]|0;if(pc>>>0>=(c[R>>2]|0)-wb>>3>>>0){O=117;break b}tb=c[H>>2]|0;if(qc>>>0>=(((c[E>>2]|0)-tb|0)/7|0)>>>0){O=117;break b}if(z)c[(c[F>>2]|0)+(Pa+Ja<<2)>>2]=qc<<16|pc;bb=c[123158]|0;e:do if(z&(eb|0)==2&(_&(bb&1|0)!=0)){vb=g+(Z(Pa+Ja|0,n)|0)|0;c[vb>>2]=-1;c[vb+4>>2]=-1}else{vb=wb+(pc<<3)|0;$a=a[vb>>0]|0;Pc=a[vb+1>>0]|0;Qc=d[vb+2>>0]|0;vb=(Pc&255)<31?(Pc&255)<<5:992;Pc=(Qc>>>0<31?Qc:31)|vb;Qc=c[y>>2]|0;Rc=((vb|(($a&255)<31?($a&255)<<10:31744))>>>7&248|Qc&7)&255;a[y>>0]=Rc;$a=(Pc>>>2&248|Qc>>>8&7)&255;a[$>>0]=$a;vb=(Qc>>>16&7|Pc<<3)&255;a[aa>>0]=vb;Pc=wb+(pc<<3)+4|0;xb=Qc>>>24&31|d[Pc>>0]<<5;a[G>>0]=xb;Qc=xb&227|d[Pc>>0]<<2;a[G>>0]=Qc;Pc=tb+(qc*7|0)|0;switch(m|0){case 0:{xb=Z(Pa+Ja|0,n)|0;c[g+xb>>2]=c[y>>2];rb=a[tb+(qc*7|0)+1>>0]|0;Wc=a[tb+(qc*7|0)+2>>0]|0;Sc=a[tb+(qc*7|0)+3>>0]|0;a[g+(xb+4)>>0]=a[Pc>>0]|0;a[g+(xb+5)>>0]=rb;a[g+(xb+6)>>0]=Wc;a[g+(xb+7)>>0]=Sc;break e;break}case 1:{Sc=a[tb+(qc*7|0)+1>>0]|0;xb=a[tb+(qc*7|0)+2>>0]|0;Wc=a[tb+(qc*7|0)+3>>0]|0;a[ba>>0]=a[Pc>>0]|0;a[ca>>0]=Sc;a[da>>0]=xb;a[ea>>0]=Wc;Wc=Z(Pa+Ja|0,n)|0;xb=g+Wc|0;if(!(bb&6)){gb(xb,y,Pc,p);break e}gb(xb,y,Pc,p);Sc=c[123158]|0;if(Sc&2){a[xb>>0]=-1;a[g+(Wc+1)>>0]=-1;a[g+(Wc+2)>>0]=0;a[g+(Wc+3)>>0]=0;break e}if(!(Sc&4))break e;a[g+(Wc+4)>>0]=0;a[g+(Wc+5)>>0]=0;a[g+(Wc+6)>>0]=85;a[g+(Wc+7)>>0]=85;break e;break}case 2:{Wc=a[tb+(qc*7|0)+1>>0]|0;Sc=a[tb+(qc*7|0)+2>>0]|0;xb=a[tb+(qc*7|0)+3>>0]|0;a[ba>>0]=a[Pc>>0]|0;a[ca>>0]=Wc;a[da>>0]=Sc;a[ea>>0]=xb;xb=Z(Pa+Ja|0,n)|0;Sc=g+xb|0;Wc=a[tb+(qc*7|0)+4>>0]|0;rb=a[tb+(qc*7|0)+5>>0]|0;hd=a[tb+(qc*7|0)+6>>0]|0;id=Wc&255;jd=rb&255;kd=(Rc&255)>>>3;a[t>>0]=kd;a[fa>>0]=($a&255)>>>3;a[ga>>0]=(vb&255)>>>3;a[ha>>0]=-1;ld=Qc>>>5&7;f:do if(Wc<<24>>24==rb<<24>>24){Cb(v,t,ld);md=a[v+(id<<2)>>0]|0;a[Sc>>0]=md;a[g+(xb+1)>>0]=md;md=g+(xb+2)|0;a[md>>0]=0;a[md+1>>0]=0;a[md+2>>0]=0;a[md+3>>0]=0;a[md+4>>0]=0;a[md+5>>0]=0}else{if(hd<<24>>24==2){Cb(u,t,ld);md=a[u+(jd<<2)>>0]|0;a[Sc>>0]=a[u+(id<<2)>>0]|0;a[g+(xb+1)>>0]=md;md=0;while(1){nd=md<<2;od=0;do{pd=(od<<2)+md|0;qd=pd&7;rd=7-(pd>>>3)|0;pd=(od+nd|0)*3|0;sd=pd>>>3;td=pd&7;ud=Sc+2+sd|0;vd=d[ud>>0]|0;wd=pd>>>0<40;if(wd)xd=d[sd+1+(Sc+2)>>0]<<8|vd;else xd=vd;vd=xd&~(7<<td)|((a[645592+((d[y+(rd+-2)>>0]|0)>>>qd<<1&2|(d[y+rd>>0]|0)>>>qd&1)>>0]|0)==rb<<24>>24&1)<<td;a[ud>>0]=vd;if(wd)a[sd+1+(Sc+2)>>0]=vd>>>8;od=od+1|0}while((od|0)!=4);md=md+1|0;if((md|0)==4)break f}}g:do switch(Wc<<24>>24){case 0:{if(rb<<24>>24==3){yd=0;break g}if(rb<<24>>24==2)yd=2;else O=155;break}case 1:{if(rb<<24>>24==3){yd=1;break g}if(rb<<24>>24==2)yd=3;else O=155;break}default:O=155}while(0);if((O|0)==155){O=0;yd=4}md=yd>>>0>3?0:yd;od=ld<<5|kd&255;a[Sc>>0]=a[633056+(od<<4)+(md<<2)>>0]|0;a[g+(xb+1)>>0]=a[633056+(od<<4)+(md<<2)+1>>0]|0;nd=e[633056+(od<<4)+(md<<2)+2>>1]|0;md=0;do{od=md<<2;vd=0;do{sd=(vd<<2)+md|0;wd=sd&7;ud=7-(sd>>>3)|0;sd=(vd+od|0)*3|0;td=sd>>>3;qd=sd&7;rd=Sc+2+td|0;pd=d[rd>>0]|0;zd=sd>>>0<40;if(zd)Ad=d[td+1+(Sc+2)>>0]<<8|pd;else Ad=pd;pd=Ad&~(7<<qd)|(nd>>>((d[645592+((d[y+(ud+-2)>>0]|0)>>>wd<<1&2|(d[y+ud>>0]|0)>>>wd&1)>>0]|0)*3|0)&7)<<qd;a[rd>>0]=pd;if(zd)a[td+1+(Sc+2)>>0]=pd>>>8;vd=vd+1|0}while((vd|0)!=4);md=md+1|0}while((md|0)!=4)}while(0);break e;break}case 3:{Sc=a[tb+(qc*7|0)+1>>0]|0;xb=a[tb+(qc*7|0)+2>>0]|0;kd=a[tb+(qc*7|0)+3>>0]|0;a[ba>>0]=a[Pc>>0]|0;a[ca>>0]=Sc;a[da>>0]=xb;a[ea>>0]=kd;kd=Pa+Ja|0;xb=y;Sc=c[xb>>2]|0;ld=c[xb+4>>2]|0;xb=N+(kd<<3)|0;c[xb>>2]=Sc;c[xb+4>>2]=ld;ld=Sc>>>3&31;xb=Qc>>>5&7;rb=d[tb+(qc*7|0)+5>>0]|0;Wc=Sc>>>21&7;id=Sc>>>13&7;jd=Sc>>>8;hd=Sc>>>16;Sc=ld<<3|ld>>>2;ld=c[509152+(xb<<4)+(d[tb+(qc*7|0)+4>>0]<<2)>>2]|0;db=ld+Sc|0;if(db>>>0>255)if((db|0)<0){Bd=0;O=159}else Cd=255;else{Bd=db;O=159}if((O|0)==159){O=0;Cd=Bd}db=jd&248|id;id=ld+db|0;if(id>>>0>255)if((id|0)<0){Dd=0;O=162}else Ed=255;else{Dd=id;O=162}if((O|0)==162){O=0;Ed=Dd}id=hd&248|Wc;Wc=ld+id|0;if(Wc>>>0>255)if((Wc|0)<0){Fd=0;O=165}else Gd=255;else{Fd=Wc;O=165}if((O|0)==165){O=0;Gd=Fd}Wc=Gd&255;ld=c[509152+(xb<<4)+(rb<<2)>>2]|0;rb=ld+Sc|0;if(rb>>>0>255)if((rb|0)<0){Hd=0;O=168}else Id=255;else{Hd=rb;O=168}if((O|0)==168){O=0;Id=Hd}rb=ld+db|0;if(rb>>>0>255)if((rb|0)<0){Jd=0;O=171}else Kd=255;else{Jd=rb;O=171}if((O|0)==171){O=0;Kd=Jd}rb=ld+id|0;if(rb>>>0>255)if((rb|0)<0){Ld=0;O=174}else Md=255;else{Ld=rb;O=174}if((O|0)==174){O=0;Md=Ld}c[M+(kd<<2)>>2]=((((Cd&255)*31|0)>>>0)/255|0)<<10|((((Ed&255)*31|0)>>>0)/255|0)<<5|(((Wc&255)/17|0)&255)<<1|(((((Md&255)*31|0)+254|0)>>>0)/255|0|(((((Id&255)*31|0)+254|0)>>>0)/255|0)<<10|(((((Kd&255)*31|0)+254|0)>>>0)/255|0)<<5)<<16|-2147450880;break e;break}case 4:{Wc=a[tb+(qc*7|0)+1>>0]|0;kd=a[tb+(qc*7|0)+2>>0]|0;rb=a[tb+(qc*7|0)+3>>0]|0;a[ba>>0]=a[Pc>>0]|0;a[ca>>0]=Wc;a[da>>0]=kd;a[ea>>0]=rb;rb=Z(Pa+Ja|0,n)|0;kd=g+rb|0;Wc=a[tb+(qc*7|0)+4>>0]|0;id=Wc&255;ld=d[tb+(qc*7|0)+5>>0]|0;db=c[y>>2]|0;Sc=db>>>29;xb=db>>>3&31;hd=db>>>11&31;jd=db>>>19&31;if((d[tb+(qc*7|0)+6>>0]|0)<3){db=kd;sb=c[db+4>>2]&-2147352577|2147352576;cb=kd;c[cb>>2]=c[db>>2]&-128|64;c[cb+4>>2]=sb;a[t>>0]=xb;a[ia>>0]=hd;a[ja>>0]=jd;a[ka>>0]=-1;Cb(v,t,Sc);sb=c[v+(id<<2)>>2]|0;cb=((sb>>>8&1)+(sb&1)+(sb>>>16&1)|0)>>>0>1;db=c[v+(ld<<2)>>2]|0;ab=((db>>>8&1)+(db&1)+(db>>>16&1)|0)>>>0>1;md=sb>>>1&127;nd=kd;vd=c[nd>>2]|0;od=c[nd+4>>2]|0;nd=Oc(md|0,0,7)|0;pd=B;td=sb>>>9&127;zd=Oc(td|0,0,21)|0;rd=B;qd=sb>>>17&127;sb=Oc(qd|0,0,35)|0;wd=B;ud=Oc(cb&1|0,0,63)|0;sd=B;Nd=db>>>1&127;Od=Oc(Nd|0,0,14)|0;Pd=B;Qd=db>>>9&127;Rd=Oc(Qd|0,0,28)|0;Sd=B;Td=db>>>17&127;db=Oc(Td|0,0,42)|0;Ud=nd|vd&127|zd|sb|Od|Rd|db|ud;ud=pd|od&2147352576|rd|wd|Pd|Sd|B|sd;sd=kd;c[sd>>2]=Ud;c[sd+4>>2]=ud;sd=Oc(Nd|0,0,7)|0;Nd=B;Sd=Oc(Qd|0,0,21)|0;Qd=B;Pd=Oc(Td|0,0,35)|0;Td=B;wd=Oc(md|0,0,14)|0;md=B;rd=Oc(td|0,0,28)|0;td=B;od=Oc(qd|0,0,42)|0;qd=rd|wd|od|sd|Sd|Pd;Pd=td|md|B|Nd|Qd|Td;Td=Ud;Ud=ud;ud=ab&1;Qd=0;Nd=ab&1;ab=cb&1;cb=1;md=0;td=0;while(1){Sd=Qd;sd=Td;od=Ud;wd=Nd;rd=ud;pd=ab;db=cb;Rd=md;Od=0;while(1){sb=(Od<<2)+td|0;zd=sb&7;vd=7-(sb>>>3)|0;sb=(a[645592+((d[y+(vd+-2)>>0]|0)>>>zd<<1&2|(d[y+vd>>0]|0)>>>zd&1)>>0]|0)==Wc<<24>>24?Rd:Rd^15;do if(!(Od|td)){if(!(sb&8)){Vd=sd;Wd=od;Xd=pd;Yd=wd;Zd=rd;_d=Sd;$d=3;ae=sb;be=Rd;break}zd=Oc(wd|0,0,63)|0;vd=qd|sd&127|zd;zd=Pd|od&2147352576|B;nd=kd;c[nd>>2]=vd;c[nd+4>>2]=zd;Vd=vd;Wd=zd;Xd=wd;Yd=pd;Zd=pd|rd&-2;_d=Sd;$d=3;ae=0;be=15}else{Vd=sd;Wd=od;Xd=pd;Yd=wd;Zd=rd;_d=Sd;$d=4;ae=sb;be=Rd}while(0);sb=Oc(ae|0,0,db|0)|0;zd=sb|Zd;sb=B|_d;vd=$d+db|0;Od=Od+1|0;if((Od|0)==4){ce=Xd;de=Yd;ee=vd;fe=zd;ge=sb;he=Vd;ie=Wd;je=be;break}else{Sd=sb;sd=Vd;od=Wd;wd=Yd;rd=zd;pd=Xd;db=vd;Rd=be}}Rd=td+1|0;if((Rd|0)==4){ke=fe;le=ge;break}else{Td=he;Ud=ie;ud=fe;Qd=ge;Nd=de;ab=ce;cb=ee;md=je;td=Rd}}td=g+(rb+8)|0;c[td>>2]=ke;c[td+4>>2]=le}else{td=Sc<<5;md=c[491608+((xb|td)<<2)>>2]|0;cb=(c[509088+(id<<4)+(ld<<2)>>2]|0)*48|0;ab=c[491608+((hd|td)<<2)>>2]|0;Nd=c[491608+((jd|td)<<2)>>2]|0;td=(c[ab+(cb<<2)>>2]|0)+(c[md+(cb<<2)>>2]|0)+(c[Nd+(cb<<2)>>2]|0)<<14;Qd=cb|1;ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|1;Qd=cb|2;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|2;Qd=Ud>>>0<td>>>0?Ud:td;td=cb|3;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|3;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb|4;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|4;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb|5;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|5;Qd=Ud>>>0<td>>>0?Ud:td;td=cb|6;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|6;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb|7;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|7;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb|8;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|8;Qd=Ud>>>0<td>>>0?Ud:td;td=cb|9;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|9;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb|10;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|10;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb|11;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|11;Qd=Ud>>>0<td>>>0?Ud:td;td=cb|12;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|12;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb|13;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|13;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb|14;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|14;Qd=Ud>>>0<td>>>0?Ud:td;td=cb|15;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|15;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb+16|0;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|16;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb+17|0;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|17;Qd=Ud>>>0<td>>>0?Ud:td;td=cb+18|0;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|18;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb+19|0;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|19;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb+20|0;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|20;Qd=Ud>>>0<td>>>0?Ud:td;td=cb+21|0;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|21;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb+22|0;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|22;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb+23|0;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|23;Qd=Ud>>>0<td>>>0?Ud:td;td=cb+24|0;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|24;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb+25|0;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|25;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb+26|0;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|26;Qd=Ud>>>0<td>>>0?Ud:td;td=cb+27|0;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|27;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb+28|0;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|28;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb+29|0;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|29;Qd=Ud>>>0<td>>>0?Ud:td;td=cb+30|0;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|30;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb+31|0;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|31;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb+32|0;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|32;Qd=Ud>>>0<td>>>0?Ud:td;td=cb+33|0;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|33;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb+34|0;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|34;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb+35|0;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|35;Qd=Ud>>>0<td>>>0?Ud:td;td=cb+36|0;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|36;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb+37|0;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|37;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb+38|0;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|38;Qd=Ud>>>0<td>>>0?Ud:td;td=cb+39|0;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|39;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb+40|0;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|40;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb+41|0;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|41;Qd=Ud>>>0<td>>>0?Ud:td;td=cb+42|0;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|42;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb+43|0;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|43;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb+44|0;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|44;Qd=Ud>>>0<td>>>0?Ud:td;td=cb+45|0;Ud=(c[ab+(td<<2)>>2]|0)+(c[md+(td<<2)>>2]|0)+(c[Nd+(td<<2)>>2]|0)<<14|45;td=Ud>>>0<ud>>>0?Ud:ud;ud=cb+46|0;Ud=(c[ab+(ud<<2)>>2]|0)+(c[md+(ud<<2)>>2]|0)+(c[Nd+(ud<<2)>>2]|0)<<14|46;ud=Ud>>>0<Qd>>>0?Ud:Qd;Qd=cb+47|0;Ud=(c[ab+(Qd<<2)>>2]|0)+(c[md+(Qd<<2)>>2]|0)+(c[Nd+(Qd<<2)>>2]|0)<<14|47;Qd=Ud>>>0<td>>>0?Ud:td;td=(ud>>>0<Qd>>>0?ud:Qd)&255;Qd=kd;ud=c[Qd>>2]&-128|64;Ud=c[Qd+4>>2]&-2147352577|2147352576;Qd=kd;c[Qd>>2]=ud;c[Qd+4>>2]=Ud;Qd=d[ea>>0]|0;Td=d[ca>>0]|0;Pd=td+cb|0;cb=md+(Pd<<2)|0;md=(c[cb>>2]|0)>>>18&127;if(!(a[(d[645592+(Td<<1&2|Qd&1)>>0]|0)+(643943+(td<<2))>>0]&8)){qd=Oc(md|0,0,7)|0;Wc=qd|ud&-16320;qd=B|Ud;Rd=kd;c[Rd>>2]=Wc;c[Rd+4>>2]=qd;Rd=ab+(Pd<<2)|0;db=Oc((c[Rd>>2]|0)>>>18|0,0,21)|0;pd=db&266338304|Wc&-266338368;Wc=kd;c[Wc>>2]=pd;c[Wc+4>>2]=qd;Wc=Nd+(Pd<<2)|0;Oc((c[Wc>>2]|0)>>>18|0,0,35)|0;db=qd&-1017|B&1016;qd=kd;c[qd>>2]=pd;c[qd+4>>2]=db;qd=Oc((c[cb>>2]|0)>>>25|0,0,14)|0;rd=pd&-2080832|qd;qd=db|B;db=kd;c[db>>2]=rd;c[db+4>>2]=qd;db=Oc((c[Rd>>2]|0)>>>25|0,0,28)|0;Rd=rd&268435392|db;db=qd&-8|B;qd=kd;c[qd>>2]=Rd;c[qd+4>>2]=db;qd=Oc((c[Wc>>2]|0)>>>25|0,0,42)|0;Wc=kd;c[Wc>>2]=Rd&-64|qd;c[Wc+4>>2]=db&2147353599|B;db=g+(rb+8)|0;Wc=db;qd=c[Wc+4>>2]|0;Rd=db;c[Rd>>2]=c[Wc>>2]|1;c[Rd+4>>2]=qd;me=db;ne=1;oe=0;pe=644135}else{db=Oc(md|0,0,14)|0;md=db|ud&-2080832;ud=B|Ud;Ud=kd;c[Ud>>2]=md;c[Ud+4>>2]=ud;Ud=ab+(Pd<<2)|0;ab=Oc((c[Ud>>2]|0)>>>18|0,0,28)|0;db=ab&-268435456|md&268435392;md=B&7|ud&-8;ud=kd;c[ud>>2]=db;c[ud+4>>2]=md;ud=Nd+(Pd<<2)|0;Oc((c[ud>>2]|0)>>>18|0,0,42)|0;Pd=md&-130049|B&130048;md=kd;c[md>>2]=db;c[md+4>>2]=Pd;md=Oc((c[cb>>2]|0)>>>25|0,0,7)|0;cb=db&-16320|md;md=Pd|B;Pd=kd;c[Pd>>2]=cb;c[Pd+4>>2]=md;Pd=Oc((c[Ud>>2]|0)>>>25|0,0,21)|0;Ud=cb&-266338368|Pd;Pd=md|B;md=kd;c[md>>2]=Ud;c[md+4>>2]=Pd;md=Oc((c[ud>>2]|0)>>>25|0,0,35)|0;ud=kd;c[ud>>2]=md|Ud&-64;c[ud+4>>2]=B|Pd&2147482631|-2147483648;Pd=g+(rb+8)|0;ud=Pd;Ud=c[ud+4>>2]|0;md=Pd;c[md>>2]=c[ud>>2]&-2;c[md+4>>2]=Ud;me=Pd;ne=0;oe=0;pe=644327}Pd=Td<<4&240|Qd&15;Ud=Oc(d[(d[644568+Pd>>0]|0)+(pe+(td<<2))>>0]|0,0,1)|0;md=B;ud=Oc(d[(d[644824+Pd>>0]|0)+(pe+(td<<2))>>0]|0,0,16)|0;cb=B;db=d[(d[645080+Pd>>0]|0)+(pe+(td<<2))>>0]|0;Nd=Oc(d[(d[645336+Pd>>0]|0)+(pe+(td<<2))>>0]|0,0,48)|0;Pd=B;ab=Td&240|Qd>>>4;Qd=Oc(d[(d[644568+ab>>0]|0)+(pe+(td<<2))>>0]|0,0,4)|0;Td=B;qd=Oc(d[(d[644824+ab>>0]|0)+(pe+(td<<2))>>0]|0,0,20)|0;Rd=B;Wc=Oc(d[(d[645080+ab>>0]|0)+(pe+(td<<2))>>0]|0,0,36)|0;rd=B;pd=Oc(d[(d[645336+ab>>0]|0)+(pe+(td<<2))>>0]|0,0,52)|0;ab=B;wd=d[da>>0]|0;od=d[ba>>0]|0;sd=od<<4&240|wd&15;Sd=Oc(d[(d[644568+sd>>0]|0)+(pe+(td<<2))>>0]|0,0,8)|0;Od=B;vd=Oc(d[(d[644824+sd>>0]|0)+(pe+(td<<2))>>0]|0,0,24)|0;zd=B;sb=Oc(d[(d[645080+sd>>0]|0)+(pe+(td<<2))>>0]|0,0,40)|0;nd=B;qe=Oc(d[(d[645336+sd>>0]|0)+(pe+(td<<2))>>0]|0,0,56)|0;sd=B;re=od&240|wd>>>4;wd=Oc(d[(d[644568+re>>0]|0)+(pe+(td<<2))>>0]|0,0,12)|0;od=B;se=Oc(d[(d[644824+re>>0]|0)+(pe+(td<<2))>>0]|0,0,28)|0;te=B;ue=Oc(d[(d[645080+re>>0]|0)+(pe+(td<<2))>>0]|0,0,44)|0;ve=B;we=Oc(d[(d[645336+re>>0]|0)+(pe+(td<<2))>>0]|0,0,60)|0;td=me;c[td>>2]=Ud|ne|ud|Nd|Qd|qd|Wc|pd|Sd|vd|sb|qe|wd|se|ue|we;c[td+4>>2]=md|oe|cb|db|Pd|Td|Rd|rd|ab|Od|zd|nd|sd|od|te|ve|B}break e;break}case 5:{ve=a[tb+(qc*7|0)+1>>0]|0;te=a[tb+(qc*7|0)+2>>0]|0;od=a[tb+(qc*7|0)+3>>0]|0;a[ba>>0]=a[Pc>>0]|0;a[ca>>0]=ve;a[da>>0]=te;a[ea>>0]=od;od=Z(Pa+Ja|0,n)|0;te=g+od|0;ve=a[tb+(qc*7|0)+4>>0]|0;sd=a[tb+(qc*7|0)+5>>0]|0;nd=(Rc&255)>>>3;a[t>>0]=nd;a[la>>0]=($a&255)>>>3;a[ma>>0]=(vb&255)>>>3;a[na>>0]=-1;zd=Qc>>>5&7;if(ve<<24>>24==sd<<24>>24){Cb(v,t,zd);b[te>>1]=d[v+((ve&255)<<2)>>0]|7424;Od=g+(od+2)|0;a[Od>>0]=a[641760]|0;a[Od+1>>0]=a[641761]|0;a[Od+2>>0]=a[641762]|0;a[Od+3>>0]=a[641763]|0;a[Od+4>>0]=a[641764]|0;a[Od+5>>0]=a[641765]|0}else{h:do switch(ve<<24>>24){case 0:{if(sd<<24>>24==3){xe=0;break h}if(sd<<24>>24==2)xe=2;else O=200;break}case 1:{if(sd<<24>>24==3){xe=1;break h}if(sd<<24>>24==2)xe=3;else O=200;break}default:O=200}while(0);if((O|0)==200){O=0;xe=4}sd=xe>>>0>3?0:xe;ve=zd<<5|nd&255;Qc=a[637152+(ve<<4)+(sd<<2)+1>>0]|0;b[te>>1]=(Qc&255)<<12&65535|d[637152+(ve<<4)+(sd<<2)>>0]|((Qc&255)>>>4&255)<<8&65535;Qc=e[637152+(ve<<4)+(sd<<2)+2>>1]|0;sd=0;ve=0;vb=0;while(1){$a=7-(vb>>>3)|0;Rc=Oc(Qc>>>((d[645592+((d[y+($a+-2)>>0]|0)>>>vb<<1&2|(d[y+$a>>0]|0)>>>vb&1)>>0]|0)*3|0)&7|0,0,(Z(vb,-3)|0)+45|0)|0;$a=B|ve;Pc=vb+4|0;rb=7-(Pc>>>3)|0;kd=Oc(Qc>>>((d[645592+((d[y+(rb+-2)>>0]|0)>>>Pc<<1&2|(d[y+rb>>0]|0)>>>Pc&1)>>0]|0)*3|0)&7|0,0,(Z(Pc,-3)|0)+45|0)|0;Pc=$a|B;$a=vb+8|0;rb=$a&7;jd=7-($a>>>3)|0;hd=Oc(Qc>>>((d[645592+((d[y+(jd+-2)>>0]|0)>>>rb<<1&2|(d[y+jd>>0]|0)>>>rb&1)>>0]|0)*3|0)&7|0,0,(Z($a,-3)|0)+45|0)|0;$a=Pc|B;Pc=vb+12|0;rb=Pc&7;jd=7-(Pc>>>3)|0;ld=Oc(Qc>>>((d[645592+((d[y+(jd+-2)>>0]|0)>>>rb<<1&2|(d[y+jd>>0]|0)>>>rb&1)>>0]|0)*3|0)&7|0,0,(Z(Pc,-3)|0)+45|0)|0;Pc=Rc|sd|kd|hd|ld;ld=$a|B;vb=vb+1|0;if((vb|0)==4){ye=Pc;ze=ld;break}else{sd=Pc;ve=ld}}ve=Nc(ye|0,ze|0,40)|0;a[g+(od+2)>>0]=ve;a[g+(od+3)>>0]=ze;ve=Nc(ye|0,ze|0,24)|0;a[g+(od+4)>>0]=ve;ve=Nc(ye|0,ze|0,16)|0;a[g+(od+5)>>0]=ve;ve=Nc(ye|0,ze|0,8)|0;a[g+(od+6)>>0]=ve;a[g+(od+7)>>0]=ye}break e;break}default:break e}}while(0);Pa=Pa+1|0;if(Pa>>>0>=h>>>0){ya=lc;za=mc;Aa=nc;Ba=qb;Ca=oc;Da=Za;Ea=pc;Fa=_a;break c}else{Ma=mc;Na=nc;Oa=lc;Qa=qb;Ra=oc;Sa=Za;Ta=pc;Ua=_a}}}while(0);ra=ra+1|0;if(ra>>>0>=j>>>0){Ae=Da;O=204;break}else{oa=Aa;pa=za;qa=ya;sa=Ba;ta=Ca;ua=Da;va=Ea;wa=Fa}}if((O|0)==48){if(!N){L=0;break a}Ec(N);L=0;break a}else if((O|0)==51){if(!N){L=0;break a}Ec(N);L=0;break a}else if((O|0)==57){if(!N){L=0;break a}Ec(N);L=0;break a}else if((O|0)==103){if(!N){L=0;break a}Ec(N);L=0;break a}else if((O|0)==108){if(!N){L=0;break a}Ec(N);L=0;break a}else if((O|0)==117){if(!N){L=0;break a}Ec(N);L=0;break a}else if((O|0)==204)if(!Ae)break;else{L=0;break a}}while(0);if(J){wa=h+-1|0;va=j+-1|0;if(!wa)Be=0;else{ua=wa;ta=0;while(1){ua=ua>>>1;sa=ta+1|0;if(!ua){Be=sa;break}else ta=sa}}if(!va)Ce=0;else{ta=va;ua=0;while(1){ta=ta>>>1;sa=ua+1|0;if(!ta){Ce=sa;break}else ua=sa}}ua=Be>>>0<Ce>>>0?Be:Ce;ta=ua<<1;sa=(1<<ta)+-1|0;if((j|0)>0){qa=(h|0)>0;pa=(h|0)==(j|0);oa=w+4|0;ra=w+8|0;na=w+12|0;ma=t+32|0;la=u+32|0;ea=v+4|0;da=t+36|0;ca=u+36|0;ba=v+8|0;ka=t+40|0;ja=u+40|0;ia=t+16|0;ha=t+4|0;ga=t+20|0;fa=u+16|0;aa=u+4|0;$=u+20|0;_=t+8|0;R=t+24|0;X=u+8|0;W=u+24|0;Y=h>>>0>j>>>0;V=wa&1;Q=(wa|0)<0?wa:0;T=((wa|0)<1?wa:1)&wa;S=0;U=0;while(1){if(o){K=0;do{P=Z(K+U+-1&va,h)|0;xa=M+(P<<2)|0;c[v+(K<<2)>>2]=xa;Ua=c[M+(P+wa<<2)>>2]|0;Ta=Ua&30;c[t+(K<<2)>>2]=((((Ua>>>10&31)+(Ua>>>5&31)+(Ta>>>4|Ta)|0)*255|0)>>>0)/31|0;c[u+(K<<2)>>2]=((((Ua>>>26&31)+(Ua>>>21&31)+(Ua>>>16&31)|0)*255|0)>>>0)/31|0;Ua=c[xa>>2]|0;xa=Ua&30;c[t+16+(K<<2)>>2]=((((Ua>>>10&31)+(Ua>>>5&31)+(xa>>>4|xa)|0)*255|0)>>>0)/31|0;c[u+16+(K<<2)>>2]=((((Ua>>>26&31)+(Ua>>>21&31)+(Ua>>>16&31)|0)*255|0)>>>0)/31|0;Ua=c[M+(P+V<<2)>>2]|0;P=Ua&30;c[t+32+(K<<2)>>2]=((((Ua>>>10&31)+(Ua>>>5&31)+(P>>>4|P)|0)*255|0)>>>0)/31|0;c[u+32+(K<<2)>>2]=((((Ua>>>26&31)+(Ua>>>21&31)+(Ua>>>16&31)|0)*255|0)>>>0)/31|0;K=K+1|0}while((K|0)!=3)}else{K=0;do{Ua=K+U|0;P=Ua+-1|0;xa=Z(((Ua|0)<1?0:(P|0)>(va|0)?va:P)&va,h)|0;P=M+(xa<<2)|0;c[v+(K<<2)>>2]=P;Ua=c[P>>2]|0;P=Ua&30;c[t+(K<<2)>>2]=((((Ua>>>10&31)+(Ua>>>5&31)+(P>>>4|P)|0)*255|0)>>>0)/31|0;c[u+(K<<2)>>2]=((((Ua>>>26&31)+(Ua>>>21&31)+(Ua>>>16&31)|0)*255|0)>>>0)/31|0;Ua=c[M+(xa+Q<<2)>>2]|0;P=Ua&30;c[t+16+(K<<2)>>2]=((((Ua>>>10&31)+(Ua>>>5&31)+(P>>>4|P)|0)*255|0)>>>0)/31|0;c[u+16+(K<<2)>>2]=((((Ua>>>26&31)+(Ua>>>21&31)+(Ua>>>16&31)|0)*255|0)>>>0)/31|0;Ua=c[M+(xa+T<<2)>>2]|0;xa=Ua&30;c[t+32+(K<<2)>>2]=((((Ua>>>10&31)+(Ua>>>5&31)+(xa>>>4|xa)|0)*255|0)>>>0)/31|0;c[u+32+(K<<2)>>2]=((((Ua>>>26&31)+(Ua>>>21&31)+(Ua>>>16&31)|0)*255|0)>>>0)/31|0;K=K+1|0}while((K|0)!=3)}if(qa){K=e[641248+(U>>8<<1)>>1]<<16|e[641248+((U&255)<<1)>>1];Ua=c[v>>2]|0;xa=c[ea>>2]|0;P=c[ba>>2]|0;Ta=c[t>>2]|0;Sa=c[ia>>2]|0;Ra=c[ha>>2]|0;Qa=c[ga>>2]|0;Oa=c[u>>2]|0;Na=c[fa>>2]|0;Ma=c[aa>>2]|0;Pa=c[$>>2]|0;Ja=c[_>>2]|0;Ia=c[R>>2]|0;Ha=c[X>>2]|0;La=c[W>>2]|0;if(pa){Ka=Ra;Ga=Qa;tb=Sa;bb=Ta;wb=Ma;eb=Pa;ve=Na;sd=Oa;vb=Ja;Qc=Ia;te=Ha;nd=La;zd=S;ld=0;while(1){Pc=e[641248+(ld>>8<<1)>>1]<<17|K|e[641248+((ld&255)<<1)>>1]<<1;c[g+(Pc<<3)+4>>2]=c[M+(zd<<2)>>2];$a=N+(zd<<3)|0;hd=c[$a>>2]|0;kd=hd>>>29;Rc=(d[645596+(hd>>>11&31)>>0]|0)+(d[645596+(hd>>>3&31)>>0]|0)+(d[645596+(hd>>>19&31)>>0]|0)<<4;c[w>>2]=Rc+(c[509280+(kd<<4)+8>>2]|0);c[oa>>2]=Rc+(c[509280+(kd<<4)+12>>2]|0);c[ra>>2]=Rc+(c[509280+(kd<<4)+4>>2]|0);c[na>>2]=(c[509280+(kd<<4)>>2]|0)+Rc;ld=ld+1|0;Rc=(o?ld:(ld|0)>(wa|0)?wa:ld)&wa;kd=c[Ua+(Rc<<2)>>2]|0;hd=kd&30;rb=((((kd>>>10&31)+(kd>>>5&31)+(hd>>>4|hd)|0)*255|0)>>>0)/31|0;hd=((((kd>>>26&31)+(kd>>>21&31)+(kd>>>16&31)|0)*255|0)>>>0)/31|0;kd=c[xa+(Rc<<2)>>2]|0;jd=kd&30;id=((((kd>>>10&31)+(kd>>>5&31)+(jd>>>4|jd)|0)*255|0)>>>0)/31|0;jd=((((kd>>>26&31)+(kd>>>21&31)+(kd>>>16&31)|0)*255|0)>>>0)/31|0;kd=c[P+(Rc<<2)>>2]|0;Rc=kd&30;xb=((((kd>>>10&31)+(kd>>>5&31)+(Rc>>>4|Rc)|0)*255|0)>>>0)/31|0;Rc=((((kd>>>26&31)+(kd>>>21&31)+(kd>>>16&31)|0)*255|0)>>>0)/31|0;kd=d[$a+7>>0]|0;Sc=d[$a+5>>0]|0;Od=Sc<<4&240|kd&15;ab=Sc&240|kd>>>4;kd=d[$a+6>>0]|0;Sc=d[$a+4>>0]|0;$a=Sc<<4&240|kd&15;rd=Sc&240|kd>>>4;kd=Ka+Ga|0;Sc=kd+tb+bb<<2;Rd=wb+eb|0;Td=Rd+ve+sd<<2;Pd=Td-Sc|0;db=(c[w+(d[644568+Od>>0]<<2)>>2]|0)-Sc<<4;cb=(Td|0)<(Sc|0);Sc=cb?0-db|0:db;db=cb?0-Pd|0:Pd;Pd=bb<<1;cb=tb*6|0;Td=Ga*6|0;md=(Ka<<1)+Td+cb+Pd|0;td=sd<<1;we=ve*6|0;ue=eb*6|0;se=(wb<<1)+ue+we+td|0;wd=se-md|0;qe=(c[w+(d[644568+ab>>0]<<2)>>2]|0)-md<<4;sb=(se|0)<(md|0);md=sb?0-qe|0:qe;qe=sb?0-wd|0:wd;wd=(Ka*6|0)+Td+(tb<<1)+Pd|0;Pd=(wb*6|0)+ue+(ve<<1)+td|0;td=Pd-wd|0;sb=(c[w+(d[644824+Od>>0]<<2)>>2]|0)-wd<<4;se=(Pd|0)<(wd|0);wd=se?0-sb|0:sb;sb=se?0-td|0:td;td=tb*3|0;se=Ka*3|0;Pd=Ga*9|0;vd=se+Pd+bb+td|0;Sd=ve*3|0;pd=wb*3|0;Wc=eb*9|0;qd=pd+Wc+sd+Sd|0;Qd=qd-vd|0;Nd=(c[w+(d[644824+ab>>0]<<2)>>2]|0)-vd<<4;ud=(qd|0)<(vd|0);vd=ud?0-Nd|0:Nd;Nd=ud?0-Qd|0:Qd;Qd=tb+Ga<<3;ud=ve+eb<<3;qd=ud-Qd|0;Ud=(c[w+(d[644568+$a>>0]<<2)>>2]|0)-Qd<<4;re=(ud|0)<(Qd|0);Qd=re?0-Ud|0:Ud;Ud=re?0-qd|0:qd;qd=cb+Td+(rb<<1)+(id<<1)|0;Td=we+ue+(hd<<1)+(jd<<1)|0;ue=Td-qd|0;we=(c[w+(d[644568+rd>>0]<<2)>>2]|0)-qd<<4;cb=(Td|0)<(qd|0);qd=cb?0-we|0:we;we=cb?0-ue|0:ue;ue=Ga*12|0;cb=(tb<<2)+ue|0;Td=eb*12|0;re=(ve<<2)+Td|0;ud=re-cb|0;De=(c[w+(d[644824+$a>>0]<<2)>>2]|0)-cb<<4;Ee=(re|0)<(cb|0);cb=Ee?0-De|0:De;De=Ee?0-ud|0:ud;ud=id*3|0;Ee=td+Pd+rb+ud|0;td=jd*3|0;re=Sd+Wc+hd+td|0;Sd=re-Ee|0;Fe=(c[w+(d[644824+rd>>0]<<2)>>2]|0)-Ee<<4;Ge=(re|0)<(Ee|0);Ee=Ge?0-Fe|0:Fe;Fe=Ge?0-Sd|0:Sd;Sd=kd<<3;Ge=Rd<<3;re=Ge-Sd|0;He=(c[w+(d[645080+Od>>0]<<2)>>2]|0)-Sd<<4;Ie=(Ge|0)<(Sd|0);Sd=Ie?0-He|0:He;He=Ie?0-re|0:re;re=(Ka<<2)+ue|0;Ie=(wb<<2)+Td|0;Ge=Ie-re|0;Je=(c[w+(d[645080+ab>>0]<<2)>>2]|0)-re<<4;Ke=(Ie|0)<(re|0);re=Ke?0-Je|0:Je;Je=Ke?0-Ge|0:Ge;Ge=(vb+Qc<<1)+(kd*6|0)|0;kd=(te+nd<<1)+(Rd*6|0)|0;Rd=kd-Ge|0;Ke=(c[w+(d[645336+Od>>0]<<2)>>2]|0)-Ge<<4;Od=(kd|0)<(Ge|0);Ge=Od?0-Ke|0:Ke;Ke=Od?0-Rd|0:Rd;Rd=Qc*3|0;Od=Rd+vb+Pd+se|0;se=nd*3|0;kd=se+te+Wc+pd|0;pd=kd-Od|0;Ie=(c[w+(d[645336+ab>>0]<<2)>>2]|0)-Od<<4;ab=(kd|0)<(Od|0);Od=ab?0-pd|0:pd;pd=ab?0-Ie|0:Ie;Ie=Ga<<4;ab=eb<<4;kd=ab-Ie|0;Le=(c[w+(d[645080+$a>>0]<<2)>>2]|0)-Ie<<4;Me=(ab|0)<(Ie|0);Ie=Me?0-kd|0:kd;kd=Me?0-Le|0:Le;Le=(id<<2)+ue|0;Me=(jd<<2)+Td|0;ab=Me-Le|0;Ne=(c[w+(d[645080+rd>>0]<<2)>>2]|0)-Le<<4;Oe=(Me|0)<(Le|0);Le=Oe?0-ab|0:ab;ab=Oe?0-Ne|0:Ne;Ne=ue+(Qc<<2)|0;ue=Td+(nd<<2)|0;Td=ue-Ne|0;Oe=(c[w+(d[645336+$a>>0]<<2)>>2]|0)-Ne<<4;$a=(ue|0)<(Ne|0);Ne=$a?0-Td|0:Td;Td=$a?0-Oe|0:Oe;Oe=Pd+Rd+ud+xb|0;ud=Wc+se+td+Rc|0;td=ud-Oe|0;se=(c[w+(d[645336+rd>>0]<<2)>>2]|0)-Oe<<4;rd=(ud|0)<(Oe|0);Oe=rd?0-td|0:td;td=rd?0-se|0:se;c[g+(Pc<<3)>>2]=((md|0)>(qe*13|0)?12:(md|0)>(qe<<3|0)?8:(md|0)>(qe*3|0)?4:0)|((Sc|0)>(db*13|0)?3:(Sc|0)>(db<<3|0)?2:(Sc|0)>(db*3|0)&1)|((wd|0)>(sb*13|0)?768:(wd|0)>(sb<<3|0)?512:(wd|0)>(sb*3|0)?256:0)|((vd|0)>(Nd*13|0)?3072:(vd|0)>(Nd<<3|0)?2048:(vd|0)>(Nd*3|0)?1024:0)|((Qd|0)>(Ud*13|0)?48:(Qd|0)>(Ud<<3|0)?32:(Qd|0)>(Ud*3|0)?16:0)|((qd|0)>(we*13|0)?192:(qd|0)>(we<<3|0)?128:(qd|0)>(we*3|0)?64:0)|((cb|0)>(De*13|0)?12288:(cb|0)>(De<<3|0)?8192:(cb|0)>(De*3|0)?4096:0)|((Ee|0)>(Fe*13|0)?49152:(Ee|0)>(Fe<<3|0)?32768:(Ee|0)>(Fe*3|0)?16384:0)|((Sd|0)>(He*13|0)?196608:(Sd|0)>(He<<3|0)?131072:(Sd|0)>(He*3|0)?65536:0)|((re|0)>(Je*13|0)?786432:(re|0)>(Je<<3|0)?524288:(re|0)>(Je*3|0)?262144:0)|((Ge|0)>(Ke*13|0)?50331648:(Ge|0)>(Ke<<3|0)?33554432:(Ge|0)>(Ke*3|0)?16777216:0)|((pd|0)>(Od*13|0)?201326592:(pd|0)>(Od<<3|0)?134217728:(pd|0)>(Od*3|0)?67108864:0)|((kd|0)>(Ie*13|0)?3145728:(kd|0)>(Ie<<3|0)?2097152:(kd|0)>(Ie*3|0)?1048576:0)|((ab|0)>(Le*13|0)?12582912:(ab|0)>(Le<<3|0)?8388608:(ab|0)>(Le*3|0)?4194304:0)|((Td|0)>(Ne*13|0)?805306368:(Td|0)>(Ne<<3|0)?536870912:(Td|0)>(Ne*3|0)?268435456:0)|((td|0)>(Oe*13|0)?-1073741824:(td|0)>(Oe<<3|0)?-2147483648:(td|0)>(Oe*3|0)?1073741824:0);if((ld|0)==(j|0)){Pe=tb;Qe=rb;Re=Ga;Se=id;Te=ve;Ue=hd;Ve=eb;We=jd;Xe=Qc;Ye=xb;Ze=nd;_e=Rc;break}else{Oe=nd;td=Qc;Ne=ve;Td=eb;Le=tb;ab=Ga;Ga=id;tb=rb;eb=jd;ve=hd;Qc=xb;nd=Rc;zd=zd+1|0;te=Oe;vb=td;sd=Ne;wb=Td;bb=Le;Ka=ab}}}else{Ka=Ra;bb=Qa;wb=Sa;sd=Ta;vb=Ma;te=Pa;zd=Na;nd=Oa;Qc=Ja;ve=Ia;eb=Ha;tb=La;Ga=S;ld=0;while(1){ab=(e[641248+(ld>>8<<1)>>1]<<17|K|e[641248+((ld&255)<<1)>>1]<<1)&sa|(Y?ld:U)>>ua<<ta;c[g+(ab<<3)+4>>2]=c[M+(Ga<<2)>>2];Le=N+(Ga<<3)|0;Td=c[Le>>2]|0;Ne=Td>>>29;td=(d[645596+(Td>>>11&31)>>0]|0)+(d[645596+(Td>>>3&31)>>0]|0)+(d[645596+(Td>>>19&31)>>0]|0)<<4;c[w>>2]=td+(c[509280+(Ne<<4)+8>>2]|0);c[oa>>2]=td+(c[509280+(Ne<<4)+12>>2]|0);c[ra>>2]=td+(c[509280+(Ne<<4)+4>>2]|0);c[na>>2]=(c[509280+(Ne<<4)>>2]|0)+td;ld=ld+1|0;td=(o?ld:(ld|0)>(wa|0)?wa:ld)&wa;Ne=c[Ua+(td<<2)>>2]|0;Td=Ne&30;Oe=((((Ne>>>10&31)+(Ne>>>5&31)+(Td>>>4|Td)|0)*255|0)>>>0)/31|0;Td=((((Ne>>>26&31)+(Ne>>>21&31)+(Ne>>>16&31)|0)*255|0)>>>0)/31|0;Ne=c[xa+(td<<2)>>2]|0;Rc=Ne&30;xb=((((Ne>>>10&31)+(Ne>>>5&31)+(Rc>>>4|Rc)|0)*255|0)>>>0)/31|0;Rc=((((Ne>>>26&31)+(Ne>>>21&31)+(Ne>>>16&31)|0)*255|0)>>>0)/31|0;Ne=c[P+(td<<2)>>2]|0;td=Ne&30;hd=((((Ne>>>10&31)+(Ne>>>5&31)+(td>>>4|td)|0)*255|0)>>>0)/31|0;td=((((Ne>>>26&31)+(Ne>>>21&31)+(Ne>>>16&31)|0)*255|0)>>>0)/31|0;Ne=d[Le+7>>0]|0;jd=d[Le+5>>0]|0;rb=jd<<4&240|Ne&15;id=jd&240|Ne>>>4;Ne=d[Le+6>>0]|0;jd=d[Le+4>>0]|0;Le=jd<<4&240|Ne&15;Ie=jd&240|Ne>>>4;Ne=Ka+bb|0;jd=Ne+wb+sd<<2;kd=vb+te|0;Od=kd+zd+nd<<2;pd=Od-jd|0;Ke=(c[w+(d[644568+rb>>0]<<2)>>2]|0)-jd<<4;Ge=(Od|0)<(jd|0);jd=Ge?0-Ke|0:Ke;Ke=Ge?0-pd|0:pd;pd=sd<<1;Ge=wb*6|0;Od=bb*6|0;Je=(Ka<<1)+Od+Ge+pd|0;re=nd<<1;He=zd*6|0;Sd=te*6|0;Fe=(vb<<1)+Sd+He+re|0;Ee=Fe-Je|0;De=(c[w+(d[644568+id>>0]<<2)>>2]|0)-Je<<4;cb=(Fe|0)<(Je|0);Je=cb?0-De|0:De;De=cb?0-Ee|0:Ee;Ee=(Ka*6|0)+Od+(wb<<1)+pd|0;pd=(vb*6|0)+Sd+(zd<<1)+re|0;re=pd-Ee|0;cb=(c[w+(d[644824+rb>>0]<<2)>>2]|0)-Ee<<4;Fe=(pd|0)<(Ee|0);Ee=Fe?0-cb|0:cb;cb=Fe?0-re|0:re;re=wb*3|0;Fe=Ka*3|0;pd=bb*9|0;we=Fe+pd+sd+re|0;qd=zd*3|0;Ud=vb*3|0;Qd=te*9|0;Nd=Ud+Qd+nd+qd|0;vd=Nd-we|0;sb=(c[w+(d[644824+id>>0]<<2)>>2]|0)-we<<4;wd=(Nd|0)<(we|0);we=wd?0-sb|0:sb;sb=wd?0-vd|0:vd;vd=wb+bb<<3;wd=zd+te<<3;Nd=wd-vd|0;db=(c[w+(d[644568+Le>>0]<<2)>>2]|0)-vd<<4;Sc=(wd|0)<(vd|0);vd=Sc?0-db|0:db;db=Sc?0-Nd|0:Nd;Nd=Ge+Od+(Oe<<1)+(xb<<1)|0;Od=He+Sd+(Td<<1)+(Rc<<1)|0;Sd=Od-Nd|0;He=(c[w+(d[644568+Ie>>0]<<2)>>2]|0)-Nd<<4;Ge=(Od|0)<(Nd|0);Nd=Ge?0-He|0:He;He=Ge?0-Sd|0:Sd;Sd=bb*12|0;Ge=(wb<<2)+Sd|0;Od=te*12|0;Sc=(zd<<2)+Od|0;wd=Sc-Ge|0;qe=(c[w+(d[644824+Le>>0]<<2)>>2]|0)-Ge<<4;md=(Sc|0)<(Ge|0);Ge=md?0-qe|0:qe;qe=md?0-wd|0:wd;wd=xb*3|0;md=re+pd+Oe+wd|0;re=Rc*3|0;Sc=qd+Qd+Td+re|0;qd=Sc-md|0;Pc=(c[w+(d[644824+Ie>>0]<<2)>>2]|0)-md<<4;se=(Sc|0)<(md|0);md=se?0-Pc|0:Pc;Pc=se?0-qd|0:qd;qd=Ne<<3;se=kd<<3;Sc=se-qd|0;rd=(c[w+(d[645080+rb>>0]<<2)>>2]|0)-qd<<4;ud=(se|0)<(qd|0);qd=ud?0-rd|0:rd;rd=ud?0-Sc|0:Sc;Sc=(Ka<<2)+Sd|0;ud=(vb<<2)+Od|0;se=ud-Sc|0;Wc=(c[w+(d[645080+id>>0]<<2)>>2]|0)-Sc<<4;Rd=(ud|0)<(Sc|0);Sc=Rd?0-Wc|0:Wc;Wc=Rd?0-se|0:se;se=(Qc+ve<<1)+(Ne*6|0)|0;Ne=(eb+tb<<1)+(kd*6|0)|0;kd=Ne-se|0;Rd=(c[w+(d[645336+rb>>0]<<2)>>2]|0)-se<<4;rb=(Ne|0)<(se|0);se=rb?0-Rd|0:Rd;Rd=rb?0-kd|0:kd;kd=ve*3|0;rb=kd+Qc+pd+Fe|0;Fe=tb*3|0;Ne=Fe+eb+Qd+Ud|0;Ud=Ne-rb|0;ud=(c[w+(d[645336+id>>0]<<2)>>2]|0)-rb<<4;id=(Ne|0)<(rb|0);rb=id?0-Ud|0:Ud;Ud=id?0-ud|0:ud;ud=bb<<4;id=te<<4;Ne=id-ud|0;Pd=(c[w+(d[645080+Le>>0]<<2)>>2]|0)-ud<<4;$a=(id|0)<(ud|0);ud=$a?0-Ne|0:Ne;Ne=$a?0-Pd|0:Pd;Pd=(xb<<2)+Sd|0;$a=(Rc<<2)+Od|0;id=$a-Pd|0;ue=(c[w+(d[645080+Ie>>0]<<2)>>2]|0)-Pd<<4;Me=($a|0)<(Pd|0);Pd=Me?0-id|0:id;id=Me?0-ue|0:ue;ue=Sd+(ve<<2)|0;Sd=Od+(tb<<2)|0;Od=Sd-ue|0;Me=(c[w+(d[645336+Le>>0]<<2)>>2]|0)-ue<<4;Le=(Sd|0)<(ue|0);ue=Le?0-Od|0:Od;Od=Le?0-Me|0:Me;Me=pd+kd+wd+hd|0;wd=Qd+Fe+re+td|0;re=wd-Me|0;Fe=(c[w+(d[645336+Ie>>0]<<2)>>2]|0)-Me<<4;Ie=(wd|0)<(Me|0);Me=Ie?0-re|0:re;re=Ie?0-Fe|0:Fe;c[g+(ab<<3)>>2]=((Je|0)>(De*13|0)?12:(Je|0)>(De<<3|0)?8:(Je|0)>(De*3|0)?4:0)|((jd|0)>(Ke*13|0)?3:(jd|0)>(Ke<<3|0)?2:(jd|0)>(Ke*3|0)&1)|((Ee|0)>(cb*13|0)?768:(Ee|0)>(cb<<3|0)?512:(Ee|0)>(cb*3|0)?256:0)|((we|0)>(sb*13|0)?3072:(we|0)>(sb<<3|0)?2048:(we|0)>(sb*3|0)?1024:0)|((vd|0)>(db*13|0)?48:(vd|0)>(db<<3|0)?32:(vd|0)>(db*3|0)?16:0)|((Nd|0)>(He*13|0)?192:(Nd|0)>(He<<3|0)?128:(Nd|0)>(He*3|0)?64:0)|((Ge|0)>(qe*13|0)?12288:(Ge|0)>(qe<<3|0)?8192:(Ge|0)>(qe*3|0)?4096:0)|((md|0)>(Pc*13|0)?49152:(md|0)>(Pc<<3|0)?32768:(md|0)>(Pc*3|0)?16384:0)|((qd|0)>(rd*13|0)?196608:(qd|0)>(rd<<3|0)?131072:(qd|0)>(rd*3|0)?65536:0)|((Sc|0)>(Wc*13|0)?786432:(Sc|0)>(Wc<<3|0)?524288:(Sc|0)>(Wc*3|0)?262144:0)|((se|0)>(Rd*13|0)?50331648:(se|0)>(Rd<<3|0)?33554432:(se|0)>(Rd*3|0)?16777216:0)|((Ud|0)>(rb*13|0)?201326592:(Ud|0)>(rb<<3|0)?134217728:(Ud|0)>(rb*3|0)?67108864:0)|((Ne|0)>(ud*13|0)?3145728:(Ne|0)>(ud<<3|0)?2097152:(Ne|0)>(ud*3|0)?1048576:0)|((id|0)>(Pd*13|0)?12582912:(id|0)>(Pd<<3|0)?8388608:(id|0)>(Pd*3|0)?4194304:0)|((Od|0)>(ue*13|0)?805306368:(Od|0)>(ue<<3|0)?536870912:(Od|0)>(ue*3|0)?268435456:0)|((re|0)>(Me*13|0)?-1073741824:(re|0)>(Me<<3|0)?-2147483648:(re|0)>(Me*3|0)?1073741824:0);if((ld|0)==(h|0)){Pe=wb;Qe=Oe;Re=bb;Se=xb;Te=zd;Ue=Td;Ve=te;We=Rc;Xe=ve;Ye=hd;Ze=tb;_e=td;break}else{Me=tb;re=ve;ue=zd;Od=te;Pd=wb;id=bb;bb=xb;wb=Oe;te=Rc;zd=Td;ve=hd;tb=td;Ga=Ga+1|0;eb=Me;Qc=re;nd=ue;vb=Od;sd=Pd;Ka=id}}}c[ma>>2]=Qe;c[la>>2]=Ue;c[da>>2]=Se;c[ca>>2]=We;c[ka>>2]=Ye;c[ja>>2]=_e;c[t>>2]=Pe;c[ia>>2]=Qe;c[ha>>2]=Re;c[ga>>2]=Se;c[u>>2]=Te;c[fa>>2]=Ue;c[aa>>2]=Ve;c[$>>2]=We;c[_>>2]=Xe;c[R>>2]=Ye;c[X>>2]=Ze;c[W>>2]=_e;$e=S+h|0}else $e=S;U=U+1|0;if((U|0)==(j|0))break;else S=$e}}}if(!N)L=1;else{Ec(N);L=1}}while(0);N=c[x>>2]|0;if(!N){C=L;i=s;return C|0}x=c[D>>2]|0;if((x|0)!=(N|0))c[D>>2]=x+(~((x+-4-N|0)>>>2)<<2);Yb(N);C=L;i=s;return C|0}function gb(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,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;j=i;i=i+48|0;k=j+32|0;l=j+16|0;m=j;n=a[g+4>>0]|0;o=n&255;p=a[g+5>>0]|0;q=p&255;r=c[f>>2]|0;s=r>>>3&31;t=r>>>11&31;u=r>>>19&31;a[k>>0]=s;a[k+1>>0]=t;a[k+2>>0]=u;a[k+3>>0]=-1;r=(d[f+3>>0]|0)>>>5;if(n<<24>>24==p<<24>>24){Cb(l,k,r);v=c[l+(o<<2)>>2]|0;l=v&255;w=v>>>8&255;x=v>>>16&255;v=d[642791+(w<<1)>>0]<<5|d[641767+(l<<1)>>0]<<11|d[641767+(x<<1)>>0];y=d[642791+(w<<1)+1>>0]<<5|d[641767+(l<<1)+1>>0]<<11|d[641767+(x<<1)+1>>0];if((y|0)==(v|0)&(h^1))if(!v){z=1;A=0;B=0;C=0;D=85}else{E=v+-1|0;F=0;G=5}else{E=y;F=170;G=5}if((G|0)==5){y=v>>>0<E>>>0;x=y?E:v;l=y?v:E;z=x&255;A=l&255;B=(x&65535)>>>8&255;C=(l&65535)>>>8&255;D=(y?F|85:F)&255}a[b>>0]=z;a[b+1>>0]=B;a[b+2>>0]=A;a[b+3>>0]=C;Mc(b+4|0,D|0,4)|0;i=j;return}if((r|0)==7?(a[g+6>>0]|0)==2&n<<24>>24==0&p<<24>>24==3:0){Cb(m,k,7);k=c[m>>2]|0;p=c[m+12>>2]|0;m=d[643303+((k>>>8&255)<<1)>>0]<<5|d[642279+((k&255)<<1)>>0]<<11|d[642279+((k>>>16&255)<<1)>>0];k=d[643303+((p>>>8&255)<<1)>>0]<<5|d[642279+((p&255)<<1)>>0]<<11|d[642279+((p>>>16&255)<<1)>>0];if((k|0)==(m|0))if(!m){H=1;I=0;J=0;K=0;L=1;M=1}else{N=m+-1|0;O=0;G=12}else{N=k;O=1;G=12}if((G|0)==12){G=m>>>0<N>>>0;k=G?N:m;p=G?m:N;H=k&255;I=p&255;J=(k&65535)>>>8&255;K=(p&65535)>>>8&255;L=G?0:O;M=G&1}a[b>>0]=H;a[b+1>>0]=J;a[b+2>>0]=I;a[b+3>>0]=K;K=0;do{I=b+4+K|0;J=7-(K>>>3)|0;H=(((d[f+(J+-2)>>0]|0)>>>K<<1&2|(d[f+J>>0]|0)>>>K&1|0)==1?L:M)|d[I>>0]&252;a[I>>0]=H;J=K+4|0;G=7-(J>>>3)|0;O=(((d[f+(G+-2)>>0]|0)>>>J<<1&2|(d[f+G>>0]|0)>>>J&1|0)==1?L:M)<<2|H&243;a[I>>0]=O;H=K+8|0;J=H&7;G=7-(H>>>3)|0;H=(((d[f+(G+-2)>>0]|0)>>>J<<1&2|(d[f+G>>0]|0)>>>J&1|0)==1?L:M)<<4|O&207;a[I>>0]=H;O=K+12|0;J=O&7;G=7-(O>>>3)|0;a[I>>0]=(((d[f+(G+-2)>>0]|0)>>>J<<1&2|(d[f+G>>0]|0)>>>J&1|0)==1?L:M)<<6|H&63;K=K+1|0}while((K|0)!=4);i=j;return}K=r<<5;r=(c[509024+(o<<4)+(q<<2)>>2]|0)*10|0;q=((s|K)*60|0)+r|0;s=((t|K)*60|0)+r|0;t=((u|K)*60|0)+r|0;r=(e[571616+(s<<2)+2>>1]|0)+(e[510176+(q<<2)+2>>1]|0)+(e[510176+(t<<2)+2>>1]|0)|0;K=(e[571616+((s|1)<<2)+2>>1]|0)+(e[510176+((q|1)<<2)+2>>1]|0)+(e[510176+((t|1)<<2)+2>>1]|0)|0;u=K>>>0<r>>>0;o=u?K:r;r=(e[571616+(s+2<<2)+2>>1]|0)+(e[510176+(q+2<<2)+2>>1]|0)+(e[510176+(t+2<<2)+2>>1]|0)|0;K=r>>>0<o>>>0;M=K?r:o;o=(e[571616+(s+3<<2)+2>>1]|0)+(e[510176+(q+3<<2)+2>>1]|0)+(e[510176+(t+3<<2)+2>>1]|0)|0;r=o>>>0<M>>>0;L=r?o:M;M=(e[571616+(s+4<<2)+2>>1]|0)+(e[510176+(q+4<<2)+2>>1]|0)+(e[510176+(t+4<<2)+2>>1]|0)|0;o=M>>>0<L>>>0;H=o?M:L;L=(e[571616+(s+5<<2)+2>>1]|0)+(e[510176+(q+5<<2)+2>>1]|0)+(e[510176+(t+5<<2)+2>>1]|0)|0;M=L>>>0<H>>>0;J=M?L:H;H=(e[571616+(s+6<<2)+2>>1]|0)+(e[510176+(q+6<<2)+2>>1]|0)+(e[510176+(t+6<<2)+2>>1]|0)|0;L=H>>>0<J>>>0;G=L?H:J;J=(e[571616+(s+7<<2)+2>>1]|0)+(e[510176+(q+7<<2)+2>>1]|0)+(e[510176+(t+7<<2)+2>>1]|0)|0;H=J>>>0<G>>>0;I=H?J:G;G=(e[571616+(s+8<<2)+2>>1]|0)+(e[510176+(q+8<<2)+2>>1]|0)+(e[510176+(t+8<<2)+2>>1]|0)|0;J=G>>>0<I>>>0;O=((e[571616+(s+9<<2)+2>>1]|0)+(e[510176+(q+9<<2)+2>>1]|0)+(e[510176+(t+9<<2)+2>>1]|0)|0)>>>0<(J?G:I)>>>0?9:J?8:H?7:L?6:M?5:o?4:r?3:K?2:u&1;u=O+q|0;q=O+s|0;s=O+t|0;t=d[510176+(u<<2)>>0]<<11&63488|d[510176+(s<<2)>>0]|d[571616+(q<<2)>>0]<<5;K=d[510176+(u<<2)+1>>0]<<11&63488|d[510176+(s<<2)+1>>0]|d[571616+(q<<2)+1>>0]<<5;q=t>>>0<K>>>0;s=q?K:t;u=q?t:K;K=q?643903:643863;q=s&65535;a[b>>0]=s;t=b+1|0;a[t>>0]=(q&65535)>>>8;r=b+2|0;a[r>>0]=u;o=b+3|0;a[o>>0]=(u&65535)>>>8;if((s|0)!=(u|0)){u=d[f+7>>0]|0;M=d[f+5>>0]|0;L=M<<4&240|u&15;H=M&240|u>>>4;u=d[f+6>>0]|0;M=d[f+4>>0]|0;f=M<<4&240|u&15;J=M&240|u>>>4;u=d[(d[644824+H>>0]|0)+(K+(O<<2))>>0]<<2|d[(d[644824+L>>0]|0)+(K+(O<<2))>>0]|d[(d[644824+f>>0]|0)+(K+(O<<2))>>0]<<4|d[(d[644824+J>>0]|0)+(K+(O<<2))>>0]<<6;M=d[(d[645080+H>>0]|0)+(K+(O<<2))>>0]<<2|d[(d[645080+L>>0]|0)+(K+(O<<2))>>0]|d[(d[645080+f>>0]|0)+(K+(O<<2))>>0]<<4|d[(d[645080+J>>0]|0)+(K+(O<<2))>>0]<<6;I=d[(d[645336+H>>0]|0)+(K+(O<<2))>>0]<<2|d[(d[645336+L>>0]|0)+(K+(O<<2))>>0]|d[(d[645336+f>>0]|0)+(K+(O<<2))>>0]<<4|d[(d[645336+J>>0]|0)+(K+(O<<2))>>0]<<6;a[b+4>>0]=d[(d[644568+H>>0]|0)+(K+(O<<2))>>0]<<2|d[(d[644568+L>>0]|0)+(K+(O<<2))>>0]|d[(d[644568+f>>0]|0)+(K+(O<<2))>>0]<<4|d[(d[644568+J>>0]|0)+(K+(O<<2))>>0]<<6;a[b+5>>0]=u;a[b+6>>0]=M;a[b+7>>0]=I;i=j;return}if(h)P=0;else{h=(s|0)==0;I=h?1:q;a[b>>0]=I;a[t>>0]=(I&65535)>>>8;I=h?0:s+65535&65535;a[r>>0]=I;a[o>>0]=(I&65535)>>>8;P=h?85:0}Mc(b+4|0,P|0,4)|0;i=j;return}function hb(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;$a(a+8|0,b);return}function ib(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0;if(e>>>0<78)return 0;if(((d[c+1>>0]|0)<<8|(d[c>>0]|0)|0)!=17011)return 0;if(((d[c+3>>0]|0)<<8|(d[c+2>>0]|0)|0)!=19)return 0;if(((d[c+5>>0]|0)<<8|(d[c+4>>0]|0)|0)!=77)return 0;if((((d[c+10>>0]|0)<<16|(d[c+11>>0]|0)<<24|(d[c+9>>0]|0)<<8|(d[c+8>>0]|0))+77|0)>>>0>e>>>0)return 0;b=(d[c+18>>0]|0)<<8|(d[c+19>>0]|0)<<16|(d[c+17>>0]|0);if(!b)return 0;f=d[c+14>>0]|0;g=(d[c+15>>0]|0)<<8|(d[c+16>>0]|0)<<16|f;if((g|0)==0|b>>>0>g>>>0)return 0;b=a[c+21>>0]|0;if((b&4)!=0&(f&1|0)!=0|(b&1)==0)return 0;b=(d[c+67>>0]|0)<<16|(d[c+68>>0]|0)<<24|(d[c+66>>0]|0)<<8|(d[c+65>>0]|0);if(b>>>0<e>>>0)return (e-b|0)>>>0>=(g*23|0)>>>0|0;else return 0;return 0}function jb(a,b,c){a=a|0;b=b|0;c=c|0;var e=0;if(c>>>0<78)return 0;if(((d[b+1>>0]|0)<<8|(d[b>>0]|0)|0)!=17011)return 0;if(((d[b+3>>0]|0)<<8|(d[b+2>>0]|0)|0)!=19)return 0;if(((d[b+5>>0]|0)<<8|(d[b+4>>0]|0)|0)!=77)return 0;if((((d[b+10>>0]|0)<<16|(d[b+11>>0]|0)<<24|(d[b+9>>0]|0)<<8|(d[b+8>>0]|0))+77|0)>>>0>c>>>0)return 0;a=(d[b+15>>0]|0)<<8|(d[b+16>>0]|0)<<16|(d[b+14>>0]|0);if(!a)return 0;if(!((d[b+18>>0]|0)<<8|(d[b+19>>0]|0)<<16|(d[b+17>>0]|0)))return 0;e=(d[b+67>>0]|0)<<16|(d[b+68>>0]|0)<<24|(d[b+66>>0]|0)<<8|(d[b+65>>0]|0);if(e>>>0<c>>>0)return (c-e|0)>>>0>=(a*23|0)>>>0|0;else return 0;return 0}function kb(a,b,c){a=a|0;b=b|0;c=c|0;var e=0;if(!(jb(0,b,c)|0)){e=0;return e|0}e=(d[b+18>>0]|0)<<8|(d[b+19>>0]|0)<<16|(d[b+17>>0]|0);return e|0}function lb(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(!(jb(0,e,f)|0)){i=0;return i|0}f=d[e+15>>0]<<8|d[e+16>>0]<<16|d[e+14>>0];if(!f){i=0;return i|0}b=e+(d[e+67>>0]<<16|d[e+68>>0]<<24|d[e+66>>0]<<8|d[e+65>>0])|0;j=0;while(1){if((d[b+(j*23|0)+1>>0]<<8|d[b+(j*23|0)+2>>0]<<16|d[b+(j*23|0)>>0]|0)==(h|0)?(a[b+(j*23|0)+3>>0]|0)==0:0){k=j;break}j=j+1|0;if(j>>>0>=f>>>0){i=0;l=14;break}}if((l|0)==14)return i|0;if((k|0)<0){i=0;return i|0}if((d[e+18>>0]<<8|d[e+19>>0]<<16|d[e+17>>0])>>>0<=h>>>0){i=0;return i|0}l=k+1|0;if(l>>>0<f>>>0){j=l;l=1;while(1){if((d[b+(j*23|0)+1>>0]<<8|d[b+(j*23|0)+2>>0]<<16|d[b+(j*23|0)>>0]|0)!=(h|0)){m=l;break}n=(d[b+(j*23|0)+3>>0]|0)+1|0;o=l>>>0>n>>>0?l:n;j=j+1|0;if(j>>>0>=f>>>0){m=o;break}else l=o}if(m>>>0>16){i=0;return i|0}else p=m}else p=1;c[g>>2]=h;c[g+4>>2]=p;a[g+40>>0]=(d[e+21>>0]|0)>>>2&1;a[g+41>>0]=(d[b+(k*23|0)+4>>0]|0)>>>1&1;e=b+(k*23|0)+10|0;p=b+(k*23|0)+9|0;c[g+16>>2]=(d[e>>0]<<8|d[p>>0])<<2;h=b+(k*23|0)+12|0;m=b+(k*23|0)+11|0;c[g+20>>2]=(d[h>>0]<<8|d[m>>0])<<2;c[g+8>>2]=d[b+(k*23|0)+6>>0]<<8|d[b+(k*23|0)+5>>0];c[g+12>>2]=d[b+(k*23|0)+8>>0]<<8|d[b+(k*23|0)+7>>0];b=d[e>>0]<<8|d[p>>0];c[g+24>>2]=b;p=d[h>>0]<<8|d[m>>0];c[g+28>>2]=p;c[g+32>>2]=Z(p,b)|0;c[g+36>>2]=k;i=1;return i|0}function mb(a,b,e,f,g,h,i,j){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0;if(!(jb(0,b,e)|0)){k=0;return k|0}e=(d[b+15>>0]|0)<<8|(d[b+16>>0]|0)<<16|(d[b+14>>0]|0);if(!e){k=0;return k|0}a=b+((d[b+67>>0]|0)<<16|(d[b+68>>0]|0)<<24|(d[b+66>>0]|0)<<8|(d[b+65>>0]|0))|0;l=0;while(1){if(((d[a+(l*23|0)+1>>0]|0)<<8|(d[a+(l*23|0)+2>>0]|0)<<16|(d[a+(l*23|0)>>0]|0)|0)==(f|0)?(d[a+(l*23|0)+3>>0]|0|0)==(g|0):0){m=l;break}l=l+1|0;if(l>>>0>=e>>>0){k=0;n=10;break}}if((n|0)==10)return k|0;if((m|0)<0){k=0;return k|0}if(((d[b+18>>0]|0)<<8|(d[b+19>>0]|0)<<16|(d[b+17>>0]|0))>>>0<=f>>>0){k=0;return k|0}c[h>>2]=(d[a+(m*23|0)+6>>0]|0)<<8|(d[a+(m*23|0)+5>>0]|0);c[i>>2]=(d[a+(m*23|0)+8>>0]|0)<<8|(d[a+(m*23|0)+7>>0]|0);c[j>>2]=Z((d[a+(m*23|0)+12>>0]|0)<<8|(d[a+(m*23|0)+11>>0]|0),(d[a+(m*23|0)+10>>0]|0)<<8|(d[a+(m*23|0)+9>>0]|0))|0;k=1;return k|0}function nb(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;if(!(jb(0,e,f)|0)){j=0;return j|0}f=(d[e+15>>0]|0)<<8|(d[e+16>>0]|0)<<16|(d[e+14>>0]|0);if(!f){j=0;return j|0}b=e+((d[e+67>>0]|0)<<16|(d[e+68>>0]|0)<<24|(d[e+66>>0]|0)<<8|(d[e+65>>0]|0))|0;k=0;while(1){if(((d[b+(k*23|0)+1>>0]|0)<<8|(d[b+(k*23|0)+2>>0]|0)<<16|(d[b+(k*23|0)>>0]|0)|0)==(h|0)?(d[b+(k*23|0)+3>>0]|0|0)==(i|0):0){l=k;break}k=k+1|0;if(k>>>0>=f>>>0){j=0;m=10;break}}if((m|0)==10)return j|0;if((l|0)<0){j=0;return j|0}if(((d[e+18>>0]|0)<<8|(d[e+19>>0]|0)<<16|(d[e+17>>0]|0))>>>0<=h>>>0){j=0;return j|0}c[g>>2]=h;c[g+4>>2]=i;a[g+40>>0]=(d[e+21>>0]|0)>>>2&1;a[g+41>>0]=(d[b+(l*23|0)+4>>0]|0)>>>1&1;e=b+(l*23|0)+10|0;i=b+(l*23|0)+9|0;c[g+16>>2]=((d[e>>0]|0)<<8|(d[i>>0]|0))<<2;h=b+(l*23|0)+12|0;m=b+(l*23|0)+11|0;c[g+20>>2]=((d[h>>0]|0)<<8|(d[m>>0]|0))<<2;c[g+8>>2]=(d[b+(l*23|0)+6>>0]|0)<<8|(d[b+(l*23|0)+5>>0]|0);c[g+12>>2]=(d[b+(l*23|0)+8>>0]|0)<<8|(d[b+(l*23|0)+7>>0]|0);b=(d[e>>0]|0)<<8|(d[i>>0]|0);c[g+24>>2]=b;i=(d[h>>0]|0)<<8|(d[m>>0]|0);c[g+28>>2]=i;c[g+32>>2]=Z(i,b)|0;c[g+36>>2]=l;j=1;return j|0}function ob(a,b,e){a=a|0;b=b|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;f=a+8|0;if((c[a+12>>2]|0)!=(c[f>>2]|0)){g=1;return g|0}if(!(jb(0,b,e)|0)){g=0;return g|0}a=(d[b+43>>0]|0)<<16|(d[b+44>>0]|0)<<24|(d[b+42>>0]|0)<<8|(d[b+41>>0]|0);if(a>>>0>e>>>0){g=0;return g|0}h=(d[b+52>>0]|0)<<16|(d[b+53>>0]|0)<<24|(d[b+51>>0]|0)<<8|(d[b+50>>0]|0);if(h>>>0>e>>>0){g=0;return g|0}i=b+57|0;j=b+60|0;k=b+59|0;l=b+58|0;m=(d[k>>0]|0)<<16|(d[j>>0]|0)<<24|(d[l>>0]|0)<<8|(d[i>>0]|0);if(m>>>0>e>>>0){g=0;return g|0}n=(d[b+46>>0]|0)<<8|(d[b+47>>0]|0)<<16|(d[b+45>>0]|0);if(n>>>0>(e-a|0)>>>0){g=0;return g|0}o=(d[b+55>>0]|0)<<8|(d[b+56>>0]|0)<<16|(d[b+54>>0]|0);if(o>>>0>(e-h|0)>>>0){g=0;return g|0}p=b+61|0;q=b+64|0;r=b+63|0;s=b+62|0;if(((d[r>>0]|0)<<16|(d[q>>0]|0)<<24|(d[s>>0]|0)<<8|(d[p>>0]|0))>>>0>(e-m|0)>>>0){g=0;return g|0}if(!(ab(f,(d[b+40>>0]|0)<<8|(d[b+39>>0]|0),b+a|0,n,(d[b+49>>0]|0)<<8|(d[b+48>>0]|0),b+h|0,o)|0)){g=0;return g|0}g=eb(f,b+((d[k>>0]|0)<<16|(d[j>>0]|0)<<24|(d[l>>0]|0)<<8|(d[i>>0]|0))|0,(d[r>>0]|0)<<16|(d[q>>0]|0)<<24|(d[s>>0]|0)<<8|(d[p>>0]|0))|0;return g|0}function pb(a,b,e,f,g,h,i,j,k){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0;l=a+8|0;if(!((k&2|0)==0?(c[a+12>>2]|0)!=(c[l>>2]|0):0)){m=0;return m|0}if(!(jb(0,b,e)|0)){m=0;return m|0}if(((d[b+15>>0]|0)<<8|(d[b+16>>0]|0)<<16|(d[b+14>>0]|0))>>>0<=f>>>0){m=0;return m|0}a=b+((d[b+67>>0]|0)<<16|(d[b+68>>0]|0)<<24|(d[b+66>>0]|0)<<8|(d[b+65>>0]|0))|0;n=a+(f*23|0)|0;o=(d[a+(f*23|0)+10>>0]|0)<<8|(d[a+(f*23|0)+9>>0]|0);p=(d[a+(f*23|0)+12>>0]|0)<<8|(d[a+(f*23|0)+11>>0]|0);if((Z(p,o)|0)>>>0>h>>>0){m=0;return m|0}if((i|0)==3){h=o<<2;if(!o){m=0;return m|0}if(h+262143&h){m=0;return m|0}h=p<<2;if(!p){m=0;return m|0}if(h+262143&h){m=0;return m|0}}h=(d[a+(f*23|0)+15>>0]|0)<<16|(d[a+(f*23|0)+16>>0]|0)<<24|(d[a+(f*23|0)+14>>0]|0)<<8|(d[a+(f*23|0)+13>>0]|0);if(h>>>0>e>>>0){m=0;return m|0}q=(d[a+(f*23|0)+19>>0]|0)<<16|(d[a+(f*23|0)+20>>0]|0)<<24|(d[a+(f*23|0)+18>>0]|0)<<8|(d[a+(f*23|0)+17>>0]|0);if((e-h|0)>>>0<q>>>0){m=0;return m|0}m=fb(l,g,o,p,b+h|0,q,i,j,(k&1|0)!=0,(k&8|0)==0,b,n)|0;return m|0}function qb(b,e,f,g,h,j,k,l,m){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var 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;n=i;i=i+16|0;o=n;if((c[b+12>>2]|0)==(c[b+8>>2]|0)){p=0;i=n;return p|0}q=m>>>2;if(m&2){p=0;i=n;return p|0}if(!(jb(0,e,f)|0)){p=0;i=n;return p|0}r=e+((d[e+67>>0]|0)<<16|(d[e+68>>0]|0)<<24|(d[e+66>>0]|0)<<8|(d[e+65>>0]|0))|0;s=(a[e+21>>0]&4)!=0;t=(d[e+15>>0]|0)<<8|(d[e+16>>0]|0)<<16|(d[e+14>>0]|0);if(!t){p=0;i=n;return p|0}else u=0;while(1){if(((d[r+(u*23|0)+1>>0]|0)<<8|(d[r+(u*23|0)+2>>0]|0)<<16|(d[r+(u*23|0)>>0]|0)|0)==(g|0)?(d[r+(u*23|0)+3>>0]|0|0)==(h|0):0){v=u;break}u=u+1|0;if(u>>>0>=t>>>0){p=0;w=39;break}}if((w|0)==39){i=n;return p|0}if((v|0)<0){p=0;i=n;return p|0}if(a[r+(v*23|0)+4>>0]&1){p=0;i=n;return p|0}if(s){w=v+1|0;if(w>>>0>=t>>>0){p=0;i=n;return p|0}if(!(a[r+(w*23|0)+4>>0]&1)){p=0;i=n;return p|0}t=a[r+(v*23|0)+10>>0]|0;u=a[r+(v*23|0)+9>>0]|0;if(((t&255)<<8|u&255|0)!=((d[r+(w*23|0)+10>>0]|0)<<8|(d[r+(w*23|0)+9>>0]|0)|0)){p=0;i=n;return p|0}h=a[r+(v*23|0)+12>>0]|0;g=a[r+(v*23|0)+11>>0]|0;if(((h&255)<<8|g&255|0)==((d[r+(w*23|0)+12>>0]|0)<<8|(d[r+(w*23|0)+11>>0]|0)|0)){x=t;y=u;z=h;A=g}else{p=0;i=n;return p|0}}else{x=a[r+(v*23|0)+10>>0]|0;y=a[r+(v*23|0)+9>>0]|0;z=a[r+(v*23|0)+12>>0]|0;A=a[r+(v*23|0)+11>>0]|0}r=(l&-4|0)==4?16:8;g=Z((z&255)<<8|A&255,(x&255)<<8|y&255)|0;switch(l|0){case 0:{p=pb(b,e,f,v+(((q&1|0)==0|s^1)&1^1)|0,j,k,0,r,m)|0;i=n;return p|0}case 1:{p=pb(b,e,f,v+(((q&1|0)==0|s^1)&1^1)|0,j,k,1,r,m)|0;i=n;return p|0}case 2:{p=pb(b,e,f,v+(((q&1|0)==0|s^1)&1^1)|0,j,k,2,r,m)|0;i=n;return p|0}case 3:{p=pb(b,e,f,v+(((q&1|0)==0|s^1)&1^1)|0,j,k,3,r,m)|0;i=n;return p|0}case 4:{p=pb(b,e,f,v+(((q&1|0)==0|s^1)&1^1)|0,j,k,4,r,m)|0;i=n;return p|0}case 5:{if(s){if(!(pb(b,e,f,v+1|0,j,k,5,16,m)|0)){p=0;i=n;return p|0}}else if(g){r=0;do{q=r<<4;l=j+q|0;a[l>>0]=255;a[l+1>>0]=29;l=j+(q|2)|0;a[l>>0]=a[641760]|0;a[l+1>>0]=a[641761]|0;a[l+2>>0]=a[641762]|0;a[l+3>>0]=a[641763]|0;a[l+4>>0]=a[641764]|0;a[l+5>>0]=a[641765]|0;r=r+1|0}while((r|0)!=(g|0))}p=pb(b,e,f,v,j+8|0,k,0,16,m)|0;i=n;return p|0}case 6:{if(s){if(!(pb(b,e,f,v+1|0,j,k,2,16,m)|0)){p=0;i=n;return p|0}}else{a[o>>0]=0;a[o+1>>0]=0;a[o+2>>0]=0;a[o+3>>0]=0;a[o+4>>0]=0;a[o+5>>0]=0;if(g){r=0;do{l=r<<4;a[j+l>>0]=-1;a[j+(l|1)>>0]=-1;q=j+(l|2)|0;a[q>>0]=a[o>>0]|0;a[q+1>>0]=a[o+1>>0]|0;a[q+2>>0]=a[o+2>>0]|0;a[q+3>>0]=a[o+3>>0]|0;a[q+4>>0]=a[o+4>>0]|0;a[q+5>>0]=a[o+5>>0]|0;r=r+1|0}while((r|0)!=(g|0))}}p=pb(b,e,f,v,j+8|0,k,1,16,m|8)|0;i=n;return p|0}case 7:{if(!(pb(b,e,f,v,j,k,2,16,m)|0)){p=0;i=n;return p|0}if(s){p=pb(b,e,f,v+1|0,j+8|0,k,2,16,m)|0;i=n;return p|0};a[o>>0]=0;a[o+1>>0]=0;a[o+2>>0]=0;a[o+3>>0]=0;a[o+4>>0]=0;a[o+5>>0]=0;if(g){m=0;do{k=m<<4;a[j+(k|8)>>0]=-1;a[j+(k|9)>>0]=-1;v=j+(k|10)|0;a[v>>0]=a[o>>0]|0;a[v+1>>0]=a[o+1>>0]|0;a[v+2>>0]=a[o+2>>0]|0;a[v+3>>0]=a[o+3>>0]|0;a[v+4>>0]=a[o+4>>0]|0;a[v+5>>0]=a[o+5>>0]|0;m=m+1|0}while((m|0)!=(g|0))}p=1;i=n;return p|0}default:{p=0;i=n;return p|0}}return 0}function rb(a){a=a|0;var b=0;switch(a|0){case 3:case 2:case 1:case 0:{b=8;break}case 7:case 6:case 5:case 4:{b=16;break}default:b=0}return b|0}function sb(d,e,f){d=d|0;e=e|0;f=f|0;var 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;g=i;i=i+256|0;h=g+128|0;j=g;if(!e){k=c[d>>2]|0;l=d+4|0;if((c[l>>2]|0)!=(k|0))c[l>>2]=k;k=c[d+12>>2]|0;l=d+16|0;m=c[l>>2]|0;if((k|0)!=(m|0))c[l>>2]=m+(~((m+-4-k|0)>>>2)<<2);k=c[d+24>>2]|0;m=d+28|0;l=c[m>>2]|0;if((k|0)==(l|0)){n=1;i=g;return n|0}c[m>>2]=l+(~((l+-2-k|0)>>>1)<<1);n=1;i=g;return n|0}k=d+4|0;l=c[k>>2]|0;m=c[d>>2]|0;o=l-m|0;if(o>>>0>=e>>>0)if(o>>>0>e>>>0?(p=m+e|0,(l|0)!=(p|0)):0){c[k>>2]=p;q=m}else q=m;else{tb(d,e-o|0);q=c[d>>2]|0}Pc(q|0,f|0,e|0)|0;q=d+12|0;o=d+16|0;m=c[o>>2]|0;p=c[q>>2]|0;k=p;if((m|0)==(p|0))r=m;else{l=m+(~((m+-4-k|0)>>>2)<<2)|0;c[o>>2]=l;r=l}l=r-k>>2;if(l>>>0>=1024){if(l>>>0>1024?(k=p+4096|0,(r|0)!=(k|0)):0)c[o>>2]=r+(~((r+-4-k|0)>>>2)<<2)}else ub(q,1024-l|0);l=d+24|0;k=d+28|0;d=c[k>>2]|0;r=c[l>>2]|0;o=r;if((d|0)==(r|0))s=d;else{p=d+(~((d+-2-o|0)>>>1)<<1)|0;c[k>>2]=p;s=p}p=e<<1;d=s-o>>1;if(p>>>0<=d>>>0){if(p>>>0<d>>>0?(o=r+(p<<1)|0,(s|0)!=(o|0)):0)c[k>>2]=s+(~((s+-2-o|0)>>>1)<<1)}else vb(l,p-d|0);d=h;p=d+128|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(p|0));d=0;while(1){p=a[f+d>>0]|0;if((p&255)>31){t=0;break}o=h+((p&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;d=d+1|0;if(d>>>0>=e>>>0){u=30;break}}if((u|0)==30){c[j+4>>2]=0;c[j>>2]=0;u=1;d=0;o=0;while(1){p=c[h+(u<<2)>>2]|0;s=p+o|0;r=p+d<<1;u=u+1|0;c[j+(u<<2)>>2]=r;if((u|0)==31){v=s;w=r;break}else{d=r;o=s}}a:do if(!((w|0)!=-2147483648&v>>>0>1))if((e|0)>0){o=0;d=-1;while(1){u=a[f+o>>0]|0;h=u&255;b:do if(!(u<<24>>24))x=d;else{s=j+(h<<2)|0;r=c[s>>2]|0;c[s>>2]=r+1;s=r;r=h;p=0;while(1){m=s&1|p<<1;r=r+-1|0;if(!r){y=m;z=p;break}else{s=s>>>1;p=m}}if((u&255)<11){p=h<<16|o;if(y>>>0>=1024){x=d;break}s=c[q>>2]|0;r=1<<h;m=y;while(1){A=s+(m<<2)|0;if(c[A>>2]|0){B=0;break a}c[A>>2]=p;m=m+r|0;if(m>>>0>=1024){x=d;break b}}}m=(c[q>>2]|0)+((y&1023)<<2)|0;r=c[m>>2]|0;if(!r){c[m>>2]=d;C=d;D=d+-2|0}else{C=r;D=d}if((C|0)>-1){B=0;break a}r=z>>>9;m=(r&1)-C|0;p=m+-1|0;s=(m|0)<1;if((u&255)>11){A=m;E=p;F=r&4194303;r=s;G=h;H=D;while(1){if(r){B=0;break a}I=c[k>>2]|0;J=c[l>>2]|0;K=I-J>>1;do if((A|0)>(K|0)){if(A>>>0>K>>>0){vb(l,A-K|0);L=c[l>>2]|0;break}if(A>>>0>=K>>>0){L=J;break}M=J+(A<<1)|0;if((I|0)==(M|0)){L=J;break}c[k>>2]=I+(~((I+-2-M|0)>>>1)<<1);L=J}else L=J;while(0);J=L+(E<<1)|0;I=b[J>>1]|0;if(I<<16>>16)if(I<<16>>16>-1){B=0;break a}else{N=I<<16>>16;O=H}else{b[J>>1]=H;N=H;O=H+-2|0}G=G+-1|0;F=F>>>1;J=(F&1)-N|0;I=J+-1|0;K=(J|0)<1;if((G|0)<=11){P=J;Q=I;R=K;S=O;break}else{A=J;E=I;r=K;H=O}}}else{P=m;Q=p;R=s;S=D}if(R){B=0;break a}H=c[k>>2]|0;r=c[l>>2]|0;E=H-r>>1;do if((P|0)>(E|0)){if(P>>>0>E>>>0){vb(l,P-E|0);T=c[l>>2]|0;break}if(P>>>0>=E>>>0){T=r;break}A=r+(P<<1)|0;if((H|0)==(A|0)){T=r;break}c[k>>2]=H+(~((H+-2-A|0)>>>1)<<1);T=r}else T=r;while(0);r=T+(Q<<1)|0;if(b[r>>1]|0){B=0;break a}b[r>>1]=o;x=S}while(0);o=o+1|0;if((o|0)>=(e|0)){B=1;break}else d=x}}else B=1;else B=0;while(0);t=B}n=t;i=g;return n|0}function tb(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;e=b+8|0;f=c[e>>2]|0;g=b+4|0;h=c[g>>2]|0;i=h;if((f-i|0)>>>0>=d>>>0){j=d;k=h;do{a[k>>0]=0;k=(c[g>>2]|0)+1|0;c[g>>2]=k;j=j+-1|0}while((j|0)!=0);return}j=c[b>>2]|0;k=i-j+d|0;if((k|0)<0)Wb(b);i=j;j=f-i|0;if(j>>>0<1073741823){f=j<<1;j=f>>>0<k>>>0?k:f;f=(c[g>>2]|0)-i|0;if(!j){l=0;m=0;n=f}else{o=j;p=f;q=8}}else{o=2147483647;p=(c[g>>2]|0)-i|0;q=8}if((q|0)==8){l=o;m=Xb(o)|0;n=p}p=m+n|0;o=m+l|0;l=d;d=p;q=p;while(1){a[d>>0]=0;d=q+1|0;p=d;l=l+-1|0;if(!l){r=p;break}else q=p}q=c[b>>2]|0;l=(c[g>>2]|0)-q|0;d=m+(n-l)|0;Pc(d|0,q|0,l|0)|0;c[b>>2]=d;c[g>>2]=r;c[e>>2]=o;if(!q)return;Yb(q);return}function ub(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;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;h=g;if(e-h>>2>>>0>=b>>>0){Mc(g|0,0,b<<2|0)|0;c[f>>2]=g+(b<<2);return}g=c[a>>2]|0;i=g;j=(h-i>>2)+b|0;if(j>>>0>1073741823)Wb(a);h=g;k=e-h|0;if(k>>2>>>0<536870911){e=k>>1;k=e>>>0<j>>>0?j:e;e=(c[f>>2]|0)-h|0;j=e>>2;if(!k){l=0;m=0;n=j;o=e}else{p=k;q=j;r=e;s=8}}else{e=(c[f>>2]|0)-h|0;p=1073741823;q=e>>2;r=e;s=8}if((s|0)==8){l=p;m=Xb(p<<2)|0;n=q;o=r}Mc(m+(n<<2)|0,0,b<<2|0)|0;Pc(m|0,g|0,o|0)|0;c[a>>2]=m;c[f>>2]=m+(n+b<<2);c[d>>2]=m+(l<<2);if(!i)return;Yb(i);return}function vb(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+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;h=g;if(e-h>>1>>>0>=b>>>0){Mc(g|0,0,b<<1|0)|0;c[f>>2]=g+(b<<1);return}i=c[a>>2]|0;j=i;k=(h-j>>1)+b|0;if((k|0)<0)Wb(a);h=i;l=e-h|0;e=l>>1>>>0<1073741823?(l>>>0<k>>>0?k:l):2147483647;l=g-h|0;h=l>>1;if(!e)m=0;else m=Xb(e<<1)|0;Mc(m+(h<<1)|0,0,b<<1|0)|0;Pc(m|0,i|0,l|0)|0;c[a>>2]=m;c[f>>2]=m+(h+b<<1);c[d>>2]=m+(e<<1);if(!j)return;Yb(j);return}
function wb(b,c,e){b=b|0;c=c|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,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;f=i;i=i+112|0;g=f+96|0;h=f+80|0;j=f+64|0;k=f+48|0;l=f+32|0;m=f+16|0;n=f;o=b;p=c;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0));if(a[e+8>>0]|0){q=b+1|0;r=a[q>>0]|0;s=b+2|0;t=a[s>>0]|0;u=a[b+4>>0]|0;v=b+5|0;w=a[v>>0]|0;x=b+6|0;y=a[x>>0]|0;z=a[b+8>>0]|0;A=b+9|0;B=a[A>>0]|0;C=b+10|0;D=a[C>>0]|0;E=a[b+12>>0]|0;F=b+13|0;G=a[F>>0]|0;H=b+14|0;I=a[H>>0]|0;a[q>>0]=a[b>>0]|0;a[s>>0]=r;a[b+3>>0]=t;a[v>>0]=u;a[x>>0]=w;a[b+7>>0]=y;a[A>>0]=z;a[C>>0]=B;a[b+11>>0]=D;a[F>>0]=E;a[H>>0]=G;a[b+15>>0]=I}if(a[e+9>>0]|0){I=b+12|0;G=d[I>>0]|d[I+1>>0]<<8|d[I+2>>0]<<16|d[I+3>>0]<<24;H=d[b>>0]|d[b+1>>0]<<8|d[b+2>>0]<<16|d[b+3>>0]<<24;E=b+4|0;F=d[E>>0]|d[E+1>>0]<<8|d[E+2>>0]<<16|d[E+3>>0]<<24;D=b+8|0;B=d[D>>0]|d[D+1>>0]<<8|d[D+2>>0]<<16|d[D+3>>0]<<24;a[b>>0]=G;a[b+1>>0]=G>>8;a[b+2>>0]=G>>16;a[b+3>>0]=G>>24;a[E>>0]=H;a[E+1>>0]=H>>8;a[E+2>>0]=H>>16;a[E+3>>0]=H>>24;a[D>>0]=F;a[D+1>>0]=F>>8;a[D+2>>0]=F>>16;a[D+3>>0]=F>>24;a[I>>0]=B;a[I+1>>0]=B>>8;a[I+2>>0]=B>>16;a[I+3>>0]=B>>24}xb(g,b,(a[e+6>>0]|0)!=0,d[e+12>>0]|0);o=b;p=g;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0));if(a[e+7>>0]|0){yb(h,b);o=b;p=h;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0))}if(a[e+10>>0]|0){zb(j,b);o=b;p=j;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0))}if(a[e+11>>0]|0){o=k;c=o+16|0;do{a[o>>0]=0;o=o+1|0}while((o|0)<(c|0));j=0;do{h=j<<2;g=(j|0)<1?0:h+-4|0;B=j;j=j+1|0;I=(B|0)>2?12:j<<2;B=0;do{F=B+-1|0;D=B;B=B+1|0;H=D+h|0;E=(d[b+H>>0]<<3)-((d[b+(((F|0)<0?0:F)+h)>>0]|0)+(d[b+(D+g)>>0]|0))-(d[b+(((B|0)>3?3:B)+h)>>0]|0)-(d[b+(D+I)>>0]|0)|0;a[k+H>>0]=(E|0)<-3?0:(E|0)>15?3:((E|0)/4|0)&255}while((B|0)!=4)}while((j|0)!=4);o=b;p=k;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0))}if(a[e+1>>0]|0){Ab(l,b);o=b;p=l;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0))}if(a[e+3>>0]|0){l=b+1|0;k=a[644540+(d[l>>0]|0)>>0]|0;j=b+2|0;B=a[644540+(d[j>>0]|0)>>0]|0;I=b+3|0;h=a[644540+(d[I>>0]|0)>>0]|0;g=b+4|0;E=a[644540+(d[g>>0]|0)>>0]|0;H=b+5|0;D=a[644540+(d[H>>0]|0)>>0]|0;F=b+6|0;G=a[644540+(d[F>>0]|0)>>0]|0;C=b+7|0;z=a[644540+(d[C>>0]|0)>>0]|0;A=b+8|0;y=a[644540+(d[A>>0]|0)>>0]|0;w=b+9|0;x=a[644540+(d[w>>0]|0)>>0]|0;u=b+10|0;v=a[644540+(d[u>>0]|0)>>0]|0;t=b+11|0;r=a[644540+(d[t>>0]|0)>>0]|0;s=b+12|0;q=a[644540+(d[s>>0]|0)>>0]|0;J=b+13|0;K=a[644540+(d[J>>0]|0)>>0]|0;L=b+14|0;M=a[644540+(d[L>>0]|0)>>0]|0;N=b+15|0;O=a[644540+(d[N>>0]|0)>>0]|0;a[b>>0]=a[644540+(d[b>>0]|0)>>0]|0;a[l>>0]=k;a[j>>0]=B;a[I>>0]=h;a[g>>0]=E;a[H>>0]=D;a[F>>0]=G;a[C>>0]=z;a[A>>0]=y;a[w>>0]=x;a[u>>0]=v;a[t>>0]=r;a[s>>0]=q;a[J>>0]=K;a[L>>0]=M;a[N>>0]=O}if(a[e+4>>0]|0){o=m;c=o+16|0;do{a[o>>0]=0;o=o+1|0}while((o|0)<(c|0));O=0;do{N=(d[b+O>>0]|0)+1|0;a[m+O>>0]=N>>>0>3?3:N&255;O=O+1|0}while((O|0)!=16);o=b;p=m;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0))}m=a[e>>0]|0;if(m<<24>>24){O=m&255;m=b+1|0;N=a[(d[m>>0]|0)+(644544+(O<<2))>>0]|0;M=b+2|0;L=a[(d[M>>0]|0)+(644544+(O<<2))>>0]|0;K=b+3|0;J=a[(d[K>>0]|0)+(644544+(O<<2))>>0]|0;q=b+4|0;s=a[(d[q>>0]|0)+(644544+(O<<2))>>0]|0;r=b+5|0;t=a[(d[r>>0]|0)+(644544+(O<<2))>>0]|0;v=b+6|0;u=a[(d[v>>0]|0)+(644544+(O<<2))>>0]|0;x=b+7|0;w=a[(d[x>>0]|0)+(644544+(O<<2))>>0]|0;y=b+8|0;A=a[(d[y>>0]|0)+(644544+(O<<2))>>0]|0;z=b+9|0;C=a[(d[z>>0]|0)+(644544+(O<<2))>>0]|0;G=b+10|0;F=a[(d[G>>0]|0)+(644544+(O<<2))>>0]|0;D=b+11|0;H=a[(d[D>>0]|0)+(644544+(O<<2))>>0]|0;E=b+12|0;g=a[(d[E>>0]|0)+(644544+(O<<2))>>0]|0;h=b+13|0;I=a[(d[h>>0]|0)+(644544+(O<<2))>>0]|0;B=b+14|0;j=a[(d[B>>0]|0)+(644544+(O<<2))>>0]|0;k=b+15|0;l=a[(d[k>>0]|0)+(644544+(O<<2))>>0]|0;a[b>>0]=a[(d[b>>0]|0)+(644544+(O<<2))>>0]|0;a[m>>0]=N;a[M>>0]=L;a[K>>0]=J;a[q>>0]=s;a[r>>0]=t;a[v>>0]=u;a[x>>0]=w;a[y>>0]=A;a[z>>0]=C;a[G>>0]=F;a[D>>0]=H;a[E>>0]=g;a[h>>0]=I;a[B>>0]=j;a[k>>0]=l}if(a[e+5>>0]|0){l=b+1|0;k=3-(d[l>>0]|0)&255;j=b+2|0;B=3-(d[j>>0]|0)&255;I=b+3|0;h=3-(d[I>>0]|0)&255;g=b+4|0;E=3-(d[g>>0]|0)&255;H=b+5|0;D=3-(d[H>>0]|0)&255;F=b+6|0;G=3-(d[F>>0]|0)&255;C=b+7|0;z=3-(d[C>>0]|0)&255;A=b+8|0;y=3-(d[A>>0]|0)&255;w=b+9|0;x=3-(d[w>>0]|0)&255;u=b+10|0;v=3-(d[u>>0]|0)&255;t=b+11|0;r=3-(d[t>>0]|0)&255;s=b+12|0;q=3-(d[s>>0]|0)&255;J=b+13|0;K=3-(d[J>>0]|0)&255;L=b+14|0;M=3-(d[L>>0]|0)&255;N=b+15|0;m=3-(d[N>>0]|0)&255;a[b>>0]=3-(d[b>>0]|0);a[l>>0]=k;a[j>>0]=B;a[I>>0]=h;a[g>>0]=E;a[H>>0]=D;a[F>>0]=G;a[C>>0]=z;a[A>>0]=y;a[w>>0]=x;a[u>>0]=v;a[t>>0]=r;a[s>>0]=q;a[J>>0]=K;a[L>>0]=M;a[N>>0]=m}if(!(a[e+2>>0]|0)){i=f;return}Bb(n,b);o=b;p=n;c=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(c|0));i=f;return}function xb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;if(f){f=e+12|0;c[j>>2]=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;f=e+8|0;c[j+4>>2]=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;f=e+4|0;c[j+8>>2]=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;c[j+12>>2]=d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24}else{k=j;l=e;m=k+16|0;do{a[k>>0]=a[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0))}k=b;m=k+16|0;do{a[k>>0]=0;k=k+1|0}while((k|0)<(m|0));switch(g|0){case 0:{k=b;l=j;m=k+16|0;do{a[k>>0]=a[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0));i=h;return}case 1:{a[b>>0]=a[j+12>>0]|0;a[b+1>>0]=a[j+8>>0]|0;a[b+2>>0]=a[j+4>>0]|0;a[b+3>>0]=a[j>>0]|0;a[b+4>>0]=a[j+13>>0]|0;a[b+5>>0]=a[j+9>>0]|0;a[b+6>>0]=a[j+5>>0]|0;a[b+7>>0]=a[j+1>>0]|0;a[b+8>>0]=a[j+14>>0]|0;a[b+9>>0]=a[j+10>>0]|0;a[b+10>>0]=a[j+6>>0]|0;a[b+11>>0]=a[j+2>>0]|0;a[b+12>>0]=a[j+15>>0]|0;a[b+13>>0]=a[j+11>>0]|0;a[b+14>>0]=a[j+7>>0]|0;a[b+15>>0]=a[j+3>>0]|0;i=h;return}case 2:{a[b>>0]=a[j+15>>0]|0;a[b+1>>0]=a[j+14>>0]|0;a[b+2>>0]=a[j+13>>0]|0;a[b+3>>0]=a[j+12>>0]|0;a[b+4>>0]=a[j+11>>0]|0;a[b+5>>0]=a[j+10>>0]|0;a[b+6>>0]=a[j+9>>0]|0;a[b+7>>0]=a[j+8>>0]|0;a[b+8>>0]=a[j+7>>0]|0;a[b+9>>0]=a[j+6>>0]|0;a[b+10>>0]=a[j+5>>0]|0;a[b+11>>0]=a[j+4>>0]|0;a[b+12>>0]=a[j+3>>0]|0;a[b+13>>0]=a[j+2>>0]|0;a[b+14>>0]=a[j+1>>0]|0;a[b+15>>0]=a[j>>0]|0;i=h;return}case 3:{a[b>>0]=a[j+3>>0]|0;a[b+1>>0]=a[j+7>>0]|0;a[b+2>>0]=a[j+11>>0]|0;a[b+3>>0]=a[j+15>>0]|0;a[b+4>>0]=a[j+2>>0]|0;a[b+5>>0]=a[j+6>>0]|0;a[b+6>>0]=a[j+10>>0]|0;a[b+7>>0]=a[j+14>>0]|0;a[b+8>>0]=a[j+1>>0]|0;a[b+9>>0]=a[j+5>>0]|0;a[b+10>>0]=a[j+9>>0]|0;a[b+11>>0]=a[j+13>>0]|0;a[b+12>>0]=a[j>>0]|0;a[b+13>>0]=a[j+4>>0]|0;a[b+14>>0]=a[j+8>>0]|0;a[b+15>>0]=a[j+12>>0]|0;i=h;return}default:{i=h;return}}}function yb(b,c){b=b|0;c=c|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;e=b;f=e+16|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));e=0;do{f=e<<2;g=e+-1|0;h=g>>>0>3;e=e+1|0;i=e>>>0>3;j=e<<2;k=g<<2;g=0;while(1){if(!h){l=g+-1|0;if(l>>>0>3)m=0;else m=d[c+(l+k)>>0]|0;l=d[c+(g+k)>>0]|0;n=m>>>0>l>>>0?m:l;l=g+1|0;if(l>>>0>3)o=n;else{p=d[c+(l+k)>>0]|0;o=n>>>0>p>>>0?n:p}}else o=0;p=g+-1|0;if(p>>>0>3)q=o;else{n=d[c+(p+f)>>0]|0;q=o>>>0>n>>>0?o:n}n=d[c+(g+f)>>0]|0;p=q>>>0>n>>>0?q:n;n=g+1|0;if(n>>>0>3)r=p;else{l=d[c+(n+f)>>0]|0;r=p>>>0>l>>>0?p:l}if(!i){l=g+-1|0;if(l>>>0>3)s=r;else{p=d[c+(l+j)>>0]|0;s=r>>>0>p>>>0?r:p}p=d[c+(g+j)>>0]|0;l=s>>>0>p>>>0?s:p;p=g+1|0;if(p>>>0>3){t=p;u=l}else{n=d[c+(p+j)>>0]|0;a[b+(g+f)>>0]=l>>>0>n>>>0?l:n;g=p;continue}}else{t=g+1|0;u=r}a[b+(g+f)>>0]=u;if((t|0)==4)break;else g=t}}while((e|0)!=4);return}function zb(b,c){b=b|0;c=c|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;e=b;f=e+16|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));e=0;do{f=e<<2;g=e+-1|0;h=g>>>0>3;e=e+1|0;i=e>>>0>3;j=e<<2;k=g<<2;g=0;while(1){if(!h){l=g+-1|0;if(l>>>0>3)m=99;else{n=d[c+(l+k)>>0]|0;m=n>>>0>99?99:n}n=d[c+(g+k)>>0]|0;l=m>>>0<n>>>0?m:n;n=g+1|0;if(n>>>0>3)o=l;else{p=d[c+(n+k)>>0]|0;o=l>>>0<p>>>0?l:p}}else o=99;p=g+-1|0;if(p>>>0>3)q=o;else{l=d[c+(p+f)>>0]|0;q=o>>>0<l>>>0?o:l}l=d[c+(g+f)>>0]|0;p=q>>>0<l>>>0?q:l;l=g+1|0;if(l>>>0>3)r=p;else{n=d[c+(l+f)>>0]|0;r=p>>>0<n>>>0?p:n}if(!i){n=g+-1|0;if(n>>>0>3)s=r;else{p=d[c+(n+j)>>0]|0;s=r>>>0<p>>>0?r:p}p=d[c+(g+j)>>0]|0;n=s>>>0<p>>>0?s:p;p=g+1|0;if(p>>>0>3){t=p;u=n}else{l=d[c+(p+j)>>0]|0;a[b+(g+f)>>0]=n>>>0<l>>>0?n:l;g=p;continue}}else{t=g+1|0;u=r}a[b+(g+f)>>0]=u;if((t|0)==4)break;else g=t}}while((e|0)!=4);return}function Ab(b,c){b=b|0;c=c|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;e=(d[c+1>>0]|0)<<2|(d[c>>0]|0)|(d[c+2>>0]|0)<<4|(d[c+3>>0]|0)<<6|((d[c+5>>0]|0)<<2|(d[c+4>>0]|0)|(d[c+6>>0]|0)<<4|(d[c+7>>0]|0)<<6)<<8|((d[c+9>>0]|0)<<2|(d[c+8>>0]|0)|(d[c+10>>0]|0)<<4|(d[c+11>>0]|0)<<6)<<16|((d[c+13>>0]|0)<<2|(d[c+12>>0]|0)|(d[c+14>>0]|0)<<4|(d[c+15>>0]|0)<<6)<<24;f=b;g=f+16|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(g|0));f=e;e=0;while(1){g=e<<2;h=f;i=0;while(1){j=i+g|0;k=d[c+j>>0]|0;l=((h|0)==0&1)+h|0;m=((l&65535)*36969|0)+(l>>>16)|0;l=((m|0)==0&1)+m|0;n=((l&65535)*36969|0)+(l>>>16)|0;l=(((n&65535^n>>>16)*6|0)>>>16)+(((m&65535^m>>>16)*6|0)>>>16)|0;a:do switch(l|0){case 0:{o=k+-2|0;break}case 10:{o=k+2|0;break}default:if(l>>>0<3){o=k+-1|0;break a}else{o=k+(l>>>0>7&1)|0;break a}}while(0);a[b+j>>0]=(o|0)<0?0:(o|0)>3?3:o&255;i=i+1|0;if((i|0)==4){p=n;break}else h=n}h=e+1|0;if((h|0)==4)break;else{f=p;e=h}}return}function Bb(b,c){b=b|0;c=c|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;d=i;i=i+16|0;e=d;f=d+8|0;g=b;h=g+16|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(h|0));g=0;do{h=g<<2;j=g+-1|0;k=j>>>0>3;g=g+1|0;l=g>>>0>3;m=g<<2;n=j<<2;j=0;do{if(!k){o=j+-1|0;if(o>>>0>3)p=0;else{a[f>>0]=a[c+(o+n)>>0]|0;p=1}o=p+1|0;a[f+p>>0]=a[c+(j+n)>>0]|0;q=j+1|0;if(q>>>0>3)r=o;else{a[f+o>>0]=a[c+(q+n)>>0]|0;r=p|2}}else r=0;q=j+-1|0;if(q>>>0>3)s=r;else{a[f+r>>0]=a[c+(q+h)>>0]|0;s=r+1|0}q=j+1|0;if(q>>>0>3)t=s;else{a[f+s>>0]=a[c+(q+h)>>0]|0;t=s+1|0}if(!l){q=j+-1|0;if(q>>>0>3)u=t;else{a[f+t>>0]=a[c+(q+m)>>0]|0;u=t+1|0}q=u+1|0;a[f+u>>0]=a[c+(j+m)>>0]|0;o=j+1|0;if(o>>>0>3)v=q;else{a[f+q>>0]=a[c+(o+m)>>0]|0;v=u+2|0}}else v=t;Fc(f,f+v|0,e);a[b+(j+h)>>0]=a[f+(v>>>1)>>0]|0;j=j+1|0}while((j|0)!=4)}while((g|0)!=4);i=d;return}function Cb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,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;f=c[d>>2]|0;d=f&255;g=f>>>5;h=f>>>10&63;i=f>>>13;j=f>>>18&63;f=d<<3&248|d>>>2;d=c[509152+(e<<4)>>2]|0;k=f+d|0;if(k>>>0>255)if((k|0)<0){l=0;m=3}else n=255;else{l=k;m=3}if((m|0)==3)n=l;l=g&248|h;h=d+l|0;if(h>>>0>255)if((h|0)<0){o=0;m=6}else p=255;else{o=h;m=6}if((m|0)==6)p=o;o=i&248|j;j=d+o|0;if(j>>>0>255)if((j|0)<0){q=0;m=9}else r=255;else{q=j;m=9}if((m|0)==9)r=q;a[b>>0]=n;a[b+1>>0]=p;a[b+2>>0]=r;a[b+3>>0]=-1;r=b+4|0;p=c[509152+(e<<4)+4>>2]|0;n=p+f|0;if(n>>>0>255)if((n|0)<0){s=0;m=12}else t=255;else{s=n;m=12}if((m|0)==12)t=s;s=p+l|0;if(s>>>0>255)if((s|0)<0){u=0;m=15}else v=255;else{u=s;m=15}if((m|0)==15)v=u;u=p+o|0;if(u>>>0>255)if((u|0)<0){w=0;m=18}else x=255;else{w=u;m=18}if((m|0)==18)x=w;a[r>>0]=t;a[r+1>>0]=v;a[r+2>>0]=x;a[r+3>>0]=-1;r=b+8|0;x=c[509152+(e<<4)+8>>2]|0;v=x+f|0;if(v>>>0>255)if((v|0)<0){y=0;m=21}else z=255;else{y=v;m=21}if((m|0)==21)z=y;y=x+l|0;if(y>>>0>255)if((y|0)<0){A=0;m=24}else B=255;else{A=y;m=24}if((m|0)==24)B=A;A=x+o|0;if(A>>>0>255)if((A|0)<0){C=0;m=27}else D=255;else{C=A;m=27}if((m|0)==27)D=C;a[r>>0]=z;a[r+1>>0]=B;a[r+2>>0]=D;a[r+3>>0]=-1;r=b+12|0;b=c[509152+(e<<4)+12>>2]|0;e=b+f|0;if(e>>>0>255)if((e|0)<0){E=0;m=30}else F=255;else{E=e;m=30}if((m|0)==30)F=E;E=b+l|0;if(E>>>0>255)if((E|0)<0){G=0;m=33}else H=255;else{G=E;m=33}if((m|0)==33)H=G;G=b+o|0;if(G>>>0>255)if((G|0)<0)I=0;else{J=255;K=F&255;a[r>>0]=K;L=H&255;M=r+1|0;a[M>>0]=L;N=J&255;O=r+2|0;a[O>>0]=N;P=r+3|0;a[P>>0]=-1;return}else I=G;J=I;K=F&255;a[r>>0]=K;L=H&255;M=r+1|0;a[M>>0]=L;N=J&255;O=r+2|0;a[O>>0]=N;P=r+3|0;a[P>>0]=-1;return}function Db(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;e=b+8|0;f=c[e>>2]|0;g=b+4|0;h=c[g>>2]|0;i=h;if(f-i>>4>>>0>=d>>>0){j=d;k=h;do{l=k;m=l+16|0;do{a[l>>0]=0;l=l+1|0}while((l|0)<(m|0));k=(c[g>>2]|0)+16|0;c[g>>2]=k;j=j+-1|0}while((j|0)!=0);return}j=c[b>>2]|0;k=(i-j>>4)+d|0;if(k>>>0>268435455)Wb(b);i=j;j=f-i|0;if(j>>4>>>0<134217727){f=j>>3;j=f>>>0<k>>>0?k:f;f=(c[g>>2]|0)-i>>4;if(!j){n=0;o=0;p=f}else{q=j;r=f;s=8}}else{q=268435455;r=(c[g>>2]|0)-i>>4;s=8}if((s|0)==8){n=q;o=Xb(q<<4)|0;p=r}r=o+(p<<4)|0;q=o+(n<<4)|0;n=d;d=r;s=r;while(1){l=d;m=l+16|0;do{a[l>>0]=0;l=l+1|0}while((l|0)<(m|0));d=s+16|0;r=d;n=n+-1|0;if(!n){t=r;break}else s=r}s=c[b>>2]|0;n=(c[g>>2]|0)-s|0;d=o+(p-(n>>4)<<4)|0;Pc(d|0,s|0,n|0)|0;c[b>>2]=d;c[g>>2]=t;c[e>>2]=q;if(!s)return;Yb(s);return}function Eb(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;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;h=g;if(e-h>>3>>>0>=b>>>0){i=b;j=g;do{g=j;c[g>>2]=0;c[g+4>>2]=0;j=(c[f>>2]|0)+8|0;c[f>>2]=j;i=i+-1|0}while((i|0)!=0);return}i=c[a>>2]|0;j=(h-i>>3)+b|0;if(j>>>0>536870911)Wb(a);h=i;i=e-h|0;if(i>>3>>>0<268435455){e=i>>2;i=e>>>0<j>>>0?j:e;e=(c[f>>2]|0)-h>>3;if(!i){k=0;l=0;m=e}else{n=i;o=e;p=8}}else{n=536870911;o=(c[f>>2]|0)-h>>3;p=8}if((p|0)==8){k=n;l=Xb(n<<3)|0;m=o}o=l+(m<<3)|0;n=l+(k<<3)|0;k=b;b=o;p=o;while(1){o=b;c[o>>2]=0;c[o+4>>2]=0;b=p+8|0;o=b;k=k+-1|0;if(!k){q=o;break}else p=o}p=c[a>>2]|0;k=(c[f>>2]|0)-p|0;b=l+(m-(k>>3)<<3)|0;Pc(b|0,p|0,k|0)|0;c[a>>2]=b;c[f>>2]=q;c[d>>2]=n;if(!p)return;Yb(p);return}function Fb(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;e=b+8|0;f=c[e>>2]|0;g=b+4|0;h=c[g>>2]|0;i=h;if(((f-i|0)/7|0)>>>0>=d>>>0){j=d;k=h;do{a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=0;a[k+4>>0]=0;a[k+5>>0]=0;a[k+6>>0]=0;k=(c[g>>2]|0)+7|0;c[g>>2]=k;j=j+-1|0}while((j|0)!=0);return}j=c[b>>2]|0;k=((i-j|0)/7|0)+d|0;if(k>>>0>613566756)Wb(b);i=j;j=(f-i|0)/7|0;if(j>>>0<306783378){f=j<<1;j=f>>>0<k>>>0?k:f;f=((c[g>>2]|0)-i|0)/7|0;if(!j){l=0;m=0;n=f}else{o=j;p=f;q=8}}else{o=613566756;p=((c[g>>2]|0)-i|0)/7|0;q=8}if((q|0)==8){l=o;m=Xb(o*7|0)|0;n=p}p=m+(n*7|0)|0;o=m+(l*7|0)|0;l=d;d=p;q=p;while(1){a[d>>0]=0;a[d+1>>0]=0;a[d+2>>0]=0;a[d+3>>0]=0;a[d+4>>0]=0;a[d+5>>0]=0;a[d+6>>0]=0;d=q+7|0;p=d;l=l+-1|0;if(!l){r=p;break}else q=p}q=c[b>>2]|0;l=(c[g>>2]|0)-q|0;d=m+((((l|0)/-7|0)+n|0)*7|0)|0;Pc(d|0,q|0,l|0)|0;c[b>>2]=d;c[g>>2]=r;c[e>>2]=o;if(!q)return;Yb(q);return}function Gb(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;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;h=g;if(e-h>>2>>>0>=b>>>0){Mc(g|0,0,b<<2|0)|0;c[f>>2]=g+(b<<2);return}g=c[a>>2]|0;i=g;j=(h-i>>2)+b|0;if(j>>>0>1073741823)Wb(a);h=g;k=e-h|0;if(k>>2>>>0<536870911){e=k>>1;k=e>>>0<j>>>0?j:e;e=(c[f>>2]|0)-h|0;j=e>>2;if(!k){l=0;m=0;n=j;o=e}else{p=k;q=j;r=e;s=8}}else{e=(c[f>>2]|0)-h|0;p=1073741823;q=e>>2;r=e;s=8}if((s|0)==8){l=p;m=Xb(p<<2)|0;n=q;o=r}Mc(m+(n<<2)|0,0,b<<2|0)|0;Pc(m|0,g|0,o|0)|0;c[a>>2]=m;c[f>>2]=m+(n+b<<2);c[d>>2]=m+(l<<2);if(!i)return;Yb(i);return}function Hb(a,d){a=a|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;e=a+8|0;f=c[e>>2]|0;g=a+4|0;h=c[g>>2]|0;i=h;if(f-i>>2>>>0>=d>>>0){j=d;k=h;do{b[k>>1]=0;b[k+2>>1]=0>>>16;k=(c[g>>2]|0)+4|0;c[g>>2]=k;j=j+-1|0}while((j|0)!=0);return}j=c[a>>2]|0;k=(i-j>>2)+d|0;if(k>>>0>1073741823)Wb(a);i=j;j=f-i|0;if(j>>2>>>0<536870911){f=j>>1;j=f>>>0<k>>>0?k:f;f=(c[g>>2]|0)-i>>2;if(!j){l=0;m=0;n=f}else{o=j;p=f;q=8}}else{o=1073741823;p=(c[g>>2]|0)-i>>2;q=8}if((q|0)==8){l=o;m=Xb(o<<2)|0;n=p}p=m+(n<<2)|0;o=m+(l<<2)|0;l=d;d=p;q=p;while(1){b[d>>1]=0;b[d+2>>1]=0>>>16;d=q+4|0;p=d;l=l+-1|0;if(!l){r=p;break}else q=p}q=c[a>>2]|0;l=(c[g>>2]|0)-q|0;d=m+(n-(l>>2)<<2)|0;Pc(d|0,q|0,l|0)|0;c[a>>2]=d;c[g>>2]=r;c[e>>2]=o;if(!q)return;Yb(q);return}function Ib(a){a=a|0;Ya(a);return}function Jb(){return Xa()|0}function Kb(){var a=0,b=0;_a();if(c[127352]|0)return;a=Xb(12)|0;b=c[127255]|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;Za(a,b,492636);c[127352]=a;return}function Lb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(!((a|0)!=0&(b|0)!=0)){d=0;return d|0}e=Xb(604)|0;f=e+4|0;hb(f,c[127352]|0);c[e+596>>2]=a;c[e+600>>2]=b;if(ib(f,a,b)|0){c[e>>2]=-559038751;d=e;return d|0}else{Vb(e+12|0);Yb(e);d=0;return d|0}return 0}function Mb(a){a=a|0;if(!a)return;if((c[a>>2]|0)!=-559038751)return;Vb(a+12|0);Yb(a);return}function Nb(a){a=a|0;var b=0,e=0,f=0,g=0;b=i;i=i+48|0;e=b;if(!a){f=0;i=b;return f|0}if((c[a>>2]|0)!=-559038751){f=0;i=b;return f|0}g=nb(a+4|0,c[a+596>>2]|0,c[a+600>>2]|0,e,0,0)|0;f=g?d[e+40>>0]|0:0;i=b;return f|0}function Ob(a){a=a|0;var b=0;if(!a){b=0;return b|0}if((c[a>>2]|0)!=-559038751){b=0;return b|0}b=kb(a+4|0,c[a+596>>2]|0,c[a+600>>2]|0)|0;return b|0}function Pb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+48|0;e=d;if(!a){f=0;i=d;return f|0}if((c[a>>2]|0)!=-559038751){f=0;i=d;return f|0}g=lb(a+4|0,c[a+596>>2]|0,c[a+600>>2]|0,e,b)|0;f=g?c[e+4>>2]|0:0;i=d;return f|0}function Qb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;if(!a){i=e;return 0}if((c[a>>2]|0)==-559038751){g=mb(a+4|0,c[a+596>>2]|0,c[a+600>>2]|0,b,d,f,e+4|0,e)|0;i=e;return (g?c[f>>2]|0:0)|0}else{i=e;return 0}return 0}function Rb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;if(!a){i=e;return 0}if((c[a>>2]|0)==-559038751){g=mb(a+4|0,c[a+596>>2]|0,c[a+600>>2]|0,b,d,e+8|0,f,e)|0;i=e;return (g?c[f>>2]|0:0)|0}else{i=e;return 0}return 0}function Sb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f;if(!a){h=0;i=f;return h|0}if(e>>>0>7|(c[a>>2]|0)!=-559038751){h=0;i=f;return h|0}j=rb(e)|0;if(!(mb(a+4|0,c[a+596>>2]|0,c[a+600>>2]|0,b,d,f+8|0,f+4|0,g)|0)){h=0;i=f;return h|0}h=Z(c[g>>2]|0,j)|0;i=f;return h|0}function Tb(a){a=a|0;var b=0;if(!a){b=0;return b|0}if((c[a>>2]|0)!=-559038751){b=0;return b|0}b=(ob(a+4|0,c[a+596>>2]|0,c[a+600>>2]|0)|0)&1;return b|0}function Ub(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;if(!a){j=0;return j|0}if(g>>>0>7|(c[a>>2]|0)!=-559038751){j=0;return j|0}k=rb(g)|0;j=(qb(a+4|0,c[a+596>>2]|0,c[a+600>>2]|0,e,f,b,(d>>>0)/(k>>>0)|0,g,((i|0)!=0?4:0)|(h|0)!=0)|0)&1;return j|0}function Vb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+200|0;d=a+584|0;do{e=d;d=d+-12|0;f=c[d>>2]|0;g=f;if(f){h=e+-8|0;e=c[h>>2]|0;if((e|0)!=(f|0))c[h>>2]=e+(~((e+-4-g|0)>>>2)<<2);Yb(f)}}while((d|0)!=(b|0));b=c[a+188>>2]|0;d=b;if(b){f=a+192|0;g=c[f>>2]|0;if((g|0)!=(b|0))c[f>>2]=g+(~((g+-4-d|0)>>>2)<<2);Yb(b)}b=c[a+176>>2]|0;d=b;if(b){g=a+180|0;f=c[g>>2]|0;if((f|0)!=(b|0))c[g>>2]=f+(~((f+-4-d|0)>>>2)<<2);Yb(b)}b=c[a+160>>2]|0;d=b;if(b){f=a+164|0;g=c[f>>2]|0;if((g|0)!=(b|0))c[f>>2]=g+(~((g+-2-d|0)>>>1)<<1);Yb(b)}b=c[a+148>>2]|0;d=b;if(b){g=a+152|0;f=c[g>>2]|0;if((f|0)!=(b|0))c[g>>2]=f+(~((f+-4-d|0)>>>2)<<2);Yb(b)}b=c[a+136>>2]|0;if(b){d=a+140|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;Yb(b)}b=c[a+124>>2]|0;d=b;if(b){f=a+128|0;g=c[f>>2]|0;if((g|0)!=(b|0))c[f>>2]=g+(~((g+-2-d|0)>>>1)<<1);Yb(b)}b=c[a+112>>2]|0;d=b;if(b){g=a+116|0;f=c[g>>2]|0;if((f|0)!=(b|0))c[g>>2]=f+(~((f+-4-d|0)>>>2)<<2);Yb(b)}b=c[a+100>>2]|0;if(b){d=a+104|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;Yb(b)}b=c[a+88>>2]|0;d=b;if(b){f=a+92|0;g=c[f>>2]|0;if((g|0)!=(b|0))c[f>>2]=g+(~((g+-2-d|0)>>>1)<<1);Yb(b)}b=c[a+76>>2]|0;d=b;if(b){g=a+80|0;f=c[g>>2]|0;if((f|0)!=(b|0))c[g>>2]=f+(~((f+-4-d|0)>>>2)<<2);Yb(b)}b=c[a+64>>2]|0;if(b){d=a+68|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;Yb(b)}b=c[a+52>>2]|0;d=b;if(b){f=a+56|0;g=c[f>>2]|0;if((g|0)!=(b|0))c[f>>2]=g+(~((g+-2-d|0)>>>1)<<1);Yb(b)}b=c[a+40>>2]|0;d=b;if(b){g=a+44|0;f=c[g>>2]|0;if((f|0)!=(b|0))c[g>>2]=f+(~((f+-4-d|0)>>>2)<<2);Yb(b)}b=c[a+28>>2]|0;if(b){d=a+32|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;Yb(b)}b=c[a+12>>2]|0;if(b){d=a+16|0;f=c[d>>2]|0;if((f|0)!=(b|0))c[d>>2]=f+(~(((0-b+(f+-7)|0)>>>0)/7|0)*7|0);Yb(b)}b=c[a>>2]|0;if(!b)return;f=a+4|0;a=c[f>>2]|0;if((a|0)!=(b|0))c[f>>2]=a+(~((a+-8-b|0)>>>3)<<3);Yb(b);return}function Wb(a){a=a|0;ma(645771,645794,303,645869)}function Xb(a){a=a|0;var b=0,d=0,e=0;b=(a|0)==0?1:a;a=Dc(b)|0;a:do if(!a){while(1){d=ac()|0;if(!d)break;La[d&0]();d=Dc(b)|0;if(d){e=d;break a}}d=na(4)|0;c[d>>2]=509420;za(d|0,8,1)}else e=a;while(0);return e|0}function Yb(a){a=a|0;Ec(a);return}function Zb(a){a=a|0;return}function _b(a){a=a|0;Yb(a);return}function $b(a){a=a|0;return 645890}function ac(){var a=0;a=c[127358]|0;c[127358]=a+0;return a|0}function bc(a){a=a|0;return}function cc(a){a=a|0;return}function dc(a){a=a|0;return}function ec(a){a=a|0;return}function fc(a){a=a|0;return}function gc(a){a=a|0;Yb(a);return}function hc(a){a=a|0;Yb(a);return}function ic(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;e=i;i=i+64|0;f=e;if((a|0)!=(b|0))if((b|0)!=0?(g=mc(b,40,56,0)|0,(g|0)!=0):0){b=f;h=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(h|0));c[f>>2]=g;c[f+8>>2]=a;c[f+12>>2]=-1;c[f+48>>2]=1;Na[c[(c[g>>2]|0)+28>>2]&3](g,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];j=1}else j=0;k=j}else k=0;else k=1;i=e;return k|0}function jc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;b=d+16|0;g=c[b>>2]|0;do if(g){if((g|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break}h=d+24|0;if((c[h>>2]|0)==2)c[h>>2]=f}else{c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1}while(0);return}function kc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((a|0)==(c[b+8>>2]|0))jc(0,b,d,e);return}function lc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((a|0)==(c[b+8>>2]|0))jc(0,b,d,e);else{f=c[a+8>>2]|0;Na[c[(c[f>>2]|0)+28>>2]&3](f,b,d,e)}return}function mc(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;i=i+64|0;j=h;k=c[d>>2]|0;l=d+(c[k+-8>>2]|0)|0;m=c[k+-4>>2]|0;c[j>>2]=f;c[j+4>>2]=d;c[j+8>>2]=e;c[j+12>>2]=g;g=j+16|0;e=j+20|0;d=j+24|0;k=j+28|0;n=j+32|0;o=j+40|0;p=(m|0)==(f|0);q=g;r=q+36|0;do{c[q>>2]=0;q=q+4|0}while((q|0)<(r|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(p){c[j+48>>2]=1;Ma[c[(c[f>>2]|0)+20>>2]&3](f,j,l,l,1,0);s=(c[d>>2]|0)==1?l:0}else{Ia[c[(c[m>>2]|0)+24>>2]&3](m,j,l,1,0);switch(c[j+36>>2]|0){case 0:{s=(c[o>>2]|0)==1&(c[k>>2]|0)==1&(c[n>>2]|0)==1?c[e>>2]|0:0;break a;break}case 1:break;default:{s=0;break a}}if((c[d>>2]|0)!=1?!((c[o>>2]|0)==0&(c[k>>2]|0)==1&(c[n>>2]|0)==1):0){s=0;break}s=c[g>>2]|0}while(0);i=h;return s|0}function nc(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;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;h=c[b>>2]|0;if(!h){c[b>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break}if((h|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;a[d+54>>0]=1;break}h=d+24|0;b=c[h>>2]|0;if((b|0)==2){c[h>>2]=g;i=g}else i=b;if((i|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1}while(0);return}function oc(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;a:do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(h=d+28|0,(c[h>>2]|0)!=1):0)c[h>>2]=f}else{if((b|0)!=(c[d>>2]|0)){h=c[b+8>>2]|0;Ia[c[(c[h>>2]|0)+24>>2]&3](h,d,e,f,g);break}if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;i=d+44|0;if((c[i>>2]|0)==4)break;j=d+52|0;a[j>>0]=0;k=d+53|0;a[k>>0]=0;l=c[b+8>>2]|0;Ma[c[(c[l>>2]|0)+20>>2]&3](l,d,e,e,1,g);if(a[k>>0]|0){if(!(a[j>>0]|0)){m=1;n=13}}else{m=0;n=13}do if((n|0)==13){c[h>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;if(m)break}else n=16;if((n|0)==16?m:0)break;c[i>>2]=4;break a}while(0);c[i>>2]=3;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function pc(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(g=d+28|0,(c[g>>2]|0)!=1):0)c[g>>2]=f}else if((b|0)==(c[d>>2]|0)){if((c[d+16>>2]|0)!=(e|0)?(g=d+20|0,(c[g>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[g>>2]=e;g=d+40|0;c[g>>2]=(c[g>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function qc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;if((a|0)==(c[b+8>>2]|0))nc(0,b,d,e,f);else{h=c[a+8>>2]|0;Ma[c[(c[h>>2]|0)+20>>2]&3](h,b,d,e,f,g)}return}function rc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)==(c[b+8>>2]|0))nc(0,b,d,e,f);return}function sc(){var a=0;if(!(c[127379]|0))a=509564;else a=c[(va()|0)+60>>2]|0;return a|0}function tc(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(sc()|0)>>2]=0-a;b=-1}else b=a;return b|0}function uc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;do if(a){if((c[a+76>>2]|0)<=-1){b=Bc(a)|0;break}d=(vc(a)|0)==0;e=Bc(a)|0;if(d)b=e;else{wc(a);b=e}}else{if(!(c[127390]|0))f=0;else f=uc(c[127390]|0)|0;Aa(509544);e=c[127385]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=vc(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=Bc(d)|0|e;else i=e;if(h)wc(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}xa(509544);b=g}while(0);return b|0}function vc(a){a=a|0;return 0}function wc(a){a=a|0;return}function xc(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=tc(ka(6,d|0)|0)|0;i=b;return a|0}function yc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((tc(Ea(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1}else h=c[g>>2]|0;i=e;return h|0}function zc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=i;i=i+48|0;f=e+16|0;g=e;h=e+32|0;j=a+28|0;k=c[j>>2]|0;c[h>>2]=k;l=a+20|0;m=(c[l>>2]|0)-k|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=a+60|0;k=a+44|0;n=h;h=2;o=m+d|0;while(1){if(!(c[127379]|0)){c[f>>2]=c[b>>2];c[f+4>>2]=n;c[f+8>>2]=h;p=tc(Fa(146,f|0)|0)|0}else{Ca(8,a|0);c[g>>2]=c[b>>2];c[g+4>>2]=n;c[g+8>>2]=h;m=tc(Fa(146,g|0)|0)|0;ja(0);p=m}if((o|0)==(p|0)){q=6;break}if((p|0)<0){r=n;s=h;q=8;break}m=o-p|0;t=c[n+4>>2]|0;if(p>>>0<=t>>>0)if((h|0)==2){c[j>>2]=(c[j>>2]|0)+p;u=t;v=p;w=n;x=2}else{u=t;v=p;w=n;x=h}else{y=c[k>>2]|0;c[j>>2]=y;c[l>>2]=y;u=c[n+12>>2]|0;v=p-t|0;w=n+8|0;x=h+-1|0}c[w>>2]=(c[w>>2]|0)+v;c[w+4>>2]=u-v;n=w;h=x;o=m}if((q|0)==6){o=c[k>>2]|0;c[a+16>>2]=o+(c[a+48>>2]|0);k=o;c[j>>2]=k;c[l>>2]=k;z=d}else if((q|0)==8){c[a+16>>2]=0;c[j>>2]=0;c[l>>2]=0;c[a>>2]=c[a>>2]|32;if((s|0)==2)z=0;else z=d-(c[r+4>>2]|0)|0}i=e;return z|0}function Ac(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+80|0;g=f;c[b+36>>2]=4;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21505,c[g+8>>2]=f+12,(wa(54,g|0)|0)!=0):0)a[b+75>>0]=-1;g=zc(b,d,e)|0;i=f;return g|0}function Bc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+20|0;d=a+28|0;if((c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0?(Ha[c[a+36>>2]&7](a,0,0)|0,(c[b>>2]|0)==0):0)e=-1;else{f=a+4|0;g=c[f>>2]|0;h=a+8|0;i=c[h>>2]|0;if(g>>>0<i>>>0)Ha[c[a+40>>2]&7](a,g-i|0,1)|0;c[a+16>>2]=0;c[d>>2]=0;c[b>>2]=0;c[h>>2]=0;c[f>>2]=0;e=0}return e|0}function Cc(a){a=a|0;if(!(c[a+68>>2]|0))wc(a);return}function Dc(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,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,ra=0,sa=0,ta=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ca=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0;do if(a>>>0<245){b=a>>>0<11?16:a+11&-8;d=b>>>3;e=c[127420]|0;f=e>>>d;if(f&3){g=(f&1^1)+d|0;h=g<<1;i=509720+(h<<2)|0;j=509720+(h+2<<2)|0;h=c[j>>2]|0;k=h+8|0;l=c[k>>2]|0;do if((i|0)!=(l|0)){if(l>>>0<(c[127424]|0)>>>0)Ba();m=l+12|0;if((c[m>>2]|0)==(h|0)){c[m>>2]=i;c[j>>2]=l;break}else Ba()}else c[127420]=e&~(1<<g);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}j=c[127422]|0;if(b>>>0>j>>>0){if(f){l=2<<d;i=f<<d&(l|0-l);l=(i&0-i)+-1|0;i=l>>>12&16;m=l>>>i;l=m>>>5&8;o=m>>>l;m=o>>>2&4;p=o>>>m;o=p>>>1&2;q=p>>>o;p=q>>>1&1;r=(l|i|m|o|p)+(q>>>p)|0;p=r<<1;q=509720+(p<<2)|0;o=509720+(p+2<<2)|0;p=c[o>>2]|0;m=p+8|0;i=c[m>>2]|0;do if((q|0)!=(i|0)){if(i>>>0<(c[127424]|0)>>>0)Ba();l=i+12|0;if((c[l>>2]|0)==(p|0)){c[l>>2]=q;c[o>>2]=i;s=c[127422]|0;break}else Ba()}else{c[127420]=e&~(1<<r);s=j}while(0);j=r<<3;e=j-b|0;c[p+4>>2]=b|3;i=p+b|0;c[p+(b|4)>>2]=e|1;c[p+j>>2]=e;if(s){j=c[127425]|0;o=s>>>3;q=o<<1;d=509720+(q<<2)|0;f=c[127420]|0;k=1<<o;if(f&k){o=509720+(q+2<<2)|0;h=c[o>>2]|0;if(h>>>0<(c[127424]|0)>>>0)Ba();else{t=o;u=h}}else{c[127420]=f|k;t=509720+(q+2<<2)|0;u=d}c[t>>2]=j;c[u+12>>2]=j;c[j+8>>2]=u;c[j+12>>2]=d}c[127422]=e;c[127425]=i;n=m;return n|0}i=c[127421]|0;if(i){e=(i&0-i)+-1|0;i=e>>>12&16;d=e>>>i;e=d>>>5&8;j=d>>>e;d=j>>>2&4;q=j>>>d;j=q>>>1&2;k=q>>>j;q=k>>>1&1;f=c[509984+((e|i|d|j|q)+(k>>>q)<<2)>>2]|0;q=(c[f+4>>2]&-8)-b|0;k=f;j=f;while(1){f=c[k+16>>2]|0;if(!f){d=c[k+20>>2]|0;if(!d){v=q;w=j;break}else x=d}else x=f;f=(c[x+4>>2]&-8)-b|0;d=f>>>0<q>>>0;q=d?f:q;k=x;j=d?x:j}j=c[127424]|0;if(w>>>0<j>>>0)Ba();k=w+b|0;if(w>>>0>=k>>>0)Ba();q=c[w+24>>2]|0;m=c[w+12>>2]|0;do if((m|0)==(w|0)){p=w+20|0;r=c[p>>2]|0;if(!r){d=w+16|0;f=c[d>>2]|0;if(!f){y=0;break}else{z=f;A=d}}else{z=r;A=p}while(1){p=z+20|0;r=c[p>>2]|0;if(r){z=r;A=p;continue}p=z+16|0;r=c[p>>2]|0;if(!r){B=z;C=A;break}else{z=r;A=p}}if(C>>>0<j>>>0)Ba();else{c[C>>2]=0;y=B;break}}else{p=c[w+8>>2]|0;if(p>>>0<j>>>0)Ba();r=p+12|0;if((c[r>>2]|0)!=(w|0))Ba();d=m+8|0;if((c[d>>2]|0)==(w|0)){c[r>>2]=m;c[d>>2]=p;y=m;break}else Ba()}while(0);do if(q){m=c[w+28>>2]|0;j=509984+(m<<2)|0;if((w|0)==(c[j>>2]|0)){c[j>>2]=y;if(!y){c[127421]=c[127421]&~(1<<m);break}}else{if(q>>>0<(c[127424]|0)>>>0)Ba();m=q+16|0;if((c[m>>2]|0)==(w|0))c[m>>2]=y;else c[q+20>>2]=y;if(!y)break}m=c[127424]|0;if(y>>>0<m>>>0)Ba();c[y+24>>2]=q;j=c[w+16>>2]|0;do if(j)if(j>>>0<m>>>0)Ba();else{c[y+16>>2]=j;c[j+24>>2]=y;break}while(0);j=c[w+20>>2]|0;if(j)if(j>>>0<(c[127424]|0)>>>0)Ba();else{c[y+20>>2]=j;c[j+24>>2]=y;break}}while(0);if(v>>>0<16){q=v+b|0;c[w+4>>2]=q|3;j=w+(q+4)|0;c[j>>2]=c[j>>2]|1}else{c[w+4>>2]=b|3;c[w+(b|4)>>2]=v|1;c[w+(v+b)>>2]=v;j=c[127422]|0;if(j){q=c[127425]|0;m=j>>>3;j=m<<1;p=509720+(j<<2)|0;d=c[127420]|0;r=1<<m;if(d&r){m=509720+(j+2<<2)|0;f=c[m>>2]|0;if(f>>>0<(c[127424]|0)>>>0)Ba();else{D=m;E=f}}else{c[127420]=d|r;D=509720+(j+2<<2)|0;E=p}c[D>>2]=q;c[E+12>>2]=q;c[q+8>>2]=E;c[q+12>>2]=p}c[127422]=v;c[127425]=k}n=w+8|0;return n|0}else F=b}else F=b}else if(a>>>0<=4294967231){p=a+11|0;q=p&-8;j=c[127421]|0;if(j){r=0-q|0;d=p>>>8;if(d)if(q>>>0>16777215)G=31;else{p=(d+1048320|0)>>>16&8;f=d<<p;d=(f+520192|0)>>>16&4;m=f<<d;f=(m+245760|0)>>>16&2;i=14-(d|p|f)+(m<<f>>>15)|0;G=q>>>(i+7|0)&1|i<<1}else G=0;i=c[509984+(G<<2)>>2]|0;a:do if(!i){H=r;I=0;J=0;K=86}else{f=r;m=0;p=q<<((G|0)==31?0:25-(G>>>1)|0);d=i;e=0;while(1){h=c[d+4>>2]&-8;o=h-q|0;if(o>>>0<f>>>0)if((h|0)==(q|0)){L=o;M=d;N=d;K=90;break a}else{O=o;P=d}else{O=f;P=e}o=c[d+20>>2]|0;d=c[d+16+(p>>>31<<2)>>2]|0;h=(o|0)==0|(o|0)==(d|0)?m:o;if(!d){H=O;I=h;J=P;K=86;break}else{f=O;m=h;p=p<<1;e=P}}}while(0);if((K|0)==86){if((I|0)==0&(J|0)==0){i=2<<G;r=j&(i|0-i);if(!r){F=q;break}i=(r&0-r)+-1|0;r=i>>>12&16;b=i>>>r;i=b>>>5&8;k=b>>>i;b=k>>>2&4;e=k>>>b;k=e>>>1&2;p=e>>>k;e=p>>>1&1;Q=c[509984+((i|r|b|k|e)+(p>>>e)<<2)>>2]|0;R=0}else{Q=I;R=J}if(!Q){S=H;T=R}else{L=H;M=Q;N=R;K=90}}if((K|0)==90)while(1){K=0;e=(c[M+4>>2]&-8)-q|0;p=e>>>0<L>>>0;k=p?e:L;e=p?M:N;p=c[M+16>>2]|0;if(p){L=k;M=p;N=e;K=90;continue}M=c[M+20>>2]|0;if(!M){S=k;T=e;break}else{L=k;N=e;K=90}}if((T|0)!=0?S>>>0<((c[127422]|0)-q|0)>>>0:0){j=c[127424]|0;if(T>>>0<j>>>0)Ba();e=T+q|0;if(T>>>0>=e>>>0)Ba();k=c[T+24>>2]|0;p=c[T+12>>2]|0;do if((p|0)==(T|0)){b=T+20|0;r=c[b>>2]|0;if(!r){i=T+16|0;m=c[i>>2]|0;if(!m){U=0;break}else{V=m;W=i}}else{V=r;W=b}while(1){b=V+20|0;r=c[b>>2]|0;if(r){V=r;W=b;continue}b=V+16|0;r=c[b>>2]|0;if(!r){X=V;Y=W;break}else{V=r;W=b}}if(Y>>>0<j>>>0)Ba();else{c[Y>>2]=0;U=X;break}}else{b=c[T+8>>2]|0;if(b>>>0<j>>>0)Ba();r=b+12|0;if((c[r>>2]|0)!=(T|0))Ba();i=p+8|0;if((c[i>>2]|0)==(T|0)){c[r>>2]=p;c[i>>2]=b;U=p;break}else Ba()}while(0);do if(k){p=c[T+28>>2]|0;j=509984+(p<<2)|0;if((T|0)==(c[j>>2]|0)){c[j>>2]=U;if(!U){c[127421]=c[127421]&~(1<<p);break}}else{if(k>>>0<(c[127424]|0)>>>0)Ba();p=k+16|0;if((c[p>>2]|0)==(T|0))c[p>>2]=U;else c[k+20>>2]=U;if(!U)break}p=c[127424]|0;if(U>>>0<p>>>0)Ba();c[U+24>>2]=k;j=c[T+16>>2]|0;do if(j)if(j>>>0<p>>>0)Ba();else{c[U+16>>2]=j;c[j+24>>2]=U;break}while(0);j=c[T+20>>2]|0;if(j)if(j>>>0<(c[127424]|0)>>>0)Ba();else{c[U+20>>2]=j;c[j+24>>2]=U;break}}while(0);b:do if(S>>>0>=16){c[T+4>>2]=q|3;c[T+(q|4)>>2]=S|1;c[T+(S+q)>>2]=S;k=S>>>3;if(S>>>0<256){j=k<<1;p=509720+(j<<2)|0;b=c[127420]|0;i=1<<k;if(b&i){k=509720+(j+2<<2)|0;r=c[k>>2]|0;if(r>>>0<(c[127424]|0)>>>0)Ba();else{Z=k;_=r}}else{c[127420]=b|i;Z=509720+(j+2<<2)|0;_=p}c[Z>>2]=e;c[_+12>>2]=e;c[T+(q+8)>>2]=_;c[T+(q+12)>>2]=p;break}p=S>>>8;if(p)if(S>>>0>16777215)$=31;else{j=(p+1048320|0)>>>16&8;i=p<<j;p=(i+520192|0)>>>16&4;b=i<<p;i=(b+245760|0)>>>16&2;r=14-(p|j|i)+(b<<i>>>15)|0;$=S>>>(r+7|0)&1|r<<1}else $=0;r=509984+($<<2)|0;c[T+(q+28)>>2]=$;c[T+(q+20)>>2]=0;c[T+(q+16)>>2]=0;i=c[127421]|0;b=1<<$;if(!(i&b)){c[127421]=i|b;c[r>>2]=e;c[T+(q+24)>>2]=r;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break}b=c[r>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(S|0)){r=S<<(($|0)==31?0:25-($>>>1)|0);i=b;while(1){j=i+16+(r>>>31<<2)|0;p=c[j>>2]|0;if(!p){aa=j;ba=i;break}if((c[p+4>>2]&-8|0)==(S|0)){ca=p;break c}else{r=r<<1;i=p}}if(aa>>>0<(c[127424]|0)>>>0)Ba();else{c[aa>>2]=e;c[T+(q+24)>>2]=ba;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break b}}else ca=b;while(0);b=ca+8|0;i=c[b>>2]|0;r=c[127424]|0;if(i>>>0>=r>>>0&ca>>>0>=r>>>0){c[i+12>>2]=e;c[b>>2]=e;c[T+(q+8)>>2]=i;c[T+(q+12)>>2]=ca;c[T+(q+24)>>2]=0;break}else Ba()}else{i=S+q|0;c[T+4>>2]=i|3;b=T+(i+4)|0;c[b>>2]=c[b>>2]|1}while(0);n=T+8|0;return n|0}else F=q}else F=q}else F=-1;while(0);T=c[127422]|0;if(T>>>0>=F>>>0){S=T-F|0;ca=c[127425]|0;if(S>>>0>15){c[127425]=ca+F;c[127422]=S;c[ca+(F+4)>>2]=S|1;c[ca+T>>2]=S;c[ca+4>>2]=F|3}else{c[127422]=0;c[127425]=0;c[ca+4>>2]=T|3;S=ca+(T+4)|0;c[S>>2]=c[S>>2]|1}n=ca+8|0;return n|0}ca=c[127423]|0;if(ca>>>0>F>>>0){S=ca-F|0;c[127423]=S;ca=c[127426]|0;c[127426]=ca+F;c[ca+(F+4)>>2]=S|1;c[ca+4>>2]=F|3;n=ca+8|0;return n|0}do if(!(c[127538]|0)){ca=ua(30)|0;if(!(ca+-1&ca)){c[127540]=ca;c[127539]=ca;c[127541]=-1;c[127542]=-1;c[127543]=0;c[127531]=0;c[127538]=(Da(0)|0)&-16^1431655768;break}else Ba()}while(0);ca=F+48|0;S=c[127540]|0;T=F+47|0;ba=S+T|0;aa=0-S|0;S=ba&aa;if(S>>>0<=F>>>0){n=0;return n|0}$=c[127530]|0;if(($|0)!=0?(_=c[127528]|0,Z=_+S|0,Z>>>0<=_>>>0|Z>>>0>$>>>0):0){n=0;return n|0}d:do if(!(c[127531]&4)){$=c[127426]|0;e:do if($){Z=510128;while(1){_=c[Z>>2]|0;if(_>>>0<=$>>>0?(U=Z+4|0,(_+(c[U>>2]|0)|0)>>>0>$>>>0):0){da=Z;ea=U;break}Z=c[Z+8>>2]|0;if(!Z){K=174;break e}}Z=ba-(c[127423]|0)&aa;if(Z>>>0<2147483647){U=qa(Z|0)|0;_=(U|0)==((c[da>>2]|0)+(c[ea>>2]|0)|0);X=_?Z:0;if(_)if((U|0)==(-1|0))fa=X;else{ga=U;ha=X;K=194;break d}else{ia=U;ja=Z;ka=X;K=184}}else fa=0}else K=174;while(0);do if((K|0)==174){$=qa(0)|0;if(($|0)!=(-1|0)){q=$;X=c[127539]|0;Z=X+-1|0;if(!(Z&q))la=S;else la=S-q+(Z+q&0-X)|0;X=c[127528]|0;q=X+la|0;if(la>>>0>F>>>0&la>>>0<2147483647){Z=c[127530]|0;if((Z|0)!=0?q>>>0<=X>>>0|q>>>0>Z>>>0:0){fa=0;break}Z=qa(la|0)|0;q=(Z|0)==($|0);X=q?la:0;if(q){ga=$;ha=X;K=194;break d}else{ia=Z;ja=la;ka=X;K=184}}else fa=0}else fa=0}while(0);f:do if((K|0)==184){X=0-ja|0;do if(ca>>>0>ja>>>0&(ja>>>0<2147483647&(ia|0)!=(-1|0))?(Z=c[127540]|0,$=T-ja+Z&0-Z,$>>>0<2147483647):0)if((qa($|0)|0)==(-1|0)){qa(X|0)|0;fa=ka;break f}else{ma=$+ja|0;break}else ma=ja;while(0);if((ia|0)==(-1|0))fa=ka;else{ga=ia;ha=ma;K=194;break d}}while(0);c[127531]=c[127531]|4;na=fa;K=191}else{na=0;K=191}while(0);if((((K|0)==191?S>>>0<2147483647:0)?(fa=qa(S|0)|0,S=qa(0)|0,fa>>>0<S>>>0&((fa|0)!=(-1|0)&(S|0)!=(-1|0))):0)?(ma=S-fa|0,S=ma>>>0>(F+40|0)>>>0,S):0){ga=fa;ha=S?ma:na;K=194}if((K|0)==194){na=(c[127528]|0)+ha|0;c[127528]=na;if(na>>>0>(c[127529]|0)>>>0)c[127529]=na;na=c[127426]|0;g:do if(na){ma=510128;do{S=c[ma>>2]|0;fa=ma+4|0;ia=c[fa>>2]|0;if((ga|0)==(S+ia|0)){oa=S;pa=fa;ra=ia;sa=ma;K=204;break}ma=c[ma+8>>2]|0}while((ma|0)!=0);if(((K|0)==204?(c[sa+12>>2]&8|0)==0:0)?na>>>0<ga>>>0&na>>>0>=oa>>>0:0){c[pa>>2]=ra+ha;ma=(c[127423]|0)+ha|0;ia=na+8|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ma-fa|0;c[127426]=na+fa;c[127423]=ia;c[na+(fa+4)>>2]=ia|1;c[na+(ma+4)>>2]=40;c[127427]=c[127542];break}ma=c[127424]|0;if(ga>>>0<ma>>>0){c[127424]=ga;ta=ga}else ta=ma;ma=ga+ha|0;ia=510128;while(1){if((c[ia>>2]|0)==(ma|0)){va=ia;wa=ia;K=212;break}ia=c[ia+8>>2]|0;if(!ia){xa=510128;break}}if((K|0)==212)if(!(c[wa+12>>2]&8)){c[va>>2]=ga;ia=wa+4|0;c[ia>>2]=(c[ia>>2]|0)+ha;ia=ga+8|0;ma=(ia&7|0)==0?0:0-ia&7;ia=ga+(ha+8)|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ga+(fa+ha)|0;S=ma+F|0;ka=ga+S|0;ja=ia-(ga+ma)-F|0;c[ga+(ma+4)>>2]=F|3;h:do if((ia|0)!=(na|0)){if((ia|0)==(c[127425]|0)){T=(c[127422]|0)+ja|0;c[127422]=T;c[127425]=ka;c[ga+(S+4)>>2]=T|1;c[ga+(T+S)>>2]=T;break}T=ha+4|0;ca=c[ga+(T+fa)>>2]|0;if((ca&3|0)==1){la=ca&-8;ea=ca>>>3;i:do if(ca>>>0>=256){da=c[ga+((fa|24)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;do if((aa|0)==(ia|0)){ba=fa|16;X=ga+(T+ba)|0;$=c[X>>2]|0;if(!$){Z=ga+(ba+ha)|0;ba=c[Z>>2]|0;if(!ba){ya=0;break}else{za=ba;Aa=Z}}else{za=$;Aa=X}while(1){X=za+20|0;$=c[X>>2]|0;if($){za=$;Aa=X;continue}X=za+16|0;$=c[X>>2]|0;if(!$){Ca=za;Ea=Aa;break}else{za=$;Aa=X}}if(Ea>>>0<ta>>>0)Ba();else{c[Ea>>2]=0;ya=Ca;break}}else{X=c[ga+((fa|8)+ha)>>2]|0;if(X>>>0<ta>>>0)Ba();$=X+12|0;if((c[$>>2]|0)!=(ia|0))Ba();Z=aa+8|0;if((c[Z>>2]|0)==(ia|0)){c[$>>2]=aa;c[Z>>2]=X;ya=aa;break}else Ba()}while(0);if(!da)break;aa=c[ga+(ha+28+fa)>>2]|0;X=509984+(aa<<2)|0;do if((ia|0)!=(c[X>>2]|0)){if(da>>>0<(c[127424]|0)>>>0)Ba();Z=da+16|0;if((c[Z>>2]|0)==(ia|0))c[Z>>2]=ya;else c[da+20>>2]=ya;if(!ya)break i}else{c[X>>2]=ya;if(ya)break;c[127421]=c[127421]&~(1<<aa);break i}while(0);aa=c[127424]|0;if(ya>>>0<aa>>>0)Ba();c[ya+24>>2]=da;X=fa|16;Z=c[ga+(X+ha)>>2]|0;do if(Z)if(Z>>>0<aa>>>0)Ba();else{c[ya+16>>2]=Z;c[Z+24>>2]=ya;break}while(0);Z=c[ga+(T+X)>>2]|0;if(!Z)break;if(Z>>>0<(c[127424]|0)>>>0)Ba();else{c[ya+20>>2]=Z;c[Z+24>>2]=ya;break}}else{Z=c[ga+((fa|8)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;da=509720+(ea<<1<<2)|0;do if((Z|0)!=(da|0)){if(Z>>>0<ta>>>0)Ba();if((c[Z+12>>2]|0)==(ia|0))break;Ba()}while(0);if((aa|0)==(Z|0)){c[127420]=c[127420]&~(1<<ea);break}do if((aa|0)==(da|0))Fa=aa+8|0;else{if(aa>>>0<ta>>>0)Ba();X=aa+8|0;if((c[X>>2]|0)==(ia|0)){Fa=X;break}Ba()}while(0);c[Z+12>>2]=aa;c[Fa>>2]=Z}while(0);Ga=ga+((la|fa)+ha)|0;Ha=la+ja|0}else{Ga=ia;Ha=ja}ea=Ga+4|0;c[ea>>2]=c[ea>>2]&-2;c[ga+(S+4)>>2]=Ha|1;c[ga+(Ha+S)>>2]=Ha;ea=Ha>>>3;if(Ha>>>0<256){T=ea<<1;ca=509720+(T<<2)|0;da=c[127420]|0;X=1<<ea;do if(!(da&X)){c[127420]=da|X;Ia=509720+(T+2<<2)|0;Ja=ca}else{ea=509720+(T+2<<2)|0;$=c[ea>>2]|0;if($>>>0>=(c[127424]|0)>>>0){Ia=ea;Ja=$;break}Ba()}while(0);c[Ia>>2]=ka;c[Ja+12>>2]=ka;c[ga+(S+8)>>2]=Ja;c[ga+(S+12)>>2]=ca;break}T=Ha>>>8;do if(!T)Ka=0;else{if(Ha>>>0>16777215){Ka=31;break}X=(T+1048320|0)>>>16&8;da=T<<X;la=(da+520192|0)>>>16&4;$=da<<la;da=($+245760|0)>>>16&2;ea=14-(la|X|da)+($<<da>>>15)|0;Ka=Ha>>>(ea+7|0)&1|ea<<1}while(0);T=509984+(Ka<<2)|0;c[ga+(S+28)>>2]=Ka;c[ga+(S+20)>>2]=0;c[ga+(S+16)>>2]=0;ca=c[127421]|0;ea=1<<Ka;if(!(ca&ea)){c[127421]=ca|ea;c[T>>2]=ka;c[ga+(S+24)>>2]=T;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break}ea=c[T>>2]|0;j:do if((c[ea+4>>2]&-8|0)!=(Ha|0)){T=Ha<<((Ka|0)==31?0:25-(Ka>>>1)|0);ca=ea;while(1){da=ca+16+(T>>>31<<2)|0;$=c[da>>2]|0;if(!$){La=da;Ma=ca;break}if((c[$+4>>2]&-8|0)==(Ha|0)){Na=$;break j}else{T=T<<1;ca=$}}if(La>>>0<(c[127424]|0)>>>0)Ba();else{c[La>>2]=ka;c[ga+(S+24)>>2]=Ma;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break h}}else Na=ea;while(0);ea=Na+8|0;ca=c[ea>>2]|0;T=c[127424]|0;if(ca>>>0>=T>>>0&Na>>>0>=T>>>0){c[ca+12>>2]=ka;c[ea>>2]=ka;c[ga+(S+8)>>2]=ca;c[ga+(S+12)>>2]=Na;c[ga+(S+24)>>2]=0;break}else Ba()}else{ca=(c[127423]|0)+ja|0;c[127423]=ca;c[127426]=ka;c[ga+(S+4)>>2]=ca|1}while(0);n=ga+(ma|8)|0;return n|0}else xa=510128;while(1){S=c[xa>>2]|0;if(S>>>0<=na>>>0?(ka=c[xa+4>>2]|0,ja=S+ka|0,ja>>>0>na>>>0):0){Oa=S;Pa=ka;Qa=ja;break}xa=c[xa+8>>2]|0}ma=Oa+(Pa+-39)|0;ja=Oa+(Pa+-47+((ma&7|0)==0?0:0-ma&7))|0;ma=na+16|0;ka=ja>>>0<ma>>>0?na:ja;ja=ka+8|0;S=ga+8|0;ia=(S&7|0)==0?0:0-S&7;S=ha+-40-ia|0;c[127426]=ga+ia;c[127423]=S;c[ga+(ia+4)>>2]=S|1;c[ga+(ha+-36)>>2]=40;c[127427]=c[127542];S=ka+4|0;c[S>>2]=27;c[ja>>2]=c[127532];c[ja+4>>2]=c[127533];c[ja+8>>2]=c[127534];c[ja+12>>2]=c[127535];c[127532]=ga;c[127533]=ha;c[127535]=0;c[127534]=ja;ja=ka+28|0;c[ja>>2]=7;if((ka+32|0)>>>0<Qa>>>0){ia=ja;do{ja=ia;ia=ia+4|0;c[ia>>2]=7}while((ja+8|0)>>>0<Qa>>>0)}if((ka|0)!=(na|0)){ia=ka-na|0;c[S>>2]=c[S>>2]&-2;c[na+4>>2]=ia|1;c[ka>>2]=ia;ja=ia>>>3;if(ia>>>0<256){fa=ja<<1;ca=509720+(fa<<2)|0;ea=c[127420]|0;T=1<<ja;if(ea&T){ja=509720+(fa+2<<2)|0;Z=c[ja>>2]|0;if(Z>>>0<(c[127424]|0)>>>0)Ba();else{Ra=ja;Sa=Z}}else{c[127420]=ea|T;Ra=509720+(fa+2<<2)|0;Sa=ca}c[Ra>>2]=na;c[Sa+12>>2]=na;c[na+8>>2]=Sa;c[na+12>>2]=ca;break}ca=ia>>>8;if(ca)if(ia>>>0>16777215)Ta=31;else{fa=(ca+1048320|0)>>>16&8;T=ca<<fa;ca=(T+520192|0)>>>16&4;ea=T<<ca;T=(ea+245760|0)>>>16&2;Z=14-(ca|fa|T)+(ea<<T>>>15)|0;Ta=ia>>>(Z+7|0)&1|Z<<1}else Ta=0;Z=509984+(Ta<<2)|0;c[na+28>>2]=Ta;c[na+20>>2]=0;c[ma>>2]=0;T=c[127421]|0;ea=1<<Ta;if(!(T&ea)){c[127421]=T|ea;c[Z>>2]=na;c[na+24>>2]=Z;c[na+12>>2]=na;c[na+8>>2]=na;break}ea=c[Z>>2]|0;k:do if((c[ea+4>>2]&-8|0)!=(ia|0)){Z=ia<<((Ta|0)==31?0:25-(Ta>>>1)|0);T=ea;while(1){fa=T+16+(Z>>>31<<2)|0;ca=c[fa>>2]|0;if(!ca){Ua=fa;Va=T;break}if((c[ca+4>>2]&-8|0)==(ia|0)){Wa=ca;break k}else{Z=Z<<1;T=ca}}if(Ua>>>0<(c[127424]|0)>>>0)Ba();else{c[Ua>>2]=na;c[na+24>>2]=Va;c[na+12>>2]=na;c[na+8>>2]=na;break g}}else Wa=ea;while(0);ea=Wa+8|0;ia=c[ea>>2]|0;ma=c[127424]|0;if(ia>>>0>=ma>>>0&Wa>>>0>=ma>>>0){c[ia+12>>2]=na;c[ea>>2]=na;c[na+8>>2]=ia;c[na+12>>2]=Wa;c[na+24>>2]=0;break}else Ba()}}else{ia=c[127424]|0;if((ia|0)==0|ga>>>0<ia>>>0)c[127424]=ga;c[127532]=ga;c[127533]=ha;c[127535]=0;c[127429]=c[127538];c[127428]=-1;ia=0;do{ea=ia<<1;ma=509720+(ea<<2)|0;c[509720+(ea+3<<2)>>2]=ma;c[509720+(ea+2<<2)>>2]=ma;ia=ia+1|0}while((ia|0)!=32);ia=ga+8|0;ma=(ia&7|0)==0?0:0-ia&7;ia=ha+-40-ma|0;c[127426]=ga+ma;c[127423]=ia;c[ga+(ma+4)>>2]=ia|1;c[ga+(ha+-36)>>2]=40;c[127427]=c[127542]}while(0);ha=c[127423]|0;if(ha>>>0>F>>>0){ga=ha-F|0;c[127423]=ga;ha=c[127426]|0;c[127426]=ha+F;c[ha+(F+4)>>2]=ga|1;c[ha+4>>2]=F|3;n=ha+8|0;return n|0}}c[(sc()|0)>>2]=12;n=0;return n|0}function Ec(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;if(!a)return;b=a+-8|0;d=c[127424]|0;if(b>>>0<d>>>0)Ba();e=c[a+-4>>2]|0;f=e&3;if((f|0)==1)Ba();g=e&-8;h=a+(g+-8)|0;do if(!(e&1)){i=c[b>>2]|0;if(!f)return;j=-8-i|0;k=a+j|0;l=i+g|0;if(k>>>0<d>>>0)Ba();if((k|0)==(c[127425]|0)){m=a+(g+-4)|0;n=c[m>>2]|0;if((n&3|0)!=3){o=k;p=l;break}c[127422]=l;c[m>>2]=n&-2;c[a+(j+4)>>2]=l|1;c[h>>2]=l;return}n=i>>>3;if(i>>>0<256){i=c[a+(j+8)>>2]|0;m=c[a+(j+12)>>2]|0;q=509720+(n<<1<<2)|0;if((i|0)!=(q|0)){if(i>>>0<d>>>0)Ba();if((c[i+12>>2]|0)!=(k|0))Ba()}if((m|0)==(i|0)){c[127420]=c[127420]&~(1<<n);o=k;p=l;break}if((m|0)!=(q|0)){if(m>>>0<d>>>0)Ba();q=m+8|0;if((c[q>>2]|0)==(k|0))r=q;else Ba()}else r=m+8|0;c[i+12>>2]=m;c[r>>2]=i;o=k;p=l;break}i=c[a+(j+24)>>2]|0;m=c[a+(j+12)>>2]|0;do if((m|0)==(k|0)){q=a+(j+20)|0;n=c[q>>2]|0;if(!n){s=a+(j+16)|0;t=c[s>>2]|0;if(!t){u=0;break}else{v=t;w=s}}else{v=n;w=q}while(1){q=v+20|0;n=c[q>>2]|0;if(n){v=n;w=q;continue}q=v+16|0;n=c[q>>2]|0;if(!n){x=v;y=w;break}else{v=n;w=q}}if(y>>>0<d>>>0)Ba();else{c[y>>2]=0;u=x;break}}else{q=c[a+(j+8)>>2]|0;if(q>>>0<d>>>0)Ba();n=q+12|0;if((c[n>>2]|0)!=(k|0))Ba();s=m+8|0;if((c[s>>2]|0)==(k|0)){c[n>>2]=m;c[s>>2]=q;u=m;break}else Ba()}while(0);if(i){m=c[a+(j+28)>>2]|0;q=509984+(m<<2)|0;if((k|0)==(c[q>>2]|0)){c[q>>2]=u;if(!u){c[127421]=c[127421]&~(1<<m);o=k;p=l;break}}else{if(i>>>0<(c[127424]|0)>>>0)Ba();m=i+16|0;if((c[m>>2]|0)==(k|0))c[m>>2]=u;else c[i+20>>2]=u;if(!u){o=k;p=l;break}}m=c[127424]|0;if(u>>>0<m>>>0)Ba();c[u+24>>2]=i;q=c[a+(j+16)>>2]|0;do if(q)if(q>>>0<m>>>0)Ba();else{c[u+16>>2]=q;c[q+24>>2]=u;break}while(0);q=c[a+(j+20)>>2]|0;if(q)if(q>>>0<(c[127424]|0)>>>0)Ba();else{c[u+20>>2]=q;c[q+24>>2]=u;o=k;p=l;break}else{o=k;p=l}}else{o=k;p=l}}else{o=b;p=g}while(0);if(o>>>0>=h>>>0)Ba();b=a+(g+-4)|0;u=c[b>>2]|0;if(!(u&1))Ba();if(!(u&2)){if((h|0)==(c[127426]|0)){d=(c[127423]|0)+p|0;c[127423]=d;c[127426]=o;c[o+4>>2]=d|1;if((o|0)!=(c[127425]|0))return;c[127425]=0;c[127422]=0;return}if((h|0)==(c[127425]|0)){d=(c[127422]|0)+p|0;c[127422]=d;c[127425]=o;c[o+4>>2]=d|1;c[o+d>>2]=d;return}d=(u&-8)+p|0;x=u>>>3;do if(u>>>0>=256){y=c[a+(g+16)>>2]|0;w=c[a+(g|4)>>2]|0;do if((w|0)==(h|0)){v=a+(g+12)|0;r=c[v>>2]|0;if(!r){f=a+(g+8)|0;e=c[f>>2]|0;if(!e){z=0;break}else{A=e;B=f}}else{A=r;B=v}while(1){v=A+20|0;r=c[v>>2]|0;if(r){A=r;B=v;continue}v=A+16|0;r=c[v>>2]|0;if(!r){C=A;D=B;break}else{A=r;B=v}}if(D>>>0<(c[127424]|0)>>>0)Ba();else{c[D>>2]=0;z=C;break}}else{v=c[a+g>>2]|0;if(v>>>0<(c[127424]|0)>>>0)Ba();r=v+12|0;if((c[r>>2]|0)!=(h|0))Ba();f=w+8|0;if((c[f>>2]|0)==(h|0)){c[r>>2]=w;c[f>>2]=v;z=w;break}else Ba()}while(0);if(y){w=c[a+(g+20)>>2]|0;l=509984+(w<<2)|0;if((h|0)==(c[l>>2]|0)){c[l>>2]=z;if(!z){c[127421]=c[127421]&~(1<<w);break}}else{if(y>>>0<(c[127424]|0)>>>0)Ba();w=y+16|0;if((c[w>>2]|0)==(h|0))c[w>>2]=z;else c[y+20>>2]=z;if(!z)break}w=c[127424]|0;if(z>>>0<w>>>0)Ba();c[z+24>>2]=y;l=c[a+(g+8)>>2]|0;do if(l)if(l>>>0<w>>>0)Ba();else{c[z+16>>2]=l;c[l+24>>2]=z;break}while(0);l=c[a+(g+12)>>2]|0;if(l)if(l>>>0<(c[127424]|0)>>>0)Ba();else{c[z+20>>2]=l;c[l+24>>2]=z;break}}}else{l=c[a+g>>2]|0;w=c[a+(g|4)>>2]|0;y=509720+(x<<1<<2)|0;if((l|0)!=(y|0)){if(l>>>0<(c[127424]|0)>>>0)Ba();if((c[l+12>>2]|0)!=(h|0))Ba()}if((w|0)==(l|0)){c[127420]=c[127420]&~(1<<x);break}if((w|0)!=(y|0)){if(w>>>0<(c[127424]|0)>>>0)Ba();y=w+8|0;if((c[y>>2]|0)==(h|0))E=y;else Ba()}else E=w+8|0;c[l+12>>2]=w;c[E>>2]=l}while(0);c[o+4>>2]=d|1;c[o+d>>2]=d;if((o|0)==(c[127425]|0)){c[127422]=d;return}else F=d}else{c[b>>2]=u&-2;c[o+4>>2]=p|1;c[o+p>>2]=p;F=p}p=F>>>3;if(F>>>0<256){u=p<<1;b=509720+(u<<2)|0;d=c[127420]|0;E=1<<p;if(d&E){p=509720+(u+2<<2)|0;h=c[p>>2]|0;if(h>>>0<(c[127424]|0)>>>0)Ba();else{G=p;H=h}}else{c[127420]=d|E;G=509720+(u+2<<2)|0;H=b}c[G>>2]=o;c[H+12>>2]=o;c[o+8>>2]=H;c[o+12>>2]=b;return}b=F>>>8;if(b)if(F>>>0>16777215)I=31;else{H=(b+1048320|0)>>>16&8;G=b<<H;b=(G+520192|0)>>>16&4;u=G<<b;G=(u+245760|0)>>>16&2;E=14-(b|H|G)+(u<<G>>>15)|0;I=F>>>(E+7|0)&1|E<<1}else I=0;E=509984+(I<<2)|0;c[o+28>>2]=I;c[o+20>>2]=0;c[o+16>>2]=0;G=c[127421]|0;u=1<<I;a:do if(G&u){H=c[E>>2]|0;b:do if((c[H+4>>2]&-8|0)!=(F|0)){b=F<<((I|0)==31?0:25-(I>>>1)|0);d=H;while(1){h=d+16+(b>>>31<<2)|0;p=c[h>>2]|0;if(!p){J=h;K=d;break}if((c[p+4>>2]&-8|0)==(F|0)){L=p;break b}else{b=b<<1;d=p}}if(J>>>0<(c[127424]|0)>>>0)Ba();else{c[J>>2]=o;c[o+24>>2]=K;c[o+12>>2]=o;c[o+8>>2]=o;break a}}else L=H;while(0);H=L+8|0;d=c[H>>2]|0;b=c[127424]|0;if(d>>>0>=b>>>0&L>>>0>=b>>>0){c[d+12>>2]=o;c[H>>2]=o;c[o+8>>2]=d;c[o+12>>2]=L;c[o+24>>2]=0;break}else Ba()}else{c[127421]=G|u;c[E>>2]=o;c[o+24>>2]=E;c[o+12>>2]=o;c[o+8>>2]=o}while(0);o=(c[127428]|0)+-1|0;c[127428]=o;if(!o)M=510136;else return;while(1){o=c[M>>2]|0;if(!o)break;else M=o+8|0}c[127428]=-1;return}function Fc(b,c,d){b=b|0;c=c|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,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0;e=b;b=c;a:while(1){c=b;f=b+-1|0;g=e;b:while(1){h=g;i=c-h|0;switch(i|0){case 1:case 0:{break a;break}case 2:{j=g;k=f;l=4;break a;break}case 3:{m=g;n=f;l=6;break a;break}case 4:{o=g;p=f;l=7;break a;break}case 5:{q=g;r=f;l=8;break a;break}default:{}}if((i|0)<31){s=g;t=b;l=10;break a}u=(i|0)/2|0;v=g+u|0;if((i|0)>999){w=(i|0)/4|0;x=Jc(g,g+w|0,v,g+(w+u)|0,f,d)|0}else x=Hc(g,v,f,d)|0;u=a[g>>0]|0;w=a[v>>0]|0;do if((u&255)<(w&255)){y=f;z=x}else{i=f;while(1){A=i+-1|0;if((g|0)==(A|0))break;B=a[A>>0]|0;if((B&255)<(w&255)){C=B;D=A;l=29;break}else i=A}if((l|0)==29){l=0;a[g>>0]=C;a[D>>0]=u;y=D;z=x+1|0;break}i=g+1|0;A=a[f>>0]|0;if((u&255)<(A&255))E=i;else{if((i|0)==(f|0))break a;else{F=g;G=i}while(1){i=a[G>>0]|0;if((u&255)<(i&255)){H=F;I=i;J=G;break}i=G+1|0;if((i|0)==(f|0))break a;else{B=G;G=i;F=B}}a[J>>0]=A;a[f>>0]=I;E=H+2|0}if((E|0)==(f|0))break a;else{K=E;L=f}while(1){B=a[g>>0]|0;i=K;while(1){M=a[i>>0]|0;N=i+1|0;if((B&255)<(M&255)){O=M;P=N;Q=i;break}else i=N}i=L;while(1){N=i+-1|0;M=a[N>>0]|0;if((B&255)<(M&255))i=N;else{R=N;S=M;break}}if(Q>>>0>=R>>>0){g=Q;continue b}a[Q>>0]=S;a[R>>0]=O;K=P;L=R}}while(0);u=g+1|0;c:do if(u>>>0<y>>>0){w=u;A=y;i=v;B=z;while(1){M=a[i>>0]|0;N=w;while(1){T=a[N>>0]|0;U=N+1|0;if((T&255)<(M&255))N=U;else{V=T;W=U;X=N;break}}N=A;while(1){U=N+-1|0;T=a[U>>0]|0;if((T&255)<(M&255)){Y=U;Z=T;break}else N=U}if(X>>>0>Y>>>0){_=X;$=i;aa=B;break c}a[X>>0]=Z;a[Y>>0]=V;w=W;A=Y;i=(i|0)==(X|0)?Y:i;B=B+1|0}}else{_=u;$=v;aa=z}while(0);if((_|0)!=($|0)?(v=a[$>>0]|0,u=a[_>>0]|0,(v&255)<(u&255)):0){a[_>>0]=v;a[$>>0]=u;ba=aa+1|0}else ba=aa;if(!ba){ca=Gc(g,_,d)|0;u=_+1|0;if(Gc(u,b,d)|0){l=42;break}if(ca){g=u;continue}}u=_;if((u-h|0)>=(c-u|0)){da=g;ea=_;l=46;break}Fc(g,_,d);g=_+1|0}if((l|0)==42){l=0;if(ca)break;else{e=g;b=_;continue}}else if((l|0)==46){l=0;Fc(ea+1|0,b,d);e=da;b=ea;continue}}if((l|0)==4){ea=a[k>>0]|0;b=a[j>>0]|0;if((ea&255)<(b&255)){a[j>>0]=ea;a[k>>0]=b}}else if((l|0)==6)Hc(m,m+1|0,n,d)|0;else if((l|0)==7)Ic(o,o+1|0,o+2|0,p,d)|0;else if((l|0)==8)Jc(q,q+1|0,q+2|0,q+3|0,r,d)|0;else if((l|0)==10)Kc(s,t,d);return}function Gc(b,c,d){b=b|0;c=c|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;a:do switch(c-b|0){case 1:case 0:{e=1;break}case 2:{f=c+-1|0;g=a[f>>0]|0;h=a[b>>0]|0;if((g&255)<(h&255)){a[b>>0]=g;a[f>>0]=h;e=1}else e=1;break}case 3:{Hc(b,b+1|0,c+-1|0,d)|0;e=1;break}case 4:{Ic(b,b+1|0,b+2|0,c+-1|0,d)|0;e=1;break}case 5:{Jc(b,b+1|0,b+2|0,b+3|0,c+-1|0,d)|0;e=1;break}default:{h=b+2|0;Hc(b,b+1|0,h,d)|0;f=b+3|0;if((f|0)==(c|0))e=1;else{g=0;i=f;f=h;while(1){h=a[i>>0]|0;j=a[f>>0]|0;if((h&255)<(j&255)){k=j;j=i;l=f;while(1){a[j>>0]=k;if((l|0)==(b|0)){m=b;break}n=l+-1|0;k=a[n>>0]|0;if((h&255)>=(k&255)){m=l;break}else{o=l;l=n;j=o}}a[m>>0]=h;j=g+1|0;if((j|0)==8){p=i;break}else q=j}else q=g;j=i+1|0;if((j|0)==(c|0)){e=1;break a}else{l=i;g=q;i=j;f=l}}e=(p+1|0)==(c|0)}}}while(0);return e|0}function Hc(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;e=a[c>>0]|0;f=a[b>>0]|0;g=a[d>>0]|0;h=(g&255)<(e&255);do if((e&255)<(f&255)){if(h){a[b>>0]=g;a[d>>0]=f;i=1;break}a[b>>0]=e;a[c>>0]=f;j=a[d>>0]|0;if((j&255)<(f&255)){a[c>>0]=j;a[d>>0]=f;i=2}else i=1}else if(h){a[c>>0]=g;a[d>>0]=e;j=a[c>>0]|0;k=a[b>>0]|0;if((j&255)<(k&255)){a[b>>0]=j;a[c>>0]=k;i=2}else i=1}else i=0;while(0);return i|0}function Ic(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=Hc(b,c,d,f)|0;f=a[e>>0]|0;h=a[d>>0]|0;if((f&255)<(h&255)){a[d>>0]=f;a[e>>0]=h;h=g+1|0;e=a[d>>0]|0;f=a[c>>0]|0;if((e&255)<(f&255)){a[c>>0]=e;a[d>>0]=f;f=a[c>>0]|0;d=a[b>>0]|0;if((f&255)<(d&255)){a[b>>0]=f;a[c>>0]=d;i=g+3|0}else i=g+2|0}else i=h}else i=g;return i|0}function Jc(b,c,d,e,f,g){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=Ic(b,c,d,e,g)|0;g=a[f>>0]|0;i=a[e>>0]|0;if((g&255)<(i&255)){a[e>>0]=g;a[f>>0]=i;i=h+1|0;f=a[e>>0]|0;g=a[d>>0]|0;if((f&255)<(g&255)){a[d>>0]=f;a[e>>0]=g;g=h+2|0;e=a[d>>0]|0;f=a[c>>0]|0;if((e&255)<(f&255)){a[c>>0]=e;a[d>>0]=f;f=a[c>>0]|0;d=a[b>>0]|0;if((f&255)<(d&255)){a[b>>0]=f;a[c>>0]=d;j=h+4|0}else j=h+3|0}else j=g}else j=i}else j=h;return j|0}function Kc(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=b+2|0;Hc(b,b+1|0,e,d)|0;d=b+3|0;if((d|0)!=(c|0)){f=d;d=e;while(1){e=a[f>>0]|0;g=a[d>>0]|0;if((e&255)<(g&255)){h=g;g=f;i=d;while(1){a[g>>0]=h;if((i|0)==(b|0)){j=b;break}k=i+-1|0;h=a[k>>0]|0;if((e&255)>=(h&255)){j=i;break}else{l=i;i=k;g=l}}a[j>>0]=e}g=f+1|0;if((g|0)==(c|0))break;else{i=f;f=g;d=i}}}return}function Lc(){}function Mc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;g=b&3;h=d|d<<8|d<<16|d<<24;i=f&~3;if(g){g=b+4-g|0;while((b|0)<(g|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(i|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function Nc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){B=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}B=0;return b>>>c-32|0}function Oc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){B=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}B=a<<c-32;return 0}function Pc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ra(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function Qc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ha[a&7](b|0,c|0,d|0)|0}function Rc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Ia[a&3](b|0,c|0,d|0,e|0,f|0)}function Sc(a,b){a=a|0;b=b|0;Ja[a&15](b|0)}function Tc(a,b){a=a|0;b=b|0;return Ka[a&3](b|0)|0}function Uc(a){a=a|0;La[a&0]()}function Vc(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;Ma[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function Wc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Na[a&3](b|0,c|0,d|0,e|0)}function Xc(a,b,c){a=a|0;b=b|0;c=c|0;aa(0);return 0}function Yc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(1)}function Zc(a){a=a|0;aa(2)}function _c(a){a=a|0;aa(3);return 0}function $c(){aa(4)}function ad(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(5)}function bd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(6)}

// EMSCRIPTEN_END_FUNCS
var Ha=[Xc,ic,Ac,yc,zc,Xc,Xc,Xc];var Ia=[Yc,pc,oc,Yc];var Ja=[Zc,Zb,_b,dc,gc,ec,fc,hc,Cc,Zc,Zc,Zc,Zc,Zc,Zc,Zc];var Ka=[_c,$b,xc,_c];var La=[$c];var Ma=[ad,rc,qc,ad];var Na=[bd,kc,lc,bd];return{_basis_open:Lb,_basis_get_num_levels:Pb,_basis_transcode_image:Ub,_fflush:uc,_memset:Mc,_basis_init:Kb,_basis_get_debug_flags:Jb,_basis_start_transcoding:Tb,_basis_set_debug_flags:Ib,_basis_get_num_images:Ob,_basis_get_has_alpha:Nb,_basis_get_image_width:Qb,_malloc:Dc,_basis_close:Mb,_memcpy:Pc,_basis_get_image_height:Rb,_bitshift64Lshr:Nc,_free:Ec,_bitshift64Shl:Oc,___errno_location:sc,_basis_get_image_transcoded_size_in_bytes:Sb,runPostSets:Lc,stackAlloc:Oa,stackSave:Pa,stackRestore:Qa,establishStackSpace:Ra,setThrew:Sa,setTempRet0:Va,getTempRet0:Wa,dynCall_iiii:Qc,dynCall_viiiii:Rc,dynCall_vi:Sc,dynCall_ii:Tc,dynCall_v:Uc,dynCall_viiiiii:Vc,dynCall_viiii:Wc}})


// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _basis_start_transcoding=Module["_basis_start_transcoding"]=asm["_basis_start_transcoding"];var _basis_close=Module["_basis_close"]=asm["_basis_close"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _fflush=Module["_fflush"]=asm["_fflush"];var _basis_get_debug_flags=Module["_basis_get_debug_flags"]=asm["_basis_get_debug_flags"];var _basis_transcode_image=Module["_basis_transcode_image"]=asm["_basis_transcode_image"];var _memset=Module["_memset"]=asm["_memset"];var _basis_get_has_alpha=Module["_basis_get_has_alpha"]=asm["_basis_get_has_alpha"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _basis_get_num_levels=Module["_basis_get_num_levels"]=asm["_basis_get_num_levels"];var _basis_init=Module["_basis_init"]=asm["_basis_init"];var _basis_set_debug_flags=Module["_basis_set_debug_flags"]=asm["_basis_set_debug_flags"];var _basis_get_image_width=Module["_basis_get_image_width"]=asm["_basis_get_image_width"];var _basis_get_image_height=Module["_basis_get_image_height"]=asm["_basis_get_image_height"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _basis_get_image_transcoded_size_in_bytes=Module["_basis_get_image_transcoded_size_in_bytes"]=asm["_basis_get_image_transcoded_size_in_bytes"];var _basis_open=Module["_basis_open"]=asm["_basis_open"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _basis_get_num_images=Module["_basis_get_num_images"]=asm["_basis_get_num_images"];var _malloc=Module["_malloc"]=asm["_malloc"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];if(memoryInitializer){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,Runtime.GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,Runtime.GLOBAL_BASE);removeRunDependency("memory initializer")});function doBrowserLoad(){Browser.asyncLoad(memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}var request=Module["memoryInitializerRequest"];if(request){function useRequest(){if(request.status!==200&&request.status!==0){console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}applyMemoryInitializer(request.response)}if(request.response){setTimeout(useRequest,0)}else{request.addEventListener("load",useRequest)}}else{doBrowserLoad()}}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run()




