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"]||6e7;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+646928;__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(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 zb(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 Ya(){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[641762]|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=641763+(h<<1)|0;j=641763+(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=642275+(v<<1)|0;u=642275+(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=642787+(y<<1)|0;x=642787+(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=643299+(B<<1)|0;A=643299+(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[127258]=0;c[127262]=1;c[127257]=2;c[127261]=3;c[127266]=4;c[127256]=5;B=0;do{D=d[643819+(B<<2)+2>>0]|0;C=a[643815+D>>0]|0;a[643859+(B<<2)>>0]=a[643811+D>>0]|0;a[643899+(B<<2)>>0]=C;C=d[643819+(B<<2)+3>>0]|0;D=a[643815+C>>0]|0;a[643859+(B<<2)+1>>0]=a[643811+C>>0]|0;a[643899+(B<<2)+1>>0]=D;D=d[643819+(B<<2)+1>>0]|0;C=a[643815+D>>0]|0;a[643859+(B<<2)+2>>0]=a[643811+D>>0]|0;a[643899+(B<<2)+2>>0]=C;C=d[643819+(B<<2)>>0]|0;D=a[643815+C>>0]|0;a[643859+(B<<2)+3>>0]=a[643811+C>>0]|0;a[643899+(B<<2)+3>>0]=D;B=B+1|0}while((B|0)!=10);c[127271]=0;c[127276]=1;c[127281]=2;c[127286]=3;c[127274]=4;c[127278]=5;c[127273]=6;c[127277]=7;c[127282]=8;c[127272]=9;B=0;do{D=a[643939+(B<<2)+2>>0]|0;a[644131+(B<<2)>>0]=D;a[644323+(B<<2)>>0]=15-(D&255);D=a[643939+(B<<2)+3>>0]|0;a[644131+(B<<2)+1>>0]=D;a[644323+(B<<2)+1>>0]=15-(D&255);D=a[643939+(B<<2)+1>>0]|0;a[644131+(B<<2)+2>>0]=D;a[644323+(B<<2)+2>>0]=15-(D&255);D=a[643939+(B<<2)>>0]|0;a[644131+(B<<2)+3>>0]=D;a[644323+(B<<2)+3>>0]=15-(D&255);B=B+1|0}while((B|0)!=48);a[641762]=1;i=b;return}function Za(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,bb=0,cb=0,db=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,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Cb=0,Db=0,Eb=0,Fb=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,_a(n,o)|0):0)?_a(n,p)|0:0)?_a(n,q)|0:0)?_a(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 Ab(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 Bb(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[644556+(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[644556+(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[644556+(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[644556+(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);ab((c[f>>2]|0)+(Ia*7|0)|0);Ia=Ia+1|0;if((Ia|0)==(j|0)){Ha=240;break a}}}if(!(_a(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[644556+(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[644556+(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[644556+(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[644556+(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);ab(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[644556+(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[644556+(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[644556+(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[644556+(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);ab((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(_a(n,u)|0){if((c[u+4>>2]|0)==(c[u>>2]|0)){bb=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(!(_a(n,x)|0)){cb=1;break}if((c[x+4>>2]|0)==(c[x>>2]|0))cb=1;else Ha=132}else Ha=132;while(0);b:do if((Ha|0)==132){if(!j){cb=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;db=I;eb=d[la>>0]|0}else{db=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=db}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[644556+(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[644556+(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[644556+(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[644556+(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=$a(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;tb=d[J>>0]|0}else{rb=J;tb=0}la=c[h>>2]|tb<<ma;c[h>>2]=la;ma=ma+8|0;c[g>>2]=ma;if(ma>>>0>=16){ub=la;break}else J=rb}vb=ub;wb=I+8+sa|0}else{vb=c[h>>2]|0;wb=I}J=c[(c[K>>2]|0)+((vb&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+((vb>>>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]=vb>>>xb;c[g>>2]=wb-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){cb=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;sb(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[644556+(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[644556+(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[644556+(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[644556+(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)}ab((c[f>>2]|0)+(ta*7|0)|0);ta=ta+1|0;if(ta>>>0>=j>>>0){cb=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);Rb(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);Rb(l)}l=c[x>>2]|0;if(l){ta=x+4|0;if((c[ta>>2]|0)!=(l|0))c[ta>>2]=l;Rb(l)}bb=cb}else bb=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);Rb(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);Rb(W)}W=c[u>>2]|0;if(W){qa=u+4|0;if((c[qa>>2]|0)!=(W|0))c[qa>>2]=W;Rb(W)}if(!bb)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;Cb=d[Fa>>0]|0}else Cb=0;l=qa|Cb<<3&8;c[h>>2]=Cb>>>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(!(_a(n,u)|0)){Db=1;break}if((c[u+4>>2]|0)==(c[u>>2]|0))Db=1;else Ha=90}else Ha=90;while(0);c:do if((Ha|0)==90){if(!j){Db=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)Eb=0;else Eb=$a(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;Fb=ja;Gb=d[Da>>0]|0}else{Fb=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=Fb}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(Eb>>>0>=(c[ja+4>>2]|0)-N>>4>>>0){Db=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;sb(v,N+(Eb<<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[644556+(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[644556+(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[644556+(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[644556+(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);ab((c[f>>2]|0)+(K*7|0)|0);K=K+1|0;if(K>>>0>=j>>>0){Db=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);Rb(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);Rb(qa)}qa=c[u>>2]|0;if(qa){W=u+4|0;if((c[W>>2]|0)!=(qa|0))c[W>>2]=qa;Rb(qa)}if(!Db)Ha=240;else Na=0}while(0);if((Ha|0)==240)Na=1;Ha=c[t+24>>2]|0;Db=Ha;if(Ha){u=t+28|0;j=c[u>>2]|0;if((j|0)!=(Ha|0))c[u>>2]=j+(~((j+-2-Db|0)>>>1)<<1);Rb(Ha)}Ha=c[t+12>>2]|0;Db=Ha;if(Ha){j=t+16|0;u=c[j>>2]|0;if((u|0)!=(Ha|0))c[j>>2]=u+(~((u+-4-Db|0)>>>2)<<2);Rb(Ha)}Ha=c[t>>2]|0;if(Ha){Db=t+4|0;if((c[Db>>2]|0)!=(Ha|0))c[Db>>2]=Ha;Rb(Ha)}Nb=Na}else Nb=0}else Nb=0;Na=c[r+24>>2]|0;Ha=Na;if(Na){Db=r+28|0;t=c[Db>>2]|0;if((t|0)!=(Na|0))c[Db>>2]=t+(~((t+-2-Ha|0)>>>1)<<1);Rb(Na)}Na=c[r+12>>2]|0;Ha=Na;if(Na){t=r+16|0;Db=c[t>>2]|0;if((Db|0)!=(Na|0))c[t>>2]=Db+(~((Db+-4-Ha|0)>>>2)<<2);Rb(Na)}Na=c[r>>2]|0;if(Na){Ha=r+4|0;if((c[Ha>>2]|0)!=(Na|0))c[Ha>>2]=Na;Rb(Na)}Na=c[q+24>>2]|0;Ha=Na;if(Na){r=q+28|0;Db=c[r>>2]|0;if((Db|0)!=(Na|0))c[r>>2]=Db+(~((Db+-2-Ha|0)>>>1)<<1);Rb(Na)}Na=c[q+12>>2]|0;Ha=Na;if(Na){Db=q+16|0;r=c[Db>>2]|0;if((r|0)!=(Na|0))c[Db>>2]=r+(~((r+-4-Ha|0)>>>2)<<2);Rb(Na)}Na=c[q>>2]|0;if(Na){Ha=q+4|0;if((c[Ha>>2]|0)!=(Na|0))c[Ha>>2]=Na;Rb(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);Rb(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);Rb(Na)}Na=c[p>>2]|0;if(Na){Ha=p+4|0;if((c[Ha>>2]|0)!=(Na|0))c[Ha>>2]=Na;Rb(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);Rb(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);Rb(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;Rb(Na);i=m;return Nb|0}function _a(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[644515+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(ob(j,21,h)|0?(c[j+4>>2]|0)!=(c[j>>2]|0):0){h=Qb(l)|0;Fc(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=ob(f,l,h)|0;else ba=0;Rb(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);Rb(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);Rb(ba)}ba=c[j>>2]|0;if(ba){h=j+4|0;if((c[h>>2]|0)!=(ba|0))c[h>>2]=ba;Rb(ba)}z=ra;i=g;return z|0}function $a(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 ab(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[644560+((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[644560+((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[644560+((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[644560+((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 bb(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(!(_a(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(!(_a(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(!(_a(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(!(_a(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 cb(f,g,h,j,k,l,m,n,o,p){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;var q=0,r=0,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,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,zb=0,Ab=0,Bb=0,Db=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,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=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,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=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,_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,af=0,bf=0;q=i;i=i+192|0;r=q+120|0;s=q+56|0;t=q+24|0;u=q+8|0;v=q+40|0;w=q;x=Z(j,h)|0;if((k|0)==0&(l|0)!=0){y=0;i=q;return y|0}z=k+l|0;l=f+172|0;A=c[l>>2]|0;c[v>>2]=0;C=v+4|0;c[C>>2]=0;c[v+8>>2]=0;if(!A)D=0;else{qb(v,A);D=c[l>>2]|0}E=v+12|0;c[E>>2]=A>>>1;A=f+16|0;F=f+12|0;G=D+(((c[A>>2]|0)-(c[F>>2]|0)|0)/7|0)|0;D=w;c[D>>2]=0;c[D+4>>2]=0;D=w+3|0;a[D>>0]=3;H=(m|0)==3;if(H){I=wc(x*12|0)|0;if(!I)J=0;else{K=I+(x<<3)|0;L=I;M=7}}else{K=0;L=0;M=7}a:do if((M|0)==7){I=f+176|0;N=(c[f+180>>2]|0)-(c[I>>2]|0)>>2;do if(N>>>0<h>>>0){Cb(I,h-N|0);O=f+188|0;P=f+192|0;Q=c[P>>2]|0;R=c[O>>2]|0;S=Q-R>>2;if(S>>>0<h>>>0){Cb(O,h-S|0);break}if(S>>>0>h>>>0?(S=R+(h<<2)|0,(Q|0)!=(S|0)):0)c[P>>2]=Q+(~((Q+-4-S|0)>>>2)<<2)}while(0);do if(j){N=(h|0)==0;I=f+40|0;S=f+52|0;Q=f+76|0;P=f+4|0;R=f+88|0;O=f+112|0;T=f+148|0;U=f+160|0;V=f+124|0;W=w+1|0;X=w+2|0;Y=w+4|0;_=w+5|0;$=w+6|0;aa=w+7|0;ba=r+1|0;ca=r+2|0;da=r+3|0;ea=p^1;fa=s+12|0;ga=r+1|0;ha=r+2|0;ia=r+3|0;ja=r+1|0;ka=r+2|0;la=r+3|0;ma=r+1|0;na=r+2|0;oa=r+3|0;pa=k;qa=0;ra=0;sa=0;ta=0;ua=0;va=0;wa=0;xa=0;b:while(1){ya=sa&1;c:do if(N){za=ra;Aa=qa;Ba=pa;Ca=ta;Da=ua;Ea=va;Fa=wa;Ga=xa}else{Ha=(ya|0)==0;Ia=f+176+((ya^1)*12|0)|0;Ja=f+176+(ya*12|0)|0;Ka=Z(sa,h)|0;La=(sa|0)==0;Ma=(sa|0)!=0;Na=qa;Oa=pa;Pa=ra;Qa=0;Ra=ta;Sa=ua;Ta=va;Ua=wa;Va=xa;while(1){do if(!(Qa&1)){if(!Ha){Wa=Na;Xa=Pa;Ya=Oa;Za=d[(c[Ja>>2]|0)+(Qa<<2)+2>>0]|0;_a=Ta;$a=Va;break}if(!Ta){if(Na>>>0<16){ab=15-Na&-8;bb=Oa;cb=Na;db=Pa;eb=Oa;while(1){if(bb>>>0<z>>>0){fb=bb+1|0;gb=fb;hb=fb;ib=d[bb>>0]|0}else{gb=eb;hb=bb;ib=0}fb=ib<<cb|db;cb=cb+8|0;if(cb>>>0>=16){jb=gb;kb=fb;break}else{bb=hb;db=fb;eb=gb}}lb=kb;mb=Na+8+ab|0;nb=jb}else{lb=Pa;mb=Na;nb=Oa}eb=c[(c[I>>2]|0)+((lb&1023)<<2)>>2]|0;if((eb|0)>-1){ob=eb>>16;pb=eb&65535}else{db=c[S>>2]|0;bb=10;cb=eb;while(1){eb=bb+1|0;fb=b[db+((lb>>>bb&1)+~cb<<1)>>1]|0;rb=fb<<16>>16;if(fb<<16>>16<0){bb=eb;cb=rb}else{ob=eb;pb=rb;break}}}cb=lb>>>ob;bb=mb-ob|0;if((pb|0)==256){db=bb;ab=cb;rb=nb;eb=0;fb=0;while(1){if(db>>>0<5){sb=4-db&-8;tb=rb;ub=db;vb=ab;wb=rb;while(1){if(tb>>>0<z>>>0){xb=tb+1|0;zb=xb;Ab=xb;Bb=d[tb>>0]|0}else{zb=wb;Ab=tb;Bb=0}xb=Bb<<ub|vb;ub=ub+8|0;if(ub>>>0>=5){Db=zb;Eb=xb;break}else{tb=Ab;vb=xb;wb=zb}}Fb=Eb;Gb=db+8+sb|0;Hb=Db}else{Fb=ab;Gb=db;Hb=rb}wb=Fb>>>5;vb=Gb+-5|0;tb=(Fb&15)<<eb|fb;eb=eb+4|0;if(eb>>>0>31|(Fb&16|0)==0){Ib=Hb;Jb=wb;Kb=vb;Lb=tb;break}else{db=vb;ab=wb;rb=Hb;fb=tb}}Mb=Jb;Nb=Kb;Ob=Ib;Pb=Lb+2|0;Qb=Va}else{Mb=cb;Nb=bb;Ob=nb;Pb=0;Qb=pb}}else{Mb=Pa;Nb=Na;Ob=Oa;Pb=Ta+-1|0;Qb=Va}a[(c[Ia>>2]|0)+(Qa<<2)+2>>0]=Qb>>>4;Wa=Nb;Xa=Mb;Ya=Ob;Za=Qb;_a=Pb;$a=Qb}else{Wa=Na;Xa=Pa;Ya=Oa;Za=Ra;_a=Ta;$a=Va}while(0);fb=Za>>>2;switch(Za&3|0){case 0:{if(!Qa){M=44;break b}else{Sb=Wa;Tb=Xa;Ub=Ya;Vb=Ua}break}case 1:{if(La){M=47;break b}Sb=Wa;Tb=Xa;Ub=Ya;Vb=e[(c[Ia>>2]|0)+(Qa<<2)>>1]|0;break}case 2:{if(!(Ma&(Qa|0)!=0)){M=51;break b}Sb=Wa;Tb=Xa;Ub=Ya;Vb=e[(c[Ia>>2]|0)+(Qa+-1<<2)>>1]|0;break}default:{if(Wa>>>0<16){rb=15-Wa&-8;ab=Ya;db=Wa;eb=Xa;tb=Ya;while(1){if(ab>>>0<z>>>0){wb=ab+1|0;Wb=wb;Xb=wb;Yb=d[ab>>0]|0}else{Wb=tb;Xb=ab;Yb=0}wb=Yb<<db|eb;db=db+8|0;if(db>>>0>=16){Zb=Wb;_b=wb;break}else{ab=Xb;eb=wb;tb=Wb}}$b=_b;ac=Wa+8+rb|0;bc=Zb}else{$b=Xa;ac=Wa;bc=Ya}tb=c[(c[Q>>2]|0)+(($b&1023)<<2)>>2]|0;if((tb|0)>-1){cc=tb>>16;dc=tb&65535}else{eb=c[R>>2]|0;ab=10;db=tb;while(1){tb=ab+1|0;wb=b[eb+(($b>>>ab&1)+~db<<1)>>1]|0;vb=wb<<16>>16;if(wb<<16>>16<0){ab=tb;db=vb}else{cc=tb;dc=vb;break}}}db=dc+Ua|0;ab=(c[P>>2]|0)-(c[f>>2]|0)>>3;Sb=ac-cc|0;Tb=$b>>>cc;Ub=bc;Vb=db-(db>>>0<ab>>>0?0:ab)|0}}b[(c[Ja>>2]|0)+(Qa<<2)>>1]=Vb;if(!Sa){if(Sb>>>0<16){ab=15-Sb&-8;db=Ub;eb=Sb;rb=Tb;vb=Ub;while(1){if(db>>>0<z>>>0){tb=db+1|0;ec=tb;fc=tb;gc=d[db>>0]|0}else{ec=vb;fc=db;gc=0}tb=gc<<eb|rb;eb=eb+8|0;if(eb>>>0>=16){hc=ec;ic=tb;break}else{db=fc;rb=tb;vb=ec}}jc=ic;kc=Sb+8+ab|0;lc=hc}else{jc=Tb;kc=Sb;lc=Ub}vb=c[(c[O>>2]|0)+((jc&1023)<<2)>>2]|0;if((vb|0)>-1){mc=vb>>16;nc=vb&65535}else{rb=c[V>>2]|0;db=10;eb=vb;while(1){vb=db+1|0;tb=b[rb+((jc>>>db&1)+~eb<<1)>>1]|0;wb=tb<<16>>16;if(tb<<16>>16<0){db=vb;eb=wb}else{mc=vb;nc=wb;break}}}eb=jc>>>mc;db=kc-mc|0;if((nc|0)==(G|0)){if(db>>>0<16){rb=kc+8+(mc+15-kc&-8)|0;ab=lc;wb=db;vb=eb;tb=lc;while(1){if(ab>>>0<z>>>0){ub=ab+1|0;oc=ub;pc=ub;qc=d[ab>>0]|0}else{oc=tb;pc=ab;qc=0}ub=qc<<wb|vb;wb=wb+8|0;if(wb>>>0>=16){rc=oc;sc=ub;break}else{ab=pc;vb=ub;tb=oc}}tc=sc;uc=rb-mc|0;vc=rc}else{tc=eb;uc=db;vc=lc}tb=c[(c[T>>2]|0)+((tc&1023)<<2)>>2]|0;if((tb|0)>-1){yc=tb>>16;zc=tb&65535}else{vb=c[U>>2]|0;ab=10;wb=tb;while(1){tb=ab+1|0;ub=b[vb+((tc>>>ab&1)+~wb<<1)>>1]|0;xb=ub<<16>>16;if(ub<<16>>16<0){ab=tb;wb=xb}else{yc=tb;zc=xb;break}}}wb=tc>>>yc;ab=uc-yc|0;if((zc|0)==63){vb=ab;rb=wb;xb=vc;tb=0;ub=0;while(1){if(vb>>>0<8){Ac=xb;Bc=vb;Cc=rb;Dc=xb;while(1){if(Ac>>>0<z>>>0){Ec=Ac+1|0;Ic=Ec;Jc=Ec;Kc=d[Ac>>0]|0}else{Ic=Dc;Jc=Ac;Kc=0}Ec=Kc<<Bc|Cc;Lc=Bc+8|0;if(Bc>>>0>4294967287){Ac=Jc;Bc=Lc;Cc=Ec;Dc=Ic}else{Mc=Ec;Nc=Lc;Oc=Ic;break}}}else{Mc=rb;Nc=vb;Oc=xb}Dc=Mc>>>8;Cc=Nc+-8|0;Bc=(Mc&127)<<tb|ub;tb=tb+7|0;if(tb>>>0>31|(Mc&128|0)==0){Pc=Dc;Qc=Cc;Rc=Oc;Sc=Bc;break}else{vb=Cc;rb=Dc;xb=Oc;ub=Bc}}}else{Pc=wb;Qc=ab;Rc=vc;Sc=zc}if((Sc+3|0)>>>0>x>>>0){M=95;break b}Tc=Pc;Uc=Qc;Vc=Rc;Wc=Sc+2|0;Xc=((c[A>>2]|0)-(c[F>>2]|0)|0)/7|0}else{Tc=eb;Uc=db;Vc=lc;Wc=0;Xc=nc}}else{Tc=Tb;Uc=Sb;Vc=Ub;Wc=Sa+-1|0;Xc=((c[A>>2]|0)-(c[F>>2]|0)|0)/7|0}ub=c[F>>2]|0;xb=((c[A>>2]|0)-ub|0)/7|0;if((Xc|0)<(xb|0))if((c[l>>2]|0)!=0?(rb=c[E>>2]|0,c[E>>2]=rb+1,vb=c[v>>2]|0,c[vb+(rb<<2)>>2]=Xc,rb=c[E>>2]|0,(rb|0)==((c[C>>2]|0)-vb>>2|0)):0){c[E>>2]=rb>>>1;Yc=Xc}else Yc=Xc;else{rb=Xc-xb|0;vb=c[v>>2]|0;if((rb|0)>=((c[C>>2]|0)-vb>>2|0)){M=100;break b}tb=vb+(rb<<2)|0;Bc=c[tb>>2]|0;if((Xc|0)==(xb|0))Yc=Bc;else{Dc=vb+(rb>>>1<<2)|0;rb=c[Dc>>2]|0;c[Dc>>2]=Bc;c[tb>>2]=rb;Yc=Bc}}Bc=c[f>>2]|0;if(!(Yc>>>0<xb>>>0?Vb>>>0<(c[P>>2]|0)-Bc>>3>>>0:0)){M=108;break b}xb=Bc+(Vb<<3)|0;rb=a[xb>>0]|0;tb=a[xb+1>>0]|0;Dc=d[xb+2>>0]|0;xb=(tb&255)<31?(tb&255)<<5:992;tb=(Dc>>>0<31?Dc:31)|xb;Dc=c[w>>2]|0;vb=((xb|((rb&255)<31?(rb&255)<<10:31744))>>>7&248|Dc&7)&255;a[w>>0]=vb;rb=(tb>>>2&248|Dc>>>8&7)&255;a[W>>0]=rb;xb=(Dc>>>16&7|tb<<3)&255;a[X>>0]=xb;tb=Bc+(Vb<<3)+4|0;Bc=Dc>>>24&31|d[tb>>0]<<5;a[D>>0]=Bc;Dc=Bc&227|d[tb>>0]<<2;a[D>>0]=Dc;tb=ub+(Yc*7|0)|0;switch(m|0){case 0:{Bc=Z(Qa+Ka|0,n)|0;c[g+Bc>>2]=c[w>>2];Cc=a[ub+(Yc*7|0)+1>>0]|0;Ac=a[ub+(Yc*7|0)+2>>0]|0;bb=a[ub+(Yc*7|0)+3>>0]|0;a[g+(Bc+4)>>0]=a[tb>>0]|0;a[g+(Bc+5)>>0]=Cc;a[g+(Bc+6)>>0]=Ac;a[g+(Bc+7)>>0]=bb;break}case 1:{bb=a[ub+(Yc*7|0)+1>>0]|0;Bc=a[ub+(Yc*7|0)+2>>0]|0;Ac=a[ub+(Yc*7|0)+3>>0]|0;a[Y>>0]=a[tb>>0]|0;a[_>>0]=bb;a[$>>0]=Bc;a[aa>>0]=Ac;Ac=Z(Qa+Ka|0,n)|0;Bc=g+Ac|0;bb=a[ub+(Yc*7|0)+4>>0]|0;Cc=a[ub+(Yc*7|0)+5>>0]|0;cb=a[ub+(Yc*7|0)+6>>0]|0;Lc=bb&255;Ec=Cc&255;Zc=c[w>>2]|0;_c=Zc>>>3&31;$c=Zc>>>11&31;ad=Zc>>>19&31;a[r>>0]=_c;a[ba>>0]=$c;a[ca>>0]=ad;a[da>>0]=-1;Zc=Dc>>>5&7;do if(bb<<24>>24==Cc<<24>>24){yb(t,r,Zc);bd=c[t+(Lc<<2)>>2]|0;cd=bd&255;dd=bd>>>8&255;ed=bd>>>16&255;bd=d[642787+(dd<<1)>>0]<<5|d[641763+(cd<<1)>>0]<<11|d[641763+(ed<<1)>>0];fd=d[642787+(dd<<1)+1>>0]<<5|d[641763+(cd<<1)+1>>0]<<11|d[641763+(ed<<1)+1>>0];do if((fd|0)==(bd|0)&ea){if(!bd){gd=1;hd=0;id=0;jd=0;kd=85;break}ld=bd+-1|0;md=0;M=116}else{ld=fd;md=170;M=116}while(0);if((M|0)==116){M=0;fd=bd>>>0<ld>>>0;ed=fd?ld:bd;cd=fd?bd:ld;gd=ed&255;hd=cd&255;id=(ed&65535)>>>8&255;jd=(cd&65535)>>>8&255;kd=(fd?md|85:md)&255}a[Bc>>0]=gd;a[g+(Ac+1)>>0]=id;a[g+(Ac+2)>>0]=hd;a[g+(Ac+3)>>0]=jd;Fc(g+(Ac+4)|0,kd|0,4)|0}else{if(!(Cc<<24>>24==3&(bb<<24>>24==0&(cb<<24>>24==2&(Zc|0)==7)))){fd=Zc<<5;cd=(c[509020+(Lc<<4)+(Ec<<2)>>2]|0)*10|0;ed=cd+((fd|_c)*60|0)|0;dd=cd+((fd|$c)*60|0)|0;nd=cd+((fd|ad)*60|0)|0;fd=(e[571612+(dd<<2)+2>>1]|0)+(e[510172+(ed<<2)+2>>1]|0)+(e[510172+(nd<<2)+2>>1]|0)|0;cd=(e[571612+((dd|1)<<2)+2>>1]|0)+(e[510172+((ed|1)<<2)+2>>1]|0)+(e[510172+((nd|1)<<2)+2>>1]|0)|0;od=cd>>>0<fd>>>0;pd=od?cd:fd;fd=(e[571612+(dd+2<<2)+2>>1]|0)+(e[510172+(ed+2<<2)+2>>1]|0)+(e[510172+(nd+2<<2)+2>>1]|0)|0;cd=fd>>>0<pd>>>0;qd=cd?fd:pd;pd=(e[571612+(dd+3<<2)+2>>1]|0)+(e[510172+(ed+3<<2)+2>>1]|0)+(e[510172+(nd+3<<2)+2>>1]|0)|0;fd=pd>>>0<qd>>>0;rd=fd?pd:qd;qd=(e[571612+(dd+4<<2)+2>>1]|0)+(e[510172+(ed+4<<2)+2>>1]|0)+(e[510172+(nd+4<<2)+2>>1]|0)|0;pd=qd>>>0<rd>>>0;sd=pd?qd:rd;rd=(e[571612+(dd+5<<2)+2>>1]|0)+(e[510172+(ed+5<<2)+2>>1]|0)+(e[510172+(nd+5<<2)+2>>1]|0)|0;qd=rd>>>0<sd>>>0;td=qd?rd:sd;sd=(e[571612+(dd+6<<2)+2>>1]|0)+(e[510172+(ed+6<<2)+2>>1]|0)+(e[510172+(nd+6<<2)+2>>1]|0)|0;rd=sd>>>0<td>>>0;ud=rd?sd:td;td=(e[571612+(dd+7<<2)+2>>1]|0)+(e[510172+(ed+7<<2)+2>>1]|0)+(e[510172+(nd+7<<2)+2>>1]|0)|0;sd=td>>>0<ud>>>0;vd=sd?td:ud;ud=(e[571612+(dd+8<<2)+2>>1]|0)+(e[510172+(ed+8<<2)+2>>1]|0)+(e[510172+(nd+8<<2)+2>>1]|0)|0;td=ud>>>0<vd>>>0;wd=((e[571612+(dd+9<<2)+2>>1]|0)+(e[510172+(ed+9<<2)+2>>1]|0)+(e[510172+(nd+9<<2)+2>>1]|0)|0)>>>0<(td?ud:vd)>>>0?9:td?8:sd?7:rd?6:qd?5:pd?4:fd?3:cd?2:od&1;od=wd+ed|0;ed=wd+dd|0;dd=wd+nd|0;nd=d[510172+(od<<2)>>0]<<11&63488|d[510172+(dd<<2)>>0]|d[571612+(ed<<2)>>0]<<5;cd=d[510172+(od<<2)+1>>0]<<11&63488|d[510172+(dd<<2)+1>>0]|d[571612+(ed<<2)+1>>0]<<5;ed=nd>>>0<cd>>>0;dd=ed?cd:nd;od=ed?nd:cd;cd=ed?643899:643859;ed=dd&65535;a[Bc>>0]=dd;nd=g+(Ac+1)|0;a[nd>>0]=(ed&65535)>>>8;fd=g+(Ac+2)|0;a[fd>>0]=od;pd=g+(Ac+3)|0;a[pd>>0]=(od&65535)>>>8;if((dd|0)!=(od|0)){od=d[aa>>0]|0;qd=d[_>>0]|0;rd=qd<<4&240|od&15;sd=qd&240|od>>>4;od=d[$>>0]|0;qd=d[Y>>0]|0;td=qd<<4&240|od&15;vd=qd&240|od>>>4;od=d[(d[644820+sd>>0]|0)+(cd+(wd<<2))>>0]<<2|d[(d[644820+rd>>0]|0)+(cd+(wd<<2))>>0]|d[(d[644820+td>>0]|0)+(cd+(wd<<2))>>0]<<4|d[(d[644820+vd>>0]|0)+(cd+(wd<<2))>>0]<<6;qd=d[(d[645076+sd>>0]|0)+(cd+(wd<<2))>>0]<<2|d[(d[645076+rd>>0]|0)+(cd+(wd<<2))>>0]|d[(d[645076+td>>0]|0)+(cd+(wd<<2))>>0]<<4|d[(d[645076+vd>>0]|0)+(cd+(wd<<2))>>0]<<6;ud=d[(d[645332+sd>>0]|0)+(cd+(wd<<2))>>0]<<2|d[(d[645332+rd>>0]|0)+(cd+(wd<<2))>>0]|d[(d[645332+td>>0]|0)+(cd+(wd<<2))>>0]<<4|d[(d[645332+vd>>0]|0)+(cd+(wd<<2))>>0]<<6;a[g+(Ac+4)>>0]=d[(d[644564+sd>>0]|0)+(cd+(wd<<2))>>0]<<2|d[(d[644564+rd>>0]|0)+(cd+(wd<<2))>>0]|d[(d[644564+td>>0]|0)+(cd+(wd<<2))>>0]<<4|d[(d[644564+vd>>0]|0)+(cd+(wd<<2))>>0]<<6;a[g+(Ac+5)>>0]=od;a[g+(Ac+6)>>0]=qd;a[g+(Ac+7)>>0]=ud;break}if(p)xd=0;else{ud=(dd|0)==0;qd=ud?1:ed;a[Bc>>0]=qd;a[nd>>0]=(qd&65535)>>>8;qd=ud?0:dd+65535&65535;a[fd>>0]=qd;a[pd>>0]=(qd&65535)>>>8;xd=ud?85:0}Fc(g+(Ac+4)|0,xd|0,4)|0;break}yb(s,r,7);ud=c[s>>2]|0;qd=c[fa>>2]|0;pd=d[643299+((ud>>>8&255)<<1)>>0]<<5|d[642275+((ud&255)<<1)>>0]<<11|d[642275+((ud>>>16&255)<<1)>>0];ud=d[643299+((qd>>>8&255)<<1)>>0]<<5|d[642275+((qd&255)<<1)>>0]<<11|d[642275+((qd>>>16&255)<<1)>>0];do if((ud|0)==(pd|0)){if(!pd){yd=1;zd=0;Ad=0;Bd=0;Cd=1;Dd=1;break}Ed=pd+-1|0;Fd=0;M=122}else{Ed=ud;Fd=1;M=122}while(0);if((M|0)==122){M=0;ud=pd>>>0<Ed>>>0;bd=ud?Ed:pd;qd=ud?pd:Ed;yd=bd&255;zd=qd&255;Ad=(bd&65535)>>>8&255;Bd=(qd&65535)>>>8&255;Cd=ud?0:Fd;Dd=ud&1}a[Bc>>0]=yd;a[g+(Ac+1)>>0]=Ad;a[g+(Ac+2)>>0]=zd;a[g+(Ac+3)>>0]=Bd;ud=0;do{qd=7-(ud>>>3)|0;bd=ud+4|0;fd=7-(bd>>>3)|0;dd=ud+8|0;nd=dd&7;ed=7-(dd>>>3)|0;dd=ud+12|0;od=dd&7;wd=7-(dd>>>3)|0;a[Bc+4+ud>>0]=(((d[w+(wd+-2)>>0]|0)>>>od<<1&2|(d[w+wd>>0]|0)>>>od&1|0)==1?Cd:Dd)<<6|((((d[w+(ed+-2)>>0]|0)>>>nd<<1&2|(d[w+ed>>0]|0)>>>nd&1|0)==1?Cd:Dd)<<4&48|((((d[w+(fd+-2)>>0]|0)>>>bd<<1&2|(d[w+fd>>0]|0)>>>bd&1|0)==1?Cd:Dd)<<2&12|(((d[w+(qd+-2)>>0]|0)>>>ud<<1&2|(d[w+qd>>0]|0)>>>ud&1|0)==1?Cd:Dd)&3));ud=ud+1|0}while((ud|0)!=4)}while(0);break}case 2:{Bc=a[ub+(Yc*7|0)+1>>0]|0;Ac=a[ub+(Yc*7|0)+2>>0]|0;ad=a[ub+(Yc*7|0)+3>>0]|0;a[Y>>0]=a[tb>>0]|0;a[_>>0]=Bc;a[$>>0]=Ac;a[aa>>0]=ad;ad=Z(Qa+Ka|0,n)|0;Ac=g+ad|0;Bc=a[ub+(Yc*7|0)+4>>0]|0;$c=a[ub+(Yc*7|0)+5>>0]|0;_c=a[ub+(Yc*7|0)+6>>0]|0;Ec=Bc&255;Lc=$c&255;Zc=(vb&255)>>>3;a[r>>0]=Zc;a[ga>>0]=(rb&255)>>>3;a[ha>>0]=(xb&255)>>>3;a[ia>>0]=-1;cb=Dc>>>5&7;d:do if(Bc<<24>>24==$c<<24>>24){yb(t,r,cb);bb=a[t+(Ec<<2)>>0]|0;a[Ac>>0]=bb;a[g+(ad+1)>>0]=bb;bb=g+(ad+2)|0;a[bb>>0]=0;a[bb+1>>0]=0;a[bb+2>>0]=0;a[bb+3>>0]=0;a[bb+4>>0]=0;a[bb+5>>0]=0}else{if(_c<<24>>24==2){yb(s,r,cb);bb=a[s+(Lc<<2)>>0]|0;a[Ac>>0]=a[s+(Ec<<2)>>0]|0;a[g+(ad+1)>>0]=bb;bb=0;while(1){Cc=bb<<2;db=0;do{eb=(db<<2)+bb|0;ab=eb&7;wb=7-(eb>>>3)|0;eb=(db+Cc|0)*3|0;ud=eb>>>3;pd=eb&7;qd=Ac+2+ud|0;bd=d[qd>>0]|0;fd=eb>>>0<40;if(fd)Gd=d[ud+1+(Ac+2)>>0]<<8|bd;else Gd=bd;bd=Gd&~(7<<pd)|((a[645588+((d[w+(wb+-2)>>0]|0)>>>ab<<1&2|(d[w+wb>>0]|0)>>>ab&1)>>0]|0)==$c<<24>>24&1)<<pd;a[qd>>0]=bd;if(fd)a[ud+1+(Ac+2)>>0]=bd>>>8;db=db+1|0}while((db|0)!=4);bb=bb+1|0;if((bb|0)==4)break d}}e:do switch(Bc<<24>>24){case 0:{if($c<<24>>24==3){Hd=0;break e}if($c<<24>>24==2)Hd=2;else M=155;break}case 1:{if($c<<24>>24==3){Hd=1;break e}if($c<<24>>24==2)Hd=3;else M=155;break}default:M=155}while(0);if((M|0)==155){M=0;Hd=4}bb=Hd>>>0>3?0:Hd;db=cb<<5|Zc&255;a[Ac>>0]=a[633052+(db<<4)+(bb<<2)>>0]|0;a[g+(ad+1)>>0]=a[633052+(db<<4)+(bb<<2)+1>>0]|0;Cc=e[633052+(db<<4)+(bb<<2)+2>>1]|0;bb=0;do{db=bb<<2;sb=0;do{bd=(sb<<2)+bb|0;ud=bd&7;fd=7-(bd>>>3)|0;bd=(sb+db|0)*3|0;qd=bd>>>3;pd=bd&7;ab=Ac+2+qd|0;wb=d[ab>>0]|0;eb=bd>>>0<40;if(eb)Id=d[qd+1+(Ac+2)>>0]<<8|wb;else Id=wb;wb=Id&~(7<<pd)|(Cc>>>((d[645588+((d[w+(fd+-2)>>0]|0)>>>ud<<1&2|(d[w+fd>>0]|0)>>>ud&1)>>0]|0)*3|0)&7)<<pd;a[ab>>0]=wb;if(eb)a[qd+1+(Ac+2)>>0]=wb>>>8;sb=sb+1|0}while((sb|0)!=4);bb=bb+1|0}while((bb|0)!=4)}while(0);break}case 3:{Ac=a[ub+(Yc*7|0)+1>>0]|0;ad=a[ub+(Yc*7|0)+2>>0]|0;Zc=a[ub+(Yc*7|0)+3>>0]|0;a[Y>>0]=a[tb>>0]|0;a[_>>0]=Ac;a[$>>0]=ad;a[aa>>0]=Zc;Zc=Qa+Ka|0;ad=w;Ac=c[ad>>2]|0;cb=c[ad+4>>2]|0;ad=L+(Zc<<3)|0;c[ad>>2]=Ac;c[ad+4>>2]=cb;cb=Ac>>>3&31;ad=Dc>>>5&7;$c=d[ub+(Yc*7|0)+5>>0]|0;Bc=Ac>>>21&7;Ec=Ac>>>13&7;Lc=Ac>>>8;_c=Ac>>>16;Ac=cb<<3|cb>>>2;cb=c[509148+(ad<<4)+(d[ub+(Yc*7|0)+4>>0]<<2)>>2]|0;bb=cb+Ac|0;if(bb>>>0>255)if((bb|0)<0){Jd=0;M=159}else Kd=255;else{Jd=bb;M=159}if((M|0)==159){M=0;Kd=Jd}bb=Lc&248|Ec;Ec=cb+bb|0;if(Ec>>>0>255)if((Ec|0)<0){Ld=0;M=162}else Md=255;else{Ld=Ec;M=162}if((M|0)==162){M=0;Md=Ld}Ec=_c&248|Bc;Bc=cb+Ec|0;if(Bc>>>0>255)if((Bc|0)<0){Nd=0;M=165}else Od=255;else{Nd=Bc;M=165}if((M|0)==165){M=0;Od=Nd}Bc=Od&255;cb=c[509148+(ad<<4)+($c<<2)>>2]|0;$c=cb+Ac|0;if($c>>>0>255)if(($c|0)<0){Pd=0;M=168}else Qd=255;else{Pd=$c;M=168}if((M|0)==168){M=0;Qd=Pd}$c=cb+bb|0;if($c>>>0>255)if(($c|0)<0){Rd=0;M=171}else Sd=255;else{Rd=$c;M=171}if((M|0)==171){M=0;Sd=Rd}$c=cb+Ec|0;if($c>>>0>255)if(($c|0)<0){Td=0;M=174}else Ud=255;else{Td=$c;M=174}if((M|0)==174){M=0;Ud=Td}c[K+(Zc<<2)>>2]=((((Kd&255)*31|0)>>>0)/255|0)<<10|((((Md&255)*31|0)>>>0)/255|0)<<5|(((Bc&255)/17|0)&255)<<1|(((((Ud&255)*31|0)+254|0)>>>0)/255|0|(((((Qd&255)*31|0)+254|0)>>>0)/255|0)<<10|(((((Sd&255)*31|0)+254|0)>>>0)/255|0)<<5)<<16|-2147450880;break}case 4:{Bc=a[ub+(Yc*7|0)+1>>0]|0;Zc=a[ub+(Yc*7|0)+2>>0]|0;$c=a[ub+(Yc*7|0)+3>>0]|0;a[Y>>0]=a[tb>>0]|0;a[_>>0]=Bc;a[$>>0]=Zc;a[aa>>0]=$c;$c=Z(Qa+Ka|0,n)|0;Zc=g+$c|0;Bc=a[ub+(Yc*7|0)+4>>0]|0;Ec=Bc&255;cb=d[ub+(Yc*7|0)+5>>0]|0;bb=c[w>>2]|0;Ac=bb>>>29;ad=bb>>>3&31;_c=bb>>>11&31;Lc=bb>>>19&31;if((d[ub+(Yc*7|0)+6>>0]|0)<3){bb=Zc;Cc=c[bb+4>>2]&-2147352577|2147352576;sb=Zc;c[sb>>2]=c[bb>>2]&-128|64;c[sb+4>>2]=Cc;a[r>>0]=ad;a[ja>>0]=_c;a[ka>>0]=Lc;a[la>>0]=-1;yb(t,r,Ac);Cc=c[t+(Ec<<2)>>2]|0;sb=((Cc>>>8&1)+(Cc&1)+(Cc>>>16&1)|0)>>>0>1;bb=c[t+(cb<<2)>>2]|0;db=((bb>>>8&1)+(bb&1)+(bb>>>16&1)|0)>>>0>1;wb=Cc>>>1&127;qd=Zc;eb=c[qd>>2]|0;ab=c[qd+4>>2]|0;qd=Hc(wb|0,0,7)|0;pd=B;ud=Cc>>>9&127;fd=Hc(ud|0,0,21)|0;bd=B;nd=Cc>>>17&127;Cc=Hc(nd|0,0,35)|0;ed=B;od=Hc(sb&1|0,0,63)|0;wd=B;dd=bb>>>1&127;cd=Hc(dd|0,0,14)|0;vd=B;td=bb>>>9&127;rd=Hc(td|0,0,28)|0;sd=B;Vd=bb>>>17&127;bb=Hc(Vd|0,0,42)|0;Wd=qd|eb&127|fd|Cc|cd|rd|bb|od;od=pd|ab&2147352576|bd|ed|vd|sd|B|wd;wd=Zc;c[wd>>2]=Wd;c[wd+4>>2]=od;wd=Hc(dd|0,0,7)|0;dd=B;sd=Hc(td|0,0,21)|0;td=B;vd=Hc(Vd|0,0,35)|0;Vd=B;ed=Hc(wb|0,0,14)|0;wb=B;bd=Hc(ud|0,0,28)|0;ud=B;ab=Hc(nd|0,0,42)|0;nd=bd|ed|ab|wd|sd|vd;vd=ud|wb|B|dd|td|Vd;Vd=Wd;Wd=od;od=db&1;td=0;dd=db&1;db=sb&1;sb=1;wb=0;ud=0;while(1){sd=Vd;wd=Wd;ab=dd;ed=od;bd=db;pd=td;bb=sb;rd=wb;cd=0;while(1){Cc=(cd<<2)+ud|0;fd=Cc&7;eb=7-(Cc>>>3)|0;Cc=(a[645588+((d[w+(eb+-2)>>0]|0)>>>fd<<1&2|(d[w+eb>>0]|0)>>>fd&1)>>0]|0)==Bc<<24>>24?rd:rd^15;do if(!(cd|ud)){if(!(Cc&8)){Xd=ed;Yd=pd;Zd=sd;_d=wd;$d=bd;ae=ab;be=3;ce=Cc;de=rd;break}fd=Hc(ab|0,0,63)|0;eb=nd|sd&127|fd;fd=vd|wd&2147352576|B;qd=Zc;c[qd>>2]=eb;c[qd+4>>2]=fd;Xd=bd|ed&-2;Yd=pd;Zd=eb;_d=fd;$d=ab;ae=bd;be=3;ce=0;de=15}else{Xd=ed;Yd=pd;Zd=sd;_d=wd;$d=bd;ae=ab;be=4;ce=Cc;de=rd}while(0);Cc=Hc(ce|0,0,bb|0)|0;fd=Cc|Xd;Cc=B|Yd;eb=be+bb|0;cd=cd+1|0;if((cd|0)==4){ee=$d;fe=ae;ge=eb;he=fd;ie=Cc;je=Zd;ke=_d;le=de;break}else{sd=Zd;wd=_d;ab=ae;ed=fd;bd=$d;pd=Cc;bb=eb;rd=de}}rd=ud+1|0;if((rd|0)==4){me=he;ne=ie;break}else{Vd=je;Wd=ke;od=he;td=ie;dd=fe;db=ee;sb=ge;wb=le;ud=rd}}ud=g+($c+8)|0;c[ud>>2]=me;c[ud+4>>2]=ne}else{ud=Ac<<5;wb=c[491608+((ad|ud)<<2)>>2]|0;sb=(c[509084+(Ec<<4)+(cb<<2)>>2]|0)*48|0;db=c[491608+((_c|ud)<<2)>>2]|0;dd=c[491608+((Lc|ud)<<2)>>2]|0;ud=(c[db+(sb<<2)>>2]|0)+(c[wb+(sb<<2)>>2]|0)+(c[dd+(sb<<2)>>2]|0)<<14;td=sb|1;od=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|1;td=sb|2;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|2;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb|3;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|3;ud=Wd>>>0<od>>>0?Wd:od;od=sb|4;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|4;od=Wd>>>0<td>>>0?Wd:td;td=sb|5;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|5;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb|6;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|6;ud=Wd>>>0<od>>>0?Wd:od;od=sb|7;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|7;od=Wd>>>0<td>>>0?Wd:td;td=sb|8;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|8;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb|9;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|9;ud=Wd>>>0<od>>>0?Wd:od;od=sb|10;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|10;od=Wd>>>0<td>>>0?Wd:td;td=sb|11;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|11;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb|12;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|12;ud=Wd>>>0<od>>>0?Wd:od;od=sb|13;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|13;od=Wd>>>0<td>>>0?Wd:td;td=sb|14;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|14;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb|15;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|15;ud=Wd>>>0<od>>>0?Wd:od;od=sb+16|0;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|16;od=Wd>>>0<td>>>0?Wd:td;td=sb+17|0;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|17;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb+18|0;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|18;ud=Wd>>>0<od>>>0?Wd:od;od=sb+19|0;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|19;od=Wd>>>0<td>>>0?Wd:td;td=sb+20|0;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|20;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb+21|0;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|21;ud=Wd>>>0<od>>>0?Wd:od;od=sb+22|0;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|22;od=Wd>>>0<td>>>0?Wd:td;td=sb+23|0;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|23;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb+24|0;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|24;ud=Wd>>>0<od>>>0?Wd:od;od=sb+25|0;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|25;od=Wd>>>0<td>>>0?Wd:td;td=sb+26|0;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|26;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb+27|0;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|27;ud=Wd>>>0<od>>>0?Wd:od;od=sb+28|0;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|28;od=Wd>>>0<td>>>0?Wd:td;td=sb+29|0;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|29;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb+30|0;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|30;ud=Wd>>>0<od>>>0?Wd:od;od=sb+31|0;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|31;od=Wd>>>0<td>>>0?Wd:td;td=sb+32|0;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|32;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb+33|0;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|33;ud=Wd>>>0<od>>>0?Wd:od;od=sb+34|0;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|34;od=Wd>>>0<td>>>0?Wd:td;td=sb+35|0;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|35;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb+36|0;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|36;ud=Wd>>>0<od>>>0?Wd:od;od=sb+37|0;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|37;od=Wd>>>0<td>>>0?Wd:td;td=sb+38|0;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|38;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb+39|0;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|39;ud=Wd>>>0<od>>>0?Wd:od;od=sb+40|0;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|40;od=Wd>>>0<td>>>0?Wd:td;td=sb+41|0;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|41;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb+42|0;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|42;ud=Wd>>>0<od>>>0?Wd:od;od=sb+43|0;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|43;od=Wd>>>0<td>>>0?Wd:td;td=sb+44|0;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|44;td=Wd>>>0<ud>>>0?Wd:ud;ud=sb+45|0;Wd=(c[db+(ud<<2)>>2]|0)+(c[wb+(ud<<2)>>2]|0)+(c[dd+(ud<<2)>>2]|0)<<14|45;ud=Wd>>>0<od>>>0?Wd:od;od=sb+46|0;Wd=(c[db+(od<<2)>>2]|0)+(c[wb+(od<<2)>>2]|0)+(c[dd+(od<<2)>>2]|0)<<14|46;od=Wd>>>0<td>>>0?Wd:td;td=sb+47|0;Wd=(c[db+(td<<2)>>2]|0)+(c[wb+(td<<2)>>2]|0)+(c[dd+(td<<2)>>2]|0)<<14|47;td=Wd>>>0<ud>>>0?Wd:ud;ud=(od>>>0<td>>>0?od:td)&255;td=Zc;od=c[td>>2]&-128|64;Wd=c[td+4>>2]&-2147352577|2147352576;td=Zc;c[td>>2]=od;c[td+4>>2]=Wd;td=d[aa>>0]|0;Vd=d[_>>0]|0;vd=ud+sb|0;sb=wb+(vd<<2)|0;wb=(c[sb>>2]|0)>>>18&127;if(!(a[(d[645588+(Vd<<1&2|td&1)>>0]|0)+(643939+(ud<<2))>>0]&8)){nd=Hc(wb|0,0,7)|0;Bc=nd|od&-16320;nd=B|Wd;rd=Zc;c[rd>>2]=Bc;c[rd+4>>2]=nd;rd=db+(vd<<2)|0;bb=Hc((c[rd>>2]|0)>>>18|0,0,21)|0;pd=bb&266338304|Bc&-266338368;Bc=Zc;c[Bc>>2]=pd;c[Bc+4>>2]=nd;Bc=dd+(vd<<2)|0;Hc((c[Bc>>2]|0)>>>18|0,0,35)|0;bb=nd&-1017|B&1016;nd=Zc;c[nd>>2]=pd;c[nd+4>>2]=bb;nd=Hc((c[sb>>2]|0)>>>25|0,0,14)|0;bd=pd&-2080832|nd;nd=bb|B;bb=Zc;c[bb>>2]=bd;c[bb+4>>2]=nd;bb=Hc((c[rd>>2]|0)>>>25|0,0,28)|0;rd=bd&268435392|bb;bb=nd&-8|B;nd=Zc;c[nd>>2]=rd;c[nd+4>>2]=bb;nd=Hc((c[Bc>>2]|0)>>>25|0,0,42)|0;Bc=Zc;c[Bc>>2]=rd&-64|nd;c[Bc+4>>2]=bb&2147353599|B;bb=g+($c+8)|0;Bc=bb;nd=c[Bc+4>>2]|0;rd=bb;c[rd>>2]=c[Bc>>2]|1;c[rd+4>>2]=nd;oe=bb;pe=1;qe=0;re=644131}else{bb=Hc(wb|0,0,14)|0;wb=bb|od&-2080832;od=B|Wd;Wd=Zc;c[Wd>>2]=wb;c[Wd+4>>2]=od;Wd=db+(vd<<2)|0;db=Hc((c[Wd>>2]|0)>>>18|0,0,28)|0;bb=db&-268435456|wb&268435392;wb=B&7|od&-8;od=Zc;c[od>>2]=bb;c[od+4>>2]=wb;od=dd+(vd<<2)|0;Hc((c[od>>2]|0)>>>18|0,0,42)|0;vd=wb&-130049|B&130048;wb=Zc;c[wb>>2]=bb;c[wb+4>>2]=vd;wb=Hc((c[sb>>2]|0)>>>25|0,0,7)|0;sb=bb&-16320|wb;wb=vd|B;vd=Zc;c[vd>>2]=sb;c[vd+4>>2]=wb;vd=Hc((c[Wd>>2]|0)>>>25|0,0,21)|0;Wd=sb&-266338368|vd;vd=wb|B;wb=Zc;c[wb>>2]=Wd;c[wb+4>>2]=vd;wb=Hc((c[od>>2]|0)>>>25|0,0,35)|0;od=Zc;c[od>>2]=wb|Wd&-64;c[od+4>>2]=B|vd&2147482631|-2147483648;vd=g+($c+8)|0;od=vd;Wd=c[od+4>>2]|0;wb=vd;c[wb>>2]=c[od>>2]&-2;c[wb+4>>2]=Wd;oe=vd;pe=0;qe=0;re=644323}vd=Vd<<4&240|td&15;Wd=Hc(d[(d[644564+vd>>0]|0)+(re+(ud<<2))>>0]|0,0,1)|0;wb=B;od=Hc(d[(d[644820+vd>>0]|0)+(re+(ud<<2))>>0]|0,0,16)|0;sb=B;bb=d[(d[645076+vd>>0]|0)+(re+(ud<<2))>>0]|0;dd=Hc(d[(d[645332+vd>>0]|0)+(re+(ud<<2))>>0]|0,0,48)|0;vd=B;db=Vd&240|td>>>4;td=Hc(d[(d[644564+db>>0]|0)+(re+(ud<<2))>>0]|0,0,4)|0;Vd=B;nd=Hc(d[(d[644820+db>>0]|0)+(re+(ud<<2))>>0]|0,0,20)|0;rd=B;Bc=Hc(d[(d[645076+db>>0]|0)+(re+(ud<<2))>>0]|0,0,36)|0;bd=B;pd=Hc(d[(d[645332+db>>0]|0)+(re+(ud<<2))>>0]|0,0,52)|0;db=B;ed=d[$>>0]|0;ab=d[Y>>0]|0;wd=ab<<4&240|ed&15;sd=Hc(d[(d[644564+wd>>0]|0)+(re+(ud<<2))>>0]|0,0,8)|0;cd=B;eb=Hc(d[(d[644820+wd>>0]|0)+(re+(ud<<2))>>0]|0,0,24)|0;Cc=B;fd=Hc(d[(d[645076+wd>>0]|0)+(re+(ud<<2))>>0]|0,0,40)|0;qd=B;se=Hc(d[(d[645332+wd>>0]|0)+(re+(ud<<2))>>0]|0,0,56)|0;wd=B;te=ab&240|ed>>>4;ed=Hc(d[(d[644564+te>>0]|0)+(re+(ud<<2))>>0]|0,0,12)|0;ab=B;ue=Hc(d[(d[644820+te>>0]|0)+(re+(ud<<2))>>0]|0,0,28)|0;ve=B;we=Hc(d[(d[645076+te>>0]|0)+(re+(ud<<2))>>0]|0,0,44)|0;xe=B;ye=Hc(d[(d[645332+te>>0]|0)+(re+(ud<<2))>>0]|0,0,60)|0;ud=oe;c[ud>>2]=Wd|pe|od|dd|td|nd|Bc|pd|sd|eb|fd|se|ed|ue|we|ye;c[ud+4>>2]=wb|qe|sb|bb|vd|Vd|rd|bd|db|cd|Cc|qd|wd|ab|ve|xe|B}break}case 5:{xe=a[ub+(Yc*7|0)+1>>0]|0;ve=a[ub+(Yc*7|0)+2>>0]|0;ab=a[ub+(Yc*7|0)+3>>0]|0;a[Y>>0]=a[tb>>0]|0;a[_>>0]=xe;a[$>>0]=ve;a[aa>>0]=ab;ab=Z(Qa+Ka|0,n)|0;ve=g+ab|0;xe=a[ub+(Yc*7|0)+4>>0]|0;wd=a[ub+(Yc*7|0)+5>>0]|0;qd=(vb&255)>>>3;a[r>>0]=qd;a[ma>>0]=(rb&255)>>>3;a[na>>0]=(xb&255)>>>3;a[oa>>0]=-1;Cc=Dc>>>5&7;if(xe<<24>>24==wd<<24>>24){yb(t,r,Cc);b[ve>>1]=d[t+((xe&255)<<2)>>0]|7424;cd=g+(ab+2)|0;a[cd>>0]=a[641756]|0;a[cd+1>>0]=a[641757]|0;a[cd+2>>0]=a[641758]|0;a[cd+3>>0]=a[641759]|0;a[cd+4>>0]=a[641760]|0;a[cd+5>>0]=a[641761]|0}else{switch(xe<<24>>24){case 0:{if(wd<<24>>24!=3)if(wd<<24>>24==2)ze=2;else M=200;else ze=0;break}case 1:{if(wd<<24>>24!=3)if(wd<<24>>24==2)ze=3;else M=200;else ze=1;break}default:M=200}if((M|0)==200){M=0;ze=4}wd=ze>>>0>3?0:ze;xe=Cc<<5|qd&255;qd=a[637148+(xe<<4)+(wd<<2)+1>>0]|0;b[ve>>1]=(qd&255)<<12&65535|d[637148+(xe<<4)+(wd<<2)>>0]|((qd&255)>>>4&255)<<8&65535;qd=e[637148+(xe<<4)+(wd<<2)+2>>1]|0;wd=0;xe=0;ve=0;while(1){Cc=7-(ve>>>3)|0;cd=Hc(qd>>>((d[645588+((d[w+(Cc+-2)>>0]|0)>>>ve<<1&2|(d[w+Cc>>0]|0)>>>ve&1)>>0]|0)*3|0)&7|0,0,(Z(ve,-3)|0)+45|0)|0;Cc=B|xe;db=ve+4|0;bd=7-(db>>>3)|0;rd=Hc(qd>>>((d[645588+((d[w+(bd+-2)>>0]|0)>>>db<<1&2|(d[w+bd>>0]|0)>>>db&1)>>0]|0)*3|0)&7|0,0,(Z(db,-3)|0)+45|0)|0;db=Cc|B;Cc=ve+8|0;bd=Cc&7;Vd=7-(Cc>>>3)|0;vd=Hc(qd>>>((d[645588+((d[w+(Vd+-2)>>0]|0)>>>bd<<1&2|(d[w+Vd>>0]|0)>>>bd&1)>>0]|0)*3|0)&7|0,0,(Z(Cc,-3)|0)+45|0)|0;Cc=db|B;db=ve+12|0;bd=db&7;Vd=7-(db>>>3)|0;bb=Hc(qd>>>((d[645588+((d[w+(Vd+-2)>>0]|0)>>>bd<<1&2|(d[w+Vd>>0]|0)>>>bd&1)>>0]|0)*3|0)&7|0,0,(Z(db,-3)|0)+45|0)|0;db=cd|wd|rd|vd|bb;bb=Cc|B;ve=ve+1|0;if((ve|0)==4){Ae=db;Be=bb;break}else{wd=db;xe=bb}}xe=Gc(Ae|0,Be|0,40)|0;a[g+(ab+2)>>0]=xe;a[g+(ab+3)>>0]=Be;xe=Gc(Ae|0,Be|0,24)|0;a[g+(ab+4)>>0]=xe;xe=Gc(Ae|0,Be|0,16)|0;a[g+(ab+5)>>0]=xe;xe=Gc(Ae|0,Be|0,8)|0;a[g+(ab+6)>>0]=xe;a[g+(ab+7)>>0]=Ae}break}default:{}}Qa=Qa+1|0;if(Qa>>>0>=h>>>0){za=Tc;Aa=Uc;Ba=Vc;Ca=fb;Da=Wc;Ea=_a;Fa=Vb;Ga=$a;break c}else{Na=Uc;Oa=Vc;Pa=Tc;Ra=fb;Sa=Wc;Ta=_a;Ua=Vb;Va=$a}}}while(0);sa=sa+1|0;if(sa>>>0>=j>>>0){Ce=Ea;M=204;break}else{pa=Ba;qa=Aa;ra=za;ta=Ca;ua=Da;va=Ea;wa=Fa;xa=Ga}}if((M|0)==44){if(!L){J=0;break a}xc(L);J=0;break a}else if((M|0)==47){if(!L){J=0;break a}xc(L);J=0;break a}else if((M|0)==51){if(!L){J=0;break a}xc(L);J=0;break a}else if((M|0)==95){if(!L){J=0;break a}xc(L);J=0;break a}else if((M|0)==100){if(!L){J=0;break a}xc(L);J=0;break a}else if((M|0)==108){if(!L){J=0;break a}xc(L);J=0;break a}else if((M|0)==204)if(!Ce)break;else{J=0;break a}}while(0);if(H){xa=h+-1|0;wa=j+-1|0;if(!xa)De=0;else{va=xa;ua=0;while(1){va=va>>>1;ta=ua+1|0;if(!va){De=ta;break}else ua=ta}}if(!wa)Ee=0;else{ua=wa;va=0;while(1){ua=ua>>>1;ta=va+1|0;if(!ua){Ee=ta;break}else va=ta}}va=De>>>0<Ee>>>0?De:Ee;ua=va<<1;ta=(1<<ua)+-1|0;if((j|0)>0){ra=(h|0)>0;qa=(h|0)==(j|0);pa=u+4|0;sa=u+8|0;oa=u+12|0;na=r+32|0;ma=s+32|0;aa=t+4|0;$=r+36|0;_=s+36|0;Y=t+8|0;la=r+40|0;ka=s+40|0;ja=r+16|0;ia=r+4|0;ha=r+20|0;ga=s+16|0;fa=s+4|0;ea=s+20|0;da=r+8|0;ca=r+24|0;ba=s+8|0;X=s+24|0;W=h>>>0>j>>>0;P=xa&1;U=(xa|0)<0?xa:0;T=((xa|0)<1?xa:1)&xa;V=0;O=0;while(1){if(o){R=0;do{Q=Z(R+O+-1&wa,h)|0;S=K+(Q<<2)|0;c[t+(R<<2)>>2]=S;I=c[K+(Q+xa<<2)>>2]|0;N=I&30;c[r+(R<<2)>>2]=((((I>>>10&31)+(I>>>5&31)+(N>>>4|N)|0)*255|0)>>>0)/31|0;c[s+(R<<2)>>2]=((((I>>>26&31)+(I>>>21&31)+(I>>>16&31)|0)*255|0)>>>0)/31|0;I=c[S>>2]|0;S=I&30;c[r+16+(R<<2)>>2]=((((I>>>10&31)+(I>>>5&31)+(S>>>4|S)|0)*255|0)>>>0)/31|0;c[s+16+(R<<2)>>2]=((((I>>>26&31)+(I>>>21&31)+(I>>>16&31)|0)*255|0)>>>0)/31|0;I=c[K+(Q+P<<2)>>2]|0;Q=I&30;c[r+32+(R<<2)>>2]=((((I>>>10&31)+(I>>>5&31)+(Q>>>4|Q)|0)*255|0)>>>0)/31|0;c[s+32+(R<<2)>>2]=((((I>>>26&31)+(I>>>21&31)+(I>>>16&31)|0)*255|0)>>>0)/31|0;R=R+1|0}while((R|0)!=3)}else{R=0;do{I=R+O|0;Q=I+-1|0;S=Z(((I|0)<1?0:(Q|0)>(wa|0)?wa:Q)&wa,h)|0;Q=K+(S<<2)|0;c[t+(R<<2)>>2]=Q;I=c[Q>>2]|0;Q=I&30;c[r+(R<<2)>>2]=((((I>>>10&31)+(I>>>5&31)+(Q>>>4|Q)|0)*255|0)>>>0)/31|0;c[s+(R<<2)>>2]=((((I>>>26&31)+(I>>>21&31)+(I>>>16&31)|0)*255|0)>>>0)/31|0;I=c[K+(S+U<<2)>>2]|0;Q=I&30;c[r+16+(R<<2)>>2]=((((I>>>10&31)+(I>>>5&31)+(Q>>>4|Q)|0)*255|0)>>>0)/31|0;c[s+16+(R<<2)>>2]=((((I>>>26&31)+(I>>>21&31)+(I>>>16&31)|0)*255|0)>>>0)/31|0;I=c[K+(S+T<<2)>>2]|0;S=I&30;c[r+32+(R<<2)>>2]=((((I>>>10&31)+(I>>>5&31)+(S>>>4|S)|0)*255|0)>>>0)/31|0;c[s+32+(R<<2)>>2]=((((I>>>26&31)+(I>>>21&31)+(I>>>16&31)|0)*255|0)>>>0)/31|0;R=R+1|0}while((R|0)!=3)}if(ra){R=e[641244+(O>>8<<1)>>1]<<16|e[641244+((O&255)<<1)>>1];I=c[t>>2]|0;S=c[aa>>2]|0;Q=c[Y>>2]|0;N=c[r>>2]|0;ya=c[ja>>2]|0;Va=c[ia>>2]|0;Ua=c[ha>>2]|0;Ta=c[s>>2]|0;Sa=c[ga>>2]|0;Ra=c[fa>>2]|0;Pa=c[ea>>2]|0;Oa=c[da>>2]|0;Na=c[ca>>2]|0;Qa=c[ba>>2]|0;Ka=c[X>>2]|0;if(qa){Ja=Va;Ia=Ua;Ma=ya;La=N;Ha=Ra;xe=Pa;wd=Sa;ve=Ta;qd=Oa;Dc=Na;xb=Qa;rb=Ka;vb=V;ub=0;while(1){tb=e[641244+(ub>>8<<1)>>1]<<17|R|e[641244+((ub&255)<<1)>>1]<<1;c[g+(tb<<3)+4>>2]=c[K+(vb<<2)>>2];$c=L+(vb<<3)|0;Zc=c[$c>>2]|0;Lc=Zc>>>29;_c=(d[645592+(Zc>>>11&31)>>0]|0)+(d[645592+(Zc>>>3&31)>>0]|0)+(d[645592+(Zc>>>19&31)>>0]|0)<<4;c[u>>2]=_c+(c[509276+(Lc<<4)+8>>2]|0);c[pa>>2]=_c+(c[509276+(Lc<<4)+12>>2]|0);c[sa>>2]=_c+(c[509276+(Lc<<4)+4>>2]|0);c[oa>>2]=(c[509276+(Lc<<4)>>2]|0)+_c;ub=ub+1|0;_c=(o?ub:(ub|0)>(xa|0)?xa:ub)&xa;Lc=c[I+(_c<<2)>>2]|0;Zc=Lc&30;cb=((((Lc>>>10&31)+(Lc>>>5&31)+(Zc>>>4|Zc)|0)*255|0)>>>0)/31|0;Zc=((((Lc>>>26&31)+(Lc>>>21&31)+(Lc>>>16&31)|0)*255|0)>>>0)/31|0;Lc=c[S+(_c<<2)>>2]|0;Ec=Lc&30;ad=((((Lc>>>10&31)+(Lc>>>5&31)+(Ec>>>4|Ec)|0)*255|0)>>>0)/31|0;Ec=((((Lc>>>26&31)+(Lc>>>21&31)+(Lc>>>16&31)|0)*255|0)>>>0)/31|0;Lc=c[Q+(_c<<2)>>2]|0;_c=Lc&30;Ac=((((Lc>>>10&31)+(Lc>>>5&31)+(_c>>>4|_c)|0)*255|0)>>>0)/31|0;_c=((((Lc>>>26&31)+(Lc>>>21&31)+(Lc>>>16&31)|0)*255|0)>>>0)/31|0;Lc=d[$c+7>>0]|0;bb=d[$c+5>>0]|0;db=bb<<4&240|Lc&15;Cc=bb&240|Lc>>>4;Lc=d[$c+6>>0]|0;bb=d[$c+4>>0]|0;$c=bb<<4&240|Lc&15;vd=bb&240|Lc>>>4;Lc=Ja+Ia|0;bb=Lc+Ma+La<<2;rd=Ha+xe|0;cd=rd+wd+ve<<2;bd=cd-bb|0;Vd=(c[u+(d[644564+db>>0]<<2)>>2]|0)-bb<<4;sb=(cd|0)<(bb|0);bb=sb?0-Vd|0:Vd;Vd=sb?0-bd|0:bd;bd=La<<1;sb=Ma*6|0;cd=Ia*6|0;wb=(Ja<<1)+cd+sb+bd|0;ud=ve<<1;ye=wd*6|0;we=xe*6|0;ue=(Ha<<1)+we+ye+ud|0;ed=ue-wb|0;se=(c[u+(d[644564+Cc>>0]<<2)>>2]|0)-wb<<4;fd=(ue|0)<(wb|0);wb=fd?0-se|0:se;se=fd?0-ed|0:ed;ed=(Ja*6|0)+cd+(Ma<<1)+bd|0;bd=(Ha*6|0)+we+(wd<<1)+ud|0;ud=bd-ed|0;fd=(c[u+(d[644820+db>>0]<<2)>>2]|0)-ed<<4;ue=(bd|0)<(ed|0);ed=ue?0-fd|0:fd;fd=ue?0-ud|0:ud;ud=Ma*3|0;ue=Ja*3|0;bd=Ia*9|0;eb=ue+bd+La+ud|0;sd=wd*3|0;pd=Ha*3|0;Bc=xe*9|0;nd=pd+Bc+ve+sd|0;td=nd-eb|0;dd=(c[u+(d[644820+Cc>>0]<<2)>>2]|0)-eb<<4;od=(nd|0)<(eb|0);eb=od?0-dd|0:dd;dd=od?0-td|0:td;td=Ma+Ia<<3;od=wd+xe<<3;nd=od-td|0;Wd=(c[u+(d[644564+$c>>0]<<2)>>2]|0)-td<<4;te=(od|0)<(td|0);td=te?0-Wd|0:Wd;Wd=te?0-nd|0:nd;nd=sb+cd+(cb<<1)+(ad<<1)|0;cd=ye+we+(Zc<<1)+(Ec<<1)|0;we=cd-nd|0;ye=(c[u+(d[644564+vd>>0]<<2)>>2]|0)-nd<<4;sb=(cd|0)<(nd|0);nd=sb?0-ye|0:ye;ye=sb?0-we|0:we;we=Ia*12|0;sb=(Ma<<2)+we|0;cd=xe*12|0;te=(wd<<2)+cd|0;od=te-sb|0;Fe=(c[u+(d[644820+$c>>0]<<2)>>2]|0)-sb<<4;Ge=(te|0)<(sb|0);sb=Ge?0-Fe|0:Fe;Fe=Ge?0-od|0:od;od=ad*3|0;Ge=ud+bd+cb+od|0;ud=Ec*3|0;te=sd+Bc+Zc+ud|0;sd=te-Ge|0;He=(c[u+(d[644820+vd>>0]<<2)>>2]|0)-Ge<<4;Ie=(te|0)<(Ge|0);Ge=Ie?0-He|0:He;He=Ie?0-sd|0:sd;sd=Lc<<3;Ie=rd<<3;te=Ie-sd|0;Je=(c[u+(d[645076+db>>0]<<2)>>2]|0)-sd<<4;Ke=(Ie|0)<(sd|0);sd=Ke?0-Je|0:Je;Je=Ke?0-te|0:te;te=(Ja<<2)+we|0;Ke=(Ha<<2)+cd|0;Ie=Ke-te|0;Le=(c[u+(d[645076+Cc>>0]<<2)>>2]|0)-te<<4;Me=(Ke|0)<(te|0);te=Me?0-Le|0:Le;Le=Me?0-Ie|0:Ie;Ie=(qd+Dc<<1)+(Lc*6|0)|0;Lc=(xb+rb<<1)+(rd*6|0)|0;rd=Lc-Ie|0;Me=(c[u+(d[645332+db>>0]<<2)>>2]|0)-Ie<<4;db=(Lc|0)<(Ie|0);Ie=db?0-Me|0:Me;Me=db?0-rd|0:rd;rd=Dc*3|0;db=rd+qd+bd+ue|0;ue=rb*3|0;Lc=ue+xb+Bc+pd|0;pd=Lc-db|0;Ke=(c[u+(d[645332+Cc>>0]<<2)>>2]|0)-db<<4;Cc=(Lc|0)<(db|0);db=Cc?0-pd|0:pd;pd=Cc?0-Ke|0:Ke;Ke=Ia<<4;Cc=xe<<4;Lc=Cc-Ke|0;Ne=(c[u+(d[645076+$c>>0]<<2)>>2]|0)-Ke<<4;Oe=(Cc|0)<(Ke|0);Ke=Oe?0-Lc|0:Lc;Lc=Oe?0-Ne|0:Ne;Ne=(ad<<2)+we|0;Oe=(Ec<<2)+cd|0;Cc=Oe-Ne|0;Pe=(c[u+(d[645076+vd>>0]<<2)>>2]|0)-Ne<<4;Qe=(Oe|0)<(Ne|0);Ne=Qe?0-Cc|0:Cc;Cc=Qe?0-Pe|0:Pe;Pe=we+(Dc<<2)|0;we=cd+(rb<<2)|0;cd=we-Pe|0;Qe=(c[u+(d[645332+$c>>0]<<2)>>2]|0)-Pe<<4;$c=(we|0)<(Pe|0);Pe=$c?0-cd|0:cd;cd=$c?0-Qe|0:Qe;Qe=bd+rd+od+Ac|0;od=Bc+ue+ud+_c|0;ud=od-Qe|0;ue=(c[u+(d[645332+vd>>0]<<2)>>2]|0)-Qe<<4;vd=(od|0)<(Qe|0);Qe=vd?0-ud|0:ud;ud=vd?0-ue|0:ue;c[g+(tb<<3)>>2]=((wb|0)>(se*13|0)?12:(wb|0)>(se<<3|0)?8:(wb|0)>(se*3|0)?4:0)|((bb|0)>(Vd*13|0)?3:(bb|0)>(Vd<<3|0)?2:(bb|0)>(Vd*3|0)&1)|((ed|0)>(fd*13|0)?768:(ed|0)>(fd<<3|0)?512:(ed|0)>(fd*3|0)?256:0)|((eb|0)>(dd*13|0)?3072:(eb|0)>(dd<<3|0)?2048:(eb|0)>(dd*3|0)?1024:0)|((td|0)>(Wd*13|0)?48:(td|0)>(Wd<<3|0)?32:(td|0)>(Wd*3|0)?16:0)|((nd|0)>(ye*13|0)?192:(nd|0)>(ye<<3|0)?128:(nd|0)>(ye*3|0)?64:0)|((sb|0)>(Fe*13|0)?12288:(sb|0)>(Fe<<3|0)?8192:(sb|0)>(Fe*3|0)?4096:0)|((Ge|0)>(He*13|0)?49152:(Ge|0)>(He<<3|0)?32768:(Ge|0)>(He*3|0)?16384:0)|((sd|0)>(Je*13|0)?196608:(sd|0)>(Je<<3|0)?131072:(sd|0)>(Je*3|0)?65536:0)|((te|0)>(Le*13|0)?786432:(te|0)>(Le<<3|0)?524288:(te|0)>(Le*3|0)?262144:0)|((Ie|0)>(Me*13|0)?50331648:(Ie|0)>(Me<<3|0)?33554432:(Ie|0)>(Me*3|0)?16777216:0)|((pd|0)>(db*13|0)?201326592:(pd|0)>(db<<3|0)?134217728:(pd|0)>(db*3|0)?67108864:0)|((Lc|0)>(Ke*13|0)?3145728:(Lc|0)>(Ke<<3|0)?2097152:(Lc|0)>(Ke*3|0)?1048576:0)|((Cc|0)>(Ne*13|0)?12582912:(Cc|0)>(Ne<<3|0)?8388608:(Cc|0)>(Ne*3|0)?4194304:0)|((cd|0)>(Pe*13|0)?805306368:(cd|0)>(Pe<<3|0)?536870912:(cd|0)>(Pe*3|0)?268435456:0)|((ud|0)>(Qe*13|0)?-1073741824:(ud|0)>(Qe<<3|0)?-2147483648:(ud|0)>(Qe*3|0)?1073741824:0);if((ub|0)==(j|0)){Re=Ma;Se=cb;Te=Ia;Ue=ad;Ve=wd;We=Zc;Xe=xe;Ye=Ec;Ze=Dc;_e=Ac;$e=rb;af=_c;break}else{Qe=rb;ud=Dc;Pe=wd;cd=xe;Ne=Ma;Cc=Ia;Ia=ad;Ma=cb;xe=Ec;wd=Zc;Dc=Ac;rb=_c;vb=vb+1|0;xb=Qe;qd=ud;ve=Pe;Ha=cd;La=Ne;Ja=Cc}}}else{Ja=Va;La=Ua;Ha=ya;ve=N;qd=Ra;xb=Pa;vb=Sa;rb=Ta;Dc=Oa;wd=Na;xe=Qa;Ma=Ka;Ia=V;ub=0;while(1){Cc=(e[641244+(ub>>8<<1)>>1]<<17|R|e[641244+((ub&255)<<1)>>1]<<1)&ta|(W?ub:O)>>va<<ua;c[g+(Cc<<3)+4>>2]=c[K+(Ia<<2)>>2];Ne=L+(Ia<<3)|0;cd=c[Ne>>2]|0;Pe=cd>>>29;ud=(d[645592+(cd>>>11&31)>>0]|0)+(d[645592+(cd>>>3&31)>>0]|0)+(d[645592+(cd>>>19&31)>>0]|0)<<4;c[u>>2]=ud+(c[509276+(Pe<<4)+8>>2]|0);c[pa>>2]=ud+(c[509276+(Pe<<4)+12>>2]|0);c[sa>>2]=ud+(c[509276+(Pe<<4)+4>>2]|0);c[oa>>2]=(c[509276+(Pe<<4)>>2]|0)+ud;ub=ub+1|0;ud=(o?ub:(ub|0)>(xa|0)?xa:ub)&xa;Pe=c[I+(ud<<2)>>2]|0;cd=Pe&30;Qe=((((Pe>>>10&31)+(Pe>>>5&31)+(cd>>>4|cd)|0)*255|0)>>>0)/31|0;cd=((((Pe>>>26&31)+(Pe>>>21&31)+(Pe>>>16&31)|0)*255|0)>>>0)/31|0;Pe=c[S+(ud<<2)>>2]|0;_c=Pe&30;Ac=((((Pe>>>10&31)+(Pe>>>5&31)+(_c>>>4|_c)|0)*255|0)>>>0)/31|0;_c=((((Pe>>>26&31)+(Pe>>>21&31)+(Pe>>>16&31)|0)*255|0)>>>0)/31|0;Pe=c[Q+(ud<<2)>>2]|0;ud=Pe&30;Zc=((((Pe>>>10&31)+(Pe>>>5&31)+(ud>>>4|ud)|0)*255|0)>>>0)/31|0;ud=((((Pe>>>26&31)+(Pe>>>21&31)+(Pe>>>16&31)|0)*255|0)>>>0)/31|0;Pe=d[Ne+7>>0]|0;Ec=d[Ne+5>>0]|0;cb=Ec<<4&240|Pe&15;ad=Ec&240|Pe>>>4;Pe=d[Ne+6>>0]|0;Ec=d[Ne+4>>0]|0;Ne=Ec<<4&240|Pe&15;Ke=Ec&240|Pe>>>4;Pe=Ja+La|0;Ec=Pe+Ha+ve<<2;Lc=qd+xb|0;db=Lc+vb+rb<<2;pd=db-Ec|0;Me=(c[u+(d[644564+cb>>0]<<2)>>2]|0)-Ec<<4;Ie=(db|0)<(Ec|0);Ec=Ie?0-Me|0:Me;Me=Ie?0-pd|0:pd;pd=ve<<1;Ie=Ha*6|0;db=La*6|0;Le=(Ja<<1)+db+Ie+pd|0;te=rb<<1;Je=vb*6|0;sd=xb*6|0;He=(qd<<1)+sd+Je+te|0;Ge=He-Le|0;Fe=(c[u+(d[644564+ad>>0]<<2)>>2]|0)-Le<<4;sb=(He|0)<(Le|0);Le=sb?0-Fe|0:Fe;Fe=sb?0-Ge|0:Ge;Ge=(Ja*6|0)+db+(Ha<<1)+pd|0;pd=(qd*6|0)+sd+(vb<<1)+te|0;te=pd-Ge|0;sb=(c[u+(d[644820+cb>>0]<<2)>>2]|0)-Ge<<4;He=(pd|0)<(Ge|0);Ge=He?0-sb|0:sb;sb=He?0-te|0:te;te=Ha*3|0;He=Ja*3|0;pd=La*9|0;ye=He+pd+ve+te|0;nd=vb*3|0;Wd=qd*3|0;td=xb*9|0;dd=Wd+td+rb+nd|0;eb=dd-ye|0;fd=(c[u+(d[644820+ad>>0]<<2)>>2]|0)-ye<<4;ed=(dd|0)<(ye|0);ye=ed?0-fd|0:fd;fd=ed?0-eb|0:eb;eb=Ha+La<<3;ed=vb+xb<<3;dd=ed-eb|0;Vd=(c[u+(d[644564+Ne>>0]<<2)>>2]|0)-eb<<4;bb=(ed|0)<(eb|0);eb=bb?0-Vd|0:Vd;Vd=bb?0-dd|0:dd;dd=Ie+db+(Qe<<1)+(Ac<<1)|0;db=Je+sd+(cd<<1)+(_c<<1)|0;sd=db-dd|0;Je=(c[u+(d[644564+Ke>>0]<<2)>>2]|0)-dd<<4;Ie=(db|0)<(dd|0);dd=Ie?0-Je|0:Je;Je=Ie?0-sd|0:sd;sd=La*12|0;Ie=(Ha<<2)+sd|0;db=xb*12|0;bb=(vb<<2)+db|0;ed=bb-Ie|0;se=(c[u+(d[644820+Ne>>0]<<2)>>2]|0)-Ie<<4;wb=(bb|0)<(Ie|0);Ie=wb?0-se|0:se;se=wb?0-ed|0:ed;ed=Ac*3|0;wb=te+pd+Qe+ed|0;te=_c*3|0;bb=nd+td+cd+te|0;nd=bb-wb|0;tb=(c[u+(d[644820+Ke>>0]<<2)>>2]|0)-wb<<4;ue=(bb|0)<(wb|0);wb=ue?0-tb|0:tb;tb=ue?0-nd|0:nd;nd=Pe<<3;ue=Lc<<3;bb=ue-nd|0;vd=(c[u+(d[645076+cb>>0]<<2)>>2]|0)-nd<<4;od=(ue|0)<(nd|0);nd=od?0-vd|0:vd;vd=od?0-bb|0:bb;bb=(Ja<<2)+sd|0;od=(qd<<2)+db|0;ue=od-bb|0;Bc=(c[u+(d[645076+ad>>0]<<2)>>2]|0)-bb<<4;rd=(od|0)<(bb|0);bb=rd?0-Bc|0:Bc;Bc=rd?0-ue|0:ue;ue=(Dc+wd<<1)+(Pe*6|0)|0;Pe=(xe+Ma<<1)+(Lc*6|0)|0;Lc=Pe-ue|0;rd=(c[u+(d[645332+cb>>0]<<2)>>2]|0)-ue<<4;cb=(Pe|0)<(ue|0);ue=cb?0-rd|0:rd;rd=cb?0-Lc|0:Lc;Lc=wd*3|0;cb=Lc+Dc+pd+He|0;He=Ma*3|0;Pe=He+xe+td+Wd|0;Wd=Pe-cb|0;od=(c[u+(d[645332+ad>>0]<<2)>>2]|0)-cb<<4;ad=(Pe|0)<(cb|0);cb=ad?0-Wd|0:Wd;Wd=ad?0-od|0:od;od=La<<4;ad=xb<<4;Pe=ad-od|0;bd=(c[u+(d[645076+Ne>>0]<<2)>>2]|0)-od<<4;$c=(ad|0)<(od|0);od=$c?0-Pe|0:Pe;Pe=$c?0-bd|0:bd;bd=(Ac<<2)+sd|0;$c=(_c<<2)+db|0;ad=$c-bd|0;we=(c[u+(d[645076+Ke>>0]<<2)>>2]|0)-bd<<4;Oe=($c|0)<(bd|0);bd=Oe?0-ad|0:ad;ad=Oe?0-we|0:we;we=sd+(wd<<2)|0;sd=db+(Ma<<2)|0;db=sd-we|0;Oe=(c[u+(d[645332+Ne>>0]<<2)>>2]|0)-we<<4;Ne=(sd|0)<(we|0);we=Ne?0-db|0:db;db=Ne?0-Oe|0:Oe;Oe=pd+Lc+ed+Zc|0;ed=td+He+te+ud|0;te=ed-Oe|0;He=(c[u+(d[645332+Ke>>0]<<2)>>2]|0)-Oe<<4;Ke=(ed|0)<(Oe|0);Oe=Ke?0-te|0:te;te=Ke?0-He|0:He;c[g+(Cc<<3)>>2]=((Le|0)>(Fe*13|0)?12:(Le|0)>(Fe<<3|0)?8:(Le|0)>(Fe*3|0)?4:0)|((Ec|0)>(Me*13|0)?3:(Ec|0)>(Me<<3|0)?2:(Ec|0)>(Me*3|0)&1)|((Ge|0)>(sb*13|0)?768:(Ge|0)>(sb<<3|0)?512:(Ge|0)>(sb*3|0)?256:0)|((ye|0)>(fd*13|0)?3072:(ye|0)>(fd<<3|0)?2048:(ye|0)>(fd*3|0)?1024:0)|((eb|0)>(Vd*13|0)?48:(eb|0)>(Vd<<3|0)?32:(eb|0)>(Vd*3|0)?16:0)|((dd|0)>(Je*13|0)?192:(dd|0)>(Je<<3|0)?128:(dd|0)>(Je*3|0)?64:0)|((Ie|0)>(se*13|0)?12288:(Ie|0)>(se<<3|0)?8192:(Ie|0)>(se*3|0)?4096:0)|((wb|0)>(tb*13|0)?49152:(wb|0)>(tb<<3|0)?32768:(wb|0)>(tb*3|0)?16384:0)|((nd|0)>(vd*13|0)?196608:(nd|0)>(vd<<3|0)?131072:(nd|0)>(vd*3|0)?65536:0)|((bb|0)>(Bc*13|0)?786432:(bb|0)>(Bc<<3|0)?524288:(bb|0)>(Bc*3|0)?262144:0)|((ue|0)>(rd*13|0)?50331648:(ue|0)>(rd<<3|0)?33554432:(ue|0)>(rd*3|0)?16777216:0)|((Wd|0)>(cb*13|0)?201326592:(Wd|0)>(cb<<3|0)?134217728:(Wd|0)>(cb*3|0)?67108864:0)|((Pe|0)>(od*13|0)?3145728:(Pe|0)>(od<<3|0)?2097152:(Pe|0)>(od*3|0)?1048576:0)|((ad|0)>(bd*13|0)?12582912:(ad|0)>(bd<<3|0)?8388608:(ad|0)>(bd*3|0)?4194304:0)|((db|0)>(we*13|0)?805306368:(db|0)>(we<<3|0)?536870912:(db|0)>(we*3|0)?268435456:0)|((te|0)>(Oe*13|0)?-1073741824:(te|0)>(Oe<<3|0)?-2147483648:(te|0)>(Oe*3|0)?1073741824:0);if((ub|0)==(h|0)){Re=Ha;Se=Qe;Te=La;Ue=Ac;Ve=vb;We=cd;Xe=xb;Ye=_c;Ze=wd;_e=Zc;$e=Ma;af=ud;break}else{Oe=Ma;te=wd;we=vb;db=xb;bd=Ha;ad=La;La=Ac;Ha=Qe;xb=_c;vb=cd;wd=Zc;Ma=ud;Ia=Ia+1|0;xe=Oe;Dc=te;rb=we;qd=db;ve=bd;Ja=ad}}}c[na>>2]=Se;c[ma>>2]=We;c[$>>2]=Ue;c[_>>2]=Ye;c[la>>2]=_e;c[ka>>2]=af;c[r>>2]=Re;c[ja>>2]=Se;c[ia>>2]=Te;c[ha>>2]=Ue;c[s>>2]=Ve;c[ga>>2]=We;c[fa>>2]=Xe;c[ea>>2]=Ye;c[da>>2]=Ze;c[ca>>2]=_e;c[ba>>2]=$e;c[X>>2]=af;bf=V+h|0}else bf=V;O=O+1|0;if((O|0)==(j|0))break;else V=bf}}}if(!L)J=1;else{xc(L);J=1}}while(0);L=c[v>>2]|0;if(!L){y=J;i=q;return y|0}v=c[C>>2]|0;if((v|0)!=(L|0))c[C>>2]=v+(~((v+-4-L|0)>>>2)<<2);Rb(L);y=J;i=q;return y|0}function db(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]=0;c[a+28>>2]=0;c[a+32>>2]=b;Fc(a+36|0,0,172)|0;return}function eb(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 fb(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 gb(a,b,c){a=a|0;b=b|0;c=c|0;var e=0;if(!(fb(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 hb(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(!(fb(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;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 ib(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(!(fb(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 jb(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(!(fb(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;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 kb(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(!(fb(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(!(Za(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=bb(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 lb(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;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(!(fb(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=(d[a+(f*23|0)+10>>0]|0)<<8|(d[a+(f*23|0)+9>>0]|0);o=(d[a+(f*23|0)+12>>0]|0)<<8|(d[a+(f*23|0)+11>>0]|0);if((Z(o,n)|0)>>>0>h>>>0){m=0;return m|0}if((i|0)==3){h=n<<2;if(!n){m=0;return m|0}if(h+262143&h){m=0;return m|0}h=o<<2;if(!o){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}p=(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<p>>>0){m=0;return m|0}m=cb(l,g,n,o,b+h|0,p,i,j,(k&1|0)!=0,(k&8|0)==0)|0;return m|0}function mb(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(!(fb(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=lb(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=lb(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=lb(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=lb(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=lb(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(!(lb(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[641756]|0;a[l+1>>0]=a[641757]|0;a[l+2>>0]=a[641758]|0;a[l+3>>0]=a[641759]|0;a[l+4>>0]=a[641760]|0;a[l+5>>0]=a[641761]|0;r=r+1|0}while((r|0)!=(g|0))}p=lb(b,e,f,v,j+8|0,k,0,16,m)|0;i=n;return p|0}case 6:{if(s){if(!(lb(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=lb(b,e,f,v,j+8|0,k,1,16,m|8)|0;i=n;return p|0}case 7:{if(!(lb(b,e,f,v,j,k,2,16,m)|0)){p=0;i=n;return p|0}if(s){p=lb(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 nb(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 ob(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{pb(d,e-o|0);q=c[d>>2]|0}Ic(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 qb(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 rb(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){rb(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){rb(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 pb(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)Pb(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=Qb(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;Ic(d|0,q|0,l|0)|0;c[b>>2]=d;c[g>>2]=r;c[e>>2]=o;if(!q)return;Rb(q);return}function qb(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){Fc(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)Pb(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=Qb(p<<2)|0;n=q;o=r}Fc(m+(n<<2)|0,0,b<<2|0)|0;Ic(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;Rb(i);return}function rb(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){Fc(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)Pb(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=Qb(e<<1)|0;Fc(m+(h<<1)|0,0,b<<1|0)|0;Ic(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;Rb(j);return}
function sb(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}tb(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){ub(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){vb(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){wb(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[644536+(d[l>>0]|0)>>0]|0;j=b+2|0;B=a[644536+(d[j>>0]|0)>>0]|0;I=b+3|0;h=a[644536+(d[I>>0]|0)>>0]|0;g=b+4|0;E=a[644536+(d[g>>0]|0)>>0]|0;H=b+5|0;D=a[644536+(d[H>>0]|0)>>0]|0;F=b+6|0;G=a[644536+(d[F>>0]|0)>>0]|0;C=b+7|0;z=a[644536+(d[C>>0]|0)>>0]|0;A=b+8|0;y=a[644536+(d[A>>0]|0)>>0]|0;w=b+9|0;x=a[644536+(d[w>>0]|0)>>0]|0;u=b+10|0;v=a[644536+(d[u>>0]|0)>>0]|0;t=b+11|0;r=a[644536+(d[t>>0]|0)>>0]|0;s=b+12|0;q=a[644536+(d[s>>0]|0)>>0]|0;J=b+13|0;K=a[644536+(d[J>>0]|0)>>0]|0;L=b+14|0;M=a[644536+(d[L>>0]|0)>>0]|0;N=b+15|0;O=a[644536+(d[N>>0]|0)>>0]|0;a[b>>0]=a[644536+(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)+(644540+(O<<2))>>0]|0;M=b+2|0;L=a[(d[M>>0]|0)+(644540+(O<<2))>>0]|0;K=b+3|0;J=a[(d[K>>0]|0)+(644540+(O<<2))>>0]|0;q=b+4|0;s=a[(d[q>>0]|0)+(644540+(O<<2))>>0]|0;r=b+5|0;t=a[(d[r>>0]|0)+(644540+(O<<2))>>0]|0;v=b+6|0;u=a[(d[v>>0]|0)+(644540+(O<<2))>>0]|0;x=b+7|0;w=a[(d[x>>0]|0)+(644540+(O<<2))>>0]|0;y=b+8|0;A=a[(d[y>>0]|0)+(644540+(O<<2))>>0]|0;z=b+9|0;C=a[(d[z>>0]|0)+(644540+(O<<2))>>0]|0;G=b+10|0;F=a[(d[G>>0]|0)+(644540+(O<<2))>>0]|0;D=b+11|0;H=a[(d[D>>0]|0)+(644540+(O<<2))>>0]|0;E=b+12|0;g=a[(d[E>>0]|0)+(644540+(O<<2))>>0]|0;h=b+13|0;I=a[(d[h>>0]|0)+(644540+(O<<2))>>0]|0;B=b+14|0;j=a[(d[B>>0]|0)+(644540+(O<<2))>>0]|0;k=b+15|0;l=a[(d[k>>0]|0)+(644540+(O<<2))>>0]|0;a[b>>0]=a[(d[b>>0]|0)+(644540+(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}xb(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 tb(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 ub(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 vb(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 wb(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 xb(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;yc(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 yb(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[509148+(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[509148+(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[509148+(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[509148+(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 zb(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)Pb(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=Qb(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;Ic(d|0,s|0,n|0)|0;c[b>>2]=d;c[g>>2]=t;c[e>>2]=q;if(!s)return;Rb(s);return}function Ab(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)Pb(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=Qb(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;Ic(b|0,p|0,k|0)|0;c[a>>2]=b;c[f>>2]=q;c[d>>2]=n;if(!p)return;Rb(p);return}function Bb(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)Pb(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=Qb(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;Ic(d|0,q|0,l|0)|0;c[b>>2]=d;c[g>>2]=r;c[e>>2]=o;if(!q)return;Rb(q);return}function Cb(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)Pb(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=Qb(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;Ic(d|0,q|0,l|0)|0;c[a>>2]=d;c[g>>2]=r;c[e>>2]=o;if(!q)return;Rb(q);return}function Db(){var a=0,b=0;Ya();if(c[127351]|0)return;a=Qb(12)|0;b=c[127254]|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;Xa(a,b,492632);c[127351]=a;return}function Eb(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=Qb(220)|0;f=e+4|0;db(f,c[127351]|0);c[e+212>>2]=a;c[e+216>>2]=b;if(eb(f,a,b)|0){c[e>>2]=-559038751;d=e;return d|0}else{Ob(e+12|0);Rb(e);d=0;return d|0}return 0}function Fb(a){a=a|0;if(!a)return;if((c[a>>2]|0)!=-559038751)return;Ob(a+12|0);Rb(a);return}function Gb(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=jb(a+4|0,c[a+212>>2]|0,c[a+216>>2]|0,e,0,0)|0;f=g?d[e+40>>0]|0:0;i=b;return f|0}function Hb(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=gb(a+4|0,c[a+212>>2]|0,c[a+216>>2]|0)|0;return b|0}function Ib(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=hb(a+4|0,c[a+212>>2]|0,c[a+216>>2]|0,e,b)|0;f=g?c[e+4>>2]|0:0;i=d;return f|0}function Jb(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=ib(a+4|0,c[a+212>>2]|0,c[a+216>>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 Kb(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=ib(a+4|0,c[a+212>>2]|0,c[a+216>>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 Lb(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=nb(e)|0;if(!(ib(a+4|0,c[a+212>>2]|0,c[a+216>>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 Mb(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+212>>2]|0,c[a+216>>2]|0)|0)&1;return b|0}function Nb(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=nb(g)|0;j=(mb(a+4|0,c[a+212>>2]|0,c[a+216>>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 Ob(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+188>>2]|0;d=b;if(b){e=a+192|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-4-d|0)>>>2)<<2);Rb(b)}b=c[a+176>>2]|0;d=b;if(b){f=a+180|0;e=c[f>>2]|0;if((e|0)!=(b|0))c[f>>2]=e+(~((e+-4-d|0)>>>2)<<2);Rb(b)}b=c[a+160>>2]|0;d=b;if(b){e=a+164|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-2-d|0)>>>1)<<1);Rb(b)}b=c[a+148>>2]|0;d=b;if(b){f=a+152|0;e=c[f>>2]|0;if((e|0)!=(b|0))c[f>>2]=e+(~((e+-4-d|0)>>>2)<<2);Rb(b)}b=c[a+136>>2]|0;if(b){d=a+140|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;Rb(b)}b=c[a+124>>2]|0;d=b;if(b){e=a+128|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-2-d|0)>>>1)<<1);Rb(b)}b=c[a+112>>2]|0;d=b;if(b){f=a+116|0;e=c[f>>2]|0;if((e|0)!=(b|0))c[f>>2]=e+(~((e+-4-d|0)>>>2)<<2);Rb(b)}b=c[a+100>>2]|0;if(b){d=a+104|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;Rb(b)}b=c[a+88>>2]|0;d=b;if(b){e=a+92|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-2-d|0)>>>1)<<1);Rb(b)}b=c[a+76>>2]|0;d=b;if(b){f=a+80|0;e=c[f>>2]|0;if((e|0)!=(b|0))c[f>>2]=e+(~((e+-4-d|0)>>>2)<<2);Rb(b)}b=c[a+64>>2]|0;if(b){d=a+68|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;Rb(b)}b=c[a+52>>2]|0;d=b;if(b){e=a+56|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-2-d|0)>>>1)<<1);Rb(b)}b=c[a+40>>2]|0;d=b;if(b){f=a+44|0;e=c[f>>2]|0;if((e|0)!=(b|0))c[f>>2]=e+(~((e+-4-d|0)>>>2)<<2);Rb(b)}b=c[a+28>>2]|0;if(b){d=a+32|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;Rb(b)}b=c[a+12>>2]|0;if(b){d=a+16|0;e=c[d>>2]|0;if((e|0)!=(b|0))c[d>>2]=e+(~(((0-b+(e+-7)|0)>>>0)/7|0)*7|0);Rb(b)}b=c[a>>2]|0;if(!b)return;e=a+4|0;a=c[e>>2]|0;if((a|0)!=(b|0))c[e>>2]=a+(~((a+-8-b|0)>>>3)<<3);Rb(b);return}function Pb(a){a=a|0;ma(645767,645790,303,645865)}function Qb(a){a=a|0;var b=0,d=0,e=0;b=(a|0)==0?1:a;a=wc(b)|0;a:do if(!a){while(1){d=Vb()|0;if(!d)break;La[d&0]();d=wc(b)|0;if(d){e=d;break a}}d=na(4)|0;c[d>>2]=509416;za(d|0,8,1)}else e=a;while(0);return e|0}function Rb(a){a=a|0;xc(a);return}function Sb(a){a=a|0;return}function Tb(a){a=a|0;Rb(a);return}function Ub(a){a=a|0;return 645886}function Vb(){var a=0;a=c[127357]|0;c[127357]=a+0;return a|0}function Wb(a){a=a|0;return}function Xb(a){a=a|0;return}function Yb(a){a=a|0;return}function Zb(a){a=a|0;return}function _b(a){a=a|0;return}function $b(a){a=a|0;Rb(a);return}function ac(a){a=a|0;Rb(a);return}function bc(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=fc(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 cc(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 dc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((a|0)==(c[b+8>>2]|0))cc(0,b,d,e);return}function ec(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))cc(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 fc(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 gc(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 hc(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 ic(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 jc(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))gc(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 kc(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))gc(0,b,d,e,f);return}function lc(){var a=0;if(!(c[127378]|0))a=509560;else a=c[(va()|0)+60>>2]|0;return a|0}function mc(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(lc()|0)>>2]=0-a;b=-1}else b=a;return b|0}function nc(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=uc(a)|0;break}d=(oc(a)|0)==0;e=uc(a)|0;if(d)b=e;else{pc(a);b=e}}else{if(!(c[127389]|0))f=0;else f=nc(c[127389]|0)|0;Aa(509540);e=c[127384]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=oc(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=uc(d)|0|e;else i=e;if(h)pc(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}xa(509540);b=g}while(0);return b|0}function oc(a){a=a|0;return 0}function pc(a){a=a|0;return}function qc(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=mc(ka(6,d|0)|0)|0;i=b;return a|0}function rc(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((mc(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 sc(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[127378]|0)){c[f>>2]=c[b>>2];c[f+4>>2]=n;c[f+8>>2]=h;p=mc(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=mc(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 tc(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=sc(b,d,e)|0;i=f;return g|0}function uc(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 vc(a){a=a|0;if(!(c[a+68>>2]|0))pc(a);return}function wc(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[127419]|0;f=e>>>d;if(f&3){g=(f&1^1)+d|0;h=g<<1;i=509716+(h<<2)|0;j=509716+(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[127423]|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[127419]=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[127421]|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=509716+(p<<2)|0;o=509716+(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[127423]|0)>>>0)Ba();l=i+12|0;if((c[l>>2]|0)==(p|0)){c[l>>2]=q;c[o>>2]=i;s=c[127421]|0;break}else Ba()}else{c[127419]=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[127424]|0;o=s>>>3;q=o<<1;d=509716+(q<<2)|0;f=c[127419]|0;k=1<<o;if(f&k){o=509716+(q+2<<2)|0;h=c[o>>2]|0;if(h>>>0<(c[127423]|0)>>>0)Ba();else{t=o;u=h}}else{c[127419]=f|k;t=509716+(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[127421]=e;c[127424]=i;n=m;return n|0}i=c[127420]|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[509980+((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[127423]|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=509980+(m<<2)|0;if((w|0)==(c[j>>2]|0)){c[j>>2]=y;if(!y){c[127420]=c[127420]&~(1<<m);break}}else{if(q>>>0<(c[127423]|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[127423]|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[127423]|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[127421]|0;if(j){q=c[127424]|0;m=j>>>3;j=m<<1;p=509716+(j<<2)|0;d=c[127419]|0;r=1<<m;if(d&r){m=509716+(j+2<<2)|0;f=c[m>>2]|0;if(f>>>0<(c[127423]|0)>>>0)Ba();else{D=m;E=f}}else{c[127419]=d|r;D=509716+(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[127421]=v;c[127424]=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[127420]|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[509980+(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[509980+((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[127421]|0)-q|0)>>>0:0){j=c[127423]|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=509980+(p<<2)|0;if((T|0)==(c[j>>2]|0)){c[j>>2]=U;if(!U){c[127420]=c[127420]&~(1<<p);break}}else{if(k>>>0<(c[127423]|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[127423]|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[127423]|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=509716+(j<<2)|0;b=c[127419]|0;i=1<<k;if(b&i){k=509716+(j+2<<2)|0;r=c[k>>2]|0;if(r>>>0<(c[127423]|0)>>>0)Ba();else{Z=k;_=r}}else{c[127419]=b|i;Z=509716+(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=509980+($<<2)|0;c[T+(q+28)>>2]=$;c[T+(q+20)>>2]=0;c[T+(q+16)>>2]=0;i=c[127420]|0;b=1<<$;if(!(i&b)){c[127420]=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[127423]|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[127423]|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[127421]|0;if(T>>>0>=F>>>0){S=T-F|0;ca=c[127424]|0;if(S>>>0>15){c[127424]=ca+F;c[127421]=S;c[ca+(F+4)>>2]=S|1;c[ca+T>>2]=S;c[ca+4>>2]=F|3}else{c[127421]=0;c[127424]=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[127422]|0;if(ca>>>0>F>>>0){S=ca-F|0;c[127422]=S;ca=c[127425]|0;c[127425]=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[127537]|0)){ca=ua(30)|0;if(!(ca+-1&ca)){c[127539]=ca;c[127538]=ca;c[127540]=-1;c[127541]=-1;c[127542]=0;c[127530]=0;c[127537]=(Da(0)|0)&-16^1431655768;break}else Ba()}while(0);ca=F+48|0;S=c[127539]|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[127529]|0;if(($|0)!=0?(_=c[127527]|0,Z=_+S|0,Z>>>0<=_>>>0|Z>>>0>$>>>0):0){n=0;return n|0}d:do if(!(c[127530]&4)){$=c[127425]|0;e:do if($){Z=510124;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[127422]|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[127538]|0;Z=X+-1|0;if(!(Z&q))la=S;else la=S-q+(Z+q&0-X)|0;X=c[127527]|0;q=X+la|0;if(la>>>0>F>>>0&la>>>0<2147483647){Z=c[127529]|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[127539]|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[127530]=c[127530]|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[127527]|0)+ha|0;c[127527]=na;if(na>>>0>(c[127528]|0)>>>0)c[127528]=na;na=c[127425]|0;g:do if(na){ma=510124;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[127422]|0)+ha|0;ia=na+8|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ma-fa|0;c[127425]=na+fa;c[127422]=ia;c[na+(fa+4)>>2]=ia|1;c[na+(ma+4)>>2]=40;c[127426]=c[127541];break}ma=c[127423]|0;if(ga>>>0<ma>>>0){c[127423]=ga;ta=ga}else ta=ma;ma=ga+ha|0;ia=510124;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=510124;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[127424]|0)){T=(c[127421]|0)+ja|0;c[127421]=T;c[127424]=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=509980+(aa<<2)|0;do if((ia|0)!=(c[X>>2]|0)){if(da>>>0<(c[127423]|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[127420]=c[127420]&~(1<<aa);break i}while(0);aa=c[127423]|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[127423]|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=509716+(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[127419]=c[127419]&~(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=509716+(T<<2)|0;da=c[127419]|0;X=1<<ea;do if(!(da&X)){c[127419]=da|X;Ia=509716+(T+2<<2)|0;Ja=ca}else{ea=509716+(T+2<<2)|0;$=c[ea>>2]|0;if($>>>0>=(c[127423]|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=509980+(Ka<<2)|0;c[ga+(S+28)>>2]=Ka;c[ga+(S+20)>>2]=0;c[ga+(S+16)>>2]=0;ca=c[127420]|0;ea=1<<Ka;if(!(ca&ea)){c[127420]=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[127423]|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[127423]|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[127422]|0)+ja|0;c[127422]=ca;c[127425]=ka;c[ga+(S+4)>>2]=ca|1}while(0);n=ga+(ma|8)|0;return n|0}else xa=510124;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[127425]=ga+ia;c[127422]=S;c[ga+(ia+4)>>2]=S|1;c[ga+(ha+-36)>>2]=40;c[127426]=c[127541];S=ka+4|0;c[S>>2]=27;c[ja>>2]=c[127531];c[ja+4>>2]=c[127532];c[ja+8>>2]=c[127533];c[ja+12>>2]=c[127534];c[127531]=ga;c[127532]=ha;c[127534]=0;c[127533]=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=509716+(fa<<2)|0;ea=c[127419]|0;T=1<<ja;if(ea&T){ja=509716+(fa+2<<2)|0;Z=c[ja>>2]|0;if(Z>>>0<(c[127423]|0)>>>0)Ba();else{Ra=ja;Sa=Z}}else{c[127419]=ea|T;Ra=509716+(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=509980+(Ta<<2)|0;c[na+28>>2]=Ta;c[na+20>>2]=0;c[ma>>2]=0;T=c[127420]|0;ea=1<<Ta;if(!(T&ea)){c[127420]=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[127423]|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[127423]|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[127423]|0;if((ia|0)==0|ga>>>0<ia>>>0)c[127423]=ga;c[127531]=ga;c[127532]=ha;c[127534]=0;c[127428]=c[127537];c[127427]=-1;ia=0;do{ea=ia<<1;ma=509716+(ea<<2)|0;c[509716+(ea+3<<2)>>2]=ma;c[509716+(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[127425]=ga+ma;c[127422]=ia;c[ga+(ma+4)>>2]=ia|1;c[ga+(ha+-36)>>2]=40;c[127426]=c[127541]}while(0);ha=c[127422]|0;if(ha>>>0>F>>>0){ga=ha-F|0;c[127422]=ga;ha=c[127425]|0;c[127425]=ha+F;c[ha+(F+4)>>2]=ga|1;c[ha+4>>2]=F|3;n=ha+8|0;return n|0}}c[(lc()|0)>>2]=12;n=0;return n|0}function xc(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[127423]|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[127424]|0)){m=a+(g+-4)|0;n=c[m>>2]|0;if((n&3|0)!=3){o=k;p=l;break}c[127421]=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=509716+(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[127419]=c[127419]&~(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=509980+(m<<2)|0;if((k|0)==(c[q>>2]|0)){c[q>>2]=u;if(!u){c[127420]=c[127420]&~(1<<m);o=k;p=l;break}}else{if(i>>>0<(c[127423]|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[127423]|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[127423]|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[127425]|0)){d=(c[127422]|0)+p|0;c[127422]=d;c[127425]=o;c[o+4>>2]=d|1;if((o|0)!=(c[127424]|0))return;c[127424]=0;c[127421]=0;return}if((h|0)==(c[127424]|0)){d=(c[127421]|0)+p|0;c[127421]=d;c[127424]=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[127423]|0)>>>0)Ba();else{c[D>>2]=0;z=C;break}}else{v=c[a+g>>2]|0;if(v>>>0<(c[127423]|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=509980+(w<<2)|0;if((h|0)==(c[l>>2]|0)){c[l>>2]=z;if(!z){c[127420]=c[127420]&~(1<<w);break}}else{if(y>>>0<(c[127423]|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[127423]|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[127423]|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=509716+(x<<1<<2)|0;if((l|0)!=(y|0)){if(l>>>0<(c[127423]|0)>>>0)Ba();if((c[l+12>>2]|0)!=(h|0))Ba()}if((w|0)==(l|0)){c[127419]=c[127419]&~(1<<x);break}if((w|0)!=(y|0)){if(w>>>0<(c[127423]|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[127424]|0)){c[127421]=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=509716+(u<<2)|0;d=c[127419]|0;E=1<<p;if(d&E){p=509716+(u+2<<2)|0;h=c[p>>2]|0;if(h>>>0<(c[127423]|0)>>>0)Ba();else{G=p;H=h}}else{c[127419]=d|E;G=509716+(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=509980+(I<<2)|0;c[o+28>>2]=I;c[o+20>>2]=0;c[o+16>>2]=0;G=c[127420]|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[127423]|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[127423]|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[127420]=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[127427]|0)+-1|0;c[127427]=o;if(!o)M=510132;else return;while(1){o=c[M>>2]|0;if(!o)break;else M=o+8|0}c[127427]=-1;return}function yc(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=Cc(g,g+w|0,v,g+(w+u)|0,f,d)|0}else x=Ac(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=zc(g,_,d)|0;u=_+1|0;if(zc(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}yc(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;yc(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)Ac(m,m+1|0,n,d)|0;else if((l|0)==7)Bc(o,o+1|0,o+2|0,p,d)|0;else if((l|0)==8)Cc(q,q+1|0,q+2|0,q+3|0,r,d)|0;else if((l|0)==10)Dc(s,t,d);return}function zc(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:{Ac(b,b+1|0,c+-1|0,d)|0;e=1;break}case 4:{Bc(b,b+1|0,b+2|0,c+-1|0,d)|0;e=1;break}case 5:{Cc(b,b+1|0,b+2|0,b+3|0,c+-1|0,d)|0;e=1;break}default:{h=b+2|0;Ac(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 Ac(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 Bc(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=Ac(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 Cc(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=Bc(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 Dc(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;Ac(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 Ec(){}function Fc(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 Gc(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 Hc(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 Ic(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 Jc(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 Kc(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 Lc(a,b){a=a|0;b=b|0;Ja[a&15](b|0)}function Mc(a,b){a=a|0;b=b|0;return Ka[a&3](b|0)|0}function Nc(a){a=a|0;La[a&0]()}function Oc(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 Pc(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 Qc(a,b,c){a=a|0;b=b|0;c=c|0;aa(0);return 0}function Rc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(1)}function Sc(a){a=a|0;aa(2)}function Tc(a){a=a|0;aa(3);return 0}function Uc(){aa(4)}function Vc(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 Wc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(6)}

// EMSCRIPTEN_END_FUNCS
var Ha=[Qc,bc,tc,rc,sc,Qc,Qc,Qc];var Ia=[Rc,ic,hc,Rc];var Ja=[Sc,Sb,Tb,Yb,$b,Zb,_b,ac,vc,Sc,Sc,Sc,Sc,Sc,Sc,Sc];var Ka=[Tc,Ub,qc,Tc];var La=[Uc];var Ma=[Vc,kc,jc,Vc];var Na=[Wc,dc,ec,Wc];return{_basis_open:Eb,_basis_get_num_levels:Ib,_basis_transcode_image:Nb,_fflush:nc,_memset:Fc,_basis_init:Db,_basis_start_transcoding:Mb,_basis_get_num_images:Hb,_basis_get_has_alpha:Gb,_basis_get_image_width:Jb,_malloc:wc,_basis_close:Fb,_memcpy:Ic,_basis_get_image_height:Kb,_bitshift64Lshr:Gc,_free:xc,_bitshift64Shl:Hc,___errno_location:lc,_basis_get_image_transcoded_size_in_bytes:Lb,runPostSets:Ec,stackAlloc:Oa,stackSave:Pa,stackRestore:Qa,establishStackSpace:Ra,setThrew:Sa,setTempRet0:Va,getTempRet0:Wa,dynCall_iiii:Jc,dynCall_viiiii:Kc,dynCall_vi:Lc,dynCall_ii:Mc,dynCall_v:Nc,dynCall_viiiiii:Oc,dynCall_viiii:Pc}})


// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _basis_open=Module["_basis_open"]=asm["_basis_open"];var _basis_get_num_levels=Module["_basis_get_num_levels"]=asm["_basis_get_num_levels"];var _basis_start_transcoding=Module["_basis_start_transcoding"]=asm["_basis_start_transcoding"];var _fflush=Module["_fflush"]=asm["_fflush"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _basis_init=Module["_basis_init"]=asm["_basis_init"];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 _basis_get_num_images=Module["_basis_get_num_images"]=asm["_basis_get_num_images"];var _malloc=Module["_malloc"]=asm["_malloc"];var _basis_close=Module["_basis_close"]=asm["_basis_close"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _basis_get_image_height=Module["_basis_get_image_height"]=asm["_basis_get_image_height"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _free=Module["_free"]=asm["_free"];var _basis_get_image_width=Module["_basis_get_image_width"]=asm["_basis_get_image_width"];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 ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];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()




