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){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=83;break}}if((qa|0)==83)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;a[r>>0]=(vb&255)>>>3;Zc=(rb&255)>>>3;a[ga>>0]=Zc;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)+1>>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)+1>>0]|0;a[Ac>>0]=a[s+(Ec<<2)+1>>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;a[r>>0]=(vb&255)>>>3;qd=(rb&255)>>>3;a[ma>>0]=qd;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)+1>>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){c[s+(m<<2)>>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;A=d;B=d+-2|0}else{A=r;B=d}if((A|0)>-1){C=0;break a}r=z>>>9;m=(r&1)-A|0;p=m+-1|0;s=(m|0)<1;if((u&255)>11){D=m;E=p;F=r&4194303;r=s;G=h;H=B;while(1){if(r){C=0;break a}I=c[k>>2]|0;J=c[l>>2]|0;K=I-J>>1;do if((D|0)>(K|0)){if(D>>>0>K>>>0){rb(l,D-K|0);L=c[l>>2]|0;break}if(D>>>0>=K>>>0){L=J;break}M=J+(D<<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)){b[J>>1]=H;N=H;O=H+-2|0}else{N=I<<16>>16;O=H}G=G+-1|0;F=F>>>1;I=(F&1)-N|0;J=I+-1|0;K=(I|0)<1;if((G|0)<=11){P=I;Q=J;R=K;S=O;break}else{D=I;E=J;r=K;H=O}}}else{P=m;Q=p;R=s;S=B}if(R){C=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}D=r+(P<<1)|0;if((H|0)==(D|0)){T=r;break}c[k>>2]=H+(~((H+-2-D|0)>>>1)<<1);T=r}else T=r;while(0);b[T+(Q<<1)>>1]=o;x=S}while(0);o=o+1|0;if((o|0)>=(e|0)){C=1;break}else d=x}}else C=1;else C=0;while(0);t=C}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()




