27 lines
490 KiB
JavaScript
27 lines
490 KiB
JavaScript
var Module;if(typeof Module==="undefined")Module=eval("(function() { try { return Module || {} } catch(e) { return {} } })()");if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0;Module.finishedDataFileDownloads=0}Module.expectedDataFileDownloads++;((function(){var PACKAGE_PATH;if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else{PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="build-emscripten-release/game.data";var REMOTE_PACKAGE_NAME=(Module["filePackagePrefixURL"]||"")+"game.data";var REMOTE_PACKAGE_SIZE=487037;var PACKAGE_UUID="0aba4d1e-27d5-4758-a107-6cae09aa96db";function fetchRemotePackage(packageName,packageSize,callback,errback){var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=(function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}});xhr.onload=(function(event){var packageData=xhr.response;callback(packageData)});xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetched=null,fetchedCallback=null;fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,(function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}}),handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","data",true,true);function DataRequest(start,end,crunched,audio){this.start=start;this.end=end;this.crunched=crunched;this.audio=audio}DataRequest.prototype={requests:{},open:(function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)}),send:(function(){}),onload:(function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)}),finish:(function(byteArray){var that=this;Module["FS_createPreloadedFile"](this.name,null,byteArray,true,true,(function(){Module["removeRunDependency"]("fp "+that.name)}),(function(){if(that.audio){Module["removeRunDependency"]("fp "+that.name)}else{Module.printErr("Preloading file "+that.name+" failed")}}),false,true);this.requests[this.name]=null})};(new DataRequest(0,2344,0,0)).open("GET","/data/arrowshooter_down.png");(new DataRequest(2344,4698,0,0)).open("GET","/data/arrowshooter_left.png");(new DataRequest(4698,7037,0,0)).open("GET","/data/arrowshooter_right.png");(new DataRequest(7037,9313,0,0)).open("GET","/data/arrowshooter_up.png");(new DataRequest(9313,10366,0,0)).open("GET","/data/arrow_down.png");(new DataRequest(10366,11291,0,0)).open("GET","/data/arrow_left.png");(new DataRequest(11291,12228,0,0)).open("GET","/data/arrow_right.png");(new DataRequest(12228,13096,0,0)).open("GET","/data/arrow_up.png");(new DataRequest(13096,15920,0,0)).open("GET","/data/barrel.png");(new DataRequest(15920,18827,0,0)).open("GET","/data/barrel2.png");(new DataRequest(18827,69509,0,1)).open("GET","/data/coin.wav");(new DataRequest(69509,74221,0,0)).open("GET","/data/column.png");(new DataRequest(74221,77808,0,0)).open("GET","/data/column_faded.png");(new DataRequest(77808,123766,0,0)).open("GET","/data/end.png");(new DataRequest(123766,125708,0,0)).open("GET","/data/end_point.png");(new DataRequest(125708,130045,0,0)).open("GET","/data/exit_point.png");(new DataRequest(130045,186059,0,1)).open("GET","/data/Explosion16.wav");(new DataRequest(186059,250159,0,1)).open("GET","/data/Explosion2.wav");(new DataRequest(250159,258818,0,0)).open("GET","/data/fire.png");(new DataRequest(258818,262733,0,0)).open("GET","/data/floor.png");(new DataRequest(262733,266695,0,0)).open("GET","/data/floor_center.png");(new DataRequest(266695,270593,0,0)).open("GET","/data/floor_left.png");(new DataRequest(270593,274545,0,0)).open("GET","/data/floor_right.png");(new DataRequest(274545,280733,0,1)).open("GET","/data/Hit_Hurt10.wav");(new DataRequest(280733,296579,0,1)).open("GET","/data/Hit_Hurt16.wav");(new DataRequest(296579,301561,0,0)).open("GET","/data/hole_lava.png");(new DataRequest(301561,305229,0,0)).open("GET","/data/hole_spiked.png");(new DataRequest(305229,308688,0,0)).open("GET","/data/lamp.png");(new DataRequest(308688,320660,0,1)).open("GET","/data/Laser_Shoot2.wav");(new DataRequest(320660,322e3,0,0)).open("GET","/data/level_00.txt");(new DataRequest(322e3,323144,0,0)).open("GET","/data/level_01.txt");(new DataRequest(323144,324484,0,0)).open("GET","/data/level_02.txt");(new DataRequest(324484,325554,0,0)).open("GET","/data/level_03.txt");(new DataRequest(325554,327089,0,0)).open("GET","/data/level_04.txt");(new DataRequest(327089,328555,0,0)).open("GET","/data/level_05.txt");(new DataRequest(328555,328847,0,0)).open("GET","/data/level_06.txt");(new DataRequest(328847,369638,0,0)).open("GET","/data/logo.png");(new DataRequest(369638,373865,0,0)).open("GET","/data/player_broken.png");(new DataRequest(373865,378163,0,0)).open("GET","/data/player_down.png");(new DataRequest(378163,382654,0,0)).open("GET","/data/player_left.png");(new DataRequest(382654,387128,0,0)).open("GET","/data/player_right.png");(new DataRequest(387128,391201,0,0)).open("GET","/data/player_up.png");(new DataRequest(391201,448215,0,1)).open("GET","/data/Powerup10.wav");(new DataRequest(448215,475099,0,1)).open("GET","/data/Powerup30.wav");(new DataRequest(475099,477906,0,0)).open("GET","/data/rock.png");(new DataRequest(477906,480256,0,0)).open("GET","/data/save_point.png");(new DataRequest(480256,485902,0,0)).open("GET","/data/save_point_active.png");(new DataRequest(485902,487037,0,0)).open("GET","/data/textshadow.png");function processPackageData(arrayBuffer){Module.finishedDataFileDownloads++;assert(arrayBuffer,"Loading data file failed.");var byteArray=new Uint8Array(arrayBuffer);var curr;var ptr=Module["_malloc"](byteArray.length);Module["HEAPU8"].set(byteArray,ptr);DataRequest.prototype.byteArray=Module["HEAPU8"].subarray(ptr,ptr+byteArray.length);DataRequest.prototype.requests["/data/arrowshooter_down.png"].onload();DataRequest.prototype.requests["/data/arrowshooter_left.png"].onload();DataRequest.prototype.requests["/data/arrowshooter_right.png"].onload();DataRequest.prototype.requests["/data/arrowshooter_up.png"].onload();DataRequest.prototype.requests["/data/arrow_down.png"].onload();DataRequest.prototype.requests["/data/arrow_left.png"].onload();DataRequest.prototype.requests["/data/arrow_right.png"].onload();DataRequest.prototype.requests["/data/arrow_up.png"].onload();DataRequest.prototype.requests["/data/barrel.png"].onload();DataRequest.prototype.requests["/data/barrel2.png"].onload();DataRequest.prototype.requests["/data/coin.wav"].onload();DataRequest.prototype.requests["/data/column.png"].onload();DataRequest.prototype.requests["/data/column_faded.png"].onload();DataRequest.prototype.requests["/data/end.png"].onload();DataRequest.prototype.requests["/data/end_point.png"].onload();DataRequest.prototype.requests["/data/exit_point.png"].onload();DataRequest.prototype.requests["/data/Explosion16.wav"].onload();DataRequest.prototype.requests["/data/Explosion2.wav"].onload();DataRequest.prototype.requests["/data/fire.png"].onload();DataRequest.prototype.requests["/data/floor.png"].onload();DataRequest.prototype.requests["/data/floor_center.png"].onload();DataRequest.prototype.requests["/data/floor_left.png"].onload();DataRequest.prototype.requests["/data/floor_right.png"].onload();DataRequest.prototype.requests["/data/Hit_Hurt10.wav"].onload();DataRequest.prototype.requests["/data/Hit_Hurt16.wav"].onload();DataRequest.prototype.requests["/data/hole_lava.png"].onload();DataRequest.prototype.requests["/data/hole_spiked.png"].onload();DataRequest.prototype.requests["/data/lamp.png"].onload();DataRequest.prototype.requests["/data/Laser_Shoot2.wav"].onload();DataRequest.prototype.requests["/data/level_00.txt"].onload();DataRequest.prototype.requests["/data/level_01.txt"].onload();DataRequest.prototype.requests["/data/level_02.txt"].onload();DataRequest.prototype.requests["/data/level_03.txt"].onload();DataRequest.prototype.requests["/data/level_04.txt"].onload();DataRequest.prototype.requests["/data/level_05.txt"].onload();DataRequest.prototype.requests["/data/level_06.txt"].onload();DataRequest.prototype.requests["/data/logo.png"].onload();DataRequest.prototype.requests["/data/player_broken.png"].onload();DataRequest.prototype.requests["/data/player_down.png"].onload();DataRequest.prototype.requests["/data/player_left.png"].onload();DataRequest.prototype.requests["/data/player_right.png"].onload();DataRequest.prototype.requests["/data/player_up.png"].onload();DataRequest.prototype.requests["/data/Powerup10.wav"].onload();DataRequest.prototype.requests["/data/Powerup30.wav"].onload();DataRequest.prototype.requests["/data/rock.png"].onload();DataRequest.prototype.requests["/data/save_point.png"].onload();DataRequest.prototype.requests["/data/save_point_active.png"].onload();DataRequest.prototype.requests["/data/textshadow.png"].onload();Module["removeRunDependency"]("datafile_build-emscripten-release/game.data")}Module["addRunDependency"]("datafile_build-emscripten-release/game.data");if(!Module.preloadResults)Module.preloadResults={};Module.preloadResults[PACKAGE_NAME]={fromCache:false};if(fetched){processPackageData(fetched);fetched=null}else{fetchedCallback=processPackageData}}if(Module["calledRun"]){runWithFS()}else{if(!Module["preRun"])Module["preRun"]=[];Module["preRun"].push(runWithFS)}}))();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_NODE=typeof process==="object"&&typeof require==="function";var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";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){return Module["read"](filename,true)};Module["load"]=function load(f){globalEval(read(f))};Module["thisProgram"]=process["argv"][1];Module["arguments"]=process["argv"].slice(2);module["exports"]=Module}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){return read(f,"binary")};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}this["Module"]=Module}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_WEB){window["Module"]=Module}else{Module["load"]=importScripts}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]=="undefined"&&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"]=[]}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}),forceAlign:(function(target,quantum){quantum=quantum||4;if(quantum==1)return target;if(isNumber(target)&&isNumber(quantum)){return Math.ceil(target/quantum)*quantum}else if(isNumber(quantum)&&isPowerOfTwo(quantum)){return"((("+target+")+"+(quantum-1)+")&"+ -quantum+")"}return"Math.ceil(("+target+")/"+quantum+")*"+quantum}),isNumberType:(function(type){return type in Runtime.INT_TYPES||type in Runtime.FLOAT_TYPES}),isPointerType:function isPointerType(type){return type[type.length-1]=="*"},isStructType:function isStructType(type){if(isPointerType(type))return false;if(isArrayType(type))return true;if(/<?\{ ?[^}]* ?\}>?/.test(type))return true;return type[0]=="%"},INT_TYPES:{"i1":0,"i8":0,"i16":0,"i32":0,"i64":0},FLOAT_TYPES:{"float":0,"double":0},or64:(function(x,y){var l=x|0|(y|0);var h=(Math.round(x/4294967296)|Math.round(y/4294967296))*4294967296;return l+h}),and64:(function(x,y){var l=(x|0)&(y|0);var h=(Math.round(x/4294967296)&Math.round(y/4294967296))*4294967296;return l+h}),xor64:(function(x,y){var l=(x|0)^(y|0);var h=(Math.round(x/4294967296)^Math.round(y/4294967296))*4294967296;return l+h}),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)}),dedup:function dedup(items,ident){var seen={};if(ident){return items.filter((function(item){if(seen[item[ident]])return false;seen[item[ident]]=true;return true}))}else{return items.filter((function(item){if(seen[item])return false;seen[item]=true;return true}))}},set:function set(){var args=typeof arguments[0]==="object"?arguments[0]:arguments;var ret={};for(var i=0;i<args.length;i++){ret[args[i]]=0}return ret},STACK_ALIGN:8,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)}),calculateStructAlignment:function calculateStructAlignment(type){type.flatSize=0;type.alignSize=0;var diffs=[];var prev=-1;var index=0;type.flatIndexes=type.fields.map((function(field){index++;var size,alignSize;if(Runtime.isNumberType(field)||Runtime.isPointerType(field)){size=Runtime.getNativeTypeSize(field);alignSize=Runtime.getAlignSize(field,size)}else if(Runtime.isStructType(field)){if(field[1]==="0"){size=0;if(Types.types[field]){alignSize=Runtime.getAlignSize(null,Types.types[field].alignSize)}else{alignSize=type.alignSize||QUANTUM_SIZE}}else{size=Types.types[field].flatSize;alignSize=Runtime.getAlignSize(null,Types.types[field].alignSize)}}else if(field[0]=="b"){size=field.substr(1)|0;alignSize=1}else if(field[0]==="<"){size=alignSize=Types.types[field].flatSize}else if(field[0]==="i"){size=alignSize=parseInt(field.substr(1))/8;assert(size%1===0,"cannot handle non-byte-size field "+field)}else{assert(false,"invalid type for calculateStructAlignment")}if(type.packed)alignSize=1;type.alignSize=Math.max(type.alignSize,alignSize);var curr=Runtime.alignMemory(type.flatSize,alignSize);type.flatSize=curr+size;if(prev>=0){diffs.push(curr-prev)}prev=curr;return curr}));if(type.name_&&type.name_[0]==="["){type.flatSize=parseInt(type.name_.substr(1))*type.flatSize/2}type.flatSize=Runtime.alignMemory(type.flatSize,type.alignSize);if(diffs.length==0){type.flatFactor=type.flatSize}else if(Runtime.dedup(diffs).length==1){type.flatFactor=diffs[0]}type.needsFlattening=type.flatFactor!=1;return type.flatIndexes},generateStructInfo:(function(struct,typeName,offset){var type,alignment;if(typeName){offset=offset||0;type=(typeof Types==="undefined"?Runtime.typeInfo:Types.types)[typeName];if(!type)return null;if(type.fields.length!=struct.length){printErr("Number of named fields must match the type for "+typeName+": possibly duplicate struct names. Cannot return structInfo");return null}alignment=type.flatIndexes}else{var type={fields:struct.map((function(item){return item[0]}))};alignment=Runtime.calculateStructAlignment(type)}var ret={__size__:type.flatSize};if(typeName){struct.forEach((function(item,i){if(typeof item==="string"){ret[item]=alignment[i]+offset}else{var key;for(var k in item)key=k;ret[key]=Runtime.generateStructInfo(item[key],type.fields[i],alignment[i])}}))}else{struct.forEach((function(item,i){ret[item[1]]=alignment[i]}))}return ret}),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}),getAsmConst:(function(code,numArgs){if(!Runtime.asmConstCache)Runtime.asmConstCache={};var func=Runtime.asmConstCache[code];if(func)return func;var args=[];for(var i=0;i<numArgs;i++){args.push(String.fromCharCode(36)+i)}var source=Pointer_stringify(code);if(source[0]==='"'){if(source.indexOf('"',1)===source.length-1){source=source.substr(1,source.length-2)}else{abort("invalid EM_ASM input |"+source+"|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)")}}try{var evalled=eval("(function("+args.join(",")+"){ "+source+" })")}catch(e){Module.printErr("error in executing inline EM_ASM code: "+e+" on: \n\n"+source+"\n\nwith args |"+args+"| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)");throw e}return Runtime.asmConstCache[code]=evalled}),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[func]){Runtime.funcWrappers[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,arguments)}}return Runtime.funcWrappers[func]}),UTF8Processor:(function(){var buffer=[];var needed=0;this.processCChar=(function(code){code=code&255;if(buffer.length==0){if((code&128)==0){return String.fromCharCode(code)}buffer.push(code);if((code&224)==192){needed=1}else if((code&240)==224){needed=2}else{needed=3}return""}if(needed){buffer.push(code);needed--;if(needed>0)return""}var c1=buffer[0];var c2=buffer[1];var c3=buffer[2];var c4=buffer[3];var ret;if(buffer.length==2){ret=String.fromCharCode((c1&31)<<6|c2&63)}else if(buffer.length==3){ret=String.fromCharCode((c1&15)<<12|(c2&63)<<6|c3&63)}else{var codePoint=(c1&7)<<18|(c2&63)<<12|(c3&63)<<6|c4&63;ret=String.fromCharCode(Math.floor((codePoint-65536)/1024)+55296,(codePoint-65536)%1024+56320)}buffer.length=0;return ret});this.processJSString=function processJSString(string){string=unescape(encodeURIComponent(string));var ret=[];for(var i=0;i<string.length;i++){ret.push(string.charCodeAt(i))}return ret}}),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+7&-8;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+7&-8;return ret}),dynamicAlloc:(function(size){var ret=DYNAMICTOP;DYNAMICTOP=DYNAMICTOP+size|0;DYNAMICTOP=DYNAMICTOP+7&-8;if(DYNAMICTOP>=TOTAL_MEMORY)enlargeMemory();return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:8))*(quantum?quantum:8);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 stack=0;var JSfuncs={"stackSave":(function(){stack=Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore(stack)}),"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+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args){var func=getCFunc(ident);var cArgs=[];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)JSfuncs["stackRestore"]();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){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+=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+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["cwrap"]=cwrap;Module["ccall"]=ccall;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 Pointer_stringify(ptr,length){var hasUtf=false;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];if(t>=128)hasUtf=true;else if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(!hasUtf){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}var utf8=new Runtime.UTF8Processor;for(i=0;i<length;i++){t=HEAPU8[ptr+i>>0];ret+=utf8.processCChar(t)}return ret}Module["Pointer_stringify"]=Pointer_stringify;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){for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr+i*2>>1]=codeUnit}HEAP16[outPtr+str.length*2>>1]=0}Module["stringToUTF16"]=stringToUTF16;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){var iChar=0;for(var iCodeUnit=0;iCodeUnit<str.length;++iCodeUnit){var codeUnit=str.charCodeAt(iCodeUnit);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++iCodeUnit);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr+iChar*4>>2]=codeUnit;++iChar}HEAP32[outPtr+iChar*4>>2]=0}Module["stringToUTF32"]=stringToUTF32;function demangle(func){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()}}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()"}return parse()}catch(e){return func}}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function stackTrace(){var stack=(new Error).stack;return stack?demangleAll(stack):"(no stack trace available)"}var PAGE_SIZE=4096;function alignMemoryPage(x){return x+4095&-4096}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 enlargeMemory(){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 ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var FAST_MEMORY=Module["FAST_MEMORY"]||2097152;var totalMemory=4096;while(totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK){if(totalMemory<16*1024*1024){totalMemory*=2}else{totalMemory+=16*1024*1024}}if(totalMemory!==TOTAL_MEMORY){Module.printErr("increasing TOTAL_MEMORY to "+totalMemory+" to be more reasonable");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=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["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;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__);runtimeInitialized=false}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"]=Module.addOnPreRun=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=Module.addOnInit=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=Module.addOnPreMain=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=Module.addOnExit=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=Module.addOnPostRun=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var ret=(new Runtime.UTF8Processor).processJSString(stringy);if(length){ret.length=length}if(!dontAddNull){ret.push(0)}return ret}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+i>>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;i++){HEAP8[buffer+i>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer+str.length>>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"];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 runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;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;STATIC_BASE=8;STATICTOP=STATIC_BASE+Runtime.alignMemory(13779);__ATINIT__.push();allocate([0,0,0,0,150,48,7,119,44,97,14,238,186,81,9,153,25,196,109,7,143,244,106,112,53,165,99,233,163,149,100,158,50,136,219,14,164,184,220,121,30,233,213,224,136,217,210,151,43,76,182,9,189,124,177,126,7,45,184,231,145,29,191,144,100,16,183,29,242,32,176,106,72,113,185,243,222,65,190,132,125,212,218,26,235,228,221,109,81,181,212,244,199,133,211,131,86,152,108,19,192,168,107,100,122,249,98,253,236,201,101,138,79,92,1,20,217,108,6,99,99,61,15,250,245,13,8,141,200,32,110,59,94,16,105,76,228,65,96,213,114,113,103,162,209,228,3,60,71,212,4,75,253,133,13,210,107,181,10,165,250,168,181,53,108,152,178,66,214,201,187,219,64,249,188,172,227,108,216,50,117,92,223,69,207,13,214,220,89,61,209,171,172,48,217,38,58,0,222,81,128,81,215,200,22,97,208,191,181,244,180,33,35,196,179,86,153,149,186,207,15,165,189,184,158,184,2,40,8,136,5,95,178,217,12,198,36,233,11,177,135,124,111,47,17,76,104,88,171,29,97,193,61,45,102,182,144,65,220,118,6,113,219,1,188,32,210,152,42,16,213,239,137,133,177,113,31,181,182,6,165,228,191,159,51,212,184,232,162,201,7,120,52,249,0,15,142,168,9,150,24,152,14,225,187,13,106,127,45,61,109,8,151,108,100,145,1,92,99,230,244,81,107,107,98,97,108,28,216,48,101,133,78,0,98,242,237,149,6,108,123,165,1,27,193,244,8,130,87,196,15,245,198,217,176,101,80,233,183,18,234,184,190,139,124,136,185,252,223,29,221,98,73,45,218,21,243,124,211,140,101,76,212,251,88,97,178,77,206,81,181,58,116,0,188,163,226,48,187,212,65,165,223,74,215,149,216,61,109,196,209,164,251,244,214,211,106,233,105,67,252,217,110,52,70,136,103,173,208,184,96,218,115,45,4,68,229,29,3,51,95,76,10,170,201,124,13,221,60,113,5,80,170,65,2,39,16,16,11,190,134,32,12,201,37,181,104,87,179,133,111,32,9,212,102,185,159,228,97,206,14,249,222,94,152,201,217,41,34,152,208,176,180,168,215,199,23,61,179,89,129,13,180,46,59,92,189,183,173,108,186,192,32,131,184,237,182,179,191,154,12,226,182,3,154,210,177,116,57,71,213,234,175,119,210,157,21,38,219,4,131,22,220,115,18,11,99,227,132,59,100,148,62,106,109,13,168,90,106,122,11,207,14,228,157,255,9,147,39,174,0,10,177,158,7,125,68,147,15,240,210,163,8,135,104,242,1,30,254,194,6,105,93,87,98,247,203,103,101,128,113,54,108,25,231,6,107,110,118,27,212,254,224,43,211,137,90,122,218,16,204,74,221,103,111,223,185,249,249,239,190,142,67,190,183,23,213,142,176,96,232,163,214,214,126,147,209,161,196,194,216,56,82,242,223,79,241,103,187,209,103,87,188,166,221,6,181,63,75,54,178,72,218,43,13,216,76,27,10,175,246,74,3,54,96,122,4,65,195,239,96,223,85,223,103,168,239,142,110,49,121,190,105,70,140,179,97,203,26,131,102,188,160,210,111,37,54,226,104,82,149,119,12,204,3,71,11,187,185,22,2,34,47,38,5,85,190,59,186,197,40,11,189,178,146,90,180,43,4,106,179,92,167,255,215,194,49,207,208,181,139,158,217,44,29,174,222,91,176,194,100,155,38,242,99,236,156,163,106,117,10,147,109,2,169,6,9,156,63,54,14,235,133,103,7,114,19,87,0,5,130,74,191,149,20,122,184,226,174,43,177,123,56,27,182,12,155,142,210,146,13,190,213,229,183,239,220,124,33,223,219,11,212,210,211,134,66,226,212,241,248,179,221,104,110,131,218,31,205,22,190,129,91,38,185,246,225,119,176,111,119,71,183,24,230,90,8,136,112,106,15,255,202,59,6,102,92,11,1,17,255,158,101,143,105,174,98,248,211,255,107,97,69,207,108,22,120,226,10,160,238,210,13,215,84,131,4,78,194,179,3,57,97,38,103,167,247,22,96,208,77,71,105,73,219,119,110,62,74,106,209,174,220,90,214,217,102,11,223,64,240,59,216,55,83,174,188,169,197,158,187,222,127,207,178,71,233,255,181,48,28,242,189,189,138,194,186,202,48,147,179,83,166,163,180,36,5,54,208,186,147,6,215,205,41,87,222,84,191,103,217,35,46,122,102,179,184,74,97,196,2,27,104,93,148,43,111,42,55,190,11,180,161,142,12,195,27,223,5,90,141,239,2,45,110,111,32,101,114,114,111,114,44,32,101,118,101,114,121,116,104,105,110,103,32,119,101,110,116,32,111,107,0,0,0,0,110,111,116,104,105,110,103,32,100,111,110,101,32,121,101,116,0,0,0,0,0,0,0,0,101,110,100,32,111,102,32,105,110,112,117,116,32,109,101,109,111,114,121,32,114,101,97,99,104,101,100,32,119,105,116,104,111,117,116,32,104,117,102,102,109,97,110,32,101,110,100,32,99,111,100,101,0,0,0,0,101,114,114,111,114,32,105,110,32,99,111,100,101,32,116,114,101,101,32,109,97,100,101,32,105,116,32,106,117,109,112,32,111,117,116,115,105,100,101,32,111,102,32,104,117,102,102,109,97,110,32,116,114,101,101,0,112,114,111,98,108,101,109,32,119,104,105,108,101,32,112,114,111,99,101,115,115,105,110,103,32,100,121,110,97,109,105,99,32,100,101,102,108,97,116,101,32,98,108,111,99,107,0,0,117,110,101,120,105,115,116,105,110,103,32,99,111,100,101,32,119,104,105,108,101,32,112,114,111,99,101,115,115,105,110,103,32,100,121,110,97,109,105,99,32,100,101,102,108,97,116,101,32,98,108,111,99,107,0,0,101,110,100,32,111,102,32,111,117,116,32,98,117,102,102,101,114,32,109,101,109,111,114,121,32,114,101,97,99,104,101,100,32,119,104,105,108,101,32,105,110,102,108,97,116,105,110,103,0,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,100,105,115,116,97,110,99,101,32,99,111,100,101,32,119,104,105,108,101,32,105,110,102,108,97,116,105,110,103,0,0,0,105,110,118,97,108,105,100,32,100,101,102,108,97,116,101,32,98,108,111,99,107,32,66,84,89,80,69,32,101,110,99,111,117,110,116,101,114,101,100,32,119,104,105,108,101,32,100,101,99,111,100,105,110,103,0,0,78,76,69,78,32,105,115,32,110,111,116,32,111,110,101,115,32,99,111,109,112,108,101,109,101,110,116,32,111,102,32,76,69,78,32,105,110,32,97,32,100,101,102,108,97,116,101,32,98,108,111,99,107,0,0,0,101,110,100,32,111,102,32,105,110,32,98,117,102,102,101,114,32,109,101,109,111,114,121,32,114,101,97,99,104,101,100,32,119,104,105,108,101,32,105,110,102,108,97,116,105,110,103,0,105,110,118,97,108,105,100,32,70,67,72,69,67,75,32,105,110,32,122,108,105,98,32,104,101,97,100,101,114,0,0,0,105,110,118,97,108,105,100,32,99,111,109,112,114,101,115,115,105,111,110,32,109,101,116,104,111,100,32,105,110,32,122,108,105,98,32,104,101,97,100,101,114,0,0,0,0,0,0,0,70,68,73,67,84,32,101,110,99,111,117,110,116,101,114,101,100,32,105,110,32,122,108,105,98,32,104,101,97,100,101,114,32,119,104,105,108,101,32,105,116,39,115,32,110,111,116,32,117,115,101,100,32,102,111,114,32,80,78,71,0,0,0,0,80,78,71,32,102,105,108,101,32,105,115,32,115,109,97,108,108,101,114,32,116,104,97,110,32,97,32,80,78,71,32,104,101,97,100,101,114,0,0,0,105,110,99,111,114,114,101,99,116,32,80,78,71,32,115,105,103,110,97,116,117,114,101,44,32,105,116,39,115,32,110,111,32,80,78,71,32,111,114,32,99,111,114,114,117,112,116,101,100,0,0,0,0,0,0,0,102,105,114,115,116,32,99,104,117,110,107,32,105,115,32,110,111,116,32,116,104,101,32,104,101,97,100,101,114,32,99,104,117,110,107,0,0,0,0,0,99,104,117,110,107,32,108,101,110,103,116,104,32,116,111,111,32,108,97,114,103,101,44,32,99,104,117,110,107,32,98,114,111,107,101,110,32,111,102,102,32,97,116,32,101,110,100,32,111,102,32,102,105,108,101,0,105,108,108,101,103,97,108,32,80,78,71,32,99,111,108,111,114,32,116,121,112,101,32,111,114,32,98,112,112,0,0,0,105,108,108,101,103,97,108,32,80,78,71,32,99,111,109,112,114,101,115,115,105,111,110,32,109,101,116,104,111,100,0,0,105,108,108,101,103,97,108,32,80,78,71,32,102,105,108,116,101,114,32,109,101,116,104,111,100,0,0,0,0,0,0,0,105,108,108,101,103,97,108,32,80,78,71,32,105,110,116,101,114,108,97,99,101,32,109,101,116,104,111,100,0,0,0,0,99,104,117,110,107,32,108,101,110,103,116,104,32,111,102,32,97,32,99,104,117,110,107,32,105,115,32,116,111,111,32,108,97,114,103,101,32,111,114,32,116,104,101,32,99,104,117,110,107,32,116,111,111,32,115,109,97,108,108,0,0,0,0,0,105,108,108,101,103,97,108,32,80,78,71,32,102,105,108,116,101,114,32,116,121,112,101,32,101,110,99,111,117,110,116,101,114,101,100,0,0,0,0,0,105,108,108,101,103,97,108,32,98,105,116,32,100,101,112,116,104,32,102,111,114,32,116,104,105,115,32,99,111,108,111,114,32,116,121,112,101,32,103,105,118,101,110,0,0,0,0,0,116,104,101,32,112,97,108,101,116,116,101,32,105,115,32,116,111,111,32,98,105,103,0,0,109,111,114,101,32,112,97,108,101,116,116,101,32,97,108,112,104,97,32,118,97,108,117,101,115,32,103,105,118,101,110,32,105,110,32,116,82,78,83,32,99,104,117,110,107,32,116,104,97,110,32,116,104,101,114,101,32,97,114,101,32,99,111,108,111,114,115,32,105,110,32,116,104,101,32,112,97,108,101,116,116,101,0,0,0,0,0,0,116,82,78,83,32,99,104,117,110,107,32,104,97,115,32,119,114,111,110,103,32,115,105,122,101,32,102,111,114,32,103,114,101,121,115,99,97,108,101,32,105,109,97,103,101,0,0,0,116,82,78,83,32,99,104,117,110,107,32,104,97,115,32,119,114,111,110,103,32,115,105,122,101,32,102,111,114,32,82,71,66,32,105,109,97,103,101,0,116,82,78,83,32,99,104,117,110,107,32,97,112,112,101,97,114,101,100,32,119,104,105,108,101,32,105,116,32,119,97,115,32,110,111,116,32,97,108,108,111,119,101,100,32,102,111,114,32,116,104,105,115,32,99,111,108,111,114,32,116,121,112,101,0,0,0,0,0,0,0,0,98,75,71,68,32,99,104,117,110,107,32,104,97,115,32,119,114,111,110,103,32,115,105,122,101,32,102,111,114,32,112,97,108,101,116,116,101,32,105,109,97,103,101,0,0,0,0,0,98,75,71,68,32,99,104,117,110,107,32,104,97,115,32,119,114,111,110,103,32,115,105,122,101,32,102,111,114,32,103,114,101,121,115,99,97,108,101,32,105,109,97,103,101,0,0,0,98,75,71,68,32,99,104,117,110,107,32,104,97,115,32,119,114,111,110,103,32,115,105,122,101,32,102,111,114,32,82,71,66,32,105,109,97,103,101,0,97,32,118,97,108,117,101,32,105,110,32,105,110,100,101,120,101,100,32,105,109,97,103,101,32,105,115,32,108,97,114,103,101,114,32,116,104,97,110,32,116,104,101,32,112,97,108,101,116,116,101,32,115,105,122,101,32,40,98,105,116,100,101,112,116,104,32,61,32,56,41,0,97,32,118,97,108,117,101,32,105,110,32,105,110,100,101,120,101,100,32,105,109,97,103,101,32,105,115,32,108,97,114,103,101,114,32,116,104,97,110,32,116,104,101,32,112,97,108,101,116,116,101,32,115,105,122,101,32,40,98,105,116,100,101,112,116,104,32,60,32,56,41,0,101,109,112,116,121,32,105,110,112,117,116,32,111,114,32,102,105,108,101,32,100,111,101,115,110,39,116,32,101,120,105,115,116,0,0,0,0,0,0,0,106,117,109,112,101,100,32,112,97,115,116,32,109,101,109,111,114,121,32,119,104,105,108,101,32,103,101,110,101,114,97,116,105,110,103,32,100,121,110,97,109,105,99,32,104,117,102,102,109,97,110,32,116,114,101,101,0,0,0,0,0,0,0,0,106,117,109,112,101,100,32,112,97,115,116,32,109,101,109,111,114,121,32,119,104,105,108,101,32,105,110,102,108,97,116,105,110,103,32,104,117,102,102,109,97,110,32,98,108,111,99,107,0,0,0,0,0,0,0,0,106,117,109,112,101,100,32,112,97,115,116,32,109,101,109,111,114,121,32,119,104,105,108,101,32,105,110,102,108,97,116,105,110,103,0,0,0,0,0,0,115,105,122,101,32,111,102,32,122,108,105,98,32,100,97,116,97,32,116,111,111,32,115,109,97,108,108,0,0,0,0,0,114,101,112,101,97,116,32,115,121,109,98,111,108,32,105,110,32,116,114,101,101,32,119,104,105,108,101,32,116,104,101,114,101,32,119,97,115,32,110,111,32,118,97,108,117,101,32,115,121,109,98,111,108,32,121,101,116,0,0,0,0,0,0,0,106,117,109,112,101,100,32,112,97,115,116,32,116,114,101,101,32,119,104,105,108,101,32,103,101,110,101,114,97,116,105,110,103,32,104,117,102,102,109,97,110,32,116,114,101,101,0,0,103,105,118,101,110,32,111,117,116,112,117,116,32,105,109,97,103,101,32,99,111,108,111,114,116,121,112,101,32,111,114,32,98,105,116,100,101,112,116,104,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,99,111,108,111,114,32,99,111,110,118,101,114,115,105,111,110,0,0,0,0,0,105,110,118,97,108,105,100,32,67,82,67,32,101,110,99,111,117,110,116,101,114,101,100,32,40,99,104,101,99,107,105,110,103,32,67,82,67,32,99,97,110,32,98,101,32,100,105,115,97,98,108,101,100,41,0,0,105,110,118,97,108,105,100,32,65,68,76,69,82,51,50,32,101,110,99,111,117,110,116,101,114,101,100,32,40,99,104,101,99,107,105,110,103,32,65,68,76,69,82,51,50,32,99,97,110,32,98,101,32,100,105,115,97,98,108,101,100,41,0,0,114,101,113,117,101,115,116,101,100,32,99,111,108,111,114,32,99,111,110,118,101,114,115,105,111,110,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,119,105,110,100,111,119,32,115,105,122,101,32,103,105,118,101,110,32,105,110,32,116,104,101,32,115,101,116,116,105,110,103,115,32,111,102,32,116,104,101,32,101,110,99,111,100,101,114,32,40,109,117,115,116,32,98,101,32,48,45,51,50,55,54,56,41,0,0,0,0,0,0,105,110,118,97,108,105,100,32,66,84,89,80,69,32,103,105,118,101,110,32,105,110,32,116,104,101,32,115,101,116,116,105,110,103,115,32,111,102,32,116,104,101,32,101,110,99,111,100,101,114,32,40,111,110,108,121,32,48,44,32,49,32,97,110,100,32,50,32,97,114,101,32,97,108,108,111,119,101,100,41,0,0,0,0,0,0,0,0,99,111,110,118,101,114,115,105,111,110,32,102,114,111,109,32,99,111,108,111,114,32,116,111,32,103,114,101,121,115,99,97,108,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,0,0,0,0,0,0,0,108,101,110,103,116,104,32,111,102,32,97,32,99,104,117,110,107,32,116,111,111,32,108,111,110,103,44,32,109,97,120,32,97,108,108,111,119,101,100,32,102,111,114,32,80,78,71,32,105,115,32,50,49,52,55,52,56,51,54,52,55,32,98,121,116,101,115,32,112,101,114,32,99,104,117,110,107,0,0,0,116,104,101,32,108,101,110,103,116,104,32,111,102,32,116,104,101,32,69,78,68,32,115,121,109,98,111,108,32,50,53,54,32,105,110,32,116,104,101,32,72,117,102,102,109,97,110,32,116,114,101,101,32,105,115,32,48,0,0,0,0,0,0,0,116,104,101,32,108,101,110,103,116,104,32,111,102,32,97,32,116,101,120,116,32,99,104,117,110,107,32,107,101,121,119,111,114,100,32,103,105,118,101,110,32,116,111,32,116,104,101,32,101,110,99,111,100,101,114,32,105,115,32,108,111,110,103,101,114,32,116,104,97,110,32,116,104,101,32,109,97,120,105,109,117,109,32,111,102,32,55,57,32,98,121,116,101,115,0,0,116,104,101,32,108,101,110,103,116,104,32,111,102,32,97,32,116,101,120,116,32,99,104,117,110,107,32,107,101,121,119,111,114,100,32,103,105,118,101,110,32,116,111,32,116,104,101,32,101,110,99,111,100,101,114,32,105,115,32,115,109,97,108,108,101,114,32,116,104,97,110,32,116,104,101,32,109,105,110,105,109,117,109,32,111,102,32,49,32,98,121,116,101,0,0,0,116,114,105,101,100,32,116,111,32,101,110,99,111,100,101,32,97,32,80,76,84,69,32,99,104,117,110,107,32,119,105,116,104,32,97,32,112,97,108,101,116,116,101,32,116,104,97,116,32,104,97,115,32,108,101,115,115,32,116,104,97,110,32,49,32,111,114,32,109,111,114,101,32,116,104,97,110,32,50,53,54,32,99,111,108,111,114,115,0,0,0,0,0,0,0,0,117,110,107,110,111,119,110,32,99,104,117,110,107,32,116,121,112,101,32,119,105,116,104,32,39,99,114,105,116,105,99,97,108,39,32,102,108,97,103,32,101,110,99,111,117,110,116,101,114,101,100,32,98,121,32,116,104,101,32,100,101,99,111,100,101,114,0,0,0,0,0,0,117,110,101,120,105,115,116,105,110,103,32,105,110,116,101,114,108,97,99,101,32,109,111,100,101,32,103,105,118,101,110,32,116,111,32,101,110,99,111,100,101,114,32,40,109,117,115,116,32,98,101,32,48,32,111,114,32,49,41,0,0,0,0,0,119,104,105,108,101,32,100,101,99,111,100,105,110,103,44,32,117,110,101,120,105,115,116,105,110,103,32,99,111,109,112,114,101,115,115,105,111,110,32,109,101,116,104,111,100,32,101,110,99,111,117,110,116,101,114,105,110,103,32,105,110,32,122,84,88,116,32,111,114,32,105,84,88,116,32,99,104,117,110,107,32,40,105,116,32,109,117,115,116,32,98,101,32,48,41,0,105,110,118,97,108,105,100,32,116,73,77,69,32,99,104,117,110,107,32,115,105,122,101,0,105,110,118,97,108,105,100,32,112,72,89,115,32,99,104,117,110,107,32,115,105,122,101,0,110,111,32,110,117,108,108,32,116,101,114,109,105,110,97,116,105,111,110,32,99,104,97,114,32,102,111,117,110,100,32,119,104,105,108,101,32,100,101,99,111,100,105,110,103,32,116,101,120,116,32,99,104,117,110,107,0,0,0,0,0,0,0,0,105,84,88,116,32,99,104,117,110,107,32,116,111,111,32,115,104,111,114,116,32,116,111,32,99,111,110,116,97,105,110,32,114,101,113,117,105,114,101,100,32,98,121,116,101,115,0,0,105,110,116,101,103,101,114,32,111,118,101,114,102,108,111,119,32,105,110,32,98,117,102,102,101,114,32,115,105,122,101,0,102,97,105,108,101,100,32,116,111,32,111,112,101,110,32,102,105,108,101,32,102,111,114,32,114,101,97,100,105,110,103,0,102,97,105,108,101,100,32,116,111,32,111,112,101,110,32,102,105,108,101,32,102,111,114,32,119,114,105,116,105,110,103,0,116,114,105,101,100,32,99,114,101,97,116,105,110,103,32,97,32,116,114,101,101,32,111,102,32,48,32,115,121,109,98,111,108,115,0,0,0,0,0,0,108,97,122,121,32,109,97,116,99,104,105,110,103,32,97,116,32,112,111,115,32,48,32,105,115,32,105,109,112,111,115,115,105,98,108,101,0,0,0,0,99,111,108,111,114,32,99,111,110,118,101,114,115,105,111,110,32,116,111,32,112,97,108,101,116,116,101,32,114,101,113,117,101,115,116,101,100,32,119,104,105,108,101,32,97,32,99,111,108,111,114,32,105,115,110,39,116,32,105,110,32,112,97,108,101,116,116,101,0,0,0,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,101,100,0,0,0,0,0,0,0,0,103,105,118,101,110,32,105,109,97,103,101,32,116,111,111,32,115,109,97,108,108,32,116,111,32,99,111,110,116,97,105,110,32,97,108,108,32,112,105,120,101,108,115,32,116,111,32,98,101,32,101,110,99,111,100,101,100,0,0,0,0,0,0,0,105,110,116,101,114,110,97,108,32,99,111,108,111,114,32,99,111,110,118,101,114,115,105,111,110,32,98,117,103,0,0,0,105,109,112,111,115,115,105,98,108,101,32,111,102,102,115,101,116,32,105,110,32,108,122,55,55,32,101,110,99,111,100,105,110,103,32,40,105,110,116,101,114,110,97,108,32,98,117,103,41,0,0,0,0,0,0,0,109,117,115,116,32,112,114,111,118,105,100,101,32,99,117,115,116,111,109,32,122,108,105,98,32,102,117,110,99,116,105,111,110,32,112,111,105,110,116,101,114,32,105,102,32,76,79,68,69,80,78,71,95,67,79,77,80,73,76,69,95,90,76,73,66,32,105,115,32,110,111,116,32,100,101,102,105,110,101,100,0,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,102,105,108,116,101,114,32,115,116,114,97,116,101,103,121,32,103,105,118,101,110,32,102,111,114,32,76,111,100,101,80,78,71,69,110,99,111,100,101,114,83,101,116,116,105,110,103,115,46,102,105,108,116,101,114,95,115,116,114,97,116,101,103,121,0,0,0,0,0,0,0,0,116,101,120,116,32,99,104,117,110,107,32,107,101,121,119,111,114,100,32,116,111,111,32,115,104,111,114,116,32,111,114,32,108,111,110,103,58,32,109,117,115,116,32,104,97,118,101,32,115,105,122,101,32,49,45,55,57,0,0,0,0,0,0,0,119,105,110,100,111,119,115,105,122,101,32,109,117,115,116,32,98,101,32,97,32,112,111,119,101,114,32,111,102,32,116,119,111,0,0,0,0,0,0,0,117,110,107,110,111,119,110,32,101,114,114,111,114,32,99,111,100,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,86,101,110,100,111,114,58,32,37,115,10,0,0,0,0,32,82,101,110,100,101,114,101,114,58,32,37,115,10,0,0,32,86,101,114,115,105,111,110,58,32,37,115,10,0,0,0,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,97,80,111,115,105,116,105,111,110,59,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,97,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,97,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,118,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,118,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,115,80,114,111,106,101,99,116,105,111,110,77,97,116,114,105,120,59,32,10,118,111,105,100,32,109,97,105,110,40,41,32,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,97,80,111,115,105,116,105,111,110,32,42,32,32,32,10,32,32,32,32,32,32,32,32,32,32,32,32,115,80,114,111,106,101,99,116,105,111,110,77,97,116,114,105,120,59,32,32,10,32,32,32,118,84,101,120,67,111,111,114,100,32,61,32,97,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,10,32,32,32,118,67,111,108,111,114,32,61,32,97,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,0,0,0,0,0,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,118,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,118,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,115,84,101,120,116,117,114,101,59,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,115,84,101,120,116,117,114,101,44,32,118,84,101,120,67,111,111,114,100,41,42,118,67,111,108,111,114,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,97,80,111,115,105,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,84,101,120,67,111,111,114,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,67,111,108,111,114,0,0,0,0,0,0,0,0,0,0,115,84,101,120,116,117,114,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,80,114,111,106,101,99,116,105,111,110,77,97,116,114,105,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,112,110,103,0,0,0,0,46,80,78,71,0,0,0,0,68,114,97,119,95,76,111,97,100,73,109,97,103,101,58,32,80,78,71,32,100,101,99,111,100,101,114,32,101,114,114,111,114,32,37,117,58,32,37,115,10,0,0,0,0,0,0,0,68,114,97,119,95,76,111,97,100,73,109,97,103,101,58,32,73,109,97,103,101,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,58,32,37,115,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,254,254,0,0,0,0,0,0,0,0,0,0,0,16,56,124,254,0,0,0,0,254,124,56,16,0,0,32,48,56,60,56,48,32,0,4,12,28,60,28,12,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,24,24,24,0,24,0,108,108,0,0,0,0,0,0,108,108,254,108,254,108,108,0,24,62,96,60,6,124,24,0,0,198,204,24,48,102,198,0,56,108,56,118,220,204,118,0,24,24,48,0,0,0,0,0,12,24,48,48,48,24,12,0,48,24,12,12,12,24,48,0,0,108,56,254,56,108,0,0,0,24,24,126,24,24,0,0,0,0,0,0,24,24,48,0,0,0,0,126,0,0,0,0,0,0,0,0,24,24,0,0,6,12,24,48,96,192,128,0,60,102,110,118,102,60,0,0,24,56,120,24,24,24,0,0,60,102,6,28,48,126,0,0,60,102,12,6,102,60,0,0,28,60,108,204,254,12,0,0,126,96,124,6,102,60,0,0,28,48,96,124,102,60,0,0,126,6,6,12,24,24,0,0,60,102,60,102,102,60,0,0,60,102,62,6,12,56,0,0,0,24,24,0,24,24,0,0,0,24,24,0,24,24,48,0,0,6,24,96,24,6,0,0,0,0,126,0,126,0,0,0,0,96,24,6,24,96,0,0,60,102,6,12,24,0,24,0,60,102,90,90,94,96,60,0,60,102,102,126,102,102,0,0,124,102,124,102,102,124,0,0,60,96,96,96,96,60,0,0,120,108,102,102,108,120,0,0,126,96,120,96,96,126,0,0,126,96,120,96,96,96,0,0,60,102,96,110,102,62,0,0,102,102,126,102,102,102,0,0,60,24,24,24,24,60,0,0,6,6,6,6,102,60,0,0,198,204,216,248,204,198,0,0,96,96,96,96,96,124,0,0,198,238,254,214,198,198,0,0,198,230,246,222,206,198,0,0,60,102,102,102,102,60,0,0,252,198,198,252,192,192,0,0,120,204,204,204,220,126,0,0,124,102,102,124,108,102,0,0,124,198,112,28,198,124,0,0,126,24,24,24,24,24,0,0,102,102,102,102,102,60,0,0,102,102,102,102,60,24,0,0,198,198,214,254,238,198,0,0,198,108,56,56,108,198,0,0,198,108,56,48,48,48,0,0,254,12,24,48,96,254,0,0,60,48,48,48,48,48,60,0,192,96,48,24,12,6,2,0,60,12,12,12,12,12,60,0,24,60,102,0,0,0,0,0,0,0,0,0,0,0,254,0,24,24,12,0,0,0,0,0,0,60,6,62,102,62,0,0,96,96,124,102,102,124,0,0,0,60,96,96,96,60,0,0,6,6,62,102,102,62,0,0,0,60,102,126,96,60,0,0,28,48,124,48,48,48,0,0,0,62,102,102,62,6,60,0,96,96,124,102,102,102,0,0,48,0,48,48,48,24,0,0,12,0,12,12,12,12,120,0,96,102,108,120,108,102,0,0,24,24,24,24,24,12,0,0,0,236,254,214,198,198,0,0,0,124,102,102,102,102,0,0,0,60,102,102,102,60,0,0,0,124,102,102,124,96,96,0,0,62,102,102,62,6,6,0,0,124,102,96,96,96,0,0,0,60,96,60,6,124,0,0,48,48,124,48,48,28,0,0,0,102,102,102,102,62,0,0,0,102,102,102,60,24,0,0,0,198,198,214,254,108,0,0,0,204,120,48,120,204,0,0,0,102,102,102,60,24,48,0,0,126,12,24,48,126,0,0,12,24,24,48,24,24,12,0,24,24,24,24,24,24,24,0,48,24,24,12,24,24,48,0,118,220,0,0,0,0,0,0,0,16,56,108,198,198,254],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,5,0,0,0,11,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,13,0,0,0,2,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,11,0,0,0,11,0,0,0,12,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,27,0,0,0,31,0,0,0,35,0,0,0,43,0,0,0,51,0,0,0,59,0,0,0,67,0,0,0,83,0,0,0,99,0,0,0,115,0,0,0,131,0,0,0,163,0,0,0,195,0,0,0,227,0,0,0,2,1,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,13,0,0,0,17,0,0,0,25,0,0,0,33,0,0,0,49,0,0,0,65,0,0,0,97,0,0,0,129,0,0,0,193,0,0,0,1,1,0,0,129,1,0,0,1,2,0,0,1,3,0,0,1,4,0,0,1,6,0,0,1,8,0,0,1,12,0,0,1,16,0,0,1,24,0,0,1,32,0,0,1,48,0,0,1,64,0,0,1,96,0,0,10,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,0,0,0,0,0,0,42,42,42,32,68,114,97,119,32,73,110,102,111,0,0,0,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,0,0,0,0,0,0,0,68,114,97,119,95,73,110,105,116,58,32,70,97,105,108,117,114,101,32,105,110,105,116,105,97,108,105,122,105,110,103,32,118,105,100,101,111,32,109,111,100,101,46,0,0,0,0,0,68,114,97,119,95,73,110,105,116,58,32,70,97,105,108,117,114,101,32,105,110,105,116,105,97,108,105,122,105,110,103,32,83,68,76,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,83,68,76,32,69,114,114,111,114,58,32,37,115,10,0,82,73,70,70,0,0,0,0,87,65,86,69,0,0,0,0,65,117,100,105,111,95,76,111,97,100,83,111,117,110,100,58,32,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,58,32,115,97,109,112,108,101,82,97,116,101,58,37,100,59,32,99,104,97,110,110,101,108,115,58,37,100,59,32,66,80,66,58,37,100,10,0,0,0,0,0,0,100,97,116,97,0,0,0,0,65,117,100,105,111,95,73,110,105,116,58,32,70,97,105,108,117,114,101,32,111,112,101,110,105,110,103,32,97,117,100,105,111,46,32,40,52,52,46,49,75,104,122,47,49,54,98,47,50,99,41,46,0,0,0,0,65,117,100,105,111,95,73,110,105,116,58,32,70,97,105,108,117,114,101,32,111,112,101,110,105,110,103,32,97,117,100,105,111,46,0,0,0,0,0,0,65,117,100,105,111,95,73,110,105,116,58,32,70,97,105,108,117,114,101,32,105,110,105,116,105,97,108,105,122,105,110,103,32,83,68,76,32,65,117,100,105,111,46,0,0,0,0,0,65,117,100,105,111,95,76,111,97,100,83,111,117,110,100,58,32,70,97,105,108,117,114,101,32,111,112,101,110,105,110,103,32,102,105,108,101,46,0,0,65,117,100,105,111,95,76,111,97,100,83,111,117,110,100,58,32,68,65,84,65,32,98,108,111,99,107,32,110,111,116,32,102,111,117,110,100,0,0,0,65,117,100,105,111,95,76,111,97,100,83,111,117,110,100,58,32,78,111,116,32,80,67,77,32,102,111,114,109,97,116,46,0,0,0,0,0,0,0,0,65,117,100,105,111,95,76,111,97,100,83,111,117,110,100,58,32,70,105,108,101,32,116,111,111,32,115,104,111,114,116,46,0,0,0,0,0,0,0,0,65,117,100,105,111,95,76,111,97,100,83,111,117,110,100,58,32,70,105,108,101,32,105,115,32,110,111,116,32,87,65,86,69,46,0,0,0,0,0,0,65,117,100,105,111,95,76,111,97,100,83,111,117,110,100,58,32,70,105,108,101,32,105,115,32,110,111,116,32,82,73,70,70,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,95,112,114,111,99,46,46,46,46,46,58,37,54,108,108,100,10,0,0,0,0,0,0,116,95,99,111,108,46,46,46,46,46,46,58,37,54,108,108,100,10,0,0,0,0,0,0,116,95,111,118,101,114,46,46,46,46,46,58,37,54,108,108,100,10,0,0,0,0,0,0,116,95,112,111,115,116,112,114,111,99,46,58,37,54,108,108,100,10,0,0,0,0,0,0,116,95,100,114,97,119,46,46,46,46,46,58,37,54,108,108,100,10,0,0,0,0,0,0,80,114,111,102,105,108,105,110,103,58,58,58,58,58,58,58,58,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,98,97,114,114,101,108,46,112,110,103,0,0,0,0,0,0,0,0,0,100,97,116,97,47,98,97,114,114,101,108,50,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,102,108,111,111,114,46,112,110,103,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,102,108,111,111,114,95,108,101,102,116,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,102,108,111,111,114,95,114,105,103,104,116,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,102,108,111,111,114,95,99,101,110,116,101,114,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,99,111,108,117,109,110,46,112,110,103,0,0,0,0,0,0,0,0,0,100,97,116,97,47,99,111,108,117,109,110,95,102,97,100,101,100,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,114,111,99,107,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,108,97,109,112,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,104,111,108,101,95,115,112,105,107,101,100,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,104,111,108,101,95,108,97,118,97,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,112,108,97,121,101,114,95,117,112,46,112,110,103,0,0,0,0,0,0,100,97,116,97,47,112,108,97,121,101,114,95,100,111,119,110,46,112,110,103,0,0,0,0,100,97,116,97,47,112,108,97,121,101,114,95,108,101,102,116,46,112,110,103,0,0,0,0,100,97,116,97,47,112,108,97,121,101,114,95,114,105,103,104,116,46,112,110,103,0,0,0,100,97,116,97,47,115,97,118,101,95,112,111,105,110,116,46,112,110,103,0,0,0,0,0,100,97,116,97,47,115,97,118,101,95,112,111,105,110,116,95,97,99,116,105,118,101,46,112,110,103,0,0,0,0,0,0,100,97,116,97,47,101,120,105,116,95,112,111,105,110,116,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,101,110,100,95,112,111,105,110,116,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,97,114,114,111,119,115,104,111,111,116,101,114,95,117,112,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,97,114,114,111,119,115,104,111,111,116,101,114,95,100,111,119,110,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,97,114,114,111,119,115,104,111,111,116,101,114,95,108,101,102,116,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,97,114,114,111,119,115,104,111,111,116,101,114,95,114,105,103,104,116,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,97,114,114,111,119,95,117,112,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,97,114,114,111,119,95,100,111,119,110,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,97,114,114,111,119,95,108,101,102,116,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,97,114,114,111,119,95,114,105,103,104,116,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,102,105,114,101,46,112,110,103,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,112,108,97,121,101,114,95,98,114,111,107,101,110,46,112,110,103,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,72,105,116,95,72,117,114,116,49,48,46,119,97,118,0,0,0,0,0,100,97,116,97,47,80,111,119,101,114,117,112,49,48,46,119,97,118,0,0,0,0,0,0,100,97,116,97,47,80,111,119,101,114,117,112,51,48,46,119,97,118,0,0,0,0,0,0,100,97,116,97,47,76,97,115,101,114,95,83,104,111,111,116,50,46,119,97,118,0,0,0,100,97,116,97,47,69,120,112,108,111,115,105,111,110,50,46,119,97,118,0,0,0,0,0,100,97,116,97,47,72,105,116,95,72,117,114,116,49,54,46,119,97,118,0,0,0,0,0,100,97,116,97,47,69,120,112,108,111,115,105,111,110,49,54,46,119,97,118,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,97,116,97,47,108,101,118,101,108,95,37,48,50,100,46,116,120,116,0,0,0,0,0,114,0,0,0,0,0,0,0,37,100,32,37,100,0,0,0,115,97,118,101,115,47,103,97,109,101,46,115,97,118,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,114,101,115,115,32,91,83,112,97,99,101,93,32,116,111,32,83,116,97,114,116,46,0,80,114,101,115,115,32,91,83,112,97,99,101,93,32,116,111,32,67,111,110,116,105,110,117,101,46,0,0,0,0,0,0,80,114,101,115,115,32,91,88,93,32,116,111,32,83,116,97,114,116,46,0,0,0,0,0,66,121,32,75,97,98,108,101,97,100,111,32,40,86,65,82,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,110,103,114,97,116,117,108,97,116,105,111,110,115,32,121,111,117,32,115,97,118,101,100,32,116,104,101,32,107,105,116,116,105,101,33,0,0,0,84,104,97,110,107,115,32,102,111,114,32,112,108,97,121,105,110,103,33,0,0,0,0,0,80,114,101,115,115,32,91,83,112,97,99,101,93,32,116,111,32,84,105,116,108,101,46,0,76,101,118,101,108,58,32,37,100,46,37,100,0,0,0,0,76,101,118,101,108,32,67,111,109,112,108,101,116,101,0,0,76,101,118,101,108,32,67,111,109,112,108,101,116,101,46,0,89,111,117,32,97,114,101,32,100,101,97,100,46,0,0,0,115,97,118,101,115,0,0,0,114,98,0,0,0,0,0,0,119,98,0,0,0,0,0,0,70,83,46,115,121,110,99,102,115,40,102,117,110,99,116,105,111,110,32,40,101,114,114,41,32,123,32,125,41,59,0,0,100,101,98,117,103,0,0,0,71,97,109,101,0,0,0,0,100,97,116,97,47,108,111,103,111,46,112,110,103,0,0,0,100,97,116,97,47,101,110,100,46,112,110,103,0,0,0,0,68,101,98,117,103,32,77,111,100,101,32,65,99,116,105,118,97,116,101,100,33,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,2,4,7,3,6,5,0,0,0,0,0,0,0,0,105,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,0,0,0,0,0,0,40,110,117,108,108,41,0,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,0,0,0,0,0,105,110,102,0,0,0,0,0,73,78,70,0,0,0,0,0,110,97,110,0,0,0,0,0,78,65,78,0,0,0,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+8344);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]}Module["_rand_r"]=_rand_r;var ___rand_seed=allocate([41108891,0,0,0],"i32",ALLOC_STATIC);Module["_rand"]=_rand;Module["_i64Subtract"]=_i64Subtract;function _fabsf(){return Math_abs.apply(null,arguments)}Module["_i64Add"]=_i64Add;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};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 ___errno_state=0;function ___setErrNo(value){HEAP32[___errno_state>>2]=value;return value}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){continue}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){if(stream.tty.output.length){stream.tty.ops.put_char(stream.tty,10)}}),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){result=process["stdin"]["read"]();if(!result){if(process["stdin"]["_readableState"]&&process["stdin"]["_readableState"]["ended"]){return null}return undefined}}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"](tty.output.join(""));tty.output=[]}else{tty.output.push(TTY.utf8.processCChar(val))}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](tty.output.join(""));tty.output=[]}else{tty.output.push(TTY.utf8.processCChar(val))}})}};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}},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&&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));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)}stream.ungotten=[];stream.position=position;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}})}};var IDBFS={dbs:{},indexedDB:(function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB}),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)}fileStore.createIndex("timestamp","timestamp",{unique:false})});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(){callback(this.error)})}),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(){callback(this.error)});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.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(){callback(this.error)})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(){callback(this.error)})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(){callback(this.error)})}),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(){done(this.error)});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){if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{return flags}}),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{return fs.readlinkSync(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){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)}stream.position=position;return position})}};var _stdin=allocate(1,"i32*",ALLOC_STATIC);var _stdout=allocate(1,"i32*",ALLOC_STATIC);var _stderr=allocate(1,"i32*",ALLOC_STATIC);function _fflush(stream){}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:{},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||{};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)}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 accmode=flag&2097155;var perms=["r","w","rw"][accmode];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){return FS.nodePermissions(dir,"x")}),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}),getStreamFromPtr:(function(ptr){return FS.streams[ptr-1]}),getPtrForStream:(function(stream){return stream?stream.fd+1:0}),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);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){var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;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.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.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return link.node_ops.readlink(link)}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;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){}}if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0)}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}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){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)}return stream.stream_ops.llseek(stream,offset,whence)}),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)}),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="";var utf8=new Runtime.UTF8Processor;for(var i=0;i<length;i++){ret+=utf8.processCChar(buf[i])}}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 utf8=new Runtime.UTF8Processor;var buf=new Uint8Array(utf8.processJSString(data));FS.write(stream,buf,0,buf.length,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")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(){return 0})});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.floor(Math.random()*256)})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),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");HEAP32[_stdin>>2]=FS.getPtrForStream(stdin);assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");HEAP32[_stdout>>2]=FS.getPtrForStream(stdout);assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");HEAP32[_stderr>>2]=FS.getPtrForStream(stderr);assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}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()}),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;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=Math.floor(idx/this.chunkSize);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){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;function processData(byteArray){function finish(byteArray){if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency("cp "+fullname)}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("cp "+fullname)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency("cp "+fullname);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})};function _close(fildes){var stream=FS.getStream(fildes);if(!stream){___setErrNo(ERRNO_CODES.EBADF);return-1}try{FS.close(stream);return 0}catch(e){FS.handleFSError(e);return-1}}function _fsync(fildes){var stream=FS.getStream(fildes);if(stream){return 0}else{___setErrNo(ERRNO_CODES.EBADF);return-1}}function _fileno(stream){stream=FS.getStreamFromPtr(stream);if(!stream)return-1;return stream.fd}function _fclose(stream){var fd=_fileno(stream);_fsync(fd);return _close(fd)}var GL={counter:1,lastError:0,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],clientBuffers:[],currArrayBuffer:0,currElementArrayBuffer:0,byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},packAlignment:4,unpackAlignment:4,init:(function(){GL.createLog2ceilLookup(GL.MAX_TEMP_BUFFER_SIZE);Browser.moduleContextCreatedCallbacks.push(GL.initExtensions)}),recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:(function(table){var ret=GL.counter++;for(var i=table.length;i<ret;i++){table[i]=null}return ret}),MINI_TEMP_BUFFER_SIZE:16,miniTempBuffer:null,miniTempBufferViews:[0],MAX_TEMP_BUFFER_SIZE:2097152,tempVertexBuffers1:[],tempVertexBufferCounters1:[],tempVertexBuffers2:[],tempVertexBufferCounters2:[],numTempVertexBuffersPerSize:64,tempIndexBuffers:[],tempQuadIndexBuffer:null,log2ceilLookup:null,createLog2ceilLookup:(function(maxValue){GL.log2ceilLookup=new Uint8Array(maxValue+1);var log2=0;var pow2=1;GL.log2ceilLookup[0]=0;for(var i=1;i<=maxValue;++i){if(i>pow2){pow2<<=1;++log2}GL.log2ceilLookup[i]=log2}}),generateTempBuffers:(function(quads){var largestIndex=GL.log2ceilLookup[GL.MAX_TEMP_BUFFER_SIZE];GL.tempVertexBufferCounters1.length=GL.tempVertexBufferCounters2.length=largestIndex+1;GL.tempVertexBuffers1.length=GL.tempVertexBuffers2.length=largestIndex+1;GL.tempIndexBuffers.length=largestIndex+1;for(var i=0;i<=largestIndex;++i){GL.tempIndexBuffers[i]=null;GL.tempVertexBufferCounters1[i]=GL.tempVertexBufferCounters2[i]=0;var ringbufferLength=GL.numTempVertexBuffersPerSize;GL.tempVertexBuffers1[i]=[];GL.tempVertexBuffers2[i]=[];var ringbuffer1=GL.tempVertexBuffers1[i];var ringbuffer2=GL.tempVertexBuffers2[i];ringbuffer1.length=ringbuffer2.length=ringbufferLength;for(var j=0;j<ringbufferLength;++j){ringbuffer1[j]=ringbuffer2[j]=null}}if(quads){GL.tempQuadIndexBuffer=GLctx.createBuffer();GLctx.bindBuffer(GLctx.ELEMENT_ARRAY_BUFFER,GL.tempQuadIndexBuffer);var numIndexes=GL.MAX_TEMP_BUFFER_SIZE>>1;var quadIndexes=new Uint16Array(numIndexes);var i=0,v=0;while(1){quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+1;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v+3;if(i>=numIndexes)break;v+=4}GLctx.bufferData(GLctx.ELEMENT_ARRAY_BUFFER,quadIndexes,GLctx.STATIC_DRAW);GLctx.bindBuffer(GLctx.ELEMENT_ARRAY_BUFFER,null)}}),getTempVertexBuffer:function getTempVertexBuffer(sizeBytes){var idx=GL.log2ceilLookup[sizeBytes];var ringbuffer=GL.tempVertexBuffers1[idx];var nextFreeBufferIndex=GL.tempVertexBufferCounters1[idx];GL.tempVertexBufferCounters1[idx]=GL.tempVertexBufferCounters1[idx]+1&GL.numTempVertexBuffersPerSize-1;var vbo=ringbuffer[nextFreeBufferIndex];if(vbo){return vbo}var prevVBO=GLctx.getParameter(GLctx.ARRAY_BUFFER_BINDING);ringbuffer[nextFreeBufferIndex]=GLctx.createBuffer();GLctx.bindBuffer(GLctx.ARRAY_BUFFER,ringbuffer[nextFreeBufferIndex]);GLctx.bufferData(GLctx.ARRAY_BUFFER,1<<idx,GLctx.DYNAMIC_DRAW);GLctx.bindBuffer(GLctx.ARRAY_BUFFER,prevVBO);return ringbuffer[nextFreeBufferIndex]},getTempIndexBuffer:function getTempIndexBuffer(sizeBytes){var idx=GL.log2ceilLookup[sizeBytes];var ibo=GL.tempIndexBuffers[idx];if(ibo){return ibo}var prevIBO=GLctx.getParameter(GLctx.ELEMENT_ARRAY_BUFFER_BINDING);GL.tempIndexBuffers[idx]=GLctx.createBuffer();GLctx.bindBuffer(GLctx.ELEMENT_ARRAY_BUFFER,GL.tempIndexBuffers[idx]);GLctx.bufferData(GLctx.ELEMENT_ARRAY_BUFFER,1<<idx,GLctx.DYNAMIC_DRAW);GLctx.bindBuffer(GLctx.ELEMENT_ARRAY_BUFFER,prevIBO);return GL.tempIndexBuffers[idx]},newRenderingFrameStarted:function newRenderingFrameStarted(){var vb=GL.tempVertexBuffers1;GL.tempVertexBuffers1=GL.tempVertexBuffers2;GL.tempVertexBuffers2=vb;vb=GL.tempVertexBufferCounters1;GL.tempVertexBufferCounters1=GL.tempVertexBufferCounters2;GL.tempVertexBufferCounters2=vb;var largestIndex=GL.log2ceilLookup[GL.MAX_TEMP_BUFFER_SIZE];for(var i=0;i<=largestIndex;++i){GL.tempVertexBufferCounters1[i]=0}},getSource:(function(shader,count,string,length){var source="";for(var i=0;i<count;++i){var frag;if(length){var len=HEAP32[length+i*4>>2];if(len<0){frag=Pointer_stringify(HEAP32[string+i*4>>2])}else{frag=Pointer_stringify(HEAP32[string+i*4>>2],len)}}else{frag=Pointer_stringify(HEAP32[string+i*4>>2])}source+=frag}return source}),computeImageSize:(function(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return Math.floor((x+y-1)/y)*y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height<=0?0:(height-1)*alignedRowSize+plainRowSize}),get:(function(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=="Integer"){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats.length;break;case 35738:ret=5121;break;case 35739:ret=6408;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34068:{ret=0;break};default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i<result.length;++i){switch(type){case"Integer":HEAP32[p+i*4>>2]=result[i];break;case"Float":HEAPF32[p+i*4>>2]=result[i];break;case"Boolean":HEAP8[p+i>>0]=result[i]?1:0;break;default:throw"internal glGet error, bad type: "+type}}return}else if(result instanceof WebGLBuffer||result instanceof WebGLProgram||result instanceof WebGLFramebuffer||result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}}switch(type){case"Integer":HEAP32[p>>2]=ret;break;case"Float":HEAPF32[p>>2]=ret;break;case"Boolean":HEAP8[p>>0]=ret?1:0;break;default:throw"internal glGet error, bad type: "+type}}),getTexPixelData:(function(type,format,width,height,pixels,internalFormat){var sizePerPixel;switch(type){case 5121:switch(format){case 6406:case 6409:sizePerPixel=1;break;case 6407:sizePerPixel=3;break;case 6408:sizePerPixel=4;break;case 6410:sizePerPixel=2;break;default:GL.recordError(1280);return{pixels:null,internalFormat:0}}break;case 5123:if(format==6402){sizePerPixel=2}else{GL.recordError(1280);return{pixels:null,internalFormat:0}}break;case 5125:if(format==6402){sizePerPixel=4}else{GL.recordError(1280);return{pixels:null,internalFormat:0}}break;case 34042:sizePerPixel=4;break;case 33635:case 32819:case 32820:sizePerPixel=2;break;case 5126:switch(format){case 6407:sizePerPixel=3*4;break;case 6408:sizePerPixel=4*4;break;default:GL.recordError(1280);return{pixels:null,internalFormat:0}}internalFormat=GLctx.RGBA;break;default:GL.recordError(1280);return{pixels:null,internalFormat:0}}var bytes=GL.computeImageSize(width,height,sizePerPixel,GL.unpackAlignment);if(type==5121){pixels=HEAPU8.subarray(pixels,pixels+bytes)}else if(type==5126){pixels=HEAPF32.subarray(pixels>>2,pixels+bytes>>2)}else if(type==5125||type==34042){pixels=HEAPU32.subarray(pixels>>2,pixels+bytes>>2)}else{pixels=HEAPU16.subarray(pixels>>1,pixels+bytes>>1)}return{pixels:pixels,internalFormat:internalFormat}}),calcBufLength:function calcBufLength(size,type,stride,count){if(stride>0){return count*stride}var typeSize=GL.byteSizeByType[type-GL.byteSizeByTypeRoot];return size*typeSize*count},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function preDrawHandleClientVertexAttribBindings(count){GL.resetBufferBinding=false;for(var i=0;i<GL.maxVertexAttribs;++i){var cb=GL.clientBuffers[i];if(!cb.clientside||!cb.enabled)continue;GL.resetBufferBinding=true;var size=GL.calcBufLength(cb.size,cb.type,cb.stride,count);var buf=GL.getTempVertexBuffer(size);GLctx.bindBuffer(GLctx.ARRAY_BUFFER,buf);GLctx.bufferSubData(GLctx.ARRAY_BUFFER,0,HEAPU8.subarray(cb.ptr,cb.ptr+size));GLctx.vertexAttribPointer(i,cb.size,cb.type,cb.normalized,cb.stride,0)}},postDrawHandleClientVertexAttribBindings:function postDrawHandleClientVertexAttribBindings(){if(GL.resetBufferBinding){GLctx.bindBuffer(GLctx.ARRAY_BUFFER,GL.buffers[GL.currArrayBuffer])}},initExtensions:(function(){if(GL.initExtensions.done)return;GL.initExtensions.done=true;if(!Module.useWebGL)return;GL.miniTempBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i<GL.MINI_TEMP_BUFFER_SIZE;i++){GL.miniTempBufferViews[i]=GL.miniTempBuffer.subarray(0,i+1)}GL.maxVertexAttribs=GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS);for(var i=0;i<GL.maxVertexAttribs;i++){GL.clientBuffers[i]={enabled:false,clientside:false,size:0,type:0,normalized:0,stride:0,ptr:0}}GL.generateTempBuffers();GL.compressionExt=GLctx.getExtension("WEBGL_compressed_texture_s3tc")||GLctx.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||GLctx.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");GL.anisotropicExt=GLctx.getExtension("EXT_texture_filter_anisotropic")||GLctx.getExtension("MOZ_EXT_texture_filter_anisotropic")||GLctx.getExtension("WEBKIT_EXT_texture_filter_anisotropic");GL.floatExt=GLctx.getExtension("OES_texture_float");GL.instancedArraysExt=GLctx.getExtension("ANGLE_instanced_arrays");GL.vaoExt=Module.ctx.getExtension("OES_vertex_array_object");var automaticallyEnabledExtensions=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_frag_depth","EXT_sRGB","WEBGL_draw_buffers","WEBGL_shared_resources","EXT_shader_texture_lod"];function shouldEnableAutomatically(extension){for(var i in automaticallyEnabledExtensions){var include=automaticallyEnabledExtensions[i];if(ext.indexOf(include)!=-1){return true}}return false}var extensions=GLctx.getSupportedExtensions();for(var e in extensions){var ext=extensions[e].replace("MOZ_","").replace("WEBKIT_","");if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}}}),populateUniformTable:(function(program){var p=GL.programs[program];GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1};var ptable=GL.programInfos[program];var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,GLctx.ACTIVE_UNIFORMS);for(var i=0;i<numUniforms;++i){var u=GLctx.getActiveUniform(p,i);var name=u.name;ptable.maxUniformLength=Math.max(ptable.maxUniformLength,name.length+1);if(name.indexOf("]",name.length-1)!==-1){var ls=name.lastIndexOf("[");name=name.slice(0,ls)}var loc=GLctx.getUniformLocation(p,name);var id=GL.getNewId(GL.uniforms);utable[name]=[u.size,id];GL.uniforms[id]=loc;for(var j=1;j<u.size;++j){var n=name+"["+j+"]";loc=GLctx.getUniformLocation(p,n);id=GL.getNewId(GL.uniforms);GL.uniforms[id]=loc}}})};function _glUseProgram(program){GLctx.useProgram(program?GL.programs[program]:null)}function _mkport(){throw"TODO"}var SOCKFS={mount:(function(mount){return FS.createNode(null,"/",16384|511,0)}),createSocket:(function(family,type,protocol){var streaming=type==1;if(protocol){assert(streaming==(protocol==6))}var sock={family:family,type:type,protocol:protocol,server:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node:node,flags:FS.modeStringToFlags("r+"),seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock}),getSocket:(function(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode)){return null}return stream.node.sock}),stream_ops:{poll:(function(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)}),ioctl:(function(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)}),read:(function(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg){return 0}buffer.set(msg.buffer,offset);return msg.buffer.length}),write:(function(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)}),close:(function(stream){var sock=stream.node.sock;sock.sock_ops.close(sock)})},nextname:(function(){if(!SOCKFS.nextname.current){SOCKFS.nextname.current=0}return"socket["+SOCKFS.nextname.current++ +"]"}),websocket_sock_ops:{createPeer:(function(sock,addr,port){var ws;if(typeof addr==="object"){ws=addr;addr=null;port=null}if(ws){if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort}else{var result=/ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);if(!result){throw new Error("WebSocket URL must be in the format ws(s)://address:port")}addr=result[1];port=parseInt(result[2],10)}}else{try{var runtimeConfig=Module["websocket"]&&"object"===typeof Module["websocket"];var url="ws:#".replace("#","//");if(runtimeConfig){if("string"===typeof Module["websocket"]["url"]){url=Module["websocket"]["url"]}}if(url==="ws://"||url==="wss://"){url=url+addr+":"+port}var subProtocols="binary";if(runtimeConfig){if("string"===typeof Module["websocket"]["subprotocol"]){subProtocols=Module["websocket"]["subprotocol"]}}subProtocols=subProtocols.replace(/^ +| +$/g,"").split(/ *, */);var opts=ENVIRONMENT_IS_NODE?{"protocol":subProtocols.toString()}:subProtocols;var WebSocket=ENVIRONMENT_IS_NODE?require("ws"):window["WebSocket"];ws=new WebSocket(url,opts);ws.binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH)}}var peer={addr:addr,port:port,socket:ws,dgram_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!=="undefined"){peer.dgram_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(sock.sport&65280)>>8,sock.sport&255]))}return peer}),getPeer:(function(sock,addr,port){return sock.peers[addr+":"+port]}),addPeer:(function(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer}),removePeer:(function(sock,peer){delete sock.peers[peer.addr+":"+peer.port]}),handlePeerEvents:(function(sock,peer){var first=true;var handleOpen=(function(){try{var queued=peer.dgram_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.dgram_send_queue.shift()}}catch(e){peer.socket.close()}});function handleMessage(data){assert(typeof data!=="string"&&data.byteLength!==undefined);data=new Uint8Array(data);var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data:data})}if(ENVIRONMENT_IS_NODE){peer.socket.on("open",handleOpen);peer.socket.on("message",(function(data,flags){if(!flags.binary){return}handleMessage((new Uint8Array(data)).buffer)}));peer.socket.on("error",(function(){}))}else{peer.socket.onopen=handleOpen;peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)}}}),poll:(function(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=16}return mask}),ioctl:(function(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length}HEAP32[arg>>2]=bytes;return 0;default:return ERRNO_CODES.EINVAL}}),close:(function(sock){if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}var peers=Object.keys(sock.peers);for(var i=0;i<peers.length;i++){var peer=sock.peers[peers[i]];try{peer.socket.close()}catch(e){}SOCKFS.websocket_sock_ops.removePeer(sock,peer)}return 0}),bind:(function(sock,addr,port){if(typeof sock.saddr!=="undefined"||typeof sock.sport!=="undefined"){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}sock.saddr=addr;sock.sport=port||_mkport();if(sock.type===2){if(sock.server){sock.server.close();sock.server=null}try{sock.sock_ops.listen(sock,0)}catch(e){if(!(e instanceof FS.ErrnoError))throw e;if(e.errno!==ERRNO_CODES.EOPNOTSUPP)throw e}}}),connect:(function(sock,addr,port){if(sock.server){throw new FS.ErrnoError(ERRNO_CODS.EOPNOTSUPP)}if(typeof sock.daddr!=="undefined"&&typeof sock.dport!=="undefined"){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(dest){if(dest.socket.readyState===dest.socket.CONNECTING){throw new FS.ErrnoError(ERRNO_CODES.EALREADY)}else{throw new FS.ErrnoError(ERRNO_CODES.EISCONN)}}}var peer=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port);sock.daddr=peer.addr;sock.dport=peer.port;throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS)}),listen:(function(sock,backlog){if(!ENVIRONMENT_IS_NODE){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}if(sock.server){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var WebSocketServer=require("ws").Server;var host=sock.saddr;sock.server=new WebSocketServer({host:host,port:sock.sport});sock.server.on("connection",(function(ws){if(sock.type===1){var newsock=SOCKFS.createSocket(sock.family,sock.type,sock.protocol);var peer=SOCKFS.websocket_sock_ops.createPeer(newsock,ws);newsock.daddr=peer.addr;newsock.dport=peer.port;sock.pending.push(newsock)}else{SOCKFS.websocket_sock_ops.createPeer(sock,ws)}}));sock.server.on("closed",(function(){sock.server=null}));sock.server.on("error",(function(){}))}),accept:(function(listensock){if(!listensock.server){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var newsock=listensock.pending.shift();newsock.stream.flags=listensock.stream.flags;return newsock}),getname:(function(sock,peer){var addr,port;if(peer){if(sock.daddr===undefined||sock.dport===undefined){throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN)}addr=sock.daddr;port=sock.dport}else{addr=sock.saddr||0;port=sock.sport||0}return{addr:addr,port:port}}),sendmsg:(function(sock,buffer,offset,length,addr,port){if(sock.type===2){if(addr===undefined||port===undefined){addr=sock.daddr;port=sock.dport}if(addr===undefined||port===undefined){throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ)}}else{addr=sock.daddr;port=sock.dport}var dest=SOCKFS.websocket_sock_ops.getPeer(sock,addr,port);if(sock.type===1){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN)}else if(dest.socket.readyState===dest.socket.CONNECTING){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}}var data;if(buffer instanceof Array||buffer instanceof ArrayBuffer){data=buffer.slice(offset,offset+length)}else{data=buffer.buffer.slice(buffer.byteOffset+offset,buffer.byteOffset+offset+length)}if(sock.type===2){if(!dest||dest.socket.readyState!==dest.socket.OPEN){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){dest=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port)}dest.dgram_send_queue.push(data);return length}}try{dest.socket.send(data);return length}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),recvmsg:(function(sock,length){if(sock.type===1&&sock.server){throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN)}var queued=sock.recv_queue.shift();if(!queued){if(sock.type===1){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(!dest){throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN)}else if(dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){return null}else{throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}}else{throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}}var queuedLength=queued.data.byteLength||queued.data.length;var queuedOffset=queued.data.byteOffset||0;var queuedBuffer=queued.data.buffer||queued.data;var bytesRead=Math.min(length,queuedLength);var res={buffer:new Uint8Array(queuedBuffer,queuedOffset,bytesRead),addr:queued.addr,port:queued.port};if(sock.type===1&&bytesRead<queuedLength){var bytesRemaining=queuedLength-bytesRead;queued.data=new Uint8Array(queuedBuffer,queuedOffset+bytesRead,bytesRemaining);sock.recv_queue.unshift(queued)}return res})}};function _recv(fd,buf,len,flags){var sock=SOCKFS.getSocket(fd);if(!sock){___setErrNo(ERRNO_CODES.EBADF);return-1}return _read(fd,buf,len)}function _pread(fildes,buf,nbyte,offset){var stream=FS.getStream(fildes);if(!stream){___setErrNo(ERRNO_CODES.EBADF);return-1}try{var slab=HEAP8;return FS.read(stream,slab,buf,nbyte,offset)}catch(e){FS.handleFSError(e);return-1}}function _read(fildes,buf,nbyte){var stream=FS.getStream(fildes);if(!stream){___setErrNo(ERRNO_CODES.EBADF);return-1}try{var slab=HEAP8;return FS.read(stream,slab,buf,nbyte)}catch(e){FS.handleFSError(e);return-1}}function _fread(ptr,size,nitems,stream){var bytesToRead=nitems*size;if(bytesToRead==0){return 0}var bytesRead=0;var streamObj=FS.getStreamFromPtr(stream);if(!streamObj){___setErrNo(ERRNO_CODES.EBADF);return 0}while(streamObj.ungotten.length&&bytesToRead>0){HEAP8[ptr++>>0]=streamObj.ungotten.pop();bytesToRead--;bytesRead++}var err=_read(streamObj.fd,ptr,bytesToRead);if(err==-1){if(streamObj)streamObj.error=true;return 0}bytesRead+=err;if(bytesRead<bytesToRead)streamObj.eof=true;return Math.floor(bytesRead/size)}function _glLinkProgram(program){GLctx.linkProgram(GL.programs[program]);GL.programInfos[program]=null;GL.populateUniformTable(program)}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glBindTexture(target,texture){GLctx.bindTexture(target,texture?GL.textures[texture]:null)}var Browser={mainLoop:{scheduler:null,method:"",shouldPause:false,paused:false,queue:[],pause:(function(){Browser.mainLoop.shouldPause=true}),resume:(function(){if(Browser.mainLoop.paused){Browser.mainLoop.paused=false;Browser.mainLoop.scheduler()}Browser.mainLoop.shouldPause=false}),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)return Module.ctx;var ctx;var errorInfo="?";function onContextCreationError(event){errorInfo=event.statusMessage||errorInfo}try{if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}canvas.addEventListener("webglcontextcreationerror",onContextCreationError,false);try{["experimental-webgl","webgl"].some((function(webglId){return ctx=canvas.getContext(webglId,contextAttributes)}))}finally{canvas.removeEventListener("webglcontextcreationerror",onContextCreationError,false)}}else{ctx=canvas.getContext("2d")}if(!ctx)throw":("}catch(e){Module.print("Could not create canvas: "+[errorInfo,e]);return null}if(useWebGL){canvas.style.backgroundColor="black"}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)GLctx=ctx;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){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;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);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)})}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(!ABORT)func()}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(!ABORT)func()}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(!ABORT)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 Math.max(-1,Math.min(1,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"){Browser.lastTouches[touch.identifier]=Browser.touches[touch.identifier];Browser.touches[touch.identifier]={x:adjustedX,y:adjustedY}}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")}}}})};function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function _free(){}Module["_free"]=_free;var _environ=allocate(1,"i32*",ALLOC_STATIC);var ___environ=_environ;function ___buildEnvironment(env){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]="root";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/emscripten";ENV["LANG"]="en_US.UTF-8";ENV["_"]="./this.program";poolPtr=allocate(TOTAL_ENV_SIZE,"i8",ALLOC_STATIC);envPtr=allocate(MAX_ENV_VALUES*4,"i8*",ALLOC_STATIC);HEAP32[envPtr>>2]=poolPtr;HEAP32[_environ>>2]=envPtr}else{envPtr=HEAP32[_environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in env){if(typeof env[key]==="string"){var line=key+"="+env[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i<strings.length;i++){var line=strings[i];writeAsciiToMemory(line,poolPtr);HEAP32[envPtr+i*ptrSize>>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}var ENV={};function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocate(intArrayFromString(ENV[name]),"i8",ALLOC_NORMAL);return _getenv.ret}function _putenv(string){if(string===0){___setErrNo(ERRNO_CODES.EINVAL);return-1}string=Pointer_stringify(string);var splitPoint=string.indexOf("=");if(string===""||string.indexOf("=")===-1){___setErrNo(ERRNO_CODES.EINVAL);return-1}var name=string.slice(0,splitPoint);var value=string.slice(splitPoint+1);if(!(name in ENV)||ENV[name]!==value){ENV[name]=value;___buildEnvironment(ENV)}return 0}function _SDL_RWFromConstMem(mem,size){var id=SDL.rwops.length;SDL.rwops.push({bytes:mem,count:size});return id}function _TTF_RenderText_Solid(font,text,color){text=Pointer_stringify(text)||" ";var fontData=SDL.fonts[font];var w=SDL.estimateTextWidth(fontData,text);var h=fontData.size;var color=SDL.loadColorToCSSRGB(color);var fontString=h+"px "+fontData.name;var surf=SDL.makeSurface(w,h,0,false,"text:"+text);var surfData=SDL.surfaces[surf];surfData.ctx.save();surfData.ctx.fillStyle=color;surfData.ctx.font=fontString;surfData.ctx.textBaseline="top";surfData.ctx.fillText(text,0,0);surfData.ctx.restore();return surf}function _Mix_HaltMusic(){var audio=SDL.music.audio;if(audio){audio.src=audio.src;audio.currentPosition=0;audio.pause()}SDL.music.audio=null;if(SDL.hookMusicFinished){Runtime.dynCall("v",SDL.hookMusicFinished)}return 0}function _Mix_PlayMusic(id,loops){if(SDL.music.audio){if(!SDL.music.audio.paused)Module.printErr("Music is already playing. "+SDL.music.source);SDL.music.audio.pause()}var info=SDL.audios[id];var audio;if(info.webAudio){audio={};audio.resource=info;audio.paused=false;audio.currentPosition=0;audio.play=(function(){SDL.playWebAudio(this)});audio.pause=(function(){SDL.pauseWebAudio(this)})}else if(info.audio){audio=info.audio}audio["onended"]=(function(){if(SDL.music.audio==this)_Mix_HaltMusic()});audio.loop=loops!=0;audio.volume=SDL.music.volume;SDL.music.audio=audio;audio.play();return 0}function _Mix_FreeChunk(id){SDL.audios[id]=null}function _Mix_LoadWAV_RW(rwopsID,freesrc){var rwops=SDL.rwops[rwopsID];if(rwops===undefined)return 0;var filename="";var audio;var webAudio;var bytes;if(rwops.filename!==undefined){filename=PATH.resolve(rwops.filename);var raw=Module["preloadedAudios"][filename];if(!raw){if(raw===null)Module.printErr("Trying to reuse preloaded audio, but freePreloadedMediaOnUse is set!");if(!Module.noAudioDecoding)Runtime.warnOnce("Cannot find preloaded audio "+filename);try{bytes=FS.readFile(filename)}catch(e){Module.printErr("Couldn't find file for: "+filename);return 0}}if(Module["freePreloadedMediaOnUse"]){Module["preloadedAudios"][filename]=null}audio=raw}else if(rwops.bytes!==undefined){if(SDL.webAudioAvailable())bytes=HEAPU8.buffer.slice(rwops.bytes,rwops.bytes+rwops.count);else bytes=HEAPU8.subarray(rwops.bytes,rwops.bytes+rwops.count)}else{return 0}var arrayBuffer=bytes?bytes.buffer||bytes:bytes;var canPlayWithWebAudio=Module["SDL_canPlayWithWebAudio"]===undefined||Module["SDL_canPlayWithWebAudio"](filename,arrayBuffer);if(bytes!==undefined&&SDL.webAudioAvailable()&&canPlayWithWebAudio){audio=undefined;webAudio={};webAudio.onDecodeComplete=[];function onDecodeComplete(data){webAudio.decodedBuffer=data;webAudio.onDecodeComplete.forEach((function(e){e()}));webAudio.onDecodeComplete=undefined}SDL.audioContext["decodeAudioData"](arrayBuffer,onDecodeComplete)}else if(audio===undefined&&bytes){var blob=new Blob([bytes],{type:rwops.mimetype});var url=URL.createObjectURL(blob);audio=new Audio;audio.src=url;audio.mozAudioChannelType="content"}var id=SDL.audios.length;SDL.audios.push({source:filename,audio:audio,webAudio:webAudio});return id}function _Mix_PlayChannel(channel,id,loops){var info=SDL.audios[id];if(!info)return-1;if(!info.audio&&!info.webAudio)return-1;if(channel==-1){for(var i=SDL.channelMinimumNumber;i<SDL.numChannels;i++){if(!SDL.channels[i].audio){channel=i;break}}if(channel==-1){Module.printErr("All "+SDL.numChannels+" channels in use!");return-1}}var channelInfo=SDL.channels[channel];var audio;if(info.webAudio){audio={};audio.resource=info;audio.paused=false;audio.currentPosition=0;audio.play=(function(){SDL.playWebAudio(this)});audio.pause=(function(){SDL.pauseWebAudio(this)})}else{audio=info.audio.cloneNode(true);audio.numChannels=info.audio.numChannels;audio.frequency=info.audio.frequency}audio["onended"]=function SDL_audio_onended(){if(channelInfo.audio==this){channelInfo.audio.paused=true;channelInfo.audio=null}if(SDL.channelFinished)Runtime.getFuncWrapper(SDL.channelFinished,"vi")(channel)};channelInfo.audio=audio;audio.loop=loops!=0;audio.volume=channelInfo.volume;audio.play();return channel}function _SDL_PauseAudio(pauseOn){if(!SDL.audio){return}if(pauseOn){if(SDL.audio.timer!==undefined){clearTimeout(SDL.audio.timer);SDL.audio.numAudioTimersPending=0;SDL.audio.timer=undefined}if(SDL.audio.scriptProcessorNode!==undefined){SDL.audio.scriptProcessorNode["disconnect"]();SDL.audio.scriptProcessorNode=undefined}}else if(!SDL.audio.timer&&!SDL.audio.scriptProcessorNode){if(SDL.audioContext!==undefined&&SDL.audio.freq==SDL.audioContext["sampleRate"]&&typeof SDL.audioContext["createScriptProcessor"]!=="undefined"){var sizeSamplesPerChannel=SDL.audio.bufferSize/SDL.audio.bytesPerSample/SDL.audio.channels;SDL.audio.scriptProcessorNode=SDL.audioContext["createScriptProcessor"](sizeSamplesPerChannel,0,SDL.audio.channels);SDL.audio.scriptProcessorNode["onaudioprocess"]=(function(e){Runtime.dynCall("viii",SDL.audio.callback,[SDL.audio.userdata,SDL.audio.buffer,SDL.audio.bufferSize]);SDL.fillWebAudioBufferFromHeap(SDL.audio.buffer,sizeSamplesPerChannel,e["outputBuffer"])});SDL.audio.scriptProcessorNode["connect"](SDL.audioContext["destination"])}else{SDL.audio.numAudioTimersPending=1;SDL.audio.timer=Browser.safeSetTimeout(SDL.audio.caller,1);SDL.audio.startTime=Date.now()/1e3}}SDL.audio.paused=pauseOn}function _SDL_CloseAudio(){if(SDL.audio){try{for(var i=0;i<SDL.audio.soundSource.length;++i){if(!typeof (SDL.audio.soundSource[i]==="undefined")){SDL.audio.soundSource[i].stop(0)}}}catch(e){}SDL.audio.soundSource=null;_SDL_PauseAudio(1);_free(SDL.audio.buffer);SDL.audio=null;SDL.allocateChannels(0)}}function _SDL_FreeRW(rwopsID){SDL.rwops[rwopsID]=null;while(SDL.rwops.length>0&&SDL.rwops[SDL.rwops.length-1]===null){SDL.rwops.pop()}}function _IMG_Load_RW(rwopsID,freeSrc){try{function cleanup(){if(rwops&&freeSrc)_SDL_FreeRW(rwopsID)}function addCleanup(func){var old=cleanup;cleanup=function added_cleanup(){old();func()}}function callStbImage(func,params){var x=Module["_malloc"](4);var y=Module["_malloc"](4);var comp=Module["_malloc"](4);addCleanup((function(){Module["_free"](x);Module["_free"](y);Module["_free"](comp);if(data)Module["_stbi_image_free"](data)}));var data=Module["_"+func].apply(null,params.concat([x,y,comp,0]));if(!data)return null;return{rawData:true,data:data,width:HEAP32[x>>2],height:HEAP32[y>>2],size:HEAP32[x>>2]*HEAP32[y>>2]*HEAP32[comp>>2],bpp:HEAP32[comp>>2]}}var rwops=SDL.rwops[rwopsID];if(rwops===undefined){return 0}var filename=rwops.filename;if(filename===undefined){Runtime.warnOnce("Only file names that have been preloaded are supported for IMG_Load_RW. Consider using STB_IMAGE=1 if you want synchronous image decoding (see settings.js)");return 0}if(!raw){filename=PATH.resolve(filename);var raw=Module["preloadedImages"][filename];if(!raw){if(raw===null)Module.printErr("Trying to reuse preloaded image, but freePreloadedMediaOnUse is set!");Runtime.warnOnce("Cannot find preloaded image "+filename);Runtime.warnOnce("Cannot find preloaded image "+filename+". Consider using STB_IMAGE=1 if you want synchronous image decoding (see settings.js)");return 0}else if(Module["freePreloadedMediaOnUse"]){Module["preloadedImages"][filename]=null}}var surf=SDL.makeSurface(raw.width,raw.height,0,false,"load:"+filename);var surfData=SDL.surfaces[surf];surfData.ctx.globalCompositeOperation="copy";if(!raw.rawData){surfData.ctx.drawImage(raw,0,0,raw.width,raw.height,0,0,raw.width,raw.height)}else{var imageData=surfData.ctx.getImageData(0,0,surfData.width,surfData.height);if(raw.bpp==4){imageData.data.set(HEAPU8.subarray(raw.data,raw.data+raw.size))}else if(raw.bpp==3){var pixels=raw.size/3;var data=imageData.data;var sourcePtr=raw.data;var destPtr=0;for(var i=0;i<pixels;i++){data[destPtr++]=HEAPU8[sourcePtr++>>0];data[destPtr++]=HEAPU8[sourcePtr++>>0];data[destPtr++]=HEAPU8[sourcePtr++>>0];data[destPtr++]=255}}else if(raw.bpp==1){var pixels=raw.size;var data=imageData.data;var sourcePtr=raw.data;var destPtr=0;for(var i=0;i<pixels;i++){var value=HEAPU8[sourcePtr++>>0];data[destPtr++]=value;data[destPtr++]=value;data[destPtr++]=value;data[destPtr++]=255}}else{Module.printErr("cannot handle bpp "+raw.bpp);return 0}surfData.ctx.putImageData(imageData,0,0)}surfData.ctx.globalCompositeOperation="source-over";_SDL_LockSurface(surf);surfData.locked--;if(SDL.GL){surfData.canvas=surfData.ctx=null}return surf}finally{cleanup()}}function _SDL_RWFromFile(_name,mode){var id=SDL.rwops.length;var name=Pointer_stringify(_name);SDL.rwops.push({filename:name,mimetype:Browser.getMimetype(name)});return id}function _IMG_Load(filename){var rwops=_SDL_RWFromFile(filename);var result=_IMG_Load_RW(rwops,1);return result}function _SDL_LockSurface(surf){var surfData=SDL.surfaces[surf];surfData.locked++;if(surfData.locked>1)return 0;if(!surfData.buffer){surfData.buffer=_malloc(surfData.width*surfData.height*4);HEAP32[surf+20>>2]=surfData.buffer}HEAP32[surf+20>>2]=surfData.buffer;if(surf==SDL.screen&&Module.screenIsReadOnly&&surfData.image)return 0;surfData.image=surfData.ctx.getImageData(0,0,surfData.width,surfData.height);if(surf==SDL.screen){var data=surfData.image.data;var num=data.length;for(var i=0;i<num/4;i++){data[i*4+3]=255}}if(SDL.defaults.copyOnLock){if(surfData.isFlagSet(2097152)){throw"CopyOnLock is not supported for SDL_LockSurface with SDL_HWPALETTE flag set"+(new Error).stack}else{HEAPU8.set(surfData.image.data,surfData.buffer)}}return 0}function _SDL_UpperBlit(src,srcrect,dst,dstrect){var srcData=SDL.surfaces[src];var dstData=SDL.surfaces[dst];var sr,dr;if(srcrect){sr=SDL.loadRect(srcrect)}else{sr={x:0,y:0,w:srcData.width,h:srcData.height}}if(dstrect){dr=SDL.loadRect(dstrect)}else{dr={x:0,y:0,w:-1,h:-1}}var oldAlpha=dstData.ctx.globalAlpha;dstData.ctx.globalAlpha=srcData.alpha/255;dstData.ctx.drawImage(srcData.canvas,sr.x,sr.y,sr.w,sr.h,dr.x,dr.y,sr.w,sr.h);dstData.ctx.globalAlpha=oldAlpha;if(dst!=SDL.screen){Runtime.warnOnce("WARNING: copying canvas data to memory for compatibility");_SDL_LockSurface(dst);dstData.locked--}return 0}function _SDL_GetTicks(){return Math.floor(Date.now()-SDL.startTime)}var SDL={defaults:{width:320,height:200,copyOnLock:true},version:null,surfaces:{},canvasPool:[],events:[],fonts:[null],audios:[null],rwops:[null],music:{audio:null,volume:1},mixerFrequency:22050,mixerFormat:32784,mixerNumChannels:2,mixerChunkSize:1024,channelMinimumNumber:0,GL:false,glAttributes:{0:3,1:3,2:2,3:0,4:0,5:1,6:16,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:1,16:0,17:0,18:0},keyboardState:null,keyboardMap:{},canRequestFullscreen:false,isRequestingFullscreen:false,textInput:false,startTime:null,initFlags:0,buttonState:0,modState:0,DOMButtons:[0,0,0],DOMEventToSDLEvent:{},TOUCH_DEFAULT_ID:0,eventHandler:null,eventHandlerContext:null,keyCodes:{16:1249,17:1248,18:1250,20:1081,33:1099,34:1102,35:1101,36:1098,37:1104,38:1106,39:1103,40:1105,44:316,45:1097,46:127,91:1251,93:1125,96:1122,97:1113,98:1114,99:1115,100:1116,101:1117,102:1118,103:1119,104:1120,105:1121,106:1109,107:1111,109:1110,110:1123,111:1108,112:1082,113:1083,114:1084,115:1085,116:1086,117:1087,118:1088,119:1089,120:1090,121:1091,122:1092,123:1093,124:1128,125:1129,126:1130,127:1131,128:1132,129:1133,130:1134,131:1135,132:1136,133:1137,134:1138,135:1139,144:1107,160:94,161:33,162:34,163:35,164:36,165:37,166:38,167:95,168:40,169:41,170:42,171:43,172:124,173:45,174:123,175:125,176:126,181:127,182:129,183:128,188:44,190:46,191:47,192:96,219:91,220:92,221:93,222:39},scanCodes:{8:42,9:43,13:40,27:41,32:44,35:204,39:53,44:54,46:55,47:56,48:39,49:30,50:31,51:32,52:33,53:34,54:35,55:36,56:37,57:38,58:203,59:51,61:46,91:47,92:49,93:48,96:52,97:4,98:5,99:6,100:7,101:8,102:9,103:10,104:11,105:12,106:13,107:14,108:15,109:16,110:17,111:18,112:19,113:20,114:21,115:22,116:23,117:24,118:25,119:26,120:27,121:28,122:29,127:76,305:224,308:226,316:70},loadRect:(function(rect){return{x:HEAP32[rect+0>>2],y:HEAP32[rect+4>>2],w:HEAP32[rect+8>>2],h:HEAP32[rect+12>>2]}}),loadColorToCSSRGB:(function(color){var rgba=HEAP32[color>>2];return"rgb("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+")"}),loadColorToCSSRGBA:(function(color){var rgba=HEAP32[color>>2];return"rgba("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+","+(rgba>>24&255)/255+")"}),translateColorToCSSRGBA:(function(rgba){return"rgba("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+","+(rgba>>>24)/255+")"}),translateRGBAToCSSRGBA:(function(r,g,b,a){return"rgba("+(r&255)+","+(g&255)+","+(b&255)+","+(a&255)/255+")"}),translateRGBAToColor:(function(r,g,b,a){return r|g<<8|b<<16|a<<24}),makeSurface:(function(width,height,flags,usePageCanvas,source,rmask,gmask,bmask,amask){flags=flags||0;var is_SDL_HWSURFACE=flags&1;var is_SDL_HWPALETTE=flags&2097152;var is_SDL_OPENGL=flags&67108864;var surf=_malloc(60);var pixelFormat=_malloc(44);var bpp=is_SDL_HWPALETTE?1:4;var buffer=0;if(!is_SDL_HWSURFACE&&!is_SDL_OPENGL){buffer=_malloc(width*height*4)}HEAP32[surf>>2]=flags;HEAP32[surf+4>>2]=pixelFormat;HEAP32[surf+8>>2]=width;HEAP32[surf+12>>2]=height;HEAP32[surf+16>>2]=width*bpp;HEAP32[surf+20>>2]=buffer;HEAP32[surf+36>>2]=0;HEAP32[surf+40>>2]=0;HEAP32[surf+44>>2]=Module["canvas"].width;HEAP32[surf+48>>2]=Module["canvas"].height;HEAP32[surf+56>>2]=1;HEAP32[pixelFormat>>2]=0;HEAP32[pixelFormat+4>>2]=0;HEAP8[pixelFormat+8>>0]=bpp*8;HEAP8[pixelFormat+9>>0]=bpp;HEAP32[pixelFormat+12>>2]=rmask||255;HEAP32[pixelFormat+16>>2]=gmask||65280;HEAP32[pixelFormat+20>>2]=bmask||16711680;HEAP32[pixelFormat+24>>2]=amask||4278190080;SDL.GL=SDL.GL||is_SDL_OPENGL;var canvas;if(!usePageCanvas){if(SDL.canvasPool.length>0){canvas=SDL.canvasPool.pop()}else{canvas=document.createElement("canvas")}canvas.width=width;canvas.height=height}else{canvas=Module["canvas"]}var webGLContextAttributes={antialias:SDL.glAttributes[13]!=0&&SDL.glAttributes[14]>1,depth:SDL.glAttributes[6]>0,stencil:SDL.glAttributes[7]>0};var ctx=Browser.createContext(canvas,is_SDL_OPENGL,usePageCanvas,webGLContextAttributes);SDL.surfaces[surf]={width:width,height:height,canvas:canvas,ctx:ctx,surf:surf,buffer:buffer,pixelFormat:pixelFormat,alpha:255,flags:flags,locked:0,usePageCanvas:usePageCanvas,source:source,isFlagSet:(function(flag){return flags&flag})};return surf}),copyIndexedColorData:(function(surfData,rX,rY,rW,rH){if(!surfData.colors){return}var fullWidth=Module["canvas"].width;var fullHeight=Module["canvas"].height;var startX=rX||0;var startY=rY||0;var endX=(rW||fullWidth-startX)+startX;var endY=(rH||fullHeight-startY)+startY;var buffer=surfData.buffer;var data=surfData.image.data;var colors=surfData.colors;for(var y=startY;y<endY;++y){var indexBase=y*fullWidth;var colorBase=indexBase*4;for(var x=startX;x<endX;++x){var index=HEAPU8[buffer+indexBase+x>>0]*3;var colorOffset=colorBase+x*4;data[colorOffset]=colors[index];data[colorOffset+1]=colors[index+1];data[colorOffset+2]=colors[index+2]}}}),freeSurface:(function(surf){var refcountPointer=surf+56;var refcount=HEAP32[refcountPointer>>2];if(refcount>1){HEAP32[refcountPointer>>2]=refcount-1;return}var info=SDL.surfaces[surf];if(!info.usePageCanvas&&info.canvas)SDL.canvasPool.push(info.canvas);if(info.buffer)_free(info.buffer);_free(info.pixelFormat);_free(surf);SDL.surfaces[surf]=null;if(surf===SDL.screen){SDL.screen=null}}),downFingers:{},savedKeydown:null,receiveEvent:(function(event){function unpressAllPressedKeys(){for(var code in SDL.keyboardMap){SDL.events.push({type:"keyup",keyCode:SDL.keyboardMap[code]})}}switch(event.type){case"touchstart":case"touchmove":{event.preventDefault();var touches=[];if(event.type==="touchstart"){for(var i=0;i<event.touches.length;i++){var touch=event.touches[i];if(SDL.downFingers[touch.identifier]!=true){SDL.downFingers[touch.identifier]=true;touches.push(touch)}}}else{touches=event.touches}var firstTouch=touches[0];if(event.type=="touchstart"){SDL.DOMButtons[0]=1}var mouseEventType;switch(event.type){case"touchstart":mouseEventType="mousedown";break;case"touchmove":mouseEventType="mousemove";break}var mouseEvent={type:mouseEventType,button:0,pageX:firstTouch.clientX,pageY:firstTouch.clientY};SDL.events.push(mouseEvent);for(var i=0;i<touches.length;i++){var touch=touches[i];SDL.events.push({type:event.type,touch:touch})}break};case"touchend":{event.preventDefault();for(var i=0;i<event.changedTouches.length;i++){var touch=event.changedTouches[i];if(SDL.downFingers[touch.identifier]===true){delete SDL.downFingers[touch.identifier]}}var mouseEvent={type:"mouseup",button:0,pageX:event.changedTouches[0].clientX,pageY:event.changedTouches[0].clientY};SDL.DOMButtons[0]=0;SDL.events.push(mouseEvent);for(var i=0;i<event.changedTouches.length;i++){var touch=event.changedTouches[i];SDL.events.push({type:"touchend",touch:touch})}break};case"mousemove":if(SDL.DOMButtons[0]===1){SDL.events.push({type:"touchmove",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}})}if(Browser.pointerLock){if("mozMovementX"in event){event["movementX"]=event["mozMovementX"];event["movementY"]=event["mozMovementY"]}if(event["movementX"]==0&&event["movementY"]==0){event.preventDefault();return}};case"keydown":case"keyup":case"keypress":case"mousedown":case"mouseup":case"DOMMouseScroll":case"mousewheel":case"wheel":if(event.type!=="keydown"||!SDL.unicode&&!SDL.textInput||event.keyCode===8||event.keyCode===9){event.preventDefault()}if(event.type=="DOMMouseScroll"||event.type=="mousewheel"||event.type=="wheel"){var button=Browser.getMouseWheelDelta(event)>0?4:3;var event1={type:"mousedown",button:button,pageX:event.pageX,pageY:event.pageY};SDL.events.push(event1);var event2={type:"mouseup",button:button,pageX:event.pageX,pageY:event.pageY};SDL.events.push(event2);if(event.type=="DOMMouseScroll"){SDL.events.push({type:"wheel",deltaX:0,deltaY:-event.detail});break}else if(event.type=="mousewheel"){SDL.events.push({type:"wheel",deltaX:0,deltaY:event.wheelDelta});break}}else if(event.type=="mousedown"){SDL.DOMButtons[event.button]=1;SDL.events.push({type:"touchstart",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}})}else if(event.type=="mouseup"){if(!SDL.DOMButtons[event.button]){return}SDL.events.push({type:"touchend",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}});SDL.DOMButtons[event.button]=0}if(event.type==="keydown"||event.type==="mousedown"){SDL.canRequestFullscreen=true}else if(event.type==="keyup"||event.type==="mouseup"){if(SDL.isRequestingFullscreen){Module["requestFullScreen"](true,true);SDL.isRequestingFullscreen=false}SDL.canRequestFullscreen=false}if(event.type==="keypress"&&SDL.savedKeydown){SDL.savedKeydown.keypressCharCode=event.charCode;SDL.savedKeydown=null}else if(event.type==="keydown"){SDL.savedKeydown=event}if(event.type!=="keypress"||SDL.textInput){SDL.events.push(event)}break;case"mouseout":for(var i=0;i<3;i++){if(SDL.DOMButtons[i]){SDL.events.push({type:"mouseup",button:i,pageX:event.pageX,pageY:event.pageY});SDL.DOMButtons[i]=0}}event.preventDefault();break;case"focus":SDL.events.push(event);event.preventDefault();break;case"blur":SDL.events.push(event);unpressAllPressedKeys();event.preventDefault();break;case"visibilitychange":SDL.events.push({type:"visibilitychange",visible:!document.hidden});unpressAllPressedKeys();event.preventDefault();break;case"unload":if(Browser.mainLoop.runner){SDL.events.push(event);Browser.mainLoop.runner()}return;case"resize":SDL.events.push(event);if(event.preventDefault){event.preventDefault()}break}if(SDL.events.length>=1e4){Module.printErr("SDL event queue full, dropping events");SDL.events=SDL.events.slice(0,1e4)}SDL.flushEventsToHandler();return}),handleEvent:(function(event){if(event.handled)return;event.handled=true;switch(event.type){case"touchstart":case"touchend":case"touchmove":{Browser.calculateMouseEvent(event);break};case"keydown":case"keyup":{var down=event.type==="keydown";var code=event.keyCode;if(code>=65&&code<=90){code+=32}else{code=SDL.keyCodes[event.keyCode]||event.keyCode}HEAP8[SDL.keyboardState+code>>0]=down;SDL.modState=(HEAP8[SDL.keyboardState+1248>>0]?64|128:0)|(HEAP8[SDL.keyboardState+1249>>0]?1|2:0)|(HEAP8[SDL.keyboardState+1250>>0]?256|512:0);if(down){SDL.keyboardMap[code]=event.keyCode}else{delete SDL.keyboardMap[code]}break};case"mousedown":case"mouseup":if(event.type=="mousedown"){SDL.buttonState|=1<<event.button}else if(event.type=="mouseup"){SDL.buttonState&=~(1<<event.button)};case"mousemove":{Browser.calculateMouseEvent(event);break}}}),flushEventsToHandler:(function(){if(!SDL.eventHandler)return;var sdlEventPtr=allocate(28,"i8",ALLOC_STACK);while(SDL.pollEvent(sdlEventPtr)){Runtime.dynCall("iii",SDL.eventHandler,[SDL.eventHandlerContext,sdlEventPtr])}}),pollEvent:(function(ptr){if(SDL.initFlags&512&&SDL.joystickEventState){SDL.queryJoysticks()}if(ptr){while(SDL.events.length>0){if(SDL.makeCEvent(SDL.events.shift(),ptr)!==false)return 1}return 0}else{return SDL.events.length>0}}),makeCEvent:(function(event,ptr){if(typeof event==="number"){_memcpy(ptr,event,28);return}SDL.handleEvent(event);switch(event.type){case"keydown":case"keyup":{var down=event.type==="keydown";var key=event.keyCode;if(key>=65&&key<=90){key+=32}else{key=SDL.keyCodes[event.keyCode]||event.keyCode}var scan;if(key>=1024){scan=key-1024}else{scan=SDL.scanCodes[key]||key}HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+8>>0]=down?1:0;HEAP8[ptr+9>>0]=0;HEAP32[ptr+12>>2]=scan;HEAP32[ptr+16>>2]=key;HEAP16[ptr+20>>1]=SDL.modState;HEAP32[ptr+24>>2]=event.keypressCharCode||key;break};case"keypress":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];var cStr=intArrayFromString(String.fromCharCode(event.charCode));for(var i=0;i<cStr.length;++i){HEAP8[ptr+(8+i)>>0]=cStr[i]}break};case"mousedown":case"mouseup":case"mousemove":{if(event.type!="mousemove"){var down=event.type==="mousedown";HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP32[ptr+8>>2]=0;HEAP32[ptr+12>>2]=0;HEAP8[ptr+16>>0]=event.button+1;HEAP8[ptr+17>>0]=down?1:0;HEAP32[ptr+20>>2]=Browser.mouseX;HEAP32[ptr+24>>2]=Browser.mouseY}else{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP32[ptr+8>>2]=0;HEAP32[ptr+12>>2]=0;HEAP32[ptr+16>>2]=SDL.buttonState;HEAP32[ptr+20>>2]=Browser.mouseX;HEAP32[ptr+24>>2]=Browser.mouseY;HEAP32[ptr+28>>2]=Browser.mouseMovementX;HEAP32[ptr+32>>2]=Browser.mouseMovementY}break};case"wheel":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+16>>2]=event.deltaX;HEAP32[ptr+20>>2]=event.deltaY;break};case"touchstart":case"touchend":case"touchmove":{var touch=event.touch;if(!Browser.touches[touch.identifier])break;var w=Module["canvas"].width;var h=Module["canvas"].height;var x=Browser.touches[touch.identifier].x/w;var y=Browser.touches[touch.identifier].y/h;var lx=Browser.lastTouches[touch.identifier].x/w;var ly=Browser.lastTouches[touch.identifier].y/h;var dx=x-lx;var dy=y-ly;if(touch["deviceID"]===undefined)touch.deviceID=SDL.TOUCH_DEFAULT_ID;if(dx===0&&dy===0&&event.type==="touchmove")return false;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=_SDL_GetTicks();tempI64=[touch.deviceID>>>0,(tempDouble=touch.deviceID,+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+8>>2]=tempI64[0],HEAP32[ptr+12>>2]=tempI64[1];tempI64=[touch.identifier>>>0,(tempDouble=touch.identifier,+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+16>>2]=tempI64[0],HEAP32[ptr+20>>2]=tempI64[1];HEAPF32[ptr+24>>2]=x;HEAPF32[ptr+28>>2]=y;HEAPF32[ptr+32>>2]=dx;HEAPF32[ptr+36>>2]=dy;if(touch.force!==undefined){HEAPF32[ptr+40>>2]=touch.force}else{HEAPF32[ptr+40>>2]=event.type=="touchend"?0:1}break};case"unload":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];break};case"resize":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=event.w;HEAP32[ptr+8>>2]=event.h;break};case"joystick_button_up":case"joystick_button_down":{var state=event.type==="joystick_button_up"?0:1;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+4>>0]=event.index;HEAP8[ptr+5>>0]=event.button;HEAP8[ptr+6>>0]=state;break};case"joystick_axis_motion":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+4>>0]=event.index;HEAP8[ptr+5>>0]=event.axis;HEAP32[ptr+8>>2]=SDL.joystickAxisValueConversion(event.value);break};case"focus":{var SDL_WINDOWEVENT_FOCUS_GAINED=12;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=SDL_WINDOWEVENT_FOCUS_GAINED;break};case"blur":{var SDL_WINDOWEVENT_FOCUS_LOST=13;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=SDL_WINDOWEVENT_FOCUS_LOST;break};case"visibilitychange":{var SDL_WINDOWEVENT_SHOWN=1;var SDL_WINDOWEVENT_HIDDEN=2;var visibilityEventID=event.visible?SDL_WINDOWEVENT_SHOWN:SDL_WINDOWEVENT_HIDDEN;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=visibilityEventID;break};default:throw"Unhandled SDL event: "+event.type}}),estimateTextWidth:(function(fontData,text){var h=fontData.size;var fontString=h+"px "+fontData.name;var tempCtx=SDL.ttfContext;tempCtx.save();tempCtx.font=fontString;var ret=tempCtx.measureText(text).width|0;tempCtx.restore();return ret}),allocateChannels:(function(num){if(SDL.numChannels&&SDL.numChannels>=num&&num!=0)return;SDL.numChannels=num;SDL.channels=[];for(var i=0;i<num;i++){SDL.channels[i]={audio:null,volume:1}}}),setGetVolume:(function(info,volume){if(!info)return 0;var ret=info.volume*128;if(volume!=-1){info.volume=Math.min(Math.max(volume,0),128)/128;if(info.audio){try{info.audio.volume=info.volume;if(info.audio.webAudioGainNode)info.audio.webAudioGainNode["gain"]["value"]=info.volume}catch(e){Module.printErr("setGetVolume failed to set audio volume: "+e)}}}return ret}),playWebAudio:(function(audio){if(!audio)return;if(audio.webAudioNode)return;if(!SDL.webAudioAvailable())return;try{var webAudio=audio.resource.webAudio;audio.paused=false;if(!webAudio.decodedBuffer){if(webAudio.onDecodeComplete===undefined)abort("Cannot play back audio object that was not loaded");webAudio.onDecodeComplete.push((function(){if(!audio.paused)SDL.playWebAudio(audio)}));return}audio.webAudioNode=SDL.audioContext["createBufferSource"]();audio.webAudioNode["buffer"]=webAudio.decodedBuffer;audio.webAudioNode["loop"]=audio.loop;audio.webAudioNode["onended"]=(function(){audio.onended()});audio.webAudioGainNode=SDL.audioContext["createGain"]();audio.webAudioGainNode["gain"]["value"]=audio.volume;audio.webAudioNode["connect"](audio.webAudioGainNode);audio.webAudioGainNode["connect"](SDL.audioContext["destination"]);audio.webAudioNode["start"](0,audio.currentPosition);audio.startTime=SDL.audioContext["currentTime"]-audio.currentPosition}catch(e){Module.printErr("playWebAudio failed: "+e)}}),pauseWebAudio:(function(audio){if(!audio)return;if(audio.webAudioNode){try{audio.currentPosition=(SDL.audioContext["currentTime"]-audio.startTime)%audio.resource.webAudio.decodedBuffer.duration;audio.webAudioNode["onended"]=undefined;audio.webAudioNode.stop();audio.webAudioNode=undefined}catch(e){Module.printErr("pauseWebAudio failed: "+e)}}audio.paused=true}),openAudioContext:(function(){if(!SDL.audioContext){if(typeof AudioContext!=="undefined")SDL.audioContext=new AudioContext;else if(typeof webkitAudioContext!=="undefined")SDL.audioContext=new webkitAudioContext}}),webAudioAvailable:(function(){return!!SDL.audioContext}),fillWebAudioBufferFromHeap:(function(heapPtr,sizeSamplesPerChannel,dstAudioBuffer){var numChannels=SDL.audio.channels;for(var c=0;c<numChannels;++c){var channelData=dstAudioBuffer["getChannelData"](c);if(channelData.length!=sizeSamplesPerChannel){throw"Web Audio output buffer length mismatch! Destination size: "+channelData.length+" samples vs expected "+sizeSamplesPerChannel+" samples!"}if(SDL.audio.format==32784){for(var j=0;j<sizeSamplesPerChannel;++j){channelData[j]=HEAP16[heapPtr+(j*numChannels+c)*2>>1]/32768}}else if(SDL.audio.format==8){for(var j=0;j<sizeSamplesPerChannel;++j){var v=HEAP8[heapPtr+(j*numChannels+c)>>0];channelData[j]=(v>=0?v-128:v+128)/128}}}}),debugSurface:(function(surfData){console.log("dumping surface "+[surfData.surf,surfData.source,surfData.width,surfData.height]);var image=surfData.ctx.getImageData(0,0,surfData.width,surfData.height);var data=image.data;var num=Math.min(surfData.width,surfData.height);for(var i=0;i<num;i++){console.log(" diagonal "+i+":"+[data[i*surfData.width*4+i*4+0],data[i*surfData.width*4+i*4+1],data[i*surfData.width*4+i*4+2],data[i*surfData.width*4+i*4+3]])}}),joystickEventState:1,lastJoystickState:{},joystickNamePool:{},recordJoystickState:(function(joystick,state){var buttons=new Array(state.buttons.length);for(var i=0;i<state.buttons.length;i++){buttons[i]=SDL.getJoystickButtonState(state.buttons[i])}SDL.lastJoystickState[joystick]={buttons:buttons,axes:state.axes.slice(0),timestamp:state.timestamp,index:state.index,id:state.id}}),getJoystickButtonState:(function(button){if(typeof button==="object"){return button.pressed}else{return button>0}}),queryJoysticks:(function(){for(var joystick in SDL.lastJoystickState){var state=SDL.getGamepad(joystick-1);var prevState=SDL.lastJoystickState[joystick];if(typeof state.timestamp!=="number"||state.timestamp!==prevState.timestamp){var i;for(i=0;i<state.buttons.length;i++){var buttonState=SDL.getJoystickButtonState(state.buttons[i]);if(buttonState!==prevState.buttons[i]){SDL.events.push({type:buttonState?"joystick_button_down":"joystick_button_up",joystick:joystick,index:joystick-1,button:i})}}for(i=0;i<state.axes.length;i++){if(state.axes[i]!==prevState.axes[i]){SDL.events.push({type:"joystick_axis_motion",joystick:joystick,index:joystick-1,axis:i,value:state.axes[i]})}}SDL.recordJoystickState(joystick,state)}}}),joystickAxisValueConversion:(function(value){return Math.ceil((value+1)*32767.5-32768)}),getGamepads:(function(){var fcn=navigator.getGamepads||navigator.webkitGamepads||navigator.mozGamepads||navigator.gamepads||navigator.webkitGetGamepads;if(fcn!==undefined){return fcn.apply(navigator)}else{return[]}}),getGamepad:(function(deviceIndex){var gamepads=SDL.getGamepads();if(gamepads.length>deviceIndex&&deviceIndex>=0){return gamepads[deviceIndex]}return null})};function _SDL_SetVideoMode(width,height,depth,flags){["touchstart","touchend","touchmove","mousedown","mouseup","mousemove","DOMMouseScroll","mousewheel","wheel","mouseout"].forEach((function(event){Module["canvas"].addEventListener(event,SDL.receiveEvent,true)}));var canvas=Module["canvas"];if(width==0&&height==0){width=canvas.width;height=canvas.height}if(!SDL.addedResizeListener){SDL.addedResizeListener=true;Browser.resizeListeners.push((function(w,h){if(!SDL.settingVideoMode){SDL.receiveEvent({type:"resize",w:w,h:h})}}))}if(width!==canvas.width||height!==canvas.height){SDL.settingVideoMode=true;Browser.setCanvasSize(width,height);SDL.settingVideoMode=false}if(SDL.screen){SDL.freeSurface(SDL.screen);assert(!SDL.screen)}if(SDL.GL)flags=flags|67108864;SDL.screen=SDL.makeSurface(width,height,flags,true,"screen");return SDL.screen}function _open(path,oflag,varargs){var mode=HEAP32[varargs>>2];path=Pointer_stringify(path);try{var stream=FS.open(path,oflag,mode);return stream.fd}catch(e){FS.handleFSError(e);return-1}}function _fopen(filename,mode){var flags;mode=Pointer_stringify(mode);if(mode[0]=="r"){if(mode.indexOf("+")!=-1){flags=2}else{flags=0}}else if(mode[0]=="w"){if(mode.indexOf("+")!=-1){flags=2}else{flags=1}flags|=64;flags|=512}else if(mode[0]=="a"){if(mode.indexOf("+")!=-1){flags=2}else{flags=1}flags|=64;flags|=1024}else{___setErrNo(ERRNO_CODES.EINVAL);return 0}var fd=_open(filename,flags,allocate([511,0,0,0],"i32",ALLOC_STACK));return fd===-1?0:FS.getPtrForStream(FS.getStream(fd))}function _sqrtf(){return Math_sqrt.apply(null,arguments)}function _glGetString(name_){if(GL.stringCache[name_])return GL.stringCache[name_];var ret;switch(name_){case 7936:case 7937:case 7938:ret=allocate(intArrayFromString(GLctx.getParameter(name_)),"i8",ALLOC_NORMAL);break;case 7939:var exts=GLctx.getSupportedExtensions();var gl_exts=[];for(i in exts){gl_exts.push(exts[i]);gl_exts.push("GL_"+exts[i])}ret=allocate(intArrayFromString(gl_exts.join(" ")),"i8",ALLOC_NORMAL);break;case 35724:ret=allocate(intArrayFromString("OpenGL ES GLSL 1.00 (WebGL)"),"i8",ALLOC_NORMAL);break;default:GL.recordError(1280);return 0}GL.stringCache[name_]=ret;return ret}function _send(fd,buf,len,flags){var sock=SOCKFS.getSocket(fd);if(!sock){___setErrNo(ERRNO_CODES.EBADF);return-1}return _write(fd,buf,len)}function _pwrite(fildes,buf,nbyte,offset){var stream=FS.getStream(fildes);if(!stream){___setErrNo(ERRNO_CODES.EBADF);return-1}try{var slab=HEAP8;return FS.write(stream,slab,buf,nbyte,offset)}catch(e){FS.handleFSError(e);return-1}}function _write(fildes,buf,nbyte){var stream=FS.getStream(fildes);if(!stream){___setErrNo(ERRNO_CODES.EBADF);return-1}try{var slab=HEAP8;return FS.write(stream,slab,buf,nbyte)}catch(e){FS.handleFSError(e);return-1}}Module["_strlen"]=_strlen;function _fputs(s,stream){var fd=_fileno(stream);return _write(fd,s,_strlen(s))}function _fputc(c,stream){var chr=unSign(c&255);HEAP8[_fputc.ret>>0]=chr;var fd=_fileno(stream);var ret=_write(fd,_fputc.ret,1);if(ret==-1){var streamObj=FS.getStreamFromPtr(stream);if(streamObj)streamObj.error=true;return-1}else{return chr}}function _puts(s){var stdout=HEAP32[_stdout>>2];var ret=_fputs(s,stdout);if(ret<0){return ret}else{var newlineRet=_fputc(10,stdout);return newlineRet<0?-1:ret+1}}function _fwrite(ptr,size,nitems,stream){var bytesToWrite=nitems*size;if(bytesToWrite==0)return 0;var fd=_fileno(stream);var bytesWritten=_write(fd,ptr,bytesToWrite);if(bytesWritten==-1){var streamObj=FS.getStreamFromPtr(stream);if(streamObj)streamObj.error=true;return 0}else{return Math.floor(bytesWritten/size)}}function _mknod(path,mode,dev){path=Pointer_stringify(path);switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:___setErrNo(ERRNO_CODES.EINVAL);return-1}try{FS.mknod(path,mode,dev);return 0}catch(e){FS.handleFSError(e);return-1}}function _mkdir(path,mode){path=Pointer_stringify(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);try{FS.mkdir(path,mode,0);return 0}catch(e){FS.handleFSError(e);return-1}}function _ftell(stream){stream=FS.getStreamFromPtr(stream);if(!stream){___setErrNo(ERRNO_CODES.EBADF);return-1}if(FS.isChrdev(stream.node.mode)){___setErrNo(ERRNO_CODES.ESPIPE);return-1}else{return stream.position}}function _glEnableVertexAttribArray(index){var cb=GL.clientBuffers[index];cb.enabled=true;GLctx.enableVertexAttribArray(index)}function _glBindBuffer(target,buffer){var bufferObj=buffer?GL.buffers[buffer]:null;if(target==GLctx.ARRAY_BUFFER){GL.currArrayBuffer=buffer}else if(target==GLctx.ELEMENT_ARRAY_BUFFER){GL.currElementArrayBuffer=buffer}GLctx.bindBuffer(target,bufferObj)}function _SDL_InitSubSystem(flags){return 0}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}Module["_bitshift64Lshr"]=_bitshift64Lshr;Module["_memset"]=_memset;function _glBufferData(target,size,data,usage){switch(usage){case 35041:case 35042:usage=35040;break;case 35045:case 35046:usage=35044;break;case 35049:case 35050:usage=35048;break}if(!data){GLctx.bufferData(target,size,usage)}else{GLctx.bufferData(target,HEAPU8.subarray(data,data+size),usage)}}var _BDtoIHigh=true;function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=Math.floor(now/1e3);HEAP32[ptr+4>>2]=Math.floor((now-1e3*Math.floor(now/1e3))*1e3);return 0}function _SDL_WM_SetCaption(title,icon){title=title&&Pointer_stringify(title);icon=icon&&Pointer_stringify(icon)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;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)self.alloc(bytes);return ret}Module["_bitshift64Shl"]=_bitshift64Shl;function _glGenTextures(n,textures){for(var i=0;i<n;i++){var id=GL.getNewId(GL.textures);var texture=GLctx.createTexture();texture.name=id;GL.textures[id]=texture;HEAP32[textures+i*4>>2]=id}}function _SDL_GetError(){if(!SDL.errorMessage){SDL.errorMessage=allocate(intArrayFromString("unknown SDL-emscripten error"),"i8",ALLOC_NORMAL)}return SDL.errorMessage}function ___errno_location(){return ___errno_state}var _BItoD=true;function _SDL_OpenAudio(desired,obtained){try{SDL.audio={freq:HEAPU32[desired>>2],format:HEAPU16[desired+4>>1],channels:HEAPU8[desired+6>>0],samples:HEAPU16[desired+8>>1],callback:HEAPU32[desired+16>>2],userdata:HEAPU32[desired+20>>2],paused:true,timer:null};if(SDL.audio.format==8){SDL.audio.silence=128}else if(SDL.audio.format==32784){SDL.audio.silence=0}else{throw"Invalid SDL audio format "+SDL.audio.format+"!"}if(SDL.audio.freq<=0){throw"Unsupported sound frequency "+SDL.audio.freq+"!"}else if(SDL.audio.freq<=22050){SDL.audio.freq=22050}else if(SDL.audio.freq<=32e3){SDL.audio.freq=32e3}else if(SDL.audio.freq<=44100){SDL.audio.freq=44100}else if(SDL.audio.freq<=48e3){SDL.audio.freq=48e3}else if(SDL.audio.freq<=96e3){SDL.audio.freq=96e3}else{throw"Unsupported sound frequency "+SDL.audio.freq+"!"}if(SDL.audio.channels==0){SDL.audio.channels=1}else if(SDL.audio.channels<0||SDL.audio.channels>32){throw"Unsupported number of audio channels for SDL audio: "+SDL.audio.channels+"!"}else if(SDL.audio.channels!=1&&SDL.audio.channels!=2){console.log("Warning: Using untested number of audio channels "+SDL.audio.channels)}if(SDL.audio.samples<128||SDL.audio.samples>524288){throw"Unsupported audio callback buffer size "+SDL.audio.samples+"!"}else if((SDL.audio.samples&SDL.audio.samples-1)!=0){throw"Audio callback buffer size "+SDL.audio.samples+" must be a power-of-two!"}var totalSamples=SDL.audio.samples*SDL.audio.channels;SDL.audio.bytesPerSample=SDL.audio.format==8||SDL.audio.format==32776?1:2;SDL.audio.bufferSize=totalSamples*SDL.audio.bytesPerSample;SDL.audio.buffer=_malloc(SDL.audio.bufferSize);SDL.audio.numSimultaneouslyQueuedBuffers=Module["SDL_numSimultaneouslyQueuedBuffers"]||3;SDL.audio.caller=function SDL_audio_caller(){if(!SDL.audio){return}Runtime.dynCall("viii",SDL.audio.callback,[SDL.audio.userdata,SDL.audio.buffer,SDL.audio.bufferSize]);SDL.audio.pushAudio(SDL.audio.buffer,SDL.audio.bufferSize)};SDL.audio.audioOutput=new Audio;if(typeof SDL.audio.audioOutput["mozSetup"]==="function"){SDL.audio.audioOutput["mozSetup"](SDL.audio.channels,SDL.audio.freq);SDL.audio.mozBuffer=new Float32Array(totalSamples);SDL.audio.nextPlayTime=0;SDL.audio.pushAudio=function SDL_audio_pushAudio(ptr,size){--SDL.audio.numAudioTimersPending;var mozBuffer=SDL.audio.mozBuffer;if(SDL.audio.format==32784){for(var i=0;i<totalSamples;i++){mozBuffer[i]=HEAP16[ptr+i*2>>1]/32768}}else if(SDL.audio.format==8){for(var i=0;i<totalSamples;i++){var v=HEAP8[ptr+i>>0];mozBuffer[i]=(v>=0?v-128:v+128)/128}}SDL.audio.audioOutput["mozWriteAudio"](mozBuffer);var curtime=Date.now()/1e3-SDL.audio.startTime;var playtime=Math.max(curtime,SDL.audio.nextPlayTime);var buffer_duration=SDL.audio.samples/SDL.audio.freq;SDL.audio.nextPlayTime=playtime+buffer_duration;SDL.audio.timer=Browser.safeSetTimeout(SDL.audio.caller,1e3*(playtime-curtime));++SDL.audio.numAudioTimersPending;if(SDL.audio.numAudioTimersPending<SDL.audio.numSimultaneouslyQueuedBuffers){++SDL.audio.numAudioTimersPending;Browser.safeSetTimeout(SDL.audio.caller,1)}}}else{SDL.openAudioContext();if(!SDL.audioContext)throw"Web Audio API is not available!";SDL.audio.soundSource=new Array;SDL.audio.nextSoundSource=0;SDL.audio.nextPlayTime=0;SDL.audio.pushAudio=(function(ptr,sizeBytes){try{--SDL.audio.numAudioTimersPending;if(SDL.audio.paused)return;var sizeSamples=sizeBytes/SDL.audio.bytesPerSample;var sizeSamplesPerChannel=sizeSamples/SDL.audio.channels;if(sizeSamplesPerChannel!=SDL.audio.samples){throw"Received mismatching audio buffer size!"}var source=SDL.audioContext["createBufferSource"]();if(SDL.audio.soundSource[SDL.audio.nextSoundSource]){SDL.audio.soundSource[SDL.audio.nextSoundSource]["disconnect"]()}SDL.audio.soundSource[SDL.audio.nextSoundSource]=source;var soundBuffer=SDL.audioContext["createBuffer"](SDL.audio.channels,sizeSamplesPerChannel,SDL.audio.freq);SDL.audio.soundSource[SDL.audio.nextSoundSource]["connect"](SDL.audioContext["destination"]);SDL.fillWebAudioBufferFromHeap(ptr,sizeSamplesPerChannel,soundBuffer);source["buffer"]=soundBuffer;var curtime=SDL.audioContext["currentTime"];var playtime=Math.max(curtime,SDL.audio.nextPlayTime);var ss=SDL.audio.soundSource[SDL.audio.nextSoundSource];if(typeof ss["start"]!=="undefined"){ss["start"](playtime)}else if(typeof ss["noteOn"]!=="undefined"){ss["noteOn"](playtime)}var buffer_duration=sizeSamplesPerChannel/SDL.audio.freq;SDL.audio.nextPlayTime=playtime+buffer_duration;SDL.audio.nextSoundSource=(SDL.audio.nextSoundSource+1)%(SDL.audio.numSimultaneouslyQueuedBuffers+2);var secsUntilNextCall=playtime-curtime;var preemptBufferFeedMSecs=1e3*buffer_duration/2;SDL.audio.timer=Browser.safeSetTimeout(SDL.audio.caller,Math.max(0,1e3*secsUntilNextCall-preemptBufferFeedMSecs));++SDL.audio.numAudioTimersPending;if(SDL.audio.numAudioTimersPending<SDL.audio.numSimultaneouslyQueuedBuffers){++SDL.audio.numAudioTimersPending;Browser.safeSetTimeout(SDL.audio.caller,1)}}catch(e){console.log("Web Audio API error playing back audio: "+e.toString())}})}if(obtained){HEAP32[obtained>>2]=SDL.audio.freq;HEAP16[obtained+4>>1]=SDL.audio.format;HEAP8[obtained+6>>0]=SDL.audio.channels;HEAP8[obtained+7>>0]=SDL.audio.silence;HEAP16[obtained+8>>1]=SDL.audio.samples;HEAP32[obtained+16>>2]=SDL.audio.callback;HEAP32[obtained+20>>2]=SDL.audio.userdata}SDL.allocateChannels(32)}catch(e){console.log('Initializing SDL audio threw an exception: "'+e.toString()+'"! Continuing without audio.');SDL.audio=null;SDL.allocateChannels(0);if(obtained){HEAP32[obtained>>2]=0;HEAP16[obtained+4>>1]=0;HEAP8[obtained+6>>0]=0;HEAP8[obtained+7>>0]=0;HEAP16[obtained+8>>1]=0;HEAP32[obtained+16>>2]=0;HEAP32[obtained+20>>2]=0}}if(!SDL.audio){return-1}return 0}function _fmod(x,y){return x%y}function _fmodl(){return _fmod.apply(null,arguments)}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glUniform1i(location,v0){location=GL.uniforms[location];GLctx.uniform1i(location,v0)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(pixels){var data=GL.getTexPixelData(type,format,width,height,pixels,internalFormat);pixels=data.pixels;internalFormat=data.internalFormat}else{pixels=null}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}function _sysconf(name){switch(name){case 30:return 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 79:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}function _fgetc(stream){var streamObj=FS.getStreamFromPtr(stream);if(!streamObj)return-1;if(streamObj.eof||streamObj.error)return-1;var ret=_fread(_fgetc.ret,1,1,stream);if(ret==0){return-1}else if(ret==-1){streamObj.error=true;return-1}else{return HEAPU8[_fgetc.ret>>0]}}var _SItoF=true;function _srand(seed){HEAP32[___rand_seed>>2]=seed}var _BDtoILow=true;function _glGetProgramiv(program,pname,p){if(pname==35716){HEAP32[p>>2]=GLctx.getProgramInfoLog(GL.programs[program]).length+1}else if(pname==35719){var ptable=GL.programInfos[program];if(ptable){HEAP32[p>>2]=ptable.maxUniformLength;return}else if(program<GL.counter){GL.recordError(1282)}else{GL.recordError(1281)}}else if(pname==35722){var ptable=GL.programInfos[program];if(ptable){if(ptable.maxAttributeLength==-1){var program=GL.programs[program];var numAttribs=GLctx.getProgramParameter(program,GLctx.ACTIVE_ATTRIBUTES);ptable.maxAttributeLength=0;for(var i=0;i<numAttribs;++i){var activeAttrib=GLctx.getActiveAttrib(program,i);ptable.maxAttributeLength=Math.max(ptable.maxAttributeLength,activeAttrib.name.length+1)}}HEAP32[p>>2]=ptable.maxAttributeLength;return}else if(program<GL.counter){GL.recordError(1282)}else{GL.recordError(1281)}}else{HEAP32[p>>2]=GLctx.getProgramParameter(GL.programs[program],pname)}}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){var cb=GL.clientBuffers[index];if(!GL.currArrayBuffer){cb.size=size;cb.type=type;cb.normalized=normalized;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;return}cb.clientside=false;GLctx.vertexAttribPointer(index,size,type,normalized,stride,ptr)}function _SDL_GetKeyboardState(numKeys){if(numKeys){HEAP32[numKeys>>2]=65536}return SDL.keyboardState}function _abort(){Module["abort"]()}function _glGetUniformLocation(program,name){name=Pointer_stringify(name);var arrayOffset=0;if(name.indexOf("]",name.length-1)!==-1){var ls=name.lastIndexOf("[");var arrayIndex=name.slice(ls+1,-1);if(arrayIndex.length>0){arrayOffset=parseInt(arrayIndex);if(arrayOffset<0){return-1}}name=name.slice(0,ls)}var ptable=GL.programInfos[program];if(!ptable){return-1}var utable=ptable.uniforms;var uniformInfo=utable[name];if(uniformInfo&&arrayOffset<uniformInfo[0]){return uniformInfo[1]+arrayOffset}else{return-1}}function _emscripten_asm_const(code){Runtime.getAsmConst(code,0)()}function _SDL_GetMouseState(x,y){if(x)HEAP32[x>>2]=Browser.mouseX;if(y)HEAP32[y>>2]=Browser.mouseY;return SDL.buttonState}function _glEnable(x0){GLctx.enable(x0)}function _fabs(){return Math_abs.apply(null,arguments)}function _lseek(fildes,offset,whence){var stream=FS.getStream(fildes);if(!stream){___setErrNo(ERRNO_CODES.EBADF);return-1}try{return FS.llseek(stream,offset,whence)}catch(e){FS.handleFSError(e);return-1}}function _fseek(stream,offset,whence){var fd=_fileno(stream);var ret=_lseek(fd,offset,whence);if(ret==-1){return-1}stream=FS.getStreamFromPtr(stream);stream.eof=false;return 0}function _glDrawArrays(mode,first,count){GL.preDrawHandleClientVertexAttribBindings(first+count);GLctx.drawArrays(mode,first,count);GL.postDrawHandleClientVertexAttribBindings()}function _glGenBuffers(n,buffers){for(var i=0;i<n;i++){var id=GL.getNewId(GL.buffers);var buffer=GLctx.createBuffer();buffer.name=id;GL.buffers[id]=buffer;HEAP32[buffers+i*4>>2]=id}}function _glDeleteProgram(program){var program=GL.programs[program];GLctx.deleteProgram(program);program.name=0;GL.programs[program]=null;GL.programInfos[program]=null}function _glGetAttribLocation(program,name){program=GL.programs[program];name=Pointer_stringify(name);return GLctx.getAttribLocation(program,name)}function _rewind(stream){_fseek(stream,0,0);var streamObj=FS.getStreamFromPtr(stream);if(streamObj)streamObj.error=false}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glDeleteShader(shader){GLctx.deleteShader(GL.shaders[shader]);GL.shaders[shader]=null}function _glBlendFunc(x0,x1){GLctx.blendFunc(x0,x1)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;GL.programs[id]=program;return id}function _glPixelStorei(pname,param){if(pname==3333){GL.packAlignment=param}else if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.scheduler,"there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one, if you want to");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(Browser.mainLoop.shouldPause){Browser.mainLoop.paused=true;Browser.mainLoop.shouldPause=false;return}GL.newRenderingFrameStarted();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(Browser.mainLoop.shouldPause){Browser.mainLoop.paused=true;Browser.mainLoop.shouldPause=false;return}Browser.mainLoop.scheduler()};if(fps&&fps>0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler(){setTimeout(Browser.mainLoop.runner,1e3/fps)};Browser.mainLoop.method="timeout"}else{Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}Browser.mainLoop.scheduler();if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}function _time(ptr){var ret=Math.floor(Date.now()/1e3);if(ptr){HEAP32[ptr>>2]=ret}return ret}function _stime(when){___setErrNo(ERRNO_CODES.EPERM);return-1}function _strerror_r(errnum,strerrbuf,buflen){if(errnum in ERRNO_MESSAGES){if(ERRNO_MESSAGES[errnum].length>buflen-1){return ___setErrNo(ERRNO_CODES.ERANGE)}else{var msg=ERRNO_MESSAGES[errnum];writeAsciiToMemory(msg,strerrbuf);return 0}}else{return ___setErrNo(ERRNO_CODES.EINVAL)}}function _strerror(errnum){if(!_strerror.buffer)_strerror.buffer=_malloc(256);_strerror_r(errnum,_strerror.buffer,256);return _strerror.buffer}function __reallyNegative(x){return x<0||x===0&&1/x===-Infinity}function __formatString(format,varargs){var textIndex=format;var argIndex=0;function getNextArg(type){var ret;if(type==="double"){ret=(HEAP32[tempDoublePtr>>2]=HEAP32[varargs+argIndex>>2],HEAP32[tempDoublePtr+4>>2]=HEAP32[varargs+(argIndex+4)>>2],+HEAPF64[tempDoublePtr>>3])}else if(type=="i64"){ret=[HEAP32[varargs+argIndex>>2],HEAP32[varargs+(argIndex+4)>>2]]}else{type="i32";ret=HEAP32[varargs+argIndex>>2]}argIndex+=Runtime.getNativeFieldSize(type);return ret}var ret=[];var curr,next,currArg;while(1){var startTextIndex=textIndex;curr=HEAP8[textIndex>>0];if(curr===0)break;next=HEAP8[textIndex+1>>0];if(curr==37){var flagAlwaysSigned=false;var flagLeftAlign=false;var flagAlternative=false;var flagZeroPad=false;var flagPadSign=false;flagsLoop:while(1){switch(next){case 43:flagAlwaysSigned=true;break;case 45:flagLeftAlign=true;break;case 35:flagAlternative=true;break;case 48:if(flagZeroPad){break flagsLoop}else{flagZeroPad=true;break};case 32:flagPadSign=true;break;default:break flagsLoop}textIndex++;next=HEAP8[textIndex+1>>0]}var width=0;if(next==42){width=getNextArg("i32");textIndex++;next=HEAP8[textIndex+1>>0]}else{while(next>=48&&next<=57){width=width*10+(next-48);textIndex++;next=HEAP8[textIndex+1>>0]}}var precisionSet=false,precision=-1;if(next==46){precision=0;precisionSet=true;textIndex++;next=HEAP8[textIndex+1>>0];if(next==42){precision=getNextArg("i32");textIndex++}else{while(1){var precisionChr=HEAP8[textIndex+1>>0];if(precisionChr<48||precisionChr>57)break;precision=precision*10+(precisionChr-48);textIndex++}}next=HEAP8[textIndex+1>>0]}if(precision<0){precision=6;precisionSet=false}var argSize;switch(String.fromCharCode(next)){case"h":var nextNext=HEAP8[textIndex+2>>0];if(nextNext==104){textIndex++;argSize=1}else{argSize=2}break;case"l":var nextNext=HEAP8[textIndex+2>>0];if(nextNext==108){textIndex++;argSize=8}else{argSize=4}break;case"L":case"q":case"j":argSize=8;break;case"z":case"t":case"I":argSize=4;break;default:argSize=null}if(argSize)textIndex++;next=HEAP8[textIndex+1>>0];switch(String.fromCharCode(next)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":{var signed=next==100||next==105;argSize=argSize||4;var currArg=getNextArg("i"+argSize*8);var origArg=currArg;var argText;if(argSize==8){currArg=Runtime.makeBigInt(currArg[0],currArg[1],next==117)}if(argSize<=4){var limit=Math.pow(256,argSize)-1;currArg=(signed?reSign:unSign)(currArg&limit,argSize*8)}var currAbsArg=Math.abs(currArg);var prefix="";if(next==100||next==105){if(argSize==8&&i64Math)argText=i64Math.stringify(origArg[0],origArg[1],null);else argText=reSign(currArg,8*argSize,1).toString(10)}else if(next==117){if(argSize==8&&i64Math)argText=i64Math.stringify(origArg[0],origArg[1],true);else argText=unSign(currArg,8*argSize,1).toString(10);currArg=Math.abs(currArg)}else if(next==111){argText=(flagAlternative?"0":"")+currAbsArg.toString(8)}else if(next==120||next==88){prefix=flagAlternative&&currArg!=0?"0x":"";if(argSize==8&&i64Math){if(origArg[1]){argText=(origArg[1]>>>0).toString(16);var lower=(origArg[0]>>>0).toString(16);while(lower.length<8)lower="0"+lower;argText+=lower}else{argText=(origArg[0]>>>0).toString(16)}}else if(currArg<0){currArg=-currArg;argText=(currAbsArg-1).toString(16);var buffer=[];for(var i=0;i<argText.length;i++){buffer.push((15-parseInt(argText[i],16)).toString(16))}argText=buffer.join("");while(argText.length<argSize*2)argText="f"+argText}else{argText=currAbsArg.toString(16)}if(next==88){prefix=prefix.toUpperCase();argText=argText.toUpperCase()}}else if(next==112){if(currAbsArg===0){argText="(nil)"}else{prefix="0x";argText=currAbsArg.toString(16)}}if(precisionSet){while(argText.length<precision){argText="0"+argText}}if(currArg>=0){if(flagAlwaysSigned){prefix="+"+prefix}else if(flagPadSign){prefix=" "+prefix}}if(argText.charAt(0)=="-"){prefix="-"+prefix;argText=argText.substr(1)}while(prefix.length+argText.length<width){if(flagLeftAlign){argText+=" "}else{if(flagZeroPad){argText="0"+argText}else{prefix=" "+prefix}}}argText=prefix+argText;argText.split("").forEach((function(chr){ret.push(chr.charCodeAt(0))}));break};case"f":case"F":case"e":case"E":case"g":case"G":{var currArg=getNextArg("double");var argText;if(isNaN(currArg)){argText="nan";flagZeroPad=false}else if(!isFinite(currArg)){argText=(currArg<0?"-":"")+"inf";flagZeroPad=false}else{var isGeneral=false;var effectivePrecision=Math.min(precision,20);if(next==103||next==71){isGeneral=true;precision=precision||1;var exponent=parseInt(currArg.toExponential(effectivePrecision).split("e")[1],10);if(precision>exponent&&exponent>=-4){next=(next==103?"f":"F").charCodeAt(0);precision-=exponent+1}else{next=(next==103?"e":"E").charCodeAt(0);precision--}effectivePrecision=Math.min(precision,20)}if(next==101||next==69){argText=currArg.toExponential(effectivePrecision);if(/[eE][-+]\d$/.test(argText)){argText=argText.slice(0,-1)+"0"+argText.slice(-1)}}else if(next==102||next==70){argText=currArg.toFixed(effectivePrecision);if(currArg===0&&__reallyNegative(currArg)){argText="-"+argText}}var parts=argText.split("e");if(isGeneral&&!flagAlternative){while(parts[0].length>1&&parts[0].indexOf(".")!=-1&&(parts[0].slice(-1)=="0"||parts[0].slice(-1)==".")){parts[0]=parts[0].slice(0,-1)}}else{if(flagAlternative&&argText.indexOf(".")==-1)parts[0]+=".";while(precision>effectivePrecision++)parts[0]+="0"}argText=parts[0]+(parts.length>1?"e"+parts[1]:"");if(next==69)argText=argText.toUpperCase();if(currArg>=0){if(flagAlwaysSigned){argText="+"+argText}else if(flagPadSign){argText=" "+argText}}}while(argText.length<width){if(flagLeftAlign){argText+=" "}else{if(flagZeroPad&&(argText[0]=="-"||argText[0]=="+")){argText=argText[0]+"0"+argText.slice(1)}else{argText=(flagZeroPad?"0":" ")+argText}}}if(next<97)argText=argText.toUpperCase();argText.split("").forEach((function(chr){ret.push(chr.charCodeAt(0))}));break};case"s":{var arg=getNextArg("i8*");var argLength=arg?_strlen(arg):"(null)".length;if(precisionSet)argLength=Math.min(argLength,precision);if(!flagLeftAlign){while(argLength<width--){ret.push(32)}}if(arg){for(var i=0;i<argLength;i++){ret.push(HEAPU8[arg++>>0])}}else{ret=ret.concat(intArrayFromString("(null)".substr(0,argLength),true))}if(flagLeftAlign){while(argLength<width--){ret.push(32)}}break};case"c":{if(flagLeftAlign)ret.push(getNextArg("i8"));while(--width>0){ret.push(32)}if(!flagLeftAlign)ret.push(getNextArg("i8"));break};case"n":{var ptr=getNextArg("i32*");HEAP32[ptr>>2]=ret.length;break};case"%":{ret.push(curr);break};default:{for(var i=startTextIndex;i<textIndex+2;i++){ret.push(HEAP8[i>>0])}}}textIndex+=2}else{ret.push(curr);textIndex+=1}}return ret}function _fprintf(stream,format,varargs){var result=__formatString(format,varargs);var stack=Runtime.stackSave();var ret=_fwrite(allocate(result,"i8",ALLOC_STACK),1,result.length,stream);Runtime.stackRestore(stack);return ret}function _printf(format,varargs){var stdout=HEAP32[_stdout>>2];return _fprintf(stdout,format,varargs)}function _glUniformMatrix4fv(location,count,transpose,value){location=GL.uniforms[location];var view;if(count===1){view=GL.miniTempBufferViews[15];for(var i=0;i<16;i++){view[i]=HEAPF32[value+i*4>>2]}}else{view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(location,transpose,view)}function _SDL_GL_SwapBuffers(){if(Browser.doSwapBuffers)Browser.doSwapBuffers()}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _SDL_PollEvent(ptr){return SDL.pollEvent(ptr)}function _SDL_Init(initFlags){SDL.startTime=Date.now();SDL.initFlags=initFlags;if(!Module["doNotCaptureKeyboard"]){document.addEventListener("keydown",SDL.receiveEvent);document.addEventListener("keyup",SDL.receiveEvent);document.addEventListener("keypress",SDL.receiveEvent);window.addEventListener("focus",SDL.receiveEvent);window.addEventListener("blur",SDL.receiveEvent);document.addEventListener("visibilitychange",SDL.receiveEvent)}if(initFlags&512){addEventListener("gamepadconnected",(function(){}))}window.addEventListener("unload",SDL.receiveEvent);SDL.keyboardState=_malloc(65536);_memset(SDL.keyboardState,0,65536);SDL.DOMEventToSDLEvent["keydown"]=768;SDL.DOMEventToSDLEvent["keyup"]=769;SDL.DOMEventToSDLEvent["keypress"]=771;SDL.DOMEventToSDLEvent["mousedown"]=1025;SDL.DOMEventToSDLEvent["mouseup"]=1026;SDL.DOMEventToSDLEvent["mousemove"]=1024;SDL.DOMEventToSDLEvent["wheel"]=1027;SDL.DOMEventToSDLEvent["touchstart"]=1792;SDL.DOMEventToSDLEvent["touchend"]=1793;SDL.DOMEventToSDLEvent["touchmove"]=1794;SDL.DOMEventToSDLEvent["unload"]=256;SDL.DOMEventToSDLEvent["resize"]=28673;SDL.DOMEventToSDLEvent["visibilitychange"]=512;SDL.DOMEventToSDLEvent["focus"]=512;SDL.DOMEventToSDLEvent["blur"]=512;SDL.DOMEventToSDLEvent["joystick_axis_motion"]=1536;SDL.DOMEventToSDLEvent["joystick_button_down"]=1539;SDL.DOMEventToSDLEvent["joystick_button_up"]=1540;return 0}function _glTexParameteri(x0,x1,x2){GLctx.texParameteri(x0,x1,x2)}function _llvm_trap(){abort("trap!")}function _copysign(a,b){return __reallyNegative(a)===__reallyNegative(b)?a:-a}function _copysignl(){return _copysign.apply(null,arguments)}function _glGetShaderiv(shader,pname,p){if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(!log)log="(unknown error)";HEAP32[p>>2]=log.length+1}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}FS.staticInit();__ATINIT__.unshift({func:(function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()})});__ATMAIN__.push({func:(function(){FS.ignorePermissions=false})});__ATEXIT__.push({func:(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;___errno_state=Runtime.staticAlloc(4);HEAP32[___errno_state>>2]=0;__ATINIT__.unshift({func:(function(){TTY.init()})});__ATEXIT__.push({func:(function(){TTY.shutdown()})});TTY.utf8=new Runtime.UTF8Processor;if(ENVIRONMENT_IS_NODE){var fs=require("fs");NODEFS.staticInit()}var GLctx;GL.init();__ATINIT__.push({func:(function(){SOCKFS.root=FS.mount(SOCKFS,{},null)})});Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas){Browser.requestFullScreen(lockPointer,resizeCanvas)};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()};___buildEnvironment(ENV);_fputc.ret=allocate([0],"i8",ALLOC_STATIC);_fgetc.ret=allocate([0],"i8",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+5242880;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE<TOTAL_MEMORY,"TOTAL_MEMORY not big enough for stack");var ctlz_i8=allocate([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",ALLOC_DYNAMIC);var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_DYNAMIC);var Math_min=Math.min;function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vd(index,a1){try{Module["dynCall_vd"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vid(index,a1,a2){try{Module["dynCall_vid"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iiidi(index,a1,a2,a3,a4){try{return Module["dynCall_iiidi"](index,a1,a2,a3,a4)}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_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}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_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}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 asmPrintInt(x,y){Module.print("int "+x+","+y)}function asmPrintFloat(x,y){Module.print("float "+x+","+y)}var asm=(function(global,env,buffer) {
|
|
// EMSCRIPTEN_START_ASM
|
|
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=env.ctlz_i8|0;var o=env.___rand_seed|0;var p=0;var q=0;var r=0;var s=0;var t=+env.NaN,u=+env.Infinity;var v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0.0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=0;var N=0;var O=global.Math.floor;var P=global.Math.abs;var Q=global.Math.sqrt;var R=global.Math.pow;var S=global.Math.cos;var T=global.Math.sin;var U=global.Math.tan;var V=global.Math.acos;var W=global.Math.asin;var X=global.Math.atan;var Y=global.Math.atan2;var Z=global.Math.exp;var _=global.Math.log;var $=global.Math.ceil;var aa=global.Math.imul;var ba=env.abort;var ca=env.assert;var da=env.asmPrintInt;var ea=env.asmPrintFloat;var fa=env.min;var ga=env.invoke_iiiiii;var ha=env.invoke_vd;var ia=env.invoke_vid;var ja=env.invoke_iiidi;var ka=env.invoke_vi;var la=env.invoke_vii;var ma=env.invoke_iiii;var na=env.invoke_viii;var oa=env.invoke_v;var pa=env._glUseProgram;var qa=env._fabs;var ra=env._fread;var sa=env._glUniformMatrix4fv;var ta=env._SDL_RWFromFile;var ua=env._glDeleteProgram;var va=env._glBindBuffer;var wa=env._glCreateProgram;var xa=env._fsync;var ya=env._SDL_GetError;var za=env._sbrk;var Aa=env._glBlendFunc;var Ba=env._glGetAttribLocation;var Ca=env._Mix_PlayChannel;var Da=env._glCreateShader;var Ea=env._sysconf;var Fa=env._close;var Ga=env._SDL_InitSubSystem;var Ha=env._Mix_PlayMusic;var Ia=env._rewind;var Ja=env._puts;var Ka=env._Mix_FreeChunk;var La=env._write;var Ma=env._ftell;var Na=env._glGenBuffers;var Oa=env._glShaderSource;var Pa=env._Mix_HaltMusic;var Qa=env._mknod;var Ra=env._mkdir;var Sa=env._llvm_trap;var Ta=env._fmodl;var Ua=env._glVertexAttribPointer;var Va=env._send;var Wa=env._SDL_GetTicks;var Xa=env._SDL_GetKeyboardState;var Ya=env._glBufferSubData;var Za=env._SDL_LockSurface;var _a=env._strerror_r;var $a=env.__reallyNegative;var ab=env.___setErrNo;var bb=env._SDL_OpenAudio;var cb=env._srand;var db=env._glEnable;var eb=env._printf;var fb=env._glGenTextures;var gb=env._glGetString;var hb=env._glAttachShader;var ib=env._read;var jb=env._SDL_SetVideoMode;var kb=env._fwrite;var lb=env._time;var mb=env._fprintf;var nb=env._gettimeofday;var ob=env._putenv;var pb=env._IMG_Load;var qb=env._fmod;var rb=env._lseek;var sb=env.___buildEnvironment;var tb=env._pwrite;var ub=env._glBindTexture;var vb=env._open;var wb=env._fabsf;var xb=env._emscripten_asm_const;var yb=env._SDL_Init;var zb=env._glUniform1i;var Ab=env._glDrawArrays;var Bb=env._TTF_RenderText_Solid;var Cb=env._fseek;var Db=env._SDL_GetMouseState;var Eb=env._getenv;var Fb=env._fclose;var Gb=env._sqrtf;var Hb=env._stime;var Ib=env._recv;var Jb=env._fgetc;var Kb=env._glCompileShader;var Lb=env._glEnableVertexAttribArray;var Mb=env._abort;var Nb=env._glBufferData;var Ob=env._glTexImage2D;var Pb=env._fopen;var Qb=env._glDeleteShader;var Rb=env._glGetProgramiv;var Sb=env._SDL_CloseAudio;var Tb=env._fflush;var Ub=env._SDL_FreeRW;var Vb=env._SDL_PauseAudio;var Wb=env._SDL_PollEvent;var Xb=env._glGetUniformLocation;var Yb=env._glTexParameteri;var Zb=env._fileno;var _b=env._Mix_LoadWAV_RW;var $b=env._SDL_WM_SetCaption;var ac=env._IMG_Load_RW;var bc=env._glPixelStorei;var cc=env._glGetShaderiv;var dc=env._pread;var ec=env._mkport;var fc=env._glLinkProgram;var gc=env._emscripten_memcpy_big;var hc=env._emscripten_set_main_loop;var ic=env.___errno_location;var jc=env._copysign;var kc=env._fputc;var lc=env._copysignl;var mc=env._SDL_GL_SwapBuffers;var nc=env._strerror;var oc=env.__formatString;var pc=env._fputs;var qc=env._SDL_UpperBlit;var rc=env._SDL_RWFromConstMem;var sc=0.0;
|
|
// EMSCRIPTEN_START_FUNCS
|
|
function Bd(b,d){b=b|0;d=d|0;var e=0,f=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.0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0;e=i;i=i+1168|0;f=e;h=e+1040|0;j=e+16|0;k=e+8|0;l=e+12|0;c[f>>2]=b;Zd(h,11560,f);b=Pb(h|0,11584)|0;if((b|0)==0){m=0;i=e;return m|0}h=c[2456]|0;if((h|0)>0){n=h;h=0;while(1){o=c[(c[2452]|0)+(h<<2)>>2]|0;if((o|0)==0){p=n}else{q=c[o+156>>2]|0;if((q|0)==0){r=n}else{xc[q&7](o);r=c[2456]|0}c[o+212>>2]=c[2448];c[2448]=o;p=r}h=h+1|0;if((h|0)>=(p|0)){break}else{n=p}}}c[2456]=0;he(j|0,0,1024)|0;p=0;a:while(1){while(1){s=Jb(b|0)|0;if((s|0)==-1){t=11;break a}else if((s|0)==10){t=12;break a}else if((s|0)!=13){break}}a[j+p>>0]=s;n=p+1|0;if((n|0)<1024){p=n}else{break}}if((t|0)==11){a[j+p>>0]=0}else if((t|0)==12){a[j+p>>0]=0}c[f>>2]=k;c[f+4>>2]=l;Nd(j,11592,f);if((c[l>>2]|0)>0){f=0;do{he(j|0,0,1024)|0;p=0;b:while(1){while(1){u=Jb(b|0)|0;if((u|0)==-1){t=18;break b}else if((u|0)==10){t=19;break b}else if((u|0)!=13){break}}a[j+p>>0]=u;s=p+1|0;if((s|0)<1024){p=s}else{break}}if((t|0)==18){t=0;a[j+p>>0]=0}else if((t|0)==19){t=0;a[j+p>>0]=0}s=c[k>>2]|0;c:do{if((s|0)>0){v=+(f<<5|16|0);n=s;h=0;while(1){r=h<<1;d:do{if((h|0)>0){switch(a[j+(r+ -2)>>0]|0){case 108:case 68:case 84:case 114:case 62:case 60:case 86:case 65:case 70:case 69:case 83:case 66:case 109:case 35:case 46:{w=4;break d;break};default:{}}w=0}else{w=0}}while(0);if((h|0)<(n+ -1|0)){switch(a[j+(r+2)>>0]|0){case 108:case 68:case 84:case 114:case 62:case 60:case 86:case 65:case 70:case 69:case 83:case 66:case 109:case 35:case 46:{x=0;break};default:{x=1}}y=(x|w)^1}else{y=w}o=a[j+r>>0]|0;switch(o<<24>>24){case 108:case 68:case 84:case 114:case 62:case 60:case 86:case 65:case 70:case 69:case 83:case 66:case 109:case 35:case 46:{z=0;break};default:{z=1}}q=z?y:y|2;if((q|0)==6){A=bd(c[2854]|0)|0;B=+(h<<5|16|0);g[A+24>>2]=B;g[A+28>>2]=v;C=+g[A+76>>2];D=+g[A+68>>2];E=(C>D?C:D)*.5+10.0;C=+g[A+72>>2];F=(C>D?C:D)*.5+10.0;D=+g[A+52>>2];C=D+B;if(D>0.0){g[A+196>>2]=C+F;g[A+200>>2]=B-F}else{g[A+200>>2]=C-F;g[A+196>>2]=F+B}B=+g[A+56>>2];F=B+v;if(B>0.0){g[A+204>>2]=E+F;g[A+208>>2]=v-E}else{g[A+208>>2]=F-E;g[A+204>>2]=E+v}fd(A)}else if((q|0)==7){A=bd(c[2850]|0)|0;E=+(h<<5|16|0);g[A+24>>2]=E;g[A+28>>2]=v;F=+g[A+76>>2];B=+g[A+68>>2];C=(F>B?F:B)*.5+10.0;F=+g[A+72>>2];D=(F>B?F:B)*.5+10.0;B=+g[A+52>>2];F=B+E;if(B>0.0){g[A+196>>2]=F+D;g[A+200>>2]=E-D}else{g[A+200>>2]=F-D;g[A+196>>2]=D+E}E=+g[A+56>>2];D=E+v;if(E>0.0){g[A+204>>2]=C+D;g[A+208>>2]=v-C}else{g[A+208>>2]=D-C;g[A+204>>2]=C+v}fd(A)}else if((q|0)==3){A=bd(c[2852]|0)|0;C=+(h<<5|16|0);g[A+24>>2]=C;g[A+28>>2]=v;D=+g[A+76>>2];E=+g[A+68>>2];F=(D>E?D:E)*.5+10.0;D=+g[A+72>>2];B=(D>E?D:E)*.5+10.0;E=+g[A+52>>2];D=E+C;if(E>0.0){g[A+196>>2]=D+B;g[A+200>>2]=C-B}else{g[A+200>>2]=D-B;g[A+196>>2]=B+C}C=+g[A+56>>2];B=C+v;if(C>0.0){g[A+204>>2]=F+B;g[A+208>>2]=v-F}else{g[A+208>>2]=B-F;g[A+204>>2]=F+v}fd(A)}else if((q|0)==2){q=bd(c[2856]|0)|0;F=+(h<<5|16|0);g[q+24>>2]=F;g[q+28>>2]=v;B=+g[q+76>>2];C=+g[q+68>>2];D=(B>C?B:C)*.5+10.0;B=+g[q+72>>2];E=(B>C?B:C)*.5+10.0;C=+g[q+52>>2];B=C+F;if(C>0.0){g[q+196>>2]=B+E;g[q+200>>2]=F-E}else{g[q+200>>2]=B-E;g[q+196>>2]=E+F}F=+g[q+56>>2];E=F+v;if(F>0.0){g[q+204>>2]=D+E;g[q+208>>2]=v-D}else{g[q+208>>2]=E-D;g[q+204>>2]=D+v}fd(q)}do{switch(o<<24>>24){case 66:{q=bd(c[2840]|0)|0;D=+(h<<5|16|0);g[q+24>>2]=D;g[q+28>>2]=v;E=+g[q+76>>2];F=+g[q+68>>2];B=(E>F?E:F)*.5+10.0;E=+g[q+72>>2];C=(E>F?E:F)*.5+10.0;F=+g[q+52>>2];E=F+D;if(F>0.0){g[q+196>>2]=E+C;g[q+200>>2]=D-C}else{g[q+200>>2]=E-C;g[q+196>>2]=C+D}D=+g[q+56>>2];C=D+v;if(D>0.0){g[q+204>>2]=B+C;g[q+208>>2]=v-B}else{g[q+208>>2]=C-B;g[q+204>>2]=B+v}fd(q);break};case 109:{q=bd(c[2844]|0)|0;B=+(h<<5|16|0);g[q+24>>2]=B;g[q+28>>2]=v;C=+g[q+76>>2];D=+g[q+68>>2];E=(C>D?C:D)*.5+10.0;C=+g[q+72>>2];F=(C>D?C:D)*.5+10.0;D=+g[q+52>>2];C=D+B;if(D>0.0){g[q+196>>2]=C+F;g[q+200>>2]=B-F}else{g[q+200>>2]=C-F;g[q+196>>2]=F+B}B=+g[q+56>>2];F=B+v;if(B>0.0){g[q+204>>2]=E+F;g[q+208>>2]=v-E}else{g[q+208>>2]=F-E;g[q+204>>2]=E+v}fd(q);break};case 76:{q=bd(c[2860]|0)|0;E=+(h<<5|16|0);g[q+24>>2]=E;g[q+28>>2]=v;F=+g[q+76>>2];B=+g[q+68>>2];C=(F>B?F:B)*.5+10.0;F=+g[q+72>>2];D=(F>B?F:B)*.5+10.0;B=+g[q+52>>2];F=B+E;if(B>0.0){g[q+196>>2]=F+D;g[q+200>>2]=E-D}else{g[q+200>>2]=F-D;g[q+196>>2]=D+E}E=+g[q+56>>2];D=E+v;if(E>0.0){g[q+204>>2]=C+D;g[q+208>>2]=v-C}else{g[q+208>>2]=D-C;g[q+204>>2]=C+v}fd(q);break};case 108:{q=bd(c[2848]|0)|0;C=+(h<<5|16|0);g[q+24>>2]=C;g[q+28>>2]=v;D=+g[q+76>>2];E=+g[q+68>>2];F=(D>E?D:E)*.5+10.0;D=+g[q+72>>2];B=(D>E?D:E)*.5+10.0;E=+g[q+52>>2];D=E+C;if(E>0.0){g[q+196>>2]=D+B;g[q+200>>2]=C-B}else{g[q+200>>2]=D-B;g[q+196>>2]=B+C}C=+g[q+56>>2];B=C+v;if(C>0.0){g[q+204>>2]=F+B;g[q+208>>2]=v-F}else{g[q+208>>2]=B-F;g[q+204>>2]=F+v}fd(q);break};case 124:{q=bd(c[2858]|0)|0;F=+(h<<5|16|0);g[q+24>>2]=F;g[q+28>>2]=v;B=+g[q+76>>2];C=+g[q+68>>2];D=(B>C?B:C)*.5+10.0;B=+g[q+72>>2];E=(B>C?B:C)*.5+10.0;C=+g[q+52>>2];B=C+F;if(C>0.0){g[q+196>>2]=B+E;g[q+200>>2]=F-E}else{g[q+200>>2]=B-E;g[q+196>>2]=E+F}F=+g[q+56>>2];E=F+v;if(F>0.0){g[q+204>>2]=D+E;g[q+208>>2]=v-D}else{g[q+208>>2]=E-D;g[q+204>>2]=D+v}fd(q);break};case 83:{q=bd(c[2878]|0)|0;D=+(h<<5|16|0);g[q+24>>2]=D;g[q+28>>2]=v;E=+g[q+76>>2];F=+g[q+68>>2];B=(E>F?E:F)*.5+10.0;E=+g[q+72>>2];C=(E>F?E:F)*.5+10.0;F=+g[q+52>>2];E=F+D;if(F>0.0){g[q+196>>2]=E+C;g[q+200>>2]=D-C}else{g[q+200>>2]=E-C;g[q+196>>2]=C+D}D=+g[q+56>>2];C=D+v;if(D>0.0){g[q+204>>2]=B+C;g[q+208>>2]=v-B}else{g[q+208>>2]=C-B;g[q+204>>2]=B+v}fd(q);c[q+176>>2]=(a[j+(r|1)>>0]|0)+ -48;break};case 114:{q=bd(c[2846]|0)|0;B=+(h<<5|16|0);g[q+24>>2]=B;g[q+28>>2]=v;C=+g[q+76>>2];D=+g[q+68>>2];E=(C>D?C:D)*.5+10.0;C=+g[q+72>>2];F=(C>D?C:D)*.5+10.0;D=+g[q+52>>2];C=D+B;if(D>0.0){g[q+196>>2]=C+F;g[q+200>>2]=B-F}else{g[q+200>>2]=C-F;g[q+196>>2]=F+B}B=+g[q+56>>2];F=B+v;if(B>0.0){g[q+204>>2]=E+F;g[q+208>>2]=v-E}else{g[q+208>>2]=F-E;g[q+204>>2]=E+v}fd(q);break};case 86:{q=bd(c[2872]|0)|0;E=+(h<<5|16|0);g[q+24>>2]=E;g[q+28>>2]=v;F=+g[q+76>>2];B=+g[q+68>>2];C=(F>B?F:B)*.5+10.0;F=+g[q+72>>2];D=(F>B?F:B)*.5+10.0;B=+g[q+52>>2];F=B+E;if(B>0.0){g[q+196>>2]=F+D;g[q+200>>2]=E-D}else{g[q+200>>2]=F-D;g[q+196>>2]=D+E}E=+g[q+56>>2];D=E+v;if(E>0.0){g[q+204>>2]=C+D;g[q+208>>2]=v-C}else{g[q+208>>2]=D-C;g[q+204>>2]=C+v}fd(q);break};case 60:{q=bd(c[2874]|0)|0;C=+(h<<5|16|0);g[q+24>>2]=C;g[q+28>>2]=v;D=+g[q+76>>2];E=+g[q+68>>2];F=(D>E?D:E)*.5+10.0;D=+g[q+72>>2];B=(D>E?D:E)*.5+10.0;E=+g[q+52>>2];D=E+C;if(E>0.0){g[q+196>>2]=D+B;g[q+200>>2]=C-B}else{g[q+200>>2]=D-B;g[q+196>>2]=B+C}C=+g[q+56>>2];B=C+v;if(C>0.0){g[q+204>>2]=F+B;g[q+208>>2]=v-F}else{g[q+208>>2]=B-F;g[q+204>>2]=F+v}fd(q);break};case 70:{q=bd(c[2882]|0)|0;F=+(h<<5|16|0);g[q+24>>2]=F;g[q+28>>2]=v;B=+g[q+76>>2];C=+g[q+68>>2];D=(B>C?B:C)*.5+10.0;B=+g[q+72>>2];E=(B>C?B:C)*.5+10.0;C=+g[q+52>>2];B=C+F;if(C>0.0){g[q+196>>2]=B+E;g[q+200>>2]=F-E}else{g[q+200>>2]=B-E;g[q+196>>2]=E+F}F=+g[q+56>>2];E=F+v;if(F>0.0){g[q+204>>2]=D+E;g[q+208>>2]=v-D}else{g[q+208>>2]=E-D;g[q+204>>2]=D+v}fd(q);break};case 65:{q=bd(c[2870]|0)|0;D=+(h<<5|16|0);g[q+24>>2]=D;g[q+28>>2]=v;E=+g[q+76>>2];F=+g[q+68>>2];B=(E>F?E:F)*.5+10.0;E=+g[q+72>>2];C=(E>F?E:F)*.5+10.0;F=+g[q+52>>2];E=F+D;if(F>0.0){g[q+196>>2]=E+C;g[q+200>>2]=D-C}else{g[q+200>>2]=E-C;g[q+196>>2]=C+D}D=+g[q+56>>2];C=D+v;if(D>0.0){g[q+204>>2]=B+C;g[q+208>>2]=v-B}else{g[q+208>>2]=C-B;g[q+204>>2]=B+v}fd(q);break};case 62:{q=bd(c[2876]|0)|0;B=+(h<<5|16|0);g[q+24>>2]=B;g[q+28>>2]=v;C=+g[q+76>>2];D=+g[q+68>>2];E=(C>D?C:D)*.5+10.0;C=+g[q+72>>2];F=(C>D?C:D)*.5+10.0;D=+g[q+52>>2];C=D+B;if(D>0.0){g[q+196>>2]=C+F;g[q+200>>2]=B-F}else{g[q+200>>2]=C-F;g[q+196>>2]=F+B}B=+g[q+56>>2];F=B+v;if(B>0.0){g[q+204>>2]=E+F;g[q+208>>2]=v-E}else{g[q+208>>2]=F-E;g[q+204>>2]=E+v}fd(q);break};case 69:{q=bd(c[2880]|0)|0;E=+(h<<5|16|0);g[q+24>>2]=E;g[q+28>>2]=v;F=+g[q+76>>2];B=+g[q+68>>2];C=(F>B?F:B)*.5+10.0;F=+g[q+72>>2];D=(F>B?F:B)*.5+10.0;B=+g[q+52>>2];F=B+E;if(B>0.0){g[q+196>>2]=F+D;g[q+200>>2]=E-D}else{g[q+200>>2]=F-D;g[q+196>>2]=D+E}E=+g[q+56>>2];D=E+v;if(E>0.0){g[q+204>>2]=C+D;g[q+208>>2]=v-C}else{g[q+208>>2]=D-C;g[q+204>>2]=C+v}fd(q);break};case 35:{q=bd(c[2842]|0)|0;C=+(h<<5|16|0);g[q+24>>2]=C;g[q+28>>2]=v;D=+g[q+76>>2];E=+g[q+68>>2];F=(D>E?D:E)*.5+10.0;D=+g[q+72>>2];B=(D>E?D:E)*.5+10.0;E=+g[q+52>>2];D=E+C;if(E>0.0){g[q+196>>2]=D+B;g[q+200>>2]=C-B}else{g[q+200>>2]=D-B;g[q+196>>2]=B+C}C=+g[q+56>>2];B=C+v;if(C>0.0){g[q+204>>2]=F+B;g[q+208>>2]=v-F}else{g[q+208>>2]=B-F;g[q+204>>2]=F+v}fd(q);break};default:{}}}while(0);h=h+1|0;n=c[k>>2]|0;if((h|0)>=(n|0)){break c}}}}while(0);f=f+1|0}while((f|0)<(c[l>>2]|0))}Fb(b|0)|0;c[2888]=d;b=c[2456]|0;if((b|0)<=0){m=1;i=e;return m|0}l=c[2452]|0;f=0;while(1){G=c[l+(f<<2)>>2]|0;if(((G|0)!=0?(c[G+4>>2]|0)==9:0)?(c[G+176>>2]|0)==(d|0):0){break}f=f+1|0;if((f|0)>=(b|0)){m=1;t=169;break}}if((t|0)==169){i=e;return m|0}t=bd(c[2838]|0)|0;g[t+24>>2]=+g[G+24>>2];g[t+28>>2]=+g[G+28>>2];fd(t);m=1;i=e;return m|0}function Cd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;a=i;i=i+16|0;b=a;d=(c[9248>>2]|0)==1|(c[9252>>2]|0)==1?1:0;if((c[2306]|0)==1){if((c[2904]|0)==0){e=0;f=5}else{f=4}}else{g=c[2904]|0;if((c[9228>>2]|0)==1&(g|0)!=0){f=4}else{e=g;f=5}}do{if((f|0)==4){c[2904]=0;f=7}else if((f|0)==5){if((d|0)!=0){if((e|0)==0){f=7;break}else{break}}else{i=a;return}}}while(0);if((f|0)==7){c[2476]=0;c[2478]=0;c[2480]=0;c[2482]=0;c[2906]=0;c[2908]=1;c[2910]=0;Bd(0,1)|0;c[2904]=1}c[2464]=1;c[2466]=2;c[2468]=1;f=9944;c[f>>2]=0;c[f+4>>2]=0;f=9952;c[f>>2]=0;c[f+4>>2]=0;f=9960;c[f>>2]=0;c[f+4>>2]=0;f=9968;c[f>>2]=0;c[f+4>>2]=0;f=9984;c[f>>2]=0;c[f+4>>2]=0;c[2494]=0;c[2498]=0;c[1528]=1;c[1530]=1;if((c[1532]|0)!=0){i=a;return}c[1532]=1;f=5104;e=c[f+4>>2]|0;d=6136;c[d>>2]=c[f>>2];c[d+4>>2]=e;nb(b|0,0)|0;e=c[b>>2]|0;d=qe(e|0,((e|0)<0)<<31>>31|0,1e6,0)|0;e=c[b+4>>2]|0;b=ee(d|0,E|0,e|0,((e|0)<0)<<31>>31|0)|0;e=6144;c[e>>2]=b;c[e+4>>2]=E;hc(3,0,1);i=a;return}function Dd(a){a=+a;var b=0,d=0,e=0,f=0,h=0,j=0;b=i;i=i+1040|0;d=b;e=b+8|0;g[1566]=1.0;g[1568]=1.0;g[1570]=1.0;g[1572]=1.0;f=c[2908]|0;c[d>>2]=(c[2906]|0)+1;c[d+4>>2]=f;Zd(e,11864,d);g[1566]=0.0;g[1568]=0.0;g[1570]=0.0;g[1572]=.5;Wc(c[2914]|0,e,17,17);g[1566]=1.0;g[1568]=1.0;g[1570]=1.0;g[1572]=1.0;Wc(c[2914]|0,e,16,16);e=c[2910]|0;if((e|0)==1){g[1566]=0.0;g[1568]=0.0;g[1570]=0.0;g[1572]=.5;Wc(c[2914]|0,11912,301,301);g[1566]=1.0;g[1568]=0.0;g[1570]=0.0;g[1572]=1.0;Wc(c[2914]|0,11912,300,300);i=b;return}else if((e|0)==3){c[1528]=2;c[1530]=2;if((c[1532]|0)!=0){i=b;return}c[1532]=1;f=5104;h=c[f+4>>2]|0;j=6136;c[j>>2]=c[f>>2];c[j+4>>2]=h;nb(d|0,0)|0;h=c[d>>2]|0;j=qe(h|0,((h|0)<0)<<31>>31|0,1e6,0)|0;h=c[d+4>>2]|0;d=ee(j|0,E|0,h|0,((h|0)<0)<<31>>31|0)|0;h=6144;c[h>>2]=d;c[h+4>>2]=E;hc(3,0,1);i=b;return}else if((e|0)==2){g[1566]=0.0;g[1568]=0.0;g[1570]=0.0;g[1572]=.5;Wc(c[2914]|0,11880,301,301);g[1566]=1.0;g[1568]=1.0;g[1570]=0.0;g[1572]=1.0;Wc(c[2914]|0,11896,300,300);i=b;return}else{i=b;return}}function Ed(a,b){a=a|0;b=+b;var d=0,e=0,f=0,h=0.0,j=0;a=i;Tc();g[1566]=1.0;g[1568]=1.0;g[1570]=1.0;g[1572]=1.0;d=c[2912]|0;e=(c[d+4>>2]|0)+320|0;f=(c[1284]|0)-((c[d+8>>2]|0)+150)|0;b=+((c[d+12>>2]|0)+e|0);h=+(f-(c[d+16>>2]|0)|0);if((c[1280]|0)!=(d|0)){Sc();c[1280]=d}Lc(c[1278]|0,+(e|0),+(f|0),0.0,b,h,1.0);f=c[2914]|0;if((c[2904]|0)==0){Wc(f,11664,300,300);j=c[2914]|0;Wc(j,11744,200,440);i=a;return}else{Wc(f,11688,300,300);Wc(c[2914]|0,11720,300,316);j=c[2914]|0;Wc(j,11744,200,440);i=a;return}}function Fd(a){a=a|0;var b=0,d=0,e=0,f=0;a=i;i=i+16|0;b=a;if(!((c[9248>>2]|0)==1|(c[9252>>2]|0)==1|(c[9256>>2]|0)==1)){i=a;return}c[2904]=0;c[2906]=0;c[2908]=1;c[2910]=0;c[1528]=3;c[1530]=3;if((c[1532]|0)!=0){i=a;return}c[1532]=1;d=5104;e=c[d+4>>2]|0;f=6136;c[f>>2]=c[d>>2];c[f+4>>2]=e;nb(b|0,0)|0;e=c[b>>2]|0;f=qe(e|0,((e|0)<0)<<31>>31|0,1e6,0)|0;e=c[b+4>>2]|0;b=ee(f|0,E|0,e|0,((e|0)<0)<<31>>31|0)|0;e=6144;c[e>>2]=b;c[e+4>>2]=E;hc(3,0,1);i=a;return}function Gd(a,b){a=a|0;b=+b;var d=0,e=0,f=0,h=0.0;a=i;Tc();g[1566]=1.0;g[1568]=1.0;g[1570]=1.0;g[1572]=1.0;d=c[2942]|0;e=(c[d+4>>2]|0)+320|0;f=(c[1284]|0)-((c[d+8>>2]|0)+150)|0;b=+((c[d+12>>2]|0)+e|0);h=+(f-(c[d+16>>2]|0)|0);if((c[1280]|0)!=(d|0)){Sc();c[1280]=d}Lc(c[1278]|0,+(e|0),+(f|0),0.0,b,h,1.0);Wc(c[2914]|0,11776,250,320);Wc(c[2914]|0,11816,250,350);Wc(c[2914]|0,11840,300,400);i=a;return}function Hd(){return}function Id(){var a=0,b=0,d=0,e=0,f=0;a=i;i=i+16|0;b=a;a:do{if((c[2910]|0)!=0){d=0;while(1){if((c[9224+(d<<2)>>2]|0)==1){break}d=d+1|0;if((d|0)>=10){break a}}if((Bd(c[2906]|0,c[2908]|0)|0)==0){c[1528]=2;c[1530]=2;if((c[1532]|0)!=0){break}c[1532]=1;d=5104;e=c[d+4>>2]|0;f=6136;c[f>>2]=c[d>>2];c[f+4>>2]=e;nb(b|0,0)|0;e=c[b>>2]|0;f=qe(e|0,((e|0)<0)<<31>>31|0,1e6,0)|0;e=c[b+4>>2]|0;d=ee(f|0,E|0,e|0,((e|0)<0)<<31>>31|0)|0;e=6144;c[e>>2]=d;c[e+4>>2]=E;hc(3,0,1);break}if((c[2910]|0)==2){c[2476]=0;c[2478]=0;c[2480]=0;c[2482]=0}c[2910]=0}}while(0);if((c[9256>>2]|0)!=1){i=a;return}c[1528]=3;c[1530]=3;if((c[1532]|0)!=0){i=a;return}c[1532]=1;e=5104;d=c[e+4>>2]|0;f=6136;c[f>>2]=c[e>>2];c[f+4>>2]=d;nb(b|0,0)|0;d=c[b>>2]|0;f=qe(d|0,((d|0)<0)<<31>>31|0,1e6,0)|0;d=c[b+4>>2]|0;b=ee(f|0,E|0,d|0,((d|0)<0)<<31>>31|0)|0;d=6144;c[d>>2]=b;c[d+4>>2]=E;hc(3,0,1);i=a;return}function Jd(){var a=0,b=0;a=i;Ra(11928,511)|0;b=Pb(11600,11944)|0;if((b|0)==0){i=a;return}kb(11624,1,4,b|0)|0;kb(11632,1,4,b|0)|0;Fb(b|0)|0;xb(11952);i=a;return}function Kd(e,f){e=e|0;f=f|0;var 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;h=i;i=i+112|0;j=h;k=h+88|0;l=h+64|0;cb(Hb(0)|0);if((e|0)>1?(e=c[f+4>>2]|0,(a[e>>0]|0)==100):0){f=e;e=11984;do{f=f+1|0;e=e+1|0;m=a[f>>0]|0;n=a[e>>0]|0}while(!((m<<24>>24==0?1:m<<24>>24!=n<<24>>24)|n<<24>>24==0));if(m<<24>>24==n<<24>>24){c[2470]=1;Ja(12032)|0}}n=5104;c[n>>2]=66666;c[n+4>>2]=0;c[1282]=640;c[1284]=480;do{if((yb(32)|0)<0){Ja(9176)|0;c[j>>2]=ya()|0;eb(9288,j|0)|0}else{n=jb(640,480,32,201326593)|0;c[1274]=n;if((n|0)==0){Ja(9128)|0;c[j>>2]=ya()|0;eb(9288,j|0)|0;break}$b(11992,0);Ja(9032)|0;Ja(9072)|0;c[j>>2]=gb(7936)|0;eb(5144,j|0)|0;c[j>>2]=gb(7937)|0;eb(5160,j|0)|0;c[j>>2]=gb(7938)|0;eb(5176,j|0)|0;Ja(9088)|0;c[j>>2]=5192;n=Da(35633)|0;if((n|0)!=0){Oa(n|0,1,j|0,0);Kb(n|0);cc(n|0,35713,k|0);if((c[k>>2]|0)==0){Qb(n|0);o=0}else{o=n}}else{o=0}c[j>>2]=5584;n=Da(35632)|0;if((n|0)!=0){Oa(n|0,1,j|0,0);Kb(n|0);cc(n|0,35713,k|0);if((c[k>>2]|0)==0){Qb(n|0);p=0}else{p=n}}else{p=0}if(!((o|0)==0|(p|0)==0)){n=wa()|0;hb(n|0,o|0);hb(n|0,p|0);fc(n|0);Rb(n|0,35714,l|0);if((c[l>>2]|0)==0){ua(n|0);q=0}else{q=n}}else{q=0}pa(q|0);c[1500]=Ba(q|0,5984)|0;c[1506]=Ba(q|0,6008)|0;c[1510]=Ba(q|0,6032)|0;c[1516]=Xb(q|0,6048)|0;c[1524]=Xb(q|0,6072)|0;Na(1,6104);va(34962,c[1526]|0);Nb(34962,192e3,0,35048);va(34962,c[1526]|0);Ua(c[1500]|0,2,5126,0,32,0);Ua(c[1506]|0,2,5126,0,32,8);Ua(c[1510]|0,4,5126,0,32,16);Lb(c[1500]|0);Lb(c[1506]|0);Lb(c[1510]|0);zb(c[1516]|0,0);g[j>>2]=2.0/+(c[1282]|0);g[j+4>>2]=0.0;g[j+8>>2]=0.0;g[j+12>>2]=-1.0;g[j+16>>2]=0.0;g[j+20>>2]=2.0/+(c[1284]|0);g[j+24>>2]=0.0;g[j+28>>2]=-1.0;g[j+32>>2]=0.0;g[j+36>>2]=0.0;g[j+40>>2]=1.0;n=j+44|0;m=j+60|0;c[n+0>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;g[m>>2]=1.0;sa(c[1524]|0,1,0,j|0);db(3042);Aa(770,771);m=Pd(12)|0;c[m>>2]=Pd(12800)|0;c[m+4>>2]=0;c[m+8>>2]=400;c[1278]=m;g[1566]=1.0;g[1568]=1.0;g[1570]=1.0;g[1572]=1.0;Ga(512)|0;r=9224|0;s=r+40|0;do{c[r>>2]=0;r=r+4|0}while((r|0)<(s|0));do{if((Ga(16)|0)<0){Ja(9504)|0;c[j>>2]=ya()|0;eb(9288,j|0)|0}else{c[k>>2]=44100;b[k+4>>1]=-32752;a[k+6>>0]=2;b[k+8>>1]=2048;c[k+16>>2]=1;if((bb(k|0,l|0)|0)<0){Ja(9464)|0;c[j>>2]=ya()|0;eb(9288,j|0)|0;break}m=c[l+4>>2]|0;if(((m&65535)<<16>>16==-32752?(c[l>>2]|0)==44100:0)?(m&16711680|0)==131072:0){Vb(0);break}Ja(9408)|0;Sb()}}while(0);c[2472]=640;c[2474]=480;c[2476]=0;c[2478]=0;c[2480]=0;c[2482]=0;c[2484]=66}}while(0);c[2912]=Vc(12e3)|0;c[2942]=Vc(12016)|0;l=Pd(20)|0;k=Pd(24)|0;q=Pd(65536)|0;c[k>>2]=q;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=2048;c[k+16>>2]=8;c[k+20>>2]=-1;p=0;do{o=p<<3;m=0;do{n=(m<<11)+o|0;e=d[6296+(m+o)>>0]|0;f=0;do{t=n+f<<2;a[q+t>>0]=-1;a[q+(t|1)>>0]=-1;a[q+(t|2)>>0]=-1;a[q+(t|3)>>0]=((1<<7-f&e|0)!=0)<<31>>31;f=f+1|0}while((f|0)!=8);m=m+1|0}while((m|0)!=8);p=p+1|0}while((p|0)!=256);c[l>>2]=k;c[l+4>>2]=8;c[l+8>>2]=8;c[l+12>>2]=0;c[l+16>>2]=256;c[2914]=l;l=Vc(10280)|0;c[2574]=l;c[l+4>>2]=-16;c[l+8>>2]=-32;l=Vc(10304)|0;c[2582]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(10336)|0;c[2588]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(10360)|0;c[2596]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(10392)|0;c[2604]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(10424)|0;c[2612]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(10456)|0;c[2618]=l;c[l+4>>2]=-16;c[l+8>>2]=-80;l=Vc(10480)|0;c[2626]=l;c[l+4>>2]=-16;c[l+8>>2]=-80;l=Vc(10512)|0;c[2632]=l;c[l+4>>2]=-16;c[l+8>>2]=-32;l=Vc(10536)|0;c[2638]=l;c[l+4>>2]=-16;c[l+8>>2]=-48;l=Vc(10560)|0;c[2646]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(10592)|0;if((l|0)==0){Sa()}k=Pd(24)|0;c[k>>2]=l;c[k+4>>2]=32;g[k+8>>2]=5.0;c[k+12>>2]=2;c[k+16>>2]=200;c[k+20>>2]=400;c[2654]=k;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(10624)|0;c[2536]=l;c[l+4>>2]=-16;c[l+8>>2]=-48;l=Vc(10648)|0;c[2538]=l;c[l+4>>2]=-16;c[l+8>>2]=-48;l=Vc(10672)|0;c[2542]=l;c[l+4>>2]=-16;c[l+8>>2]=-48;l=Vc(10696)|0;c[2540]=l;c[l+4>>2]=-16;c[l+8>>2]=-48;l=Vc(10720)|0;c[2566]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(10744)|0;if((l|0)==0){Sa()}k=Pd(24)|0;c[k>>2]=l;c[k+4>>2]=32;g[k+8>>2]=5.0;c[k+12>>2]=2;c[k+16>>2]=200;c[k+20>>2]=400;c[2564]=k;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(10776)|0;if((l|0)==0){Sa()}k=Pd(24)|0;c[k>>2]=l;c[k+4>>2]=32;g[k+8>>2]=10.0;c[k+12>>2]=2;c[k+16>>2]=100;c[k+20>>2]=200;c[2700]=k;c[l+4>>2]=-16;c[l+8>>2]=-48;l=Vc(10808)|0;c[2708]=l;c[l+4>>2]=-16;c[l+8>>2]=-32;l=Vc(10840)|0;c[2718]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(10880)|0;c[2728]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(10920)|0;c[2738]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(10960)|0;c[2748]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(11e3)|0;c[2756]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(11032)|0;c[2764]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(11064)|0;c[2772]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(11096)|0;c[2780]=l;c[l+4>>2]=-16;c[l+8>>2]=-16;l=Vc(11128)|0;if((l|0)==0){Sa()}k=Pd(24)|0;c[k>>2]=l;c[k+4>>2]=32;g[k+8>>2]=5.0;c[k+12>>2]=3;c[k+16>>2]=200;c[k+20>>2]=600;c[2786]=k;c[l+4>>2]=-16;c[l+8>>2]=-48;l=Vc(11152)|0;c[2794]=l;c[l+4>>2]=-16;c[l+8>>2]=-48;c[2556]=$c(11184)|0;c[2568]=$c(11208)|0;c[2562]=$c(11232)|0;c[2558]=$c(11256)|0;c[2552]=$c(11280)|0;c[2548]=$c(11304)|0;c[2544]=$c(11328)|0;l=c[2448]|0;if((l|0)==0){u=Pd(216)|0}else{c[2448]=c[l+212>>2];u=l}c[u>>2]=0;c[u+4>>2]=0;l=u+16|0;k=u+32|0;c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[u+36>>2]=1;l=u+40|0;p=u+68|0;c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;g[p>>2]=1.0;g[u+72>>2]=1.0;g[u+76>>2]=1.0;p=u+80|0;l=u+84|0;c[u+116>>2]=0;q=u+132|0;c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+24>>2]=0;g[q>>2]=1.0;g[u+128>>2]=1.0;g[u+124>>2]=1.0;g[u+120>>2]=1.0;q=u+148|0;l=u+144|0;m=u+140|0;o=u+136|0;c[u+212>>2]=0;r=u+152|0;s=r+44|0;do{c[r>>2]=0;r=r+4|0}while((r|0)<(s|0));g[p>>2]=-1.0;c[k>>2]=0;g[o>>2]=0.0;g[m>>2]=0.0;g[l>>2]=0.0;g[q>>2]=1.0;q=bd(u)|0;c[2838]=q;c[q+4>>2]=0;g[q+68>>2]=16.0;g[q+72>>2]=24.0;g[q+76>>2]=24.0;g[q+80>>2]=30.0;g[q+88>>2]=2.5;g[q+92>>2]=.30000001192092896;c[q+32>>2]=25;g[q+136>>2]=.4000000059604645;g[q+140>>2]=.4000000059604645;g[q+144>>2]=.4000000059604645;g[q+148>>2]=96.0;l=c[2538]|0;c[q+104>>2]=0;c[q+108>>2]=l;c[q+116>>2]=0;c[q+160>>2]=1;c[q+168>>2]=1;q=bd(u)|0;c[2840]=q;c[q+4>>2]=1;c[q+32>>2]=9;g[q+68>>2]=16.0;g[q+72>>2]=24.0;g[q+76>>2]=24.0;g[q+80>>2]=25.0;g[q+88>>2]=2.0;g[q+92>>2]=.5;c[q+160>>2]=2;l=c[2574]|0;c[q+104>>2]=0;c[q+108>>2]=l;c[q+116>>2]=0;q=bd(u)|0;c[2842]=q;c[q+4>>2]=2;c[q+32>>2]=1;g[q+68>>2]=12.0;g[q+72>>2]=24.0;g[q+76>>2]=24.0;l=c[2618]|0;c[q+104>>2]=0;c[q+108>>2]=l;c[q+116>>2]=0;l=bd(q)|0;c[2844]=l;q=c[2626]|0;c[l+104>>2]=0;c[l+108>>2]=q;c[l+116>>2]=0;l=bd(c[2842]|0)|0;c[2846]=l;q=c[2632]|0;c[l+104>>2]=0;c[l+108>>2]=q;c[l+116>>2]=0;c[l+32>>2]=1;q=bd(l)|0;c[2848]=q;l=c[2638]|0;c[q+104>>2]=0;c[q+108>>2]=l;c[q+116>>2]=0;c[q+32>>2]=17;g[q+136>>2]=.4000000059604645;g[q+140>>2]=.4000000059604645;g[q+144>>2]=.4000000059604645;g[q+148>>2]=160.0;q=bd(u)|0;c[2850]=q;c[q+4>>2]=3;c[q+36>>2]=-1;c[q+32>>2]=0;l=c[2588]|0;c[q+104>>2]=0;c[q+108>>2]=l;c[q+116>>2]=0;l=bd(q)|0;c[2852]=l;q=c[2596]|0;c[l+104>>2]=0;c[l+108>>2]=q;c[l+116>>2]=0;l=bd(c[2850]|0)|0;c[2854]=l;q=c[2604]|0;c[l+104>>2]=0;c[l+108>>2]=q;c[l+116>>2]=0;l=bd(c[2850]|0)|0;c[2856]=l;q=c[2612]|0;c[l+104>>2]=0;c[l+108>>2]=q;c[l+116>>2]=0;l=bd(u)|0;c[2858]=l;c[l+4>>2]=4;c[l+36>>2]=-1;c[l+32>>2]=8;g[l+68>>2]=18.0;q=c[2646]|0;c[l+104>>2]=0;c[l+108>>2]=q;c[l+116>>2]=0;c[l+172>>2]=3;l=bd(u)|0;c[2546]=l;c[l+4>>2]=5;c[l+36>>2]=-1;c[l+32>>2]=0;q=c[2582]|0;c[l+104>>2]=0;c[l+108>>2]=q;c[l+116>>2]=0;l=bd(u)|0;c[2860]=l;c[l+4>>2]=6;c[l+36>>2]=-1;c[l+32>>2]=24;g[l+68>>2]=18.0;q=c[2654]|0;c[l+112>>2]=0;m=l+104|0;if((c[m>>2]|0)!=(q|0)){c[m>>2]=q;c[l+108>>2]=0;c[l+116>>2]=0}g[l+136>>2]=1.0;g[l+140>>2]=0.0;g[l+144>>2]=0.0;g[l+148>>2]=128.0;c[l+152>>2]=4;c[l+172>>2]=4;l=bd(u)|0;c[2862]=l;c[l+4>>2]=8;c[l+32>>2]=17;g[l+136>>2]=.20000000298023224;g[l+140>>2]=.20000000298023224;g[l+144>>2]=.20000000298023224;g[l+148>>2]=64.0;g[l+68>>2]=4.0;g[l+80>>2]=.10000000149011612;c[l+168>>2]=2;c[l+160>>2]=5;c[l+176>>2]=120;q=c[2756]|0;c[l+104>>2]=0;c[l+108>>2]=q;c[l+116>>2]=0;g[l+52>>2]=0.0;g[l+56>>2]=-16.0;q=bd(l)|0;c[2864]=q;l=c[2764]|0;c[q+104>>2]=0;c[q+108>>2]=l;c[q+116>>2]=0;g[q+52>>2]=0.0;g[q+56>>2]=16.0;q=bd(c[2862]|0)|0;c[2866]=q;l=c[2772]|0;c[q+104>>2]=0;c[q+108>>2]=l;c[q+116>>2]=0;g[q+52>>2]=-16.0;g[q+56>>2]=0.0;q=bd(c[2862]|0)|0;c[2868]=q;l=c[2780]|0;c[q+104>>2]=0;c[q+108>>2]=l;c[q+116>>2]=0;g[q+52>>2]=16.0;g[q+56>>2]=0.0;q=bd(u)|0;c[2870]=q;c[q+4>>2]=7;c[q+32>>2]=1;g[q+68>>2]=15.0;c[q+152>>2]=5;c[q+160>>2]=6;l=c[2718]|0;c[q+104>>2]=0;c[q+108>>2]=l;c[q+116>>2]=0;c[q+192>>2]=c[2862];l=bd(q)|0;c[2872]=l;q=c[2728]|0;c[l+104>>2]=0;c[l+108>>2]=q;c[l+116>>2]=0;c[l+192>>2]=c[2864];l=bd(c[2870]|0)|0;c[2874]=l;q=c[2738]|0;c[l+104>>2]=0;c[l+108>>2]=q;c[l+116>>2]=0;c[l+192>>2]=c[2866];l=bd(c[2870]|0)|0;c[2876]=l;q=c[2748]|0;c[l+104>>2]=0;c[l+108>>2]=q;c[l+116>>2]=0;c[l+192>>2]=c[2868];l=bd(u)|0;c[2878]=l;c[l+4>>2]=9;g[l+40>>2]=-5.0;c[l+32>>2]=24;g[l+68>>2]=20.0;g[l+136>>2]=0.0;g[l+140>>2]=0.0;g[l+144>>2]=.5;g[l+148>>2]=64.0;q=c[2566]|0;c[l+104>>2]=0;c[l+108>>2]=q;c[l+116>>2]=0;c[l+172>>2]=7;c[l+156>>2]=6;l=bd(u)|0;c[2880]=l;c[l+4>>2]=10;c[l+32>>2]=24;g[l+136>>2]=.5;g[l+140>>2]=.5;g[l+144>>2]=.5;g[l+148>>2]=160.0;g[l+68>>2]=20.0;q=c[2700]|0;c[l+112>>2]=0;m=l+104|0;if((c[m>>2]|0)!=(q|0)){c[m>>2]=q;c[l+108>>2]=0;c[l+116>>2]=0}c[l+172>>2]=8;q=bd(l)|0;c[2882]=q;l=c[2708]|0;c[q+104>>2]=0;c[q+108>>2]=l;c[q+116>>2]=0;c[q+172>>2]=9;q=bd(u)|0;c[2884]=q;c[q+36>>2]=0;c[q+4>>2]=11;c[q+32>>2]=24;g[q+136>>2]=.5;g[q+140>>2]=.5;g[q+144>>2]=.5;g[q+148>>2]=160.0;g[q+68>>2]=20.0;l=c[2566]|0;c[q+104>>2]=0;c[q+108>>2]=l;c[q+116>>2]=0;c[q+172>>2]=10;q=bd(u)|0;c[2886]=q;c[q+36>>2]=0;c[q+4>>2]=12;c[q+32>>2]=0;l=c[2566]|0;c[q+104>>2]=0;c[q+108>>2]=l;c[q+116>>2]=0;q=bd(u)|0;c[2554]=q;c[q+4>>2]=13;c[q+32>>2]=16;g[q+136>>2]=1.0;g[q+140>>2]=0.0;g[q+144>>2]=0.0;g[q+148>>2]=96.0;l=c[2786]|0;c[q+112>>2]=0;m=q+104|0;if((c[m>>2]|0)!=(l|0)){c[m>>2]=l;c[q+108>>2]=0;c[q+116>>2]=0}c[q+160>>2]=5;c[q+176>>2]=15;g[q+40>>2]=1.0;q=bd(u)|0;c[2550]=q;c[q+4>>2]=13;c[q+32>>2]=0;u=c[2794]|0;c[q+104>>2]=0;c[q+108>>2]=u;c[q+116>>2]=0;Ra(11928,511)|0;q=Pb(11600,11936)|0;do{if((q|0)!=0){ra(11624,1,4,q|0)|0;ra(11632,1,4,q|0)|0;u=c[2906]|0;l=c[2908]|0;if((u|0)==0&(l|0)==1){c[2904]=0;break}else{Bd(u,l)|0;c[2904]=1;Fb(q|0)|0;break}}}while(0);c[1528]=3;c[1530]=3;if((c[1532]|0)!=0){i=h;return 0}c[1532]=1;q=5104;l=c[q+4>>2]|0;u=6136;c[u>>2]=c[q>>2];c[u+4>>2]=l;nb(j|0,0)|0;l=c[j>>2]|0;u=qe(l|0,((l|0)<0)<<31>>31|0,1e6,0)|0;l=c[j+4>>2]|0;j=ee(u|0,E|0,l|0,((l|0)<0)<<31>>31|0)|0;l=6144;c[l>>2]=j;c[l+4>>2]=E;hc(3,0,1);i=h;return 0}function Ld(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=i;i=i+16|0;g=f;c[g>>2]=b;h=(e|0)==0?12264:e;e=c[h>>2]|0;a:do{if((d|0)==0){if((e|0)==0){j=0;i=f;return j|0}}else{if((b|0)==0){c[g>>2]=g;k=g}else{k=b}l=a[d>>0]|0;m=l&255;b:do{if((e|0)==0){if(l<<24>>24>-1){c[k>>2]=m;j=l<<24>>24!=0&1;i=f;return j|0}else{n=m+ -194|0;if(n>>>0>50){break a}o=c[12056+(n<<2)>>2]|0;break}}else{n=m>>>3;if((n+ -16|n+(e>>26))>>>0>7){break a}else{p=1;q=l;r=e;s=d}while(1){s=s+1|0;r=(q&255)+ -128|r<<6;n=p+ -1|0;if((r|0)>=0){break}if((n|0)==0){o=r;break b}q=a[s>>0]|0;if(((q&255)+ -128|0)>>>0>63){break a}else{p=n}}c[h>>2]=0;c[k>>2]=r;j=2-p|0;i=f;return j|0}}while(0);c[h>>2]=o;j=-2;i=f;return j|0}}while(0);c[h>>2]=0;c[(ic()|0)>>2]=84;j=-1;i=f;return j|0}function Md(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;f=i;g=b+84|0;h=c[g>>2]|0;j=e+256|0;k=h;l=(j|0)==0;a:do{if((k&3|0)==0|l){m=j;n=l;o=h;p=4}else{q=j;r=h;while(1){if((a[r>>0]|0)==0){s=q;t=r;break a}u=r+1|0;v=q+ -1|0;w=(v|0)==0;if((u&3|0)==0|w){m=v;n=w;o=u;p=4;break}else{q=v;r=u}}}}while(0);b:do{if((p|0)==4){if(!n){if((a[o>>0]|0)!=0){c:do{if(m>>>0>3){l=m;r=o;while(1){q=c[r>>2]|0;if(((q&-2139062144^-2139062144)&q+ -16843009|0)!=0){x=l;y=r;break c}q=r+4|0;u=l+ -4|0;if(u>>>0>3){l=u;r=q}else{x=u;y=q;break}}}else{x=m;y=o}}while(0);if((x|0)==0){s=0;t=y}else{r=x;l=y;while(1){if((a[l>>0]|0)==0){s=r;t=l;break b}q=l+1|0;r=r+ -1|0;if((r|0)==0){s=0;t=q;break}else{l=q}}}}else{s=m;t=o}}else{s=0;t=o}}}while(0);o=(s|0)!=0?t:0;if((o|0)==0){z=j}else{z=o-k|0}k=z>>>0<e>>>0?z:e;ie(d|0,h|0,k|0)|0;c[b+4>>2]=h+k;d=h+z|0;c[b+8>>2]=d;c[g>>2]=d;i=f;return k|0}function Nd(e,f,j){e=e|0;f=f|0;j=j|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=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,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0.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,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0.0,zb=0,Ab=0.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.0,Ob=0,Pb=0.0,Qb=0,Rb=0,Sb=0.0,Tb=0,Ub=0.0,Vb=0.0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0.0,$b=0,ac=0.0,bc=0,cc=0,dc=0,ec=0.0,fc=0,gc=0,hc=0.0,jc=0.0,kc=0.0,mc=0,nc=0.0,oc=0,pc=0.0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_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,Md=0,Nd=0,Od=0,Sd=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0.0,ae=0,be=0,ce=0,fe=0.0,ie=0,ke=0.0,le=0.0,me=0.0,ne=0.0,oe=0.0,pe=0.0,te=0.0,ue=0,ve=0,we=0.0,xe=0,ye=0.0,ze=0,Ae=0.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,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0;l=i;i=i+944|0;m=l+160|0;n=l;o=l+16|0;p=l+673|0;q=l+40|0;r=l+672|0;s=l+48|0;v=l+24|0;c[v>>2]=j;j=s+0|0;w=j+112|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(w|0));c[s+32>>2]=2;c[s+44>>2]=e;c[s+76>>2]=-1;c[s+84>>2]=e;e=a[f>>0]|0;if(e<<24>>24==0){i=l;return}j=s+4|0;w=s+100|0;x=s+108|0;y=s+8|0;z=p+10|0;A=p+33|0;B=o+4|0;C=p+46|0;D=p+94|0;F=s+104|0;G=m+496|0;H=e;e=0;I=f;f=0;J=0;K=0;a:while(1){b:do{if(!(H<<24>>24==32)?!(((H&255)+ -9|0)>>>0<5):0){L=H<<24>>24==37;c:do{if(L){M=I+1|0;N=a[M>>0]|0;do{if(N<<24>>24==42){O=0;Q=I+2|0}else if(N<<24>>24==37){break c}else{R=(N&255)+ -48|0;if(R>>>0<10?(a[I+2>>0]|0)==36:0){c[n>>2]=c[v>>2];S=R;while(1){R=c[n>>2]|0;T=c[R>>2]|0;c[n>>2]=R+4;if(S>>>0>1){S=S+ -1|0}else{break}}O=T;Q=I+3|0;break}S=c[v>>2]|0;R=c[S>>2]|0;c[v>>2]=S+4;O=R;Q=M}}while(0);M=a[Q>>0]|0;N=M&255;if((N+ -48|0)>>>0<10){R=N;N=Q;S=0;while(1){U=(S*10|0)+ -48+R|0;V=N+1|0;W=a[V>>0]|0;R=W&255;if(!((R+ -48|0)>>>0<10)){X=W;Y=V;Z=U;break}else{N=V;S=U}}}else{X=M;Y=Q;Z=0}if(X<<24>>24==109){S=Y+1|0;_=a[S>>0]|0;$=(O|0)!=0&1;ba=S}else{_=X;$=0;ba=Y}S=ba+1|0;switch(_&255|0){case 104:{N=(a[S>>0]|0)==104;ca=N?ba+2|0:S;da=N?-2:-1;break};case 76:{ca=S;da=2;break};case 116:case 122:{ca=S;da=1;break};case 106:{ca=S;da=3;break};case 108:{N=(a[S>>0]|0)==108;ca=N?ba+2|0:S;da=N?3:1;break};case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{ca=ba;da=0;break};default:{ea=J;fa=K;ga=527;break a}}N=d[ca>>0]|0;S=(N&47|0)==3;R=S?N|32:N;N=S?1:da;if((R|0)==110){if((O|0)==0){ha=e;ia=ca;ja=f;ka=J;la=K;break b}switch(N|0){case-2:{a[O>>0]=f;ha=e;ia=ca;ja=f;ka=J;la=K;break b;break};case-1:{b[O>>1]=f;ha=e;ia=ca;ja=f;ka=J;la=K;break b;break};case 0:{c[O>>2]=f;ha=e;ia=ca;ja=f;ka=J;la=K;break b;break};case 1:{c[O>>2]=f;ha=e;ia=ca;ja=f;ka=J;la=K;break b;break};case 3:{S=O;c[S>>2]=f;c[S+4>>2]=((f|0)<0)<<31>>31;ha=e;ia=ca;ja=f;ka=J;la=K;break b;break};default:{ha=e;ia=ca;ja=f;ka=J;la=K;break b}}}else if((R|0)==99){ma=f;na=(Z|0)<1?1:Z}else if((R|0)==91){ma=f;na=Z}else{c[F>>2]=0;S=c[y>>2]|0;U=c[j>>2]|0;c[x>>2]=S-U;c[w>>2]=S;V=U;U=S;while(1){if(V>>>0<U>>>0){c[j>>2]=V+1;oa=d[V>>0]|0}else{oa=Ud(s)|0}if(!((oa|0)==32|(oa+ -9|0)>>>0<5)){break}V=c[j>>2]|0;U=c[w>>2]|0}U=c[j>>2]|0;if((c[w>>2]|0)==0){pa=U}else{V=U+ -1|0;c[j>>2]=V;pa=V}ma=(c[x>>2]|0)+f+pa-(c[y>>2]|0)|0;na=Z}c[F>>2]=na;V=c[y>>2]|0;U=c[j>>2]|0;M=V-U|0;c[x>>2]=M;if((na|0)!=0&(M|0)>(na|0)){qa=U+na|0}else{qa=V}c[w>>2]=qa;if(U>>>0<qa>>>0){c[j>>2]=U+1;ra=qa}else{if((Ud(s)|0)<0){ea=J;fa=K;ga=527;break a}ra=c[w>>2]|0}if((ra|0)!=0){c[j>>2]=(c[j>>2]|0)+ -1}d:do{switch(R|0){case 91:case 99:case 115:{U=(R|0)==99;e:do{if((R&239|0)==99){he(p|0,-1,257)|0;a[p>>0]=0;if((R|0)==115){a[A>>0]=0;a[z+0>>0]=0;a[z+1>>0]=0;a[z+2>>0]=0;a[z+3>>0]=0;a[z+4>>0]=0;sa=ca}else{sa=ca}}else{V=ca+1|0;M=(a[V>>0]|0)==94;S=M&1;W=M?ca+2|0:V;he(p|0,M&1|0,257)|0;a[p>>0]=0;M=a[W>>0]|0;if(M<<24>>24==93){V=(S^1)&255;a[D>>0]=V;ta=V;ua=W+1|0}else if(M<<24>>24==45){M=(S^1)&255;a[C>>0]=M;ta=M;ua=W+1|0}else{ta=(S^1)&255;ua=W}W=ua;while(1){S=a[W>>0]|0;if(S<<24>>24==93){sa=W;break e}else if(S<<24>>24==45){M=W+1|0;V=a[M>>0]|0;if(!(V<<24>>24==93|V<<24>>24==0)){va=a[W+ -1>>0]|0;if((va&255)<(V&255)){wa=va&255;do{wa=wa+1|0;a[p+wa>>0]=ta;va=a[M>>0]|0}while((wa|0)<(va&255|0));xa=va;ya=M}else{xa=V;ya=M}}else{xa=45;ya=W}}else if(S<<24>>24==0){ea=J;fa=K;ga=527;break a}else{xa=S;ya=W}a[p+((xa&255)+1)>>0]=ta;W=ya+1|0}}}while(0);W=U?na+1|0:31;wa=(N|0)==1;va=($|0)!=0;f:do{if(wa){if(va){za=Pd(W<<2)|0;if((za|0)==0){ea=0;fa=za;ga=527;break a}else{Aa=za}}else{Aa=O}c[o>>2]=0;c[B>>2]=0;za=0;Ba=W;Ca=Aa;g:while(1){if((Ca|0)==0){Da=va&(za|0)==(Ba|0);while(1){Ea=c[j>>2]|0;if(Ea>>>0<(c[w>>2]|0)>>>0){c[j>>2]=Ea+1;Fa=d[Ea>>0]|0}else{Fa=Ud(s)|0}if((a[p+(Fa+1)>>0]|0)==0){Ga=za;Ha=0;break g}a[r>>0]=Fa;Ea=Ld(q,r,o)|0;if((Ea|0)==-2){continue}else if((Ea|0)==-1){ea=0;fa=0;ga=527;break a}if(Da){Ia=za;break}}}else{if(va){Ja=za}else{Ka=za;ga=104;break}while(1){while(1){Da=c[j>>2]|0;if(Da>>>0<(c[w>>2]|0)>>>0){c[j>>2]=Da+1;La=d[Da>>0]|0}else{La=Ud(s)|0}if((a[p+(La+1)>>0]|0)==0){Ga=Ja;Ha=Ca;break g}a[r>>0]=La;Da=Ld(q,r,o)|0;if((Da|0)==-1){ea=0;fa=Ca;ga=527;break a}else if(!((Da|0)==-2)){break}}c[Ca+(Ja<<2)>>2]=c[q>>2];Ja=Ja+1|0;if((Ja|0)==(Ba|0)){Ia=Ba;break}}}Da=Ba<<1|1;S=Rd(Ca,Da<<2)|0;if((S|0)==0){ea=0;fa=Ca;ga=527;break a}za=Ia;Ba=Da;Ca=S}h:do{if((ga|0)==104){while(1){ga=0;while(1){Ba=c[j>>2]|0;if(Ba>>>0<(c[w>>2]|0)>>>0){c[j>>2]=Ba+1;Ma=d[Ba>>0]|0}else{Ma=Ud(s)|0}if((a[p+(Ma+1)>>0]|0)==0){Ga=Ka;Ha=Ca;break h}a[r>>0]=Ma;Ba=Ld(q,r,o)|0;if((Ba|0)==-1){ga=529;break a}else if(!((Ba|0)==-2)){break}}c[Ca+(Ka<<2)>>2]=c[q>>2];Ka=Ka+1|0;ga=104}}}while(0);if((c[o>>2]|0)==0){Na=Ga;Oa=0;Pa=Ha}else{ea=0;fa=Ha;ga=527;break a}}else{if(va){Ca=Pd(W)|0;if((Ca|0)==0){ea=0;fa=0;ga=527;break a}else{Qa=0;Ra=W;Sa=Ca}while(1){Ca=Qa;do{Ba=c[j>>2]|0;if(Ba>>>0<(c[w>>2]|0)>>>0){c[j>>2]=Ba+1;Ua=d[Ba>>0]|0}else{Ua=Ud(s)|0}if((a[p+(Ua+1)>>0]|0)==0){Na=Ca;Oa=Sa;Pa=0;break f}a[Sa+Ca>>0]=Ua;Ca=Ca+1|0}while((Ca|0)!=(Ra|0));Ca=Ra<<1|1;Ba=Rd(Sa,Ca)|0;if((Ba|0)==0){ea=Sa;fa=0;ga=527;break a}else{za=Ra;Ra=Ca;Sa=Ba;Qa=za}}}if((O|0)==0){za=ra;while(1){Ba=c[j>>2]|0;if(Ba>>>0<za>>>0){c[j>>2]=Ba+1;Va=d[Ba>>0]|0}else{Va=Ud(s)|0}if((a[p+(Va+1)>>0]|0)==0){Na=0;Oa=0;Pa=0;break f}za=c[w>>2]|0}}else{za=ra;Ba=0;while(1){Ca=c[j>>2]|0;if(Ca>>>0<za>>>0){c[j>>2]=Ca+1;Wa=d[Ca>>0]|0}else{Wa=Ud(s)|0}if((a[p+(Wa+1)>>0]|0)==0){Na=Ba;Oa=O;Pa=0;break f}a[O+Ba>>0]=Wa;za=c[w>>2]|0;Ba=Ba+1|0}}}}while(0);W=c[j>>2]|0;if((c[w>>2]|0)==0){Xa=W}else{Ba=W+ -1|0;c[j>>2]=Ba;Xa=Ba}Ba=Xa-(c[y>>2]|0)+(c[x>>2]|0)|0;if((Ba|0)==0){ea=Oa;fa=Pa;ga=527;break a}if(!((Ba|0)==(na|0)|U^1)){ea=Oa;fa=Pa;ga=527;break a}do{if(va){if(wa){c[O>>2]=Pa;break}else{c[O>>2]=Oa;break}}}while(0);if(U){Ya=sa;Za=Oa;_a=Pa}else{if((Pa|0)!=0){c[Pa+(Na<<2)>>2]=0}if((Oa|0)==0){Ya=sa;Za=0;_a=Pa;break d}a[Oa+Na>>0]=0;Ya=sa;Za=Oa;_a=Pa}break};case 120:case 88:case 112:{$a=16;ga=150;break};case 117:case 100:{$a=10;ga=150;break};case 111:{$a=8;ga=150;break};case 105:{$a=0;ga=150;break};case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{if((N|0)==1){ab=53;bb=-1074;ga=240}else if((N|0)==2){ab=53;bb=-1074;ga=240}else if((N|0)==0){ab=24;bb=-149;ga=240}else{cb=0.0}i:do{if((ga|0)==240){ga=0;wa=ra;while(1){va=c[j>>2]|0;if(va>>>0<wa>>>0){c[j>>2]=va+1;db=d[va>>0]|0}else{db=Ud(s)|0}if(!((db|0)==32|(db+ -9|0)>>>0<5)){break}wa=c[w>>2]|0}do{if((db|0)==43|(db|0)==45){wa=1-(((db|0)==45&1)<<1)|0;va=c[j>>2]|0;if(va>>>0<(c[w>>2]|0)>>>0){c[j>>2]=va+1;eb=d[va>>0]|0;fb=wa;break}else{eb=Ud(s)|0;fb=wa;break}}else{eb=db;fb=1}}while(0);wa=eb;va=0;while(1){if((wa|32|0)!=(a[13048+va>>0]|0)){gb=wa;hb=va;break}do{if(va>>>0<7){Ba=c[j>>2]|0;if(Ba>>>0<(c[w>>2]|0)>>>0){c[j>>2]=Ba+1;ib=d[Ba>>0]|0;break}else{ib=Ud(s)|0;break}}else{ib=wa}}while(0);Ba=va+1|0;if(Ba>>>0<8){wa=ib;va=Ba}else{gb=ib;hb=Ba;break}}j:do{if((hb|0)==0){va=gb;wa=0;while(1){if((va|32|0)!=(a[13632+wa>>0]|0)){jb=va;kb=wa;break j}do{if(wa>>>0<2){Ba=c[j>>2]|0;if(Ba>>>0<(c[w>>2]|0)>>>0){c[j>>2]=Ba+1;lb=d[Ba>>0]|0;break}else{lb=Ud(s)|0;break}}else{lb=va}}while(0);Ba=wa+1|0;if(Ba>>>0<3){va=lb;wa=Ba}else{jb=lb;kb=Ba;break}}}else if((hb|0)==3){if((c[w>>2]|0)==0){ga=260}else{c[j>>2]=(c[j>>2]|0)+ -1;ga=260}}else if((hb|0)==8){ga=260}else{jb=gb;kb=hb}}while(0);if((ga|0)==260){ga=0;cb=+(fb|0)*u;break}if((kb|0)==0){do{if((jb|0)==48){wa=c[j>>2]|0;if(wa>>>0<(c[w>>2]|0)>>>0){c[j>>2]=wa+1;mb=d[wa>>0]|0}else{mb=Ud(s)|0}if((mb|32|0)!=120){if((c[w>>2]|0)==0){nb=48;break}c[j>>2]=(c[j>>2]|0)+ -1;nb=48;break}wa=c[j>>2]|0;if(wa>>>0<(c[w>>2]|0)>>>0){c[j>>2]=wa+1;ob=d[wa>>0]|0;pb=0}else{ob=Ud(s)|0;pb=0}while(1){if((ob|0)==46){ga=298;break}else if((ob|0)!=48){qb=0;rb=0;sb=0;tb=0;ub=ob;vb=pb;wb=0;xb=0;yb=1.0;zb=0;Ab=0.0;break}wa=c[j>>2]|0;if(wa>>>0<(c[w>>2]|0)>>>0){c[j>>2]=wa+1;ob=d[wa>>0]|0;pb=1;continue}else{ob=Ud(s)|0;pb=1;continue}}k:do{if((ga|0)==298){ga=0;wa=c[j>>2]|0;if(wa>>>0<(c[w>>2]|0)>>>0){c[j>>2]=wa+1;Bb=d[wa>>0]|0}else{Bb=Ud(s)|0}if((Bb|0)==48){Cb=-1;Db=-1}else{qb=0;rb=0;sb=0;tb=0;ub=Bb;vb=pb;wb=1;xb=0;yb=1.0;zb=0;Ab=0.0;break}while(1){wa=c[j>>2]|0;if(wa>>>0<(c[w>>2]|0)>>>0){c[j>>2]=wa+1;Eb=d[wa>>0]|0}else{Eb=Ud(s)|0}if((Eb|0)!=48){qb=0;rb=0;sb=Cb;tb=Db;ub=Eb;vb=1;wb=1;xb=0;yb=1.0;zb=0;Ab=0.0;break k}wa=ee(Cb|0,Db|0,-1,-1)|0;Cb=wa;Db=E}}}while(0);l:while(1){wa=ub+ -48|0;do{if(!(wa>>>0<10)){va=ub|32;Ba=(ub|0)==46;if(!((va+ -97|0)>>>0<6|Ba)){Fb=ub;break l}if(Ba){if((wb|0)==0){Gb=rb;Hb=qb;Ib=rb;Jb=qb;Kb=vb;Lb=1;Mb=xb;Nb=yb;Ob=zb;Pb=Ab;break}else{Fb=46;break l}}else{Qb=(ub|0)>57?va+ -87|0:wa;ga=312;break}}else{Qb=wa;ga=312}}while(0);if((ga|0)==312){ga=0;do{if((qb|0)<0|(qb|0)==0&rb>>>0<8){Rb=xb;Sb=yb;Tb=Qb+(zb<<4)|0;Ub=Ab}else{if((qb|0)<0|(qb|0)==0&rb>>>0<14){Vb=yb*.0625;Rb=xb;Sb=Vb;Tb=zb;Ub=Ab+Vb*+(Qb|0);break}if(!((Qb|0)!=0&(xb|0)==0)){Rb=xb;Sb=yb;Tb=zb;Ub=Ab;break}Rb=1;Sb=yb;Tb=zb;Ub=Ab+yb*.5}}while(0);wa=ee(rb|0,qb|0,1,0)|0;Gb=sb;Hb=tb;Ib=wa;Jb=E;Kb=1;Lb=wb;Mb=Rb;Nb=Sb;Ob=Tb;Pb=Ub}wa=c[j>>2]|0;if(wa>>>0<(c[w>>2]|0)>>>0){c[j>>2]=wa+1;qb=Jb;rb=Ib;sb=Gb;tb=Hb;ub=d[wa>>0]|0;vb=Kb;wb=Lb;xb=Mb;yb=Nb;zb=Ob;Ab=Pb;continue}else{qb=Jb;rb=Ib;sb=Gb;tb=Hb;ub=Ud(s)|0;vb=Kb;wb=Lb;xb=Mb;yb=Nb;zb=Ob;Ab=Pb;continue}}if((vb|0)==0){wa=c[j>>2]|0;if((c[w>>2]|0)==0){Wb=wa}else{va=wa+ -1|0;c[j>>2]=va;Wb=va}c[F>>2]=0;va=c[y>>2]|0;c[x>>2]=va-Wb;c[w>>2]=va;cb=+(fb|0)*0.0;break i}va=(wb|0)==0;wa=va?rb:sb;Ba=va?qb:tb;if((qb|0)<0|(qb|0)==0&rb>>>0<8){va=rb;W=qb;za=zb;while(1){Ca=za<<4;va=ee(va|0,W|0,1,0)|0;W=E;if(!((W|0)<0|(W|0)==0&va>>>0<8)){Xb=Ca;break}else{za=Ca}}}else{Xb=zb}do{if((Fb|32|0)==112){za=Td(s,0)|0;va=E;if(!((za|0)==0&(va|0)==-2147483648)){Yb=za;Zb=va;break}c[F>>2]=0;va=c[y>>2]|0;c[x>>2]=va-(c[j>>2]|0);c[w>>2]=va;cb=0.0;break i}else{if((c[w>>2]|0)==0){Yb=0;Zb=0;break}c[j>>2]=(c[j>>2]|0)+ -1;Yb=0;Zb=0}}while(0);va=je(wa|0,Ba|0,2)|0;za=ee(va|0,E|0,-32,-1)|0;va=ee(za|0,E|0,Yb|0,Zb|0)|0;za=E;if((Xb|0)==0){cb=+(fb|0)*0.0;break i}if((za|0)>0|(za|0)==0&va>>>0>(0-bb|0)>>>0){c[(ic()|0)>>2]=34;cb=+(fb|0)*1.7976931348623157e+308*1.7976931348623157e+308;break i}W=bb+ -106|0;Ca=((W|0)<0)<<31>>31;if((za|0)<(Ca|0)|(za|0)==(Ca|0)&va>>>0<W>>>0){c[(ic()|0)>>2]=34;cb=+(fb|0)*2.2250738585072014e-308*2.2250738585072014e-308;break i}if((Xb|0)>-1){W=va;Ca=za;S=Xb;Vb=Ab;while(1){Da=S<<1;if(!(Vb>=.5)){_b=Vb;$b=Da}else{_b=Vb+-1.0;$b=Da|1}ac=Vb+_b;Da=ee(W|0,Ca|0,-1,-1)|0;M=E;if(($b|0)>-1){W=Da;Ca=M;S=$b;Vb=ac}else{bc=Da;cc=M;dc=$b;ec=ac;break}}}else{bc=va;cc=za;dc=Xb;ec=Ab}S=de(32,0,bb|0,((bb|0)<0)<<31>>31|0)|0;Ca=ee(bc|0,cc|0,S|0,E|0)|0;S=E;if(0>(S|0)|0==(S|0)&ab>>>0>Ca>>>0){fc=(Ca|0)<0?0:Ca}else{fc=ab}do{if((fc|0)<53){Ca=84-fc|0;do{if((Ca|0)>1023){S=Ca+ -1023|0;if((S|0)<=1023){gc=S;hc=8.98846567431158e+307;break}S=Ca+ -2046|0;gc=(S|0)>1023?1023:S;hc=u}else{if(!((Ca|0)<-1022)){gc=Ca;hc=1.0;break}S=Ca+1022|0;if(!((S|0)<-1022)){gc=S;hc=2.2250738585072014e-308;break}S=Ca+2044|0;gc=(S|0)<-1022?-1022:S;hc=0.0}}while(0);Ca=je(gc+1023|0,0,52)|0;S=E;c[k>>2]=Ca;c[k+4>>2]=S;Vb=+(fb|0);ac=+lc(+(hc*+h[k>>3]),+Vb);if(!((fc|0)<32&ec!=0.0)){jc=Vb;kc=ac;mc=dc;nc=ec;break}S=dc&1;jc=Vb;kc=ac;mc=(S^1)+dc|0;nc=(S|0)==0?0.0:ec}else{jc=+(fb|0);kc=0.0;mc=dc;nc=ec}}while(0);ac=jc*nc+(kc+jc*+(mc>>>0))-kc;if(!(ac!=0.0)){c[(ic()|0)>>2]=34}do{if((bc|0)>1023){Vb=ac*8.98846567431158e+307;za=bc+ -1023|0;if((za|0)<=1023){oc=za;pc=Vb;break}za=bc+ -2046|0;oc=(za|0)>1023?1023:za;pc=Vb*8.98846567431158e+307}else{if(!((bc|0)<-1022)){oc=bc;pc=ac;break}Vb=ac*2.2250738585072014e-308;za=bc+1022|0;if(!((za|0)<-1022)){oc=za;pc=Vb;break}za=bc+2044|0;oc=(za|0)<-1022?-1022:za;pc=Vb*2.2250738585072014e-308}}while(0);za=je(oc+1023|0,0,52)|0;va=E;c[k>>2]=za;c[k+4>>2]=va;cb=pc*+h[k>>3];break i}else{nb=jb}}while(0);va=bb+ab|0;za=0-va|0;S=nb;Ca=0;while(1){if((S|0)==46){ga=371;break}else if((S|0)!=48){qc=S;rc=0;sc=0;tc=Ca;uc=0;break}W=c[j>>2]|0;if(W>>>0<(c[w>>2]|0)>>>0){c[j>>2]=W+1;S=d[W>>0]|0;Ca=1;continue}else{S=Ud(s)|0;Ca=1;continue}}m:do{if((ga|0)==371){ga=0;S=c[j>>2]|0;if(S>>>0<(c[w>>2]|0)>>>0){c[j>>2]=S+1;vc=d[S>>0]|0}else{vc=Ud(s)|0}if((vc|0)==48){S=-1;W=-1;while(1){Ba=c[j>>2]|0;if(Ba>>>0<(c[w>>2]|0)>>>0){c[j>>2]=Ba+1;wc=d[Ba>>0]|0}else{wc=Ud(s)|0}if((wc|0)!=48){qc=wc;rc=S;sc=W;tc=1;uc=1;break m}Ba=ee(S|0,W|0,-1,-1)|0;S=Ba;W=E}}else{qc=vc;rc=0;sc=0;tc=Ca;uc=1}}}while(0);c[m>>2]=0;Ca=qc+ -48|0;W=(qc|0)==46;n:do{if(Ca>>>0<10|W){S=qc;Ba=W;wa=Ca;M=rc;Da=sc;V=0;Ea=0;xc=tc;yc=uc;zc=0;Ac=0;Bc=0;while(1){do{if(Ba){if((yc|0)==0){Cc=V;Dc=Ea;Ec=V;Fc=Ea;Gc=xc;Hc=1;Ic=zc;Jc=Ac;Kc=Bc}else{Lc=S;Mc=M;Nc=Da;Oc=V;Pc=Ea;Qc=xc;Rc=zc;Sc=Ac;Tc=Bc;break n}}else{Uc=ee(V|0,Ea|0,1,0)|0;Vc=E;Wc=(S|0)!=48;if((Ac|0)>=125){if(!Wc){Cc=M;Dc=Da;Ec=Uc;Fc=Vc;Gc=xc;Hc=yc;Ic=zc;Jc=Ac;Kc=Bc;break}c[G>>2]=c[G>>2]|1;Cc=M;Dc=Da;Ec=Uc;Fc=Vc;Gc=xc;Hc=yc;Ic=zc;Jc=Ac;Kc=Bc;break}Xc=m+(Ac<<2)|0;if((zc|0)==0){Yc=wa}else{Yc=S+ -48+((c[Xc>>2]|0)*10|0)|0}c[Xc>>2]=Yc;Xc=zc+1|0;Zc=(Xc|0)==9;Cc=M;Dc=Da;Ec=Uc;Fc=Vc;Gc=1;Hc=yc;Ic=Zc?0:Xc;Jc=(Zc&1)+Ac|0;Kc=Wc?Uc:Bc}}while(0);Uc=c[j>>2]|0;if(Uc>>>0<(c[w>>2]|0)>>>0){c[j>>2]=Uc+1;_c=d[Uc>>0]|0}else{_c=Ud(s)|0}wa=_c+ -48|0;Ba=(_c|0)==46;if(!(wa>>>0<10|Ba)){$c=_c;ad=Ec;bd=Cc;cd=Fc;dd=Dc;ed=Gc;fd=Hc;gd=Ic;hd=Jc;id=Kc;ga=393;break}else{S=_c;M=Cc;Da=Dc;V=Ec;Ea=Fc;xc=Gc;yc=Hc;zc=Ic;Ac=Jc;Bc=Kc}}}else{$c=qc;ad=0;bd=rc;cd=0;dd=sc;ed=tc;fd=uc;gd=0;hd=0;id=0;ga=393}}while(0);if((ga|0)==393){ga=0;Ca=(fd|0)==0;Lc=$c;Mc=Ca?ad:bd;Nc=Ca?cd:dd;Oc=ad;Pc=cd;Qc=ed;Rc=gd;Sc=hd;Tc=id}Ca=(Qc|0)!=0;do{if(Ca){if((Lc|32|0)!=101){ga=399;break}W=Td(s,0)|0;Bc=E;if((W|0)==0&(Bc|0)==-2147483648){c[F>>2]=0;Ac=c[y>>2]|0;c[x>>2]=Ac-(c[j>>2]|0);c[w>>2]=Ac;cb=0.0;break i}else{Ac=ee(W|0,Bc|0,Mc|0,Nc|0)|0;jd=Ac;kd=E;break}}else{ga=399}}while(0);do{if((ga|0)==399){ga=0;if(!((Lc|0)>-1)){jd=Mc;kd=Nc;break}if((c[w>>2]|0)==0){jd=Mc;kd=Nc;break}c[j>>2]=(c[j>>2]|0)+ -1;jd=Mc;kd=Nc}}while(0);if(!Ca){c[(ic()|0)>>2]=22;c[F>>2]=0;Ac=c[y>>2]|0;c[x>>2]=Ac-(c[j>>2]|0);c[w>>2]=Ac;cb=0.0;break}Ac=c[m>>2]|0;if((Ac|0)==0){cb=+(fb|0)*0.0;break}do{if((jd|0)==(Oc|0)&(kd|0)==(Pc|0)&((Pc|0)<0|(Pc|0)==0&Oc>>>0<10)){if(!(ab>>>0>30)?(Ac>>>ab|0)!=0:0){break}cb=+(fb|0)*+(Ac>>>0);break i}}while(0);Ac=(bb|0)/-2|0;Ca=((Ac|0)<0)<<31>>31;if((kd|0)>(Ca|0)|(kd|0)==(Ca|0)&jd>>>0>Ac>>>0){c[(ic()|0)>>2]=34;cb=+(fb|0)*1.7976931348623157e+308*1.7976931348623157e+308;break}Ac=bb+ -106|0;Ca=((Ac|0)<0)<<31>>31;if((kd|0)<(Ca|0)|(kd|0)==(Ca|0)&jd>>>0<Ac>>>0){c[(ic()|0)>>2]=34;cb=+(fb|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if((Rc|0)==0){ld=Sc}else{if((Rc|0)<9){Ac=m+(Sc<<2)|0;Ca=c[Ac>>2]|0;Bc=Rc;do{Ca=Ca*10|0;Bc=Bc+1|0}while((Bc|0)!=9);c[Ac>>2]=Ca}ld=Sc+1|0}do{if((Tc|0)<9){if(!((Tc|0)<=(jd|0)&(jd|0)<18)){break}if((jd|0)==9){cb=+(fb|0)*+((c[m>>2]|0)>>>0);break i}if((jd|0)<9){cb=+(fb|0)*+((c[m>>2]|0)>>>0)/+(c[13072+(8-jd<<2)>>2]|0);break i}Bc=ab+27+(aa(jd,-3)|0)|0;W=c[m>>2]|0;if((Bc|0)<=30?(W>>>Bc|0)!=0:0){break}cb=+(fb|0)*+(W>>>0)*+(c[13072+(jd+ -10<<2)>>2]|0);break i}}while(0);Ca=(jd|0)%9|0;if((Ca|0)==0){md=0;nd=0;od=jd;pd=ld}else{Ac=(jd|0)>-1?Ca:Ca+9|0;Ca=c[13072+(8-Ac<<2)>>2]|0;do{if((ld|0)==0){qd=0;rd=jd;sd=0}else{W=1e9/(Ca|0)|0;Bc=0;zc=0;yc=0;xc=jd;while(1){Ea=m+(yc<<2)|0;V=c[Ea>>2]|0;Da=((V>>>0)/(Ca>>>0)|0)+zc|0;c[Ea>>2]=Da;zc=aa((V>>>0)%(Ca>>>0)|0,W)|0;V=yc;yc=yc+1|0;if((V|0)==(Bc|0)&(Da|0)==0){td=yc&127;ud=xc+ -9|0}else{td=Bc;ud=xc}if((yc|0)==(ld|0)){break}else{Bc=td;xc=ud}}if((zc|0)==0){qd=td;rd=ud;sd=ld;break}c[m+(ld<<2)>>2]=zc;qd=td;rd=ud;sd=ld+1|0}}while(0);md=qd;nd=0;od=9-Ac+rd|0;pd=sd}o:while(1){Ca=m+(md<<2)|0;if((od|0)<18){xc=nd;Bc=pd;while(1){yc=0;W=Bc+127|0;Da=Bc;while(1){V=W&127;Ea=m+(V<<2)|0;M=je(c[Ea>>2]|0,0,29)|0;S=ee(M|0,E|0,yc|0,0)|0;M=E;if(M>>>0>0|(M|0)==0&S>>>0>1e9){Ba=re(S|0,M|0,1e9,0)|0;wa=se(S|0,M|0,1e9,0)|0;vd=wa;wd=Ba}else{vd=S;wd=0}c[Ea>>2]=vd;Ea=(V|0)==(md|0);if((V|0)!=(Da+127&127|0)|Ea){xd=Da}else{xd=(vd|0)==0?V:Da}if(Ea){break}else{yc=wd;W=V+ -1|0;Da=xd}}Da=xc+ -29|0;if((wd|0)==0){xc=Da;Bc=xd}else{yd=Da;zd=wd;Ad=xd;break}}}else{if((od|0)==18){Bd=nd;Cd=pd}else{Dd=md;Ed=nd;Fd=od;Gd=pd;break}while(1){if(!((c[Ca>>2]|0)>>>0<9007199)){Dd=md;Ed=Bd;Fd=18;Gd=Cd;break o}Bc=0;xc=Cd+127|0;zc=Cd;while(1){Da=xc&127;W=m+(Da<<2)|0;yc=je(c[W>>2]|0,0,29)|0;V=ee(yc|0,E|0,Bc|0,0)|0;yc=E;if(yc>>>0>0|(yc|0)==0&V>>>0>1e9){Ea=re(V|0,yc|0,1e9,0)|0;S=se(V|0,yc|0,1e9,0)|0;Hd=S;Id=Ea}else{Hd=V;Id=0}c[W>>2]=Hd;W=(Da|0)==(md|0);if((Da|0)!=(zc+127&127|0)|W){Jd=zc}else{Jd=(Hd|0)==0?Da:zc}if(W){break}else{Bc=Id;xc=Da+ -1|0;zc=Jd}}zc=Bd+ -29|0;if((Id|0)==0){Bd=zc;Cd=Jd}else{yd=zc;zd=Id;Ad=Jd;break}}}Ca=md+127&127;if((Ca|0)==(Ad|0)){zc=Ad+127&127;xc=m+((Ad+126&127)<<2)|0;c[xc>>2]=c[xc>>2]|c[m+(zc<<2)>>2];Kd=zc}else{Kd=Ad}c[m+(Ca<<2)>>2]=zd;md=Ca;nd=yd;od=od+9|0;pd=Kd}p:while(1){Md=Gd+1&127;Ac=m+((Gd+127&127)<<2)|0;Ca=Dd;zc=Ed;xc=Fd;while(1){Bc=(xc|0)==18;Da=(xc|0)>27?9:1;Nd=Ca;Od=zc;while(1){W=0;while(1){V=W+Nd&127;if((V|0)==(Gd|0)){Sd=2;break}Ea=c[m+(V<<2)>>2]|0;V=c[13064+(W<<2)>>2]|0;if(Ea>>>0<V>>>0){Sd=2;break}S=W+1|0;if(Ea>>>0>V>>>0){Sd=W;break}if((S|0)<2){W=S}else{Sd=S;break}}if((Sd|0)==2&Bc){break p}Vd=Da+Od|0;if((Nd|0)==(Gd|0)){Nd=Gd;Od=Vd}else{break}}Bc=(1<<Da)+ -1|0;W=1e9>>>Da;Wd=Nd;Xd=0;S=Nd;Yd=xc;do{V=m+(S<<2)|0;Ea=c[V>>2]|0;yc=(Ea>>>Da)+Xd|0;c[V>>2]=yc;Xd=aa(Ea&Bc,W)|0;Ea=(S|0)==(Wd|0)&(yc|0)==0;S=S+1&127;Yd=Ea?Yd+ -9|0:Yd;Wd=Ea?S:Wd}while((S|0)!=(Gd|0));if((Xd|0)==0){Ca=Wd;zc=Vd;xc=Yd;continue}if((Md|0)!=(Wd|0)){break}c[Ac>>2]=c[Ac>>2]|1;Ca=Wd;zc=Vd;xc=Yd}c[m+(Gd<<2)>>2]=Xd;Dd=Wd;Ed=Vd;Fd=Yd;Gd=Md}xc=Nd&127;if((xc|0)==(Gd|0)){c[m+(Md+ -1<<2)>>2]=0;Zd=Md}else{Zd=Gd}ac=+((c[m+(xc<<2)>>2]|0)>>>0);xc=Nd+1&127;if((xc|0)==(Zd|0)){zc=Zd+1&127;c[m+(zc+ -1<<2)>>2]=0;_d=zc}else{_d=Zd}Vb=+(fb|0);$d=Vb*(ac*1.0e9+ +((c[m+(xc<<2)>>2]|0)>>>0));xc=Od+53|0;zc=xc-bb|0;if((zc|0)<(ab|0)){ae=(zc|0)<0?0:zc;be=1}else{ae=ab;be=0}if((ae|0)<53){Ca=105-ae|0;do{if((Ca|0)>1023){Ac=Ca+ -1023|0;if((Ac|0)<=1023){ce=Ac;fe=8.98846567431158e+307;break}Ac=Ca+ -2046|0;ce=(Ac|0)>1023?1023:Ac;fe=u}else{if(!((Ca|0)<-1022)){ce=Ca;fe=1.0;break}Ac=Ca+1022|0;if(!((Ac|0)<-1022)){ce=Ac;fe=2.2250738585072014e-308;break}Ac=Ca+2044|0;ce=(Ac|0)<-1022?-1022:Ac;fe=0.0}}while(0);Ca=je(ce+1023|0,0,52)|0;Ac=E;c[k>>2]=Ca;c[k+4>>2]=Ac;ac=+lc(+(fe*+h[k>>3]),+$d);Ac=53-ae|0;do{if((Ac|0)>1023){Ca=Ac+ -1023|0;if((Ca|0)<=1023){ie=Ca;ke=8.98846567431158e+307;break}Ca=Ac+ -2046|0;ie=(Ca|0)>1023?1023:Ca;ke=u}else{if(!((Ac|0)<-1022)){ie=Ac;ke=1.0;break}Ca=Ac+1022|0;if(!((Ca|0)<-1022)){ie=Ca;ke=2.2250738585072014e-308;break}Ca=Ac+2044|0;ie=(Ca|0)<-1022?-1022:Ca;ke=0.0}}while(0);Ac=je(ie+1023|0,0,52)|0;Ca=E;c[k>>2]=Ac;c[k+4>>2]=Ca;le=+Ta(+$d,+(ke*+h[k>>3]));me=ac;ne=le;oe=ac+($d-le)}else{me=0.0;ne=0.0;oe=$d}Ca=Nd+2&127;do{if((Ca|0)==(_d|0)){pe=ne}else{Ac=c[m+(Ca<<2)>>2]|0;do{if(!(Ac>>>0<5e8)){if(Ac>>>0>5e8){te=Vb*.75+ne;break}if((Nd+3&127|0)==(_d|0)){te=Vb*.5+ne;break}else{te=Vb*.75+ne;break}}else{if((Ac|0)==0?(Nd+3&127|0)==(_d|0):0){te=ne;break}te=Vb*.25+ne}}while(0);if((53-ae|0)<=1){pe=te;break}if(+Ta(+te,1.0)!=0.0){pe=te;break}pe=te+1.0}}while(0);Vb=oe+pe-me;do{if((xc&2147483647|0)>(-2-va|0)){if(!(+P(+Vb)>=9007199254740992.0)){ue=be;ve=Od;we=Vb}else{ue=(be|0)!=0&(ae|0)==(zc|0)?0:be;ve=Od+1|0;we=Vb*.5}if((ve+50|0)<=(za|0)?!((ue|0)!=0&pe!=0.0):0){xe=ve;ye=we;break}c[(ic()|0)>>2]=34;xe=ve;ye=we}else{xe=Od;ye=Vb}}while(0);do{if((xe|0)>1023){Vb=ye*8.98846567431158e+307;za=xe+ -1023|0;if((za|0)<=1023){ze=za;Ae=Vb;break}za=xe+ -2046|0;ze=(za|0)>1023?1023:za;Ae=Vb*8.98846567431158e+307}else{if(!((xe|0)<-1022)){ze=xe;Ae=ye;break}Vb=ye*2.2250738585072014e-308;za=xe+1022|0;if(!((za|0)<-1022)){ze=za;Ae=Vb;break}za=xe+2044|0;ze=(za|0)<-1022?-1022:za;Ae=Vb*2.2250738585072014e-308}}while(0);za=je(ze+1023|0,0,52)|0;zc=E;c[k>>2]=za;c[k+4>>2]=zc;cb=Ae*+h[k>>3];break}else if((kb|0)==3){zc=c[j>>2]|0;if(zc>>>0<(c[w>>2]|0)>>>0){c[j>>2]=zc+1;Be=d[zc>>0]|0}else{Be=Ud(s)|0}if((Be|0)!=40){if((c[w>>2]|0)==0){cb=t;break}c[j>>2]=(c[j>>2]|0)+ -1;cb=t;break}while(1){zc=c[j>>2]|0;if(zc>>>0<(c[w>>2]|0)>>>0){c[j>>2]=zc+1;Ce=d[zc>>0]|0}else{Ce=Ud(s)|0}if((Ce+ -48|0)>>>0<10|(Ce+ -65|0)>>>0<26){continue}if(!((Ce+ -97|0)>>>0<26|(Ce|0)==95)){break}}if((Ce|0)==41){cb=t;break}zc=c[j>>2]|0;if((c[w>>2]|0)==0){De=zc}else{za=zc+ -1|0;c[j>>2]=za;De=za}c[(ic()|0)>>2]=22;c[F>>2]=0;za=c[y>>2]|0;c[x>>2]=za-De;c[w>>2]=za;cb=0.0;break}else{za=c[j>>2]|0;if((c[w>>2]|0)==0){Ee=za}else{zc=za+ -1|0;c[j>>2]=zc;Ee=zc}c[(ic()|0)>>2]=22;c[F>>2]=0;zc=c[y>>2]|0;c[x>>2]=zc-Ee;c[w>>2]=zc;cb=0.0;break}}}while(0);if((c[x>>2]|0)==((c[y>>2]|0)-(c[j>>2]|0)|0)){ea=J;fa=K;ga=527;break a}if((O|0)!=0){if((N|0)==1){h[O>>3]=cb;Ya=ca;Za=J;_a=K;break d}else if((N|0)==0){g[O>>2]=cb;Ya=ca;Za=J;_a=K;break d}else if((N|0)==2){h[O>>3]=cb;Ya=ca;Za=J;_a=K;break d}else{Ya=ca;Za=J;_a=K;break d}}else{Ya=ca;Za=J;_a=K}break};default:{Ya=ca;Za=J;_a=K}}}while(0);q:do{if((ga|0)==150){ga=0;U=ra;while(1){zc=c[j>>2]|0;if(zc>>>0<U>>>0){c[j>>2]=zc+1;Fe=d[zc>>0]|0}else{Fe=Ud(s)|0}if(!((Fe|0)==32|(Fe+ -9|0)>>>0<5)){break}U=c[w>>2]|0}do{if((Fe|0)==43|(Fe|0)==45){U=((Fe|0)==45)<<31>>31;zc=c[j>>2]|0;if(zc>>>0<(c[w>>2]|0)>>>0){c[j>>2]=zc+1;Ge=d[zc>>0]|0;He=U;break}else{Ge=Ud(s)|0;He=U;break}}else{Ge=Fe;He=0}}while(0);U=($a|0)==0;do{if(($a&10|0)==0&(Ge|0)==48){zc=c[j>>2]|0;if(zc>>>0<(c[w>>2]|0)>>>0){c[j>>2]=zc+1;Ie=d[zc>>0]|0}else{Ie=Ud(s)|0}if((Ie|32|0)!=120){Je=U?8:$a;Ke=Ie;ga=177;break}zc=c[j>>2]|0;if(zc>>>0<(c[w>>2]|0)>>>0){c[j>>2]=zc+1;Le=d[zc>>0]|0}else{Le=Ud(s)|0}if((d[Le+12769>>0]|0)>15){zc=c[j>>2]|0;if((c[w>>2]|0)==0){Me=zc}else{za=zc+ -1|0;c[j>>2]=za;Me=za}c[F>>2]=0;za=c[y>>2]|0;c[x>>2]=za-Me;c[w>>2]=za;Ne=Me;Oe=za;Pe=0;Qe=0}else{Re=16;Se=Le;ga=192}}else{za=U?10:$a;if((d[Ge+12769>>0]|0)>>>0<za>>>0){Je=za;Ke=Ge;ga=177}else{za=c[j>>2]|0;if((c[w>>2]|0)==0){Te=za}else{zc=za+ -1|0;c[j>>2]=zc;Te=zc}c[F>>2]=0;zc=c[y>>2]|0;c[x>>2]=zc-Te;c[w>>2]=zc;c[(ic()|0)>>2]=22;Ne=Te;Oe=zc;Pe=0;Qe=0}}}while(0);if((ga|0)==177){ga=0;if((Je|0)==10){U=Ke+ -48|0;if(U>>>0<10){zc=U;U=0;while(1){Ue=U+zc|0;za=c[j>>2]|0;if(za>>>0<(c[w>>2]|0)>>>0){c[j>>2]=za+1;Ve=d[za>>0]|0}else{Ve=Ud(s)|0}za=Ve+ -48|0;if(!(za>>>0<10&Ue>>>0<429496729)){break}zc=za;U=Ue*10|0}We=Ue;Xe=0;Ye=Ve}else{We=0;Xe=0;Ye=Ke}U=Ye+ -48|0;if(U>>>0<10){zc=We;za=Xe;va=U;U=Ye;while(1){xc=qe(zc|0,za|0,10,0)|0;Ca=E;Ac=((va|0)<0)<<31>>31;S=~Ac;if(Ca>>>0>S>>>0|(Ca|0)==(S|0)&xc>>>0>~va>>>0){Ze=va;_e=zc;$e=za;af=U;break}S=ee(xc|0,Ca|0,va|0,Ac|0)|0;Ac=E;Ca=c[j>>2]|0;if(Ca>>>0<(c[w>>2]|0)>>>0){c[j>>2]=Ca+1;bf=d[Ca>>0]|0}else{bf=Ud(s)|0}Ca=bf+ -48|0;if(Ca>>>0<10&(Ac>>>0<429496729|(Ac|0)==429496729&S>>>0<2576980378)){zc=S;za=Ac;va=Ca;U=bf}else{Ze=Ca;_e=S;$e=Ac;af=bf;break}}if(Ze>>>0>9){cf=_e;df=$e;ga=224}else{ef=10;ff=_e;gf=$e;hf=af;ga=218}}else{cf=We;df=Xe;ga=224}}else{Re=Je;Se=Ke;ga=192}}r:do{if((ga|0)==192){ga=0;if((Re+ -1&Re|0)==0){U=a[13032+((Re*23|0)>>>5&7)>>0]|0;va=a[Se+12769>>0]|0;za=va&255;if(za>>>0<Re>>>0){zc=za;za=0;do{za=zc|za<<U;Ac=c[j>>2]|0;if(Ac>>>0<(c[w>>2]|0)>>>0){c[j>>2]=Ac+1;jf=d[Ac>>0]|0}else{jf=Ud(s)|0}kf=a[jf+12769>>0]|0;zc=kf&255}while(zc>>>0<Re>>>0&za>>>0<134217728);lf=kf;mf=0;nf=za;of=jf}else{lf=va;mf=0;nf=0;of=Se}zc=ge(-1,-1,U|0)|0;Ac=E;if((lf&255)>>>0>=Re>>>0|(mf>>>0>Ac>>>0|(mf|0)==(Ac|0)&nf>>>0>zc>>>0)){ef=Re;ff=nf;gf=mf;hf=of;ga=218;break}else{pf=nf;qf=mf;rf=lf}while(1){S=je(pf|0,qf|0,U|0)|0;Ca=E;xc=rf&255|S;S=c[j>>2]|0;if(S>>>0<(c[w>>2]|0)>>>0){c[j>>2]=S+1;sf=d[S>>0]|0}else{sf=Ud(s)|0}rf=a[sf+12769>>0]|0;if((rf&255)>>>0>=Re>>>0|(Ca>>>0>Ac>>>0|(Ca|0)==(Ac|0)&xc>>>0>zc>>>0)){ef=Re;ff=xc;gf=Ca;hf=sf;ga=218;break r}else{pf=xc;qf=Ca}}}zc=a[Se+12769>>0]|0;Ac=zc&255;if(Ac>>>0<Re>>>0){U=Ac;Ac=0;do{Ac=U+(aa(Ac,Re)|0)|0;va=c[j>>2]|0;if(va>>>0<(c[w>>2]|0)>>>0){c[j>>2]=va+1;tf=d[va>>0]|0}else{tf=Ud(s)|0}uf=a[tf+12769>>0]|0;U=uf&255}while(U>>>0<Re>>>0&Ac>>>0<119304647);vf=Ac;wf=0;xf=uf;yf=tf}else{vf=0;wf=0;xf=zc;yf=Se}if((xf&255)>>>0<Re>>>0){U=re(-1,-1,Re|0,0)|0;va=E;za=wf;Ca=vf;xc=xf;S=yf;while(1){if(za>>>0>va>>>0|(za|0)==(va|0)&Ca>>>0>U>>>0){ef=Re;ff=Ca;gf=za;hf=S;ga=218;break r}W=qe(Ca|0,za|0,Re|0,0)|0;Bc=E;Da=xc&255;if(Bc>>>0>4294967295|(Bc|0)==-1&W>>>0>~Da>>>0){ef=Re;ff=Ca;gf=za;hf=S;ga=218;break r}Ea=ee(Da|0,0,W|0,Bc|0)|0;Bc=E;W=c[j>>2]|0;if(W>>>0<(c[w>>2]|0)>>>0){c[j>>2]=W+1;zf=d[W>>0]|0}else{zf=Ud(s)|0}xc=a[zf+12769>>0]|0;if(!((xc&255)>>>0<Re>>>0)){ef=Re;ff=Ea;gf=Bc;hf=zf;ga=218;break}else{za=Bc;Ca=Ea;S=zf}}}else{ef=Re;ff=vf;gf=wf;hf=yf;ga=218}}}while(0);if((ga|0)==218){ga=0;if((d[hf+12769>>0]|0)>>>0<ef>>>0){do{S=c[j>>2]|0;if(S>>>0<(c[w>>2]|0)>>>0){c[j>>2]=S+1;Af=d[S>>0]|0}else{Af=Ud(s)|0}}while((d[Af+12769>>0]|0)>>>0<ef>>>0);c[(ic()|0)>>2]=34;cf=-1;df=-1;ga=224}else{cf=ff;df=gf;ga=224}}if((ga|0)==224){ga=0;S=c[j>>2]|0;if((c[w>>2]|0)==0){Bf=S}else{Ca=S+ -1|0;c[j>>2]=Ca;Bf=Ca}Ca=((He|0)<0)<<31>>31;S=de(cf^He|0,df^Ca|0,He|0,Ca|0)|0;Ne=Bf;Oe=c[y>>2]|0;Pe=S;Qe=E}if((c[x>>2]|0)==(Oe-Ne|0)){ea=J;fa=K;ga=527;break a}S=(O|0)==0;if(!((R|0)!=112|S)){c[O>>2]=Pe;Ya=ca;Za=J;_a=K;break}if(S){Ya=ca;Za=J;_a=K}else{switch(N|0){case-2:{a[O>>0]=Pe;Ya=ca;Za=J;_a=K;break q;break};case-1:{b[O>>1]=Pe;Ya=ca;Za=J;_a=K;break q;break};case 3:{S=O;c[S>>2]=Pe;c[S+4>>2]=Qe;Ya=ca;Za=J;_a=K;break q;break};case 1:{c[O>>2]=Pe;Ya=ca;Za=J;_a=K;break q;break};case 0:{c[O>>2]=Pe;Ya=ca;Za=J;_a=K;break q;break};default:{Ya=ca;Za=J;_a=K;break q}}}}}while(0);ha=((O|0)!=0&1)+e|0;ia=Ya;ja=(c[x>>2]|0)+ma+(c[j>>2]|0)-(c[y>>2]|0)|0;ka=Za;la=_a;break b}}while(0);N=I+(L&1)|0;c[F>>2]=0;R=c[y>>2]|0;S=c[j>>2]|0;c[x>>2]=R-S;c[w>>2]=R;if(S>>>0<R>>>0){c[j>>2]=S+1;Cf=d[S>>0]|0}else{Cf=Ud(s)|0}if((Cf|0)!=(d[N>>0]|0)){ga=22;break a}ha=e;ia=N;ja=f+1|0;ka=J;la=K}else{Df=I;ga=5}}while(0);if((ga|0)==5){while(1){ga=0;N=Df+1|0;S=a[N>>0]|0;if(S<<24>>24==32){Df=N;ga=5;continue}if(((S&255)+ -9|0)>>>0<5){Df=N;ga=5}else{break}}c[F>>2]=0;N=c[y>>2]|0;S=c[j>>2]|0;c[x>>2]=N-S;c[w>>2]=N;R=S;S=N;while(1){if(R>>>0<S>>>0){c[j>>2]=R+1;Ef=d[R>>0]|0}else{Ef=Ud(s)|0}if(!((Ef|0)==32|(Ef+ -9|0)>>>0<5)){break}R=c[j>>2]|0;S=c[w>>2]|0}S=c[j>>2]|0;if((c[w>>2]|0)==0){Ff=S}else{R=S+ -1|0;c[j>>2]=R;Ff=R}ha=e;ia=Df;ja=(c[x>>2]|0)+f+Ff-(c[y>>2]|0)|0;ka=J;la=K}I=ia+1|0;H=a[I>>0]|0;if(H<<24>>24==0){ga=529;break}else{e=ha;f=ja;J=ka;K=la}}if((ga|0)==22){if((c[w>>2]|0)==0){i=l;return}c[j>>2]=(c[j>>2]|0)+ -1;i=l;return}else if((ga|0)==527){if(($|0)==0){i=l;return}Qd(ea);Qd(fa);i=l;return}else if((ga|0)==529){i=l;return}}function Od(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i;e=Md(a,b,c)|0;i=d;return e|0}function Pd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,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,Aa=0,Ba=0,Ca=0,Da=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0;b=i;do{if(a>>>0<245){if(a>>>0<11){d=16}else{d=a+11&-8}e=d>>>3;f=c[3068]|0;g=f>>>e;if((g&3|0)!=0){h=(g&1^1)+e|0;j=h<<1;k=12312+(j<<2)|0;l=12312+(j+2<<2)|0;j=c[l>>2]|0;m=j+8|0;n=c[m>>2]|0;do{if((k|0)!=(n|0)){if(n>>>0<(c[12288>>2]|0)>>>0){Mb()}o=n+12|0;if((c[o>>2]|0)==(j|0)){c[o>>2]=k;c[l>>2]=n;break}else{Mb()}}else{c[3068]=f&~(1<<h)}}while(0);n=h<<3;c[j+4>>2]=n|3;l=j+(n|4)|0;c[l>>2]=c[l>>2]|1;p=m;i=b;return p|0}if(d>>>0>(c[12280>>2]|0)>>>0){if((g|0)!=0){l=2<<e;n=g<<e&(l|0-l);l=(n&0-n)+ -1|0;n=l>>>12&16;k=l>>>n;l=k>>>5&8;o=k>>>l;k=o>>>2&4;q=o>>>k;o=q>>>1&2;r=q>>>o;q=r>>>1&1;s=(l|n|k|o|q)+(r>>>q)|0;q=s<<1;r=12312+(q<<2)|0;o=12312+(q+2<<2)|0;q=c[o>>2]|0;k=q+8|0;n=c[k>>2]|0;do{if((r|0)!=(n|0)){if(n>>>0<(c[12288>>2]|0)>>>0){Mb()}l=n+12|0;if((c[l>>2]|0)==(q|0)){c[l>>2]=r;c[o>>2]=n;break}else{Mb()}}else{c[3068]=f&~(1<<s)}}while(0);f=s<<3;n=f-d|0;c[q+4>>2]=d|3;o=q+d|0;c[q+(d|4)>>2]=n|1;c[q+f>>2]=n;f=c[12280>>2]|0;if((f|0)!=0){r=c[12292>>2]|0;e=f>>>3;f=e<<1;g=12312+(f<<2)|0;m=c[3068]|0;j=1<<e;if((m&j|0)!=0){e=12312+(f+2<<2)|0;h=c[e>>2]|0;if(h>>>0<(c[12288>>2]|0)>>>0){Mb()}else{t=e;u=h}}else{c[3068]=m|j;t=12312+(f+2<<2)|0;u=g}c[t>>2]=r;c[u+12>>2]=r;c[r+8>>2]=u;c[r+12>>2]=g}c[12280>>2]=n;c[12292>>2]=o;p=k;i=b;return p|0}o=c[12276>>2]|0;if((o|0)!=0){n=(o&0-o)+ -1|0;o=n>>>12&16;g=n>>>o;n=g>>>5&8;r=g>>>n;g=r>>>2&4;f=r>>>g;r=f>>>1&2;j=f>>>r;f=j>>>1&1;m=c[12576+((n|o|g|r|f)+(j>>>f)<<2)>>2]|0;f=(c[m+4>>2]&-8)-d|0;j=m;r=m;while(1){m=c[j+16>>2]|0;if((m|0)==0){g=c[j+20>>2]|0;if((g|0)==0){break}else{v=g}}else{v=m}m=(c[v+4>>2]&-8)-d|0;g=m>>>0<f>>>0;f=g?m:f;j=v;r=g?v:r}j=c[12288>>2]|0;if(r>>>0<j>>>0){Mb()}k=r+d|0;if(!(r>>>0<k>>>0)){Mb()}q=c[r+24>>2]|0;s=c[r+12>>2]|0;do{if((s|0)==(r|0)){g=r+20|0;m=c[g>>2]|0;if((m|0)==0){o=r+16|0;n=c[o>>2]|0;if((n|0)==0){w=0;break}else{x=n;y=o}}else{x=m;y=g}while(1){g=x+20|0;m=c[g>>2]|0;if((m|0)!=0){x=m;y=g;continue}g=x+16|0;m=c[g>>2]|0;if((m|0)==0){break}else{x=m;y=g}}if(y>>>0<j>>>0){Mb()}else{c[y>>2]=0;w=x;break}}else{g=c[r+8>>2]|0;if(g>>>0<j>>>0){Mb()}m=g+12|0;if((c[m>>2]|0)!=(r|0)){Mb()}o=s+8|0;if((c[o>>2]|0)==(r|0)){c[m>>2]=s;c[o>>2]=g;w=s;break}else{Mb()}}}while(0);do{if((q|0)!=0){s=c[r+28>>2]|0;j=12576+(s<<2)|0;if((r|0)==(c[j>>2]|0)){c[j>>2]=w;if((w|0)==0){c[12276>>2]=c[12276>>2]&~(1<<s);break}}else{if(q>>>0<(c[12288>>2]|0)>>>0){Mb()}s=q+16|0;if((c[s>>2]|0)==(r|0)){c[s>>2]=w}else{c[q+20>>2]=w}if((w|0)==0){break}}if(w>>>0<(c[12288>>2]|0)>>>0){Mb()}c[w+24>>2]=q;s=c[r+16>>2]|0;do{if((s|0)!=0){if(s>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[w+16>>2]=s;c[s+24>>2]=w;break}}}while(0);s=c[r+20>>2]|0;if((s|0)!=0){if(s>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[w+20>>2]=s;c[s+24>>2]=w;break}}}}while(0);if(f>>>0<16){q=f+d|0;c[r+4>>2]=q|3;s=r+(q+4)|0;c[s>>2]=c[s>>2]|1}else{c[r+4>>2]=d|3;c[r+(d|4)>>2]=f|1;c[r+(f+d)>>2]=f;s=c[12280>>2]|0;if((s|0)!=0){q=c[12292>>2]|0;j=s>>>3;s=j<<1;g=12312+(s<<2)|0;o=c[3068]|0;m=1<<j;if((o&m|0)!=0){j=12312+(s+2<<2)|0;n=c[j>>2]|0;if(n>>>0<(c[12288>>2]|0)>>>0){Mb()}else{z=j;A=n}}else{c[3068]=o|m;z=12312+(s+2<<2)|0;A=g}c[z>>2]=q;c[A+12>>2]=q;c[q+8>>2]=A;c[q+12>>2]=g}c[12280>>2]=f;c[12292>>2]=k}p=r+8|0;i=b;return p|0}else{B=d}}else{B=d}}else{if(!(a>>>0>4294967231)){g=a+11|0;q=g&-8;s=c[12276>>2]|0;if((s|0)!=0){m=0-q|0;o=g>>>8;if((o|0)!=0){if(q>>>0>16777215){C=31}else{g=(o+1048320|0)>>>16&8;n=o<<g;o=(n+520192|0)>>>16&4;j=n<<o;n=(j+245760|0)>>>16&2;h=14-(o|g|n)+(j<<n>>>15)|0;C=q>>>(h+7|0)&1|h<<1}}else{C=0}h=c[12576+(C<<2)>>2]|0;a:do{if((h|0)==0){D=m;E=0;F=0}else{if((C|0)==31){G=0}else{G=25-(C>>>1)|0}n=m;j=0;g=q<<G;o=h;e=0;while(1){l=c[o+4>>2]&-8;H=l-q|0;if(H>>>0<n>>>0){if((l|0)==(q|0)){D=H;E=o;F=o;break a}else{I=H;J=o}}else{I=n;J=e}H=c[o+20>>2]|0;o=c[o+(g>>>31<<2)+16>>2]|0;l=(H|0)==0|(H|0)==(o|0)?j:H;if((o|0)==0){D=I;E=l;F=J;break}else{n=I;j=l;g=g<<1;e=J}}}}while(0);if((E|0)==0&(F|0)==0){h=2<<C;m=s&(h|0-h);if((m|0)==0){B=q;break}h=(m&0-m)+ -1|0;m=h>>>12&16;r=h>>>m;h=r>>>5&8;k=r>>>h;r=k>>>2&4;f=k>>>r;k=f>>>1&2;e=f>>>k;f=e>>>1&1;K=c[12576+((h|m|r|k|f)+(e>>>f)<<2)>>2]|0}else{K=E}if((K|0)==0){L=D;M=F}else{f=D;e=K;k=F;while(1){r=(c[e+4>>2]&-8)-q|0;m=r>>>0<f>>>0;h=m?r:f;r=m?e:k;m=c[e+16>>2]|0;if((m|0)!=0){f=h;e=m;k=r;continue}e=c[e+20>>2]|0;if((e|0)==0){L=h;M=r;break}else{f=h;k=r}}}if((M|0)!=0?L>>>0<((c[12280>>2]|0)-q|0)>>>0:0){k=c[12288>>2]|0;if(M>>>0<k>>>0){Mb()}f=M+q|0;if(!(M>>>0<f>>>0)){Mb()}e=c[M+24>>2]|0;s=c[M+12>>2]|0;do{if((s|0)==(M|0)){r=M+20|0;h=c[r>>2]|0;if((h|0)==0){m=M+16|0;g=c[m>>2]|0;if((g|0)==0){N=0;break}else{O=g;P=m}}else{O=h;P=r}while(1){r=O+20|0;h=c[r>>2]|0;if((h|0)!=0){O=h;P=r;continue}r=O+16|0;h=c[r>>2]|0;if((h|0)==0){break}else{O=h;P=r}}if(P>>>0<k>>>0){Mb()}else{c[P>>2]=0;N=O;break}}else{r=c[M+8>>2]|0;if(r>>>0<k>>>0){Mb()}h=r+12|0;if((c[h>>2]|0)!=(M|0)){Mb()}m=s+8|0;if((c[m>>2]|0)==(M|0)){c[h>>2]=s;c[m>>2]=r;N=s;break}else{Mb()}}}while(0);do{if((e|0)!=0){s=c[M+28>>2]|0;k=12576+(s<<2)|0;if((M|0)==(c[k>>2]|0)){c[k>>2]=N;if((N|0)==0){c[12276>>2]=c[12276>>2]&~(1<<s);break}}else{if(e>>>0<(c[12288>>2]|0)>>>0){Mb()}s=e+16|0;if((c[s>>2]|0)==(M|0)){c[s>>2]=N}else{c[e+20>>2]=N}if((N|0)==0){break}}if(N>>>0<(c[12288>>2]|0)>>>0){Mb()}c[N+24>>2]=e;s=c[M+16>>2]|0;do{if((s|0)!=0){if(s>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[N+16>>2]=s;c[s+24>>2]=N;break}}}while(0);s=c[M+20>>2]|0;if((s|0)!=0){if(s>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[N+20>>2]=s;c[s+24>>2]=N;break}}}}while(0);b:do{if(!(L>>>0<16)){c[M+4>>2]=q|3;c[M+(q|4)>>2]=L|1;c[M+(L+q)>>2]=L;e=L>>>3;if(L>>>0<256){s=e<<1;k=12312+(s<<2)|0;r=c[3068]|0;m=1<<e;do{if((r&m|0)==0){c[3068]=r|m;Q=12312+(s+2<<2)|0;R=k}else{e=12312+(s+2<<2)|0;h=c[e>>2]|0;if(!(h>>>0<(c[12288>>2]|0)>>>0)){Q=e;R=h;break}Mb()}}while(0);c[Q>>2]=f;c[R+12>>2]=f;c[M+(q+8)>>2]=R;c[M+(q+12)>>2]=k;break}s=L>>>8;if((s|0)!=0){if(L>>>0>16777215){S=31}else{m=(s+1048320|0)>>>16&8;r=s<<m;s=(r+520192|0)>>>16&4;h=r<<s;r=(h+245760|0)>>>16&2;e=14-(s|m|r)+(h<<r>>>15)|0;S=L>>>(e+7|0)&1|e<<1}}else{S=0}e=12576+(S<<2)|0;c[M+(q+28)>>2]=S;c[M+(q+20)>>2]=0;c[M+(q+16)>>2]=0;r=c[12276>>2]|0;h=1<<S;if((r&h|0)==0){c[12276>>2]=r|h;c[e>>2]=f;c[M+(q+24)>>2]=e;c[M+(q+12)>>2]=f;c[M+(q+8)>>2]=f;break}h=c[e>>2]|0;if((S|0)==31){T=0}else{T=25-(S>>>1)|0}c:do{if((c[h+4>>2]&-8|0)!=(L|0)){e=L<<T;r=h;while(1){U=r+(e>>>31<<2)+16|0;m=c[U>>2]|0;if((m|0)==0){break}if((c[m+4>>2]&-8|0)==(L|0)){V=m;break c}else{e=e<<1;r=m}}if(U>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[U>>2]=f;c[M+(q+24)>>2]=r;c[M+(q+12)>>2]=f;c[M+(q+8)>>2]=f;break b}}else{V=h}}while(0);h=V+8|0;k=c[h>>2]|0;e=c[12288>>2]|0;if(V>>>0<e>>>0){Mb()}if(k>>>0<e>>>0){Mb()}else{c[k+12>>2]=f;c[h>>2]=f;c[M+(q+8)>>2]=k;c[M+(q+12)>>2]=V;c[M+(q+24)>>2]=0;break}}else{k=L+q|0;c[M+4>>2]=k|3;h=M+(k+4)|0;c[h>>2]=c[h>>2]|1}}while(0);p=M+8|0;i=b;return p|0}else{B=q}}else{B=q}}else{B=-1}}}while(0);M=c[12280>>2]|0;if(!(B>>>0>M>>>0)){L=M-B|0;V=c[12292>>2]|0;if(L>>>0>15){c[12292>>2]=V+B;c[12280>>2]=L;c[V+(B+4)>>2]=L|1;c[V+M>>2]=L;c[V+4>>2]=B|3}else{c[12280>>2]=0;c[12292>>2]=0;c[V+4>>2]=M|3;L=V+(M+4)|0;c[L>>2]=c[L>>2]|1}p=V+8|0;i=b;return p|0}V=c[12284>>2]|0;if(B>>>0<V>>>0){L=V-B|0;c[12284>>2]=L;V=c[12296>>2]|0;c[12296>>2]=V+B;c[V+(B+4)>>2]=L|1;c[V+4>>2]=B|3;p=V+8|0;i=b;return p|0}do{if((c[3186]|0)==0){V=Ea(30)|0;if((V+ -1&V|0)==0){c[12752>>2]=V;c[12748>>2]=V;c[12756>>2]=-1;c[12760>>2]=-1;c[12764>>2]=0;c[12716>>2]=0;c[3186]=(lb(0)|0)&-16^1431655768;break}else{Mb()}}}while(0);V=B+48|0;L=c[12752>>2]|0;M=B+47|0;U=L+M|0;T=0-L|0;L=U&T;if(!(L>>>0>B>>>0)){p=0;i=b;return p|0}S=c[12712>>2]|0;if((S|0)!=0?(R=c[12704>>2]|0,Q=R+L|0,Q>>>0<=R>>>0|Q>>>0>S>>>0):0){p=0;i=b;return p|0}d:do{if((c[12716>>2]&4|0)==0){S=c[12296>>2]|0;e:do{if((S|0)!=0){Q=12720|0;while(1){R=c[Q>>2]|0;if(!(R>>>0>S>>>0)?(W=Q+4|0,(R+(c[W>>2]|0)|0)>>>0>S>>>0):0){break}R=c[Q+8>>2]|0;if((R|0)==0){X=182;break e}else{Q=R}}if((Q|0)!=0){R=U-(c[12284>>2]|0)&T;if(R>>>0<2147483647){N=za(R|0)|0;O=(N|0)==((c[Q>>2]|0)+(c[W>>2]|0)|0);Y=N;Z=R;_=O?N:-1;$=O?R:0;X=191}else{aa=0}}else{X=182}}else{X=182}}while(0);do{if((X|0)==182){S=za(0)|0;if((S|0)!=(-1|0)){q=S;R=c[12748>>2]|0;O=R+ -1|0;if((O&q|0)==0){ba=L}else{ba=L-q+(O+q&0-R)|0}R=c[12704>>2]|0;q=R+ba|0;if(ba>>>0>B>>>0&ba>>>0<2147483647){O=c[12712>>2]|0;if((O|0)!=0?q>>>0<=R>>>0|q>>>0>O>>>0:0){aa=0;break}O=za(ba|0)|0;q=(O|0)==(S|0);Y=O;Z=ba;_=q?S:-1;$=q?ba:0;X=191}else{aa=0}}else{aa=0}}}while(0);f:do{if((X|0)==191){q=0-Z|0;if((_|0)!=(-1|0)){ca=_;da=$;X=202;break d}do{if((Y|0)!=(-1|0)&Z>>>0<2147483647&Z>>>0<V>>>0?(S=c[12752>>2]|0,O=M-Z+S&0-S,O>>>0<2147483647):0){if((za(O|0)|0)==(-1|0)){za(q|0)|0;aa=$;break f}else{ea=O+Z|0;break}}else{ea=Z}}while(0);if((Y|0)==(-1|0)){aa=$}else{ca=Y;da=ea;X=202;break d}}}while(0);c[12716>>2]=c[12716>>2]|4;fa=aa;X=199}else{fa=0;X=199}}while(0);if((((X|0)==199?L>>>0<2147483647:0)?(aa=za(L|0)|0,L=za(0)|0,(L|0)!=(-1|0)&(aa|0)!=(-1|0)&aa>>>0<L>>>0):0)?(ea=L-aa|0,L=ea>>>0>(B+40|0)>>>0,L):0){ca=aa;da=L?ea:fa;X=202}if((X|0)==202){fa=(c[12704>>2]|0)+da|0;c[12704>>2]=fa;if(fa>>>0>(c[12708>>2]|0)>>>0){c[12708>>2]=fa}fa=c[12296>>2]|0;g:do{if((fa|0)!=0){ea=12720|0;while(1){ga=c[ea>>2]|0;ha=ea+4|0;ia=c[ha>>2]|0;if((ca|0)==(ga+ia|0)){X=214;break}L=c[ea+8>>2]|0;if((L|0)==0){break}else{ea=L}}if(((X|0)==214?(c[ea+12>>2]&8|0)==0:0)?fa>>>0>=ga>>>0&fa>>>0<ca>>>0:0){c[ha>>2]=ia+da;L=(c[12284>>2]|0)+da|0;aa=fa+8|0;if((aa&7|0)==0){ja=0}else{ja=0-aa&7}aa=L-ja|0;c[12296>>2]=fa+ja;c[12284>>2]=aa;c[fa+(ja+4)>>2]=aa|1;c[fa+(L+4)>>2]=40;c[12300>>2]=c[12760>>2];break}if(ca>>>0<(c[12288>>2]|0)>>>0){c[12288>>2]=ca}L=ca+da|0;aa=12720|0;while(1){if((c[aa>>2]|0)==(L|0)){X=224;break}Y=c[aa+8>>2]|0;if((Y|0)==0){break}else{aa=Y}}if((X|0)==224?(c[aa+12>>2]&8|0)==0:0){c[aa>>2]=ca;L=aa+4|0;c[L>>2]=(c[L>>2]|0)+da;L=ca+8|0;if((L&7|0)==0){ka=0}else{ka=0-L&7}L=ca+(da+8)|0;if((L&7|0)==0){la=0}else{la=0-L&7}L=ca+(la+da)|0;ea=ka+B|0;Y=ca+ea|0;$=L-(ca+ka)-B|0;c[ca+(ka+4)>>2]=B|3;h:do{if((L|0)!=(c[12296>>2]|0)){if((L|0)==(c[12292>>2]|0)){Z=(c[12280>>2]|0)+$|0;c[12280>>2]=Z;c[12292>>2]=Y;c[ca+(ea+4)>>2]=Z|1;c[ca+(Z+ea)>>2]=Z;break}Z=da+4|0;M=c[ca+(Z+la)>>2]|0;if((M&3|0)==1){V=M&-8;_=M>>>3;i:do{if(!(M>>>0<256)){ba=c[ca+((la|24)+da)>>2]|0;W=c[ca+(da+12+la)>>2]|0;do{if((W|0)==(L|0)){T=la|16;U=ca+(Z+T)|0;q=c[U>>2]|0;if((q|0)==0){Q=ca+(T+da)|0;T=c[Q>>2]|0;if((T|0)==0){ma=0;break}else{na=T;oa=Q}}else{na=q;oa=U}while(1){U=na+20|0;q=c[U>>2]|0;if((q|0)!=0){na=q;oa=U;continue}U=na+16|0;q=c[U>>2]|0;if((q|0)==0){break}else{na=q;oa=U}}if(oa>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[oa>>2]=0;ma=na;break}}else{U=c[ca+((la|8)+da)>>2]|0;if(U>>>0<(c[12288>>2]|0)>>>0){Mb()}q=U+12|0;if((c[q>>2]|0)!=(L|0)){Mb()}Q=W+8|0;if((c[Q>>2]|0)==(L|0)){c[q>>2]=W;c[Q>>2]=U;ma=W;break}else{Mb()}}}while(0);if((ba|0)==0){break}W=c[ca+(da+28+la)>>2]|0;r=12576+(W<<2)|0;do{if((L|0)!=(c[r>>2]|0)){if(ba>>>0<(c[12288>>2]|0)>>>0){Mb()}U=ba+16|0;if((c[U>>2]|0)==(L|0)){c[U>>2]=ma}else{c[ba+20>>2]=ma}if((ma|0)==0){break i}}else{c[r>>2]=ma;if((ma|0)!=0){break}c[12276>>2]=c[12276>>2]&~(1<<W);break i}}while(0);if(ma>>>0<(c[12288>>2]|0)>>>0){Mb()}c[ma+24>>2]=ba;W=la|16;r=c[ca+(W+da)>>2]|0;do{if((r|0)!=0){if(r>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[ma+16>>2]=r;c[r+24>>2]=ma;break}}}while(0);r=c[ca+(Z+W)>>2]|0;if((r|0)==0){break}if(r>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[ma+20>>2]=r;c[r+24>>2]=ma;break}}else{r=c[ca+((la|8)+da)>>2]|0;ba=c[ca+(da+12+la)>>2]|0;U=12312+(_<<1<<2)|0;do{if((r|0)!=(U|0)){if(r>>>0<(c[12288>>2]|0)>>>0){Mb()}if((c[r+12>>2]|0)==(L|0)){break}Mb()}}while(0);if((ba|0)==(r|0)){c[3068]=c[3068]&~(1<<_);break}do{if((ba|0)==(U|0)){pa=ba+8|0}else{if(ba>>>0<(c[12288>>2]|0)>>>0){Mb()}W=ba+8|0;if((c[W>>2]|0)==(L|0)){pa=W;break}Mb()}}while(0);c[r+12>>2]=ba;c[pa>>2]=r}}while(0);qa=ca+((V|la)+da)|0;ra=V+$|0}else{qa=L;ra=$}_=qa+4|0;c[_>>2]=c[_>>2]&-2;c[ca+(ea+4)>>2]=ra|1;c[ca+(ra+ea)>>2]=ra;_=ra>>>3;if(ra>>>0<256){Z=_<<1;M=12312+(Z<<2)|0;U=c[3068]|0;W=1<<_;do{if((U&W|0)==0){c[3068]=U|W;sa=12312+(Z+2<<2)|0;ta=M}else{_=12312+(Z+2<<2)|0;Q=c[_>>2]|0;if(!(Q>>>0<(c[12288>>2]|0)>>>0)){sa=_;ta=Q;break}Mb()}}while(0);c[sa>>2]=Y;c[ta+12>>2]=Y;c[ca+(ea+8)>>2]=ta;c[ca+(ea+12)>>2]=M;break}Z=ra>>>8;do{if((Z|0)==0){ua=0}else{if(ra>>>0>16777215){ua=31;break}W=(Z+1048320|0)>>>16&8;U=Z<<W;V=(U+520192|0)>>>16&4;Q=U<<V;U=(Q+245760|0)>>>16&2;_=14-(V|W|U)+(Q<<U>>>15)|0;ua=ra>>>(_+7|0)&1|_<<1}}while(0);Z=12576+(ua<<2)|0;c[ca+(ea+28)>>2]=ua;c[ca+(ea+20)>>2]=0;c[ca+(ea+16)>>2]=0;M=c[12276>>2]|0;_=1<<ua;if((M&_|0)==0){c[12276>>2]=M|_;c[Z>>2]=Y;c[ca+(ea+24)>>2]=Z;c[ca+(ea+12)>>2]=Y;c[ca+(ea+8)>>2]=Y;break}_=c[Z>>2]|0;if((ua|0)==31){va=0}else{va=25-(ua>>>1)|0}j:do{if((c[_+4>>2]&-8|0)!=(ra|0)){Z=ra<<va;M=_;while(1){wa=M+(Z>>>31<<2)+16|0;U=c[wa>>2]|0;if((U|0)==0){break}if((c[U+4>>2]&-8|0)==(ra|0)){xa=U;break j}else{Z=Z<<1;M=U}}if(wa>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[wa>>2]=Y;c[ca+(ea+24)>>2]=M;c[ca+(ea+12)>>2]=Y;c[ca+(ea+8)>>2]=Y;break h}}else{xa=_}}while(0);_=xa+8|0;Z=c[_>>2]|0;r=c[12288>>2]|0;if(xa>>>0<r>>>0){Mb()}if(Z>>>0<r>>>0){Mb()}else{c[Z+12>>2]=Y;c[_>>2]=Y;c[ca+(ea+8)>>2]=Z;c[ca+(ea+12)>>2]=xa;c[ca+(ea+24)>>2]=0;break}}else{Z=(c[12284>>2]|0)+$|0;c[12284>>2]=Z;c[12296>>2]=Y;c[ca+(ea+4)>>2]=Z|1}}while(0);p=ca+(ka|8)|0;i=b;return p|0}ea=12720|0;while(1){ya=c[ea>>2]|0;if(!(ya>>>0>fa>>>0)?(Aa=c[ea+4>>2]|0,Ba=ya+Aa|0,Ba>>>0>fa>>>0):0){break}ea=c[ea+8>>2]|0}ea=ya+(Aa+ -39)|0;if((ea&7|0)==0){Ca=0}else{Ca=0-ea&7}ea=ya+(Aa+ -47+Ca)|0;Y=ea>>>0<(fa+16|0)>>>0?fa:ea;ea=Y+8|0;$=ca+8|0;if(($&7|0)==0){Da=0}else{Da=0-$&7}$=da+ -40-Da|0;c[12296>>2]=ca+Da;c[12284>>2]=$;c[ca+(Da+4)>>2]=$|1;c[ca+(da+ -36)>>2]=40;c[12300>>2]=c[12760>>2];c[Y+4>>2]=27;c[ea+0>>2]=c[12720>>2];c[ea+4>>2]=c[12724>>2];c[ea+8>>2]=c[12728>>2];c[ea+12>>2]=c[12732>>2];c[12720>>2]=ca;c[12724>>2]=da;c[12732>>2]=0;c[12728>>2]=ea;ea=Y+28|0;c[ea>>2]=7;if((Y+32|0)>>>0<Ba>>>0){$=ea;do{ea=$;$=$+4|0;c[$>>2]=7}while((ea+8|0)>>>0<Ba>>>0)}if((Y|0)!=(fa|0)){$=Y-fa|0;ea=fa+($+4)|0;c[ea>>2]=c[ea>>2]&-2;c[fa+4>>2]=$|1;c[fa+$>>2]=$;ea=$>>>3;if($>>>0<256){L=ea<<1;aa=12312+(L<<2)|0;Z=c[3068]|0;_=1<<ea;do{if((Z&_|0)==0){c[3068]=Z|_;Fa=12312+(L+2<<2)|0;Ga=aa}else{ea=12312+(L+2<<2)|0;r=c[ea>>2]|0;if(!(r>>>0<(c[12288>>2]|0)>>>0)){Fa=ea;Ga=r;break}Mb()}}while(0);c[Fa>>2]=fa;c[Ga+12>>2]=fa;c[fa+8>>2]=Ga;c[fa+12>>2]=aa;break}L=$>>>8;if((L|0)!=0){if($>>>0>16777215){Ha=31}else{_=(L+1048320|0)>>>16&8;Z=L<<_;L=(Z+520192|0)>>>16&4;Y=Z<<L;Z=(Y+245760|0)>>>16&2;r=14-(L|_|Z)+(Y<<Z>>>15)|0;Ha=$>>>(r+7|0)&1|r<<1}}else{Ha=0}r=12576+(Ha<<2)|0;c[fa+28>>2]=Ha;c[fa+20>>2]=0;c[fa+16>>2]=0;Z=c[12276>>2]|0;Y=1<<Ha;if((Z&Y|0)==0){c[12276>>2]=Z|Y;c[r>>2]=fa;c[fa+24>>2]=r;c[fa+12>>2]=fa;c[fa+8>>2]=fa;break}Y=c[r>>2]|0;if((Ha|0)==31){Ia=0}else{Ia=25-(Ha>>>1)|0}k:do{if((c[Y+4>>2]&-8|0)!=($|0)){r=$<<Ia;Z=Y;while(1){Ja=Z+(r>>>31<<2)+16|0;_=c[Ja>>2]|0;if((_|0)==0){break}if((c[_+4>>2]&-8|0)==($|0)){Ka=_;break k}else{r=r<<1;Z=_}}if(Ja>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[Ja>>2]=fa;c[fa+24>>2]=Z;c[fa+12>>2]=fa;c[fa+8>>2]=fa;break g}}else{Ka=Y}}while(0);Y=Ka+8|0;$=c[Y>>2]|0;aa=c[12288>>2]|0;if(Ka>>>0<aa>>>0){Mb()}if($>>>0<aa>>>0){Mb()}else{c[$+12>>2]=fa;c[Y>>2]=fa;c[fa+8>>2]=$;c[fa+12>>2]=Ka;c[fa+24>>2]=0;break}}}else{$=c[12288>>2]|0;if(($|0)==0|ca>>>0<$>>>0){c[12288>>2]=ca}c[12720>>2]=ca;c[12724>>2]=da;c[12732>>2]=0;c[12308>>2]=c[3186];c[12304>>2]=-1;$=0;do{Y=$<<1;aa=12312+(Y<<2)|0;c[12312+(Y+3<<2)>>2]=aa;c[12312+(Y+2<<2)>>2]=aa;$=$+1|0}while(($|0)!=32);$=ca+8|0;if(($&7|0)==0){La=0}else{La=0-$&7}$=da+ -40-La|0;c[12296>>2]=ca+La;c[12284>>2]=$;c[ca+(La+4)>>2]=$|1;c[ca+(da+ -36)>>2]=40;c[12300>>2]=c[12760>>2]}}while(0);da=c[12284>>2]|0;if(da>>>0>B>>>0){ca=da-B|0;c[12284>>2]=ca;da=c[12296>>2]|0;c[12296>>2]=da+B;c[da+(B+4)>>2]=ca|1;c[da+4>>2]=B|3;p=da+8|0;i=b;return p|0}}c[(ic()|0)>>2]=12;p=0;i=b;return p|0}function Qd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;b=i;if((a|0)==0){i=b;return}d=a+ -8|0;e=c[12288>>2]|0;if(d>>>0<e>>>0){Mb()}f=c[a+ -4>>2]|0;g=f&3;if((g|0)==1){Mb()}h=f&-8;j=a+(h+ -8)|0;do{if((f&1|0)==0){k=c[d>>2]|0;if((g|0)==0){i=b;return}l=-8-k|0;m=a+l|0;n=k+h|0;if(m>>>0<e>>>0){Mb()}if((m|0)==(c[12292>>2]|0)){o=a+(h+ -4)|0;if((c[o>>2]&3|0)!=3){p=m;q=n;break}c[12280>>2]=n;c[o>>2]=c[o>>2]&-2;c[a+(l+4)>>2]=n|1;c[j>>2]=n;i=b;return}o=k>>>3;if(k>>>0<256){k=c[a+(l+8)>>2]|0;r=c[a+(l+12)>>2]|0;s=12312+(o<<1<<2)|0;if((k|0)!=(s|0)){if(k>>>0<e>>>0){Mb()}if((c[k+12>>2]|0)!=(m|0)){Mb()}}if((r|0)==(k|0)){c[3068]=c[3068]&~(1<<o);p=m;q=n;break}if((r|0)!=(s|0)){if(r>>>0<e>>>0){Mb()}s=r+8|0;if((c[s>>2]|0)==(m|0)){t=s}else{Mb()}}else{t=r+8|0}c[k+12>>2]=r;c[t>>2]=k;p=m;q=n;break}k=c[a+(l+24)>>2]|0;r=c[a+(l+12)>>2]|0;do{if((r|0)==(m|0)){s=a+(l+20)|0;o=c[s>>2]|0;if((o|0)==0){u=a+(l+16)|0;v=c[u>>2]|0;if((v|0)==0){w=0;break}else{x=v;y=u}}else{x=o;y=s}while(1){s=x+20|0;o=c[s>>2]|0;if((o|0)!=0){x=o;y=s;continue}s=x+16|0;o=c[s>>2]|0;if((o|0)==0){break}else{x=o;y=s}}if(y>>>0<e>>>0){Mb()}else{c[y>>2]=0;w=x;break}}else{s=c[a+(l+8)>>2]|0;if(s>>>0<e>>>0){Mb()}o=s+12|0;if((c[o>>2]|0)!=(m|0)){Mb()}u=r+8|0;if((c[u>>2]|0)==(m|0)){c[o>>2]=r;c[u>>2]=s;w=r;break}else{Mb()}}}while(0);if((k|0)!=0){r=c[a+(l+28)>>2]|0;s=12576+(r<<2)|0;if((m|0)==(c[s>>2]|0)){c[s>>2]=w;if((w|0)==0){c[12276>>2]=c[12276>>2]&~(1<<r);p=m;q=n;break}}else{if(k>>>0<(c[12288>>2]|0)>>>0){Mb()}r=k+16|0;if((c[r>>2]|0)==(m|0)){c[r>>2]=w}else{c[k+20>>2]=w}if((w|0)==0){p=m;q=n;break}}if(w>>>0<(c[12288>>2]|0)>>>0){Mb()}c[w+24>>2]=k;r=c[a+(l+16)>>2]|0;do{if((r|0)!=0){if(r>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[w+16>>2]=r;c[r+24>>2]=w;break}}}while(0);r=c[a+(l+20)>>2]|0;if((r|0)!=0){if(r>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[w+20>>2]=r;c[r+24>>2]=w;p=m;q=n;break}}else{p=m;q=n}}else{p=m;q=n}}else{p=d;q=h}}while(0);if(!(p>>>0<j>>>0)){Mb()}d=a+(h+ -4)|0;w=c[d>>2]|0;if((w&1|0)==0){Mb()}if((w&2|0)==0){if((j|0)==(c[12296>>2]|0)){e=(c[12284>>2]|0)+q|0;c[12284>>2]=e;c[12296>>2]=p;c[p+4>>2]=e|1;if((p|0)!=(c[12292>>2]|0)){i=b;return}c[12292>>2]=0;c[12280>>2]=0;i=b;return}if((j|0)==(c[12292>>2]|0)){e=(c[12280>>2]|0)+q|0;c[12280>>2]=e;c[12292>>2]=p;c[p+4>>2]=e|1;c[p+e>>2]=e;i=b;return}e=(w&-8)+q|0;x=w>>>3;do{if(!(w>>>0<256)){y=c[a+(h+16)>>2]|0;t=c[a+(h|4)>>2]|0;do{if((t|0)==(j|0)){g=a+(h+12)|0;f=c[g>>2]|0;if((f|0)==0){r=a+(h+8)|0;k=c[r>>2]|0;if((k|0)==0){z=0;break}else{A=k;B=r}}else{A=f;B=g}while(1){g=A+20|0;f=c[g>>2]|0;if((f|0)!=0){A=f;B=g;continue}g=A+16|0;f=c[g>>2]|0;if((f|0)==0){break}else{A=f;B=g}}if(B>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[B>>2]=0;z=A;break}}else{g=c[a+h>>2]|0;if(g>>>0<(c[12288>>2]|0)>>>0){Mb()}f=g+12|0;if((c[f>>2]|0)!=(j|0)){Mb()}r=t+8|0;if((c[r>>2]|0)==(j|0)){c[f>>2]=t;c[r>>2]=g;z=t;break}else{Mb()}}}while(0);if((y|0)!=0){t=c[a+(h+20)>>2]|0;n=12576+(t<<2)|0;if((j|0)==(c[n>>2]|0)){c[n>>2]=z;if((z|0)==0){c[12276>>2]=c[12276>>2]&~(1<<t);break}}else{if(y>>>0<(c[12288>>2]|0)>>>0){Mb()}t=y+16|0;if((c[t>>2]|0)==(j|0)){c[t>>2]=z}else{c[y+20>>2]=z}if((z|0)==0){break}}if(z>>>0<(c[12288>>2]|0)>>>0){Mb()}c[z+24>>2]=y;t=c[a+(h+8)>>2]|0;do{if((t|0)!=0){if(t>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[z+16>>2]=t;c[t+24>>2]=z;break}}}while(0);t=c[a+(h+12)>>2]|0;if((t|0)!=0){if(t>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[z+20>>2]=t;c[t+24>>2]=z;break}}}}else{t=c[a+h>>2]|0;y=c[a+(h|4)>>2]|0;n=12312+(x<<1<<2)|0;if((t|0)!=(n|0)){if(t>>>0<(c[12288>>2]|0)>>>0){Mb()}if((c[t+12>>2]|0)!=(j|0)){Mb()}}if((y|0)==(t|0)){c[3068]=c[3068]&~(1<<x);break}if((y|0)!=(n|0)){if(y>>>0<(c[12288>>2]|0)>>>0){Mb()}n=y+8|0;if((c[n>>2]|0)==(j|0)){C=n}else{Mb()}}else{C=y+8|0}c[t+12>>2]=y;c[C>>2]=t}}while(0);c[p+4>>2]=e|1;c[p+e>>2]=e;if((p|0)==(c[12292>>2]|0)){c[12280>>2]=e;i=b;return}else{D=e}}else{c[d>>2]=w&-2;c[p+4>>2]=q|1;c[p+q>>2]=q;D=q}q=D>>>3;if(D>>>0<256){w=q<<1;d=12312+(w<<2)|0;e=c[3068]|0;C=1<<q;if((e&C|0)!=0){q=12312+(w+2<<2)|0;j=c[q>>2]|0;if(j>>>0<(c[12288>>2]|0)>>>0){Mb()}else{E=q;F=j}}else{c[3068]=e|C;E=12312+(w+2<<2)|0;F=d}c[E>>2]=p;c[F+12>>2]=p;c[p+8>>2]=F;c[p+12>>2]=d;i=b;return}d=D>>>8;if((d|0)!=0){if(D>>>0>16777215){G=31}else{F=(d+1048320|0)>>>16&8;E=d<<F;d=(E+520192|0)>>>16&4;w=E<<d;E=(w+245760|0)>>>16&2;C=14-(d|F|E)+(w<<E>>>15)|0;G=D>>>(C+7|0)&1|C<<1}}else{G=0}C=12576+(G<<2)|0;c[p+28>>2]=G;c[p+20>>2]=0;c[p+16>>2]=0;E=c[12276>>2]|0;w=1<<G;a:do{if((E&w|0)!=0){F=c[C>>2]|0;if((G|0)==31){H=0}else{H=25-(G>>>1)|0}b:do{if((c[F+4>>2]&-8|0)!=(D|0)){d=D<<H;e=F;while(1){I=e+(d>>>31<<2)+16|0;j=c[I>>2]|0;if((j|0)==0){break}if((c[j+4>>2]&-8|0)==(D|0)){J=j;break b}else{d=d<<1;e=j}}if(I>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[I>>2]=p;c[p+24>>2]=e;c[p+12>>2]=p;c[p+8>>2]=p;break a}}else{J=F}}while(0);F=J+8|0;d=c[F>>2]|0;j=c[12288>>2]|0;if(J>>>0<j>>>0){Mb()}if(d>>>0<j>>>0){Mb()}else{c[d+12>>2]=p;c[F>>2]=p;c[p+8>>2]=d;c[p+12>>2]=J;c[p+24>>2]=0;break}}else{c[12276>>2]=E|w;c[C>>2]=p;c[p+24>>2]=C;c[p+12>>2]=p;c[p+8>>2]=p}}while(0);p=(c[12304>>2]|0)+ -1|0;c[12304>>2]=p;if((p|0)==0){K=12728|0}else{i=b;return}while(1){p=c[K>>2]|0;if((p|0)==0){break}else{K=p+8|0}}c[12304>>2]=-1;i=b;return}function Rd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;d=i;if((a|0)==0){e=Pd(b)|0;i=d;return e|0}if(b>>>0>4294967231){c[(ic()|0)>>2]=12;e=0;i=d;return e|0}if(b>>>0<11){f=16}else{f=b+11&-8}g=a+ -4|0;h=c[g>>2]|0;j=h&-8;k=j+ -8|0;l=a+k|0;m=c[12288>>2]|0;if((a+ -8|0)>>>0<m>>>0){Mb()}n=h&3;if(!((n|0)!=1&(k|0)>-8)){Mb()}k=j|4;o=a+(k+ -8)|0;p=c[o>>2]|0;if((p&1|0)==0){Mb()}do{if((n|0)==0){if(!(f>>>0<256|j>>>0<(f|4)>>>0)?!((j-f|0)>>>0>c[12752>>2]<<1>>>0):0){e=a;i=d;return e|0}}else{if(!(j>>>0<f>>>0)){q=j-f|0;if(!(q>>>0>15)){e=a;i=d;return e|0}c[g>>2]=h&1|f|2;c[a+((f|4)+ -8)>>2]=q|3;c[o>>2]=c[o>>2]|1;Sd(a+(f+ -8)|0,q);e=a;i=d;return e|0}if((l|0)==(c[12296>>2]|0)){q=(c[12284>>2]|0)+j|0;if(!(q>>>0>f>>>0)){break}r=q-f|0;c[g>>2]=h&1|f|2;c[a+((f|4)+ -8)>>2]=r|1;c[12296>>2]=a+(f+ -8);c[12284>>2]=r;e=a;i=d;return e|0}if((l|0)==(c[12292>>2]|0)){r=(c[12280>>2]|0)+j|0;if(r>>>0<f>>>0){break}q=r-f|0;if(q>>>0>15){c[g>>2]=h&1|f|2;c[a+((f|4)+ -8)>>2]=q|1;c[a+(r+ -8)>>2]=q;s=a+(r+ -4)|0;c[s>>2]=c[s>>2]&-2;t=a+(f+ -8)|0;u=q}else{c[g>>2]=h&1|r|2;q=a+(r+ -4)|0;c[q>>2]=c[q>>2]|1;t=0;u=0}c[12280>>2]=u;c[12292>>2]=t;e=a;i=d;return e|0}if((p&2|0)==0?(q=(p&-8)+j|0,!(q>>>0<f>>>0)):0){r=q-f|0;s=p>>>3;do{if(!(p>>>0<256)){v=c[a+(j+16)>>2]|0;w=c[a+k>>2]|0;do{if((w|0)==(l|0)){x=a+(j+12)|0;y=c[x>>2]|0;if((y|0)==0){z=a+(j+8)|0;A=c[z>>2]|0;if((A|0)==0){B=0;break}else{C=A;D=z}}else{C=y;D=x}while(1){x=C+20|0;y=c[x>>2]|0;if((y|0)!=0){C=y;D=x;continue}x=C+16|0;y=c[x>>2]|0;if((y|0)==0){break}else{C=y;D=x}}if(D>>>0<m>>>0){Mb()}else{c[D>>2]=0;B=C;break}}else{x=c[a+j>>2]|0;if(x>>>0<m>>>0){Mb()}y=x+12|0;if((c[y>>2]|0)!=(l|0)){Mb()}z=w+8|0;if((c[z>>2]|0)==(l|0)){c[y>>2]=w;c[z>>2]=x;B=w;break}else{Mb()}}}while(0);if((v|0)!=0){w=c[a+(j+20)>>2]|0;x=12576+(w<<2)|0;if((l|0)==(c[x>>2]|0)){c[x>>2]=B;if((B|0)==0){c[12276>>2]=c[12276>>2]&~(1<<w);break}}else{if(v>>>0<(c[12288>>2]|0)>>>0){Mb()}w=v+16|0;if((c[w>>2]|0)==(l|0)){c[w>>2]=B}else{c[v+20>>2]=B}if((B|0)==0){break}}if(B>>>0<(c[12288>>2]|0)>>>0){Mb()}c[B+24>>2]=v;w=c[a+(j+8)>>2]|0;do{if((w|0)!=0){if(w>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[B+16>>2]=w;c[w+24>>2]=B;break}}}while(0);w=c[a+(j+12)>>2]|0;if((w|0)==0){break}if(w>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[B+20>>2]=w;c[w+24>>2]=B;break}}}else{w=c[a+j>>2]|0;v=c[a+k>>2]|0;x=12312+(s<<1<<2)|0;if((w|0)!=(x|0)){if(w>>>0<m>>>0){Mb()}if((c[w+12>>2]|0)!=(l|0)){Mb()}}if((v|0)==(w|0)){c[3068]=c[3068]&~(1<<s);break}do{if((v|0)==(x|0)){E=v+8|0}else{if(v>>>0<m>>>0){Mb()}z=v+8|0;if((c[z>>2]|0)==(l|0)){E=z;break}Mb()}}while(0);c[w+12>>2]=v;c[E>>2]=w}}while(0);if(r>>>0<16){c[g>>2]=q|c[g>>2]&1|2;s=a+((q|4)+ -8)|0;c[s>>2]=c[s>>2]|1;e=a;i=d;return e|0}else{c[g>>2]=c[g>>2]&1|f|2;c[a+((f|4)+ -8)>>2]=r|3;s=a+((q|4)+ -8)|0;c[s>>2]=c[s>>2]|1;Sd(a+(f+ -8)|0,r);e=a;i=d;return e|0}}}}while(0);f=Pd(b)|0;if((f|0)==0){e=0;i=d;return e|0}E=c[g>>2]|0;g=(E&-8)-((E&3|0)==0?8:4)|0;ie(f|0,a|0,(g>>>0<b>>>0?g:b)|0)|0;Qd(a);e=f;i=d;return e|0}function Sd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;d=i;e=a+b|0;f=c[a+4>>2]|0;do{if((f&1|0)==0){g=c[a>>2]|0;if((f&3|0)==0){i=d;return}h=a+(0-g)|0;j=g+b|0;k=c[12288>>2]|0;if(h>>>0<k>>>0){Mb()}if((h|0)==(c[12292>>2]|0)){l=a+(b+4)|0;if((c[l>>2]&3|0)!=3){m=h;n=j;break}c[12280>>2]=j;c[l>>2]=c[l>>2]&-2;c[a+(4-g)>>2]=j|1;c[e>>2]=j;i=d;return}l=g>>>3;if(g>>>0<256){o=c[a+(8-g)>>2]|0;p=c[a+(12-g)>>2]|0;q=12312+(l<<1<<2)|0;if((o|0)!=(q|0)){if(o>>>0<k>>>0){Mb()}if((c[o+12>>2]|0)!=(h|0)){Mb()}}if((p|0)==(o|0)){c[3068]=c[3068]&~(1<<l);m=h;n=j;break}if((p|0)!=(q|0)){if(p>>>0<k>>>0){Mb()}q=p+8|0;if((c[q>>2]|0)==(h|0)){r=q}else{Mb()}}else{r=p+8|0}c[o+12>>2]=p;c[r>>2]=o;m=h;n=j;break}o=c[a+(24-g)>>2]|0;p=c[a+(12-g)>>2]|0;do{if((p|0)==(h|0)){q=16-g|0;l=a+(q+4)|0;s=c[l>>2]|0;if((s|0)==0){t=a+q|0;q=c[t>>2]|0;if((q|0)==0){u=0;break}else{v=q;w=t}}else{v=s;w=l}while(1){l=v+20|0;s=c[l>>2]|0;if((s|0)!=0){v=s;w=l;continue}l=v+16|0;s=c[l>>2]|0;if((s|0)==0){break}else{v=s;w=l}}if(w>>>0<k>>>0){Mb()}else{c[w>>2]=0;u=v;break}}else{l=c[a+(8-g)>>2]|0;if(l>>>0<k>>>0){Mb()}s=l+12|0;if((c[s>>2]|0)!=(h|0)){Mb()}t=p+8|0;if((c[t>>2]|0)==(h|0)){c[s>>2]=p;c[t>>2]=l;u=p;break}else{Mb()}}}while(0);if((o|0)!=0){p=c[a+(28-g)>>2]|0;k=12576+(p<<2)|0;if((h|0)==(c[k>>2]|0)){c[k>>2]=u;if((u|0)==0){c[12276>>2]=c[12276>>2]&~(1<<p);m=h;n=j;break}}else{if(o>>>0<(c[12288>>2]|0)>>>0){Mb()}p=o+16|0;if((c[p>>2]|0)==(h|0)){c[p>>2]=u}else{c[o+20>>2]=u}if((u|0)==0){m=h;n=j;break}}if(u>>>0<(c[12288>>2]|0)>>>0){Mb()}c[u+24>>2]=o;p=16-g|0;k=c[a+p>>2]|0;do{if((k|0)!=0){if(k>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[u+16>>2]=k;c[k+24>>2]=u;break}}}while(0);k=c[a+(p+4)>>2]|0;if((k|0)!=0){if(k>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[u+20>>2]=k;c[k+24>>2]=u;m=h;n=j;break}}else{m=h;n=j}}else{m=h;n=j}}else{m=a;n=b}}while(0);u=c[12288>>2]|0;if(e>>>0<u>>>0){Mb()}v=a+(b+4)|0;w=c[v>>2]|0;if((w&2|0)==0){if((e|0)==(c[12296>>2]|0)){r=(c[12284>>2]|0)+n|0;c[12284>>2]=r;c[12296>>2]=m;c[m+4>>2]=r|1;if((m|0)!=(c[12292>>2]|0)){i=d;return}c[12292>>2]=0;c[12280>>2]=0;i=d;return}if((e|0)==(c[12292>>2]|0)){r=(c[12280>>2]|0)+n|0;c[12280>>2]=r;c[12292>>2]=m;c[m+4>>2]=r|1;c[m+r>>2]=r;i=d;return}r=(w&-8)+n|0;f=w>>>3;do{if(!(w>>>0<256)){k=c[a+(b+24)>>2]|0;g=c[a+(b+12)>>2]|0;do{if((g|0)==(e|0)){o=a+(b+20)|0;l=c[o>>2]|0;if((l|0)==0){t=a+(b+16)|0;s=c[t>>2]|0;if((s|0)==0){x=0;break}else{y=s;z=t}}else{y=l;z=o}while(1){o=y+20|0;l=c[o>>2]|0;if((l|0)!=0){y=l;z=o;continue}o=y+16|0;l=c[o>>2]|0;if((l|0)==0){break}else{y=l;z=o}}if(z>>>0<u>>>0){Mb()}else{c[z>>2]=0;x=y;break}}else{o=c[a+(b+8)>>2]|0;if(o>>>0<u>>>0){Mb()}l=o+12|0;if((c[l>>2]|0)!=(e|0)){Mb()}t=g+8|0;if((c[t>>2]|0)==(e|0)){c[l>>2]=g;c[t>>2]=o;x=g;break}else{Mb()}}}while(0);if((k|0)!=0){g=c[a+(b+28)>>2]|0;j=12576+(g<<2)|0;if((e|0)==(c[j>>2]|0)){c[j>>2]=x;if((x|0)==0){c[12276>>2]=c[12276>>2]&~(1<<g);break}}else{if(k>>>0<(c[12288>>2]|0)>>>0){Mb()}g=k+16|0;if((c[g>>2]|0)==(e|0)){c[g>>2]=x}else{c[k+20>>2]=x}if((x|0)==0){break}}if(x>>>0<(c[12288>>2]|0)>>>0){Mb()}c[x+24>>2]=k;g=c[a+(b+16)>>2]|0;do{if((g|0)!=0){if(g>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[x+16>>2]=g;c[g+24>>2]=x;break}}}while(0);g=c[a+(b+20)>>2]|0;if((g|0)!=0){if(g>>>0<(c[12288>>2]|0)>>>0){Mb()}else{c[x+20>>2]=g;c[g+24>>2]=x;break}}}}else{g=c[a+(b+8)>>2]|0;k=c[a+(b+12)>>2]|0;j=12312+(f<<1<<2)|0;if((g|0)!=(j|0)){if(g>>>0<u>>>0){Mb()}if((c[g+12>>2]|0)!=(e|0)){Mb()}}if((k|0)==(g|0)){c[3068]=c[3068]&~(1<<f);break}if((k|0)!=(j|0)){if(k>>>0<u>>>0){Mb()}j=k+8|0;if((c[j>>2]|0)==(e|0)){A=j}else{Mb()}}else{A=k+8|0}c[g+12>>2]=k;c[A>>2]=g}}while(0);c[m+4>>2]=r|1;c[m+r>>2]=r;if((m|0)==(c[12292>>2]|0)){c[12280>>2]=r;i=d;return}else{B=r}}else{c[v>>2]=w&-2;c[m+4>>2]=n|1;c[m+n>>2]=n;B=n}n=B>>>3;if(B>>>0<256){w=n<<1;v=12312+(w<<2)|0;r=c[3068]|0;A=1<<n;if((r&A|0)!=0){n=12312+(w+2<<2)|0;e=c[n>>2]|0;if(e>>>0<(c[12288>>2]|0)>>>0){Mb()}else{C=n;D=e}}else{c[3068]=r|A;C=12312+(w+2<<2)|0;D=v}c[C>>2]=m;c[D+12>>2]=m;c[m+8>>2]=D;c[m+12>>2]=v;i=d;return}v=B>>>8;if((v|0)!=0){if(B>>>0>16777215){E=31}else{D=(v+1048320|0)>>>16&8;C=v<<D;v=(C+520192|0)>>>16&4;w=C<<v;C=(w+245760|0)>>>16&2;A=14-(v|D|C)+(w<<C>>>15)|0;E=B>>>(A+7|0)&1|A<<1}}else{E=0}A=12576+(E<<2)|0;c[m+28>>2]=E;c[m+20>>2]=0;c[m+16>>2]=0;C=c[12276>>2]|0;w=1<<E;if((C&w|0)==0){c[12276>>2]=C|w;c[A>>2]=m;c[m+24>>2]=A;c[m+12>>2]=m;c[m+8>>2]=m;i=d;return}w=c[A>>2]|0;if((E|0)==31){F=0}else{F=25-(E>>>1)|0}a:do{if((c[w+4>>2]&-8|0)==(B|0)){G=w}else{E=B<<F;A=w;while(1){H=A+(E>>>31<<2)+16|0;C=c[H>>2]|0;if((C|0)==0){break}if((c[C+4>>2]&-8|0)==(B|0)){G=C;break a}else{E=E<<1;A=C}}if(H>>>0<(c[12288>>2]|0)>>>0){Mb()}c[H>>2]=m;c[m+24>>2]=A;c[m+12>>2]=m;c[m+8>>2]=m;i=d;return}}while(0);H=G+8|0;B=c[H>>2]|0;w=c[12288>>2]|0;if(G>>>0<w>>>0){Mb()}if(B>>>0<w>>>0){Mb()}c[B+12>>2]=m;c[H>>2]=m;c[m+8>>2]=B;c[m+12>>2]=G;c[m+24>>2]=0;i=d;return}function Td(a,b){a=a|0;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,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=i;f=a+4|0;g=c[f>>2]|0;h=a+100|0;if(g>>>0<(c[h>>2]|0)>>>0){c[f>>2]=g+1;j=d[g>>0]|0}else{j=Ud(a)|0}if((j|0)==43|(j|0)==45){g=(j|0)==45&1;k=c[f>>2]|0;if(k>>>0<(c[h>>2]|0)>>>0){c[f>>2]=k+1;l=d[k>>0]|0}else{l=Ud(a)|0}if(!((l+ -48|0)>>>0<10|(b|0)==0)?(c[h>>2]|0)!=0:0){c[f>>2]=(c[f>>2]|0)+ -1;m=l;n=g}else{m=l;n=g}}else{m=j;n=0}if((m+ -48|0)>>>0>9){if((c[h>>2]|0)==0){o=-2147483648;p=0;E=o;i=e;return p|0}c[f>>2]=(c[f>>2]|0)+ -1;o=-2147483648;p=0;E=o;i=e;return p|0}else{q=m;r=0}while(1){s=q+ -48+r|0;m=c[f>>2]|0;if(m>>>0<(c[h>>2]|0)>>>0){c[f>>2]=m+1;t=d[m>>0]|0}else{t=Ud(a)|0}u=(t+ -48|0)>>>0<10;if(!(u&(s|0)<214748364)){break}q=t;r=s*10|0}r=((s|0)<0)<<31>>31;if(u){u=s;q=r;m=t;while(1){j=qe(u|0,q|0,10,0)|0;g=E;l=ee(m|0,((m|0)<0)<<31>>31|0,-48,-1)|0;b=ee(l|0,E|0,j|0,g|0)|0;g=E;j=c[f>>2]|0;if(j>>>0<(c[h>>2]|0)>>>0){c[f>>2]=j+1;v=d[j>>0]|0}else{v=Ud(a)|0}if((v+ -48|0)>>>0<10&((g|0)<21474836|(g|0)==21474836&b>>>0<2061584302)){u=b;q=g;m=v}else{w=b;x=g;y=v;break}}}else{w=s;x=r;y=t}if((y+ -48|0)>>>0<10){do{y=c[f>>2]|0;if(y>>>0<(c[h>>2]|0)>>>0){c[f>>2]=y+1;z=d[y>>0]|0}else{z=Ud(a)|0}}while((z+ -48|0)>>>0<10)}if((c[h>>2]|0)!=0){c[f>>2]=(c[f>>2]|0)+ -1}f=(n|0)!=0;n=de(0,0,w|0,x|0)|0;o=f?E:x;p=f?n:w;E=o;i=e;return p|0}function Ud(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;e=i;f=b+104|0;g=c[f>>2]|0;if(!((g|0)!=0?(c[b+108>>2]|0)>=(g|0):0)){h=3}if((h|0)==3?(g=Xd(b)|0,(g|0)>=0):0){j=c[f>>2]|0;f=c[b+8>>2]|0;k=c[b+4>>2]|0;if((j|0)!=0?(l=j-(c[b+108>>2]|0)+ -1|0,(f-k|0)>(l|0)):0){c[b+100>>2]=k+l;m=k}else{n=k;h=8}if((h|0)==8){c[b+100>>2]=f;m=n}if((f|0)!=0){n=b+108|0;c[n>>2]=f+1-m+(c[n>>2]|0)}n=m+ -1|0;if((d[n>>0]|0|0)==(g|0)){o=g;i=e;return o|0}a[n>>0]=g;o=g;i=e;return o|0}c[b+100>>2]=0;o=-1;i=e;return o|0}function Vd(a,b){a=+a;b=b|0;var d=0,e=0,f=0,g=0,j=0,l=0.0,m=0.0,n=0.0,o=0;d=i;h[k>>3]=a;e=c[k>>2]|0;f=c[k+4>>2]|0;g=ge(e|0,f|0,52)|0;j=g&2047;if((j|0)==2047){l=a;i=d;return+l}else if((j|0)==0){if(a!=0.0){m=+Vd(a*18446744073709552000.0,b);n=m;o=(c[b>>2]|0)+ -64|0}else{n=a;o=0}c[b>>2]=o;l=n;i=d;return+l}else{c[b>>2]=j+ -1022;c[k>>2]=e;c[k+4>>2]=f&-2146435073|1071644672;l=+h[k>>3];i=d;return+l}return 0.0}function Wd(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;if((b|0)==0){f=0;i=e;return f|0}if(d>>>0<128){a[b>>0]=d;f=1;i=e;return f|0}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;f=2;i=e;return f|0}if(d>>>0<55296|(d+ -57344|0)>>>0<8192){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;f=3;i=e;return f|0}if((d+ -65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;f=4;i=e;return f|0}else{c[(ic()|0)>>2]=84;f=-1;i=e;return f|0}return 0}function Xd(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+16|0;f=e;g=b+8|0;do{if((c[g>>2]|0)==0){h=b+74|0;j=a[h>>0]|0;a[h>>0]=j+255|j;j=b+20|0;h=b+44|0;if((c[j>>2]|0)>>>0>(c[h>>2]|0)>>>0){zc[c[b+36>>2]&3](b,0,0)|0}c[b+16>>2]=0;c[b+28>>2]=0;c[j>>2]=0;j=c[b>>2]|0;if((j&20|0)==0){k=c[h>>2]|0;c[g>>2]=k;c[b+4>>2]=k;break}if((j&4|0)==0){l=-1;i=e;return l|0}c[b>>2]=j|32;l=-1;i=e;return l|0}}while(0);if((zc[c[b+32>>2]&3](b,f,1)|0)!=1){l=-1;i=e;return l|0}l=d[f>>0]|0;i=e;return l|0}function Yd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;g=e+16|0;h=c[g>>2]|0;do{if((h|0)==0){j=e+74|0;k=a[j>>0]|0;a[j>>0]=k+255|k;k=c[e>>2]|0;if((k&8|0)==0){c[e+8>>2]=0;c[e+4>>2]=0;j=c[e+44>>2]|0;c[e+28>>2]=j;c[e+20>>2]=j;l=j+(c[e+48>>2]|0)|0;c[g>>2]=l;m=l;n=j;break}c[e>>2]=k|32;i=f;return}else{m=h;n=c[e+20>>2]|0}}while(0);h=e+20|0;if((m-n|0)>>>0<d>>>0){zc[c[e+36>>2]&3](e,b,d)|0;i=f;return}a:do{if((a[e+75>>0]|0)>-1){m=d;while(1){if((m|0)==0){o=d;p=b;q=n;break a}g=m+ -1|0;if((a[b+g>>0]|0)==10){break}else{m=g}}if((zc[c[e+36>>2]&3](e,b,m)|0)>>>0<m>>>0){i=f;return}else{o=d-m|0;p=b+m|0;q=c[h>>2]|0;break}}else{o=d;p=b;q=n}}while(0);ie(q|0,p|0,o|0)|0;c[h>>2]=(c[h>>2]|0)+o;i=f;return}function Zd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=i;i=i+352|0;g=f+248|0;h=f+80|0;j=f;k=f+264|0;l=f+136|0;m=f+120|0;c[m>>2]=e;e=l+0|0;n=13672|0;o=e+112|0;do{c[e>>2]=c[n>>2];e=e+4|0;n=n+4|0}while((e|0)<(o|0));n=-2-b|0;p=n>>>0<2147483647?n:2147483647;n=l+48|0;c[n>>2]=p;q=l+20|0;c[q>>2]=b;r=l+44|0;c[r>>2]=b;s=b+p|0;b=l+16|0;c[b>>2]=s;t=l+28|0;c[t>>2]=s;e=h+0|0;o=e+40|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(o|0));c[g>>2]=c[m>>2];if((_d(0,d,g,j,h)|0)>=0){if((c[n>>2]|0)==0){m=c[r>>2]|0;c[r>>2]=k;c[t>>2]=k;c[q>>2]=k;c[n>>2]=80;c[b>>2]=k+80;_d(l,d,g,j,h)|0;if((m|0)!=0){zc[c[l+36>>2]&3](l,0,0)|0;c[r>>2]=m;c[n>>2]=0;c[b>>2]=0;c[t>>2]=0;c[q>>2]=0}}else{_d(l,d,g,j,h)|0}}if((p|0)==0){i=f;return}p=c[q>>2]|0;a[p+(((p|0)==(c[b>>2]|0))<<31>>31)>>0]=0;i=f;return}function _d(e,f,g,j,l){e=e|0;f=f|0;g=g|0;j=j|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,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,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.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.0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0.0,Bb=0.0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0.0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0.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,jc=0,kc=0,lc=0,mc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0.0,zc=0.0,Ac=0.0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_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;m=i;i=i+832|0;n=m+16|0;o=m;p=m+808|0;q=p;r=m+792|0;s=m+496|0;t=m+752|0;u=m+8|0;v=m+804|0;w=(e|0)!=0;x=t+40|0;y=x;z=t+39|0;t=u+4|0;A=r+12|0;B=r+11|0;r=A;C=r-q|0;D=-2-q|0;F=r+2|0;G=n+264|0;H=p+9|0;I=H;J=p+8|0;K=0;L=0;M=f;f=0;N=0;O=0;a:while(1){do{if((f|0)>-1){if((N|0)>(2147483647-f|0)){c[(ic()|0)>>2]=75;P=-1;break}else{P=N+f|0;break}}else{P=f}}while(0);Q=a[M>>0]|0;if(Q<<24>>24==0){R=351;break}else{S=Q;T=M}while(1){if(S<<24>>24==0){U=T;V=T;break}else if(S<<24>>24==37){W=T;X=T;R=9;break}Q=T+1|0;S=a[Q>>0]|0;T=Q}b:do{if((R|0)==9){while(1){R=0;if((a[W+1>>0]|0)!=37){U=W;V=X;break b}Q=X+1|0;Y=W+2|0;if((a[Y>>0]|0)==37){W=Y;X=Q;R=9}else{U=Y;V=Q;break}}}}while(0);Q=V-M|0;if(w){Yd(M,Q,e)}if((V|0)!=(M|0)){Z=L;_=K;M=U;f=P;N=Q;L=Z;K=_;continue}Y=U+1|0;$=a[Y>>0]|0;ba=($<<24>>24)+ -48|0;if(ba>>>0<10?(a[U+2>>0]|0)==36:0){ca=U+3|0;da=a[ca>>0]|0;ea=ba;fa=1;ga=ca}else{da=$;ea=-1;fa=O;ga=Y}Y=da<<24>>24;c:do{if((Y+ -32|0)>>>0<32){$=Y;ca=da;ba=0;ha=ga;while(1){if((1<<$+ -32&75913|0)==0){ia=ca;ja=ba;ka=ha;break c}la=1<<(ca<<24>>24)+ -32|ba;ma=ha+1|0;na=a[ma>>0]|0;$=na<<24>>24;if(!(($+ -32|0)>>>0<32)){ia=na;ja=la;ka=ma;break}else{ca=na;ba=la;ha=ma}}}else{ia=da;ja=0;ka=ga}}while(0);do{if(ia<<24>>24==42){Y=ka+1|0;ha=(a[Y>>0]|0)+ -48|0;if(ha>>>0<10?(a[ka+2>>0]|0)==36:0){c[l+(ha<<2)>>2]=10;oa=1;pa=ka+3|0;qa=c[j+((a[Y>>0]|0)+ -48<<3)>>2]|0}else{if((fa|0)!=0){ra=-1;R=370;break a}if(!w){sa=Y;ta=ja;ua=0;va=0;break}ha=c[g>>2]|0;ba=c[ha>>2]|0;c[g>>2]=ha+4;oa=0;pa=Y;qa=ba}if((qa|0)<0){sa=pa;ta=ja|8192;ua=oa;va=0-qa|0}else{sa=pa;ta=ja;ua=oa;va=qa}}else{ba=ia<<24>>24;if((ba+ -48|0)>>>0<10){Y=ba;ba=ka;ha=0;do{ha=Y+ -48+(ha*10|0)|0;ba=ba+1|0;Y=a[ba>>0]|0}while((Y+ -48|0)>>>0<10);if((ha|0)<0){ra=-1;R=370;break a}else{sa=ba;ta=ja;ua=fa;va=ha}}else{sa=ka;ta=ja;ua=fa;va=0}}}while(0);d:do{if((a[sa>>0]|0)==46){Y=sa+1|0;ca=a[Y>>0]|0;if(!(ca<<24>>24==42)){$=ca<<24>>24;if(($+ -48|0)>>>0<10){wa=$;xa=Y;ya=0}else{za=Y;Aa=0;break}while(1){Y=wa+ -48+(ya*10|0)|0;$=xa+1|0;wa=a[$>>0]|0;if(!((wa+ -48|0)>>>0<10)){za=$;Aa=Y;break d}else{xa=$;ya=Y}}}ha=sa+2|0;ba=(a[ha>>0]|0)+ -48|0;if(ba>>>0<10?(a[sa+3>>0]|0)==36:0){c[l+(ba<<2)>>2]=10;za=sa+4|0;Aa=c[j+((a[ha>>0]|0)+ -48<<3)>>2]|0;break}if((ua|0)!=0){ra=-1;R=370;break a}if(w){ba=c[g>>2]|0;Y=c[ba>>2]|0;c[g>>2]=ba+4;za=ha;Aa=Y}else{za=ha;Aa=0}}else{za=sa;Aa=-1}}while(0);ha=za;Y=0;while(1){Ba=a[ha>>0]|0;ba=(Ba<<24>>24)+ -65|0;if(ba>>>0>57){ra=-1;R=370;break a}Ca=ha+1|0;Da=a[13104+(Y*58|0)+ba>>0]|0;Ea=Da&255;if((Ea+ -1|0)>>>0<8){ha=Ca;Y=Ea}else{break}}if(Da<<24>>24==0){ra=-1;R=370;break}ba=(ea|0)>-1;e:do{if(Da<<24>>24==19){if(ba){ra=-1;R=370;break a}if(w){Fa=Ba;Ga=L;Ha=K}else{Z=L;_=K;M=Ca;f=P;N=Q;O=ua;L=Z;K=_;continue a}}else{f:do{if(ba){c[l+(ea<<2)>>2]=Ea;$=j+(ea<<3)|0;ca=c[$+4>>2]|0;ma=c[$>>2]|0;if(w){Ia=ma;Ja=ca}else{K=ca;L=ma;M=Ca;f=P;N=Q;O=ua;continue a}}else{if(!w){ra=0;R=370;break a}if((Da&255)>20){Fa=Ba;Ga=L;Ha=K;break e}do{switch(Ea|0){case 10:{ma=c[g>>2]|0;ca=c[ma>>2]|0;c[g>>2]=ma+4;Ia=ca;Ja=((ca|0)<0)<<31>>31;break f;break};case 12:{ca=c[g>>2]|0;ma=ca;$=c[ma>>2]|0;la=c[ma+4>>2]|0;c[g>>2]=ca+8;Ia=$;Ja=la;break f;break};case 9:{la=c[g>>2]|0;$=c[la>>2]|0;c[g>>2]=la+4;Ia=$;Ja=K;break f;break};case 14:{$=c[g>>2]|0;la=c[$>>2]|0;c[g>>2]=$+4;Ia=la&65535;Ja=0;break f;break};case 15:{la=c[g>>2]|0;$=c[la>>2]|0;c[g>>2]=la+4;Ia=$<<24>>24;Ja=((($&255)<<24>>24|0)<0)<<31>>31;break f;break};case 11:{$=c[g>>2]|0;la=c[$>>2]|0;c[g>>2]=$+4;Ia=la;Ja=0;break f;break};case 13:{la=c[g>>2]|0;$=c[la>>2]|0;c[g>>2]=la+4;Ia=$<<16>>16;Ja=((($&65535)<<16>>16|0)<0)<<31>>31;break f;break};case 18:{$=c[g>>2]|0;c[k>>2]=c[$>>2];c[k+4>>2]=c[$+4>>2];Ka=+h[k>>3];c[g>>2]=$+8;h[k>>3]=Ka;Ia=c[k>>2]|0;Ja=c[k+4>>2]|0;break f;break};case 16:{$=c[g>>2]|0;la=c[$>>2]|0;c[g>>2]=$+4;Ia=la&255;Ja=0;break f;break};case 17:{la=c[g>>2]|0;c[k>>2]=c[la>>2];c[k+4>>2]=c[la+4>>2];Ka=+h[k>>3];c[g>>2]=la+8;h[k>>3]=Ka;Ia=c[k>>2]|0;Ja=c[k+4>>2]|0;break f;break};default:{Ia=L;Ja=K;break f}}}while(0)}}while(0);Fa=a[ha>>0]|0;Ga=Ia;Ha=Ja}}while(0);ha=Fa<<24>>24;if((Y|0)==0){La=ha}else{La=(ha&15|0)==3?ha&-33:ha}ha=ta&-65537;ba=(ta&8192|0)==0?ta:ha;g:do{switch(La|0){case 99:{a[z>>0]=Ga;Ma=Ha;Na=Ga;Oa=z;Pa=ha;Qa=1;Ra=0;Sa=13568;Ta=x;break};case 88:case 120:{Ua=ba;Va=Aa;Wa=La;R=77;break};case 109:{Xa=nc(c[(ic()|0)>>2]|0)|0;R=99;break};case 115:{Xa=(Ga|0)==0?13584:Ga;R=99;break};case 110:{switch(Y|0){case 0:{c[Ga>>2]=P;K=Ha;L=Ga;M=Ca;f=P;N=Q;O=ua;continue a;break};case 2:{la=Ga;c[la>>2]=P;c[la+4>>2]=((P|0)<0)<<31>>31;K=Ha;L=Ga;M=Ca;f=P;N=Q;O=ua;continue a;break};case 1:{c[Ga>>2]=P;K=Ha;L=Ga;M=Ca;f=P;N=Q;O=ua;continue a;break};case 4:{a[Ga>>0]=P;K=Ha;L=Ga;M=Ca;f=P;N=Q;O=ua;continue a;break};case 6:{c[Ga>>2]=P;K=Ha;L=Ga;M=Ca;f=P;N=Q;O=ua;continue a;break};case 3:{b[Ga>>1]=P;K=Ha;L=Ga;M=Ca;f=P;N=Q;O=ua;continue a;break};case 7:{la=Ga;c[la>>2]=P;c[la+4>>2]=((P|0)<0)<<31>>31;K=Ha;L=Ga;M=Ca;f=P;N=Q;O=ua;continue a;break};default:{K=Ha;L=Ga;M=Ca;f=P;N=Q;O=ua;continue a}}break};case 112:{Ua=ba|8;Va=Aa>>>0>8?Aa:8;Wa=120;R=77;break};case 67:{c[u>>2]=Ga;c[t>>2]=0;Ya=u;Za=u;_a=-1;R=115;break};case 83:{if((Aa|0)==0){$a=Ga;ab=Ga;bb=0;R=122}else{Ya=Ga;Za=Ga;_a=Aa;R=115}break};case 111:{la=Ga;$=(la|0)==0&(Ha|0)==0;if($){cb=x}else{ca=x;ma=la;la=Ha;while(1){na=ca+ -1|0;a[na>>0]=ma&7|48;ma=ge(ma|0,la|0,3)|0;la=E;if((ma|0)==0&(la|0)==0){cb=na;break}else{ca=na}}}if((ba&8|0)==0){db=Ga;eb=Ha;fb=cb;gb=ba;hb=Aa;ib=0;jb=13568;R=94}else{db=Ga;eb=Ha;fb=cb;gb=ba;hb=Aa;ib=$&1^1;jb=$?13568:13573|0;R=94}break};case 105:case 100:{if((Ha|0)<0){ca=de(0,0,Ga|0,Ha|0)|0;kb=ca;lb=E;mb=1;nb=13568;R=89;break g}if((ba&2048|0)==0){ca=ba&1;kb=Ga;lb=Ha;mb=ca;nb=(ca|0)==0?13568:13570|0;R=89}else{kb=Ga;lb=Ha;mb=1;nb=13569|0;R=89}break};case 117:{kb=Ga;lb=Ha;mb=0;nb=13568;R=89;break};case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{c[k>>2]=Ga;c[k+4>>2]=Ha;Ka=+h[k>>3];c[o>>2]=0;if((Ha|0)>=0){if((ba&2048|0)==0){ca=ba&1;ob=Ka;pb=ca;qb=(ca|0)==0?13593|0:13598|0}else{ob=Ka;pb=1;qb=13595|0}}else{ob=-Ka;pb=1;qb=13592}h[k>>3]=ob;ca=c[k+4>>2]&2146435072;if(!(ca>>>0<2146435072|(ca|0)==2146435072&0<0)){ca=(La&32|0)!=0;if(ob!=ob|0.0!=0.0){rb=0;sb=ca?13632:13640}else{rb=pb;sb=ca?13616:13624}ca=rb+3|0;la=(ca|0)<(va|0);if((ba&8192|0)==0&la){ma=va-ca|0;he(s|0,32,(ma>>>0>256?256:ma)|0)|0;if(ma>>>0>255){na=ma;while(1){Yd(s,256,e);tb=na+ -256|0;if(tb>>>0>255){na=tb}else{ub=tb;break}}}else{ub=ma}Yd(s,ub,e)}Yd(qb,rb,e);Yd(sb,3,e);if((ba&73728|0)==8192&la){na=va-ca|0;he(s|0,32,(na>>>0>256?256:na)|0)|0;if(na>>>0>255){$=na;while(1){Yd(s,256,e);tb=$+ -256|0;if(tb>>>0>255){$=tb}else{vb=tb;break}}}else{vb=na}Yd(s,vb,e)}K=Ha;L=Ga;M=Ca;f=P;N=la?va:ca;O=ua;continue a}Ka=+Vd(ob,o)*2.0;$=Ka!=0.0;if($){c[o>>2]=(c[o>>2]|0)+ -1}ma=La|32;if((ma|0)==97){tb=La&32;wb=(tb|0)==0?qb:qb+9|0;xb=pb|2;yb=Aa>>>0>11?0:12-Aa|0;do{if((yb|0)!=0){zb=yb;Ab=8.0;do{zb=zb+ -1|0;Ab=Ab*16.0}while((zb|0)!=0);if((a[wb>>0]|0)==45){Bb=-(Ab+(-Ka-Ab));break}else{Bb=Ka+Ab-Ab;break}}else{Bb=Ka}}while(0);yb=c[o>>2]|0;ca=(yb|0)<0?0-yb|0:yb;if((ca|0)<0){yb=A;la=ca;na=((ca|0)<0)<<31>>31;while(1){zb=se(la|0,na|0,10,0)|0;yb=yb+ -1|0;a[yb>>0]=zb|48;zb=la;la=re(la|0,na|0,10,0)|0;if(!(na>>>0>9|(na|0)==9&zb>>>0>4294967295)){break}else{na=E}}Cb=yb;Db=la}else{Cb=A;Db=ca}if((Db|0)==0){Eb=Cb}else{na=Cb;zb=Db;while(1){Fb=na+ -1|0;a[Fb>>0]=(zb>>>0)%10|0|48;if(zb>>>0<10){Eb=Fb;break}else{na=Fb;zb=(zb>>>0)/10|0}}}if((Eb|0)==(A|0)){a[B>>0]=48;Gb=B}else{Gb=Eb}a[Gb+ -1>>0]=(c[o>>2]>>31&2)+43;zb=Gb+ -2|0;a[zb>>0]=La+15;na=(ba&8|0)==0;if((Aa|0)>0){if(na){Hb=Bb;ca=p;while(1){la=~~Hb;yb=ca+1|0;a[ca>>0]=d[13648+la>>0]|tb;Hb=(Hb- +(la|0))*16.0;if((yb-q|0)==1){a[yb>>0]=46;Ib=ca+2|0}else{Ib=yb}if(!(Hb!=0.0)){Jb=Ib;break}else{ca=Ib}}}else{Hb=Bb;ca=p;while(1){yb=~~Hb;la=ca+1|0;a[ca>>0]=d[13648+yb>>0]|tb;Hb=(Hb- +(yb|0))*16.0;if((la-q|0)==1){a[la>>0]=46;Kb=ca+2|0}else{Kb=la}if(!(Hb!=0.0)){Jb=Kb;break}else{ca=Kb}}}}else{if(na){Hb=Bb;ca=p;while(1){la=~~Hb;yb=ca+1|0;a[ca>>0]=d[13648+la>>0]|tb;Hb=(Hb- +(la|0))*16.0;la=Hb!=0.0;if((yb-q|0)==1&la){a[yb>>0]=46;Lb=ca+2|0}else{Lb=yb}if(!la){Jb=Lb;break}else{ca=Lb}}}else{Hb=Bb;ca=p;while(1){na=~~Hb;la=ca+1|0;a[ca>>0]=d[13648+na>>0]|tb;Hb=(Hb- +(na|0))*16.0;if((la-q|0)==1){a[la>>0]=46;Mb=ca+2|0}else{Mb=la}if(!(Hb!=0.0)){Jb=Mb;break}else{ca=Mb}}}}ca=Jb;do{if((Aa|0)==0){R=186}else{if((D+ca|0)>=(Aa|0)){R=186;break}Nb=F+Aa-zb|0}}while(0);if((R|0)==186){R=0;Nb=C-zb+ca|0}tb=Nb+xb|0;la=ba&73728;na=(tb|0)<(va|0);if((la|0)==0&na){yb=va-tb|0;he(s|0,32,(yb>>>0>256?256:yb)|0)|0;if(yb>>>0>255){Fb=yb;while(1){Yd(s,256,e);Ob=Fb+ -256|0;if(Ob>>>0>255){Fb=Ob}else{Pb=Ob;break}}}else{Pb=yb}Yd(s,Pb,e)}Yd(wb,xb,e);if((la|0)==65536&na){Fb=va-tb|0;he(s|0,48,(Fb>>>0>256?256:Fb)|0)|0;if(Fb>>>0>255){Ob=Fb;while(1){Yd(s,256,e);Qb=Ob+ -256|0;if(Qb>>>0>255){Ob=Qb}else{Rb=Qb;break}}}else{Rb=Fb}Yd(s,Rb,e)}Ob=ca-q|0;Yd(p,Ob,e);xb=r-zb|0;wb=Nb-xb-Ob|0;if((wb|0)>0){he(s|0,48,(wb>>>0>256?256:wb)|0)|0;if(wb>>>0>255){Ob=wb;while(1){Yd(s,256,e);yb=Ob+ -256|0;if(yb>>>0>255){Ob=yb}else{Sb=yb;break}}}else{Sb=wb}Yd(s,Sb,e)}Yd(zb,xb,e);if((la|0)==8192&na){Ob=va-tb|0;he(s|0,32,(Ob>>>0>256?256:Ob)|0)|0;if(Ob>>>0>255){ca=Ob;while(1){Yd(s,256,e);Fb=ca+ -256|0;if(Fb>>>0>255){ca=Fb}else{Tb=Fb;break}}}else{Tb=Ob}Yd(s,Tb,e)}K=Ha;L=Ga;M=Ca;f=P;N=na?va:tb;O=ua;continue a}ca=(Aa|0)<0?6:Aa;if($){la=(c[o>>2]|0)+ -28|0;c[o>>2]=la;Ub=Ka*268435456.0;Vb=la}else{Ub=Ka;Vb=c[o>>2]|0}la=(Vb|0)<0?n:G;Hb=Ub;xb=la;do{zb=~~Hb>>>0;c[xb>>2]=zb;xb=xb+4|0;Hb=(Hb- +(zb>>>0))*1.0e9}while(Hb!=0.0);$=c[o>>2]|0;if(($|0)>0){tb=$;na=la;Ob=xb;while(1){zb=(tb|0)>29?29:tb;wb=Ob+ -4|0;do{if(wb>>>0<na>>>0){Wb=na;Xb=(c[wb>>2]|0)==0&Ob>>>0>na>>>0?wb:Ob}else{Fb=0;yb=wb;do{Qb=je(c[yb>>2]|0,0,zb|0)|0;Yb=ee(Qb|0,E|0,Fb|0,0)|0;Qb=E;Zb=se(Yb|0,Qb|0,1e9,0)|0;c[yb>>2]=Zb;Fb=re(Yb|0,Qb|0,1e9,0)|0;yb=yb+ -4|0}while(!(yb>>>0<na>>>0));yb=(c[wb>>2]|0)==0&Ob>>>0>na>>>0?wb:Ob;if((Fb|0)==0){Wb=na;Xb=yb;break}Qb=na+ -4|0;c[Qb>>2]=Fb;Wb=Qb;Xb=yb}}while(0);wb=(c[o>>2]|0)-zb|0;c[o>>2]=wb;if((wb|0)>0){tb=wb;na=Wb;Ob=Xb}else{_b=wb;$b=Wb;ac=Xb;break}}}else{_b=$;$b=la;ac=xb}h:do{if((_b|0)<0){Ob=((ca|0)/9|0)+2|0;if((ma|0)==102){na=la;tb=la+(Ob<<2)|0;wb=_b;yb=$b;Qb=ac;while(1){Yb=0-wb|0;Zb=(Yb|0)>9?9:Yb;do{if(yb>>>0<Qb>>>0){Yb=(1<<Zb)+ -1|0;bc=1e9>>>Zb;cc=0;dc=yb;do{ec=c[dc>>2]|0;c[dc>>2]=(ec>>>Zb)+cc;cc=aa(ec&Yb,bc)|0;dc=dc+4|0}while(dc>>>0<Qb>>>0);dc=(c[yb>>2]|0)==0?yb+4|0:yb;if((cc|0)==0){fc=dc;gc=Qb;break}c[Qb>>2]=cc;fc=dc;gc=Qb+4|0}else{fc=(c[yb>>2]|0)==0?yb+4|0:yb;gc=Qb}}while(0);Fb=(gc-na>>2|0)>(Ob|0)?tb:gc;wb=(c[o>>2]|0)+Zb|0;c[o>>2]=wb;if((wb|0)>=0){hc=fc;jc=Fb;break h}else{yb=fc;Qb=Fb}}}else{kc=_b;lc=$b;mc=ac}while(1){Qb=0-kc|0;yb=(Qb|0)>9?9:Qb;do{if(lc>>>0<mc>>>0){Qb=(1<<yb)+ -1|0;wb=1e9>>>yb;tb=0;na=lc;do{zb=c[na>>2]|0;c[na>>2]=(zb>>>yb)+tb;tb=aa(zb&Qb,wb)|0;na=na+4|0}while(na>>>0<mc>>>0);na=(c[lc>>2]|0)==0?lc+4|0:lc;if((tb|0)==0){oc=na;pc=mc;break}c[mc>>2]=tb;oc=na;pc=mc+4|0}else{oc=(c[lc>>2]|0)==0?lc+4|0:lc;pc=mc}}while(0);if((pc-oc>>2|0)>(Ob|0)){qc=oc+(Ob<<2)|0}else{qc=pc}kc=(c[o>>2]|0)+yb|0;c[o>>2]=kc;if((kc|0)>=0){hc=oc;jc=qc;break}else{lc=oc;mc=qc}}}else{hc=$b;jc=ac}}while(0);xb=la;do{if(hc>>>0<jc>>>0){$=(xb-hc>>2)*9|0;Ob=c[hc>>2]|0;if(Ob>>>0<10){rc=$;break}else{sc=$;tc=10}while(1){tc=tc*10|0;$=sc+1|0;if(Ob>>>0<tc>>>0){rc=$;break}else{sc=$}}}else{rc=0}}while(0);Ob=(ma|0)==103;$=ca-((ma|0)!=102?rc:0)+((Ob&(ca|0)!=0)<<31>>31)|0;if(($|0)<(((jc-xb>>2)*9|0)+ -9|0)){Zb=$+9216|0;$=(Zb|0)/9|0;na=la+($+ -1023<<2)|0;wb=((Zb|0)%9|0)+1|0;if((wb|0)<9){Zb=10;Qb=wb;while(1){wb=Zb*10|0;Qb=Qb+1|0;if((Qb|0)==9){uc=wb;break}else{Zb=wb}}}else{uc=10}Zb=c[na>>2]|0;Qb=(Zb>>>0)%(uc>>>0)|0;if((Qb|0)==0?(la+($+ -1022<<2)|0)==(jc|0):0){vc=hc;wc=na;xc=rc}else{R=244}do{if((R|0)==244){R=0;Ab=(((Zb>>>0)/(uc>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;ma=(uc|0)/2|0;do{if(Qb>>>0<ma>>>0){yc=.5}else{if((Qb|0)==(ma|0)?(la+($+ -1022<<2)|0)==(jc|0):0){yc=1.0;break}yc=1.5}}while(0);do{if((pb|0)==0){zc=Ab;Ac=yc}else{if((a[qb>>0]|0)!=45){zc=Ab;Ac=yc;break}zc=Ab*-1.0;Ac=yc*-1.0}}while(0);ma=Zb-Qb|0;c[na>>2]=ma;if(!(zc+Ac!=zc)){vc=hc;wc=na;xc=rc;break}wb=ma+uc|0;c[na>>2]=wb;if(wb>>>0>999999999){wb=na;while(1){ma=wb+ -4|0;c[wb>>2]=0;cc=(c[ma>>2]|0)+1|0;c[ma>>2]=cc;if(cc>>>0>999999999){wb=ma}else{Bc=ma;break}}}else{Bc=na}wb=Bc>>>0<hc>>>0?Bc:hc;ma=(xb-wb>>2)*9|0;cc=c[wb>>2]|0;if(cc>>>0<10){vc=wb;wc=Bc;xc=ma;break}else{Cc=ma;Dc=10}while(1){Dc=Dc*10|0;ma=Cc+1|0;if(cc>>>0<Dc>>>0){vc=wb;wc=Bc;xc=ma;break}else{Cc=ma}}}}while(0);na=wc+4|0;Qb=jc>>>0>na>>>0?na:jc;while(1){na=Qb+ -4|0;if((c[na>>2]|0)==0&Qb>>>0>vc>>>0){Qb=na}else{Ec=vc;Fc=xc;Gc=Qb;break}}}else{Ec=hc;Fc=rc;Gc=jc}Qb=0-Fc|0;do{if(Ob){na=((ca|0)==0&1)+ca|0;if((na|0)>(Fc|0)&(Fc|0)>-5){Hc=La+ -1|0;Ic=na+ -1-Fc|0}else{Hc=La+ -2|0;Ic=na+ -1|0}if((ba&8|0)!=0){Jc=Hc;Kc=Ic;break}do{if(Gc>>>0>Ec>>>0){na=c[Gc+ -4>>2]|0;if((na|0)==0){Lc=9;break}if(((na>>>0)%10|0|0)==0){Mc=10;Nc=0}else{Lc=0;break}while(1){Mc=Mc*10|0;Zb=Nc+1|0;if(((na>>>0)%(Mc>>>0)|0|0)!=0){Lc=Zb;break}else{Nc=Zb}}}else{Lc=9}}while(0);na=((Gc-xb>>2)*9|0)+ -9|0;if((Hc|32|0)==102){yb=na-Lc|0;Zb=(yb|0)<0?0:yb;Jc=Hc;Kc=(Ic|0)<(Zb|0)?Ic:Zb;break}else{Zb=na+Fc-Lc|0;na=(Zb|0)<0?0:Zb;Jc=Hc;Kc=(Ic|0)<(na|0)?Ic:na;break}}else{Jc=La;Kc=ca}}while(0);ca=(Kc|0)!=0;if(ca){Oc=1}else{Oc=(ba&8|0)!=0}xb=Oc&1;Ob=(Jc|32|0)==102;if(Ob){Pc=(Fc|0)>0?Fc:0;Qc=0}else{na=(Fc|0)<0?Qb:Fc;if((na|0)<0){Zb=A;yb=na;$=((na|0)<0)<<31>>31;while(1){wb=se(yb|0,$|0,10,0)|0;Zb=Zb+ -1|0;a[Zb>>0]=wb|48;wb=yb;yb=re(yb|0,$|0,10,0)|0;if(!($>>>0>9|($|0)==9&wb>>>0>4294967295)){break}else{$=E}}Rc=Zb;Sc=yb}else{Rc=A;Sc=na}if((Sc|0)==0){Tc=Rc}else{$=Rc;Qb=Sc;while(1){wb=$+ -1|0;a[wb>>0]=(Qb>>>0)%10|0|48;if(Qb>>>0<10){Tc=wb;break}else{$=wb;Qb=(Qb>>>0)/10|0}}}if((r-Tc|0)<2){Qb=Tc;while(1){$=Qb+ -1|0;a[$>>0]=48;if((r-$|0)<2){Qb=$}else{Uc=$;break}}}else{Uc=Tc}a[Uc+ -1>>0]=(Fc>>31&2)+43;Qb=Uc+ -2|0;a[Qb>>0]=Jc;Pc=r-Qb|0;Qc=Qb}Qb=pb+1+Kc+xb+Pc|0;$=ba&73728;na=(Qb|0)<(va|0);if(($|0)==0&na){yb=va-Qb|0;he(s|0,32,(yb>>>0>256?256:yb)|0)|0;if(yb>>>0>255){Zb=yb;while(1){Yd(s,256,e);wb=Zb+ -256|0;if(wb>>>0>255){Zb=wb}else{Vc=wb;break}}}else{Vc=yb}Yd(s,Vc,e)}Yd(qb,pb,e);if(($|0)==65536&na){Zb=va-Qb|0;he(s|0,48,(Zb>>>0>256?256:Zb)|0)|0;if(Zb>>>0>255){xb=Zb;while(1){Yd(s,256,e);wb=xb+ -256|0;if(wb>>>0>255){xb=wb}else{Wc=wb;break}}}else{Wc=Zb}Yd(s,Wc,e)}do{if(Ob){xb=Ec>>>0>la>>>0?la:Ec;yb=xb;do{wb=c[yb>>2]|0;if((wb|0)==0){Xc=H}else{cc=H;ma=wb;while(1){wb=cc+ -1|0;a[wb>>0]=(ma>>>0)%10|0|48;if(ma>>>0<10){Xc=wb;break}else{cc=wb;ma=(ma>>>0)/10|0}}}do{if((yb|0)==(xb|0)){if((Xc|0)!=(H|0)){Yc=Xc;break}a[J>>0]=48;Yc=J}else{if(Xc>>>0>p>>>0){Zc=Xc}else{Yc=Xc;break}while(1){ma=Zc+ -1|0;a[ma>>0]=48;if(ma>>>0>p>>>0){Zc=ma}else{Yc=ma;break}}}}while(0);Yd(Yc,I-Yc|0,e);yb=yb+4|0}while(!(yb>>>0>la>>>0));if(!ca?(ba&8|0)==0:0){break}Yd(13664,1,e);if(yb>>>0<Gc>>>0&(Kc|0)>0){xb=Kc;tb=yb;while(1){ma=c[tb>>2]|0;if((ma|0)!=0){cc=H;wb=ma;while(1){cc=cc+ -1|0;a[cc>>0]=(wb>>>0)%10|0|48;if(wb>>>0<10){break}else{wb=(wb>>>0)/10|0}}if(cc>>>0>p>>>0){_c=cc;R=307}else{$c=cc}}else{_c=H;R=307}if((R|0)==307){while(1){R=0;wb=_c+ -1|0;a[wb>>0]=48;if(wb>>>0>p>>>0){_c=wb;R=307}else{$c=wb;break}}}Yd($c,(xb|0)>9?9:xb,e);tb=tb+4|0;cc=xb+ -9|0;if(!(tb>>>0<Gc>>>0&(cc|0)>0)){ad=cc;break}else{xb=cc}}}else{ad=Kc}if((ad|0)<=0){break}he(s|0,48,(ad>>>0>256?256:ad)|0)|0;if(ad>>>0>255){xb=ad;while(1){Yd(s,256,e);tb=xb+ -256|0;if(tb>>>0>255){xb=tb}else{bd=tb;break}}}else{bd=ad}Yd(s,bd,e)}else{xb=Gc>>>0>Ec>>>0?Gc:Ec+4|0;do{if((Kc|0)>-1){tb=(ba&8|0)!=0;yb=Kc;cc=Ec;do{wb=c[cc>>2]|0;if((wb|0)!=0){ma=H;zb=wb;while(1){ma=ma+ -1|0;a[ma>>0]=(zb>>>0)%10|0|48;if(zb>>>0<10){break}else{zb=(zb>>>0)/10|0}}if((ma|0)!=(H|0)){cd=ma}else{R=318}}else{R=318}if((R|0)==318){R=0;a[J>>0]=48;cd=J}do{if((cc|0)==(Ec|0)){zb=cd+1|0;Yd(cd,1,e);if(!((yb|0)>0|tb)){dd=zb;break}Yd(13664,1,e);dd=zb}else{if(cd>>>0>p>>>0){ed=cd}else{dd=cd;break}while(1){zb=ed+ -1|0;a[zb>>0]=48;if(zb>>>0>p>>>0){ed=zb}else{dd=zb;break}}}}while(0);ma=I-dd|0;Yd(dd,(ma|0)<(yb|0)?ma:yb,e);yb=yb-ma|0;cc=cc+4|0}while(cc>>>0<xb>>>0&(yb|0)>-1);if((yb|0)<=0){break}he(s|0,48,(yb>>>0>256?256:yb)|0)|0;if(yb>>>0>255){cc=yb;while(1){Yd(s,256,e);tb=cc+ -256|0;if(tb>>>0>255){cc=tb}else{fd=tb;break}}}else{fd=yb}Yd(s,fd,e)}}while(0);Yd(Qc,r-Qc|0,e)}}while(0);if(($|0)==8192&na){ca=va-Qb|0;he(s|0,32,(ca>>>0>256?256:ca)|0)|0;if(ca>>>0>255){la=ca;while(1){Yd(s,256,e);Ob=la+ -256|0;if(Ob>>>0>255){la=Ob}else{gd=Ob;break}}}else{gd=ca}Yd(s,gd,e)}K=Ha;L=Ga;M=Ca;f=P;N=na?va:Qb;O=ua;continue a;break};default:{Ma=Ha;Na=Ga;Oa=M;Pa=ba;Qa=Aa;Ra=0;Sa=13568;Ta=x}}}while(0);i:do{if((R|0)==77){R=0;Q=Ga;Y=Wa&32;if(!((Q|0)==0&(Ha|0)==0)){la=x;$=Q;Q=Ha;do{la=la+ -1|0;a[la>>0]=d[13648+($&15)>>0]|Y;$=ge($|0,Q|0,4)|0;Q=E}while(!(($|0)==0&(Q|0)==0));if((Ua&8|0)==0){db=Ga;eb=Ha;fb=la;gb=Ua;hb=Va;ib=0;jb=13568;R=94}else{db=Ga;eb=Ha;fb=la;gb=Ua;hb=Va;ib=2;jb=13568+(Wa>>4)|0;R=94}}else{db=Ga;eb=Ha;fb=x;gb=Ua;hb=Va;ib=0;jb=13568;R=94}}else if((R|0)==89){R=0;Q=kb;if(lb>>>0>0|(lb|0)==0&Q>>>0>4294967295){$=x;Y=Q;Qb=lb;while(1){na=se(Y|0,Qb|0,10,0)|0;$=$+ -1|0;a[$>>0]=na|48;na=Y;Y=re(Y|0,Qb|0,10,0)|0;if(!(Qb>>>0>9|(Qb|0)==9&na>>>0>4294967295)){break}else{Qb=E}}hd=$;id=Y}else{hd=x;id=Q}if((id|0)==0){db=kb;eb=lb;fb=hd;gb=ba;hb=Aa;ib=mb;jb=nb;R=94}else{Qb=hd;la=id;while(1){na=Qb+ -1|0;a[na>>0]=(la>>>0)%10|0|48;if(la>>>0<10){db=kb;eb=lb;fb=na;gb=ba;hb=Aa;ib=mb;jb=nb;R=94;break}else{Qb=na;la=(la>>>0)/10|0}}}}else if((R|0)==99){R=0;la=Xa;Qb=(Aa|0)==0;j:do{if((la&3|0)==0|Qb){jd=Aa;kd=Qb;ld=Xa;R=102}else{Q=Aa;Y=Xa;while(1){if((a[Y>>0]|0)==0){md=Q;nd=Y;break j}$=Y+1|0;na=Q+ -1|0;ca=(na|0)==0;if(($&3|0)==0|ca){jd=na;kd=ca;ld=$;R=102;break}else{Q=na;Y=$}}}}while(0);k:do{if((R|0)==102){R=0;if(!kd){if((a[ld>>0]|0)!=0){l:do{if(jd>>>0>3){Qb=jd;Y=ld;while(1){Q=c[Y>>2]|0;if(((Q&-2139062144^-2139062144)&Q+ -16843009|0)!=0){od=Qb;pd=Y;break l}Q=Y+4|0;$=Qb+ -4|0;if($>>>0>3){Qb=$;Y=Q}else{od=$;pd=Q;break}}}else{od=jd;pd=ld}}while(0);if((od|0)==0){md=0;nd=pd}else{Y=od;Qb=pd;while(1){if((a[Qb>>0]|0)==0){md=Y;nd=Qb;break k}yb=Qb+1|0;Y=Y+ -1|0;if((Y|0)==0){md=0;nd=yb;break}else{Qb=yb}}}}else{md=jd;nd=ld}}else{md=0;nd=ld}}}while(0);Qb=(md|0)!=0?nd:0;if((Qb|0)==0){Ma=Ha;Na=Ga;Oa=Xa;Pa=ha;Qa=Aa;Ra=0;Sa=13568;Ta=Xa+Aa|0;break}else{Ma=Ha;Na=Ga;Oa=Xa;Pa=ha;Qa=Qb-la|0;Ra=0;Sa=13568;Ta=Qb;break}}else if((R|0)==115){R=0;Qb=0;Y=0;yb=Ya;while(1){Q=c[yb>>2]|0;if((Q|0)==0){qd=Qb;rd=Y;break}$=Wd(v,Q)|0;if(!(($|0)>-1)){ra=-1;R=370;break a}Q=$+Qb|0;if($>>>0>(_a-Qb|0)>>>0){$a=Ya;ab=Za;bb=Qb;R=122;break i}if(!(Q>>>0<_a>>>0)){qd=Q;rd=$;break}Qb=Q;Y=$;yb=yb+4|0}if((rd|0)<0){ra=-1;R=370;break a}else{$a=Ya;ab=Za;bb=qd;R=122}}}while(0);if((R|0)==94){R=0;ha=(hb|0)>-1?gb&-65537:gb;yb=(db|0)==0&(eb|0)==0;if(yb&(hb|0)==0){Ma=eb;Na=db;Oa=x;Pa=ha;Qa=0;Ra=ib;Sa=jb;Ta=x}else{Y=(yb&1)+(y-fb)|0;Ma=eb;Na=db;Oa=fb;Pa=ha;Qa=(hb|0)>(Y|0)?hb:Y;Ra=ib;Sa=jb;Ta=x}}else if((R|0)==122){R=0;Y=ba&73728;ha=(bb|0)<(va|0);if((Y|0)==0&ha){yb=va-bb|0;he(s|0,32,(yb>>>0>256?256:yb)|0)|0;if(yb>>>0>255){Qb=yb;while(1){Yd(s,256,e);la=Qb+ -256|0;if(la>>>0>255){Qb=la}else{sd=la;break}}}else{sd=yb}Yd(s,sd,e)}m:do{if((bb|0)!=0){Qb=0;ba=$a;while(1){la=c[ba>>2]|0;if((la|0)==0){break m}$=Wd(v,la)|0;la=$+Qb|0;if((la|0)>(bb|0)){break m}Yd(v,$,e);if(!(la>>>0<bb>>>0)){break m}Qb=la;ba=ba+4|0}}}while(0);if((Y|0)==8192&ha){yb=va-bb|0;he(s|0,32,(yb>>>0>256?256:yb)|0)|0;if(yb>>>0>255){ba=yb;while(1){Yd(s,256,e);Qb=ba+ -256|0;if(Qb>>>0>255){ba=Qb}else{td=Qb;break}}}else{td=yb}Yd(s,td,e)}K=Ha;L=ab;M=Ca;f=P;N=ha?va:bb;O=ua;continue}ba=Ta-Oa|0;Y=(Qa|0)<(ba|0)?ba:Qa;Qb=Ra+Y|0;la=(va|0)<(Qb|0)?Qb:va;$=Pa&73728;Q=(Qb|0)<(la|0);if(($|0)==0&Q){na=la-Qb|0;he(s|0,32,(na>>>0>256?256:na)|0)|0;if(na>>>0>255){ca=na;while(1){Yd(s,256,e);Ob=ca+ -256|0;if(Ob>>>0>255){ca=Ob}else{ud=Ob;break}}}else{ud=na}Yd(s,ud,e)}Yd(Sa,Ra,e);if(($|0)==65536&Q){ca=la-Qb|0;he(s|0,48,(ca>>>0>256?256:ca)|0)|0;if(ca>>>0>255){ha=ca;while(1){Yd(s,256,e);yb=ha+ -256|0;if(yb>>>0>255){ha=yb}else{vd=yb;break}}}else{vd=ca}Yd(s,vd,e)}if((ba|0)<(Y|0)){ha=Y-ba|0;he(s|0,48,(ha>>>0>256?256:ha)|0)|0;if(ha>>>0>255){na=ha;while(1){Yd(s,256,e);yb=na+ -256|0;if(yb>>>0>255){na=yb}else{wd=yb;break}}}else{wd=ha}Yd(s,wd,e)}Yd(Oa,ba,e);if(!(($|0)==8192&Q)){K=Ma;L=Na;M=Ca;f=P;N=la;O=ua;continue}na=la-Qb|0;he(s|0,32,(na>>>0>256?256:na)|0)|0;if(na>>>0>255){Y=na;while(1){Yd(s,256,e);ca=Y+ -256|0;if(ca>>>0>255){Y=ca}else{xd=ca;break}}}else{xd=na}Yd(s,xd,e);K=Ma;L=Na;M=Ca;f=P;N=la;O=ua}if((R|0)==351){if((e|0)!=0){ra=P;i=m;return ra|0}if((O|0)==0){ra=0;i=m;return ra|0}else{yd=1}while(1){O=c[l+(yd<<2)>>2]|0;if((O|0)==0){zd=1;Ad=yd;break}P=j+(yd<<3)|0;n:do{if(!(O>>>0>20)){do{switch(O|0){case 16:{e=c[g>>2]|0;ua=c[e>>2]|0;c[g>>2]=e+4;e=P;c[e>>2]=ua&255;c[e+4>>2]=0;break n;break};case 14:{e=c[g>>2]|0;ua=c[e>>2]|0;c[g>>2]=e+4;e=P;c[e>>2]=ua&65535;c[e+4>>2]=0;break n;break};case 15:{e=c[g>>2]|0;ua=c[e>>2]|0;c[g>>2]=e+4;e=(ua&255)<<24>>24;ua=P;c[ua>>2]=e;c[ua+4>>2]=((e|0)<0)<<31>>31;break n;break};case 12:{e=c[g>>2]|0;ua=e;N=c[ua>>2]|0;f=c[ua+4>>2]|0;c[g>>2]=e+8;e=P;c[e>>2]=N;c[e+4>>2]=f;break n;break};case 9:{f=c[g>>2]|0;e=c[f>>2]|0;c[g>>2]=f+4;c[P>>2]=e;break n;break};case 17:{e=c[g>>2]|0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];zc=+h[k>>3];c[g>>2]=e+8;h[P>>3]=zc;break n;break};case 18:{e=c[g>>2]|0;c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];zc=+h[k>>3];c[g>>2]=e+8;h[P>>3]=zc;break n;break};case 10:{e=c[g>>2]|0;f=c[e>>2]|0;c[g>>2]=e+4;e=P;c[e>>2]=f;c[e+4>>2]=((f|0)<0)<<31>>31;break n;break};case 13:{f=c[g>>2]|0;e=c[f>>2]|0;c[g>>2]=f+4;f=(e&65535)<<16>>16;e=P;c[e>>2]=f;c[e+4>>2]=((f|0)<0)<<31>>31;break n;break};case 11:{f=c[g>>2]|0;e=c[f>>2]|0;c[g>>2]=f+4;f=P;c[f>>2]=e;c[f+4>>2]=0;break n;break};default:{break n}}}while(0)}}while(0);yd=yd+1|0;if((yd|0)>=10){ra=1;R=370;break}}if((R|0)==370){i=m;return ra|0}while(1){yd=Ad+1|0;if(!zd){ra=-1;R=370;break}if((yd|0)>=10){ra=1;R=370;break}zd=(c[l+(yd<<2)>>2]|0)==0;Ad=yd}if((R|0)==370){i=m;return ra|0}}else if((R|0)==370){i=m;return ra|0}return 0}function $d(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;f=a+20|0;g=c[f>>2]|0;h=(c[a+16>>2]|0)-g|0;a=h>>>0>d>>>0?d:h;ie(g|0,b|0,a|0)|0;c[f>>2]=(c[f>>2]|0)+a;i=e;return d|0}function ae(){}function be(a){a=a|0;var b=0;b=(aa(c[a>>2]|0,31010991)|0)+1735287159&2147483647;c[a>>2]=b;return b|0}function ce(){return be(o)|0}function de(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return(E=e,a-c>>>0|0)|0}function ee(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return(E=b+d+(e>>>0<a>>>0|0)>>>0,e|0)|0}function fe(b){b=b|0;var c=0;c=b;while(a[c>>0]|0){c=c+1|0}return c-b|0}function ge(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){E=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}E=0;return b>>>c-32|0}function he(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 ie(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return gc(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if((e|0)==0)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 je(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){E=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}E=a<<c-32;return 0}function ke(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){E=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}E=(b|0)<0?-1:0;return b>>c-32|0}function le(b){b=b|0;var c=0;c=a[n+(b>>>24)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[n+(b&255)>>0]|0)+24|0}function me(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[m+(b>>>24)>>0]|0)+24|0}function ne(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=aa(d,c)|0;f=a>>>16;a=(e>>>16)+(aa(d,f)|0)|0;d=b>>>16;b=aa(d,c)|0;return(E=(a>>>16)+(aa(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function oe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;g=d>>31|((d|0)<0?-1:0)<<1;h=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;i=de(e^a,f^b,e,f)|0;b=E;a=g^e;e=h^f;f=de((te(i,b,de(g^c,h^d,g,h)|0,E,0)|0)^a,E^e,a,e)|0;return f|0}function pe(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,k=0,l=0,m=0;f=i;i=i+8|0;g=f|0;h=b>>31|((b|0)<0?-1:0)<<1;j=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;k=e>>31|((e|0)<0?-1:0)<<1;l=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;m=de(h^a,j^b,h,j)|0;b=E;te(m,b,de(k^d,l^e,k,l)|0,E,g)|0;l=de(c[g>>2]^h,c[g+4>>2]^j,h,j)|0;j=E;i=f;return(E=j,l)|0}function qe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=ne(e,a)|0;f=E;return(E=(aa(b,a)|0)+(aa(d,e)|0)+f|f&0,c|0|0)|0}function re(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=te(a,b,c,d,0)|0;return e|0}function se(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+8|0;g=f|0;te(a,b,d,e,g)|0;i=f;return(E=c[g+4>>2]|0,c[g>>2]|0)|0}
|
|
|
|
|
|
|
|
function Cc(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+7&-8;return b|0}function Dc(){return i|0}function Ec(a){a=a|0;i=a}function Fc(a,b){a=a|0;b=b|0;if((p|0)==0){p=a;q=b}}function Gc(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 Hc(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 Ic(a){a=a|0;E=a}function Jc(){return E|0}function Kc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=f|0;var h=0,j=0.0,k=0,l=0.0,m=0,n=0.0,o=0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0;h=i;j=+g[a>>2];k=a+4|0;l=+g[k>>2];m=b+4|0;n=e*.5;e=+g[c>>2];o=c+4|0;p=+g[o>>2];q=d+4|0;r=e*+g[d>>2]+p*+g[q>>2];s=j*e+l*p-r;t=(j+ +g[b>>2])*e+(l+ +g[m>>2])*p-r;if((!(!(s>=-9999999747378752.0e-20)|!(t<=9999999747378752.0e-20))?(r=s/(s-t),g[f>>2]=r,t=+g[o>>2],s=-t,p=+g[c>>2],l=+g[d>>2],e=n*p,j=+g[q>>2],u=(r*+g[b>>2]+ +g[a>>2])*s+(r*+g[m>>2]+ +g[k>>2])*p,(n*t+l)*s+p*(j-e)-u<=0.0):0)?u-((n*s+l)*s+p*(e+j))<=0.0:0){v=1;i=h;return v|0}v=0;i=h;return v|0}function Lc(a,b,d,e,f,h,j){a=a|0;b=+b;d=+d;e=+e;f=+f;h=+h;j=+j;var k=0,l=0.0,m=0.0,n=0.0,o=0.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;k=i;l=+g[1566];m=+g[1568];n=+g[1570];o=+g[1572];p=a+8|0;q=c[p>>2]|0;r=a+4|0;s=c[r>>2]|0;if((q|0)>(s|0)){t=s;u=c[a>>2]|0}else{c[p>>2]=q<<1;v=Pd(q<<6)|0;q=c[a>>2]|0;ie(v|0,q|0,s<<5|0)|0;Qd(q);c[a>>2]=v;t=c[r>>2]|0;u=v}v=t<<3;g[u+(v<<2)>>2]=b;g[u+((v|1)<<2)>>2]=d;g[u+((v|2)<<2)>>2]=e;g[u+((v|3)<<2)>>2]=0.0;g[u+((v|4)<<2)>>2]=l;g[u+((v|5)<<2)>>2]=m;g[u+((v|6)<<2)>>2]=n;g[u+((v|7)<<2)>>2]=o;v=(c[r>>2]|0)+1|0;c[r>>2]=v;u=c[p>>2]|0;if((u|0)>(v|0)){w=v;x=c[a>>2]|0}else{c[p>>2]=u<<1;t=Pd(u<<6)|0;u=c[a>>2]|0;ie(t|0,u|0,v<<5|0)|0;Qd(u);c[a>>2]=t;w=c[r>>2]|0;x=t}t=w<<3;g[x+(t<<2)>>2]=f;g[x+((t|1)<<2)>>2]=d;g[x+((t|2)<<2)>>2]=j;g[x+((t|3)<<2)>>2]=0.0;g[x+((t|4)<<2)>>2]=l;g[x+((t|5)<<2)>>2]=m;g[x+((t|6)<<2)>>2]=n;g[x+((t|7)<<2)>>2]=o;t=(c[r>>2]|0)+1|0;c[r>>2]=t;x=c[p>>2]|0;if((x|0)>(t|0)){y=t;z=c[a>>2]|0}else{c[p>>2]=x<<1;w=Pd(x<<6)|0;x=c[a>>2]|0;ie(w|0,x|0,t<<5|0)|0;Qd(x);c[a>>2]=w;y=c[r>>2]|0;z=w}w=y<<3;g[z+(w<<2)>>2]=f;g[z+((w|1)<<2)>>2]=h;g[z+((w|2)<<2)>>2]=j;g[z+((w|3)<<2)>>2]=1.0;g[z+((w|4)<<2)>>2]=l;g[z+((w|5)<<2)>>2]=m;g[z+((w|6)<<2)>>2]=n;g[z+((w|7)<<2)>>2]=o;w=(c[r>>2]|0)+1|0;c[r>>2]=w;z=c[p>>2]|0;if((z|0)>(w|0)){A=w;B=c[a>>2]|0}else{c[p>>2]=z<<1;y=Pd(z<<6)|0;z=c[a>>2]|0;ie(y|0,z|0,w<<5|0)|0;Qd(z);c[a>>2]=y;A=c[r>>2]|0;B=y}y=A<<3;g[B+(y<<2)>>2]=f;g[B+((y|1)<<2)>>2]=h;g[B+((y|2)<<2)>>2]=j;g[B+((y|3)<<2)>>2]=1.0;g[B+((y|4)<<2)>>2]=l;g[B+((y|5)<<2)>>2]=m;g[B+((y|6)<<2)>>2]=n;g[B+((y|7)<<2)>>2]=o;y=(c[r>>2]|0)+1|0;c[r>>2]=y;B=c[p>>2]|0;if((B|0)>(y|0)){C=y;D=c[a>>2]|0}else{c[p>>2]=B<<1;A=Pd(B<<6)|0;B=c[a>>2]|0;ie(A|0,B|0,y<<5|0)|0;Qd(B);c[a>>2]=A;C=c[r>>2]|0;D=A}A=C<<3;g[D+(A<<2)>>2]=b;g[D+((A|1)<<2)>>2]=h;g[D+((A|2)<<2)>>2]=e;g[D+((A|3)<<2)>>2]=1.0;g[D+((A|4)<<2)>>2]=l;g[D+((A|5)<<2)>>2]=m;g[D+((A|6)<<2)>>2]=n;g[D+((A|7)<<2)>>2]=o;A=(c[r>>2]|0)+1|0;c[r>>2]=A;D=c[p>>2]|0;if((D|0)>(A|0)){E=A;F=c[a>>2]|0;G=E<<3;H=F+(G<<2)|0;g[H>>2]=b;I=G|1;J=F+(I<<2)|0;g[J>>2]=d;K=G|2;L=F+(K<<2)|0;g[L>>2]=e;M=G|3;N=F+(M<<2)|0;g[N>>2]=0.0;O=G|4;P=F+(O<<2)|0;g[P>>2]=l;Q=G|5;R=F+(Q<<2)|0;g[R>>2]=m;S=G|6;T=F+(S<<2)|0;g[T>>2]=n;U=G|7;V=F+(U<<2)|0;g[V>>2]=o;W=c[r>>2]|0;X=W+1|0;c[r>>2]=X;i=k;return}else{c[p>>2]=D<<1;p=Pd(D<<6)|0;D=c[a>>2]|0;ie(p|0,D|0,A<<5|0)|0;Qd(D);c[a>>2]=p;E=c[r>>2]|0;F=p;G=E<<3;H=F+(G<<2)|0;g[H>>2]=b;I=G|1;J=F+(I<<2)|0;g[J>>2]=d;K=G|2;L=F+(K<<2)|0;g[L>>2]=e;M=G|3;N=F+(M<<2)|0;g[N>>2]=0.0;O=G|4;P=F+(O<<2)|0;g[P>>2]=l;Q=G|5;R=F+(Q<<2)|0;g[R>>2]=m;S=G|6;T=F+(S<<2)|0;g[T>>2]=n;U=G|7;V=F+(U<<2)|0;g[V>>2]=o;W=c[r>>2]|0;X=W+1|0;c[r>>2]=X;i=k;return}}function Mc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,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,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0;j=i;i=i+64|0;k=j+40|0;l=j;m=j+20|0;if(g>>>0<2){n=53;i=j;return n|0}o=a[f>>0]|0;p=o&255;q=d[f+1>>0]|0;if((((p<<8|q)>>>0)%31|0|0)!=0){n=24;i=j;return n|0}if((p&15|0)!=8|o<<24>>24<0){n=25;i=j;return n|0}if((q&32|0)!=0){n=26;i=j;return n|0}q=g+ -2|0;o=c[h+8>>2]|0;if((o|0)==0){p=c[e>>2]|0;r=q<<3;s=l+4|0;t=l+8|0;u=m+4|0;v=m+8|0;w=l+16|0;x=m+16|0;y=m+12|0;z=g+ -4|0;A=k+4|0;B=k+8|0;C=k+16|0;D=k+12|0;E=l+12|0;F=g+ -6|0;G=0;H=0;I=p;J=p;p=c[b>>2]|0;while(1){K=G+2|0;if(!(K>>>0<r>>>0)){L=52;M=p;N=I;break}O=d[f+((G>>>3)+2)>>0]|0;P=G&7;Q=G+1|0;R=G+3|0;S=(d[f+((K>>>3)+2)>>0]|0)>>>(K&7)<<1&2|(d[f+((Q>>>3)+2)>>0]|0)>>>(Q&7)&1;if((S|0)==0){if((R&7|0)==0){T=R}else{Q=R;while(1){K=Q+1|0;if((K&7|0)==0){T=K;break}else{Q=K}}}Q=T>>>3;if(!(Q>>>0<F>>>0)){L=52;M=p;N=I;break}K=(d[f+(Q+3)>>0]|0)<<8|(d[f+(Q+2)>>0]|0);U=Q+4|0;if((((d[f+(Q+5)>>0]|0)<<8|(d[f+U>>0]|0))+K|0)!=65535){L=21;M=p;N=I;break}V=K+H|0;if(!(V>>>0<I>>>0)){if(J>>>0<V>>>0){W=V<<1;X=Rd(p,W)|0;if((X|0)==0){L=83;M=p;N=I;break}else{Y=X;Z=W;_=V}}else{Y=p;Z=J;_=V}}else{Y=p;Z=J;_=I}W=K+U|0;if(W>>>0>q>>>0){L=23;M=Y;N=_;break}if((K|0)!=0){X=H+1|0;a[Y+H>>0]=a[f+(Q+6)>>0]|0;if((K|0)==1){$=X;aa=W}else{Q=X;X=1;ba=U;while(1){X=X+1|0;a[Y+Q>>0]=a[f+(ba+3)>>0]|0;if((X|0)==(K|0)){$=V;aa=W;break}else{Q=Q+1|0;ba=ba+1|0}}}}else{$=H;aa=U}ca=aa<<3;da=$;ea=Z;fa=Y;ga=_}else if((S|0)!=3){c[l>>2]=0;c[s>>2]=0;c[t>>2]=0;c[m>>2]=0;c[u>>2]=0;c[v>>2]=0;if((S|0)==2){ba=R>>>3;if(ba>>>0<z>>>0){Q=G+4|0;W=G+5|0;V=G+6|0;K=G+7|0;X=(d[f+((Q>>>3)+2)>>0]|0)>>>(Q&7)<<1&2|(d[f+(ba+2)>>0]|0)>>>(R&7)&1|(d[f+((W>>>3)+2)>>0]|0)>>>(W&7)<<2&4|(d[f+((V>>>3)+2)>>0]|0)>>>(V&7)<<3&8|(d[f+((K>>>3)+2)>>0]|0)>>>(K&7)<<4&16;K=G+8|0;V=X+257|0;W=G+9|0;ba=G+10|0;Q=G+11|0;ha=G+12|0;ia=(d[f+((W>>>3)+2)>>0]|0)>>>(W&7)<<1&2|(d[f+((K>>>3)+2)>>0]|0)>>>(K&7)&1|(d[f+((ba>>>3)+2)>>0]|0)>>>(ba&7)<<2&4|(d[f+((Q>>>3)+2)>>0]|0)>>>(Q&7)<<3&8|(d[f+((ha>>>3)+2)>>0]|0)>>>(ha&7)<<4&16;ha=G+13|0;Q=G+14|0;ba=G+15|0;K=G+16|0;W=G+17|0;ja=((d[f+((Q>>>3)+2)>>0]|0)>>>(Q&7)<<1&2|(d[f+((ha>>>3)+2)>>0]|0)>>>(ha&7)&1|(d[f+((ba>>>3)+2)>>0]|0)>>>(ba&7)<<2&4|(d[f+((K>>>3)+2)>>0]|0)>>>(K&7)<<3&8)+4|0;c[k>>2]=0;c[A>>2]=0;c[B>>2]=0;K=Pd(76)|0;a:do{if((K|0)!=0){ba=W;ha=0;while(1){if(ha>>>0<ja>>>0){Q=ba+1|0;ka=ba+2|0;c[K+(c[8472+(ha<<2)>>2]<<2)>>2]=(d[f+((Q>>>3)+2)>>0]|0)>>>(Q&7)<<1&2|(d[f+((ba>>>3)+2)>>0]|0)>>>(ba&7)&1|(d[f+((ka>>>3)+2)>>0]|0)>>>(ka&7)<<2&4;la=ba+3|0}else{c[K+(c[8472+(ha<<2)>>2]<<2)>>2]=0;la=ba}ha=ha+1|0;if((ha|0)==19){break}else{ba=la}}ba=Pd(76)|0;c[B>>2]=ba;if((ba|0)!=0){ma=ba+0|0;na=K+0|0;oa=ma+76|0;do{c[ma>>2]=c[na>>2];ma=ma+4|0;na=na+4|0}while((ma|0)<(oa|0));c[C>>2]=19;c[D>>2]=7;ba=Zc(k)|0;if((ba|0)==0){ha=Pd(1152)|0;ka=Pd(128)|0;if(!((ha|0)==0|(ka|0)==0)){he(ha|0,0,1152)|0;ma=ka+0|0;oa=ma+128|0;do{c[ma>>2]=0;ma=ma+4|0}while((ma|0)<(oa|0));Q=X+258|0;pa=ia+Q|0;if((pa|0)!=0){qa=c[k>>2]|0;ra=c[C>>2]|0;sa=-258-X|0;ta=la;ua=0;va=0;b:while(1){wa=ta;xa=va;while(1){ya=wa;za=0;while(1){if(!(ya>>>0<r>>>0)){Aa=ya;Ba=83;break b}Ca=c[qa+(((d[f+((ya>>>3)+2)>>0]|0)>>>(ya&7)&1|za<<1)<<2)>>2]|0;Da=ya+1|0;if(Ca>>>0<ra>>>0){break}za=Ca-ra|0;if(!(za>>>0<ra>>>0)){Aa=Da;Ba=83;break b}else{ya=Da}}if(!(Ca>>>0<16)){break}if(xa>>>0<V>>>0){c[ha+(xa<<2)>>2]=Ca}else{c[ka+(xa-V<<2)>>2]=Ca}za=xa+1|0;if(za>>>0<pa>>>0){wa=Da;xa=za}else{Ea=Da;Fa=ua;break b}}c:do{if((Ca|0)==18){if(!(Da>>>0<r>>>0)){Ga=Da;Ha=ka;Ia=ha;Ja=50;break a}wa=ya+2|0;za=ya+3|0;Ka=ya+4|0;La=ya+5|0;Ma=ya+6|0;Na=ya+7|0;Oa=ya+8|0;Pa=((d[f+((wa>>>3)+2)>>0]|0)>>>(wa&7)<<1&2|(d[f+((Da>>>3)+2)>>0]|0)>>>(Da&7)&1|(d[f+((za>>>3)+2)>>0]|0)>>>(za&7)<<2&4|(d[f+((Ka>>>3)+2)>>0]|0)>>>(Ka&7)<<3&8|(d[f+((La>>>3)+2)>>0]|0)>>>(La&7)<<4&16|(d[f+((Ma>>>3)+2)>>0]|0)>>>(Ma&7)<<5&32|(d[f+((Na>>>3)+2)>>0]|0)>>>(Na&7)<<6&64)+11|0;if((Pa|0)==0){Qa=Oa;Ra=ua;Sa=xa;break}else{Ta=xa;Ua=0}while(1){if(!(Ta>>>0<pa>>>0)){Qa=Oa;Ra=15;Sa=Ta;break c}if(Ta>>>0<V>>>0){c[ha+(Ta<<2)>>2]=0}else{c[ka+(Ta-V<<2)>>2]=0}Na=Ta+1|0;Ua=Ua+1|0;if(!(Ua>>>0<Pa>>>0)){Qa=Oa;Ra=ua;Sa=Na;break}else{Ta=Na}}}else if((Ca|0)==17){if(!(Da>>>0<r>>>0)){Ga=Da;Ha=ka;Ia=ha;Ja=50;break a}Oa=ya+2|0;Pa=ya+3|0;Na=ya+4|0;Ma=((d[f+((Oa>>>3)+2)>>0]|0)>>>(Oa&7)<<1&2|(d[f+((Da>>>3)+2)>>0]|0)>>>(Da&7)&1|(d[f+((Pa>>>3)+2)>>0]|0)>>>(Pa&7)<<2&4)+3|0;Pa=xa;Oa=0;while(1){if(!(Pa>>>0<pa>>>0)){Qa=Na;Ra=14;Sa=Pa;break c}if(Pa>>>0<V>>>0){c[ha+(Pa<<2)>>2]=0}else{c[ka+(Pa-V<<2)>>2]=0}La=Pa+1|0;Oa=Oa+1|0;if(!(Oa>>>0<Ma>>>0)){Qa=Na;Ra=ua;Sa=La;break}else{Pa=La}}}else if((Ca|0)==16){if(!(Da>>>0<r>>>0)){Ga=Da;Ha=ka;Ia=ha;Ja=50;break a}if((xa|0)==0){Ga=Da;Ha=ka;Ia=ha;Ja=54;break a}Pa=ya+2|0;Na=ya+3|0;Ma=((d[f+((Pa>>>3)+2)>>0]|0)>>>(Pa&7)<<1&2|(d[f+((Da>>>3)+2)>>0]|0)>>>(Da&7)&1)+3|0;if(xa>>>0<Q>>>0){Va=ha+(xa+ -1<<2)|0}else{Va=ka+(sa+xa<<2)|0}Pa=c[Va>>2]|0;Oa=xa;La=0;while(1){if(!(Oa>>>0<pa>>>0)){Qa=Na;Ra=13;Sa=Oa;break c}if(Oa>>>0<V>>>0){c[ha+(Oa<<2)>>2]=Pa}else{c[ka+(Oa-V<<2)>>2]=Pa}Ka=Oa+1|0;La=La+1|0;if(!(La>>>0<Ma>>>0)){Qa=Na;Ra=ua;Sa=Ka;break}else{Oa=Ka}}}else if((Ca|0)==-1){Aa=Da;Ba=83;break b}else{Ga=Da;Ha=ka;Ia=ha;Ja=16;break a}}while(0);if(Sa>>>0<pa>>>0){ta=Qa;ua=Ra;va=Sa}else{Ea=Qa;Fa=Ra;break}}if((Ba|0)==83){Ba=0;Ga=Aa;Ha=ka;Ia=ha;Ja=Aa>>>0>r>>>0?10:11;break}if((Fa|0)==0){if((c[ha+1024>>2]|0)!=0){va=Pd(1152)|0;c[t>>2]=va;if((va|0)==0){Ga=Ea;Ha=ka;Ia=ha;Ja=83}else{ie(va|0,ha|0,1152)|0;c[w>>2]=288;c[E>>2]=15;va=Zc(l)|0;if((va|0)!=0){Ga=Ea;Ha=ka;Ia=ha;Ja=va;break}va=Pd(128)|0;c[v>>2]=va;if((va|0)==0){Ga=Ea;Ha=ka;Ia=ha;Ja=83;break}ma=va+0|0;na=ka+0|0;oa=ma+128|0;do{c[ma>>2]=c[na>>2];ma=ma+4|0;na=na+4|0}while((ma|0)<(oa|0));c[x>>2]=32;c[y>>2]=15;Ga=Ea;Ha=ka;Ia=ha;Ja=Zc(m)|0}}else{Ga=Ea;Ha=ka;Ia=ha;Ja=64}}else{Ga=Ea;Ha=ka;Ia=ha;Ja=Fa}}else{Ga=la;Ha=ka;Ia=ha;Ja=64}}else{Ga=la;Ha=ka;Ia=ha;Ja=83}}else{Ga=la;Ha=0;Ia=0;Ja=ba}}else{Ga=la;Ha=0;Ia=0;Ja=83}}else{Ga=W;Ha=0;Ia=0;Ja=83}}while(0);Qd(K);Qd(Ia);Qd(Ha);Qd(c[k>>2]|0);Qd(c[A>>2]|0);Qd(c[B>>2]|0);if((Ja|0)==0){Wa=Ga;Ba=92}else{Xa=c[l>>2]|0;Ya=c[m>>2]|0;Za=J;_a=I;$a=p;ab=Ga;bb=H;cb=Ja}}else{Xa=0;Ya=0;Za=J;_a=I;$a=p;ab=R;bb=H;cb=49}}else if((S|0)==1){W=Pd(1152)|0;if((W|0)!=0){V=0;do{c[W+(V<<2)>>2]=8;V=V+1|0}while((V|0)!=144);db=144;do{c[W+(db<<2)>>2]=9;db=db+1|0}while((db|0)!=256);c[W+1024>>2]=7;c[W+1028>>2]=7;c[W+1032>>2]=7;c[W+1036>>2]=7;c[W+1040>>2]=7;c[W+1044>>2]=7;c[W+1048>>2]=7;c[W+1052>>2]=7;c[W+1056>>2]=7;c[W+1060>>2]=7;c[W+1064>>2]=7;c[W+1068>>2]=7;c[W+1072>>2]=7;c[W+1076>>2]=7;c[W+1080>>2]=7;c[W+1084>>2]=7;c[W+1088>>2]=7;c[W+1092>>2]=7;c[W+1096>>2]=7;c[W+1100>>2]=7;c[W+1104>>2]=7;c[W+1108>>2]=7;c[W+1112>>2]=7;c[W+1116>>2]=7;c[W+1120>>2]=8;c[W+1124>>2]=8;c[W+1128>>2]=8;c[W+1132>>2]=8;c[W+1136>>2]=8;c[W+1140>>2]=8;c[W+1144>>2]=8;c[W+1148>>2]=8;V=Pd(1152)|0;c[t>>2]=V;if((V|0)!=0){S=0;do{c[V+(S<<2)>>2]=c[W+(S<<2)>>2];S=S+1|0}while((S|0)!=288);c[w>>2]=288;c[E>>2]=15;Zc(l)|0}Qd(W)}S=Pd(128)|0;if((S|0)!=0){V=0;do{c[S+(V<<2)>>2]=5;V=V+1|0}while((V|0)!=32);V=Pd(128)|0;c[v>>2]=V;if((V|0)!=0){ma=V+0|0;na=S+0|0;oa=ma+128|0;do{c[ma>>2]=c[na>>2];ma=ma+4|0;na=na+4|0}while((ma|0)<(oa|0));c[x>>2]=32;c[y>>2]=15;Zc(m)|0}Qd(S);Wa=R;Ba=92}else{Wa=R;Ba=92}}else{Wa=R;Ba=92}d:do{if((Ba|0)==92){Ba=0;V=c[l>>2]|0;W=c[w>>2]|0;K=c[m>>2]|0;X=c[x>>2]|0;ia=Wa;ja=H;U=J;va=I;ua=p;e:while(1){eb=U;fb=va;gb=ua;ta=ia;while(1){pa=ta;sa=0;while(1){if(!(pa>>>0<r>>>0)){hb=pa;break e}ib=c[V+(((d[f+((pa>>>3)+2)>>0]|0)>>>(pa&7)&1|sa<<1)<<2)>>2]|0;jb=pa+1|0;if(ib>>>0<W>>>0){break}sa=ib-W|0;if(!(sa>>>0<W>>>0)){hb=jb;break e}else{pa=jb}}if(ib>>>0<256){break}pa=ib+ -257|0;if(!(pa>>>0<29)){Ba=126;break e}if(!(jb>>>0<r>>>0)){Xa=V;Ya=K;Za=eb;_a=fb;$a=gb;ab=jb;bb=ja;cb=51;break d}sa=c[8552+(pa<<2)>>2]|0;Q=c[8792+(pa<<2)>>2]|0;if((ib+ -265|0)>>>0>19){kb=jb;lb=0}else{pa=jb;ra=0;qa=0;while(1){qa=(((d[f+((pa>>>3)+2)>>0]|0)>>>(pa&7)&1)<<ra)+qa|0;ra=ra+1|0;if((ra|0)==(sa|0)){break}else{pa=pa+1|0}}kb=sa+jb|0;lb=qa}mb=lb+Q|0;pa=kb;ra=0;while(1){if(!(pa>>>0<r>>>0)){nb=pa;Ba=113;break e}ob=c[K+(((d[f+((pa>>>3)+2)>>0]|0)>>>(pa&7)&1|ra<<1)<<2)>>2]|0;pb=pa+1|0;if(ob>>>0<X>>>0){break}ra=ob-X|0;if(!(ra>>>0<X>>>0)){nb=pb;Ba=113;break e}else{pa=pb}}if(ob>>>0>29){nb=pb;Ba=113;break e}if(!(pb>>>0<r>>>0)){Xa=V;Ya=K;Za=eb;_a=fb;$a=gb;ab=pb;bb=ja;cb=51;break d}pa=c[8672+(ob<<2)>>2]|0;ra=c[8912+(ob<<2)>>2]|0;if(ob>>>0<4){qb=pb;rb=0}else{Q=pb;qa=0;sa=0;while(1){sa=(((d[f+((Q>>>3)+2)>>0]|0)>>>(Q&7)&1)<<qa)+sa|0;qa=qa+1|0;if((qa|0)==(pa|0)){break}else{Q=Q+1|0}}qb=pa+pb|0;rb=sa}sb=rb+ra|0;if(sb>>>0>ja>>>0){Xa=V;Ya=K;Za=eb;_a=fb;$a=gb;ab=qb;bb=ja;cb=52;break d}tb=mb+ja|0;do{if(!(tb>>>0<fb>>>0)){Q=tb<<1;if(!(eb>>>0<Q>>>0)){ub=gb;vb=eb;wb=Q;break}qa=tb<<2;xa=Rd(gb,qa)|0;if((xa|0)==0){Xa=V;Ya=K;Za=eb;_a=fb;$a=gb;ab=qb;bb=ja;cb=83;break d}else{ub=xa;vb=qa;wb=Q}}else{ub=gb;vb=eb;wb=fb}}while(0);if((mb|0)==0){eb=vb;fb=wb;gb=ub;ta=qb}else{Ba=124;break}}if((Ba|0)==124){Ba=0;ta=ja-sb|0;a[ub+ja>>0]=a[ub+ta>>0]|0;ra=ja+1|0;if((mb|0)==1){ia=qb;ja=ra;U=vb;va=wb;ua=ub;continue}else{xb=ta;yb=ra;zb=1}while(1){ra=xb+1|0;sa=ra>>>0<ja>>>0?ra:ta;ra=zb+1|0;a[ub+yb>>0]=a[ub+sa>>0]|0;if((ra|0)==(mb|0)){ia=qb;ja=tb;U=vb;va=wb;ua=ub;continue e}else{xb=sa;yb=yb+1|0;zb=ra}}}if(!(ja>>>0<fb>>>0)){ta=(ja<<1)+2|0;if(eb>>>0<ta>>>0){ra=ta<<1;sa=Rd(gb,ra)|0;if((sa|0)==0){Xa=V;Ya=K;Za=eb;_a=fb;$a=gb;ab=jb;bb=ja;cb=83;break d}else{Ab=sa;Bb=ra;Cb=ta}}else{Ab=gb;Bb=eb;Cb=ta}}else{Ab=gb;Bb=eb;Cb=fb}a[Ab+ja>>0]=ib;ia=jb;ja=ja+1|0;U=Bb;va=Cb;ua=Ab}if((Ba|0)==113){Ba=0;if(!((ib|0)==-1)){Xa=V;Ya=K;Za=eb;_a=fb;$a=gb;ab=nb;bb=ja;cb=18;break}Xa=V;Ya=K;Za=eb;_a=fb;$a=gb;ab=nb;bb=ja;cb=nb>>>0>r>>>0?10:11;break}else if((Ba|0)==126){Ba=0;if((ib|0)==256){Xa=V;Ya=K;Za=eb;_a=fb;$a=gb;ab=jb;bb=ja;cb=0;break}else{hb=jb}}Xa=V;Ya=K;Za=eb;_a=fb;$a=gb;ab=hb;bb=ja;cb=hb>>>0>r>>>0?10:11}}while(0);Qd(Xa);Qd(c[s>>2]|0);Qd(c[t>>2]|0);Qd(Ya);Qd(c[u>>2]|0);Qd(c[v>>2]|0);if((cb|0)==0){ca=ab;da=bb;ea=Za;fa=$a;ga=_a}else{L=cb;M=$a;N=_a;break}}else{L=20;M=p;N=I;break}if((O&1<<P|0)==0){G=ca;H=da;I=ga;J=ea;p=fa}else{Ba=130;break}}if((Ba|0)==130){if(ea>>>0<da>>>0){ea=Rd(fa,da<<1)|0;Ba=(ea|0)==0;L=Ba?83:0;M=Ba?fa:ea;N=Ba?ga:da}else{L=0;M=fa;N=da}}c[b>>2]=M;c[e>>2]=N;Db=L}else{Db=tc[o&0](b,e,f+2|0,q,h)|0}if((Db|0)!=0){n=Db;i=j;return n|0}if((c[h>>2]|0)==0){h=(d[f+(g+ -3)>>0]|0)<<16|(d[f+(g+ -4)>>0]|0)<<24|(d[f+q>>0]|0)<<8|(d[f+(g+ -1)>>0]|0);g=c[e>>2]|0;if((g|0)==0){Eb=1;Fb=0}else{e=c[b>>2]|0;b=g;g=1;f=0;while(1){q=b>>>0>5550?5550:b;Db=b;b=b-q|0;if((q|0)==0){Gb=e;Hb=g;Ib=f}else{o=e;L=q;N=g;M=f;while(1){N=(d[o>>0]|0)+N|0;M=N+M|0;L=L+ -1|0;if((L|0)==0){break}else{o=o+1|0}}Gb=e+(Db>>>0<5550?Db:5550)|0;Hb=N;Ib=M}g=(Hb>>>0)%65521|0;f=(Ib>>>0)%65521|0;if((Db|0)==(q|0)){break}else{e=Gb}}Eb=g;Fb=f<<16}if((Eb|Fb|0)!=(h|0)){n=58;i=j;return n|0}}n=0;i=j;return n|0}function Nc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;g=b+64|0;h=b+60|0;j=Rd(c[g>>2]|0,(c[h>>2]<<2)+4|0)|0;k=b+68|0;b=Rd(c[k>>2]|0,(c[h>>2]<<2)+4|0)|0;if((j|0)==0|(b|0)==0){Qd(j);Qd(b);l=83;i=f;return l|0}m=c[h>>2]|0;c[h>>2]=m+1;c[g>>2]=j;c[k>>2]=b;b=j+(m<<2)|0;c[b>>2]=0;m=Pd(1)|0;if((m|0)!=0){a[m>>0]=0;c[b>>2]=m}m=(c[g>>2]|0)+((c[h>>2]|0)+ -1<<2)|0;g=fe(d|0)|0;b=Rd(c[m>>2]|0,g+1|0)|0;if(((b|0)!=0?(a[b+g>>0]=0,c[m>>2]=b,(g|0)!=0):0)?(a[b>>0]=a[d>>0]|0,(g|0)!=1):0){b=1;do{a[(c[m>>2]|0)+b>>0]=a[d+b>>0]|0;b=b+1|0}while((b|0)!=(g|0))}g=(c[k>>2]|0)+((c[h>>2]|0)+ -1<<2)|0;c[g>>2]=0;b=Pd(1)|0;if((b|0)!=0){a[b>>0]=0;c[g>>2]=b}b=(c[k>>2]|0)+((c[h>>2]|0)+ -1<<2)|0;h=fe(e|0)|0;k=Rd(c[b>>2]|0,h+1|0)|0;if((k|0)==0){l=0;i=f;return l|0}a[k+h>>0]=0;c[b>>2]=k;if((h|0)==0){l=0;i=f;return l|0}a[k>>0]=a[e>>0]|0;if((h|0)==1){l=0;i=f;return l|0}else{n=1}do{a[(c[b>>2]|0)+n>>0]=a[e+n>>0]|0;n=n+1|0}while((n|0)!=(h|0));l=0;i=f;return l|0}function Oc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;b=i;d=a+20|0;e=c[d>>2]|0;if((e|0)!=0){Qd(e)}c[d>>2]=0;c[a+24>>2]=0;d=a+60|0;e=a+64|0;f=c[e>>2]|0;g=a+68|0;if((c[d>>2]|0)==0){h=f}else{j=f;f=0;while(1){k=j+(f<<2)|0;Qd(c[k>>2]|0);c[k>>2]=0;k=(c[g>>2]|0)+(f<<2)|0;Qd(c[k>>2]|0);c[k>>2]=0;f=f+1|0;k=c[e>>2]|0;if(!(f>>>0<(c[d>>2]|0)>>>0)){h=k;break}else{j=k}}}Qd(h);Qd(c[g>>2]|0);g=a+72|0;h=a+76|0;j=c[h>>2]|0;d=a+80|0;f=a+84|0;e=a+88|0;if((c[g>>2]|0)==0){l=j}else{k=j;j=0;while(1){m=k+(j<<2)|0;Qd(c[m>>2]|0);c[m>>2]=0;m=(c[d>>2]|0)+(j<<2)|0;Qd(c[m>>2]|0);c[m>>2]=0;m=(c[f>>2]|0)+(j<<2)|0;Qd(c[m>>2]|0);c[m>>2]=0;m=(c[e>>2]|0)+(j<<2)|0;Qd(c[m>>2]|0);c[m>>2]=0;j=j+1|0;m=c[h>>2]|0;if(!(j>>>0<(c[g>>2]|0)>>>0)){l=m;break}else{k=m}}}Qd(l);Qd(c[d>>2]|0);Qd(c[f>>2]|0);Qd(c[e>>2]|0);Qd(c[a+136>>2]|0);Qd(c[a+140>>2]|0);Qd(c[a+144>>2]|0);i=b;return}function Pc(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var 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;k=i;l=(f|0)!=0;f=l?4:3;switch(c[h>>2]|0){case 3:{if((e|0)==0){m=0;i=k;return m|0}n=h+4|0;o=h+12|0;p=h+8|0;q=(j|0)==0;j=b;r=0;s=0;while(1){t=c[n>>2]|0;if((t|0)==8){u=r;v=d[g+s>>0]|0}else if((t|0)==0){u=r;v=0}else{w=r;x=t+ -1|0;y=0;while(1){z=w+1|0;A=(((d[g+(w>>>3)>>0]|0)>>>(w&7^7)&1)<<x)+y|0;x=x+ -1|0;if(!(x>>>0<t>>>0)){u=z;v=A;break}else{w=z;y=A}}}if(v>>>0<(c[o>>2]|0)>>>0){y=v<<2;a[j>>0]=a[(c[p>>2]|0)+y>>0]|0;a[j+1>>0]=a[(c[p>>2]|0)+(y|1)>>0]|0;a[j+2>>0]=a[(c[p>>2]|0)+(y|2)>>0]|0;if(l){a[j+3>>0]=a[(c[p>>2]|0)+(y|3)>>0]|0}}else{if(q){break}a[j+2>>0]=0;a[j+1>>0]=0;a[j>>0]=0;if(l){a[j+3>>0]=-1}}s=s+1|0;if(!(s>>>0<e>>>0)){m=0;B=78;break}else{j=j+f|0;r=u}}if((B|0)==78){i=k;return m|0}m=(t|0)==8?46:47;i=k;return m|0};case 0:{t=h+4|0;B=c[t>>2]|0;if((B|0)==16){if((e|0)==0){m=0;i=k;return m|0}u=h+16|0;r=h+20|0;j=b;s=0;while(1){q=s<<1;p=g+q|0;v=a[p>>0]|0;a[j+2>>0]=v;a[j+1>>0]=v;a[j>>0]=v;if(l){if((c[u>>2]|0)==0){C=-1}else{C=(((d[p>>0]|0)<<8|(d[g+(q|1)>>0]|0)|0)!=(c[r>>2]|0))<<31>>31}a[j+3>>0]=C}s=s+1|0;if((s|0)==(e|0)){m=0;break}else{j=j+f|0}}i=k;return m|0}else if((B|0)==8){if((e|0)==0){m=0;i=k;return m|0}j=h+16|0;s=h+20|0;if(l){D=b;E=0}else{C=b;r=0;while(1){u=a[g+r>>0]|0;a[C+2>>0]=u;a[C+1>>0]=u;a[C>>0]=u;r=r+1|0;if((r|0)==(e|0)){m=0;break}else{C=C+f|0}}i=k;return m|0}while(1){C=g+E|0;r=a[C>>0]|0;a[D+2>>0]=r;a[D+1>>0]=r;a[D>>0]=r;if((c[j>>2]|0)==0){F=-1}else{F=((d[C>>0]|0|0)!=(c[s>>2]|0))<<31>>31}a[D+3>>0]=F;E=E+1|0;if((E|0)==(e|0)){m=0;break}else{D=D+f|0}}i=k;return m|0}else{D=(1<<B)+ -1|0;if((e|0)==0){m=0;i=k;return m|0}E=h+16|0;F=h+20|0;s=b;j=0;C=B;B=1;while(1){if((C|0)==0){G=j;H=0}else{r=j;u=C+ -1|0;q=0;while(1){p=r+1|0;v=(((d[g+(r>>>3)>>0]|0)>>>(r&7^7)&1)<<u)+q|0;u=u+ -1|0;if(!(u>>>0<C>>>0)){G=p;H=v;break}else{r=p;q=v}}}q=(((H*255|0)>>>0)/(D>>>0)|0)&255;a[s+2>>0]=q;a[s+1>>0]=q;a[s>>0]=q;if(l){if((c[E>>2]|0)==0){I=-1}else{I=((H|0)!=(c[F>>2]|0))<<31>>31}a[s+3>>0]=I}if((B|0)==(e|0)){m=0;break}s=s+f|0;j=G;C=c[t>>2]|0;B=B+1|0}i=k;return m|0}break};case 4:{B=(e|0)==0;if((c[h+4>>2]|0)!=8){if(B){m=0;i=k;return m|0}else{J=b;K=0}while(1){t=K<<2;C=a[g+t>>0]|0;a[J+2>>0]=C;a[J+1>>0]=C;a[J>>0]=C;if(l){a[J+3>>0]=a[g+(t|2)>>0]|0}K=K+1|0;if((K|0)==(e|0)){m=0;break}else{J=J+f|0}}i=k;return m|0}if(B){m=0;i=k;return m|0}if(l){B=b;J=0;while(1){K=J<<1;t=a[g+K>>0]|0;a[B+2>>0]=t;a[B+1>>0]=t;a[B>>0]=t;a[B+3>>0]=a[g+(K|1)>>0]|0;J=J+1|0;if((J|0)==(e|0)){m=0;break}else{B=B+f|0}}i=k;return m|0}else{B=b;J=0;while(1){K=a[g+(J<<1)>>0]|0;a[B+2>>0]=K;a[B+1>>0]=K;a[B>>0]=K;J=J+1|0;if((J|0)==(e|0)){m=0;break}else{B=B+f|0}}i=k;return m|0}break};case 2:{B=(e|0)==0;if((c[h+4>>2]|0)==8){if(B){m=0;i=k;return m|0}J=h+16|0;K=h+20|0;t=h+24|0;C=h+28|0;G=b;j=0;while(1){s=j*3|0;I=a[g+s>>0]|0;a[G>>0]=I;F=a[g+(s+1)>>0]|0;a[G+1>>0]=F;H=a[g+(s+2)>>0]|0;a[G+2>>0]=H;if(l){if(((c[J>>2]|0)!=0?(I&255|0)==(c[K>>2]|0):0)?(F&255|0)==(c[t>>2]|0):0){L=((H&255|0)!=(c[C>>2]|0))<<31>>31}else{L=-1}a[G+3>>0]=L}j=j+1|0;if((j|0)==(e|0)){m=0;break}else{G=G+f|0}}i=k;return m|0}else{if(B){m=0;i=k;return m|0}B=h+16|0;G=h+20|0;j=h+24|0;L=h+28|0;C=b;t=0;while(1){K=t*6|0;J=g+K|0;a[C>>0]=a[J>>0]|0;H=g+(K+2)|0;a[C+1>>0]=a[H>>0]|0;F=g+(K+4)|0;a[C+2>>0]=a[F>>0]|0;if(l){if(((c[B>>2]|0)!=0?((d[J>>0]|0)<<8|(d[g+(K|1)>>0]|0)|0)==(c[G>>2]|0):0)?((d[H>>0]|0)<<8|(d[g+(K+3)>>0]|0)|0)==(c[j>>2]|0):0){M=(((d[F>>0]|0)<<8|(d[g+(K+5)>>0]|0)|0)!=(c[L>>2]|0))<<31>>31}else{M=-1}a[C+3>>0]=M}t=t+1|0;if((t|0)==(e|0)){m=0;break}else{C=C+f|0}}i=k;return m|0}break};case 6:{C=(e|0)==0;if((c[h+4>>2]|0)==8){if(C){m=0;i=k;return m|0}else{N=b;O=0}while(1){h=O<<2;a[N>>0]=a[g+h>>0]|0;a[N+1>>0]=a[g+(h|1)>>0]|0;a[N+2>>0]=a[g+(h|2)>>0]|0;if(l){a[N+3>>0]=a[g+(h|3)>>0]|0}O=O+1|0;if((O|0)==(e|0)){m=0;break}else{N=N+f|0}}i=k;return m|0}else{if(C){m=0;i=k;return m|0}else{P=b;Q=0}while(1){b=Q<<3;a[P>>0]=a[g+b>>0]|0;a[P+1>>0]=a[g+(b|2)>>0]|0;a[P+2>>0]=a[g+(b|4)>>0]|0;if(l){a[P+3>>0]=a[g+(b|6)>>0]|0}Q=Q+1|0;if((Q|0)==(e|0)){m=0;break}else{P=P+f|0}}i=k;return m|0}break};default:{m=0;i=k;return m|0}}return 0}function Qc(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=0;do{e=a+(d<<2)|0;f=c[e>>2]|0;if((f|0)!=0){Qc(f);Qd(c[e>>2]|0)}d=d+1|0}while((d|0)!=16);i=b;return}function Rc(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var 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,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,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=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,Qb=0,Rb=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,uc=0,vc=0,wc=0,xc=0,yc=0,zc=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,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=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;k=i;i=i+368|0;l=k+288|0;m=k+260|0;n=k+232|0;o=k+200|0;p=k+168|0;q=k+136|0;r=k+96|0;s=k+64|0;t=k+32|0;u=k;v=k+124|0;c[b>>2]=0;w=g+132|0;do{if((j|0)==0|(h|0)==0){c[g+292>>2]=48;x=48}else{if(j>>>0<29){c[g+292>>2]=27;x=27;break}Oc(w);y=g+160|0;z=g+144|0;c[y+0>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=0;c[z>>2]=6;A=g+148|0;c[A>>2]=8;B=g+152|0;c[B>>2]=0;C=g+156|0;c[C>>2]=0;D=g+140|0;c[D>>2]=0;c[w>>2]=0;E=g+136|0;c[E>>2]=0;F=g+176|0;G=g+252|0;c[G>>2]=0;H=g+268|0;c[H+0>>2]=0;c[H+4>>2]=0;c[H+8>>2]=0;c[H+12>>2]=0;c[H+16>>2]=0;c[H+20>>2]=0;H=F+0|0;I=H+52|0;do{c[H>>2]=0;H=H+4|0}while((H|0)<(I|0));if((((((((a[h>>0]|0)==-119?(a[h+1>>0]|0)==80:0)?(a[h+2>>0]|0)==78:0)?(a[h+3>>0]|0)==71:0)?(a[h+4>>0]|0)==13:0)?(a[h+5>>0]|0)==10:0)?(a[h+6>>0]|0)==26:0)?(a[h+7>>0]|0)==10:0){if((((a[h+12>>0]|0)==73?(a[h+13>>0]|0)==72:0)?(a[h+14>>0]|0)==68:0)?(a[h+15>>0]|0)==82:0){c[e>>2]=d[h+17>>0]<<16|d[h+16>>0]<<24|d[h+18>>0]<<8|d[h+19>>0];c[f>>2]=d[h+21>>0]<<16|d[h+20>>0]<<24|d[h+22>>0]<<8|d[h+23>>0];J=a[h+24>>0]|0;K=J&255;c[A>>2]=K;L=d[h+25>>0]|0;c[z>>2]=L;M=a[h+26>>0]|0;c[w>>2]=M&255;N=a[h+27>>0]|0;c[E>>2]=N&255;O=a[h+28>>0]|0;c[D>>2]=O&255;P=g+16|0;if((c[P>>2]|0)==0){Q=d[h+29>>0]|0;R=d[h+30>>0]<<16;S=d[h+31>>0]<<8;T=d[h+32>>0]|0;U=-1;V=0;do{U=c[8+((d[h+(V+12)>>0]^U&255)<<2)>>2]^U>>>8;V=V+1|0}while((V|0)!=17);if((R|Q<<24|S|T|0)!=(~U|0)){c[g+292>>2]=57;x=57;break}}if(!(M<<24>>24==0)){c[g+292>>2]=32;x=32;break}if(!(N<<24>>24==0)){c[g+292>>2]=33;x=33;break}if((O&255)>1){c[g+292>>2]=34;x=34;break}switch(L|0){case 4:{if(!((K|0)==8|(K|0)==16)){W=37;X=37}break};case 2:{if(!((K|0)==8|(K|0)==16)){W=37;X=37}break};case 0:{if(!((K+ -1|0)>>>0<2|J<<24>>24==4|J<<24>>24==8|J<<24>>24==16)){W=37;X=37}break};case 3:{if(!((K+ -1|0)>>>0<2|J<<24>>24==4|J<<24>>24==8)){W=37;X=37}break};case 6:{if(!((K|0)==8|(K|0)==16)){W=37;X=37}break};default:{W=31;X=37}}if((X|0)==37){c[g+292>>2]=W;Y=W;i=k;return Y|0}V=g+292|0;c[V>>2]=0;E=h;Z=g+172|0;_=g+168|0;$=g+164|0;ba=g+188|0;ca=g+184|0;da=g+180|0;ea=g+28|0;fa=l+8|0;ga=l+4|0;ha=g+4|0;ia=l+8|0;ja=l+4|0;ka=g+224|0;la=g+228|0;ma=g+232|0;na=g+236|0;oa=g+240|0;pa=g+244|0;qa=g+248|0;ra=g+256|0;sa=g+260|0;ta=g+264|0;ua=g+32|0;va=g+208|0;wa=g+204|0;xa=g+212|0;ya=g+216|0;za=g+220|0;Aa=0;Ba=0;Ca=0;Da=h+33|0;Ea=1;Fa=0;a:while(1){Ga=Da-E+12|0;Ha=Ga>>>0>j>>>0|Da>>>0<h>>>0;Ia=Da+1|0;Ja=Da+2|0;Ka=Da+3|0;La=Da+8|0;Ma=Da+4|0;Na=Da+5|0;Oa=Da+6|0;Pa=Da+7|0;Qa=Da+9|0;Ra=Da+10|0;Sa=Da+11|0;Ta=Da+12|0;Ua=Da+13|0;Va=Da+14|0;Wa=Da+15|0;Xa=Da+16|0;Ya=Ba;Za=Aa;_a=Ca;$a=0;ab=Ea;while(1){bb=c[V>>2]|0;if(!($a<<24>>24==0&(bb|0)==0)){cb=bb;db=_a;eb=Ya;break a}if(Ha){X=42;break a}bb=d[Ia>>0]<<16|d[Da>>0]<<24|d[Ja>>0]<<8|d[Ka>>0];if((bb|0)<0){X=44;break a}if((bb+Ga|0)>>>0>j>>>0){X=47;break a}fb=bb+12|0;if((Da+fb|0)>>>0<h>>>0){X=47;break a}gb=a[Ma>>0]|0;b:do{if(gb<<24>>24==116){hb=a[Na>>0]|0;if(!(hb<<24>>24==82)){ib=hb;X=102;break}if((a[Oa>>0]|0)!=78){jb=1;X=87;break}if((a[Pa>>0]|0)!=83){jb=1;X=87;break}hb=c[z>>2]|0;do{if((hb|0)==2){if((bb|0)!=6){kb=41;X=86;break a}c[y>>2]=1;c[$>>2]=d[La>>0]<<8|d[Qa>>0];c[_>>2]=d[Ra>>0]<<8|d[Sa>>0];c[Z>>2]=d[Ta>>0]<<8|d[Ua>>0]}else if((hb|0)==0){if((bb|0)!=2){kb=30;X=86;break a}c[y>>2]=1;lb=d[La>>0]<<8|d[Qa>>0];c[Z>>2]=lb;c[_>>2]=lb;c[$>>2]=lb}else if((hb|0)==3){if((c[C>>2]|0)>>>0<bb>>>0){kb=38;X=86;break a}if((bb|0)==0){break}else{mb=0}do{a[(c[B>>2]|0)+(mb<<2|3)>>0]=a[Da+(mb+8)>>0]|0;mb=mb+1|0}while((mb|0)!=(bb|0))}else{kb=42;X=86;break a}}while(0);c[V>>2]=0;nb=Za;ob=Ya;pb=_a;qb=0;rb=ab}else if(gb<<24>>24==73){hb=a[Na>>0]|0;if(hb<<24>>24==69){if((a[Oa>>0]|0)!=78){jb=0;X=87;break}if((a[Pa>>0]|0)==68){nb=Za;ob=Ya;pb=_a;qb=1;rb=ab;break}else{jb=0;X=87;break}}else if(!(hb<<24>>24==68)){X=226;break a}if((a[Oa>>0]|0)!=65){X=226;break a}if((a[Pa>>0]|0)!=84){jb=0;X=87;break}hb=bb+Ya|0;if(Za>>>0<hb>>>0){lb=hb<<1;sb=Rd(_a,lb)|0;if((sb|0)==0){X=55;break a}else{tb=lb;ub=sb}}else{tb=Za;ub=_a}if((bb|0)==0){nb=tb;ob=hb;pb=ub;qb=0;rb=3;break}else{vb=0}do{a[ub+(vb+Ya)>>0]=a[Da+(vb+8)>>0]|0;vb=vb+1|0}while((vb|0)!=(bb|0));nb=tb;ob=hb;pb=ub;qb=0;rb=3}else if(gb<<24>>24==80){if((a[Na>>0]|0)!=76){X=226;break a}do{if((a[Oa>>0]|0)==84){if((a[Pa>>0]|0)!=69){break}hb=c[B>>2]|0;if((hb|0)!=0){Qd(hb)}hb=(bb>>>0)/3|0;c[C>>2]=hb;sb=Pd(hb<<2)|0;c[B>>2]=sb;c:do{if((sb|0)==0){if(!(bb>>>0<3)){X=66;break a}}else{if(bb>>>0>770){wb=38;X=72;break a}if(bb>>>0<3){break}else{xb=sb;yb=0;zb=0}while(1){hb=yb<<2;a[xb+hb>>0]=a[Da+(zb+8)>>0]|0;a[(c[B>>2]|0)+(hb|1)>>0]=a[Da+(zb+9)>>0]|0;a[(c[B>>2]|0)+(hb|2)>>0]=a[Da+(zb+10)>>0]|0;a[(c[B>>2]|0)+(hb|3)>>0]=-1;hb=yb+1|0;if(!(hb>>>0<(c[C>>2]|0)>>>0)){break c}xb=c[B>>2]|0;yb=hb;zb=zb+3|0}}}while(0);c[V>>2]=0;nb=Za;ob=Ya;pb=_a;qb=0;rb=2;break b}}while(0);if(gb<<24>>24==116){X=212}else{jb=0;X=87}}else{jb=0;X=87}}while(0);d:do{if((X|0)==87){X=0;do{if(gb<<24>>24==98){if((a[Na>>0]|0)!=75){break}if((a[Oa>>0]|0)!=71){break}if((a[Pa>>0]|0)!=68){break}switch(c[z>>2]|0){case 6:case 2:{if((bb|0)!=6){Ab=45;X=99;break a}c[F>>2]=1;c[da>>2]=d[La>>0]<<8|d[Qa>>0];c[ca>>2]=d[Ra>>0]<<8|d[Sa>>0];c[ba>>2]=d[Ta>>0]<<8|d[Ua>>0];break};case 4:case 0:{if((bb|0)!=2){Ab=44;X=99;break a}c[F>>2]=1;sb=d[La>>0]<<8|d[Qa>>0];c[ba>>2]=sb;c[ca>>2]=sb;c[da>>2]=sb;break};case 3:{if((bb|0)!=1){Ab=43;X=99;break a}c[F>>2]=1;sb=d[La>>0]|0;c[ba>>2]=sb;c[ca>>2]=sb;c[da>>2]=sb;break};default:{}}c[V>>2]=0;nb=Za;ob=Ya;pb=_a;qb=0;rb=ab;break d}}while(0);if(!jb){Bb=0;X=116;break}ib=a[Na>>0]|0;X=102}}while(0);do{if((X|0)==102){X=0;if(!(ib<<24>>24==69)){Bb=1;X=116;break}if((a[Oa>>0]|0)!=88){Bb=1;X=116;break}if((a[Pa>>0]|0)!=116){Bb=1;X=116;break}if((c[ea>>2]|0)==0){nb=Za;ob=Ya;pb=_a;qb=0;rb=ab;break}do{if((bb|0)==0){Cb=89;Db=0;Eb=0}else{sb=0;while(1){hb=sb+1|0;if((a[Da+(sb+8)>>0]|0)==0){Fb=sb;break}if(hb>>>0<bb>>>0){sb=hb}else{Fb=hb;break}}if((Fb|0)==0|Fb>>>0>79){Cb=89;Db=0;Eb=0;break}sb=Fb+1|0;hb=Pd(sb)|0;if((hb|0)==0){Cb=83;Db=0;Eb=0;break}a[hb+Fb>>0]=0;ie(hb|0,La|0,Fb|0)|0;lb=sb>>>0>bb>>>0?0:bb-sb|0;Gb=Pd(lb+1|0)|0;if((Gb|0)==0){Cb=83;Db=hb;Eb=0;break}a[Gb+lb>>0]=0;if((lb|0)!=0){ie(Gb|0,Da+(Fb+9)|0,(sb>>>0<bb>>>0?bb:sb)+~Fb|0)|0}Cb=Nc(w,hb,Gb)|0;Db=hb;Eb=Gb}}while(0);Qd(Db);Qd(Eb);c[V>>2]=Cb;if((Cb|0)==0){nb=Za;ob=Ya;pb=_a;qb=0;rb=ab}else{cb=Cb;db=_a;eb=Ya;break a}}}while(0);e:do{if((X|0)==116){X=0;do{if(gb<<24>>24==122){if((a[Na>>0]|0)!=84){Hb=Bb;break}if((a[Oa>>0]|0)!=88){Hb=Bb;break}if((a[Pa>>0]|0)!=116){Hb=Bb;break}if((c[ea>>2]|0)==0){nb=Za;ob=Ya;pb=_a;qb=0;rb=ab;break e}c[l>>2]=0;c[fa>>2]=0;c[ga>>2]=0;f:do{if((bb|0)==0){Ib=0}else{Gb=0;while(1){hb=Gb+1|0;if((a[Da+(Gb+8)>>0]|0)==0){Ib=Gb;break f}if(hb>>>0<bb>>>0){Gb=hb}else{Ib=hb;break}}}}while(0);Gb=Ib+2|0;do{if(Gb>>>0<bb>>>0){if((Ib|0)==0|Ib>>>0>79){Jb=89;Kb=0;break}hb=Pd(Ib+1|0)|0;if((hb|0)==0){Jb=83;Kb=0;break}a[hb+Ib>>0]=0;ie(hb|0,La|0,Ib|0)|0;if((a[Da+(Ib+9)>>0]|0)!=0){Jb=72;Kb=hb;break}if(Gb>>>0>bb>>>0){Jb=75;Kb=hb;break}sb=bb-Gb|0;lb=Da+(Ib+10)|0;Lb=c[ha>>2]|0;if((Lb|0)==0){Mb=Mc(l,ga,lb,sb,g)|0}else{Mb=tc[Lb&0](l,ga,lb,sb,g)|0}if((Mb|0)!=0){Jb=Mb;Kb=hb;break}sb=c[ga>>2]|0;lb=sb+1|0;do{if((c[fa>>2]|0)>>>0<lb>>>0){Lb=lb<<1;Nb=Rd(c[l>>2]|0,Lb)|0;if((Nb|0)==0){break}c[fa>>2]=Lb;c[l>>2]=Nb;Ob=Nb;X=137}else{Ob=c[l>>2]|0;X=137}}while(0);if((X|0)==137){X=0;c[ga>>2]=lb;a[Ob+sb>>0]=0}Jb=Nc(w,hb,c[l>>2]|0)|0;Kb=hb}else{Jb=75;Kb=0}}while(0);Qd(Kb);c[fa>>2]=0;c[ga>>2]=0;Qd(c[l>>2]|0);c[V>>2]=Jb;if((Jb|0)==0){nb=Za;ob=Ya;pb=_a;qb=0;rb=ab;break e}else{cb=Jb;db=_a;eb=Ya;break a}}else if(gb<<24>>24==105){if((a[Na>>0]|0)!=84){Hb=Bb;break}if((a[Oa>>0]|0)!=88){Hb=Bb;break}if((a[Pa>>0]|0)!=116){Hb=Bb;break}if((c[ea>>2]|0)==0){nb=Za;ob=Ya;pb=_a;qb=0;rb=ab;break e}c[l>>2]=0;c[ia>>2]=0;c[ja>>2]=0;g:do{if(bb>>>0<5){Pb=30;Qb=0;Rb=0;Sb=0}else{Gb=0;while(1){Nb=Gb+1|0;if((a[Da+(Gb+8)>>0]|0)==0){Tb=Gb;break}if(Nb>>>0<bb>>>0){Gb=Nb}else{Tb=Nb;break}}Gb=Tb+3|0;if(!(Gb>>>0<bb>>>0)){Pb=75;Qb=0;Rb=0;Sb=0;break}if((Tb|0)==0|Tb>>>0>79){Pb=89;Qb=0;Rb=0;Sb=0;break}hb=Pd(Tb+1|0)|0;if((hb|0)==0){Pb=83;Qb=0;Rb=0;Sb=0;break}a[hb+Tb>>0]=0;ie(hb|0,La|0,Tb|0)|0;sb=a[Da+(Tb+9)>>0]|0;if((a[Da+(Tb+10)>>0]|0)==0){Ub=Gb;Vb=0}else{Pb=72;Qb=hb;Rb=0;Sb=0;break}while(1){Wb=Vb+1|0;if((a[Da+(Ub+8)>>0]|0)==0){Xb=Wb;Yb=Vb;break}Ub=Ub+1|0;if(!(Ub>>>0<bb>>>0)){X=152;break}else{Vb=Wb}}if((X|0)==152){X=0;Xb=Vb+2|0;Yb=Wb}lb=Pd(Xb)|0;if((lb|0)==0){Pb=83;Qb=hb;Rb=0;Sb=0;break}a[lb+Yb>>0]=0;if((Yb|0)!=0){ie(lb|0,Da+(Tb+11)|0,Yb|0)|0}Nb=Xb+Gb|0;h:do{if(Nb>>>0<bb>>>0){Lb=Nb;Zb=0;while(1){_b=Zb+1|0;if((a[Da+(Lb+8)>>0]|0)==0){$b=_b;ac=Zb;break h}Lb=Lb+1|0;if(!(Lb>>>0<bb>>>0)){bc=_b;X=159;break}else{Zb=_b}}}else{bc=0;X=159}}while(0);if((X|0)==159){X=0;$b=bc+1|0;ac=bc}Gb=Pd($b)|0;if((Gb|0)==0){Pb=83;Qb=hb;Rb=lb;Sb=0;break}a[Gb+ac>>0]=0;if((ac|0)!=0){ie(Gb|0,Da+(Tb+11+Xb)|0,ac|0)|0}Zb=$b+Nb|0;Lb=Zb>>>0>bb>>>0?0:bb-Zb|0;i:do{if(sb<<24>>24==0){_b=Lb+1|0;if((_b|0)==0){cc=0}else{dc=_b<<1;ec=Pd(dc)|0;if((ec|0)==0){Pb=83;Qb=hb;Rb=lb;Sb=Gb;break g}c[ia>>2]=dc;c[l>>2]=ec;cc=ec}c[ja>>2]=_b;a[cc+Lb>>0]=0;if((Lb|0)==0){break}_b=Zb+8|0;a[cc>>0]=a[Da+_b>>0]|0;if((Lb|0)==1){break}a[cc+1>>0]=a[Da+(Zb+9)>>0]|0;if((Lb|0)==2){break}else{fc=cc;gc=2}while(1){a[fc+gc>>0]=a[Da+(gc+_b)>>0]|0;ec=gc+1|0;if((ec|0)==(Lb|0)){break i}fc=c[l>>2]|0;gc=ec}}else{_b=Da+(Zb+8)|0;ec=c[ha>>2]|0;if((ec|0)==0){hc=Mc(l,ja,_b,Lb,g)|0}else{hc=tc[ec&0](l,ja,_b,Lb,g)|0}if((hc|0)!=0){Pb=hc;Qb=hb;Rb=lb;Sb=Gb;break g}_b=c[ia>>2]|0;ec=c[ja>>2]|0;if(_b>>>0<ec>>>0){c[ia>>2]=ec;ic=ec}else{ic=_b}_b=ec+1|0;if(ic>>>0<_b>>>0){dc=_b<<1;jc=Rd(c[l>>2]|0,dc)|0;if((jc|0)==0){break}c[ia>>2]=dc;c[l>>2]=jc;kc=jc}else{kc=c[l>>2]|0}c[ja>>2]=_b;a[kc+ec>>0]=0}}while(0);Lb=c[l>>2]|0;Zb=Rd(c[va>>2]|0,(c[wa>>2]<<2)+4|0)|0;sb=Rd(c[xa>>2]|0,(c[wa>>2]<<2)+4|0)|0;Nb=Rd(c[ya>>2]|0,(c[wa>>2]<<2)+4|0)|0;ec=Rd(c[za>>2]|0,(c[wa>>2]<<2)+4|0)|0;if((Zb|0)==0|(sb|0)==0|(Nb|0)==0|(ec|0)==0){Qd(Zb);Qd(sb);Qd(Nb);Qd(ec);Pb=83;Qb=hb;Rb=lb;Sb=Gb;break}_b=c[wa>>2]|0;c[wa>>2]=_b+1;c[va>>2]=Zb;c[xa>>2]=sb;c[ya>>2]=Nb;c[za>>2]=ec;ec=Zb+(_b<<2)|0;c[ec>>2]=0;_b=Pd(1)|0;if((_b|0)!=0){a[_b>>0]=0;c[ec>>2]=_b}_b=(c[va>>2]|0)+((c[wa>>2]|0)+ -1<<2)|0;ec=fe(hb|0)|0;Zb=Rd(c[_b>>2]|0,ec+1|0)|0;do{if((Zb|0)!=0){a[Zb+ec>>0]=0;c[_b>>2]=Zb;if((ec|0)==0){break}a[Zb>>0]=a[hb>>0]|0;if((ec|0)==1){break}else{lc=1}do{a[(c[_b>>2]|0)+lc>>0]=a[hb+lc>>0]|0;lc=lc+1|0}while((lc|0)!=(ec|0))}}while(0);ec=(c[xa>>2]|0)+((c[wa>>2]|0)+ -1<<2)|0;c[ec>>2]=0;_b=Pd(1)|0;if((_b|0)!=0){a[_b>>0]=0;c[ec>>2]=_b}_b=(c[xa>>2]|0)+((c[wa>>2]|0)+ -1<<2)|0;ec=fe(lb|0)|0;Zb=Rd(c[_b>>2]|0,ec+1|0)|0;do{if((Zb|0)!=0){a[Zb+ec>>0]=0;c[_b>>2]=Zb;if((ec|0)==0){break}a[Zb>>0]=a[lb>>0]|0;if((ec|0)==1){break}else{mc=1}do{a[(c[_b>>2]|0)+mc>>0]=a[lb+mc>>0]|0;mc=mc+1|0}while((mc|0)!=(ec|0))}}while(0);ec=(c[ya>>2]|0)+((c[wa>>2]|0)+ -1<<2)|0;c[ec>>2]=0;_b=Pd(1)|0;if((_b|0)!=0){a[_b>>0]=0;c[ec>>2]=_b}_b=(c[ya>>2]|0)+((c[wa>>2]|0)+ -1<<2)|0;ec=fe(Gb|0)|0;Zb=Rd(c[_b>>2]|0,ec+1|0)|0;do{if((Zb|0)!=0){a[Zb+ec>>0]=0;c[_b>>2]=Zb;if((ec|0)==0){break}a[Zb>>0]=a[Gb>>0]|0;if((ec|0)==1){break}else{nc=1}do{a[(c[_b>>2]|0)+nc>>0]=a[Gb+nc>>0]|0;nc=nc+1|0}while((nc|0)!=(ec|0))}}while(0);ec=(c[za>>2]|0)+((c[wa>>2]|0)+ -1<<2)|0;c[ec>>2]=0;_b=Pd(1)|0;if((_b|0)!=0){a[_b>>0]=0;c[ec>>2]=_b}_b=(c[za>>2]|0)+((c[wa>>2]|0)+ -1<<2)|0;ec=fe(Lb|0)|0;Zb=Rd(c[_b>>2]|0,ec+1|0)|0;if((Zb|0)==0){Pb=0;Qb=hb;Rb=lb;Sb=Gb;break}a[Zb+ec>>0]=0;c[_b>>2]=Zb;if((ec|0)==0){Pb=0;Qb=hb;Rb=lb;Sb=Gb;break}a[Zb>>0]=a[Lb>>0]|0;if((ec|0)==1){Pb=0;Qb=hb;Rb=lb;Sb=Gb;break}else{oc=1}do{a[(c[_b>>2]|0)+oc>>0]=a[Lb+oc>>0]|0;oc=oc+1|0}while((oc|0)!=(ec|0));Pb=0;Qb=hb;Rb=lb;Sb=Gb}}while(0);Qd(Qb);Qd(Rb);Qd(Sb);c[ia>>2]=0;c[ja>>2]=0;Qd(c[l>>2]|0);c[V>>2]=Pb;if((Pb|0)==0){nb=Za;ob=Ya;pb=_a;qb=0;rb=ab;break e}else{cb=Pb;db=_a;eb=Ya;break a}}else{Hb=Bb}}while(0);if(Hb){X=212}else{X=218}}}while(0);do{if((X|0)==212){X=0;if((a[Na>>0]|0)!=73){X=218;break}if((a[Oa>>0]|0)!=77){X=218;break}if((a[Pa>>0]|0)!=69){X=218;break}if((bb|0)!=7){X=216;break a}c[ka>>2]=1;c[la>>2]=d[La>>0]<<8|d[Qa>>0];c[ma>>2]=d[Ra>>0]|0;c[na>>2]=d[Sa>>0]|0;c[oa>>2]=d[Ta>>0]|0;c[pa>>2]=d[Ua>>0]|0;c[qa>>2]=d[Va>>0]|0;c[V>>2]=0;nb=Za;ob=Ya;pb=_a;qb=0;rb=ab}}while(0);if((X|0)==218){X=0;if(!(gb<<24>>24==112)){X=225;break}if((a[Na>>0]|0)!=72){X=227;break}if((a[Oa>>0]|0)!=89){X=227;break}if((a[Pa>>0]|0)!=115){X=227;break}if((bb|0)!=9){X=223;break a}c[G>>2]=1;c[ra>>2]=d[Qa>>0]<<16|d[La>>0]<<24|d[Ra>>0]<<8|d[Sa>>0];c[sa>>2]=d[Ua>>0]<<16|d[Ta>>0]<<24|d[Va>>0]<<8|d[Wa>>0];c[ta>>2]=d[Xa>>0]|0;c[V>>2]=0;nb=Za;ob=Ya;pb=_a;qb=0;rb=ab}if((c[P>>2]|Fa|0)==0){Gb=d[Ia>>0]<<16|d[Da>>0]<<24|d[Ja>>0]<<8|d[Ka>>0];lb=d[Da+(Gb+9)>>0]<<16|d[Da+(Gb+8)>>0]<<24|d[Da+(Gb+10)>>0]<<8|d[Da+(Gb+11)>>0];hb=Gb+4|0;if((hb|0)==0){pc=0}else{Gb=-1;ec=0;do{Gb=c[8+((d[Da+(ec+4)>>0]^Gb&255)<<2)>>2]^Gb>>>8;ec=ec+1|0}while((ec|0)!=(hb|0));pc=~Gb}if((lb|0)!=(pc|0)){X=239;break a}}if(qb<<24>>24==0){qc=nb;rc=ob;sc=pb;uc=rb;vc=Fa;break}else{Ya=ob;Za=nb;_a=pb;$a=qb;ab=rb}}if((X|0)==225){X=0;if((gb&32)==0){X=226;break}else{X=227}}do{if((X|0)==227){X=0;if((c[ua>>2]|0)==0){qc=Za;rc=Ya;sc=_a;uc=ab;vc=1;break}$a=ab+ -1|0;Xa=g+($a<<2)+268|0;Wa=g+($a<<2)+280|0;$a=c[Wa>>2]|0;Va=$a+fb|0;if(Va>>>0<fb>>>0|Va>>>0<$a>>>0){wc=77;X=233;break a}Ta=Rd(c[Xa>>2]|0,Va)|0;if((Ta|0)==0){wc=83;X=233;break a}c[Xa>>2]=Ta;c[Wa>>2]=Va;if((fb|0)!=0){Va=0;do{a[Ta+(Va+$a)>>0]=a[Da+Va>>0]|0;Va=Va+1|0}while((Va|0)!=(fb|0))}c[V>>2]=0;qc=Za;rc=Ya;sc=_a;uc=ab;vc=1}}while(0);Aa=qc;Ba=rc;Ca=sc;Da=Da+((d[Ia>>0]<<16|d[Da>>0]<<24|d[Ja>>0]<<8|d[Ka>>0])+12)|0;Ea=uc;Fa=vc}switch(X|0){case 42:{c[V>>2]=30;cb=30;db=_a;eb=Ya;break};case 44:{c[V>>2]=63;cb=63;db=_a;eb=Ya;break};case 47:{c[V>>2]=64;cb=64;db=_a;eb=Ya;break};case 55:{c[V>>2]=83;cb=83;db=_a;eb=Ya;break};case 66:{c[C>>2]=0;wb=83;X=72;break};case 86:{c[V>>2]=kb;cb=kb;db=_a;eb=Ya;break};case 99:{c[V>>2]=Ab;cb=Ab;db=_a;eb=Ya;break};case 216:{c[V>>2]=73;cb=73;db=_a;eb=Ya;break};case 223:{c[V>>2]=74;cb=74;db=_a;eb=Ya;break};case 226:{c[V>>2]=69;cb=69;db=_a;eb=Ya;break};case 233:{c[V>>2]=wc;cb=wc;db=_a;eb=Ya;break};case 239:{c[V>>2]=57;cb=57;db=pb;eb=ob;break}}if((X|0)==72){c[V>>2]=wb;cb=wb;db=_a;eb=Ya}c[v>>2]=0;Fa=v+8|0;c[Fa>>2]=0;Ea=v+4|0;c[Ea>>2]=0;j:do{if((cb|0)==0){Da=c[f>>2]|0;switch(c[z>>2]|0){case 2:{xc=3;break};case 3:case 0:{xc=1;break};case 4:{xc=2;break};case 6:{xc=4;break};default:{xc=0}}Ca=(((aa(aa(aa(Da,c[e>>2]|0)|0,c[A>>2]|0)|0,xc)|0)+7|0)>>>3)+Da|0;do{if((Ca|0)!=0){Da=Ca<<1;Ba=Pd(Da)|0;if((Ba|0)!=0){c[Fa>>2]=Da;c[v>>2]=Ba;Ba=(c[V>>2]|0)==0;c[Ea>>2]=Ca;if(Ba){break}else{break j}}else{c[V>>2]=83;break j}}else{c[Ea>>2]=0}}while(0);Ca=c[ha>>2]|0;if((Ca|0)==0){yc=Mc(v,Ea,db,eb,g)|0}else{yc=tc[Ca&0](v,Ea,db,eb,g)|0}c[V>>2]=yc}}while(0);Qd(db);if((c[V>>2]|0)==0){ha=c[e>>2]|0;Ca=c[f>>2]|0;Ka=c[z>>2]|0;Ja=c[A>>2]|0;switch(Ka|0){case 4:{zc=2;break};case 3:case 0:{zc=1;break};case 6:{zc=4;break};case 2:{zc=3;break};default:{zc=0}}Ia=((aa(aa(aa(Ca,ha)|0,Ja)|0,zc)|0)+7|0)>>>3;do{if((Ia|0)==0){Ac=0;Bc=Ka;Cc=Ja;Dc=ha;Ec=Ca;X=268}else{Ba=Pd(Ia<<1)|0;if((Ba|0)==0){c[V>>2]=83;Fc=0;break}he(Ba|0,0,Ia|0)|0;if((c[V>>2]|0)!=0){Fc=Ba;break}Ac=Ba;Bc=c[z>>2]|0;Cc=c[A>>2]|0;Dc=c[e>>2]|0;Ec=c[f>>2]|0;X=268}}while(0);if((X|0)==268){z=c[v>>2]|0;switch(Bc|0){case 2:{Gc=3;break};case 4:{Gc=2;break};case 6:{Gc=4;break};case 3:case 0:{Gc=1;break};default:{Gc=0}}Ia=aa(Gc,Cc)|0;k:do{if((Ia|0)==0){Hc=31}else{l:do{if((c[D>>2]|0)==0){do{if(Ia>>>0<8){Ca=aa(Ia,Dc)|0;ha=Ca+7&-8;if((Ca|0)==(ha|0)){break}Ja=Yc(z,z,Dc,Ec,Ia)|0;if((Ja|0)!=0){Hc=Ja;break k}Ja=ha-Ca|0;if((Ec|0)==0){break l}ha=(Ca|0)==0;Ka=0;Ba=0;Da=0;while(1){if(ha){Ic=Ba;Jc=Ka}else{Aa=Ba;ua=Ka;P=0;while(1){ta=1<<(ua&7^7);if((1<<(Aa&7^7)&d[z+(Aa>>>3)>>0]|0)==0){sa=Ac+(ua>>>3)|0;a[sa>>0]=d[sa>>0]&(ta^255)}else{sa=Ac+(ua>>>3)|0;a[sa>>0]=d[sa>>0]|ta}P=P+1|0;if((P|0)==(Ca|0)){break}else{Aa=Aa+1|0;ua=ua+1|0}}Ic=Ba+Ca|0;Jc=Ka+Ca|0}Da=Da+1|0;if((Da|0)==(Ec|0)){break l}else{Ka=Jc;Ba=Ja+Ic|0}}}}while(0);Ja=Yc(Ac,z,Dc,Ec,Ia)|0;if((Ja|0)!=0){Hc=Ja;break k}}else{Xc(l,r,s,t,u,Dc,Ec,Ia);Ja=Ia>>>0<8;Ba=0;do{Ka=c[t+(Ba<<2)>>2]|0;Da=c[l+(Ba<<2)>>2]|0;Ca=c[r+(Ba<<2)>>2]|0;ha=Yc(z+Ka|0,z+(c[s+(Ba<<2)>>2]|0)|0,Da,Ca,Ia)|0;if((ha|0)!=0){Hc=ha;break k}do{if(Ja){ha=c[u+(Ba<<2)>>2]|0;ua=aa(Da,Ia)|0;Aa=(ua+7&-8)-ua|0;if((Ca|0)==0){break}P=(ua|0)==0;ta=0;sa=0;ra=0;while(1){if(P){Kc=sa;Lc=ta}else{G=sa;qa=ta;pa=0;while(1){oa=1<<(qa&7^7);if((1<<(G&7^7)&d[z+((G>>>3)+Ka)>>0]|0)==0){na=z+((qa>>>3)+ha)|0;a[na>>0]=d[na>>0]&(oa^255)}else{na=z+((qa>>>3)+ha)|0;a[na>>0]=d[na>>0]|oa}pa=pa+1|0;if((pa|0)==(ua|0)){break}else{G=G+1|0;qa=qa+1|0}}Kc=sa+ua|0;Lc=ta+ua|0}ra=ra+1|0;if((ra|0)==(Ca|0)){break}else{ta=Lc;sa=Aa+Kc|0}}}}while(0);Ba=Ba+1|0}while(Ba>>>0<7);Xc(m,n,o,p,q,Dc,Ec,Ia);if(Ia>>>0>7){Ba=Ia>>>3;Ja=(Ba|0)==0;Ca=0;while(1){Ka=c[n+(Ca<<2)>>2]|0;if((Ka|0)!=0){Da=c[m+(Ca<<2)>>2]|0;Aa=(Da|0)==0;sa=q+(Ca<<2)|0;ta=8344+(Ca<<2)|0;ra=8376+(Ca<<2)|0;ua=8408+(Ca<<2)|0;ha=8440+(Ca<<2)|0;P=0;do{if(!Aa){qa=c[sa>>2]|0;G=aa((aa(c[ra>>2]|0,P)|0)+(c[ta>>2]|0)|0,Dc)|0;pa=G+(c[ua>>2]|0)|0;G=c[ha>>2]|0;oa=aa(P,Da)|0;na=0;do{ma=(aa(na+oa|0,Ba)|0)+qa|0;la=aa(pa+(aa(na,G)|0)|0,Ba)|0;if(!Ja){ka=0;do{a[Ac+(ka+la)>>0]=a[z+(ma+ka)>>0]|0;ka=ka+1|0}while(ka>>>0<Ba>>>0)}na=na+1|0}while((na|0)!=(Da|0))}P=P+1|0}while((P|0)!=(Ka|0))}Ca=Ca+1|0;if((Ca|0)==7){break l}}}else{Rc=0}do{Ca=c[m+(Rc<<2)>>2]|0;Ba=c[n+(Rc<<2)>>2]|0;if((Ba|0)!=0){Ja=(Ca|0)==0;Ka=q+(Rc<<2)|0;P=8344+(Rc<<2)|0;Da=8376+(Rc<<2)|0;ha=8408+(Rc<<2)|0;ua=8440+(Rc<<2)|0;ta=0;do{if(!Ja){ra=c[Ka>>2]<<3;sa=aa(ta,Ca)|0;Aa=aa((aa(c[Da>>2]|0,ta)|0)+(c[P>>2]|0)|0,Dc)|0;na=c[ua>>2]|0;G=Aa+(c[ha>>2]|0)|0;Aa=0;do{pa=(aa(Aa+sa|0,Ia)|0)+ra|0;qa=aa(G+(aa(Aa,na)|0)|0,Ia)|0;oa=0;while(1){ka=(d[z+(pa>>>3)>>0]|0)>>>(pa&7^7)&1;if((ka|0)!=0){ma=Ac+(qa>>>3)|0;a[ma>>0]=d[ma>>0]|ka<<(qa&7^7)}oa=oa+1|0;if((oa|0)==(Ia|0)){break}else{pa=pa+1|0;qa=qa+1|0}}Aa=Aa+1|0}while((Aa|0)!=(Ca|0))}ta=ta+1|0}while((ta|0)!=(Ba|0))}Rc=Rc+1|0}while((Rc|0)!=7)}}while(0);Hc=0}}while(0);c[V>>2]=Hc;Fc=Ac}c[b>>2]=Fc}c[Fa>>2]=0;c[Ea>>2]=0;Qd(c[v>>2]|0);Ia=c[V>>2]|0;if((Ia|0)!=0){Y=Ia;i=k;return Y|0}Ia=g+100|0;z=g+144|0;if((c[g+24>>2]|0)==0){D=g+108|0;Ba=c[D>>2]|0;if((Ba|0)!=0){Qd(Ba)}c[Ia+0>>2]=c[z+0>>2];c[Ia+4>>2]=c[z+4>>2];c[Ia+8>>2]=c[z+8>>2];c[Ia+12>>2]=c[z+12>>2];c[Ia+16>>2]=c[z+16>>2];c[Ia+20>>2]=c[z+20>>2];c[Ia+24>>2]=c[z+24>>2];c[Ia+28>>2]=c[z+28>>2];Ba=c[B>>2]|0;m:do{if((Ba|0)!=0){ta=Pd(1024)|0;c[D>>2]=ta;Ca=c[C>>2]|0;if((ta|0)==0){ha=(Ca|0)==0?0:83;c[V>>2]=ha;Y=ha;i=k;return Y|0}if((Ca&1073741823|0)==0){break}a[ta>>0]=a[Ba>>0]|0;if(Ca<<2>>>0>1){Sc=ta;Tc=Ba;Uc=1}else{break}while(1){a[Sc+Uc>>0]=a[Tc+Uc>>0]|0;ta=Uc+1|0;if(!(ta>>>0<c[C>>2]<<2>>>0)){break m}Sc=c[D>>2]|0;Tc=c[B>>2]|0;Uc=ta}}}while(0);c[V>>2]=0;Y=0;i=k;return Y|0}D=c[Ia>>2]|0;n:do{if((D|0)==(c[z>>2]|0)){if((c[g+104>>2]|0)!=(c[A>>2]|0)){break}Ba=c[g+116>>2]|0;if((Ba|0)!=(c[y>>2]|0)){break}if((Ba|0)!=0){if((c[g+120>>2]|0)!=(c[$>>2]|0)){break}if((c[g+124>>2]|0)!=(c[_>>2]|0)){break}if((c[g+128>>2]|0)!=(c[Z>>2]|0)){break}}Ba=c[g+112>>2]|0;if((Ba|0)!=(c[C>>2]|0)){break}if((Ba&1073741823|0)==0){Y=0;i=k;return Y|0}Ea=c[g+108>>2]|0;Fa=c[B>>2]|0;ta=Ba<<2;Ba=0;while(1){if((a[Ea+Ba>>0]|0)!=(a[Fa+Ba>>0]|0)){break n}Ba=Ba+1|0;if(!(Ba>>>0<ta>>>0)){Y=0;break}}i=k;return Y|0}}while(0);ta=c[b>>2]|0;do{if(!((D|0)==6|(D|0)==2)){if((c[g+104>>2]|0)==8){break}else{Y=56}i=k;return Y|0}}while(0);Ba=g+104|0;switch(D|0){case 2:{Vc=3;break};case 6:{Vc=4;break};case 3:case 0:{Vc=1;break};case 4:{Vc=2;break};default:{Vc=0}}Fa=aa(c[f>>2]|0,c[e>>2]|0)|0;Ea=Pd(((aa(aa(Fa,c[Ba>>2]|0)|0,Vc)|0)+7|0)>>>3)|0;c[b>>2]=Ea;o:do{if((Ea|0)==0){Wc=83}else{Ca=c[g+20>>2]|0;ha=c[Ia>>2]|0;p:do{if((ha|0)==(c[z>>2]|0)){ua=c[Ba>>2]|0;if((ua|0)!=(c[A>>2]|0)){break}P=c[g+116>>2]|0;if((P|0)!=(c[y>>2]|0)){break}if((P|0)!=0){if((c[g+120>>2]|0)!=(c[$>>2]|0)){break}if((c[g+124>>2]|0)!=(c[_>>2]|0)){break}if((c[g+128>>2]|0)!=(c[Z>>2]|0)){break}}P=c[g+112>>2]|0;if((P|0)!=(c[C>>2]|0)){break}if((P&1073741823|0)!=0){Da=c[g+108>>2]|0;Ka=c[B>>2]|0;Ja=P<<2;P=0;do{if((a[Da+P>>0]|0)!=(a[Ka+P>>0]|0)){break p}P=P+1|0}while(P>>>0<Ja>>>0)}switch(ha|0){case 4:{Zc=2;break};case 6:{Zc=4;break};case 3:case 0:{Zc=1;break};case 2:{Zc=3;break};default:{Zc=0}}Ja=((aa(aa(ua,Fa)|0,Zc)|0)+7|0)>>>3;if((Ja|0)==0){Wc=0;break o}else{_c=0}while(1){a[Ea+_c>>0]=a[ta+_c>>0]|0;_c=_c+1|0;if(!(_c>>>0<Ja>>>0)){Wc=0;break o}}}}while(0);do{if((ha|0)==3){Ja=1<<c[Ba>>2];ua=c[g+112>>2]|0;P=ua>>>0<Ja>>>0?ua:Ja;H=l+0|0;I=H+64|0;do{c[H>>2]=0;H=H+4|0}while((H|0)<(I|0));c[l+64>>2]=-1;if((P|0)==0){break}Ka=g+108|0;Da=~ua;Aa=~Ja;na=~(Da>>>0>Aa>>>0?Da:Aa);Aa=0;do{Da=Aa<<2;G=c[Ka>>2]|0;ra=d[G+Da>>0]|0;sa=d[G+(Da|1)>>0]|0;qa=d[G+(Da|2)>>0]|0;pa=d[G+(Da|3)>>0]|0;Da=l;G=0;while(1){oa=Da+((sa>>>G<<2&4|pa>>>G&1|ra>>>G<<3&8|qa>>>G<<1&2)<<2)|0;ka=c[oa>>2]|0;if((ka|0)==0){ma=Pd(68)|0;c[oa>>2]=ma;H=ma+0|0;I=H+64|0;do{c[H>>2]=0;H=H+4|0}while((H|0)<(I|0));c[ma+64>>2]=-1;$c=c[oa>>2]|0}else{$c=ka}G=G+1|0;if((G|0)==8){break}else{Da=$c}}c[$c+64>>2]=Aa;Aa=Aa+1|0}while((Aa|0)!=(na|0))}}while(0);na=c[Ba>>2]|0;q:do{if((c[A>>2]|0)==16&(na|0)==16){if((Fa|0)==0){ad=0;break}else{bd=1;cd=0}while(1){if(!bd){ad=85;break q}Aa=c[z>>2]|0;r:do{if((Aa|0)==0){Ka=cd<<1;Ja=a[ta+(Ka|1)>>0]|0;ua=d[ta+Ka>>0]<<8|Ja&255;Ka=ua&65535;do{if((c[y>>2]|0)!=0){if((ua|0)!=(c[$>>2]|0)){break}dd=0;ed=0;fd=Ja;gd=(Ka&65535)>>>8&255;hd=Ja;id=(Ka&65535)>>>8&255;jd=Ja;kd=(Ka&65535)>>>8&255;break r}}while(0);dd=-1;ed=-1;fd=Ja;gd=(Ka&65535)>>>8&255;hd=Ja;id=(Ka&65535)>>>8&255;jd=Ja;kd=(Ka&65535)>>>8&255}else if((Aa|0)==6){ua=cd<<3;dd=a[ta+(ua|7)>>0]|0;ed=a[ta+(ua|6)>>0]|0;fd=a[ta+(ua|5)>>0]|0;gd=a[ta+(ua|4)>>0]|0;hd=a[ta+(ua|3)>>0]|0;id=a[ta+(ua|2)>>0]|0;jd=a[ta+(ua|1)>>0]|0;kd=a[ta+ua>>0]|0}else if((Aa|0)==4){ua=cd<<2;ka=a[ta+(ua|1)>>0]|0;oa=(d[ta+ua>>0]<<8|ka&255)&65535;dd=a[ta+(ua|3)>>0]|0;ed=a[ta+(ua|2)>>0]|0;fd=ka;gd=(oa&65535)>>>8&255;hd=ka;id=(oa&65535)>>>8&255;jd=ka;kd=(oa&65535)>>>8&255}else if((Aa|0)==2){oa=cd*6|0;ka=a[ta+(oa|1)>>0]|0;ua=d[ta+oa>>0]<<8|ka&255;ma=ua&65535;P=a[ta+(oa+3)>>0]|0;Da=d[ta+(oa+2)>>0]<<8|P&255;G=Da&65535;qa=a[ta+(oa+5)>>0]|0;ra=d[ta+(oa+4)>>0]<<8|qa&255;oa=ra&65535;do{if((c[y>>2]|0)!=0){if((ua|0)!=(c[$>>2]|0)){break}if((Da|0)!=(c[_>>2]|0)){break}if((ra|0)!=(c[Z>>2]|0)){break}dd=0;ed=0;fd=qa;gd=(oa&65535)>>>8&255;hd=P;id=(G&65535)>>>8&255;jd=ka;kd=(ma&65535)>>>8&255;break r}}while(0);dd=-1;ed=-1;fd=qa;gd=(oa&65535)>>>8&255;hd=P;id=(G&65535)>>>8&255;jd=ka;kd=(ma&65535)>>>8&255}else{ad=85;break q}}while(0);if((c[Ba>>2]|0)!=16){ad=85;break q}Aa=c[Ia>>2]|0;if((Aa|0)==2){ra=cd*6|0;a[Ea+ra>>0]=kd;a[Ea+(ra|1)>>0]=jd;a[Ea+(ra+2)>>0]=id;a[Ea+(ra+3)>>0]=hd;a[Ea+(ra+4)>>0]=gd;a[Ea+(ra+5)>>0]=fd}else if((Aa|0)==4){ra=cd<<2;a[Ea+ra>>0]=kd;a[Ea+(ra|1)>>0]=jd;a[Ea+(ra|2)>>0]=ed;a[Ea+(ra|3)>>0]=dd}else if((Aa|0)==0){ra=cd<<1;a[Ea+ra>>0]=kd;a[Ea+(ra|1)>>0]=jd}else if((Aa|0)==6){Aa=cd<<3;a[Ea+Aa>>0]=kd;a[Ea+(Aa|1)>>0]=jd;a[Ea+(Aa|2)>>0]=id;a[Ea+(Aa|3)>>0]=hd;a[Ea+(Aa|4)>>0]=gd;a[Ea+(Aa|5)>>0]=fd;a[Ea+(Aa|6)>>0]=ed;a[Ea+(Aa|7)>>0]=dd}Aa=cd+1|0;if(!(Aa>>>0<Fa>>>0)){ad=0;break q}bd=(c[A>>2]|0)==16;cd=Aa}}else{do{if((na|0)==8){if((ha|0)==6){ad=Pc(Ea,Fa,1,ta,z,Ca)|0;break q}else if((ha|0)==2){ad=Pc(Ea,Fa,0,ta,z,Ca)|0;break q}else{break}}}while(0);if((Fa|0)==0){ad=0;break}Aa=(Ca|0)==0;ra=0;Da=0;ua=0;Ka=0;Ja=0;s:while(1){t:do{switch(c[z>>2]|0){case 0:{pa=c[A>>2]|0;if((pa|0)==8){sa=a[ta+Ka>>0]|0;if((c[y>>2]|0)!=0?(sa&255|0)==(c[$>>2]|0):0){ld=0;md=sa;nd=sa;od=sa;break t}ld=-1;md=sa;nd=sa;od=sa;break t}else if((pa|0)==16){sa=Ka<<1;la=a[ta+sa>>0]|0;if((c[y>>2]|0)!=0?((la&255)<<8|d[ta+(sa|1)>>0]|0)==(c[$>>2]|0):0){ld=0;md=la;nd=la;od=la;break t}ld=-1;md=la;nd=la;od=la;break t}else{la=(1<<pa)+ -1|0;if((pa|0)==0){pd=0}else{sa=aa(pa,Ka)|0;ja=pa+ -1|0;ia=0;while(1){wa=(((d[ta+(sa>>>3)>>0]|0)>>>(sa&7^7)&1)<<ja)+ia|0;ja=ja+ -1|0;if(!(ja>>>0<pa>>>0)){pd=wa;break}else{sa=sa+1|0;ia=wa}}}ia=(((pd*255|0)>>>0)/(la>>>0)|0)&255;if((c[y>>2]|0)!=0?(pd|0)==(c[$>>2]|0):0){ld=0;md=ia;nd=ia;od=ia;break t}ld=-1;md=ia;nd=ia;od=ia;break t}break};case 2:{if((c[A>>2]|0)==8){ia=Ka*3|0;sa=a[ta+ia>>0]|0;pa=a[ta+(ia+1)>>0]|0;ja=a[ta+(ia+2)>>0]|0;do{if((c[y>>2]|0)!=0){if((sa&255|0)!=(c[$>>2]|0)){break}if((pa&255|0)!=(c[_>>2]|0)){break}if((ja&255|0)==(c[Z>>2]|0)){ld=0;md=ja;nd=pa;od=sa;break t}}}while(0);ld=-1;md=ja;nd=pa;od=sa;break t}else{la=Ka*6|0;ia=a[ta+la>>0]|0;ma=a[ta+(la+2)>>0]|0;ka=a[ta+(la+4)>>0]|0;do{if((c[y>>2]|0)!=0){if(((ia&255)<<8|d[ta+(la|1)>>0]|0)!=(c[$>>2]|0)){break}if(((ma&255)<<8|d[ta+(la+3)>>0]|0)!=(c[_>>2]|0)){break}if(((ka&255)<<8|d[ta+(la+5)>>0]|0)==(c[Z>>2]|0)){ld=0;md=ka;nd=ma;od=ia;break t}}}while(0);ld=-1;md=ka;nd=ma;od=ia;break t}break};case 3:{qd=c[A>>2]|0;if((qd|0)==8){rd=d[ta+Ka>>0]|0}else if((qd|0)==0){rd=0}else{la=aa(qd,Ka)|0;sa=qd+ -1|0;pa=0;while(1){ja=(((d[ta+(la>>>3)>>0]|0)>>>(la&7^7)&1)<<sa)+pa|0;sa=sa+ -1|0;if(!(sa>>>0<qd>>>0)){rd=ja;break}else{la=la+1|0;pa=ja}}}if(!(rd>>>0<(c[C>>2]|0)>>>0)){if(Aa){break s}else{ld=-1;md=0;nd=0;od=0;break t}}else{pa=rd<<2;la=c[B>>2]|0;ld=a[la+(pa|3)>>0]|0;md=a[la+(pa|2)>>0]|0;nd=a[la+(pa|1)>>0]|0;od=a[la+pa>>0]|0;break t}break};case 4:{if((c[A>>2]|0)==8){pa=Ka<<1;la=a[ta+pa>>0]|0;ld=a[ta+(pa|1)>>0]|0;md=la;nd=la;od=la;break t}else{la=Ka<<2;pa=a[ta+la>>0]|0;ld=a[ta+(la|2)>>0]|0;md=pa;nd=pa;od=pa;break t}break};case 6:{if((c[A>>2]|0)==8){pa=Ka<<2;ld=a[ta+(pa|3)>>0]|0;md=a[ta+(pa|2)>>0]|0;nd=a[ta+(pa|1)>>0]|0;od=a[ta+pa>>0]|0;break t}else{pa=Ka<<3;ld=a[ta+(pa|6)>>0]|0;md=a[ta+(pa|4)>>0]|0;nd=a[ta+(pa|2)>>0]|0;od=a[ta+pa>>0]|0;break t}break};default:{ld=ra;md=Da;nd=ua;od=Ja}}}while(0);u:do{switch(c[Ia>>2]|0){case 0:{pa=c[Ba>>2]|0;if((pa|0)==8){a[Ea+Ka>>0]=od;break u}else if((pa|0)!=16){if((pa|0)==1){sd=7}else{sd=(pa|0)==2?3:1}la=sd&Ka;sa=((1<<pa)+255&255&(od&255)>>>(8-pa|0))<<(aa(sd-la|0,pa)|0);if((la|0)==0){a[Ea+((aa(pa,Ka)|0)>>>3)>>0]=sa;break u}else{la=Ea+((aa(pa,Ka)|0)>>>3)|0;a[la>>0]=d[la>>0]|sa;break u}}else{sa=Ka<<1;a[Ea+(sa|1)>>0]=od;a[Ea+sa>>0]=od;break u}break};case 3:{sa=od&255;la=nd&255;pa=md&255;ia=ld&255;ma=l;ka=0;do{ma=c[ma+((la>>>ka<<2&4|ia>>>ka&1|sa>>>ka<<3&8|pa>>>ka<<1&2)<<2)>>2]|0;ka=ka+1|0;if((ma|0)==0){ad=82;break q}}while((ka|0)<8);ka=c[ma+64>>2]|0;if((ka|0)<0){ad=82;break q}pa=c[Ba>>2]|0;if((pa|0)==1){td=7}else if((pa|0)==8){a[Ea+Ka>>0]=ka;break u}else{td=(pa|0)==2?3:1}sa=td&Ka;ia=((1<<pa)+ -1&ka)<<(aa(td-sa|0,pa)|0);if((sa|0)==0){a[Ea+((aa(pa,Ka)|0)>>>3)>>0]=ia;break u}else{sa=Ea+((aa(pa,Ka)|0)>>>3)|0;a[sa>>0]=d[sa>>0]|ia;break u}break};case 6:{if((c[Ba>>2]|0)==8){ia=Ka<<2;a[Ea+ia>>0]=od;a[Ea+(ia|1)>>0]=nd;a[Ea+(ia|2)>>0]=md;a[Ea+(ia|3)>>0]=ld;break u}else{ia=Ka<<3;a[Ea+(ia|1)>>0]=od;a[Ea+ia>>0]=od;a[Ea+(ia|3)>>0]=nd;a[Ea+(ia|2)>>0]=nd;a[Ea+(ia|5)>>0]=md;a[Ea+(ia|4)>>0]=md;a[Ea+(ia|7)>>0]=ld;a[Ea+(ia|6)>>0]=ld;break u}break};case 4:{ia=c[Ba>>2]|0;if((ia|0)==8){sa=Ka<<1;a[Ea+sa>>0]=od;a[Ea+(sa|1)>>0]=ld;break u}else if((ia|0)==16){ia=Ka<<2;a[Ea+(ia|1)>>0]=od;a[Ea+ia>>0]=od;a[Ea+(ia|3)>>0]=ld;a[Ea+(ia|2)>>0]=ld;break u}else{break u}break};case 2:{if((c[Ba>>2]|0)==8){ia=Ka*3|0;a[Ea+ia>>0]=od;a[Ea+(ia+1)>>0]=nd;a[Ea+(ia+2)>>0]=md;break u}else{ia=Ka*6|0;a[Ea+(ia|1)>>0]=od;a[Ea+ia>>0]=od;a[Ea+(ia+3)>>0]=nd;a[Ea+(ia+2)>>0]=nd;a[Ea+(ia+5)>>0]=md;a[Ea+(ia+4)>>0]=md;break u}break};default:{}}}while(0);Ka=Ka+1|0;if(!(Ka>>>0<Fa>>>0)){ad=0;break q}else{ra=ld;Da=md;ua=nd;Ja=od}}ad=(qd|0)==8?46:47}}while(0);if((c[Ia>>2]|0)!=3){Wc=ad;break}Qc(l);Wc=ad}}while(0);c[V>>2]=Wc;Qd(ta);Y=c[V>>2]|0;i=k;return Y|0}c[g+292>>2]=29;x=29;break}c[g+292>>2]=28;x=28}}while(0);c[g+292>>2]=x;Y=x;i=k;return Y|0}function Sc(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,j=0;a=i;i=i+16|0;b=a;d=c[1280]|0;if((d|0)==0){i=a;return}if((c[(c[1278]|0)+4>>2]|0)<1){i=a;return}e=c[d+20>>2]|0;if((e|0)==-1){f=c[d+12>>2]|0;g=c[d+16>>2]|0;h=c[d>>2]|0;fb(1,b|0);ub(3553,c[b>>2]|0);Yb(3553,10240,9729);Yb(3553,10241,9729);Yb(3553,10242,33071);Yb(3553,10243,33071);ub(3553,c[b>>2]|0);bc(3317,1);Ob(3553,0,6408,f|0,g|0,0,6408,5121,h|0);h=c[b>>2]|0;c[(c[1280]|0)+20>>2]=h;j=h}else{j=e}ub(3553,j|0);j=c[1278]|0;Ya(34962,0,c[j+4>>2]<<5|0,c[j>>2]|0);Ab(4,0,c[(c[1278]|0)+4>>2]|0);c[(c[1278]|0)+4>>2]=0;i=a;return}function Tc(){var a=0,b=0,d=0,e=0.0,f=0.0,h=0;a=i;i=i+192|0;b=a;Sc();d=b+28|0;c[b+0>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;g[d>>2]=1.0;g[b+32>>2]=0.0;e=+(c[1284]|0);g[b+36>>2]=e;g[b+40>>2]=0.0;g[b+44>>2]=1.0;g[b+48>>2]=0.0;g[b+52>>2]=0.0;g[b+56>>2]=0.0;g[b+60>>2]=1.0;f=+(c[1282]|0);g[b+64>>2]=f;g[b+68>>2]=e;g[b+72>>2]=1.0;g[b+76>>2]=1.0;g[b+80>>2]=0.0;g[b+84>>2]=0.0;g[b+88>>2]=0.0;g[b+92>>2]=1.0;g[b+96>>2]=f;g[b+100>>2]=e;g[b+104>>2]=1.0;g[b+108>>2]=1.0;g[b+112>>2]=0.0;g[b+116>>2]=0.0;g[b+120>>2]=0.0;g[b+124>>2]=1.0;g[b+128>>2]=f;g[b+132>>2]=0.0;g[b+136>>2]=1.0;d=b+140|0;h=b+156|0;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;g[h>>2]=1.0;h=b+160|0;d=b+188|0;c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;c[h+24>>2]=0;g[d>>2]=1.0;Ya(34962,0,192,b|0);Ab(4,0,6);i=a;return}function Uc(){var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;b=i;i=i+48|0;d=b;mc();a:do{if((Wb(d|0)|0)!=0){e=d+16|0;while(1){f=c[d>>2]|0;switch(f|0){case 256:{c[9256>>2]=(c[9256>>2]|0)==0?1:2;break};case 1796:case 1793:case 1026:{g=8;break};case 1795:case 1792:case 1025:{g=7;break};case 768:{if((c[e>>2]|0)==27){c[9256>>2]=(c[9256>>2]|0)==0?1:2;switch(f|0){case 1796:case 1793:case 1026:{g=8;break};case 1795:case 1792:case 1025:{g=7;break};default:{}}}break};default:{}}if((g|0)==7?(g=0,c[2304]=1,(f|0)==1796|(f|0)==1793|(f|0)==1026):0){g=8}if((g|0)==8){g=0;c[2304]=0}if((Wb(d|0)|0)==0){break a}}}}while(0);if((c[1528]|0)!=0){g=6136;e=c[g>>2]|0;f=c[g+4>>2]|0;if((f|0)>0|(f|0)==0&e>>>0>1e5){g=6136;c[g>>2]=1e5;c[g+4>>2]=0;h=0;j=1e5}else{h=f;j=e}e=5104;f=c[e+4>>2]|0;if(((h|0)>(f|0)|((h|0)==(f|0)?j>>>0>=(c[e>>2]|0)>>>0:0))&(c[1532]|0)!=0){do{e=Xa(0)|0;do{if((a[e+122>>0]|0)!=0){if((c[2306]|0)==0){c[2306]=1;break}else{c[2306]=2;break}}else{c[2306]=0}}while(0);do{if((a[e+120>>0]|0)!=0){if((c[9228>>2]|0)==0){c[9228>>2]=1;break}else{c[9228>>2]=2;break}}else{c[9228>>2]=0}}while(0);do{if((a[e+1106>>0]|0)!=0){if((c[9232>>2]|0)==0){c[9232>>2]=1;break}else{c[9232>>2]=2;break}}else{c[9232>>2]=0}}while(0);do{if((a[e+1105>>0]|0)!=0){if((c[9236>>2]|0)==0){c[9236>>2]=1;break}else{c[9236>>2]=2;break}}else{c[9236>>2]=0}}while(0);do{if((a[e+1104>>0]|0)!=0){if((c[9240>>2]|0)==0){c[9240>>2]=1;break}else{c[9240>>2]=2;break}}else{c[9240>>2]=0}}while(0);do{if((a[e+1103>>0]|0)!=0){if((c[9244>>2]|0)==0){c[9244>>2]=1;break}else{c[9244>>2]=2;break}}else{c[9244>>2]=0}}while(0);do{if((a[e+32>>0]|0)!=0){if((c[9248>>2]|0)==0){c[9248>>2]=1;break}else{c[9248>>2]=2;break}}else{c[9248>>2]=0}}while(0);do{if(((a[e+1112>>0]|a[e+13>>0])&255|c[2304]|0)!=0){if((c[9252>>2]|0)==0){c[9252>>2]=1;break}else{c[9252>>2]=2;break}}else{c[9252>>2]=0}}while(0);do{if((a[e+112>>0]|0)!=0){if((c[9260>>2]|0)==0){c[9260>>2]=1;break}else{c[9260>>2]=2;break}}else{c[9260>>2]=0}}while(0);xc[c[1528]&7](0);e=5104;j=c[e>>2]|0;f=c[e+4>>2]|0;e=6136;h=de(c[e>>2]|0,c[e+4>>2]|0,j|0,f|0)|0;e=E;g=6136;c[g>>2]=h;c[g+4>>2]=e;c[9256>>2]=0}while(((e|0)>(f|0)|(e|0)==(f|0)&h>>>0>=j>>>0)&(c[1532]|0)!=0)}}j=c[1530]|0;if((j|0)==0){nb(d|0,0)|0;k=c[d>>2]|0;l=(k|0)<0;m=l<<31>>31;n=qe(k|0,m|0,1e6,0)|0;o=E;p=d+4|0;q=c[p>>2]|0;r=(q|0)<0;s=r<<31>>31;t=ee(n|0,o|0,q|0,s|0)|0;u=E;v=6144;w=v;x=c[w>>2]|0;y=v+4|0;z=y;A=c[z>>2]|0;B=de(t|0,u|0,x|0,A|0)|0;C=E;D=6136;F=D;G=c[F>>2]|0;H=D+4|0;I=H;J=c[I>>2]|0;K=ee(B|0,C|0,G|0,J|0)|0;L=E;M=6136;N=M;c[N>>2]=K;O=M+4|0;P=O;c[P>>2]=L;Q=6144;R=Q;c[R>>2]=t;S=Q+4|0;T=S;c[T>>2]=u;i=b;return}h=6136;f=5104;vc[j&3](0,(+((c[h>>2]|0)>>>0)+4294967296.0*+(c[h+4>>2]|0))/(+((c[f>>2]|0)>>>0)+4294967296.0*+(c[f+4>>2]|0)));Sc();nb(d|0,0)|0;k=c[d>>2]|0;l=(k|0)<0;m=l<<31>>31;n=qe(k|0,m|0,1e6,0)|0;o=E;p=d+4|0;q=c[p>>2]|0;r=(q|0)<0;s=r<<31>>31;t=ee(n|0,o|0,q|0,s|0)|0;u=E;v=6144;w=v;x=c[w>>2]|0;y=v+4|0;z=y;A=c[z>>2]|0;B=de(t|0,u|0,x|0,A|0)|0;C=E;D=6136;F=D;G=c[F>>2]|0;H=D+4|0;I=H;J=c[I>>2]|0;K=ee(B|0,C|0,G|0,J|0)|0;L=E;M=6136;N=M;c[N>>2]=K;O=M+4|0;P=O;c[P>>2]=L;Q=6144;R=Q;c[R>>2]=t;S=Q+4|0;T=S;c[T>>2]=u;i=b;return}function Vc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;d=i;i=i+304|0;e=d;do{if((b|0)!=0){f=fe(b|0)|0;if((f|0)>=4){g=b+(f+ -4)|0;f=a[g>>0]|0;a:do{if(f<<24>>24==0){h=0;j=6152}else{k=4;l=f;m=g;n=6152;while(1){k=k+ -1|0;o=a[n>>0]|0;if(!((k|0)!=0&o<<24>>24!=0&l<<24>>24==o<<24>>24)){h=l;j=n;break a}m=m+1|0;o=n+1|0;l=a[m>>0]|0;if(l<<24>>24==0){h=0;j=o;break}else{n=o}}}}while(0);if(!(h<<24>>24==(a[j>>0]|0))){p=7}}else{p=7}if((p|0)==7){g=fe(b|0)|0;if((g|0)<4){break}f=b+(g+ -4)|0;g=a[f>>0]|0;b:do{if(g<<24>>24==0){q=0;r=6160}else{n=4;l=g;m=f;k=6160;while(1){n=n+ -1|0;o=a[k>>0]|0;if(!((n|0)!=0&o<<24>>24!=0&l<<24>>24==o<<24>>24)){q=l;r=k;break b}m=m+1|0;o=k+1|0;l=a[m>>0]|0;if(l<<24>>24==0){q=0;r=o;break}else{k=o}}}}while(0);if(!(q<<24>>24==(a[r>>0]|0))){break}}f=Pd(24)|0;g=f+12|0;k=f+16|0;l=Pb(b|0,11936)|0;c:do{if((l|0)==0){Qd(0);s=78;p=88}else{Cb(l|0,0,2)|0;m=Ma(l|0)|0;Ia(l|0);n=Pd(m)|0;o=(m|0)==0;if(o|(n|0)==0){t=0}else{t=ra(n|0,1,m|0,l|0)|0}Fb(l|0)|0;m=(n|0)!=0|o;o=m?0:83;if(m){c[e+24>>2]=1;c[e+28>>2]=1;c[e+32>>2]=0;c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+36>>2]=2;c[e+40>>2]=1;c[e+44>>2]=2048;c[e+48>>2]=3;c[e+52>>2]=128;c[e+56>>2]=1;c[e+60>>2]=0;c[e+64>>2]=0;c[e+68>>2]=0;c[e+76>>2]=1;c[e+80>>2]=1;c[e+72>>2]=2;c[e+88>>2]=0;c[e+84>>2]=0;c[e+92>>2]=0;c[e+96>>2]=1;m=e+100|0;u=e+104|0;v=e+108|0;w=e+112|0;x=e+160|0;y=e+144|0;c[x+0>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;c[v+0>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;c[v+16>>2]=0;c[v+20>>2]=0;c[y>>2]=6;c[e+148>>2]=8;c[e+152>>2]=0;c[e+156>>2]=0;c[e+140>>2]=0;c[e+132>>2]=0;c[e+136>>2]=0;y=e+176|0;c[e+252>>2]=0;x=e+268|0;c[x+0>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;c[x+16>>2]=0;c[x+20>>2]=0;x=y+0|0;y=x+52|0;do{c[x>>2]=0;x=x+4|0}while((x|0)<(y|0));c[e+292>>2]=1;c[m>>2]=6;c[u>>2]=8;x=Rc(f,g,k,e,n,t)|0;y=c[v>>2]|0;if((y|0)!=0){Qd(y)}c[v>>2]=0;c[w>>2]=0;Oc(e+132|0);z=n;A=x}else{z=0;A=o}Qd(z);if((A|0)==0){c[f+4>>2]=(c[g>>2]|0)/-2|0;c[f+8>>2]=(c[k>>2]|0)/-2|0;c[f+20>>2]=-1;B=f;i=d;return B|0}else{C=A}do{switch(C|0){case 11:{D=1144;E=C;break c;break};case 17:{D=1304;E=C;break c;break};case 20:{D=1400;E=C;break c;break};case 1:{D=1064;E=C;break c;break};case 15:{D=1200;E=C;break c;break};case 31:{D=1896;E=C;break c;break};case 36:{D=2088;E=C;break c;break};case 14:{D=1200;E=C;break c;break};case 37:{D=2128;E=C;break c;break};case 38:{D=2176;E=C;break c;break};case 39:{D=2200;E=C;break c;break};case 34:{D=1992;E=C;break c;break};case 42:{D=2376;E=C;break c;break};case 43:{D=2448;E=C;break c;break};case 44:{D=2496;E=C;break c;break};case 26:{D=1640;E=C;break c;break};case 24:{D=1560;E=C;break c;break};case 32:{D=1928;E=C;break c;break};case 27:{D=1704;E=C;break c;break};case 30:{D=1840;E=C;break c;break};case 10:{D=1088;E=C;break c;break};case 47:{D=2656;E=C;break c;break};case 48:{D=2728;E=C;break c;break};case 21:{D=1456;E=C;break c;break};case 28:{D=1744;E=C;break c;break};case 16:{D=1248;E=C;break c;break};case 29:{D=1800;E=C;break c;break};case 25:{D=1592;E=C;break c;break};case 45:{D=2544;E=C;break c;break};case 18:{D=1360;E=C;break c;break};case 33:{D=1960;E=C;break c;break};case 35:{D=2024;E=C;break c;break};case 46:{D=2584;E=C;break c;break};case 50:{D=2768;E=C;break c;break};case 13:{D=1200;E=C;break c;break};case 22:{D=1304;E=C;break c;break};case 41:{D=2336;E=C;break c;break};case 49:{D=2768;E=C;break c;break};case 51:{D=2832;E=C;break c;break};case 40:{D=2288;E=C;break c;break};case 19:{D=1304;E=C;break c;break};case 23:{D=1512;E=C;break c;break};case 52:{D=2888;E=C;break c;break};case 60:{D=3320;E=C;break c;break};case 0:{D=1032;E=C;break c;break};case 66:{D=3688;E=C;break c;break};case 75:{D=4256;E=C;break c;break};case 76:{D=4320;E=C;break c;break};case 86:{D=4744;E=C;break c;break};case 69:{D=3976;E=C;break c;break};case 67:{D=3784;E=C;break c;break};case 87:{D=4800;E=C;break c;break};case 83:{D=4616;E=C;break c;break};case 71:{D=4048;E=C;break c;break};case 81:{D=4504;E=C;break c;break};case 74:{D=4232;E=C;break c;break};case 77:{D=4368;E=C;break c;break};case 53:{D=2928;E=C;break c;break};case 54:{D=2960;E=C;break c;break};case 58:{D=3208;E=C;break c;break};case 56:{D=3072;E=C;break c;break};case 59:{D=3272;E=C;break c;break};case 68:{D=3880;E=C;break c;break};case 62:{D=3488;E=C;break c;break};case 78:{s=C;p=88;break c;break};case 55:{D=3024;E=C;break c;break};case 79:{D=4432;E=C;break c;break};case 84:{D=4648;E=C;break c;break};case 85:{D=4712;E=C;break c;break};case 88:{D=4888;E=C;break c;break};case 90:{D=5032;E=C;break c;break};case 61:{D=3400;E=C;break c;break};case 72:{D=4112;E=C;break c;break};case 73:{D=4208;E=C;break c;break};case 89:{D=4968;E=C;break c;break};case 82:{D=4544;E=C;break c;break};case 80:{D=4464;E=C;break c;break};case 57:{D=3152;E=C;break c;break};case 64:{D=3624;E=C;break c;break};case 63:{D=3544;E=C;break c;break};default:{D=5072;E=C;break c}}}while(0)}}while(0);if((p|0)==88){D=4400;E=s}c[e>>2]=E;c[e+4>>2]=D;eb(6168,e|0)|0;B=0;i=d;return B|0}}while(0);c[e>>2]=b;eb(6216,e|0)|0;B=0;i=d;return B|0}function Wc(b,d,e,f){b=b|0;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.0,u=0.0,v=0.0;g=i;h=a[d>>0]|0;if(h<<24>>24==0){i=g;return}j=b+16|0;k=b+4|0;l=b+12|0;m=e;e=h;h=d;while(1){d=e<<24>>24;if((d|0)<(c[j>>2]|0)){n=c[b>>2]|0;o=c[k>>2]|0;p=(c[n+4>>2]|0)+m|0;q=c[1284]|0;r=(c[n+8>>2]|0)+f|0;s=q-(c[n+16>>2]|0)-r|0;t=1.0/+(c[n+12>>2]|0);u=+(o|0);v=u*+(d-(c[l>>2]|0)|0)*t;if((c[1280]|0)!=(n|0)){Sc();c[1280]=n}Lc(c[1278]|0,+(p|0),+(q-r|0),v,+(p+o|0),+(s|0),u*t+v)}s=h+1|0;o=a[s>>0]|0;if(o<<24>>24==0){break}m=(c[k>>2]|0)+m|0;e=o;h=s}i=g;return}function Xc(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=i;l=g+ -1|0;g=h+ -1|0;h=0;do{m=c[8440+(h<<2)>>2]|0;n=a+(h<<2)|0;c[n>>2]=((l+m-(c[8408+(h<<2)>>2]|0)|0)>>>0)/(m>>>0)|0;m=c[8376+(h<<2)>>2]|0;o=((g+m-(c[8344+(h<<2)>>2]|0)|0)>>>0)/(m>>>0)|0;m=b+(h<<2)|0;c[m>>2]=o;p=(c[n>>2]|0)==0?0:o;c[m>>2]=p;if((p|0)==0){c[n>>2]=0}h=h+1|0}while((h|0)!=7);c[f>>2]=0;c[e>>2]=0;c[d>>2]=0;h=0;g=0;while(1){l=a+(g<<2)|0;n=c[l>>2]|0;p=b+(g<<2)|0;if((n|0)!=0?(m=c[p>>2]|0,(m|0)!=0):0){q=aa(m,(((aa(n,j)|0)+7|0)>>>3)+1|0)|0}else{q=0}n=g+1|0;m=d+(n<<2)|0;c[m>>2]=q+h;c[e+(n<<2)>>2]=(aa(((aa(c[l>>2]|0,j)|0)+7|0)>>>3,c[p>>2]|0)|0)+(c[e+(g<<2)>>2]|0);c[f+(n<<2)>>2]=(((aa(aa(c[p>>2]|0,j)|0,c[l>>2]|0)|0)+7|0)>>>3)+(c[f+(g<<2)>>2]|0);if((n|0)==7){break}h=c[m>>2]|0;g=n}i=k;return}function Yc(b,c,e,f,g){b=b|0;c=c|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,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=i;j=(g+7|0)>>>3;k=((aa(g,e)|0)+7|0)>>>3;if((f|0)==0){l=0;i=h;return l|0}e=k+1|0;g=(k|0)==0;m=(j|0)==0;n=j>>>0<k>>>0;o=0;p=0;a:while(1){q=aa(p,k)|0;r=aa(p,e)|0;s=r+1|0;b:do{switch(d[c+r>>0]|0|0){case 4:{if((o|0)==0){if(!m){t=0;do{a[b+(t+q)>>0]=a[c+(t+s)>>0]|0;t=t+1|0}while((t|0)!=(j|0))}if(!n){break b}t=q-j|0;u=j;while(1){a[b+(u+q)>>0]=(d[b+(t+u)>>0]|0)+(d[c+(u+s)>>0]|0);u=u+1|0;if((u|0)==(k|0)){break b}}}if(!m){u=0;do{a[b+(u+q)>>0]=(d[o+u>>0]|0)+(d[c+(u+s)>>0]|0);u=u+1|0}while((u|0)!=(j|0))}if(n){u=j;do{t=u-j|0;v=a[b+(t+q)>>0]|0;w=a[o+u>>0]|0;x=a[o+t>>0]|0;t=w&255;y=x&255;z=t-y|0;A=(z|0)>-1?z:0-z|0;z=v&255;B=z-y|0;C=(B|0)>-1?B:0-B|0;B=t+z+(aa(y,-2)|0)|0;y=((B|0)>-1?B:0-B|0)<<16>>16;if((y|0)<(A|0)&(y|0)<(C|0)){D=x}else{D=(C|0)<(A|0)?w:v}a[b+(u+q)>>0]=(D&255)+(d[c+(u+s)>>0]|0);u=u+1|0}while((u|0)!=(k|0))}break};case 0:{if(!g){u=0;do{a[b+(u+q)>>0]=a[c+(u+s)>>0]|0;u=u+1|0}while((u|0)!=(k|0))}break};case 3:{if((o|0)==0){if(!m){u=0;do{a[b+(u+q)>>0]=a[c+(u+s)>>0]|0;u=u+1|0}while((u|0)!=(j|0))}if(!n){break b}u=q-j|0;v=j;do{a[b+(v+q)>>0]=((d[b+(u+v)>>0]|0)>>>1)+(d[c+(v+s)>>0]|0);v=v+1|0}while((v|0)!=(k|0))}else{if(!m){v=0;do{a[b+(v+q)>>0]=((d[o+v>>0]|0)>>>1)+(d[c+(v+s)>>0]|0);v=v+1|0}while((v|0)!=(j|0))}if(!n){break b}v=q-j|0;u=j;do{a[b+(u+q)>>0]=(((d[o+u>>0]|0)+(d[b+(v+u)>>0]|0)|0)>>>1)+(d[c+(u+s)>>0]|0);u=u+1|0}while((u|0)!=(k|0))}break};case 2:{if((o|0)==0){if(g){break b}else{E=0}do{a[b+(E+q)>>0]=a[c+(E+s)>>0]|0;E=E+1|0}while((E|0)!=(k|0))}else{if(g){break b}else{F=0}do{a[b+(F+q)>>0]=(d[o+F>>0]|0)+(d[c+(F+s)>>0]|0);F=F+1|0}while((F|0)!=(k|0))}break};case 1:{if(!m){u=0;do{a[b+(u+q)>>0]=a[c+(u+s)>>0]|0;u=u+1|0}while((u|0)!=(j|0))}if(n){u=q-j|0;v=j;do{a[b+(v+q)>>0]=(d[b+(u+v)>>0]|0)+(d[c+(v+s)>>0]|0);v=v+1|0}while((v|0)!=(k|0))}break};default:{l=36;G=40;break a}}}while(0);o=b+q|0;p=p+1|0;if(!(p>>>0<f>>>0)){l=0;G=40;break}}if((G|0)==40){i=h;return l|0}return 0}function Zc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;b=i;d=a+16|0;e=Pd(c[d>>2]<<2)|0;f=a+4|0;c[f>>2]=e;g=(e|0)==0;e=a+12|0;h=(c[e>>2]|0)+1|0;j=h<<2;if((j|0)!=0){k=Pd(h<<3)|0;if((k|0)==0){l=0;m=0}else{n=k;o=4}}else{n=0;o=4}do{if((o|0)==4){if((h|0)!=0){he(n|0,0,j|0)|0}k=(c[e>>2]|0)+1|0;p=k<<2;if((p|0)==0){q=0}else{r=Pd(k<<3)|0;if((r|0)==0){l=n;m=0;break}q=r}if((k|0)!=0){he(q|0,0,p|0)|0}if(g){l=n;m=q}else{p=c[d>>2]|0;if((p|0)==0){s=0}else{k=c[a+8>>2]|0;r=0;do{t=n+(c[k+(r<<2)>>2]<<2)|0;c[t>>2]=(c[t>>2]|0)+1;r=r+1|0}while(r>>>0<p>>>0);s=p}p=c[e>>2]|0;if((p|0)!=0){r=c[q>>2]|0;k=1;do{r=(c[n+(k+ -1<<2)>>2]|0)+r<<1;c[q+(k<<2)>>2]=r;k=k+1|0}while(!(k>>>0>p>>>0))}if((s|0)!=0){p=c[a+8>>2]|0;k=s;r=0;while(1){t=c[p+(r<<2)>>2]|0;if((t|0)==0){u=k}else{v=q+(t<<2)|0;t=c[v>>2]|0;c[v>>2]=t+1;c[(c[f>>2]|0)+(r<<2)>>2]=t;u=c[d>>2]|0}r=r+1|0;if(!(r>>>0<u>>>0)){break}else{k=u}}}Qd(n);Qd(q);k=c[d>>2]|0;r=Pd(k<<3)|0;c[a>>2]=r;if((r|0)==0){w=83;i=b;return w|0}p=(k&2147483647|0)==0;if(!p){t=k<<1;v=0;do{c[r+(v<<2)>>2]=32767;v=v+1|0}while(v>>>0<t>>>0)}if((k|0)==0){w=0;i=b;return w|0}t=c[a+8>>2]|0;v=k+ -2|0;x=0;y=0;z=0;a:while(1){A=t+(x<<2)|0;B=c[A>>2]|0;if((B|0)==0){C=y;D=z}else{E=B;B=0;F=y;G=z;while(1){if(G>>>0>v>>>0){w=55;o=44;break a}H=r+(((c[(c[f>>2]|0)+(x<<2)>>2]|0)>>>(E+~B|0)&1|G<<1)<<2)|0;I=c[H>>2]|0;do{if((I|0)==32767){J=B+1|0;if((J|0)==(E|0)){c[H>>2]=x;K=E;L=F;M=0;break}else{N=F+1|0;c[H>>2]=N+k;K=J;L=N;M=N;break}}else{K=B+1|0;L=F;M=I-k|0}}while(0);E=c[A>>2]|0;if(!(K>>>0<E>>>0)){C=L;D=M;break}else{B=K;F=L;G=M}}}x=x+1|0;if(!(x>>>0<k>>>0)){break}else{y=C;z=D}}if((o|0)==44){i=b;return w|0}if(p){w=0;i=b;return w|0}z=k<<1;y=0;do{x=r+(y<<2)|0;if((c[x>>2]|0)==32767){c[x>>2]=0}y=y+1|0}while(y>>>0<z>>>0);w=0;i=b;return w|0}}}while(0);Qd(l);Qd(m);w=83;i=b;return w|0}function _c(a,e,f){a=a|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;a=i;g=(f|0)/4|0;he(e|0,0,f|0)|0;f=c[2318]|0;if((f|0)==0){i=a;return}h=f;f=0;a:while(1){j=f+12|0;b:do{if((f|0)==0){k=c[h>>2]|0;if((k|0)==0){l=h+12|0;m=c[l>>2]|0;c[l>>2]=c[2320];c[2320]=h;c[2318]=m;n=m;o=0}else{p=h;q=k;r=h;s=8}}else{k=h;while(1){m=c[k>>2]|0;if((m|0)!=0){p=k;q=m;r=k;s=8;break b}m=k+12|0;l=k;k=c[m>>2]|0;c[m>>2]=c[2320];c[2320]=l;c[j>>2]=k;if((k|0)==0){s=25;break a}}}}while(0);if((s|0)==8){s=0;j=r+4|0;k=c[j>>2]|0;l=(c[q+20>>2]|0)+(k<<1)|0;m=(c[q+16>>2]|0)-k|0;if((m|0)>(g|0)){t=g}else{c[p>>2]=0;t=m}if((t|0)>0){m=r+9|0;u=r+8|0;v=0;w=e;x=l;while(1){l=((aa(d[m>>0]|0,b[x>>1]|0)|0)>>8)+(b[w>>1]|0)|0;do{if((l|0)<=16384){if((l|0)<-16384){b[w>>1]=-16384;break}else{b[w>>1]=l;break}}else{b[w>>1]=16384}}while(0);l=w+2|0;y=((aa(d[u>>0]|0,b[x>>1]|0)|0)>>8)+(b[l>>1]|0)|0;do{if((y|0)<=16384){if((y|0)<-16384){b[l>>1]=-16384;break}else{b[l>>1]=y;break}}else{b[l>>1]=16384}}while(0);v=v+1|0;if((v|0)==(t|0)){break}else{w=w+4|0;x=x+2|0}}}c[j>>2]=k+t;n=c[r+12>>2]|0;o=r}if((n|0)==0){s=25;break}else{h=n;f=o}}if((s|0)==25){i=a;return}}function $c(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;e=i;i=i+48|0;f=e;g=e+30|0;h=e+28|0;j=e+26|0;k=e+24|0;l=e+16|0;m=e+12|0;n=e+20|0;a[g+0>>0]=0;a[g+1>>0]=0;a[g+2>>0]=0;a[g+3>>0]=0;a[g+4>>0]=0;o=Pb(d|0,11936)|0;if((o|0)==0){Ja(9552)|0;p=0;i=e;return p|0}ra(g|0,4,1,o|0)|0;if((a[g>>0]|0)==82){d=g;q=9304;do{d=d+1|0;q=q+1|0;r=a[d>>0]|0;s=a[q>>0]|0}while(!((r<<24>>24==0?1:r<<24>>24!=s<<24>>24)|s<<24>>24==0));if(r<<24>>24==s<<24>>24){Cb(o|0,4,1)|0;ra(g|0,4,1,o|0)|0;if((a[g>>0]|0)==87){s=g;r=9312;do{s=s+1|0;r=r+1|0;t=a[s>>0]|0;u=a[r>>0]|0}while(!((t<<24>>24==0?1:t<<24>>24!=u<<24>>24)|u<<24>>24==0));if(t<<24>>24==u<<24>>24){ra(g|0,1,4,o|0)|0;ra(l|0,1,4,o|0)|0;u=c[l>>2]|0;if((u|0)<14){Ja(9672)|0;Fb(o|0)|0;p=0;i=e;return p|0}ra(h|0,1,2,o|0)|0;if((b[h>>1]|0)!=1){Ja(9632)|0;Fb(o|0)|0;p=0;i=e;return p|0}ra(j|0,1,2,o|0)|0;ra(m|0,1,4,o|0)|0;Cb(o|0,2,1)|0;Cb(o|0,2,1)|0;ra(k|0,1,2,o|0)|0;Cb(o|0,u+ -14|0,1)|0;u=c[m>>2]|0;m=b[j>>1]|0;j=b[k>>1]|0;if((u|0)==44100&m<<16>>16==1){if(j<<16>>16==2){a:do{if((ra(g|0,1,4,o|0)|0)>=4){do{if((a[g>>0]|0)==100){k=g;h=9400;do{k=k+1|0;h=h+1|0;v=a[k>>0]|0;w=a[h>>0]|0}while(!((v<<24>>24==0?1:v<<24>>24!=w<<24>>24)|w<<24>>24==0));if(v<<24>>24==w<<24>>24){break a}}ra(n|0,1,4,o|0)|0;Cb(o|0,c[n>>2]|0,1)|0}while((ra(g|0,1,4,o|0)|0)>=4)}}while(0);if((a[g>>0]|0)==100){w=g;g=9400;do{w=w+1|0;g=g+1|0;x=a[w>>0]|0;y=a[g>>0]|0}while(!((x<<24>>24==0?1:x<<24>>24!=y<<24>>24)|y<<24>>24==0));if(x<<24>>24==y<<24>>24){ra(n|0,1,4,o|0)|0;y=c[n>>2]|0;n=Pd(y)|0;ra(n|0,y|0,1,o|0)|0;Fb(o|0)|0;x=Pd(28)|0;c[x>>2]=44100;c[x+4>>2]=1;c[x+20>>2]=n;c[x+12>>2]=2;c[x+8>>2]=0;c[x+16>>2]=(y|0)/2|0;c[x+24>>2]=c[2316];c[2316]=x;p=x;i=e;return p|0}}Ja(9592)|0;Fb(o|0)|0;p=0;i=e;return p|0}else{z=1;A=j}}else{z=m;A=j}c[f>>2]=u;c[f+4>>2]=z<<16>>16;c[f+8>>2]=A<<16>>16;eb(9320,f|0)|0;Fb(o|0)|0;p=0;i=e;return p|0}}Ja(9712)|0;Fb(o|0)|0;p=0;i=e;return p|0}}Ja(9752)|0;Fb(o|0)|0;p=0;i=e;return p|0}function ad(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.0,o=0.0,p=0.0;e=i;f=c[a>>2]|0;if((f|0)!=0){g=c[f>>2]|0;h=c[f+4>>2]|0;j=(c[g+4>>2]|0)+b|0;k=c[1284]|0;l=(c[g+8>>2]|0)+d|0;m=k-(c[g+16>>2]|0)-l|0;n=1.0/+(c[g+12>>2]|0);o=+(h|0);p=o*+(((c[a+12>>2]|0)/(c[f+16>>2]|0)|0|0)%(c[f+12>>2]|0)|0|0)*n;if((c[1280]|0)!=(g|0)){Sc();c[1280]=g}Lc(c[1278]|0,+(j|0),+(k-l|0),p,+(j+h|0),+(m|0),o*n+p);i=e;return}m=c[a+4>>2]|0;if((m|0)==0){i=e;return}a=(c[m+4>>2]|0)+b|0;b=(c[1284]|0)-((c[m+8>>2]|0)+d)|0;p=+((c[m+12>>2]|0)+a|0);n=+(b-(c[m+16>>2]|0)|0);if((c[1280]|0)!=(m|0)){Sc();c[1280]=m}Lc(c[1278]|0,+(a|0),+(b|0),0.0,p,n,1.0);i=e;return}function bd(a){a=a|0;var b=0,d=0,e=0,f=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.0,E=0.0,F=0.0,G=0.0,H=0.0;b=i;d=c[2448]|0;if((d|0)==0){e=Pd(216)|0}else{c[2448]=c[d+212>>2];e=d}d=e+4|0;c[d>>2]=0;f=e+16|0;h=e+32|0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[h>>2]=9;f=e+36|0;c[f>>2]=1;j=e+40|0;k=e+68|0;c[j+0>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;g[k>>2]=1.0;l=e+72|0;g[l>>2]=1.0;m=e+76|0;g[m>>2]=1.0;n=e+80|0;g[n>>2]=1.0;o=e+84|0;p=e+104|0;q=e+108|0;r=e+116|0;c[r>>2]=0;s=e+132|0;c[o+0>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o+16>>2]=0;c[o+20>>2]=0;c[o+24>>2]=0;g[s>>2]=1.0;t=e+128|0;g[t>>2]=1.0;u=e+124|0;g[u>>2]=1.0;v=e+120|0;g[v>>2]=1.0;w=e+148|0;g[w>>2]=1.0;x=e+144|0;g[x>>2]=1.0;y=e+140|0;g[y>>2]=1.0;z=e+136|0;g[z>>2]=1.0;A=e+152|0;c[e+212>>2]=0;B=A+0|0;C=B+44|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));c[e>>2]=a;c[d>>2]=c[a+4>>2];d=e+24|0;g[d>>2]=+g[a+24>>2];B=e+28|0;g[B>>2]=+g[a+28>>2];c[h>>2]=c[a+32>>2];c[f>>2]=c[a+36>>2];g[j>>2]=+g[a+40>>2];j=e+52|0;g[j>>2]=+g[a+52>>2];f=e+56|0;g[f>>2]=+g[a+56>>2];g[k>>2]=+g[a+68>>2];g[l>>2]=+g[a+72>>2];D=+g[a+76>>2];g[m>>2]=D;g[n>>2]=+g[a+80>>2];g[o>>2]=+g[a+84>>2];g[e+88>>2]=+g[a+88>>2];g[e+92>>2]=+g[a+92>>2];g[e+96>>2]=+g[a+96>>2];g[e+100>>2]=+g[a+100>>2];c[q>>2]=c[a+108>>2];c[p>>2]=c[a+104>>2];c[r>>2]=c[a+116>>2];g[v>>2]=+g[a+120>>2];g[u>>2]=+g[a+124>>2];g[t>>2]=+g[a+128>>2];g[s>>2]=+g[a+132>>2];g[z>>2]=+g[a+136>>2];g[y>>2]=+g[a+140>>2];g[x>>2]=+g[a+144>>2];g[w>>2]=+g[a+148>>2];w=c[a+152>>2]|0;c[A>>2]=w;c[e+156>>2]=c[a+156>>2];c[e+160>>2]=c[a+160>>2];c[e+164>>2]=c[a+164>>2];c[e+168>>2]=c[a+168>>2];c[e+172>>2]=c[a+172>>2];c[e+176>>2]=c[a+176>>2];c[e+180>>2]=c[a+180>>2];c[e+184>>2]=c[a+184>>2];c[e+188>>2]=c[a+188>>2];c[e+192>>2]=c[a+192>>2];E=+g[k>>2];F=(D>E?D:E)*.5+10.0;D=+g[l>>2];G=(D>E?D:E)*.5+10.0;E=+g[j>>2];D=+g[d>>2];H=E+D;if(E>0.0){g[e+196>>2]=H+G;g[e+200>>2]=D-G}else{g[e+200>>2]=H-G;g[e+196>>2]=D+G}G=+g[f>>2];D=+g[B>>2];H=G+D;if(G>0.0){g[e+204>>2]=F+H;g[e+208>>2]=D-F}else{g[e+208>>2]=H-F;g[e+204>>2]=F+D}if((w|0)==0){i=b;return e|0}xc[w&7](e);i=b;return e|0}function cd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.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.0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0,Y=0,Z=0,_=0,$=0;e=i;i=i+48|0;f=e+40|0;h=e;j=e+8|0;k=e+16|0;l=e+24|0;m=e+32|0;n=(c[b+32>>2]|c[a+32>>2])&6;if((n|0)==2){o=+g[a+80>>2];p=+g[b+80>>2];if(!(o<=0.0&p>0.0)){if(p<=0.0&o>0.0){q=a;r=b}else{s=0;i=e;return s|0}}else{q=b;r=a}g[h>>2]=0.0;t=h+4|0;g[t>>2]=-1.0;o=(+g[q+76>>2]+ +g[r+76>>2])*.5;g[j>>2]=+g[r+24>>2]+o*0.0;g[j+4>>2]=+g[r+28>>2]+o*-1.0;if((Kc(q+24|0,q+52|0,h,j,+g[r+72>>2]+ +g[q+72>>2],f)|0)==0){s=0;i=e;return s|0}o=+g[f>>2];if((d|0)==0){s=1;i=e;return s|0}j=c[d>>2]|0;u=c[2450]|0;if((u|0)==0){v=Pd(32)|0}else{c[2450]=c[u+28>>2];v=u}u=v+28|0;c[u>>2]=0;c[v>>2]=2;c[v+4>>2]=q;c[v+8>>2]=r;g[v+12>>2]=o;g[v+16>>2]=+g[h>>2];g[v+20>>2]=+g[t>>2];c[v+24>>2]=1;if((j|0)!=0){t=j;j=0;while(1){if(!(+g[t+12>>2]<o)){w=t;x=j;break}r=c[t+28>>2]|0;if((r|0)==0){w=0;x=t;break}else{q=t;t=r;j=q}}if((x|0)==0){y=w;z=13}else{c[x+28>>2]=v;A=w}}else{y=0;z=13}if((z|0)==13){c[d>>2]=v;A=y}c[u>>2]=A;s=1;i=e;return s|0}else if((n|0)==4){o=+g[a+80>>2];p=+g[b+80>>2];if(!(o<=0.0&p>0.0)){if(p<=0.0&o>0.0){B=a;C=b}else{s=0;i=e;return s|0}}else{B=b;C=a}g[f>>2]=1.0;g[l>>2]=0.0;n=l+4|0;g[n>>2]=-1.0;A=B+76|0;u=C+76|0;o=(+g[A>>2]+ +g[u>>2])*.5;y=C+24|0;g[m>>2]=+g[y>>2]+o*0.0;v=C+28|0;w=m+4|0;g[w>>2]=+g[v>>2]+o*-1.0;x=C+72|0;j=B+72|0;t=B+24|0;q=B+52|0;if((Kc(t,q,l,m,+g[x>>2]+ +g[j>>2],k)|0)!=0?(o=+g[k>>2],o<+g[f>>2]):0){g[h>>2]=+g[l>>2];g[h+4>>2]=+g[n>>2];g[f>>2]=o}g[l>>2]=0.0;g[n>>2]=1.0;o=(+g[A>>2]+ +g[u>>2])*.5;g[m>>2]=+g[y>>2]+o*0.0;g[w>>2]=+g[v>>2]+o;if((Kc(t,q,l,m,+g[x>>2]+ +g[j>>2],k)|0)!=0?(o=+g[k>>2],o<+g[f>>2]):0){g[h>>2]=+g[l>>2];g[h+4>>2]=+g[n>>2];g[f>>2]=o}g[l>>2]=1.0;g[n>>2]=0.0;o=(+g[j>>2]+ +g[x>>2])*.5;g[m>>2]=+g[y>>2]+o;g[w>>2]=+g[v>>2]+o*0.0;if((Kc(t,q,l,m,+g[u>>2]+ +g[A>>2],k)|0)!=0?(o=+g[k>>2],o<+g[f>>2]):0){g[h>>2]=+g[l>>2];g[h+4>>2]=+g[n>>2];g[f>>2]=o;D=0}else{D=1}g[l>>2]=-1.0;g[n>>2]=0.0;o=(+g[j>>2]+ +g[x>>2])*.5;g[m>>2]=+g[y>>2]+o*-1.0;g[w>>2]=+g[v>>2]+o*0.0;if((Kc(t,q,l,m,+g[u>>2]+ +g[A>>2],k)|0)!=0){o=+g[k>>2];p=+g[f>>2];if(o<p){g[h>>2]=+g[l>>2];g[h+4>>2]=+g[n>>2];g[f>>2]=o;E=o;F=0}else{E=p;F=D}}else{E=+g[f>>2];F=D}if(!(E<1.0)){s=0;i=e;return s|0}if((d|0)==0){s=1;i=e;return s|0}D=c[d>>2]|0;n=c[2450]|0;if((n|0)==0){G=Pd(32)|0}else{c[2450]=c[n+28>>2];G=n}n=G+28|0;c[n>>2]=0;c[G>>2]=2;c[G+4>>2]=B;c[G+8>>2]=C;g[G+12>>2]=E;g[G+16>>2]=+g[h>>2];g[G+20>>2]=+g[h+4>>2];c[G+24>>2]=F;if((D|0)!=0){F=D;D=0;while(1){if(!(+g[F+12>>2]<E)){H=F;I=D;break}C=c[F+28>>2]|0;if((C|0)==0){H=0;I=F;break}else{B=F;F=C;D=B}}if((I|0)==0){J=H;z=40}else{c[I+28>>2]=G;K=H}}else{J=0;z=40}if((z|0)==40){c[d>>2]=G;K=J}c[n>>2]=K;s=1;i=e;return s|0}else{E=+g[a+52>>2]- +g[b+52>>2];p=+g[a+56>>2]- +g[b+56>>2];o=+g[a+68>>2]+ +g[b+68>>2];L=+g[a+24>>2];M=L-o;N=o+L;if(E>0.0){O=N+E;P=M}else{O=N;P=M+E}M=+g[b+24>>2];if(M<P|M>O){s=0;i=e;return s|0}O=+g[a+28>>2];P=O-o;N=o+O;if(p>0.0){R=N+p;S=P}else{R=N;S=P+p}P=+g[b+28>>2];if(P<S|P>R){s=0;i=e;return s|0}R=1.0/o;o=R*E;S=R*p;N=o*o+S*S;if(N==0.0){s=0;i=e;return s|0}T=R*L-R*M;U=R*O-P*R;V=(S*U+o*T)*2.0;o=V*V-N*4.0*(U*U+T*T+-1.0);if(o<0.0){s=0;i=e;return s|0}T=N*2.0;if(T==0.0){s=0;i=e;return s|0}N=+Q(+o);o=(-V-N)/T;U=(N-V)/T;if(o>=-0.0?o<U&o<=1.0:0){W=o}else{if(!(U>=-0.0)){s=0;i=e;return s|0}if(o>U&U<=1.0){W=U}else{s=0;i=e;return s|0}}g[f>>2]=W;U=R*(W*E+L-M);g[h>>2]=U;M=R*(W*p+O-P);g[h+4>>2]=M;if((d|0)==0){s=1;i=e;return s|0}h=c[d>>2]|0;f=c[2450]|0;if((f|0)==0){X=Pd(32)|0}else{c[2450]=c[f+28>>2];X=f}f=X+28|0;c[f>>2]=0;c[X>>2]=1;c[X+4>>2]=a;c[X+8>>2]=b;g[X+12>>2]=W;g[X+16>>2]=U;g[X+20>>2]=M;c[X+24>>2]=0;if((h|0)!=0){b=h;h=0;while(1){if(!(+g[b+12>>2]<W)){Y=b;Z=h;break}a=c[b+28>>2]|0;if((a|0)==0){Y=0;Z=b;break}else{K=b;b=a;h=K}}if((Z|0)==0){_=Y;z=66}else{c[Z+28>>2]=X;$=Y}}else{_=0;z=66}if((z|0)==66){c[d>>2]=X;$=_}c[f>>2]=$;s=1;i=e;return s|0}return 0}function dd(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;var e=0,f=0,h=0.0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0.0;e=i;c=+g[a+80>>2];do{if(c>0.0){f=b+80|0;h=+g[f>>2];if(!(h>0.0)){if(!(h<=0.0)){break}j=a+52|0;k=+g[j>>2];l=+g[d>>2];m=a+56|0;n=+g[m>>2];o=+g[d+4>>2];p=(+g[a+84>>2]+1.0)*(k*l+n*o);q=k-l*p;g[j>>2]=q;l=n-o*p;g[m>>2]=l;p=+g[a+76>>2];o=+g[a+68>>2];n=(p>o?p:o)*.5+10.0;p=+g[a+72>>2];k=(p>o?p:o)*.5+10.0;o=+g[a+24>>2];p=q+o;if(q>0.0){g[a+196>>2]=p+k;g[a+200>>2]=o-k}else{g[a+200>>2]=p-k;g[a+196>>2]=o+k}k=+g[a+28>>2];o=l+k;if(l>0.0){g[a+204>>2]=n+o;g[a+208>>2]=k-n;i=e;return}else{g[a+208>>2]=o-n;g[a+204>>2]=n+k;i=e;return}}k=c+h;m=a+52|0;n=+g[m>>2];o=+g[d>>2];j=a+56|0;l=+g[j>>2];r=d+4|0;p=+g[r>>2];q=+P(+(n*o+l*p));s=b+52|0;t=b+56|0;u=h*c*((c*+g[a+84>>2]+h*+g[b+84>>2])/k+1.0)*(q+ +P(+(o*+g[s>>2]+p*+g[t>>2])))/k;k=u/c;q=n-o*k;g[m>>2]=q;o=l-p*k;g[j>>2]=o;k=+g[a+76>>2];p=+g[a+68>>2];l=(k>p?k:p)*.5+10.0;k=+g[a+72>>2];n=(k>p?k:p)*.5+10.0;p=+g[a+24>>2];k=q+p;if(q>0.0){g[a+196>>2]=k+n;g[a+200>>2]=p-n}else{g[a+200>>2]=k-n;g[a+196>>2]=p+n}n=+g[a+28>>2];p=o+n;if(o>0.0){g[a+204>>2]=l+p;g[a+208>>2]=n-l}else{g[a+208>>2]=p-l;g[a+204>>2]=l+n}n=u/+g[f>>2];u=n*+g[r>>2];l=+g[d>>2]*n+ +g[s>>2];g[s>>2]=l;n=u+ +g[t>>2];g[t>>2]=n;u=+g[b+76>>2];p=+g[b+68>>2];o=(u>p?u:p)*.5+10.0;u=+g[b+72>>2];k=(u>p?u:p)*.5+10.0;p=+g[b+24>>2];u=l+p;if(l>0.0){g[b+196>>2]=u+k;g[b+200>>2]=p-k}else{g[b+200>>2]=u-k;g[b+196>>2]=p+k}k=+g[b+28>>2];p=n+k;if(n>0.0){g[b+204>>2]=o+p;g[b+208>>2]=k-o;i=e;return}else{g[b+208>>2]=p-o;g[b+204>>2]=o+k;i=e;return}}}while(0);if(c<=0.0?+g[b+80>>2]>0.0:0){t=b+52|0;c=+g[t>>2];k=+g[d>>2];s=b+56|0;o=+g[s>>2];p=+g[d+4>>2];n=(+g[b+84>>2]+1.0)*(c*k+o*p);u=c+k*n;g[t>>2]=u;k=o+p*n;g[s>>2]=k;n=+g[b+76>>2];p=+g[b+68>>2];o=(n>p?n:p)*.5+10.0;n=+g[b+72>>2];c=(n>p?n:p)*.5+10.0;p=+g[b+24>>2];n=u+p;if(u>0.0){g[b+196>>2]=n+c;g[b+200>>2]=p-c}else{g[b+200>>2]=n-c;g[b+196>>2]=p+c}c=+g[b+28>>2];p=k+c;if(k>0.0){g[b+204>>2]=o+p;g[b+208>>2]=c-o;i=e;return}else{g[b+208>>2]=p-o;g[b+204>>2]=o+c;i=e;return}}g[a+52>>2]=0.0;g[a+56>>2]=0.0;c=+g[a+76>>2];o=+g[a+68>>2];p=(c>o?c:o)*.5+10.0;c=+g[a+72>>2];k=(c>o?c:o)*.5+10.0;o=+g[a+24>>2];g[a+200>>2]=o+0.0-k;g[a+196>>2]=o+k;k=+g[a+28>>2];g[a+208>>2]=k+0.0-p;g[a+204>>2]=p+k;g[b+52>>2]=0.0;g[b+56>>2]=0.0;k=+g[b+76>>2];p=+g[b+68>>2];o=(k>p?k:p)*.5+10.0;k=+g[b+72>>2];c=(k>p?k:p)*.5+10.0;p=+g[b+24>>2];g[b+200>>2]=p+0.0-c;g[b+196>>2]=p+c;c=+g[b+28>>2];g[b+208>>2]=c+0.0-o;g[b+204>>2]=o+c;i=e;return}function ed(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0,f=0.0,h=0.0,j=0.0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0;e=i;f=+Q(+(b*b+c*c));h=1.0/f;j=h*b;b=h*c;k=a+52|0;c=+g[k>>2];l=a+56|0;h=+g[l>>2];m=c*j+b*h;if(m<d){n=d-m;m=n>f?f:n;n=c+j*m;g[k>>2]=n;j=b*m+h;g[l>>2]=j;o=n;p=j}else{o=c;p=h}h=+g[a+76>>2];c=+g[a+68>>2];j=(h>c?h:c)*.5+10.0;h=+g[a+72>>2];n=(h>c?h:c)*.5+10.0;c=+g[a+24>>2];h=o+c;if(o>0.0){g[a+196>>2]=h+n;g[a+200>>2]=c-n}else{g[a+200>>2]=h-n;g[a+196>>2]=c+n}n=+g[a+28>>2];c=p+n;if(p>0.0){g[a+204>>2]=j+c;g[a+208>>2]=n-j;i=e;return}else{g[a+208>>2]=c-j;g[a+204>>2]=j+n;i=e;return}}function fd(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0;b=i;d=c[2456]|0;e=c[2458]|0;if((d|0)<(e|0)){f=c[2452]|0;h=d;j=c[2454]|0;k=d}else{l=(e|0)==0?32:e<<1;c[2458]=l;e=l<<2;l=Pd(e)|0;m=Pd(e)|0;e=c[2452]|0;if((d|0)<=0){if((e|0)==0){n=d;o=c[2456]|0}else{p=8}}else{q=c[2454]|0;r=0;do{c[l+(r<<2)>>2]=c[e+(r<<2)>>2];c[m+(r<<2)>>2]=c[q+(r<<2)>>2];r=r+1|0}while((r|0)<(d|0));p=8}if((p|0)==8){Qd(e);Qd(c[2454]|0);e=c[2456]|0;n=e;o=e}c[2452]=l;c[2454]=m;f=l;h=n;j=m;k=o}c[f+(h<<2)>>2]=a;c[j+(h<<2)>>2]=1;h=k+1|0;c[2456]=h;j=a+32|0;o=c[j>>2]|0;if((o&16|0)!=0){s=+g[a+24>>2];t=+g[a+8>>2];m=s<t;u=+g[a+148>>2];v=(m?s:t)-u;w=u+(m?t:s);t=+g[a+28>>2];x=+g[a+12>>2];m=t<x;y=(m?t:x)-u;z=u+(m?x:t);if((k|0)>-1){k=0;do{m=c[f+(k<<2)>>2]|0;t=+g[m+24>>2];if(!(!(v<=t)|!(w>=t))?(t=+g[m+28>>2],!(!(y<=t)|!(z>=t))):0){n=m+32|0;c[n>>2]=c[n>>2]|32}k=k+1|0}while((k|0)!=(h|0));A=s}else{A=s}}else{c[j>>2]=o|32;A=+g[a+24>>2]}s=+g[a+76>>2];z=+g[a+68>>2];y=(s>z?s:z)*.5+10.0;s=+g[a+72>>2];w=(s>z?s:z)*.5+10.0;z=+g[a+52>>2];s=z+A;if(z>0.0){g[a+196>>2]=s+w;g[a+200>>2]=A-w}else{g[a+200>>2]=s-w;g[a+196>>2]=w+A}A=+g[a+56>>2];w=+g[a+28>>2];s=A+w;if(A>0.0){g[a+204>>2]=y+s;g[a+208>>2]=w-y;i=b;return}else{g[a+208>>2]=s-y;g[a+204>>2]=y+w;i=b;return}}function gd(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0;b=i;d=c[2456]|0;if((d|0)<=0){e=0;i=b;return e|0}f=c[2452]|0;h=0;while(1){j=f+(h<<2)|0;k=h+1|0;if((c[j>>2]|0)==(a|0)){break}if((k|0)<(d|0)){h=k}else{e=0;l=21;break}}if((l|0)==21){i=b;return e|0}l=(c[2460]|0)==0;if(l){c[j>>2]=0;k=c[2454]|0;c[k+(h<<2)>>2]=0;m=k}else{k=c[2454]|0;c[k+(h<<2)>>2]=-2;m=k}c[2462]=1;k=a+32|0;n=c[k>>2]|0;if((n&16|0)==0){c[k>>2]=n|32}else{o=+g[a+24>>2];p=+g[a+8>>2];n=o<p;q=+g[a+148>>2];r=(n?o:p)-q;s=q+(n?p:o);o=+g[a+28>>2];p=+g[a+12>>2];n=o<p;t=(n?o:p)-q;u=q+(n?p:o);n=0;do{k=c[f+(n<<2)>>2]|0;o=+g[k+24>>2];if(!(!(r<=o)|!(s>=o))?(o=+g[k+28>>2],!(!(t<=o)|!(u>=o))):0){v=k+32|0;c[v>>2]=c[v>>2]|32}n=n+1|0}while((n|0)!=(d|0))}if((h|0)==-1){e=0;i=b;return e|0}if(!l){c[j>>2]=a;c[m+(h<<2)>>2]=-1;e=1;i=b;return e|0}h=c[a+156>>2]|0;if((h|0)!=0){xc[h&7](a)}c[a+212>>2]=c[2448];c[2448]=a;e=1;i=b;return e|0}function hd(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0.0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,R=0,S=0,T=0,U=0,V=0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.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.0,Ia=0.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;a=i;i=i+32|0;b=a+24|0;d=a;e=a+8|0;f=a+16|0;c[2476]=c[2480];c[2478]=c[2482];nb(e|0,0)|0;h=c[e>>2]|0;j=qe(h|0,((h|0)<0)<<31>>31|0,1e6,0)|0;h=c[e+4>>2]|0;k=ee(j|0,E|0,h|0,((h|0)<0)<<31>>31|0)|0;h=E;j=c[2456]|0;if((c[2462]|0)==0){l=j}else{if((j|0)>0){m=j;j=0;n=0;while(1){o=c[2452]|0;p=c[o+(j<<2)>>2]|0;do{if((p|0)!=0){q=c[2454]|0;r=c[q+(j<<2)>>2]|0;if((r|0)==-1){s=c[p+156>>2]|0;if((s|0)==0){t=m}else{xc[s&7](p);t=c[2456]|0}c[p+212>>2]=c[2448];c[2448]=p;u=t;v=n;break}else if((r|0)==-2){u=m;v=n;break}else{if((j|0)>(n|0)){c[o+(n<<2)>>2]=p;c[q+(n<<2)>>2]=r}u=m;v=n+1|0;break}}else{u=m;v=n}}while(0);j=j+1|0;if((j|0)>=(u|0)){w=v;break}else{m=u;n=v}}}else{w=0}c[2456]=w;c[2462]=0;c[2460]=0;l=w}c[2460]=1;if((l|0)>0){w=l;l=0;while(1){v=c[(c[2452]|0)+(l<<2)>>2]|0;if((v|0)!=0?(n=c[2484]|0,u=v+32|0,c[u>>2]=c[u>>2]&-65,u=c[v+160>>2]|0,(u|0)!=0):0){yc[u&15](v,n);x=c[2456]|0}else{x=w}l=l+1|0;if((l|0)>=(x|0)){break}else{w=x}}if((c[2462]|0)!=0){if((x|0)>0){w=x;x=0;l=0;while(1){n=c[2452]|0;v=c[n+(x<<2)>>2]|0;do{if((v|0)!=0){u=c[2454]|0;m=c[u+(x<<2)>>2]|0;if((m|0)==-1){j=c[v+156>>2]|0;if((j|0)==0){y=w}else{xc[j&7](v);y=c[2456]|0}c[v+212>>2]=c[2448];c[2448]=v;z=y;A=l;break}else if((m|0)==-2){z=w;A=l;break}else{if((x|0)>(l|0)){c[n+(l<<2)>>2]=v;c[u+(l<<2)>>2]=m}z=w;A=l+1|0;break}}else{z=w;A=l}}while(0);x=x+1|0;if((x|0)>=(z|0)){B=A;break}else{w=z;l=A}}}else{B=0}c[2456]=B;c[2462]=0;c[2460]=0}}nb(e|0,0)|0;B=c[e>>2]|0;A=qe(B|0,((B|0)<0)<<31>>31|0,1e6,0)|0;B=c[e+4>>2]|0;l=ee(A|0,E|0,B|0,((B|0)<0)<<31>>31|0)|0;B=de(l|0,E|0,k|0,h|0)|0;h=9944;k=ee(B|0,E|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=9944;c[h>>2]=k;c[h+4>>2]=E;nb(e|0,0)|0;h=c[e>>2]|0;k=qe(h|0,((h|0)<0)<<31>>31|0,1e6,0)|0;h=c[e+4>>2]|0;e=ee(k|0,E|0,h|0,((h|0)<0)<<31>>31|0)|0;h=E;if((c[2462]|0)!=0){k=c[2456]|0;if((k|0)>0){B=k;k=0;l=0;while(1){A=c[2452]|0;z=c[A+(k<<2)>>2]|0;do{if((z|0)!=0){w=c[2454]|0;x=c[w+(k<<2)>>2]|0;if((x|0)==-2){C=B;D=l;break}else if((x|0)==-1){y=c[z+156>>2]|0;if((y|0)==0){F=B}else{xc[y&7](z);F=c[2456]|0}c[z+212>>2]=c[2448];c[2448]=z;C=F;D=l;break}else{if((k|0)>(l|0)){c[A+(l<<2)>>2]=z;c[w+(l<<2)>>2]=x}C=B;D=l+1|0;break}}else{C=B;D=l}}while(0);k=k+1|0;if((k|0)>=(C|0)){G=D;break}else{B=C;l=D}}}else{G=0}c[2456]=G;c[2462]=0;c[2460]=0}c[2460]=1;G=b+4|0;D=d+4|0;l=1;while(1){c[f>>2]=0;C=c[2456]|0;a:do{if((C|0)>0){B=C;k=0;while(1){F=c[2452]|0;z=c[F+(k<<2)>>2]|0;b:do{if((c[z+32>>2]&1|0)!=0?!(+g[z+80>>2]<0.0):0){H=+g[z+52>>2];if(!(H<=0.0)|!(H>=-0.0)){if((B|0)>0){I=F;J=B;K=0}else{L=B;break}}else{H=+g[z+56>>2];if((!(H<=0.0)|!(H>=-0.0))&(B|0)>0){I=F;J=B;K=0}else{L=B;break}}while(1){A=c[I+(K<<2)>>2]|0;c:do{if(((((c[A+32>>2]&1|0)!=0?(x=c[I+(k<<2)>>2]|0,+g[x+196>>2]>=+g[A+200>>2]):0)?+g[x+200>>2]<=+g[A+196>>2]:0)?+g[x+204>>2]>=+g[A+208>>2]:0)?+g[x+208>>2]<=+g[A+204>>2]:0){w=c[f>>2]|0;if((w|0)!=0){y=w;do{w=c[y+4>>2]|0;if((w|0)==(x|0)?(c[y+8>>2]|0)==(A|0):0){M=J;break c}if((w|0)==(A|0)?(c[y+8>>2]|0)==(x|0):0){M=J;break c}y=c[y+28>>2]|0}while((y|0)!=0)}cd(x,A,f)|0;M=c[2456]|0}else{M=J}}while(0);A=K+1|0;if((A|0)>=(M|0)){L=M;break b}I=c[2452]|0;J=M;K=A}}else{L=B}}while(0);k=k+1|0;if((k|0)>=(L|0)){break}else{B=L}}B=c[f>>2]|0;if((B|0)!=0){k=B;while(1){N=k+16|0;g[b>>2]=+g[N>>2];O=k+20|0;g[G>>2]=+g[O>>2];g[d>>2]=+g[N>>2]*-1.0;g[D>>2]=+g[O>>2]*-1.0;R=k+4|0;B=c[R>>2]|0;F=c[B+168>>2]|0;S=k+8|0;if((F|0)==0){T=1}else{z=wc[F&3](B,c[S>>2]|0,+g[k+12>>2],b)|0;T=(z|0)>1?2:(z|0)!=0&1}z=c[S>>2]|0;B=c[z+168>>2]|0;if((B|0)==0){U=T}else{F=wc[B&3](z,c[R>>2]|0,+g[k+12>>2],d)|0;U=(F|0)>1?2:(F|0)==0?0:T}if((U|0)==1){break}else if((U|0)==2){V=1;break a}F=c[k+28>>2]|0;if((F|0)==0){V=0;break a}else{k=F}}F=c[k>>2]|0;if((F|0)==1){z=c[R>>2]|0;H=+g[z+52>>2];W=+g[z+56>>2];B=c[S>>2]|0;X=+g[B+52>>2];Y=+g[B+56>>2];if(H*H+W*W>X*X+Y*Y){dd(z,B,0.0,d);V=1;break}else{dd(B,z,0.0,b);V=1;break}}else if((F|0)!=2){V=1;break}F=c[R>>2]|0;z=c[S>>2]|0;Y=+g[k+12>>2];X=(+g[F+96>>2]+ +g[z+96>>2])*.5;W=(+g[F+100>>2]+ +g[z+100>>2])*.5;z=F+52|0;H=+g[z>>2];Z=1.0-Y;B=F+56|0;_=+g[B>>2];$=+g[N>>2];aa=+g[O>>2];ba=-(Z*H*$+Z*_*aa);Z=+g[F+24>>2];ca=+g[F+28>>2];da=H+Z+$*ba;ea=_+ca+aa*ba;ba=H*Y+Z;H=_*Y+ca;do{if((c[k+24>>2]|0)!=0){Y=da-ba;_=ea-H;fa=+Q(+(Y*Y+_*_));if(!(fa<X)){if(fa>0.0){ga=1.0-(W+X/fa);ha=ba+Y*ga;ia=H+_*ga;break}else{ga=1.0-W;ha=ba+ga*Y;ia=H+ga*_;break}}else{ha=ba;ia=H}}else{ha=da;ia=ea}}while(0);ea=ha+$*.10000000149011612-Z;g[z>>2]=ea;da=ia+aa*.10000000149011612-ca;g[B>>2]=da;H=+g[F+76>>2];ba=+g[F+68>>2];W=(H>ba?H:ba)*.5+10.0;H=+g[F+72>>2];X=(H>ba?H:ba)*.5+10.0;ba=ea+Z;if(ea>0.0){g[F+196>>2]=ba+X;g[F+200>>2]=Z-X}else{g[F+200>>2]=ba-X;g[F+196>>2]=Z+X}X=da+ca;if(da>0.0){g[F+204>>2]=W+X;g[F+208>>2]=ca-W;V=1;break}else{g[F+208>>2]=X-W;g[F+204>>2]=W+ca;V=1;break}}else{V=0}}else{V=0}}while(0);C=c[f>>2]|0;if((C|0)!=0){k=c[2450]|0;A=C;while(1){C=A+28|0;y=c[C>>2]|0;c[C>>2]=k;c[2450]=A;if((y|0)==0){break}else{C=A;A=y;k=C}}c[f>>2]=0}if(!(V&(l|0)<50)){break}l=l+1|0}if((l|0)==10?(l=c[2456]|0,(l|0)>0):0){V=l;l=0;while(1){f=c[2452]|0;O=c[f+(l<<2)>>2]|0;d:do{if((c[O+32>>2]&1|0)!=0?(V|0)>0?!(+g[O+80>>2]<0.0):0:0){N=f;S=0;while(1){R=c[N+(S<<2)>>2]|0;if(!((l|0)==(S|0)?1:(c[R+32>>2]&1|0)==0)?(cd(c[N+(l<<2)>>2]|0,R,0)|0)!=0:0){R=c[2452]|0;d=c[R+(l<<2)>>2]|0;g[d+52>>2]=0.0;g[d+56>>2]=0.0;ia=+g[d+76>>2];ha=+g[d+68>>2];W=(ia>ha?ia:ha)*.5+10.0;ia=+g[d+72>>2];X=(ia>ha?ia:ha)*.5+10.0;ha=+g[d+24>>2];g[d+200>>2]=ha+0.0-X;g[d+196>>2]=X+ha;ha=+g[d+28>>2];g[d+208>>2]=ha+0.0-W;g[d+204>>2]=W+ha;d=c[R+(S<<2)>>2]|0;g[d+52>>2]=0.0;g[d+56>>2]=0.0;ha=+g[d+76>>2];W=+g[d+68>>2];X=(ha>W?ha:W)*.5+10.0;ha=+g[d+72>>2];ia=(ha>W?ha:W)*.5+10.0;W=+g[d+24>>2];g[d+200>>2]=W+0.0-ia;g[d+196>>2]=ia+W;W=+g[d+28>>2];g[d+208>>2]=W+0.0-X;g[d+204>>2]=X+W}d=S+1|0;R=c[2456]|0;if((d|0)>=(R|0)){ja=R;break d}N=c[2452]|0;S=d}}else{ja=V}}while(0);l=l+1|0;if((l|0)>=(ja|0)){break}else{V=ja}}}if((c[2462]|0)!=0){ja=c[2456]|0;if((ja|0)>0){V=ja;ja=0;l=0;while(1){f=c[2452]|0;O=c[f+(ja<<2)>>2]|0;do{if((O|0)!=0){S=c[2454]|0;N=c[S+(ja<<2)>>2]|0;if((N|0)==-1){F=c[O+156>>2]|0;if((F|0)==0){ka=V}else{xc[F&7](O);ka=c[2456]|0}c[O+212>>2]=c[2448];c[2448]=O;la=ka;ma=l;break}else if((N|0)==-2){la=V;ma=l;break}else{if((ja|0)>(l|0)){c[f+(l<<2)>>2]=O;c[S+(l<<2)>>2]=N}la=V;ma=l+1|0;break}}else{la=V;ma=l}}while(0);ja=ja+1|0;if((ja|0)>=(la|0)){na=ma;break}else{V=la;l=ma}}}else{na=0}c[2456]=na;c[2462]=0;c[2460]=0}nb(b|0,0)|0;na=c[b>>2]|0;ma=qe(na|0,((na|0)<0)<<31>>31|0,1e6,0)|0;na=c[b+4>>2]|0;l=ee(ma|0,E|0,na|0,((na|0)<0)<<31>>31|0)|0;na=de(l|0,E|0,e|0,h|0)|0;h=9952;e=ee(na|0,E|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=9952;c[h>>2]=e;c[h+4>>2]=E;nb(b|0,0)|0;h=c[b>>2]|0;e=qe(h|0,((h|0)<0)<<31>>31|0,1e6,0)|0;h=c[b+4>>2]|0;na=ee(e|0,E|0,h|0,((h|0)<0)<<31>>31|0)|0;h=E;e=c[2456]|0;if((c[2462]|0)==0){oa=e}else{if((e|0)>0){l=e;e=0;ma=0;while(1){la=c[2452]|0;V=c[la+(e<<2)>>2]|0;do{if((V|0)!=0){ja=c[2454]|0;ka=c[ja+(e<<2)>>2]|0;if((ka|0)==-1){O=c[V+156>>2]|0;if((O|0)==0){pa=l}else{xc[O&7](V);pa=c[2456]|0}c[V+212>>2]=c[2448];c[2448]=V;qa=pa;ra=ma;break}else if((ka|0)==-2){qa=l;ra=ma;break}else{if((e|0)>(ma|0)){c[la+(ma<<2)>>2]=V;c[ja+(ma<<2)>>2]=ka}qa=l;ra=ma+1|0;break}}else{qa=l;ra=ma}}while(0);e=e+1|0;if((e|0)>=(qa|0)){sa=ra;break}else{l=qa;ma=ra}}}else{sa=0}c[2456]=sa;c[2462]=0;c[2460]=0;oa=sa}c[2460]=1;if((oa|0)>0){sa=oa;oa=0;while(1){ra=c[2452]|0;ma=c[ra+(oa<<2)>>2]|0;e:do{if((c[ma+32>>2]&8|0)!=0?(sa|0)>0?!(+g[ma+80>>2]<0.0):0:0){qa=ra;l=sa;e=0;while(1){pa=c[qa+(e<<2)>>2]|0;if((oa|0)==(e|0)?1:(c[pa+32>>2]&8|0)==0){ta=l}else{V=c[qa+(oa<<2)>>2]|0;ca=+P(+(+g[V+24>>2]- +g[pa+24>>2]));Z=+P(+(+g[V+28>>2]- +g[pa+28>>2]));la=c[V+172>>2]|0;if((la|0)!=0?(aa=+g[V+68>>2],!(!(ca<=aa)|!(Z<=aa))):0){yc[la&15](V,pa)}la=c[pa+172>>2]|0;if((la|0)!=0?(aa=+g[pa+68>>2],!(!(ca<=aa)|!(Z<=aa))):0){yc[la&15](pa,V)}ta=c[2456]|0}V=e+1|0;if((V|0)>=(ta|0)){ua=ta;break e}qa=c[2452]|0;l=ta;e=V}}else{ua=sa}}while(0);oa=oa+1|0;if((oa|0)>=(ua|0)){break}else{sa=ua}}if((c[2462]|0)!=0){if((ua|0)>0){sa=ua;ua=0;oa=0;while(1){ta=c[2452]|0;ra=c[ta+(ua<<2)>>2]|0;do{if((ra|0)!=0){ma=c[2454]|0;e=c[ma+(ua<<2)>>2]|0;if((e|0)==-1){l=c[ra+156>>2]|0;if((l|0)==0){va=sa}else{xc[l&7](ra);va=c[2456]|0}c[ra+212>>2]=c[2448];c[2448]=ra;wa=va;xa=oa;break}else if((e|0)==-2){wa=sa;xa=oa;break}else{if((ua|0)>(oa|0)){c[ta+(oa<<2)>>2]=ra;c[ma+(oa<<2)>>2]=e}wa=sa;xa=oa+1|0;break}}else{wa=sa;xa=oa}}while(0);ua=ua+1|0;if((ua|0)>=(wa|0)){ya=xa;break}else{sa=wa;oa=xa}}}else{ya=0}c[2456]=ya;c[2462]=0;c[2460]=0}}nb(b|0,0)|0;ya=c[b>>2]|0;xa=qe(ya|0,((ya|0)<0)<<31>>31|0,1e6,0)|0;ya=c[b+4>>2]|0;oa=ee(xa|0,E|0,ya|0,((ya|0)<0)<<31>>31|0)|0;ya=de(oa|0,E|0,na|0,h|0)|0;h=9960;na=ee(ya|0,E|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=9960;c[h>>2]=na;c[h+4>>2]=E;h=c[2456]|0;while(1){if((h|0)<=1){break}na=c[2452]|0;ya=c[na>>2]|0;oa=1;xa=0;while(1){wa=na+(oa+ -1<<2)|0;sa=na+(oa<<2)|0;ua=c[sa>>2]|0;va=c[ya+36>>2]|0;ra=c[ua+36>>2]|0;if((va|0)<=(ra|0)){if((va|0)>=(ra|0)?+g[ya+28>>2]+ +g[ya+40>>2]>+g[ua+28>>2]+ +g[ua+40>>2]:0){za=158}else{Aa=ua;Ba=xa}}else{za=158}if((za|0)==158){za=0;c[sa>>2]=ya;c[wa>>2]=ua;Aa=ya;Ba=oa}oa=oa+1|0;if((oa|0)==(h|0)){break}else{ya=Aa;xa=Ba}}if((Ba|0)>0){h=Ba}else{break}}nb(b|0,0)|0;Ba=c[b>>2]|0;h=qe(Ba|0,((Ba|0)<0)<<31>>31|0,1e6,0)|0;Ba=c[b+4>>2]|0;Aa=ee(h|0,E|0,Ba|0,((Ba|0)<0)<<31>>31|0)|0;Ba=E;h=c[2456]|0;if((c[2462]|0)==0){Ca=h}else{if((h|0)>0){za=h;h=0;xa=0;while(1){ya=c[2452]|0;oa=c[ya+(h<<2)>>2]|0;do{if((oa|0)!=0){na=c[2454]|0;ua=c[na+(h<<2)>>2]|0;if((ua|0)==-1){wa=c[oa+156>>2]|0;if((wa|0)==0){Da=za}else{xc[wa&7](oa);Da=c[2456]|0}c[oa+212>>2]=c[2448];c[2448]=oa;Ea=Da;Fa=xa;break}else if((ua|0)==-2){Ea=za;Fa=xa;break}else{if((h|0)>(xa|0)){c[ya+(xa<<2)>>2]=oa;c[na+(xa<<2)>>2]=ua}Ea=za;Fa=xa+1|0;break}}else{Ea=za;Fa=xa}}while(0);h=h+1|0;if((h|0)>=(Ea|0)){Ga=Fa;break}else{za=Ea;xa=Fa}}}else{Ga=0}c[2456]=Ga;c[2462]=0;c[2460]=0;Ca=Ga}c[2460]=1;if((Ca|0)>0){Ca=c[2452]|0;Ga=0;do{Fa=c[Ca+(Ga<<2)>>2]|0;xa=c[2484]|0;Ea=Fa+24|0;aa=+g[Ea>>2];g[Fa+16>>2]=aa;za=Fa+28|0;Z=+g[za>>2];g[Fa+20>>2]=Z;h=Fa+52|0;ca=+g[h>>2];Da=Fa+56|0;$=+g[Da>>2];W=ca*ca+$*$;do{if(W>0.0){X=ca+aa;g[Ea>>2]=X;ia=Z+$;g[za>>2]=ia;ha=+Q(+W);da=+g[Fa+88>>2];if(ha<da){g[h>>2]=0.0;Ha=0.0;Ia=0.0}else{ba=1.0-(+g[Fa+92>>2]+da/ha);ha=ca*ba;g[h>>2]=ha;Ha=$*ba;Ia=ha}g[Da>>2]=Ha;g[Fa+8>>2]=X;g[Fa+12>>2]=ia;oa=Fa+32|0;c[oa>>2]=c[oa>>2]|64;ha=+g[Fa+76>>2];ba=+g[Fa+68>>2];da=(ha>ba?ha:ba)*.5+10.0;ha=+g[Fa+72>>2];ea=(ha>ba?ha:ba)*.5+10.0;ba=Ia+X;if(Ia>0.0){g[Fa+196>>2]=ba+ea;g[Fa+200>>2]=X-ea}else{g[Fa+200>>2]=ba-ea;g[Fa+196>>2]=X+ea}ea=Ha+ia;if(Ha>0.0){g[Fa+204>>2]=da+ea;g[Fa+208>>2]=ia-da;break}else{g[Fa+208>>2]=ea-da;g[Fa+204>>2]=da+ia;break}}}while(0);Da=c[Fa+164>>2]|0;if((Da|0)!=0){yc[Da&15](Fa,xa)}if((c[Fa+104>>2]|0)!=0?(c[Fa+112>>2]|0)==0:0){Da=Fa+116|0;c[Da>>2]=(c[Da>>2]|0)+xa}Ca=c[2452]|0;Da=c[Ca+(Ga<<2)>>2]|0;h=Da+32|0;za=c[h>>2]|0;Ea=c[2456]|0;do{if((za&64|0)!=0){if((za&16|0)==0){c[h>>2]=za|32;Ja=Ea;break}$=+g[Da+24>>2];ca=+g[Da+8>>2];oa=$<ca;W=+g[Da+148>>2];Z=(oa?$:ca)-W;aa=W+(oa?ca:$);$=+g[Da+28>>2];ca=+g[Da+12>>2];oa=$<ca;ia=(oa?$:ca)-W;da=W+(oa?ca:$);if((Ea|0)>0){oa=0;do{ya=c[Ca+(oa<<2)>>2]|0;$=+g[ya+24>>2];do{if(!(!(Z<=$)|!(aa>=$))){ca=+g[ya+28>>2];if(!(ia<=ca)|!(da>=ca)){break}ua=ya+32|0;c[ua>>2]=c[ua>>2]|32}}while(0);oa=oa+1|0}while((oa|0)!=(Ea|0));Ja=Ea}else{Ja=Ea}}else{Ja=Ea}}while(0);Ga=Ga+1|0}while((Ga|0)<(Ja|0))}if((c[2466]|0)!=0){Id()}if((c[2462]|0)==0){nb(b|0,0)|0;Ka=c[b>>2]|0;La=(Ka|0)<0;Ma=La<<31>>31;Na=qe(Ka|0,Ma|0,1e6,0)|0;Oa=E;Pa=b+4|0;Qa=c[Pa>>2]|0;Ra=(Qa|0)<0;Sa=Ra<<31>>31;Ta=ee(Na|0,Oa|0,Qa|0,Sa|0)|0;Ua=E;Va=de(Ta|0,Ua|0,Aa|0,Ba|0)|0;Wa=E;Xa=9968;Ya=Xa;Za=c[Ya>>2]|0;_a=Xa+4|0;$a=_a;ab=c[$a>>2]|0;bb=ee(Va|0,Wa|0,Za|0,ab|0)|0;cb=E;db=9968;eb=db;c[eb>>2]=bb;fb=db+4|0;gb=fb;c[gb>>2]=cb;hb=c[2494]|0;ib=hb+1|0;c[2494]=ib;i=a;return}Ja=c[2456]|0;if((Ja|0)>0){Ga=Ja;Ja=0;Ca=0;while(1){Ea=c[2452]|0;Da=c[Ea+(Ja<<2)>>2]|0;do{if((Da|0)!=0){za=c[2454]|0;h=c[za+(Ja<<2)>>2]|0;if((h|0)==-2){jb=Ga;kb=Ca;break}else if((h|0)==-1){xa=c[Da+156>>2]|0;if((xa|0)==0){lb=Ga}else{xc[xa&7](Da);lb=c[2456]|0}c[Da+212>>2]=c[2448];c[2448]=Da;jb=lb;kb=Ca;break}else{if((Ja|0)>(Ca|0)){c[Ea+(Ca<<2)>>2]=Da;c[za+(Ca<<2)>>2]=h}jb=Ga;kb=Ca+1|0;break}}else{jb=Ga;kb=Ca}}while(0);Ja=Ja+1|0;if((Ja|0)>=(jb|0)){mb=kb;break}else{Ga=jb;Ca=kb}}}else{mb=0}c[2456]=mb;c[2462]=0;c[2460]=0;nb(b|0,0)|0;Ka=c[b>>2]|0;La=(Ka|0)<0;Ma=La<<31>>31;Na=qe(Ka|0,Ma|0,1e6,0)|0;Oa=E;Pa=b+4|0;Qa=c[Pa>>2]|0;Ra=(Qa|0)<0;Sa=Ra<<31>>31;Ta=ee(Na|0,Oa|0,Qa|0,Sa|0)|0;Ua=E;Va=de(Ta|0,Ua|0,Aa|0,Ba|0)|0;Wa=E;Xa=9968;Ya=Xa;Za=c[Ya>>2]|0;_a=Xa+4|0;$a=_a;ab=c[$a>>2]|0;bb=ee(Va|0,Wa|0,Za|0,ab|0)|0;cb=E;db=9968;eb=db;c[eb>>2]=bb;fb=db+4|0;gb=fb;c[gb>>2]=cb;hb=c[2494]|0;ib=hb+1|0;c[2494]=ib;i=a;return}function id(a,b){a=a|0;b=+b;var d=0,e=0,f=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.0,y=0.0,z=0,A=0,B=0.0,C=0.0,D=0.0,F=0.0,G=0.0,H=0.0,I=0,J=0.0,K=0.0,L=0.0,M=0,N=0,O=0.0,P=0.0,Q=0.0,R=0,S=0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0,ca=0,da=0,ea=0;a=i;i=i+16|0;d=a;e=c[2476]|0;f=~~(+(e|0)+ +((c[2480]|0)-e|0)*b);e=c[2478]|0;h=~~(+(e|0)+ +((c[2482]|0)-e|0)*b);nb(d|0,0)|0;e=c[d>>2]|0;j=qe(e|0,((e|0)<0)<<31>>31|0,1e6,0)|0;e=c[d+4>>2]|0;k=ee(j|0,E|0,e|0,((e|0)<0)<<31>>31|0)|0;e=E;Tc();j=c[2456]|0;if((c[2462]|0)==0){l=j}else{if((j|0)>0){m=j;j=0;n=0;while(1){o=c[2452]|0;p=c[o+(j<<2)>>2]|0;do{if((p|0)!=0){q=c[2454]|0;r=c[q+(j<<2)>>2]|0;if((r|0)==-2){s=m;t=n;break}else if((r|0)==-1){u=c[p+156>>2]|0;if((u|0)==0){v=m}else{xc[u&7](p);v=c[2456]|0}c[p+212>>2]=c[2448];c[2448]=p;s=v;t=n;break}else{if((j|0)>(n|0)){c[o+(n<<2)>>2]=p;c[q+(n<<2)>>2]=r}s=m;t=n+1|0;break}}else{s=m;t=n}}while(0);j=j+1|0;if((j|0)>=(s|0)){w=t;break}else{m=s;n=t}}}else{w=0}c[2456]=w;c[2462]=0;c[2460]=0;l=w}c[2460]=1;if((l|0)>0){x=+(0-f|0);y=+(0-h|0);w=l;l=0;t=0;n=0;while(1){s=c[2452]|0;m=c[s+(l<<2)>>2]|0;j=c[2472]|0;v=c[2474]|0;p=c[m+104>>2]|0;if((p|0)==0){o=c[m+108>>2]|0;if((o|0)==0){z=t;A=n}else{z=c[o+16>>2]|0;A=c[o+12>>2]|0}}else{z=c[(c[p>>2]|0)+16>>2]|0;A=c[p+4>>2]|0}p=h-z|0;o=v+h+z|0;B=+g[m+24>>2];do{if(((!(B<+(f-A|0))?!(B>+(j+f+A|0)):0)?(C=+g[m+28>>2],!(C<+(p|0))):0)?!(C>+(o|0)):0){v=m+32|0;r=c[v>>2]|0;if((r&32|0)==0){D=+g[m+120>>2];F=+g[m+124>>2];G=+g[m+128>>2];H=+g[m+132>>2];I=r}else{if((r&16|0)==0){J=+g[m+136>>2];K=+g[m+140>>2];L=+g[m+144>>2];q=m+120|0;g[q>>2]=J;u=m+124|0;g[u>>2]=K;M=m+128|0;g[M>>2]=L;N=m+132|0;g[N>>2]=1.0;if((w|0)>0){O=J;P=K;Q=L;R=0;while(1){S=c[s+(R<<2)>>2]|0;if(((S|0)!=(m|0)?(c[S+32>>2]&16|0)!=0:0)?(T=B- +g[S+24>>2],U=C- +g[S+28>>2],V=T*T+U*U,U=+g[S+148>>2],T=U*U,V<T):0){U=1.0-V/T;T=U*+g[S+140>>2];V=U*+g[S+144>>2];W=U*+g[S+136>>2]+O;U=W>1.0?1.0:W;g[q>>2]=U;W=T+P;T=W>1.0?1.0:W;g[u>>2]=T;W=V+Q;V=W>1.0?1.0:W;g[M>>2]=V;g[N>>2]=1.0;X=V;Y=T;Z=U}else{X=Q;Y=P;Z=O}R=R+1|0;if((R|0)==(w|0)){_=X;$=Y;aa=Z;break}else{O=Z;P=Y;Q=X}}}else{_=L;$=K;aa=J}}else{g[m+120>>2]=1.0;g[m+124>>2]=1.0;g[m+128>>2]=1.0;g[m+132>>2]=1.0;_=1.0;$=1.0;aa=1.0}R=r&-33;c[v>>2]=R;D=aa;F=$;G=_;H=1.0;I=R}g[1566]=D;g[1568]=F;g[1570]=G;g[1572]=H;if((I&64|0)==0){ad(m+104|0,~~(x+B),~~(y+C));break}else{Q=+g[m+16>>2];P=+g[m+20>>2];ad(m+104|0,~~(x+(Q-(Q-B)*b)),~~(y+(P-(P-C)*b)));break}}}while(0);l=l+1|0;w=c[2456]|0;if((l|0)>=(w|0)){break}else{t=z;n=A}}}g[1566]=1.0;g[1568]=1.0;g[1570]=1.0;g[1572]=1.0;if((c[2468]|0)!=0){Dd(b)}if((c[2462]|0)!=0){A=c[2456]|0;if((A|0)>0){n=A;A=0;z=0;while(1){t=c[2452]|0;w=c[t+(A<<2)>>2]|0;do{if((w|0)!=0){l=c[2454]|0;I=c[l+(A<<2)>>2]|0;if((I|0)==-1){f=c[w+156>>2]|0;if((f|0)==0){ba=n}else{xc[f&7](w);ba=c[2456]|0}c[w+212>>2]=c[2448];c[2448]=w;ca=ba;da=z;break}else if((I|0)==-2){ca=n;da=z;break}else{if((A|0)>(z|0)){c[t+(z<<2)>>2]=w;c[l+(z<<2)>>2]=I}ca=n;da=z+1|0;break}}else{ca=n;da=z}}while(0);A=A+1|0;if((A|0)>=(ca|0)){ea=da;break}else{n=ca;z=da}}}else{ea=0}c[2456]=ea;c[2462]=0;c[2460]=0}nb(d|0,0)|0;ea=c[d>>2]|0;da=qe(ea|0,((ea|0)<0)<<31>>31|0,1e6,0)|0;ea=c[d+4>>2]|0;z=ee(da|0,E|0,ea|0,((ea|0)<0)<<31>>31|0)|0;ea=de(z|0,E|0,k|0,e|0)|0;e=9984;k=ee(ea|0,E|0,c[e>>2]|0,c[e+4>>2]|0)|0;e=9984;c[e>>2]=k;c[e+4>>2]=E;c[2498]=(c[2498]|0)+1;if((c[9260>>2]|0)!=1){i=a;return}Ja(10120)|0;e=c[2494]|0;if((e|0)>0){k=9944;ea=oe(c[k>>2]|0,c[k+4>>2]|0,e|0,((e|0)<0)<<31>>31|0)|0;e=d;c[e>>2]=ea;c[e+4>>2]=E;eb(1e4,d|0)|0;e=9952;ea=c[2494]|0;k=oe(c[e>>2]|0,c[e+4>>2]|0,ea|0,((ea|0)<0)<<31>>31|0)|0;ea=d;c[ea>>2]=k;c[ea+4>>2]=E;eb(10024,d|0)|0;ea=9960;k=c[2494]|0;e=oe(c[ea>>2]|0,c[ea+4>>2]|0,k|0,((k|0)<0)<<31>>31|0)|0;k=d;c[k>>2]=e;c[k+4>>2]=E;eb(10048,d|0)|0;k=9968;e=c[2494]|0;ea=oe(c[k>>2]|0,c[k+4>>2]|0,e|0,((e|0)<0)<<31>>31|0)|0;e=d;c[e>>2]=ea;c[e+4>>2]=E;eb(10072,d|0)|0}e=c[2498]|0;if((e|0)>0){ea=9984;k=oe(c[ea>>2]|0,c[ea+4>>2]|0,e|0,((e|0)<0)<<31>>31|0)|0;e=d;c[e>>2]=k;c[e+4>>2]=E;eb(10096,d|0)|0}d=9944;c[d>>2]=0;c[d+4>>2]=0;d=9952;c[d>>2]=0;c[d+4>>2]=0;d=9960;c[d>>2]=0;c[d+4>>2]=0;d=9968;c[d>>2]=0;c[d+4>>2]=0;d=9984;c[d>>2]=0;c[d+4>>2]=0;c[2494]=0;c[2498]=0;i=a;return}function jd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0;f=i;g=c[2472]|0;h=g>>>1;j=c[2474]|0;k=j>>>1;l=+(~~(+((g>>>0>j>>>0?h:k)|0)*1.2000000476837158)|0);j=~~(l/10.0);g=d-(h+(c[2480]|0))|0;m=+(g-j|0);n=+(e-(c[2482]|0)-k|0);o=n*n;n=1.0- +Q(+(o+m*m))/l;m=+(g+j|0);p=1.0- +Q(+(o+m*m))/l;l=p<0.0?0.0:p;p=n<0.0?0.0:n;if((!(l<=0.0)|!(p<=0.0))^1|(b|0)==0){i=f;return}j=c[2320]|0;if((j|0)==0){g=Pd(16)|0;c[g+12>>2]=0;q=g}else{g=j+12|0;c[2320]=c[g>>2];c[g>>2]=0;q=j}c[q>>2]=b;c[q+4>>2]=0;a[q+8>>0]=~~(p*255.0);a[q+9>>0]=~~(l*255.0);c[q+12>>2]=c[2318];c[2318]=q;i=f;return}function kd(a,b,d,e,f){a=a|0;b=+b;d=+d;e=+e;f=+f;var h=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0;h=i;j=a+32|0;k=c[j>>2]|0;if((k&16|0)==0){g[a+136>>2]=b;g[a+140>>2]=d;g[a+144>>2]=e;g[a+148>>2]=f;c[j>>2]=k|32;i=h;return}l=c[2452]|0;m=c[2456]|0;n=+g[a+24>>2];o=+g[a+8>>2];p=n<o;q=a+148|0;r=+g[q>>2];s=(p?n:o)-r;t=r+(p?o:n);n=+g[a+28>>2];o=+g[a+12>>2];p=n<o;u=(p?n:o)-r;v=r+(p?o:n);if((m|0)>0){p=0;do{w=c[l+(p<<2)>>2]|0;n=+g[w+24>>2];if(!(!(s<=n)|!(t>=n))?(n=+g[w+28>>2],!(!(u<=n)|!(v>=n))):0){x=w+32|0;c[x>>2]=c[x>>2]|32}p=p+1|0}while((p|0)!=(m|0));y=c[j>>2]|0}else{y=k}g[a+136>>2]=b;g[a+140>>2]=d;g[a+144>>2]=e;g[q>>2]=f;if((y&16|0)==0){c[j>>2]=y|32;i=h;return}e=+g[a+24>>2];d=+g[a+8>>2];y=e<d;b=(y?e:d)-f;v=(y?d:e)+f;e=+g[a+28>>2];d=+g[a+12>>2];a=e<d;u=(a?e:d)-f;t=(a?d:e)+f;if((m|0)>0){z=0}else{i=h;return}do{a=c[l+(z<<2)>>2]|0;f=+g[a+24>>2];if(!(!(b<=f)|!(v>=f))?(f=+g[a+28>>2],!(!(u<=f)|!(t>=f))):0){y=a+32|0;c[y>>2]=c[y>>2]|32}z=z+1|0}while((z|0)!=(m|0));i=h;return}function ld(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0;b=i;i=i+16|0;d=b+4|0;e=b;do{if((c[2470]|0)!=0&(c[9248>>2]|0)==1){f=a+32|0;h=c[f>>2]|0;if((h&1|0)==0){c[f>>2]=h|9;kd(a,.4000000059604645,.4000000059604645,.4000000059604645,160.0);break}else{c[f>>2]=h&-10;kd(a,.699999988079071,.699999988079071,.699999988079071,640.0);break}}}while(0);if((Db(d|0,e|0)|0)<<24>>24==0){j=(c[9232>>2]|0)==0?0.0:-1.0;if((c[9236>>2]|0)==0){k=j}else{k=j+1.0}j=(c[9240>>2]|0)==0?0.0:-1.0;if((c[9244>>2]|0)==0){l=j}else{l=j+1.0}j=l*l+k*k;if(j>0.0){m=1.0/+Q(+j);n=l*m;o=m*k;p=13}}else{k=+((c[d>>2]|0)-((c[1282]|0)>>>1)|0);m=+(c[e>>2]|0)- +(c[1284]|0)*.5;l=1.0/+Q(+(k*k+m*m));n=k*l;o=l*m;p=13}if((p|0)==13){m=n*0.0+o*-1.0;l=n+o*0.0;do{if(!(+P(+m)>=+P(+l))){p=a+104|0;if(l>0.0){e=c[2540]|0;c[p>>2]=0;c[a+108>>2]=e;c[a+116>>2]=0;break}else{e=c[2542]|0;c[p>>2]=0;c[a+108>>2]=e;c[a+116>>2]=0;break}}else{e=a+104|0;if(m>0.0){p=c[2536]|0;c[e>>2]=0;c[a+108>>2]=p;c[a+116>>2]=0;break}else{p=c[2538]|0;c[e>>2]=0;c[a+108>>2]=p;c[a+116>>2]=0;break}}}while(0);ed(a,n*7.0,o*7.0,15.0)}o=+(c[2480]|0);c[2480]=~~(o+(+g[a+24>>2]-(o+ +(c[2472]|0)*.5))*.30000001192092896);o=+(c[2482]|0);c[2482]=~~(o+(+g[a+28>>2]-(o+ +(c[2474]|0)*.5))*.30000001192092896);i=b;return}function md(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0,h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0.0;f=i;if((c[b+4>>2]|0)!=1){h=1;i=f;return h|0}j=+g[a+52>>2];k=+g[a+56>>2];l=+Q(+(j*j+k*k));if(!(l>0.0)){h=1;i=f;return h|0}m=1.0/l;l=+g[e>>2];n=e+4|0;o=+g[n>>2];if(!(j*m*l+k*m*o<-.8999999761581421)){h=1;i=f;return h|0}do{if(+P(+l)>+P(+o)){if(!(l>=0.0)){g[e>>2]=-1.0;g[n>>2]=0.0;break}else{g[e>>2]=1.0;g[n>>2]=0.0;break}}else{if(!(o>=0.0)){g[n>>2]=-1.0;g[e>>2]=0.0;break}else{g[n>>2]=1.0;g[e>>2]=0.0;break}}}while(0);dd(b,a,d,e);h=2;i=f;return h|0}function nd(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0,j=0;b=i;i=i+16|0;d=b;e=+g[a+52>>2];f=+g[a+56>>2];if(!(e*e+f*f>0.0)){i=b;return}nb(d|0,0)|0;h=c[d>>2]|0;j=qe(h|0,((h|0)<0)<<31>>31|0,1e6,0)|0;h=c[d+4>>2]|0;d=ee(j|0,E|0,h|0,((h|0)<0)<<31>>31|0)|0;h=oe(d|0,E|0,1e3,0)|0;d=a+176|0;if((h+ -250|0)<=(c[d>>2]|0)){i=b;return}jd(c[2544]|0,~~+g[a+24>>2],~~+g[a+28>>2]);c[d>>2]=h;i=b;return}function od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0;d=i;e=b+4|0;f=c[e>>2]|0;if((f|0)==1){c[a+172>>2]=0;h=bd(c[2546]|0)|0;g[h+24>>2]=+g[a+24>>2];g[h+28>>2]=+g[a+28>>2];fd(h);jd(c[2548]|0,~~+g[b+24>>2],~~+g[b+28>>2]);gd(a)|0;gd(b)|0;j=c[e>>2]|0}else{j=f}if((j|0)!=0){i=d;return}j=bd(c[2550]|0)|0;f=b+24|0;g[j+24>>2]=+g[f>>2];e=b+28|0;g[j+28>>2]=+g[e>>2];fd(j);jd(c[2552]|0,~~+g[f>>2],~~+g[e>>2]);gd(b)|0;c[2910]=1;i=d;return}function pd(a){a=a|0;var b=0,d=0,e=0;b=i;d=(ce()|0)%1e3|0;if((c[a+104>>2]|0)==0){i=b;return}if((c[a+112>>2]|0)!=0){i=b;return}e=a+116|0;c[e>>2]=(c[e>>2]|0)+d;i=b;return}function qd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0;a=i;d=b+4|0;e=c[d>>2]|0;if((e|0)==1){f=bd(c[2554]|0)|0;h=b+24|0;g[f+24>>2]=+g[h>>2];j=b+28|0;g[f+28>>2]=+g[j>>2];fd(f);jd(c[2552]|0,~~+g[h>>2],~~+g[j>>2]);gd(b)|0;k=c[d>>2]|0}else{k=e}if((k|0)!=0){i=a;return}k=bd(c[2554]|0)|0;e=b+24|0;g[k+24>>2]=+g[e>>2];d=b+28|0;g[k+28>>2]=+g[d>>2];fd(k);k=bd(c[2550]|0)|0;g[k+24>>2]=+g[e>>2];g[k+28>>2]=+g[d>>2];fd(k);jd(c[2552]|0,~~+g[e>>2],~~+g[d>>2]);gd(b)|0;c[2910]=1;i=a;return}function rd(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0,h=0,j=0;e=i;if((c[a+164>>2]|0)!=0){i=e;return 0}f=c[b+4>>2]|0;if((f|0)==8|(f|0)==7){i=e;return 0}else if((f|0)==0){f=bd(c[2550]|0)|0;h=b+24|0;g[f+24>>2]=+g[h>>2];j=b+28|0;g[f+28>>2]=+g[j>>2];fd(f);gd(b)|0;jd(c[2552]|0,~~+g[h>>2],~~+g[j>>2]);c[2910]=1}gd(a)|0;jd(c[2556]|0,~~+g[a+24>>2],~~+g[a+28>>2]);i=e;return 0}function sd(a){a=a|0;var b=0;b=i;c[a+176>>2]=(ce()|0)%15|0;i=b;return}function td(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0;b=i;d=a+176|0;e=c[d>>2]|0;if((e|0)==0){f=bd(c[a+192>>2]|0)|0;h=a+24|0;g[f+24>>2]=+g[h>>2];j=a+28|0;g[f+28>>2]=+g[j>>2];fd(f);jd(c[2558]|0,~~+g[h>>2],~~+g[j>>2]);k=15;c[d>>2]=k;i=b;return}else{k=e+ -1|0;c[d>>2]=k;i=b;return}}function ud(a){a=a|0;if((c[2560]|0)==(a|0)){c[2560]=0}return}function vd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;if((c[b+4>>2]|0)!=0){i=d;return}b=c[a+176>>2]|0;if((c[2908]|0)!=(b|0)){c[2908]=b;jd(c[2562]|0,~~+g[a+24>>2],~~+g[a+28>>2]);Jd()}b=c[2560]|0;if((b|0)==(a|0)){i=d;return}e=c[2564]|0;c[a+112>>2]=0;f=a+104|0;if((c[f>>2]|0)!=(e|0)){c[f>>2]=e;c[a+108>>2]=0;c[a+116>>2]=0}kd(a,0.0,0.0,.5,128.0);if((b|0)!=0){e=c[2566]|0;c[b+104>>2]=0;c[b+108>>2]=e;c[b+116>>2]=0;kd(b,0.0,0.0,.5,64.0)}c[2560]=a;i=d;return}function wd(a,b){a=a|0;b=b|0;var d=0;d=i;if((c[b+4>>2]|0)!=0){i=d;return}c[2906]=(c[2906]|0)+1;c[2908]=1;c[2910]=2;gd(b)|0;jd(c[2568]|0,~~+g[a+24>>2],~~+g[a+28>>2]);Jd();i=d;return}function xd(a,b){a=a|0;b=b|0;var d=0;d=i;if((c[b+4>>2]|0)!=0){i=d;return}c[2910]=3;gd(b)|0;jd(c[2568]|0,~~+g[a+24>>2],~~+g[a+28>>2]);Jd();i=d;return}function yd(a,b){a=a|0;b=b|0;var d=0,e=0;b=i;d=a+176|0;e=c[d>>2]|0;if((e|0)==0){gd(a)|0;i=b;return}else{c[d>>2]=e+ -1;i=b;return}}function zd(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;if((c[a+4>>2]|0)!=12){e=0;i=d;return e|0}e=(c[a+176>>2]|0)==(c[b>>2]|0)&1;i=d;return e|0}function Ad(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0;d=i;e=a+176|0;a=c[2456]|0;if((a|0)<=0){i=d;return}f=c[2452]|0;h=0;while(1){j=c[f+(h<<2)>>2]|0;if((j|0)!=0?(zd(j,e)|0)!=0:0){break}h=h+1|0;if((h|0)>=(a|0)){k=7;break}}if((k|0)==7){i=d;return}g[b+24>>2]=+g[j+24>>2];g[b+28>>2]=+g[j+28>>2];i=d;return}
|
|
|
|
|
|
|
|
function te(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0;g=a;h=b;i=h;j=d;k=e;l=k;if((i|0)==0){m=(f|0)!=0;if((l|0)==0){if(m){c[f>>2]=(g>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return(E=n,o)|0}else{if(!m){n=0;o=0;return(E=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return(E=n,o)|0}}m=(l|0)==0;do{if((j|0)!=0){if(!m){p=(le(l|0)|0)-(le(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<<r;v=i>>>(q>>>0)&s;w=0;x=g<<r;break}if((f|0)==0){n=0;o=0;return(E=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(E=n,o)|0}r=j-1|0;if((r&j|0)!=0){s=(le(j|0)|0)+33-(le(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;z=s-32|0;A=z>>31;t=s;u=p-1>>31&i>>>(z>>>0)|(i<<p|g>>>(s>>>0))&A;v=A&i>>>(s>>>0);w=g<<q&y;x=(i<<q|g>>>(z>>>0))&y|g<<p&s-33>>31;break}if((f|0)!=0){c[f>>2]=r&g;c[f+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return(E=n,o)|0}else{r=me(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return(E=n,o)|0}}else{if(m){if((f|0)!=0){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return(E=n,o)|0}if((g|0)==0){if((f|0)!=0){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return(E=n,o)|0}r=l-1|0;if((r&l|0)==0){if((f|0)!=0){c[f>>2]=a|0;c[f+4>>2]=r&i|b&0}n=0;o=i>>>((me(l|0)|0)>>>0);return(E=n,o)|0}r=(le(l|0)|0)-(le(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<<p|g>>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<<p;break}if((f|0)==0){n=0;o=0;return(E=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return(E=n,o)|0}}while(0);if((t|0)==0){B=x;C=w;D=v;F=u;G=0;H=0}else{b=d|0|0;d=k|e&0;e=ee(b,d,-1,-1)|0;k=E;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;de(e,k,g,a)|0;i=E;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=de(g,a,l&b,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d)|0;w=E;u=u-1|0}while((u|0)!=0);B=h;C=x;D=w;F=v;G=0;H=t}t=C;C=0;if((f|0)!=0){c[f>>2]=F;c[f+4>>2]=D}n=(t|0)>>>31|(B|C)<<1|(C<<1|t>>>31)&0|G;o=(t<<1|0>>>31)&-2|H;return(E=n,o)|0}function ue(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return tc[a&0](b|0,c|0,d|0,e|0,f|0)|0}function ve(a,b){a=a|0;b=+b;uc[a&1](+b)}function we(a,b,c){a=a|0;b=b|0;c=+c;vc[a&3](b|0,+c)}function xe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;return wc[a&3](b|0,c|0,+d,e|0)|0}function ye(a,b){a=a|0;b=b|0;xc[a&7](b|0)}function ze(a,b,c){a=a|0;b=b|0;c=c|0;yc[a&15](b|0,c|0)}function Ae(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return zc[a&3](b|0,c|0,d|0)|0}function Be(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ac[a&1](b|0,c|0,d|0)}function Ce(a){a=a|0;Bc[a&3]()}function De(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(0);return 0}function Ee(a){a=+a;ba(1)}function Fe(a,b){a=a|0;b=+b;ba(2)}function Ge(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;ba(3);return 0}function He(a){a=a|0;ba(4)}function Ie(a,b){a=a|0;b=b|0;ba(5)}function Je(a,b,c){a=a|0;b=b|0;c=c|0;ba(6);return 0}function Ke(a,b,c){a=a|0;b=b|0;c=c|0;ba(7)}function Le(){ba(8)}
|
|
|
|
|
|
|
|
|
|
// EMSCRIPTEN_END_FUNCS
|
|
var tc=[De];var uc=[Ee,Dd];var vc=[Fe,id,Gd,Ed];var wc=[Ge,md,rd,Ge];var xc=[He,hd,Fd,Cd,pd,sd,ud,He];var yc=[Ie,ld,nd,od,qd,yd,td,vd,wd,xd,Ad,Ie,Ie,Ie,Ie,Ie];var zc=[Je,$d,Od,Je];var Ac=[Ke,_c];var Bc=[Le,Hd,Id,Uc];return{_i64Subtract:de,_free:Qd,_main:Kd,_rand_r:be,_realloc:Rd,_i64Add:ee,_strlen:fe,_memset:he,_malloc:Pd,_memcpy:ie,_bitshift64Lshr:ge,_rand:ce,_bitshift64Shl:je,runPostSets:ae,stackAlloc:Cc,stackSave:Dc,stackRestore:Ec,setThrew:Fc,setTempRet0:Ic,getTempRet0:Jc,dynCall_iiiiii:ue,dynCall_vd:ve,dynCall_vid:we,dynCall_iiidi:xe,dynCall_vi:ye,dynCall_vii:ze,dynCall_iiii:Ae,dynCall_viii:Be,dynCall_v:Ce}
|
|
// EMSCRIPTEN_END_ASM
|
|
|
|
})({"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array},{"abort":abort,"assert":assert,"asmPrintInt":asmPrintInt,"asmPrintFloat":asmPrintFloat,"min":Math_min,"invoke_iiiiii":invoke_iiiiii,"invoke_vd":invoke_vd,"invoke_vid":invoke_vid,"invoke_iiidi":invoke_iiidi,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_iiii":invoke_iiii,"invoke_viii":invoke_viii,"invoke_v":invoke_v,"_glUseProgram":_glUseProgram,"_fabs":_fabs,"_fread":_fread,"_glUniformMatrix4fv":_glUniformMatrix4fv,"_SDL_RWFromFile":_SDL_RWFromFile,"_glDeleteProgram":_glDeleteProgram,"_glBindBuffer":_glBindBuffer,"_glCreateProgram":_glCreateProgram,"_fsync":_fsync,"_SDL_GetError":_SDL_GetError,"_sbrk":_sbrk,"_glBlendFunc":_glBlendFunc,"_glGetAttribLocation":_glGetAttribLocation,"_Mix_PlayChannel":_Mix_PlayChannel,"_glCreateShader":_glCreateShader,"_sysconf":_sysconf,"_close":_close,"_SDL_InitSubSystem":_SDL_InitSubSystem,"_Mix_PlayMusic":_Mix_PlayMusic,"_rewind":_rewind,"_puts":_puts,"_Mix_FreeChunk":_Mix_FreeChunk,"_write":_write,"_ftell":_ftell,"_glGenBuffers":_glGenBuffers,"_glShaderSource":_glShaderSource,"_Mix_HaltMusic":_Mix_HaltMusic,"_mknod":_mknod,"_mkdir":_mkdir,"_llvm_trap":_llvm_trap,"_fmodl":_fmodl,"_glVertexAttribPointer":_glVertexAttribPointer,"_send":_send,"_SDL_GetTicks":_SDL_GetTicks,"_SDL_GetKeyboardState":_SDL_GetKeyboardState,"_glBufferSubData":_glBufferSubData,"_SDL_LockSurface":_SDL_LockSurface,"_strerror_r":_strerror_r,"__reallyNegative":__reallyNegative,"___setErrNo":___setErrNo,"_SDL_OpenAudio":_SDL_OpenAudio,"_srand":_srand,"_glEnable":_glEnable,"_printf":_printf,"_glGenTextures":_glGenTextures,"_glGetString":_glGetString,"_glAttachShader":_glAttachShader,"_read":_read,"_SDL_SetVideoMode":_SDL_SetVideoMode,"_fwrite":_fwrite,"_time":_time,"_fprintf":_fprintf,"_gettimeofday":_gettimeofday,"_putenv":_putenv,"_IMG_Load":_IMG_Load,"_fmod":_fmod,"_lseek":_lseek,"___buildEnvironment":___buildEnvironment,"_pwrite":_pwrite,"_glBindTexture":_glBindTexture,"_open":_open,"_fabsf":_fabsf,"_emscripten_asm_const":_emscripten_asm_const,"_SDL_Init":_SDL_Init,"_glUniform1i":_glUniform1i,"_glDrawArrays":_glDrawArrays,"_TTF_RenderText_Solid":_TTF_RenderText_Solid,"_fseek":_fseek,"_SDL_GetMouseState":_SDL_GetMouseState,"_getenv":_getenv,"_fclose":_fclose,"_sqrtf":_sqrtf,"_stime":_stime,"_recv":_recv,"_fgetc":_fgetc,"_glCompileShader":_glCompileShader,"_glEnableVertexAttribArray":_glEnableVertexAttribArray,"_abort":_abort,"_glBufferData":_glBufferData,"_glTexImage2D":_glTexImage2D,"_fopen":_fopen,"_glDeleteShader":_glDeleteShader,"_glGetProgramiv":_glGetProgramiv,"_SDL_CloseAudio":_SDL_CloseAudio,"_fflush":_fflush,"_SDL_FreeRW":_SDL_FreeRW,"_SDL_PauseAudio":_SDL_PauseAudio,"_SDL_PollEvent":_SDL_PollEvent,"_glGetUniformLocation":_glGetUniformLocation,"_glTexParameteri":_glTexParameteri,"_fileno":_fileno,"_Mix_LoadWAV_RW":_Mix_LoadWAV_RW,"_SDL_WM_SetCaption":_SDL_WM_SetCaption,"_IMG_Load_RW":_IMG_Load_RW,"_glPixelStorei":_glPixelStorei,"_glGetShaderiv":_glGetShaderiv,"_pread":_pread,"_mkport":_mkport,"_glLinkProgram":_glLinkProgram,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_emscripten_set_main_loop":_emscripten_set_main_loop,"___errno_location":___errno_location,"_copysign":_copysign,"_fputc":_fputc,"_copysignl":_copysignl,"_SDL_GL_SwapBuffers":_SDL_GL_SwapBuffers,"_strerror":_strerror,"__formatString":__formatString,"_fputs":_fputs,"_SDL_UpperBlit":_SDL_UpperBlit,"_SDL_RWFromConstMem":_SDL_RWFromConstMem,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"cttz_i8":cttz_i8,"ctlz_i8":ctlz_i8,"___rand_seed":___rand_seed,"NaN":NaN,"Infinity":Infinity},buffer);var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _free=Module["_free"]=asm["_free"];var _main=Module["_main"]=asm["_main"];var _rand_r=Module["_rand_r"]=asm["_rand_r"];var _realloc=Module["_realloc"]=asm["_realloc"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _strlen=Module["_strlen"]=asm["_strlen"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _rand=Module["_rand"]=asm["_rand"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_vd=Module["dynCall_vd"]=asm["dynCall_vd"];var dynCall_vid=Module["dynCall_vid"]=asm["dynCall_vid"];var dynCall_iiidi=Module["dynCall_iiidi"]=asm["dynCall_iiidi"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];var i64Math=(function(){var goog={math:{}};goog.math.Long=(function(low,high){this.low_=low|0;this.high_=high|0});goog.math.Long.IntCache_={};goog.math.Long.fromInt=(function(value){if(-128<=value&&value<128){var cachedObj=goog.math.Long.IntCache_[value];if(cachedObj){return cachedObj}}var obj=new goog.math.Long(value|0,value<0?-1:0);if(-128<=value&&value<128){goog.math.Long.IntCache_[value]=obj}return obj});goog.math.Long.fromNumber=(function(value){if(isNaN(value)||!isFinite(value)){return goog.math.Long.ZERO}else if(value<=-goog.math.Long.TWO_PWR_63_DBL_){return goog.math.Long.MIN_VALUE}else if(value+1>=goog.math.Long.TWO_PWR_63_DBL_){return goog.math.Long.MAX_VALUE}else if(value<0){return goog.math.Long.fromNumber(-value).negate()}else{return new goog.math.Long(value%goog.math.Long.TWO_PWR_32_DBL_|0,value/goog.math.Long.TWO_PWR_32_DBL_|0)}});goog.math.Long.fromBits=(function(lowBits,highBits){return new goog.math.Long(lowBits,highBits)});goog.math.Long.fromString=(function(str,opt_radix){if(str.length==0){throw Error("number format error: empty string")}var radix=opt_radix||10;if(radix<2||36<radix){throw Error("radix out of range: "+radix)}if(str.charAt(0)=="-"){return goog.math.Long.fromString(str.substring(1),radix).negate()}else if(str.indexOf("-")>=0){throw Error('number format error: interior "-" character: '+str)}var radixToPower=goog.math.Long.fromNumber(Math.pow(radix,8));var result=goog.math.Long.ZERO;for(var i=0;i<str.length;i+=8){var size=Math.min(8,str.length-i);var value=parseInt(str.substring(i,i+size),radix);if(size<8){var power=goog.math.Long.fromNumber(Math.pow(radix,size));result=result.multiply(power).add(goog.math.Long.fromNumber(value))}else{result=result.multiply(radixToPower);result=result.add(goog.math.Long.fromNumber(value))}}return result});goog.math.Long.TWO_PWR_16_DBL_=1<<16;goog.math.Long.TWO_PWR_24_DBL_=1<<24;goog.math.Long.TWO_PWR_32_DBL_=goog.math.Long.TWO_PWR_16_DBL_*goog.math.Long.TWO_PWR_16_DBL_;goog.math.Long.TWO_PWR_31_DBL_=goog.math.Long.TWO_PWR_32_DBL_/2;goog.math.Long.TWO_PWR_48_DBL_=goog.math.Long.TWO_PWR_32_DBL_*goog.math.Long.TWO_PWR_16_DBL_;goog.math.Long.TWO_PWR_64_DBL_=goog.math.Long.TWO_PWR_32_DBL_*goog.math.Long.TWO_PWR_32_DBL_;goog.math.Long.TWO_PWR_63_DBL_=goog.math.Long.TWO_PWR_64_DBL_/2;goog.math.Long.ZERO=goog.math.Long.fromInt(0);goog.math.Long.ONE=goog.math.Long.fromInt(1);goog.math.Long.NEG_ONE=goog.math.Long.fromInt(-1);goog.math.Long.MAX_VALUE=goog.math.Long.fromBits(4294967295|0,2147483647|0);goog.math.Long.MIN_VALUE=goog.math.Long.fromBits(0,2147483648|0);goog.math.Long.TWO_PWR_24_=goog.math.Long.fromInt(1<<24);goog.math.Long.prototype.toInt=(function(){return this.low_});goog.math.Long.prototype.toNumber=(function(){return this.high_*goog.math.Long.TWO_PWR_32_DBL_+this.getLowBitsUnsigned()});goog.math.Long.prototype.toString=(function(opt_radix){var radix=opt_radix||10;if(radix<2||36<radix){throw Error("radix out of range: "+radix)}if(this.isZero()){return"0"}if(this.isNegative()){if(this.equals(goog.math.Long.MIN_VALUE)){var radixLong=goog.math.Long.fromNumber(radix);var div=this.div(radixLong);var rem=div.multiply(radixLong).subtract(this);return div.toString(radix)+rem.toInt().toString(radix)}else{return"-"+this.negate().toString(radix)}}var radixToPower=goog.math.Long.fromNumber(Math.pow(radix,6));var rem=this;var result="";while(true){var remDiv=rem.div(radixToPower);var intval=rem.subtract(remDiv.multiply(radixToPower)).toInt();var digits=intval.toString(radix);rem=remDiv;if(rem.isZero()){return digits+result}else{while(digits.length<6){digits="0"+digits}result=""+digits+result}}});goog.math.Long.prototype.getHighBits=(function(){return this.high_});goog.math.Long.prototype.getLowBits=(function(){return this.low_});goog.math.Long.prototype.getLowBitsUnsigned=(function(){return this.low_>=0?this.low_:goog.math.Long.TWO_PWR_32_DBL_+this.low_});goog.math.Long.prototype.getNumBitsAbs=(function(){if(this.isNegative()){if(this.equals(goog.math.Long.MIN_VALUE)){return 64}else{return this.negate().getNumBitsAbs()}}else{var val=this.high_!=0?this.high_:this.low_;for(var bit=31;bit>0;bit--){if((val&1<<bit)!=0){break}}return this.high_!=0?bit+33:bit+1}});goog.math.Long.prototype.isZero=(function(){return this.high_==0&&this.low_==0});goog.math.Long.prototype.isNegative=(function(){return this.high_<0});goog.math.Long.prototype.isOdd=(function(){return(this.low_&1)==1});goog.math.Long.prototype.equals=(function(other){return this.high_==other.high_&&this.low_==other.low_});goog.math.Long.prototype.notEquals=(function(other){return this.high_!=other.high_||this.low_!=other.low_});goog.math.Long.prototype.lessThan=(function(other){return this.compare(other)<0});goog.math.Long.prototype.lessThanOrEqual=(function(other){return this.compare(other)<=0});goog.math.Long.prototype.greaterThan=(function(other){return this.compare(other)>0});goog.math.Long.prototype.greaterThanOrEqual=(function(other){return this.compare(other)>=0});goog.math.Long.prototype.compare=(function(other){if(this.equals(other)){return 0}var thisNeg=this.isNegative();var otherNeg=other.isNegative();if(thisNeg&&!otherNeg){return-1}if(!thisNeg&&otherNeg){return 1}if(this.subtract(other).isNegative()){return-1}else{return 1}});goog.math.Long.prototype.negate=(function(){if(this.equals(goog.math.Long.MIN_VALUE)){return goog.math.Long.MIN_VALUE}else{return this.not().add(goog.math.Long.ONE)}});goog.math.Long.prototype.add=(function(other){var a48=this.high_>>>16;var a32=this.high_&65535;var a16=this.low_>>>16;var a00=this.low_&65535;var b48=other.high_>>>16;var b32=other.high_&65535;var b16=other.low_>>>16;var b00=other.low_&65535;var c48=0,c32=0,c16=0,c00=0;c00+=a00+b00;c16+=c00>>>16;c00&=65535;c16+=a16+b16;c32+=c16>>>16;c16&=65535;c32+=a32+b32;c48+=c32>>>16;c32&=65535;c48+=a48+b48;c48&=65535;return goog.math.Long.fromBits(c16<<16|c00,c48<<16|c32)});goog.math.Long.prototype.subtract=(function(other){return this.add(other.negate())});goog.math.Long.prototype.multiply=(function(other){if(this.isZero()){return goog.math.Long.ZERO}else if(other.isZero()){return goog.math.Long.ZERO}if(this.equals(goog.math.Long.MIN_VALUE)){return other.isOdd()?goog.math.Long.MIN_VALUE:goog.math.Long.ZERO}else if(other.equals(goog.math.Long.MIN_VALUE)){return this.isOdd()?goog.math.Long.MIN_VALUE:goog.math.Long.ZERO}if(this.isNegative()){if(other.isNegative()){return this.negate().multiply(other.negate())}else{return this.negate().multiply(other).negate()}}else if(other.isNegative()){return this.multiply(other.negate()).negate()}if(this.lessThan(goog.math.Long.TWO_PWR_24_)&&other.lessThan(goog.math.Long.TWO_PWR_24_)){return goog.math.Long.fromNumber(this.toNumber()*other.toNumber())}var a48=this.high_>>>16;var a32=this.high_&65535;var a16=this.low_>>>16;var a00=this.low_&65535;var b48=other.high_>>>16;var b32=other.high_&65535;var b16=other.low_>>>16;var b00=other.low_&65535;var c48=0,c32=0,c16=0,c00=0;c00+=a00*b00;c16+=c00>>>16;c00&=65535;c16+=a16*b00;c32+=c16>>>16;c16&=65535;c16+=a00*b16;c32+=c16>>>16;c16&=65535;c32+=a32*b00;c48+=c32>>>16;c32&=65535;c32+=a16*b16;c48+=c32>>>16;c32&=65535;c32+=a00*b32;c48+=c32>>>16;c32&=65535;c48+=a48*b00+a32*b16+a16*b32+a00*b48;c48&=65535;return goog.math.Long.fromBits(c16<<16|c00,c48<<16|c32)});goog.math.Long.prototype.div=(function(other){if(other.isZero()){throw Error("division by zero")}else if(this.isZero()){return goog.math.Long.ZERO}if(this.equals(goog.math.Long.MIN_VALUE)){if(other.equals(goog.math.Long.ONE)||other.equals(goog.math.Long.NEG_ONE)){return goog.math.Long.MIN_VALUE}else if(other.equals(goog.math.Long.MIN_VALUE)){return goog.math.Long.ONE}else{var halfThis=this.shiftRight(1);var approx=halfThis.div(other).shiftLeft(1);if(approx.equals(goog.math.Long.ZERO)){return other.isNegative()?goog.math.Long.ONE:goog.math.Long.NEG_ONE}else{var rem=this.subtract(other.multiply(approx));var result=approx.add(rem.div(other));return result}}}else if(other.equals(goog.math.Long.MIN_VALUE)){return goog.math.Long.ZERO}if(this.isNegative()){if(other.isNegative()){return this.negate().div(other.negate())}else{return this.negate().div(other).negate()}}else if(other.isNegative()){return this.div(other.negate()).negate()}var res=goog.math.Long.ZERO;var rem=this;while(rem.greaterThanOrEqual(other)){var approx=Math.max(1,Math.floor(rem.toNumber()/other.toNumber()));var log2=Math.ceil(Math.log(approx)/Math.LN2);var delta=log2<=48?1:Math.pow(2,log2-48);var approxRes=goog.math.Long.fromNumber(approx);var approxRem=approxRes.multiply(other);while(approxRem.isNegative()||approxRem.greaterThan(rem)){approx-=delta;approxRes=goog.math.Long.fromNumber(approx);approxRem=approxRes.multiply(other)}if(approxRes.isZero()){approxRes=goog.math.Long.ONE}res=res.add(approxRes);rem=rem.subtract(approxRem)}return res});goog.math.Long.prototype.modulo=(function(other){return this.subtract(this.div(other).multiply(other))});goog.math.Long.prototype.not=(function(){return goog.math.Long.fromBits(~this.low_,~this.high_)});goog.math.Long.prototype.and=(function(other){return goog.math.Long.fromBits(this.low_&other.low_,this.high_&other.high_)});goog.math.Long.prototype.or=(function(other){return goog.math.Long.fromBits(this.low_|other.low_,this.high_|other.high_)});goog.math.Long.prototype.xor=(function(other){return goog.math.Long.fromBits(this.low_^other.low_,this.high_^other.high_)});goog.math.Long.prototype.shiftLeft=(function(numBits){numBits&=63;if(numBits==0){return this}else{var low=this.low_;if(numBits<32){var high=this.high_;return goog.math.Long.fromBits(low<<numBits,high<<numBits|low>>>32-numBits)}else{return goog.math.Long.fromBits(0,low<<numBits-32)}}});goog.math.Long.prototype.shiftRight=(function(numBits){numBits&=63;if(numBits==0){return this}else{var high=this.high_;if(numBits<32){var low=this.low_;return goog.math.Long.fromBits(low>>>numBits|high<<32-numBits,high>>numBits)}else{return goog.math.Long.fromBits(high>>numBits-32,high>=0?0:-1)}}});goog.math.Long.prototype.shiftRightUnsigned=(function(numBits){numBits&=63;if(numBits==0){return this}else{var high=this.high_;if(numBits<32){var low=this.low_;return goog.math.Long.fromBits(low>>>numBits|high<<32-numBits,high>>>numBits)}else if(numBits==32){return goog.math.Long.fromBits(high,0)}else{return goog.math.Long.fromBits(high>>>numBits-32,0)}}});var navigator={appName:"Modern Browser"};var dbits;var canary=0xdeadbeefcafe;var j_lm=(canary&16777215)==15715070;function BigInteger(a,b,c){if(a!=null)if("number"==typeof a)this.fromNumber(a,b,c);else if(b==null&&"string"!=typeof a)this.fromString(a,256);else this.fromString(a,b)}function nbi(){return new BigInteger(null)}function am1(i,x,w,j,c,n){while(--n>=0){var v=x*this[i++]+w[j]+c;c=Math.floor(v/67108864);w[j++]=v&67108863}return c}function am2(i,x,w,j,c,n){var xl=x&32767,xh=x>>15;while(--n>=0){var l=this[i]&32767;var h=this[i++]>>15;var m=xh*l+h*xl;l=xl*l+((m&32767)<<15)+w[j]+(c&1073741823);c=(l>>>30)+(m>>>15)+xh*h+(c>>>30);w[j++]=l&1073741823}return c}function am3(i,x,w,j,c,n){var xl=x&16383,xh=x>>14;while(--n>=0){var l=this[i]&16383;var h=this[i++]>>14;var m=xh*l+h*xl;l=xl*l+((m&16383)<<14)+w[j]+c;c=(l>>28)+(m>>14)+xh*h;w[j++]=l&268435455}return c}if(j_lm&&navigator.appName=="Microsoft Internet Explorer"){BigInteger.prototype.am=am2;dbits=30}else if(j_lm&&navigator.appName!="Netscape"){BigInteger.prototype.am=am1;dbits=26}else{BigInteger.prototype.am=am3;dbits=28}BigInteger.prototype.DB=dbits;BigInteger.prototype.DM=(1<<dbits)-1;BigInteger.prototype.DV=1<<dbits;var BI_FP=52;BigInteger.prototype.FV=Math.pow(2,BI_FP);BigInteger.prototype.F1=BI_FP-dbits;BigInteger.prototype.F2=2*dbits-BI_FP;var BI_RM="0123456789abcdefghijklmnopqrstuvwxyz";var BI_RC=new Array;var rr,vv;rr="0".charCodeAt(0);for(vv=0;vv<=9;++vv)BI_RC[rr++]=vv;rr="a".charCodeAt(0);for(vv=10;vv<36;++vv)BI_RC[rr++]=vv;rr="A".charCodeAt(0);for(vv=10;vv<36;++vv)BI_RC[rr++]=vv;function int2char(n){return BI_RM.charAt(n)}function intAt(s,i){var c=BI_RC[s.charCodeAt(i)];return c==null?-1:c}function bnpCopyTo(r){for(var i=this.t-1;i>=0;--i)r[i]=this[i];r.t=this.t;r.s=this.s}function bnpFromInt(x){this.t=1;this.s=x<0?-1:0;if(x>0)this[0]=x;else if(x<-1)this[0]=x+DV;else this.t=0}function nbv(i){var r=nbi();r.fromInt(i);return r}function bnpFromString(s,b){var k;if(b==16)k=4;else if(b==8)k=3;else if(b==256)k=8;else if(b==2)k=1;else if(b==32)k=5;else if(b==4)k=2;else{this.fromRadix(s,b);return}this.t=0;this.s=0;var i=s.length,mi=false,sh=0;while(--i>=0){var x=k==8?s[i]&255:intAt(s,i);if(x<0){if(s.charAt(i)=="-")mi=true;continue}mi=false;if(sh==0)this[this.t++]=x;else if(sh+k>this.DB){this[this.t-1]|=(x&(1<<this.DB-sh)-1)<<sh;this[this.t++]=x>>this.DB-sh}else this[this.t-1]|=x<<sh;sh+=k;if(sh>=this.DB)sh-=this.DB}if(k==8&&(s[0]&128)!=0){this.s=-1;if(sh>0)this[this.t-1]|=(1<<this.DB-sh)-1<<sh}this.clamp();if(mi)BigInteger.ZERO.subTo(this,this)}function bnpClamp(){var c=this.s&this.DM;while(this.t>0&&this[this.t-1]==c)--this.t}function bnToString(b){if(this.s<0)return"-"+this.negate().toString(b);var k;if(b==16)k=4;else if(b==8)k=3;else if(b==2)k=1;else if(b==32)k=5;else if(b==4)k=2;else return this.toRadix(b);var km=(1<<k)-1,d,m=false,r="",i=this.t;var p=this.DB-i*this.DB%k;if(i-->0){if(p<this.DB&&(d=this[i]>>p)>0){m=true;r=int2char(d)}while(i>=0){if(p<k){d=(this[i]&(1<<p)-1)<<k-p;d|=this[--i]>>(p+=this.DB-k)}else{d=this[i]>>(p-=k)&km;if(p<=0){p+=this.DB;--i}}if(d>0)m=true;if(m)r+=int2char(d)}}return m?r:"0"}function bnNegate(){var r=nbi();BigInteger.ZERO.subTo(this,r);return r}function bnAbs(){return this.s<0?this.negate():this}function bnCompareTo(a){var r=this.s-a.s;if(r!=0)return r;var i=this.t;r=i-a.t;if(r!=0)return this.s<0?-r:r;while(--i>=0)if((r=this[i]-a[i])!=0)return r;return 0}function nbits(x){var r=1,t;if((t=x>>>16)!=0){x=t;r+=16}if((t=x>>8)!=0){x=t;r+=8}if((t=x>>4)!=0){x=t;r+=4}if((t=x>>2)!=0){x=t;r+=2}if((t=x>>1)!=0){x=t;r+=1}return r}function bnBitLength(){if(this.t<=0)return 0;return this.DB*(this.t-1)+nbits(this[this.t-1]^this.s&this.DM)}function bnpDLShiftTo(n,r){var i;for(i=this.t-1;i>=0;--i)r[i+n]=this[i];for(i=n-1;i>=0;--i)r[i]=0;r.t=this.t+n;r.s=this.s}function bnpDRShiftTo(n,r){for(var i=n;i<this.t;++i)r[i-n]=this[i];r.t=Math.max(this.t-n,0);r.s=this.s}function bnpLShiftTo(n,r){var bs=n%this.DB;var cbs=this.DB-bs;var bm=(1<<cbs)-1;var ds=Math.floor(n/this.DB),c=this.s<<bs&this.DM,i;for(i=this.t-1;i>=0;--i){r[i+ds+1]=this[i]>>cbs|c;c=(this[i]&bm)<<bs}for(i=ds-1;i>=0;--i)r[i]=0;r[ds]=c;r.t=this.t+ds+1;r.s=this.s;r.clamp()}function bnpRShiftTo(n,r){r.s=this.s;var ds=Math.floor(n/this.DB);if(ds>=this.t){r.t=0;return}var bs=n%this.DB;var cbs=this.DB-bs;var bm=(1<<bs)-1;r[0]=this[ds]>>bs;for(var i=ds+1;i<this.t;++i){r[i-ds-1]|=(this[i]&bm)<<cbs;r[i-ds]=this[i]>>bs}if(bs>0)r[this.t-ds-1]|=(this.s&bm)<<cbs;r.t=this.t-ds;r.clamp()}function bnpSubTo(a,r){var i=0,c=0,m=Math.min(a.t,this.t);while(i<m){c+=this[i]-a[i];r[i++]=c&this.DM;c>>=this.DB}if(a.t<this.t){c-=a.s;while(i<this.t){c+=this[i];r[i++]=c&this.DM;c>>=this.DB}c+=this.s}else{c+=this.s;while(i<a.t){c-=a[i];r[i++]=c&this.DM;c>>=this.DB}c-=a.s}r.s=c<0?-1:0;if(c<-1)r[i++]=this.DV+c;else if(c>0)r[i++]=c;r.t=i;r.clamp()}function bnpMultiplyTo(a,r){var x=this.abs(),y=a.abs();var i=x.t;r.t=i+y.t;while(--i>=0)r[i]=0;for(i=0;i<y.t;++i)r[i+x.t]=x.am(0,y[i],r,i,0,x.t);r.s=0;r.clamp();if(this.s!=a.s)BigInteger.ZERO.subTo(r,r)}function bnpSquareTo(r){var x=this.abs();var i=r.t=2*x.t;while(--i>=0)r[i]=0;for(i=0;i<x.t-1;++i){var c=x.am(i,x[i],r,2*i,0,1);if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1))>=x.DV){r[i+x.t]-=x.DV;r[i+x.t+1]=1}}if(r.t>0)r[r.t-1]+=x.am(i,x[i],r,2*i,0,1);r.s=0;r.clamp()}function bnpDivRemTo(m,q,r){var pm=m.abs();if(pm.t<=0)return;var pt=this.abs();if(pt.t<pm.t){if(q!=null)q.fromInt(0);if(r!=null)this.copyTo(r);return}if(r==null)r=nbi();var y=nbi(),ts=this.s,ms=m.s;var nsh=this.DB-nbits(pm[pm.t-1]);if(nsh>0){pm.lShiftTo(nsh,y);pt.lShiftTo(nsh,r)}else{pm.copyTo(y);pt.copyTo(r)}var ys=y.t;var y0=y[ys-1];if(y0==0)return;var yt=y0*(1<<this.F1)+(ys>1?y[ys-2]>>this.F2:0);var d1=this.FV/yt,d2=(1<<this.F1)/yt,e=1<<this.F2;var i=r.t,j=i-ys,t=q==null?nbi():q;y.dlShiftTo(j,t);if(r.compareTo(t)>=0){r[r.t++]=1;r.subTo(t,r)}BigInteger.ONE.dlShiftTo(ys,t);t.subTo(y,y);while(y.t<ys)y[y.t++]=0;while(--j>=0){var qd=r[--i]==y0?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);if((r[i]+=y.am(0,qd,r,j,0,ys))<qd){y.dlShiftTo(j,t);r.subTo(t,r);while(r[i]<--qd)r.subTo(t,r)}}if(q!=null){r.drShiftTo(ys,q);if(ts!=ms)BigInteger.ZERO.subTo(q,q)}r.t=ys;r.clamp();if(nsh>0)r.rShiftTo(nsh,r);if(ts<0)BigInteger.ZERO.subTo(r,r)}function bnMod(a){var r=nbi();this.abs().divRemTo(a,null,r);if(this.s<0&&r.compareTo(BigInteger.ZERO)>0)a.subTo(r,r);return r}function Classic(m){this.m=m}function cConvert(x){if(x.s<0||x.compareTo(this.m)>=0)return x.mod(this.m);else return x}function cRevert(x){return x}function cReduce(x){x.divRemTo(this.m,null,x)}function cMulTo(x,y,r){x.multiplyTo(y,r);this.reduce(r)}function cSqrTo(x,r){x.squareTo(r);this.reduce(r)}Classic.prototype.convert=cConvert;Classic.prototype.revert=cRevert;Classic.prototype.reduce=cReduce;Classic.prototype.mulTo=cMulTo;Classic.prototype.sqrTo=cSqrTo;function bnpInvDigit(){if(this.t<1)return 0;var x=this[0];if((x&1)==0)return 0;var y=x&3;y=y*(2-(x&15)*y)&15;y=y*(2-(x&255)*y)&255;y=y*(2-((x&65535)*y&65535))&65535;y=y*(2-x*y%this.DV)%this.DV;return y>0?this.DV-y:-y}function Montgomery(m){this.m=m;this.mp=m.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<<m.DB-15)-1;this.mt2=2*m.t}function montConvert(x){var r=nbi();x.abs().dlShiftTo(this.m.t,r);r.divRemTo(this.m,null,r);if(x.s<0&&r.compareTo(BigInteger.ZERO)>0)this.m.subTo(r,r);return r}function montRevert(x){var r=nbi();x.copyTo(r);this.reduce(r);return r}function montReduce(x){while(x.t<=this.mt2)x[x.t++]=0;for(var i=0;i<this.m.t;++i){var j=x[i]&32767;var u0=j*this.mpl+((j*this.mph+(x[i]>>15)*this.mpl&this.um)<<15)&x.DM;j=i+this.m.t;x[j]+=this.m.am(0,u0,x,i,0,this.m.t);while(x[j]>=x.DV){x[j]-=x.DV;x[++j]++}}x.clamp();x.drShiftTo(this.m.t,x);if(x.compareTo(this.m)>=0)x.subTo(this.m,x)}function montSqrTo(x,r){x.squareTo(r);this.reduce(r)}function montMulTo(x,y,r){x.multiplyTo(y,r);this.reduce(r)}Montgomery.prototype.convert=montConvert;Montgomery.prototype.revert=montRevert;Montgomery.prototype.reduce=montReduce;Montgomery.prototype.mulTo=montMulTo;Montgomery.prototype.sqrTo=montSqrTo;function bnpIsEven(){return(this.t>0?this[0]&1:this.s)==0}function bnpExp(e,z){if(e>4294967295||e<1)return BigInteger.ONE;var r=nbi(),r2=nbi(),g=z.convert(this),i=nbits(e)-1;g.copyTo(r);while(--i>=0){z.sqrTo(r,r2);if((e&1<<i)>0)z.mulTo(r2,g,r);else{var t=r;r=r2;r2=t}}return z.revert(r)}function bnModPowInt(e,m){var z;if(e<256||m.isEven())z=new Classic(m);else z=new Montgomery(m);return this.exp(e,z)}BigInteger.prototype.copyTo=bnpCopyTo;BigInteger.prototype.fromInt=bnpFromInt;BigInteger.prototype.fromString=bnpFromString;BigInteger.prototype.clamp=bnpClamp;BigInteger.prototype.dlShiftTo=bnpDLShiftTo;BigInteger.prototype.drShiftTo=bnpDRShiftTo;BigInteger.prototype.lShiftTo=bnpLShiftTo;BigInteger.prototype.rShiftTo=bnpRShiftTo;BigInteger.prototype.subTo=bnpSubTo;BigInteger.prototype.multiplyTo=bnpMultiplyTo;BigInteger.prototype.squareTo=bnpSquareTo;BigInteger.prototype.divRemTo=bnpDivRemTo;BigInteger.prototype.invDigit=bnpInvDigit;BigInteger.prototype.isEven=bnpIsEven;BigInteger.prototype.exp=bnpExp;BigInteger.prototype.toString=bnToString;BigInteger.prototype.negate=bnNegate;BigInteger.prototype.abs=bnAbs;BigInteger.prototype.compareTo=bnCompareTo;BigInteger.prototype.bitLength=bnBitLength;BigInteger.prototype.mod=bnMod;BigInteger.prototype.modPowInt=bnModPowInt;BigInteger.ZERO=nbv(0);BigInteger.ONE=nbv(1);function bnpFromRadix(s,b){this.fromInt(0);if(b==null)b=10;var cs=this.chunkSize(b);var d=Math.pow(b,cs),mi=false,j=0,w=0;for(var i=0;i<s.length;++i){var x=intAt(s,i);if(x<0){if(s.charAt(i)=="-"&&this.signum()==0)mi=true;continue}w=b*w+x;if(++j>=cs){this.dMultiply(d);this.dAddOffset(w,0);j=0;w=0}}if(j>0){this.dMultiply(Math.pow(b,j));this.dAddOffset(w,0)}if(mi)BigInteger.ZERO.subTo(this,this)}function bnpChunkSize(r){return Math.floor(Math.LN2*this.DB/Math.log(r))}function bnSigNum(){if(this.s<0)return-1;else if(this.t<=0||this.t==1&&this[0]<=0)return 0;else return 1}function bnpDMultiply(n){this[this.t]=this.am(0,n-1,this,0,0,this.t);++this.t;this.clamp()}function bnpDAddOffset(n,w){if(n==0)return;while(this.t<=w)this[this.t++]=0;this[w]+=n;while(this[w]>=this.DV){this[w]-=this.DV;if(++w>=this.t)this[this.t++]=0;++this[w]}}function bnpToRadix(b){if(b==null)b=10;if(this.signum()==0||b<2||b>36)return"0";var cs=this.chunkSize(b);var a=Math.pow(b,cs);var d=nbv(a),y=nbi(),z=nbi(),r="";this.divRemTo(d,y,z);while(y.signum()>0){r=(a+z.intValue()).toString(b).substr(1)+r;y.divRemTo(d,y,z)}return z.intValue().toString(b)+r}function bnIntValue(){if(this.s<0){if(this.t==1)return this[0]-this.DV;else if(this.t==0)return-1}else if(this.t==1)return this[0];else if(this.t==0)return 0;return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]}function bnpAddTo(a,r){var i=0,c=0,m=Math.min(a.t,this.t);while(i<m){c+=this[i]+a[i];r[i++]=c&this.DM;c>>=this.DB}if(a.t<this.t){c+=a.s;while(i<this.t){c+=this[i];r[i++]=c&this.DM;c>>=this.DB}c+=this.s}else{c+=this.s;while(i<a.t){c+=a[i];r[i++]=c&this.DM;c>>=this.DB}c+=a.s}r.s=c<0?-1:0;if(c>0)r[i++]=c;else if(c<-1)r[i++]=this.DV+c;r.t=i;r.clamp()}BigInteger.prototype.fromRadix=bnpFromRadix;BigInteger.prototype.chunkSize=bnpChunkSize;BigInteger.prototype.signum=bnSigNum;BigInteger.prototype.dMultiply=bnpDMultiply;BigInteger.prototype.dAddOffset=bnpDAddOffset;BigInteger.prototype.toRadix=bnpToRadix;BigInteger.prototype.intValue=bnIntValue;BigInteger.prototype.addTo=bnpAddTo;var Wrapper={abs:(function(l,h){var x=new goog.math.Long(l,h);var ret;if(x.isNegative()){ret=x.negate()}else{ret=x}HEAP32[tempDoublePtr>>2]=ret.low_;HEAP32[tempDoublePtr+4>>2]=ret.high_}),ensureTemps:(function(){if(Wrapper.ensuredTemps)return;Wrapper.ensuredTemps=true;Wrapper.two32=new BigInteger;Wrapper.two32.fromString("4294967296",10);Wrapper.two64=new BigInteger;Wrapper.two64.fromString("18446744073709551616",10);Wrapper.temp1=new BigInteger;Wrapper.temp2=new BigInteger}),lh2bignum:(function(l,h){var a=new BigInteger;a.fromString(h.toString(),10);var b=new BigInteger;a.multiplyTo(Wrapper.two32,b);var c=new BigInteger;c.fromString(l.toString(),10);var d=new BigInteger;c.addTo(b,d);return d}),stringify:(function(l,h,unsigned){var ret=(new goog.math.Long(l,h)).toString();if(unsigned&&ret[0]=="-"){Wrapper.ensureTemps();var bignum=new BigInteger;bignum.fromString(ret,10);ret=new BigInteger;Wrapper.two64.addTo(bignum,ret);ret=ret.toString(10)}return ret}),fromString:(function(str,base,min,max,unsigned){Wrapper.ensureTemps();var bignum=new BigInteger;bignum.fromString(str,base);var bigmin=new BigInteger;bigmin.fromString(min,10);var bigmax=new BigInteger;bigmax.fromString(max,10);if(unsigned&&bignum.compareTo(BigInteger.ZERO)<0){var temp=new BigInteger;bignum.addTo(Wrapper.two64,temp);bignum=temp}var error=false;if(bignum.compareTo(bigmin)<0){bignum=bigmin;error=true}else if(bignum.compareTo(bigmax)>0){bignum=bigmax;error=true}var ret=goog.math.Long.fromString(bignum.toString());HEAP32[tempDoublePtr>>2]=ret.low_;HEAP32[tempDoublePtr+4>>2]=ret.high_;if(error)throw"range error"})};return Wrapper})();if(memoryInitializer){if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,STATIC_BASE)}else{addRunDependency("memory initializer");Browser.asyncLoad(memoryInitializer,(function(data){HEAPU8.set(data,STATIC_BASE);removeRunDependency("memory initializer")}),(function(data){throw"could not load memory initializer "+memoryInitializer}))}}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"]&&shouldRunNow)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"]||"/bin/this.program"),"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);initialStackTop=STACKTOP;try{var ret=Module["_main"](argc,argv,0);if(!Module["noExitRuntime"]){exit(ret)}}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){Module.printErr("run() called, but dependencies remain, so not running");return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;ensureInitRuntime();preMain();if(ENVIRONMENT_IS_WEB&&preloadStartTime!==null){Module.printErr("pre-main prep time: "+(Date.now()-preloadStartTime)+" ms")}if(Module["_main"]&&shouldRunNow){Module["callMain"](args)}postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);if(!ABORT)doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status){ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;function abort(text){if(text){Module.print(text);Module.printErr(text)}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";throw"abort() at "+stackTrace()+extra}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()
|
|
|
|
|
|
|
|
|