var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB;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))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>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>2]=0}stop=ret+size;while(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>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function 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"]||67108864;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=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 len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){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>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+31248;__ATINIT__.push();allocate([178,136,149,93,219,251,65,63,218,75,113,166,101,218,127,63,80,144,80,0,1,55,169,63,87,102,10,206,202,54,199,63,142,143,130,211,42,220,218,63,123,229,194,181,137,63,227,63,85,37,201,130,43,116,220,63,35,143,242,70,70,74,162,191,86,106,190,59,133,123,213,191,173,123,141,242,13,198,188,191,63,7,177,227,139,20,203,63,0,107,53,240,237,127,189,63,4,160,60,94,145,233,193,191,148,206,179,168,68,239,180,191,142,162,56,157,205,186,184,63,25,152,181,232,14,105,167,63,215,135,126,162,93,162,176,191,169,128,222,76,255,25,147,191,137,84,223,101,19,87,164,63,60,79,77,188,185,129,107,63,191,59,44,253,185,100,149,191,92,78,14,160,113,176,99,63,196,29,0,150,187,104,130,63,252,248,1,79,145,175,103,191,229,192,227,247,40,60,104,191,152,182,95,198,248,31,92,63,63,254,41,198,212,243,68,63,35,180,25,238,196,161,70,191,129,110,141,213,36,194,0,191,240,83,11,174,78,98,41,63,2,239,9,63,131,15,3,191,168,141,129,19,44,89,2,191,101,24,182,139,199,25,240,62,213,202,218,111,48,104,199,62,22,136,182,230,194,235,201,190,35,145,92,128,79,63,149,62,183,158,89,155,115,20,148,62,101,50,154,214,179,218,122,190,55,55,0,160,161,92,35,190,154,191,158,211,99,80,62,62,119,29,17,24,185,73,25,190,239,131,198,192,241,141,220,61,189,35,104,242,107,80,57,63,97,138,57,168,204,111,119,63,228,69,200,30,231,125,163,63,181,154,244,35,181,253,194,63,102,235,76,227,221,136,215,63,97,230,211,91,133,130,226,63,204,101,186,201,185,64,224,63,7,99,127,225,155,223,178,63,113,226,225,88,182,3,212,191,63,105,106,188,57,172,201,191,178,28,53,110,1,1,197,63,204,12,75,134,92,9,199,63,198,110,65,215,64,220,184,191,221,114,2,65,199,221,192,191,153,241,242,7,115,109,177,63,139,142,33,94,141,165,181,63,153,42,200,96,106,76,170,191,189,102,28,246,226,210,167,191,108,92,72,194,215,237,162,63,45,136,248,143,174,20,149,63,145,221,137,55,36,11,152,191,219,159,245,161,159,115,121,191,242,7,43,223,136,187,137,63,149,239,150,79,120,171,51,63,152,127,133,42,181,88,118,191,74,143,74,110,242,27,81,63,110,208,2,149,9,239,93,63,166,136,110,75,6,65,73,191,175,0,212,5,249,197,59,191,145,178,236,175,38,137,53,63,243,50,65,214,247,200,6,63,41,187,238,29,189,167,24,191,57,221,199,182,142,218,231,62,239,25,176,124,187,55,242,62,208,243,174,165,121,221,217,190,149,241,185,167,100,66,186,190,243,125,107,187,195,186,181,62,116,161,66,205,124,145,119,190,142,114,20,124,130,57,129,190,152,33,225,183,100,49,100,62,77,81,10,212,120,221,28,62,123,57,39,57,129,114,39,190,103,4,189,154,138,85,2,62,133,176,217,39,134,205,195,189,48,202,21,159,203,209,49,63,122,218,202,208,230,54,113,63,178,0,160,12,113,3,158,63,211,21,172,27,27,218,190,63,44,125,184,133,127,97,212,63,71,8,86,114,19,112,225,63,47,108,225,149,241,161,225,63,207,45,214,160,223,55,199,63,121,66,206,33,166,186,208,191,114,136,101,232,166,94,209,191,83,183,140,218,135,149,183,63,56,197,50,199,15,158,204,63,68,105,160,197,72,234,160,191,88,154,19,175,82,254,196,191,139,229,219,23,22,197,148,63,69,250,198,193,127,191,188,63,190,37,162,28,28,162,149,191,50,109,192,146,28,249,177,191,106,41,24,237,201,73,150,63,63,86,119,4,169,181,163,63,229,116,86,245,211,247,146,191,191,71,25,237,62,245,145,191,32,180,43,241,176,29,138,63,8,127,57,229,215,180,120,63,81,174,58,142,2,251,124,191,109,171,250,133,248,151,82,191,49,218,21,135,37,149,105,63,234,123,33,116,155,39,48,191,109,223,250,90,32,99,81,191,250,108,226,145,252,238,52,63,82,22,143,85,194,211,48,63,244,42,194,225,229,169,35,191,224,90,187,108,19,183,1,191,191,48,65,124,146,52,7,63,11,136,160,219,16,27,198,190,98,115,33,72,187,129,225,190,217,244,45,204,189,28,196,62,146,162,95,167,182,86,171,62,8,250,106,180,43,234,161,190,63,181,2,107,189,229,83,62,203,30,83,169,210,21,109,62,150,59,12,14,58,16,78,190,64,18,172,34,56,70,16,190,89,231,121,144,233,11,18,62,230,103,176,201,11,143,234,189,247,232,43,215,4,126,171,61,121,152,58,2,133,23,41,63,156,107,105,5,152,63,105,63,233,77,73,75,156,5,151,63,252,143,10,138,45,230,184,63,105,13,83,245,86,119,209,63,103,159,174,188,206,35,224,63,204,96,249,239,230,101,226,63,118,98,114,212,170,251,209,63,145,25,6,108,130,248,199,191,249,172,146,237,45,89,212,191,187,75,245,120,164,144,115,63,20,92,101,172,84,159,206,63,229,180,230,93,83,198,165,63,96,43,2,236,18,233,197,191,52,108,178,8,154,218,163,191,146,225,174,169,236,250,190,63,206,17,253,152,207,123,149,63,62,2,207,209,139,8,181,191,159,148,206,158,214,192,114,191,21,105,155,184,52,68,170,63,245,41,131,84,231,64,116,191,3,35,42,145,229,227,156,191,241,127,154,206,229,97,127,63,198,44,215,112,241,185,138,63,120,199,139,82,12,197,121,191,52,157,73,91,35,113,115,191,71,192,221,132,14,155,110,63,187,157,241,170,61,231,82,63,160,228,158,163,116,203,91,191,68,151,250,143,77,39,7,191,174,141,137,70,202,52,67,63,235,238,26,64,31,247,30,191,23,22,108,3,55,35,35,191,71,99,51,99,238,49,17,63,139,43,134,27,152,228,246,62,18,58,232,63,38,54,245,190,4,61,190,187,23,205,76,62,96,249,188,75,198,92,208,62,122,191,232,140,250,33,174,190,94,5,200,170,203,15,155,190,215,94,195,130,124,19,141,62,211,149,91,128,192,96,1,190,72,137,221,46,136,56,88,190,13,102,12,26,9,39,54,62,236,172,252,45,183,80,0,62,246,26,1,30,65,168,251,189,199,76,108,236,10,56,211,61,227,107,169,213,137,25,147,189,88,117,128,198,60,171,33,63,231,70,85,244,47,125,98,63,24,148,113,174,102,153,145,63,125,113,243,134,40,250,179,63,24,114,136,3,34,168,205,63,115,58,164,252,115,107,221,63,219,122,53,251,196,156,226,63,87,197,61,215,109,139,215,63,225,147,241,240,111,224,184,191,204,236,66,98,198,136,213,191,2,74,48,84,36,108,182,191,253,154,66,192,167,189,204,63,149,205,79,196,108,63,190,63,229,153,17,157,142,69,195,191,134,108,11,81,220,55,185,191,183,208,51,97,90,76,187,63,196,99,112,123,171,22,177,63,216,122,7,200,200,187,179,191,128,162,128,53,119,8,163,191,12,255,177,126,206,115,171,63,197,231,71,65,205,212,143,63,45,238,29,186,254,109,161,191,29,198,242,201,226,58,105,191,60,188,128,233,127,96,147,63,1,35,132,213,32,76,96,191,52,117,182,95,143,37,130,191,145,251,149,193,204,86,102,63,111,237,37,39,57,56,107,63,221,174,68,113,240,47,94,191,99,141,18,205,142,125,77,191,87,237,64,160,249,190,76,63,135,19,9,227,19,59,30,63,106,214,44,228,236,78,52,191,217,170,232,9,75,148,2,63,134,228,232,207,182,184,20,63,117,96,242,93,120,168,252,190,142,173,66,216,227,200,234,190,210,56,199,23,211,218,226,62,46,231,116,251,246,142,161,62,146,24,172,141,156,217,189,190,246,131,83,10,61,142,149,62,211,245,45,189,182,206,137,62,49,185,152,75,1,61,119,190,249,185,23,73,247,110,38,190,228,71,73,191,78,237,67,62,20,155,51,246,19,39,32,190,212,183,75,193,191,160,238,189,148,9,215,37,249,27,229,61,168,20,12,225,161,202,187,189,207,25,182,119,12,143,122,61,94,20,201,176,45,227,24,63,133,138,41,155,200,10,91,63,167,195,192,250,227,210,138,63,25,218,232,169,121,226,175,63,36,255,91,101,13,247,200,63,153,194,41,83,100,115,218,63,65,232,81,46,127,91,226,63,165,170,185,118,43,27,220,63,38,201,80,112,4,17,93,63,173,195,244,52,124,227,212,191,224,203,226,229,39,97,198,191,181,114,103,29,146,52,199,63,183,103,173,125,135,100,199,63,29,82,235,155,248,180,186,191,64,230,213,170,234,240,194,191,197,238,219,172,238,223,177,63,133,184,37,80,110,66,187,63,22,99,225,32,156,93,171,191,178,205,54,187,91,147,177,191,213,3,171,1,117,159,165,63,85,210,165,15,244,186,163,63,200,169,163,171,202,16,160,191,79,223,228,15,234,47,146,191,132,130,59,240,136,59,149,63,111,20,90,29,194,224,119,63,88,233,151,192,254,34,136,191,20,63,5,17,97,83,65,191,58,242,254,66,17,242,118,63,2,9,199,60,100,197,78,191,27,136,138,204,128,147,97,191,222,123,249,89,148,120,75,63,148,230,218,192,138,48,68,63,181,209,255,162,3,79,60,191,200,60,37,139,101,205,27,191,32,56,62,207,34,164,36,63,211,33,223,96,253,34,214,190,123,208,161,59,233,139,5,191,34,181,255,215,46,135,230,62,60,169,16,250,70,92,221,62,89,131,129,107,16,78,208,190,0,124,176,90,111,53,159,190,47,24,165,225,186,163,170,62,246,162,58,84,220,246,124,190,141,40,68,74,26,231,119,190,154,210,205,125,163,75,98,62,50,166,42,62,103,162,34,62,158,33,37,118,196,55,48,190,11,43,153,233,202,75,7,62,5,201,60,233,20,141,219,61,233,212,179,103,210,13,208,189,182,163,17,43,5,20,164,61,155,128,5,14,119,122,98,189,161,5,151,108,168,135,17,63,234,203,183,77,93,192,83,63,221,95,152,218,5,98,132,63,20,235,65,231,217,81,169,63,130,220,245,5,161,218,196,63,2,141,236,214,187,126,215,63,238,36,251,87,35,185,225,63,54,21,35,70,247,147,223,63,142,230,46,61,199,83,186,63,83,159,213,88,184,138,210,191,130,202,3,66,34,199,207,191,213,39,168,153,10,101,189,63,120,34,127,134,74,23,205,63,158,232,26,63,208,219,163,191,62,209,136,124,190,201,198,191,90,142,141,157,183,45,144,63,205,209,233,90,24,203,192,63,28,24,49,144,238,204,140,191,201,57,187,246,70,77,183,191,85,54,62,197,250,185,145,63,161,44,153,123,42,174,173,63,80,46,170,105,240,244,146,191,110,174,246,200,44,195,160,191,54,244,113,155,212,136,144,63,102,30,240,83,164,10,144,63,43,154,196,169,199,181,135,191,200,172,111,129,218,2,120,191,26,88,68,27,180,21,124,63,219,9,215,161,98,255,85,63,201,132,93,158,128,77,107,191,75,216,78,106,168,26,35,63,132,249,21,166,136,81,85,63,122,124,46,172,10,103,54,191,142,137,168,202,233,107,57,191,165,147,131,42,14,121,42,63,129,24,164,2,148,20,20,63,214,97,105,182,220,54,20,191,47,8,75,17,189,129,205,190,118,123,130,253,2,163,245,62,128,90,123,208,215,92,208,190,228,191,121,99,108,174,206,190,144,102,14,104,144,107,187,62,153,61,11,132,95,121,148,62,14,213,93,164,167,77,151,190,235,149,224,34,3,165,97,62,13,165,29,143,164,157,101,62,222,34,241,218,25,96,76,190,97,15,108,52,23,127,22,190,48,185,107,43,34,36,26,62,38,174,6,158,112,153,240,189,151,26,7,232,62,13,200,189,78,230,10,164,231,86,184,61,114,166,71,167,117,253,140,189,76,234,25,34,190,186,73,61,42,214,252,57,189,178,8,63,132,225,119,174,196,209,76,63,83,140,39,203,10,229,126,63,11,245,189,66,242,3,164,63,31,163,21,253,50,76,193,63,86,252,230,203,224,164,212,63,137,236,105,23,201,204,224,63,56,113,74,78,253,249,224,63,50,246,14,52,95,159,201,63,238,194,178,94,253,128,205,191,85,90,212,111,244,72,211,191,222,103,216,120,191,210,160,63,48,201,158,57,164,118,207,63,93,61,219,146,117,229,162,63,239,198,86,61,134,104,199,191,228,63,69,84,46,251,167,191,147,63,168,228,121,59,193,63,248,139,121,227,46,167,161,63,42,192,123,80,232,1,185,191,73,15,164,189,20,194,145,191,227,179,141,19,237,87,177,63,69,25,205,20,5,63,108,63,81,46,16,146,202,47,166,191,61,253,156,62,2,39,114,63,25,147,97,169,211,71,153,63,218,250,124,53,159,234,123,191,64,105,206,231,203,180,136,191,206,150,106,103,113,234,119,63,193,91,87,233,74,153,115,63,173,149,255,198,219,132,110,191,243,205,89,75,210,73,86,191,161,102,88,59,130,188,94,63,128,211,121,83,53,142,34,63,230,131,185,57,87,136,72,191,146,226,58,3,196,68,30,63,216,86,251,111,101,23,46,63,24,197,213,160,78,87,23,191,93,250,89,125,5,187,9,191,110,249,213,237,103,23,3,63,207,208,102,133,186,116,211,62,92,39,94,51,239,15,229,190,215,155,211,232,176,239,180,62,163,1,80,83,77,224,190,62,186,4,96,229,171,97,166,190,164,66,61,50,151,150,135,190,101,31,19,106,222,1,132,62,20,157,124,163,75,190,65,190,243,119,188,253,51,40,83,190,112,218,24,7,253,169,53,62,195,25,62,118,123,220,7,62,128,104,234,8,108,225,4,190,59,107,231,90,222,87,215,61,161,252,16,236,43,136,180,61,213,121,140,59,90,101,162,189,76,144,129,88,27,234,116,61,44,110,98,171,118,236,49,189,103,191,89,33,164,102,1,63,174,44,171,64,177,0,69,63,153,119,149,238,28,91,119,63,181,241,134,2,28,131,159,63,51,54,15,130,192,130,188,63,99,231,185,233,57,246,209,63,177,109,88,80,53,88,223,63,90,135,145,254,219,164,225,63,139,76,240,65,179,128,210,63,24,36,147,172,54,183,195,191,58,71,124,18,100,31,213,191,101,200,244,8,154,133,172,191,117,134,216,69,178,56,206,63,221,13,134,199,128,199,188,63,22,67,212,97,166,151,196,191,47,44,254,203,202,155,187,191,209,119,41,111,14,78,189,63,240,81,105,115,244,77,181,63,31,13,215,198,200,202,181,191,218,213,200,39,144,44,172,191,239,216,221,167,43,64,176,63,33,35,105,47,169,67,159,63,17,78,133,11,225,34,167,191,194,115,160,134,77,116,138,191,145,68,90,52,127,45,158,63,3,93,158,229,241,177,101,63,2,228,232,56,65,115,145,191,110,154,96,204,50,121,92,63,76,237,1,80,147,88,129,63,89,253,38,38,110,229,100,191,159,191,182,161,21,117,108,191,145,201,36,63,55,193,94,63,180,211,95,72,111,207,81,63,40,62,221,139,145,101,80,191,53,91,129,249,69,57,42,191,107,118,91,204,150,241,58,63,152,102,251,205,150,8,248,190,206,130,97,15,189,242,32,191,224,172,172,107,69,28,3,63,127,161,144,68,115,140,254,62,142,85,171,102,219,96,241,190,96,122,194,31,75,37,206,190,27,109,192,134,237,236,211,62,54,37,77,76,224,83,148,190,218,146,62,176,17,30,174,190,42,249,218,194,0,173,145,62,226,107,160,59,213,50,121,62,184,49,183,107,208,223,112,190,224,236,52,186,230,126,18,62,146,0,52,146,10,175,64,62,168,0,75,157,240,68,32,190,206,227,185,232,125,140,247,189,45,42,94,56,157,138,240,61,104,124,172,238,130,42,192,189,36,171,5,157,79,57,161,189,49,207,234,202,99,187,139,61,236,145,227,118,89,40,94,189,252,189,193,42,98,252,24,61,42,194,248,203,172,133,248,62,67,47,117,188,226,148,62,63,146,210,186,114,182,157,113,63,78,80,153,196,192,181,152,63,255,62,28,188,100,91,183,63,13,117,82,137,136,250,206,63,50,205,134,223,202,212,220,63,35,150,48,185,161,215,225,63,73,191,222,38,133,112,215,63,174,10,131,189,105,241,176,191,58,53,23,183,84,79,213,191,198,63,232,52,6,44,194,191,195,103,125,140,249,135,201,63,170,80,235,24,33,195,198,63,164,147,243,253,175,83,189,191,117,193,110,7,86,32,196,191,26,220,31,72,159,161,178,63,136,200,235,114,101,108,191,63,65,195,233,98,133,140,171,191,180,157,234,198,204,112,182,191,138,86,140,250,43,109,166,63,95,11,78,56,103,9,173,63,197,236,43,151,200,67,162,191,196,45,207,26,224,132,160,191,147,152,84,102,127,186,155,63,68,136,59,92,75,79,143,63,117,97,172,232,97,215,146,191,198,189,153,240,40,178,117,191,191,155,230,71,239,90,134,63,97,57,214,246,46,78,68,63,70,116,192,17,100,167,118,191,100,107,220,155,210,162,75,63,150,96,13,57,223,10,99,63,51,185,168,38,252,53,76,191,49,87,137,252,109,41,73,191,8,111,1,224,10,141,64,63,81,45,233,29,142,155,38,63,36,88,159,225,133,85,44,191,237,235,76,40,86,237,225,190,216,172,142,231,139,77,18,63,7,65,30,214,140,24,236,190,105,23,7,108,3,40,241,190,172,74,244,149,238,106,222,62,54,77,37,166,95,134,195,62,191,162,56,31,31,89,194,190,21,5,180,145,108,156,71,62,24,202,149,233,122,153,156,62,220,23,17,31,204,218,122,190,193,139,182,44,29,148,105,190,184,110,209,88,201,249,91,62,34,241,230,6,210,20,3,62,140,33,164,201,45,157,44,190,245,251,52,64,243,255,7,62,102,47,101,94,110,45,230,61,175,105,107,35,220,1,218,189,184,189,28,100,23,254,165,61,248,5,82,120,139,126,140,61,153,215,114,232,213,217,116,189,110,255,232,102,214,186,69,61,110,15,106,199,158,108,1,189,100,116,251,44,218,71,241,62,58,113,169,80,100,62,54,63,154,2,231,230,60,132,106,63,103,236,139,211,97,78,147,63,191,190,101,176,176,7,179,63,201,236,225,218,101,127,202,63,70,25,60,123,52,48,218,63,139,251,7,5,240,162,225,63,236,111,121,189,106,124,219,63,188,127,137,252,62,210,155,63,170,48,237,75,176,230,211,191,136,20,71,17,184,230,203,191,116,148,237,182,92,241,193,63,130,243,59,142,181,203,204,63,193,173,180,73,242,143,169,191,98,165,208,244,97,238,199,191,131,136,160,131,109,157,143,63,190,120,191,242,74,146,194,63,50,155,70,203,157,171,128,191,9,104,14,190,130,140,187,191,81,166,222,21,100,104,134,63,243,167,18,210,95,74,179,63,248,199,129,93,107,121,142,191,0,167,42,118,153,228,168,191,78,143,71,26,184,138,144,63,38,188,164,223,131,184,156,63,53,219,105,59,225,60,141,191,76,234,41,162,228,119,140,191,133,248,8,173,69,138,133,63,23,30,89,226,29,152,118,63,235,142,36,251,155,181,122,191,45,205,61,8,147,102,87,191,41,58,218,218,198,203,107,63,105,128,96,10,143,197,16,191,123,73,46,36,170,231,87,191,222,159,178,88,238,124,54,63,185,234,130,153,79,97,64,63,83,17,79,134,153,105,47,191,21,116,65,114,50,76,32,191,82,36,23,169,19,144,28,63,82,139,165,28,60,124,239,62,31,33,143,197,201,9,3,191,183,45,79,122,8,236,208,62,113,32,19,3,241,113,226,62,255,92,96,41,235,117,201,190,31,194,158,164,17,248,182,190,162,191,62,154,94,117,176,62,140,37,121,177,183,153,108,62,109,171,197,31,58,133,138,190,155,67,29,179,237,106,99,62,26,253,97,78,2,0,89,62,129,169,167,25,210,203,70,190,71,250,160,98,221,62,6,190,222,91,1,192,242,50,24,62,179,229,84,87,88,88,241,189,13,235,207,138,89,51,212,189,157,154,114,99,46,76,196,61,248,127,148,23,194,67,141,189,226,150,148,52,70,76,119,189,96,221,103,216,61,72,95,61,231,236,15,24,0,76,47,189,107,221,139,103,90,80,232,60,196,254,229,1,143,91,232,62,75,226,108,107,54,42,48,63,120,163,215,205,185,234,99,63,24,80,162,176,24,17,142,63,140,5,31,40,18,218,174,63,78,39,253,109,0,127,198,63,53,155,242,26,71,133,215,63,165,142,167,228,33,25,225,63,201,217,253,226,108,148,222,63,173,236,191,152,164,225,190,63,100,20,214,63,149,17,209,191,234,223,255,114,70,193,209,191,26,15,129,238,13,145,176,63,112,245,21,164,164,200,207,63,169,134,26,168,28,65,153,63,83,10,1,68,207,150,200,191,174,150,241,83,227,21,169,191,58,149,214,251,246,150,194,63,182,81,0,121,61,188,166,63,48,78,46,218,80,5,188,191,105,54,229,221,196,86,158,191,151,103,34,237,42,180,180,63,189,8,121,155,175,227,140,63,55,63,92,34,114,37,173,191,37,3,12,193,198,127,99,191,46,251,25,160,104,248,162,63,242,61,12,157,76,251,112,191,29,65,124,110,199,46,150,191,93,153,139,1,31,67,121,63,239,168,19,126,74,144,134,63,66,13,246,202,112,42,118,191,201,166,95,158,14,11,115,191,230,189,159,102,215,182,109,63,32,87,105,135,62,17,88,63,83,13,214,13,92,24,96,191,43,242,3,144,41,253,44,191,36,141,120,34,125,107,76,63,75,247,112,178,141,219,26,191,254,238,152,145,63,13,52,191,144,73,243,249,180,160,27,63,24,142,6,86,73,62,21,63,90,175,75,181,152,147,11,191,224,158,6,250,90,35,235,190,18,215,57,179,251,32,243,62,89,235,185,141,186,88,165,190,80,106,116,152,114,30,211,190,14,240,123,123,94,46,180,62,206,132,222,13,8,94,169,62,201,57,106,216,61,195,156,190,216,49,244,116,145,220,106,190,183,93,106,121,93,17,120,62,130,94,67,231,154,50,74,190,175,86,53,237,104,183,71,190,117,74,114,133,99,65,50,62,94,162,232,185,24,33,254,61,47,61,228,16,16,53,4,190,190,56,74,110,36,122,216,61,159,255,10,49,165,240,193,61,159,226,6,69,91,119,175,189,250,95,43,167,30,236,114,61,178,200,190,161,49,221,98,61,195,44,70,23,121,106,71,189,161,252,178,83,171,134,22,61,0,39,31,160,173,248,208,188,9,123,250,132,4,43,225,62,97,97,78,41,167,121,39,63,161,70,129,90,255,220,93,63,129,162,206,160,193,86,135,63,63,38,184,133,5,228,168,63,172,92,105,228,196,247,194,63,180,105,247,40,243,232,212,63,183,6,74,66,207,76,224,63,32,136,242,246,50,92,224,63,232,208,16,47,152,211,202,63,67,198,122,192,79,35,202,191,73,60,55,52,77,57,212,191,153,145,156,117,179,189,147,191,132,134,104,79,241,105,207,63,226,150,252,42,223,143,185,63,17,135,133,31,91,241,197,191,6,147,176,246,71,96,188,191,214,209,106,18,73,57,191,63,189,78,58,58,8,68,184,63,238,209,50,96,104,85,183,191,179,123,34,250,87,255,177,191,77,6,178,251,11,248,177,63,63,41,67,63,133,106,167,63,109,240,134,119,149,96,171,191,13,105,162,184,195,218,153,191,95,187,124,89,202,206,163,63,180,79,66,5,152,235,133,63,236,109,54,249,163,88,154,191,198,189,191,139,30,194,97,191,201,249,3,200,126,94,143,63,129,13,147,139,238,30,90,191,42,115,204,30,242,73,128,191,177,89,40,29,58,146,99,63,170,201,71,200,196,131,108,63,120,194,51,248,106,124,94,191,185,44,11,56,61,187,83,191,235,246,18,125,71,154,81,63,53,51,42,241,168,223,49,63,144,252,214,160,103,21,64,191,44,185,25,88,32,109,210,62,34,9,235,90,35,86,39,63,209,240,5,202,11,208,5,191,76,1,70,112,89,216,9,191,7,14,215,103,23,105,249,62,16,208,237,12,218,5,227,62,125,26,39,113,246,151,226,190,175,163,106,92,170,53,152,190,113,33,212,105,61,50,195,62,72,232,66,129,101,181,157,190,241,33,111,140,137,191,154,190,65,109,172,27,222,117,136,62,237,31,50,124,166,34,98,62,9,77,127,212,215,104,101,190,178,42,39,97,182,140,47,62,134,255,14,61,214,243,53,62,39,193,15,220,220,182,28,190,193,223,32,143,183,39,241,189,16,139,44,119,84,173,240,61,177,165,109,253,228,195,192,189,251,154,145,5,57,59,175,189,118,73,102,173,12,59,152,61,245,186,28,143,20,135,87,189,203,43,163,30,40,75,78,189,197,18,110,58,49,126,49,61,115,89,139,129,129,52,0,189,15,19,5,205,210,179,183,60,214,52,125,226,9,52,216,62,233,118,136,142,81,8,33,63,172,177,215,195,73,89,86,63,176,40,90,132,41,16,130,63,25,240,26,177,53,254,163,63,236,181,98,2,117,200,191,63,150,199,149,35,190,106,210,63,118,118,198,81,101,159,222,63,88,4,56,176,78,250,224,63,185,248,69,168,92,149,210,63,112,44,122,124,100,106,192,191,155,154,241,229,181,55,213,191,88,94,117,27,169,152,186,191,168,82,124,164,157,195,203,63,79,7,189,198,52,83,197,63,114,172,144,46,151,76,192,191,9,137,171,33,48,153,196,191,254,255,243,15,70,247,179,63,53,94,116,26,10,43,193,63,232,137,12,12,49,229,171,191,88,50,73,18,198,90,186,191,159,172,208,26,155,79,166,63,235,71,192,128,68,188,178,63,55,222,18,197,88,243,162,191,63,219,125,236,221,73,168,191,178,210,227,120,61,122,159,63,123,25,23,176,191,225,155,63,55,65,223,112,103,61,152,191,56,143,124,34,59,235,138,191,250,29,37,118,158,205,144,63,245,161,187,150,158,78,115,63,97,246,69,22,189,146,132,191,9,231,81,47,136,76,68,191,48,211,61,241,25,218,117,63,88,225,139,231,159,52,73,191,78,108,231,6,5,168,99,191,92,25,51,214,199,37,76,63,95,169,220,124,181,173,76,63,107,13,145,156,174,28,66,191,104,213,148,176,55,127,46,191,88,202,94,19,66,95,49,63,34,240,30,116,132,228,251,62,246,240,100,27,164,253,25,191,56,154,8,40,126,96,236,62,209,97,160,186,219,212,253,62,174,131,52,100,65,46,230,190,87,163,203,9,244,243,215,190,142,230,7,159,93,125,209,62,138,27,83,151,139,181,160,62,229,186,227,3,128,186,178,190,110,213,158,106,246,111,131,62,245,180,146,60,64,49,139,62,166,213,136,95,79,52,116,190,212,101,129,214,5,95,85,190,234,117,242,10,10,176,82,62,25,38,158,33,120,198,13,190,125,243,196,169,10,230,35,190,244,137,70,83,75,38,6,62,155,60,58,124,105,223,225,61,109,61,130,142,221,57,219,189,207,253,202,78,49,21,166,61,92,129,93,209,156,189,154,61,226,15,175,147,133,138,130,189,20,37,0,173,63,149,59,61,168,12,103,248,245,37,56,61,35,110,218,0,138,22,26,189,107,16,192,1,255,77,231,60,242,235,204,163,219,142,160,188,90,211,71,51,233,15,209,62,139,185,144,33,164,178,24,63,116,248,76,165,130,178,80,63,121,197,255,196,246,225,123,63,185,204,107,214,103,252,159,63,175,139,47,228,182,120,186,63,192,150,129,139,107,21,208,63,94,117,237,204,210,99,220,63,17,129,58,76,44,47,225,63,243,254,81,41,231,15,215,63,135,173,240,186,242,119,166,191,243,166,159,137,131,185,212,191,164,161,6,176,203,68,199,191,162,105,26,220,215,64,197,63,219,255,137,142,118,208,203,63,128,35,236,73,17,181,176,191,51,230,191,51,210,144,200,191,140,99,93,155,225,197,147,63,108,235,78,190,159,224,195,63,199,106,3,12,140,119,115,191,124,219,31,92,177,222,190,191,208,4,126,247,50,100,115,63,143,155,72,2,147,4,183,63,168,72,124,207,155,21,131,191,70,148,207,236,25,56,176,191,97,223,186,222,145,23,139,63,65,242,9,203,85,31,165,63,145,40,41,152,92,108,141,191,77,186,121,138,227,191,152,191,164,232,162,208,76,37,138,63,126,226,237,45,52,43,137,63,238,149,245,69,134,157,131,191,33,169,209,124,12,213,116,191,42,232,136,243,230,35,121,63,67,244,164,170,214,101,87,63,95,89,216,153,125,129,107,191,113,60,217,188,149,241,223,62,174,155,49,144,166,99,89,63,65,6,235,86,209,238,53,191,39,136,5,109,194,55,67,191,136,19,44,145,40,91,49,63,157,70,166,110,75,72,38,63,132,214,6,160,36,231,33,191,33,174,81,12,80,55,255,190,94,92,31,179,25,207,11,63,213,251,0,194,107,113,196,190,177,143,172,247,253,124,240,190,14,227,226,45,187,17,210,62,228,197,83,98,65,33,204,62,151,55,252,168,244,206,191,190,182,153,123,85,231,50,154,190,72,70,151,48,179,202,161,62,5,49,170,68,170,221,99,190,213,32,145,55,89,209,122,190,187,144,186,73,108,38,96,62,48,116,207,219,80,76,71,62,176,142,109,151,36,4,64,190,250,99,244,115,80,54,208,61,222,127,157,232,155,181,17,62,23,33,113,126,35,185,240,189,182,1,165,136,47,157,209,189,99,45,154,56,65,254,197,61,165,97,76,106,80,126,139,189,154,105,223,126,132,148,134,189,225,231,27,150,89,51,108,61,190,44,223,241,23,64,29,189,163,123,216,189,161,32,35,189,244,63,161,74,107,107,3,61,16,236,113,145,243,191,208,188,39,63,133,216,139,36,135,60,209,22,3,139,210,14,200,62,227,205,36,204,222,228,17,63,248,128,130,132,37,233,72,63,190,117,183,157,217,118,117,63,6,164,177,149,233,124,153,63,233,214,135,168,75,237,181,63,133,27,4,184,117,223,203,63,62,142,233,123,2,3,218,63,217,108,124,149,84,8,225,63,34,132,13,49,120,190,218,63,206,135,114,198,234,131,166,63,74,136,18,88,203,215,210,191,243,49,31,124,95,151,207,191,71,85,39,50,3,30,185,63,70,167,73,148,136,142,207,63,106,68,204,132,19,208,125,63,243,138,123,173,225,131,201,191,231,129,181,64,37,123,167,191,80,114,54,207,192,185,195,63,244,7,94,170,204,189,169,63,237,111,103,63,236,105,190,191,78,209,175,99,67,107,164,191,140,85,155,6,13,86,183,63,147,199,9,39,192,163,153,63,245,88,191,103,37,118,177,191,30,110,114,237,119,46,135,191,88,43,136,246,180,214,168,63,12,239,183,190,196,88,87,63,66,113,211,234,198,95,160,191,251,66,192,165,145,81,112,63,160,7,130,48,104,133,147,63,192,162,171,173,165,44,119,191,136,89,43,119,198,117,132,191,74,138,15,95,252,146,116,63,48,178,119,208,223,19,114,63,247,20,150,241,156,139,108,191,73,79,83,125,89,160,88,191,250,245,148,68,255,78,96,63,23,74,180,3,184,50,50,63,46,204,25,127,122,2,79,191,58,101,207,32,35,149,22,63,212,175,181,76,173,52,56,63,250,60,250,38,223,71,30,191,144,44,167,122,12,172,29,191,166,152,163,199,195,140,17,63,149,0,139,226,160,231,248,62,40,42,121,123,5,164,252,190,108,20,12,49,248,218,179,190,185,0,75,232,204,142,225,62,113,164,43,187,113,156,186,190,169,69,88,28,19,99,191,190,150,70,58,222,116,227,171,62,7,9,170,132,40,26,145,62,53,128,176,131,78,122,144,190,216,36,6,112,117,166,39,62,114,58,65,79,193,195,105,62,218,48,126,56,177,211,72,190,172,74,162,87,82,27,56,190,71,249,83,201,98,246,42,62,147,68,198,155,238,251,221,61,50,227,220,242,141,2,255,189,35,107,56,187,189,162,216,61,26,25,19,42,205,178,192,61,223,140,146,91,205,150,177,189,127,23,65,101,141,59,111,61,115,115,67,154,55,215,114,61,86,12,246,35,19,81,85,189,37,124,73,94,203,245,248,60,43,195,78,213,116,33,14,61,129,142,140,205,94,221,236,188,139,118,236,44,41,17,184,60,253,149,55,253,187,45,112,188,31,242,22,183,87,246,192,62,43,84,200,97,128,233,9,63,214,138,88,22,251,141,66,63,22,58,107,244,157,123,112,63,79,130,230,146,144,60,148,63,230,116,42,223,216,17,178,63,172,123,131,42,79,250,199,63,232,206,189,113,137,148,215,63,64,225,202,11,211,148,224,63,112,53,188,253,206,148,221,63,148,252,104,81,164,192,192,63,31,154,94,31,215,130,207,191,241,31,50,20,14,215,210,191,19,174,108,12,196,36,148,63,66,75,234,253,244,24,208,63,160,235,137,104,61,241,180,63,164,172,37,86,138,74,199,191,153,244,16,212,125,195,187,191,76,152,60,224,136,161,192,63,224,196,76,6,70,14,186,63,254,226,126,147,69,187,184,191,159,133,156,191,151,19,181,191,216,34,82,33,82,54,179,63,241,131,51,163,158,127,174,63,164,44,106,202,232,86,174,191,45,22,31,133,1,150,163,191,146,170,13,140,35,116,167,63,130,90,154,210,228,121,149,63,20,105,102,210,0,42,161,191,138,39,243,122,75,23,130,191,82,154,167,2,88,41,151,63,67,210,132,230,90,178,91,63,151,157,37,99,74,48,140,191,192,95,126,40,110,228,88,63,3,168,105,10,160,66,126,63,246,6,95,93,130,106,98,191,174,90,165,206,212,206,107,191,229,176,43,192,130,196,93,63,179,218,98,19,83,181,84,63,183,243,96,201,231,53,82,191,248,91,51,235,63,128,53,191,201,184,89,239,202,253,65,63,52,220,178,119,250,22,240,62,76,28,194,121,252,243,44,191,171,21,40,192,167,188,6,63,150,228,14,157,159,126,18,63,35,225,142,121,244,62,0,191,191,21,229,227,23,48,241,190,175,252,191,215,253,102,236,62,29,255,170,10,116,9,191,62,252,29,209,182,195,19,210,190,13,151,97,185,46,74,160,62,188,70,135,33,20,208,176,62,200,52,180,166,70,116,151,190,139,142,176,59,237,67,132,190,217,75,106,96,52,197,125,62,166,201,21,51,28,251,54,62,8,31,244,132,200,46,88,190,201,79,12,4,223,36,50,62,105,221,163,203,3,0,40,62,132,248,132,253,42,73,22,190,68,168,84,28,233,89,220,189,2,102,148,127,117,191,234,61,197,167,224,217,97,156,193,189,109,118,67,112,97,192,174,189,44,182,243,150,134,220,155,61,46,3,56,196,241,128,77,189,63,146,29,208,68,29,95,189,145,82,57,119,68,4,64,61,209,95,31,164,240,71,192,188,145,37,189,12,204,156,247,188,83,108,198,15,90,107,213,60,177,254,151,64,144,72,161,188,239,231,227,104,181,160,86,60,204,131,2,255,169,235,183,62,147,192,31,212,246,191,2,63,150,160,66,133,16,154,59,63,51,123,146,84,180,65,105,63,96,90,48,10,54,3,144,63,127,69,43,45,192,163,173,63,43,131,174,52,61,125,196,63,153,6,222,46,110,43,213,63,201,139,92,90,38,200,223,63,97,225,160,95,37,147,223,63,181,227,46,186,61,69,203,63,234,203,38,46,53,104,199,191,70,208,19,106,85,150,212,191,139,34,57,62,101,225,175,191,76,215,156,183,77,182,205,63,170,19,211,95,182,50,195,63,57,237,251,108,92,38,194,191,12,125,201,210,3,120,196,191,242,225,95,67,97,236,181,63,128,68,2,197,224,25,194,63,250,76,110,122,230,248,172,191,18,209,8,162,5,95,189,191,231,27,244,74,170,16,166,63,105,82,154,6,7,83,182,63,101,206,246,115,231,189,162,191,57,20,205,12,210,159,175,191,175,28,154,43,250,96,160,63,142,216,198,35,22,130,164,63,33,62,9,155,113,137,155,191,103,68,198,70,59,171,151,191,87,128,212,254,6,104,149,63,219,78,138,228,120,31,135,63,62,199,72,53,5,28,142,191,221,110,163,47,253,235,112,191,57,219,210,130,51,223,130,63,251,33,255,65,49,111,66,63,88,234,111,159,168,197,116,191,106,45,17,131,123,126,71,63,186,226,190,206,160,170,99,63,176,246,223,194,56,175,75,191,143,185,66,118,240,225,78,191,109,159,152,39,107,10,67,63,50,254,221,215,54,119,50,63,38,65,15,96,53,221,51,191,170,171,203,167,136,226,7,191,24,44,167,251,182,138,32,63,92,184,61,46,14,59,232,190,137,237,54,191,199,227,5,191,223,165,232,188,205,250,235,62,174,87,54,155,71,193,229,62,5,192,190,139,220,20,219,190,70,220,84,101,211,4,186,190,65,126,116,40,1,9,194,62,41,166,230,60,72,200,118,190,242,135,170,182,58,104,161,190,224,85,174,173,234,189,130,62,71,33,114,98,173,140,118,62,126,234,137,104,143,57,106,190,45,95,130,159,13,76,55,190,90,139,51,46,89,56,70,62,76,132,139,60,11,173,24,190,199,57,34,160,213,45,23,190,212,191,50,187,189,19,2,62,247,172,161,236,117,129,210,61,233,147,158,30,78,193,214,189,213,85,63,216,250,57,168,61,13,216,222,42,164,171,155,61,228,185,35,121,63,219,133,189,133,174,83,90,92,146,29,61,118,107,13,140,99,116,73,61,8,196,150,8,162,236,39,189,3,252,184,176,253,112,192,188,111,149,94,197,173,107,226,60,73,231,178,110,91,190,191,188,51,108,253,180,118,208,136,60,179,28,46,2,77,168,63,188,104,97,97,114,0,0,0,0,100,98,49,0,0,0,0,0,10,32,70,105,108,116,101,114,32,78,111,116,32,105,110,32,68,97,116,97,98,97,115,101,32,0,0,0,0,0,0,0,98,105,111,114,49,46,49,0,98,105,111,114,49,46,51,0,98,105,111,114,49,46,53,0,98,105,111,114,50,46,50,0,98,105,111,114,50,46,52,0,98,105,111,114,50,46,54,0,98,105,111,114,50,46,56,0,98,105,111,114,51,46,49,0,98,105,111,114,51,46,51,0,98,105,111,114,51,46,53,0,98,105,111,114,51,46,55,0,98,105,111,114,51,46,57,0,98,105,111,114,52,46,52,0,98,105,111,114,53,46,53,0,98,105,111,114,54,46,56,0,114,98,105,111,114,49,46,49,0,0,0,0,0,0,0,0,114,98,105,111,114,49,46,51,0,0,0,0,0,0,0,0,114,98,105,111,114,49,46,53,0,0,0,0,0,0,0,0,114,98,105,111,114,50,46,50,0,0,0,0,0,0,0,0,114,98,105,111,114,50,46,52,0,0,0,0,0,0,0,0,114,98,105,111,114,50,46,54,0,0,0,0,0,0,0,0,114,98,105,111,114,50,46,56,0,0,0,0,0,0,0,0,114,98,105,111,114,51,46,49,0,0,0,0,0,0,0,0,114,98,105,111,114,51,46,51,0,0,0,0,0,0,0,0,114,98,105,111,114,51,46,53,0,0,0,0,0,0,0,0,114,98,105,111,114,51,46,55,0,0,0,0,0,0,0,0,114,98,105,111,114,51,46,57,0,0,0,0,0,0,0,0,114,98,105,111,114,52,46,52,0,0,0,0,0,0,0,0,114,98,105,111,114,53,46,53,0,0,0,0,0,0,0,0,114,98,105,111,114,54,46,56,0,0,0,0,0,0,0,0,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,100,98,50,0,0,0,0,0,21,191,72,71,221,232,222,63,113,253,227,214,189,196,234,63,9,113,107,11,191,176,204,63,144,6,147,193,125,144,192,191,100,98,51,0,0,0,0,0,100,210,80,110,121,74,213,63,187,40,125,36,14,210,233,63,68,247,240,11,162,110,221,63,41,150,197,133,10,72,193,191,60,72,13,181,122,223,181,191,185,137,55,55,46,9,162,63,100,98,52,0,0,0,0,0,192,94,241,42,5,125,205,63,72,215,69,234,5,224,230,63,58,228,61,221,44,48,228,63,251,91,219,249,198,167,156,191,212,4,198,183,193,240,199,191,169,131,99,25,226,148,159,63,123,17,104,199,10,214,160,63,41,46,183,48,23,180,133,191,100,98,53,0,0,0,0,0,17,185,167,65,60,126,196,63,12,176,196,194,145,82,227,63,245,84,59,20,137,45,231,63,198,252,190,115,3,184,193,63,116,20,248,211,132,3,207,191,116,220,168,72,102,130,160,191,170,21,37,181,185,219,179,63,232,242,121,69,173,144,121,191,40,65,41,243,239,195,137,191,9,60,78,224,133,83,107,63,100,98,54,0,0,0,0,0,82,57,220,36,239,141,188,63,169,57,69,246,234,167,223,63,187,192,59,250,73,9,232,63,33,47,169,207,15,45,212,63,241,22,105,210,61,246,204,191,235,34,39,98,51,156,192,191,82,23,78,127,221,245,184,63,73,37,97,61,244,46,156,63,206,232,4,100,133,43,160,191,193,167,16,18,247,37,66,63,27,163,98,76,81,145,115,63,102,100,122,59,135,166,81,191,100,98,55,0,0,0,0,0,177,182,56,186,28,238,179,63,3,48,48,116,230,96,217,63,254,193,148,210,12,85,231,63,220,77,41,186,233,16,222,63,51,30,73,14,131,107,194,191,151,171,213,187,55,173,204,191,28,130,167,44,82,65,178,63,83,250,242,39,7,163,180,63,204,69,207,238,168,120,163,191,9,231,255,168,234,248,144,191,112,13,165,130,86,180,137,63,212,115,67,88,31,39,60,63,49,47,203,249,160,132,93,191,211,16,250,51,85,46,55,63,100,98,56,0,0,0,0,0,221,8,163,173,100,220,171,63,30,195,180,144,22,6,212,63,96,55,146,89,196,158,229,63,40,94,219,190,57,187,226,63,198,149,154,69,129,53,144,191,111,213,36,135,79,45,210,191,176,98,246,202,249,246,62,63,9,186,99,177,203,122,192,63,157,80,7,15,66,201,145,191,226,127,138,81,188,146,166,191,180,133,91,205,21,162,140,63,252,245,53,223,120,233,129,63,74,199,58,109,239,242,115,191,93,230,152,23,80,172,57,191,65,243,46,142,20,34,70,63,195,63,142,200,187,203,30,191,100,98,57,0,0,0,0,0,124,218,64,229,243,126,163,63,160,194,139,128,249,53,207,63,136,162,3,6,182,90,227,63,53,254,232,1,129,8,229,63,34,251,3,168,156,12,193,63,239,83,253,102,255,196,210,191,252,152,220,188,142,202,184,191,113,231,67,30,98,3,195,63,151,121,103,148,141,118,159,63,162,81,244,148,98,80,177,191,13,202,182,166,49,114,48,63,135,136,5,190,249,229,150,63,191,59,120,159,163,88,115,191,182,191,179,100,123,137,113,191,31,113,252,187,151,69,94,63,11,81,188,163,118,50,46,63,138,151,3,168,61,131,48,191,181,49,173,161,27,161,4,63,100,98,49,48,0,0,0,0,227,122,220,73,101,79,155,63,254,140,25,105,45,22,200,63,116,248,27,7,213,222,224,63,117,215,98,64,219,7,230,63,103,245,35,73,186,254,209,63,227,17,193,182,247,250,207,191,2,168,28,124,196,20,201,191,131,174,160,119,163,77,192,63,141,209,159,129,155,210,183,63,196,154,52,7,227,70,178,191,37,43,21,213,29,42,158,191,60,143,203,105,64,1,161,63,20,23,226,179,125,139,109,63,220,14,119,109,70,251,133,191,221,56,174,135,135,220,86,63,216,140,169,114,96,82,96,63,240,80,140,9,98,121,70,191,221,80,220,85,245,135,30,191,51,228,250,28,161,136,24,63,219,67,26,42,42,209,235,190,100,98,49,49,0,0,0,0,145,96,7,22,153,36,147,63,207,20,35,196,201,112,194,63,223,201,152,97,40,203,220,63,204,18,50,100,37,241,229,63,22,232,239,204,159,93,218,63,108,246,43,107,111,197,196,191,70,204,168,137,255,140,209,191,143,77,106,139,59,232,176,63,50,167,11,63,10,45,195,63,9,154,74,126,56,204,167,191,124,255,190,219,33,2,177,191,153,128,106,39,39,11,160,63,229,139,149,106,81,87,149,63,247,131,104,90,151,119,143,191,139,106,52,243,73,94,107,191,172,249,117,10,210,47,116,63,51,17,132,60,84,57,52,191,58,174,253,211,56,67,77,191,162,110,188,240,21,84,48,63,56,60,25,93,176,138,12,63,140,62,187,254,160,40,2,191,120,13,225,180,176,217,210,62,100,98,49,50,0,0,0,0,87,250,210,120,153,218,138,63,121,248,130,6,137,12,188,63,189,64,46,39,150,38,216,63,107,111,142,157,197,7,229,63,120,121,41,92,36,130,224,63,93,133,217,193,74,235,166,191,34,91,164,141,68,60,212,191,178,179,243,240,150,89,152,191,59,221,86,126,117,91,199,63,142,54,141,135,234,243,117,63,131,51,25,130,198,175,184,191,98,67,28,157,17,56,134,63,176,78,57,190,141,69,165,63,155,56,63,81,23,6,137,191,81,42,62,98,74,76,138,191,233,164,255,75,132,125,123,63,129,209,248,209,171,107,98,63,66,193,110,24,192,218,97,191,37,205,203,36,199,115,219,62,251,11,190,49,132,120,57,63,232,180,184,4,105,51,23,191,169,63,246,86,74,107,249,190,58,66,12,241,146,203,234,62,243,194,125,45,80,167,185,190],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([100,98,49,51,0,0,0,0,59,126,211,116,145,216,130,63,76,61,138,252,100,54,181,63,232,175,9,108,191,247,211,63,187,52,24,0,197,141,227,63,114,164,190,240,46,216,226,63,181,15,41,81,178,68,182,63,174,197,111,32,132,40,212,191,99,215,106,184,66,228,191,191,164,26,200,121,18,249,198,63,139,124,85,4,200,172,178,63,204,234,200,67,53,22,187,191,6,151,35,222,198,31,155,191,94,13,82,68,80,190,172,63,44,233,227,223,41,127,99,63,199,176,69,146,67,103,152,191,176,163,26,3,141,18,112,63,49,38,23,115,9,184,125,63,16,126,172,205,37,160,102,191,246,44,31,27,86,142,85,191,171,76,226,30,235,140,78,63,202,23,127,132,109,210,9,63,164,100,0,54,207,164,37,191,211,66,85,134,154,21,0,63,53,216,140,2,248,229,229,62,52,190,195,164,8,183,211,190,160,163,141,219,249,131,161,62,100,98,49,52,0,0,0,0,172,99,227,172,2,119,122,63,119,184,92,15,70,238,175,63,35,244,98,127,119,79,208,63,92,114,161,34,223,188,225,63,212,54,49,220,176,50,228,63,172,88,66,174,102,253,203,63,29,7,175,97,88,99,209,191,191,83,96,208,133,232,203,191,89,115,188,50,239,182,193,63,91,197,3,252,40,235,193,63,247,76,170,214,36,53,182,191,38,237,243,71,8,81,178,191,205,224,157,101,10,72,172,63,244,73,33,169,3,161,155,63,172,169,188,166,232,232,158,191,123,166,146,97,206,255,118,191,78,146,125,186,96,49,138,63,24,175,200,19,189,115,72,191,103,31,68,33,71,137,111,191,195,196,110,31,14,101,81,63,106,140,229,217,79,51,71,63,1,218,16,144,246,89,57,191,1,2,2,60,63,231,5,191,248,20,232,162,18,6,18,63,28,94,79,54,191,173,229,190,109,183,63,229,104,105,210,190,187,61,19,180,203,240,188,62,162,109,196,240,144,252,135,190,100,98,49,53,0,0,0,0,206,109,162,88,0,151,114,63,196,164,188,16,192,238,167,63,126,133,2,111,253,94,202,63,115,63,29,105,71,135,223,63,180,48,165,81,128,170,228,63,121,129,194,176,55,178,213,63,69,91,137,202,233,186,200,191,31,224,40,110,13,125,210,191,47,199,120,51,98,182,176,63,91,29,13,63,186,86,200,63,13,4,33,6,32,79,164,191,22,74,46,242,107,114,188,191,188,121,119,82,88,88,161,63,99,70,111,66,50,12,172,63,196,111,42,151,170,98,154,191,198,183,160,211,58,79,149,191,112,52,0,53,81,228,142,63,45,236,152,91,201,228,116,63,174,220,47,252,225,146,122,191,101,142,93,113,0,176,47,191,232,213,61,60,228,214,95,63,10,186,36,127,254,121,56,191,34,227,30,247,128,144,55,191,0,89,203,166,4,111,36,63,15,198,32,202,172,11,251,62,9,122,244,101,249,127,253,190,114,51,84,193,245,53,204,62,83,75,228,223,88,99,190,62,164,191,28,29,41,50,165,190,25,112,51,22,208,118,112,62,100,98,49,54,0,0,0,0,134,236,94,242,71,32,106,63,96,236,203,134,108,223,161,63,7,65,169,145,211,32,197,63,121,72,235,95,62,138,219,63,52,89,70,27,57,101,228,63,4,194,132,47,183,45,220,63,199,153,195,105,237,249,182,191,236,22,156,243,154,238,212,191,134,189,147,59,151,150,156,191,59,118,220,241,75,8,203,63,195,75,186,10,22,255,155,63,95,124,98,153,25,242,192,191,10,29,135,210,210,142,121,191,6,177,200,78,197,111,179,63,244,63,151,203,157,21,127,191,81,42,96,59,9,227,162,191,192,226,16,123,240,22,133,63,195,84,206,220,195,168,140,63,65,193,44,191,143,161,124,191,21,140,86,185,155,218,109,191,129,237,242,195,240,159,105,63,19,5,97,49,96,187,58,63,63,154,180,209,220,213,78,191,69,40,161,94,158,242,29,63,90,62,6,1,227,232,38,63,233,131,66,234,13,0,16,191,175,117,181,38,6,63,237,190,70,35,93,161,75,198,231,62,192,231,69,211,26,130,177,190,161,34,112,64,85,181,168,190,123,155,169,245,235,252,142,62,3,129,226,206,27,166,86,190,100,98,49,55,0,0,0,0,108,216,27,248,104,93,98,63,244,206,133,64,234,155,154,63,109,58,58,99,166,203,192,63,208,69,18,134,211,179,215,63,219,160,74,198,72,141,227,63,142,6,244,240,10,150,224,63,86,29,75,162,116,248,155,63,210,146,52,7,53,3,213,191,52,118,185,177,107,52,192,191,163,8,171,48,121,65,201,63,63,113,123,242,3,228,185,63,111,87,103,32,127,59,192,191,27,137,102,40,22,59,173,191,182,126,48,168,92,195,180,63,96,176,186,136,11,217,150,63,200,53,169,196,55,6,168,191,119,74,178,225,176,203,106,191,115,151,200,53,127,71,151,63,203,145,118,206,156,237,104,191,209,131,163,148,104,158,129,191,146,19,49,23,87,80,104,63,123,179,52,40,250,217,98,63,236,142,252,229,144,138,87,191,157,228,138,112,38,129,53,191,69,81,214,163,1,205,60,63,65,211,28,84,169,218,250,190,26,11,253,116,38,130,21,191,252,240,31,182,41,80,248,62,46,243,93,196,25,82,221,62,83,127,117,9,56,230,210,190,47,231,124,140,100,62,148,62,45,107,135,160,74,217,147,62,142,245,210,174,228,156,118,190,41,138,0,106,177,54,63,62,100,98,49,56,0,0,0,0,117,24,138,53,134,211,89,63,103,179,197,115,95,192,147,63,68,59,243,16,198,132,186,63,185,19,114,36,179,35,212,63,81,173,202,187,103,76,226,63,54,116,241,251,50,76,226,63,234,38,144,249,52,216,194,63,58,80,83,81,58,203,210,191,87,59,225,177,165,181,203,191,66,218,88,231,237,35,195,63,219,163,11,163,235,98,197,63,114,82,206,246,15,163,183,191,110,177,45,128,29,84,187,191,99,1,143,215,114,156,176,63,18,77,119,54,210,53,173,63,161,170,148,102,33,204,166,191,44,207,234,201,132,77,152,191,66,152,220,198,144,79,155,63,165,134,13,233,91,166,121,63,120,249,163,30,188,186,138,191,127,151,133,118,32,25,31,63,83,216,228,177,120,63,116,63,114,202,238,13,78,84,82,191,6,35,139,80,222,246,85,191,204,7,10,199,243,151,68,63,206,19,153,165,155,254,43,63,13,28,55,18,138,9,42,191,144,218,66,253,94,157,132,190,175,6,44,140,103,157,3,63,237,59,25,178,118,222,225,190,148,45,42,46,199,244,203,190,219,217,223,125,144,172,189,62,104,14,41,85,166,165,116,190,59,216,228,212,22,146,127,190,24,69,252,160,198,121,96,62,109,38,168,149,1,139,37,190,100,98,49,57,0,0,0,0,90,216,254,23,25,42,82,63,244,59,96,150,104,63,141,63,74,17,91,118,164,206,180,63,242,36,241,116,189,235,208,63,145,99,65,204,46,200,224,63,48,110,11,230,41,65,227,63,183,248,84,190,128,178,208,63,4,200,83,75,25,50,205,191,62,199,212,29,46,75,210,191,250,237,247,64,105,28,179,63,66,64,104,193,70,46,203,63,179,91,143,162,87,41,161,191,155,149,67,57,205,70,194,191,152,29,70,111,18,63,156,63,236,230,233,104,133,63,182,63,231,203,253,219,35,35,155,191,155,249,66,184,156,98,167,191,96,166,92,119,138,36,150,63,4,208,118,36,47,215,147,63,68,50,47,191,241,165,140,191,23,178,51,245,233,7,120,191,249,216,229,58,194,214,124,63,181,201,157,233,116,50,73,63,26,229,227,98,52,4,102,191,73,194,243,252,152,102,54,63,102,116,133,225,91,28,72,63,102,42,67,122,107,21,49,191,215,0,175,166,232,84,32,191,246,60,219,222,8,214,22,63,39,213,155,251,120,106,213,62,18,63,59,53,208,114,241,190,241,48,103,35,255,65,201,62,99,86,185,120,152,179,185,62,237,205,201,237,15,7,167,190,250,234,219,185,115,19,79,62,222,120,200,112,245,228,104,62,224,217,165,58,124,249,71,190,11,208,46,220,112,199,13,62,100,98,50,48,0,0,0,0,63,34,173,161,185,142,73,63,119,11,65,199,235,154,133,63,187,69,220,118,138,60,176,63,248,177,91,44,16,39,204,63,127,172,54,128,167,64,222,63,181,115,245,29,41,137,227,63,116,233,160,137,218,34,215,63,28,205,155,162,179,209,193,191,242,59,40,47,19,234,212,191,38,170,250,228,231,32,145,191,145,217,158,34,164,56,205,63,26,30,140,98,64,103,164,63,246,21,21,133,18,230,195,191,66,38,82,52,94,79,153,191,47,127,129,68,202,47,186,63,106,212,225,192,214,17,119,63,46,198,154,214,36,154,175,191,249,35,25,228,12,16,120,63,162,236,169,224,224,136,160,63,164,12,209,56,35,0,130,191,241,5,204,112,177,72,140,191,11,147,6,23,35,136,123,63,232,34,186,79,70,27,114,63,239,30,232,22,240,86,109,191,138,88,30,43,166,63,75,191,130,75,116,129,209,208,86,63,145,191,87,124,83,12,12,191,123,70,27,77,252,60,57,191,39,4,120,195,193,157,26,63,109,246,159,149,36,194,17,63,13,80,92,180,67,116,3,191,197,52,236,67,217,90,210,190,179,65,72,44,59,95,222,62,116,193,102,46,123,250,176,190,134,53,5,186,152,249,166,190,119,74,25,32,12,173,145,62,134,131,161,251,67,175,235,61,229,53,18,103,154,124,83,190,184,54,188,68,194,107,49,62,149,167,196,227,155,155,244,189,100,98,50,49,0,0,0,0,100,98,50,50,0,0,0,0,100,98,50,51,0,0,0,0,100,98,50,52,0,0,0,0,100,98,50,53,0,0,0,0,100,98,50,54,0,0,0,0,100,98,50,55,0,0,0,0,100,98,50,56,0,0,0,0,100,98,50,57,0,0,0,0,100,98,51,48,0,0,0,0,100,98,51,49,0,0,0,0,100,98,51,50,0,0,0,0,100,98,51,51,0,0,0,0,100,98,51,52,0,0,0,0,100,98,51,53,0,0,0,0,100,98,51,54,0,0,0,0,100,98,51,55,0,0,0,0,100,98,51,56,0,0,0,0,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,59,127,102,158,160,182,191,205,59,127,102,158,160,182,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,182,63,205,59,127,102,158,160,182,191,217,108,223,204,118,248,144,63,217,108,223,204,118,248,144,191,57,242,238,204,217,28,191,191,57,242,238,204,217,28,191,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,57,242,238,204,217,28,191,63,57,242,238,204,217,28,191,191,217,108,223,204,118,248,144,191,217,108,223,204,118,248,144,63,205,59,127,102,158,160,198,191,205,59,127,102,158,160,214,63,217,108,223,204,118,248,240,63,205,59,127,102,158,160,214,63,205,59,127,102,158,160,198,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,59,127,102,158,160,214,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,214,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,217,108,223,204,118,248,160,63,217,108,223,204,118,248,176,191,205,59,127,102,158,160,198,191,3,23,183,25,188,222,218,63,24,236,34,192,222,209,239,63,3,23,183,25,188,222,218,63,205,59,127,102,158,160,198,191,217,108,223,204,118,248,176,191,217,108,223,204,118,248,160,63,0,0,0,0,0,0,0,0,192,10,31,0,198,72,124,191,192,10,31,0,198,72,140,63,137,47,231,76,168,10,168,63,225,16,235,12,193,147,187,191,119,67,126,54,88,190,197,191,175,7,185,121,72,163,220,63,194,243,33,144,152,239,238,63,175,7,185,121,72,163,220,63,119,67,126,54,88,190,197,191,225,16,235,12,193,147,187,191,137,47,231,76,168,10,168,63,192,10,31,0,198,72,140,63,192,10,31,0,198,72,124,191,0,0,0,0,0,0,0,0,104,41,27,64,173,191,88,63,104,41,27,64,173,191,104,191,20,26,29,160,57,132,138,191,65,127,32,72,47,156,157,63,182,148,234,244,157,34,171,63,67,90,121,227,212,68,193,191,43,106,125,204,90,248,196,191,77,23,58,62,197,154,221,63,243,107,225,45,218,115,238,63,77,23,58,62,197,154,221,63,43,106,125,204,90,248,196,191,67,90,121,227,212,68,193,191,182,148,234,244,157,34,171,63,65,127,32,72,47,156,157,63,20,26,29,160,57,132,138,191,104,41,27,64,173,191,104,191,104,41,27,64,173,191,88,63,0,0,0,0,0,0,0,0,205,59,127,102,158,160,214,191,217,108,223,204,118,248,240,63,217,108,223,204,118,248,240,63,205,59,127,102,158,160,214,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,59,127,102,158,160,198,63,217,108,223,204,118,248,224,63,217,108,223,204,118,248,224,63,205,59,127,102,158,160,198,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,217,108,223,204,118,248,176,63,70,35,79,51,178,116,201,191,83,84,175,153,138,204,195,191,24,236,34,192,222,209,239,63,24,236,34,192,222,209,239,63,83,84,175,153,138,204,195,191,70,35,79,51,178,116,201,191,217,108,223,204,118,248,176,63,192,10,31,0,198,72,140,191,16,72,23,128,148,54,165,63,3,23,183,25,188,222,170,63,81,107,172,9,184,37,209,191,150,96,71,179,128,98,178,191,194,243,33,144,152,239,238,63,194,243,33,144,152,239,238,63,150,96,71,179,128,98,178,191,81,107,172,9,184,37,209,191,3,23,183,25,188,222,170,63,16,72,23,128,148,54,165,63,192,10,31,0,198,72,140,191,104,41,27,64,173,191,104,63,14,95,20,240,193,143,130,191,141,234,18,168,88,60,145,191,68,250,20,206,45,29,179,63,230,52,171,77,224,10,160,63,224,192,46,237,48,70,211,191,182,148,234,244,157,34,155,191,243,107,225,45,218,115,238,63,243,107,225,45,218,115,238,63,182,148,234,244,157,34,155,191,224,192,46,237,48,70,211,191,230,52,171,77,224,10,160,63,68,250,20,206,45,29,179,63,141,234,18,168,88,60,145,191,14,95,20,240,193,143,130,191,104,41,27,64,173,191,104,63,221,62,229,236,27,70,70,191,38,239,171,241,148,180,96,63,71,140,227,24,33,186,116,63,237,248,227,205,31,29,149,191,98,133,236,84,42,231,140,191,242,115,181,168,229,96,185,63,147,165,27,88,208,48,137,63,80,74,35,116,6,126,212,191,98,110,18,144,53,203,96,63,151,73,36,204,228,37,238,63,151,73,36,204,228,37,238,63,98,110,18,144,53,203,96,63,80,74,35,116,6,126,212,191,147,165,27,88,208,48,137,63,242,115,181,168,229,96,185,63,98,133,236,84,42,231,140,191,237,248,227,205,31,29,149,191,71,140,227,24,33,186,116,63,38,239,171,241,148,180,96,63,221,62,229,236,27,70,70,191,119,22,134,86,64,94,163,63,120,245,36,129,254,107,152,191,204,221,29,135,225,81,188,191,37,139,145,78,94,39,216,63,113,240,117,189,78,73,235,63,37,139,145,78,94,39,216,63,204,221,29,135,225,81,188,191,120,245,36,129,254,107,152,191,119,22,134,86,64,94,163,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,236,53,198,158,133,176,191,56,107,217,75,62,213,164,191,252,157,12,24,6,194,218,63,22,130,250,47,70,59,233,63,252,157,12,24,6,194,218,63,56,107,217,75,62,213,164,191,68,236,53,198,158,133,176,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,23,13,181,221,81,164,63,222,199,75,21,25,71,128,63,40,30,147,124,173,226,171,191,142,221,212,157,101,30,214,63,166,252,111,95,184,146,231,63,142,221,212,157,101,30,214,63,40,30,147,124,173,226,171,191,222,199,75,21,25,71,128,63,99,23,13,181,221,81,164,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,60,79,248,48,143,139,63,6,236,164,83,193,19,102,191,175,252,35,243,153,127,193,191,52,2,92,129,236,239,183,191,69,192,78,216,241,131,222,63,51,134,125,9,193,200,236,63,69,192,78,216,241,131,222,63,52,2,92,129,236,239,183,191,175,252,35,243,153,127,193,191,6,236,164,83,193,19,102,191,10,60,79,248,48,143,139,63,0,0,0,0,0,0,0,0,120,168,110,120,56,70,95,63,183,178,116,20,25,93,95,191,13,34,71,138,254,101,145,191,199,28,140,60,38,113,136,63,185,179,14,84,151,118,169,63,43,54,240,241,132,199,179,191,70,233,230,146,67,20,184,191,101,92,43,138,83,238,218,63,223,35,227,16,246,109,234,63,101,92,43,138,83,238,218,63,70,233,230,146,67,20,184,191,43,54,240,241,132,199,179,191,185,179,14,84,151,118,169,63,199,28,140,60,38,113,136,63,13,34,71,138,254,101,145,191,183,178,116,20,25,93,95,191,120,168,110,120,56,70,95,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,219,31,132,220,134,139,141,63,120,106,23,163,35,161,141,63,175,39,10,4,32,39,180,191,92,90,123,155,28,171,164,191,121,164,157,48,10,190,218,63,4,236,213,220,248,72,232,63,121,164,157,48,10,190,218,63,92,90,123,155,28,171,164,191,175,39,10,4,32,39,180,191,120,106,23,163,35,161,141,63,219,31,132,220,134,139,141,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,111,105,102,49,0,0,0,211,241,165,83,255,84,170,191,117,124,233,212,63,149,206,63,58,190,116,234,159,74,227,63,139,131,22,43,192,106,209,63,211,241,165,83,255,84,170,191,178,56,104,177,2,172,134,191,99,111,105,102,50,0,0,0,110,150,65,232,60,187,135,63,35,72,3,39,25,6,158,191,106,224,194,100,55,100,168,191,23,35,127,68,45,121,209,63,153,120,230,84,204,99,226,63,186,128,101,166,26,223,210,63,85,82,73,211,27,177,171,191,14,61,74,174,126,132,165,191,21,27,43,88,114,37,145,63,55,209,161,165,160,64,112,63,120,63,41,144,79,31,85,191,137,227,93,131,10,178,64,191,99,111,105,102,51,0,0,0,148,192,231,142,112,249,101,191,13,42,198,83,114,138,118,63,234,24,163,231,71,251,144,63,179,116,228,158,221,207,167,191,214,158,255,43,8,33,166,191,204,126,204,21,18,86,210,63,87,133,191,127,12,246,225,63,195,84,255,52,21,100,211,63,36,166,79,60,139,254,169,191,145,169,138,35,230,203,173,191,196,49,17,80,64,5,153,63,159,223,134,53,91,255,134,63,55,18,127,192,2,23,122,191,180,109,99,224,142,211,93,191,21,87,106,136,184,228,73,63,36,192,219,35,221,154,53,63,253,105,3,154,194,80,10,191,33,141,187,116,120,167,249,190,99,111,105,102,52,0,0,0,49,109,82,226,226,172,68,63,122,5,217,83,200,224,82,191,157,43,32,187,218,70,117,191,137,13,200,195,51,69,135,63,156,8,125,242,238,81,147,63,234,0,81,255,243,107,173,191,49,194,88,63,90,77,164,191,110,128,28,95,114,203,210,63,27,80,94,64,54,179,225,63,248,14,240,33,119,168,211,63,152,195,199,37,41,31,168,191,200,112,108,37,242,106,177,191,99,79,122,148,45,123,156,63,227,37,182,127,87,41,146,63,23,109,228,80,104,7,134,191,139,24,174,43,93,99,112,191,127,165,160,161,10,187,101,63,24,30,162,80,201,88,77,63,141,29,122,183,182,75,59,191,159,100,54,98,76,24,40,191,167,12,193,13,89,28,7,63,47,141,69,175,209,39,247,62,50,49,209,181,198,85,195,190,97,45,75,175,4,45,181,190,99,111,105,102,53,0,0,0,165,149,56,113,249,167,35,191,115,230,120,199,232,157,48,63,56,207,85,71,110,60,89,63,77,197,241,80,227,23,104,191,124,235,237,195,29,88,125,191,97,70,234,55,14,243,144,63,44,55,188,157,166,101,148,63,163,166,229,212,187,163,176,191,133,13,42,199,200,215,162,191,191,142,245,212,0,20,211,63,160,41,248,16,48,133,225,63,160,125,19,9,33,210,211,63,147,233,25,213,198,117,166,191,123,167,76,143,229,27,179,191,156,19,191,170,54,229,157,63,59,180,69,153,185,168,151,63,17,233,93,41,251,156,140,191,192,157,223,69,93,135,122,191,166,99,166,68,93,149,115,63,42,6,108,245,157,43,92,63,43,210,250,188,22,64,83,191,58,62,4,199,138,139,61,191,36,117,133,112,13,250,43,63,24,65,106,244,88,4,26,63,38,3,65,220,11,144,254,190,90,84,54,144,181,138,239,190,114,224,13,83,142,243,197,62,183,26,216,104,237,115,184,62,20,133,139,47,94,210,126,190,180,191,91,7,200,58,114,190,99,111,105,102,54,0,0,0,215,214,159,116,233,210,2,63,217,12,106,72,139,23,14,191,79,2,111,32,246,241,60,191,8,7,8,102,32,75,73,63,35,68,209,163,12,128,100,63,164,139,149,107,253,91,116,191,132,37,233,94,149,182,129,191,170,92,95,204,64,119,149,63,143,27,167,78,231,215,148,63,255,63,12,13,241,10,178,191,179,34,40,255,139,167,161,191,205,160,198,118,56,69,211,63,234,129,174,46,17,99,225,63,112,27,105,3,39,238,211,63,19,46,223,25,165,9,165,191,174,183,234,193,69,82,180,191,224,70,111,204,239,77,158,63,154,241,15,189,48,39,156,63,49,20,241,171,32,158,144,191,25,39,130,180,186,81,130,191,155,117,141,26,93,199,123,63,153,197,22,195,143,88,102,63,185,205,63,122,96,206,97,191,6,181,115,91,125,209,74,191,45,167,225,153,128,214,65,63,57,207,15,239,104,36,46,63,106,235,64,32,44,167,28,191,231,173,62,58,140,232,11,191,159,145,186,22,79,87,242,62,255,17,51,134,55,124,227,62,123,239,209,33,174,88,193,190,47,211,185,190,67,176,179,190,245,60,113,92,44,105,133,62,100,200,141,117,127,161,121,62,201,82,190,118,132,198,57,190,42,128,180,19,171,31,48,190,99,111,105,102,55,0,0,0,59,60,115,102,223,31,226,190,188,247,178,159,76,191,235,62,241,13,2,190,146,58,32,63,63,20,222,131,83,158,42,191,215,121,138,64,244,23,75,191,184,191,134,175,87,101,88,63,40,157,210,243,162,249,107,63,20,42,108,222,62,201,124,191,20,180,238,224,252,252,131,191,37,128,212,213,36,71,153,63,83,28,227,75,225,243,148,63,150,24,170,183,146,27,179,191,236,144,164,115,118,170,160,191,125,61,131,88,199,104,211,63,202,30,213,191,125,72,225,63,113,121,213,122,68,2,212,63,246,252,132,248,114,210,163,191,124,243,230,217,126,59,181,191,37,21,144,223,169,50,158,63,15,94,197,220,183,218,159,63,241,171,63,83,176,54,146,191,95,208,28,174,239,23,135,191,238,125,33,106,34,116,129,63,51,238,20,216,39,118,111,63,8,103,124,155,216,191,106,191,180,83,85,104,9,223,84,191,143,117,26,239,47,159,80,63,4,153,48,29,196,218,58,63,37,94,181,36,88,26,49,191,168,46,49,212,115,27,31,191,106,155,21,162,6,141,13,63,144,244,53,83,54,250,253,62,134,19,51,95,52,28,229,190,53,57,129,80,81,12,215,190,153,171,191,225,79,192,183,62,15,49,63,138,141,121,171,62,105,12,172,57,159,163,131,190,126,110,63,161,189,210,119,190,220,236,211,210,19,41,69,62,28,154,123,46,27,183,58,62,244,22,6,80,62,63,246,189,90,96,4,22,67,16,237,189,99,111,105,102,56,0,0,0,146,175,171,38,41,134,193,62,140,148,159,18,54,233,201,190,163,201,181,119,159,231,1,191,167,20,182,202,236,250,11,63,183,46,89,22,199,52,49,63,79,151,4,100,121,229,60,191,154,160,105,98,212,168,84,191,112,115,164,230,211,30,99,63,28,216,230,127,233,92,113,63,211,14,220,207,242,115,130,191,62,238,165,230,237,176,133,191,243,202,225,138,38,130,156,63,197,75,201,106,200,223,148,63,196,95,46,163,97,241,179,191,69,0,93,185,234,167,159,191,73,221,91,10,171,131,211,63,180,138,200,235,11,51,225,63,97,20,101,35,99,17,212,63,228,190,209,93,141,198,162,191,123,144,133,106,10,241,181,191,219,238,222,141,91,210,157,63,109,120,57,22,31,120,161,63,111,163,251,108,48,77,147,191,4,162,13,173,90,126,139,191,157,22,121,93,188,113,132,63,110,229,164,130,254,118,116,63,136,23,5,34,227,212,113,191,220,162,142,34,15,121,93,191,127,233,102,26,137,230,89,63,217,90,12,173,90,199,68,63,34,207,217,159,28,216,63,191,70,249,43,136,69,153,43,191,162,166,164,182,242,214,32,63,240,255,227,3,67,58,16,63,202,184,238,34,111,192,254,190,138,196,228,254,74,42,240,190,10,4,100,110,235,209,215,62,189,226,132,95,153,172,202,62,224,182,69,86,28,67,174,190,82,232,237,245,159,212,161,190,155,229,53,170,250,42,126,62,149,9,58,72,157,140,114,62,83,136,174,198,57,20,70,190,40,86,213,155,26,40,60,190,31,114,192,42,139,16,5,62,76,192,5,151,135,184,251,61,134,78,220,55,108,162,179,189,44,6,107,214,235,142,170,189,99,111,105,102,57,0,0,0,113,216,217,47,249,255,160,190,121,232,89,83,23,108,168,62,83,146,100,90,113,131,227,62,62,47,253,253,183,87,237,190,69,25,38,227,63,54,21,191,41,183,124,107,254,228,32,63,0,174,109,233,6,8,61,63,10,57,240,167,59,235,72,191,68,176,25,11,248,12,92,191,129,27,38,213,5,161,106,63,32,97,209,55,192,86,116,63,198,68,232,100,140,68,134,191,255,140,47,159,210,247,134,191,251,38,88,65,84,68,159,63,215,217,159,150,86,176,148,63,233,235,79,79,120,157,180,191,175,154,58,166,130,54,158,191,51,156,230,190,183,152,211,63,83,188,32,174,70,33,225,63,34,228,242,118,38,29,212,63,25,201,54,39,191,221,161,191,177,195,153,241,74,130,182,191,55,240,254,15,95,78,157,63,214,56,133,183,14,197,162,63,216,242,191,120,100,7,148,191,10,182,29,111,3,129,143,191,217,76,188,62,111,232,134,63,12,38,114,107,180,52,121,63,216,34,142,171,120,13,118,191,110,121,233,102,33,115,99,191,195,18,50,75,163,8,98,63,33,208,186,252,89,107,77,63,106,89,141,2,146,99,73,191,9,223,202,118,124,113,53,191,133,154,206,45,207,57,47,63,95,161,100,196,219,206,28,63,56,32,58,83,32,239,16,191,149,232,122,186,178,26,1,191,151,112,28,212,110,37,240,62,73,123,213,193,11,133,225,62,30,55,37,202,50,159,202,190,182,178,27,136,84,132,190,190,69,155,114,50,58,131,162,62,131,97,8,177,194,52,150,62,1,255,223,72,24,16,117,190,158,125,2,55,199,65,106,190,254,69,125,99,181,202,66,62,70,41,62,60,145,55,56,62,129,19,51,151,137,160,8,190,234,77,146,78,216,85,0,190,175,3,153,214,231,14,197,61,26,71,137,137,181,168,188,61,250,56,6,227,40,158,113,189,0,66,248,190,227,134,104,189,99,111,105,102,49,48,0,0,154,178,221,184,65,137,128,62,66,1,53,71,241,46,135,190,35,163,219,169,129,16,197,190,106,206,19,220,169,176,206,62,145,232,117,176,225,140,249,62,133,198,115,95,80,132,3,191,165,193,27,81,172,160,35,191,198,33,38,44,2,213,47,63,193,10,166,143,105,110,69,63,114,242,82,251,239,198,82,191,181,79,97,23,204,176,97,191,249,173,59,217,75,50,113,63,102,118,145,159,55,238,118,63,227,0,251,245,135,206,137,191,151,10,222,239,250,236,135,191,28,30,18,116,65,210,160,63,17,255,105,40,92,113,148,63,17,124,148,184,237,42,181,191,69,32,227,200,41,244,156,191,198,142,157,22,166,169,211,63,177,195,247,233,61,18,225,63,69,76,6,166,140,38,212,63,75,135,204,51,131,17,161,191,40,59,58,165,22,249,182,191,78,119,97,114,19,185,156,63,233,177,55,46,17,225,163,63,204,17,106,57,169,127,148,191,23,245,94,197,72,146,145,191,159,40,225,230,180,234,136,63,196,136,85,226,249,216,125,63,199,7,23,240,102,238,121,191,133,156,68,191,21,111,104,191,207,11,3,84,161,73,103,63,101,116,187,198,37,148,83,63,142,188,132,77,191,62,82,191,174,111,25,36,46,148,62,191,67,145,239,147,121,67,57,63,52,191,66,96,139,148,38,63,207,251,35,42,164,63,31,191,226,55,119,171,93,104,14,191,198,166,121,85,126,82,1,63,186,168,99,177,92,50,242,62,75,132,50,144,122,25,225,190,144,239,195,245,67,21,211,190,94,131,101,145,1,160,189,62,198,46,71,64,114,89,177,62,45,229,3,67,21,26,150,190,193,83,246,43,69,246,138,190,103,194,109,202,137,197,107,62,27,1,117,119,199,138,97,62,149,139,103,6,99,137,60,190,12,123,130,54,72,149,50,190,110,120,87,144,199,0,7,62,27,171,34,12,31,198,254,61,178,139,65,20,2,67,203,189,87,46,106,69,210,172,194,189,149,93,180,190,73,27,133,61,157,221,49,59,8,138,125,61,114,244,241,11,223,2,48,189,158,123,216,109,66,215,38,189,99,111,105,102,49,49,0,0,33,105,139,216,18,31,96,190,33,6,116,159,155,33,102,62,89,242,84,30,185,144,166,62,110,19,205,181,251,1,176,190,12,153,62,19,169,53,222,190,132,240,173,229,94,77,230,62,34,65,220,36,29,189,9,63,255,135,137,15,31,245,19,191,238,113,213,149,36,86,47,191,169,72,208,101,101,216,57,63,9,146,92,57,217,2,77,63,184,145,108,246,18,234,89,191,176,54,214,107,46,57,101,191,137,41,231,235,7,24,117,63,225,225,189,226,98,44,121,63,216,82,77,98,181,17,141,191,176,29,73,167,69,164,136,191,25,99,209,58,97,218,161,63,46,195,43,210,213,41,148,63,6,56,22,140,64,161,181,191,82,24,80,185,177,215,155,191,103,119,153,77,145,183,211,63,31,233,42,56,79,5,225,63,142,70,179,191,56,46,212,63,64,81,184,33,193,92,160,191,120,114,73,87,2,92,183,191,176,41,176,135,220,28,156,63,92,72,225,179,221,213,164,63,247,159,217,25,108,200,148,191,163,218,235,197,126,56,147,191,186,85,210,255,77,139,138,63,122,169,24,162,218,41,129,63,20,124,183,70,215,109,125,191,201,143,11,200,108,146,109,191,124,68,247,36,226,131,108,63,182,78,156,63,156,229,88,63,83,168,167,54,238,94,88,191,49,44,95,200,124,136,68,191,152,55,101,77,170,147,66,63,139,182,14,209,179,70,48,63,59,4,167,33,239,134,41,191,23,146,97,102,150,18,24,191,195,250,103,255,63,209,15,63,42,27,85,247,217,49,0,63,187,138,223,20,56,248,241,190,227,133,90,46,74,133,227,190,53,148,255,139,202,63,210,62,97,139,143,109,220,226,196,62,66,222,51,197,117,117,176,190,194,174,23,185,28,170,163,190,119,100,108,58,128,251,137,62,12,125,85,128,47,26,128,62,254,217,98,102,173,164,97,190,21,132,96,68,243,147,86,190,18,116,104,44,192,44,52,62,174,202,233,254,117,141,42,62,224,52,112,42,162,223,2,190,29,21,60,170,94,119,249,189,116,189,134,122,101,185,203,61,149,216,4,226,0,32,195,61,145,119,127,74,50,248,141,189,184,198,183,107,103,23,133,189,87,217,39,4,152,48,69,61,114,161,213,12,115,94,62,61,175,96,215,119,252,101,237,188,185,199,112,233,64,106,229,188,99,111,105,102,49,50,0,0,18,171,161,186,118,126,63,62,113,171,108,229,30,57,69,190,218,159,214,242,154,5,136,190,45,37,102,208,114,168,144,62,207,105,204,145,250,150,193,62,28,165,229,225,197,61,201,190,36,112,59,136,180,117,240,190,111,17,1,55,240,156,248,62,187,255,65,51,9,27,22,63,1,61,102,92,225,98,33,191,196,136,132,212,181,174,54,191,13,72,130,222,214,2,67,63,201,213,205,15,143,124,82,63,188,45,104,72,104,209,96,191,35,206,42,222,13,145,104,191,126,96,172,156,237,238,120,63,60,157,189,43,191,27,123,63,186,233,40,162,196,8,144,191,192,130,247,133,64,44,137,191,209,132,151,80,163,193,162,63,173,109,210,51,2,222,147,63,188,17,126,208,174,5,182,191,220,111,159,48,58,218,154,191,114,242,208,161,55,195,211,63,195,245,218,86,8,250,224,63,157,185,15,48,152,52,212,63,0,142,60,9,249,118,159,191,35,19,149,171,159,175,183,191,68,170,71,138,175,127,155,63,175,174,147,55,216,170,165,63,94,89,85,31,172,238,148,191,180,36,209,39,142,183,148,191,27,39,147,188,7,219,139,63,10,170,97,55,20,78,131,63,115,97,182,233,214,69,128,191,26,33,235,119,205,98,113,191,161,119,180,47,217,202,112,63,196,180,253,206,105,145,94,63,81,236,137,4,70,218,94,191,198,218,0,37,22,97,74,191,26,231,255,89,130,121,73,63,69,53,99,43,179,26,54,63,162,115,255,113,141,23,51,191,87,168,25,176,14,146,33,191,208,26,226,121,228,42,26,63,194,148,2,27,204,226,9,63,23,226,216,105,198,111,0,191,236,140,52,121,14,99,241,190,120,46,169,70,71,220,226,62,58,190,186,104,135,24,213,62,53,177,18,107,134,156,195,190,151,124,221,222,107,246,182,190,254,11,122,9,27,74,162,62,112,50,129,165,190,65,150,62,21,4,75,8,78,61,126,190,231,202,155,101,44,6,115,190,25,150,182,184,227,220,85,62,174,5,216,59,137,83,76,62,163,12,101,168,76,50,43,190,17,164,102,171,236,20,34,190,144,34,168,48,98,127,252,61,77,125,143,250,30,100,243,61,41,53,83,164,146,114,200,189,11,34,168,166,66,252,192,189,155,86,99,124,68,123,144,61,116,221,51,58,53,86,135,61,220,147,214,226,228,94,80,189,139,235,30,161,72,148,71,189,83,174,185,90,185,75,5,61,177,255,157,25,144,39,255,60,177,59,108,148,87,54,171,188,5,240,33,118,215,48,164,188,99,111,105,102,49,51,0,0,128,37,246,247,27,208,30,190,147,98,54,224,189,109,36,62,107,198,120,161,96,112,105,62,3,194,60,8,160,75,113,190,41,57,248,152,185,57,164,190,112,210,236,104,173,83,172,62,196,148,145,53,137,158,212,62,174,56,72,155,126,233,221,190,163,253,226,136,102,71,254,190,59,144,169,8,51,234,6,63,231,24,52,150,119,13,33,63,76,106,173,232,236,48,43,191,94,35,100,102,116,164,62,191,55,90,68,135,67,20,74,63,65,78,254,8,93,140,86,63,82,78,247,68,99,223,100,191,211,126,242,103,80,177,107,191,209,205,172,51,43,171,124,63,136,224,103,171,137,198,124,63,132,50,6,159,129,105,145,191,241,35,170,240,176,143,137,191,252,219,74,35,161,141,163,63,60,77,19,87,129,144,147,63,158,137,143,187,254,91,182,191,156,193,244,127,129,246,153,191,235,203,115,137,29,205,211,63,156,231,109,67,22,240,224,63,47,67,102,33,247,57,212,63,225,225,67,22,34,85,158,191,250,80,173,230,51,247,183,191,202,180,181,185,246,228,154,63,154,200,34,145,177,101,166,63,204,148,158,167,174,251,148,191,52,133,175,144,194,19,150,191,17,46,103,149,42,232,140,63,82,233,30,224,40,87,133,63,254,248,29,219,112,166,129,191,145,17,246,138,98,251,115,191,181,103,137,242,3,53,115,63,13,39,205,30,120,64,98,63,73,33,223,177,2,193,98,191,164,104,39,51,68,96,80,191,134,83,184,138,111,145,80,63,119,110,161,24,172,182,60,63,175,224,121,32,106,185,58,191,45,5,87,240,146,43,40,191,115,79,205,101,131,211,35,63,27,77,57,189,51,34,19,63,152,108,152,132,102,44,11,191,75,111,175,123,217,6,252,190,225,187,49,248,82,49,241,62,241,172,121,243,84,204,226,62,21,43,209,224,243,253,211,190,29,100,73,108,94,242,198,190,24,89,178,144,210,52,181,62,248,192,25,99,161,89,169,62,105,100,77,132,219,87,148,190,46,134,51,241,105,46,137,190,103,199,29,127,34,123,113,62,134,177,151,188,12,79,102,62,26,232,61,108,193,158,74,190,63,54,48,137,103,115,65,190,200,177,144,140,82,186,33,62,189,56,203,222,66,207,23,62,122,110,249,94,103,82,244,189,122,205,173,177,1,228,235,189,63,35,91,200,210,162,195,61,238,9,185,251,54,123,187,61,111,9,145,121,221,23,143,189,7,232,231,155,197,37,134,189,212,200,28,51,34,93,83,61,105,42,181,97,13,9,76,61,162,122,111,20,16,201,17,189,16,29,106,236,90,34,10,189,202,15,19,187,181,106,197,60,63,122,202,136,178,230,191,60,150,87,19,224,98,92,105,188,98,108,164,241,73,32,99,188,99,111,105,102,49,52,0,0,231,178,145,214,118,48,254,61,52,113,235,56,213,185,3,190,7,124,18,129,12,210,74,190,175,157,213,53,139,235,81,62,8,110,42,2,8,2,135,62,214,215,79,98,151,141,143,190,248,150,17,146,141,97,185,190,193,16,209,99,33,241,193,62,245,43,19,189,56,58,228,62,124,9,161,106,210,166,237,190,10,144,180,147,179,207,8,191,87,222,118,185,39,255,18,63,49,122,117,48,210,92,40,63,157,92,145,199,151,173,51,191,39,30,151,190,211,170,67,191,86,24,68,230,64,252,80,63,158,179,248,231,161,155,90,63,69,72,220,201,182,10,105,191,228,98,240,244,140,151,110,191,135,239,158,2,218,34,128,63,94,40,139,221,20,54,126,63,192,31,184,13,205,173,146,191,158,136,218,51,167,214,137,191,204,65,251,151,204,66,164,63,41,10,80,181,246,66,147,63,197,220,159,72,249,166,182,191,135,73,181,247,111,40,153,191,243,110,198,14,162,213,211,63,122,173,194,12,59,231,224,63,89,32,142,57,140,62,212,63,39,121,144,224,252,78,157,191,58,103,189,20,38,53,184,191,124,161,51,89,157,78,154,63,188,19,134,221,217,10,167,63,31,250,98,229,36,246,148,191,3,80,89,201,14,81,151,191,93,12,27,59,143,190,141,63,44,163,136,234,149,68,135,63,39,214,69,142,99,220,130,191,197,6,33,250,96,140,118,191,156,220,28,163,119,122,117,63,98,32,21,106,27,80,101,63,196,72,227,240,152,24,102,191,68,170,128,28,200,201,83,191,254,182,56,215,210,175,84,63,176,92,146,64,40,5,66,63,25,138,35,46,136,196,65,191,82,116,245,128,145,201,47,191,209,104,51,87,106,53,44,63,79,19,0,187,179,172,26,63,120,11,79,41,44,205,20,191,69,209,188,184,101,246,4,191,35,154,57,88,68,138,252,62,150,17,161,181,237,133,238,62,79,69,101,13,31,44,226,190,78,33,3,119,145,115,212,190,144,86,117,173,254,94,197,62,148,130,18,237,133,26,185,62,232,51,96,175,248,14,167,190,138,54,226,28,150,23,156,190,126,117,240,176,8,169,134,62,15,161,153,182,81,127,124,62,124,51,222,157,98,31,100,190,201,218,134,225,118,6,90,190,132,152,98,230,191,0,64,62,223,245,111,194,127,56,53,62,28,90,149,104,167,142,22,190,123,81,157,196,42,151,14,190,210,179,114,215,130,210,235,61,237,108,90,28,85,64,227,61,23,224,75,117,155,141,189,189,69,73,14,10,14,212,180,189,186,66,156,187,237,122,138,61,219,3,18,98,94,250,130,61,38,215,15,178,55,117,83,189,184,120,250,50,79,82,76,189,234,46,57,155,86,131,22,61,145,208,51,114,221,157,16,61,213,10,189,0,251,57,211,188,206,234,240,152,171,192,204,188,4,18,141,146,65,140,133,60,222,96,8,143,122,78,128,60,226,175,243,63,115,197,39,188,16,228,113,251,180,48,34,188,99,111,105,102,49,53,0,0,142,168,147,58,114,157,221,189,46,192,120,60,45,25,227,61,70,27,211,178,118,43,44,62,18,179,86,72,77,136,50,190,102,195,154,100,246,238,105,190,138,253,60,184,33,117,113,62,138,21,246,17,9,199,158,62,112,52,174,249,74,71,165,190,78,163,32,90,39,117,202,190,205,19,0,189,160,223,210,62,109,40,147,22,121,141,241,62,176,22,94,197,163,253,249,190,251,163,129,109,37,179,18,191,213,151,116,64,4,245,28,63,33,128,107,216,127,110,48,63,125,8,194,212,213,224,58,191,74,148,215,129,255,71,72,191,22,201,112,108,61,68,85,63,35,8,254,233,247,154,94,63,164,105,148,112,129,67,109,191,121,72,24,237,26,162,112,191,79,62,190,178,89,221,129,63,37,213,136,208,148,114,127,63,204,247,75,221,88,216,147,191,12,239,62,137,62,7,138,191,31,213,190,122,180,228,164,63,67,191,161,5,104,246,146,63,139,159,120,224,183,232,182,191,203,51,125,157,200,108,152,191,3,85,10,36,11,221,211,63,105,30,26,108,71,223,224,63,87,10,190,177,127,66,212,63,47,176,7,78,131,96,156,191,247,241,238,30,68,107,184,191,125,192,224,64,169,189,153,63,119,62,37,18,210,157,167,63,230,120,176,146,241,226,148,191,21,45,145,31,250,114,152,191,234,115,80,21,236,103,142,63,164,114,240,171,195,22,137,63,137,255,109,118,195,235,131,191,164,22,158,186,16,17,121,191,183,16,103,222,94,152,119,63,13,66,140,125,12,111,104,63,23,238,163,63,219,101,105,191,239,210,88,179,200,99,87,191,234,230,2,59,184,1,89,63,2,115,169,89,119,2,70,63,248,98,157,173,130,175,70,191,12,220,87,35,248,46,52,191,164,61,153,202,124,24,51,63,90,143,97,30,159,197,33,63,135,186,142,119,43,254,29,191,138,119,250,92,196,155,13,191,140,144,65,14,236,8,6,63,209,215,190,249,111,19,247,62,186,17,194,153,169,69,238,190,68,69,246,50,70,181,224,190,199,21,116,127,65,97,211,62,224,148,99,213,235,95,198,62,198,243,16,188,44,3,183,190,190,171,43,55,77,154,171,190,20,118,37,209,137,50,153,62,141,5,217,239,23,61,143,62,254,147,150,0,207,72,121,190,47,244,100,243,168,34,112,190,110,150,38,53,188,24,87,62,112,255,224,240,53,64,78,62,236,168,140,188,38,16,51,190,10,86,180,59,208,141,41,190,43,161,17,51,21,48,12,62,124,226,75,166,236,74,3,62,222,195,0,5,20,122,226,189,158,69,162,223,20,199,217,189,8,24,39,124,55,53,181,61,236,17,105,10,217,26,174,61,217,101,19,85,101,250,132,189,36,245,170,39,50,65,126,189,85,186,205,138,119,132,81,61,224,125,10,99,100,162,73,61,168,195,13,78,221,2,24,189,201,145,8,144,78,206,17,189,169,67,22,0,233,238,217,60,61,9,231,25,163,120,211,60,109,12,93,145,40,177,148,188,247,110,104,170,103,110,143,188,156,149,49,159,124,175,69,60,150,202,14,206,162,165,64,60,118,73,18,27,246,99,230,187,66,212,192,175,40,92,225,187,99,111,105,102,49,54],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([205,192,160,194,95,21,189,61,252,131,29,245,139,136,194,189,221,243,157,95,86,125,13,190,251,51,46,76,7,34,19,62,129,33,195,78,171,255,76,62,96,17,175,2,79,52,83,190,66,172,27,154,135,107,130,190,195,75,161,132,214,250,136,62,220,10,176,170,57,253,176,62,217,88,122,14,225,173,183,190,111,42,172,219,155,62,216,190,198,251,188,165,134,114,225,62,210,37,204,36,28,218,251,62,88,250,38,15,113,210,4,191,11,105,255,12,168,118,26,191,123,201,236,154,74,182,36,63,175,3,46,150,105,52,53,63,3,237,86,190,148,141,65,191,68,203,30,194,173,19,77,191,74,228,105,236,8,208,89,63,59,178,144,246,198,63,97,63,47,190,198,167,199,190,112,191,59,144,18,190,180,220,113,191,219,51,103,11,61,132,131,63,67,206,233,139,144,65,128,63,217,178,125,236,172,235,148,191,108,1,252,187,35,38,138,191,183,184,131,62,56,118,165,63,91,77,123,124,118,171,146,63,168,72,243,35,215,34,183,191,85,25,66,8,242,192,151,191,248,83,89,102,141,227,211,63,198,32,221,151,22,216,224,63,182,24,96,204,239,69,212,63,249,8,150,30,112,134,155,191,132,27,200,159,239,154,184,191,30,158,254,85,149,50,153,63,51,186,169,153,102,33,168,63,19,165,42,84,175,197,148,191,236,25,52,30,160,124,153,191,251,147,100,5,46,236,142,63,23,28,45,223,165,206,138,63,151,56,157,89,164,216,132,191,201,178,60,163,42,134,123,191,226,209,57,126,255,141,121,63,127,14,200,25,24,150,107,63,173,205,146,73,130,158,108,191,65,230,39,9,131,37,91,191,99,158,117,150,153,115,93,63,171,217,200,216,220,74,74,63,73,5,109,115,94,8,76,191,27,198,86,171,203,236,56,191,195,84,145,168,135,215,56,63,111,115,247,77,230,217,38,63,39,253,180,124,59,156,36,191,227,180,140,49,4,253,19,191,254,87,70,203,120,16,16,63,24,251,65,78,124,127,0,63,101,185,33,43,65,139,247,190,29,160,214,230,167,129,233,190,163,128,108,205,34,49,224,62,198,152,122,36,223,96,210,62,103,188,65,169,179,211,196,190,231,91,74,242,229,153,184,190,242,225,90,51,13,240,168,62,105,158,138,214,203,124,158,62,254,212,145,200,130,168,139,190,103,106,52,43,123,108,129,190,18,4,94,254,149,67,108,62,45,247,46,32,182,73,98,62,122,11,178,49,3,118,74,190,105,233,25,123,91,137,65,190,50,255,119,225,85,141,38,62,25,49,92,238,153,139,30,62,65,132,6,192,3,95,1,190,164,34,239,55,126,254,247,189,43,74,40,193,71,251,215,61,81,201,181,104,117,220,208,61,177,164,93,189,123,94,173,189,226,26,94,168,91,253,164,189,179,220,146,180,138,130,127,61,240,111,149,253,85,220,118,61,31,167,86,178,132,39,77,189,192,47,101,234,87,114,69,189,101,92,213,238,208,201,22,61,44,57,135,103,198,250,16,61,156,9,205,226,214,66,221,188,132,17,182,232,5,16,214,188,7,97,101,242,218,160,157,60,153,209,128,192,73,150,150,60,69,190,116,166,51,46,86,188,196,53,61,206,106,21,81,188,73,137,192,204,203,211,5,60,191,218,73,206,54,249,0,60,7,127,125,34,207,45,165,187,179,4,247,104,21,158,160,187,99,111,105,102,49,55,0,0,225,43,212,75,223,150,156,189,216,56,52,77,109,5,162,61,171,135,132,124,72,200,238,61,200,154,143,144,221,184,243,189,11,46,164,250,175,25,48,190,235,133,118,196,218,3,53,62,169,77,13,24,194,204,101,62,194,218,223,201,75,15,109,190,66,133,58,148,243,120,149,190,90,216,242,147,34,83,157,62,55,25,37,46,162,101,192,62,14,140,132,208,241,7,199,190,80,246,222,162,111,52,228,190,126,97,74,175,49,84,237,62,223,93,134,12,33,164,4,63,94,217,204,129,114,39,15,191,50,72,42,80,8,212,33,191,87,185,179,64,41,51,44,63,90,102,40,24,81,108,58,63,30,6,153,216,223,32,70,191,93,81,194,182,146,253,80,191,160,114,50,110,139,143,94,63,228,214,152,58,11,33,99,63,66,12,166,97,212,215,114,191,33,135,103,86,24,253,114,191,240,50,178,27,97,23,133,63,204,154,49,129,230,182,128,63,143,118,242,177,25,234,149,191,127,152,177,116,244,54,138,191,217,200,41,247,174,249,165,63,255,240,237,75,130,98,146,63,37,161,112,20,153,86,183,191,136,115,82,58,207,34,151,191,207,77,211,42,81,233,211,63,45,119,36,116,139,209,224,63,54,227,222,187,243,72,212,63,109,144,237,19,20,190,154,191,53,110,138,216,59,197,184,191,195,9,161,15,136,173,152,63,212,19,177,227,217,151,168,63,182,183,241,39,13,161,148,191,131,78,119,63,184,112,154,191,120,219,31,254,202,81,143,63,225,238,135,228,125,109,140,63,80,146,196,37,226,166,133,191,154,127,69,108,128,233,125,191,55,185,197,119,253,91,123,63,46,1,3,148,76,191,110,63,173,86,59,147,82,187,111,191,166,121,31,231,227,6,95,191,191,16,93,16,112,250,96,63,199,151,186,9,8,214,78,63,184,31,197,246,237,220,80,191,30,12,168,164,113,22,62,191,96,37,51,167,199,71,63,63,136,142,96,15,215,140,44,63,93,238,216,106,166,61,43,191,226,174,123,128,232,7,26,191,206,129,120,155,135,92,22,63,146,150,101,47,143,143,6,63,181,15,214,141,214,84,1,191,193,134,98,136,82,113,242,190,198,18,247,65,136,89,233,62,171,247,238,233,246,75,220,62,162,78,221,185,37,115,209,190,109,191,117,52,117,77,196,190,196,46,33,203,29,136,182,62,155,208,52,231,133,43,171,62,138,233,40,184,228,44,155,190,90,69,189,152,140,231,144,190,111,3,255,12,119,123,126,62,205,58,179,80,43,126,115,62,177,60,86,180,88,167,95,190,95,229,45,207,162,191,84,190,142,119,105,254,232,71,62,62,22,209,174,131,201,75,52,62,231,170,28,208,127,138,26,190,48,205,58,4,12,39,18,190,214,149,89,55,245,46,245,61,197,113,213,100,220,131,237,61,39,225,83,196,208,146,206,189,21,94,112,77,66,169,197,189,169,248,207,221,24,200,163,61,199,117,67,229,181,119,156,61,236,143,198,87,136,184,118,189,25,75,15,4,101,149,112,189,151,11,137,69,148,224,70,61,121,114,113,193,90,235,64,61,105,209,242,175,194,224,19,189,208,177,162,137,137,195,13,189,35,171,160,230,227,51,221,60,93,213,1,245,213,28,214,60,81,105,244,59,171,161,161,188,116,208,164,159,71,252,154,188,55,14,165,166,19,205,96,60,43,158,89,88,51,248,89,60,113,193,31,94,200,176,23,188,129,35,213,91,168,122,18,188,148,254,135,244,193,248,197,59,189,180,249,183,140,73,193,59,54,119,85,153,77,27,100,187,43,240,139,33,212,229,95,187,115,121,109,50,0,0,0,0,17,202,72,71,221,232,222,63,132,241,227,214,189,196,234,63,19,91,107,11,191,176,204,63,221,214,146,193,125,144,192,191,115,121,109,51,0,0,0,0,233,15,81,110,121,74,213,63,195,119,125,36,14,210,233,63,92,50,241,11,162,110,221,63,86,169,197,133,10,72,193,191,180,132,13,181,122,223,181,191,27,154,47,55,46,9,162,63,115,121,109,52,0,0,0,0,23,72,138,214,139,127,160,63,194,191,133,217,27,208,137,191,253,94,201,182,115,102,185,191,178,238,190,36,26,16,211,63,191,24,177,84,58,184,233,63,78,243,214,247,251,216,223,63,187,53,40,152,198,88,158,191,234,144,45,195,97,101,179,191,115,121,109,53,0,0,0,0,72,204,100,57,0,2,148,63,130,124,22,28,184,155,149,191,115,12,29,158,38,113,198,191,18,163,54,117,36,0,145,63,193,245,76,64,142,73,228,63,89,129,126,226,39,38,231,63,141,0,171,191,219,133,201,63,147,130,208,129,103,9,164,191,91,171,123,128,91,58,158,63,96,214,144,42,51,253,155,63,115,121,109,54,0,0,0,0,183,57,68,178,162,243,127,191,46,185,82,41,82,246,92,63,14,249,215,172,46,230,166,63,158,141,86,78,212,144,149,191,72,143,212,104,95,152,178,191,243,72,171,185,162,160,213,63,140,174,182,49,91,52,233,63,16,61,197,230,117,109,223,63,131,12,214,20,81,188,168,191,167,4,162,148,153,52,190,191,249,22,186,199,141,152,108,63,110,203,68,142,48,140,143,63,115,121,109,55,0,0,0,0,217,136,56,89,123,7,133,63,115,175,39,233,11,109,112,63,247,98,45,23,82,153,187,191,30,125,204,102,17,237,193,191,179,223,65,107,232,120,210,63,74,15,18,121,134,145,232,63,191,108,39,53,191,39,225,63,107,5,204,208,30,220,145,63,192,69,245,58,253,94,169,191,150,202,57,98,106,97,177,63,64,29,70,108,117,63,159,63,246,216,223,238,15,225,137,191,123,71,247,245,12,41,81,191,229,213,170,59,44,248,101,63,115,121,109,56,0,0,0,0,3,113,178,183,6,247,94,63,108,96,58,180,41,218,51,191,231,194,120,36,74,159,142,191,205,208,210,42,136,51,111,63,252,127,110,39,130,40,169,63,243,87,74,45,78,223,155,191,209,253,171,23,165,152,170,191,144,10,231,24,4,83,215,63,209,17,79,167,180,222,232,63,244,49,241,181,152,206,222,63,177,145,159,194,56,95,175,191,173,2,182,49,119,87,194,191,179,124,62,84,7,41,127,63,94,60,48,171,86,58,160,63,231,128,76,81,188,195,65,191,107,102,131,188,112,181,107,191,115,121,109,57,0,0,0,0,158,78,190,45,196,133,81,63,189,132,8,25,55,2,63,191,196,245,148,90,83,5,133,191,252,146,52,193,206,36,130,63,182,77,186,245,168,200,175,63,179,151,184,164,223,171,146,191,16,195,248,213,188,132,200,191,25,190,30,77,60,15,162,63,45,245,51,144,60,193,227,63,24,190,139,77,3,249,230,63,197,148,230,183,183,143,206,63,141,167,172,103,118,240,171,191,0,166,222,180,112,30,67,63,47,46,227,72,69,243,158,63,119,80,150,46,26,156,135,191,103,156,156,92,85,46,139,191,191,118,14,83,25,79,68,63,152,155,145,151,221,243,86,63,115,121,109,49,48,0,0,0,49,206,95,215,68,26,62,191,47,118,33,233,64,231,13,63,91,26,87,165,74,208,114,63,188,46,84,167,115,91,74,191,128,68,57,227,236,215,148,191,44,119,96,202,242,156,119,63,0,211,18,228,240,152,169,63,218,227,54,48,0,97,160,191,216,112,72,36,223,49,162,191,26,55,135,30,158,144,216,63,133,97,94,131,211,159,232,63,191,14,21,13,46,48,222,63,98,171,28,15,58,37,178,191,134,219,218,251,78,106,196,191,201,2,3,149,237,198,135,63,207,120,252,108,198,131,167,63,148,66,210,144,66,2,88,191,143,109,81,142,135,178,129,191,191,4,210,197,204,17,25,63,0,254,174,152,145,60,73,63,115,121,109,49,49,0,0,0,90,236,67,154,61,8,64,63,208,199,138,132,226,249,28,63,104,91,130,44,252,43,122,191,206,247,66,201,149,105,96,191,100,231,101,249,30,4,166,63,14,57,238,21,124,14,162,63,254,211,145,96,84,130,194,191,200,30,170,216,32,50,202,191,166,85,250,120,159,108,206,63,65,188,69,111,249,94,231,63,171,164,227,33,3,78,226,63,179,186,108,117,254,225,184,63,121,9,177,69,113,97,151,191,162,141,206,225,255,233,177,63,168,16,183,116,145,246,162,63,68,35,117,236,165,168,152,191,45,230,144,157,101,48,132,191,171,8,4,191,216,172,122,63,108,194,230,224,117,71,67,63,145,218,109,153,117,106,92,191,152,122,182,148,16,87,4,191,119,157,19,83,8,130,38,63,115,121,109,49,50,0,0,0,65,240,12,69,122,120,39,191,197,114,143,173,69,10,243,190,214,236,112,108,238,64,99,63,247,155,77,57,121,41,52,63,176,67,58,179,70,225,141,191,207,53,199,201,205,85,101,191,146,196,148,104,130,152,173,63,216,5,93,220,132,86,143,63,221,55,107,254,180,206,197,191,82,1,15,83,155,13,180,191,104,169,230,142,140,157,221,63,242,33,133,183,107,110,232,63,35,242,143,7,89,135,217,63,15,121,210,48,183,177,150,191,249,232,58,39,199,90,162,191,242,37,121,23,8,46,169,63,173,98,3,139,182,240,126,63,171,66,25,47,81,205,152,191,85,201,39,200,100,21,87,191,195,128,99,166,39,95,126,63,11,110,19,63,251,158,39,63,168,36,250,52,73,29,86,191,175,39,226,252,151,207,231,190,220,161,3,192,253,89,29,63,115,121,109,49,51,0,0,0,120,119,109,230,119,118,18,63,122,86,166,249,90,89,3,63,235,14,169,56,62,163,71,191,106,117,111,85,95,21,59,63,122,237,242,244,131,62,119,63,38,11,249,14,199,115,88,191,197,111,174,224,103,63,149,191,0,141,167,227,135,10,146,63,82,172,168,23,0,202,183,63,6,90,6,214,23,16,130,63,4,227,170,81,148,251,193,191,38,87,232,66,12,56,188,63,18,180,160,124,69,160,228,63,153,171,70,192,126,67,230,63,230,32,113,57,100,78,201,63,207,36,199,221,55,214,191,191,143,150,237,95,162,151,174,191,120,217,5,233,240,99,140,63,160,196,122,202,237,159,145,191,138,218,218,87,180,179,148,191,31,206,217,189,162,177,117,63,179,134,152,190,209,211,126,63,98,75,71,249,227,103,38,191,172,135,63,212,254,156,82,191,48,124,25,194,193,188,2,191,55,84,71,245,10,225,17,63,115,121,109,49,52,0,0,0,186,7,248,104,168,100,7,63,27,95,131,238,151,68,244,62,181,253,33,22,124,217,67,191,21,171,138,156,82,49,19,191,16,205,21,88,219,144,114,63,209,208,223,236,108,153,80,63,207,101,19,76,230,231,147,191,12,34,8,237,221,95,99,191,103,176,161,0,57,224,177,63,253,112,213,201,40,133,154,63,70,212,40,144,203,122,196,191,196,48,82,57,213,192,173,191,78,133,200,176,230,107,222,63,62,183,30,178,185,81,232,63,93,34,100,183,54,42,217,63,132,8,251,48,55,21,162,191,55,164,20,219,68,130,173,191,53,12,157,4,110,42,163,63,113,175,217,120,115,136,113,63,143,143,218,1,157,229,157,191,252,69,103,149,21,143,102,191,0,20,245,113,164,142,132,63,153,251,11,230,116,4,56,63,61,176,90,59,123,33,101,191,37,148,70,198,211,122,16,191,36,153,91,47,164,28,58,63,170,214,14,170,201,130,231,62,240,238,155,138,221,34,251,190,115,121,109,49,53,0,0,0,2,204,138,228,140,13,254,62,65,82,6,12,218,197,246,62,111,139,107,183,68,91,58,191,24,70,254,120,30,90,28,191,230,206,160,18,63,132,108,63,49,33,157,127,22,1,89,63,50,146,131,68,87,149,145,191,225,7,57,178,201,232,129,191,163,202,220,128,120,102,177,63,90,150,249,85,57,130,177,63,104,161,216,188,193,40,193,191,222,93,55,114,13,43,201,191,210,45,163,128,43,58,207,63,47,65,164,141,86,25,231,63,5,194,111,231,56,132,226,63,3,34,10,229,120,141,188,63,219,75,67,139,201,8,165,191,95,90,43,226,71,219,164,63,191,117,33,72,210,118,150,63,243,170,31,39,166,231,163,191,44,193,229,69,232,222,147,191,142,241,126,159,207,164,132,63,102,145,119,30,127,11,108,63,184,211,224,101,31,105,109,191,222,6,49,101,211,132,49,191,168,87,135,204,72,138,81,63,242,16,143,82,108,230,12,63,112,92,112,236,234,14,37,191,43,189,52,206,97,222,222,190,226,131,241,205,80,94,228,62,115,121,109,49,54,0,0,0,95,188,42,92,31,165,230,190,174,230,77,0,110,162,214,190,171,212,187,13,207,175,37,63,154,67,71,156,203,43,3,63,185,176,89,78,0,239,85,191,160,132,161,0,254,28,45,191,152,204,160,18,197,106,124,63,200,53,149,44,154,71,86,63,150,232,3,63,55,141,153,191,66,210,203,147,148,193,108,191,184,251,17,234,73,250,179,63,134,126,74,190,92,117,159,63,178,242,16,87,132,109,196,191,144,92,59,175,53,171,171,191,207,85,141,59,4,108,222,63,165,13,49,228,115,53,232,63,141,26,25,79,118,106,217,63,121,176,171,152,182,179,161,191,71,152,36,21,205,37,177,191,49,190,23,134,246,141,160,63,21,101,48,229,205,241,115,63,209,171,219,242,226,203,159,191,85,78,43,32,200,156,105,191,207,115,207,241,3,241,137,63,251,126,247,122,204,136,71,63,215,184,131,230,220,202,111,191,138,40,215,154,169,109,28,191,157,124,194,205,17,238,75,63,78,191,170,120,73,113,253,62,224,57,184,127,210,175,28,191,123,78,169,188,79,30,202,190,183,136,200,51,107,33,218,62,115,121,109,49,55,0,0,0,72,23,74,124,167,205,207,62,135,7,180,17,43,147,196,190,84,28,132,5,14,241,19,191,30,209,155,249,179,110,250,62,69,203,139,217,88,150,71,63,254,103,84,115,95,158,14,63,106,93,149,135,87,27,112,191,96,101,169,237,219,55,95,191,202,69,212,156,151,99,137,63,113,51,125,179,58,98,132,63,138,252,214,230,201,120,146,191,113,239,84,60,96,190,125,191,95,160,20,76,239,139,144,63,56,76,16,168,189,8,182,191,250,140,175,209,135,217,195,191,32,100,180,205,235,27,199,63,36,228,114,2,194,206,229,63,66,179,44,174,171,210,228,63,176,135,4,241,27,58,194,63,248,1,244,9,103,90,190,191,35,109,79,38,137,175,145,63,6,59,218,204,50,209,186,63,117,65,235,228,105,85,146,63,184,50,173,118,145,11,161,191,57,27,29,150,79,189,115,191,205,220,75,121,199,119,133,63,188,199,64,183,27,19,76,63,155,100,219,20,182,117,102,191,130,47,204,79,16,44,34,191,229,32,225,226,228,49,63,63,252,213,29,51,47,83,236,190,128,208,130,223,161,127,16,191,106,106,51,208,70,82,199,62,179,223,62,189,60,6,210,62,115,121,109,49,56,0,0,0,250,85,236,100,241,98,185,190,107,89,128,23,199,84,170,62,147,166,159,165,67,254,254,62,91,78,143,91,233,172,228,190,61,121,57,161,227,107,49,191,49,105,202,87,22,220,8,63,162,36,134,4,212,101,87,63,189,136,141,140,71,190,40,191,103,106,57,85,81,118,117,191,211,105,43,6,128,210,81,63,46,143,70,92,204,190,142,63,103,240,101,182,70,182,106,191,191,63,149,31,165,60,160,191,200,250,191,232,230,182,121,63,69,190,0,217,220,54,157,63,135,172,200,61,129,228,178,191,20,173,18,48,75,161,160,191,192,114,193,92,233,177,217,63,251,151,193,219,186,29,232,63,138,220,227,82,130,85,222,63,66,134,140,224,144,163,170,191,183,113,245,110,218,120,196,191,152,149,213,76,225,103,161,63,162,235,228,244,111,143,181,63,189,97,151,171,181,203,116,191,83,131,232,105,138,13,159,191,222,115,5,54,47,235,90,63,167,55,103,234,222,117,131,63,222,35,174,180,45,248,58,191,134,113,167,120,138,244,98,191,138,116,102,152,229,103,18,63,120,6,96,89,154,246,57,63,84,212,232,139,118,103,237,190,114,172,56,195,234,184,7,191,54,176,129,162,81,187,182,62,229,190,62,241,138,234,197,62,115,121,109,49,57,0,0,0,207,243,222,94,55,96,189,62,77,52,172,203,202,76,193,62,125,54,178,132,195,132,253,190,165,87,37,234,116,163,241,190,67,247,246,156,46,26,50,63,70,164,194,123,216,242,32,63,189,0,3,36,31,239,91,191,14,3,61,24,130,63,68,191,229,89,32,172,202,235,128,63,9,115,174,48,43,177,113,63,13,206,97,180,251,95,156,191,198,221,12,111,100,80,145,191,5,71,27,115,201,133,181,63,186,64,94,226,48,248,183,63,220,225,61,157,4,194,189,191,160,116,144,226,185,154,198,191,176,99,162,211,110,135,208,63,189,116,83,79,153,6,231,63,235,118,18,212,41,128,226,63,186,188,36,209,29,233,187,63,121,141,241,123,82,73,177,191,51,239,229,225,200,86,130,63,189,191,119,196,92,188,124,63,244,222,50,240,171,224,167,191,218,190,254,138,21,50,151,191,19,184,138,52,52,45,144,63,111,215,229,175,193,81,128,63,39,20,131,111,5,251,116,191,33,135,236,161,87,4,83,191,198,32,190,99,243,96,97,63,165,143,40,56,117,220,36,63,57,39,99,230,45,213,68,191,193,161,116,189,44,46,8,191,138,110,17,234,180,73,30,63,113,76,46,189,210,155,226,62,52,229,105,255,77,234,232,190,111,216,3,244,59,176,165,190,114,37,160,50,237,105,162,62,115,121,109,50,48,0,0,0,100,110,24,50,174,60,165,190,201,75,32,248,248,218,149,190,96,119,176,41,171,196,233,62,98,81,187,149,34,251,210,62,143,14,12,200,255,197,30,191,122,74,45,177,142,232,251,190,223,228,176,24,106,127,72,63,64,34,48,70,25,113,32,63,87,164,216,184,146,112,108,191,194,12,157,235,127,6,68,191,167,79,84,106,202,229,136,63,2,50,64,192,16,195,95,63,189,62,10,57,116,28,162,191,129,8,250,65,36,8,124,191,188,252,38,122,112,195,182,63,220,227,154,23,124,143,162,63,253,6,18,102,212,141,196,191,232,10,27,84,64,40,170,191,207,78,99,187,27,53,222,63,152,151,17,107,134,9,232,63,1,144,74,115,36,249,217,63,150,121,131,248,247,136,158,191,102,82,9,48,249,56,180,191,21,48,98,22,121,49,154,63,83,25,4,65,233,162,128,63,103,200,65,204,187,49,160,191,65,186,194,162,169,37,107,191,152,246,209,105,130,105,145,63,134,117,196,106,220,80,87,63,206,247,31,223,129,15,123,191,219,84,22,225,117,1,52,191,161,144,128,126,240,28,97,63,42,76,176,216,145,234,18,63,124,119,230,237,26,54,64,191,51,6,162,215,138,56,244,190,91,236,8,107,253,243,20,63,159,132,69,130,145,97,201,62,218,251,159,190,172,155,224,190,216,68,70,138,188,133,137,190,69,115,221,145,226,204,152,62,84,104,105,115,32,112,114,111,103,114,97,109,32,105,115,32,111,110,108,121,32,118,97,108,105,100,32,102,111,114,32,78,32,60,61,32,52,48,32,0,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,24,64,0,0,0,0,0,0,56,64,0,0,0,0,0,0,94,64,0,0,0,0,0,128,134,64,0,0,0,0,0,176,179,64,0,0,0,0,0,176,227,64,0,0,0,0,0,38,22,65,0,0,0,0,128,175,75,65,0,0,0,0,168,8,131,65,0,0,0,0,252,140,188,65,0,0,0,192,140,50,247,65,0,0,0,40,59,76,52,66,0,0,128,117,119,7,115,66,0,0,128,117,119,7,179,66,0,0,216,236,238,55,244,66,0,0,115,202,236,190,54,67,0,144,104,48,185,2,123,67,0,90,65,190,179,225,192,67,32,198,181,233,59,40,6,68,108,240,89,97,82,119,78,68,206,164,248,53,195,229,149,68,154,123,122,104,82,108,224,68,33,97,63,195,64,169,41,69,235,126,163,158,132,217,116,69,22,243,217,229,135,151,193,69,103,105,61,210,45,201,14,70,133,167,135,134,81,230,91,70,13,45,31,110,236,39,170,70,164,51,174,10,173,86,249,70,164,51,174,10,173,86,73,71,65,165,3,115,98,33,154,71,150,223,51,154,120,195,235,71,140,188,168,232,203,93,62,72,15,234,222,178,194,20,145,72,161,190,209,30,1,192,227,72,95,18,153,84,1,116,55,73,100,142,26,159,97,149,140,73,254,152,112,3,93,221,225,73,110,112,97,100,32,109,117,115,116,32,98,101,32,62,61,32,78,32,0,0,0,0,0,0,10,32,84,104,101,32,68,101,99,111,109,112,111,115,105,116,105,111,110,32,73,116,101,114,97,116,105,111,110,115,32,67,97,110,110,111,116,32,69,120,99,101,101,100,32,49,48,48,46,32,69,120,105,116,105,110,103,32,0,0,0,0,0,0,10,32,69,114,114,111,114,32,45,32,84,104,101,32,83,105,103,110,97,108,32,67,97,110,32,111,110,108,121,32,98,101,32,105,116,101,114,97,116,101,100,32,37,100,32,116,105,109,101,115,32,117,115,105,110,103,32,116,104,105,115,32,119,97,118,101,108,101,116,46,32,69,120,105,116,105,110,103,10,0,10,32,70,111,114,32,83,87,84,32,116,104,101,32,115,105,103,110,97,108,32,108,101,110,103,116,104,32,109,117,115,116,32,98,101,32,97,32,109,117,108,116,105,112,108,101,32,111,102,32,50,94,74,46,32,0,100,98,0,0,0,0,0,0,99,111,105,102,0,0,0,0,10,32,77,79,68,87,84,32,105,115,32,111,110,108,121,32,105,109,112,108,101,109,101,110,116,101,100,32,102,111,114,32,111,114,116,104,111,103,111,110,97,108,32,119,97,118,101,108,101,116,32,102,97,109,105,108,105,101,115,32,45,32,100,98,44,32,115,121,109,32,97,110,100,32,99,111,105,102,32,0,100,105,114,101,99,116,0,0,102,102,116,0,0,0,0,0,70,70,84,0,0,0,0,0,83,105,103,110,97,108,32,101,120,116,101,110,115,105,111,110,32,99,97,110,32,98,101,32,101,105,116,104,101,114,32,112,101,114,32,111,114,32,115,121,109,0,0,0,0,0,0,0,68,101,99,111,109,112,111,115,105,116,105,111,110,32,70,105,108,116,101,114,115,32,109,117,115,116,32,104,97,118,101,32,116,104,101,32,115,97,109,101,32,108,101,110,103,116,104,46,0,0,0,0,0,0,0,0,83,87,84,32,79,110,108,121,32,97,99,99,101,112,116,115,32,116,119,111,32,109,101,116,104,111,100,115,32,45,32,100,105,114,101,99,116,32,97,110,100,32,102,102,116,0,0,0,67,111,110,118,111,108,117,116,105,111,110,32,79,110,108,121,32,97,99,99,101,112,116,115,32,116,119,111,32,109,101,116,104,111,100,115,32,45,32,100,105,114,101,99,116,32,97,110,100,32,102,102,116,0,0,0,100,119,116,0,0,0,0,0,68,87,84,0,0,0,0,0,112,101,114,0,0,0,0,0,115,121,109,0,0,0,0,0,115,119,116,0,0,0,0,0,83,87,84,0,0,0,0,0,109,111,100,119,116,0,0,0,77,79,68,87,84,0,0,0,109,111,114,108,101,116,0,0,112,97,117,108,0,0,0,0,112,111,119,0,0,0,0,0,112,111,119,101,114,0,0,0,108,105,110,0,0,0,0,0,108,105,110,101,97,114,0,0,10,32,84,121,112,101,32,97,99,99,101,112,116,115,32,111,110,108,121,32,116,119,111,32,118,97,108,117,101,115,32,58,32,112,111,119,32,97,110,100,32,108,105,110,0,0,0,0,93,61,127,102,158,160,230,63,0,0,0,0,0,136,57,61,68,23,117,250,82,176,230,63,0,0,0,0,0,0,216,60,254,217,11,117,18,192,230,63,0,0,0,0,0,120,40,189,191,118,212,221,220,207,230,63,0,0,0,0,0,192,30,61,41,26,101,60,178,223,230,63,0,0,0,0,0,0,216,188,227,58,89,152,146,239,230,63,0,0,0,0,0,0,188,188,134,147,81,249,125,255,230,63,0,0,0,0,0,216,47,189,163,45,244,102,116,15,231,63,0,0,0,0,0,136,44,189,195,95,236,232,117,31,231,63,0,0,0,0,0,192,19,61,5,207,234,134,130,47,231,63,0,0,0,0,0,48,56,189,82,129,165,72,154,63,231,63,0,0,0,0,0,192,0,189,252,204,215,53,189,79,231,63,0,0,0,0,0,136,47,61,241,103,66,86,235,95,231,63,0,0,0,0,0,224,3,61,72,109,171,177,36,112,231,63,0,0,0,0,0,208,39,189,56,93,222,79,105,128,231,63,0,0,0,0,0,0,221,188,0,29,172,56,185,144,231,63,0,0,0,0,0,0,227,60,120,1,235,115,20,161,231,63,0,0,0,0,0,0,237,188,96,208,118,9,123,177,231,63,0,0,0,0,0,64,32,61,51,193,48,1,237,193,231,63,0,0,0,0,0,0,160,60,54,134,255,98,106,210,231,63,0,0,0,0,0,144,38,189,59,78,207,54,243,226,231,63,0,0,0,0,0,224,2,189,232,195,145,132,135,243,231,63,0,0,0,0,0,88,36,189,78,27,62,84,39,4,232,63,0,0,0,0,0,0,51,61,26,7,209,173,210,20,232,63,0,0,0,0,0,0,15,61,126,205,76,153,137,37,232,63,0,0,0,0,0,192,33,189,208,66,185,30,76,54,232,63,0,0,0,0,0,208,41,61,181,202,35,70,26,71,232,63,0,0,0,0,0,16,71,61,188,91,159,23,244,87,232,63,0,0,0,0,0,96,34,61,175,145,68,155,217,104,232,63,0,0,0,0,0,196,50,189,149,163,49,217,202,121,232,63,0,0,0,0,0,0,35,189,184,101,138,217,199,138,232,63,0,0,0,0,0,128,42,189,0,88,120,164,208,155,232,63,0,0,0,0,0,0,237,188,35,162,42,66,229,172,232,63,0,0,0,0,0,40,51,61,250,25,214,186,5,190,232,63,0,0,0,0,0,180,66,61,131,67,181,22,50,207,232,63,0,0,0,0,0,208,46,189,76,102,8,94,106,224,232,63,0,0,0,0,0,80,32,189,7,120,21,153,174,241,232,63,0,0,0,0,0,40,40,61,14,44,40,208,254,2,233,63,0,0,0,0,0,176,28,189,150,255,145,11,91,20,233,63,0,0,0,0,0,224,5,189,249,47,170,83,195,37,233,63,0,0,0,0,0,64,245,60,74,198,205,176,55,55,233,63,0,0,0,0,0,32,23,61,174,152,95,43,184,72,233,63,0,0,0,0,0,0,9,189,203,82,200,203,68,90,233,63,0,0,0,0,0,104,37,61,33,111,118,154,221,107,233,63,0,0,0,0,0,208,54,189,42,78,222,159,130,125,233,63,0,0,0,0,0,0,1,189,163,35,122,228,51,143,233,63,0,0,0,0,0,0,45,61,4,6,202,112,241,160,233,63,0,0,0,0,0,164,56,189,137,255,83,77,187,178,233,63,0,0,0,0,0,92,53,61,91,241,163,130,145,196,233,63,0,0,0,0,0,184,38,61,197,184,75,25,116,214,233,63,0,0,0,0,0,0,236,188,142,35,227,25,99,232,233,63,0,0,0,0,0,208,23,61,2,243,7,141,94,250,233,63,0,0,0,0,0,64,22,61,77,229,93,123,102,12,234,63,0,0,0,0,0,0,245,188,246,184,142,237,122,30,234,63,0,0,0,0,0,224,9,61,39,46,74,236,155,48,234,63,0,0,0,0,0,216,42,61,93,10,70,128,201,66,234,63,0,0,0,0,0,240,26,189,155,37,62,178,3,85,234,63,0,0,0,0,0,96,11,61,19,98,244,138,74,103,234,63,0,0,0,0,0,136,56,61,167,179,48,19,158,121,234,63,0,0,0,0,0,32,17,61,141,46,193,83,254,139,234,63,0,0,0,0,0,192,6,61,210,252,121,85,107,158,234,63,0,0,0,0,0,184,41,189,184,111,53,33,229,176,234,63,0,0,0,0,0,112,43,61,129,243,211,191,107,195,234,63,0,0,0,0,0,0,217,60,128,39,60,58,255,213,234,63,0,0,0,0,0,0,228,60,163,210,90,153,159,232,234,63,0,0,0,0,0,144,44,189,103,243,34,230,76,251,234,63,0,0,0,0,0,80,22,61,144,183,141,41,7,14,235,63,0,0,0,0,0,212,47,61,169,137,154,108,206,32,235,63,0,0,0,0,0,112,18,61,75,26,79,184,162,51,235,63,0,0,0,0,0,71,77,61,231,71,183,21,132,70,235,63,0,0,0,0,0,56,56,189,58,89,229,141,114,89,235,63,0,0,0,0,0,0,152,60,106,197,241,41,110,108,235,63,0,0,0,0,0,208,10,61,80,94,251,242,118,127,235,63,0,0,0,0,0,128,222,60,178,73,39,242,140,146,235,63,0,0,0,0,0,192,4,189,3,6,161,48,176,165,235,63,0,0,0,0,0,112,13,189,102,111,154,183,224,184,235,63,0,0,0,0,0,144,13,61,255,193,75,144,30,204,235,63,0,0,0,0,0,160,2,61,111,161,243,195,105,223,235,63,0,0,0,0,0,120,31,189,184,29,215,91,194,242,235,63,0,0,0,0,0,160,16,189,233,178,65,97,40,6,236,63,0,0,0,0,0,64,17,189,224,82,133,221,155,25,236,63,0,0,0,0,0,224,11,61,238,100,250,217,28,45,236,63,0,0,0,0,0,64,9,189,47,208,255,95,171,64,236,63,0,0,0,0,0,208,14,189,21,253,250,120,71,84,236,63,0,0,0,0,0,102,57,61,203,208,87,46,241,103,236,63,0,0,0,0,0,16,26,189,182,193,136,137,168,123,236,63,0,0,0,0,128,69,88,189,51,231,6,148,109,143,236,63,0,0,0,0,0,72,26,189,223,196,81,87,64,163,236,63,0,0,0,0,0,0,203,60,148,144,239,220,32,183,236,63,0,0,0,0,0,64,1,61,137,22,109,46,15,203,236,63,0,0,0,0,0,32,240,60,18,196,93,85,11,223,236,63,0,0,0,0,0,96,243,60,59,171,91,91,21,243,236,63,0,0,0,0,0,144,6,189,188,137,7,74,45,7,237,63,0,0,0,0,0,160,9,61,250,200,8,43,83,27,237,63,0,0,0,0,0,224,21,189,133,138,13,8,135,47,237,63,0,0,0,0,0,40,29,61,3,162,202,234,200,67,237,63,0,0,0,0,0,160,1,61,145,164,251,220,24,88,237,63,0,0,0,0,0,0,223,60,161,230,98,232,118,108,237,63,0,0,0,0,0,160,3,189,78,131,201,22,227,128,237,63,0,0,0,0,0,216,12,189,144,96,255,113,93,149,237,63,0,0,0,0,0,192,244,60,174,50,219,3,230,169,237,63,0,0,0,0,0,144,255,60,37,131,58,214,124,190,237,63,0,0,0,0,0,128,233,60,69,180,1,243,33,211,237,63,0,0,0,0,0,32,245,188,191,5,28,100,213,231,237,63,0,0,0,0,0,112,29,189,236,154,123,51,151,252,237,63,0,0,0,0,0,20,22,189,94,125,25,107,103,17,238,63,0,0,0,0,0,72,11,61,231,163,245,20,70,38,238,63,0,0,0,0,0,206,64,61,92,238,22,59,51,59,238,63,0,0,0,0,0,104,12,61,180,63,139,231,46,80,238,63,0,0,0,0,0,48,9,189,104,109,103,36,57,101,238,63,0,0,0,0,0,0,229,188,68,76,199,251,81,122,238,63,0,0,0,0,0,248,7,189,38,183,205,119,121,143,238,63,0,0,0,0,0,112,243,188,232,144,164,162,175,164,238,63,0,0,0,0,0,208,229,60,228,202,124,134,244,185,238,63,0,0,0,0,0,26,22,61,13,104,142,45,72,207,238,63,0,0,0,0,0,80,245,60,20,133,24,162,170,228,238,63,0,0,0,0,0,64,198,60,19,90,97,238,27,250,238,63,0,0,0,0,0,128,238,188,6,65,182,28,156,15,239,63,0,0,0,0,0,136,250,188,99,185,107,55,43,37,239,63,0,0,0,0,0,144,44,189,117,114,221,72,201,58,239,63,0,0,0,0,0,0,170,60,36,69,110,91,118,80,239,63,0,0,0,0,0,240,244,188,253,68,136,121,50,102,239,63,0,0,0,0,0,128,202,60,56,190,156,173,253,123,239,63,0,0,0,0,0,188,250,60,130,60,36,2,216,145,239,63,0,0,0,0,0,96,212,188,142,144,158,129,193,167,239,63,0,0,0,0,0,12,11,189,17,213,146,54,186,189,239,63,0,0,0,0,0,224,192,188,148,113,143,43,194,211,239,63,0,0,0,0,128,222,16,189,238,35,42,107,217,233,239,63,0,0,0,0,0,67,238,60,0,0,0,0,0,0,240,63,0,0,0,0,0,0,0,0,190,188,90,250,26,11,240,63,0,0,0,0,0,64,179,188,3,51,251,169,61,22,240,63,0,0,0,0,0,23,18,189,130,2,59,20,104,33,240,63,0,0,0,0,0,64,186,60,108,128,119,62,154,44,240,63,0,0,0,0,0,152,239,60,202,187,17,46,212,55,240,63,0,0,0,0,0,64,199,188,137,127,110,232,21,67,240,63,0,0,0,0,0,48,216,60,103,84,246,114,95,78,240,63,0,0,0,0,0,63,26,189,90,133,21,211,176,89,240,63,0,0,0,0,0,132,2,189,149,31,60,14,10,101,240,63,0,0,0,0,0,96,241,60,26,247,221,41,107,112,240,63,0,0,0,0,0,36,21,61,45,168,114,43,212,123,240,63,0,0,0,0,0,160,233,188,208,155,117,24,69,135,240,63,0,0,0,0,0,64,230,60,200,7,102,246,189,146,240,63,0,0,0,0,0,120,0,189,131,243,198,202,62,158,240,63,0,0,0,0,0,0,152,188,48,57,31,155,199,169,240,63,0,0,0,0,0,160,255,60,252,136,249,108,88,181,240,63,0,0,0,0,0,200,250,188,138,108,228,69,241,192,240,63,0,0,0,0,0,192,217,60,22,72,114,43,146,204,240,63,0,0,0,0,0,32,5,61,216,93,57,35,59,216,240,63,0,0,0,0,0,208,250,188,243,209,211,50,236,227,240,63,0,0,0,0,0,172,27,61,166,169,223,95,165,239,240,63,0,0,0,0,0,232,4,189,240,210,254,175,102,251,240,63,0,0,0,0,0,48,13,189,75,35,215,40,48,7,241,63,0,0,0,0,0,80,241,60,91,91,18,208,1,19,241,63,0,0,0,0,0,0,236,60,249,42,94,171,219,30,241,63,0,0,0,0,0,188,22,61,213,49,108,192,189,42,241,63,0,0,0,0,0,64,232,60,125,4,242,20,168,54,241,63,0,0,0,0,0,208,14,189,233,45,169,174,154,66,241,63,0,0,0,0,0,224,232,60,56,49,79,147,149,78,241,63,0,0,0,0,0,64,235,60,113,142,165,200,152,90,241,63,0,0,0,0,0,48,5,61,223,195,113,84,164,102,241,63,0,0,0,0,0,56,3,61,17,82,125,60,184,114,241,63,0,0,0,0,0,212,40,61,159,187,149,134,212,126,241,63,0,0,0,0,0,208,5,189,147,141,140,56,249,138,241,63,0,0,0,0,0,136,28,189,102,93,55,88,38,151,241,63,0,0,0,0,0,240,17,61,167,203,111,235,91,163,241,63,0,0,0,0,0,72,16,61,227,135,19,248,153,175,241,63,0,0,0,0,0,57,71,189,84,93,4,132,224,187,241,63,0,0,0,0,0,228,36,61,67,28,40,149,47,200,241,63,0,0,0,0,0,32,10,189,178,185,104,49,135,212,241,63,0,0,0,0,0,128,227,60,49,64,180,94,231,224,241,63,0,0,0,0,0,192,234,60,56,217,252,34,80,237,241,63,0,0,0,0,0,144,1,61,247,205,56,132,193,249,241,63,0,0,0,0,0,120,27,189,143,141,98,136,59,6,242,63,0,0,0,0,0,148,45,61,30,168,120,53,190,18,242,63,0,0,0,0,0,0,216,60,65,221,125,145,73,31,242,63,0,0,0,0,0,52,43,61,35,19,121,162,221,43,242,63,0,0,0,0,0,248,25,61,231,97,117,110,122,56,242,63,0,0,0,0,0,200,25,189,39,20,130,251,31,69,242,63,0,0,0,0,0,48,2,61,2,166,178,79,206,81,242,63,0,0,0,0,0,72,19,189,176,206,30,113,133,94,242,63,0,0,0,0,0,112,18,61,22,125,226,101,69,107,242,63,0,0,0,0,0,208,17,61,15,224,29,52,14,120,242,63,0,0,0,0,0,238,49,61,62,99,245,225,223,132,242,63,0,0,0,0,0,192,20,189,48,187,145,117,186,145,242,63,0,0,0,0,0,216,19,189,9,223,31,245,157,158,242,63,0,0,0,0,0,176,8,61,155,14,209,102,138,171,242,63,0,0,0,0,0,124,34,189,58,218,218,208,127,184,242,63,0,0,0,0,0,52,42,61,249,26,119,57,126,197,242,63,0,0,0,0,0,128,16,189,217,2,228,166,133,210,242,63,0,0,0,0,0,208,14,189,121,21,100,31,150,223,242,63,0,0,0,0,0,32,244,188,207,46,62,169,175,236,242,63,0,0,0,0,0,152,36,189,34,136,189,74,210,249,242,63,0,0,0,0,0,48,22,189,37,182,49,10,254,6,243,63,0,0,0,0,0,54,50,189,11,165,238,237,50,20,243,63,0,0,0,0,128,223,112,189,184,215,76,252,112,33,243,63,0,0,0,0,0,72,34,189,162,233,168,59,184,46,243,63,0,0,0,0,0,152,37,189,102,23,100,178,8,60,243,63,0,0,0,0,0,208,30,61,39,250,227,102,98,73,243,63,0,0,0,0,0,0,220,188,15,159,146,95,197,86,243,63,0,0,0,0,0,216,48,189,185,136,222,162,49,100,243,63,0,0,0,0,0,200,34,61,57,170,58,55,167,113,243,63,0,0,0,0,0,96,32,61,254,116,30,35,38,127,243,63,0,0,0,0,0,96,22,189,56,216,5,109,174,140,243,63,0,0,0,0,0,224,10,189,195,62,113,27,64,154,243,63,0,0,0,0,0,114,68,189,32,160,229,52,219,167,243,63,0,0,0,0,0,32,8,61,149,110,236,191,127,181,243,63,0,0,0,0,0,128,62,61,242,168,19,195,45,195,243,63,0,0,0,0,0,128,239,60,34,225,237,68,229,208,243,63,0,0,0,0,0,160,23,189,187,52,18,76,166,222,243,63,0,0,0,0,0,48,38,61,204,78,28,223,112,236,243,63,0,0,0,0,0,166,72,189,140,126,172,4,69,250,243,63,0,0,0,0,0,220,60,189,187,160,103,195,34,8,244,63,0,0,0,0,0,184,37,61,149,46,247,33,10,22,244,63,0,0,0,0,0,192,30,61,70,70,9,39,251,35,244,63,0,0,0,0,0,96,19,189,32,169,80,217,245,49,244,63,0,0,0,0,0,152,35,61,235,185,132,63,250,63,244,63,0,0,0,0,0,0,250,60,25,137,97,96,8,78,244,63,0,0,0,0,0,192,246,188,1,210,167,66,32,92,244,63,0,0,0,0,0,192,11,189,22,0,29,237,65,106,244,63,0,0,0,0,0,128,18,189,38,51,139,102,109,120,244,63,0,0,0,0,0,224,48,61,0,60,193,181,162,134,244,63,0,0,0,0,0,64,45,189,4,175,146,225,225,148,244,63,0,0,0,0,0,32,12,61,114,211,215,240,42,163,244,63,0,0,0,0,0,80,30,189,1,184,109,234,125,177,244,63,0,0,0,0,0,128,7,61,225,41,54,213,218,191,244,63,0,0,0,0,0,128,19,189,50,193,23,184,65,206,244,63,0,0,0,0,0,128,0,61,219,221,253,153,178,220,244,63,0,0,0,0,0,112,44,61,150,171,216,129,45,235,244,63,0,0,0,0,0,224,28,189,2,45,157,118,178,249,244,63,0,0,0,0,0,32,25,61,193,49,69,127,65,8,245,63,0,0,0,0,0,192,8,189,42,102,207,162,218,22,245,63,0,0,0,0,0,0,250,188,234,81,63,232,125,37,245,63,0,0,0,0,0,8,74,61,218,78,157,86,43,52,245,63,0,0,0,0,0,216,38,189,26,172,246,244,226,66,245,63,0,0,0,0,0,68,50,189,219,148,93,202,164,81,245,63,0,0,0,0,0,60,72,61,107,17,233,221,112,96,245,63,0,0,0,0,0,176,36,61,222,41,181,54,71,111,245,63,0,0,0,0,0,90,65,61,14,196,226,219,39,126,245,63,0,0,0,0,0,224,41,189,111,199,151,212,18,141,245,63,0,0,0,0,0,8,35,189,76,11,255,39,8,156,245,63,0,0,0,0,0,236,77,61,39,84,72,221,7,171,245,63,0,0,0,0,0,0,196,188,244,122,168,251,17,186,245,63,0,0,0,0,0,8,48,61,11,70,89,138,38,201,245,63,0,0,0,0,0,200,38,189,63,142,153,144,69,216,245,63,0,0,0,0,0,154,70,61,225,32,173,21,111,231,245,63,0,0,0,0,0,64,27,189,202,235,220,32,163,246,245,63,0,0,0,0,0,112,23,61,184,220,118,185,225,5,246,63,0,0,0,0,0,248,38,61,21,247,205,230,42,21,246,63,0,0,0,0,0,0,1,61,49,85,58,176,126,36,246,63,0,0,0,0,0,208,21,189,181,41,25,29,221,51,246,63,0,0,0,0,0,208,18,189,19,195,204,52,70,67,246,63,0,0,0,0,0,128,234,188,250,142,188,254,185,82,246,63,0,0,0,0,0,96,40,189,151,51,85,130,56,98,246,63,0,0,0,0,0,254,113,61,142,50,8,199,193,113,246,63,0,0,0,0,0,32,55,189,126,169,76,212,85,129,246,63],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);allocate([0,0,0,0,0,128,230,60,113,148,158,177,244,144,246,63,0,0,0,0,0,120,41,189,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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+30720);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]}var _BDtoIHigh=true;var ___errno_state=0;function ___setErrNo(value){HEAP32[___errno_state>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}Module["_memset"]=_memset;var _BDtoILow=true;var _ceil=Math_ceil;Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=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;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.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*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=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;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){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{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i8){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;i40){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>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var 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){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if((flags&2097155)!==0||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),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);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(lookup.node.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),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,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""}))}),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;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperty(lazyArray,"length",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})});Object.defineProperty(lazyArray,"chunkSize",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperty(node,"usedBytes",{get:(function(){return this.contents.length})});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>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(){Module["websocket"].emit("open",sock.stream.fd);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});Module["websocket"].emit("message",sock.stream.fd)}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("close",(function(){Module["websocket"].emit("close",sock.stream.fd)}));peer.socket.on("error",(function(error){sock.error=ERRNO_CODES.ECONNREFUSED;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])}))}else{peer.socket.onopen=handleOpen;peer.socket.onclose=(function(){Module["websocket"].emit("close",sock.stream.fd)});peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)};peer.socket.onerror=(function(error){sock.error=ERRNO_CODES.ECONNREFUSED;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])})}}),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>2]=HEAP32[varargs+argIndex>>2],HEAP32[tempDoublePtr+4>>2]=HEAP32[varargs+(argIndex+4)>>2],+HEAPF64[tempDoublePtr>>3]);argIndex+=8}else if(type=="i64"){ret=[HEAP32[varargs+argIndex>>2],HEAP32[varargs+(argIndex+4)>>2]];argIndex+=8}else{assert((argIndex&3)===0);type="i32";ret=HEAP32[varargs+argIndex>>2];argIndex+=4}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=0){if(flagAlwaysSigned){prefix="+"+prefix}else if(flagPadSign){prefix=" "+prefix}}if(argText.charAt(0)=="-"){prefix="-"+prefix;argText=argText.substr(1)}while(prefix.length+argText.lengthexponent&&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>0])}}else{ret=ret.concat(intArrayFromString("(null)".substr(0,argLength),true))}if(flagLeftAlign){while(argLength0){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>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 _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;var _llvm_pow_f64=Math_pow;var _cos=Math_cos;var _log=Math_log;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}}var _floor=Math_floor;function ___errno_location(){return ___errno_state}var _BItoD=true;var _sqrt=Math_sqrt;Module["_strcpy"]=_strcpy;function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}var _exp=Math_exp;function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler(){setTimeout(Browser.mainLoop.runner,value)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter((function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}}));if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:(function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++}),resume:(function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),xhrLoad:(function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2]=0;FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}__ATINIT__.push((function(){SOCKFS.root=FS.mount(SOCKFS,{},null)}));_fputc.ret=allocate([0],"i8",ALLOC_STATIC);Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE>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 Qa(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 Ra(a){a=a|0;B=a}function Sa(){return B|0}function Ta(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.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;if((Ua(a)|0)==1){d=Vb((a<<4)+272|0)|0;e=d+8|0;f=Va(a,e)|0;c[d+264>>2]=f;g=d+272|0;if((f|0)>0){i=f+-1|0;j=1;k=0;l=0;while(1){m=c[e+(i-l<<2)>>2]|0;n=j;j=Z(m,j)|0;o=-6.283185307179586/+(j|0);if((n|0)>0&(m|0)>1){p=m+-1|0;m=(p|0)>1?p:1;q=Z(n,m)|0;r=k;s=0;while(1){t=r;u=0;while(1){u=u+1|0;v=o*+(Z(u,s)|0);h[g+(t<<4)>>3]=+P(+v);h[g+(t<<4)+8>>3]=+Q(+v);if((u|0)==(p|0))break;else t=t+1|0}s=s+1|0;if((s|0)==(n|0))break;else r=r+m|0}w=k+q|0}else w=k;l=l+1|0;if((l|0)==(f|0))break;else k=w}}c[d+268>>2]=0;x=d;y=a}else{d=~~+Ob(+Y(+(+Pb(+(a|0))/.3010299956639812)));w=d<<((d|0)<((a<<1)+-2|0)&1);d=Vb((w<<4)+272|0)|0;k=d+8|0;f=Va(w,k)|0;c[d+264>>2]=f;l=d+272|0;if((f|0)>0){g=f+-1|0;j=1;i=0;e=0;while(1){m=c[k+(g-e<<2)>>2]|0;r=j;j=Z(m,j)|0;o=-6.283185307179586/+(j|0);if((r|0)>0&(m|0)>1){n=m+-1|0;m=(n|0)>1?n:1;s=Z(r,m)|0;p=i;t=0;while(1){u=p;z=0;while(1){z=z+1|0;v=o*+(Z(z,t)|0);h[l+(u<<4)>>3]=+P(+v);h[l+(u<<4)+8>>3]=+Q(+v);if((z|0)==(n|0))break;else u=u+1|0}t=t+1|0;if((t|0)==(r|0))break;else p=p+m|0}A=i+s|0}else A=i;e=e+1|0;if((e|0)==(f|0))break;else i=A}}c[d+268>>2]=1;x=d;y=w}c[x>>2]=a;c[x+4>>2]=b;if((b|0)==-1&(y|0)>0)B=0;else return x|0;do{b=x+272+(B<<4)+8|0;h[b>>3]=-+h[b>>3];B=B+1|0}while((B|0)!=(y|0));return x|0}function Ua(a){a=a|0;var 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;if(!((a|0)%53|0)){b=a;while(1){c=(b|0)/53|0;if(!((c|0)%53|0))b=c;else{d=c;break}}}else d=a;if(!((d|0)%47|0)){a=d;while(1){b=(a|0)/47|0;if(!((b|0)%47|0))a=b;else{e=b;break}}}else e=d;if(!((e|0)%43|0)){d=e;while(1){a=(d|0)/43|0;if(!((a|0)%43|0))d=a;else{f=a;break}}}else f=e;if(!((f|0)%41|0)){e=f;while(1){d=(e|0)/41|0;if(!((d|0)%41|0))e=d;else{g=d;break}}}else g=f;if(!((g|0)%37|0)){f=g;while(1){e=(f|0)/37|0;if(!((e|0)%37|0))f=e;else{h=e;break}}}else h=g;if(!((h|0)%31|0)){g=h;while(1){f=(g|0)/31|0;if(!((f|0)%31|0))g=f;else{i=f;break}}}else i=h;if(!((i|0)%29|0)){h=i;while(1){g=(h|0)/29|0;if(!((g|0)%29|0))h=g;else{j=g;break}}}else j=i;if(!((j|0)%23|0)){i=j;while(1){h=(i|0)/23|0;if(!((h|0)%23|0))i=h;else{k=h;break}}}else k=j;if(!((k|0)%17|0)){j=k;while(1){i=(j|0)/17|0;if(!((i|0)%17|0))j=i;else{l=i;break}}}else l=k;if(!((l|0)%13|0)){k=l;while(1){j=(k|0)/13|0;if(!((j|0)%13|0))k=j;else{m=j;break}}}else m=l;if(!((m|0)%11|0)){l=m;while(1){k=(l|0)/11|0;if(!((k|0)%11|0))l=k;else{n=k;break}}}else n=m;if(!(n&7)){m=n;while(1){l=(m|0)/8|0;if(!(l&7))m=l;else{o=l;break}}}else o=n;if(!((o|0)%7|0)){n=o;while(1){m=(n|0)/7|0;if(!((m|0)%7|0))n=m;else{p=m;break}}}else p=o;if(!((p|0)%5|0)){o=p;while(1){n=(o|0)/5|0;if(!((n|0)%5|0))o=n;else{q=n;break}}}else q=p;if(!(q&3)){p=q;while(1){o=(p|0)/4|0;if(!(o&3))p=o;else{r=o;break}}}else r=q;if(!((r|0)%3|0)){q=r;while(1){p=(q|0)/3|0;if(!((p|0)%3|0))q=p;else{s=p;break}}}else s=r;if(!(s&1))t=s;else{u=s;v=(u|0)==1;w=v&1;return w|0}while(1){s=(t|0)/2|0;if(!(s&1))t=s;else{u=s;break}}v=(u|0)==1;w=v&1;return w|0}function Va(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,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;if(!((a|0)%53|0)){d=a;e=0;while(1){f=(d|0)/53|0;c[b+(e<<2)>>2]=53;g=e+1|0;if(!((f|0)%53|0)){d=f;e=g}else{h=f;i=g;break}}}else{h=a;i=0}if(!((h|0)%47|0)){a=h;e=i;while(1){d=(a|0)/47|0;c[b+(e<<2)>>2]=47;g=e+1|0;if(!((d|0)%47|0)){a=d;e=g}else{j=d;k=g;break}}}else{j=h;k=i}if(!((j|0)%43|0)){i=j;h=k;while(1){e=(i|0)/43|0;c[b+(h<<2)>>2]=43;a=h+1|0;if(!((e|0)%43|0)){i=e;h=a}else{l=e;m=a;break}}}else{l=j;m=k}if(!((l|0)%41|0)){k=l;j=m;while(1){h=(k|0)/41|0;c[b+(j<<2)>>2]=41;i=j+1|0;if(!((h|0)%41|0)){k=h;j=i}else{n=h;o=i;break}}}else{n=l;o=m}if(!((n|0)%37|0)){m=n;l=o;while(1){j=(m|0)/37|0;c[b+(l<<2)>>2]=37;k=l+1|0;if(!((j|0)%37|0)){m=j;l=k}else{p=j;q=k;break}}}else{p=n;q=o}if(!((p|0)%31|0)){o=p;n=q;while(1){l=(o|0)/31|0;c[b+(n<<2)>>2]=31;m=n+1|0;if(!((l|0)%31|0)){o=l;n=m}else{r=l;s=m;break}}}else{r=p;s=q}if(!((r|0)%29|0)){q=r;p=s;while(1){n=(q|0)/29|0;c[b+(p<<2)>>2]=29;o=p+1|0;if(!((n|0)%29|0)){q=n;p=o}else{t=n;u=o;break}}}else{t=r;u=s}if(!((t|0)%23|0)){s=t;r=u;while(1){p=(s|0)/23|0;c[b+(r<<2)>>2]=23;q=r+1|0;if(!((p|0)%23|0)){s=p;r=q}else{v=p;w=q;break}}}else{v=t;w=u}if(!((v|0)%19|0)){u=v;t=w;while(1){r=(u|0)/19|0;c[b+(t<<2)>>2]=19;s=t+1|0;if(!((r|0)%19|0)){u=r;t=s}else{x=r;y=s;break}}}else{x=v;y=w}if(!((x|0)%17|0)){w=x;v=y;while(1){t=(w|0)/17|0;c[b+(v<<2)>>2]=17;u=v+1|0;if(!((t|0)%17|0)){w=t;v=u}else{z=t;A=u;break}}}else{z=x;A=y}if(!((z|0)%13|0)){y=z;x=A;while(1){v=(y|0)/13|0;c[b+(x<<2)>>2]=13;w=x+1|0;if(!((v|0)%13|0)){y=v;x=w}else{B=v;C=w;break}}}else{B=z;C=A}if(!((B|0)%11|0)){A=B;z=C;while(1){x=(A|0)/11|0;c[b+(z<<2)>>2]=11;y=z+1|0;if(!((x|0)%11|0)){A=x;z=y}else{D=x;E=y;break}}}else{D=B;E=C}if(!(D&7)){C=D;B=E;while(1){z=(C|0)/8|0;c[b+(B<<2)>>2]=8;A=B+1|0;if(!(z&7)){C=z;B=A}else{F=z;G=A;break}}}else{F=D;G=E}if(!((F|0)%7|0)){E=F;D=G;while(1){B=(E|0)/7|0;c[b+(D<<2)>>2]=7;C=D+1|0;if(!((B|0)%7|0)){E=B;D=C}else{H=B;I=C;break}}}else{H=F;I=G}if(!((H|0)%5|0)){G=H;F=I;while(1){D=(G|0)/5|0;c[b+(F<<2)>>2]=5;E=F+1|0;if(!((D|0)%5|0)){G=D;F=E}else{J=D;K=E;break}}}else{J=H;K=I}if(!(J&3)){I=J;H=K;while(1){F=(I|0)/4|0;c[b+(H<<2)>>2]=4;G=H+1|0;if(!(F&3)){I=F;H=G}else{L=F;M=G;break}}}else{L=J;M=K}if(!((L|0)%3|0)){K=L;J=M;while(1){H=(K|0)/3|0;c[b+(J<<2)>>2]=3;I=J+1|0;if(!((H|0)%3|0)){K=H;J=I}else{N=H;O=I;break}}}else{N=L;O=M}if(!(N&1)){M=N;L=O;while(1){J=(M|0)/2|0;c[b+(L<<2)>>2]=2;K=L+1|0;if(!(J&1)){M=J;L=K}else{P=J;Q=K;break}}}else{P=N;Q=O}if((P|0)>31){R=P;S=Q;T=2}else{U=Q;return U|0}while(1){Q=T*6|0;P=Q+-1|0;O=Q|1;if(!((R|0)%(P|0)|0)){Q=R;N=S;while(1){c[b+(N<<2)>>2]=P;L=N+1|0;M=(Q|0)/(P|0)|0;if(!((M|0)%(P|0)|0)){Q=M;N=L}else{V=M;W=L;break}}}else{V=R;W=S}if(!((V|0)%(O|0)|0)){N=V;Q=W;while(1){c[b+(Q<<2)>>2]=O;P=Q+1|0;L=(N|0)/(O|0)|0;if(!((L|0)%(O|0)|0)){N=L;Q=P}else{X=L;Y=P;break}}}else{X=V;Y=W}if((X|0)>1){R=X;S=Y;T=T+1|0}else{U=Y;break}}return U|0}function Wa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+268>>2]|0;if((e|0)==1){Za(b,d,a,c[a+4>>2]|0,c[a>>2]|0);return}else if(!e){Ya(d,b,a,c[a+4>>2]|0,c[a>>2]|0,1,0);return}else return}function Xa(a){a=a|0;Wb(a);return}function Ya(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0.0,r=0,s=0,t=0.0,u=0,v=0.0,w=0,x=0.0,y=0,z=0.0,A=0,B=0.0,C=0,D=0.0,E=0,F=0.0,G=0,H=0.0,I=0,J=0.0,K=0,L=0.0,M=0.0,N=0.0,O=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0,Y=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.0,ka=0.0,la=0,ma=0,na=0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0,va=0,wa=0.0,xa=0.0,ya=0.0,za=0.0,Aa=0.0,Ba=0.0,Ca=0,Da=0.0,Ea=0.0,Fa=0.0,Ga=0.0,Ha=0.0,Ia=0.0,Ja=0;j=(f|0)>1;if(j)k=c[d+8+(i<<2)>>2]|0;else k=0;switch(f|0){case 7:{l=+h[b>>3];h[a>>3]=l;m=+h[b+8>>3];n=a+8|0;h[n>>3]=m;o=+h[b+(g<<4)>>3];p=a+16|0;h[p>>3]=o;q=+h[b+(g<<4)+8>>3];r=a+24|0;h[r>>3]=q;s=g<<1;t=+h[b+(s<<4)>>3];u=a+32|0;h[u>>3]=t;v=+h[b+(s<<4)+8>>3];s=a+40|0;h[s>>3]=v;w=g*3|0;x=+h[b+(w<<4)>>3];y=a+48|0;h[y>>3]=x;z=+h[b+(w<<4)+8>>3];w=a+56|0;h[w>>3]=z;A=g<<2;B=+h[b+(A<<4)>>3];C=a+64|0;h[C>>3]=B;D=+h[b+(A<<4)+8>>3];A=a+72|0;h[A>>3]=D;E=g*5|0;F=+h[b+(E<<4)>>3];G=a+80|0;h[G>>3]=F;H=+h[b+(E<<4)+8>>3];E=a+88|0;h[E>>3]=H;I=g*6|0;J=+h[b+(I<<4)>>3];K=a+96|0;h[K>>3]=J;L=+h[b+(I<<4)+8>>3];I=a+104|0;h[I>>3]=L;M=o+J;N=o-J;J=L+q;o=q-L;L=t+F;q=t-F;F=v+H;t=v-H;H=x+B;v=x-B;B=z+D;x=z-D;D=M*.62348980185+l-L*.22252093395-H*.9009688679;z=J*.62348980185+m-F*.22252093395-B*.9009688679;O=(e|0)==1;if(O){R=o*-.78183148246-t*.97492791218-x*.43388373911;S=N*-.78183148246-q*.97492791218-v*.43388373911}else{R=o*.78183148246+t*.97492791218+x*.43388373911;S=N*.78183148246+q*.97492791218+v*.43388373911}h[p>>3]=D-R;h[K>>3]=D+R;h[r>>3]=z+S;h[I>>3]=z-S;S=H*.62348980185+(l-M*.22252093395-L*.9009688679);z=B*.62348980185+(m-J*.22252093395-F*.9009688679);R=N*.97492791218;D=q*.43388373911;if(O){T=t*.43388373911-o*.97492791218+x*.78183148246;U=D-R+v*.78183148246}else{T=o*.97492791218-t*.43388373911-x*.78183148246;U=R-D-v*.78183148246}h[u>>3]=S-T;h[G>>3]=S+T;h[s>>3]=z+U;h[E>>3]=z-U;U=L*.62348980185+(l-M*.9009688679)-H*.22252093395;z=F*.62348980185+(m-J*.9009688679)-B*.22252093395;T=N*.43388373911;N=q*.78183148246;if(O){V=t*.78183148246-o*.43388373911-x*.97492791218;W=N-T-v*.97492791218}else{V=o*.43388373911-t*.78183148246+x*.97492791218;W=T-N+v*.97492791218}h[y>>3]=U-V;h[C>>3]=U+V;h[w>>3]=z+W;h[A>>3]=z-W;h[a>>3]=M+L+H+l;h[n>>3]=J+F+B+m;return}case 8:{m=+h[b>>3];h[a>>3]=m;B=+h[b+8>>3];n=a+8|0;h[n>>3]=B;F=+h[b+(g<<4)>>3];A=a+16|0;h[A>>3]=F;J=+h[b+(g<<4)+8>>3];w=a+24|0;h[w>>3]=J;C=g<<1;l=+h[b+(C<<4)>>3];y=a+32|0;h[y>>3]=l;H=+h[b+(C<<4)+8>>3];C=a+40|0;h[C>>3]=H;O=g*3|0;L=+h[b+(O<<4)>>3];E=a+48|0;h[E>>3]=L;M=+h[b+(O<<4)+8>>3];O=a+56|0;h[O>>3]=M;s=g<<2;W=+h[b+(s<<4)>>3];G=a+64|0;h[G>>3]=W;z=+h[b+(s<<4)+8>>3];s=a+72|0;h[s>>3]=z;u=g*5|0;V=+h[b+(u<<4)>>3];I=a+80|0;h[I>>3]=V;U=+h[b+(u<<4)+8>>3];u=a+88|0;h[u>>3]=U;r=g*6|0;v=+h[b+(r<<4)>>3];K=a+96|0;h[K>>3]=v;N=+h[b+(r<<4)+8>>3];r=a+104|0;h[r>>3]=N;p=g*7|0;T=+h[b+(p<<4)>>3];X=a+112|0;h[X>>3]=T;x=+h[b+(p<<4)+8>>3];p=a+120|0;h[p>>3]=x;t=m+W;o=m-W;W=B+z;m=B-z;z=F+T;B=F-T;T=x+J;F=J-x;x=L+V;J=L-V;V=M+U;L=M-U;U=l+v;M=l-v;v=H+N;l=H-N;h[a>>3]=t+z+x+U;h[n>>3]=W+T+V+v;h[G>>3]=t-z-x+U;h[s>>3]=W-T-V+v;N=B+J;H=F+L;q=(z-x)*.7071067811865476;x=o+q;z=(T-V)*.7071067811865476;V=m+z;s=(e|0)==1;if(s){Y=H*-.7071067811865476-l;_=N*-.7071067811865476-M}else{Y=H*.7071067811865476+l;_=N*.7071067811865476+M}h[A>>3]=x-Y;h[w>>3]=V+_;h[X>>3]=x+Y;h[p>>3]=V-_;_=t-U;U=W-v;v=s?L-F:F-L;L=s?J-B:B-J;h[y>>3]=_-v;h[C>>3]=L+U;h[K>>3]=v+_;h[r>>3]=U-L;L=o-q;q=m-z;z=N*.7071067811865476;if(s){$=l-H*.7071067811865476;aa=M-z}else{$=H*.7071067811865476-l;aa=z-M}h[E>>3]=L-$;h[O>>3]=q+aa;h[I>>3]=L+$;h[u>>3]=q-aa;return}case 5:{aa=+h[b>>3];h[a>>3]=aa;q=+h[b+8>>3];u=a+8|0;h[u>>3]=q;$=+h[b+(g<<4)>>3];I=a+16|0;h[I>>3]=$;L=+h[b+(g<<4)+8>>3];O=a+24|0;h[O>>3]=L;E=g<<1;M=+h[b+(E<<4)>>3];s=a+32|0;h[s>>3]=M;z=+h[b+(E<<4)+8>>3];E=a+40|0;h[E>>3]=z;r=g*3|0;l=+h[b+(r<<4)>>3];K=a+48|0;h[K>>3]=l;H=+h[b+(r<<4)+8>>3];r=a+56|0;h[r>>3]=H;C=g<<2;N=+h[b+(C<<4)>>3];y=a+64|0;h[y>>3]=N;m=+h[b+(C<<4)+8>>3];C=a+72|0;h[C>>3]=m;o=$+N;U=$-N;N=m+L;$=L-m;m=M+l;L=M-l;l=z+H;M=z-H;p=(e|0)==1;if(p){ba=$*.95105651629+M*.58778525229;ca=U*.95105651629+L*.58778525229}else{ba=$*-.95105651629-M*.58778525229;ca=U*-.95105651629-L*.58778525229}H=o*.30901699437-m*.80901699437+aa;z=N*.30901699437-l*.80901699437+q;h[I>>3]=ba+H;h[O>>3]=z-ca;h[y>>3]=H-ba;h[C>>3]=ca+z;z=U*.58778525229;U=L*.95105651629;if(p){da=$*.58778525229-M*.95105651629;ea=z-U}else{da=M*.95105651629-$*.58778525229;ea=U-z}z=m*.30901699437-o*.80901699437+aa;U=l*.30901699437-N*.80901699437+q;h[s>>3]=da+z;h[E>>3]=U-ea;h[K>>3]=z-da;h[r>>3]=ea+U;h[a>>3]=o+m+aa;h[u>>3]=N+l+q;return}case 1:{h[a>>3]=+h[b>>3];h[a+8>>3]=+h[b+8>>3];return}case 2:{q=+h[b>>3];h[a>>3]=q;l=+h[b+8>>3];u=a+8|0;h[u>>3]=l;N=+h[b+(g<<4)>>3];aa=+h[b+(g<<4)+8>>3];h[a>>3]=q+N;h[u>>3]=l+aa;h[a+16>>3]=q-N;h[a+24>>3]=l-aa;return}case 3:{aa=+h[b>>3];h[a>>3]=aa;l=+h[b+8>>3];u=a+8|0;h[u>>3]=l;N=+h[b+(g<<4)>>3];r=a+16|0;h[r>>3]=N;q=+h[b+(g<<4)+8>>3];K=a+24|0;h[K>>3]=q;E=g<<1;m=+h[b+(E<<4)>>3];o=+h[b+(E<<4)+8>>3];U=N+m;ea=o+q;da=+(e|0)*.86602540378;z=da*(N-m);m=da*(q-o);o=aa-U*.5;q=l-ea*.5;h[a>>3]=U+aa;h[u>>3]=ea+l;h[r>>3]=o+m;h[K>>3]=q-z;h[a+32>>3]=o-m;h[a+40>>3]=z+q;return}case 4:{q=+h[b>>3];h[a>>3]=q;z=+h[b+8>>3];K=a+8|0;h[K>>3]=z;m=+h[b+(g<<4)>>3];r=a+16|0;h[r>>3]=m;o=+h[b+(g<<4)+8>>3];u=a+24|0;h[u>>3]=o;E=g<<1;l=+h[b+(E<<4)>>3];s=a+32|0;h[s>>3]=l;ea=+h[b+(E<<4)+8>>3];E=a+40|0;h[E>>3]=ea;p=g*3|0;aa=+h[b+(p<<4)>>3];U=+h[b+(p<<4)+8>>3];da=q+l;N=z+ea;$=q-l;l=z-ea;ea=m+aa;z=U+o;q=+(e|0);M=q*(m-aa);aa=q*(o-U);h[a>>3]=da+ea;h[K>>3]=N+z;h[r>>3]=$+aa;h[u>>3]=l-M;h[s>>3]=da-ea;h[E>>3]=N-z;h[a+48>>3]=$-aa;h[a+56>>3]=l+M;return}default:switch(k|0){case 2:{E=(f|0)/2|0;s=g<<1;u=i+1|0;Ya(a,b,d,e,E,s,u);Ya(a+(E<<4)|0,b+(g<<4)|0,d,e,E,s,u);if(!j)return;j=E+-1|0;u=0;do{s=j+u|0;M=+h[d+272+(s<<4)>>3];l=+h[d+272+(s<<4)+8>>3];s=u+E|0;r=a+(u<<4)|0;aa=+h[r>>3];K=a+(u<<4)+8|0;$=+h[K>>3];p=a+(s<<4)|0;z=+h[p>>3];C=a+(s<<4)+8|0;N=+h[C>>3];ea=M*z-l*N;da=l*z+M*N;h[r>>3]=aa+ea;h[K>>3]=$+da;h[p>>3]=aa-ea;h[C>>3]=$-da;u=u+1|0}while((u|0)<(E|0));return}case 3:{E=(f|0)/3|0;u=g*3|0;j=i+1|0;Ya(a,b,d,e,E,u,j);Ya(a+(E<<4)|0,b+(g<<4)|0,d,e,E,u,j);Ya(a+(E<<1<<4)|0,b+(g<<1<<4)|0,d,e,E,u,j);if((f|0)<=2)return;j=E+-1|0;da=+(e|0)*.86602540378;u=0;do{C=u<<1;p=j+C|0;$=+h[d+272+(p<<4)>>3];ea=+h[d+272+(p<<4)+8>>3];p=C+E|0;aa=+h[d+272+(p<<4)>>3];N=+h[d+272+(p<<4)+8>>3];p=u+E|0;C=p+E|0;K=a+(u<<4)|0;M=+h[K>>3];r=a+(u<<4)+8|0;z=+h[r>>3];s=a+(p<<4)|0;l=+h[s>>3];y=a+(p<<4)+8|0;U=+h[y>>3];o=$*l-ea*U;q=ea*l+$*U;p=a+(C<<4)|0;U=+h[p>>3];O=a+(C<<4)+8|0;$=+h[O>>3];l=aa*U-N*$;ea=N*U+aa*$;$=o+l;aa=q+ea;U=da*(o-l);l=da*(q-ea);ea=M-$*.5;q=z-aa*.5;h[K>>3]=M+$;h[r>>3]=z+aa;h[s>>3]=l+ea;h[y>>3]=q-U;h[p>>3]=ea-l;h[O>>3]=U+q;u=u+1|0}while((u|0)<(E|0));return}case 4:{E=(f|0)/4|0;u=g<<2;j=i+1|0;Ya(a,b,d,e,E,u,j);O=a+(E<<4)|0;Ya(O,b+(g<<4)|0,d,e,E,u,j);p=E<<1;Ya(a+(p<<4)|0,b+(g<<1<<4)|0,d,e,E,u,j);y=E*3|0;Ya(a+(y<<4)|0,b+(g*3<<4)|0,d,e,E,u,j);da=+h[a>>3];j=a+8|0;q=+h[j>>3];U=+h[O>>3];u=a+(E<<4)+8|0;l=+h[u>>3];s=a+(p<<4)|0;ea=+h[s>>3];r=a+(p<<4)+8|0;aa=+h[r>>3];p=a+(y<<4)|0;z=+h[p>>3];K=a+(y<<4)+8|0;$=+h[K>>3];M=da+ea;o=q+aa;N=da-ea;ea=q-aa;aa=U+z;q=l+$;da=+(e|0);m=da*(U-z);z=da*(l-$);h[a>>3]=M+aa;h[j>>3]=o+q;h[O>>3]=N+z;h[u>>3]=ea-m;h[s>>3]=M-aa;h[r>>3]=o-q;h[p>>3]=N-z;h[K>>3]=ea+m;if((f|0)<=7)return;K=E+-1|0;p=1;do{r=p*3|0;s=K+r|0;m=+h[d+272+(s<<4)>>3];ea=+h[d+272+(s<<4)+8>>3];s=r+E|0;z=+h[d+272+(s<<4)>>3];N=+h[d+272+(s<<4)+8>>3];r=s+1|0;q=+h[d+272+(r<<4)>>3];o=+h[d+272+(r<<4)+8>>3];r=p+E|0;s=r+E|0;u=s+E|0;O=a+(p<<4)|0;aa=+h[O>>3];j=a+(p<<4)+8|0;M=+h[j>>3];y=a+(r<<4)|0;$=+h[y>>3];C=a+(r<<4)+8|0;l=+h[C>>3];U=m*$-ea*l;L=ea*$+m*l;r=a+(s<<4)|0;l=+h[r>>3];I=a+(s<<4)+8|0;m=+h[I>>3];$=z*l-N*m;ea=N*l+z*m;s=a+(u<<4)|0;m=+h[s>>3];X=a+(u<<4)+8|0;z=+h[X>>3];l=q*m-o*z;N=o*m+q*z;z=aa+$;q=M+ea;m=aa-$;$=M-ea;ea=U+l;M=L+N;aa=da*(U-l);l=da*(L-N);h[O>>3]=z+ea;h[j>>3]=q+M;h[y>>3]=m+l;h[C>>3]=$-aa;h[r>>3]=z-ea;h[I>>3]=q-M;h[s>>3]=m-l;h[X>>3]=$+aa;p=p+1|0}while((p|0)<(E|0));return}case 5:{E=(f|0)/5|0;p=g*5|0;K=i+1|0;Ya(a,b,d,e,E,p,K);X=a+(E<<4)|0;Ya(X,b+(g<<4)|0,d,e,E,p,K);s=E<<1;Ya(a+(s<<4)|0,b+(g<<1<<4)|0,d,e,E,p,K);I=E*3|0;Ya(a+(I<<4)|0,b+(g*3<<4)|0,d,e,E,p,K);r=E<<2;Ya(a+(r<<4)|0,b+(g<<2<<4)|0,d,e,E,p,K);da=+h[a>>3];K=a+8|0;aa=+h[K>>3];$=+h[X>>3];p=a+(E<<4)+8|0;l=+h[p>>3];C=a+(s<<4)|0;m=+h[C>>3];y=a+(s<<4)+8|0;M=+h[y>>3];s=a+(I<<4)|0;q=+h[s>>3];j=a+(I<<4)+8|0;ea=+h[j>>3];I=a+(r<<4)|0;z=+h[I>>3];O=a+(r<<4)+8|0;N=+h[O>>3];L=$+z;U=l+N;o=m+q;ca=M+ea;ba=$-z;z=l-N;N=m-q;q=M-ea;h[a>>3]=o+(da+L);h[K>>3]=ca+(aa+U);ea=+(e|0);M=ea*(N*.58778525229+ba*.95105651629);m=ea*(q*.58778525229+z*.95105651629);l=da+(L*.30901699437-o*.80901699437);$=aa+(U*.30901699437-ca*.80901699437);h[X>>3]=l+m;h[p>>3]=$-M;h[I>>3]=l-m;h[O>>3]=M+$;$=ea*(ba*.58778525229-N*.95105651629);N=ea*(z*.58778525229-q*.95105651629);q=da+(o*.30901699437-L*.80901699437);L=aa+(ca*.30901699437-U*.80901699437);h[C>>3]=q+N;h[y>>3]=L-$;h[s>>3]=q-N;h[j>>3]=$+L;if((f|0)<=9)return;j=E+-1|0;if((e|0)==1){s=1;do{y=s<<2;C=j+y|0;L=+h[d+272+(C<<4)>>3];$=+h[d+272+(C<<4)+8>>3];C=y+E|0;N=+h[d+272+(C<<4)>>3];q=+h[d+272+(C<<4)+8>>3];y=C+1|0;U=+h[d+272+(y<<4)>>3];ca=+h[d+272+(y<<4)+8>>3];y=C+2|0;aa=+h[d+272+(y<<4)>>3];o=+h[d+272+(y<<4)+8>>3];y=s+E|0;C=y+E|0;O=C+E|0;I=O+E|0;p=a+(s<<4)|0;da=+h[p>>3];X=a+(s<<4)+8|0;z=+h[X>>3];K=a+(y<<4)|0;ea=+h[K>>3];r=a+(y<<4)+8|0;ba=+h[r>>3];M=L*ea-$*ba;m=$*ea+L*ba;y=a+(C<<4)|0;ba=+h[y>>3];u=a+(C<<4)+8|0;L=+h[u>>3];ea=N*ba-q*L;$=q*ba+N*L;C=a+(O<<4)|0;L=+h[C>>3];w=a+(O<<4)+8|0;N=+h[w>>3];ba=U*L-ca*N;q=ca*L+U*N;O=a+(I<<4)|0;N=+h[O>>3];A=a+(I<<4)+8|0;U=+h[A>>3];L=aa*N-o*U;ca=o*N+aa*U;U=M+L;aa=m+ca;N=ea+ba;o=$+q;l=M-L;L=m-ca;ca=ea-ba;ba=$-q;h[p>>3]=N+(da+U);h[X>>3]=o+(z+aa);q=ca*.58778525229+l*.95105651629;$=ba*.58778525229+L*.95105651629;ea=da+(U*.30901699437-N*.80901699437);m=z+(aa*.30901699437-o*.80901699437);h[K>>3]=ea+$;h[r>>3]=m-q;h[O>>3]=ea-$;h[A>>3]=m+q;q=l*.58778525229-ca*.95105651629;ca=L*.58778525229-ba*.95105651629;ba=da+(N*.30901699437-U*.80901699437);U=z+(o*.30901699437-aa*.80901699437);h[y>>3]=ba+ca;h[u>>3]=U-q;h[C>>3]=ba-ca;h[w>>3]=U+q;s=s+1|0}while((s|0)<(E|0));return}else{s=1;do{w=s<<2;C=j+w|0;q=+h[d+272+(C<<4)>>3];U=+h[d+272+(C<<4)+8>>3];C=w+E|0;ca=+h[d+272+(C<<4)>>3];ba=+h[d+272+(C<<4)+8>>3];w=C+1|0;aa=+h[d+272+(w<<4)>>3];o=+h[d+272+(w<<4)+8>>3];w=C+2|0;z=+h[d+272+(w<<4)>>3];N=+h[d+272+(w<<4)+8>>3];w=s+E|0;C=w+E|0;u=C+E|0;y=u+E|0;A=a+(s<<4)|0;da=+h[A>>3];O=a+(s<<4)+8|0;L=+h[O>>3];r=a+(w<<4)|0;l=+h[r>>3];K=a+(w<<4)+8|0;m=+h[K>>3];$=q*l-U*m;ea=U*l+q*m;w=a+(C<<4)|0;m=+h[w>>3];X=a+(C<<4)+8|0;q=+h[X>>3];l=ca*m-ba*q;U=ba*m+ca*q;C=a+(u<<4)|0;q=+h[C>>3];p=a+(u<<4)+8|0;ca=+h[p>>3];m=aa*q-o*ca;ba=o*q+aa*ca;u=a+(y<<4)|0;ca=+h[u>>3];I=a+(y<<4)+8|0;aa=+h[I>>3];q=z*ca-N*aa;o=N*ca+z*aa;aa=$+q;z=ea+o;ca=l+m;N=U+ba;M=$-q;q=ea-o;o=l-m;m=U-ba;h[A>>3]=ca+(da+aa);h[O>>3]=N+(L+z);ba=M*-.95105651629-o*.58778525229;U=q*-.95105651629-m*.58778525229;l=da+(aa*.30901699437-ca*.80901699437);ea=L+(z*.30901699437-N*.80901699437);h[r>>3]=l+U;h[K>>3]=ea-ba;h[u>>3]=l-U;h[I>>3]=ea+ba;ba=o*.95105651629-M*.58778525229;M=m*.95105651629-q*.58778525229;q=da+(ca*.30901699437-aa*.80901699437);aa=L+(N*.30901699437-z*.80901699437);h[w>>3]=q+M;h[X>>3]=aa-ba;h[C>>3]=q-M;h[p>>3]=aa+ba;s=s+1|0}while((s|0)<(E|0));return}break}case 7:{E=(f|0)/7|0;s=g*7|0;j=i+1|0;Ya(a,b,d,e,E,s,j);p=a+(E<<4)|0;Ya(p,b+(g<<4)|0,d,e,E,s,j);C=E<<1;Ya(a+(C<<4)|0,b+(g<<1<<4)|0,d,e,E,s,j);X=E*3|0;Ya(a+(X<<4)|0,b+(g*3<<4)|0,d,e,E,s,j);w=E<<2;Ya(a+(w<<4)|0,b+(g<<2<<4)|0,d,e,E,s,j);I=E*5|0;Ya(a+(I<<4)|0,b+(g*5<<4)|0,d,e,E,s,j);u=E*6|0;Ya(a+(u<<4)|0,b+(g*6<<4)|0,d,e,E,s,j);ba=+h[a>>3];j=a+8|0;aa=+h[j>>3];M=+h[p>>3];s=a+(E<<4)+8|0;q=+h[s>>3];K=a+(C<<4)|0;z=+h[K>>3];r=a+(C<<4)+8|0;N=+h[r>>3];C=a+(X<<4)|0;L=+h[C>>3];O=a+(X<<4)+8|0;ca=+h[O>>3];X=a+(w<<4)|0;da=+h[X>>3];A=a+(w<<4)+8|0;m=+h[A>>3];w=a+(I<<4)|0;o=+h[w>>3];y=a+(I<<4)+8|0;ea=+h[y>>3];I=a+(u<<4)|0;U=+h[I>>3];G=a+(u<<4)+8|0;l=+h[G>>3];$=M+U;H=M-U;U=q+l;M=q-l;l=z+o;q=z-o;o=N+ea;z=N-ea;ea=L+da;N=L-da;da=ca+m;L=ca-m;h[a>>3]=ea+(l+(ba+$));h[j>>3]=da+(o+(aa+U));m=ba+$*.62348980185-l*.22252093395-ea*.9009688679;ca=aa+U*.62348980185-o*.22252093395-da*.9009688679;j=(e|0)==1;if(j){fa=M*-.78183148246-z*.97492791218-L*.43388373911;ga=H*-.78183148246-q*.97492791218-N*.43388373911}else{fa=L*.43388373911+(z*.97492791218+M*.78183148246);ga=N*.43388373911+(q*.97492791218+H*.78183148246)}h[p>>3]=m-fa;h[s>>3]=ca+ga;h[I>>3]=m+fa;h[G>>3]=ca-ga;ga=ea*.62348980185+(ba-$*.22252093395-l*.9009688679);ca=da*.62348980185+(aa-U*.22252093395-o*.9009688679);fa=H*.97492791218;m=q*.43388373911;if(j){ha=L*.78183148246+(z*.43388373911-M*.97492791218);ia=N*.78183148246+(m-fa)}else{ha=M*.97492791218-z*.43388373911-L*.78183148246;ia=fa-m-N*.78183148246}h[K>>3]=ga-ha;h[r>>3]=ca+ia;h[w>>3]=ga+ha;h[y>>3]=ca-ia;ia=l*.62348980185+(ba-$*.9009688679)-ea*.22252093395;ea=o*.62348980185+(aa-U*.9009688679)-da*.22252093395;da=H*.43388373911;H=q*.78183148246;if(j){ja=z*.78183148246-M*.43388373911-L*.97492791218;ka=H-da-N*.97492791218}else{ja=L*.97492791218+(M*.43388373911-z*.78183148246);ka=N*.97492791218+(da-H)}h[C>>3]=ia-ja;h[O>>3]=ea+ka;h[X>>3]=ia+ja;h[A>>3]=ea-ka;if((f|0)<=13)return;A=E+-1|0;X=1;do{O=X*6|0;C=A+O|0;ka=+h[d+272+(C<<4)>>3];ea=+h[d+272+(C<<4)+8>>3];C=O+E|0;ja=+h[d+272+(C<<4)>>3];ia=+h[d+272+(C<<4)+8>>3];O=C+1|0;H=+h[d+272+(O<<4)>>3];da=+h[d+272+(O<<4)+8>>3];O=C+2|0;N=+h[d+272+(O<<4)>>3];z=+h[d+272+(O<<4)+8>>3];O=C+3|0;M=+h[d+272+(O<<4)>>3];L=+h[d+272+(O<<4)+8>>3];O=C+4|0;q=+h[d+272+(O<<4)>>3];U=+h[d+272+(O<<4)+8>>3];O=X+E|0;C=O+E|0;y=C+E|0;w=y+E|0;r=w+E|0;K=r+E|0;G=a+(X<<4)|0;aa=+h[G>>3];I=a+(X<<4)+8|0;o=+h[I>>3];s=a+(O<<4)|0;$=+h[s>>3];p=a+(O<<4)+8|0;ba=+h[p>>3];l=ka*$-ea*ba;ca=ea*$+ka*ba;O=a+(C<<4)|0;ba=+h[O>>3];u=a+(C<<4)+8|0;ka=+h[u>>3];$=ja*ba-ia*ka;ea=ia*ba+ja*ka;C=a+(y<<4)|0;ka=+h[C>>3];n=a+(y<<4)+8|0;ja=+h[n>>3];ba=H*ka-da*ja;ia=da*ka+H*ja;y=a+(w<<4)|0;ja=+h[y>>3];la=a+(w<<4)+8|0;H=+h[la>>3];ka=N*ja-z*H;da=z*ja+N*H;w=a+(r<<4)|0;H=+h[w>>3];ma=a+(r<<4)+8|0;N=+h[ma>>3];ja=M*H-L*N;z=L*H+M*N;r=a+(K<<4)|0;N=+h[r>>3];na=a+(K<<4)+8|0;M=+h[na>>3];H=q*N-U*M;L=U*N+q*M;M=l+H;q=l-H;H=ca+L;l=ca-L;L=$+ja;ca=$-ja;ja=ea+z;$=ea-z;z=ba+ka;ea=ba-ka;ka=ia+da;ba=ia-da;h[G>>3]=z+(L+(aa+M));h[I>>3]=ka+(ja+(o+H));da=aa+M*.62348980185-L*.22252093395-z*.9009688679;ia=o+H*.62348980185-ja*.22252093395-ka*.9009688679;if(j){oa=l*-.78183148246-$*.97492791218-ba*.43388373911;pa=q*-.78183148246-ca*.97492791218-ea*.43388373911}else{oa=ba*.43388373911+($*.97492791218+l*.78183148246);pa=ea*.43388373911+(ca*.97492791218+q*.78183148246)}h[s>>3]=da-oa;h[p>>3]=ia+pa;h[r>>3]=da+oa;h[na>>3]=ia-pa;ia=z*.62348980185+(aa-M*.22252093395-L*.9009688679);da=ka*.62348980185+(o-H*.22252093395-ja*.9009688679);N=q*.97492791218;U=ca*.43388373911;if(j){qa=ba*.78183148246+($*.43388373911-l*.97492791218);ra=ea*.78183148246+(U-N)}else{qa=l*.97492791218-$*.43388373911-ba*.78183148246;ra=N-U-ea*.78183148246}h[O>>3]=ia-qa;h[u>>3]=da+ra;h[w>>3]=ia+qa;h[ma>>3]=da-ra;da=L*.62348980185+(aa-M*.9009688679)-z*.22252093395;z=ja*.62348980185+(o-H*.9009688679)-ka*.22252093395;ka=q*.43388373911;q=ca*.78183148246;if(j){sa=$*.78183148246-l*.43388373911-ba*.97492791218;ta=q-ka-ea*.97492791218}else{sa=ba*.97492791218+(l*.43388373911-$*.78183148246);ta=ea*.97492791218+(ka-q)}h[C>>3]=da-sa;h[n>>3]=z+ta;h[y>>3]=da+sa;h[la>>3]=z-ta;X=X+1|0}while((X|0)<(E|0));return}case 8:{E=(f|0)/8|0;X=g<<3;j=i+1|0;Ya(a,b,d,e,E,X,j);Ya(a+(E<<4)|0,b+(g<<4)|0,d,e,E,X,j);Ya(a+(E<<1<<4)|0,b+(g<<1<<4)|0,d,e,E,X,j);Ya(a+(E*3<<4)|0,b+(g*3<<4)|0,d,e,E,X,j);Ya(a+(E<<2<<4)|0,b+(g<<2<<4)|0,d,e,E,X,j);Ya(a+(E*5<<4)|0,b+(g*5<<4)|0,d,e,E,X,j);Ya(a+(E*6<<4)|0,b+(g*6<<4)|0,d,e,E,X,j);Ya(a+(E*7<<4)|0,b+(g*7<<4)|0,d,e,E,X,j);if((f|0)<=7)return;j=E+-1|0;X=(e|0)==1;A=0;do{la=A*7|0;y=j+la|0;ta=+h[d+272+(y<<4)>>3];sa=+h[d+272+(y<<4)+8>>3];y=la+E|0;ra=+h[d+272+(y<<4)>>3];qa=+h[d+272+(y<<4)+8>>3];la=y+1|0;pa=+h[d+272+(la<<4)>>3];oa=+h[d+272+(la<<4)+8>>3];la=y+2|0;z=+h[d+272+(la<<4)>>3];da=+h[d+272+(la<<4)+8>>3];la=y+3|0;q=+h[d+272+(la<<4)>>3];ka=+h[d+272+(la<<4)+8>>3];la=y+4|0;ea=+h[d+272+(la<<4)>>3];$=+h[d+272+(la<<4)+8>>3];la=y+5|0;l=+h[d+272+(la<<4)>>3];ba=+h[d+272+(la<<4)+8>>3];la=A+E|0;y=la+E|0;n=y+E|0;C=n+E|0;ma=C+E|0;w=ma+E|0;u=w+E|0;O=a+(A<<4)|0;ca=+h[O>>3];na=a+(A<<4)+8|0;H=+h[na>>3];r=a+(la<<4)|0;o=+h[r>>3];p=a+(la<<4)+8|0;ja=+h[p>>3];M=ta*o-sa*ja;aa=sa*o+ta*ja;la=a+(y<<4)|0;ja=+h[la>>3];s=a+(y<<4)+8|0;ta=+h[s>>3];o=ra*ja-qa*ta;sa=qa*ja+ra*ta;y=a+(n<<4)|0;ta=+h[y>>3];I=a+(n<<4)+8|0;ra=+h[I>>3];ja=pa*ta-oa*ra;qa=oa*ta+pa*ra;n=a+(C<<4)|0;ra=+h[n>>3];G=a+(C<<4)+8|0;pa=+h[G>>3];ta=z*ra-da*pa;oa=da*ra+z*pa;C=a+(ma<<4)|0;pa=+h[C>>3];K=a+(ma<<4)+8|0;z=+h[K>>3];ra=q*pa-ka*z;da=ka*pa+q*z;ma=a+(w<<4)|0;z=+h[ma>>3];ua=a+(w<<4)+8|0;q=+h[ua>>3];pa=ea*z-$*q;ka=$*z+ea*q;w=a+(u<<4)|0;q=+h[w>>3];va=a+(u<<4)+8|0;ea=+h[va>>3];z=l*q-ba*ea;$=ba*q+l*ea;ea=ca+ta;l=ca-ta;ta=H+oa;ca=H-oa;oa=M+z;H=M-z;z=aa+$;M=aa-$;$=ja+ra;aa=ja-ra;ra=qa-da;ja=qa+da;da=o+pa;qa=o-pa;pa=sa-ka;o=sa+ka;h[O>>3]=da+($+(ea+oa));h[na>>3]=o+(ja+(ta+z));h[n>>3]=da+(ea-oa-$);h[G>>3]=o+(ta-z-ja);ka=aa+H;sa=ra+M;q=(oa-$)*.7071067811865476;$=l+q;oa=(z-ja)*.7071067811865476;ja=ca+oa;if(X){wa=sa*-.7071067811865476-pa;xa=ka*-.7071067811865476-qa}else{wa=pa+sa*.7071067811865476;xa=qa+ka*.7071067811865476}h[r>>3]=$-wa;h[p>>3]=ja+xa;h[w>>3]=$+wa;h[va>>3]=ja-xa;ja=ea-da;da=ta-o;o=X?aa-H:H-aa;aa=X?ra-M:M-ra;h[la>>3]=ja-aa;h[s>>3]=da+o;h[ma>>3]=ja+aa;h[ua>>3]=da-o;o=l-q;q=ca-oa;oa=ka*.7071067811865476;if(X){ya=pa-sa*.7071067811865476;za=qa-oa}else{ya=sa*.7071067811865476-pa;za=oa-qa}h[y>>3]=o-ya;h[I>>3]=q+za;h[C>>3]=o+ya;h[K>>3]=q-za;A=A+1|0}while((A|0)<(E|0));return}default:{E=k+-1|0;A=E<<3;X=Vb(A)|0;j=Vb(A)|0;K=Vb(A)|0;C=Vb(A)|0;A=k<<3;I=Vb(A)|0;y=Vb(A)|0;A=(f|0)/(k|0)|0;f=Z(k,g)|0;if((k|0)>0){ua=i+1|0;i=0;do{Ya(a+((Z(i,A)|0)<<4)|0,b+((Z(i,g)|0)<<4)|0,d,e,A,f,ua);i=i+1|0}while((i|0)!=(k|0))}i=(E|0)/2|0;ua=(E|0)>1;if(ua){za=+(k|0);f=1;while(1){ya=+(f|0)*6.283185307179586/za;g=f+-1|0;h[K+(g<<3)>>3]=+P(+ya);h[C+(g<<3)>>3]=+Q(+ya);if((f|0)<(i|0))f=f+1|0;else break}if(ua){f=i+-1|0;g=0;do{b=f-g|0;ma=g+i|0;h[C+(ma<<3)>>3]=-+h[C+(b<<3)>>3];h[K+(ma<<3)>>3]=+h[K+(b<<3)>>3];g=g+1|0}while((g|0)<(i|0))}}if((A|0)>0){g=A+-1|0;f=(k|0)>1;za=+(e|0);e=0;do{b=a+(e<<4)|0;h[I>>3]=+h[b>>3];ma=a+(e<<4)+8|0;h[y>>3]=+h[ma>>3];if(f){s=0;la=g+(Z(e,E)|0)|0;while(1){ya=+h[d+272+(la<<4)>>3];xa=+h[d+272+(la<<4)+8>>3];s=s+1|0;va=(Z(s,A)|0)+e|0;wa=+h[a+(va<<4)>>3];q=+h[a+(va<<4)+8>>3];h[I+(s<<3)>>3]=wa*ya-xa*q;h[y+(s<<3)>>3]=q*ya+wa*xa;if((s|0)==(E|0))break;else la=la+1|0}}if(ua){la=0;do{s=la;la=la+1|0;xa=+h[I+(la<<3)>>3];va=E-s|0;wa=+h[I+(va<<3)>>3];h[X+(s<<3)>>3]=xa+wa;ya=+h[y+(la<<3)>>3];q=+h[y+(va<<3)>>3];va=s+i|0;h[j+(va<<3)>>3]=ya-q;h[j+(s<<3)>>3]=ya+q;h[X+(va<<3)>>3]=xa-wa}while((la|0)<(i|0));wa=+h[I>>3];xa=+h[y>>3];if(ua){la=0;q=xa;ya=wa;while(1){o=ya+ +h[X+(la<<3)>>3];qa=q+ +h[j+(la<<3)>>3];la=la+1|0;if((la|0)>=(i|0)){Aa=o;Ba=qa;break}else{q=qa;ya=o}}h[b>>3]=Aa;h[ma>>3]=Ba;if(ua){la=0;do{va=la;la=la+1|0;ya=xa;q=wa;o=0.0;qa=0.0;s=0;while(1){w=s;s=s+1|0;p=Z(s,la)|0;while(1)if((p|0)<(k|0)){Ca=p;break}else p=p-k|0;p=Ca+-1|0;oa=+h[K+(p<<3)>>3];pa=q+oa*+h[X+(w<<3)>>3];sa=ya+oa*+h[j+(w<<3)>>3];oa=+h[C+(p<<3)>>3];p=w+i|0;ka=qa-oa*+h[X+(p<<3)>>3];ca=o-oa*+h[j+(p<<3)>>3];if((s|0)>=(i|0)){Da=pa;Ea=sa;Fa=ka;Ga=ca;break}else{ya=sa;q=pa;o=ca;qa=ka}}qa=za*Fa;o=za*Ga;s=(Z(la,A)|0)+e|0;h[a+(s<<4)>>3]=Da-o;h[a+(s<<4)+8>>3]=Ea+qa;s=(Z(E-va|0,A)|0)+e|0;h[a+(s<<4)>>3]=Da+o;h[a+(s<<4)+8>>3]=Ea-qa}while((la|0)<(i|0))}}else{Ha=xa;Ia=wa;Ja=95}}else{Ha=+h[y>>3];Ia=+h[I>>3];Ja=95}if((Ja|0)==95){Ja=0;h[b>>3]=Ia;h[ma>>3]=Ha}e=e+1|0}while((e|0)!=(A|0))}Wb(X);Wb(j);Wb(K);Wb(C);Wb(I);Wb(y);return}}}}function Za(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0.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,v=0,w=0,x=0.0,y=0.0,z=0,A=0,B=0,C=0;g=d+268|0;c[g>>2]=0;i=+(f|0);j=~~+Ob(+Y(+(+Pb(i)/.3010299956639812)));k=d+4|0;l=c[k>>2]|0;m=c[d>>2]|0;n=f<<1;o=j<<((j|0)<(n+-2|0)&1);c[d>>2]=o;j=o<<4;p=Vb(j)|0;q=Vb(j)|0;r=Vb(j)|0;s=Vb(j)|0;j=Vb(f<<4)|0;t=3.141592653589793/i;u=(f|0)>0;if(u){v=0;w=0;while(1){i=t*+(w|0);x=+P(+i);h[j+(v<<4)>>3]=x;y=+Q(+i);h[j+(v<<4)+8>>3]=y;h[r+(v<<4)>>3]=x;h[r+(v<<4)+8>>3]=y;z=(v<<1|1)+w|0;while(1)if((z|0)>(n|0))z=z-n|0;else{A=z;break}z=v+1|0;if((z|0)==(f|0))break;else{v=z;w=A}}}A=o-f|0;w=A+1|0;if((A|0)>=(f|0)){A=f;do{v=r+(A<<4)|0;A=A+1|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0}while((A|0)<(w|0))}if((w|0)<(o|0)){A=w;do{w=o-A|0;h[r+(A<<4)>>3]=+h[j+(w<<4)>>3];h[r+(A<<4)+8>>3]=+h[j+(w<<4)+8>>3];A=A+1|0}while((A|0)!=(o|0))}t=1.0/+(o|0);A=(o|0)>0;if(A){w=0;do{v=r+(w<<4)+8|0;h[v>>3]=t*+h[v>>3];v=r+(w<<4)|0;h[v>>3]=t*+h[v>>3];w=w+1|0}while((w|0)!=(o|0))}Ya(q,r,d,l,o,1,0);w=(e|0)==1;if(w){if(u){v=0;do{t=+h[a+(v<<4)>>3];y=+h[j+(v<<4)>>3];x=+h[a+(v<<4)+8>>3];i=+h[j+(v<<4)+8>>3];h[r+(v<<4)>>3]=t*y+x*i;h[r+(v<<4)+8>>3]=x*y-t*i;v=v+1|0}while((v|0)!=(f|0))}}else if(u){v=0;do{i=+h[a+(v<<4)>>3];t=+h[j+(v<<4)>>3];y=+h[a+(v<<4)+8>>3];x=+h[j+(v<<4)+8>>3];h[r+(v<<4)>>3]=i*t-y*x;h[r+(v<<4)+8>>3]=i*x+y*t;v=v+1|0}while((v|0)!=(f|0))}if((o|0)>(f|0)){v=f;do{a=r+(v<<4)|0;v=v+1|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0}while((v|0)!=(o|0))}v=c[g>>2]|0;if((v|0)==1)Za(r,p,d,c[k>>2]|0,c[d>>2]|0);else if(!v)Ya(p,r,d,c[k>>2]|0,c[d>>2]|0,1,0);if(w){if(A){v=0;do{a=p+(v<<4)|0;t=+h[a>>3];y=+h[q+(v<<4)>>3];n=p+(v<<4)+8|0;x=+h[n>>3];i=+h[q+(v<<4)+8>>3];h[n>>3]=y*x+t*i;h[a>>3]=t*y-x*i;v=v+1|0}while((v|0)!=(o|0));B=24}}else if(A){v=0;do{a=p+(v<<4)|0;i=+h[a>>3];x=+h[q+(v<<4)>>3];n=p+(v<<4)+8|0;y=+h[n>>3];t=+h[q+(v<<4)+8>>3];h[n>>3]=x*y-i*t;h[a>>3]=i*x+y*t;v=v+1|0}while((v|0)!=(o|0));B=24}if((B|0)==24?A:0){B=0;do{v=d+272+(B<<4)+8|0;h[v>>3]=-+h[v>>3];B=B+1|0}while((B|0)!=(o|0))}B=0-e|0;c[k>>2]=B;e=c[g>>2]|0;if(!e)Ya(s,p,d,B,c[d>>2]|0,1,0);else if((e|0)==1)Za(p,s,d,B,c[d>>2]|0);if(w){if(u){w=0;do{t=+h[s+(w<<4)>>3];y=+h[j+(w<<4)>>3];x=+h[s+(w<<4)+8>>3];i=+h[j+(w<<4)+8>>3];h[b+(w<<4)>>3]=t*y+x*i;h[b+(w<<4)+8>>3]=x*y-t*i;w=w+1|0}while((w|0)!=(f|0))}}else if(u){u=0;do{i=+h[s+(u<<4)>>3];t=+h[j+(u<<4)>>3];y=+h[s+(u<<4)+8>>3];x=+h[j+(u<<4)+8>>3];h[b+(u<<4)>>3]=i*t-y*x;h[b+(u<<4)+8>>3]=i*x+y*t;u=u+1|0}while((u|0)!=(f|0))}c[k>>2]=l;c[d>>2]=m;c[g>>2]=1;if(A)C=0;else{Wb(p);Wb(s);Wb(r);Wb(q);Wb(j);return}do{A=d+272+(C<<4)+8|0;h[A>>3]=-+h[A>>3];C=C+1|0}while((C|0)!=(o|0));Wb(p);Wb(s);Wb(r);Wb(q);Wb(j);return}function _a(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0.0;d=(a|0)/2|0;e=Vb((d<<4)+24|0)|0;c[e>>2]=Ta(d,b)|0;if((a|0)<=1)return e|0;f=+(a|0);a=e+8|0;b=0;do{g=+(b|0)*6.283185307179586/f;h[a+(b<<4)>>3]=+P(+g);h[a+(b<<4)+8>>3]=+Q(+g);b=b+1|0}while((b|0)<(d|0));return e|0}function $a(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0;e=c[a>>2]|0;f=c[e>>2]|0;g=f<<1;i=f<<4;j=Vb(i)|0;k=Vb(i)|0;if((f|0)>0){i=0;do{l=i<<1;h[j+(i<<4)>>3]=+h[b+(l<<3)>>3];h[j+(i<<4)+8>>3]=+h[b+((l|1)<<3)>>3];i=i+1|0}while((i|0)!=(f|0))}Wa(e,j,k);m=+h[k>>3];n=+h[k+8>>3];h[d>>3]=m+n;h[d+8>>3]=0.0;e=(f|0)>1;if(e)o=1;else{h[d+(f<<4)>>3]=m-n;h[d+(f<<4)+8>>3]=0.0;Wb(j);Wb(k);return}do{p=+h[k+(o<<4)+8>>3];i=f-o|0;q=+h[k+(i<<4)+8>>3];r=p+q;s=+h[k+(i<<4)>>3];t=+h[k+(o<<4)>>3];u=s-t;i=a+8+(o<<4)|0;v=+h[a+8+(o<<4)+8>>3];h[d+(o<<4)>>3]=(s+t+r*+h[i>>3]+u*v)*.5;h[d+(o<<4)+8>>3]=(p-q+u*+h[i>>3]-r*v)*.5;o=o+1|0}while((o|0)!=(f|0));h[d+(f<<4)>>3]=m-n;h[d+(f<<4)+8>>3]=0.0;if(e)w=1;else{Wb(j);Wb(k);return}do{e=g-w|0;h[d+(e<<4)>>3]=+h[d+(w<<4)>>3];h[d+(e<<4)+8>>3]=-+h[d+(w<<4)+8>>3];w=w+1|0}while((w|0)!=(f|0));Wb(j);Wb(k);return}function ab(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0;e=c[a>>2]|0;f=c[e>>2]|0;g=f<<4;i=Vb(g)|0;j=Vb(g)|0;g=(f|0)>0;if(g)k=0;else{Wa(e,i,j);Wb(i);Wb(j);return}do{l=+h[b+(k<<4)+8>>3];m=f-k|0;n=+h[b+(m<<4)+8>>3];o=-l-n;p=+h[b+(m<<4)>>3];q=+h[b+(k<<4)>>3];r=q-p;s=+h[a+8+(k<<4)>>3];t=+h[a+8+(k<<4)+8>>3];h[i+(k<<4)>>3]=p+q+o*s-r*t;h[i+(k<<4)+8>>3]=l-n+r*s+o*t;k=k+1|0}while((k|0)!=(f|0));Wa(e,i,j);if(g)u=0;else{Wb(i);Wb(j);return}do{g=u<<1;h[d+(g<<3)>>3]=+h[j+(u<<4)>>3];h[d+((g|1)<<3)>>3]=+h[j+(u<<4)+8>>3];u=u+1|0}while((u|0)!=(f|0));Wb(i);Wb(j);return}function bb(a){a=a|0;Xa(c[a>>2]|0);Wb(a);return}function cb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Vb(20)|0;e=a+-1+b|0;while(1){if(!((e|0)%7|0)){f=e;while(1){g=(f|0)/7|0;if(!((g|0)%7|0))f=g;else{h=g;break}}}else h=e;if(!((h|0)%3|0)){f=h;while(1){g=(f|0)/3|0;if(!((g|0)%3|0))f=g;else{i=g;break}}}else i=h;if(!((i|0)%5|0)){f=i;while(1){g=(f|0)/5|0;if(!((g|0)%5|0))f=g;else{j=g;break}}}else j=i;if(!(j&1)){f=j;while(1){g=(f|0)/2|0;if(!(g&1))f=g;else{k=g;break}}}else k=j;if((e&1|0)!=0|(k|0)!=1)e=e+1|0;else{l=e;break}}c[d+16>>2]=l;c[d+8>>2]=a;c[d+12>>2]=b;c[d>>2]=_a(l,1)|0;c[d+4>>2]=_a(l,-1)|0;return d|0}function db(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0.0,p=0;f=b+-1|0;g=f+d|0;if((b|0)<(d|0)){if((b|0)>0){i=1;j=0;while(1){k=e+(j<<3)|0;h[k>>3]=0.0;l=0.0;m=0;do{l=l+ +h[c+(m<<3)>>3]*+h[a+(j-m<<3)>>3];h[k>>3]=l;m=m+1|0}while((m|0)!=(i|0));j=j+1|0;if((j|0)==(b|0))break;else i=i+1|0}}if((g|0)<=(b|0))return;l=+(d|0);i=d+-1|0;j=0;m=b;while(1){k=e+(m<<3)|0;h[k>>3]=0.0;j=j+1|0;n=+(j+b|0);o=n>3]*+h[a+(m-p<<3)>>3];h[k>>3]=n;p=p+1|0}while(+(p|0)0){m=1;i=0;while(1){j=e+(i<<3)|0;h[j>>3]=0.0;l=0.0;p=0;do{l=l+ +h[a+(p<<3)>>3]*+h[c+(i-p<<3)>>3];h[j>>3]=l;p=p+1|0}while((p|0)!=(m|0));i=i+1|0;if((i|0)==(d|0))break;else m=m+1|0}}if((g|0)<=(d|0))return;l=+(b|0);b=0;g=d;while(1){m=e+(g<<3)|0;h[m>>3]=0.0;b=b+1|0;o=+(b+d|0);n=o>3]*+h[c+(g-i<<3)>>3];h[m>>3]=o;i=i+1|0}while(+(i|0)>2]|0;g=c[a+8>>2]|0;i=c[a+12>>2]|0;j=g+-1+i|0;k=f<<4;l=Vb(k)|0;m=Vb(k)|0;n=Vb(k)|0;o=Vb(k)|0;p=Vb(k)|0;q=Vb(k)|0;k=(f|0)>0;if(k){r=0;do{if((r|0)<(g|0))s=+h[b+(r<<3)>>3];else s=0.0;h[l+(r<<3)>>3]=s;if((r|0)<(i|0))t=+h[d+(r<<3)>>3];else t=0.0;h[m+(r<<3)>>3]=t;r=r+1|0}while((r|0)!=(f|0));$a(c[a>>2]|0,l,o);$a(c[a>>2]|0,m,p);if(k){k=0;do{t=+h[o+(k<<4)>>3];s=+h[p+(k<<4)>>3];u=+h[o+(k<<4)+8>>3];v=+h[p+(k<<4)+8>>3];h[n+(k<<4)>>3]=t*s-u*v;h[n+(k<<4)+8>>3]=u*s+t*v;k=k+1|0}while((k|0)!=(f|0))}}else{$a(c[a>>2]|0,l,o);$a(c[a>>2]|0,m,p)}ab(c[a+4>>2]|0,n,q);if((j|0)<=0){Wb(l);Wb(m);Wb(n);Wb(o);Wb(p);Wb(q);return}v=+(f|0);f=g+i+-1|0;i=0;do{h[e+(i<<3)>>3]=+h[q+(i<<3)>>3]/v;i=i+1|0}while((i|0)!=(f|0));Wb(l);Wb(m);Wb(n);Wb(o);Wb(p);Wb(q);return}function fb(a){a=a|0;bb(c[a>>2]|0);bb(c[a+4>>2]|0);Wb(a);return}function gb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=_b(a|0)|0;a:do if((Ub(a,8504)|0)!=0?(Ub(a,8512)|0)!=0:0){if((b|0)>2?(Mb(a,26168)|0)!=0:0){c=b+-1|0;d=Vb(c)|0;$b(d|0,a+2|0,c|0)|0;c=Rb(d)|0;Wb(d);if((c|0)>38){ra(8520)|0;e=-1;break}else{e=c<<1;break}}if(Ub(a,8552)|0)if(Ub(a,8560)|0)if(Ub(a,8568)|0)if(Ub(a,8576)|0)if(Ub(a,8584)|0)if(Ub(a,8592)|0)if(Ub(a,8600)|0)if(Ub(a,8608)|0)if(Ub(a,8616)|0)if(Ub(a,8624)|0)if(Ub(a,8632)|0)if(Ub(a,8640)|0)if(Ub(a,8648)|0)if(Ub(a,8656)|0)if(Ub(a,8664)|0)if(!(Ub(a,8672)|0))e=2;else{if(!(Ub(a,8688)|0)){e=6;break}if(!(Ub(a,8704)|0)){e=10;break}if(!(Ub(a,8720)|0)){e=6;break}if(!(Ub(a,8736)|0)){e=10;break}if(!(Ub(a,8752)|0)){e=14;break}if(!(Ub(a,8768)|0)){e=18;break}if(!(Ub(a,8784)|0)){e=4;break}if(!(Ub(a,8800)|0)){e=8;break}if(!(Ub(a,8816)|0)){e=12;break}if(!(Ub(a,8832)|0)){e=16;break}if(!(Ub(a,8848)|0)){e=20;break}if(!(Ub(a,8864)|0)){e=10;break}if(!(Ub(a,8880)|0)){e=12;break}if(!(Ub(a,8896)|0)){e=18;break}do if((b|0)>4){if(!(Mb(a,26176)|0)){f=44;break}c=b+-3|0;d=Vb(c)|0;$b(d|0,a+4|0,c|0)|0;c=Rb(d)|0;Wb(d);if((c|0)>17){ra(8520)|0;e=-1;break a}else{e=c*6|0;break a}}else if((b|0)>3)f=44;while(0);do if((f|0)==44){if(!(Mb(a,26520)|0))break;c=b+-2|0;d=Vb(c)|0;$b(d|0,a+3|0,c|0)|0;c=Rb(d)|0;Wb(d);if((c+-2|0)>>>0>18){ra(8520)|0;e=-1;break a}else{e=c<<1;break a}}while(0);ra(8520)|0;e=-1}else e=18;else e=12;else e=10;else e=20;else e=16;else e=12;else e=8;else e=4;else e=18;else e=14;else e=10;else e=6;else e=10;else e=6;else e=2}else e=2;while(0);return e|0}function hb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0.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,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,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,Xb=0,Yb=0,Zb=0,_b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,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;f=gb(a)|0;if((Ub(a,8504)|0)!=0?(Ub(a,8512)|0)!=0:0){if(!(Ub(a,8928)|0)){if((f|0)<=0){g=f;return g|0}i=f+-1|0;j=0;do{h[b+(j<<3)>>3]=+h[8936+(i-j<<3)>>3];j=j+1|0}while((j|0)!=(f|0));j=Vb(f<<3)|0;k=0;do{l=+h[8936+(i-k<<3)>>3];h[j+(k<<3)>>3]=(k&1|0)==0?l:-l;k=k+1|0}while((k|0)!=(f|0));m=0;do{h[c+(m<<3)>>3]=+h[j+(i-m<<3)>>3];m=m+1|0}while((m|0)!=(f|0));Wb(j);j=0;do{h[d+(j<<3)>>3]=+h[8936+(j<<3)>>3];j=j+1|0}while((j|0)!=(f|0));n=0;do{l=+h[8936+(i-n<<3)>>3];h[e+(n<<3)>>3]=(n&1|0)==0?l:-l;n=n+1|0}while((n|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8968)|0)){if((f|0)<=0){g=f;return g|0}n=f+-1|0;i=0;do{h[b+(i<<3)>>3]=+h[8976+(n-i<<3)>>3];i=i+1|0}while((i|0)!=(f|0));i=Vb(f<<3)|0;j=0;do{l=+h[8976+(n-j<<3)>>3];h[i+(j<<3)>>3]=(j&1|0)==0?l:-l;j=j+1|0}while((j|0)!=(f|0));o=0;do{h[c+(o<<3)>>3]=+h[i+(n-o<<3)>>3];o=o+1|0}while((o|0)!=(f|0));Wb(i);i=0;do{h[d+(i<<3)>>3]=+h[8976+(i<<3)>>3];i=i+1|0}while((i|0)!=(f|0));p=0;do{l=+h[8976+(n-p<<3)>>3];h[e+(p<<3)>>3]=(p&1|0)==0?l:-l;p=p+1|0}while((p|0)!=(f|0));g=f;return g|0}if(!(Ub(a,9024)|0)){if((f|0)<=0){g=f;return g|0}p=f+-1|0;n=0;do{h[b+(n<<3)>>3]=+h[9032+(p-n<<3)>>3];n=n+1|0}while((n|0)!=(f|0));n=Vb(f<<3)|0;i=0;do{l=+h[9032+(p-i<<3)>>3];h[n+(i<<3)>>3]=(i&1|0)==0?l:-l;i=i+1|0}while((i|0)!=(f|0));q=0;do{h[c+(q<<3)>>3]=+h[n+(p-q<<3)>>3];q=q+1|0}while((q|0)!=(f|0));Wb(n);n=0;do{h[d+(n<<3)>>3]=+h[9032+(n<<3)>>3];n=n+1|0}while((n|0)!=(f|0));r=0;do{l=+h[9032+(p-r<<3)>>3];h[e+(r<<3)>>3]=(r&1|0)==0?l:-l;r=r+1|0}while((r|0)!=(f|0));g=f;return g|0}if(!(Ub(a,9096)|0)){if((f|0)<=0){g=f;return g|0}r=f+-1|0;p=0;do{h[b+(p<<3)>>3]=+h[9104+(r-p<<3)>>3];p=p+1|0}while((p|0)!=(f|0));p=Vb(f<<3)|0;n=0;do{l=+h[9104+(r-n<<3)>>3];h[p+(n<<3)>>3]=(n&1|0)==0?l:-l;n=n+1|0}while((n|0)!=(f|0));s=0;do{h[c+(s<<3)>>3]=+h[p+(r-s<<3)>>3];s=s+1|0}while((s|0)!=(f|0));Wb(p);p=0;do{h[d+(p<<3)>>3]=+h[9104+(p<<3)>>3];p=p+1|0}while((p|0)!=(f|0));t=0;do{l=+h[9104+(r-t<<3)>>3];h[e+(t<<3)>>3]=(t&1|0)==0?l:-l;t=t+1|0}while((t|0)!=(f|0));g=f;return g|0}if(!(Ub(a,9184)|0)){if((f|0)<=0){g=f;return g|0}t=f+-1|0;r=0;do{h[b+(r<<3)>>3]=+h[9192+(t-r<<3)>>3];r=r+1|0}while((r|0)!=(f|0));r=Vb(f<<3)|0;p=0;do{l=+h[9192+(t-p<<3)>>3];h[r+(p<<3)>>3]=(p&1|0)==0?l:-l;p=p+1|0}while((p|0)!=(f|0));u=0;do{h[c+(u<<3)>>3]=+h[r+(t-u<<3)>>3];u=u+1|0}while((u|0)!=(f|0));Wb(r);r=0;do{h[d+(r<<3)>>3]=+h[9192+(r<<3)>>3];r=r+1|0}while((r|0)!=(f|0));v=0;do{l=+h[9192+(t-v<<3)>>3];h[e+(v<<3)>>3]=(v&1|0)==0?l:-l;v=v+1|0}while((v|0)!=(f|0));g=f;return g|0}if(!(Ub(a,9288)|0)){if((f|0)<=0){g=f;return g|0}v=f+-1|0;t=0;do{h[b+(t<<3)>>3]=+h[9296+(v-t<<3)>>3];t=t+1|0}while((t|0)!=(f|0));t=Vb(f<<3)|0;r=0;do{l=+h[9296+(v-r<<3)>>3];h[t+(r<<3)>>3]=(r&1|0)==0?l:-l;r=r+1|0}while((r|0)!=(f|0));w=0;do{h[c+(w<<3)>>3]=+h[t+(v-w<<3)>>3];w=w+1|0}while((w|0)!=(f|0));Wb(t);t=0;do{h[d+(t<<3)>>3]=+h[9296+(t<<3)>>3];t=t+1|0}while((t|0)!=(f|0));x=0;do{l=+h[9296+(v-x<<3)>>3];h[e+(x<<3)>>3]=(x&1|0)==0?l:-l;x=x+1|0}while((x|0)!=(f|0));g=f;return g|0}if(!(Ub(a,9408)|0)){if((f|0)<=0){g=f;return g|0}x=f+-1|0;v=0;do{h[b+(v<<3)>>3]=+h[9416+(x-v<<3)>>3];v=v+1|0}while((v|0)!=(f|0));v=Vb(f<<3)|0;t=0;do{l=+h[9416+(x-t<<3)>>3];h[v+(t<<3)>>3]=(t&1|0)==0?l:-l;t=t+1|0}while((t|0)!=(f|0));y=0;do{h[c+(y<<3)>>3]=+h[v+(x-y<<3)>>3];y=y+1|0}while((y|0)!=(f|0));Wb(v);v=0;do{h[d+(v<<3)>>3]=+h[9416+(v<<3)>>3];v=v+1|0}while((v|0)!=(f|0));z=0;do{l=+h[9416+(x-z<<3)>>3];h[e+(z<<3)>>3]=(z&1|0)==0?l:-l;z=z+1|0}while((z|0)!=(f|0));g=f;return g|0}if(!(Ub(a,9544)|0)){if((f|0)<=0){g=f;return g|0}z=f+-1|0;x=0;do{h[b+(x<<3)>>3]=+h[9552+(z-x<<3)>>3];x=x+1|0}while((x|0)!=(f|0));x=Vb(f<<3)|0;v=0;do{l=+h[9552+(z-v<<3)>>3];h[x+(v<<3)>>3]=(v&1|0)==0?l:-l;v=v+1|0}while((v|0)!=(f|0));A=0;do{h[c+(A<<3)>>3]=+h[x+(z-A<<3)>>3];A=A+1|0}while((A|0)!=(f|0));Wb(x);x=0;do{h[d+(x<<3)>>3]=+h[9552+(x<<3)>>3];x=x+1|0}while((x|0)!=(f|0));B=0;do{l=+h[9552+(z-B<<3)>>3];h[e+(B<<3)>>3]=(B&1|0)==0?l:-l;B=B+1|0}while((B|0)!=(f|0));g=f;return g|0}if(!(Ub(a,9696)|0)){if((f|0)<=0){g=f;return g|0}B=f+-1|0;z=0;do{h[b+(z<<3)>>3]=+h[9704+(B-z<<3)>>3];z=z+1|0}while((z|0)!=(f|0));z=Vb(f<<3)|0;x=0;do{l=+h[9704+(B-x<<3)>>3];h[z+(x<<3)>>3]=(x&1|0)==0?l:-l;x=x+1|0}while((x|0)!=(f|0));C=0;do{h[c+(C<<3)>>3]=+h[z+(B-C<<3)>>3];C=C+1|0}while((C|0)!=(f|0));Wb(z);z=0;do{h[d+(z<<3)>>3]=+h[9704+(z<<3)>>3];z=z+1|0}while((z|0)!=(f|0));D=0;do{l=+h[9704+(B-D<<3)>>3];h[e+(D<<3)>>3]=(D&1|0)==0?l:-l;D=D+1|0}while((D|0)!=(f|0));g=f;return g|0}if(!(Ub(a,9864)|0)){if((f|0)<=0){g=f;return g|0}D=f+-1|0;B=0;do{h[b+(B<<3)>>3]=+h[9872+(D-B<<3)>>3];B=B+1|0}while((B|0)!=(f|0));B=Vb(f<<3)|0;z=0;do{l=+h[9872+(D-z<<3)>>3];h[B+(z<<3)>>3]=(z&1|0)==0?l:-l;z=z+1|0}while((z|0)!=(f|0));E=0;do{h[c+(E<<3)>>3]=+h[B+(D-E<<3)>>3];E=E+1|0}while((E|0)!=(f|0));Wb(B);B=0;do{h[d+(B<<3)>>3]=+h[9872+(B<<3)>>3];B=B+1|0}while((B|0)!=(f|0));F=0;do{l=+h[9872+(D-F<<3)>>3];h[e+(F<<3)>>3]=(F&1|0)==0?l:-l;F=F+1|0}while((F|0)!=(f|0));g=f;return g|0}if(!(Ub(a,10048)|0)){if((f|0)<=0){g=f;return g|0}F=f+-1|0;D=0;do{h[b+(D<<3)>>3]=+h[10056+(F-D<<3)>>3];D=D+1|0}while((D|0)!=(f|0));D=Vb(f<<3)|0;B=0;do{l=+h[10056+(F-B<<3)>>3];h[D+(B<<3)>>3]=(B&1|0)==0?l:-l;B=B+1|0}while((B|0)!=(f|0));G=0;do{h[c+(G<<3)>>3]=+h[D+(F-G<<3)>>3];G=G+1|0}while((G|0)!=(f|0));Wb(D);D=0;do{h[d+(D<<3)>>3]=+h[10056+(D<<3)>>3];D=D+1|0}while((D|0)!=(f|0));H=0;do{l=+h[10056+(F-H<<3)>>3];h[e+(H<<3)>>3]=(H&1|0)==0?l:-l;H=H+1|0}while((H|0)!=(f|0));g=f;return g|0}if(!(Ub(a,10248)|0)){if((f|0)<=0){g=f;return g|0}H=f+-1|0;F=0;do{h[b+(F<<3)>>3]=+h[10256+(H-F<<3)>>3];F=F+1|0}while((F|0)!=(f|0));F=Vb(f<<3)|0;D=0;do{l=+h[10256+(H-D<<3)>>3];h[F+(D<<3)>>3]=(D&1|0)==0?l:-l;D=D+1|0}while((D|0)!=(f|0));I=0;do{h[c+(I<<3)>>3]=+h[F+(H-I<<3)>>3];I=I+1|0}while((I|0)!=(f|0));Wb(F);F=0;do{h[d+(F<<3)>>3]=+h[10256+(F<<3)>>3];F=F+1|0}while((F|0)!=(f|0));J=0;do{l=+h[10256+(H-J<<3)>>3];h[e+(J<<3)>>3]=(J&1|0)==0?l:-l;J=J+1|0}while((J|0)!=(f|0));g=f;return g|0}if(!(Ub(a,10464)|0)){if((f|0)<=0){g=f;return g|0}J=f+-1|0;H=0;do{h[b+(H<<3)>>3]=+h[10472+(J-H<<3)>>3];H=H+1|0}while((H|0)!=(f|0));H=Vb(f<<3)|0;F=0;do{l=+h[10472+(J-F<<3)>>3];h[H+(F<<3)>>3]=(F&1|0)==0?l:-l;F=F+1|0}while((F|0)!=(f|0));K=0;do{h[c+(K<<3)>>3]=+h[H+(J-K<<3)>>3];K=K+1|0}while((K|0)!=(f|0));Wb(H);H=0;do{h[d+(H<<3)>>3]=+h[10472+(H<<3)>>3];H=H+1|0}while((H|0)!=(f|0));L=0;do{l=+h[10472+(J-L<<3)>>3];h[e+(L<<3)>>3]=(L&1|0)==0?l:-l;L=L+1|0}while((L|0)!=(f|0));g=f;return g|0}if(!(Ub(a,10696)|0)){if((f|0)<=0){g=f;return g|0}L=f+-1|0;J=0;do{h[b+(J<<3)>>3]=+h[10704+(L-J<<3)>>3];J=J+1|0}while((J|0)!=(f|0));J=Vb(f<<3)|0;H=0;do{l=+h[10704+(L-H<<3)>>3];h[J+(H<<3)>>3]=(H&1|0)==0?l:-l;H=H+1|0}while((H|0)!=(f|0));M=0;do{h[c+(M<<3)>>3]=+h[J+(L-M<<3)>>3];M=M+1|0}while((M|0)!=(f|0));Wb(J);J=0;do{h[d+(J<<3)>>3]=+h[10704+(J<<3)>>3];J=J+1|0}while((J|0)!=(f|0));N=0;do{l=+h[10704+(L-N<<3)>>3];h[e+(N<<3)>>3]=(N&1|0)==0?l:-l;N=N+1|0}while((N|0)!=(f|0));g=f;return g|0}if(!(Ub(a,10944)|0)){if((f|0)<=0){g=f;return g|0}N=f+-1|0;L=0;do{h[b+(L<<3)>>3]=+h[10952+(N-L<<3)>>3];L=L+1|0}while((L|0)!=(f|0));L=Vb(f<<3)|0;J=0;do{l=+h[10952+(N-J<<3)>>3];h[L+(J<<3)>>3]=(J&1|0)==0?l:-l;J=J+1|0}while((J|0)!=(f|0));O=0;do{h[c+(O<<3)>>3]=+h[L+(N-O<<3)>>3];O=O+1|0}while((O|0)!=(f|0));Wb(L);L=0;do{h[d+(L<<3)>>3]=+h[10952+(L<<3)>>3];L=L+1|0}while((L|0)!=(f|0));P=0;do{l=+h[10952+(N-P<<3)>>3];h[e+(P<<3)>>3]=(P&1|0)==0?l:-l;P=P+1|0}while((P|0)!=(f|0));g=f;return g|0}if(!(Ub(a,11208)|0)){if((f|0)<=0){g=f;return g|0}P=f+-1|0;N=0;do{h[b+(N<<3)>>3]=+h[11216+(P-N<<3)>>3];N=N+1|0}while((N|0)!=(f|0));N=Vb(f<<3)|0;L=0;do{l=+h[11216+(P-L<<3)>>3];h[N+(L<<3)>>3]=(L&1|0)==0?l:-l;L=L+1|0}while((L|0)!=(f|0));Q=0;do{h[c+(Q<<3)>>3]=+h[N+(P-Q<<3)>>3];Q=Q+1|0}while((Q|0)!=(f|0));Wb(N);N=0;do{h[d+(N<<3)>>3]=+h[11216+(N<<3)>>3];N=N+1|0}while((N|0)!=(f|0));R=0;do{l=+h[11216+(P-R<<3)>>3];h[e+(R<<3)>>3]=(R&1|0)==0?l:-l;R=R+1|0}while((R|0)!=(f|0));g=f;return g|0}if(!(Ub(a,11488)|0)){if((f|0)<=0){g=f;return g|0}R=f+-1|0;P=0;do{h[b+(P<<3)>>3]=+h[11496+(R-P<<3)>>3];P=P+1|0}while((P|0)!=(f|0));P=Vb(f<<3)|0;N=0;do{l=+h[11496+(R-N<<3)>>3];h[P+(N<<3)>>3]=(N&1|0)==0?l:-l;N=N+1|0}while((N|0)!=(f|0));S=0;do{h[c+(S<<3)>>3]=+h[P+(R-S<<3)>>3];S=S+1|0}while((S|0)!=(f|0));Wb(P);P=0;do{h[d+(P<<3)>>3]=+h[11496+(P<<3)>>3];P=P+1|0}while((P|0)!=(f|0));T=0;do{l=+h[11496+(R-T<<3)>>3];h[e+(T<<3)>>3]=(T&1|0)==0?l:-l;T=T+1|0}while((T|0)!=(f|0));g=f;return g|0}if(!(Ub(a,11784)|0)){if((f|0)<=0){g=f;return g|0}T=f+-1|0;R=0;do{h[b+(R<<3)>>3]=+h[11792+(T-R<<3)>>3];R=R+1|0}while((R|0)!=(f|0));R=Vb(f<<3)|0;P=0;do{l=+h[11792+(T-P<<3)>>3];h[R+(P<<3)>>3]=(P&1|0)==0?l:-l;P=P+1|0}while((P|0)!=(f|0));U=0;do{h[c+(U<<3)>>3]=+h[R+(T-U<<3)>>3];U=U+1|0}while((U|0)!=(f|0));Wb(R);R=0;do{h[d+(R<<3)>>3]=+h[11792+(R<<3)>>3];R=R+1|0}while((R|0)!=(f|0));V=0;do{l=+h[11792+(T-V<<3)>>3];h[e+(V<<3)>>3]=(V&1|0)==0?l:-l;V=V+1|0}while((V|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12096)|0)){if((f|0)<=0){g=f;return g|0}V=f+-1|0;T=0;do{h[b+(T<<3)>>3]=+h[12104+(V-T<<3)>>3];T=T+1|0}while((T|0)!=(f|0));T=Vb(f<<3)|0;R=0;do{l=+h[12104+(V-R<<3)>>3];h[T+(R<<3)>>3]=(R&1|0)==0?l:-l;R=R+1|0}while((R|0)!=(f|0));W=0;do{h[c+(W<<3)>>3]=+h[T+(V-W<<3)>>3];W=W+1|0}while((W|0)!=(f|0));Wb(T);T=0;do{h[d+(T<<3)>>3]=+h[12104+(T<<3)>>3];T=T+1|0}while((T|0)!=(f|0));X=0;do{l=+h[12104+(V-X<<3)>>3];h[e+(X<<3)>>3]=(X&1|0)==0?l:-l;X=X+1|0}while((X|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12424)|0)){if((f|0)<=0){g=f;return g|0}X=f+-1|0;V=0;do{h[b+(V<<3)>>3]=+h[8+(X-V<<3)>>3];V=V+1|0}while((V|0)!=(f|0));V=Vb(f<<3)|0;T=0;do{l=+h[8+(X-T<<3)>>3];h[V+(T<<3)>>3]=(T&1|0)==0?l:-l;T=T+1|0}while((T|0)!=(f|0));Y=0;do{h[c+(Y<<3)>>3]=+h[V+(X-Y<<3)>>3];Y=Y+1|0}while((Y|0)!=(f|0));Wb(V);V=0;do{h[d+(V<<3)>>3]=+h[8+(V<<3)>>3];V=V+1|0}while((V|0)!=(f|0));Z=0;do{l=+h[8+(X-Z<<3)>>3];h[e+(Z<<3)>>3]=(Z&1|0)==0?l:-l;Z=Z+1|0}while((Z|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12432)|0)){if((f|0)<=0){g=f;return g|0}Z=f+-1|0;X=0;do{h[b+(X<<3)>>3]=+h[344+(Z-X<<3)>>3];X=X+1|0}while((X|0)!=(f|0));X=Vb(f<<3)|0;V=0;do{l=+h[344+(Z-V<<3)>>3];h[X+(V<<3)>>3]=(V&1|0)==0?l:-l;V=V+1|0}while((V|0)!=(f|0));_=0;do{h[c+(_<<3)>>3]=+h[X+(Z-_<<3)>>3];_=_+1|0}while((_|0)!=(f|0));Wb(X);X=0;do{h[d+(X<<3)>>3]=+h[344+(X<<3)>>3];X=X+1|0}while((X|0)!=(f|0));$=0;do{l=+h[344+(Z-$<<3)>>3];h[e+($<<3)>>3]=($&1|0)==0?l:-l;$=$+1|0}while(($|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12440)|0)){if((f|0)<=0){g=f;return g|0}$=f+-1|0;Z=0;do{h[b+(Z<<3)>>3]=+h[696+($-Z<<3)>>3];Z=Z+1|0}while((Z|0)!=(f|0));Z=Vb(f<<3)|0;X=0;do{l=+h[696+($-X<<3)>>3];h[Z+(X<<3)>>3]=(X&1|0)==0?l:-l;X=X+1|0}while((X|0)!=(f|0));aa=0;do{h[c+(aa<<3)>>3]=+h[Z+($-aa<<3)>>3];aa=aa+1|0}while((aa|0)!=(f|0));Wb(Z);Z=0;do{h[d+(Z<<3)>>3]=+h[696+(Z<<3)>>3];Z=Z+1|0}while((Z|0)!=(f|0));ba=0;do{l=+h[696+($-ba<<3)>>3];h[e+(ba<<3)>>3]=(ba&1|0)==0?l:-l;ba=ba+1|0}while((ba|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12448)|0)){if((f|0)<=0){g=f;return g|0}ba=f+-1|0;$=0;do{h[b+($<<3)>>3]=+h[1064+(ba-$<<3)>>3];$=$+1|0}while(($|0)!=(f|0));$=Vb(f<<3)|0;Z=0;do{l=+h[1064+(ba-Z<<3)>>3];h[$+(Z<<3)>>3]=(Z&1|0)==0?l:-l;Z=Z+1|0}while((Z|0)!=(f|0));ca=0;do{h[c+(ca<<3)>>3]=+h[$+(ba-ca<<3)>>3];ca=ca+1|0}while((ca|0)!=(f|0));Wb($);$=0;do{h[d+($<<3)>>3]=+h[1064+($<<3)>>3];$=$+1|0}while(($|0)!=(f|0));da=0;do{l=+h[1064+(ba-da<<3)>>3];h[e+(da<<3)>>3]=(da&1|0)==0?l:-l;da=da+1|0}while((da|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12456)|0)){if((f|0)<=0){g=f;return g|0}da=f+-1|0;ba=0;do{h[b+(ba<<3)>>3]=+h[1448+(da-ba<<3)>>3];ba=ba+1|0}while((ba|0)!=(f|0));ba=Vb(f<<3)|0;$=0;do{l=+h[1448+(da-$<<3)>>3];h[ba+($<<3)>>3]=($&1|0)==0?l:-l;$=$+1|0}while(($|0)!=(f|0));ea=0;do{h[c+(ea<<3)>>3]=+h[ba+(da-ea<<3)>>3];ea=ea+1|0}while((ea|0)!=(f|0));Wb(ba);ba=0;do{h[d+(ba<<3)>>3]=+h[1448+(ba<<3)>>3];ba=ba+1|0}while((ba|0)!=(f|0));fa=0;do{l=+h[1448+(da-fa<<3)>>3];h[e+(fa<<3)>>3]=(fa&1|0)==0?l:-l;fa=fa+1|0}while((fa|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12464)|0)){if((f|0)<=0){g=f;return g|0}fa=f+-1|0;da=0;do{h[b+(da<<3)>>3]=+h[1848+(fa-da<<3)>>3];da=da+1|0}while((da|0)!=(f|0));da=Vb(f<<3)|0;ba=0;do{l=+h[1848+(fa-ba<<3)>>3];h[da+(ba<<3)>>3]=(ba&1|0)==0?l:-l;ba=ba+1|0}while((ba|0)!=(f|0));ga=0;do{h[c+(ga<<3)>>3]=+h[da+(fa-ga<<3)>>3];ga=ga+1|0}while((ga|0)!=(f|0));Wb(da);da=0;do{h[d+(da<<3)>>3]=+h[1848+(da<<3)>>3];da=da+1|0}while((da|0)!=(f|0));ha=0;do{l=+h[1848+(fa-ha<<3)>>3];h[e+(ha<<3)>>3]=(ha&1|0)==0?l:-l;ha=ha+1|0}while((ha|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12472)|0)){if((f|0)<=0){g=f;return g|0}ha=f+-1|0;fa=0;do{h[b+(fa<<3)>>3]=+h[2264+(ha-fa<<3)>>3];fa=fa+1|0}while((fa|0)!=(f|0));fa=Vb(f<<3)|0;da=0;do{l=+h[2264+(ha-da<<3)>>3];h[fa+(da<<3)>>3]=(da&1|0)==0?l:-l;da=da+1|0}while((da|0)!=(f|0));ia=0;do{h[c+(ia<<3)>>3]=+h[fa+(ha-ia<<3)>>3];ia=ia+1|0}while((ia|0)!=(f|0));Wb(fa);fa=0;do{h[d+(fa<<3)>>3]=+h[2264+(fa<<3)>>3];fa=fa+1|0}while((fa|0)!=(f|0));ja=0;do{l=+h[2264+(ha-ja<<3)>>3];h[e+(ja<<3)>>3]=(ja&1|0)==0?l:-l;ja=ja+1|0}while((ja|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12480)|0)){if((f|0)<=0){g=f;return g|0}ja=f+-1|0;ha=0;do{h[b+(ha<<3)>>3]=+h[2696+(ja-ha<<3)>>3];ha=ha+1|0}while((ha|0)!=(f|0));ha=Vb(f<<3)|0;fa=0;do{l=+h[2696+(ja-fa<<3)>>3];h[ha+(fa<<3)>>3]=(fa&1|0)==0?l:-l;fa=fa+1|0}while((fa|0)!=(f|0));ka=0;do{h[c+(ka<<3)>>3]=+h[ha+(ja-ka<<3)>>3];ka=ka+1|0}while((ka|0)!=(f|0));Wb(ha);ha=0;do{h[d+(ha<<3)>>3]=+h[2696+(ha<<3)>>3];ha=ha+1|0}while((ha|0)!=(f|0));la=0;do{l=+h[2696+(ja-la<<3)>>3];h[e+(la<<3)>>3]=(la&1|0)==0?l:-l;la=la+1|0}while((la|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12488)|0)){if((f|0)<=0){g=f;return g|0}la=f+-1|0;ja=0;do{h[b+(ja<<3)>>3]=+h[3144+(la-ja<<3)>>3];ja=ja+1|0}while((ja|0)!=(f|0));ja=Vb(f<<3)|0;ha=0;do{l=+h[3144+(la-ha<<3)>>3];h[ja+(ha<<3)>>3]=(ha&1|0)==0?l:-l;ha=ha+1|0}while((ha|0)!=(f|0));ma=0;do{h[c+(ma<<3)>>3]=+h[ja+(la-ma<<3)>>3];ma=ma+1|0}while((ma|0)!=(f|0));Wb(ja);ja=0;do{h[d+(ja<<3)>>3]=+h[3144+(ja<<3)>>3];ja=ja+1|0}while((ja|0)!=(f|0));na=0;do{l=+h[3144+(la-na<<3)>>3];h[e+(na<<3)>>3]=(na&1|0)==0?l:-l;na=na+1|0}while((na|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12496)|0)){if((f|0)<=0){g=f;return g|0}na=f+-1|0;la=0;do{h[b+(la<<3)>>3]=+h[3608+(na-la<<3)>>3];la=la+1|0}while((la|0)!=(f|0));la=Vb(f<<3)|0;ja=0;do{l=+h[3608+(na-ja<<3)>>3];h[la+(ja<<3)>>3]=(ja&1|0)==0?l:-l;ja=ja+1|0}while((ja|0)!=(f|0));oa=0;do{h[c+(oa<<3)>>3]=+h[la+(na-oa<<3)>>3];oa=oa+1|0}while((oa|0)!=(f|0));Wb(la);la=0;do{h[d+(la<<3)>>3]=+h[3608+(la<<3)>>3];la=la+1|0}while((la|0)!=(f|0));pa=0;do{l=+h[3608+(na-pa<<3)>>3];h[e+(pa<<3)>>3]=(pa&1|0)==0?l:-l;pa=pa+1|0}while((pa|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12504)|0)){if((f|0)<=0){g=f;return g|0}pa=f+-1|0;na=0;do{h[b+(na<<3)>>3]=+h[4088+(pa-na<<3)>>3];na=na+1|0}while((na|0)!=(f|0));na=Vb(f<<3)|0;la=0;do{l=+h[4088+(pa-la<<3)>>3];h[na+(la<<3)>>3]=(la&1|0)==0?l:-l;la=la+1|0}while((la|0)!=(f|0));qa=0;do{h[c+(qa<<3)>>3]=+h[na+(pa-qa<<3)>>3];qa=qa+1|0}while((qa|0)!=(f|0));Wb(na);na=0;do{h[d+(na<<3)>>3]=+h[4088+(na<<3)>>3];na=na+1|0}while((na|0)!=(f|0));sa=0;do{l=+h[4088+(pa-sa<<3)>>3];h[e+(sa<<3)>>3]=(sa&1|0)==0?l:-l;sa=sa+1|0}while((sa|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12512)|0)){if((f|0)<=0){g=f;return g|0}sa=f+-1|0;pa=0;do{h[b+(pa<<3)>>3]=+h[4584+(sa-pa<<3)>>3];pa=pa+1|0}while((pa|0)!=(f|0));pa=Vb(f<<3)|0;na=0;do{l=+h[4584+(sa-na<<3)>>3];h[pa+(na<<3)>>3]=(na&1|0)==0?l:-l;na=na+1|0}while((na|0)!=(f|0));ta=0;do{h[c+(ta<<3)>>3]=+h[pa+(sa-ta<<3)>>3];ta=ta+1|0}while((ta|0)!=(f|0));Wb(pa);pa=0;do{h[d+(pa<<3)>>3]=+h[4584+(pa<<3)>>3];pa=pa+1|0}while((pa|0)!=(f|0));ua=0;do{l=+h[4584+(sa-ua<<3)>>3];h[e+(ua<<3)>>3]=(ua&1|0)==0?l:-l;ua=ua+1|0}while((ua|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12520)|0)){if((f|0)<=0){g=f;return g|0}ua=f+-1|0;sa=0;do{h[b+(sa<<3)>>3]=+h[5096+(ua-sa<<3)>>3];sa=sa+1|0}while((sa|0)!=(f|0));sa=Vb(f<<3)|0;pa=0;do{l=+h[5096+(ua-pa<<3)>>3];h[sa+(pa<<3)>>3]=(pa&1|0)==0?l:-l;pa=pa+1|0}while((pa|0)!=(f|0));va=0;do{h[c+(va<<3)>>3]=+h[sa+(ua-va<<3)>>3];va=va+1|0}while((va|0)!=(f|0));Wb(sa);sa=0;do{h[d+(sa<<3)>>3]=+h[5096+(sa<<3)>>3];sa=sa+1|0}while((sa|0)!=(f|0));wa=0;do{l=+h[5096+(ua-wa<<3)>>3];h[e+(wa<<3)>>3]=(wa&1|0)==0?l:-l;wa=wa+1|0}while((wa|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12528)|0)){if((f|0)<=0){g=f;return g|0}wa=f+-1|0;ua=0;do{h[b+(ua<<3)>>3]=+h[5624+(wa-ua<<3)>>3];ua=ua+1|0}while((ua|0)!=(f|0));ua=Vb(f<<3)|0;sa=0;do{l=+h[5624+(wa-sa<<3)>>3];h[ua+(sa<<3)>>3]=(sa&1|0)==0?l:-l;sa=sa+1|0}while((sa|0)!=(f|0));xa=0;do{h[c+(xa<<3)>>3]=+h[ua+(wa-xa<<3)>>3];xa=xa+1|0}while((xa|0)!=(f|0));Wb(ua);ua=0;do{h[d+(ua<<3)>>3]=+h[5624+(ua<<3)>>3];ua=ua+1|0}while((ua|0)!=(f|0));ya=0;do{l=+h[5624+(wa-ya<<3)>>3];h[e+(ya<<3)>>3]=(ya&1|0)==0?l:-l;ya=ya+1|0}while((ya|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12536)|0)){if((f|0)<=0){g=f;return g|0}ya=f+-1|0;wa=0;do{h[b+(wa<<3)>>3]=+h[6168+(ya-wa<<3)>>3];wa=wa+1|0}while((wa|0)!=(f|0));wa=Vb(f<<3)|0;ua=0;do{l=+h[6168+(ya-ua<<3)>>3];h[wa+(ua<<3)>>3]=(ua&1|0)==0?l:-l;ua=ua+1|0}while((ua|0)!=(f|0));za=0;do{h[c+(za<<3)>>3]=+h[wa+(ya-za<<3)>>3];za=za+1|0}while((za|0)!=(f|0));Wb(wa);wa=0;do{h[d+(wa<<3)>>3]=+h[6168+(wa<<3)>>3];wa=wa+1|0}while((wa|0)!=(f|0));Aa=0;do{l=+h[6168+(ya-Aa<<3)>>3];h[e+(Aa<<3)>>3]=(Aa&1|0)==0?l:-l;Aa=Aa+1|0}while((Aa|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12544)|0)){if((f|0)<=0){g=f;return g|0}Aa=f+-1|0;ya=0;do{h[b+(ya<<3)>>3]=+h[6728+(Aa-ya<<3)>>3];ya=ya+1|0}while((ya|0)!=(f|0));ya=Vb(f<<3)|0;wa=0;do{l=+h[6728+(Aa-wa<<3)>>3];h[ya+(wa<<3)>>3]=(wa&1|0)==0?l:-l;wa=wa+1|0}while((wa|0)!=(f|0));Ba=0;do{h[c+(Ba<<3)>>3]=+h[ya+(Aa-Ba<<3)>>3];Ba=Ba+1|0}while((Ba|0)!=(f|0));Wb(ya);ya=0;do{h[d+(ya<<3)>>3]=+h[6728+(ya<<3)>>3];ya=ya+1|0}while((ya|0)!=(f|0));Ca=0;do{l=+h[6728+(Aa-Ca<<3)>>3];h[e+(Ca<<3)>>3]=(Ca&1|0)==0?l:-l;Ca=Ca+1|0}while((Ca|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12552)|0)){if((f|0)<=0){g=f;return g|0}Ca=f+-1|0;Aa=0;do{h[b+(Aa<<3)>>3]=+h[7304+(Ca-Aa<<3)>>3];Aa=Aa+1|0}while((Aa|0)!=(f|0));Aa=Vb(f<<3)|0;ya=0;do{l=+h[7304+(Ca-ya<<3)>>3];h[Aa+(ya<<3)>>3]=(ya&1|0)==0?l:-l;ya=ya+1|0}while((ya|0)!=(f|0));Da=0;do{h[c+(Da<<3)>>3]=+h[Aa+(Ca-Da<<3)>>3];Da=Da+1|0}while((Da|0)!=(f|0));Wb(Aa);Aa=0;do{h[d+(Aa<<3)>>3]=+h[7304+(Aa<<3)>>3];Aa=Aa+1|0}while((Aa|0)!=(f|0));Ea=0;do{l=+h[7304+(Ca-Ea<<3)>>3];h[e+(Ea<<3)>>3]=(Ea&1|0)==0?l:-l;Ea=Ea+1|0}while((Ea|0)!=(f|0));g=f;return g|0}if(!(Ub(a,12560)|0)){if((f|0)<=0){g=f;return g|0}Ea=f+-1|0;Ca=0;do{h[b+(Ca<<3)>>3]=+h[7896+(Ea-Ca<<3)>>3];Ca=Ca+1|0}while((Ca|0)!=(f|0));Ca=Vb(f<<3)|0;Aa=0;do{l=+h[7896+(Ea-Aa<<3)>>3];h[Ca+(Aa<<3)>>3]=(Aa&1|0)==0?l:-l;Aa=Aa+1|0}while((Aa|0)!=(f|0));Fa=0;do{h[c+(Fa<<3)>>3]=+h[Ca+(Ea-Fa<<3)>>3];Fa=Fa+1|0}while((Fa|0)!=(f|0));Wb(Ca);Ca=0;do{h[d+(Ca<<3)>>3]=+h[7896+(Ca<<3)>>3];Ca=Ca+1|0}while((Ca|0)!=(f|0));Ga=0;do{l=+h[7896+(Ea-Ga<<3)>>3];h[e+(Ga<<3)>>3]=(Ga&1|0)==0?l:-l;Ga=Ga+1|0}while((Ga|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8552)|0)){if((f|0)<=0){g=f;return g|0}Ga=f+-1|0;Ea=0;do{h[b+(Ea<<3)>>3]=+h[12568+(Ga-Ea<<3)>>3];Ea=Ea+1|0}while((Ea|0)!=(f|0));Ea=Vb(f<<3)|0;Ca=f+3|0;Fa=0;do{l=+h[12584+(Ca-Fa<<3)>>3];h[Ea+(Fa<<3)>>3]=(Fa&1|0)==0?l:-l;Fa=Fa+1|0}while((Fa|0)!=(f|0));Ha=0;do{h[c+(Ha<<3)>>3]=+h[Ea+(Ga-Ha<<3)>>3];Ha=Ha+1|0}while((Ha|0)!=(f|0));Wb(Ea);Ea=0;do{h[d+(Ea<<3)>>3]=+h[12584+(Ea+4<<3)>>3];Ea=Ea+1|0}while((Ea|0)!=(f|0));Ia=0;do{l=+h[12568+(Ga-Ia<<3)>>3];h[e+(Ia<<3)>>3]=(Ia&1|0)==0?l:-l;Ia=Ia+1|0}while((Ia|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8560)|0)){if((f|0)<=0){g=f;return g|0}Ia=f+-1|0;Ga=0;do{h[b+(Ga<<3)>>3]=+h[12664+(Ia-Ga<<3)>>3];Ga=Ga+1|0}while((Ga|0)!=(f|0));Ga=Vb(f<<3)|0;Ea=f+1|0;Ha=0;do{l=+h[12584+(Ea-Ha<<3)>>3];h[Ga+(Ha<<3)>>3]=(Ha&1|0)==0?l:-l;Ha=Ha+1|0}while((Ha|0)!=(f|0));Ja=0;do{h[c+(Ja<<3)>>3]=+h[Ga+(Ia-Ja<<3)>>3];Ja=Ja+1|0}while((Ja|0)!=(f|0));Wb(Ga);Ga=0;do{h[d+(Ga<<3)>>3]=+h[12584+(Ga+2<<3)>>3];Ga=Ga+1|0}while((Ga|0)!=(f|0));Ka=0;do{l=+h[12664+(Ia-Ka<<3)>>3];h[e+(Ka<<3)>>3]=(Ka&1|0)==0?l:-l;Ka=Ka+1|0}while((Ka|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8568)|0)){if((f|0)<=0){g=f;return g|0}Ka=f+-1|0;Ia=0;do{h[b+(Ia<<3)>>3]=+h[12712+(Ka-Ia<<3)>>3];Ia=Ia+1|0}while((Ia|0)!=(f|0));Ia=Vb(f<<3)|0;Ga=0;do{l=+h[12584+(Ka-Ga<<3)>>3];h[Ia+(Ga<<3)>>3]=(Ga&1|0)==0?l:-l;Ga=Ga+1|0}while((Ga|0)!=(f|0));La=0;do{h[c+(La<<3)>>3]=+h[Ia+(Ka-La<<3)>>3];La=La+1|0}while((La|0)!=(f|0));Wb(Ia);Ia=0;do{h[d+(Ia<<3)>>3]=+h[12584+(Ia<<3)>>3];Ia=Ia+1|0}while((Ia|0)!=(f|0));Ma=0;do{l=+h[12712+(Ka-Ma<<3)>>3];h[e+(Ma<<3)>>3]=(Ma&1|0)==0?l:-l;Ma=Ma+1|0}while((Ma|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8576)|0)){if((f|0)<=0){g=f;return g|0}Ma=f+-1|0;Ka=0;do{h[b+(Ka<<3)>>3]=+h[12792+(Ma-Ka<<3)>>3];Ka=Ka+1|0}while((Ka|0)!=(f|0));Ka=Vb(f<<3)|0;Ia=f+5|0;La=0;do{l=+h[12840+(Ia-La<<3)>>3];h[Ka+(La<<3)>>3]=(La&1|0)==0?l:-l;La=La+1|0}while((La|0)!=(f|0));Na=0;do{h[c+(Na<<3)>>3]=+h[Ka+(Ma-Na<<3)>>3];Na=Na+1|0}while((Na|0)!=(f|0));Wb(Ka);Ka=0;do{h[d+(Ka<<3)>>3]=+h[12840+(Ka+6<<3)>>3];Ka=Ka+1|0}while((Ka|0)!=(f|0));Oa=0;do{l=+h[12792+(Ma-Oa<<3)>>3];h[e+(Oa<<3)>>3]=(Oa&1|0)==0?l:-l;Oa=Oa+1|0}while((Oa|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8584)|0)){if((f|0)<=0){g=f;return g|0}Oa=f+-1|0;Ma=0;do{h[b+(Ma<<3)>>3]=+h[12984+(Oa-Ma<<3)>>3];Ma=Ma+1|0}while((Ma|0)!=(f|0));Ma=Vb(f<<3)|0;Ka=f+3|0;Na=0;do{l=+h[12840+(Ka-Na<<3)>>3];h[Ma+(Na<<3)>>3]=(Na&1|0)==0?l:-l;Na=Na+1|0}while((Na|0)!=(f|0));Pa=0;do{h[c+(Pa<<3)>>3]=+h[Ma+(Oa-Pa<<3)>>3];Pa=Pa+1|0}while((Pa|0)!=(f|0));Wb(Ma);Ma=0;do{h[d+(Ma<<3)>>3]=+h[12840+(Ma+4<<3)>>3];Ma=Ma+1|0}while((Ma|0)!=(f|0));Qa=0;do{l=+h[12984+(Oa-Qa<<3)>>3];h[e+(Qa<<3)>>3]=(Qa&1|0)==0?l:-l;Qa=Qa+1|0}while((Qa|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8592)|0)){if((f|0)<=0){g=f;return g|0}Qa=f+-1|0;Oa=0;do{h[b+(Oa<<3)>>3]=+h[13064+(Qa-Oa<<3)>>3];Oa=Oa+1|0}while((Oa|0)!=(f|0));Oa=Vb(f<<3)|0;Ma=f+1|0;Pa=0;do{l=+h[12840+(Ma-Pa<<3)>>3];h[Oa+(Pa<<3)>>3]=(Pa&1|0)==0?l:-l;Pa=Pa+1|0}while((Pa|0)!=(f|0));Ra=0;do{h[c+(Ra<<3)>>3]=+h[Oa+(Qa-Ra<<3)>>3];Ra=Ra+1|0}while((Ra|0)!=(f|0));Wb(Oa);Oa=0;do{h[d+(Oa<<3)>>3]=+h[12840+(Oa+2<<3)>>3];Oa=Oa+1|0}while((Oa|0)!=(f|0));Sa=0;do{l=+h[13064+(Qa-Sa<<3)>>3];h[e+(Sa<<3)>>3]=(Sa&1|0)==0?l:-l;Sa=Sa+1|0}while((Sa|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8600)|0)){if((f|0)<=0){g=f;return g|0}Sa=f+-1|0;Qa=0;do{h[b+(Qa<<3)>>3]=+h[13176+(Sa-Qa<<3)>>3];Qa=Qa+1|0}while((Qa|0)!=(f|0));Qa=Vb(f<<3)|0;Oa=0;do{l=+h[12840+(Sa-Oa<<3)>>3];h[Qa+(Oa<<3)>>3]=(Oa&1|0)==0?l:-l;Oa=Oa+1|0}while((Oa|0)!=(f|0));Ta=0;do{h[c+(Ta<<3)>>3]=+h[Qa+(Sa-Ta<<3)>>3];Ta=Ta+1|0}while((Ta|0)!=(f|0));Wb(Qa);Qa=0;do{h[d+(Qa<<3)>>3]=+h[12840+(Qa<<3)>>3];Qa=Qa+1|0}while((Qa|0)!=(f|0));Ua=0;do{l=+h[13176+(Sa-Ua<<3)>>3];h[e+(Ua<<3)>>3]=(Ua&1|0)==0?l:-l;Ua=Ua+1|0}while((Ua|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8608)|0)){if((f|0)<=0){g=f;return g|0}Ua=f+-1|0;Sa=0;do{h[b+(Sa<<3)>>3]=+h[13320+(Ua-Sa<<3)>>3];Sa=Sa+1|0}while((Sa|0)!=(f|0));Sa=Vb(f<<3)|0;Qa=f+7|0;Ta=0;do{l=+h[13352+(Qa-Ta<<3)>>3];h[Sa+(Ta<<3)>>3]=(Ta&1|0)==0?l:-l;Ta=Ta+1|0}while((Ta|0)!=(f|0));Va=0;do{h[c+(Va<<3)>>3]=+h[Sa+(Ua-Va<<3)>>3];Va=Va+1|0}while((Va|0)!=(f|0));Wb(Sa);Sa=0;do{h[d+(Sa<<3)>>3]=+h[13352+(Sa+8<<3)>>3];Sa=Sa+1|0}while((Sa|0)!=(f|0));Wa=0;do{l=+h[13320+(Ua-Wa<<3)>>3];h[e+(Wa<<3)>>3]=(Wa&1|0)==0?l:-l;Wa=Wa+1|0}while((Wa|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8616)|0)){if((f|0)<=0){g=f;return g|0}Wa=f+-1|0;Ua=0;do{h[b+(Ua<<3)>>3]=+h[13512+(Wa-Ua<<3)>>3];Ua=Ua+1|0}while((Ua|0)!=(f|0));Ua=Vb(f<<3)|0;Sa=f+5|0;Va=0;do{l=+h[13352+(Sa-Va<<3)>>3];h[Ua+(Va<<3)>>3]=(Va&1|0)==0?l:-l;Va=Va+1|0}while((Va|0)!=(f|0));Xa=0;do{h[c+(Xa<<3)>>3]=+h[Ua+(Wa-Xa<<3)>>3];Xa=Xa+1|0}while((Xa|0)!=(f|0));Wb(Ua);Ua=0;do{h[d+(Ua<<3)>>3]=+h[13352+(Ua+6<<3)>>3];Ua=Ua+1|0}while((Ua|0)!=(f|0));Ya=0;do{l=+h[13512+(Wa-Ya<<3)>>3];h[e+(Ya<<3)>>3]=(Ya&1|0)==0?l:-l;Ya=Ya+1|0}while((Ya|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8624)|0)){if((f|0)<=0){g=f;return g|0}Ya=f+-1|0;Wa=0;do{h[b+(Wa<<3)>>3]=+h[13576+(Ya-Wa<<3)>>3];Wa=Wa+1|0}while((Wa|0)!=(f|0));Wa=Vb(f<<3)|0;Ua=f+3|0;Xa=0;do{l=+h[13352+(Ua-Xa<<3)>>3];h[Wa+(Xa<<3)>>3]=(Xa&1|0)==0?l:-l;Xa=Xa+1|0}while((Xa|0)!=(f|0));Za=0;do{h[c+(Za<<3)>>3]=+h[Wa+(Ya-Za<<3)>>3];Za=Za+1|0}while((Za|0)!=(f|0));Wb(Wa);Wa=0;do{h[d+(Wa<<3)>>3]=+h[13352+(Wa+4<<3)>>3];Wa=Wa+1|0}while((Wa|0)!=(f|0));_a=0;do{l=+h[13576+(Ya-_a<<3)>>3];h[e+(_a<<3)>>3]=(_a&1|0)==0?l:-l;_a=_a+1|0}while((_a|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8632)|0)){if((f|0)<=0){g=f;return g|0}_a=f+-1|0;Ya=0;do{h[b+(Ya<<3)>>3]=+h[13672+(_a-Ya<<3)>>3];Ya=Ya+1|0}while((Ya|0)!=(f|0));Ya=Vb(f<<3)|0;Wa=f+1|0;Za=0;do{l=+h[13352+(Wa-Za<<3)>>3];h[Ya+(Za<<3)>>3]=(Za&1|0)==0?l:-l;Za=Za+1|0}while((Za|0)!=(f|0));$a=0;do{h[c+($a<<3)>>3]=+h[Ya+(_a-$a<<3)>>3];$a=$a+1|0}while(($a|0)!=(f|0));Wb(Ya);Ya=0;do{h[d+(Ya<<3)>>3]=+h[13352+(Ya+2<<3)>>3];Ya=Ya+1|0}while((Ya|0)!=(f|0));ab=0;do{l=+h[13672+(_a-ab<<3)>>3];h[e+(ab<<3)>>3]=(ab&1|0)==0?l:-l;ab=ab+1|0}while((ab|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8640)|0)){if((f|0)<=0){g=f;return g|0}ab=f+-1|0;_a=0;do{h[b+(_a<<3)>>3]=+h[13800+(ab-_a<<3)>>3];_a=_a+1|0}while((_a|0)!=(f|0));_a=Vb(f<<3)|0;Ya=0;do{l=+h[13352+(ab-Ya<<3)>>3];h[_a+(Ya<<3)>>3]=(Ya&1|0)==0?l:-l;Ya=Ya+1|0}while((Ya|0)!=(f|0));bb=0;do{h[c+(bb<<3)>>3]=+h[_a+(ab-bb<<3)>>3];bb=bb+1|0}while((bb|0)!=(f|0));Wb(_a);_a=0;do{h[d+(_a<<3)>>3]=+h[13352+(_a<<3)>>3];_a=_a+1|0}while((_a|0)!=(f|0));cb=0;do{l=+h[13800+(ab-cb<<3)>>3];h[e+(cb<<3)>>3]=(cb&1|0)==0?l:-l;cb=cb+1|0}while((cb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8648)|0)){if((f|0)<=0){g=f;return g|0}cb=f+-1|0;ab=0;do{h[b+(ab<<3)>>3]=+h[13960+(cb-ab<<3)>>3];ab=ab+1|0}while((ab|0)!=(f|0));ab=Vb(f<<3)|0;_a=0;do{l=+h[14040+(cb-_a<<3)>>3];h[ab+(_a<<3)>>3]=(_a&1|0)==0?l:-l;_a=_a+1|0}while((_a|0)!=(f|0));db=0;do{h[c+(db<<3)>>3]=+h[ab+(cb-db<<3)>>3];db=db+1|0}while((db|0)!=(f|0));Wb(ab);ab=0;do{h[d+(ab<<3)>>3]=+h[14040+(ab<<3)>>3];ab=ab+1|0}while((ab|0)!=(f|0));eb=0;do{l=+h[13960+(cb-eb<<3)>>3];h[e+(eb<<3)>>3]=(eb&1|0)==0?l:-l;eb=eb+1|0}while((eb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8656)|0)){if((f|0)<=0){g=f;return g|0}eb=f+-1|0;cb=0;do{h[b+(cb<<3)>>3]=+h[14120+(eb-cb<<3)>>3];cb=cb+1|0}while((cb|0)!=(f|0));cb=Vb(f<<3)|0;ab=0;do{l=+h[14216+(eb-ab<<3)>>3];h[cb+(ab<<3)>>3]=(ab&1|0)==0?l:-l;ab=ab+1|0}while((ab|0)!=(f|0));fb=0;do{h[c+(fb<<3)>>3]=+h[cb+(eb-fb<<3)>>3];fb=fb+1|0}while((fb|0)!=(f|0));Wb(cb);cb=0;do{h[d+(cb<<3)>>3]=+h[14216+(cb<<3)>>3];cb=cb+1|0}while((cb|0)!=(f|0));hb=0;do{l=+h[14120+(eb-hb<<3)>>3];h[e+(hb<<3)>>3]=(hb&1|0)==0?l:-l;hb=hb+1|0}while((hb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8664)|0)){if((f|0)<=0){g=f;return g|0}hb=f+-1|0;eb=0;do{h[b+(eb<<3)>>3]=+h[14312+(hb-eb<<3)>>3];eb=eb+1|0}while((eb|0)!=(f|0));eb=Vb(f<<3)|0;cb=0;do{l=+h[14456+(hb-cb<<3)>>3];h[eb+(cb<<3)>>3]=(cb&1|0)==0?l:-l;cb=cb+1|0}while((cb|0)!=(f|0));ib=0;do{h[c+(ib<<3)>>3]=+h[eb+(hb-ib<<3)>>3];ib=ib+1|0}while((ib|0)!=(f|0));Wb(eb);eb=0;do{h[d+(eb<<3)>>3]=+h[14456+(eb<<3)>>3];eb=eb+1|0}while((eb|0)!=(f|0));jb=0;do{l=+h[14312+(hb-jb<<3)>>3];h[e+(jb<<3)>>3]=(jb&1|0)==0?l:-l;jb=jb+1|0}while((jb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8672)|0)){if((f|0)<=0){g=f;return g|0}jb=f+3|0;hb=0;do{h[b+(hb<<3)>>3]=+h[12584+(jb-hb<<3)>>3];hb=hb+1|0}while((hb|0)!=(f|0));hb=Vb(f<<3)|0;eb=f+-1|0;ib=0;do{l=+h[12568+(eb-ib<<3)>>3];h[hb+(ib<<3)>>3]=(ib&1|0)==0?l:-l;ib=ib+1|0}while((ib|0)!=(f|0));kb=0;do{h[c+(kb<<3)>>3]=+h[hb+(eb-kb<<3)>>3];kb=kb+1|0}while((kb|0)!=(f|0));Wb(hb);hb=0;do{h[d+(hb<<3)>>3]=+h[12568+(hb<<3)>>3];hb=hb+1|0}while((hb|0)!=(f|0));lb=0;do{l=+h[12584+(jb-lb<<3)>>3];h[e+(lb<<3)>>3]=(lb&1|0)==0?l:-l;lb=lb+1|0}while((lb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8688)|0)){if((f|0)<=0){g=f;return g|0}lb=f+1|0;jb=0;do{h[b+(jb<<3)>>3]=+h[12584+(lb-jb<<3)>>3];jb=jb+1|0}while((jb|0)!=(f|0));jb=Vb(f<<3)|0;hb=f+-1|0;kb=0;do{l=+h[12664+(hb-kb<<3)>>3];h[jb+(kb<<3)>>3]=(kb&1|0)==0?l:-l;kb=kb+1|0}while((kb|0)!=(f|0));mb=0;do{h[c+(mb<<3)>>3]=+h[jb+(hb-mb<<3)>>3];mb=mb+1|0}while((mb|0)!=(f|0));Wb(jb);jb=0;do{h[d+(jb<<3)>>3]=+h[12664+(jb<<3)>>3];jb=jb+1|0}while((jb|0)!=(f|0));nb=0;do{l=+h[12584+(lb-nb<<3)>>3];h[e+(nb<<3)>>3]=(nb&1|0)==0?l:-l;nb=nb+1|0}while((nb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8704)|0)){if((f|0)<=0){g=f;return g|0}nb=f+-1|0;lb=0;do{h[b+(lb<<3)>>3]=+h[12584+(nb-lb<<3)>>3];lb=lb+1|0}while((lb|0)!=(f|0));lb=Vb(f<<3)|0;jb=0;do{l=+h[12712+(nb-jb<<3)>>3];h[lb+(jb<<3)>>3]=(jb&1|0)==0?l:-l;jb=jb+1|0}while((jb|0)!=(f|0));ob=0;do{h[c+(ob<<3)>>3]=+h[lb+(nb-ob<<3)>>3];ob=ob+1|0}while((ob|0)!=(f|0));Wb(lb);lb=0;do{h[d+(lb<<3)>>3]=+h[12712+(lb<<3)>>3];lb=lb+1|0}while((lb|0)!=(f|0));pb=0;do{l=+h[12584+(nb-pb<<3)>>3];h[e+(pb<<3)>>3]=(pb&1|0)==0?l:-l;pb=pb+1|0}while((pb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8720)|0)){if((f|0)<=0){g=f;return g|0}pb=f+5|0;nb=0;do{h[b+(nb<<3)>>3]=+h[12840+(pb-nb<<3)>>3];nb=nb+1|0}while((nb|0)!=(f|0));nb=Vb(f<<3)|0;lb=f+-1|0;ob=0;do{l=+h[12792+(lb-ob<<3)>>3];h[nb+(ob<<3)>>3]=(ob&1|0)==0?l:-l;ob=ob+1|0}while((ob|0)!=(f|0));qb=0;do{h[c+(qb<<3)>>3]=+h[nb+(lb-qb<<3)>>3];qb=qb+1|0}while((qb|0)!=(f|0));Wb(nb);nb=0;do{h[d+(nb<<3)>>3]=+h[12792+(nb<<3)>>3];nb=nb+1|0}while((nb|0)!=(f|0));rb=0;do{l=+h[12840+(pb-rb<<3)>>3];h[e+(rb<<3)>>3]=(rb&1|0)==0?l:-l;rb=rb+1|0}while((rb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8736)|0)){if((f|0)<=0){g=f;return g|0}rb=f+3|0;pb=0;do{h[b+(pb<<3)>>3]=+h[12840+(rb-pb<<3)>>3];pb=pb+1|0}while((pb|0)!=(f|0));pb=Vb(f<<3)|0;nb=f+-1|0;qb=0;do{l=+h[12984+(nb-qb<<3)>>3];h[pb+(qb<<3)>>3]=(qb&1|0)==0?l:-l;qb=qb+1|0}while((qb|0)!=(f|0));sb=0;do{h[c+(sb<<3)>>3]=+h[pb+(nb-sb<<3)>>3];sb=sb+1|0}while((sb|0)!=(f|0));Wb(pb);pb=0;do{h[d+(pb<<3)>>3]=+h[12984+(pb<<3)>>3];pb=pb+1|0}while((pb|0)!=(f|0));tb=0;do{l=+h[12840+(rb-tb<<3)>>3];h[e+(tb<<3)>>3]=(tb&1|0)==0?l:-l;tb=tb+1|0}while((tb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8752)|0)){if((f|0)<=0){g=f;return g|0}tb=f+1|0;rb=0;do{h[b+(rb<<3)>>3]=+h[12840+(tb-rb<<3)>>3];rb=rb+1|0}while((rb|0)!=(f|0));rb=Vb(f<<3)|0;pb=f+-1|0;sb=0;do{l=+h[13064+(pb-sb<<3)>>3];h[rb+(sb<<3)>>3]=(sb&1|0)==0?l:-l;sb=sb+1|0}while((sb|0)!=(f|0));ub=0;do{h[c+(ub<<3)>>3]=+h[rb+(pb-ub<<3)>>3];ub=ub+1|0}while((ub|0)!=(f|0));Wb(rb);rb=0;do{h[d+(rb<<3)>>3]=+h[13064+(rb<<3)>>3];rb=rb+1|0}while((rb|0)!=(f|0));vb=0;do{l=+h[12840+(tb-vb<<3)>>3];h[e+(vb<<3)>>3]=(vb&1|0)==0?l:-l;vb=vb+1|0}while((vb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8768)|0)){if((f|0)<=0){g=f;return g|0}vb=f+-1|0;tb=0;do{h[b+(tb<<3)>>3]=+h[12840+(vb-tb<<3)>>3];tb=tb+1|0}while((tb|0)!=(f|0));tb=Vb(f<<3)|0;rb=0;do{l=+h[13176+(vb-rb<<3)>>3];h[tb+(rb<<3)>>3]=(rb&1|0)==0?l:-l;rb=rb+1|0}while((rb|0)!=(f|0));wb=0;do{h[c+(wb<<3)>>3]=+h[tb+(vb-wb<<3)>>3];wb=wb+1|0}while((wb|0)!=(f|0));Wb(tb);tb=0;do{h[d+(tb<<3)>>3]=+h[13176+(tb<<3)>>3];tb=tb+1|0}while((tb|0)!=(f|0));xb=0;do{l=+h[12840+(vb-xb<<3)>>3];h[e+(xb<<3)>>3]=(xb&1|0)==0?l:-l;xb=xb+1|0}while((xb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8784)|0)){if((f|0)<=0){g=f;return g|0}xb=f+7|0;vb=0;do{h[b+(vb<<3)>>3]=+h[13352+(xb-vb<<3)>>3];vb=vb+1|0}while((vb|0)!=(f|0));vb=Vb(f<<3)|0;tb=f+-1|0;wb=0;do{l=+h[13320+(tb-wb<<3)>>3];h[vb+(wb<<3)>>3]=(wb&1|0)==0?l:-l;wb=wb+1|0}while((wb|0)!=(f|0));yb=0;do{h[c+(yb<<3)>>3]=+h[vb+(tb-yb<<3)>>3];yb=yb+1|0}while((yb|0)!=(f|0));Wb(vb);vb=0;do{h[d+(vb<<3)>>3]=+h[13320+(vb<<3)>>3];vb=vb+1|0}while((vb|0)!=(f|0));zb=0;do{l=+h[13352+(xb-zb<<3)>>3];h[e+(zb<<3)>>3]=(zb&1|0)==0?l:-l;zb=zb+1|0}while((zb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8800)|0)){if((f|0)<=0){g=f;return g|0}zb=f+5|0;xb=0;do{h[b+(xb<<3)>>3]=+h[13352+(zb-xb<<3)>>3];xb=xb+1|0}while((xb|0)!=(f|0));xb=Vb(f<<3)|0;vb=f+-1|0;yb=0;do{l=+h[13512+(vb-yb<<3)>>3];h[xb+(yb<<3)>>3]=(yb&1|0)==0?l:-l;yb=yb+1|0}while((yb|0)!=(f|0));Ab=0;do{h[c+(Ab<<3)>>3]=+h[xb+(vb-Ab<<3)>>3];Ab=Ab+1|0}while((Ab|0)!=(f|0));Wb(xb);xb=0;do{h[d+(xb<<3)>>3]=+h[13512+(xb<<3)>>3];xb=xb+1|0}while((xb|0)!=(f|0));Bb=0;do{l=+h[13352+(zb-Bb<<3)>>3];h[e+(Bb<<3)>>3]=(Bb&1|0)==0?l:-l;Bb=Bb+1|0}while((Bb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8816)|0)){if((f|0)<=0){g=f;return g|0}Bb=f+3|0;zb=0;do{h[b+(zb<<3)>>3]=+h[13352+(Bb-zb<<3)>>3];zb=zb+1|0}while((zb|0)!=(f|0));zb=Vb(f<<3)|0;xb=f+-1|0;Ab=0;do{l=+h[13576+(xb-Ab<<3)>>3];h[zb+(Ab<<3)>>3]=(Ab&1|0)==0?l:-l;Ab=Ab+1|0}while((Ab|0)!=(f|0));Cb=0;do{h[c+(Cb<<3)>>3]=+h[zb+(xb-Cb<<3)>>3];Cb=Cb+1|0}while((Cb|0)!=(f|0));Wb(zb);zb=0;do{h[d+(zb<<3)>>3]=+h[13576+(zb<<3)>>3];zb=zb+1|0}while((zb|0)!=(f|0));Db=0;do{l=+h[13352+(Bb-Db<<3)>>3];h[e+(Db<<3)>>3]=(Db&1|0)==0?l:-l;Db=Db+1|0}while((Db|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8832)|0)){if((f|0)<=0){g=f;return g|0}Db=f+1|0;Bb=0;do{h[b+(Bb<<3)>>3]=+h[13352+(Db-Bb<<3)>>3];Bb=Bb+1|0}while((Bb|0)!=(f|0));Bb=Vb(f<<3)|0;zb=f+-1|0;Cb=0;do{l=+h[13672+(zb-Cb<<3)>>3];h[Bb+(Cb<<3)>>3]=(Cb&1|0)==0?l:-l;Cb=Cb+1|0}while((Cb|0)!=(f|0));Eb=0;do{h[c+(Eb<<3)>>3]=+h[Bb+(zb-Eb<<3)>>3];Eb=Eb+1|0}while((Eb|0)!=(f|0));Wb(Bb);Bb=0;do{h[d+(Bb<<3)>>3]=+h[13672+(Bb<<3)>>3];Bb=Bb+1|0}while((Bb|0)!=(f|0));Fb=0;do{l=+h[13352+(Db-Fb<<3)>>3];h[e+(Fb<<3)>>3]=(Fb&1|0)==0?l:-l;Fb=Fb+1|0}while((Fb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8848)|0)){if((f|0)<=0){g=f;return g|0}Fb=f+-1|0;Db=0;do{h[b+(Db<<3)>>3]=+h[13352+(Fb-Db<<3)>>3];Db=Db+1|0}while((Db|0)!=(f|0));Db=Vb(f<<3)|0;Bb=0;do{l=+h[13800+(Fb-Bb<<3)>>3];h[Db+(Bb<<3)>>3]=(Bb&1|0)==0?l:-l;Bb=Bb+1|0}while((Bb|0)!=(f|0));Gb=0;do{h[c+(Gb<<3)>>3]=+h[Db+(Fb-Gb<<3)>>3];Gb=Gb+1|0}while((Gb|0)!=(f|0));Wb(Db);Db=0;do{h[d+(Db<<3)>>3]=+h[13800+(Db<<3)>>3];Db=Db+1|0}while((Db|0)!=(f|0));Hb=0;do{l=+h[13352+(Fb-Hb<<3)>>3];h[e+(Hb<<3)>>3]=(Hb&1|0)==0?l:-l;Hb=Hb+1|0}while((Hb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8864)|0)){if((f|0)<=0){g=f;return g|0}Hb=f+-1|0;Fb=0;do{h[b+(Fb<<3)>>3]=+h[14040+(Hb-Fb<<3)>>3];Fb=Fb+1|0}while((Fb|0)!=(f|0));Fb=Vb(f<<3)|0;Db=0;do{l=+h[13960+(Hb-Db<<3)>>3];h[Fb+(Db<<3)>>3]=(Db&1|0)==0?l:-l;Db=Db+1|0}while((Db|0)!=(f|0));Ib=0;do{h[c+(Ib<<3)>>3]=+h[Fb+(Hb-Ib<<3)>>3];Ib=Ib+1|0}while((Ib|0)!=(f|0));Wb(Fb);Fb=0;do{h[d+(Fb<<3)>>3]=+h[13960+(Fb<<3)>>3];Fb=Fb+1|0}while((Fb|0)!=(f|0));Jb=0;do{l=+h[14040+(Hb-Jb<<3)>>3];h[e+(Jb<<3)>>3]=(Jb&1|0)==0?l:-l;Jb=Jb+1|0}while((Jb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8880)|0)){if((f|0)<=0){g=f;return g|0}Jb=f+-1|0;Hb=0;do{h[b+(Hb<<3)>>3]=+h[14216+(Jb-Hb<<3)>>3];Hb=Hb+1|0}while((Hb|0)!=(f|0));Hb=Vb(f<<3)|0;Fb=0;do{l=+h[14120+(Jb-Fb<<3)>>3];h[Hb+(Fb<<3)>>3]=(Fb&1|0)==0?l:-l;Fb=Fb+1|0}while((Fb|0)!=(f|0));Kb=0;do{h[c+(Kb<<3)>>3]=+h[Hb+(Jb-Kb<<3)>>3];Kb=Kb+1|0}while((Kb|0)!=(f|0));Wb(Hb);Hb=0;do{h[d+(Hb<<3)>>3]=+h[14120+(Hb<<3)>>3];Hb=Hb+1|0}while((Hb|0)!=(f|0));Lb=0;do{l=+h[14216+(Jb-Lb<<3)>>3];h[e+(Lb<<3)>>3]=(Lb&1|0)==0?l:-l;Lb=Lb+1|0}while((Lb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,8896)|0)){if((f|0)<=0){g=f;return g|0}Lb=f+-1|0;Jb=0;do{h[b+(Jb<<3)>>3]=+h[14456+(Lb-Jb<<3)>>3];Jb=Jb+1|0}while((Jb|0)!=(f|0));Jb=Vb(f<<3)|0;Hb=0;do{l=+h[14312+(Lb-Hb<<3)>>3];h[Jb+(Hb<<3)>>3]=(Hb&1|0)==0?l:-l;Hb=Hb+1|0}while((Hb|0)!=(f|0));Mb=0;do{h[c+(Mb<<3)>>3]=+h[Jb+(Lb-Mb<<3)>>3];Mb=Mb+1|0}while((Mb|0)!=(f|0));Wb(Jb);Jb=0;do{h[d+(Jb<<3)>>3]=+h[14312+(Jb<<3)>>3];Jb=Jb+1|0}while((Jb|0)!=(f|0));Nb=0;do{l=+h[14456+(Lb-Nb<<3)>>3];h[e+(Nb<<3)>>3]=(Nb&1|0)==0?l:-l;Nb=Nb+1|0}while((Nb|0)!=(f|0));g=f;return g|0}if(!(Ub(a,14600)|0)){Nb=f<<3;Lb=Vb(Nb)|0;Jb=(f|0)>0;do if(Jb){$b(Lb|0,14608,f<<3|0)|0;Mb=0;do{Hb=Lb+(Mb<<3)|0;h[Hb>>3]=+h[Hb>>3]*1.4142135623730951;Mb=Mb+1|0}while((Mb|0)!=(f|0));if(!Jb)break;Mb=f+-1|0;Hb=0;do{h[b+(Hb<<3)>>3]=+h[Lb+(Mb-Hb<<3)>>3];Hb=Hb+1|0}while((Hb|0)!=(f|0));Hb=Vb(Nb)|0;Kb=0;do{l=+h[Lb+(Mb-Kb<<3)>>3];h[Hb+(Kb<<3)>>3]=(Kb&1|0)==0?l:-l;Kb=Kb+1|0}while((Kb|0)!=(f|0));Ob=0;do{h[c+(Ob<<3)>>3]=+h[Hb+(Mb-Ob<<3)>>3];Ob=Ob+1|0}while((Ob|0)!=(f|0));Wb(Hb);$b(d|0,Lb|0,f<<3|0)|0;Kb=0;do{l=+h[Lb+(Mb-Kb<<3)>>3];h[e+(Kb<<3)>>3]=(Kb&1|0)==0?l:-l;Kb=Kb+1|0}while((Kb|0)!=(f|0))}while(0);Wb(Lb);g=f;return g|0}if(!(Ub(a,14656)|0)){Lb=f<<3;Ob=Vb(Lb)|0;Nb=(f|0)>0;do if(Nb){$b(Ob|0,14664,f<<3|0)|0;Jb=0;do{Kb=Ob+(Jb<<3)|0;h[Kb>>3]=+h[Kb>>3]*1.4142135623730951;Jb=Jb+1|0}while((Jb|0)!=(f|0));if(!Nb)break;Jb=f+-1|0;Kb=0;do{h[b+(Kb<<3)>>3]=+h[Ob+(Jb-Kb<<3)>>3];Kb=Kb+1|0}while((Kb|0)!=(f|0));Kb=Vb(Lb)|0;Mb=0;do{l=+h[Ob+(Jb-Mb<<3)>>3];h[Kb+(Mb<<3)>>3]=(Mb&1|0)==0?l:-l;Mb=Mb+1|0}while((Mb|0)!=(f|0));Pb=0;do{h[c+(Pb<<3)>>3]=+h[Kb+(Jb-Pb<<3)>>3];Pb=Pb+1|0}while((Pb|0)!=(f|0));Wb(Kb);$b(d|0,Ob|0,f<<3|0)|0;Mb=0;do{l=+h[Ob+(Jb-Mb<<3)>>3];h[e+(Mb<<3)>>3]=(Mb&1|0)==0?l:-l;Mb=Mb+1|0}while((Mb|0)!=(f|0))}while(0);Wb(Ob);g=f;return g|0}if(!(Ub(a,14760)|0)){Ob=f<<3;Pb=Vb(Ob)|0;Lb=(f|0)>0;do if(Lb){$b(Pb|0,14768,f<<3|0)|0;Nb=0;do{Mb=Pb+(Nb<<3)|0;h[Mb>>3]=+h[Mb>>3]*1.4142135623730951;Nb=Nb+1|0}while((Nb|0)!=(f|0));if(!Lb)break;Nb=f+-1|0;Mb=0;do{h[b+(Mb<<3)>>3]=+h[Pb+(Nb-Mb<<3)>>3];Mb=Mb+1|0}while((Mb|0)!=(f|0));Mb=Vb(Ob)|0;Jb=0;do{l=+h[Pb+(Nb-Jb<<3)>>3];h[Mb+(Jb<<3)>>3]=(Jb&1|0)==0?l:-l;Jb=Jb+1|0}while((Jb|0)!=(f|0));Qb=0;do{h[c+(Qb<<3)>>3]=+h[Mb+(Nb-Qb<<3)>>3];Qb=Qb+1|0}while((Qb|0)!=(f|0));Wb(Mb);$b(d|0,Pb|0,f<<3|0)|0;Jb=0;do{l=+h[Pb+(Nb-Jb<<3)>>3];h[e+(Jb<<3)>>3]=(Jb&1|0)==0?l:-l;Jb=Jb+1|0}while((Jb|0)!=(f|0))}while(0);Wb(Pb);g=f;return g|0}if(!(Ub(a,14912)|0)){Pb=f<<3;Qb=Vb(Pb)|0;Ob=(f|0)>0;do if(Ob){$b(Qb|0,14920,f<<3|0)|0;Lb=0;do{Jb=Qb+(Lb<<3)|0;h[Jb>>3]=+h[Jb>>3]*1.4142135623730951;Lb=Lb+1|0}while((Lb|0)!=(f|0));if(!Ob)break;Lb=f+-1|0;Jb=0;do{h[b+(Jb<<3)>>3]=+h[Qb+(Lb-Jb<<3)>>3];Jb=Jb+1|0}while((Jb|0)!=(f|0));Jb=Vb(Pb)|0;Nb=0;do{l=+h[Qb+(Lb-Nb<<3)>>3];h[Jb+(Nb<<3)>>3]=(Nb&1|0)==0?l:-l;Nb=Nb+1|0}while((Nb|0)!=(f|0));Rb=0;do{h[c+(Rb<<3)>>3]=+h[Jb+(Lb-Rb<<3)>>3];Rb=Rb+1|0}while((Rb|0)!=(f|0));Wb(Jb);$b(d|0,Qb|0,f<<3|0)|0;Nb=0;do{l=+h[Qb+(Lb-Nb<<3)>>3];h[e+(Nb<<3)>>3]=(Nb&1|0)==0?l:-l;Nb=Nb+1|0}while((Nb|0)!=(f|0))}while(0);Wb(Qb);g=f;return g|0}if(!(Ub(a,15112)|0)){Qb=f<<3;Rb=Vb(Qb)|0;Pb=(f|0)>0;do if(Pb){$b(Rb|0,15120,f<<3|0)|0;Ob=0;do{Nb=Rb+(Ob<<3)|0;h[Nb>>3]=+h[Nb>>3]*1.4142135623730951;Ob=Ob+1|0}while((Ob|0)!=(f|0));if(!Pb)break;Ob=f+-1|0;Nb=0;do{h[b+(Nb<<3)>>3]=+h[Rb+(Ob-Nb<<3)>>3];Nb=Nb+1|0}while((Nb|0)!=(f|0));Nb=Vb(Qb)|0;Lb=0;do{l=+h[Rb+(Ob-Lb<<3)>>3];h[Nb+(Lb<<3)>>3]=(Lb&1|0)==0?l:-l;Lb=Lb+1|0}while((Lb|0)!=(f|0));Sb=0;do{h[c+(Sb<<3)>>3]=+h[Nb+(Ob-Sb<<3)>>3];Sb=Sb+1|0}while((Sb|0)!=(f|0));Wb(Nb);$b(d|0,Rb|0,f<<3|0)|0;Lb=0;do{l=+h[Rb+(Ob-Lb<<3)>>3];h[e+(Lb<<3)>>3]=(Lb&1|0)==0?l:-l;Lb=Lb+1|0}while((Lb|0)!=(f|0))}while(0);Wb(Rb);g=f;return g|0}if(!(Ub(a,15360)|0)){Rb=f<<3;Sb=Vb(Rb)|0;Qb=(f|0)>0;do if(Qb){$b(Sb|0,15368,f<<3|0)|0;Pb=0;do{Lb=Sb+(Pb<<3)|0;h[Lb>>3]=+h[Lb>>3]*1.4142135623730951;Pb=Pb+1|0}while((Pb|0)!=(f|0));if(!Qb)break;Pb=f+-1|0;Lb=0;do{h[b+(Lb<<3)>>3]=+h[Sb+(Pb-Lb<<3)>>3];Lb=Lb+1|0}while((Lb|0)!=(f|0));Lb=Vb(Rb)|0;Ob=0;do{l=+h[Sb+(Pb-Ob<<3)>>3];h[Lb+(Ob<<3)>>3]=(Ob&1|0)==0?l:-l;Ob=Ob+1|0}while((Ob|0)!=(f|0));Tb=0;do{h[c+(Tb<<3)>>3]=+h[Lb+(Pb-Tb<<3)>>3];Tb=Tb+1|0}while((Tb|0)!=(f|0));Wb(Lb);$b(d|0,Sb|0,f<<3|0)|0;Ob=0;do{l=+h[Sb+(Pb-Ob<<3)>>3];h[e+(Ob<<3)>>3]=(Ob&1|0)==0?l:-l;Ob=Ob+1|0}while((Ob|0)!=(f|0))}while(0);Wb(Sb);g=f;return g|0}if(!(Ub(a,15656)|0)){Sb=f<<3;Tb=Vb(Sb)|0;Rb=(f|0)>0;do if(Rb){$b(Tb|0,15664,f<<3|0)|0;Qb=0;do{Ob=Tb+(Qb<<3)|0;h[Ob>>3]=+h[Ob>>3]*1.4142135623730951;Qb=Qb+1|0}while((Qb|0)!=(f|0));if(!Rb)break;Qb=f+-1|0;Ob=0;do{h[b+(Ob<<3)>>3]=+h[Tb+(Qb-Ob<<3)>>3];Ob=Ob+1|0}while((Ob|0)!=(f|0));Ob=Vb(Sb)|0;Pb=0;do{l=+h[Tb+(Qb-Pb<<3)>>3];h[Ob+(Pb<<3)>>3]=(Pb&1|0)==0?l:-l;Pb=Pb+1|0}while((Pb|0)!=(f|0));Xb=0;do{h[c+(Xb<<3)>>3]=+h[Ob+(Qb-Xb<<3)>>3];Xb=Xb+1|0}while((Xb|0)!=(f|0));Wb(Ob);$b(d|0,Tb|0,f<<3|0)|0;Pb=0;do{l=+h[Tb+(Qb-Pb<<3)>>3];h[e+(Pb<<3)>>3]=(Pb&1|0)==0?l:-l;Pb=Pb+1|0}while((Pb|0)!=(f|0))}while(0);Wb(Tb);g=f;return g|0}if(!(Ub(a,16e3)|0)){Tb=f<<3;Xb=Vb(Tb)|0;Sb=(f|0)>0;do if(Sb){$b(Xb|0,16008,f<<3|0)|0;Rb=0;do{Pb=Xb+(Rb<<3)|0;h[Pb>>3]=+h[Pb>>3]*1.4142135623730951;Rb=Rb+1|0}while((Rb|0)!=(f|0));if(!Sb)break;Rb=f+-1|0;Pb=0;do{h[b+(Pb<<3)>>3]=+h[Xb+(Rb-Pb<<3)>>3];Pb=Pb+1|0}while((Pb|0)!=(f|0));Pb=Vb(Tb)|0;Qb=0;do{l=+h[Xb+(Rb-Qb<<3)>>3];h[Pb+(Qb<<3)>>3]=(Qb&1|0)==0?l:-l;Qb=Qb+1|0}while((Qb|0)!=(f|0));Yb=0;do{h[c+(Yb<<3)>>3]=+h[Pb+(Rb-Yb<<3)>>3];Yb=Yb+1|0}while((Yb|0)!=(f|0));Wb(Pb);$b(d|0,Xb|0,f<<3|0)|0;Qb=0;do{l=+h[Xb+(Rb-Qb<<3)>>3];h[e+(Qb<<3)>>3]=(Qb&1|0)==0?l:-l;Qb=Qb+1|0}while((Qb|0)!=(f|0))}while(0);Wb(Xb);g=f;return g|0}if(!(Ub(a,16392)|0)){Xb=f<<3;Yb=Vb(Xb)|0;Tb=(f|0)>0;do if(Tb){$b(Yb|0,16400,f<<3|0)|0;Sb=0;do{Qb=Yb+(Sb<<3)|0;h[Qb>>3]=+h[Qb>>3]*1.4142135623730951;Sb=Sb+1|0}while((Sb|0)!=(f|0));if(!Tb)break;Sb=f+-1|0;Qb=0;do{h[b+(Qb<<3)>>3]=+h[Yb+(Sb-Qb<<3)>>3];Qb=Qb+1|0}while((Qb|0)!=(f|0));Qb=Vb(Xb)|0;Rb=0;do{l=+h[Yb+(Sb-Rb<<3)>>3];h[Qb+(Rb<<3)>>3]=(Rb&1|0)==0?l:-l;Rb=Rb+1|0}while((Rb|0)!=(f|0));Zb=0;do{h[c+(Zb<<3)>>3]=+h[Qb+(Sb-Zb<<3)>>3];Zb=Zb+1|0}while((Zb|0)!=(f|0));Wb(Qb);$b(d|0,Yb|0,f<<3|0)|0;Rb=0;do{l=+h[Yb+(Sb-Rb<<3)>>3];h[e+(Rb<<3)>>3]=(Rb&1|0)==0?l:-l;Rb=Rb+1|0}while((Rb|0)!=(f|0))}while(0);Wb(Yb);g=f;return g|0}if(!(Ub(a,16832)|0)){Yb=f<<3;Zb=Vb(Yb)|0;Xb=(f|0)>0;do if(Xb){$b(Zb|0,16840,f<<3|0)|0;Tb=0;do{Rb=Zb+(Tb<<3)|0;h[Rb>>3]=+h[Rb>>3]*1.4142135623730951;Tb=Tb+1|0}while((Tb|0)!=(f|0));if(!Xb)break;Tb=f+-1|0;Rb=0;do{h[b+(Rb<<3)>>3]=+h[Zb+(Tb-Rb<<3)>>3];Rb=Rb+1|0}while((Rb|0)!=(f|0));Rb=Vb(Yb)|0;Sb=0;do{l=+h[Zb+(Tb-Sb<<3)>>3];h[Rb+(Sb<<3)>>3]=(Sb&1|0)==0?l:-l;Sb=Sb+1|0}while((Sb|0)!=(f|0));_b=0;do{h[c+(_b<<3)>>3]=+h[Rb+(Tb-_b<<3)>>3];_b=_b+1|0}while((_b|0)!=(f|0));Wb(Rb);$b(d|0,Zb|0,f<<3|0)|0;Sb=0;do{l=+h[Zb+(Tb-Sb<<3)>>3];h[e+(Sb<<3)>>3]=(Sb&1|0)==0?l:-l;Sb=Sb+1|0}while((Sb|0)!=(f|0))}while(0);Wb(Zb);g=f;return g|0}if(!(Ub(a,17320)|0)){Zb=f<<3;_b=Vb(Zb)|0;Yb=(f|0)>0;do if(Yb){$b(_b|0,17328,f<<3|0)|0;Xb=0;do{Sb=_b+(Xb<<3)|0;h[Sb>>3]=+h[Sb>>3]*1.4142135623730951;Xb=Xb+1|0}while((Xb|0)!=(f|0));if(!Yb)break;Xb=f+-1|0;Sb=0;do{h[b+(Sb<<3)>>3]=+h[_b+(Xb-Sb<<3)>>3];Sb=Sb+1|0}while((Sb|0)!=(f|0));Sb=Vb(Zb)|0;Tb=0;do{l=+h[_b+(Xb-Tb<<3)>>3];h[Sb+(Tb<<3)>>3]=(Tb&1|0)==0?l:-l;Tb=Tb+1|0}while((Tb|0)!=(f|0));ac=0;do{h[c+(ac<<3)>>3]=+h[Sb+(Xb-ac<<3)>>3];ac=ac+1|0}while((ac|0)!=(f|0));Wb(Sb);$b(d|0,_b|0,f<<3|0)|0;Tb=0;do{l=+h[_b+(Xb-Tb<<3)>>3];h[e+(Tb<<3)>>3]=(Tb&1|0)==0?l:-l;Tb=Tb+1|0}while((Tb|0)!=(f|0))}while(0);Wb(_b);g=f;return g|0}if(!(Ub(a,17856)|0)){_b=f<<3;ac=Vb(_b)|0;Zb=(f|0)>0;do if(Zb){$b(ac|0,17864,f<<3|0)|0;Yb=0;do{Tb=ac+(Yb<<3)|0;h[Tb>>3]=+h[Tb>>3]*1.4142135623730951;Yb=Yb+1|0}while((Yb|0)!=(f|0));if(!Zb)break;Yb=f+-1|0;Tb=0;do{h[b+(Tb<<3)>>3]=+h[ac+(Yb-Tb<<3)>>3];Tb=Tb+1|0}while((Tb|0)!=(f|0));Tb=Vb(_b)|0;Xb=0;do{l=+h[ac+(Yb-Xb<<3)>>3];h[Tb+(Xb<<3)>>3]=(Xb&1|0)==0?l:-l;Xb=Xb+1|0}while((Xb|0)!=(f|0));bc=0;do{h[c+(bc<<3)>>3]=+h[Tb+(Yb-bc<<3)>>3];bc=bc+1|0}while((bc|0)!=(f|0));Wb(Tb);$b(d|0,ac|0,f<<3|0)|0;Xb=0;do{l=+h[ac+(Yb-Xb<<3)>>3];h[e+(Xb<<3)>>3]=(Xb&1|0)==0?l:-l;Xb=Xb+1|0}while((Xb|0)!=(f|0))}while(0);Wb(ac);g=f;return g|0}if(!(Ub(a,18440)|0)){ac=f<<3;bc=Vb(ac)|0;_b=(f|0)>0;do if(_b){$b(bc|0,18448,f<<3|0)|0;Zb=0;do{Xb=bc+(Zb<<3)|0;h[Xb>>3]=+h[Xb>>3]*1.4142135623730951;Zb=Zb+1|0}while((Zb|0)!=(f|0));if(!_b)break;Zb=f+-1|0;Xb=0;do{h[b+(Xb<<3)>>3]=+h[bc+(Zb-Xb<<3)>>3];Xb=Xb+1|0}while((Xb|0)!=(f|0));Xb=Vb(ac)|0;Yb=0;do{l=+h[bc+(Zb-Yb<<3)>>3];h[Xb+(Yb<<3)>>3]=(Yb&1|0)==0?l:-l;Yb=Yb+1|0}while((Yb|0)!=(f|0));cc=0;do{h[c+(cc<<3)>>3]=+h[Xb+(Zb-cc<<3)>>3];cc=cc+1|0}while((cc|0)!=(f|0));Wb(Xb);$b(d|0,bc|0,f<<3|0)|0;Yb=0;do{l=+h[bc+(Zb-Yb<<3)>>3];h[e+(Yb<<3)>>3]=(Yb&1|0)==0?l:-l;Yb=Yb+1|0}while((Yb|0)!=(f|0))}while(0);Wb(bc);g=f;return g|0}if(!(Ub(a,19072)|0)){bc=f<<3;cc=Vb(bc)|0;ac=(f|0)>0;do if(ac){$b(cc|0,19080,f<<3|0)|0;_b=0;do{Yb=cc+(_b<<3)|0;h[Yb>>3]=+h[Yb>>3]*1.4142135623730951;_b=_b+1|0}while((_b|0)!=(f|0));if(!ac)break;_b=f+-1|0;Yb=0;do{h[b+(Yb<<3)>>3]=+h[cc+(_b-Yb<<3)>>3];Yb=Yb+1|0}while((Yb|0)!=(f|0));Yb=Vb(bc)|0;Zb=0;do{l=+h[cc+(_b-Zb<<3)>>3];h[Yb+(Zb<<3)>>3]=(Zb&1|0)==0?l:-l;Zb=Zb+1|0}while((Zb|0)!=(f|0));dc=0;do{h[c+(dc<<3)>>3]=+h[Yb+(_b-dc<<3)>>3];dc=dc+1|0}while((dc|0)!=(f|0));Wb(Yb);$b(d|0,cc|0,f<<3|0)|0;Zb=0;do{l=+h[cc+(_b-Zb<<3)>>3];h[e+(Zb<<3)>>3]=(Zb&1|0)==0?l:-l;Zb=Zb+1|0}while((Zb|0)!=(f|0))}while(0);Wb(cc);g=f;return g|0}if(!(Ub(a,19752)|0)){cc=f<<3;dc=Vb(cc)|0;bc=(f|0)>0;do if(bc){$b(dc|0,19760,f<<3|0)|0;ac=0;do{Zb=dc+(ac<<3)|0;h[Zb>>3]=+h[Zb>>3]*1.4142135623730951;ac=ac+1|0}while((ac|0)!=(f|0));if(!bc)break;ac=f+-1|0;Zb=0;do{h[b+(Zb<<3)>>3]=+h[dc+(ac-Zb<<3)>>3];Zb=Zb+1|0}while((Zb|0)!=(f|0));Zb=Vb(cc)|0;_b=0;do{l=+h[dc+(ac-_b<<3)>>3];h[Zb+(_b<<3)>>3]=(_b&1|0)==0?l:-l;_b=_b+1|0}while((_b|0)!=(f|0));ec=0;do{h[c+(ec<<3)>>3]=+h[Zb+(ac-ec<<3)>>3];ec=ec+1|0}while((ec|0)!=(f|0));Wb(Zb);$b(d|0,dc|0,f<<3|0)|0;_b=0;do{l=+h[dc+(ac-_b<<3)>>3];h[e+(_b<<3)>>3]=(_b&1|0)==0?l:-l;_b=_b+1|0}while((_b|0)!=(f|0))}while(0);Wb(dc);g=f;return g|0}if(!(Ub(a,20480)|0)){dc=f<<3;ec=Vb(dc)|0;cc=(f|0)>0;do if(cc){$b(ec|0,20488,f<<3|0)|0;bc=0;do{_b=ec+(bc<<3)|0;h[_b>>3]=+h[_b>>3]*1.4142135623730951;bc=bc+1|0}while((bc|0)!=(f|0));if(!cc)break;bc=f+-1|0;_b=0;do{h[b+(_b<<3)>>3]=+h[ec+(bc-_b<<3)>>3];_b=_b+1|0}while((_b|0)!=(f|0));_b=Vb(dc)|0;ac=0;do{l=+h[ec+(bc-ac<<3)>>3];h[_b+(ac<<3)>>3]=(ac&1|0)==0?l:-l;ac=ac+1|0}while((ac|0)!=(f|0));fc=0;do{h[c+(fc<<3)>>3]=+h[_b+(bc-fc<<3)>>3];fc=fc+1|0}while((fc|0)!=(f|0));Wb(_b);$b(d|0,ec|0,f<<3|0)|0;ac=0;do{l=+h[ec+(bc-ac<<3)>>3];h[e+(ac<<3)>>3]=(ac&1|0)==0?l:-l;ac=ac+1|0}while((ac|0)!=(f|0))}while(0);Wb(ec);g=f;return g|0}if(!(Ub(a,21256)|0)){ec=f<<3;fc=Vb(ec)|0;dc=(f|0)>0;do if(dc){$b(fc|0,21264,f<<3|0)|0;cc=0;do{ac=fc+(cc<<3)|0;h[ac>>3]=+h[ac>>3]*1.4142135623730951;cc=cc+1|0}while((cc|0)!=(f|0));if(!dc)break;cc=f+-1|0;ac=0;do{h[b+(ac<<3)>>3]=+h[fc+(cc-ac<<3)>>3];ac=ac+1|0}while((ac|0)!=(f|0));ac=Vb(ec)|0;bc=0;do{l=+h[fc+(cc-bc<<3)>>3];h[ac+(bc<<3)>>3]=(bc&1|0)==0?l:-l;bc=bc+1|0}while((bc|0)!=(f|0));gc=0;do{h[c+(gc<<3)>>3]=+h[ac+(cc-gc<<3)>>3];gc=gc+1|0}while((gc|0)!=(f|0));Wb(ac);$b(d|0,fc|0,f<<3|0)|0;bc=0;do{l=+h[fc+(cc-bc<<3)>>3];h[e+(bc<<3)>>3]=(bc&1|0)==0?l:-l;bc=bc+1|0}while((bc|0)!=(f|0))}while(0);Wb(fc);g=f;return g|0}if(!(Ub(a,22080)|0)){if((f|0)<=0){g=f;return g|0}fc=f+-1|0;gc=0;do{h[b+(gc<<3)>>3]=+h[22088+(fc-gc<<3)>>3];gc=gc+1|0}while((gc|0)!=(f|0));gc=Vb(f<<3)|0;ec=0;do{l=+h[22088+(fc-ec<<3)>>3];h[gc+(ec<<3)>>3]=(ec&1|0)==0?l:-l;ec=ec+1|0}while((ec|0)!=(f|0));hc=0;do{h[c+(hc<<3)>>3]=+h[gc+(fc-hc<<3)>>3];hc=hc+1|0}while((hc|0)!=(f|0));Wb(gc);gc=0;do{h[d+(gc<<3)>>3]=+h[22088+(gc<<3)>>3];gc=gc+1|0}while((gc|0)!=(f|0));ic=0;do{l=+h[22088+(fc-ic<<3)>>3];h[e+(ic<<3)>>3]=(ic&1|0)==0?l:-l;ic=ic+1|0}while((ic|0)!=(f|0));g=f;return g|0}if(!(Ub(a,22120)|0)){if((f|0)<=0){g=f;return g|0}ic=f+-1|0;fc=0;do{h[b+(fc<<3)>>3]=+h[22128+(ic-fc<<3)>>3];fc=fc+1|0}while((fc|0)!=(f|0));fc=Vb(f<<3)|0;gc=0;do{l=+h[22128+(ic-gc<<3)>>3];h[fc+(gc<<3)>>3]=(gc&1|0)==0?l:-l;gc=gc+1|0}while((gc|0)!=(f|0));jc=0;do{h[c+(jc<<3)>>3]=+h[fc+(ic-jc<<3)>>3];jc=jc+1|0}while((jc|0)!=(f|0));Wb(fc);fc=0;do{h[d+(fc<<3)>>3]=+h[22128+(fc<<3)>>3];fc=fc+1|0}while((fc|0)!=(f|0));kc=0;do{l=+h[22128+(ic-kc<<3)>>3];h[e+(kc<<3)>>3]=(kc&1|0)==0?l:-l;kc=kc+1|0}while((kc|0)!=(f|0));g=f;return g|0}if(!(Ub(a,22176)|0)){if((f|0)<=0){g=f;return g|0}kc=f+-1|0;ic=0;do{h[b+(ic<<3)>>3]=+h[22184+(kc-ic<<3)>>3];ic=ic+1|0}while((ic|0)!=(f|0));ic=Vb(f<<3)|0;fc=0;do{l=+h[22184+(kc-fc<<3)>>3];h[ic+(fc<<3)>>3]=(fc&1|0)==0?l:-l;fc=fc+1|0}while((fc|0)!=(f|0));lc=0;do{h[c+(lc<<3)>>3]=+h[ic+(kc-lc<<3)>>3];lc=lc+1|0}while((lc|0)!=(f|0));Wb(ic);ic=0;do{h[d+(ic<<3)>>3]=+h[22184+(ic<<3)>>3];ic=ic+1|0}while((ic|0)!=(f|0));mc=0;do{l=+h[22184+(kc-mc<<3)>>3];h[e+(mc<<3)>>3]=(mc&1|0)==0?l:-l;mc=mc+1|0}while((mc|0)!=(f|0));g=f;return g|0}if(!(Ub(a,22248)|0)){if((f|0)<=0){g=f;return g|0}mc=f+-1|0;kc=0;do{h[b+(kc<<3)>>3]=+h[22256+(mc-kc<<3)>>3];kc=kc+1|0}while((kc|0)!=(f|0));kc=Vb(f<<3)|0;ic=0;do{l=+h[22256+(mc-ic<<3)>>3];h[kc+(ic<<3)>>3]=(ic&1|0)==0?l:-l;ic=ic+1|0}while((ic|0)!=(f|0));nc=0;do{h[c+(nc<<3)>>3]=+h[kc+(mc-nc<<3)>>3];nc=nc+1|0}while((nc|0)!=(f|0));Wb(kc);kc=0;do{h[d+(kc<<3)>>3]=+h[22256+(kc<<3)>>3];kc=kc+1|0}while((kc|0)!=(f|0));oc=0;do{l=+h[22256+(mc-oc<<3)>>3];h[e+(oc<<3)>>3]=(oc&1|0)==0?l:-l;oc=oc+1|0}while((oc|0)!=(f|0));g=f;return g|0}if(!(Ub(a,22336)|0)){if((f|0)<=0){g=f;return g|0}oc=f+-1|0;mc=0;do{h[b+(mc<<3)>>3]=+h[22344+(oc-mc<<3)>>3];mc=mc+1|0}while((mc|0)!=(f|0));mc=Vb(f<<3)|0;kc=0;do{l=+h[22344+(oc-kc<<3)>>3];h[mc+(kc<<3)>>3]=(kc&1|0)==0?l:-l;kc=kc+1|0}while((kc|0)!=(f|0));pc=0;do{h[c+(pc<<3)>>3]=+h[mc+(oc-pc<<3)>>3];pc=pc+1|0}while((pc|0)!=(f|0));Wb(mc);mc=0;do{h[d+(mc<<3)>>3]=+h[22344+(mc<<3)>>3];mc=mc+1|0}while((mc|0)!=(f|0));qc=0;do{l=+h[22344+(oc-qc<<3)>>3];h[e+(qc<<3)>>3]=(qc&1|0)==0?l:-l;qc=qc+1|0}while((qc|0)!=(f|0));g=f;return g|0}if(!(Ub(a,22440)|0)){if((f|0)<=0){g=f;return g|0}qc=f+-1|0;oc=0;do{h[b+(oc<<3)>>3]=+h[22448+(qc-oc<<3)>>3];oc=oc+1|0}while((oc|0)!=(f|0));oc=Vb(f<<3)|0;mc=0;do{l=+h[22448+(qc-mc<<3)>>3];h[oc+(mc<<3)>>3]=(mc&1|0)==0?l:-l;mc=mc+1|0}while((mc|0)!=(f|0));rc=0;do{h[c+(rc<<3)>>3]=+h[oc+(qc-rc<<3)>>3];rc=rc+1|0}while((rc|0)!=(f|0));Wb(oc);oc=0;do{h[d+(oc<<3)>>3]=+h[22448+(oc<<3)>>3];oc=oc+1|0}while((oc|0)!=(f|0));sc=0;do{l=+h[22448+(qc-sc<<3)>>3];h[e+(sc<<3)>>3]=(sc&1|0)==0?l:-l;sc=sc+1|0}while((sc|0)!=(f|0));g=f;return g|0}if(!(Ub(a,22560)|0)){if((f|0)<=0){g=f;return g|0}sc=f+-1|0;qc=0;do{h[b+(qc<<3)>>3]=+h[22568+(sc-qc<<3)>>3];qc=qc+1|0}while((qc|0)!=(f|0));qc=Vb(f<<3)|0;oc=0;do{l=+h[22568+(sc-oc<<3)>>3];h[qc+(oc<<3)>>3]=(oc&1|0)==0?l:-l;oc=oc+1|0}while((oc|0)!=(f|0));tc=0;do{h[c+(tc<<3)>>3]=+h[qc+(sc-tc<<3)>>3];tc=tc+1|0}while((tc|0)!=(f|0));Wb(qc);qc=0;do{h[d+(qc<<3)>>3]=+h[22568+(qc<<3)>>3];qc=qc+1|0}while((qc|0)!=(f|0));uc=0;do{l=+h[22568+(sc-uc<<3)>>3];h[e+(uc<<3)>>3]=(uc&1|0)==0?l:-l;uc=uc+1|0}while((uc|0)!=(f|0));g=f;return g|0}if(!(Ub(a,22696)|0)){if((f|0)<=0){g=f;return g|0}uc=f+-1|0;sc=0;do{h[b+(sc<<3)>>3]=+h[22704+(uc-sc<<3)>>3];sc=sc+1|0}while((sc|0)!=(f|0));sc=Vb(f<<3)|0;qc=0;do{l=+h[22704+(uc-qc<<3)>>3];h[sc+(qc<<3)>>3]=(qc&1|0)==0?l:-l;qc=qc+1|0}while((qc|0)!=(f|0));vc=0;do{h[c+(vc<<3)>>3]=+h[sc+(uc-vc<<3)>>3];vc=vc+1|0}while((vc|0)!=(f|0));Wb(sc);sc=0;do{h[d+(sc<<3)>>3]=+h[22704+(sc<<3)>>3];sc=sc+1|0}while((sc|0)!=(f|0));wc=0;do{l=+h[22704+(uc-wc<<3)>>3];h[e+(wc<<3)>>3]=(wc&1|0)==0?l:-l;wc=wc+1|0}while((wc|0)!=(f|0));g=f;return g|0}if(!(Ub(a,22848)|0)){if((f|0)<=0){g=f;return g|0}wc=f+-1|0;uc=0;do{h[b+(uc<<3)>>3]=+h[22856+(wc-uc<<3)>>3];uc=uc+1|0}while((uc|0)!=(f|0));uc=Vb(f<<3)|0;sc=0;do{l=+h[22856+(wc-sc<<3)>>3];h[uc+(sc<<3)>>3]=(sc&1|0)==0?l:-l;sc=sc+1|0}while((sc|0)!=(f|0));xc=0;do{h[c+(xc<<3)>>3]=+h[uc+(wc-xc<<3)>>3];xc=xc+1|0}while((xc|0)!=(f|0));Wb(uc);uc=0;do{h[d+(uc<<3)>>3]=+h[22856+(uc<<3)>>3];uc=uc+1|0}while((uc|0)!=(f|0));yc=0;do{l=+h[22856+(wc-yc<<3)>>3];h[e+(yc<<3)>>3]=(yc&1|0)==0?l:-l;yc=yc+1|0}while((yc|0)!=(f|0));g=f;return g|0}if(!(Ub(a,23016)|0)){if((f|0)<=0){g=f;return g|0}yc=f+-1|0;wc=0;do{h[b+(wc<<3)>>3]=+h[23024+(yc-wc<<3)>>3];wc=wc+1|0}while((wc|0)!=(f|0));wc=Vb(f<<3)|0;uc=0;do{l=+h[23024+(yc-uc<<3)>>3];h[wc+(uc<<3)>>3]=(uc&1|0)==0?l:-l;uc=uc+1|0}while((uc|0)!=(f|0));zc=0;do{h[c+(zc<<3)>>3]=+h[wc+(yc-zc<<3)>>3];zc=zc+1|0}while((zc|0)!=(f|0));Wb(wc);wc=0;do{h[d+(wc<<3)>>3]=+h[23024+(wc<<3)>>3];wc=wc+1|0}while((wc|0)!=(f|0));Ac=0;do{l=+h[23024+(yc-Ac<<3)>>3];h[e+(Ac<<3)>>3]=(Ac&1|0)==0?l:-l;Ac=Ac+1|0}while((Ac|0)!=(f|0));g=f;return g|0}if(!(Ub(a,23200)|0)){if((f|0)<=0){g=f;return g|0}Ac=f+-1|0;yc=0;do{h[b+(yc<<3)>>3]=+h[23208+(Ac-yc<<3)>>3];yc=yc+1|0}while((yc|0)!=(f|0));yc=Vb(f<<3)|0;wc=0;do{l=+h[23208+(Ac-wc<<3)>>3];h[yc+(wc<<3)>>3]=(wc&1|0)==0?l:-l;wc=wc+1|0}while((wc|0)!=(f|0));Bc=0;do{h[c+(Bc<<3)>>3]=+h[yc+(Ac-Bc<<3)>>3];Bc=Bc+1|0}while((Bc|0)!=(f|0));Wb(yc);yc=0;do{h[d+(yc<<3)>>3]=+h[23208+(yc<<3)>>3];yc=yc+1|0}while((yc|0)!=(f|0));Cc=0;do{l=+h[23208+(Ac-Cc<<3)>>3];h[e+(Cc<<3)>>3]=(Cc&1|0)==0?l:-l;Cc=Cc+1|0}while((Cc|0)!=(f|0));g=f;return g|0}if(!(Ub(a,23400)|0)){if((f|0)<=0){g=f;return g|0}Cc=f+-1|0;Ac=0;do{h[b+(Ac<<3)>>3]=+h[23408+(Cc-Ac<<3)>>3];Ac=Ac+1|0}while((Ac|0)!=(f|0));Ac=Vb(f<<3)|0;yc=0;do{l=+h[23408+(Cc-yc<<3)>>3];h[Ac+(yc<<3)>>3]=(yc&1|0)==0?l:-l;yc=yc+1|0}while((yc|0)!=(f|0));Dc=0;do{h[c+(Dc<<3)>>3]=+h[Ac+(Cc-Dc<<3)>>3];Dc=Dc+1|0}while((Dc|0)!=(f|0));Wb(Ac);Ac=0;do{h[d+(Ac<<3)>>3]=+h[23408+(Ac<<3)>>3];Ac=Ac+1|0}while((Ac|0)!=(f|0));Ec=0;do{l=+h[23408+(Cc-Ec<<3)>>3];h[e+(Ec<<3)>>3]=(Ec&1|0)==0?l:-l;Ec=Ec+1|0}while((Ec|0)!=(f|0));g=f;return g|0}if(!(Ub(a,23616)|0)){if((f|0)<=0){g=f;return g|0}Ec=f+-1|0;Cc=0;do{h[b+(Cc<<3)>>3]=+h[23624+(Ec-Cc<<3)>>3];Cc=Cc+1|0}while((Cc|0)!=(f|0));Cc=Vb(f<<3)|0;Ac=0;do{l=+h[23624+(Ec-Ac<<3)>>3];h[Cc+(Ac<<3)>>3]=(Ac&1|0)==0?l:-l;Ac=Ac+1|0}while((Ac|0)!=(f|0));Fc=0;do{h[c+(Fc<<3)>>3]=+h[Cc+(Ec-Fc<<3)>>3];Fc=Fc+1|0}while((Fc|0)!=(f|0));Wb(Cc);Cc=0;do{h[d+(Cc<<3)>>3]=+h[23624+(Cc<<3)>>3];Cc=Cc+1|0}while((Cc|0)!=(f|0));Gc=0;do{l=+h[23624+(Ec-Gc<<3)>>3];h[e+(Gc<<3)>>3]=(Gc&1|0)==0?l:-l;Gc=Gc+1|0}while((Gc|0)!=(f|0));g=f;return g|0}if(!(Ub(a,23848)|0)){if((f|0)<=0){g=f;return g|0}Gc=f+-1|0;Ec=0;do{h[b+(Ec<<3)>>3]=+h[23856+(Gc-Ec<<3)>>3];Ec=Ec+1|0}while((Ec|0)!=(f|0));Ec=Vb(f<<3)|0;Cc=0;do{l=+h[23856+(Gc-Cc<<3)>>3];h[Ec+(Cc<<3)>>3]=(Cc&1|0)==0?l:-l;Cc=Cc+1|0}while((Cc|0)!=(f|0));Hc=0;do{h[c+(Hc<<3)>>3]=+h[Ec+(Gc-Hc<<3)>>3];Hc=Hc+1|0}while((Hc|0)!=(f|0));Wb(Ec);Ec=0;do{h[d+(Ec<<3)>>3]=+h[23856+(Ec<<3)>>3];Ec=Ec+1|0}while((Ec|0)!=(f|0));Ic=0;do{l=+h[23856+(Gc-Ic<<3)>>3];h[e+(Ic<<3)>>3]=(Ic&1|0)==0?l:-l;Ic=Ic+1|0}while((Ic|0)!=(f|0));g=f;return g|0}if(!(Ub(a,24096)|0)){if((f|0)<=0){g=f;return g|0}Ic=f+-1|0;Gc=0;do{h[b+(Gc<<3)>>3]=+h[24104+(Ic-Gc<<3)>>3];Gc=Gc+1|0}while((Gc|0)!=(f|0));Gc=Vb(f<<3)|0;Ec=0;do{l=+h[24104+(Ic-Ec<<3)>>3];h[Gc+(Ec<<3)>>3]=(Ec&1|0)==0?l:-l;Ec=Ec+1|0}while((Ec|0)!=(f|0));Jc=0;do{h[c+(Jc<<3)>>3]=+h[Gc+(Ic-Jc<<3)>>3];Jc=Jc+1|0}while((Jc|0)!=(f|0));Wb(Gc);Gc=0;do{h[d+(Gc<<3)>>3]=+h[24104+(Gc<<3)>>3];Gc=Gc+1|0}while((Gc|0)!=(f|0));Kc=0;do{l=+h[24104+(Ic-Kc<<3)>>3];h[e+(Kc<<3)>>3]=(Kc&1|0)==0?l:-l;Kc=Kc+1|0}while((Kc|0)!=(f|0));g=f;return g|0}if(!(Ub(a,24360)|0)){if((f|0)<=0){g=f;return g|0}Kc=f+-1|0;Ic=0;do{h[b+(Ic<<3)>>3]=+h[24368+(Kc-Ic<<3)>>3];Ic=Ic+1|0}while((Ic|0)!=(f|0));Ic=Vb(f<<3)|0;Gc=0;do{l=+h[24368+(Kc-Gc<<3)>>3];h[Ic+(Gc<<3)>>3]=(Gc&1|0)==0?l:-l;Gc=Gc+1|0}while((Gc|0)!=(f|0));Lc=0;do{h[c+(Lc<<3)>>3]=+h[Ic+(Kc-Lc<<3)>>3];Lc=Lc+1|0}while((Lc|0)!=(f|0));Wb(Ic);Ic=0;do{h[d+(Ic<<3)>>3]=+h[24368+(Ic<<3)>>3];Ic=Ic+1|0}while((Ic|0)!=(f|0));Mc=0;do{l=+h[24368+(Kc-Mc<<3)>>3];h[e+(Mc<<3)>>3]=(Mc&1|0)==0?l:-l;Mc=Mc+1|0}while((Mc|0)!=(f|0));g=f;return g|0}if(!(Ub(a,24640)|0)){if((f|0)<=0){g=f;return g|0}Mc=f+-1|0;Kc=0;do{h[b+(Kc<<3)>>3]=+h[24648+(Mc-Kc<<3)>>3];Kc=Kc+1|0}while((Kc|0)!=(f|0));Kc=Vb(f<<3)|0;Ic=0;do{l=+h[24648+(Mc-Ic<<3)>>3];h[Kc+(Ic<<3)>>3]=(Ic&1|0)==0?l:-l;Ic=Ic+1|0}while((Ic|0)!=(f|0));Nc=0;do{h[c+(Nc<<3)>>3]=+h[Kc+(Mc-Nc<<3)>>3];Nc=Nc+1|0}while((Nc|0)!=(f|0));Wb(Kc);Kc=0;do{h[d+(Kc<<3)>>3]=+h[24648+(Kc<<3)>>3];Kc=Kc+1|0}while((Kc|0)!=(f|0));Oc=0;do{l=+h[24648+(Mc-Oc<<3)>>3];h[e+(Oc<<3)>>3]=(Oc&1|0)==0?l:-l;Oc=Oc+1|0}while((Oc|0)!=(f|0));g=f;return g|0}if(!(Ub(a,24936)|0)){if((f|0)<=0){g=f;return g|0}Oc=f+-1|0;Mc=0;do{h[b+(Mc<<3)>>3]=+h[24944+(Oc-Mc<<3)>>3];Mc=Mc+1|0}while((Mc|0)!=(f|0));Mc=Vb(f<<3)|0;Kc=0;do{l=+h[24944+(Oc-Kc<<3)>>3];h[Mc+(Kc<<3)>>3]=(Kc&1|0)==0?l:-l;Kc=Kc+1|0}while((Kc|0)!=(f|0));Pc=0;do{h[c+(Pc<<3)>>3]=+h[Mc+(Oc-Pc<<3)>>3];Pc=Pc+1|0}while((Pc|0)!=(f|0));Wb(Mc);Mc=0;do{h[d+(Mc<<3)>>3]=+h[24944+(Mc<<3)>>3];Mc=Mc+1|0}while((Mc|0)!=(f|0));Qc=0;do{l=+h[24944+(Oc-Qc<<3)>>3];h[e+(Qc<<3)>>3]=(Qc&1|0)==0?l:-l;Qc=Qc+1|0}while((Qc|0)!=(f|0));g=f;return g|0}if(Ub(a,25248)|0){ra(8520)|0;g=-1;return g|0}if((f|0)<=0){g=f;return g|0}a=f+-1|0;Qc=0;do{h[b+(Qc<<3)>>3]=+h[25256+(a-Qc<<3)>>3];Qc=Qc+1|0}while((Qc|0)!=(f|0));Qc=Vb(f<<3)|0;Oc=0;do{l=+h[25256+(a-Oc<<3)>>3];h[Qc+(Oc<<3)>>3]=(Oc&1|0)==0?l:-l;Oc=Oc+1|0}while((Oc|0)!=(f|0));Rc=0;do{h[c+(Rc<<3)>>3]=+h[Qc+(a-Rc<<3)>>3];Rc=Rc+1|0}while((Rc|0)!=(f|0));Wb(Qc);Qc=0;do{h[d+(Qc<<3)>>3]=+h[25256+(Qc<<3)>>3];Qc=Qc+1|0}while((Qc|0)!=(f|0));Sc=0;do{l=+h[25256+(a-Sc<<3)>>3];h[e+(Sc<<3)>>3]=(Sc&1|0)==0?l:-l;Sc=Sc+1|0}while((Sc|0)!=(f|0));g=f;return g|0}if((f|0)<=0){g=f;return g|0}Sc=f+-1|0;a=0;do{h[b+(a<<3)>>3]=+h[8912+(Sc-a<<3)>>3];a=a+1|0}while((a|0)!=(f|0));a=Vb(f<<3)|0;b=0;do{l=+h[8912+(Sc-b<<3)>>3];h[a+(b<<3)>>3]=(b&1|0)==0?l:-l;b=b+1|0}while((b|0)!=(f|0));Tc=0;do{h[c+(Tc<<3)>>3]=+h[a+(Sc-Tc<<3)>>3];Tc=Tc+1|0}while((Tc|0)!=(f|0));Wb(a);a=0;do{h[d+(a<<3)>>3]=+h[8912+(a<<3)>>3];a=a+1|0}while((a|0)!=(f|0));Uc=0;do{l=+h[8912+(Sc-Uc<<3)>>3];h[e+(Uc<<3)>>3]=(Uc&1|0)==0?l:-l;Uc=Uc+1|0}while((Uc|0)!=(f|0));g=f;return g|0}function ib(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{h[d+(f<<3)>>3]=+h[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}f=Z(b+-1|0,c)|0;b=f+1|0;if((f|0)>-1){g=0;i=1;j=0}else{e=b;return e|0}while(1){f=i+-1|0;k=d+(g<<3)|0;h[k>>3]=0.0;if(!f){h[k>>3]=+h[a+(j<<3)>>3];l=c;m=j+1|0}else{l=f;m=j}g=g+1|0;if((g|0)>=(b|0)){e=b;break}else{i=l;j=m}}return e|0}function jb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{h[d+(f<<3)>>3]=+h[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}f=Z(c,b)|0;if((f|0)>0){g=0;i=1;j=0}else{e=f;return e|0}while(1){b=i+-1|0;k=d+(g<<3)|0;h[k>>3]=0.0;if(!b){h[k>>3]=+h[a+(j<<3)>>3];l=c;m=j+1|0}else{l=b;m=j}g=g+1|0;if((g|0)==(f|0)){e=f;break}else{i=l;j=m}}return e|0}function kb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{h[d+(f<<3)>>3]=+h[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}else{f=(b+-1|0)/(c|0)|0;b=f+1|0;if((f|0)>-1)g=0;else{e=b;return e|0}do{h[d+(g<<3)>>3]=+h[a+((Z(g,c)|0)<<3)>>3];g=g+1|0}while((g|0)<(b|0));e=b;return e|0}return 0}function lb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0;if((b|0)>0){e=0;do{h[d+(e+c<<3)>>3]=+h[a+(e<<3)>>3];e=e+1|0}while((e|0)!=(b|0))}if(!(b&1))f=b;else{h[d+(c+b<<3)>>3]=+h[a+(b+-1<<3)>>3];f=b+1|0}if((c|0)<=0)return f|0;b=f+c|0;a=b+-1|0;e=c+-1|0;g=0;i=0;while(1){j=+h[d+(i+c<<3)>>3];h[d+(e+g<<3)>>3]=+h[d+(a+g<<3)>>3];h[d+(i+b<<3)>>3]=j;k=i+1|0;if((k|0)==(c|0))break;else{g=~i;i=k}}return f|0}function mb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0,k=0;if((b|0)>0){e=0;do{h[d+(e+c<<3)>>3]=+h[a+(e<<3)>>3];e=e+1|0}while((e|0)!=(b|0))}if((c|0)<=0)return b|0;e=c+b|0;a=e+-1|0;f=c+-1|0;g=0;i=0;while(1){j=+h[d+(a+g<<3)>>3];h[d+(f+g<<3)>>3]=+h[d+(i+c<<3)>>3];h[d+(i+e<<3)>>3]=j;k=i+1|0;if((k|0)==(c|0))break;else{g=~i;i=k}}return b|0}function nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=(c|0)>-1?c:0-c|0;if((d|0)>(b|0))e=Z((d|0)%(b|0)|0,c>>31|1)|0;else e=c;if((e|0)<0)f=(e+b|0)%(b|0)|0;else f=e;e=f<<3;c=Vb(e)|0;d=(f|0)>0;if(d)$b(c|0,a|0,e|0)|0;e=b-f|0;if((e|0)>0){b=0;do{h[a+(b<<3)>>3]=+h[a+(b+f<<3)>>3];b=b+1|0}while((b|0)!=(e|0))}if(!d){Wb(c);return}$b(a+(e<<3)|0,c|0,f<<3|0)|0;Wb(c);return}function ob(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;if((b|0)>0){c=1;d=0;while(1){e=c<<1;d=d+1|0;if((d|0)==(b|0)){f=e;break}else c=e}}else f=1;return ((a|0)%(f|0)|0|0)==0|0}function pb(a,b){a=a|0;b=b|0;return ~~(+X(+(+(a|0)/(+(b|0)+-1.0)))/.6931471805599453)|0}function qb(a){a=+a;var b=0.0,c=0.0,d=0.0,e=0.0,f=0.0,g=0.0,h=0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0;if(a<0.0){b=-a;if(!(a<=-0.0))c=+Y(+b);else c=+L(+b);d=b-c;if(!(d!=0.0)){e=179.0e306;return +e}b=c*.5;if(!(b>=0.0))f=+Y(+b);else f=+L(+b);g=-3.141592653589793/+Q(+(d*3.141592653589793));h=c!=f*2.0&1;i=1.0-a}else{g=1.0;h=0;i=a}do if(i<2.22e-016)if(!(i>=1.79e-308)){e=179.0e306;return +e}else{j=1.0/i;break}else{if(!(i<12.0))if(!(i<=171.624)){e=179.0e306;return +e}else{a=i*i;j=+W(+(((((((.0057083835261/a+-.001910444077728)/a+.00084171387781295)/a+-5.952379913043012e-004)/a+7.936507935003503e-004)/a+-2.7777777777776816e-003)/a+.08333333333333333)/i-i+.9189385332046728+(i+-.5)*+X(+i)));break}if(i<1.0){k=0;l=i+1.0;m=i}else{n=~~i+-1|0;a=i-+(n|0);k=n;l=a;m=a+-1.0}a=m*(m*(m*(m*(m*(m*(m*(m*-1.716185138865495+24.76565080557592)+-379.80425647094563)+629.3311553128184)+866.9662027904133)+-31451.272968848367)+-36144.413418691176)+66456.14382024054)/(m*(m*(m*(m*(m*(m*(m*(m+-30.840230011973897)+315.35062697960416)+-1015.1563674902192)+-3107.771671572311)+22538.11842098015)+4755.846277527881)+-134659.9598649693)+-115132.25967555349)+1.0;if(il&(k|0)>0){n=0;f=a;c=l;while(1){d=f*c;n=n+1|0;if((n|0)==(k|0)){j=d;break}else{f=d;c=c+1.0}}}else j=a}while(0);l=(h|0)==0?j:-j;e=g!=1.0?g/l:l;return +e} function rb(a,b,d,e,f,g,i,j,k,l,m,n,o){a=a|0;b=b|0;d=+d;e=e|0;f=+f;g=+g;i=+i;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0,C=0.0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0,K=0.0,L=0.0,M=0.0,P=0.0,Q=0.0,R=0.0,S=0,T=0.0,U=0.0,V=0.0,X=0.0,Y=0.0,_=0,$=0,aa=0.0,ba=0.0,ca=0,da=0.0;if((k|0)<(b|0)){ra(25944)|0;Ia(-1)}p=Ta(k,1)|0;q=Ta(k,-1)|0;r=k<<4;s=Vb(r)|0;t=Vb(r)|0;u=Vb(r)|0;r=Vb(k<<3)|0;v=(b|0)>0;if(v){w=0;i=0.0;while(1){g=i+ +h[a+(w<<3)>>3];w=w+1|0;if((w|0)==(b|0)){x=g;break}else i=g}i=x/+(b|0);if(v){w=0;do{h[s+(w<<4)>>3]=+h[a+(w<<3)>>3]-i;h[s+(w<<4)+8>>3]=0.0;w=w+1|0}while((w|0)!=(b|0))}}if((b|0)<(k|0)){w=b;do{a=s+(w<<4)|0;w=w+1|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0}while((w|0)!=(k|0))}Wa(p,s,t);w=(k|0)>0;i=+(k|0);if(w){a=0;do{y=t+(a<<4)|0;h[y>>3]=+h[y>>3]/i;y=t+(a<<4)+8|0;h[y>>3]=+h[y>>3]/i;a=a+1|0}while((a|0)!=(k|0));x=6.283185307179586/(i*d);h[r>>3]=0.0;a=(k|0)/2|0;y=a+1|0;if((k|0)>1){z=1;do{h[r+(z<<3)>>3]=x*+(z|0);z=z+1|0}while((z|0)<(y|0));A=y;B=a}else{A=y;B=a}}else{h[r>>3]=0.0;a=(k|0)/2|0;A=a+1|0;B=a}if((A|0)<(k|0)){a=A;do{h[r+(a<<3)>>3]=-+h[r+(k-a<<3)>>3];a=a+1|0}while((a|0)!=(k|0))}if((j|0)<1)C=0.0;else{a=b<<1;y=f<0.0;x=y?6.0:f;z=(k|0)<-1;D=B+2|0;B=(D|0)>(k|0);i=x*x+2.0;E=~~f;F=y?4:E;f=+(F|0);G=(F<<1)+-1|0;H=(G|0)>40;g=12.566370614359172/(f*2.0+1.0);I=g*1.4142135623730951;J=25616+(G<<3)|0;G=y?2:E;E=(G&1|0)==0;K=((G|0)%4|0)>>>0<2?-1.0:1.0;L=+(G|0);M=L+.5;G=(k|0)<1;P=2.0/(L*2.0+1.0);Q=0.0;R=0.0;y=1;while(1){S=y+-1|0;T=+h[m+(S<<3)>>3];if((e|0)==1){U=+N(+(T*6.283185307179586/d));V=+Jb(1.0,F);if(H){ra(25576)|0;X=-1.0}else X=+h[J>>3];Y=U*(V/+N(+(f*X)));if(!z){_=1;while(1){$=_+-1|0;V=T*+h[r+($<<3)>>3];h[u+($<<4)>>3]=Y*+O(+V,+f)*+W(+-V);h[u+($<<4)+8>>3]=0.0;if((_|0)<(A|0))_=_+1|0;else break}}if(!B){_=D;while(1){$=u+(_+-1<<4)|0;c[$>>2]=0;c[$+4>>2]=0;c[$+8>>2]=0;c[$+12>>2]=0;if((_|0)<(k|0))_=_+1|0;else break}}aa=T*g;ba=I}else if(!e){Y=+N(+(T*6.283185307179586/d))*.7511255444649425;if(!z){_=1;while(1){$=_+-1|0;V=T*+h[r+($<<3)>>3]-x;h[u+($<<4)>>3]=Y*+W(+(V*(V*-.5)));h[u+($<<4)+8>>3]=0.0;if((_|0)<(A|0))_=_+1|0;else break}}if(!B){_=D;while(1){$=u+(_+-1<<4)|0;c[$>>2]=0;c[$+4>>2]=0;c[$+8>>2]=0;c[$+12>>2]=0;if((_|0)<(k|0))_=_+1|0;else break}}Y=12.566370614359172/(x+ +N(+i));aa=T*Y;ba=Y/1.4142135623730951}else if((e|0)==2){Y=+N(+(T*6.283185307179586/d));V=K*(Y*+N(+(1.0/+qb(M))));if(E){if(!G){_=1;while(1){$=_+-1|0;Y=T*+h[r+($<<3)>>3];h[u+($<<4)>>3]=V*+O(+Y,+L)*+W(+(Y*Y*-.5));h[u+($<<4)+8>>3]=0.0;if((_|0)==(k|0))break;else _=_+1|0}}}else if(!G){_=1;while(1){$=_+-1|0;Y=T*+h[r+($<<3)>>3];h[u+($<<4)>>3]=0.0;h[u+($<<4)+8>>3]=V*+O(+Y,+L)*+W(+(Y*Y*-.5));if((_|0)==(k|0))break;else _=_+1|0}}V=+N(+P)*6.283185307179586;aa=T*V;ba=V/1.4142135623730951}else{aa=R;ba=Q}h[n+(S<<3)>>3]=aa;if(w){_=0;do{$=u+(_<<4)|0;V=+h[$>>3];Y=+h[t+(_<<4)>>3];ca=u+(_<<4)+8|0;U=+h[ca>>3];da=+h[t+(_<<4)+8>>3];h[$>>3]=V*Y-U*da;h[ca>>3]=Y*U+V*da;_=_+1|0}while((_|0)!=(k|0))}Wa(q,u,s);_=Z(a,S)|0;if(v){ca=0;do{$=(ca<<1)+_|0;h[l+($<<3)>>3]=+h[s+(ca<<4)>>3];h[l+(($|1)<<3)>>3]=+h[s+(ca<<4)+8>>3];ca=ca+1|0}while((ca|0)!=(b|0))}if((y|0)==(j|0)){C=ba;break}else{Q=ba;R=aa;y=y+1|0}}}y=b+1|0;j=(y|0)/2|0;if((y|0)<2){Wb(r);Wb(s);Wb(t);Wb(u);Xa(p);Xa(q);return}aa=C*d;y=1;while(1){d=aa*(+(y|0)+-1.0);h[o+(y+-1<<3)>>3]=d;h[o+(b-y<<3)>>3]=d;if((y|0)<(j|0))y=y+1|0;else break}Wb(r);Wb(s);Wb(t);Wb(u);Xa(p);Xa(q);return}function sb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=(a|0)!=0;if(b)d=gb(a)|0;else d=0;e=Vb((d<<5)+88|0)|0;c[e+52>>2]=d;c[e+68>>2]=d;c[e+64>>2]=d;c[e+60>>2]=d;c[e+56>>2]=d;ac(e|0,a|0)|0;f=e+88|0;if(b){b=d<<1;g=d*3|0;hb(a,f,f+(d<<3)|0,f+(b<<3)|0,f+(g<<3)|0)|0;h=b;i=g}else{h=d<<1;i=d*3|0}c[e+72>>2]=f;c[e+76>>2]=f+(d<<3);c[e+80>>2]=f+(h<<3);c[e+84>>2]=f+(i<<3);return e|0}function tb(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;g=i;i=i+16|0;h=g;j=c[b+52>>2]|0;if((f|0)>100){ra(25968)|0;Ia(-1)}k=pb(e,j)|0;if((k|0)<(f|0)){c[h>>2]=k;sa(26032,h|0)|0;Ia(-1)}do if(!d){h=(Z(f<<1,j+1|0)|0)+e|0;l=Vb((h<<3)+488|0)|0;c[l+24>>2]=h;h=l+44|0;a[h>>0]=115;a[h+1>>0]=121;a[h+2>>0]=109;a[h+3>>0]=0;m=l}else{if((Ub(d,26496)|0)!=0?(Ub(d,26504)|0)!=0:0){if((Ub(d,26528)|0)!=0?(Ub(d,26536)|0)!=0:0){if((Ub(d,26544)|0)!=0?(Ub(d,26552)|0)!=0:0){m=0;break}if(((Mb(b,26168)|0)==0?(Mb(b,26520)|0)==0:0)?(Mb(b,26176)|0)==0:0){ra(26184)|0;Ia(-1)}l=Z(f+1|0,e)|0;h=Vb((l<<3)+488|0)|0;c[h+24>>2]=l;l=h+44|0;a[l>>0]=112;a[l+1>>0]=101;a[l+2>>0]=114;a[l+3>>0]=0;m=h;break}if(!(ob(e,f)|0)){ra(26112)|0;Ia(-1)}else{h=Z(f+1|0,e)|0;l=Vb((h<<3)+488|0)|0;c[l+24>>2]=h;h=l+44|0;a[h>>0]=112;a[h+1>>0]=101;a[h+2>>0]=114;a[h+3>>0]=0;m=l;break}}l=(Z(f<<1,j+1|0)|0)+e|0;h=Vb((l<<3)+488|0)|0;c[h+24>>2]=l;l=h+44|0;a[l>>0]=115;a[l+1>>0]=121;a[l+2>>0]=109;a[l+3>>0]=0;m=h}while(0);c[m>>2]=b;c[m+20>>2]=e;c[m+32>>2]=f;c[m+36>>2]=k;ac(m+8|0,d|0)|0;c[m+40>>2]=e&1^1;c[m+4>>2]=0;k=m+54|0;a[k>>0]=a[26264]|0;a[k+1>>0]=a[26265]|0;a[k+2>>0]=a[26266]|0;a[k+3>>0]=a[26267]|0;a[k+4>>0]=a[26268]|0;a[k+5>>0]=a[26269]|0;a[k+6>>0]=a[26270]|0;c[m+68>>2]=0;c[m+28>>2]=f+2;c[m+484>>2]=m+488;if((Ub(d,26496)|0)!=0?(Ub(d,26504)|0)!=0:0){if((((Ub(d,26528)|0)!=0?(Ub(d,26536)|0)!=0:0)?(Ub(d,26544)|0)!=0:0)?(Ub(d,26552)|0)!=0:0){i=g;return m|0}d=Z(f+1|0,e)|0;if((d|0)<=0){i=g;return m|0}Yb(m+488|0,0,d<<3|0)|0;i=g;return m|0}d=j+1|0;if(((Z(f<<1,d)|0)+e|0)<=0){i=g;return m|0}Yb(m+488|0,0,((Z(d,f)|0)<<4)+(e<<3)|0)|0;i=g;return m|0}function ub(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0,P=0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0.0,X=0.0;d=i;i=i+16|0;e=d;f=a+20|0;g=c[f>>2]|0;j=c[a+32>>2]|0;k=a+76|0;c[a+76+(j+1<<2)>>2]=g;l=a+24|0;c[l>>2]=0;c[a+72>>2]=0;m=g<<3;n=Vb(m)|0;o=Vb(m)|0;m=c[f>>2]|0;if((m|0)>0)$b(n|0,b|0,((m|0)>1?m<<3:8)|0)|0;m=c[(c[a>>2]|0)+56>>2]|0;b=a+44|0;if(Ub(b,26512)|0){if(Ub(b,26520)|0){sa(26288,e|0)|0;Ia(-1)}e=(j|0)>0;if(!e){b=c[a+80>>2]|0;c[k>>2]=b;c[l>>2]=b;Wb(n);Wb(o);i=d;return}b=m+-2|0;m=g;f=j;while(1){m=~~+Y(+(+(b+m|0)*.5));c[a+76+(f<<2)>>2]=m;p=(c[l>>2]|0)+m|0;c[l>>2]=p;if((f|0)<=1){q=p;break}else f=f+-1|0}f=c[a+80>>2]|0;c[k>>2]=f;m=q+f|0;c[l>>2]=m;if(!e){Wb(n);Wb(o);i=d;return}e=a+54|0;f=j+-1|0;q=a+488|0;b=m;m=0;p=g;do{r=a+76+(j-m<<2)|0;s=c[r>>2]|0;b=b-s|0;if((Ub(e,26272)|0)!=0?(Ub(e,26280)|0)!=0:0){t=c[a>>2]|0;u=c[t+56>>2]|0;if((s|0)>0){v=(u|0)>0;w=t+72|0;x=t+76|0;t=(p<<1)+-1|0;y=0;do{z=y<<1;A=z|1;B=o+(y<<3)|0;h[B>>3]=0.0;C=a+488+(y+b<<3)|0;h[C>>3]=0.0;if(v){D=z^-2;z=t-A|0;E=0.0;F=0.0;G=0;while(1){H=A-G|0;I=(H|0)<(p|0);do if(!((H|0)>-1&I)){if((H|0)<0){J=+h[n+(G+D<<3)>>3];K=E+ +h[(c[w>>2]|0)+(G<<3)>>3]*J;h[B>>3]=K;L=F+ +h[(c[x>>2]|0)+(G<<3)>>3]*J;h[C>>3]=L;M=L;N=K;break}if(I){M=F;N=E}else{K=+h[n+(z+G<<3)>>3];L=E+ +h[(c[w>>2]|0)+(G<<3)>>3]*K;h[B>>3]=L;J=F+ +h[(c[x>>2]|0)+(G<<3)>>3]*K;h[C>>3]=J;M=J;N=L}}else{L=+h[n+(H<<3)>>3];J=E+ +h[(c[w>>2]|0)+(G<<3)>>3]*L;h[B>>3]=J;K=F+ +h[(c[x>>2]|0)+(G<<3)>>3]*L;h[C>>3]=K;M=K;N=J}while(0);G=G+1|0;if((G|0)==(u|0))break;else{E=N;F=M}}}y=y+1|0}while((y|0)!=(s|0))}}else Db(a,n,p,o,a+488+(b<<3)|0);p=c[r>>2]|0;y=(s|0)>0;if((m|0)==(f|0)){if(y)$b(q|0,o|0,s<<3|0)|0}else if(y)$b(n|0,o|0,s<<3|0)|0;m=m+1|0}while((m|0)!=(j|0));Wb(n);Wb(o);i=d;return}m=(j|0)>0;if(m){O=g;P=j}else{q=c[a+80>>2]|0;c[k>>2]=q;c[l>>2]=q;Wb(n);Wb(o);i=d;return}while(1){O=~~+Y(+(+(O|0)*.5));c[a+76+(P<<2)>>2]=O;q=(c[l>>2]|0)+O|0;c[l>>2]=q;if((P|0)<=1){Q=q;break}else P=P+-1|0}P=c[a+80>>2]|0;c[k>>2]=P;k=Q+P|0;c[l>>2]=k;if(!m){Wb(n);Wb(o);i=d;return}m=a+54|0;l=j+-1|0;P=a+488|0;Q=k;k=0;O=g;do{g=a+76+(j-k<<2)|0;q=c[g>>2]|0;Q=Q-q|0;if((Ub(m,26272)|0)!=0?(Ub(m,26280)|0)!=0:0){f=c[a>>2]|0;p=c[f+56>>2]|0;b=(p|0)/2|0;e=(O|0)%2|0;if((q|0)>0){y=(p|0)>0;u=f+72|0;x=f+76|0;f=(e|0)==0;w=(e|0)==1;e=n+(O+-1<<3)|0;t=O+1|0;v=~O;G=0;do{C=(G<<1)+b|0;B=o+(G<<3)|0;h[B>>3]=0.0;z=a+488+(G+Q<<3)|0;h[z>>3]=0.0;a:do if(y){if(f){M=0.0;N=0.0;D=0;while(1){A=C-D|0;H=(A|0)<(O|0);do if(!((A|0)>=(b|0)&H)){if((A|0)<(b|0)&(A|0)>-1){F=+h[n+(A<<3)>>3];E=M+ +h[(c[u>>2]|0)+(D<<3)>>3]*F;h[B>>3]=E;J=N+ +h[(c[x>>2]|0)+(D<<3)>>3]*F;h[z>>3]=J;R=J;S=E;break}if((A|0)<0){E=+h[n+(A+O<<3)>>3];J=M+ +h[(c[u>>2]|0)+(D<<3)>>3]*E;h[B>>3]=J;F=N+ +h[(c[x>>2]|0)+(D<<3)>>3]*E;h[z>>3]=F;R=F;S=J;break}if(H){R=N;S=M}else{J=+h[n+(A-O<<3)>>3];F=M+ +h[(c[u>>2]|0)+(D<<3)>>3]*J;h[B>>3]=F;E=N+ +h[(c[x>>2]|0)+(D<<3)>>3]*J;h[z>>3]=E;R=E;S=F}}else{F=+h[n+(A<<3)>>3];E=M+ +h[(c[u>>2]|0)+(D<<3)>>3]*F;h[B>>3]=E;J=N+ +h[(c[x>>2]|0)+(D<<3)>>3]*F;h[z>>3]=J;R=J;S=E}while(0);D=D+1|0;if((D|0)==(p|0))break a;else{M=S;N=R}}}else{T=0.0;U=0.0;V=0}while(1){D=C-V|0;do if(!((D|0)>=(b|0)&(D|0)<(O|0))){if((D|0)<(b|0)&(D|0)>-1){N=+h[n+(D<<3)>>3];M=T+ +h[(c[u>>2]|0)+(V<<3)>>3]*N;h[B>>3]=M;E=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*N;h[z>>3]=E;W=E;X=M;break}if(w&(D|0)<0){M=+h[(c[u>>2]|0)+(V<<3)>>3];if((D|0)==-1){E=+h[e>>3];N=T+M*E;h[B>>3]=N;J=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*E;h[z>>3]=J;W=J;X=N;break}else{N=+h[n+(t+D<<3)>>3];J=T+M*N;h[B>>3]=J;M=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*N;h[z>>3]=M;W=M;X=J;break}}if(w&(D|0)>=(O|0)){J=+h[(c[u>>2]|0)+(V<<3)>>3];if((D|0)==(O|0)){M=+h[e>>3];N=T+J*M;h[B>>3]=N;E=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*M;h[z>>3]=E;W=E;X=N;break}else{N=+h[n+(D+v<<3)>>3];E=T+J*N;h[B>>3]=E;J=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*N;h[z>>3]=J;W=J;X=E;break}}else{W=U;X=T}}else{E=+h[n+(D<<3)>>3];J=T+ +h[(c[u>>2]|0)+(V<<3)>>3]*E;h[B>>3]=J;N=U+ +h[(c[x>>2]|0)+(V<<3)>>3]*E;h[z>>3]=N;W=N;X=J}while(0);V=V+1|0;if((V|0)==(p|0))break;else{T=X;U=W}}}while(0);G=G+1|0}while((G|0)!=(q|0))}}else Db(a,n,O,o,a+488+(Q<<3)|0);O=c[g>>2]|0;G=(q|0)>0;if((k|0)==(l|0)){if(G)$b(P|0,o|0,q<<3|0)|0}else if(G)$b(n|0,o|0,q<<3|0)|0;k=k+1|0}while((k|0)!=(j|0));Wb(n);Wb(o);i=d;return}function vb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,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.0,U=0,V=0.0,W=0,X=0;d=i;i=i+32|0;e=d+16|0;f=d;g=d+8|0;j=c[a+32>>2]|0;k=c[a+76>>2]|0;l=a+20|0;m=Vb((c[l>>2]<<3)+8|0)|0;n=a+44|0;do if(!(Ub(n,26512)|0)){o=a+54|0;if((Ub(o,26272)|0)!=0?(Ub(o,26280)|0)!=0:0){if(Ub(a+54|0,26264)|0){p=48;break}q=c[a+80>>2]|0;r=c[a>>2]|0;s=(c[r+68>>2]|0)+(c[r+64>>2]|0)|0;t=(s|0)/2|0;u=Vb((t+(c[a+76+(j<<2)>>2]|0)<<4)+-8|0)|0;if((k|0)>0){v=c[a+484>>2]|0;w=0;do{h[m+(w<<3)>>3]=+h[v+(w<<3)>>3];w=w+1|0}while((w|0)!=(k|0))}if((j|0)>0){w=c[a+484>>2]|0;v=(s|0)/4|0;x=(s|0)>3;y=r+80|0;z=r+84|0;A=0-v|0;B=u+((v<<3)+-8)|0;C=q;D=0;E=k;while(1){F=C+-1|0;G=v+F|0;if((G|0)>0){H=t+F|0;F=0;I=-2;J=-1;do{I=I+2|0;J=J+2|0;K=u+(I<<3)|0;h[K>>3]=0.0;L=u+(J<<3)|0;h[L>>3]=0.0;if(x){M=F+C|0;N=0;do{O=N<<1;P=F-N|0;Q=(P|0)<(C|0);do if(!((P|0)>-1&Q)){if((P|0)<(H|0)&(Q^1)){R=c[y>>2]|0;S=P-C|0;T=+h[m+(S<<3)>>3];U=c[z>>2]|0;V=+h[w+(S+E<<3)>>3];h[K>>3]=+h[K>>3]+(+h[R+(O<<3)>>3]*T+ +h[U+(O<<3)>>3]*V);S=O|1;h[L>>3]=+h[L>>3]+(+h[R+(S<<3)>>3]*T+ +h[U+(S<<3)>>3]*V);break}if((P|0)<0&(P|0)>(A|0)){S=c[y>>2]|0;U=M-N|0;V=+h[m+(U<<3)>>3];R=c[z>>2]|0;T=+h[w+(U+E<<3)>>3];h[K>>3]=+h[K>>3]+(+h[S+(O<<3)>>3]*V+ +h[R+(O<<3)>>3]*T);U=O|1;h[L>>3]=+h[L>>3]+(+h[S+(U<<3)>>3]*V+ +h[R+(U<<3)>>3]*T)}}else{U=c[y>>2]|0;T=+h[m+(P<<3)>>3];R=c[z>>2]|0;V=+h[w+(P+E<<3)>>3];h[K>>3]=+h[K>>3]+(+h[U+(O<<3)>>3]*T+ +h[R+(O<<3)>>3]*V);S=O|1;h[L>>3]=+h[L>>3]+(+h[U+(S<<3)>>3]*T+ +h[R+(S<<3)>>3]*V)}while(0);N=N+1|0}while((N|0)<(v|0))}F=F+1|0}while((F|0)!=(G|0))}if((v|0)<=((C<<1)+-1+v|0))$b(m|0,B|0,C<<4|0)|0;E=C+E|0;G=D+1|0;if((G|0)==(j|0))break;else{C=c[a+76+(D+2<<2)>>2]|0;D=G}}}Wb(u);break}D=c[a+80>>2]|0;C=c[a+76+(j<<2)>>2]|0;E=C<<1;B=c[a>>2]|0;v=((c[B+68>>2]|0)+(c[B+64>>2]|0)|0)/2|0;w=Vb(C<<4)|0;C=Vb(v+E<<3)|0;z=((v<<1)+E<<3)+-8|0;E=Vb(z)|0;v=Vb(z)|0;if((k|0)>0){z=c[a+484>>2]|0;y=0;do{h[m+(y<<3)>>3]=+h[z+(y<<3)>>3];y=y+1|0}while((y|0)!=(k|0))}a:do if((j|0)>0){y=a+484|0;z=a+4|0;u=a+68|0;A=B;x=D;t=0;q=k;while(1){r=(c[y>>2]|0)+(q<<3)|0;s=(c[A+68>>2]|0)+(c[A+64>>2]|0)|0;G=(s|0)/2|0;F=x<<1;jb(m,x,2,w)|0;H=(s|0)/4|0;lb(w,F,H,C)|0;s=G+F|0;J=c[a>>2]|0;if((c[J+64>>2]|0)!=(c[J+68>>2]|0))break;if((Ub(o,26272)|0)!=0?(Ub(o,26280)|0)!=0:0)W=J;else{c[z>>2]=cb(s,G)|0;c[u>>2]=1;W=c[a>>2]|0}Eb(a,C,s,c[W+80>>2]|0,G,E);jb(r,x,2,w)|0;lb(w,F,H,C)|0;Eb(a,C,s,c[(c[a>>2]|0)+84>>2]|0,G,v);if((G|0)<=(s+-1|0)){s=1-G|0;H=F+-1+G|0;F=G+-1|0;do{h[m+(s+F<<3)>>3]=+h[E+(F<<3)>>3]+ +h[v+(F<<3)>>3];F=F+1|0}while((F|0)!=(H|0))}H=c[a>>2]|0;do if((c[H+64>>2]|0)==(c[H+68>>2]|0)){if((Ub(o,26272)|0)!=0?(Ub(o,26280)|0)!=0:0)break;fb(c[z>>2]|0);c[u>>2]=0}while(0);H=t+1|0;if((H|0)>=(j|0))break a;F=x+q|0;A=c[a>>2]|0;x=c[a+76+(t+2<<2)>>2]|0;t=H;q=F}sa(26336,g|0)|0;Ia(-1)}while(0);Wb(w);Wb(E);Wb(v);Wb(C)}else p=48;while(0);do if((p|0)==48){if(Ub(n,26520)|0){sa(26288,e|0)|0;Ia(-1)}if(!(Ub(a+54|0,26264)|0)){g=c[a+80>>2]|0;W=c[a>>2]|0;o=W+64|0;D=W+68|0;B=((c[D>>2]|0)+(c[o>>2]|0)|0)/2|0;q=Vb((B+(c[a+76+(j<<2)>>2]|0)<<4)+-16|0)|0;if((k|0)>0){t=c[a+484>>2]|0;x=0;do{h[m+(x<<3)>>3]=+h[t+(x<<3)>>3];x=x+1|0}while((x|0)!=(k|0))}if((j|0)>0){x=c[a+484>>2]|0;t=W+80|0;C=W+84|0;v=B+-2|0;E=q+((B<<3)+-16)|0;w=2-B|0;A=g;u=0;z=k;while(1){if((A|0)>0){y=(c[o>>2]|0)+(c[D>>2]|0)|0;F=(y|0)/4|0;H=(y|0)>3;y=-2;s=-1;G=0;do{y=y+2|0;s=s+2|0;r=q+(y<<3)|0;h[r>>3]=0.0;J=q+(s<<3)|0;h[J>>3]=0.0;if(H){I=0;do{N=I<<1;L=G-I|0;if((L|0)>-1&(L|0)<(A|0)){K=c[t>>2]|0;V=+h[m+(L<<3)>>3];M=c[C>>2]|0;T=+h[x+(L+z<<3)>>3];h[r>>3]=+h[r>>3]+(+h[K+(N<<3)>>3]*V+ +h[M+(N<<3)>>3]*T);L=N|1;h[J>>3]=+h[J>>3]+(+h[K+(L<<3)>>3]*V+ +h[M+(L<<3)>>3]*T)}I=I+1|0}while((I|0)<(F|0))}G=G+1|0}while((G|0)!=(A|0))}if((v|0)<(A<<1|0))$b(m|0,E|0,w+(A<<1)<<3|0)|0;z=A+z|0;G=u+1|0;if((G|0)==(j|0))break;else{A=c[a+76+(u+2<<2)>>2]|0;u=G}}}Wb(q);break}u=a+54|0;if((Ub(u,26272)|0)!=0?(Ub(u,26280)|0)!=0:0){sa(26288,e|0)|0;Ia(-1)}A=c[(c[a>>2]|0)+56>>2]|0;z=(c[a+76+(j<<2)>>2]<<1)+-1|0;w=Vb(z<<3)|0;E=(z+A<<3)+-8|0;z=Vb(E)|0;v=Vb(E)|0;if((k|0)>0){E=c[a+484>>2]|0;x=0;do{h[m+(x<<3)>>3]=+h[E+(x<<3)>>3];x=x+1|0}while((x|0)!=(k|0))}b:do if((j|0)>0){x=a+4|0;E=a+68|0;q=a+484|0;C=A+-2|0;t=2-A|0;D=0;o=k;while(1){D=D+1|0;g=a+76+(D<<2)|0;B=c[g>>2]|0;ib(m,B,2,w)|0;W=c[g>>2]|0;g=W<<1;G=g+-1|0;F=c[a>>2]|0;if((c[F+64>>2]|0)!=(c[F+68>>2]|0))break;if((Ub(u,26272)|0)!=0?(Ub(u,26280)|0)!=0:0)X=F;else{c[x>>2]=cb(G,A)|0;c[E>>2]=1;X=c[a>>2]|0}Eb(a,w,G,c[X+80>>2]|0,A,z);ib((c[q>>2]|0)+(o<<3)|0,B,2,w)|0;Eb(a,w,G,c[(c[a>>2]|0)+84>>2]|0,A,v);if((C|0)<(g|0)){g=W<<1;W=C;do{h[m+(t+W<<3)>>3]=+h[z+(W<<3)>>3]+ +h[v+(W<<3)>>3];W=W+1|0}while((W|0)!=(g|0))}o=B+o|0;g=c[a>>2]|0;do if((c[g+64>>2]|0)==(c[g+68>>2]|0)){if((Ub(u,26272)|0)!=0?(Ub(u,26280)|0)!=0:0)break;fb(c[x>>2]|0);c[E>>2]=0}while(0);if((D|0)>=(j|0))break b}sa(26336,f|0)|0;Ia(-1)}while(0);Wb(w);Wb(z);Wb(v)}while(0);f=c[l>>2]|0;if((f|0)<=0){Wb(m);i=d;return}$b(b|0,m|0,((f|0)>1?f<<3:8)|0)|0;Wb(m);i=d;return}function wb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0,P=0.0,Q=0,R=0,S=0,T=0,U=0;d=i;i=i+16|0;e=d+8|0;f=d;if(Ub(a+8|0,26528)|0){sa(26392,e|0)|0;Ia(-1)}if(!(Ub(a+54|0,26264)|0)){g=c[a+20>>2]|0;j=c[a+32>>2]|0;c[a+76+(j<<2)>>2]=g;c[a+76>>2]=g;k=j+1|0;l=Z(k,g)|0;c[a+76+(k<<2)>>2]=l;k=a+24|0;c[k>>2]=l;if((j|0)>1){l=1;do{c[a+76+(l<<2)>>2]=g;l=l+1|0}while((l|0)!=(j|0))}l=g<<3;m=Vb(l)|0;n=Vb(l)|0;l=(g|0)>0;if(l){o=0;do{h[a+488+(o<<3)>>3]=+h[b+(o<<3)>>3];o=o+1|0}while((o|0)!=(g|0))}if((j|0)>0){o=(g|0)%2|0;p=(o|0)==0;q=(o|0)==1;o=a+488+(g+-1<<3)|0;r=~g;s=1;t=0;u=c[k>>2]|0;do{u=u-g|0;s=s<<((t|0)>0&1);k=c[a>>2]|0;v=Z(c[k+56>>2]|0,s)|0;w=(v|0)/2|0;if(l){x=(v|0)>0;y=k+72|0;z=k+76|0;k=0;do{A=k+w|0;B=m+(k<<3)|0;h[B>>3]=0.0;C=n+(k<<3)|0;h[C>>3]=0.0;if(x){D=0.0;E=0.0;F=0;G=-1;while(1){H=F;while(1)if((H|0)<(g|0)){I=H;break}else H=H-g|0;G=G+1|0;H=A-I|0;do if(!((H|0)>=(w|0)&(H|0)<(g|0))){if((H|0)<(w|0)&(H|0)>-1){J=+h[a+488+(H<<3)>>3];K=D+ +h[(c[y>>2]|0)+(G<<3)>>3]*J;h[B>>3]=K;L=E+J*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=L;M=L;N=K;break}if((H|0)<0){K=+h[a+488+(H+g<<3)>>3];L=D+ +h[(c[y>>2]|0)+(G<<3)>>3]*K;h[B>>3]=L;J=E+K*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=J;M=J;N=L;break}O=(H|0)>=(g|0);if(p&O){L=+h[a+488+(H-g<<3)>>3];J=D+ +h[(c[y>>2]|0)+(G<<3)>>3]*L;h[B>>3]=J;K=E+L*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=K;M=K;N=J;break}if(q&O){J=+h[(c[y>>2]|0)+(G<<3)>>3];if((A-G|0)==(g|0)){K=+h[o>>3];L=D+J*K;h[B>>3]=L;P=E+K*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=P;M=P;N=L;break}else{L=+h[a+488+(H+r<<3)>>3];P=D+J*L;h[B>>3]=P;J=E+L*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=J;M=J;N=P;break}}else{M=E;N=D}}else{P=+h[a+488+(H<<3)>>3];J=D+ +h[(c[y>>2]|0)+(G<<3)>>3]*P;h[B>>3]=J;L=E+P*+h[(c[z>>2]|0)+(G<<3)>>3];h[C>>3]=L;M=L;N=J}while(0);F=I+s|0;if((F|0)>=(v|0))break;else{D=N;E=M}}}k=k+1|0}while((k|0)!=(g|0));Q=0;do{h[a+488+(Q<<3)>>3]=+h[m+(Q<<3)>>3];h[a+488+(Q+u<<3)>>3]=+h[n+(Q<<3)>>3];Q=Q+1|0}while((Q|0)!=(g|0))}t=t+1|0}while((t|0)!=(j|0))}Wb(m);Wb(n);i=d;return}else{n=a+54|0;if((Ub(n,26272)|0)!=0?(Ub(n,26280)|0)!=0:0){sa(26392,e|0)|0;Ia(-1)}e=c[a+20>>2]|0;m=c[a+32>>2]|0;c[a+76+(m<<2)>>2]=e;c[a+76>>2]=e;j=m+1|0;t=Z(j,e)|0;c[a+76+(j<<2)>>2]=t;j=a+24|0;c[j>>2]=t;if((m|0)>1){t=1;g=1;while(1){Q=t<<1;c[a+76+(g<<2)>>2]=e;g=g+1|0;if((g|0)==(m|0)){R=Q;break}else t=Q}}else R=1;t=c[(c[a>>2]|0)+52>>2]|0;g=Z(t,R<<3)|0;Q=Vb(g)|0;u=Vb(g)|0;g=(e|0)%2|0;s=Vb((Z(t,R)|0)+e+g<<3)|0;I=((Z(R<<1,t)|0)+e+g<<3)+-1|0;R=Vb(I)|0;r=Vb(I)|0;I=(e|0)>0;if(I){o=0;do{h[a+488+(o<<3)>>3]=+h[b+(o<<3)>>3];o=o+1|0}while((o|0)!=(e|0))}a:do if((m|0)>0){o=a+488|0;b=g+e|0;q=a+4|0;p=a+68|0;l=(t|0)>0;k=1;v=0;z=c[j>>2]|0;while(1){z=z-e|0;if((v|0)<=0)if(l){y=c[a>>2]|0;w=c[y+72>>2]|0;x=c[y+76>>2]|0;y=0;do{h[Q+(y<<3)>>3]=+h[w+(y<<3)>>3];h[u+(y<<3)>>3]=+h[x+(y<<3)>>3];y=y+1|0}while((y|0)!=(t|0));S=k;T=t}else{S=k;T=t}else{y=k<<1;x=Z(y,t)|0;w=c[a>>2]|0;jb(c[w+72>>2]|0,c[w+56>>2]|0,y,Q)|0;w=c[a>>2]|0;jb(c[w+76>>2]|0,c[w+60>>2]|0,y,u)|0;S=y;T=x}lb(o,e,(T|0)/2|0,s)|0;x=c[a>>2]|0;if((c[x+56>>2]|0)!=(c[x+60>>2]|0))break;if((Ub(n,26272)|0)!=0?(Ub(n,26280)|0)!=0:0)U=T+b|0;else{x=T+b|0;c[q>>2]=cb(x,T)|0;c[p>>2]=1;U=x}Eb(a,s,U,Q,T,R);Eb(a,s,U,u,T,r);x=c[a>>2]|0;do if((c[x+56>>2]|0)==(c[x+60>>2]|0)){if((Ub(n,26272)|0)!=0?(Ub(n,26280)|0)!=0:0)break;fb(c[q>>2]|0);c[p>>2]=0}while(0);if(I){x=0;do{y=x+T|0;h[a+488+(x<<3)>>3]=+h[R+(y<<3)>>3];h[a+488+(x+z<<3)>>3]=+h[r+(y<<3)>>3];x=x+1|0}while((x|0)!=(e|0))}v=v+1|0;if((v|0)>=(m|0))break a;else k=S}sa(26336,f|0)|0;Ia(-1)}while(0);Wb(Q);Wb(u);Wb(s);Wb(R);Wb(r);i=d;return}}function xb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,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;d=i;i=i+16|0;e=d;f=c[a+20>>2]|0;g=c[a+32>>2]|0;j=c[(c[a>>2]|0)+64>>2]|0;k=f<<3;l=Vb(k)|0;m=Vb(k)|0;n=Vb(k)|0;o=Vb(k)|0;p=Vb(k)|0;q=Vb(k)|0;r=Vb(k)|0;s=j+f+((f|0)%2|0)<<3;t=Vb(s)|0;u=Vb(s)|0;s=(j<<1)+f<<3;v=Vb(s)|0;w=Vb(s)|0;s=Vb(k)|0;x=Vb(k)|0;if((g|0)<=0){Wb(l);Wb(m);Wb(n);Wb(o);Wb(r);Wb(t);Wb(u);Wb(v);Wb(w);Wb(s);Wb(x);Wb(p);Wb(q);i=d;return}k=(f|0)>0;y=g+-1|0;z=(j|0)/2|0;A=a+54|0;B=a+4|0;C=a+68|0;D=j+-1|0;E=1-j|0;F=a+484|0;G=f<<3;H=0;a:while(1){I=f+(Z(f,H)|0)|0;if(k)Yb(b|0,0,G|0)|0;if(!H){if(k){J=c[F>>2]|0;$b(l|0,J|0,G|0)|0;$b(m|0,J+(f<<3)|0,G|0)|0}}else if(k)$b(m|0,(c[F>>2]|0)+(I<<3)|0,G|0)|0;I=~~+Jb(1.0,y-H|0);if((I|0)>0){J=0;do{K=(J|0)<(f|0);if(K){L=J;M=0;while(1){h[n+(M<<3)>>3]=+h[l+(L<<3)>>3];h[o+(M<<3)>>3]=+h[m+(L<<3)>>3];N=M+1|0;L=L+I|0;if((L|0)>=(f|0)){O=N;P=M;break}else M=N}if((P|0)>-1){M=(P>>>1)+1|0;L=0;N=0;while(1){h[p+(N<<3)>>3]=+h[n+(L<<3)>>3];h[q+(N<<3)>>3]=+h[o+(L<<3)>>3];N=N+1|0;if((N|0)==(M|0)){Q=O;R=M;break}else L=L+2|0}}else{Q=O;R=0}}else{Q=0;R=0}jb(p,R,2,r)|0;L=R<<1;lb(r,L,z,t)|0;jb(q,R,2,r)|0;lb(r,L,z,u)|0;M=L+j|0;L=c[a>>2]|0;do if((c[L+64>>2]|0)==(c[L+68>>2]|0)){if((Ub(A,26272)|0)!=0?(Ub(A,26280)|0)!=0:0){S=22;break}c[B>>2]=cb(M,j)|0;c[C>>2]=1;T=c[a>>2]|0}else S=22;while(0);if((S|0)==22){S=0;if((c[L+56>>2]|0)==(c[L+60>>2]|0))T=L;else{S=23;break a}}Eb(a,t,M,c[T+80>>2]|0,j,v);Eb(a,u,M,c[(c[a>>2]|0)+84>>2]|0,j,w);N=M+-1|0;if((j|0)<=(N|0)){U=D;do{h[s+(E+U<<3)>>3]=+h[v+(U<<3)>>3]+ +h[w+(U<<3)>>3];U=U+1|0}while((U|0)<(N|0))}if((Q|0)>1){N=((Q+-2|0)>>>1)+1|0;U=1;M=0;while(1){h[p+(M<<3)>>3]=+h[n+(U<<3)>>3];h[q+(M<<3)>>3]=+h[o+(U<<3)>>3];M=M+1|0;if((M|0)==(N|0)){V=N;break}else U=U+2|0}}else V=0;jb(p,V,2,r)|0;U=V<<1;lb(r,U,z,t)|0;jb(q,V,2,r)|0;lb(r,U,z,u)|0;N=U+j|0;Eb(a,t,N,c[(c[a>>2]|0)+80>>2]|0,j,v);Eb(a,u,N,c[(c[a>>2]|0)+84>>2]|0,j,w);M=N+-1|0;if((j|0)<=(M|0)){N=D;do{h[x+(E+N<<3)>>3]=+h[v+(N<<3)>>3]+ +h[w+(N<<3)>>3];N=N+1|0}while((N|0)<(M|0))}nb(x,U,-1);if(K){M=J;N=0;while(1){h[b+(M<<3)>>3]=(+h[s+(N<<3)>>3]+ +h[x+(N<<3)>>3])*.5;M=M+I|0;if((M|0)>=(f|0))break;else N=N+1|0}}J=J+1|0}while((J|0)<(I|0))}if(k)$b(l|0,b|0,G|0)|0;H=H+1|0;if((H|0)>=(g|0)){S=35;break}}if((S|0)==23){sa(26336,e|0)|0;Ia(-1)}else if((S|0)==35){Wb(l);Wb(m);Wb(n);Wb(o);Wb(r);Wb(t);Wb(u);Wb(v);Wb(w);Wb(s);Wb(x);Wb(p);Wb(q);i=d;return}}function yb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0,E=0.0;d=c[a+20>>2]|0;e=c[a+32>>2]|0;c[a+76+(e<<2)>>2]=d;c[a+76>>2]=d;f=e+1|0;g=Z(f,d)|0;c[a+76+(f<<2)>>2]=g;f=a+24|0;c[f>>2]=g;if((e|0)>1){g=1;do{c[a+76+(g<<2)>>2]=d;g=g+1|0}while((g|0)!=(e|0))}g=d<<3;i=Vb(g)|0;j=Vb(g)|0;g=(d|0)>0;if(g){k=0;do{h[a+488+(k<<3)>>3]=+h[b+(k<<3)>>3];k=k+1|0}while((k|0)!=(d|0))}if((e|0)<=0){Wb(i);Wb(j);return}k=1;b=0;l=c[f>>2]|0;do{l=l-d|0;k=k<<((b|0)>0&1);f=c[a>>2]|0;m=c[f+56>>2]|0;n=Vb(m<<4)|0;if((m|0)>0){o=c[f+72>>2]|0;p=c[f+76>>2]|0;f=0;do{h[n+(f<<3)>>3]=+h[o+(f<<3)>>3]/1.4142135623730951;h[n+(f+m<<3)>>3]=+h[p+(f<<3)>>3]/1.4142135623730951;f=f+1|0}while((f|0)!=(m|0))}if(g){q=+h[n>>3];r=+h[n+(m<<3)>>3];f=(m|0)>1;p=0;do{s=+h[a+488+(p<<3)>>3];t=q*s;o=i+(p<<3)|0;h[o>>3]=t;u=r*s;v=j+(p<<3)|0;h[v>>3]=u;if(f){s=t;t=u;w=1;x=p;while(1){y=x-k|0;while(1)if((y|0)<(d|0)){z=y;break}else y=y-d|0;while(1)if((z|0)<0)z=z+d|0;else{A=z;break}u=+h[a+488+(A<<3)>>3];B=s+ +h[n+(w<<3)>>3]*u;C=t+ +h[n+(w+m<<3)>>3]*u;y=w+1|0;if((y|0)==(m|0)){D=B;E=C;break}else{s=B;t=C;w=y;x=A}}h[o>>3]=D;h[v>>3]=E}p=p+1|0}while((p|0)!=(d|0));Wb(n);if(g){p=0;do{h[a+488+(p<<3)>>3]=+h[i+(p<<3)>>3];h[a+488+(p+l<<3)>>3]=+h[j+(p<<3)>>3];p=p+1|0}while((p|0)!=(d|0))}}else Wb(n);b=b+1|0}while((b|0)!=(e|0));Wb(i);Wb(j);return}function zb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0.0;d=c[a+20>>2]|0;e=c[a+32>>2]|0;f=~~+Ob(+(e|0)+-1.0);g=Vb(d<<3)|0;i=(d|0)>0;if(i){j=c[a+484>>2]|0;k=0;do{h[b+(k<<3)>>3]=+h[j+(k<<3)>>3];k=k+1|0}while((k|0)!=(d|0))}if((e|0)<=0){Wb(g);return}k=d<<3;j=f;f=0;l=d;while(1){j=(f|0)>0?(j|0)/2|0:j;m=c[a>>2]|0;n=c[m+56>>2]|0;o=Vb(n<<4)|0;if((n|0)>0){p=c[m+72>>2]|0;q=c[m+76>>2]|0;m=0;do{h[o+(m<<3)>>3]=+h[p+(m<<3)>>3]/1.4142135623730951;h[o+(m+n<<3)>>3]=+h[q+(m<<3)>>3]/1.4142135623730951;m=m+1|0}while((m|0)!=(n|0))}if(i){r=+h[o>>3];s=+h[o+(n<<3)>>3];m=(n|0)>1;q=0;do{t=r*+h[b+(q<<3)>>3]+s*+h[a+488+(q+l<<3)>>3];p=g+(q<<3)|0;h[p>>3]=t;if(m){u=t;v=1;w=q;while(1){x=w+j|0;while(1)if((x|0)<(d|0)){y=x;break}else x=x-d|0;while(1)if((y|0)<0)y=y+d|0;else{z=y;break}t=u+(+h[o+(v<<3)>>3]*+h[b+(z<<3)>>3]+ +h[o+(v+n<<3)>>3]*+h[a+488+(z+l<<3)>>3]);x=v+1|0;if((x|0)==(n|0)){A=t;break}else{u=t;v=x;w=z}}h[p>>3]=A}q=q+1|0}while((q|0)!=(d|0));Wb(o);if(i)$b(b|0,g|0,k|0)|0}else Wb(o);f=f+1|0;if((f|0)==(e|0))break;else l=l+d|0}Wb(g);return}function Ab(b,c){b=b|0;c=c|0;var d=0,e=0;d=i;i=i+16|0;if(!(Ub(c,26520)|0)){e=b+44|0;a[e>>0]=115;a[e+1>>0]=121;a[e+2>>0]=109;a[e+3>>0]=0;i=d;return}if(Ub(c,26512)|0){sa(26288,d|0)|0;Ia(-1)}c=b+44|0;a[c>>0]=112;a[c+1>>0]=101;a[c+2>>0]=114;a[c+3>>0]=0;i=d;return}function Bb(a){a=a|0;Wb(a);return}function Cb(a){a=a|0;Wb(a);return}function Db(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,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;g=i;i=i+32|0;h=g+16|0;j=g;k=g+8|0;l=c[a>>2]|0;m=c[l+56>>2]|0;n=(c[l+60>>2]|0)+m|0;l=(n|0)/2|0;o=a+44|0;if(!(Ub(o,26512)|0)){p=Vb(l+d+((d|0)%2|0)<<3)|0;q=lb(b,d,(n|0)/4|0,p)|0;n=q+l|0;r=c[a>>2]|0;s=r+56|0;t=Vb(((c[s>>2]|0)+n<<3)+-8|0)|0;u=c[s>>2]|0;if((u|0)!=(c[r+60>>2]|0)){sa(26336,k|0)|0;Ia(-1)}k=a+54|0;if((Ub(k,26272)|0)!=0?(Ub(k,26280)|0)!=0:0){v=r;w=u}else{c[a+4>>2]=cb(n,u)|0;c[a+68>>2]=1;u=c[a>>2]|0;v=u;w=c[u+56>>2]|0}Eb(a,p,n,c[v+72>>2]|0,w,t);w=t+(l<<3)|0;kb(w,q,2,e)|0;l=c[a>>2]|0;Eb(a,p,n,c[l+76>>2]|0,c[l+60>>2]|0,t);kb(w,q,2,f)|0;x=t;y=p}else{if(Ub(o,26520)|0){sa(26288,h|0)|0;Ia(-1)}h=m+-1|0;o=h<<1;p=Vb(o+d<<3)|0;t=mb(b,d,h,p)|0;d=Vb(t+(h*3|0)<<3)|0;h=c[a>>2]|0;b=c[h+56>>2]|0;if((b|0)!=(c[h+60>>2]|0)){sa(26336,j|0)|0;Ia(-1)}j=a+54|0;if((Ub(j,26272)|0)!=0?(Ub(j,26280)|0)!=0:0){z=t+o|0;A=h;B=b}else{b=t+o|0;c[a+4>>2]=cb(b,m)|0;c[a+68>>2]=1;o=c[a>>2]|0;z=b;A=o;B=c[o+56>>2]|0}Eb(a,p,z,c[A+72>>2]|0,B,d);B=d+(m<<3)|0;A=m+-2+t|0;kb(B,A,2,e)|0;e=c[a>>2]|0;Eb(a,p,z,c[e+76>>2]|0,c[e+60>>2]|0,d);kb(B,A,2,f)|0;x=d;y=p}p=c[a>>2]|0;if((c[p+56>>2]|0)!=(c[p+60>>2]|0)){Wb(y);Wb(x);i=g;return}p=a+54|0;if((Ub(p,26272)|0)!=0?(Ub(p,26280)|0)!=0:0){Wb(y);Wb(x);i=g;return}fb(c[a+4>>2]|0);c[a+68>>2]=0;Wb(y);Wb(x);i=g;return}function Eb(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;h=i;i=i+16|0;j=h;k=a+54|0;if(!(Ub(k,26264)|0)){db(b,d,e,f,g);i=h;return}if((Ub(k,26272)|0)!=0?(Ub(k,26280)|0)!=0:0){sa(26440,j|0)|0;Ia(-1)}if(!(c[a+68>>2]|0)){j=cb(d,f)|0;f=a+4|0;c[f>>2]=j;eb(j,b,e,g);fb(c[f>>2]|0);i=h;return}else{eb(c[a+4>>2]|0,b,e,g);i=h;return}}function Fb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if((Ub(b,26496)|0)!=0?(Ub(b,26504)|0)!=0:0){if((Ub(b,26528)|0)!=0?(Ub(b,26536)|0)!=0:0){if((Ub(b,26544)|0)!=0?(Ub(b,26552)|0)!=0:0){f=0;return f|0}f=Z(d+1|0,a)|0;return f|0}f=Z(d+1|0,a)|0;return f|0}if(!(Ub(e,26512)|0)){if((d|0)>0){b=a;g=0;h=d;while(1){i=~~+Y(+(+(b|0)*.5));j=i+g|0;if((h|0)>1){b=i;g=j;h=h+-1|0}else{k=i;l=j;break}}}else{k=a;l=0}f=l+k|0;return f|0}if(Ub(e,26520)|0){f=0;return f|0}if((d|0)>0){e=c+-2|0;c=a;k=0;l=d;while(1){d=~~+Y(+(+(e+c|0)*.5));h=d+k|0;if((l|0)>1){c=d;k=h;l=l+-1|0}else{m=d;n=h;break}}}else{m=a;n=0}f=n+m|0;return f|0}function Gb(a,b,d,e,f,g,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;l=sb(d)|0;d=c[l+52>>2]|0;if((d|0)>0){m=c[l+72>>2]|0;n=c[l+76>>2]|0;o=c[l+80>>2]|0;p=d<<1;q=c[l+84>>2]|0;r=d*3|0;s=0;do{h[k+(s<<3)>>3]=+h[m+(s<<3)>>3];h[k+(d+s<<3)>>3]=+h[n+(s<<3)>>3];h[k+(p+s<<3)>>3]=+h[o+(s<<3)>>3];h[k+(r+s<<3)>>3]=+h[q+(s<<3)>>3];s=s+1|0}while((s|0)<(d|0))}d=tb(l,e,b,f)|0;do if((Ub(e,26496)|0)!=0?(Ub(e,26504)|0)!=0:0){if((Ub(e,26528)|0)!=0?(Ub(e,26536)|0)!=0:0){if((Ub(e,26544)|0)!=0?(Ub(e,26552)|0)!=0:0)break;yb(d,a);break}wb(d,a)}else t=6;while(0);if((t|0)==6){Ab(d,g);ub(d,a)}a=d+28|0;if((c[a>>2]|0)>0){g=0;do{c[j+(g<<2)>>2]=c[d+76+(g<<2)>>2];g=g+1|0}while((g|0)<(c[a>>2]|0))}a=c[d+24>>2]|0;if((a|0)<=0){Bb(l);Cb(d);return}g=c[d+484>>2]|0;j=0;do{h[i+(j<<3)>>3]=+h[g+(j<<3)>>3];j=j+1|0}while((j|0)<(a|0));Bb(l);Cb(d);return}function Hb(a,b,d,e,f,g,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0;m=sb(d)|0;d=tb(m,e,j,f)|0;if((b|0)>0){f=c[d+484>>2]|0;j=0;do{h[f+(j<<3)>>3]=+h[a+(j<<3)>>3];j=j+1|0}while((j|0)!=(b|0))}c[d+28>>2]=l;if((l|0)>0){b=0;do{c[d+76+(b<<2)>>2]=c[k+(b<<2)>>2];b=b+1|0}while((b|0)!=(l|0))}if((Ub(e,26496)|0)!=0?(Ub(e,26504)|0)!=0:0){if((Ub(e,26528)|0)!=0?(Ub(e,26536)|0)!=0:0){if((Ub(e,26544)|0)!=0?(Ub(e,26552)|0)!=0:0){Bb(m);Cb(d);return}zb(d,i);Bb(m);Cb(d);return}xb(d,i);Bb(m);Cb(d);return}Ab(d,g);vb(d,i);Bb(m);Cb(d);return}function Ib(a,b,c,d,e,f,g,i,j,k,l,m,n,o,p){a=a|0;b=+b;c=c|0;d=d|0;e=+e;f=f|0;g=+g;i=+i;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0.0,v=0;if((l|0)==1)q=~~+Jb(1.0,~~(+X(+(+(d|0)))/.6931471805599453+.499999)+1|0);else q=d;l=Vb(Z(d<<4,f)|0)|0;if(!(Ub(a,26560)|0))r=0;else{s=(Ub(a,26568)|0)==0;r=s?1:2}if((Ub(j,26576)|0)!=0?(Ub(j,26584)|0)!=0:0){if((Ub(j,26592)|0)!=0?(Ub(j,26600)|0)!=0:0){ra(26608)|0;Ia(-1)}if((f|0)>0){j=0;do{h[n+(j<<3)>>3]=+(j|0)*i+g;j=j+1|0}while((j|0)!=(f|0))}}else t=7;if((t|0)==7?(f|0)>0:0){u=+(k|0);k=0;do{h[n+(k<<3)>>3]=+O(+u,+(+(k|0)*i))*g;k=k+1|0}while((k|0)!=(f|0))}rb(c,d,e,r,b,g,i,f,q,l,n,o,p);p=Z(f,d)|0;if((p|0)>0)v=0;else{Wb(l);return}do{d=v<<1;i=+h[l+(d<<3)>>3];g=+h[l+((d|1)<<3)>>3];h[m+(v<<3)>>3]=+N(+(i*i+g*g));v=v+1|0}while((v|0)!=(p|0));Wb(l);return}function Jb(a,b){a=+a;b=b|0;return +(+Qb(a,b))}function Kb(b,c){b=b|0;c=c|0;var d=0;d=Lb(b,c)|0;return ((a[d>>0]|0)==(c&255)<<24>>24?d:0)|0}function Lb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=d&255;if(!e){f=b+(_b(b|0)|0)|0;return f|0}a:do if(!(b&3))g=b;else{h=d&255;i=b;while(1){j=a[i>>0]|0;if(j<<24>>24==0?1:j<<24>>24==h<<24>>24){f=i;break}j=i+1|0;if(!(j&3)){g=j;break a}else i=j}return f|0}while(0);b=Z(e,16843009)|0;e=c[g>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009)){i=e;h=g;while(1){j=i^b;if((j&-2139062144^-2139062144)&j+-16843009){k=h;break b}j=h+4|0;i=c[j>>2]|0;if((i&-2139062144^-2139062144)&i+-16843009){k=j;break}else h=j}}else k=g;while(0);g=d&255;d=k;while(1){k=a[d>>0]|0;if(k<<24>>24==0?1:k<<24>>24==g<<24>>24){f=d;break}else d=d+1|0}return f|0}function Mb(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,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;f=i;i=i+1056|0;g=f+1024|0;h=f;j=a[e>>0]|0;if(!(j<<24>>24)){k=b;i=f;return k|0}l=Kb(b,j<<24>>24)|0;if(!l){k=0;i=f;return k|0}b=a[e+1>>0]|0;if(!(b<<24>>24)){k=l;i=f;return k|0}m=l+1|0;n=a[m>>0]|0;if(!(n<<24>>24)){k=0;i=f;return k|0}o=a[e+2>>0]|0;if(!(o<<24>>24)){p=b&255|(j&255)<<8;q=m;m=n;r=l;s=d[l>>0]<<8|n&255;while(1){t=s&65535;if((t|0)==(p|0)){u=r;v=m;break}w=q+1|0;x=a[w>>0]|0;if(!(x<<24>>24)){u=q;v=0;break}else{y=q;q=w;m=x;s=x&255|t<<8;r=y}}k=v<<24>>24!=0?u:0;i=f;return k|0}u=l+2|0;v=a[u>>0]|0;if(!(v<<24>>24)){k=0;i=f;return k|0}r=a[e+3>>0]|0;if(!(r<<24>>24)){s=(b&255)<<16|(j&255)<<24|(o&255)<<8;m=(v&255)<<8|(n&255)<<16|d[l>>0]<<24;if((m|0)==(s|0)){z=u;A=v}else{q=u;u=m;while(1){m=q+1|0;p=a[m>>0]|0;u=(p&255|u)<<8;if(p<<24>>24==0|(u|0)==(s|0)){z=m;A=p;break}else q=m}}k=A<<24>>24!=0?z+-2|0:0;i=f;return k|0}z=l+3|0;A=a[z>>0]|0;if(!(A<<24>>24)){k=0;i=f;return k|0}if(!(a[e+4>>0]|0)){q=(b&255)<<16|(j&255)<<24|(o&255)<<8|r&255;r=(v&255)<<8|(n&255)<<16|A&255|d[l>>0]<<24;if((r|0)==(q|0)){B=z;C=A}else{A=z;z=r;while(1){r=A+1|0;n=a[r>>0]|0;z=n&255|z<<8;if(n<<24>>24==0|(z|0)==(q|0)){B=r;C=n;break}else A=r}}k=C<<24>>24!=0?B+-3|0:0;i=f;return k|0};c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;B=j;j=0;while(1){if(!(a[l+j>>0]|0)){D=0;break}C=g+(((B&255)>>>5&255)<<2)|0;c[C>>2]=c[C>>2]|1<<(B&31);C=j+1|0;c[h+((B&255)<<2)>>2]=C;B=a[e+C>>0]|0;if(!(B<<24>>24)){E=C;F=j;G=23;break}else j=C}a:do if((G|0)==23){b:do if(E>>>0>1){j=1;B=-1;C=0;c:while(1){A=j;q=C;z=1;while(1){r=A;n=q;d:while(1){v=r;o=1;while(1){b=a[e+(o+B)>>0]|0;s=a[e+v>>0]|0;if(b<<24>>24!=s<<24>>24){H=v;I=b;J=s;K=n;break d}if((o|0)==(z|0))break;o=o+1|0;v=o+n|0;if(v>>>0>=E>>>0){L=B;M=z;break c}}n=n+z|0;r=n+1|0;if(r>>>0>=E>>>0){L=B;M=z;break c}}r=H-B|0;if((I&255)<=(J&255)){N=K;break}n=H+1|0;if(n>>>0>>0){A=n;q=H;z=r}else{L=B;M=r;break c}}j=N+2|0;if(j>>>0>=E>>>0){L=N;M=1;break}else{B=N;C=N+1|0}}C=1;B=-1;j=0;while(1){z=C;q=j;A=1;while(1){r=z;n=q;e:while(1){v=r;o=1;while(1){s=a[e+(o+B)>>0]|0;b=a[e+v>>0]|0;if(s<<24>>24!=b<<24>>24){O=v;P=s;Q=b;R=n;break e}if((o|0)==(A|0))break;o=o+1|0;v=o+n|0;if(v>>>0>=E>>>0){S=L;T=B;U=M;V=A;break b}}n=n+A|0;r=n+1|0;if(r>>>0>=E>>>0){S=L;T=B;U=M;V=A;break b}}r=O-B|0;if((P&255)>=(Q&255)){W=R;break}n=O+1|0;if(n>>>0>>0){z=n;q=O;A=r}else{S=L;T=B;U=M;V=r;break b}}C=W+2|0;if(C>>>0>=E>>>0){S=L;T=W;U=M;V=1;break}else{B=W;j=W+1|0}}}else{S=-1;T=-1;U=1;V=1}while(0);j=(T+1|0)>>>0>(S+1|0)>>>0;B=j?V:U;C=j?T:S;j=C+1|0;if(!(Tb(e,e+B|0,j)|0)){A=E-B|0;q=E|63;if((E|0)==(B|0)){X=q;Y=E}else{z=l;r=0;n=l;f:while(1){v=z;do if((n-v|0)>>>0>>0){o=Sb(n,0,q)|0;if(o)if((o-v|0)>>>0>>0){D=0;break a}else{Z=o;break}else{Z=n+q|0;break}}else Z=n;while(0);v=a[z+F>>0]|0;if(!(1<<(v&31)&c[g+(((v&255)>>>5&255)<<2)>>2])){z=z+E|0;r=0;n=Z;continue}o=c[h+((v&255)<<2)>>2]|0;v=E-o|0;if((E|0)!=(o|0)){z=z+((r|0)!=0&v>>>0>>0?A:v)|0;r=0;n=Z;continue}v=j>>>0>r>>>0?j:r;o=a[e+v>>0]|0;g:do if(!(o<<24>>24))_=j;else{b=o;s=v;while(1){if(b<<24>>24!=(a[z+s>>0]|0)){$=s;break}s=s+1|0;b=a[e+s>>0]|0;if(!(b<<24>>24)){_=j;break g}}z=z+($-C)|0;r=0;n=Z;continue f}while(0);do{if(_>>>0<=r>>>0){D=z;break a}_=_+-1|0}while((a[e+_>>0]|0)==(a[z+_>>0]|0));z=z+B|0;r=A;n=Z}}}else{n=E-C+-1|0;X=E|63;Y=(C>>>0>n>>>0?C:n)+1|0}n=e+j|0;A=l;r=l;h:while(1){B=A;do if((r-B|0)>>>0>>0){z=Sb(r,0,X)|0;if(z)if((z-B|0)>>>0>>0){D=0;break a}else{aa=z;break}else{aa=r+X|0;break}}else aa=r;while(0);B=a[A+F>>0]|0;if(!(1<<(B&31)&c[g+(((B&255)>>>5&255)<<2)>>2])){A=A+E|0;r=aa;continue}z=c[h+((B&255)<<2)>>2]|0;if((E|0)!=(z|0)){A=A+(E-z)|0;r=aa;continue}z=a[n>>0]|0;i:do if(!(z<<24>>24))ba=j;else{B=z;q=j;while(1){if(B<<24>>24!=(a[A+q>>0]|0)){ca=q;break}q=q+1|0;B=a[e+q>>0]|0;if(!(B<<24>>24)){ba=j;break i}}A=A+(ca-C)|0;r=aa;continue h}while(0);do{if(!ba){D=A;break a}ba=ba+-1|0}while((a[e+ba>>0]|0)==(a[A+ba>>0]|0));A=A+Y|0;r=aa}}while(0);k=D;i=f;return k|0}function Nb(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function Ob(a){a=+a;var b=0,d=0,e=0,f=0,j=0.0,l=0.0,m=0.0,n=0.0;b=i;i=i+16|0;d=b;h[k>>3]=a;e=c[k+4>>2]|0;f=e&2147483647;do if(f>>>0>1083174911){if(((e|0)>-1|(e|0)==-1&(c[k>>2]|0)>>>0>4294967295)&f>>>0>1083179007){j=a*89884656743115795.0e291;i=b;return +j}if(f>>>0>2146435071){j=-1.0/a;i=b;return +j}if((e|0)<0)if(!(a<=-1075.0)){if(!(a+-4503599627370496.0+4503599627370496.0!=a))break;g[d>>2]=-1.401298464324817e-045/a;break}else{g[d>>2]=-1.401298464324817e-045/a;j=0.0;i=b;return +j}}else if(f>>>0<1016070144){j=a+1.0;i=b;return +j}while(0);l=a+26388279066624.0;h[k>>3]=l;f=(c[k>>2]|0)+128|0;d=f<<1&510;m=+h[26656+(d<<3)>>3];n=a-(l+-26388279066624.0)-+h[26656+((d|1)<<3)>>3];j=+Qb(m+m*n*(n*(n*(n*(n*1.3333559164630223e-003+.009618129842126066)+.0555041086648214)+.2402265069591)+.6931471805599453),(f&-256|0)/256|0);i=b;return +j}function Pb(a){a=+a;var b=0,d=0,e=0,f=0.0,g=0,i=0,j=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0;h[k>>3]=a;b=c[k>>2]|0;d=c[k+4>>2]|0;e=(d|0)<0;do if(!(e|d>>>0<1048576)){if(d>>>0>2146435071){f=a;return +f}if((b|0)==0&0==0&(d|0)==1072693248){f=0.0;return +f}else{g=b;i=d;j=d;l=-1023}}else{if((b|0)==0&(d&2147483647|0)==0){f=-1.0/(a*a);return +f}if(!e){h[k>>3]=a*18014398509481984.0;m=c[k+4>>2]|0;g=c[k>>2]|0;i=m;j=m;l=-1077;break}f=(a-a)/0.0;return +f}while(0);i=j+614242|0;c[k>>2]=g;c[k+4>>2]=(i&1048575)+1072079006;a=+h[k>>3]+-1.0;n=a*(a*.5);o=a/(a+2.0);p=o*o;q=p*p;h[k>>3]=a-n;g=c[k+4>>2]|0;c[k>>2]=0;c[k+4>>2]=g;r=+h[k>>3];s=o*(n+(q*(q*(q*.15313837699209373+.22222198432149784)+.3999999999940942)+p*(q*(q*(q*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)))+(a-r-n);n=r*.4342944818781689;a=+(l+(i>>>20)|0);q=a*.30102999566361177;p=q+n;f=p+(n+(q-p)+(s*.4342944818781689+(a*3.694239077158931e-013+(r+s)*2.5082946711645275e-011)));return +f}function Qb(a,b){a=+a;b=b|0;var d=0.0,e=0,f=0,g=0,i=0.0;if((b|0)>1023){d=a*89884656743115795.0e291;e=b+-1023|0;if((e|0)>1023){f=b+-2046|0;g=(f|0)>1023?1023:f;i=d*89884656743115795.0e291}else{g=e;i=d}}else if((b|0)<-1022){d=a*2.2250738585072014e-308;e=b+1022|0;if((e|0)<-1022){f=b+2044|0;g=(f|0)<-1022?-1022:f;i=d*2.2250738585072014e-308}else{g=e;i=d}}else{g=b;i=a}b=Zb(g+1023|0,0,52)|0;g=B;c[k>>2]=b;c[k+4>>2]=g;return +(i*+h[k>>3])}function Rb(b){b=b|0;var 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;c=b;while(1){b=c+1|0;if(!(Nb(a[c>>0]|0)|0)){d=c;e=b;break}else c=b}c=a[d>>0]|0;b=c<<24>>24;if((b|0)==43){f=0;g=5}else if((b|0)==45){f=1;g=5}else{h=d;i=c;j=0}if((g|0)==5){h=e;i=a[e>>0]|0;j=f}f=(i<<24>>24)+-48|0;if(f>>>0<10){k=h;l=f;m=0}else{n=0;o=(j|0)!=0;p=0-n|0;q=o?n:p;return q|0}while(1){k=k+1|0;f=(m*10|0)-l|0;l=(a[k>>0]|0)+-48|0;if(l>>>0>=10){n=f;break}else m=f}o=(j|0)!=0;p=0-n|0;q=o?n:p;return q|0}function Sb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=d&255;g=(e|0)!=0;a:do if(g&(b&3|0)!=0){h=d&255;i=e;j=b;while(1){if((a[j>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=j+1|0;o=i+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=o;j=n}else{q=o;r=p;s=n;m=5;break}}}else{q=e;r=g;s=b;m=5}while(0);if((m|0)==5)if(r){k=q;l=s;m=6}else{t=0;u=s}b:do if((m|0)==6){s=d&255;if((a[l>>0]|0)==s<<24>>24){t=k;u=l}else{q=Z(f,16843009)|0;c:do if(k>>>0>3){r=k;b=l;while(1){g=c[b>>2]^q;if((g&-2139062144^-2139062144)&g+-16843009){v=r;w=b;break}g=b+4|0;e=r+-4|0;if(e>>>0>3){r=e;b=g}else{x=e;y=g;m=11;break c}}z=v;A=w}else{x=k;y=l;m=11}while(0);if((m|0)==11)if(!x){t=0;u=y;break}else{z=x;A=y}while(1){if((a[A>>0]|0)==s<<24>>24){t=z;u=A;break b}q=A+1|0;z=z+-1|0;if(!z){t=0;u=q;break}else A=q}}}while(0);return ((t|0)!=0?u:0)|0}function Tb(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!d){e=0;return e|0}else{f=d;g=b;h=c}while(1){c=a[g>>0]|0;b=a[h>>0]|0;if(c<<24>>24!=b<<24>>24){i=c;j=b;break}f=f+-1|0;if(!f){e=0;k=5;break}else{g=g+1|0;h=h+1|0}}if((k|0)==5)return e|0;e=(i&255)-(j&255)|0;return e|0}function Ub(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=d;g=e}else{e=b;b=c;do{e=e+1|0;b=b+1|0;c=a[e>>0]|0;d=a[b>>0]|0}while(!(c<<24>>24==0?1:c<<24>>24!=d<<24>>24));f=c;g=d}return (f&255)-(g&255)|0}function Vb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,ma=0,na=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,xa=0,ya=0,za=0,Ba=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;do if(a>>>0<245){b=a>>>0<11?16:a+11&-8;d=b>>>3;e=c[7688]|0;f=e>>>d;if(f&3){g=(f&1^1)+d|0;h=g<<1;i=30792+(h<<2)|0;j=30792+(h+2<<2)|0;h=c[j>>2]|0;k=h+8|0;l=c[k>>2]|0;do if((i|0)!=(l|0)){if(l>>>0<(c[7692]|0)>>>0)Aa();m=l+12|0;if((c[m>>2]|0)==(h|0)){c[m>>2]=i;c[j>>2]=l;break}else Aa()}else c[7688]=e&~(1<>2]=l|3;j=h+(l|4)|0;c[j>>2]=c[j>>2]|1;n=k;return n|0}j=c[7690]|0;if(b>>>0>j>>>0){if(f){l=2<>>12&16;m=l>>>i;l=m>>>5&8;o=m>>>l;m=o>>>2&4;p=o>>>m;o=p>>>1&2;q=p>>>o;p=q>>>1&1;r=(l|i|m|o|p)+(q>>>p)|0;p=r<<1;q=30792+(p<<2)|0;o=30792+(p+2<<2)|0;p=c[o>>2]|0;m=p+8|0;i=c[m>>2]|0;do if((q|0)!=(i|0)){if(i>>>0<(c[7692]|0)>>>0)Aa();l=i+12|0;if((c[l>>2]|0)==(p|0)){c[l>>2]=q;c[o>>2]=i;s=c[7690]|0;break}else Aa()}else{c[7688]=e&~(1<>2]=b|3;i=p+b|0;c[p+(b|4)>>2]=e|1;c[p+j>>2]=e;if(s){j=c[7693]|0;o=s>>>3;q=o<<1;d=30792+(q<<2)|0;f=c[7688]|0;k=1<>2]|0;if(h>>>0<(c[7692]|0)>>>0)Aa();else{t=o;u=h}}else{c[7688]=f|k;t=30792+(q+2<<2)|0;u=d}c[t>>2]=j;c[u+12>>2]=j;c[j+8>>2]=u;c[j+12>>2]=d}c[7690]=e;c[7693]=i;n=m;return n|0}i=c[7689]|0;if(i){e=(i&0-i)+-1|0;i=e>>>12&16;d=e>>>i;e=d>>>5&8;j=d>>>e;d=j>>>2&4;q=j>>>d;j=q>>>1&2;k=q>>>j;q=k>>>1&1;f=c[31056+((e|i|d|j|q)+(k>>>q)<<2)>>2]|0;q=(c[f+4>>2]&-8)-b|0;k=f;j=f;while(1){f=c[k+16>>2]|0;if(!f){d=c[k+20>>2]|0;if(!d){v=q;w=j;break}else x=d}else x=f;f=(c[x+4>>2]&-8)-b|0;d=f>>>0>>0;q=d?f:q;k=x;j=d?x:j}j=c[7692]|0;if(w>>>0>>0)Aa();k=w+b|0;if(w>>>0>=k>>>0)Aa();q=c[w+24>>2]|0;m=c[w+12>>2]|0;do if((m|0)==(w|0)){p=w+20|0;r=c[p>>2]|0;if(!r){d=w+16|0;f=c[d>>2]|0;if(!f){y=0;break}else{z=f;A=d}}else{z=r;A=p}while(1){p=z+20|0;r=c[p>>2]|0;if(r){z=r;A=p;continue}p=z+16|0;r=c[p>>2]|0;if(!r){B=z;C=A;break}else{z=r;A=p}}if(C>>>0>>0)Aa();else{c[C>>2]=0;y=B;break}}else{p=c[w+8>>2]|0;if(p>>>0>>0)Aa();r=p+12|0;if((c[r>>2]|0)!=(w|0))Aa();d=m+8|0;if((c[d>>2]|0)==(w|0)){c[r>>2]=m;c[d>>2]=p;y=m;break}else Aa()}while(0);do if(q){m=c[w+28>>2]|0;j=31056+(m<<2)|0;if((w|0)==(c[j>>2]|0)){c[j>>2]=y;if(!y){c[7689]=c[7689]&~(1<>>0<(c[7692]|0)>>>0)Aa();m=q+16|0;if((c[m>>2]|0)==(w|0))c[m>>2]=y;else c[q+20>>2]=y;if(!y)break}m=c[7692]|0;if(y>>>0>>0)Aa();c[y+24>>2]=q;j=c[w+16>>2]|0;do if(j)if(j>>>0>>0)Aa();else{c[y+16>>2]=j;c[j+24>>2]=y;break}while(0);j=c[w+20>>2]|0;if(j)if(j>>>0<(c[7692]|0)>>>0)Aa();else{c[y+20>>2]=j;c[j+24>>2]=y;break}}while(0);if(v>>>0<16){q=v+b|0;c[w+4>>2]=q|3;j=w+(q+4)|0;c[j>>2]=c[j>>2]|1}else{c[w+4>>2]=b|3;c[w+(b|4)>>2]=v|1;c[w+(v+b)>>2]=v;j=c[7690]|0;if(j){q=c[7693]|0;m=j>>>3;j=m<<1;p=30792+(j<<2)|0;d=c[7688]|0;r=1<>2]|0;if(f>>>0<(c[7692]|0)>>>0)Aa();else{D=m;E=f}}else{c[7688]=d|r;D=30792+(j+2<<2)|0;E=p}c[D>>2]=q;c[E+12>>2]=q;c[q+8>>2]=E;c[q+12>>2]=p}c[7690]=v;c[7693]=k}n=w+8|0;return n|0}else F=b}else F=b}else if(a>>>0<=4294967231){p=a+11|0;q=p&-8;j=c[7689]|0;if(j){r=0-q|0;d=p>>>8;if(d)if(q>>>0>16777215)G=31;else{p=(d+1048320|0)>>>16&8;f=d<>>16&4;m=f<>>16&2;i=14-(d|p|f)+(m<>>15)|0;G=q>>>(i+7|0)&1|i<<1}else G=0;i=c[31056+(G<<2)>>2]|0;a:do if(!i){H=r;I=0;J=0;K=86}else{f=r;m=0;p=q<<((G|0)==31?0:25-(G>>>1)|0);d=i;e=0;while(1){h=c[d+4>>2]&-8;o=h-q|0;if(o>>>0>>0)if((h|0)==(q|0)){L=o;M=d;N=d;K=90;break a}else{O=o;P=d}else{O=f;P=e}o=c[d+20>>2]|0;d=c[d+16+(p>>>31<<2)>>2]|0;h=(o|0)==0|(o|0)==(d|0)?m:o;if(!d){H=O;I=h;J=P;K=86;break}else{f=O;m=h;p=p<<1;e=P}}}while(0);if((K|0)==86){if((I|0)==0&(J|0)==0){i=2<>>12&16;b=i>>>r;i=b>>>5&8;k=b>>>i;b=k>>>2&4;e=k>>>b;k=e>>>1&2;p=e>>>k;e=p>>>1&1;Q=c[31056+((i|r|b|k|e)+(p>>>e)<<2)>>2]|0;R=0}else{Q=I;R=J}if(!Q){S=H;T=R}else{L=H;M=Q;N=R;K=90}}if((K|0)==90)while(1){K=0;e=(c[M+4>>2]&-8)-q|0;p=e>>>0>>0;k=p?e:L;e=p?M:N;p=c[M+16>>2]|0;if(p){L=k;M=p;N=e;K=90;continue}M=c[M+20>>2]|0;if(!M){S=k;T=e;break}else{L=k;N=e;K=90}}if((T|0)!=0?S>>>0<((c[7690]|0)-q|0)>>>0:0){j=c[7692]|0;if(T>>>0>>0)Aa();e=T+q|0;if(T>>>0>=e>>>0)Aa();k=c[T+24>>2]|0;p=c[T+12>>2]|0;do if((p|0)==(T|0)){b=T+20|0;r=c[b>>2]|0;if(!r){i=T+16|0;m=c[i>>2]|0;if(!m){U=0;break}else{V=m;W=i}}else{V=r;W=b}while(1){b=V+20|0;r=c[b>>2]|0;if(r){V=r;W=b;continue}b=V+16|0;r=c[b>>2]|0;if(!r){X=V;Y=W;break}else{V=r;W=b}}if(Y>>>0>>0)Aa();else{c[Y>>2]=0;U=X;break}}else{b=c[T+8>>2]|0;if(b>>>0>>0)Aa();r=b+12|0;if((c[r>>2]|0)!=(T|0))Aa();i=p+8|0;if((c[i>>2]|0)==(T|0)){c[r>>2]=p;c[i>>2]=b;U=p;break}else Aa()}while(0);do if(k){p=c[T+28>>2]|0;j=31056+(p<<2)|0;if((T|0)==(c[j>>2]|0)){c[j>>2]=U;if(!U){c[7689]=c[7689]&~(1<>>0<(c[7692]|0)>>>0)Aa();p=k+16|0;if((c[p>>2]|0)==(T|0))c[p>>2]=U;else c[k+20>>2]=U;if(!U)break}p=c[7692]|0;if(U>>>0

>>0)Aa();c[U+24>>2]=k;j=c[T+16>>2]|0;do if(j)if(j>>>0

>>0)Aa();else{c[U+16>>2]=j;c[j+24>>2]=U;break}while(0);j=c[T+20>>2]|0;if(j)if(j>>>0<(c[7692]|0)>>>0)Aa();else{c[U+20>>2]=j;c[j+24>>2]=U;break}}while(0);b:do if(S>>>0>=16){c[T+4>>2]=q|3;c[T+(q|4)>>2]=S|1;c[T+(S+q)>>2]=S;k=S>>>3;if(S>>>0<256){j=k<<1;p=30792+(j<<2)|0;b=c[7688]|0;i=1<>2]|0;if(r>>>0<(c[7692]|0)>>>0)Aa();else{Z=k;_=r}}else{c[7688]=b|i;Z=30792+(j+2<<2)|0;_=p}c[Z>>2]=e;c[_+12>>2]=e;c[T+(q+8)>>2]=_;c[T+(q+12)>>2]=p;break}p=S>>>8;if(p)if(S>>>0>16777215)$=31;else{j=(p+1048320|0)>>>16&8;i=p<>>16&4;b=i<>>16&2;r=14-(p|j|i)+(b<>>15)|0;$=S>>>(r+7|0)&1|r<<1}else $=0;r=31056+($<<2)|0;c[T+(q+28)>>2]=$;c[T+(q+20)>>2]=0;c[T+(q+16)>>2]=0;i=c[7689]|0;b=1<<$;if(!(i&b)){c[7689]=i|b;c[r>>2]=e;c[T+(q+24)>>2]=r;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break}b=c[r>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(S|0)){r=S<<(($|0)==31?0:25-($>>>1)|0);i=b;while(1){j=i+16+(r>>>31<<2)|0;p=c[j>>2]|0;if(!p){aa=j;ba=i;break}if((c[p+4>>2]&-8|0)==(S|0)){ca=p;break c}else{r=r<<1;i=p}}if(aa>>>0<(c[7692]|0)>>>0)Aa();else{c[aa>>2]=e;c[T+(q+24)>>2]=ba;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break b}}else ca=b;while(0);b=ca+8|0;i=c[b>>2]|0;r=c[7692]|0;if(i>>>0>=r>>>0&ca>>>0>=r>>>0){c[i+12>>2]=e;c[b>>2]=e;c[T+(q+8)>>2]=i;c[T+(q+12)>>2]=ca;c[T+(q+24)>>2]=0;break}else Aa()}else{i=S+q|0;c[T+4>>2]=i|3;b=T+(i+4)|0;c[b>>2]=c[b>>2]|1}while(0);n=T+8|0;return n|0}else F=q}else F=q}else F=-1;while(0);T=c[7690]|0;if(T>>>0>=F>>>0){S=T-F|0;ca=c[7693]|0;if(S>>>0>15){c[7693]=ca+F;c[7690]=S;c[ca+(F+4)>>2]=S|1;c[ca+T>>2]=S;c[ca+4>>2]=F|3}else{c[7690]=0;c[7693]=0;c[ca+4>>2]=T|3;S=ca+(T+4)|0;c[S>>2]=c[S>>2]|1}n=ca+8|0;return n|0}ca=c[7691]|0;if(ca>>>0>F>>>0){S=ca-F|0;c[7691]=S;ca=c[7694]|0;c[7694]=ca+F;c[ca+(F+4)>>2]=S|1;c[ca+4>>2]=F|3;n=ca+8|0;return n|0}do if(!(c[7806]|0)){ca=oa(30)|0;if(!(ca+-1&ca)){c[7808]=ca;c[7807]=ca;c[7809]=-1;c[7810]=-1;c[7811]=0;c[7799]=0;c[7806]=(Ca(0)|0)&-16^1431655768;break}else Aa()}while(0);ca=F+48|0;S=c[7808]|0;T=F+47|0;ba=S+T|0;aa=0-S|0;S=ba&aa;if(S>>>0<=F>>>0){n=0;return n|0}$=c[7798]|0;if(($|0)!=0?(_=c[7796]|0,Z=_+S|0,Z>>>0<=_>>>0|Z>>>0>$>>>0):0){n=0;return n|0}d:do if(!(c[7799]&4)){$=c[7694]|0;e:do if($){Z=31200;while(1){_=c[Z>>2]|0;if(_>>>0<=$>>>0?(U=Z+4|0,(_+(c[U>>2]|0)|0)>>>0>$>>>0):0){da=Z;ea=U;break}Z=c[Z+8>>2]|0;if(!Z){K=174;break e}}Z=ba-(c[7691]|0)&aa;if(Z>>>0<2147483647){U=la(Z|0)|0;_=(U|0)==((c[da>>2]|0)+(c[ea>>2]|0)|0);X=_?Z:0;if(_)if((U|0)==(-1|0))fa=X;else{ga=U;ha=X;K=194;break d}else{ia=U;ja=Z;ka=X;K=184}}else fa=0}else K=174;while(0);do if((K|0)==174){$=la(0)|0;if(($|0)!=(-1|0)){q=$;X=c[7807]|0;Z=X+-1|0;if(!(Z&q))ma=S;else ma=S-q+(Z+q&0-X)|0;X=c[7796]|0;q=X+ma|0;if(ma>>>0>F>>>0&ma>>>0<2147483647){Z=c[7798]|0;if((Z|0)!=0?q>>>0<=X>>>0|q>>>0>Z>>>0:0){fa=0;break}Z=la(ma|0)|0;q=(Z|0)==($|0);X=q?ma:0;if(q){ga=$;ha=X;K=194;break d}else{ia=Z;ja=ma;ka=X;K=184}}else fa=0}else fa=0}while(0);f:do if((K|0)==184){X=0-ja|0;do if(ca>>>0>ja>>>0&(ja>>>0<2147483647&(ia|0)!=(-1|0))?(Z=c[7808]|0,$=T-ja+Z&0-Z,$>>>0<2147483647):0)if((la($|0)|0)==(-1|0)){la(X|0)|0;fa=ka;break f}else{na=$+ja|0;break}else na=ja;while(0);if((ia|0)==(-1|0))fa=ka;else{ga=ia;ha=na;K=194;break d}}while(0);c[7799]=c[7799]|4;pa=fa;K=191}else{pa=0;K=191}while(0);if((((K|0)==191?S>>>0<2147483647:0)?(fa=la(S|0)|0,S=la(0)|0,fa>>>0>>0&((fa|0)!=(-1|0)&(S|0)!=(-1|0))):0)?(na=S-fa|0,S=na>>>0>(F+40|0)>>>0,S):0){ga=fa;ha=S?na:pa;K=194}if((K|0)==194){pa=(c[7796]|0)+ha|0;c[7796]=pa;if(pa>>>0>(c[7797]|0)>>>0)c[7797]=pa;pa=c[7694]|0;g:do if(pa){na=31200;do{S=c[na>>2]|0;fa=na+4|0;ia=c[fa>>2]|0;if((ga|0)==(S+ia|0)){qa=S;ra=fa;sa=ia;ta=na;K=204;break}na=c[na+8>>2]|0}while((na|0)!=0);if(((K|0)==204?(c[ta+12>>2]&8|0)==0:0)?pa>>>0>>0&pa>>>0>=qa>>>0:0){c[ra>>2]=sa+ha;na=(c[7691]|0)+ha|0;ia=pa+8|0;fa=(ia&7|0)==0?0:0-ia&7;ia=na-fa|0;c[7694]=pa+fa;c[7691]=ia;c[pa+(fa+4)>>2]=ia|1;c[pa+(na+4)>>2]=40;c[7695]=c[7810];break}na=c[7692]|0;if(ga>>>0>>0){c[7692]=ga;ua=ga}else ua=na;na=ga+ha|0;ia=31200;while(1){if((c[ia>>2]|0)==(na|0)){va=ia;xa=ia;K=212;break}ia=c[ia+8>>2]|0;if(!ia){ya=31200;break}}if((K|0)==212)if(!(c[xa+12>>2]&8)){c[va>>2]=ga;ia=xa+4|0;c[ia>>2]=(c[ia>>2]|0)+ha;ia=ga+8|0;na=(ia&7|0)==0?0:0-ia&7;ia=ga+(ha+8)|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ga+(fa+ha)|0;S=na+F|0;ka=ga+S|0;ja=ia-(ga+na)-F|0;c[ga+(na+4)>>2]=F|3;h:do if((ia|0)!=(pa|0)){if((ia|0)==(c[7693]|0)){T=(c[7690]|0)+ja|0;c[7690]=T;c[7693]=ka;c[ga+(S+4)>>2]=T|1;c[ga+(T+S)>>2]=T;break}T=ha+4|0;ca=c[ga+(T+fa)>>2]|0;if((ca&3|0)==1){ma=ca&-8;ea=ca>>>3;i:do if(ca>>>0>=256){da=c[ga+((fa|24)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;do if((aa|0)==(ia|0)){ba=fa|16;X=ga+(T+ba)|0;$=c[X>>2]|0;if(!$){Z=ga+(ba+ha)|0;ba=c[Z>>2]|0;if(!ba){za=0;break}else{Ba=ba;Da=Z}}else{Ba=$;Da=X}while(1){X=Ba+20|0;$=c[X>>2]|0;if($){Ba=$;Da=X;continue}X=Ba+16|0;$=c[X>>2]|0;if(!$){Ea=Ba;Fa=Da;break}else{Ba=$;Da=X}}if(Fa>>>0>>0)Aa();else{c[Fa>>2]=0;za=Ea;break}}else{X=c[ga+((fa|8)+ha)>>2]|0;if(X>>>0>>0)Aa();$=X+12|0;if((c[$>>2]|0)!=(ia|0))Aa();Z=aa+8|0;if((c[Z>>2]|0)==(ia|0)){c[$>>2]=aa;c[Z>>2]=X;za=aa;break}else Aa()}while(0);if(!da)break;aa=c[ga+(ha+28+fa)>>2]|0;X=31056+(aa<<2)|0;do if((ia|0)!=(c[X>>2]|0)){if(da>>>0<(c[7692]|0)>>>0)Aa();Z=da+16|0;if((c[Z>>2]|0)==(ia|0))c[Z>>2]=za;else c[da+20>>2]=za;if(!za)break i}else{c[X>>2]=za;if(za)break;c[7689]=c[7689]&~(1<>>0>>0)Aa();c[za+24>>2]=da;X=fa|16;Z=c[ga+(X+ha)>>2]|0;do if(Z)if(Z>>>0>>0)Aa();else{c[za+16>>2]=Z;c[Z+24>>2]=za;break}while(0);Z=c[ga+(T+X)>>2]|0;if(!Z)break;if(Z>>>0<(c[7692]|0)>>>0)Aa();else{c[za+20>>2]=Z;c[Z+24>>2]=za;break}}else{Z=c[ga+((fa|8)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;da=30792+(ea<<1<<2)|0;do if((Z|0)!=(da|0)){if(Z>>>0>>0)Aa();if((c[Z+12>>2]|0)==(ia|0))break;Aa()}while(0);if((aa|0)==(Z|0)){c[7688]=c[7688]&~(1<>>0>>0)Aa();X=aa+8|0;if((c[X>>2]|0)==(ia|0)){Ga=X;break}Aa()}while(0);c[Z+12>>2]=aa;c[Ga>>2]=Z}while(0);Ha=ga+((ma|fa)+ha)|0;Ia=ma+ja|0}else{Ha=ia;Ia=ja}ea=Ha+4|0;c[ea>>2]=c[ea>>2]&-2;c[ga+(S+4)>>2]=Ia|1;c[ga+(Ia+S)>>2]=Ia;ea=Ia>>>3;if(Ia>>>0<256){T=ea<<1;ca=30792+(T<<2)|0;da=c[7688]|0;X=1<>2]|0;if($>>>0>=(c[7692]|0)>>>0){Ja=ea;Ka=$;break}Aa()}while(0);c[Ja>>2]=ka;c[Ka+12>>2]=ka;c[ga+(S+8)>>2]=Ka;c[ga+(S+12)>>2]=ca;break}T=Ia>>>8;do if(!T)La=0;else{if(Ia>>>0>16777215){La=31;break}X=(T+1048320|0)>>>16&8;da=T<>>16&4;$=da<>>16&2;ea=14-(ma|X|da)+($<>>15)|0;La=Ia>>>(ea+7|0)&1|ea<<1}while(0);T=31056+(La<<2)|0;c[ga+(S+28)>>2]=La;c[ga+(S+20)>>2]=0;c[ga+(S+16)>>2]=0;ca=c[7689]|0;ea=1<>2]=ka;c[ga+(S+24)>>2]=T;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break}ea=c[T>>2]|0;j:do if((c[ea+4>>2]&-8|0)!=(Ia|0)){T=Ia<<((La|0)==31?0:25-(La>>>1)|0);ca=ea;while(1){da=ca+16+(T>>>31<<2)|0;$=c[da>>2]|0;if(!$){Ma=da;Na=ca;break}if((c[$+4>>2]&-8|0)==(Ia|0)){Oa=$;break j}else{T=T<<1;ca=$}}if(Ma>>>0<(c[7692]|0)>>>0)Aa();else{c[Ma>>2]=ka;c[ga+(S+24)>>2]=Na;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break h}}else Oa=ea;while(0);ea=Oa+8|0;ca=c[ea>>2]|0;T=c[7692]|0;if(ca>>>0>=T>>>0&Oa>>>0>=T>>>0){c[ca+12>>2]=ka;c[ea>>2]=ka;c[ga+(S+8)>>2]=ca;c[ga+(S+12)>>2]=Oa;c[ga+(S+24)>>2]=0;break}else Aa()}else{ca=(c[7691]|0)+ja|0;c[7691]=ca;c[7694]=ka;c[ga+(S+4)>>2]=ca|1}while(0);n=ga+(na|8)|0;return n|0}else ya=31200;while(1){S=c[ya>>2]|0;if(S>>>0<=pa>>>0?(ka=c[ya+4>>2]|0,ja=S+ka|0,ja>>>0>pa>>>0):0){Pa=S;Qa=ka;Ra=ja;break}ya=c[ya+8>>2]|0}na=Pa+(Qa+-39)|0;ja=Pa+(Qa+-47+((na&7|0)==0?0:0-na&7))|0;na=pa+16|0;ka=ja>>>0>>0?pa:ja;ja=ka+8|0;S=ga+8|0;ia=(S&7|0)==0?0:0-S&7;S=ha+-40-ia|0;c[7694]=ga+ia;c[7691]=S;c[ga+(ia+4)>>2]=S|1;c[ga+(ha+-36)>>2]=40;c[7695]=c[7810];S=ka+4|0;c[S>>2]=27;c[ja>>2]=c[7800];c[ja+4>>2]=c[7801];c[ja+8>>2]=c[7802];c[ja+12>>2]=c[7803];c[7800]=ga;c[7801]=ha;c[7803]=0;c[7802]=ja;ja=ka+28|0;c[ja>>2]=7;if((ka+32|0)>>>0>>0){ia=ja;do{ja=ia;ia=ia+4|0;c[ia>>2]=7}while((ja+8|0)>>>0>>0)}if((ka|0)!=(pa|0)){ia=ka-pa|0;c[S>>2]=c[S>>2]&-2;c[pa+4>>2]=ia|1;c[ka>>2]=ia;ja=ia>>>3;if(ia>>>0<256){fa=ja<<1;ca=30792+(fa<<2)|0;ea=c[7688]|0;T=1<>2]|0;if(Z>>>0<(c[7692]|0)>>>0)Aa();else{Sa=ja;Ta=Z}}else{c[7688]=ea|T;Sa=30792+(fa+2<<2)|0;Ta=ca}c[Sa>>2]=pa;c[Ta+12>>2]=pa;c[pa+8>>2]=Ta;c[pa+12>>2]=ca;break}ca=ia>>>8;if(ca)if(ia>>>0>16777215)Ua=31;else{fa=(ca+1048320|0)>>>16&8;T=ca<>>16&4;ea=T<>>16&2;Z=14-(ca|fa|T)+(ea<>>15)|0;Ua=ia>>>(Z+7|0)&1|Z<<1}else Ua=0;Z=31056+(Ua<<2)|0;c[pa+28>>2]=Ua;c[pa+20>>2]=0;c[na>>2]=0;T=c[7689]|0;ea=1<>2]=pa;c[pa+24>>2]=Z;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break}ea=c[Z>>2]|0;k:do if((c[ea+4>>2]&-8|0)!=(ia|0)){Z=ia<<((Ua|0)==31?0:25-(Ua>>>1)|0);T=ea;while(1){fa=T+16+(Z>>>31<<2)|0;ca=c[fa>>2]|0;if(!ca){Va=fa;Wa=T;break}if((c[ca+4>>2]&-8|0)==(ia|0)){Xa=ca;break k}else{Z=Z<<1;T=ca}}if(Va>>>0<(c[7692]|0)>>>0)Aa();else{c[Va>>2]=pa;c[pa+24>>2]=Wa;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break g}}else Xa=ea;while(0);ea=Xa+8|0;ia=c[ea>>2]|0;na=c[7692]|0;if(ia>>>0>=na>>>0&Xa>>>0>=na>>>0){c[ia+12>>2]=pa;c[ea>>2]=pa;c[pa+8>>2]=ia;c[pa+12>>2]=Xa;c[pa+24>>2]=0;break}else Aa()}}else{ia=c[7692]|0;if((ia|0)==0|ga>>>0>>0)c[7692]=ga;c[7800]=ga;c[7801]=ha;c[7803]=0;c[7697]=c[7806];c[7696]=-1;ia=0;do{ea=ia<<1;na=30792+(ea<<2)|0;c[30792+(ea+3<<2)>>2]=na;c[30792+(ea+2<<2)>>2]=na;ia=ia+1|0}while((ia|0)!=32);ia=ga+8|0;na=(ia&7|0)==0?0:0-ia&7;ia=ha+-40-na|0;c[7694]=ga+na;c[7691]=ia;c[ga+(na+4)>>2]=ia|1;c[ga+(ha+-36)>>2]=40;c[7695]=c[7810]}while(0);ha=c[7691]|0;if(ha>>>0>F>>>0){ga=ha-F|0;c[7691]=ga;ha=c[7694]|0;c[7694]=ha+F;c[ha+(F+4)>>2]=ga|1;c[ha+4>>2]=F|3;n=ha+8|0;return n|0}}c[(wa()|0)>>2]=12;n=0;return n|0}function Wb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;if(!a)return;b=a+-8|0;d=c[7692]|0;if(b>>>0>>0)Aa();e=c[a+-4>>2]|0;f=e&3;if((f|0)==1)Aa();g=e&-8;h=a+(g+-8)|0;do if(!(e&1)){i=c[b>>2]|0;if(!f)return;j=-8-i|0;k=a+j|0;l=i+g|0;if(k>>>0>>0)Aa();if((k|0)==(c[7693]|0)){m=a+(g+-4)|0;n=c[m>>2]|0;if((n&3|0)!=3){o=k;p=l;break}c[7690]=l;c[m>>2]=n&-2;c[a+(j+4)>>2]=l|1;c[h>>2]=l;return}n=i>>>3;if(i>>>0<256){i=c[a+(j+8)>>2]|0;m=c[a+(j+12)>>2]|0;q=30792+(n<<1<<2)|0;if((i|0)!=(q|0)){if(i>>>0>>0)Aa();if((c[i+12>>2]|0)!=(k|0))Aa()}if((m|0)==(i|0)){c[7688]=c[7688]&~(1<>>0>>0)Aa();q=m+8|0;if((c[q>>2]|0)==(k|0))r=q;else Aa()}else r=m+8|0;c[i+12>>2]=m;c[r>>2]=i;o=k;p=l;break}i=c[a+(j+24)>>2]|0;m=c[a+(j+12)>>2]|0;do if((m|0)==(k|0)){q=a+(j+20)|0;n=c[q>>2]|0;if(!n){s=a+(j+16)|0;t=c[s>>2]|0;if(!t){u=0;break}else{v=t;w=s}}else{v=n;w=q}while(1){q=v+20|0;n=c[q>>2]|0;if(n){v=n;w=q;continue}q=v+16|0;n=c[q>>2]|0;if(!n){x=v;y=w;break}else{v=n;w=q}}if(y>>>0>>0)Aa();else{c[y>>2]=0;u=x;break}}else{q=c[a+(j+8)>>2]|0;if(q>>>0>>0)Aa();n=q+12|0;if((c[n>>2]|0)!=(k|0))Aa();s=m+8|0;if((c[s>>2]|0)==(k|0)){c[n>>2]=m;c[s>>2]=q;u=m;break}else Aa()}while(0);if(i){m=c[a+(j+28)>>2]|0;q=31056+(m<<2)|0;if((k|0)==(c[q>>2]|0)){c[q>>2]=u;if(!u){c[7689]=c[7689]&~(1<>>0<(c[7692]|0)>>>0)Aa();m=i+16|0;if((c[m>>2]|0)==(k|0))c[m>>2]=u;else c[i+20>>2]=u;if(!u){o=k;p=l;break}}m=c[7692]|0;if(u>>>0>>0)Aa();c[u+24>>2]=i;q=c[a+(j+16)>>2]|0;do if(q)if(q>>>0>>0)Aa();else{c[u+16>>2]=q;c[q+24>>2]=u;break}while(0);q=c[a+(j+20)>>2]|0;if(q)if(q>>>0<(c[7692]|0)>>>0)Aa();else{c[u+20>>2]=q;c[q+24>>2]=u;o=k;p=l;break}else{o=k;p=l}}else{o=k;p=l}}else{o=b;p=g}while(0);if(o>>>0>=h>>>0)Aa();b=a+(g+-4)|0;u=c[b>>2]|0;if(!(u&1))Aa();if(!(u&2)){if((h|0)==(c[7694]|0)){d=(c[7691]|0)+p|0;c[7691]=d;c[7694]=o;c[o+4>>2]=d|1;if((o|0)!=(c[7693]|0))return;c[7693]=0;c[7690]=0;return}if((h|0)==(c[7693]|0)){d=(c[7690]|0)+p|0;c[7690]=d;c[7693]=o;c[o+4>>2]=d|1;c[o+d>>2]=d;return}d=(u&-8)+p|0;x=u>>>3;do if(u>>>0>=256){y=c[a+(g+16)>>2]|0;w=c[a+(g|4)>>2]|0;do if((w|0)==(h|0)){v=a+(g+12)|0;r=c[v>>2]|0;if(!r){f=a+(g+8)|0;e=c[f>>2]|0;if(!e){z=0;break}else{A=e;B=f}}else{A=r;B=v}while(1){v=A+20|0;r=c[v>>2]|0;if(r){A=r;B=v;continue}v=A+16|0;r=c[v>>2]|0;if(!r){C=A;D=B;break}else{A=r;B=v}}if(D>>>0<(c[7692]|0)>>>0)Aa();else{c[D>>2]=0;z=C;break}}else{v=c[a+g>>2]|0;if(v>>>0<(c[7692]|0)>>>0)Aa();r=v+12|0;if((c[r>>2]|0)!=(h|0))Aa();f=w+8|0;if((c[f>>2]|0)==(h|0)){c[r>>2]=w;c[f>>2]=v;z=w;break}else Aa()}while(0);if(y){w=c[a+(g+20)>>2]|0;l=31056+(w<<2)|0;if((h|0)==(c[l>>2]|0)){c[l>>2]=z;if(!z){c[7689]=c[7689]&~(1<>>0<(c[7692]|0)>>>0)Aa();w=y+16|0;if((c[w>>2]|0)==(h|0))c[w>>2]=z;else c[y+20>>2]=z;if(!z)break}w=c[7692]|0;if(z>>>0>>0)Aa();c[z+24>>2]=y;l=c[a+(g+8)>>2]|0;do if(l)if(l>>>0>>0)Aa();else{c[z+16>>2]=l;c[l+24>>2]=z;break}while(0);l=c[a+(g+12)>>2]|0;if(l)if(l>>>0<(c[7692]|0)>>>0)Aa();else{c[z+20>>2]=l;c[l+24>>2]=z;break}}}else{l=c[a+g>>2]|0;w=c[a+(g|4)>>2]|0;y=30792+(x<<1<<2)|0;if((l|0)!=(y|0)){if(l>>>0<(c[7692]|0)>>>0)Aa();if((c[l+12>>2]|0)!=(h|0))Aa()}if((w|0)==(l|0)){c[7688]=c[7688]&~(1<>>0<(c[7692]|0)>>>0)Aa();y=w+8|0;if((c[y>>2]|0)==(h|0))E=y;else Aa()}else E=w+8|0;c[l+12>>2]=w;c[E>>2]=l}while(0);c[o+4>>2]=d|1;c[o+d>>2]=d;if((o|0)==(c[7693]|0)){c[7690]=d;return}else F=d}else{c[b>>2]=u&-2;c[o+4>>2]=p|1;c[o+p>>2]=p;F=p}p=F>>>3;if(F>>>0<256){u=p<<1;b=30792+(u<<2)|0;d=c[7688]|0;E=1<>2]|0;if(h>>>0<(c[7692]|0)>>>0)Aa();else{G=p;H=h}}else{c[7688]=d|E;G=30792+(u+2<<2)|0;H=b}c[G>>2]=o;c[H+12>>2]=o;c[o+8>>2]=H;c[o+12>>2]=b;return}b=F>>>8;if(b)if(F>>>0>16777215)I=31;else{H=(b+1048320|0)>>>16&8;G=b<>>16&4;u=G<>>16&2;E=14-(b|H|G)+(u<>>15)|0;I=F>>>(E+7|0)&1|E<<1}else I=0;E=31056+(I<<2)|0;c[o+28>>2]=I;c[o+20>>2]=0;c[o+16>>2]=0;G=c[7689]|0;u=1<>2]|0;b:do if((c[H+4>>2]&-8|0)!=(F|0)){b=F<<((I|0)==31?0:25-(I>>>1)|0);d=H;while(1){h=d+16+(b>>>31<<2)|0;p=c[h>>2]|0;if(!p){J=h;K=d;break}if((c[p+4>>2]&-8|0)==(F|0)){L=p;break b}else{b=b<<1;d=p}}if(J>>>0<(c[7692]|0)>>>0)Aa();else{c[J>>2]=o;c[o+24>>2]=K;c[o+12>>2]=o;c[o+8>>2]=o;break a}}else L=H;while(0);H=L+8|0;d=c[H>>2]|0;b=c[7692]|0;if(d>>>0>=b>>>0&L>>>0>=b>>>0){c[d+12>>2]=o;c[H>>2]=o;c[o+8>>2]=d;c[o+12>>2]=L;c[o+24>>2]=0;break}else Aa()}else{c[7689]=G|u;c[E>>2]=o;c[o+24>>2]=E;c[o+12>>2]=o;c[o+8>>2]=o}while(0);o=(c[7696]|0)+-1|0;c[7696]=o;if(!o)M=31208;else return;while(1){o=c[M>>2]|0;if(!o)break;else M=o+8|0}c[7696]=-1;return}function Xb(){}function Yb(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 Zb(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){B=b<>>32-c;return a<>0]|0)c=c+1|0;return c-b|0}function $b(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ma(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function ac(b,c){b=b|0;c=c|0;var d=0;do{a[b+d>>0]=a[c+d>>0];d=d+1|0}while(a[c+(d-1)>>0]|0);return b|0} // EMSCRIPTEN_END_FUNCS return{_filtcoef:hb,_free:Wb,_wave_transform:Gb,_wtoutputlength:Fb,_memset:Yb,_malloc:Vb,_memcpy:$b,_strlen:_b,_inv_wave_transform:Hb,_filtlength:gb,_cwave_transform:Ib,_strcpy:ac,_bitshift64Shl:Zb,runPostSets:Xb,stackAlloc:Ka,stackSave:La,stackRestore:Ma,establishStackSpace:Na,setThrew:Oa,setTempRet0:Ra,getTempRet0:Sa}}) // EMSCRIPTEN_END_ASM (Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _wtoutputlength=Module["_wtoutputlength"]=asm["_wtoutputlength"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _wave_transform=Module["_wave_transform"]=asm["_wave_transform"];var _filtcoef=Module["_filtcoef"]=asm["_filtcoef"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _strlen=Module["_strlen"]=asm["_strlen"];var _inv_wave_transform=Module["_inv_wave_transform"]=asm["_inv_wave_transform"];var _filtlength=Module["_filtlength"]=asm["_filtlength"];var _cwave_transform=Module["_cwave_transform"]=asm["_cwave_transform"];var _strcpy=Module["_strcpy"]=asm["_strcpy"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];var i64Math=null;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(ENVIRONMENT_IS_WEB&&preloadStartTime!==null){Module.printErr("pre-main prep time: "+(Date.now()-preloadStartTime)+" ms")}if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run()