forked from quiet/quiet-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathquiet-emscripten.js
20 lines (13 loc) · 631 KB
/
quiet-emscripten.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if(!ret&&filename!=nodePath["resolve"](filename)){filename=path.join(__dirname,"..","src",filename);ret=nodeFS["readFileSync"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};Module["readAsync"]=function readAsync(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)};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.warn(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]}}moduleOverrides=undefined;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){assert(args.length==sig.length-1);if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);assert("dynCall_"+sig in Module,"bad function pointer type - no table for sig '"+sig+"'");return Module["dynCall_"+sig].apply(null,args)}else{assert(sig.length==1);assert("dynCall_"+sig in Module,"bad function pointer type - no table for sig '"+sig+"'");return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,arguments)}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;assert((STACKTOP|0)<(STACK_MAX|0)|0)|0;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+(assert(!staticSealed),size)|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=DYNAMICTOP;DYNAMICTOP=DYNAMICTOP+(assert(DYNAMICTOP>0),size)|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}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;assert(returnType!=="array",'Return type should not be "array".');if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if((!opts||!opts.async)&&typeof EmterpreterAsync==="object"){assert(!EmterpreterAsync.state,"cannot start async op with normal JS calling ccall")}if(opts&&opts.async)assert(!returnType,"async ccalls cannot return values");if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type==="number"}));var numericRet=returnType!=="string";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return"$"+i}));var funcstr="(function("+argNames.join(",")+") {";var nargs=argTypes.length;if(!numericArgs){ensureJSsource();funcstr+="var stack = "+JSsource["stackSave"].body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type==="number")continue;var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";";funcstr+=convertCode.body+";";funcstr+=arg+"=("+convertCode.returnValue+");"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}funcstr+="if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }";if(!numericArgs){ensureJSsource();funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["ccall"]=ccall;Module["cwrap"]=cwrap;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}assert(type,"Must know what type to store in allocate!");if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(typeof _sbrk!=="undefined"&&!_sbrk.called||!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}Module["getMemory"]=getMemory;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){assert(ptr+i<TOTAL_MEMORY);t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){assert(typeof maxBytesToWrite=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function 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){return func}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function 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 buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK){if(totalMemory<16*1024*1024){totalMemory*=2}else{totalMemory+=16*1024*1024}}if(totalMemory!==TOTAL_MEMORY){Module.printErr("increasing TOTAL_MEMORY to "+totalMemory+" to be compliant with the asm.js spec (and given that TOTAL_STACK="+TOTAL_STACK+")");TOTAL_MEMORY=totalMemory}assert(typeof Int32Array!=="undefined"&&typeof Float64Array!=="undefined"&&!!(new Int32Array(1))["subarray"]&&!!(new Int32Array(1))["set"],"JS engine does not provide full typed array support");if(Module["buffer"]){buffer=Module["buffer"];assert(buffer.byteLength===TOTAL_MEMORY,"provided buffer should be "+TOTAL_MEMORY+" bytes, but it is "+buffer.byteLength)}else{buffer=new ArrayBuffer(TOTAL_MEMORY)}updateGlobalBufferViews();HEAP32[0]=255;if(HEAPU8[0]!==255||HEAPU8[3]!==0)throw"Typed arrays 2 must be run on a little-endian system";Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.");chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i<array.length){var chr=array[i];HEAP8[buffer+i>>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i<array.length;i++){HEAP8[buffer++>>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){assert(str.charCodeAt(i)===str.charCodeAt(i)&255);HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;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;var runDependencyTracking={};function getUniqueRunDependency(id){var orig=id;while(1){if(!runDependencyTracking[id])return id;id=orig+Math.random()}return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!=="undefined"){runDependencyWatcher=setInterval((function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;Module.printErr("still waiting on run dependencies:")}Module.printErr("dependency: "+dep)}if(shown){Module.printErr("(end of list)")}}),1e4)}}else{Module.printErr("warning: run dependency added without ID")}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{Module.printErr("warning: run dependency removed without ID")}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+47072;__ATINIT__.push();memoryInitializer="quiet-emscripten.js.mem";var tempDoublePtr=STATICTOP;STATICTOP+=16;assert(tempDoublePtr%8==0);Module["_i64Subtract"]=_i64Subtract;function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}Module["_roundf"]=_roundf;Module["_memset"]=_memset;function _pthread_mutex_lock(){}function _pthread_cond_signal(){}function _abort(){Module["abort"]()}function _pthread_cond_destroy(){}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}function _pthread_mutex_init(){}function ___lock(){}function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}var _llvm_fabs_f64=Math_abs;function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);Runtime.stackRestore(ret)}var PTHREAD_SPECIFIC_NEXT_KEY=1;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 _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _llvm_ctpop_i32(x){var ret=0;while(x){if(x&1)ret++;x>>>=1}return ret}var _llvm_pow_f32=Math_pow;var PROCINFO={ppid:1,pid:42,sid:42,pgid:42};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"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;else Module.printErr("failed to set errno from JS");return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")})};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}for(var i=0;i<length;i++){try{stream.tty.ops.put_char(stream.tty,buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})},default_tty_ops:{get_char:(function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null);if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents}),getFileDataAsTypedArray:(function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)}),expandFileStorage:(function(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity)node.contents.push(0)}),resizeFileStorage:(function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize}),node_ops:{getattr:(function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}}),lookup:(function(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT]}),mknod:(function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)}),rename:(function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir}),unlink:(function(parent,name){delete parent.contents[name]}),rmdir:(function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete parent.contents[name]}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node}),readlink:(function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return node.link})},stream_ops:{read:(function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size}),write:(function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){assert(position===0,"canOwn must imply no weird position inside the file");node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}),allocate:(function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0})}};var IDBFS={dbs:{},indexedDB:(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:(function(mount){return MEMFS.mount.apply(null,arguments)}),syncfs:(function(mount,populate,callback){IDBFS.getLocalSet(mount,(function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,(function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)}))}))}),getDB:(function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}req.onupgradeneeded=(function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),getLocalSet:(function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return(function(p){return PATH.join2(root,p)})}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})}),getRemoteSet:(function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,(function(err,db){if(err)return callback(err);var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=(function(e){callback(this.error);e.preventDefault()});var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=(function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()})}))}),loadLocalEntry:(function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}}),storeLocalEntry:(function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{encoding:"binary",canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)}),removeLocalEntry:(function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)}),loadRemoteEntry:(function(store,path,callback){var req=store.get(path);req.onsuccess=(function(event){callback(null,event.target.result)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),reconcile:(function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach((function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~32768;flags&=~524288;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i<res;i++){buffer[offset+i]=nbuffer[i]}}return res}),write:(function(stream,buffer,offset,length,position){var nbuffer=new Buffer(buffer.subarray(offset,offset+length));var res;try{res=fs.writeSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}return res}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,curr,WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],(function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)}));(mount.opts["blobs"]||[]).forEach((function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])}));(mount.opts["packages"]||[]).forEach((function(pack){pack["metadata"].files.forEach((function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))}))}));return root}),createNode:(function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node}),node_ops:{getattr:(function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}}),lookup:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}),mknod:(function(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rename:(function(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),unlink:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rmdir:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readdir:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),symlink:(function(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readlink:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)})},stream_ops:{read:(function(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno];if(this.stack)this.stack=demangleAll(this.stack)};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}}),getMode:(function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}),joinPath:(function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path}),absolutePath:(function(relative,base){return PATH.resolve(base,relative)}),standardizePath:(function(path){return PATH.normalize(path)}),findObject:(function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}}),analyzePath:(function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret}),createFolder:(function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)}),createPath:(function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current}),createFile:(function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)}),createDataFile:(function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node}),createDevice:(function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:(function(stream){stream.seekable=false}),close:(function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}}),read:(function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})});return FS.mkdev(path,mode,dev)}),createLink:(function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)}),forceLoadFile:(function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(ERRNO_CODES.EIO);return success}),createLazyFile:(function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";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]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}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.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},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.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node}),createPreloadedFile:(function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach((function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,(function(){if(onerror)onerror();removeRunDependency(dep)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,(function(byteArray){processData(byteArray)}),onerror)}else{processData(url)}}),indexedDB:(function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB}),DB_NAME:(function(){return"EM_FS_"+window.location.pathname}),DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror}),loadFilesFromDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror})};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:(function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path}),doStat:(function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret}),doWritev:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall20(which,varargs){SYSCALLS.varargs=varargs;try{return PROCINFO.pid}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function _pthread_cond_timedwait(){return 0}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;Module["_memmove"]=_memmove;function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}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["_bitshift64Lshr"]=_bitshift64Lshr;function _sched_yield(){return 0}function _pthread_cond_init(){}function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}Module["_i64Add"]=_i64Add;function _pthread_mutex_unlock(){}function ___syscall3(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.read(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _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}Module["_bitshift64Shl"]=_bitshift64Shl;function _llvm_stacksave(){var self=_llvm_stacksave;if(!self.LLVM_SAVEDSTACKS){self.LLVM_SAVEDSTACKS=[]}self.LLVM_SAVEDSTACKS.push(Runtime.stackSave());return self.LLVM_SAVEDSTACKS.length-1}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function _pthread_mutex_destroy(){}function _pthread_cond_wait(){return 0}var _llvm_fabs_f32=Math_abs;function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE<TOTAL_MEMORY,"TOTAL_MEMORY not big enough for stack");var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_DYNAMIC);function nullFunc_iiiiiiii(x){Module["printErr"]("Invalid function pointer called with signature 'iiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_iiii(x){Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_vi(x){Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_ii(x){Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_idiii(x){Module["printErr"]("Invalid function pointer called with signature 'idiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_viii(x){Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_v(x){Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_iiiii(x){Module["printErr"]("Invalid function pointer called with signature 'iiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_iii(x){Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function nullFunc_viiii(x){Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)");Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x)}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){try{return Module["dynCall_iiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_idiii(index,a1,a2,a3,a4){try{return Module["dynCall_idiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"nullFunc_iiiiiiii":nullFunc_iiiiiiii,"nullFunc_iiii":nullFunc_iiii,"nullFunc_vi":nullFunc_vi,"nullFunc_ii":nullFunc_ii,"nullFunc_idiii":nullFunc_idiii,"nullFunc_viii":nullFunc_viii,"nullFunc_v":nullFunc_v,"nullFunc_iiiii":nullFunc_iiiii,"nullFunc_iii":nullFunc_iii,"nullFunc_viiii":nullFunc_viiii,"invoke_iiiiiiii":invoke_iiiiiiii,"invoke_iiii":invoke_iiii,"invoke_vi":invoke_vi,"invoke_ii":invoke_ii,"invoke_idiii":invoke_idiii,"invoke_viii":invoke_viii,"invoke_v":invoke_v,"invoke_iiiii":invoke_iiiii,"invoke_iii":invoke_iii,"invoke_viiii":invoke_viiii,"_pthread_cleanup_pop":_pthread_cleanup_pop,"___syscall221":___syscall221,"_pthread_cond_wait":_pthread_cond_wait,"_pthread_key_create":_pthread_key_create,"_sched_yield":_sched_yield,"_abort":_abort,"_llvm_fabs_f64":_llvm_fabs_f64,"_pthread_cleanup_push":_pthread_cleanup_push,"___syscall20":___syscall20,"_llvm_stackrestore":_llvm_stackrestore,"___assert_fail":___assert_fail,"_pthread_cond_init":_pthread_cond_init,"_pthread_cond_destroy":_pthread_cond_destroy,"___setErrNo":___setErrNo,"_sbrk":_sbrk,"_llvm_pow_f32":_llvm_pow_f32,"_emscripten_memcpy_big":_emscripten_memcpy_big,"__exit":__exit,"_pthread_getspecific":_pthread_getspecific,"_pthread_self":_pthread_self,"_pthread_cond_signal":_pthread_cond_signal,"_llvm_fabs_f32":_llvm_fabs_f32,"_pthread_mutex_destroy":_pthread_mutex_destroy,"_pthread_mutex_unlock":_pthread_mutex_unlock,"_pthread_once":_pthread_once,"_llvm_stacksave":_llvm_stacksave,"___syscall54":___syscall54,"___unlock":___unlock,"_pthread_setspecific":_pthread_setspecific,"___syscall3":___syscall3,"_sysconf":_sysconf,"___lock":___lock,"_pthread_cond_timedwait":_pthread_cond_timedwait,"___syscall6":___syscall6,"___syscall5":___syscall5,"_llvm_ctpop_i32":_llvm_ctpop_i32,"_time":_time,"_pthread_mutex_lock":_pthread_mutex_lock,"_gettimeofday":_gettimeofday,"___syscall140":___syscall140,"_pthread_mutex_init":_pthread_mutex_init,"_exit":_exit,"___syscall145":___syscall145,"___syscall146":___syscall146,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM
var asm=(function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=global.Math.floor;var N=global.Math.abs;var O=global.Math.sqrt;var P=global.Math.pow;var Q=global.Math.cos;var R=global.Math.sin;var S=global.Math.tan;var T=global.Math.acos;var U=global.Math.asin;var V=global.Math.atan;var W=global.Math.atan2;var X=global.Math.exp;var Y=global.Math.log;var Z=global.Math.ceil;var _=global.Math.imul;var $=global.Math.min;var aa=global.Math.clz32;var ba=env.abort;var ca=env.assert;var da=env.nullFunc_iiiiiiii;var ea=env.nullFunc_iiii;var fa=env.nullFunc_vi;var ga=env.nullFunc_ii;var ha=env.nullFunc_idiii;var ia=env.nullFunc_viii;var ja=env.nullFunc_v;var ka=env.nullFunc_iiiii;var la=env.nullFunc_iii;var ma=env.nullFunc_viiii;var na=env.invoke_iiiiiiii;var oa=env.invoke_iiii;var pa=env.invoke_vi;var qa=env.invoke_ii;var ra=env.invoke_idiii;var sa=env.invoke_viii;var ta=env.invoke_v;var ua=env.invoke_iiiii;var va=env.invoke_iii;var wa=env.invoke_viiii;var xa=env._pthread_cleanup_pop;var ya=env.___syscall221;var za=env._pthread_cond_wait;var Aa=env._pthread_key_create;var Ba=env._sched_yield;var Ca=env._abort;var Da=env._llvm_fabs_f64;var Ea=env._pthread_cleanup_push;var Fa=env.___syscall20;var Ga=env._llvm_stackrestore;var Ha=env.___assert_fail;var Ia=env._pthread_cond_init;var Ja=env._pthread_cond_destroy;var Ka=env.___setErrNo;var La=env._sbrk;var Ma=env._llvm_pow_f32;var Na=env._emscripten_memcpy_big;var Oa=env.__exit;var Pa=env._pthread_getspecific;var Qa=env._pthread_self;var Ra=env._pthread_cond_signal;var Sa=env._llvm_fabs_f32;var Ta=env._pthread_mutex_destroy;var Ua=env._pthread_mutex_unlock;var Va=env._pthread_once;var Wa=env._llvm_stacksave;var Xa=env.___syscall54;var Ya=env.___unlock;var Za=env._pthread_setspecific;var _a=env.___syscall3;var $a=env._sysconf;var ab=env.___lock;var bb=env._pthread_cond_timedwait;var cb=env.___syscall6;var db=env.___syscall5;var eb=env._llvm_ctpop_i32;var fb=env._time;var gb=env._pthread_mutex_lock;var hb=env._gettimeofday;var ib=env.___syscall140;var jb=env._pthread_mutex_init;var kb=env._exit;var lb=env.___syscall145;var mb=env.___syscall146;var nb=0.0;
// EMSCRIPTEN_START_FUNCS
function Uf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;e=b+128|0;if(!(c[e>>2]|0)){g[a>>2]=0.0;g[a+4>>2]=0.0;return}h=b+136|0;switch(c[h>>2]|0){case 0:{f=b+120|0;e=c[f>>2]|0;i=e+1|0;c[f>>2]=i;b=c[b+64>>2]|0;d=c[b+(e<<3)>>2]|0;e=c[b+(e<<3)+4>>2]|0;if((i|0)==64){c[f>>2]=0;c[h>>2]=1}c[a>>2]=d;c[a+4>>2]=e;return}case 1:{d=b+120|0;f=c[d>>2]|0;i=f+1|0;c[d>>2]=i;j=c[b+100>>2]|0;e=c[j+(f<<3)>>2]|0;f=c[j+(f<<3)+4>>2]|0;if((i|0)==(c[b+96>>2]|0)){c[d>>2]=0;c[h>>2]=2}c[a>>2]=e;c[a+4>>2]=f;return}case 2:{d=b+120|0;f=c[d>>2]|0;j=f+1|0;c[d>>2]=j;i=c[b+116>>2]|0;e=c[i+(f<<3)>>2]|0;f=c[i+(f<<3)+4>>2]|0;if((j|0)==(c[b+112>>2]|0)){c[d>>2]=0;c[h>>2]=3}c[a>>2]=e;c[a+4>>2]=f;return}case 3:{d=b+120|0;j=(c[d>>2]|0)+1|0;c[d>>2]=j;if((j|0)==(c[b+4>>2]<<1|0)){c[d>>2]=0;c[b+132>>2]=1;c[e>>2]=0}c[a>>2]=0;c[a+4>>2]=0;return}default:{Qp(25744,74,1,c[2348]|0)|0;kb(1)}}}function Vf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0,l=0.0;h=Xp(244)|0;c[h>>2]=a;c[h+4>>2]=b;a=h+64|0;c[a>>2]=7;b=h+68|0;g[b>>2]=.30000001192092896;d=h+116|0;c[d>>2]=Xp(512)|0;c[h+120>>2]=Xp(512)|0;e=Qj(7,137,1)|0;f=0;do{k=(Tj(e)|0)!=0;i=c[d>>2]|0;g[i+(f<<3)>>2]=k?.7071067690849304:-.7071067690849304;g[i+(f<<3)+4>>2]=0.0;i=(Tj(e)|0)!=0;l=i?.7071067811865476:-.7071067811865476;i=c[d>>2]|0;k=i+(f<<3)|0;i=i+(f<<3)+4|0;j=l+ +g[i>>2];g[k>>2]=+g[k>>2]+l*0.0;g[i>>2]=j;f=f+1|0}while((f|0)!=64);Sj(e);k=eh(c[d>>2]|0,64,7,2,c[a>>2]|0,+g[b>>2])|0;c[h+72>>2]=k;dh(k,.5);c[h+104>>2]=32;k=h+100|0;c[k>>2]=Me(7,32,2,c[a>>2]|0,+g[b>>2])|0;f=h+92|0;c[f>>2]=zj(0)|0;e=zj(0)|0;i=h+96|0;c[i>>2]=e;Cj(e,9.999999747378752e-05);c[h+128>>2]=0;c[h+140>>2]=0;c[h+160>>2]=0;c[h+136>>2]=0;c[h+148>>2]=0;c[h+152>>2]=14;c[h+124>>2]=0;Wf(h,0)|0;c[h+188>>2]=di(48)|0;e=h+208|0;c[e>>2]=64;b=ph()|0;d=h+200|0;c[d>>2]=b;rh(b,c[e>>2]|0,5,1,7,47)|0;d=sh(c[d>>2]|0)|0;c[h+196>>2]=d;c[h+192>>2]=Xp(d<<3)|0;c[h+204>>2]=Xp(c[e>>2]|0)|0;c[h+184>>2]=0;yl(h+48|0);e=h+228|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;Dj(c[f>>2]|0);Dj(c[i>>2]|0);Ie(c[k>>2]|0);c[h+224>>2]=0;c[h+216>>2]=0;c[h+220>>2]=0;g[h+8>>2]=0.0;return h|0}function Wf(a,b){a=a|0;b=b|0;var d=0;b=(b|0)==0?572:b;if(((c[b>>2]|0)+-1|0)>>>0>5){Qp(25819,72,1,c[2348]|0)|0;kb(1)}if(!(c[b+4>>2]|0)){d=c[2348]|0;Qp(25892,72,1,d)|0;kb(1)}if(!(c[b+8>>2]|0)){d=c[2348]|0;Qp(25892,72,1,d)|0;kb(1)}if(!(c[b+12>>2]|0)){Qp(25965,79,1,c[2348]|0)|0;kb(1)}else{gq(a+168|0,b|0,16)|0;Xf(a,c[a+152>>2]|0);return 0}return 0}function Xf(a,b){a=a|0;b=b|0;var d=0,e=0;c[a+152>>2]=b;e=b+6|0;b=a+156|0;c[b>>2]=e;d=a+160|0;c[d>>2]=_p(c[d>>2]|0,e)|0;d=a+148|0;e=c[d>>2]|0;if(e|0)qh(e);e=ph()|0;c[d>>2]=e;rh(e,c[b>>2]|0,c[a+168>>2]|0,c[a+172>>2]|0,c[a+176>>2]|0,c[a+180>>2]|0)|0;e=sh(c[d>>2]|0)|0;b=a+144|0;c[b>>2]=e;d=a+140|0;c[d>>2]=_p(c[d>>2]|0,e<<3)|0;d=a+136|0;e=c[d>>2]|0;if(e|0)Fh(e);e=Eh(c[b>>2]|0,16)|0;c[d>>2]=e;e=Gh(e)|0;c[a+132>>2]=e;a=a+128|0;c[a>>2]=_p(c[a>>2]|0,e<<3)|0;return}function Yf(a){a=a|0;if(c[a+232>>2]|0)uk(c[a+240>>2]|0);Yp(c[a+116>>2]|0);Yp(c[a+120>>2]|0);Yp(c[a+128>>2]|0);Yp(c[a+140>>2]|0);Yp(c[a+160>>2]|0);Yp(c[a+192>>2]|0);Yp(c[a+204>>2]|0);Fh(c[a+136>>2]|0);qh(c[a+148>>2]|0);Hi(c[a+188>>2]|0);qh(c[a+200>>2]|0);fh(c[a+72>>2]|0);Ge(c[a+100>>2]|0);Ej(c[a+92>>2]|0);Ej(c[a+96>>2]|0);Yp(a);return}function Zf(a,b){a=a|0;b=b|0;c[a+124>>2]=b;return}function _f(a,b){a=a|0;b=b|0;c[a+184>>2]=b;return}function $f(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=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;w=i;i=i+48|0;if((i|0)>=(j|0))ba();e=w+40|0;f=w+32|0;g=w+24|0;o=w+16|0;p=w+8|0;q=w;if(!d){i=w;return}r=a+228|0;s=a+224|0;t=g+4|0;u=o+4|0;h=p+4|0;k=q+4|0;l=a+236|0;m=a+240|0;n=f+4|0;v=0;a:while(1){if(c[r>>2]|0?(c[l>>2]|0)==0:0){x=c[m>>2]|0;y=c[b+(v<<3)+4>>2]|0;c[f>>2]=c[b+(v<<3)>>2];c[n>>2]=y;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];tk(x,e)}switch(c[s>>2]|0){case 0:{y=c[b+(v<<3)+4>>2]|0;c[g>>2]=c[b+(v<<3)>>2];c[t>>2]=y;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];ag(a,e);break}case 1:{y=c[b+(v<<3)+4>>2]|0;c[o>>2]=c[b+(v<<3)>>2];c[u>>2]=y;c[e>>2]=c[o>>2];c[e+4>>2]=c[o+4>>2];bg(a,e);break}case 2:{y=c[b+(v<<3)+4>>2]|0;c[p>>2]=c[b+(v<<3)>>2];c[h>>2]=y;c[e>>2]=c[p>>2];c[e+4>>2]=c[p+4>>2];cg(a,e);break}case 3:{y=c[b+(v<<3)+4>>2]|0;c[q>>2]=c[b+(v<<3)>>2];c[k>>2]=y;c[e>>2]=c[q>>2];c[e+4>>2]=c[q+4>>2];eg(a,e);break}default:{e=11;break a}}v=v+1|0;if(v>>>0>=d>>>0){e=13;break}}if((e|0)==11){Qp(26500,58,1,c[2348]|0)|0;kb(1)}else if((e|0)==13){i=w;return}}function ag(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();l=n+8|0;h=n;m=a+72|0;k=c[m>>2]|0;f=c[b+4>>2]|0;c[h>>2]=c[b>>2];c[h+4>>2]=f;c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];l=hh(k,l)|0;if(!l){i=n;return}k=a+76|0;g[k>>2]=+lh(c[m>>2]|0);e=a+88|0;g[e>>2]=+mh(c[m>>2]|0);f=a+80|0;g[f>>2]=+nh(c[m>>2]|0);h=a+84|0;g[h>>2]=+oh(c[m>>2]|0);d=+g[k>>2];k=c[a+104>>2]|0;if(d>0.0){d=d*+(k>>>0);b=0}else{d=(d+1.0)*+(k>>>0);b=1}c[a+112>>2]=(~~d>>>0>>>0)%(k>>>0)|0;c[a+108>>2]=b;Ne(c[a+100>>2]|0,.5/+g[e>>2]);k=a+92|0;Fj(c[k>>2]|0,+g[f>>2]);Hj(c[k>>2]|0,+g[h>>2]);c[a+224>>2]=1;k=a+236|0;c[k>>2]=1;$f(a,l,kh(c[m>>2]|0)|0);c[k>>2]=0;i=n;return}function bg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0,l=0,m=0;k=i;i=i+32|0;if((i|0)>=(j|0))ba();f=k+24|0;e=k+16|0;l=k+8|0;g=k;m=c[b+4>>2]|0;d=a+92|0;h=c[d>>2]|0;c[l>>2]=c[b>>2];c[l+4>>2]=m;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];Mj(h,f,e);Ij(c[d>>2]|0);d=a+100|0;h=c[d>>2]|0;b=e+4|0;l=c[b>>2]|0;c[g>>2]=c[e>>2];c[g+4>>2]=l;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];Ke(h,f);Le(c[d>>2]|0,c[a+112>>2]|0,e);d=a+108|0;f=c[d>>2]|0;c[d>>2]=f+1;if((f|0)>-1){g=c[e>>2]|0;h=c[b>>2]|0;c[d>>2]=f+-1}else{g=0;h=0}if((f|0)<0){i=k;return}d=c[a+64>>2]<<1;e=a+216|0;b=c[e>>2]|0;if(b>>>0>=d>>>0){b=b-d|0;m=c[a+120>>2]|0;c[m+(b<<3)>>2]=g;c[m+(b<<3)+4>>2]=h;b=c[e>>2]|0}c[e>>2]=b+1;if((b|0)!=(d+63|0)){i=k;return}c[a+224>>2]=2;i=k;return}function cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+64|0;if((i|0)>=(j|0))ba();o=q+24|0;e=q+16|0;d=q+8|0;f=q;m=c[b+4>>2]|0;p=a+92|0;n=c[p>>2]|0;c[d>>2]=c[b>>2];c[d+4>>2]=m;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];Mj(n,o,e);Ij(c[p>>2]|0);n=a+100|0;d=c[n>>2]|0;b=e+4|0;m=c[b>>2]|0;c[f>>2]=c[e>>2];c[f+4>>2]=m;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];Ke(d,o);Le(c[n>>2]|0,c[a+112>>2]|0,e);d=a+108|0;f=c[d>>2]|0;c[d>>2]=f+1;if((f|0)>-1){l=c[e>>2]|0;m=c[b>>2]|0;c[d>>2]=f+-1;b=l;d=m}else{b=0;d=0}if((f|0)<0){i=q;return}m=a+220|0;l=c[m>>2]|0;k=c[a+128>>2]|0;c[k+(l<<3)>>2]=b;c[k+(l<<3)+4>>2]=d;l=(c[m>>2]|0)+1|0;c[m>>2]=l;if((l|0)!=(c[a+132>>2]|0)){i=q;return}dg(a);b=a+164|0;if(c[b>>2]|0){c[m>>2]=0;c[a+224>>2]=3;i=q;return}l=a+48|0;c[l>>2]=(c[l>>2]|0)+1;if(c[a>>2]|0){f=a+8|0;g[f>>2]=0.0;g[a+12>>2]=+yp(+g[a+88>>2])*20.0;g[a+16>>2]=+Jj(c[p>>2]|0);k=a+20|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;c[k+24>>2]=0;k=c[a>>2]|0;l=c[a+160>>2]|0;b=c[b>>2]|0;d=c[a+4>>2]|0;e=o;h=e+40|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(h|0));ob[k&1](l,b,0,0,0,o,d)|0}Dj(c[p>>2]|0);Dj(c[a+96>>2]|0);Ie(c[n>>2]|0);c[a+224>>2]=0;c[a+216>>2]=0;c[m>>2]=0;g[a+8>>2]=0.0;i=q;return}function dg(b){b=b|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0;p=i;i=i+16|0;if((i|0)>=(j|0))ba();l=p;h=b+136|0;f=b+140|0;Hh(c[h>>2]|0,c[b+128>>2]|0,c[f>>2]|0);e=c[b+148>>2]|0;f=c[f>>2]|0;k=b+160|0;g=c[k>>2]|0;if(!(c[b+124>>2]|0))e=yh(e,f,g)|0;else e=zh(e,f,g)|0;o=b+164|0;c[o>>2]=e;if(!e){i=p;return}q=+Ih(c[h>>2]|0);r=+Jh(c[h>>2]|0);n=b+96|0;Fj(c[n>>2]|0,q);Hj(c[n>>2]|0,r+q*+((c[b+132>>2]|0)>>>0));n=c[b+152>>2]|0;m=c[k>>2]|0;e=a[m+n>>0]|0;if(e<<24>>24!=102){b=c[2348]|0;c[l>>2]=e&255;c[l+4>>2]=102;Kp(b,26045,l)|0;c[o>>2]=0;i=p;return}f=(d[m+(n+1)>>0]|0)<<8|(d[m+(n+2)>>0]|0);g=b+208|0;c[g>>2]=f;s=a[m+(n+3)>>0]|0;h=s&255;l=d[m+(n+4)>>0]|0;k=l>>>5;l=l&31;e=(d[m+(n+5)>>0]|0)&31;if((s+-1&255)>59){Qp(26128,66,1,c[2348]|0)|0;c[o>>2]=0;i=p;return}switch(k|0){case 0:case 7:{Qp(26195,70,1,c[2348]|0)|0;c[o>>2]=0;i=p;return}default:{}}if((l+-1|0)>>>0>26){Qp(26266,78,1,c[2348]|0)|0;c[o>>2]=0;i=p;return}if((e+-1|0)>>>0>26){Qp(26345,78,1,c[2348]|0)|0;c[o>>2]=0;i=p;return}n=b+188|0;c[n>>2]=Gi(c[n>>2]|0,h)|0;n=b+200|0;rh(c[n>>2]|0,f,k,l,e,h)|0;n=sh(c[n>>2]|0)|0;c[b+196>>2]=n;s=b+192|0;c[s>>2]=_p(c[s>>2]|0,n<<3)|0;n=b+204|0;b=_p(c[n>>2]|0,c[g>>2]|0)|0;c[n>>2]=b;if(!((b|0)==0|(c[s>>2]|0)==0)){i=p;return}Qp(26424,75,1,c[2348]|0)|0;c[o>>2]=0;i=p;return}function eg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=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.0,x=0.0;v=i;i=i+96|0;if((i|0)>=(j|0))ba();t=v+48|0;k=v+32|0;d=v+16|0;e=v+8|0;m=v;f=v+40|0;h=v+24|0;l=m+4|0;g[m>>2]=0.0;g[l>>2]=0.0;r=c[b+4>>2]|0;u=a+92|0;s=c[u>>2]|0;c[d>>2]=c[b>>2];c[d+4>>2]=r;c[t>>2]=c[d>>2];c[t+4>>2]=c[d+4>>2];Mj(s,t,k);Ij(c[u>>2]|0);s=a+100|0;d=c[s>>2]|0;b=k+4|0;r=c[b>>2]|0;c[e>>2]=c[k>>2];c[e+4>>2]=r;c[t>>2]=c[e>>2];c[t+4>>2]=c[e+4>>2];Ke(d,t);Le(c[s>>2]|0,c[a+112>>2]|0,k);d=a+108|0;e=c[d>>2]|0;c[d>>2]=e+1;if((e|0)>-1){q=c[k>>2]|0;r=c[b>>2]|0;c[m>>2]=q;c[l>>2]=r;c[d>>2]=e+-1;b=q;d=r}else{b=0;d=0}if((e|0)<0){i=v;return}r=a+96|0;p=c[r>>2]|0;c[f>>2]=b;c[f+4>>2]=d;c[t>>2]=c[f>>2];c[t+4>>2]=c[f+4>>2];Mj(p,t,m);p=a+188|0;n=c[p>>2]|0;q=c[l>>2]|0;c[h>>2]=c[m>>2];c[h+4>>2]=q;c[t>>2]=c[h>>2];c[t+4>>2]=c[h+4>>2];Mi(n,t,k);x=+Qi(c[p>>2]|0);w=+Ri(c[p>>2]|0);Kj(c[r>>2]|0,x);Ij(c[r>>2]|0);p=a+8|0;g[p>>2]=w*w+ +g[p>>2];n=c[l>>2]|0;q=a+220|0;o=c[q>>2]|0;k=a+192|0;f=c[k>>2]|0;c[f+(o<<3)>>2]=c[m>>2];c[f+(o<<3)+4>>2]=n;o=(c[q>>2]|0)+1|0;c[q>>2]=o;f=a+196|0;if((o|0)!=(c[f>>2]|0)){i=v;return}h=a+200|0;b=c[h>>2]|0;d=c[k>>2]|0;l=a+204|0;e=c[l>>2]|0;if(!(c[a+184>>2]|0))b=yh(b,d,e)|0;else b=zh(b,d,e)|0;d=a+212|0;c[d>>2]=b;o=a+48|0;c[o>>2]=(c[o>>2]|0)+1;o=a+52|0;c[o>>2]=(c[o>>2]|0)+1;o=a+56|0;c[o>>2]=(c[o>>2]|0)+b;b=a+208|0;o=a+60|0;c[o>>2]=(c[o>>2]|0)+(c[b>>2]|0);if(c[a>>2]|0){m=wh(c[h>>2]|0)|0;g[p>>2]=+yp(+g[p>>2]/+((c[f>>2]|0)>>>0))*10.0;g[a+12>>2]=+yp(+g[a+88>>2])*20.0;g[a+16>>2]=+Jj(c[u>>2]|0);c[a+20>>2]=c[k>>2];c[a+24>>2]=c[f>>2];c[a+28>>2]=m;c[a+32>>2]=c[636+(m<<4)+12>>2];c[a+36>>2]=th(c[h>>2]|0)|0;c[a+40>>2]=uh(c[h>>2]|0)|0;c[a+44>>2]=vh(c[h>>2]|0)|0;m=c[a>>2]|0;n=c[a+160>>2]|0;o=c[a+164>>2]|0;l=c[l>>2]|0;k=c[b>>2]|0;e=c[d>>2]|0;f=c[a+4>>2]|0;h=t;b=p;d=h+40|0;do{c[h>>2]=c[b>>2];h=h+4|0;b=b+4|0}while((h|0)<(d|0));ob[m&1](n,o,l,k,e,t,f)|0}Dj(c[u>>2]|0);Dj(c[r>>2]|0);Ie(c[s>>2]|0);c[a+224>>2]=0;c[a+216>>2]=0;c[q>>2]=0;g[a+8>>2]=0.0;i=v;return}function fg(a){a=a|0;var b=0;b=a+232|0;if(c[b>>2]|0)return;c[a+240>>2]=qk(2e3)|0;c[a+228>>2]=1;c[b>>2]=1;return}function gg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0;x=i;i=i+256|0;if((i|0)>=(j|0))ba();w=x+248|0;v=x+224|0;s=x+200|0;r=x+192|0;q=x+168|0;p=x+144|0;o=x+136|0;n=x+112|0;m=x+88|0;l=x+64|0;k=x+40|0;f=x+16|0;e=x+8|0;d=x;u=x+252|0;if(!(c[a+232>>2]|0)){Qp(26559,90,1,c[2348]|0)|0;i=x;return}t=Ep(b,37318)|0;c[d>>2]=b;Kp(t,28173,d)|0;Qp(37886,2,1,t)|0;Qp(37457,11,1,t)|0;Qp(28200,12,1,t)|0;c[e>>2]=2e3;Kp(t,37469,e)|0;Qp(26650,54,1,t)|0;Qp(37695,16,1,t)|0;sk(c[a+240>>2]|0,u);d=0;do{e=c[u>>2]|0;z=+g[e+(d<<3)>>2];y=+g[e+(d<<3)+4>>2];d=d+1|0;c[f>>2]=d;h[f+8>>3]=z;h[f+16>>3]=y;Kp(t,37712,f)|0}while((d|0)!=2e3);Qp(37886,2,1,t)|0;Qp(26705,18,1,t)|0;Qp(28283,48,1,t)|0;Qp(39490,9,1,t)|0;Qp(37790,24,1,t)|0;Qp(37815,30,1,t)|0;Qp(26724,27,1,t)|0;d=c[a+116>>2]|0;c[u>>2]=d;y=+g[d>>2];z=+g[d+4>>2];c[k>>2]=1;h[k+8>>3]=y;h[k+16>>3]=z;Kp(t,26752,k)|0;d=1;do{k=c[u>>2]|0;y=+g[k+(d<<3)>>2];z=+g[k+(d<<3)+4>>2];d=d+1|0;c[l>>2]=d;h[l+8>>3]=y;h[l+16>>3]=z;Kp(t,26752,l)|0}while((d|0)!=64);Qp(26792,27,1,t)|0;d=c[a+120>>2]|0;c[u>>2]=d;y=+g[d>>2];z=+g[d+4>>2];c[m>>2]=1;h[m+8>>3]=y;h[m+16>>3]=z;Kp(t,26820,m)|0;d=1;do{m=c[u>>2]|0;y=+g[m+(d<<3)>>2];z=+g[m+(d<<3)+4>>2];d=d+1|0;c[n>>2]=d;h[n+8>>3]=y;h[n+16>>3]=z;Kp(t,26820,n)|0}while((d|0)!=64);e=a+144|0;c[o>>2]=c[e>>2];Kp(t,26860,o)|0;d=c[a+140>>2]|0;c[u>>2]=d;if(c[e>>2]|0?(o=d,y=+g[o>>2],z=+g[o+4>>2],c[p>>2]=1,h[p+8>>3]=y,h[p+16>>3]=z,Kp(t,26887,p)|0,(c[e>>2]|0)>>>0>1):0){d=1;do{p=c[u>>2]|0;y=+g[p+(d<<3)>>2];z=+g[p+(d<<3)+4>>2];d=d+1|0;c[q>>2]=d;h[q+8>>3]=y;h[q+16>>3]=z;Kp(t,26887,q)|0}while(d>>>0<(c[e>>2]|0)>>>0)}e=a+196|0;c[r>>2]=c[e>>2];Kp(t,26925,r)|0;d=c[a+192>>2]|0;c[u>>2]=d;if(c[e>>2]|0?(r=d,y=+g[r>>2],z=+g[r+4>>2],c[s>>2]=1,h[s+8>>3]=y,h[s+16>>3]=z,Kp(t,26953,s)|0,(c[e>>2]|0)>>>0>1):0){d=1;do{s=c[u>>2]|0;y=+g[s+(d<<3)>>2];z=+g[s+(d<<3)+4>>2];d=d+1|0;c[v>>2]=d;h[v+8>>3]=y;h[v+16>>3]=z;Kp(t,26953,v)|0}while(d>>>0<(c[e>>2]|0)>>>0)}Qp(26992,20,1,t)|0;Qp(27013,45,1,t)|0;Qp(27059,20,1,t)|0;Qp(27080,28,1,t)|0;Qp(39490,9,1,t)|0;Qp(27109,23,1,t)|0;Qp(39476,13,1,t)|0;Qp(27133,34,1,t)|0;Qp(27168,20,1,t)|0;Qp(27189,47,1,t)|0;Qp(27059,20,1,t)|0;Qp(27080,28,1,t)|0;Qp(39490,9,1,t)|0;Qp(27109,23,1,t)|0;Qp(39476,13,1,t)|0;Qp(27237,35,1,t)|0;Qp(37886,2,1,t)|0;Hp(t)|0;c[w>>2]=b;Rp(27273,w)|0;i=x;return}function hg(){var a=0,b=0,d=0,e=0;a=Xp(100)|0;c[a+4>>2]=2;c[a+8>>2]=3;g[a+12>>2]=.5;c[a+16>>2]=63;d=a+24|0;c[d>>2]=0;c[a+28>>2]=6;e=$h(2,3,.5)|0;c[a>>2]=e;b=a+32|0;c[b>>2]=Qj(6,109,1)|0;ai(e);c[a+84>>2]=0;Vj(c[b>>2]|0);c[a+88>>2]=0;c[a+92>>2]=0;c[a+96>>2]=0;c[a+44>>2]=0;c[a+48>>2]=0;c[a+52>>2]=0;ig(a,8);c[a+72>>2]=0;c[a+60>>2]=6;c[a+64>>2]=1;c[a+68>>2]=1;b=Ck(0,6,1,1)|0;c[a+56>>2]=b;b=Fk(b)|0;c[a+76>>2]=b;c[d>>2]=b<<3;c[a+80>>2]=Xp(b)|0;return a|0}function ig(a,b){a=a|0;b=b|0;var d=0,e=0;if(c[a+88>>2]|0){Qp(27317,87,1,c[2348]|0)|0;return}c[a+36>>2]=b;d=b+5|0;e=a+44|0;c[e>>2]=_p(c[e>>2]|0,d)|0;e=a+52|0;b=c[e>>2]|0;if(b|0)Ek(b);b=Ck(d,6,6,1)|0;c[e>>2]=b;b=Fk(b)|0;e=a+40|0;c[e>>2]=b;d=a+48|0;c[d>>2]=_p(c[d>>2]|0,b)|0;c[a+20>>2]=c[e>>2]<<3;return}function jg(a){a=a|0;ai(c[a>>2]|0);c[a+84>>2]=0;Vj(c[a+32>>2]|0);c[a+88>>2]=0;c[a+92>>2]=0;c[a+96>>2]=0;return}function kg(a){a=a|0;bi(c[a>>2]|0);Sj(c[a+32>>2]|0);Yp(c[a+44>>2]|0);Yp(c[a+48>>2]|0);Ek(c[a+52>>2]|0);Yp(c[a+80>>2]|0);Ek(c[a+56>>2]|0);Yp(a);return}function lg(a){a=a|0;return c[a+88>>2]|0}function mg(a){a=a|0;if(!(c[a+88>>2]|0)){Qp(27405,58,1,c[2348]|0)|0;a=0;return a|0}else{a=_((c[a+20>>2]|0)+(c[a+16>>2]|0)+(c[a+24>>2]|0)+(c[a+8>>2]<<1)|0,c[a+4>>2]|0)|0;return a|0}return 0}function ng(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;m=b+72|0;n=b+60|0;if((((c[m>>2]|0)==(g|0)?(c[n>>2]|0)==(h|0):0)?(l=b+64|0,(c[l>>2]|0)==(i|0)):0)?(k=b+68|0,(c[k>>2]|0)==(j|0)):0){h=b+56|0;i=b+80|0}else{c[m>>2]=g;c[n>>2]=h;l=b+64|0;c[l>>2]=i;k=b+68|0;c[k>>2]=j;o=b+56|0;h=Dk(c[o>>2]|0,g,h,i,j)|0;c[o>>2]=h;h=Fk(h)|0;c[b+76>>2]=h;c[b+24>>2]=h<<3;i=b+80|0;c[i>>2]=_p(c[i>>2]|0,h)|0;h=o}c[b+88>>2]=1;g=b+44|0;o=b+36|0;gq(c[g>>2]|0,e|0,c[o>>2]|0)|0;o=c[o>>2]|0;a[(c[g>>2]|0)+o>>0]=4;a[(c[g>>2]|0)+(o+1)>>0]=(c[m>>2]|0)>>>8;a[(c[g>>2]|0)+(o+2)>>0]=c[m>>2];e=o+3|0;a[(c[g>>2]|0)+e>>0]=c[n>>2]<<5;e=(c[g>>2]|0)+e|0;a[e>>0]=d[e>>0]|0|c[l>>2]&31;a[(c[g>>2]|0)+(o+4)>>0]=c[k>>2]&31;o=b+48|0;Jk(c[b+52>>2]|0,c[g>>2]|0,c[o>>2]|0);Nj(c[o>>2]|0,c[b+40>>2]|0);Jk(c[h>>2]|0,f,c[i>>2]|0);return}function og(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h;g=a+84|0;switch(c[g>>2]|0){case 0:{pg(a,b);break}case 1:{e=a+96|0;Vp(f,c[e>>2]|0,8);ci(c[a>>2]|0,(d[(c[a+48>>2]|0)+(c[f>>2]|0)>>0]|0)>>>(7-(c[f+4>>2]|0)|0)&1,b);f=(c[e>>2]|0)+1|0;c[e>>2]=f;if((f|0)==(c[a+20>>2]|0)){c[e>>2]=0;c[g>>2]=2}break}case 2:{e=a+96|0;Vp(f,c[e>>2]|0,8);ci(c[a>>2]|0,(d[(c[a+80>>2]|0)+(c[f>>2]|0)>>0]|0)>>>(7-(c[f+4>>2]|0)|0)&1,b);f=(c[e>>2]|0)+1|0;c[e>>2]=f;if((f|0)==(c[a+24>>2]|0)){c[e>>2]=0;c[g>>2]=3}break}case 3:{qg(a,b);break}default:{Qp(27464,70,1,c[2348]|0)|0;kb(1)}}e=a+92|0;if(!(c[e>>2]|0)){a=0;i=h;return a|0}ai(c[a>>2]|0);c[g>>2]=0;Vj(c[a+32>>2]|0);c[a+88>>2]=0;c[e>>2]=0;c[a+96>>2]=0;a=1;i=h;return a|0}function pg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0;k=a+32|0;l=Tj(c[k>>2]|0)|0;ci(c[a>>2]|0,l&255,b);l=a+96|0;d=c[l>>2]|0;j=a+8|0;h=c[j>>2]|0;a:do if(d>>>0<h>>>0?(i=a+4|0,e=c[i>>2]|0,(e|0)!=0):0){f=0;while(1){n=+Vh((_(d,e)|0)+f|0,_(e<<1,h)|0);d=b+(f<<3)|0;e=b+(f<<3)+4|0;m=n*+g[e>>2];g[d>>2]=n*+g[d>>2];g[e>>2]=m;f=f+1|0;e=c[i>>2]|0;d=c[l>>2]|0;if(f>>>0>=e>>>0)break a;h=c[j>>2]|0}}while(0);b=d+1|0;c[l>>2]=b;if((b|0)!=(c[a+16>>2]|0))return;Vj(c[k>>2]|0);c[l>>2]=0;c[a+84>>2]=1;return}function qg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0.0,m=0.0;k=(Np()|0)%2|0;ci(c[a>>2]|0,k&255,b);k=a+96|0;d=c[k>>2]|0;i=a+8|0;h=c[i>>2]|0;if(d>>>0>=h>>>0?(j=a+4|0,e=c[j>>2]|0,(e|0)!=0):0){f=0;while(1){m=+Vh((_(d,e)|0)+f|0,_(e<<1,h)|0);h=b+(f<<3)|0;e=b+(f<<3)+4|0;l=m*+g[e>>2];g[h>>2]=m*+g[h>>2];g[e>>2]=l;f=f+1|0;e=c[j>>2]|0;if(f>>>0>=e>>>0)break;d=c[k>>2]|0;h=c[i>>2]|0}d=c[k>>2]|0}b=d+1|0;c[k>>2]=b;if((b|0)!=(c[a+28>>2]|0))return;c[k>>2]=0;c[a+92>>2]=1;return}function rg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;q=Xp(256)|0;c[q+16>>2]=a;c[q+20>>2]=b;n=q+4|0;c[n>>2]=2;o=q+8|0;c[o>>2]=3;p=q+12|0;g[p>>2]=.5;c[q>>2]=Ue(3,.375)|0;m=q+132|0;c[m>>2]=63;f=q+136|0;c[f>>2]=Xp(252)|0;c[q+140>>2]=Xp(252)|0;k=i;i=i+((1*((c[n>>2]|0)*63<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();a=Qj(6,109,1)|0;b=$h(c[n>>2]|0,c[o>>2]|0,+g[p>>2])|0;if((c[o>>2]|0)!=(0-(c[m>>2]|0)|0)){h=0;do{d=Tj(a)|0;d=d&255;if(h>>>0<(c[m>>2]|0)>>>0)g[(c[f>>2]|0)+(h<<2)>>2]=d|0?1.0:-1.0;e=c[o>>2]|0;if(h>>>0<e>>>0)ci(b,d,k);else ci(b,d,k+((_(c[n>>2]|0,h-e|0)|0)<<3)|0);h=h+1|0}while(h>>>0<((c[o>>2]|0)+(c[m>>2]|0)|0)>>>0)}bi(b);Sj(a);l=q+108|0;c[l>>2]=tl(k,_(c[n>>2]|0,c[m>>2]|0)|0,.5,.05000000074505806)|0;h=q+124|0;c[h>>2]=qk(_((c[o>>2]|0)+(c[m>>2]|0)|0,c[n>>2]|0)|0)|0;a=q+84|0;c[a>>2]=32;e=q+76|0;c[e>>2]=te(12,32,c[n>>2]|0,c[o>>2]|0,+g[p>>2])|0;f=q+80|0;c[f>>2]=ue(12,c[a>>2]|0,c[n>>2]|0,c[o>>2]|0,+g[p>>2])|0;a=q+128|0;c[a>>2]=zj(0)|0;d=q+156|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;sg(q,8);d=q+196|0;c[d>>2]=1;c[q+180>>2]=6;c[q+184>>2]=1;c[q+188>>2]=1;b=Ck(1,6,1,1)|0;c[q+208>>2]=b;b=Fk(b)|0;c[q+192>>2]=b;c[q+204>>2]=Xp(c[d>>2]|0)|0;c[q+200>>2]=Xp(b)|0;b=q+216|0;d=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));rk(c[h>>2]|0);ul(c[l>>2]|0);Dj(c[a>>2]|0);g[q+64>>2]=0.0;g[q+68>>2]=0.0;g[q+72>>2]=0.0;pe(c[e>>2]|0);pe(c[f>>2]|0);g[q+88>>2]=0.0;i=r;return q|0}function sg(a,b){a=a|0;b=b|0;var d=0,e=0;c[a+144>>2]=b;b=b+5|0;d=a+164|0;c[d>>2]=_p(c[d>>2]|0,b)|0;d=a+168|0;e=c[d>>2]|0;if(e|0)Ek(e);b=Ck(b,6,6,1)|0;c[d>>2]=b;b=Fk(b)|0;e=a+148|0;c[e>>2]=b;d=a+160|0;c[d>>2]=_p(c[d>>2]|0,b)|0;e=c[e>>2]<<3;c[a+152>>2]=e;a=a+156|0;c[a>>2]=_p(c[a>>2]|0,e)|0;return}function tg(a){a=a|0;if(c[a+236>>2]|0){uk(c[a+240>>2]|0);pk(c[a+244>>2]|0);pk(c[a+248>>2]|0);pk(c[a+252>>2]|0)}Re(c[a>>2]|0);ne(c[a+76>>2]|0);ne(c[a+80>>2]|0);Ej(c[a+128>>2]|0);vl(c[a+108>>2]|0);uk(c[a+124>>2]|0);Yp(c[a+136>>2]|0);Yp(c[a+140>>2]|0);Ek(c[a+168>>2]|0);Yp(c[a+156>>2]|0);Yp(c[a+160>>2]|0);Yp(c[a+164>>2]|0);Ek(c[a+208>>2]|0);Yp(c[a+200>>2]|0);Yp(c[a+204>>2]|0);Yp(a);return}function ug(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=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;G=i;i=i+80|0;if((i|0)>=(j|0))ba();e=G+64|0;f=G+24|0;g=G+8|0;F=G;t=G+56|0;y=G+48|0;z=G+40|0;A=G+32|0;B=G+16|0;if(!d){i=G;return}C=t+4|0;D=a+232|0;h=a+216|0;k=F+4|0;l=a+124|0;m=f+4|0;n=a+108|0;o=a+112|0;p=a+116|0;q=a+120|0;r=g+4|0;s=z+4|0;u=A+4|0;v=B+4|0;w=a+240|0;x=y+4|0;E=0;do{H=c[a>>2]|0;I=c[b+(E<<3)+4>>2]|0;c[t>>2]=c[b+(E<<3)>>2];c[C>>2]=I;c[e>>2]=c[t>>2];c[e+4>>2]=c[t+4>>2];Te(H,e,F);if(c[D>>2]|0){I=c[w>>2]|0;H=c[k>>2]|0;c[y>>2]=c[F>>2];c[x>>2]=H;c[e>>2]=c[y>>2];c[e+4>>2]=c[y+4>>2];tk(I,e)}switch(c[h>>2]|0){case 0:{J=c[F>>2]|0;H=c[k>>2]|0;I=c[l>>2]|0;c[f>>2]=J;c[m>>2]=H;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];tk(I,e);I=c[n>>2]|0;c[g>>2]=J;c[r>>2]=H;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];if(wl(I,e,o,p,q)|0)vg(a);break}case 1:{J=c[k>>2]|0;c[z>>2]=c[F>>2];c[s>>2]=J;c[e>>2]=c[z>>2];c[e+4>>2]=c[z+4>>2];wg(a,e);break}case 2:{J=c[k>>2]|0;c[A>>2]=c[F>>2];c[u>>2]=J;c[e>>2]=c[A>>2];c[e+4>>2]=c[A+4>>2];yg(a,e);break}case 3:{J=c[k>>2]|0;c[B>>2]=c[F>>2];c[v>>2]=J;c[e>>2]=c[B>>2];c[e+4>>2]=c[B+4>>2];Ag(a,e);break}default:{}}E=E+1|0}while((E|0)!=(d|0));i=G;return}function vg(a){a=a|0;var b=0.0,d=0,e=0,f=0,h=0.0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.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;L=i;i=i+80|0;if((i|0)>=(j|0))ba();z=L+64|0;A=L+56|0;B=L+48|0;D=L+40|0;E=L+24|0;J=L+8|0;K=L;F=L+32|0;G=L+16|0;H=a+76|0;pe(c[H>>2]|0);I=a+80|0;pe(c[I>>2]|0);sk(c[a+124>>2]|0,J);b=+g[a+112>>2];if(!(b<.5&b>-.5))Ha(27535,27577,501,27609);C=a+4|0;m=a+8|0;d=_(c[C>>2]<<1,c[m>>2]|0)|0;f=c[a+84>>2]|0;h=+(f>>>0);b=-(b*h);k=a+92|0;g[k>>2]=b;e=~~+dq(+b);l=a+96|0;c[l>>2]=e;d=d+-1|0;if((e|0)<0){do{e=f+e|0;b=h+b;d=d+-1|0}while((e|0)<0);c[l>>2]=e;g[k>>2]=b}c[a+100>>2]=0;y=a+128|0;Fj(c[y>>2]|0,+g[a+116>>2]);e=_((c[m>>2]|0)+(c[a+132>>2]|0)|0,c[C>>2]|0)|0;if(!e){K=a+216|0;c[K>>2]=1;i=L;return}f=F+4|0;k=K+4|0;l=a+64|0;m=a+68|0;p=B+4|0;q=A+4|0;r=D+4|0;s=E+4|0;t=a+72|0;u=G+4|0;x=0;do{if(x>>>0<d>>>0){M=c[y>>2]|0;O=c[J>>2]|0;N=c[O+(x<<3)+4>>2]|0;c[F>>2]=c[O+(x<<3)>>2];c[f>>2]=N;c[z>>2]=c[F>>2];c[z+4>>2]=c[F+4>>2];Mj(M,z,K);Ij(c[y>>2]|0);v=+g[K>>2];w=+g[k>>2];M=c[m>>2]|0;c[B>>2]=c[l>>2];c[p>>2]=M;c[z>>2]=c[B>>2];c[z+4>>2]=c[B+4>>2];Ko(A,z);n=+g[A>>2];o=+g[q>>2];h=v*n-w*o;b=w*n+v*o;if((h!=h|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(D,n,o,v,w);h=+g[D>>2];b=+g[r>>2]}g[E>>2]=h;g[s>>2]=b;c[z>>2]=c[E>>2];c[z+4>>2]=c[E+4>>2];o=+Bo(z);o=o*+((c[C>>2]|0)>>>0);g[t>>2]=o;g[l>>2]=v;g[m>>2]=w;re(c[H>>2]|0,o);re(c[I>>2]|0,+g[t>>2])}else{N=c[J>>2]|0;O=c[N+(x<<3)+4>>2]|0;c[G>>2]=c[N+(x<<3)>>2];c[u>>2]=O;c[z>>2]=c[G>>2];c[z+4>>2]=c[G+4>>2];wg(a,z)}x=x+1|0}while((x|0)!=(e|0));O=a+216|0;c[O>>2]=1;i=L;return}function wg(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,h=0.0,k=0.0,l=0,m=0.0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=i;i=i+64|0;if((i|0)>=(j|0))ba();s=v+48|0;n=v+40|0;l=v+32|0;q=v+24|0;r=v+8|0;f=v;d=v+16|0;t=a+220|0;u=a+132|0;if((c[t>>2]|0)==(c[u>>2]|0)){Qp(27630,64,1,c[2348]|0)|0;i=v;return}w=a+128|0;x=c[w>>2]|0;y=c[b+4>>2]|0;c[d>>2]=c[b>>2];c[d+4>>2]=y;c[s>>2]=c[d>>2];c[s+4>>2]=c[d+4>>2];Mj(x,s,f);Ij(c[w>>2]|0);p=+g[f>>2];o=+g[f+4>>2];b=a+64|0;f=a+68|0;d=c[f>>2]|0;c[l>>2]=c[b>>2];c[l+4>>2]=d;c[s>>2]=c[l>>2];c[s+4>>2]=c[l+4>>2];Ko(n,s);m=+g[n>>2];k=+g[n+4>>2];h=p*m-o*k;e=o*m+p*k;if((h!=h|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(q,m,k,p,o);h=+g[q>>2];e=+g[q+4>>2]}g[r>>2]=h;g[r+4>>2]=e;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];m=+Bo(s);d=a+4|0;m=m*+((c[d>>2]|0)>>>0);g[a+72>>2]=m;g[b>>2]=p;g[f>>2]=o;g[s>>2]=0.0;if(xg(a,m,s)|0?(y=c[t>>2]|0,g[(c[a+140>>2]|0)+(y<<2)>>2]=+g[s>>2]/+((c[d>>2]|0)>>>0),y=y+1|0,c[t>>2]=y,(y|0)==(c[u>>2]|0)):0)c[a+216>>2]=2;i=v;return}function xg(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();f=s+24|0;r=s+20|0;n=s+16|0;h=s+8|0;k=s;l=a+76|0;re(c[l>>2]|0,b);m=a+80|0;re(c[m>>2]|0,b);g[r>>2]=0.0;g[n>>2]=0.0;if(c[a+232>>2]|0){ok(c[a+244>>2]|0,+g[a+72>>2]);se(c[l>>2]|0,c[a+96>>2]|0,r);ok(c[a+248>>2]|0,+g[r>>2])}q=a+100|0;e=c[q>>2]|0;if((e|0)>=1){n=e;p=0;n=n+-1|0;c[q>>2]=n;b=+g[r>>2];r=a+4|0;r=c[r>>2]|0;o=+(r>>>0);o=b/o;g[d>>2]=o;i=s;return p|0}c[q>>2]=2;p=a+96|0;se(c[l>>2]|0,c[p>>2]|0,r);se(c[m>>2]|0,c[p>>2]|0,n);l=a+88|0;b=+g[l>>2]*.9900000095367432;c[k>>2]=c[r>>2];g[k+4>>2]=0.0;c[f>>2]=c[k>>2];c[f+4>>2]=c[k+4>>2];Ko(h,f);b=b+ +g[h>>2]*+g[n>>2]*.05000000074505806;g[l>>2]=b;l=a+92|0;b=+g[l>>2]+b;g[l>>2]=b;f=~~+dq(+b);c[p>>2]=f;k=c[a+84>>2]|0;if((f|0)<0){o=+(k>>>0);e=c[q>>2]|0;do{f=k+f|0;b=o+b;e=e+-1|0}while((f|0)<0);c[p>>2]=f;g[l>>2]=b;c[q>>2]=e}h=k+-1|0;if(f>>>0<=h>>>0){n=c[q>>2]|0;p=1;n=n+-1|0;c[q>>2]=n;b=+g[r>>2];r=a+4|0;r=c[r>>2]|0;o=+(r>>>0);o=b/o;g[d>>2]=o;i=s;return p|0}o=+(k>>>0);e=c[q>>2]|0;do{f=f-k|0;b=b-o;e=e+1|0}while(f>>>0>h>>>0);c[p>>2]=f;g[l>>2]=b;c[q>>2]=e;n=e;p=1;n=n+-1|0;c[q>>2]=n;b=+g[r>>2];r=a+4|0;r=c[r>>2]|0;o=+(r>>>0);o=b/o;g[d>>2]=o;i=s;return p|0}function yg(b,d){b=b|0;d=d|0;var e=0.0,f=0,h=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0;x=i;i=i+96|0;if((i|0)>=(j|0))ba();v=x+48|0;k=x+40|0;r=x+32|0;f=x+16|0;h=x+8|0;u=x;m=x+24|0;w=b+128|0;n=c[w>>2]|0;l=c[d+4>>2]|0;c[m>>2]=c[d>>2];c[m+4>>2]=l;c[v>>2]=c[m>>2];c[v+4>>2]=c[m+4>>2];Mj(n,v,u);Ij(c[w>>2]|0);s=+g[u>>2];t=+g[u+4>>2];d=b+64|0;u=b+68|0;n=c[u>>2]|0;c[r>>2]=c[d>>2];c[r+4>>2]=n;c[v>>2]=c[r>>2];c[v+4>>2]=c[r+4>>2];Ko(k,v);p=+g[k>>2];q=+g[k+4>>2];o=s*p-t*q;e=t*p+s*q;if((o!=o|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(f,p,q,s,t);o=+g[f>>2];e=+g[f+4>>2]}g[h>>2]=o;g[h+4>>2]=e;c[v>>2]=c[h>>2];c[v+4>>2]=c[h+4>>2];q=+Bo(v);q=q*+((c[b+4>>2]|0)>>>0);r=b+72|0;g[r>>2]=q;g[d>>2]=s;g[u>>2]=t;g[k>>2]=0.0;if(!(xg(b,q,k)|0)){i=x;return}m=b+224|0;a[(c[b+156>>2]|0)+(c[m>>2]|0)>>0]=+g[k>>2]>0.0&1;n=(c[m>>2]|0)+1|0;c[m>>2]=n;if((n|0)!=(c[b+152>>2]|0)){i=x;return}zg(b);d=b+172|0;do if(!(c[d>>2]|0)){f=c[b+16>>2]|0;if(f|0){m=b+24|0;g[b+28>>2]=+yp(+g[b+120>>2])*20.0;g[m>>2]=0.0;c[b+36>>2]=0;c[b+40>>2]=0;c[b+44>>2]=0;c[b+48>>2]=1;c[b+52>>2]=0;c[b+56>>2]=0;c[b+60>>2]=0;h=c[b+164>>2]|0;k=c[b+20>>2]|0;l=v;n=l+40|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));ob[f&1](h,0,0,0,0,v,k)|0;v=b+216|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;rk(c[b+124>>2]|0);ul(c[b+108>>2]|0);Dj(c[w>>2]|0);g[b+64>>2]=0.0;g[u>>2]=0.0;g[r>>2]=0.0;pe(c[b+76>>2]|0);pe(c[b+80>>2]|0);g[b+88>>2]=0.0;if(c[d>>2]|0)break}v=b+216|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;rk(c[b+124>>2]|0);ul(c[b+108>>2]|0);Dj(c[w>>2]|0);g[b+64>>2]=0.0;g[u>>2]=0.0;g[r>>2]=0.0;pe(c[b+76>>2]|0);pe(c[b+80>>2]|0);g[b+88>>2]=0.0;i=x;return}while(0);c[b+216>>2]=3;i=x;return}function zg(b){b=b|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();e=n;f=b+160|0;m=b+148|0;ck(c[b+156>>2]|0,c[b+152>>2]|0,c[f>>2]|0,c[m>>2]|0,e);e=c[e>>2]|0;if((e|0)!=(c[m>>2]|0))Ha(29224,27577,762,27695);Oj(c[f>>2]|0,e);e=b+164|0;f=Kk(c[b+168>>2]|0,c[f>>2]|0,c[e>>2]|0)|0;m=b+172|0;c[m>>2]=f;if(!f){i=n;return}h=c[b+144>>2]|0;g=c[e>>2]|0;if((a[g+h>>0]|0)!=4){Qp(27723,64,1,c[2348]|0)|0;c[m>>2]=0;i=n;return}l=d[g+(h+1)>>0]<<8|d[g+(h+2)>>0];e=d[g+(h+3)>>0]|0;k=e>>>5;e=e&31;h=d[g+(h+4)>>0]&31;if((k|0)==7){Qp(27788,70,1,c[2348]|0)|0;c[m>>2]=0;f=0;g=0}else g=k;if(e>>>0>27){Qp(27859,78,1,c[2348]|0)|0;c[m>>2]=0;f=0;e=0}if(h>>>0>27){Qp(27938,78,1,c[2348]|0)|0;c[m>>2]=0;i=n;return}if(!f){i=n;return}m=b+196|0;c[m>>2]=l;c[b+180>>2]=g;c[b+184>>2]=e;c[b+188>>2]=h;f=b+208|0;k=Dk(c[f>>2]|0,l,g,e,h)|0;c[f>>2]=k;k=Fk(k)|0;c[b+192>>2]=k;l=b+200|0;c[l>>2]=_p(c[l>>2]|0,k)|0;b=b+204|0;c[b>>2]=_p(c[b>>2]|0,c[m>>2]|0)|0;i=n;return}function Ag(b,e){b=b|0;e=e|0;var f=0.0,h=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+96|0;if((i|0)>=(j|0))ba();z=B+48|0;o=B+40|0;x=B+32|0;h=B+16|0;n=B+8|0;y=B;t=B+24|0;A=b+128|0;u=c[A>>2]|0;s=c[e+4>>2]|0;c[t>>2]=c[e>>2];c[t+4>>2]=s;c[z>>2]=c[t>>2];c[z+4>>2]=c[t+4>>2];Mj(u,z,y);Ij(c[A>>2]|0);v=+g[y>>2];w=+g[y+4>>2];e=b+64|0;y=b+68|0;u=c[y>>2]|0;c[x>>2]=c[e>>2];c[x+4>>2]=u;c[z>>2]=c[x>>2];c[z+4>>2]=c[x+4>>2];Ko(o,z);l=+g[o>>2];m=+g[o+4>>2];k=v*l-w*m;f=w*l+v*m;if((k!=k|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(h,l,m,v,w);k=+g[h>>2];f=+g[h+4>>2]}g[n>>2]=k;g[n+4>>2]=f;c[z>>2]=c[n>>2];c[z+4>>2]=c[n+4>>2];m=+Bo(z);m=m*+((c[b+4>>2]|0)>>>0);x=b+72|0;g[x>>2]=m;g[e>>2]=v;g[y>>2]=w;g[o>>2]=0.0;if(!(xg(b,m,o)|0)){i=B;return}t=b+176|0;u=((d[t>>0]|0)<<1|+g[o>>2]>0.0)&255;a[t>>0]=u;t=b+228|0;e=b+200|0;a[(c[e>>2]|0)+((c[t>>2]|0)>>>3)>>0]=u;u=(c[t>>2]|0)+1|0;c[t>>2]=u;if((u|0)!=(c[b+192>>2]<<3|0)){i=B;return}h=b+204|0;r=Kk(c[b+208>>2]|0,c[e>>2]|0,c[h>>2]|0)|0;c[b+212>>2]=r;s=c[b+16>>2]|0;if(s|0){p=b+24|0;g[b+28>>2]=+yp(+g[b+120>>2])*20.0;g[p>>2]=0.0;c[b+36>>2]=0;c[b+40>>2]=0;c[b+44>>2]=0;c[b+48>>2]=1;c[b+52>>2]=c[b+180>>2];c[b+56>>2]=c[b+184>>2];c[b+60>>2]=c[b+188>>2];t=c[b+164>>2]|0;u=c[b+172>>2]|0;n=c[h>>2]|0;e=c[b+196>>2]|0;h=c[b+20>>2]|0;o=z;q=o+40|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));ob[s&1](t,u,n,e,r,z,h)|0}z=b+216|0;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;rk(c[b+124>>2]|0);ul(c[b+108>>2]|0);Dj(c[A>>2]|0);g[b+64>>2]=0.0;g[y>>2]=0.0;g[x>>2]=0.0;pe(c[b+76>>2]|0);pe(c[b+80>>2]|0);g[b+88>>2]=0.0;i=B;return}function Bg(a){a=a|0;var b=0;b=a+236|0;if(c[b>>2]|0){a=a+232|0;c[a>>2]=1;c[b>>2]=1;return}c[a+240>>2]=qk(2e3)|0;c[a+244>>2]=lk(2e3)|0;c[a+248>>2]=lk(2e3)|0;c[a+252>>2]=lk(2e3)|0;a=a+232|0;c[a>>2]=1;c[b>>2]=1;return}function Cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0;p=i;i=i+96|0;if((i|0)>=(j|0))ba();n=p+80|0;m=p+64|0;k=p+48|0;o=p+24|0;f=p+16|0;e=p+8|0;d=p;if(!(c[a+236>>2]|0)){Qp(28017,86,1,c[2348]|0)|0;i=p;return}l=Ep(b,37318)|0;if(!l){o=c[2348]|0;c[d>>2]=b;Kp(o,28104,d)|0;i=p;return}c[e>>2]=b;Kp(l,28173,e)|0;Qp(37886,2,1,l)|0;Qp(37457,11,1,l)|0;Qp(28200,12,1,l)|0;c[f>>2]=2e3;Kp(l,28213,f)|0;Qp(28232,23,1,l)|0;Qp(28256,26,1,l)|0;sk(c[a+240>>2]|0,f);d=0;do{e=c[f>>2]|0;r=+g[e+(d<<3)>>2];q=+g[e+(d<<3)+4>>2];d=d+1|0;c[o>>2]=d;h[o+8>>3]=r;h[o+16>>3]=q;Kp(l,37712,o)|0}while((d|0)!=2e3);Qp(37886,2,1,l)|0;Qp(37741,8,1,l)|0;Qp(28283,48,1,l)|0;Qp(37815,30,1,l)|0;Qp(37886,2,1,l)|0;Qp(28332,27,1,l)|0;nk(c[a+244>>2]|0,o);d=0;do{r=+g[(c[o>>2]|0)+(d<<2)>>2];d=d+1|0;c[k>>2]=d;h[k+8>>3]=r;Kp(l,28360,k)|0}while((d|0)!=2e3);Qp(37886,2,1,l)|0;Qp(37741,8,1,l)|0;Qp(28379,23,1,l)|0;Qp(28403,23,1,l)|0;Qp(37886,2,1,l)|0;Qp(28427,27,1,l)|0;nk(c[a+248>>2]|0,o);d=0;do{r=+g[(c[o>>2]|0)+(d<<2)>>2];d=d+1|0;c[m>>2]=d;h[m+8>>3]=r;Kp(l,28455,m)|0}while((d|0)!=2e3);Qp(37886,2,1,l)|0;Qp(37741,8,1,l)|0;Qp(28474,23,1,l)|0;Qp(28498,21,1,l)|0;Qp(37886,2,1,l)|0;Hp(l)|0;c[n>>2]=b;Rp(28520,n)|0;i=p;return}function Dg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;if(a>>>0<2){Qp(28566,75,1,c[2348]|0)|0;kb(1)}if(a&1|0){Qp(28642,69,1,c[2348]|0)|0;kb(1)}j=Xp(184)|0;c[j>>2]=a;k=j+4|0;c[k>>2]=b;l=j+8|0;c[l>>2]=d;b=a+b|0;i=j+36|0;c[i>>2]=b;c[j+40>>2]=Xp(a<<3)|0;c[j+44>>2]=Xp(b<<3)|0;g=j+48|0;c[g>>2]=b;b=Xp(a)|0;h=j+12|0;c[h>>2]=b;if(!e){_i(a,b);d=c[h>>2]|0;b=c[j>>2]|0}else{fq(b|0,e|0,a|0)|0;d=b;b=a}$i(d,b,j+16|0,j+20|0,j+24|0);a=j+52|0;c[a>>2]=aj(c[j>>2]|0,c[k>>2]|0,c[l>>2]|0,c[h>>2]|0)|0;l=j+64|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[j+84>>2]=8;Eg(j,0);c[j+104>>2]=1;l=Ck(1,1,1,1)|0;c[j+100>>2]=l;l=Fk(l)|0;c[j+120>>2]=l;c[j+112>>2]=Xp(l)|0;c[j+124>>2]=1;c[j+116>>2]=Xp(4)|0;c[j+108>>2]=di(48)|0;Gg(j,f);f=j+128|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[g>>2]=c[i>>2];cj(c[a>>2]|0);return j|0}function Eg(a,b){a=a|0;b=b|0;var d=0;b=(b|0)==0?604:b;if(((c[b>>2]|0)+-1|0)>>>0>5){Qp(28712,67,1,c[2348]|0)|0;kb(1)}if(!(c[b+4>>2]|0)){d=c[2348]|0;Qp(28780,67,1,d)|0;kb(1)}if(!(c[b+8>>2]|0)){d=c[2348]|0;Qp(28780,67,1,d)|0;kb(1)}if(!(c[b+12>>2]|0)){Qp(28848,74,1,c[2348]|0)|0;kb(1)}else{gq(a+168|0,b|0,16)|0;Fg(a,c[a+84>>2]|0);return}}function Fg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0;k=i;i=i+16|0;if((i|0)>=(j|0))ba();g=k+8|0;h=k;c[a+84>>2]=b;e=b+6|0;b=a+88|0;c[b>>2]=e;d=a+72|0;c[d>>2]=_p(c[d>>2]|0,e)|0;d=a+68|0;e=c[d>>2]|0;if(e|0)Ek(e);b=Ck(c[b>>2]|0,c[a+168>>2]|0,c[a+172>>2]|0,c[a+176>>2]|0)|0;c[d>>2]=b;b=Fk(b)|0;e=a+92|0;c[e>>2]=b;f=a+76|0;c[f>>2]=_p(c[f>>2]|0,b)|0;f=a+180|0;Vp(g,c[e>>2]<<3,c[636+(c[f>>2]<<4)+12>>2]|0);e=((c[g+4>>2]|0)!=0&1)+(c[g>>2]|0)|0;b=a+96|0;c[b>>2]=e;d=a+80|0;c[d>>2]=_p(c[d>>2]|0,e)|0;d=a+64|0;e=c[d>>2]|0;if(e|0)Hi(e);c[d>>2]=di(c[f>>2]|0)|0;Vp(h,c[b>>2]|0,c[a+24>>2]|0);c[a+56>>2]=((c[h+4>>2]|0)!=0&1)+(c[h>>2]|0);i=k;return}function Gg(a,b){a=a|0;b=b|0;var d=0;while(1)if(!b)b=588;else break;if(((c[b>>2]|0)+-1|0)>>>0>5){Qp(28712,67,1,c[2348]|0)|0;kb(1)}if(!(c[b+4>>2]|0)){d=c[2348]|0;Qp(28780,67,1,d)|0;kb(1)}if(!(c[b+8>>2]|0)){d=c[2348]|0;Qp(28780,67,1,d)|0;kb(1)}if(!(c[b+12>>2]|0)){Qp(28848,74,1,c[2348]|0)|0;kb(1)}else{gq(a+152|0,b|0,16)|0;Hg(a);return}}function Hg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();g=b+8|0;e=b;f=a+100|0;d=Dk(c[f>>2]|0,c[a+104>>2]|0,c[a+152>>2]|0,c[a+156>>2]|0,c[a+160>>2]|0)|0;c[f>>2]=d;d=Fk(d)|0;f=a+120|0;c[f>>2]=d;h=a+112|0;c[h>>2]=_p(c[h>>2]|0,d)|0;h=a+108|0;d=a+164|0;c[h>>2]=Gi(c[h>>2]|0,c[d>>2]|0)|0;Vp(g,c[f>>2]<<3,c[636+(c[d>>2]<<4)+12>>2]|0);g=((c[g+4>>2]|0)!=0&1)+(c[g>>2]|0)|0;d=a+124|0;c[d>>2]=g;f=a+116|0;c[f>>2]=_p(c[f>>2]|0,g<<2)|0;Vp(e,c[d>>2]|0,c[a+24>>2]|0);d=c[e>>2]|0;e=c[e+4>>2]|0;c[a+60>>2]=((e>>>0>0|(e|0)==0&d>>>0>4294967295)&1)+d;i=b;return}function Ig(a){a=a|0;var b=0;b=a+128|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[a+48>>2]=c[a+36>>2];cj(c[a+52>>2]|0);return}function Jg(a){a=a|0;bj(c[a+52>>2]|0);Ek(c[a+68>>2]|0);Hi(c[a+64>>2]|0);Ek(c[a+100>>2]|0);Hi(c[a+108>>2]|0);Yp(c[a+112>>2]|0);Yp(c[a+116>>2]|0);Yp(c[a+40>>2]|0);Yp(c[a+44>>2]|0);Yp(c[a+12>>2]|0);Yp(c[a+72>>2]|0);Yp(c[a+76>>2]|0);Yp(c[a+80>>2]|0);Yp(a);return}function Kg(a){a=a|0;return c[a+136>>2]|0}function Lg(a){a=a|0;return (c[a+56>>2]|0)+3+(c[a+60>>2]|0)|0}function Mg(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();m=b+128|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;c[m+20>>2]=0;c[b+48>>2]=c[b+36>>2];cj(c[b+52>>2]|0);m=b+104|0;if((c[m>>2]|0)!=(g|0)){c[m>>2]=g;Hg(b)}c[b+136>>2]=1;g=b+72|0;h=c[g>>2]|0;k=b+84|0;l=c[k>>2]|0;if(!e)eq(h|0,0,l|0)|0;else gq(h|0,e|0,l|0)|0;e=c[k>>2]|0;a[(c[g>>2]|0)+e>>0]=105;a[(c[g>>2]|0)+(e+1)>>0]=(c[m>>2]|0)>>>8;a[(c[g>>2]|0)+(e+2)>>0]=c[m>>2];m=b+164|0;a[(c[g>>2]|0)+(e+3)>>0]=c[m>>2];l=e+4|0;a[(c[g>>2]|0)+l>>0]=c[b+152>>2]<<5;l=(c[g>>2]|0)+l|0;a[l>>0]=d[l>>0]|0|c[b+156>>2]&31;a[(c[g>>2]|0)+(e+5)>>0]=c[b+160>>2]&31;e=b+76|0;Jk(c[b+68>>2]|0,c[g>>2]|0,c[e>>2]|0);l=b+92|0;Nj(c[e>>2]|0,c[l>>2]|0);ek(c[e>>2]|0,8,c[l>>2]|0,c[b+80>>2]|0,c[636+(c[b+180>>2]<<4)+12>>2]|0,c[b+96>>2]|0,n);l=b+112|0;Jk(c[b+100>>2]|0,f,c[l>>2]|0);f=b+116|0;e=b+124|0;eq(c[f>>2]|0,0,c[e>>2]<<2|0)|0;bk(c[l>>2]|0,c[b+120>>2]|0,c[636+(c[m>>2]<<4)+12>>2]|0,c[e>>2]|0,c[f>>2]|0);i=n;return}function Ng(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!d){i=a+140|0;i=c[i>>2]|0;return i|0}f=a+48|0;g=a+36|0;h=a+44|0;i=0;do{e=c[f>>2]|0;if(e>>>0>=(c[g>>2]|0)>>>0){Og(a);c[f>>2]=0;e=0}c[f>>2]=e+1;k=c[h>>2]|0;j=c[k+(e<<3)+4>>2]|0;c[b+(i<<3)>>2]=c[k+(e<<3)>>2];c[b+(i<<3)+4>>2]=j;i=i+1|0}while((i|0)!=(d|0));k=a+140|0;k=c[k>>2]|0;return k|0}function Og(a){a=a|0;var b=0,d=0,e=0,f=0,h=0;b=a+128|0;c[b>>2]=(c[b>>2]|0)+1;f=a+132|0;switch(c[f>>2]|0){case 0:{dj(c[a+52>>2]|0,c[a+44>>2]|0);c[f>>2]=1;return}case 1:{ej(c[a+52>>2]|0,c[a+44>>2]|0);c[f>>2]=2;return}case 2:{fj(c[a+52>>2]|0,c[a+44>>2]|0);c[b>>2]=0;c[f>>2]=3;return}case 3:{Pg(a);return}case 4:{Qg(a);return}case 5:{d=a+36|0;b=a+44|0;if(c[d>>2]|0){e=0;do{h=c[b>>2]|0;g[h+(e<<3)>>2]=0.0;g[h+(e<<3)+4>>2]=0.0;e=e+1|0}while(e>>>0<(c[d>>2]|0)>>>0)}hj(c[a+52>>2]|0,c[b>>2]|0);c[a+140>>2]=1;c[a+136>>2]=0;c[f>>2]=6;return}case 6:{e=a+36|0;if(!(c[e>>2]|0))return;b=a+44|0;d=0;do{h=c[b>>2]|0;g[h+(d<<3)>>2]=0.0;g[h+(d<<3)+4>>2]=0.0;d=d+1|0}while(d>>>0<(c[e>>2]|0)>>>0);return}default:{Qp(28923,74,1,c[2348]|0)|0;kb(1)}}}function Pg(b){b=b|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(!(c[b>>2]|0))e=b+40|0;else{i=b+12|0;j=b+144|0;k=b+96|0;l=b+64|0;m=b+80|0;e=b+40|0;n=0;do{do if((a[(c[i>>2]|0)+n>>0]|0)==2){f=c[j>>2]|0;h=c[l>>2]|0;if(f>>>0<(c[k>>2]|0)>>>0){c[j>>2]=f+1;Li(h,d[(c[m>>2]|0)+f>>0]|0,(c[e>>2]|0)+(n<<3)|0);break}else{h=Ii(h)|0;Li(c[l>>2]|0,h,(c[e>>2]|0)+(n<<3)|0);break}}else{h=c[e>>2]|0;g[h+(n<<3)>>2]=0.0;g[h+(n<<3)+4>>2]=0.0}while(0);n=n+1|0}while(n>>>0<(c[b>>2]|0)>>>0)}gj(c[b+52>>2]|0,c[e>>2]|0,c[b+44>>2]|0);e=b+128|0;if((c[e>>2]|0)!=(c[b+56>>2]|0))return;c[e>>2]=0;c[b+132>>2]=4;return}function Qg(b){b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!(c[b>>2]|0))d=b+40|0;else{h=b+12|0;i=b+148|0;j=b+124|0;k=b+108|0;l=b+116|0;d=b+40|0;m=0;do{do if((a[(c[h>>2]|0)+m>>0]|0)==2){e=c[i>>2]|0;f=c[k>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;Li(f,c[(c[l>>2]|0)+(e<<2)>>2]|0,(c[d>>2]|0)+(m<<3)|0);break}else{f=Ii(f)|0;Li(c[k>>2]|0,f,(c[d>>2]|0)+(m<<3)|0);break}}else{f=c[d>>2]|0;g[f+(m<<3)>>2]=0.0;g[f+(m<<3)+4>>2]=0.0}while(0);m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}gj(c[b+52>>2]|0,c[d>>2]|0,c[b+44>>2]|0);if((c[b+128>>2]|0)!=(c[b+60>>2]|0))return;c[b+132>>2]=5;return}function Rg(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0;i=Xp(232)|0;if(a>>>0>=8){if(a&1|0){Qp(29060,70,1,c[2348]|0)|0;kb(1)}if(b>>>0>a>>>0){Qp(29131,92,1,c[2348]|0)|0;kb(1)}}else Qp(28998,61,1,c[2348]|0)|0;c[i>>2]=a;c[i+4>>2]=b;c[i+8>>2]=d;c[i+156>>2]=f;c[i+160>>2]=h;f=Xp(a)|0;h=i+12|0;c[h>>2]=f;if(!e){_i(a,f);f=c[h>>2]|0;h=c[i>>2]|0}else{fq(f|0,e|0,a|0)|0;h=a}$i(f,h,i+16|0,i+20|0,i+24|0);h=i+208|0;c[h>>2]=ij(a,b,d,e,5,i)|0;d=i+40|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[i+60>>2]=8;c[i+36>>2]=0;Wg(i,0);c[i+96>>2]=48;c[i+100>>2]=2;d=i+104|0;c[d>>2]=1;a=i+108|0;c[a>>2]=1;b=i+112|0;c[b>>2]=1;e=i+116|0;c[e>>2]=1;c[i+128>>2]=di(48)|0;c[i+120>>2]=0;e=Ck(c[d>>2]|0,c[a>>2]|0,c[b>>2]|0,c[e>>2]|0)|0;c[i+124>>2]=e;e=Fk(e)|0;c[i+140>>2]=e;c[i+132>>2]=Xp(e)|0;d=c[d>>2]|0;c[i+136>>2]=Xp(d)|0;c[i+152>>2]=Xp(d<<3)|0;c[i+144>>2]=0;d=i+212|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;g[i+204>>2]=9.999999960041972e-13;zl(i+164|0);jj(c[h>>2]|0);return i|0}function Sg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=e+212|0;c[b>>2]=(c[b>>2]|0)+1;switch(c[e+216>>2]|0){case 0:{Tg(e,a);return 0}case 1:{Vg(e,a);return 0}default:{Qp(29705,81,1,c[2348]|0)|0;kb(1)}}return 0}function Tg(b,d){b=b|0;d=d|0;var e=0,f=0,h=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.0;y=i;i=i+64|0;if((i|0)>=(j|0))ba();w=y+24|0;t=y;h=y+16|0;k=y+8|0;e=c[b>>2]|0;if(!e){i=y;return}n=b+12|0;o=b+36|0;p=b+40|0;q=k+4|0;r=b+220|0;s=b+56|0;x=b+204|0;v=b+72|0;l=b+92|0;m=h+4|0;f=0;while(1){if((a[(c[n>>2]|0)+f>>0]|0)==2){if(!(c[o>>2]|0)){e=c[p>>2]|0;z=c[d+(f<<3)+4>>2]|0;c[k>>2]=c[d+(f<<3)>>2];c[q>>2]=z;c[w>>2]=c[k>>2];c[w+4>>2]=c[k+4>>2];Mi(e,w,t);a[(c[s>>2]|0)+(c[r>>2]|0)>>0]=c[t>>2]}else{e=c[p>>2]|0;A=c[d+(f<<3)+4>>2]|0;z=_(c[r>>2]|0,c[636+(c[l>>2]<<4)+12>>2]|0)|0;z=(c[s>>2]|0)+z|0;c[h>>2]=c[d+(f<<3)>>2];c[m>>2]=A;c[w>>2]=c[h>>2];c[w+4>>2]=c[h+4>>2];Ni(e,w,t,z)}c[r>>2]=(c[r>>2]|0)+1;B=+Ri(c[p>>2]|0);g[x>>2]=+g[x>>2]+B*B;if((c[r>>2]|0)==(c[v>>2]|0))break;e=c[b>>2]|0}f=f+1|0;if(f>>>0>=e>>>0){u=13;break}}if((u|0)==13){i=y;return}Ug(b);p=b+164|0;g[p>>2]=+yp(+g[x>>2]/+((c[v>>2]|0)>>>0))*10.0;e=b+76|0;if(!(c[e>>2]|0)){m=b+208|0;g[b+168>>2]=+vj(c[m>>2]|0);g[b+172>>2]=+wj(c[m>>2]|0);n=b+176|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;c[n+24>>2]=0;n=c[b+156>>2]|0;o=c[b+48>>2]|0;e=c[e>>2]|0;f=c[b+160>>2]|0;h=w;k=p;l=h+40|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));ob[n&1](o,e,0,0,0,w,f)|0;A=b+212|0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;c[A+16>>2]=0;g[x>>2]=9.999999960041972e-13;zl(p);jj(c[m>>2]|0);i=y;return}else{c[b+216>>2]=1;i=y;return}}function Ug(b){b=b|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+16|0;if((i|0)>=(j|0))ba();p=q;do if(!(c[b+36>>2]|0)){e=b+52|0;n=b+68|0;ek(c[b+56>>2]|0,c[636+(c[b+92>>2]<<4)+12>>2]|0,c[b+72>>2]|0,c[e>>2]|0,8,c[n>>2]|0,p);f=c[p>>2]|0;if((f|0)==(c[n>>2]|0)){Oj(c[e>>2]|0,f);g=Kk(c[b+44>>2]|0,c[e>>2]|0,c[b+48>>2]|0)|0;o=b+76|0;c[o>>2]=g;break}else Ha(29224,29256,537,29292)}else{g=b+52|0;o=b+68|0;gq(c[g>>2]|0,c[b+56>>2]|0,c[o>>2]|0)|0;Pj(c[g>>2]|0,(c[o>>2]|0)>>>3);g=Lk(c[b+44>>2]|0,c[g>>2]|0,c[b+48>>2]|0)|0;o=b+76|0;c[o>>2]=g}while(0);if(!g){i=q;return}h=c[b+60>>2]|0;e=b+48|0;f=c[e>>2]|0;if((a[f+h>>0]|0)!=105){Qp(29324,68,1,c[2348]|0)|0;c[o>>2]=0;g=0;f=c[e>>2]|0}n=d[f+(h+1)>>0]<<8|d[f+(h+2)>>0];m=a[f+(h+3)>>0]|0;l=m&255;if((m+-1&255)>59){Qp(29393,70,1,c[2348]|0)|0;c[o>>2]=0;i=q;return}k=d[f+(h+4)>>0]|0;e=k>>>5;k=k&31;m=d[f+(h+5)>>0]&31;if((e|0)==7){Qp(29464,74,1,c[2348]|0)|0;c[o>>2]=0;g=0;h=0}else h=e;if(k>>>0>27){Qp(29539,82,1,c[2348]|0)|0;c[o>>2]=0;g=0;f=0}else f=k;if(m>>>0>27){Qp(29622,82,1,c[2348]|0)|0;c[o>>2]=0;i=q;return}if(!g){i=q;return}e=b+96|0;if((l|0)==(c[e>>2]|0))e=b+100|0;else{c[e>>2]=l;e=b+100|0;c[e>>2]=c[636+(l<<4)+12>>2];o=b+128|0;c[o>>2]=Gi(c[o>>2]|0,l)|0}g=b+104|0;c[g>>2]=n;c[b+108>>2]=h;c[b+112>>2]=f;c[b+116>>2]=m;o=b+124|0;f=Dk(c[o>>2]|0,n,h,f,m)|0;c[o>>2]=f;o=(c[b+120>>2]|0)==0;f=Fk(f)|0;e=c[e>>2]|0;if(o){o=b+140|0;c[o>>2]=f;Vp(p,f<<3,e);f=o;e=((c[p+4>>2]|0)!=0&1)+(c[p>>2]|0)|0}else{o=f<<3;f=b+140|0;c[f>>2]=o;Vp(p,o,e);e=((c[p+4>>2]|0)!=0&1)+(c[p>>2]|0)|0}p=b+144|0;c[p>>2]=e;o=b+132|0;c[o>>2]=_p(c[o>>2]|0,c[f>>2]|0)|0;o=b+136|0;c[o>>2]=_p(c[o>>2]|0,c[g>>2]|0)|0;b=b+152|0;c[b>>2]=_p(c[b>>2]|0,c[p>>2]<<3)|0;i=q;return}function Vg(b,d){b=b|0;d=d|0;var e=0,f=0,h=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;C=i;i=i+64|0;if((i|0)>=(j|0))ba();B=C+24|0;u=C;l=C+16|0;m=C+8|0;e=c[b>>2]|0;if(!e){i=C;return}q=b+12|0;r=b+224|0;A=b+152|0;x=b+120|0;s=b+128|0;t=m+4|0;w=b+132|0;n=b+140|0;o=b+228|0;y=b+100|0;z=b+144|0;p=l+4|0;k=0;while(1){if((a[(c[q>>2]|0)+k>>0]|0)==2){f=d+(k<<3)|0;h=d+(k<<3)+4|0;E=c[h>>2]|0;e=c[r>>2]|0;D=c[A>>2]|0;c[D+(e<<3)>>2]=c[f>>2];c[D+(e<<3)+4>>2]=E;e=c[s>>2]|0;f=c[f>>2]|0;h=c[h>>2]|0;if(!(c[x>>2]|0)){c[m>>2]=f;c[t>>2]=h;c[B>>2]=c[m>>2];c[B+4>>2]=c[m+4>>2];Mi(e,B,u);$j(c[w>>2]|0,c[n>>2]|0,c[o>>2]|0,c[y>>2]|0,c[u>>2]|0);c[o>>2]=(c[o>>2]|0)+(c[y>>2]|0)}else{E=_(c[r>>2]|0,c[y>>2]|0)|0;E=(c[w>>2]|0)+E|0;c[l>>2]=f;c[p>>2]=h;c[B>>2]=c[l>>2];c[B+4>>2]=c[l+4>>2];Ni(e,B,u,E)}E=(c[r>>2]|0)+1|0;c[r>>2]=E;if((E|0)==(c[z>>2]|0))break;e=c[b>>2]|0}k=k+1|0;if(k>>>0>=e>>>0){v=16;break}}if((v|0)==16){i=C;return}h=c[b+124>>2]|0;e=c[w>>2]|0;k=b+136|0;f=c[k>>2]|0;if(!(c[x>>2]|0))e=Kk(h,e,f)|0;else e=Lk(h,e,f)|0;f=b+148|0;c[f>>2]=e;e=b+156|0;if(!(c[e>>2]|0)){E=b+212|0;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[E+12>>2]=0;c[E+16>>2]=0;g[b+204>>2]=9.999999960041972e-13;zl(b+164|0);jj(c[b+208>>2]|0);i=C;return}else{r=b+208|0;s=b+164|0;g[b+168>>2]=+vj(c[r>>2]|0);g[b+172>>2]=+wj(c[r>>2]|0);c[b+176>>2]=c[A>>2];c[b+180>>2]=c[z>>2];c[b+184>>2]=c[b+96>>2];c[b+188>>2]=c[y>>2];c[b+192>>2]=c[b+108>>2];c[b+196>>2]=c[b+112>>2];c[b+200>>2]=c[b+116>>2];o=c[e>>2]|0;p=c[b+48>>2]|0;q=c[b+76>>2]|0;n=c[k>>2]|0;m=c[b+104>>2]|0;e=c[f>>2]|0;f=c[b+160>>2]|0;h=B;k=s;l=h+40|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));ob[o&1](p,q,n,m,e,B,f)|0;E=b+212|0;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[E+12>>2]=0;c[E+16>>2]=0;g[b+204>>2]=9.999999960041972e-13;zl(s);jj(c[r>>2]|0);i=C;return}}function Wg(a,b){a=a|0;b=b|0;var d=0;b=(b|0)==0?620:b;if(((c[b>>2]|0)+-1|0)>>>0>5){Qp(29787,76,1,c[2348]|0)|0;kb(1)}if(!(c[b+4>>2]|0)){d=c[2348]|0;Qp(29864,76,1,d)|0;kb(1)}if(!(c[b+8>>2]|0)){d=c[2348]|0;Qp(29864,76,1,d)|0;kb(1)}if(!(c[b+12>>2]|0)){Qp(29941,83,1,c[2348]|0)|0;kb(1)}else{gq(a+80|0,b|0,16)|0;Xg(a,c[a+60>>2]|0);return}}function Xg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;if((i|0)>=(j|0))ba();f=g;c[a+60>>2]=b;e=b+6|0;b=a+64|0;c[b>>2]=e;d=a+48|0;c[d>>2]=_p(c[d>>2]|0,e)|0;d=a+44|0;e=c[d>>2]|0;if(e|0)Ek(e);b=Ck(c[b>>2]|0,c[a+80>>2]|0,c[a+84>>2]|0,c[a+88>>2]|0)|0;c[d>>2]=b;e=(c[a+36>>2]|0)==0;b=Fk(b)|0;if(e){d=a+68|0;c[d>>2]=b;Vp(f,b<<3,c[636+(c[a+92>>2]<<4)+12>>2]|0);b=((c[f+4>>2]|0)!=0&1)+(c[f>>2]|0)|0;d=c[d>>2]|0}else{d=b<<3;c[a+68>>2]=d;b=d}f=a+72|0;c[f>>2]=b;b=a+52|0;c[b>>2]=_p(c[b>>2]|0,d)|0;b=a+56|0;c[b>>2]=_p(c[b>>2]|0,c[f>>2]|0)|0;b=a+40|0;d=c[b>>2]|0;if(!d){a=a+92|0;a=c[a>>2]|0;a=di(a)|0;c[b>>2]=a;i=g;return}Hi(d);a=a+92|0;a=c[a>>2]|0;a=di(a)|0;c[b>>2]=a;i=g;return}function Yg(a){a=a|0;kj(c[a+208>>2]|0);Ek(c[a+44>>2]|0);Hi(c[a+40>>2]|0);Ek(c[a+124>>2]|0);Hi(c[a+128>>2]|0);Yp(c[a+12>>2]|0);Yp(c[a+132>>2]|0);Yp(c[a+136>>2]|0);Yp(c[a+152>>2]|0);Yp(c[a+48>>2]|0);Yp(c[a+52>>2]|0);Yp(c[a+56>>2]|0);Yp(a);return}function Zg(a,b){a=a|0;b=b|0;c[a+36>>2]=b;Xg(a,c[a+60>>2]|0);return}function _g(a,b){a=a|0;b=b|0;c[a+120>>2]=b;return}function $g(a,b,d){a=a|0;b=b|0;d=d|0;lj(c[a+208>>2]|0,b,d);return}function ah(a){a=a|0;xj(c[a+208>>2]|0);return}function bh(a,b){a=a|0;b=b|0;yj(c[a+208>>2]|0,b);return}function ch(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!b){Qp(30025,63,1,c[2348]|0)|0;kb(1)}else{d=Xp(96)|0;c[d>>2]=b;h=b<<3;m=Xp(h)|0;i=d+4|0;c[i>>2]=m;fq(m|0,a|0,h|0)|0;g[d+12>>2]=+Bk(m,b);m=1<<(Rh(c[d>>2]<<1)|0);b=d+32|0;c[b>>2]=m;h=m<<3;l=Xp(h)|0;e=d+16|0;c[e>>2]=l;k=Xp(h)|0;a=d+20|0;c[a>>2]=k;f=d+24|0;c[f>>2]=Xp(h)|0;j=d+28|0;c[j>>2]=Xp(h)|0;h=d+36|0;c[h>>2]=Mk(m,l,k,1,0)|0;c[d+40>>2]=Mk(c[b>>2]|0,c[f>>2]|0,c[j>>2]|0,-1,0)|0;j=c[b>>2]<<3;f=d+8|0;c[f>>2]=Xp(j)|0;eq(c[e>>2]|0,0,j|0)|0;gq(c[e>>2]|0,c[i>>2]|0,c[d>>2]<<3|0)|0;el(c[h>>2]|0);gq(c[f>>2]|0,c[a>>2]|0,c[b>>2]<<3|0)|0;a=c[b>>2]|0;c[d+44>>2]=a>>>1;c[d+56>>2]=0;g[d+60>>2]=0.0;g[d+64>>2]=0.0;c[d+88>>2]=0;c[d+92>>2]=0;eq(c[e>>2]|0,0,a<<3|0)|0;a=d+72|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[d+48>>2]=.5;b=~~(+((c[b>>2]|0)>>>0)*.30000001192092896/6.283185307179586);c[d+52>>2]=(b|0)<0?0:b;return d|0}return 0}function dh(a,b){a=a|0;b=+b;var d=0,e=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();d=e;if(b<=0.0|b>2.0){a=c[2348]|0;h[d>>3]=b;Kp(a,30089,d)|0;i=e;return}else{g[a+48>>2]=b;i=e;return}}function eh(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;var k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+16|0;if((i|0)>=(j|0))ba();m=r+8|0;n=r;if(!b){Qp(30141,70,1,c[2348]|0)|0;kb(1)}if((e+-2|0)>>>0>78){Qp(30212,76,1,c[2348]|0)|0;kb(1)}if((f+-1|0)>>>0>99){Qp(30289,71,1,c[2348]|0)|0;kb(1)}if(h<0.0|h>1.0){Qp(30361,80,1,c[2348]|0)|0;kb(1)}o=(f<<1)+b|0;p=_(o,e)|0;q=Xp(p<<3)|0;d=Ee(d,e,f,h,0.0)|0;if(!o){Fe(d);b=ch(q,p)|0;Yp(q);i=r;return b|0}f=n+4|0;l=0;do{if(l>>>0<b>>>0){h=+g[a+(l<<3)>>2];k=+g[a+(l<<3)+4>>2]}else{h=0.0;k=0.0}s=q+((_(l,e)|0)<<3)|0;g[n>>2]=h;g[f>>2]=k;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];Je(d,m,s);l=l+1|0}while((l|0)!=(o|0));Fe(d);s=ch(q,p)|0;Yp(q);i=r;return s|0}function fh(a){a=a|0;Yp(c[a+4>>2]|0);Yp(c[a+8>>2]|0);Yp(c[a+16>>2]|0);Yp(c[a+20>>2]|0);Yp(c[a+24>>2]|0);Yp(c[a+28>>2]|0);dl(c[a+36>>2]|0);dl(c[a+40>>2]|0);Yp(a);return}function gh(a){a=a|0;return}function hh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;if((i|0)>=(j|0))ba();d=g+16|0;e=g+8|0;f=g;switch(c[a+88>>2]|0){case 0:{f=c[b+4>>2]|0;c[e>>2]=c[b>>2];c[e+4>>2]=f;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];ih(a,d);break}case 1:{e=c[b+4>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];jh(a,d);break}default:{}}d=a+92|0;if(!(c[d>>2]|0)){a=0;i=g;return a|0}c[d>>2]=0;a=c[a+28>>2]|0;i=g;return a|0}function ih(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0.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,P=0,Q=0,R=0,S=0;Q=i;i=i+48|0;if((i|0)>=(j|0))ba();E=Q+40|0;F=Q+32|0;G=Q+24|0;H=Q+16|0;I=Q+8|0;J=Q;N=c[b>>2]|0;M=c[b+4>>2]|0;P=a+44|0;b=c[P>>2]|0;c[P>>2]=b+1;L=a+16|0;K=c[L>>2]|0;c[K+(b<<3)>>2]=N;c[K+(b<<3)+4>>2]=M;p=(c[k>>2]=N,+g[k>>2]);s=(c[k>>2]=M,+g[k>>2]);M=a+64|0;g[M>>2]=+g[M>>2]+(p*p+s*s);N=a+32|0;b=c[N>>2]|0;if((c[P>>2]|0)>>>0<b>>>0){i=Q;return}c[P>>2]=b>>>1;el(c[a+36>>2]|0);K=a+60|0;p=+O(+(+g[K>>2]+ +g[M>>2]));f=c[N>>2]|0;s=+(f>>>0);s=s*(p*+O(+(+((c[a>>2]|0)>>>0)/s)));s=1.0/(s*+O(+(+g[a+12>>2])));t=a+52|0;D=c[t>>2]|0;b=0-D|0;if((D|0)<(b|0)){e=0;b=0;d=0.0}else{u=a+40|0;v=a+28|0;w=I+4|0;x=J+4|0;y=a+20|0;z=a+8|0;A=G+4|0;B=F+4|0;C=H+4|0;D=a+24|0;r=b;e=0;b=0;d=0.0;while(1){if(f|0){q=0;do{R=((q-r+f|0)>>>0)%(f>>>0)|0;S=c[y>>2]|0;m=+g[S+(q<<3)>>2];n=+g[S+(q<<3)+4>>2];S=c[z>>2]|0;f=c[S+(R<<3)+4>>2]|0;c[G>>2]=c[S+(R<<3)>>2];c[A>>2]=f;c[E>>2]=c[G>>2];c[E+4>>2]=c[G+4>>2];Ko(F,E);o=+g[F>>2];p=+g[B>>2];l=m*o-n*p;h=n*o+m*p;if((l!=l|0.0!=0.0)&(h!=h|0.0!=0.0)){ao(H,m,n,o,p);l=+g[H>>2];h=+g[C>>2]}f=c[D>>2]|0;g[f+(q<<3)>>2]=l;g[f+(q<<3)+4>>2]=h;q=q+1|0;f=c[N>>2]|0}while(q>>>0<f>>>0)}el(c[u>>2]|0);S=c[v>>2]|0;R=c[N>>2]|0;g[I>>2]=s;g[w>>2]=0.0;c[E>>2]=c[I>>2];c[E+4>>2]=c[I+4>>2];fk(S,R,E,S);if(!(c[N>>2]|0))f=0;else{q=0;do{S=c[v>>2]|0;f=c[S+(q<<3)+4>>2]|0;c[J>>2]=c[S+(q<<3)>>2];c[x>>2]=f;c[E>>2]=c[J>>2];c[E+4>>2]=c[J+4>>2];p=+wo(E);f=p>d;d=f?p:d;e=f?q:e;b=f?r:b;q=q+1|0;f=c[N>>2]|0}while(q>>>0<f>>>0)}if((r|0)<(c[t>>2]|0))r=r+1|0;else break}}S=a+56|0;c[S>>2]=(c[S>>2]|0)+1;if(d>+g[a+48>>2]?e>>>0<(f-(c[a>>2]|0)|0)>>>0:0){c[a+88>>2]=1;c[a+68>>2]=b;S=c[L>>2]|0;gq(S|0,S+(e<<3)|0,f-e<<3|0)|0;c[P>>2]=(c[N>>2]|0)-e;i=Q;return}R=c[L>>2]|0;S=f>>>1;gq(R|0,R+(S<<3)|0,S<<3|0)|0;c[K>>2]=c[M>>2];g[M>>2]=0.0;i=Q;return}function jh(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,h=0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0.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,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;U=i;i=i+144|0;if((i|0)>=(j|0))ba();S=U+136|0;x=U+128|0;y=U+120|0;z=U+112|0;A=U+104|0;B=U+96|0;C=U+88|0;E=U+80|0;F=U+72|0;G=U+64|0;H=U+56|0;I=U+48|0;J=U+40|0;K=U+32|0;L=U+24|0;M=U+16|0;N=U+8|0;T=U;v=c[b>>2]|0;w=c[b+4>>2]|0;P=a+44|0;R=c[P>>2]|0;c[P>>2]=R+1;Q=a+16|0;D=c[Q>>2]|0;c[D+(R<<3)>>2]=v;c[D+(R<<3)+4>>2]=w;R=a+32|0;if((c[P>>2]|0)>>>0<(c[R>>2]|0)>>>0){i=U;return}D=a+36|0;el(c[D>>2]|0);b=c[R>>2]|0;if(b|0){h=a+68|0;m=a+20|0;n=a+8|0;r=y+4|0;u=x+4|0;v=z+4|0;w=a+24|0;f=0;do{V=((b+f-(c[h>>2]|0)|0)>>>0)%(b>>>0)|0;W=c[m>>2]|0;k=+g[W+(f<<3)>>2];l=+g[W+(f<<3)+4>>2];W=c[n>>2]|0;b=c[W+(V<<3)+4>>2]|0;c[y>>2]=c[W+(V<<3)>>2];c[r>>2]=b;c[S>>2]=c[y>>2];c[S+4>>2]=c[y+4>>2];Ko(x,S);o=+g[x>>2];p=+g[u>>2];e=k*o-l*p;d=l*o+k*p;if((e!=e|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(z,k,l,o,p);e=+g[z>>2];d=+g[v>>2]}b=c[w>>2]|0;g[b+(f<<3)>>2]=e;g[b+(f<<3)+4>>2]=d;f=f+1|0;b=c[R>>2]|0}while(f>>>0<b>>>0)}el(c[a+40>>2]|0);V=(c[R>>2]|0)+-1|0;v=a+28|0;z=c[v>>2]|0;W=c[z+(V<<3)+4>>2]|0;c[A>>2]=c[z+(V<<3)>>2];c[A+4>>2]=W;c[S>>2]=c[A>>2];c[S+4>>2]=c[A+4>>2];q=+O(+(+wo(S)));W=c[v>>2]|0;V=c[W+4>>2]|0;c[B>>2]=c[W>>2];c[B+4>>2]=V;c[S>>2]=c[B>>2];c[S+4>>2]=c[B+4>>2];p=+O(+(+wo(S)));V=c[v>>2]|0;W=c[V+12>>2]|0;c[C>>2]=c[V+8>>2];c[C+4>>2]=W;c[S>>2]=c[C>>2];c[S+4>>2]=c[C+4>>2];t=+O(+(+wo(S)));s=(q+t)*.5-p;q=(t-q)*.5;t=-q/(s*2.0);g[a+72>>2]=t;t=p+(q*t+t*(s*t));W=c[R>>2]|0;g[a+76>>2]=t*t/(+(W>>>0)*+g[a+12>>2]);gq(c[v>>2]|0,c[Q>>2]|0,W<<3|0)|0;if(c[R>>2]|0){b=a+4|0;f=F+4|0;h=E+4|0;m=G+4|0;u=0;do{if(u>>>0<(c[a>>2]|0)>>>0){V=c[b>>2]|0;W=c[V+(u<<3)+4>>2]|0;c[F>>2]=c[V+(u<<3)>>2];c[f>>2]=W;c[S>>2]=c[F>>2];c[S+4>>2]=c[F+4>>2];Ko(E,S);o=+g[E>>2];p=+g[h>>2]}else{o=0.0;p=0.0}r=c[Q>>2]|0;n=r+(u<<3)|0;k=+g[n>>2];r=r+(u<<3)+4|0;l=+g[r>>2];e=o*k-p*l;d=p*k+o*l;if((e!=e|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(G,k,l,o,p);e=+g[G>>2];d=+g[m>>2]}g[n>>2]=e;g[r>>2]=d;u=u+1|0}while(u>>>0<(c[R>>2]|0)>>>0)}el(c[D>>2]|0);n=a+20|0;if(!(c[R>>2]|0)){f=0;b=0;d=0.0}else{h=H+4|0;m=0;b=0;d=0.0;do{W=c[n>>2]|0;f=c[W+(m<<3)+4>>2]|0;c[H>>2]=c[W+(m<<3)>>2];c[h>>2]=f;c[S>>2]=c[H>>2];c[S+4>>2]=c[H+4>>2];t=+wo(S);f=t>d;b=f?m:b;d=f?t:d;m=m+1|0;f=c[R>>2]|0}while(m>>>0<f>>>0)}H=((b+-1+f|0)>>>0)%(f>>>0)|0;W=((b+1|0)>>>0)%(f>>>0)|0;f=c[n>>2]|0;V=c[f+(H<<3)+4>>2]|0;c[I>>2]=c[f+(H<<3)>>2];c[I+4>>2]=V;c[S>>2]=c[I>>2];c[S+4>>2]=c[I+4>>2];s=+wo(S);V=c[n>>2]|0;f=c[V+(W<<3)+4>>2]|0;c[J>>2]=c[V+(W<<3)>>2];c[J+4>>2]=f;c[S>>2]=c[J>>2];c[S+4>>2]=c[J+4>>2];t=+wo(S);t=+(b>>>0)+-((t-s)*.5)/(((s+t)*.5-d)*2.0);f=c[R>>2]|0;d=+(f>>>0);d=(b>>>0>f>>>1>>>0?t-d:t)*2.0*3.141592653589793/d;f=a+80|0;g[f>>2]=d;a:do if(!(c[a>>2]|0)){e=0.0;d=0.0}else{h=K+4|0;m=M+4|0;n=L+4|0;r=N+4|0;k=d;b=0;e=0.0;d=0.0;while(1){W=c[Q>>2]|0;s=+g[W+(b<<3)>>2];t=+g[W+(b<<3)+4>>2];q=k*-0.0;o=-k;p=+(b>>>0);l=p*q-q;k=p*o+q*0.0;if((l!=l|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(K,q,o,p,0.0);l=+g[K>>2];k=+g[h>>2]}g[M>>2]=l;g[m>>2]=k;c[S>>2]=c[M>>2];c[S+4>>2]=c[M+4>>2];Io(L,S);o=+g[L>>2];p=+g[n>>2];k=s*o-t*p;l=t*o+s*p;if((k!=k|0.0!=0.0)&(l!=l|0.0!=0.0)){ao(N,s,t,o,p);k=+g[N>>2];l=+g[r>>2]}e=e+k;d=d+l;b=b+1|0;if(b>>>0>=(c[a>>2]|0)>>>0)break a;k=+g[f>>2]}}while(0);g[T>>2]=e;g[T+4>>2]=d;c[S>>2]=c[T>>2];c[S+4>>2]=c[T+4>>2];g[a+84>>2]=+Bo(S);c[a+92>>2]=1;W=(c[R>>2]|0)>>>1;gq(c[Q>>2]|0,(c[v>>2]|0)+(W<<3)|0,W<<3|0)|0;c[a+88>>2]=0;g[a+60>>2]=+Bk(c[Q>>2]|0,(c[R>>2]|0)>>>1);g[a+64>>2]=0.0;c[P>>2]=(c[R>>2]|0)>>>1;i=U;return}function kh(a){a=a|0;return c[a+32>>2]|0}function lh(a){a=a|0;return +(+g[a+72>>2])}function mh(a){a=a|0;return +(+g[a+76>>2])}function nh(a){a=a|0;return +(+g[a+80>>2])}function oh(a){a=a|0;return +(+g[a+84>>2])}function ph(){var a=0,b=0,d=0,e=0,f=0;a=i;i=i+16|0;if((i|0)>=(j|0))ba();e=a;b=Xp(36)|0;c[b>>2]=di(48)|0;c[b+8>>2]=2;c[b+12>>2]=1;d=Ck(1,1,1,1)|0;c[b+4>>2]=d;d=Fk(d)|0;c[b+24>>2]=d;f=d<<3;c[b+28>>2]=f;Vp(e,f,2);c[b+16>>2]=Xp(((c[e+4>>2]|0)!=0&1)+(c[e>>2]|0)<<1)|0;c[b+32>>2]=d<<1;c[b+20>>2]=Xp(d<<3)|0;i=a;return b|0}function qh(a){a=a|0;Ek(c[a+4>>2]|0);Hi(c[a>>2]|0);Yp(c[a+16>>2]|0);Yp(c[a+20>>2]|0);Yp(a);return}function rh(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,k=0,l=0,m=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();l=h;m=a+12|0;c[m>>2]=b;b=Gi(c[a>>2]|0,g)|0;c[a>>2]=b;k=a+8|0;c[k>>2]=Ji(b)|0;b=a+4|0;f=Dk(c[b>>2]|0,c[m>>2]|0,d,e,f)|0;c[b>>2]=f;f=Fk(f)|0;c[a+24>>2]=f;f=f<<3;c[a+28>>2]=f;Vp(l,f,c[k>>2]|0);f=((c[l+4>>2]|0)!=0&1)+(c[l>>2]|0)|0;b=a+32|0;c[b>>2]=f;g=a+16|0;c[g>>2]=_p(c[g>>2]|0,_(c[k>>2]|0,f)|0)|0;a=a+20|0;c[a>>2]=_p(c[a>>2]|0,c[b>>2]<<2)|0;i=h;return 0}function sh(a){a=a|0;return c[a+32>>2]|0}function th(a){a=a|0;return Gk(c[a+4>>2]|0)|0}function uh(a){a=a|0;return Hk(c[a+4>>2]|0)|0}function vh(a){a=a|0;return Ik(c[a+4>>2]|0)|0}function wh(a){a=a|0;return Ki(c[a>>2]|0)|0}function xh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=a+20|0;e=c[f>>2]|0;g=a+16|0;Jk(c[a+4>>2]|0,b,c[g>>2]|0);b=a+32|0;eq(c[f>>2]|0,0,c[b>>2]<<2|0)|0;bk(c[g>>2]|0,c[a+24>>2]|0,c[a+8>>2]|0,c[b>>2]|0,e);if(!(c[b>>2]|0))return;e=0;do{Li(c[a>>2]|0,c[(c[f>>2]|0)+(e<<2)>>2]|0,d+(e<<3)|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0);return}function yh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;p=i;i=i+32|0;if((i|0)>=(j|0))ba();f=p+16|0;o=p+8|0;g=p;h=a+32|0;if(!(c[h>>2]|0)){n=a+16|0;o=a+4|0;o=c[o>>2]|0;a=c[n>>2]|0;a=Kk(o,a,d)|0;i=p;return a|0}k=g+4|0;e=a+16|0;l=a+24|0;m=a+8|0;n=0;do{q=c[a>>2]|0;r=c[b+(n<<3)+4>>2]|0;c[g>>2]=c[b+(n<<3)>>2];c[k>>2]=r;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];Mi(q,f,o);q=c[m>>2]|0;r=_(q,n)|0;$j(c[e>>2]|0,c[l>>2]|0,r,q,c[o>>2]|0);n=n+1|0}while(n>>>0<(c[h>>2]|0)>>>0);q=a+4|0;q=c[q>>2]|0;r=c[e>>2]|0;r=Kk(q,r,d)|0;i=p;return r|0}function zh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+32|0;if((i|0)>=(j|0))ba();h=r+16|0;q=r+8|0;k=r;l=a+32|0;if(!(c[l>>2]|0)){g=0;f=c[a+8>>2]|0;e=0}else{m=a+16|0;n=k+4|0;o=a+8|0;p=0;e=0;do{g=c[a>>2]|0;s=c[b+(p<<3)+4>>2]|0;f=(c[m>>2]|0)+e|0;c[k>>2]=c[b+(p<<3)>>2];c[n>>2]=s;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];Ni(g,h,q,f);f=c[o>>2]|0;e=f+e|0;p=p+1|0;g=c[l>>2]|0}while(p>>>0<g>>>0)}if((e|0)==(_(f,g)|0)){s=Lk(c[a+4>>2]|0,c[a+16>>2]|0,d)|0;i=r;return s|0}else Ha(30442,30489,315,30520);return 0}function Ah(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0;o=i;i=i+32|0;if((i|0)>=(j|0))ba();k=o+24|0;d=o+16|0;l=o+8|0;m=o;if(!a){Qp(30545,66,1,c[2348]|0)|0;kb(1)}if(b>>>0<2){Qp(30612,68,1,c[2348]|0)|0;kb(1)}n=Xp(20)|0;c[n>>2]=a;c[n+4>>2]=b;Vp(d,a,b+-1|0);h=((c[d+4>>2]|0)!=0&1)+(c[d>>2]|0)|0;c[n+8>>2]=h;c[n+12>>2]=h+a;b=Xp(h<<3)|0;c[n+16>>2]=b;d=Rj(Rh(h)|0)|0;if(!h){Sj(d);i=o;return n|0}a=m+4|0;e=l+4|0;f=0;do{q=+((Uj(d,2)|0)>>>0)*6.283185307179586*.25+.7853981633974483;g[m>>2]=q*0.0;g[a>>2]=q;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];Io(l,k);p=c[e>>2]|0;c[b+(f<<3)>>2]=c[l>>2];c[b+(f<<3)+4>>2]=p;f=f+1|0}while(f>>>0<h>>>0);Sj(d);i=o;return n|0}function Bh(a){a=a|0;Yp(c[a+16>>2]|0);Yp(a);return}function Ch(a){a=a|0;return c[a+12>>2]|0}function Dh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=a+12|0;if(!(c[g>>2]|0)){f=0;e=0}else{h=a+4|0;i=a+16|0;j=0;f=0;e=0;do{if(!((j>>>0)%((c[h>>2]|0)>>>0)|0)){l=c[i>>2]|0;k=c[l+(e<<3)+4>>2]|0;c[d+(j<<3)>>2]=c[l+(e<<3)>>2];c[d+(j<<3)+4>>2]=k;e=e+1|0}else{l=c[b+(f<<3)+4>>2]|0;c[d+(j<<3)>>2]=c[b+(f<<3)>>2];c[d+(j<<3)+4>>2]=l;f=f+1|0}j=j+1|0}while(j>>>0<(c[g>>2]|0)>>>0)}if((f|0)!=(c[a>>2]|0))Ha(30681,30702,157,30730);if((e|0)==(c[a+8>>2]|0))return;else Ha(30748,30702,158,30730)}function Eh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0;p=i;i=i+32|0;if((i|0)>=(j|0))ba();l=p+24|0;d=p+16|0;m=p+8|0;n=p;if(!a){Qp(30768,67,1,c[2348]|0)|0;kb(1)}if(b>>>0<2){Qp(30836,69,1,c[2348]|0)|0;kb(1)}o=Xp(48)|0;c[o>>2]=a;c[o+4>>2]=b;Vp(d,a,b+-1|0);f=((c[d+4>>2]|0)!=0&1)+(c[d>>2]|0)|0;h=o+8|0;c[h>>2]=f;c[o+12>>2]=f+a;b=Xp(f<<3)|0;c[o+16>>2]=b;k=Rj(Rh(f)|0)|0;if(!f)b=0;else{d=n+4|0;a=m+4|0;e=0;do{r=+((Uj(k,2)|0)>>>0)*6.283185307179586*.25+.7853981633974483;g[n>>2]=r*0.0;g[d>>2]=r;c[l>>2]=c[n>>2];c[l+4>>2]=c[n+4>>2];Io(m,l);q=c[a>>2]|0;c[b+(e<<3)>>2]=c[m>>2];c[b+(e<<3)+4>>2]=q;e=e+1|0}while(e>>>0<f>>>0);b=c[h>>2]|0}Sj(k);b=1<<(Rh((b>>>1)+b|0)|0);c[o+20>>2]=b;a=b<<3;d=Xp(a)|0;c[o+24>>2]=d;a=Xp(a)|0;c[o+28>>2]=a;c[o+32>>2]=Mk(b,d,a,1,0)|0;a=0;do{g[d+(a<<3)>>2]=0.0;g[d+(a<<3)+4>>2]=0.0;a=a+1|0}while(a>>>0<b>>>0);g[o+36>>2]=0.0;g[o+40>>2]=0.0;g[o+44>>2]=1.0;i=p;return o|0}function Fh(a){a=a|0;Yp(c[a+16>>2]|0);Yp(c[a+24>>2]|0);Yp(c[a+28>>2]|0);dl(c[a+32>>2]|0);Yp(a);return}function Gh(a){a=a|0;return c[a+12>>2]|0}function Hh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0,y=0.0,z=0.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;P=i;i=i+144|0;if((i|0)>=(j|0))ba();L=P+128|0;e=P+120|0;k=P+112|0;q=P+104|0;A=P+96|0;B=P+88|0;C=P+80|0;D=P+72|0;F=P+64|0;G=P+56|0;H=P+48|0;E=P+40|0;I=P+32|0;J=P+24|0;M=P+16|0;N=P+8|0;O=P;K=a+8|0;if(c[K>>2]|0){p=a+4|0;r=a+16|0;s=k+4|0;t=e+4|0;v=q+4|0;w=a+24|0;x=0;do{R=_(c[p>>2]|0,x)|0;l=+g[b+(R<<3)>>2];m=+g[b+(R<<3)+4>>2];R=c[r>>2]|0;Q=c[R+(x<<3)+4>>2]|0;c[k>>2]=c[R+(x<<3)>>2];c[s>>2]=Q;c[L>>2]=c[k>>2];c[L+4>>2]=c[k+4>>2];Ko(e,L);n=+g[e>>2];o=+g[t>>2];h=l*n-m*o;f=m*n+l*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(q,l,m,n,o);h=+g[q>>2];f=+g[v>>2]}R=c[w>>2]|0;g[R+(x<<3)>>2]=h;g[R+(x<<3)+4>>2]=f;x=x+1|0}while(x>>>0<(c[K>>2]|0)>>>0)}el(c[a+32>>2]|0);t=a+20|0;s=a+28|0;if(!(c[t>>2]|0)){e=0;k=0;f=0.0}else{p=B+4|0;q=A+4|0;r=0;k=0;f=0.0;do{if(!((r|0)!=0?(Q=c[s>>2]|0,R=c[Q+(r<<3)+4>>2]|0,c[A>>2]=c[Q+(r<<3)>>2],c[q>>2]=R,c[L>>2]=c[A>>2],c[L+4>>2]=c[A+4>>2],!(+wo(L)>f)):0)){R=c[s>>2]|0;k=c[R+(r<<3)+4>>2]|0;c[B>>2]=c[R+(r<<3)>>2];c[p>>2]=k;c[L>>2]=c[B>>2];c[L+4>>2]=c[B+4>>2];k=r;f=+wo(L)}r=r+1|0;e=c[t>>2]|0}while(r>>>0<e>>>0)}x=((k+-1+e|0)>>>0)%(e>>>0)|0;w=((k+1|0)>>>0)%(e>>>0)|0;Q=c[s>>2]|0;R=c[Q+(w<<3)+4>>2]|0;c[C>>2]=c[Q+(w<<3)>>2];c[C+4>>2]=R;c[L>>2]=c[C>>2];c[L+4>>2]=c[C+4>>2];y=+wo(L);R=c[s>>2]|0;w=c[R+(x<<3)+4>>2]|0;c[D>>2]=c[R+(x<<3)>>2];c[D+4>>2]=w;c[L>>2]=c[D>>2];c[L+4>>2]=c[D+4>>2];z=+wo(L);f=+(k>>>0)+-((y-z)*.5)/(((y+z)*.5-f)*2.0);w=c[t>>2]|0;x=a+4|0;f=(k>>>0>w>>>1>>>0?f-+(w>>>0):f)*2.0*3.141592653589793/+((_(c[x>>2]|0,w)|0)>>>0);w=a+36|0;g[w>>2]=f;a:do if(!(c[K>>2]|0)){h=0.0;f=0.0}else{k=a+24|0;p=F+4|0;q=H+4|0;r=G+4|0;s=E+4|0;l=f;e=0;h=0.0;f=0.0;while(1){R=c[k>>2]|0;y=+g[R+(e<<3)>>2];z=+g[R+(e<<3)+4>>2];u=l*-0.0;n=-l;o=+(e>>>0);m=o*u-u;l=o*n+u*0.0;if((m!=m|0.0!=0.0)&(l!=l|0.0!=0.0)){ao(F,u,n,o,0.0);m=+g[F>>2];l=+g[p>>2]}n=+((c[x>>2]|0)>>>0);g[H>>2]=m*n;g[q>>2]=l*n;c[L>>2]=c[H>>2];c[L+4>>2]=c[H+4>>2];Io(G,L);n=+g[G>>2];o=+g[r>>2];l=y*n-z*o;m=z*n+y*o;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(E,y,z,n,o);l=+g[E>>2];m=+g[s>>2]}h=h+l;f=f+m;e=e+1|0;if(e>>>0>=(c[K>>2]|0)>>>0)break a;l=+g[w>>2]}}while(0);g[I>>2]=h;g[I+4>>2]=f;c[L>>2]=c[I>>2];c[L+4>>2]=c[I+4>>2];v=a+40|0;g[v>>2]=+Bo(L);g[J>>2]=h;g[J+4>>2]=f;c[L>>2]=c[J>>2];c[L+4>>2]=c[J+4>>2];u=+wo(L);u=u/+((c[K>>2]|0)>>>0);g[a+44>>2]=u;u=1.0/u;q=a+12|0;e=c[q>>2]|0;if(!e){i=P;return}r=N+4|0;s=M+4|0;t=O+4|0;p=0;k=0;do{if((p>>>0)%((c[x>>2]|0)>>>0)|0){l=u*+g[b+(p<<3)>>2];m=u*+g[b+(p<<3)+4>>2];n=+(p>>>0)*+g[w>>2]+ +g[v>>2];g[N>>2]=n*-0.0;g[r>>2]=-n;c[L>>2]=c[N>>2];c[L+4>>2]=c[N+4>>2];Io(M,L);n=+g[M>>2];o=+g[s>>2];h=l*n-m*o;f=m*n+l*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(O,l,m,n,o);h=+g[O>>2];f=+g[t>>2]}g[d+(k<<3)>>2]=h;g[d+(k<<3)+4>>2]=f;e=c[q>>2]|0;k=k+1|0}p=p+1|0}while(p>>>0<e>>>0);i=P;return}function Ih(a){a=a|0;return +(+g[a+36>>2])}function Jh(a){a=a|0;return +(+g[a+40>>2])}function Kh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0,g=0,i=0,j=0;j=(b|0)==0;if(j)return;else i=0;do{g=c+(i<<3)|0;h[g>>3]=1.0;d=a+(i<<3)|0;e=1.0;f=0;do{if((i|0)!=(f|0)){e=e*(+h[d>>3]-+h[a+(f<<3)>>3]);h[g>>3]=e}f=f+1|0}while((f|0)!=(b|0));h[g>>3]=1.0/e;i=i+1|0}while((i|0)!=(b|0));e=+h[c>>3];if(j)return;h[c>>3]=e/e;if((b|0)==1)return;else d=1;do{h[c+(d<<3)>>3]=+h[c+(d<<3)>>3]/e;d=d+1|0}while((d|0)!=(b|0));return}function Lh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;var f=0,g=0.0,i=0.0,j=0.0,k=0.0;a:do if(!e){i=0.0;g=0.0}else{f=0;i=0.0;g=0.0;while(1){j=d-+h[a+(f<<3)>>3];if(+N(+j)<9.999999974752427e-07)break;k=+h[c+(f<<3)>>3];i=i+k*+h[b+(f<<3)>>3]/j;g=g+k/j;f=f+1|0;if(f>>>0>=e>>>0)break a}k=+h[b+(f<<3)>>3];return +k}while(0);k=i/g;return +k}function Mh(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0,f=0.0;if(!b){f=0.0;return +f}else{e=0;f=1.0;d=0.0}while(1){d=d+f*+g[a+(e<<2)>>2];e=e+1|0;if((e|0)==(b|0))break;else f=f*c}return +d}function Nh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,h=0,k=0,l=0.0,m=0.0,n=0,o=0,p=0;p=i;n=_(e,c)|0;o=i;i=i+((1*(n<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!((c|0)==0|(e|0)==0)){k=0;do{f=_(k,e)|0;l=+g[a+(k<<2)>>2];h=0;m=1.0;while(1){g[o+(h+f<<2)>>2]=m;h=h+1|0;if((h|0)==(e|0))break;else m=m*l}k=k+1|0}while((k|0)!=(c|0))}f=i;i=i+((1*(n<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(f|0,o|0,n<<2|0)|0;Zh(f,c,e);k=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Wh(f,e,c,b,c,1,k,e,1);a=_(e,e)|0;h=i;i=i+((1*(a<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Wh(f,e,c,o,c,e,h,e,e);f=i;i=i+((1*(a<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(f|0,h|0,a<<2|0)|0;Xh(f,e,e);Wh(f,e,e,k,e,1,d,e,1);i=p;return}function Oh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.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,A=0.0,B=0;y=i;i=i+16|0;if((i|0)>=(j|0))ba();w=y+8|0;x=y;if(!b){g[c>>2]=0.0;g[c+4>>2]=0.0;i=y;return}else d=0;while(1){g[c+(d<<3)>>2]=+((d|0)==0&1);g[c+(d<<3)+4>>2]=0.0;if((d|0)==(b|0))break;else d=d+1|0}t=x+4|0;u=w+4|0;v=0;do{q=a+(v<<3)|0;r=a+(v<<3)+4|0;v=v+1|0;f=-+g[q>>2];e=-+g[r>>2];d=c+(v<<3)|0;A=+g[d>>2];n=c+(v<<3)+4|0;z=+g[n>>2];l=f;h=z;m=e;k=A;f=A*f;e=z*e;s=v;while(1){f=f-e;e=m*k+l*h;if((f!=f|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(w,l,m,k,h);f=+g[w>>2];e=+g[u>>2]}B=s;s=s+-1|0;o=c+(s<<3)|0;p=c+(s<<3)+4|0;l=e+ +g[p>>2];g[d>>2]=f+ +g[o>>2];g[n>>2]=l;l=-+g[q>>2];m=-+g[r>>2];k=+g[o>>2];h=+g[p>>2];f=k*l;e=h*m;if((B|0)<=1){n=o;d=p;break}else{d=o;n=p}}f=f-e;e=k*m+h*l;if((f!=f|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(x,k,h,l,m);f=+g[x>>2];e=+g[t>>2]}g[n>>2]=f;g[d>>2]=e}while((v|0)!=(b|0));i=y;return}function Ph(a){a=+a;return +((1.0-+qp(a*.7071067811865476))*.5)}function Qh(a){a=+a;var b=0.0;b=a*3.141592653589793;if(+N(+a)<.009999999776482582){a=+Q(+(b*.5))*+Q(+(b*.25))*+Q(+(b*.125));return +a}else{a=+R(+b)/b;return +a}return 0.0}function Rh(a){a=a|0;var b=0;if(!a){Qp(30906,58,1,c[2348]|0)|0;kb(1)}a=a+-1|0;if(!a){b=0;return b|0}else b=0;do{a=a>>>1;b=b+1|0}while((a|0)!=0);a=b;return a|0}function Sh(a){a=+a;var b=0.0,c=0,d=0.0;if(a==0.0){b=1.0;return +b}b=+Y(+(a*.5));c=0;a=0.0;do{d=+(c>>>0);a=a+ +X(+((d*b-+Th(d+1.0))*2.0));c=c+1|0}while((c|0)!=32);return +a}function Th(a){a=+a;if(a<0.0){Qp(30965,47,1,c[2348]|0)|0;kb(1)}if(a<10.0)return +(+Th(a+1.0)-+Y(+a));else return +((1.8378770351409912-+Y(+a))*.5+(+Y(+(1.0/(a*12.0-.10000000149011612/a)+a))+-1.0)*a);return 0.0}function Uh(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;if(a>>>0>b>>>0){Qp(31013,60,1,c[2348]|0)|0;kb(1)}if(d<0.0){Qp(31074,60,1,c[2348]|0)|0;kb(1)}if(e<-.5|e>.5){Qp(31135,64,1,c[2348]|0)|0;kb(1)}else{e=(+(a>>>0)-+((b+-1|0)>>>0)*.5+e)*2.0/+(b>>>0);e=+Sh(+O(+(1.0-e*e))*d);return +(e/+Sh(d))}return +(0.0)}function Vh(a,b){a=a|0;b=b|0;if(a>>>0>b>>>0){Qp(31200,61,1,c[2348]|0)|0;kb(1)}else return +(.53836-+Q(+(+(a>>>0)*6.283185307179586/+((b+-1|0)>>>0)))*.46164);return +(0.0)}function Wh(a,b,d,e,f,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0.0,m=0,n=0,o=0,p=0;if(!((d|0)==(f|0)&((j|0)==(b|0)&(k|0)==(h|0)))){Qp(31262,40,1,c[2348]|0)|0;kb(1)}if(!j)return;h=(d|0)==0;if(!k)return;f=k<<2;p=0;do{m=_(p,k)|0;n=_(p,d)|0;if(h)eq(i+(m<<2)|0,0,f|0)|0;else{o=0;do{b=0;l=0.0;do{l=l+ +g[a+(b+n<<2)>>2]*+g[e+((_(b,k)|0)+o<<2)>>2];b=b+1|0}while((b|0)!=(d|0));g[i+(o+m<<2)>>2]=l;o=o+1|0}while((o|0)!=(k|0))}p=p+1|0}while((p|0)!=(j|0));return}function Xh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0;n=i;if((b|0)!=(d|0)){Qp(31303,40,1,c[2348]|0)|0;kb(1)}l=b<<1;k=(_(l,b)|0)<<2;m=i;i=i+((1*k|0)+15&-16)|0;if((i|0)>=(j|0))ba();e=(b|0)==0;if(e){Yh(m,b,l);i=n;return}f=b<<2;k=0;do{d=_(l,k)|0;fq(m+(d<<2)|0,a+((_(k,b)|0)<<2)|0,f|0)|0;d=d+b|0;h=0;do{g[m+(d+h<<2)>>2]=+((k|0)==(h|0)&1);h=h+1|0}while((h|0)!=(b|0));k=k+1|0}while((k|0)!=(b|0));Yh(m,b,l);if(e){i=n;return}d=b<<2;e=0;do{fq(a+((_(e,b)|0)<<2)|0,m+((_(l,e)|0)+b<<2)|0,d|0)|0;e=e+1|0}while((e|0)!=(b|0));i=n;return}function Yh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;o=(b|0)==0;if(o)return;p=c[2348]|0;q=(d|0)==0;r=(d|0)!=0;e=0;h=0;f=0.0;do{i=e;do{l=+N(+(+g[a+((_(i,d)|0)+e<<2)>>2]));n=(i|0)==(e|0)|l>f;f=n?l:f;h=n?i:h;i=i+1|0}while((i|0)!=(b|0));if(f==0.0)Qp(31344,63,1,p)|0;n=_(e,d)|0;if((e|0)!=(h|0)&r){i=_(h,d)|0;j=0;do{t=a+(j+n<<2)|0;s=c[t>>2]|0;m=a+(j+i<<2)|0;c[t>>2]=c[m>>2];c[m>>2]=s;j=j+1|0}while((j|0)!=(d|0))}k=+g[a+(n+e<<2)>>2];if(!(k==0.0)){if(!q){m=0;do{if((m|0)!=(e|0)){i=_(m,d)|0;l=+g[a+(i+e<<2)>>2]/k;j=0;do{t=a+(j+i<<2)|0;g[t>>2]=l*+g[a+(j+n<<2)>>2]-+g[t>>2];j=j+1|0}while((j|0)!=(d|0))}m=m+1|0}while((m|0)!=(b|0))}}else Qp(31408,42,1,p)|0;e=e+1|0}while((e|0)!=(b|0));if(o|(d|0)==0)return;else i=0;do{e=_(i,d)|0;f=1.0/+g[a+(e+i<<2)>>2];h=0;do{t=a+(h+e<<2)|0;g[t>>2]=f*+g[t>>2];h=h+1|0}while((h|0)!=(d|0));i=i+1|0}while((i|0)!=(b|0));return}function Zh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,k=0,l=0,m=0,n=0;m=i;i=i+48|0;if((i|0)>=(j|0))ba();f=m+32|0;k=m+16|0;l=m;_h(a,b,d);d=_(d,b)|0;if(!d){i=m;return}b=l+8|0;e=0;do{n=a+(e<<2)|0;h[l>>3]=+g[n>>2];h[b>>3]=0.0;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];c[f+8>>2]=c[l+8>>2];c[f+12>>2]=c[l+12>>2];Jo(k,f);g[n>>2]=+h[k>>3];e=e+1|0}while((e|0)!=(d|0));i=m;return}function _h(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0;k=i;e=_(d,b)|0;h=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(h|0,a|0,e<<2|0)|0;if((b|0)==0|(d|0)==0){i=k;return}else g=0;do{e=_(g,d)|0;f=0;do{c[a+((_(f,b)|0)+g<<2)>>2]=c[h+(f+e<<2)>>2];f=f+1|0}while((f|0)!=(d|0));g=g+1|0}while((g|0)!=(b|0));i=k;return}function $h(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0;if(a>>>0<2){Qp(31451,59,1,c[2348]|0)|0;kb(1)}if(!b){Qp(31511,57,1,c[2348]|0)|0;kb(1)}if(d<=0.0|d>=1.0){Qp(31569,65,1,c[2348]|0)|0;kb(1)}else{e=Xp(32)|0;c[e>>2]=a;c[e+4>>2]=b;g[e+8>>2]=d;g[e+28>>2]=1.0/+(a>>>0);f=_(a<<1,b)|0|1;c[e+12>>2]=f;f=Xp(f<<2)|0;c[e+16>>2]=f;sf(a,b,d,0.0,f);b=le(11,a,b,d,0.0)|0;c[e+20>>2]=b;g[e+24>>2]=0.0;oe(b);return e|0}return 0}function ai(a){a=a|0;g[a+24>>2]=0.0;oe(c[a+20>>2]|0);return}function bi(a){a=a|0;me(c[a+20>>2]|0);Yp(c[a+16>>2]|0);Yp(a);return}function ci(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,k=0,l=0.0;k=i;e=+g[a+28>>2];h=i;i=i+((1*(c[a>>2]<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();qe(c[a+20>>2]|0,(b|0)==0?-e:e,h);if(!(c[a>>2]|0)){i=k;return}b=a+24|0;f=0;do{l=+g[h+(f<<2)>>2]+ +g[b>>2];e=l;l=e>3.141592653589793?e+-6.283185307179586:l;e=l;l=e<-3.141592653589793?e+6.283185307179586:l;g[b>>2]=l;e=+R(+l);g[d+(f<<3)>>2]=+Q(+l)+e*0.0;g[d+(f<<3)+4>>2]=e;f=f+1|0}while(f>>>0<(c[a>>2]|0)>>>0);i=k;return}function di(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();b=n;do switch(a|0){case 1:{m=ei(1)|0;i=n;return m|0}case 2:{m=ei(2)|0;i=n;return m|0}case 3:{m=ei(3)|0;i=n;return m|0}case 4:{m=ei(4)|0;i=n;return m|0}case 5:{m=ei(5)|0;i=n;return m|0}case 6:{m=ei(6)|0;i=n;return m|0}case 7:{m=ei(7)|0;i=n;return m|0}case 8:{m=ei(8)|0;i=n;return m|0}case 9:{b=Xp(252)|0;c[b>>2]=9;c[b+76>>2]=0;c[b+80>>2]=0;c[b+4>>2]=1;c[b+8>>2]=2;m=b+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;g[b+108>>2]=1.5707963705062866;a=b+104|0;g[a>>2]=0.0;g[b+12>>2]=1.5707963705062866;g[b+100>>2]=1.5707963705062866;c[m>>2]=1;c[b+240>>2]=2;g[b+84>>2]=1.0;g[b+88>>2]=0.0;c[b+92>>2]=1065353216;g[b+96>>2]=0.0;if(!(Ti(9)|0)){m=b;i=n;return m|0}g[a>>2]=0.0;m=b;i=n;return m|0}case 10:{a=Xp(252)|0;c[a>>2]=10;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=2;d=a+8|0;c[d>>2]=4;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.7853981852531433;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.7853981852531433;g[a+16>>2]=1.5707963705062866;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+g[h>>2]*+(1<<m|0);m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 11:{a=Xp(252)|0;c[a>>2]=11;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=3;d=a+8|0;c[d>>2]=8;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.39269909262657166;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.39269909262657166;g[a+16>>2]=.7853981852531433;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+g[h>>2]*+(1<<m|0);m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 12:{d=Xp(252)|0;c[d>>2]=12;c[d+76>>2]=0;c[d+80>>2]=0;e=d+4|0;c[e>>2]=4;f=d+8|0;c[f>>2]=16;h=d+236|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;k=d+100|0;l=d+108|0;g[l>>2]=.19634954631328583;m=d+104|0;g[m>>2]=0.0;a=d+12|0;g[a>>2]=.19634954631328583;g[d+16>>2]=.39269909262657166;if((c[e>>2]|0)>>>0>2){b=2;do{g[a+(b<<2)>>2]=+g[l>>2]*+(1<<b|0);b=b+1|0}while(b>>>0<(c[e>>2]|0)>>>0)}l=c[d>>2]|0;g[k>>2]=(1.0-1.0/+((c[f>>2]|0)>>>0))*3.141592653589793;c[h>>2]=1;c[d+240>>2]=2;g[d+84>>2]=1.0;g[d+88>>2]=0.0;c[d+92>>2]=1065353216;g[d+96>>2]=0.0;if(!(Ti(l)|0)){m=d;i=n;return m|0}g[m>>2]=0.0;m=d;i=n;return m|0}case 13:{a=Xp(252)|0;c[a>>2]=13;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=5;d=a+8|0;c[d>>2]=32;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.09817477315664291;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.09817477315664291;g[a+16>>2]=.19634954631328583;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+g[h>>2]*+(1<<m|0);m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 14:{a=Xp(252)|0;c[a>>2]=14;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=6;d=a+8|0;c[d>>2]=64;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.04908738657832146;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.04908738657832146;g[a+16>>2]=.09817477315664291;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+g[h>>2]*+(1<<m|0);m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 15:{a=Xp(252)|0;c[a>>2]=15;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=7;d=a+8|0;c[d>>2]=128;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.02454369328916073;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.02454369328916073;g[a+16>>2]=.04908738657832146;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+g[h>>2]*+(1<<m|0);m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 16:{a=Xp(252)|0;c[a>>2]=16;c[a+76>>2]=0;c[a+80>>2]=0;b=a+4|0;c[b>>2]=8;d=a+8|0;c[d>>2]=256;e=a+236|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;f=a+100|0;h=a+108|0;g[h>>2]=.012271846644580364;k=a+104|0;g[k>>2]=0.0;l=a+12|0;g[l>>2]=.012271846644580364;g[a+16>>2]=.02454369328916073;if((c[b>>2]|0)>>>0>2){m=2;do{g[l+(m<<2)>>2]=+g[h>>2]*+(1<<m|0);m=m+1|0}while(m>>>0<(c[b>>2]|0)>>>0)}m=c[a>>2]|0;g[f>>2]=(1.0-1.0/+((c[d>>2]|0)>>>0))*3.141592653589793;c[e>>2]=1;c[a+240>>2]=2;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(m)|0)){m=a;i=n;return m|0}g[k>>2]=0.0;m=a;i=n;return m|0}case 17:{a=Xp(252)|0;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=1;c[a+8>>2]=2;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;g[a+100>>2]=1.0;c[a>>2]=17;g[a+12>>2]=1.0;c[m>>2]=3;c[a+240>>2]=4;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(17)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 18:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=2;c[h+8>>2]=4;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.4472135901451111;c[h>>2]=18;f=h+12|0;g[f>>2]=.4472135901451111;g[h+16>>2]=.8944271802902222;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<<b|0);b=b+1|0;a=c[d>>2]|0}while(b>>>0<a>>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 19:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=3;c[h+8>>2]=8;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.2182178944349289;c[h>>2]=19;f=h+12|0;g[f>>2]=.2182178944349289;g[h+16>>2]=.4364357888698578;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<<b|0);b=b+1|0;a=c[d>>2]|0}while(b>>>0<a>>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 20:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=4;c[h+8>>2]=16;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.10846523195505142;c[h>>2]=20;f=h+12|0;g[f>>2]=.10846523195505142;g[h+16>>2]=.21693046391010284;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<<b|0);b=b+1|0;a=c[d>>2]|0}while(b>>>0<a>>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 21:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=5;c[h+8>>2]=32;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.05415303632616997;c[h>>2]=21;f=h+12|0;g[f>>2]=.05415303632616997;g[h+16>>2]=.10830607265233994;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<<b|0);b=b+1|0;a=c[d>>2]|0}while(b>>>0<a>>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 22:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=6;c[h+8>>2]=64;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.02706659771502018;c[h>>2]=22;f=h+12|0;g[f>>2]=.02706659771502018;g[h+16>>2]=.05413319543004036;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<<b|0);b=b+1|0;a=c[d>>2]|0}while(b>>>0<a>>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 23:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=7;c[h+8>>2]=128;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.013532060198485851;c[h>>2]=23;f=h+12|0;g[f>>2]=.013532060198485851;g[h+16>>2]=.027064120396971703;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<<b|0);b=b+1|0;a=c[d>>2]|0}while(b>>>0<a>>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 24:{h=Xp(252)|0;c[h+76>>2]=0;c[h+80>>2]=0;d=h+4|0;c[d>>2]=8;c[h+8>>2]=256;k=h+236|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=h+100|0;g[e>>2]=.006765875034034252;c[h>>2]=24;f=h+12|0;g[f>>2]=.006765875034034252;g[h+16>>2]=.013531750068068504;a=c[d>>2]|0;if(a>>>0>2){b=2;do{g[f+(b<<2)>>2]=+g[e>>2]*+(1<<b|0);b=b+1|0;a=c[d>>2]|0}while(b>>>0<a>>>0)}c[k>>2]=3;c[h+240>>2]=4;if((a+-2|0)>>>0<6)ii(h,2);g[h+84>>2]=1.0;g[h+88>>2]=0.0;c[h+92>>2]=1065353216;g[h+96>>2]=0.0;if(!(Ti(c[h>>2]|0)|0)){m=h;i=n;return m|0}g[h+104>>2]=0.0;m=h;i=n;return m|0}case 25:{m=ni(2)|0;i=n;return m|0}case 26:{m=ni(3)|0;i=n;return m|0}case 27:{m=ni(4)|0;i=n;return m|0}case 28:{m=ni(5)|0;i=n;return m|0}case 29:{m=ni(6)|0;i=n;return m|0}case 30:{m=ni(7)|0;i=n;return m|0}case 31:{m=ni(8)|0;i=n;return m|0}case 32:{m=ni(9)|0;i=n;return m|0}case 33:{m=ni(10)|0;i=n;return m|0}case 34:{m=ni(11)|0;i=n;return m|0}case 35:{m=ni(12)|0;i=n;return m|0}case 36:{m=ni(13)|0;i=n;return m|0}case 37:{m=ni(14)|0;i=n;return m|0}case 38:{m=ni(15)|0;i=n;return m|0}case 39:{m=ni(16)|0;i=n;return m|0}case 40:{m=qi(2)|0;i=n;return m|0}case 41:{m=qi(3)|0;i=n;return m|0}case 42:{m=qi(4)|0;i=n;return m|0}case 43:{m=qi(5)|0;i=n;return m|0}case 44:{m=qi(6)|0;i=n;return m|0}case 45:{m=qi(7)|0;i=n;return m|0}case 46:{m=qi(8)|0;i=n;return m|0}case 47:{a=Xp(252)|0;c[a>>2]=47;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=1;c[a+8>>2]=2;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m>>2]=5;c[a+240>>2]=6;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(47)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 48:{a=Xp(252)|0;c[a>>2]=48;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=2;c[a+8>>2]=4;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m>>2]=7;c[a+240>>2]=8;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(48)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 49:{a=Xp(252)|0;c[a>>2]=49;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=1;c[a+8>>2]=2;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m>>2]=9;c[a+240>>2]=10;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(49)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 50:{a=Xp(252)|0;c[a>>2]=50;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=5;c[a+8>>2]=32;b=a+236|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;d=Xp(64)|0;c[a+100>>2]=d;e=2080;f=d+64|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));c[b>>2]=11;c[a+240>>2]=12;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(50)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 51:{a=Xp(252)|0;c[a>>2]=51;c[a+76>>2]=0;c[a+80>>2]=0;c[a+4>>2]=7;c[a+8>>2]=128;m=a+236|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;l=Xp(256)|0;c[a+100>>2]=l;fq(l|0,2144,256)|0;c[m>>2]=13;c[a+240>>2]=14;g[a+84>>2]=1.0;g[a+88>>2]=0.0;c[a+92>>2]=1065353216;g[a+96>>2]=0.0;if(!(Ti(51)|0)){m=a;i=n;return m|0}g[a+104>>2]=0.0;m=a;i=n;return m|0}case 52:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=4;c[m+8>>2]=16;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(16,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,2400,16);i=n;return m|0}case 53:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=4;c[m+8>>2]=16;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(16,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,3552,16);i=n;return m|0}case 54:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=5;c[m+8>>2]=32;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(32,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,3680,32);i=n;return m|0}case 55:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=6;c[m+8>>2]=64;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(64,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,3936,64);i=n;return m|0}case 56:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=7;c[m+8>>2]=128;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(128,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,4448,128);i=n;return m|0}case 57:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=8;c[m+8>>2]=256;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(256,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,5472,256);i=n;return m|0}case 58:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=6;c[m+8>>2]=64;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(64,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,2528,64);i=n;return m|0}case 59:{m=Xp(252)|0;c[m>>2]=60;c[m+80>>2]=0;c[m+4>>2]=6;c[m+8>>2]=64;l=m+236|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+76>>2]=Zp(64,8)|0;c[l>>2]=15;c[m+240>>2]=16;Fi(m,3040,64);i=n;return m|0}case 60:{Qp(32779,105,1,c[2348]|0)|0;kb(1);break}default:{n=c[2348]|0;c[b>>2]=a;Kp(n,32885,b)|0;kb(1)}}while(0);return 0}function ei(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0;i=Xp(252)|0;switch(a|0){case 1:{c[i>>2]=1;break}case 2:{c[i>>2]=2;break}case 3:{c[i>>2]=3;break}case 4:{c[i>>2]=4;break}case 5:{c[i>>2]=5;break}case 6:{c[i>>2]=6;break}case 7:{c[i>>2]=7;break}case 8:{c[i>>2]=8;break}default:{Qp(31635,57,1,c[2348]|0)|0;kb(1)}}j=i+76|0;c[j>>2]=0;k=i+80|0;c[k>>2]=0;l=i+4|0;c[l>>2]=a;a=1<<a;f=i+8|0;c[f>>2]=a;h=i+236|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;m=3.141592653589793/+(a>>>0);a=i+100|0;b=i+104|0;g[b>>2]=m;d=i+12|0;g[d>>2]=m;if((c[l>>2]|0)>>>0>1){e=1;do{g[d+(e<<2)>>2]=+(1<<e|0)*+g[b>>2];e=e+1|0}while(e>>>0<(c[l>>2]|0)>>>0)}f=c[f>>2]|0;g[a>>2]=(1.0-1.0/+(f>>>0))*3.141592653589793;c[h>>2]=17;c[i+240>>2]=18;c[j>>2]=Xp(f<<3)|0;hi(i);c[k>>2]=1;if((c[l>>2]|0)>>>0>2)ii(i,2);g[i+84>>2]=1.0;g[i+88>>2]=0.0;c[i+92>>2]=1065353216;g[i+96>>2]=0.0;if(!(Ti(c[i>>2]|0)|0))return i|0;g[b>>2]=0.0;return i|0}function fi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;e=+((Wi(b)|0)<<1>>>0);e=+g[a+104>>2]*e;d=+R(+e);g[c>>2]=+Q(+e)+d*0.0;g[c+4>>2]=d;return}function gi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+16|0;if((i|0)>=(j|0))ba();m=q+8|0;n=q;p=c[b>>2]|0;o=c[b+4>>2]|0;c[n>>2]=p;c[n+4>>2]=o;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];e=+Bo(m);e=e-+g[a+100>>2];f=e;m=c[a+4>>2]|0;if(!m)b=0;else{n=m+-1|0;e=f<-3.141592653589793?f+6.283185307179586:e;k=0;l=0;b=0;while(1){b=b<<1;if(e>0.0){e=e-+g[a+12+(k+n<<2)>>2];b=b|1}else e=e+ +g[a+12+(k+n<<2)>>2];h=l+1|0;if((h|0)==(m|0))break;else{k=~l;l=h}}}n=Vi(b)|0;c[d>>2]=n;e=+((Wi(n)|0)<<1>>>0);e=+g[a+104>>2]*e;f=+R(+e);g[a+92>>2]=+Q(+e)+f*0.0;g[a+96>>2]=f;c[a+84>>2]=p;c[a+88>>2]=o;i=q;return}function hi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=a+76|0;b=c[f>>2]|0;if(!b){Qp(31693,65,1,c[2348]|0)|0;kb(1)}g=a+8|0;e=c[g>>2]|0;if((e+-1|0)>>>0>65535){Qp(31759,60,1,c[2348]|0)|0;kb(1)}h=a+236|0;d=c[h>>2]|0;if(!d){Qp(31820,70,1,c[2348]|0)|0;kb(1)}if(!e)return;tb[d&31](a,0,b);if((c[g>>2]|0)>>>0>1)b=1;else return;do{tb[c[h>>2]&31](a,b,(c[f>>2]|0)+(b<<3)|0);b=b+1|0}while(b>>>0<(c[g>>2]|0)>>>0);return}function ii(b,e){b=b|0;e=e|0;var f=0,h=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+16|0;if((i|0)>=(j|0))ba();v=A+8|0;w=A;h=b+8|0;y=c[h>>2]|0;if((y+-1|0)>>>0<e>>>0){Qp(31891,63,1,c[2348]|0)|0;kb(1)}c[b+248>>2]=e;z=b+244|0;c[z>>2]=Xp(_(y,e)|0)|0;x=i;i=i+((1*(y<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();q=(y|0)==0;if(q){i=A;return}k=b+80|0;l=b+236|0;m=b+76|0;if(!y){u=c[2348]|0;Qp(31955,65,1,u)|0;kb(1)}else{n=x;f=0}while(1){if(!(c[k>>2]|0))tb[c[l>>2]&31](b,f,n);else{t=c[m>>2]|0;u=c[t+(f<<3)+4>>2]|0;c[n>>2]=c[t+(f<<3)>>2];c[x+(f<<3)+4>>2]=u}f=f+1|0;if(f>>>0>=y>>>0)break;if((c[h>>2]|0)>>>0>f>>>0)n=x+(f<<3)|0;else{p=10;break}}if((p|0)==10){u=c[2348]|0;Qp(31955,65,1,u)|0;kb(1)}if(q){i=A;return}f=y&255;if(e|0){k=0;do{h=_(k,e)|0;l=0;do{a[(c[z>>2]|0)+(l+h)>>0]=f;l=l+1|0}while((l|0)!=(e|0));k=k+1|0}while((k|0)!=(y|0));if(q){i=A;return}}l=(e|0)==0;m=w+4|0;s=0;do{if(!l){n=x+(s<<3)|0;b=x+(s<<3)+4|0;p=_(s,e)|0;u=0;do{q=u+p|0;r=1.0e9;t=0;while(1){h=c[z>>2]|0;k=0;f=(s|0)!=(t|0)&1;do{f=(d[h+(k+p)>>0]|0|0)==(t|0)?0:f;k=k+1|0}while((k|0)!=(e|0));o=+g[b>>2]-+g[x+(t<<3)+4>>2];g[w>>2]=+g[n>>2]-+g[x+(t<<3)>>2];g[m>>2]=o;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];o=+wo(v);if((f|0)!=0&o<r)a[(c[z>>2]|0)+q>>0]=t;else o=r;t=t+1|0;if((t|0)==(y|0))break;else r=o}u=u+1|0}while((u|0)!=(e|0))}s=s+1|0}while((s|0)!=(y|0));i=A;return}function ji(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;e=+((Wi(b)|0)<<1>>>0);b=a+104|0;e=+g[b>>2]+ +g[a+108>>2]*e;e=e-(e>6.283185307179586?6.283185307179586:0.0);g[b>>2]=e;d=+R(+e);e=+Q(+e)+d*0.0;g[c>>2]=e;g[c+4>>2]=d;g[a+84>>2]=e;g[a+88>>2]=d;return}function ki(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0;r=i;i=i+32|0;if((i|0)>=(j|0))ba();n=r+16|0;l=r+8|0;m=r;q=c[b>>2]|0;o=c[b+4>>2]|0;c[l>>2]=q;c[l+4>>2]=o;c[n>>2]=c[l>>2];c[n+4>>2]=c[l+4>>2];p=+Bo(n);c[m>>2]=q;c[m+4>>2]=o;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];e=+Bo(n);n=a+104|0;e=e-+g[n>>2];g[n>>2]=p;e=e-+g[a+100>>2];f=e;if(!(f>3.141592653589793)){if(f<-3.141592653589793)e=f+6.283185307179586}else e=f+-6.283185307179586;m=c[a+4>>2]|0;if(!m)b=0;else{n=m+-1|0;k=0;l=0;b=0;while(1){b=b<<1;if(e>0.0){e=e-+g[a+12+(k+n<<2)>>2];b=b|1}else e=e+ +g[a+12+(k+n<<2)>>2];h=l+1|0;if((h|0)==(m|0))break;else{k=~l;l=h}}}c[d>>2]=Vi(b)|0;f=p-e;p=+R(+f);g[a+92>>2]=+Q(+f)+p*0.0;g[a+96>>2]=p;c[a+84>>2]=q;c[a+88>>2]=o;i=r;return}function li(a,b,d){a=a|0;b=b|0;d=d|0;b=(Wi(b)|0)<<1;g[d>>2]=+g[a+100>>2]*+(1-(c[a+8>>2]|0)+b|0);g[d+4>>2]=0.0;return}function mi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,i=0,j=0,l=0,m=0,n=0;l=c[a+4>>2]|0;if(!l){f=c[b>>2]|0;e=0}else{h=+g[b>>2];m=l+-1|0;f=(g[k>>2]=h,c[k>>2]|0);j=0;n=0;e=0;while(1){e=e<<1;if(h>0.0){h=h-+g[a+12+(j+m<<2)>>2];e=e|1}else h=h+ +g[a+12+(j+m<<2)>>2];i=n+1|0;if((i|0)==(l|0))break;else{j=~n;n=i}}}n=Vi(e)|0;c[d>>2]=n;d=(Wi(n)|0)<<1;g[a+92>>2]=+g[a+100>>2]*+(1-(c[a+8>>2]|0)+d|0);g[a+96>>2]=0.0;b=c[b+4>>2]|0;c[a+84>>2]=f;c[a+88>>2]=b;return}function ni(a){a=a|0;var b=0,d=0,e=0,f=0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(!a){Qp(32021,66,1,c[2348]|0)|0;kb(1)}o=Xp(252)|0;if(a>>>0>16){Qp(32088,64,1,c[2348]|0)|0;kb(1)}j=o+76|0;c[j>>2]=0;k=o+80|0;c[k>>2]=0;l=o+4|0;c[l>>2]=a;f=1<<a;m=o+8|0;c[m>>2]=f;i=o+236|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;if(!(a&1)){e=a>>>1;c[o+100>>2]=e;n=o+104|0;c[n>>2]=e;d=e}else{d=(a+1|0)>>>1;c[o+100>>2]=d;e=(a+-1|0)>>>1;n=o+104|0;c[n>>2]=e}b=1<<d;c[o+108>>2]=b;c[o+112>>2]=1<<e;if((d+e|0)!=(a|0))Ha(32153,32195,54,32221);if((b<<e|0)!=(f|0))Ha(32238,32195,55,32221);a:do if((f|0)>=512){if((f|0)<8192)switch(f|0){case 512:{g[o+116>>2]=.048450157046318054;c[o>>2]=32;h=.048450157046318054;break a}case 1024:{g[o+116>>2]=.03829197958111763;c[o>>2]=33;h=.03829197958111763;break a}case 2048:{g[o+116>>2]=.02421087585389614;c[o>>2]=34;h=.02421087585389614;break a}case 4096:{g[o+116>>2]=.01913897506892681;c[o>>2]=35;h=.01913897506892681;break a}default:{a=c[2348]|0;Qp(32280,58,1,a)|0;kb(1)}}if((f|0)<32768)if((f|0)<16384)switch(f|0){case 8192:{g[o+116>>2]=.012103663757443428;c[o>>2]=36;h=.012103663757443428;break a}default:{a=c[2348]|0;Qp(32280,58,1,a)|0;kb(1)}}else switch(f|0){case 16384:{g[o+116>>2]=.009568611159920692;c[o>>2]=37;h=.009568611159920692;break a}default:{a=c[2348]|0;Qp(32280,58,1,a)|0;kb(1)}}else if((f|0)<65536)switch(f|0){case 32768:{g[o+116>>2]=6.0516102239489555e-03;c[o>>2]=38;h=6.0516102239489555e-03;break a}default:{a=c[2348]|0;Qp(32280,58,1,a)|0;kb(1)}}else switch(f|0){case 65536:{g[o+116>>2]=.004784196149557829;c[o>>2]=39;h=.004784196149557829;break a}default:{a=c[2348]|0;Qp(32280,58,1,a)|0;kb(1)}}}else switch(f|0){case 4:{g[o+116>>2]=.7071067690849304;c[o>>2]=25;h=.7071067690849304;break a}case 8:{g[o+116>>2]=.40824830532073975;c[o>>2]=26;h=.40824830532073975;break a}case 16:{g[o+116>>2]=.3162277638912201;c[o>>2]=27;h=.3162277638912201;break a}case 32:{g[o+116>>2]=.1961161345243454;c[o>>2]=28;h=.1961161345243454;break a}case 64:{g[o+116>>2]=.15430335700511932;c[o>>2]=29;h=.15430335700511932;break a}case 128:{g[o+116>>2]=.09712858498096466;c[o>>2]=30;h=.09712858498096466;break a}case 256:{g[o+116>>2]=.0766965001821518;c[o>>2]=31;h=.0766965001821518;break a}default:{a=c[2348]|0;Qp(32280,58,1,a)|0;kb(1)}}while(0);d=o+116|0;e=o+12|0;g[e>>2]=h;if((c[l>>2]|0)>>>0>1){b=1;do{g[e+(b<<2)>>2]=+(1<<b|0)*+g[d>>2];b=b+1|0}while(b>>>0<(c[l>>2]|0)>>>0)}b=c[m>>2]|0;c[i>>2]=19;c[o+240>>2]=20;c[j>>2]=Xp(b<<3)|0;hi(o);c[k>>2]=1;b=c[l>>2]|0;if((b|0)!=3){if(b>>>0>3)ii(o,4)}else ii(o,3);g[o+84>>2]=1.0;g[o+88>>2]=0.0;c[o+92>>2]=1065353216;g[o+96>>2]=0.0;if(!(Ti(c[o>>2]|0)|0))return o|0;g[n>>2]=0.0;return o|0}function oi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0.0,i=0;i=c[a+104>>2]|0;f=Wi(b>>>i)|0;b=Wi((1<<i)+-1&b)|0;h=+g[a+116>>2];e=h*+((b<<1|1)-(c[a+112>>2]|0)|0);g[d>>2]=h*+((f<<1|1)-(c[a+108>>2]|0)|0)+e*0.0;g[d+4>>2]=e;return}function pi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0,o=0.0,p=0.0;p=+g[b>>2];j=c[a+100>>2]|0;if(!j){o=p;n=0}else{k=j+-1|0;f=p;i=0;l=0;e=0;while(1){e=e<<1;if(f>0.0){f=f-+g[a+12+(i+k<<2)>>2];e=e|1}else f=f+ +g[a+12+(i+k<<2)>>2];h=l+1|0;if((h|0)==(j|0)){o=f;n=e;break}else{i=~l;l=h}}}m=+g[b+4>>2];b=a+104|0;j=c[b>>2]|0;if(!j){f=m;e=0}else{k=j+-1|0;f=m;i=0;l=0;e=0;while(1){e=e<<1;if(f>0.0){f=f-+g[a+12+(i+k<<2)>>2];e=e|1}else f=f+ +g[a+12+(i+k<<2)>>2];h=l+1|0;if((h|0)==(j|0))break;else{i=~l;l=h}}}l=Vi(n)|0;n=Vi(e)|0;c[d>>2]=(l<<c[b>>2])+n;g[a+92>>2]=p-(o+f*0.0);g[a+96>>2]=m-f;g[a+84>>2]=p;g[a+88>>2]=m;return}function qi(a){a=a|0;var b=0,d=0,e=0,f=0,h=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;v=i;i=i+16|0;if((i|0)>=(j|0))ba();b=v;switch(a|0){case 2:{u=1632;break}case 3:{u=1680;break}case 4:{u=1728;break}case 5:{u=1788;break}case 6:{u=1860;break}case 7:{u=1944;break}case 8:{u=2052;break}default:{t=c[2348]|0;c[b>>2]=a;Kp(t,32339,b)|0;kb(1)}}p=Xp(252)|0;c[p>>2]=c[u>>2];q=p+76|0;c[q>>2]=0;r=p+80|0;c[r>>2]=0;s=p+4|0;c[s>>2]=a;t=p+8|0;c[t>>2]=1<<a;o=p+236|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;l=c[u+4>>2]|0;n=p+100|0;c[n>>2]=l;if(l){a=c[u+8>>2]|0;d=p+104|0;e=c[u+12>>2]|0;f=p+136|0;h=c[u+16>>2]|0;k=p+200|0;l=0;do{c[d+(l<<2)>>2]=c[a+(l<<2)>>2];c[f+(l<<2)>>2]=c[e+(l<<2)>>2];c[k+(l<<2)>>2]=c[h+(l<<2)>>2];l=l+1|0;b=c[n>>2]|0}while(l>>>0<b>>>0);if((b|0)!=1)m=12}else m=12;if((m|0)==12){b=c[u+20>>2]|0;a=p+168|0;d=0;do{c[a+(d<<2)>>2]=c[b+(d<<2)>>2];d=d+1|0}while(d>>>0<((c[n>>2]|0)+-1|0)>>>0)}n=c[t>>2]|0;m=Xp(n)|0;c[p+232>>2]=m;gq(m|0,c[u+24>>2]|0,n|0)|0;c[o>>2]=21;c[p+240>>2]=22;switch(c[s>>2]|0){case 2:{ii(p,3);break}case 3:{ii(p,3);break}case 4:{ii(p,4);break}case 5:{ii(p,4);break}case 6:{ii(p,4);break}case 7:{ii(p,5);break}case 8:{ii(p,5);break}default:{}}c[q>>2]=Xp(c[t>>2]<<3)|0;hi(p);c[r>>2]=1;g[p+84>>2]=1.0;g[p+88>>2]=0.0;c[p+92>>2]=1065353216;g[p+96>>2]=0.0;if(!(Ti(c[p>>2]|0)|0)){i=v;return p|0}g[p+104>>2]=0.0;i=v;return p|0}function ri(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0;if((c[a+8>>2]|0)>>>0<=b>>>0){Qp(32402,59,1,c[2348]|0)|0;return}j=d[(c[a+232>>2]|0)+b>>0]|0;f=c[a+100>>2]|0;a:do if(!f){h=0;b=0}else{h=0;i=0;while(1){b=(c[a+104+(h<<2)>>2]|0)+i|0;if(j>>>0<b>>>0){b=i;break a}h=h+1|0;if(h>>>0>=f>>>0){h=0;break}else i=b}}while(0);l=+g[a+136+(h<<2)>>2];m=+g[a+200+(h<<2)>>2]+ +((j-b|0)>>>0)*2.0*3.141592653589793/+((c[a+104+(h<<2)>>2]|0)>>>0);k=+R(+m);g[e>>2]=l*(+Q(+m)+k*0.0);g[e+4>>2]=l*k;return}function si(a,b,e){a=a|0;b=b|0;e=e|0;var f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;if((i|0)>=(j|0))ba();k=p+16|0;m=p+8|0;l=p;o=c[b>>2]|0;n=c[b+4>>2]|0;c[m>>2]=o;c[m+4>>2]=n;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];f=+wo(k);b=(c[a+100>>2]|0)+-1|0;a:do if(!b)h=0;else{h=0;while(1){if(f<+g[a+168+(h<<2)>>2])break a;h=h+1|0;if(h>>>0>=b>>>0){h=b;break}}}while(0);c[l>>2]=o;c[l+4>>2]=n;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];f=+Bo(k);if(f<0.0)f=f+6.283185307179586;b=c[a+104+(h<<2)>>2]|0;b=(~~+dq(+((f-+g[a+200+(h<<2)>>2])/(6.283185307179586/+(b>>>0))))>>>0>>>0)%(b>>>0)|0;if(h){k=0;do{b=(c[a+104+(k<<2)>>2]|0)+b|0;k=k+1|0}while((k|0)!=(h|0))}m=a+8|0;k=c[m>>2]|0;b:do if(!k)h=0;else{l=c[a+232>>2]|0;h=0;while(1){if((d[l+h>>0]|0|0)==(b|0))break b;h=h+1|0;if(h>>>0>=k>>>0){h=0;break}}}while(0);c[e>>2]=h;b=a+92|0;if((c[m>>2]|0)>>>0<=h>>>0){Qp(31955,65,1,c[2348]|0)|0;kb(1)}if(!(c[a+80>>2]|0)){tb[c[a+236>>2]&31](a,h,b);e=a+84|0;a=a+88|0;c[e>>2]=o;c[a>>2]=n;i=p;return}else{m=c[a+76>>2]|0;e=c[m+(h<<3)+4>>2]|0;c[b>>2]=c[m+(h<<3)>>2];c[a+96>>2]=e;e=a+84|0;a=a+88|0;c[e>>2]=o;c[a>>2]=n;i=p;return}}function ti(a,b,c){a=a|0;b=b|0;c=c|0;g[c>>2]=b|0?-1.0:1.0;g[c+4>>2]=0.0;return}function ui(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0;e=+g[b>>2];f=!(e>0.0);c[d>>2]=f&1;g[a+92>>2]=f?-1.0:1.0;g[a+96>>2]=0.0;b=c[b+4>>2]|0;g[a+84>>2]=e;c[a+88>>2]=b;return}function vi(a,b,c){a=a|0;b=b|0;c=c|0;a=(b&2|0)!=0;g[c>>2]=(b&1|0?-.7071067811865476:.7071067811865476)+(a?-0.0:0.0);g[c+4>>2]=a?-.7071067690849304:.7071067690849304;return}function wi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0;f=+g[b>>2];h=!(f>0.0);e=+g[b+4>>2];b=e>0.0;c[d>>2]=(b?0:2)|h&1;g[a+92>>2]=(h?-.7071067811865476:.7071067811865476)+(b?0.0:-0.0);g[a+96>>2]=b?.7071067690849304:-.7071067690849304;g[a+84>>2]=f;g[a+88>>2]=e;return}function xi(a,b,c){a=a|0;b=b|0;c=c|0;g[c>>2]=b|0?0.0:1.4142135381698608;g[c+4>>2]=0.0;return}function yi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0;e=+g[b>>2];f=!(e>.7071067811865476);c[d>>2]=f&1;g[a+92>>2]=f?0.0:1.4142135381698608;g[a+96>>2]=0.0;b=c[b+4>>2]|0;g[a+84>>2]=e;c[a+88>>2]=b;return}function zi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;if((i|0)>=(j|0))ba();h=o+32|0;k=o+24|0;l=o+16|0;m=o+8|0;n=o;p=b&7;a=c[a+100>>2]|0;e=+g[a+(p<<3)>>2];f=+g[a+(p<<3)+4>>2];switch(b>>>3&3|0){case 0:{g[d>>2]=e;g[d+4>>2]=f;i=o;return}case 1:{g[l>>2]=e;g[l+4>>2]=f;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];Ko(k,h);p=c[k+4>>2]|0;c[d>>2]=c[k>>2];c[d+4>>2]=p;i=o;return}case 2:{g[n>>2]=e;g[n+4>>2]=f;c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];Ko(m,h);f=-+g[m+4>>2];g[d>>2]=-+g[m>>2];g[d+4>>2]=f;i=o;return}case 3:{g[d>>2]=-e;g[d+4>>2]=-f;i=o;return}default:{}}}function Ai(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0;y=i;i=i+80|0;if((i|0)>=(j|0))ba();s=y+72|0;t=y+24|0;u=y+16|0;v=y+8|0;w=y;h=y+64|0;k=y+56|0;l=y+48|0;m=y+40|0;o=y+32|0;x=+g[b>>2];r=+g[b+4>>2];n=(x<0.0&1)<<1|r<0.0;switch(n|0){case 0:{p=x;q=r;break}case 1:{g[k>>2]=x;g[k+4>>2]=r;c[s>>2]=c[k>>2];c[s+4>>2]=c[k+4>>2];Ko(h,s);p=+g[h>>2];q=+g[h+4>>2];break}case 2:{g[m>>2]=x;g[m+4>>2]=r;c[s>>2]=c[m>>2];c[s+4>>2]=c[m+4>>2];Ko(l,s);p=-+g[l>>2];q=-+g[l+4>>2];break}case 3:{p=-x;q=-r;break}default:{}}if(!(p>=0.0))Ha(32462,32486,98,32515);if(!(q>=0.0))Ha(32539,32486,99,32515);k=a+100|0;b=o+4|0;m=c[k>>2]|0;e=q-+g[m+4>>2];g[o>>2]=p-+g[m>>2];g[b>>2]=e;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];e=+wo(s);c[d>>2]=0;m=c[k>>2]|0;f=q-+g[m+12>>2];g[o>>2]=p-+g[m+8>>2];g[b>>2]=f;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];f=+wo(s);if(f<e){c[d>>2]=1;e=f}m=c[k>>2]|0;f=q-+g[m+20>>2];g[o>>2]=p-+g[m+16>>2];g[b>>2]=f;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];f=+wo(s);if(f<e){c[d>>2]=2;e=f}m=c[k>>2]|0;f=q-+g[m+28>>2];g[o>>2]=p-+g[m+24>>2];g[b>>2]=f;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];f=+wo(s);if(f<e){c[d>>2]=3;e=f}m=c[k>>2]|0;f=q-+g[m+36>>2];g[o>>2]=p-+g[m+32>>2];g[b>>2]=f;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];f=+wo(s);if(f<e)c[d>>2]=4;else f=e;m=c[k>>2]|0;e=q-+g[m+44>>2];g[o>>2]=p-+g[m+40>>2];g[b>>2]=e;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];e=+wo(s);if(e<f){c[d>>2]=5;f=e}m=c[k>>2]|0;e=q-+g[m+52>>2];g[o>>2]=p-+g[m+48>>2];g[b>>2]=e;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];e=+wo(s);if(e<f)c[d>>2]=6;else e=f;m=c[k>>2]|0;q=q-+g[m+60>>2];g[o>>2]=p-+g[m+56>>2];g[b>>2]=q;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];if(+wo(s)<e){c[d>>2]=7;b=7}else b=c[d>>2]|0;o=b|n<<3;c[d>>2]=o;h=a+92|0;d=b&7;n=c[k>>2]|0;e=+g[n+(d<<3)>>2];f=+g[n+(d<<3)+4>>2];switch(o>>>3&3|0){case 0:{g[h>>2]=e;g[a+96>>2]=f;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 1:{g[u>>2]=e;g[u+4>>2]=f;c[s>>2]=c[u>>2];c[s+4>>2]=c[u+4>>2];Ko(t,s);w=c[t+4>>2]|0;c[h>>2]=c[t>>2];c[a+96>>2]=w;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 2:{g[w>>2]=e;g[w+4>>2]=f;c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];Ko(v,s);q=-+g[v+4>>2];g[h>>2]=-+g[v>>2];g[a+96>>2]=q;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 3:{g[h>>2]=-e;g[a+96>>2]=-f;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}default:{}}}function Bi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;if((i|0)>=(j|0))ba();h=o+32|0;k=o+24|0;l=o+16|0;m=o+8|0;n=o;p=b&31;a=c[a+100>>2]|0;e=+g[a+(p<<3)>>2];f=+g[a+(p<<3)+4>>2];switch(b>>>5&3|0){case 0:{g[d>>2]=e;g[d+4>>2]=f;i=o;return}case 1:{g[l>>2]=e;g[l+4>>2]=f;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];Ko(k,h);p=c[k+4>>2]|0;c[d>>2]=c[k>>2];c[d+4>>2]=p;i=o;return}case 2:{g[n>>2]=e;g[n+4>>2]=f;c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];Ko(m,h);f=-+g[m+4>>2];g[d>>2]=-+g[m>>2];g[d+4>>2]=f;i=o;return}case 3:{g[d>>2]=-e;g[d+4>>2]=-f;i=o;return}default:{}}}function Ci(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0;y=i;i=i+80|0;if((i|0)>=(j|0))ba();s=y+72|0;t=y+64|0;u=y+40|0;v=y+24|0;w=y+16|0;h=y+56|0;k=y+48|0;l=y+32|0;m=y+8|0;o=y;x=+g[b>>2];r=+g[b+4>>2];n=(x<0.0&1)<<1|r<0.0;switch(n|0){case 0:{p=x;q=r;break}case 1:{g[k>>2]=x;g[k+4>>2]=r;c[s>>2]=c[k>>2];c[s+4>>2]=c[k+4>>2];Ko(h,s);p=+g[h>>2];q=+g[h+4>>2];break}case 2:{g[m>>2]=x;g[m+4>>2]=r;c[s>>2]=c[m>>2];c[s+4>>2]=c[m+4>>2];Ko(l,s);p=-+g[l>>2];q=-+g[l+4>>2];break}case 3:{p=-x;q=-r;break}default:{}}if(!(p>=0.0))Ha(32462,32563,99,32593);if(!(q>=0.0))Ha(32539,32563,100,32593);k=a+100|0;b=o+4|0;f=0.0;h=0;while(1){m=c[k>>2]|0;e=q-+g[m+(h<<3)+4>>2];g[o>>2]=p-+g[m+(h<<3)>>2];g[b>>2]=e;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];e=+wo(s);if((h|0)==0|e<f)c[d>>2]=h;else e=f;h=h+1|0;if((h|0)==32)break;else f=e}m=c[d>>2]|0;o=m|n<<5;c[d>>2]=o;b=a+92|0;d=m&31;n=c[k>>2]|0;e=+g[n+(d<<3)>>2];f=+g[n+(d<<3)+4>>2];switch(o>>>5&3|0){case 0:{g[b>>2]=e;g[a+96>>2]=f;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 1:{g[u>>2]=e;g[u+4>>2]=f;c[s>>2]=c[u>>2];c[s+4>>2]=c[u+4>>2];Ko(t,s);w=c[t+4>>2]|0;c[b>>2]=c[t>>2];c[a+96>>2]=w;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 2:{g[w>>2]=e;g[w+4>>2]=f;c[s>>2]=c[w>>2];c[s+4>>2]=c[w+4>>2];Ko(v,s);q=-+g[v+4>>2];g[b>>2]=-+g[v>>2];g[a+96>>2]=q;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}case 3:{g[b>>2]=-e;g[a+96>>2]=-f;w=a+88|0;a=a+84|0;g[a>>2]=x;g[w>>2]=r;i=y;return}default:{}}}function Di(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[a+8>>2]|0)>>>0>b>>>0){e=c[a+76>>2]|0;a=c[e+(b<<3)+4>>2]|0;c[d>>2]=c[e+(b<<3)>>2];c[d+4>>2]=a;return}else{Qp(32618,52,1,c[2348]|0)|0;kb(1)}}function Ei(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0;t=i;i=i+16|0;if((i|0)>=(j|0))ba();f=t+8|0;h=t;s=a+8|0;if(!(c[s>>2]|0))e=0;else{l=+g[b>>2];m=+g[b+4>>2];n=a+76|0;o=h+4|0;p=0.0;q=0;e=0;while(1){r=c[n>>2]|0;k=m-+g[r+(q<<3)+4>>2];g[h>>2]=l-+g[r+(q<<3)>>2];g[o>>2]=k;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];k=+wo(f);r=(q|0)==0|k<p;e=r?q:e;q=q+1|0;if(q>>>0>=(c[s>>2]|0)>>>0)break;else p=r?k:p}}c[d>>2]=e;if((c[s>>2]|0)>>>0>e>>>0){s=c[a+76>>2]|0;d=c[s+(e<<3)+4>>2]|0;c[a+92>>2]=c[s+(e<<3)>>2];c[a+96>>2]=d;d=c[b+4>>2]|0;c[a+84>>2]=c[b>>2];c[a+88>>2]=d;i=t;return}else{Qp(32618,52,1,c[2348]|0)|0;kb(1)}}function Fi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;q=i;i=i+16|0;if((i|0)>=(j|0))ba();n=q+8|0;o=q;if((c[a>>2]|0)!=60){Qp(32671,56,1,c[2348]|0)|0;kb(1)}p=a+8|0;if((c[p>>2]|0)!=(d|0)){Qp(32728,50,1,c[2348]|0)|0;kb(1)}if(d){e=a+76|0;h=0;do{s=c[b+(h<<3)+4>>2]|0;r=c[e>>2]|0;c[r+(h<<3)>>2]=c[b+(h<<3)>>2];c[r+(h<<3)+4>>2]=s;h=h+1|0}while((h|0)!=(d|0));if((c[a>>2]|0)!=60)e=c[p>>2]|0;else l=10}else l=10;if((l|0)==10){d=c[p>>2]|0;if(!d){i=q;return}h=a+76|0;b=c[h>>2]|0;e=0;f=0.0;k=0.0;do{f=f+ +g[b+(e<<3)>>2];k=k+ +g[b+(e<<3)+4>>2];e=e+1|0}while((e|0)!=(d|0));t=+(d>>>0);m=f/t;f=k/t;e=b+4|0;k=+g[e>>2]-f;g[b>>2]=+g[b>>2]-m;g[e>>2]=k;e=c[p>>2]|0;if(e>>>0>1){d=1;do{e=c[h>>2]|0;s=e+(d<<3)|0;e=e+(d<<3)+4|0;t=+g[e>>2]-f;g[s>>2]=+g[s>>2]-m;g[e>>2]=t;d=d+1|0;e=c[p>>2]|0}while(d>>>0<e>>>0)}}if(!e){i=q;return}h=a+76|0;d=o+4|0;f=0.0;b=0;do{s=c[h>>2]|0;e=c[s+(b<<3)+4>>2]|0;c[o>>2]=c[s+(b<<3)>>2];c[d>>2]=e;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];t=+wo(n);f=f+t*t;b=b+1|0;e=c[p>>2]|0}while(b>>>0<e>>>0);f=+O(+(f/+(e>>>0)));if(!e){i=q;return}else e=0;do{s=c[h>>2]|0;r=s+(e<<3)|0;s=s+(e<<3)+4|0;t=+g[s>>2]/f;g[r>>2]=+g[r>>2]/f;g[s>>2]=t;e=e+1|0}while(e>>>0<(c[p>>2]|0)>>>0);i=q;return}function Gi(a,b){a=a|0;b=b|0;if((c[a>>2]|0)==(b|0)){b=a;return b|0}Hi(a);b=di(b)|0;return b|0}function Hi(a){a=a|0;var b=0;b=c[a+76>>2]|0;if(b|0)Yp(b);b=c[a+244>>2]|0;if(b|0)Yp(b);b=c[a>>2]|0;switch(b|0){case 50:{Yp(c[a+100>>2]|0);Yp(a);return}case 51:{Yp(c[a+100>>2]|0);Yp(a);return}default:{if(!(Ui(b)|0)){Yp(a);return}Yp(c[a+232>>2]|0);Yp(a);return}}}function Ii(a){a=a|0;var b=0;b=Np()|0;return (b>>>0)%((c[a+8>>2]|0)>>>0)|0|0}function Ji(a){a=a|0;return c[a+4>>2]|0}function Ki(a){a=a|0;return c[a>>2]|0}function Li(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[a+8>>2]|0)>>>0<=b>>>0){Qp(31955,65,1,c[2348]|0)|0;kb(1)}if(!(c[a+80>>2]|0)){tb[c[a+236>>2]&31](a,b,d);return}else{e=c[a+76>>2]|0;a=c[e+(b<<3)+4>>2]|0;c[d>>2]=c[e+(b<<3)>>2];c[d+4>>2]=a;return}}function Mi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();f=e+8|0;h=e;g=c[a+240>>2]|0;k=c[b+4>>2]|0;c[h>>2]=c[b>>2];c[h+4>>2]=k;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];tb[g&31](a,f,d);i=e;return}function Ni(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0;o=i;i=i+48|0;if((i|0)>=(j|0))ba();h=o+32|0;k=o+24|0;l=o+16|0;n=o+8|0;m=o;switch(c[b>>2]|0){case 60:{n=c[d+4>>2]|0;c[k>>2]=c[d>>2];c[k+4>>2]=n;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];Oi(b,h,e,f);i=o;return}case 47:{p=+g[d>>2];d=c[d+4>>2]|0;n=~~(p*-2.0*4.0*16.0+127.0);n=(n|0)>255?255:n;a[f>>0]=(n|0)<0?0:n;n=!(p>0.0);g[b+92>>2]=n?-1.0:1.0;g[b+96>>2]=0.0;g[b+84>>2]=p;c[b+88>>2]=d;c[e>>2]=n&1;i=o;return}case 48:{q=+g[d>>2];p=+g[d+4>>2];d=~~(p*-2.0*5.800000190734863*16.0+127.0);d=(d|0)>255?255:d;a[f>>0]=(d|0)<0?0:d;d=~~(q*-2.0*5.800000190734863*16.0+127.0);d=(d|0)>255?255:d;a[f+1>>0]=(d|0)<0?0:d;d=!(q>0.0);n=p>0.0;c[e>>2]=(n?0:2)|d&1;g[b+92>>2]=(d?-.7071067811865476:.7071067811865476)+(n?0.0:-0.0);g[b+96>>2]=n?.7071067690849304:-.7071067690849304;g[b+84>>2]=q;g[b+88>>2]=p;i=o;return}default:{if(c[b+244>>2]|0?c[b+248>>2]|0:0){n=c[d+4>>2]|0;c[l>>2]=c[d>>2];c[l+4>>2]=n;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];Pi(b,h,e,f);i=o;return}l=c[b+240>>2]|0;k=c[d+4>>2]|0;c[m>>2]=c[d>>2];c[m+4>>2]=k;c[h>>2]=c[m>>2];c[h+4>>2]=c[m+4>>2];tb[l&31](b,h,n);n=c[n>>2]|0;c[e>>2]=n;Xi(n,c[b+4>>2]|0,f);i=o;return}}}function Oi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0.0,x=0.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.0,K=0,L=0,M=0.0;L=i;i=i+32|0;if((i|0)>=(j|0))ba();A=L+24|0;B=L+16|0;C=L+8|0;D=L;H=c[b+4>>2]|0;I=b+8|0;E=c[I>>2]|0;J=+(E>>>0)*1.2000000476837158;K=i;i=i+((1*(H<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();G=i;i=i+((1*(H<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();F=(H|0)==0;if(!F){h=0;do{g[K+(h<<2)>>2]=4.0;g[G+(h<<2)>>2]=4.0;h=h+1|0}while((h|0)!=(H|0))}a:do if(!E)k=0;else{v=b+76|0;w=+g[d>>2];x=+g[d+4>>2];y=C+4|0;z=B+4|0;t=H+-1|0;if(F){s=0.0;q=0;k=0;while(1){u=c[v>>2]|0;m=w-+g[u+(q<<3)>>2];n=x-+g[u+(q<<3)+4>>2];g[C>>2]=m;g[y>>2]=n;c[A>>2]=c[C>>2];c[A+4>>2]=c[C+4>>2];Ko(B,A);o=+g[B>>2];p=+g[z>>2];l=m*o-n*p;M=n*o+m*p;if((l!=l|0.0!=0.0)&(M!=M|0.0!=0.0)){ao(D,m,n,o,p);l=+g[D>>2]}h=(q|0)==0|l<s;k=h?q:k;q=q+1|0;if((q|0)==(E|0))break a;else s=h?l:s}}else{s=0.0;u=0;k=0}while(1){r=c[v>>2]|0;l=w-+g[r+(u<<3)>>2];m=x-+g[r+(u<<3)+4>>2];g[C>>2]=l;g[y>>2]=m;c[A>>2]=c[C>>2];c[A+4>>2]=c[C+4>>2];Ko(B,A);n=+g[B>>2];o=+g[z>>2];p=l*n-m*o;M=m*n+l*o;if((p!=p|0.0!=0.0)&(M!=M|0.0!=0.0)){ao(D,l,m,n,o);p=+g[D>>2]}r=(u|0)==0|p<s;k=r?u:k;q=0;do{if(!(1<<t-q&k)){h=K+(q<<2)|0;if(p<+g[h>>2])g[h>>2]=p}else{h=G+(q<<2)|0;if(p<+g[h>>2])g[h>>2]=p}q=q+1|0}while((q|0)!=(H|0));u=u+1|0;if((u|0)==(E|0))break;else s=r?p:s}}while(0);if(!F){h=0;do{F=~~(J*(+g[K+(h<<2)>>2]-+g[G+(h<<2)>>2])*16.0+127.0);F=(F|0)>255?255:F;a[f+h>>0]=(F|0)<0?0:F;h=h+1|0}while((h|0)!=(H|0))}c[e>>2]=k;if((c[I>>2]|0)>>>0>k>>>0){e=c[b+76>>2]|0;f=c[e+(k<<3)+4>>2]|0;c[b+92>>2]=c[e+(k<<3)>>2];c[b+96>>2]=f;f=c[d+4>>2]|0;c[b+84>>2]=c[d>>2];c[b+88>>2]=f;i=L;return}else{Qp(32618,52,1,c[2348]|0)|0;kb(1)}}function Pi(b,e,f,h){b=b|0;e=e|0;f=f|0;h=h|0;var l=0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0,E=0,F=0,G=0,H=0.0,I=0,J=0,K=0,L=0,M=0.0;L=i;i=i+48|0;if((i|0)>=(j|0))ba();n=L+40|0;F=L+32|0;K=L+16|0;t=L+24|0;s=L+8|0;u=L;l=c[e>>2]|0;e=c[e+4>>2]|0;G=c[b+240>>2]|0;c[F>>2]=l;c[F+4>>2]=e;c[n>>2]=c[F>>2];c[n+4>>2]=c[F+4>>2];tb[G&31](b,n,K);G=c[b+4>>2]|0;D=b+8|0;H=+((c[D>>2]|0)>>>0)*1.2000000476837158;I=i;i=i+((1*(G<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();J=i;i=i+((1*(G<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();E=(G|0)==0;C=(c[k>>2]=l,+g[k>>2]);B=(c[k>>2]=e,+g[k>>2]);if(!E){e=0;do{g[I+(e<<2)>>2]=8.0;g[J+(e<<2)>>2]=8.0;e=e+1|0}while((e|0)!=(G|0))}z=c[b+244>>2]|0;A=c[b+248>>2]|0;q=C-+g[b+92>>2];r=B-+g[b+96>>2];g[s>>2]=q;g[s+4>>2]=r;c[n>>2]=c[s>>2];c[n+4>>2]=c[s+4>>2];Ko(t,n);p=+g[t>>2];o=+g[t+4>>2];m=q*p-r*o;M=r*p+q*o;if((m!=m|0.0!=0.0)&(M!=M|0.0!=0.0)){ao(u,q,r,p,o);m=+g[u>>2]}if(!E){e=c[K>>2]|0;l=G+-1|0;n=0;do{if(!(e&1<<l-n))g[I+(n<<2)>>2]=m;else g[J+(n<<2)>>2]=m;n=n+1|0}while((n|0)!=(G|0))}a:do if(A|0){u=b+80|0;v=b+236|0;w=F+4|0;x=G+-1|0;y=b+76|0;if(E){l=0;while(1){e=d[z+((_(c[K>>2]|0,A)|0)+l)>>0]|0;if(!(c[u>>2]|0)){if((c[D>>2]|0)>>>0<=e>>>0)break;tb[c[v>>2]&31](b,e,F)}else{s=c[y>>2]|0;t=c[s+(e<<3)+4>>2]|0;c[F>>2]=c[s+(e<<3)>>2];c[w>>2]=t}l=l+1|0;if(l>>>0>=A>>>0)break a}t=c[2348]|0;Qp(31955,65,1,t)|0;kb(1)}l=c[K>>2]|0;t=0;while(1){e=d[z+((_(l,A)|0)+t)>>0]|0;if(!(c[u>>2]|0)){if((c[D>>2]|0)>>>0<=e>>>0)break;tb[c[v>>2]&31](b,e,F);m=+g[F>>2];o=+g[w>>2];l=c[K>>2]|0}else{s=c[y>>2]|0;n=c[s+(e<<3)>>2]|0;s=c[s+(e<<3)+4>>2]|0;c[F>>2]=n;c[w>>2]=s;m=(c[k>>2]=n,+g[k>>2]);o=(c[k>>2]=s,+g[k>>2])}M=C-m;m=B-o;m=M*M+m*m;n=d[z+((_(l,A)|0)+t)>>0]|0;s=0;do{if(!(n&1<<x-s)){e=I+(s<<2)|0;if(m<+g[e>>2])g[e>>2]=m}else{e=J+(s<<2)|0;if(m<+g[e>>2])g[e>>2]=m}s=s+1|0}while((s|0)!=(G|0));t=t+1|0;if(t>>>0>=A>>>0)break a}b=c[2348]|0;Qp(31955,65,1,b)|0;kb(1)}while(0);if(E){K=c[K>>2]|0;c[f>>2]=K;i=L;return}else e=0;do{b=~~(H*(+g[I+(e<<2)>>2]-+g[J+(e<<2)>>2])*16.0+127.0);b=(b|0)>255?255:b;a[h+e>>0]=(b|0)<0?0:b;e=e+1|0}while((e|0)!=(G|0));K=c[K>>2]|0;c[f>>2]=K;i=L;return}function Qi(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0,h=0.0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0;l=i;i=i+32|0;if((i|0)>=(j|0))ba();o=l+24|0;n=l+16|0;p=l+8|0;f=l;h=+g[a+84>>2];k=+g[a+88>>2];q=c[a+96>>2]|0;c[p>>2]=c[a+92>>2];c[p+4>>2]=q;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];Ko(n,o);b=+g[n>>2];d=+g[n+4>>2];m=h*b-k*d;e=k*b+h*d;if(!((m!=m|0.0!=0.0)&(e!=e|0.0!=0.0))){m=e;i=l;return +m}ao(f,h,k,b,d);m=+g[f+4>>2];i=l;return +m}function Ri(a){a=a|0;var b=0,d=0.0,e=0,f=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();e=b+8|0;f=b;d=+g[a+96>>2]-+g[a+88>>2];g[f>>2]=+g[a+92>>2]-+g[a+84>>2];g[f+4>>2]=d;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];d=+wo(e);i=b;return +d}function Si(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();d=f;b=0;do{if(!(dp(a,c[636+(b<<4)>>2]|0)|0)){e=5;break}b=b+1|0}while(b>>>0<61);if((e|0)==5){i=f;return b|0}e=c[2348]|0;c[d>>2]=a;Kp(e,35245,d)|0;e=0;i=f;return e|0}function Ti(a){a=a|0;return (a+-9|0)>>>0<8|0}function Ui(a){a=a|0;return (a+-40|0)>>>0<7|0}function Vi(a){a=a|0;return a>>>1^a|0}function Wi(a){a=a|0;return a>>>1^a^a>>>2^a>>>3^a>>>4^a>>>5^a>>>6^a>>>7^a>>>8^a>>>9^a>>>10^a>>>11^a>>>12^a>>>13^a>>>14^a>>>15^a>>>16|0}function Xi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h;if(d>>>0>16){g=c[2348]|0;c[f>>2]=16;Kp(g,35316,f)|0;kb(1)}if(!d){i=h;return}f=d+-1|0;g=0;do{a[e+g>>0]=((1<<f-g&b|0)!=0)<<31>>31;g=g+1|0}while((g|0)!=(d|0));i=h;return}function Yi(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0;m=Rh(d)|0;m=Rj(m>>>0<4?4:m>>>0>8?8:m)|0;n=(d|0)==0;if(n){Sj(m);k=c[2348]|0;Qp(35892,69,1,k)|0;kb(1)}else{i=0;l=0}do{k=(Uj(m,3)|0)&1;do if(a[b+l>>0]|0)if(!(l&1)){g[e+(l<<3)>>2]=k|0?1.0:-1.0;g[e+(l<<3)+4>>2]=0.0;i=i+1|0;break}else{g[e+(l<<3)>>2]=0.0;g[e+(l<<3)+4>>2]=0.0;break}else{g[e+(l<<3)>>2]=0.0;g[e+(l<<3)+4>>2]=0.0}while(0);l=l+1|0}while((l|0)!=(d|0));Sj(m);if(!i){m=c[2348]|0;Qp(35892,69,1,m)|0;kb(1)}c[h>>2]=i;fl(d,e,f,-1,0);j=1.0/+O(+(+(i>>>0)));if(n)return;else i=0;do{e=f+(i<<3)|0;n=f+(i<<3)+4|0;o=j*+g[n>>2];g[e>>2]=j*+g[e>>2];g[n>>2]=o;i=i+1|0}while((i|0)!=(d|0));return}function Zi(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0;m=Rh(d)|0;m=Rj(m>>>0<4?5:(m>>>0>8?8:m)+1|0)|0;n=(d|0)==0;if(n){Sj(m);k=c[2348]|0;Qp(35962,69,1,k)|0;kb(1)}else{i=0;l=0}do{k=Uj(m,3)|0;if(!(a[b+l>>0]|0))j=0.0;else{j=k&1|0?1.0:-1.0;i=i+1|0}g[e+(l<<3)>>2]=j;g[e+(l<<3)+4>>2]=0.0;l=l+1|0}while((l|0)!=(d|0));Sj(m);if(!i){m=c[2348]|0;Qp(35962,69,1,m)|0;kb(1)}c[h>>2]=i;fl(d,e,f,-1,0);j=1.0/+O(+(+(i>>>0)));if(n)return;else i=0;do{e=f+(i<<3)|0;n=f+(i<<3)+4|0;o=j*+g[n>>2];g[e>>2]=j*+g[e>>2];g[n>>2]=o;i=i+1|0}while((i|0)!=(d|0));return}function _i(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(b>>>0<6)Qp(36032,66,1,c[2348]|0)|0;e=(b>>>0)/10|0;h=b>>>0>34?8:4;j=h>>>1;if(b|0)eq(d|0,0,b|0)|0;i=(b>>>1)-(e>>>0<2?2:e)|0;e=i>>>0>1;if(!e)return;f=h+-1|0;g=1;do{a[d+g>>0]=(g+j&f|0)==0?1:2;g=g+1|0}while(g>>>0<i>>>0);if(!e)return;e=h+-1|0;f=1;do{a[d+(b-f)>>0]=(f+j&e|0)==0?1:2;f=f+1|0}while(f>>>0<i>>>0);return}function $i(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+16|0;if((i|0)>=(j|0))ba();r=s;a:do if(!d){o=0;p=0;q=0}else{m=0;k=0;l=0;n=0;b:while(1){h=a[b+n>>0]|0;switch(h<<24>>24){case 0:{h=m;k=k+1|0;break}case 1:{h=m;l=l+1|0;break}case 2:{h=m+1|0;break}default:break b}n=n+1|0;if(n>>>0>=d>>>0){o=h;p=k;q=l;break a}else m=h}n=c[2348]|0;c[r>>2]=h&255;Kp(n,36099,r)|0;kb(1)}while(0);c[e>>2]=p;c[f>>2]=q;c[g>>2]=o;i=s;return}function aj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0;if(a>>>0<2){Qp(36165,71,1,c[2348]|0)|0;kb(1)}if(a&1|0){Qp(36237,65,1,c[2348]|0)|0;kb(1)}if(b>>>0>a>>>0){Qp(36303,72,1,c[2348]|0)|0;kb(1)}if(d>>>0>b>>>0){Qp(36376,71,1,c[2348]|0)|0;kb(1)}k=Xp(80)|0;c[k>>2]=a;c[k+4>>2]=b;i=k+12|0;c[i>>2]=d;b=Xp(a)|0;h=k+8|0;c[h>>2]=b;if(!e){_i(a,b);b=c[h>>2]|0;d=c[k>>2]|0}else{fq(b|0,e|0,a|0)|0;d=a}a=k+28|0;j=k+32|0;$i(b,d,k+24|0,a,j);b=c[a>>2]|0;d=c[j>>2]|0;if((b|0)==(0-d|0)){Qp(36448,72,1,c[2348]|0)|0;kb(1)}if(!d){Qp(36521,70,1,c[2348]|0)|0;kb(1)}if(b>>>0<2){Qp(36592,71,1,c[2348]|0)|0;kb(1)}l=c[k>>2]|0;m=l<<3;n=Xp(m)|0;c[k+52>>2]=n;m=Xp(m)|0;c[k+56>>2]=m;c[k+48>>2]=Mk(l,n,m,-1,0)|0;m=c[k>>2]|0;n=m<<3;l=Xp(n)|0;c[k+60>>2]=l;e=Xp(n)|0;c[k+64>>2]=e;d=k+68|0;c[d>>2]=Xp(n)|0;b=k+72|0;c[b>>2]=Xp(n)|0;Yi(c[h>>2]|0,m,l,e,k+36|0);Zi(c[h>>2]|0,c[k>>2]|0,c[d>>2]|0,c[b>>2]|0,k+40|0);b=c[i>>2]|0;d=Xp(b<<2)|0;c[k+16>>2]=d;c[k+20>>2]=Xp(b<<3)|0;if(!b){m=c[a>>2]|0;n=c[j>>2]|0;m=n+m|0;f=+(m>>>0);f=+O(+f);f=1.0/f;m=k+44|0;g[m>>2]=f;m=Rj(8)|0;n=k+76|0;c[n>>2]=m;return k|0}f=+(b>>>0);e=0;do{o=+R(+((+(e>>>0)+.5)/f*1.5707963267948966));g[d+(e<<2)>>2]=o*o;e=e+1|0}while(e>>>0<b>>>0);m=c[a>>2]|0;n=c[j>>2]|0;m=n+m|0;o=+(m>>>0);o=+O(+o);o=1.0/o;m=k+44|0;g[m>>2]=o;m=Rj(8)|0;n=k+76|0;c[n>>2]=m;return k|0}function bj(a){a=a|0;Yp(c[a+8>>2]|0);Yp(c[a+52>>2]|0);Yp(c[a+56>>2]|0);dl(c[a+48>>2]|0);Yp(c[a+16>>2]|0);Yp(c[a+20>>2]|0);Yp(c[a+60>>2]|0);Yp(c[a+64>>2]|0);Yp(c[a+68>>2]|0);Yp(c[a+72>>2]|0);Sj(c[a+76>>2]|0);Yp(a);return}function cj(a){a=a|0;var b=0,d=0,e=0;Vj(c[a+76>>2]|0);d=a+12|0;if(!(c[d>>2]|0))return;a=a+20|0;b=0;do{e=c[a>>2]|0;g[e+(b<<3)>>2]=0.0;g[e+(b<<3)+4>>2]=0.0;b=b+1|0}while(b>>>0<(c[d>>2]|0)>>>0);return}function dj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0;d=c[a>>2]|0;h=a+4|0;e=c[h>>2]|0;if((e|0)!=(0-d|0)){i=a+64|0;f=0;do{k=((d+f-(e<<1)|0)>>>0)%(d>>>0)|0;l=c[i>>2]|0;j=c[l+(k<<3)+4>>2]|0;c[b+(f<<3)>>2]=c[l+(k<<3)>>2];c[b+(f<<3)+4>>2]=j;f=f+1|0;d=c[a>>2]|0;e=c[h>>2]|0}while(f>>>0<(e+d|0)>>>0)}f=a+12|0;if(!(c[f>>2]|0))return;d=a+16|0;e=0;do{n=+g[(c[d>>2]|0)+(e<<2)>>2];k=b+(e<<3)|0;l=b+(e<<3)+4|0;m=n*+g[l>>2];g[k>>2]=n*+g[k>>2];g[l>>2]=m;e=e+1|0}while(e>>>0<(c[f>>2]|0)>>>0);return}function ej(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;d=c[a>>2]|0;h=a+4|0;e=c[h>>2]|0;g=a+64|0;if((e|0)!=(0-d|0)){f=0;do{j=((d+f-e|0)>>>0)%(d>>>0)|0;k=c[g>>2]|0;i=c[k+(j<<3)+4>>2]|0;c[b+(f<<3)>>2]=c[k+(j<<3)>>2];c[b+(f<<3)+4>>2]=i;f=f+1|0;d=c[a>>2]|0;e=c[h>>2]|0}while(f>>>0<(e+d|0)>>>0)}gq(c[a+20>>2]|0,c[g>>2]|0,c[a+12>>2]<<3|0)|0;return}function fj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0,l=0.0,m=0,n=0.0;i=a+56|0;gq(c[i>>2]|0,c[a+72>>2]|0,c[a>>2]<<3|0)|0;e=a+4|0;h=c[e>>2]|0;gq(b|0,(c[i>>2]|0)+((c[a>>2]|0)-h<<3)|0,h<<3|0)|0;gq(b+(c[e>>2]<<3)|0,c[i>>2]|0,c[a>>2]<<3|0)|0;e=a+12|0;if(!(c[e>>2]|0)){b=0;h=a+20|0;h=c[h>>2]|0;i=c[i>>2]|0;gq(h|0,i|0,b|0)|0;return}f=a+16|0;h=a+20|0;d=0;do{j=+g[(c[f>>2]|0)+(d<<2)>>2];k=b+(d<<3)|0;a=b+(d<<3)+4|0;n=j*+g[k>>2];j=j*+g[a>>2];g[k>>2]=n;g[a>>2]=j;m=c[h>>2]|0;l=+g[(c[f>>2]|0)+((c[e>>2]|0)+~d<<2)>>2];j=j+ +g[m+(d<<3)+4>>2]*l;g[k>>2]=n+ +g[m+(d<<3)>>2]*l;g[a>>2]=j;d=d+1|0;a=c[e>>2]|0}while(d>>>0<a>>>0);m=a<<3;b=h;b=c[b>>2]|0;k=c[i>>2]|0;gq(b|0,k|0,m|0)|0;return}function gj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0;f=c[b>>2]|0;a:do if(f|0){i=b+8|0;j=b+44|0;k=b+52|0;l=b+76|0;h=0;while(1){f=(((f>>>1)+h|0)>>>0)%(f>>>0)|0;switch(a[(c[i>>2]|0)+f>>0]|0){case 0:{m=c[k>>2]|0;g[m+(f<<3)>>2]=0.0;g[m+(f<<3)+4>>2]=0.0;break}case 1:{n=(Tj(c[l>>2]|0)|0)!=0;m=c[k>>2]|0;g[m+(f<<3)>>2]=+g[j>>2]*(n?1.0:-1.0);g[m+(f<<3)+4>>2]=0.0;break}default:{p=+g[j>>2];o=+g[d+(f<<3)+4>>2]*p;n=c[k>>2]|0;g[n+(f<<3)>>2]=+g[d+(f<<3)>>2]*p;g[n+(f<<3)+4>>2]=o}}h=h+1|0;f=c[b>>2]|0;if(h>>>0>=f>>>0)break a}}while(0);el(c[b+48>>2]|0);i=b+4|0;n=c[i>>2]|0;l=b+56|0;gq(e|0,(c[l>>2]|0)+((c[b>>2]|0)-n<<3)|0,n<<3|0)|0;gq(e+(c[i>>2]<<3)|0,c[l>>2]|0,c[b>>2]<<3|0)|0;i=b+12|0;if(!(c[i>>2]|0)){n=0;e=b+20|0;e=c[e>>2]|0;m=c[l>>2]|0;gq(e|0,m|0,n|0)|0;return}j=b+16|0;k=b+20|0;h=0;do{p=+g[(c[j>>2]|0)+(h<<2)>>2];n=e+(h<<3)|0;f=e+(h<<3)+4|0;q=p*+g[n>>2];p=p*+g[f>>2];g[n>>2]=q;g[f>>2]=p;m=c[k>>2]|0;o=+g[(c[j>>2]|0)+((c[i>>2]|0)+~h<<2)>>2];p=p+ +g[m+(h<<3)+4>>2]*o;g[n>>2]=q+ +g[m+(h<<3)>>2]*o;g[f>>2]=p;h=h+1|0;f=c[i>>2]|0}while(h>>>0<f>>>0);n=f<<3;e=k;e=c[e>>2]|0;m=c[l>>2]|0;gq(e|0,m|0,n|0)|0;return}function hj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0;f=a+12|0;d=c[f>>2]|0;if(!d)return;h=a+20|0;e=a+16|0;a=0;do{k=c[h>>2]|0;j=+g[(c[e>>2]|0)+(d+~a<<2)>>2];i=+g[k+(a<<3)+4>>2]*j;g[b+(a<<3)>>2]=+g[k+(a<<3)>>2]*j;g[b+(a<<3)+4>>2]=i;a=a+1|0;d=c[f>>2]|0}while(d>>>0>a>>>0);return}function ij(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0.0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0.0;l=Xp(216)|0;if(a>>>0>=8){if(a&1|0){Qp(36722,66,1,c[2348]|0)|0;kb(1)}if(b>>>0>a>>>0){Qp(36789,88,1,c[2348]|0)|0;kb(1)}}else Qp(36664,57,1,c[2348]|0)|0;c[l>>2]=a;k=l+8|0;c[k>>2]=b;c[l+4>>2]=a>>>1;d=Xp(a)|0;j=l+12|0;c[j>>2]=d;if(!e){_i(a,d);d=c[j>>2]|0;b=c[l>>2]|0}else{fq(d|0,e|0,a|0)|0;b=a}e=l+20|0;a=l+24|0;$i(d,b,l+16|0,e,a);d=c[e>>2]|0;b=c[a>>2]|0;if((d|0)==(0-b|0)){Qp(36878,73,1,c[2348]|0)|0;kb(1)}if(!b){Qp(36952,71,1,c[2348]|0)|0;kb(1)}if(d>>>0<2){Qp(37024,72,1,c[2348]|0)|0;kb(1)}p=c[l>>2]|0;m=p<<3;q=Xp(m)|0;c[l+52>>2]=q;m=Xp(m)|0;c[l+56>>2]=m;c[l+48>>2]=Mk(p,m,q,1,0)|0;c[l+60>>2]=qk((c[k>>2]|0)+(c[l>>2]|0)|0)|0;q=c[l>>2]|0;m=q<<3;p=Xp(m)|0;c[l+64>>2]=p;n=Xp(m)|0;c[l+68>>2]=n;b=l+72|0;c[b>>2]=Xp(m)|0;d=l+76|0;c[d>>2]=Xp(m)|0;m=l+28|0;Yi(c[j>>2]|0,q,p,n,m);n=l+32|0;Zi(c[j>>2]|0,c[l>>2]|0,c[b>>2]|0,c[d>>2]|0,n);j=c[l>>2]|0;i=+(j>>>0);o=+O(+i);g[l+36>>2]=o/+O(+(+(((c[a>>2]|0)+(c[e>>2]|0)|0)>>>0)));g[l+40>>2]=o/+O(+(+((c[m>>2]|0)>>>0)));g[l+44>>2]=o/+O(+(+((c[n>>2]|0)>>>0)));g[l+80>>2]=1.0;a=j<<3;n=Xp(a)|0;c[l+84>>2]=n;m=Xp(a)|0;c[l+88>>2]=m;e=Xp(a)|0;c[l+92>>2]=e;d=Xp(a)|0;b=l+96|0;c[b>>2]=d;c[l+100>>2]=Xp(a)|0;eq(n|0,0,a|0)|0;eq(m|0,0,a|0)|0;eq(e|0,0,a|0)|0;eq(d|0,0,a|0)|0;k=c[k>>2]|0;k=k>>>0<2?k:2;c[l+132>>2]=k;i=+(k>>>0)*2.0*3.141592653589793/i;if(j|0?(r=i*0.0,o=+R(+r),g[d>>2]=+Q(+r)+o*0.0,g[d+4>>2]=o,(c[l>>2]|0)>>>0>1):0){d=1;do{q=c[b>>2]|0;o=i*+(d>>>0);r=+R(+o);g[q+(d<<3)>>2]=+Q(+o)+r*0.0;g[q+(d<<3)+4>>2]=r;d=d+1|0}while(d>>>0<(c[l>>2]|0)>>>0)}c[l+160>>2]=f;c[l+164>>2]=h;q=l+108|0;c[q>>2]=zj(0)|0;d=l+112|0;c[d>>2]=Rj(8)|0;Dj(c[q>>2]|0);Vj(c[d>>2]|0);d=l+136|0;q=l+116|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=c[l>>2]|0;if(d>>>0>44){g[l+152>>2]=.3499999940395355;r=.30000001192092896;q=l+156|0;g[q>>2]=r;q=l+104|0;c[q>>2]=0;q=l+168|0;p=l+208|0;c[p>>2]=0;p=l+212|0;c[p>>2]=0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=0;c[q+24>>2]=0;c[q+28>>2]=0;return l|0}else{r=+((44-d|0)>>>0)*.009999999776482582;g[l+152>>2]=r+.3499999940395355;r=r+.30000001192092896;q=l+156|0;g[q>>2]=r;q=l+104|0;c[q>>2]=0;q=l+168|0;p=l+208|0;c[p>>2]=0;p=l+212|0;c[p>>2]=0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=0;c[q+24>>2]=0;c[q+28>>2]=0;return l|0}return 0}function jj(a){a=a|0;var b=0,d=0,e=0.0;Dj(c[a+108>>2]|0);Vj(c[a+112>>2]|0);b=a+136|0;d=a+116|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;b=c[a>>2]|0;if(b>>>0>44){g[a+152>>2]=.3499999940395355;e=.30000001192092896;d=a+156|0;g[d>>2]=e;d=a+104|0;c[d>>2]=0;return}else{g[a+152>>2]=+((44-b|0)>>>0)*.009999999776482582+.3499999940395355;e=+((44-b|0)>>>0)*.009999999776482582+.30000001192092896;d=a+156|0;g[d>>2]=e;d=a+104|0;c[d>>2]=0;return}}function kj(a){a=a|0;var b=0;b=c[a+176>>2]|0;if(b|0)uk(b);b=c[a+180>>2]|0;if(b|0)pk(b);b=c[a+184>>2]|0;if(b|0)uk(b);b=c[a+188>>2]|0;if(b|0)Yp(b);b=c[a+192>>2]|0;if(b|0)Yp(b);b=c[a+196>>2]|0;if(b|0)Yp(b);b=c[a+208>>2]|0;if(b|0)pk(b);b=c[a+212>>2]|0;if(b|0)pk(b);Yp(c[a+12>>2]|0);uk(c[a+60>>2]|0);Yp(c[a+52>>2]|0);Yp(c[a+56>>2]|0);dl(c[a+48>>2]|0);Yp(c[a+64>>2]|0);Yp(c[a+68>>2]|0);Yp(c[a+72>>2]|0);Yp(c[a+76>>2]|0);Yp(c[a+84>>2]|0);Yp(c[a+88>>2]|0);Yp(c[a+92>>2]|0);Yp(c[a+96>>2]|0);Yp(c[a+100>>2]|0);Ej(c[a+108>>2]|0);Sj(c[a+112>>2]|0);Yp(a);return}function lj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=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.0,L=0.0;I=i;i=i+48|0;if((i|0)>=(j|0))ba();h=I+40|0;G=I+16|0;H=I;k=I+32|0;l=I+24|0;w=I+8|0;if(!d){i=I;return}z=H+4|0;A=a+104|0;B=a+60|0;C=l+4|0;D=a+168|0;E=a+124|0;m=a+4|0;n=a+8|0;o=a+84|0;p=a+80|0;q=G+4|0;r=a+140|0;s=a+136|0;t=a+176|0;u=w+4|0;v=a+180|0;x=a+108|0;y=k+4|0;F=0;do{e=c[b+(F<<3)>>2]|0;f=c[b+(F<<3)+4>>2]|0;c[H>>2]=e;c[z>>2]=f;if(c[A>>2]|0){J=c[x>>2]|0;c[k>>2]=e;c[y>>2]=f;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];Mj(J,h,H);Ij(c[x>>2]|0);e=c[H>>2]|0;f=c[z>>2]|0}J=c[B>>2]|0;c[l>>2]=e;c[C>>2]=f;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];tk(J,h);if(c[D>>2]|0){J=c[t>>2]|0;f=c[z>>2]|0;c[w>>2]=c[H>>2];c[u>>2]=f;c[h>>2]=c[w>>2];c[h+4>>2]=c[w+4>>2];tk(J,h);L=+g[H>>2];K=+g[z>>2];ok(c[v>>2]|0,L*L+K*K)}switch(c[A>>2]|0){case 0:{mj(a);break}case 1:{J=(c[E>>2]|0)+1|0;c[E>>2]=J;if(J>>>0>=(c[m>>2]|0)>>>0){c[E>>2]=0;sk(c[B>>2]|0,h);nj(a,(c[h>>2]|0)+(c[n>>2]<<3)|0,c[o>>2]|0);oj(a,c[o>>2]|0,G);K=+g[p>>2];L=K*+g[q>>2];g[s>>2]=K*+g[G>>2];g[r>>2]=L;c[A>>2]=2}break}case 2:{pj(a);break}case 3:{qj(a);break}case 4:{tj(a);break}default:{}}F=F+1|0}while((F|0)!=(d|0));i=I;return}function mj(a){a=a|0;var b=0.0,d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0;q=i;i=i+48|0;if((i|0)>=(j|0))ba();n=q+32|0;d=q+24|0;m=q+8|0;h=q+16|0;o=q;p=a+124|0;l=(c[p>>2]|0)+1|0;c[p>>2]=l;if(l>>>0<(c[a>>2]|0)>>>0){i=q;return}c[p>>2]=0;sk(c[a+60>>2]|0,d);k=c[a+8>>2]|0;l=c[a>>2]|0;e=k+l|0;f=c[d>>2]|0;if(k>>>0<e>>>0){b=0.0;d=k;do{s=+g[f+(d<<3)>>2];r=+g[f+(d<<3)+4>>2];b=b+(s*s+r*r);d=d+1|0}while(d>>>0<e>>>0)}else b=0.0;t=+(l>>>0)/b;d=a+84|0;nj(a,f+(k<<3)|0,c[d>>2]|0);oj(a,c[d>>2]|0,m);d=m+4|0;r=t*+g[m>>2];s=t*+g[d>>2];g[m>>2]=r;g[d>>2]=s;g[h>>2]=r;g[h+4>>2]=s;c[n>>2]=c[h>>2];c[n+4>>2]=c[h+4>>2];b=+Bo(n);d=a+4|0;e=c[d>>2]|0;g[a+80>>2]=t;g[o>>2]=r;g[o+4>>2]=s;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];s=+wo(n);if(s>+g[a+152>>2]){n=~~+dq(+(b*+(e>>>0)/6.283185307179586));o=c[a>>2]|0;c[p>>2]=(((o+n|0)>>>0)%((c[d>>2]|0)>>>0)|0)+o;c[a+104>>2]=1}i=q;return}function nj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+32|0;if((i|0)>=(j|0))ba();x=B+24|0;y=B+16|0;z=B+8|0;A=B;gq(c[b+56>>2]|0,d|0,c[b>>2]<<3|0)|0;el(c[b+48>>2]|0);p=+O(+(+((c[b+28>>2]|0)>>>0)));w=c[b>>2]|0;p=p/+(w>>>0);if(!w){i=B;return}q=b+12|0;r=b+52|0;s=b+64|0;t=z+4|0;u=y+4|0;v=A+4|0;w=0;do{if((w&1|0)==0?(a[(c[q>>2]|0)+w>>0]|0)!=0:0){d=c[r>>2]|0;l=+g[d+(w<<3)>>2];m=+g[d+(w<<3)+4>>2];d=c[s>>2]|0;k=c[d+(w<<3)+4>>2]|0;c[z>>2]=c[d+(w<<3)>>2];c[t>>2]=k;c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];Ko(y,x);n=+g[y>>2];o=+g[u>>2];h=l*n-m*o;f=m*n+l*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(A,l,m,n,o);h=+g[A>>2];f=+g[v>>2]}k=e+(w<<3)|0;d=e+(w<<3)+4|0;g[k>>2]=h;g[d>>2]=f}else{k=e+(w<<3)|0;d=e+(w<<3)+4|0;g[k>>2]=0.0;g[d>>2]=0.0;h=0.0;f=0.0}g[k>>2]=p*h;g[d>>2]=p*f;w=w+1|0}while(w>>>0<(c[b>>2]|0)>>>0);i=B;return}function oj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+48|0;if((i|0)>=(j|0))ba();r=z+32|0;s=z+24|0;t=z+16|0;u=z+8|0;y=z;h=c[a>>2]|0;if(!h){f=0.0;e=0.0}else{v=t+4|0;w=s+4|0;x=u+4|0;q=0;f=0.0;e=0.0;do{A=q;q=q+2|0;h=(q>>>0)%(h>>>0)|0;m=+g[b+(h<<3)>>2];n=+g[b+(h<<3)+4>>2];h=c[b+(A<<3)+4>>2]|0;c[t>>2]=c[b+(A<<3)>>2];c[v>>2]=h;c[r>>2]=c[t>>2];c[r+4>>2]=c[t+4>>2];Ko(s,r);o=+g[s>>2];p=+g[w>>2];k=m*o-n*p;l=n*o+m*p;if((k!=k|0.0!=0.0)&(l!=l|0.0!=0.0)){ao(u,m,n,o,p);k=+g[u>>2];l=+g[x>>2]}f=f+k;e=e+l;h=c[a>>2]|0}while(q>>>0<h>>>0)}_n(y,f,e,+((c[a+28>>2]|0)>>>0),0.0);A=c[y+4>>2]|0;c[d>>2]=c[y>>2];c[d+4>>2]=A;i=z;return}function pj(a){a=a|0;var b=0.0,d=0.0,e=0,f=0,h=0,k=0.0,l=0.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,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;I=i;i=i+128|0;if((i|0)>=(j|0))ba();F=I+112|0;E=I+88|0;f=I+64|0;e=I+104|0;n=I+96|0;o=I+80|0;p=I+72|0;y=I+56|0;z=I+48|0;A=I+40|0;B=I+32|0;C=I+24|0;D=I+16|0;x=I+8|0;G=I;h=a+124|0;w=(c[h>>2]|0)+1|0;c[h>>2]=w;H=a+4|0;if(w>>>0<(c[H>>2]|0)>>>0){i=I;return}w=a+8|0;c[h>>2]=(c[w>>2]|0)+(c[a>>2]|0)-(c[a+132>>2]|0);sk(c[a+60>>2]|0,E);q=a+88|0;nj(a,(c[E>>2]|0)+(c[w>>2]<<3)|0,c[q>>2]|0);oj(a,c[q>>2]|0,f);u=+g[a+80>>2];w=f+4|0;t=u*+g[f>>2];u=u*+g[w>>2];g[f>>2]=t;g[w>>2]=u;g[a+144>>2]=t;g[a+148>>2]=u;u=u+ +g[a+140>>2];g[e>>2]=t+ +g[a+136>>2];g[e+4>>2]=u;c[F>>2]=c[e>>2];c[F+4>>2]=c[e+4>>2];u=+Bo(F);e=c[H>>2]|0;w=~~+dq(+(u*+(e>>>0)/6.283185307179586));c[h>>2]=(c[h>>2]|0)-w;if(c[a>>2]|0){e=a+84|0;f=o+4|0;h=n+4|0;m=0;do{v=c[q>>2]|0;b=+g[v+(m<<3)>>2];d=+g[v+(m<<3)+4>>2];v=c[e>>2]|0;w=c[v+(m<<3)+4>>2]|0;c[o>>2]=c[v+(m<<3)>>2];c[f>>2]=w;c[F>>2]=c[o>>2];c[F+4>>2]=c[o+4>>2];Ko(n,F);k=+g[n>>2];l=+g[h>>2];t=b*k-d*l;u=d*k+b*l;if((t!=t|0.0!=0.0)&(u!=u|0.0!=0.0))ao(p,b,d,k,l);m=m+1|0}while(m>>>0<(c[a>>2]|0)>>>0);e=c[H>>2]|0}if(!e){d=0.0;b=0.0}else{f=z+4|0;h=y+4|0;m=a+68|0;n=A+4|0;o=B+4|0;p=D+4|0;q=C+4|0;v=x+4|0;w=0;d=0.0;b=0.0;do{J=c[E>>2]|0;e=c[J+(w<<3)+4>>2]|0;c[z>>2]=c[J+(w<<3)>>2];c[f>>2]=e;c[F>>2]=c[z>>2];c[F+4>>2]=c[z+4>>2];Ko(y,F);k=+g[y>>2];l=+g[h>>2];e=c[m>>2]|0;r=+g[e+(w<<3)>>2];s=+g[e+(w<<3)+4>>2];t=k*r-l*s;u=l*r+k*s;if((t!=t|0.0!=0.0)&(u!=u|0.0!=0.0)){ao(A,k,l,r,s);t=+g[A>>2];u=+g[n>>2]}e=c[H>>2]|0;J=e+w|0;K=c[E>>2]|0;k=+g[K+(J<<3)>>2];l=+g[K+(J<<3)+4>>2];r=t*k-u*l;s=u*k+t*l;if((r!=r|0.0!=0.0)&(s!=s|0.0!=0.0)){ao(B,t,u,k,l);e=c[H>>2]|0;u=+g[B>>2];t=+g[o>>2]}else{u=r;t=s}J=e+w|0;e=c[m>>2]|0;K=c[e+(J<<3)+4>>2]|0;c[D>>2]=c[e+(J<<3)>>2];c[p>>2]=K;c[F>>2]=c[D>>2];c[F+4>>2]=c[D+4>>2];Ko(C,F);r=+g[C>>2];s=+g[q>>2];k=u*r-t*s;l=t*r+u*s;if((k!=k|0.0!=0.0)&(l!=l|0.0!=0.0)){ao(x,u,t,r,s);k=+g[x>>2];l=+g[v>>2]}d=d+k;b=b+l;w=w+1|0}while(w>>>0<(c[H>>2]|0)>>>0)}g[G>>2]=d;g[G+4>>2]=b;c[F>>2]=c[G>>2];c[F+4>>2]=c[G+4>>2];u=+Bo(F);Fj(c[a+108>>2]|0,u/+((c[H>>2]|0)>>>0));c[a+104>>2]=3;i=I;return}function qj(a){a=a|0;var b=0,d=0.0,e=0.0,f=0,h=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0,t=0.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;G=i;i=i+96|0;if((i|0)>=(j|0))ba();y=G+80|0;b=G+64|0;q=G+72|0;s=G+56|0;u=G+48|0;v=G+40|0;w=G+32|0;x=G+24|0;B=G+16|0;D=G+8|0;F=G;C=a+124|0;E=(c[C>>2]|0)+-1|0;c[C>>2]=E;if(E|0){i=G;return}z=a+128|0;c[z>>2]=(c[z>>2]|0)+1;sk(c[a+60>>2]|0,b);A=a+8|0;E=a+92|0;rj(a,(c[b>>2]|0)+(c[A>>2]<<3)|0,c[E>>2]|0);b=c[a>>2]|0;if(!b){e=0.0;d=0.0}else{h=s+4|0;k=q+4|0;p=u+4|0;e=0.0;d=0.0;f=0;do{H=f;f=f+1|0;b=(f>>>0)%(b>>>0)|0;I=c[E>>2]|0;n=+g[I+(b<<3)>>2];o=+g[I+(b<<3)+4>>2];b=c[I+(H<<3)+4>>2]|0;c[s>>2]=c[I+(H<<3)>>2];c[h>>2]=b;c[y>>2]=c[s>>2];c[y+4>>2]=c[s+4>>2];Ko(q,y);r=+g[q>>2];t=+g[k>>2];l=n*r-o*t;m=o*r+n*t;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(u,n,o,r,t);l=+g[u>>2];m=+g[p>>2]}e=e+l;d=d+m;b=c[a>>2]|0}while(f>>>0<b>>>0)}_n(v,e,d,+((c[a+32>>2]|0)>>>0),0.0);l=+g[a+80>>2];o=+g[v>>2]*l;l=+g[v+4>>2]*l;b=a+132|0;n=+((c[b>>2]|0)>>>0)*2.0*3.141592653589793/+((c[a>>2]|0)>>>0);m=+R(+n);n=+Q(+n)+m*0.0;e=o*n-l*m;d=o*m+l*n;if((e!=e|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(w,o,l,n,m);e=+g[w>>2];d=+g[w+4>>2]}g[x>>2]=e;g[x+4>>2]=d;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];t=+wo(y);f=a+156|0;if(t>+g[f>>2]?(g[B>>2]=e,g[B+4>>2]=d,c[y>>2]=c[B>>2],c[y+4>>2]=c[B+4>>2],+N(+(+Bo(y)))<.3141592700403172):0){c[a+104>>2]=4;I=c[a>>2]|0;c[C>>2]=(c[A>>2]|0)+I+(c[b>>2]|0);c[z>>2]=0;s=a+20|0;b=c[s>>2]|0;q=a+24|0;f=c[q>>2]|0;r=+(I>>>0)/+O(+(+((f+b|0)>>>0)));if(I){b=a+96|0;f=D+4|0;p=0;do{k=c[E>>2]|0;h=k+(p<<3)|0;k=k+(p<<3)+4|0;l=r*+g[k>>2];g[h>>2]=r*+g[h>>2];g[k>>2]=l;k=c[b>>2]|0;l=+g[k+(p<<3)>>2];m=+g[k+(p<<3)+4>>2];k=c[E>>2]|0;h=k+(p<<3)|0;n=+g[h>>2];k=k+(p<<3)+4|0;o=+g[k>>2];e=l*n-m*o;d=m*n+l*o;if((e!=e|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(D,n,o,l,m);e=+g[D>>2];d=+g[f>>2]}g[h>>2]=e;g[k>>2]=d;p=p+1|0}while(p>>>0<(c[a>>2]|0)>>>0);f=c[q>>2]|0;b=c[s>>2]|0}I=f+b|0;sj(a,I>>>0<5?I+-1|0:4);if(c[a>>2]|0){b=a+96|0;f=F+4|0;h=a+100|0;k=0;do{I=c[b>>2]|0;H=c[E>>2]|0;_n(F,+g[I+(k<<3)>>2],+g[I+(k<<3)+4>>2],+g[H+(k<<3)>>2],+g[H+(k<<3)+4>>2]);H=c[f>>2]|0;I=c[h>>2]|0;c[I+(k<<3)>>2]=c[F>>2];c[I+(k<<3)+4>>2]=H;k=k+1|0}while(k>>>0<(c[a>>2]|0)>>>0)}}else{if((c[z>>2]|0)==16){Dj(c[a+108>>2]|0);Vj(c[a+112>>2]|0);b=a+136|0;I=a+116|0;c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;c[I+12>>2]=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;b=c[a>>2]|0;if(b>>>0>44){d=.3499999940395355;e=.30000001192092896}else{e=+((44-b|0)>>>0)*.009999999776482582;d=e+.3499999940395355;e=e+.30000001192092896}g[a+152>>2]=d;g[f>>2]=e;c[a+104>>2]=0}c[C>>2]=c[a+4>>2]}i=G;return}function rj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+32|0;if((i|0)>=(j|0))ba();x=B+24|0;y=B+16|0;z=B+8|0;A=B;gq(c[b+56>>2]|0,d|0,c[b>>2]<<3|0)|0;el(c[b+48>>2]|0);p=+O(+(+((c[b+32>>2]|0)>>>0)));w=c[b>>2]|0;p=p/+(w>>>0);if(!w){i=B;return}q=b+12|0;r=b+52|0;s=b+72|0;t=z+4|0;u=y+4|0;v=A+4|0;w=0;do{if(!(a[(c[q>>2]|0)+w>>0]|0)){k=e+(w<<3)|0;d=e+(w<<3)+4|0;g[k>>2]=0.0;g[d>>2]=0.0;h=0.0;f=0.0}else{d=c[r>>2]|0;l=+g[d+(w<<3)>>2];m=+g[d+(w<<3)+4>>2];d=c[s>>2]|0;k=c[d+(w<<3)+4>>2]|0;c[z>>2]=c[d+(w<<3)>>2];c[t>>2]=k;c[x>>2]=c[z>>2];c[x+4>>2]=c[z+4>>2];Ko(y,x);n=+g[y>>2];o=+g[u>>2];h=l*n-m*o;f=m*n+l*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(A,l,m,n,o);h=+g[A>>2];f=+g[v>>2]}k=e+(w<<3)|0;d=e+(w<<3)+4|0;g[k>>2]=h;g[d>>2]=f}g[k>>2]=p*h;g[d>>2]=p*f;w=w+1|0}while(w>>>0<(c[b>>2]|0)>>>0);i=B;return}function sj(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,h=0.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.0;F=i;i=i+32|0;if((i|0)>=(j|0))ba();t=F+16|0;u=F+8|0;v=F;if(!(c[b+168>>2]|0))E=b;else{gq(c[b+188>>2]|0,c[b+92>>2]|0,c[b>>2]<<3|0)|0;E=b}A=(c[b+24>>2]|0)+(c[b+20>>2]|0)|0;x=A+-1|0;d=x>>>0<d>>>0?x:d;x=i;i=i+((1*(A<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();y=i;i=i+((1*(A<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();z=i;i=i+((1*(A<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();B=(d>>>0>10?10:d)+1|0;C=i;i=i+((1*(B<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();D=i;i=i+((1*(B<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();d=c[E>>2]|0;a:do if(!d)w=0;else{o=b+4|0;p=b+12|0;q=b+92|0;r=u+4|0;s=v+4|0;n=0;k=0;while(1){l=c[o>>2]|0;m=((l+n|0)>>>0)%(d>>>0)|0;if(a[(c[p>>2]|0)+m>>0]|0){if((k|0)==(A|0))break;f=+(m>>>0);h=+(d>>>0);g[x+(k<<2)>>2]=(m>>>0>l>>>0?f-h:f)/h;d=c[q>>2]|0;l=c[d+(m<<3)+4>>2]|0;c[u>>2]=c[d+(m<<3)>>2];c[r>>2]=l;c[t>>2]=c[u>>2];c[t+4>>2]=c[u+4>>2];g[y+(k<<2)>>2]=+wo(t);l=c[q>>2]|0;d=c[l+(m<<3)+4>>2]|0;c[v>>2]=c[l+(m<<3)>>2];c[s>>2]=d;c[t>>2]=c[v>>2];c[t+4>>2]=c[v+4>>2];g[z+(k<<2)>>2]=+Bo(t);d=c[E>>2]|0;k=k+1|0}n=n+1|0;if(n>>>0>=d>>>0){w=k;break a}}Qp(37097,71,1,c[2348]|0)|0;kb(1)}while(0);if((w|0)!=(A|0)){Qp(37097,71,1,c[2348]|0)|0;kb(1)}if(A>>>0>1){f=+g[z>>2];l=1;while(1){k=z+(l<<2)|0;e=+g[k>>2];d=z+(l+-1<<2)|0;if(e-f>3.141592653589793){do e=e+-6.283185307179586;while(e-f>3.141592653589793);g[k>>2]=e}f=+g[d>>2];if(e-f<-3.141592653589793){do e=e+6.283185307179586;while(e-f<-3.141592653589793);g[k>>2]=e}l=l+1|0;if((l|0)==(A|0))break;else f=e}}Nh(x,y,A,C,B);Nh(x,z,A,D,B);d=c[E>>2]|0;if(!d){i=F;return}m=b+4|0;n=b+12|0;l=b+92|0;k=0;do{f=+(k>>>0);e=+(d>>>0);e=(k>>>0>(c[m>>2]|0)>>>0?f-e:f)/e;f=+Mh(C,B,e);e=+Mh(D,B,e);if(!(a[(c[n>>2]|0)+k>>0]|0)){h=0.0;e=0.0}else{G=+R(+e);h=f*(+Q(+e)+G*0.0);e=f*G}d=c[l>>2]|0;g[d+(k<<3)>>2]=h;g[d+(k<<3)+4>>2]=e;k=k+1|0;d=c[E>>2]|0}while(k>>>0<d>>>0);i=F;return}function tj(b){b=b|0;var d=0,e=0.0,f=0.0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();o=s+16|0;d=s+8|0;p=s;q=b+124|0;r=(c[q>>2]|0)+-1|0;c[q>>2]=r;if(r|0){i=s;return}sk(c[b+60>>2]|0,d);r=b+8|0;gq(c[b+56>>2]|0,(c[d>>2]|0)+((c[r>>2]|0)-(c[b+132>>2]|0)<<3)|0,c[b>>2]<<3|0)|0;el(c[b+48>>2]|0);uj(b);if(c[b+168>>2]|0?(h=c[b>>2]|0,h|0):0){k=b+12|0;l=b+184|0;m=b+52|0;n=p+4|0;d=0;do{if((a[(c[k>>2]|0)+d>>0]|0)==2){h=c[l>>2]|0;u=c[m>>2]|0;t=c[u+(d<<3)+4>>2]|0;c[p>>2]=c[u+(d<<3)>>2];c[n>>2]=t;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];tk(h,o);h=c[b>>2]|0}d=d+1|0}while(d>>>0<h>>>0)}d=c[b+160>>2]|0;if(d|0?vb[d&7](c[b+52>>2]|0,c[b+12>>2]|0,c[b>>2]|0,c[b+164>>2]|0)|0:0){Dj(c[b+108>>2]|0);Vj(c[b+112>>2]|0);d=b+136|0;u=b+116|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=c[b>>2]|0;if(d>>>0>44){e=.3499999940395355;f=.30000001192092896}else{f=+((44-d|0)>>>0)*.009999999776482582;e=f+.3499999940395355;f=f+.30000001192092896}g[b+152>>2]=e;g[b+156>>2]=f;c[b+104>>2]=0}c[q>>2]=(c[r>>2]|0)+(c[b>>2]|0);i=s;return}function uj(b){b=b|0;var d=0,e=0,f=0.0,h=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;K=i;i=i+64|0;if((i|0)>=(j|0))ba();z=K+56|0;l=K+48|0;J=K+40|0;A=K+32|0;B=K+24|0;C=K+16|0;D=K+8|0;I=K;if(!(c[b>>2]|0))e=0;else{r=b+100|0;s=b+52|0;q=l+4|0;t=0;do{e=c[r>>2]|0;m=+g[e+(t<<3)>>2];n=+g[e+(t<<3)+4>>2];e=c[s>>2]|0;d=e+(t<<3)|0;o=+g[d>>2];e=e+(t<<3)+4|0;p=+g[e>>2];h=m*o-n*p;f=n*o+m*p;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(l,o,p,m,n);h=+g[l>>2];f=+g[q>>2]}g[d>>2]=h;g[e>>2]=f;t=t+1|0;d=c[b>>2]|0}while(t>>>0<d>>>0);e=d}F=b+20|0;d=c[F>>2]|0;G=i;i=i+((1*(d<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();H=i;i=i+((1*(d<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();do if(!e){q=d;d=0}else{r=b+4|0;s=b+12|0;t=b+112|0;u=b+52|0;v=B+4|0;w=A+4|0;x=C+4|0;y=D+4|0;q=0;d=0;while(1){l=(((c[r>>2]|0)+q|0)>>>0)%(e>>>0)|0;if((a[(c[s>>2]|0)+l>>0]|0)==1){if((d|0)==(c[F>>2]|0))break;e=(Tj(c[t>>2]|0)|0)!=0;f=+(l>>>0);if(l>>>0>(c[r>>2]|0)>>>0)f=f-+((c[b>>2]|0)>>>0);g[G+(d<<2)>>2]=f;L=c[u>>2]|0;p=+g[L+(l<<3)>>2];o=+g[L+(l<<3)+4>>2];g[B>>2]=e?1.0:-1.0;g[v>>2]=0.0;c[z>>2]=c[B>>2];c[z+4>>2]=c[B+4>>2];Ko(A,z);m=+g[A>>2];n=+g[w>>2];h=p*m-o*n;f=o*m+p*n;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(C,p,o,m,n);h=+g[C>>2];f=+g[x>>2]}g[D>>2]=h;g[y>>2]=f;c[z>>2]=c[D>>2];c[z+4>>2]=c[D+4>>2];g[H+(d<<2)>>2]=+Bo(z);e=c[b>>2]|0;d=d+1|0}q=q+1|0;if(q>>>0>=e>>>0){E=17;break}}if((E|0)==17){q=c[F>>2]|0;break}Qp(37169,61,1,c[2348]|0)|0;i=K;return}while(0);if((d|0)!=(q|0)){Qp(37169,61,1,c[2348]|0)|0;i=K;return}if(q>>>0>1){h=+g[H>>2];l=1;while(1){e=H+(l<<2)|0;f=+g[e>>2];d=H+(l+-1<<2)|0;if(f-h>3.141592653589793){do f=f+-6.283185307179586;while(f-h>3.141592653589793);g[e>>2]=f}h=+g[d>>2];if(f-h<-3.141592653589793){do f=f+6.283185307179586;while(f-h<-3.141592653589793);g[e>>2]=f}l=l+1|0;if(l>>>0>=q>>>0)break;else h=f}}Nh(G,H,q,J,2);d=J+4|0;L=b+120|0;p=+g[d>>2]*.30000001192092896+ +g[L>>2]*.699999988079071;g[d>>2]=p;g[L>>2]=p;if(c[b+168>>2]|0){gq(c[b+192>>2]|0,G|0,c[F>>2]<<2|0)|0;gq(c[b+196>>2]|0,H|0,c[F>>2]<<2|0)|0;c[b+200>>2]=c[d>>2];L=c[J>>2]|0;c[b+204>>2]=L;ok(c[b+208>>2]|0,(c[k>>2]=L,+g[k>>2]));ok(c[b+212>>2]|0,+g[d>>2])}d=c[b>>2]|0;if(d|0){q=b+12|0;r=b+52|0;s=b+4|0;t=I+4|0;l=0;do{if(!(a[(c[q>>2]|0)+l>>0]|0)){L=c[r>>2]|0;g[L+(l<<3)>>2]=0.0;g[L+(l<<3)+4>>2]=0.0}else{n=+(l>>>0);n=+Mh(J,2,l>>>0>(c[s>>2]|0)>>>0?n-+(d>>>0):n);m=+R(+-n);n=+Q(+n)+m*0.0;e=c[r>>2]|0;d=e+(l<<3)|0;o=+g[d>>2];e=e+(l<<3)+4|0;p=+g[e>>2];h=o*n-m*p;f=m*o+n*p;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(I,o,p,n,m);h=+g[I>>2];f=+g[t>>2]}g[d>>2]=h;g[e>>2]=f}l=l+1|0;d=c[b>>2]|0}while(l>>>0<d>>>0)}l=b+128|0;if(!(c[l>>2]|0)){d=b+116|0;e=1}else{d=b+116|0;f=+g[J>>2]-+g[d>>2];h=f;if(h>3.141592653589793)do{f=h+-.6366197723675814;h=f}while(h>3.141592653589793);h=f;if(h<-3.141592653589793)do{f=h+.6366197723675814;h=f}while(h<-3.141592653589793);Gj(c[b+108>>2]|0,f*1.0000000474974513e-03);e=(c[l>>2]|0)+1|0}c[d>>2]=c[J>>2];c[l>>2]=e;i=K;return}function vj(a){a=a|0;return +(+xp(+g[a+80>>2])*-10.0)}function wj(a){a=a|0;return +(+Jj(c[a+108>>2]|0))}function xj(a){a=a|0;var b=0,d=0;b=a+172|0;if(c[b>>2]|0)return;c[a+176>>2]=qk(2048)|0;c[a+180>>2]=lk(2048)|0;c[a+184>>2]=qk(2048)|0;c[a+188>>2]=Xp(c[a>>2]<<3)|0;d=c[a+20>>2]<<2;c[a+192>>2]=Xp(d)|0;c[a+196>>2]=Xp(d)|0;c[a+208>>2]=lk(2048)|0;c[a+212>>2]=lk(2048)|0;c[a+168>>2]=1;c[b>>2]=1;return}
function yb(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;if((i|0)>=(j|0))ba();return b|0}function zb(){return i|0}function Ab(a){a=a|0;i=a}function Bb(a,b){a=a|0;b=b|0;i=a;j=b}function Cb(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function Db(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Eb(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 Fb(a){a=a|0;C=a}function Gb(){return C|0}function Hb(a){a=a|0;return c[a+120>>2]|0}function Ib(b,d){b=b|0;d=+d;var e=0,f=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();k=n;m=Xp(388)|0;e=m;f=b;h=e+84|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(h|0));switch(c[m+56>>2]|0){case 0:{e=Bc(b)|0;f=b+4|0;h=Rg(c[b>>2]|0,c[f>>2]|0,c[b+8>>2]|0,e,1,m)|0;Xg(h,0);if(a[b+80>>0]|0)ah(h);Zg(h,1);_g(h,1);if(a[b+60>>0]|0){c[k>>2]=c[b+64>>2];c[k+4>>2]=c[b+68>>2];c[k+8>>2]=c[b+72>>2];c[k+12>>2]=c[b+76>>2];Wg(h,k)}l=(c[f>>2]|0)+(c[b>>2]|0)|0;c[m+92>>2]=Xp(l<<3)|0;c[m+96>>2]=l;Yp(e);c[m+84>>2]=h;break}case 1:{e=Vf(1,m)|0;Xf(e,0);if(a[b+80>>0]|0)fg(e);Zf(e,1);_f(e,1);if(a[b+60>>0]|0){c[k>>2]=c[b+64>>2];c[k+4>>2]=c[b+68>>2];c[k+8>>2]=c[b+72>>2];c[k+12>>2]=c[b+76>>2];Wf(e,k)|0}c[m+92>>2]=Xp(2048)|0;c[m+96>>2]=256;c[m+84>>2]=e;break}case 2:{e=rg(1,m)|0;sg(e,0);if(a[b+80>>0]|0)Bg(e);c[m+92>>2]=Xp(2048)|0;c[m+96>>2]=256;c[m+84>>2]=e;break}default:{}}e=pc(b+20|0)|0;f=m+88|0;c[f>>2]=e;c[m+100>>2]=0;h=m+104|0;g[h>>2]=1.0;l=m+112|0;c[l>>2]=0;k=m+108|0;c[k>>2]=0;if(d!=44100.0){d=44100.0/d;c[k>>2]=ve(d,c[b+40>>2]|0,+g[b+44>>2],+g[b+48>>2],c[b+52>>2]|0)|0;g[h>>2]=d;e=c[f>>2]|0}c[l>>2]=Xp(_(c[m+96>>2]<<2,c[e+4>>2]|0)|0)|0;c[m+116>>2]=0;c[m+120>>2]=0;c[m+124>>2]=dc(65536)|0;c[m+132>>2]=0;c[m+128>>2]=0;a[m+384>>0]=0;c[m+316>>2]=0;c[m+348>>2]=0;c[m+320>>2]=0;c[m+352>>2]=0;c[m+324>>2]=0;c[m+356>>2]=0;c[m+328>>2]=0;c[m+360>>2]=0;c[m+332>>2]=0;c[m+364>>2]=0;c[m+336>>2]=0;c[m+368>>2]=0;c[m+340>>2]=0;c[m+372>>2]=0;c[m+344>>2]=0;c[m+376>>2]=0;c[m+136>>2]=0;c[m+140>>2]=0;c[m+148>>2]=0;i=n;return m|0}function Jb(b){b=b|0;var d=0,e=0;a[b+384>>0]=1;d=b+316|0;e=d+68|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));c[b+136>>2]=dc(65536)|0;c[b+140>>2]=0;c[b+144>>2]=0;e=Xp(20)|0;c[b+148>>2]=e;c[e>>2]=0;c[b+152>>2]=0;return}function Kb(b){b=b|0;var d=0,e=0,f=0;a[b+384>>0]=0;d=b+316|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+348>>2]=0}d=b+320|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+352>>2]=0}d=b+324|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+356>>2]=0}d=b+328|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+360>>2]=0}d=b+332|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+364>>2]=0}d=b+336|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+368>>2]=0}d=b+340|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+372>>2]=0}d=b+344|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+376>>2]=0}c[b+380>>2]=0;e=b+136|0;d=c[e>>2]|0;if(d|0){ec(d);c[e>>2]=0}d=b+140|0;e=c[d>>2]|0;if(e|0){Yp(e);c[d>>2]=0;c[b+144>>2]=0}f=b+148|0;d=c[f>>2]|0;if(!d)return;e=c[d>>2]|0;if(e){Yp(e);d=c[f>>2]|0}Yp(d);c[f>>2]=0;c[b+152>>2]=0;return}function Lb(a,b){a=a|0;b=b|0;c[b>>2]=c[a+380>>2];return a+156|0}function Mb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;if((i|0)>=(j|0))ba();f=g;e=a+124|0;lc(c[e>>2]|0);a=jc(c[e>>2]|0,f,4)|0;a:do if(!a)a=0;else{if((a|0)>=0){a=c[f>>2]|0;a=a>>>0<d>>>0?a:d;b=(jc(c[e>>2]|0,b,a)|0)<0;d=c[e>>2]|0;if(b){mc(d);cc(9);a=-1;break}else{kc(d,(c[f>>2]|0)-a|0);mc(c[e>>2]|0);break}}mc(c[e>>2]|0);switch(a|0){case -1:{cc(7);a=-1;break a}case -2:{cc(8);a=-1;break a}default:{cc(9);a=-1;break a}}}while(0);i=g;return a|0}function Nb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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;A=i;i=i+80|0;if((i|0)>=(j|0))ba();z=A+16|0;y=A+8|0;x=A;v=A+24|0;w=A+20|0;if(!b){i=A;return}t=b+88|0;u=_(c[(c[t>>2]|0)+4>>2]|0,c[b+96>>2]|0)|0;if(a[b+384>>0]|0)c[b+380>>2]=0;if(!e){i=A;return}l=b+108|0;m=b+116|0;n=b+112|0;o=b+92|0;p=b+56|0;q=b+84|0;r=b+80|0;s=b+100|0;h=b+84|0;k=0;do{b=c[l>>2]|0;if(!b){b=c[m>>2]|0;f=b+(e-k)|0;f=f>>>0<u>>>0?f:u;gq((c[n>>2]|0)+(b<<2)|0,d+(k<<2)|0,f-b<<2|0)|0;b=f-(c[m>>2]|0)|0}else{f=c[m>>2]|0;xe(b,d+(k<<2)|0,e-k|0,v,(c[n>>2]|0)+(f<<2)|0,u-f|0,w)|0;b=c[v>>2]|0;f=(c[m>>2]|0)+(c[w>>2]|0)|0}k=b+k|0;B=c[t>>2]|0;g=(f>>>0)%((c[B+4>>2]|0)>>>0)|0;b=f-g|0;f=qc(B,c[n>>2]|0,b,c[o>>2]|0)|0;if(g|0){B=c[n>>2]|0;gq(B|0,B+(b<<2)|0,g<<2|0)|0}c[m>>2]=g;switch(c[p>>2]|0){case 0:{$g(c[q>>2]|0,c[o>>2]|0,f);if(a[r>>0]|0){c[x>>2]=c[s>>2];Oo(v,10366,x)|0;bh(c[q>>2]|0,v);c[s>>2]=(c[s>>2]|0)+1}break}case 1:{$f(c[h>>2]|0,c[o>>2]|0,f);if(a[r>>0]|0){c[y>>2]=c[s>>2];Oo(v,10366,y)|0;gg(c[h>>2]|0,v);c[s>>2]=(c[s>>2]|0)+1}break}case 2:{ug(c[h>>2]|0,c[o>>2]|0,f);if(a[r>>0]|0){c[z>>2]=c[s>>2];Oo(v,10366,z)|0;Cg(c[h>>2]|0,v);c[s>>2]=(c[s>>2]|0)+1}break}default:{}}}while(k>>>0<e>>>0);i=A;return}function Ob(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+16|0;if((i|0)>=(j|0))ba();l=m;if(!a){i=m;return}d=c[a+108>>2]|0;if(!d){b=a+116|0;l=0}else{o=c[a+40>>2]|0;k=Zp(o,4)|0;f=a+88|0;n=_(c[(c[f>>2]|0)+4>>2]|0,c[a+96>>2]|0)|0;h=a+112|0;b=a+116|0;e=c[b>>2]|0;xe(d,k,o,m+4|0,(c[h>>2]|0)+(e<<2)|0,n-e|0,l)|0;d=(c[l>>2]|0)+(c[b>>2]|0)|0;c[l>>2]=d;f=c[f>>2]|0;e=(d>>>0)%((c[f+4>>2]|0)>>>0)|0;if(!e)e=0;else{d=d-e|0;c[l>>2]=d}d=qc(f,c[h>>2]|0,d,c[a+92>>2]|0)|0;if(e|0){o=c[h>>2]|0;gq(o|0,o+(c[l>>2]<<2)|0,e<<2|0)|0}c[b>>2]=e;Yp(k);l=d}e=c[b>>2]|0;k=a+88|0;if(!e){h=a+92|0;b=l}else{b=c[k>>2]|0;d=c[b+4>>2]|0;f=a+112|0;if((d|0)==(e|0))d=e;else{eq(c[f>>2]|0,0,d-e<<2|0)|0;d=c[k>>2]|0;b=d;d=c[d+4>>2]|0}o=a+92|0;h=o;b=(qc(b,c[f>>2]|0,d,(c[o>>2]|0)+(l<<3)|0)|0)+l|0}b=(rc(c[k>>2]|0,(c[h>>2]|0)+(b<<3)|0)|0)+b|0;switch(c[a+56>>2]|0){case 0:{$g(c[a+84>>2]|0,c[h>>2]|0,b);i=m;return}case 1:{d=0;e=b;while(1){o=d+e|0;n=c[h>>2]|0;g[n+(o<<3)>>2]=0.0;g[n+(o<<3)+4>>2]=0.0;d=d+1|0;if((d|0)==60)break;else e=e+1|0}$f(c[a+84>>2]|0,c[h>>2]|0,b+60|0);i=m;return}case 2:{ug(c[a+84>>2]|0,c[h>>2]|0,b);i=m;return}default:{i=m;return}}}function Pb(a){a=a|0;var b=0,d=0,e=0;if(!a)return;switch(c[a+56>>2]|0){case 0:{Yg(c[a+84>>2]|0);break}case 1:{Yf(c[a+84>>2]|0);break}case 2:{tg(c[a+84>>2]|0);break}default:{}}b=c[a+108>>2]|0;if(b|0)we(b);b=c[a+112>>2]|0;if(b|0)Yp(b);b=c[a+316>>2]|0;if(b|0)Yp(b);b=c[a+320>>2]|0;if(b|0)Yp(b);b=c[a+324>>2]|0;if(b|0)Yp(b);b=c[a+328>>2]|0;if(b|0)Yp(b);b=c[a+332>>2]|0;if(b|0)Yp(b);b=c[a+336>>2]|0;if(b|0)Yp(b);b=c[a+340>>2]|0;if(b|0)Yp(b);b=c[a+344>>2]|0;if(b|0)Yp(b);ec(c[a+124>>2]|0);b=c[a+136>>2]|0;if(b|0)ec(b);b=c[a+140>>2]|0;if(b|0)Yp(b);d=a+148|0;b=c[d>>2]|0;if(b|0){e=c[b>>2]|0;if(e){Yp(e);b=c[d>>2]|0}Yp(b)}b=c[a+128>>2]|0;if(b|0)Yp(b);sc(c[a+88>>2]|0);Yp(c[a+92>>2]|0);Yp(a);return}function Qb(b,d,e,f,g,h,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+64|0;if((i|0)>=(j|0))ba();o=s+48|0;q=s+44|0;p=s+40|0;r=s;if(!d){f=1;i=s;return f|0}if(!k){f=0;i=s;return f|0}if(a[k+384>>0]|0){l=r;b=h;d=l+40|0;do{c[l>>2]=c[b>>2];l=l+4|0;b=b+4|0}while((l|0)<(d|0));c[o>>2]=g;m=k+380|0;n=c[m>>2]|0;if(n>>>0<8){h=k+316+(n<<2)|0;b=k+348+(n<<2)|0;d=c[r+16>>2]|0;if((c[b>>2]|0)>>>0<d>>>0){c[h>>2]=_p(c[h>>2]|0,d<<3)|0;c[b>>2]=d}if(!d)b=c[h>>2]|0;else{l=c[r+12>>2]|0;b=c[h>>2]|0;h=0;do{c[b+(h<<3)>>2]=c[l+(h<<3)>>2];c[b+(h<<3)+4>>2]=c[l+(h<<3)+4>>2];h=h+1|0}while((h|0)!=(d|0))}c[k+156+(n*20|0)>>2]=b;c[k+156+(n*20|0)+4>>2]=d;c[k+156+(n*20|0)+8>>2]=c[r>>2];c[k+156+(n*20|0)+12>>2]=c[r+4>>2];a[k+156+(n*20|0)+16>>0]=(g|0)!=0&1;c[m>>2]=(c[m>>2]|0)+1}else d=c[r+16>>2]|0;b=d<<3;n=b+20|0;h=k+136|0;nc(c[h>>2]|0);if((gc(c[h>>2]|0,n)|0)==(n|0)){c[q>>2]=b+16;hc(c[h>>2]|0,q,4)|0;c[p>>2]=d;hc(c[h>>2]|0,p,4)|0;hc(c[h>>2]|0,c[r+12>>2]|0,b)|0;hc(c[h>>2]|0,r+4|0,4)|0;hc(c[h>>2]|0,r,4)|0;hc(c[h>>2]|0,o,4)|0;ic(c[h>>2]|0)|0;oc(c[h>>2]|0)}}if(!g){f=k+120|0;c[f>>2]=(c[f>>2]|0)+1;f=1;i=s;return f|0}l=f+4|0;b=k+132|0;h=k+128|0;if(l>>>0>(c[b>>2]|0)>>>0){g=_p(c[h>>2]|0,l)|0;c[h>>2]=g;c[b>>2]=l;d=h;b=g}else{d=h;b=c[h>>2]|0}a[b>>0]=f;a[b+1>>0]=f>>8;a[b+2>>0]=f>>16;a[b+3>>0]=f>>24;fq((c[d>>2]|0)+4|0,e|0,f|0)|0;f=k+124|0;nc(c[f>>2]|0);fc(c[f>>2]|0,c[d>>2]|0,l)|0;oc(c[f>>2]|0);f=0;i=s;return f|0}function Rb(b,d){b=b|0;d=+d;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0;o=i;i=i+32|0;if((i|0)>=(j|0))ba();k=o+16|0;l=o;m=b+20|0;p=+g[b+40>>2];if(p<0.0|p>.5){cc(2);b=0;i=o;return b|0}n=Xp(176)|0;e=n;f=b;h=e+108|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(h|0));switch(c[n+64>>2]|0){case 0:{c[k>>2]=c[b+68>>2];c[k+4>>2]=c[b+72>>2];c[k+8>>2]=c[b+76>>2];c[k+12>>2]=c[b+80>>2];f=Bc(b)|0;h=b+4|0;e=Dg(c[b>>2]|0,c[h>>2]|0,c[b+8>>2]|0,f,k)|0;Fg(e,0);if(a[b+84>>0]|0){c[l>>2]=c[b+88>>2];c[l+4>>2]=c[b+92>>2];c[l+8>>2]=c[b+96>>2];c[l+12>>2]=c[b+100>>2];Eg(e,l)}k=(c[h>>2]|0)+(c[b>>2]|0)|0;c[n+120>>2]=Xp(k<<3)|0;l=n+124|0;c[l>>2]=k;Yp(f);c[n+108>>2]=e;e=l;break}case 1:{c[k>>2]=c[b+68>>2];c[k+4>>2]=c[b+72>>2];c[k+8>>2]=c[b+76>>2];c[k+12>>2]=c[b+80>>2];e=Jf(k)|0;Nf(e,0);if(a[b+84>>0]|0){c[l>>2]=c[b+88>>2];c[l+4>>2]=c[b+92>>2];c[l+8>>2]=c[b+96>>2];c[l+12>>2]=c[b+100>>2];Mf(e,l)|0}c[n+120>>2]=0;l=n+124|0;c[l>>2]=0;c[n+108>>2]=e;c[n+112>>2]=0;e=l;break}case 2:{l=hg()|0;ig(l,0);c[n+120>>2]=0;e=n+124|0;c[e>>2]=0;c[n+108>>2]=l;c[n+112>>2]=2;break}default:e=n+124|0}m=tc(m)|0;f=n+116|0;c[f>>2]=m;e=uc(m,c[e>>2]|0)|0;f=xc(c[f>>2]|0)|0;f=e>>>0>f>>>0?e:f;c[n+132>>2]=f;c[n+128>>2]=Xp(f<<2)|0;f=n+136|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;a[n+152>>0]=1;a[n+153>>0]=0;a[n+154>>0]=0;f=n+156|0;g[f>>2]=1.0;e=n+160|0;c[e>>2]=0;if(d!=44100.0){p=d/44100.0;c[e>>2]=ve(p,c[b+48>>2]|0,+g[b+52>>2],+g[b+56>>2],c[b+60>>2]|0)|0;g[f>>2]=p}c[n+164>>2]=dc(65536)|0;b=c[n+104>>2]|0;c[n+168>>2]=Xp(b+4|0)|0;c[n+172>>2]=Xp(b)|0;b=n;i=o;return b|0}function Sb(a){a=a|0;return c[a+104>>2]|0}function Tb(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0.0,k=0;a[b+154>>0]=1;j=+g[b+156>>2];d=~~(+Z(+(+(d>>>0)/j))+ +Z(+j))>>>0;d=d-(xc(c[b+116>>2]|0)|0)|0;if(c[b+160>>2]|0)d=d-(c[b+48>>2]|0)|0;i=b+104|0;h=(Ub(b,c[i>>2]|0)|0)>>>0>d>>>0;f=c[i>>2]|0;if(!h){b=f;return b|0}e=f>>>1;if(f>>>0>1){h=0;do{k=(Ub(b,e)|0)>>>0>d>>>0;f=k?e:f;h=k?h:e;k=f-h|0;e=(k>>>1)+h|0}while(k>>>0>1);d=e}else d=e;c[i>>2]=d;k=d;return k|0}function Ub(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();d=f;e=Zp(b,1)|0;switch(c[a+64>>2]|0){case 0:{g=a+108|0;Mg(c[g>>2]|0,d,e,b);b=Lg(c[g>>2]|0)|0;b=_(c[a+124>>2]|0,b)|0;Ig(c[g>>2]|0);break}case 1:{g=a+108|0;Sf(c[g>>2]|0,d,e,b);b=Rf(c[g>>2]|0)|0;Of(c[g>>2]|0);break}case 2:{g=a+108|0;ng(c[g>>2]|0,d,e,b,c[a+68>>2]|0,c[a+72>>2]|0,c[a+76>>2]|0);b=mg(c[g>>2]|0)|0;jg(c[g>>2]|0);break}default:b=0}Yp(e);g=uc(c[a+116>>2]|0,b)|0;i=f;return g|0}function Vb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if((c[b+104>>2]|0)>>>0<e>>>0){cc(6);e=-1;return e|0}f=b+168|0;g=c[f>>2]|0;a[g>>0]=e;a[g+1>>0]=e>>8;a[g+2>>0]=e>>16;a[g+3>>0]=e>>24;fq((c[f>>2]|0)+4|0,d|0,e|0)|0;b=b+164|0;nc(c[b>>2]|0);d=fc(c[b>>2]|0,c[f>>2]|0,e+4|0)|0;oc(c[b>>2]|0);if(!d){g=0;return g|0}if((d|0)>=0){g=d+-4|0;return g|0}switch(d|0){case -1:{cc(7);g=-1;return g|0}case -2:{cc(8);g=-1;return g|0}default:{cc(9);g=-1;return g|0}}return 0}function Wb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=i;i=i+16|0;if((i|0)>=(j|0))ba();O=Q+4|0;P=Q;if(!b){b=0;i=Q;return b|0}if(e|0){B=b+136|0;H=b+140|0;I=b+64|0;J=b+154|0;K=b+153|0;L=b+164|0;M=b+172|0;N=b+152|0;r=b+108|0;s=b+108|0;t=b+112|0;u=b+68|0;v=b+72|0;w=b+76|0;x=b+156|0;y=b+116|0;z=b+132|0;A=b+128|0;C=b+120|0;D=b+4|0;E=b+124|0;F=b+160|0;G=b+48|0;h=0;f=0;a:while(1){k=c[B>>2]|0;b:while(1){o=e-f|0;n=(f|0)>0;p=+(o>>>0);c:do if(!k)while(1){c[H>>2]=0;if(h){q=49;break a}switch(c[I>>2]|0){case 0:{k=Kg(c[r>>2]|0)|0;q=15;break}case 1:{k=Qf(c[s>>2]|0)|0;q=15;break}case 2:{k=lg(c[r>>2]|0)|0;q=15;break}default:q=16}if((q|0)==15?(q=0,(k|0)==0):0)q=16;if((q|0)==16){q=0;l=n&(a[J>>0]|0)!=0;if(a[K>>0]|0){o=0;n=l;break b}lc(c[L>>2]|0);k=jc(c[L>>2]|0,O,4)|0;m=c[L>>2]|0;if((k|0)<1){h=m;q=18;break b}jc(m,c[M>>2]|0,c[O>>2]|0)|0;mc(c[L>>2]|0);switch(c[I>>2]|0){case 0:{Mg(c[r>>2]|0,P,c[M>>2]|0,c[O>>2]|0);break}case 1:{Sf(c[s>>2]|0,P,c[M>>2]|0,c[O>>2]|0);c[t>>2]=Rf(c[s>>2]|0)|0;break}case 2:{jg(c[r>>2]|0);ng(c[r>>2]|0,P,c[M>>2]|0,c[O>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0);break}default:{}}a[N>>0]=0;if(l){o=1;n=1;break b}}q=~~+Z(+(p/+g[x>>2]))>>>0;k=vc(c[y>>2]|0,q)|0;k=(((q>>>0)%((c[(c[y>>2]|0)+4>>2]|0)>>>0)|0|0)!=0&1)+k|0;d:do switch(c[I>>2]|0){case 0:{k=(c[D>>2]|0)+(c[b>>2]|0)|0;Ng(c[r>>2]|0,c[C>>2]|0,k)|0;break}case 1:{q=c[t>>2]|0;k=q>>>0<k>>>0?q:k;if(k>>>0>(c[E>>2]|0)>>>0){l=_p(c[C>>2]|0,k<<3)|0;c[C>>2]=l;c[E>>2]=k}else l=c[C>>2]|0;Tf(c[s>>2]|0,l,k)|0;c[t>>2]=(c[t>>2]|0)-k;break}case 2:{q=c[t>>2]|0;l=(k>>>0)%(q>>>0)|0;l=((l|0)==0?0:q-l|0)+k|0;if(l>>>0>(c[E>>2]|0)>>>0){c[C>>2]=_p(c[C>>2]|0,l<<3)|0;c[E>>2]=l}if(!l)k=0;else{k=0;do{if(og(c[r>>2]|0,(c[C>>2]|0)+(k<<3)|0)|0)break d;k=(c[t>>2]|0)+k|0}while(k>>>0<l>>>0)}break}default:k=0}while(0);l=uc(c[y>>2]|0,k)|0;if(l>>>0>(c[z>>2]|0)>>>0){q=_p(c[A>>2]|0,l<<2)|0;c[A>>2]=q;c[z>>2]=l;l=q}else l=c[A>>2]|0;k=wc(c[y>>2]|0,c[C>>2]|0,k,l)|0;c[B>>2]=k;a[N>>0]=0;if(k|0)break c}while(0);l=c[F>>2]|0;if(!l){l=Cc((c[A>>2]|0)+(c[H>>2]<<2)|0,k,d,o)|0;c[H>>2]=(c[H>>2]|0)+l;k=(c[B>>2]|0)-l|0;c[B>>2]=k}else{xe(l,(c[A>>2]|0)+(c[H>>2]<<2)|0,k,O,d,o,P)|0;l=c[P>>2]|0;k=c[O>>2]|0;c[H>>2]=(c[H>>2]|0)+k;k=(c[B>>2]|0)-k|0;c[B>>2]=k}d=d+(l<<2)|0;f=l+f|0;if(f>>>0>=e>>>0){q=48;break a}}if((q|0)==18){q=0;mc(h);if(!k)a[K>>0]=1;o=0;n=l}if(a[N>>0]|0){e=f;break}m=yc(c[y>>2]|0,c[A>>2]|0)|0;c[B>>2]=m;if(c[F>>2]|0){h=c[G>>2]|0;if(!h)h=0;else{k=c[A>>2]|0;l=0;do{g[k+(m+l<<2)>>2]=0.0;l=l+1|0}while(l>>>0<h>>>0)}c[B>>2]=m+h}zc(c[y>>2]|0);a[N>>0]=1;h=n&o;if(f>>>0>=e>>>0){q=48;break}}if((q|0)==48)if(h)q=49;else e=f;if((q|0)==49)if((f|0)!=(e|0))eq(d|0,0,e-f<<2|0)|0;if(e|0){b=e;i=Q;return b|0}}if(a[b+153>>0]|0){b=0;i=Q;return b|0}cc(7);b=-1;i=Q;return b|0}function Xb(a){a=a|0;var b=0;if(!a)return;switch(c[a+64>>2]|0){case 0:{Jg(c[a+108>>2]|0);break}case 1:{Pf(c[a+108>>2]|0);break}case 2:{kg(c[a+108>>2]|0);break}default:{}}b=c[a+160>>2]|0;if(b|0)we(b);Ac(c[a+116>>2]|0);Yp(c[a+120>>2]|0);Yp(c[a+128>>2]|0);ec(c[a+164>>2]|0);Yp(c[a+168>>2]|0);Yp(c[a+172>>2]|0);Yp(a);return}function Yb(b,d){b=b|0;d=d|0;var e=0.0,f=0,h=0,i=0,j=0;f=im(b,d)|0;if(!f){cc(4);i=0;return i|0}i=Zp(1,108)|0;if(!i){cc(1);i=0;return i|0}d=im(f,10383)|0;if(d|0)c[i+68>>2]=Dc(om(d)|0)|0;d=im(f,10399)|0;if(d|0)c[i+72>>2]=Jc(om(d)|0)|0;d=im(f,10416)|0;if(d|0)c[i+76>>2]=Jc(om(d)|0)|0;d=im(f,10433)|0;do if(d|0){d=om(d)|0;b=i+64|0;if(!(dp(d,10444)|0)){c[b>>2]=2;break}else{c[b>>2]=1;c[i+80>>2]=Si(d)|0;break}}while(0);b=im(f,10449)|0;if(b|0){a[i+84>>0]=1;d=im(b,10383)|0;if(d|0)c[i+88>>2]=Dc(om(d)|0)|0;d=im(b,10399)|0;if(d|0)c[i+92>>2]=Jc(om(d)|0)|0;d=im(b,10416)|0;if(d|0)c[i+96>>2]=Jc(om(d)|0)|0;d=im(b,10433)|0;if(d|0)c[i+100>>2]=Si(om(d)|0)|0}d=im(f,10456)|0;if(d|0){b=qm(d)|0;c[i+104>>2]=b}b=im(f,10469)|0;if(b|0){d=i+64|0;if((c[d>>2]|0)==2){Yp(i);cc(5);i=0;return i|0}c[d>>2]=0;d=im(b,10474)|0;if(d|0){d=qm(d)|0;c[i>>2]=d}d=im(b,10490)|0;if(d|0){d=qm(d)|0;c[i+4>>2]=d}d=im(b,10511)|0;if(d|0){d=qm(d)|0;c[i+8>>2]=d}d=im(b,10524)|0;if(d|0){d=qm(d)|0;c[i+12>>2]=d}d=im(b,10534)|0;if(d|0){b=qm(d)|0;c[i+16>>2]=b}}d=im(f,10545)|0;do if(d|0){b=im(d,10556)|0;if(b|0)g[i+36>>2]=+sm(b)/44100.0*3.141592653589793*2.0;d=im(d,10573)|0;if(d|0){e=+sm(d);if(!(e<0.0|e>.5)){g[i+40>>2]=e;break}Yp(i);cc(5);i=0;return i|0}}while(0);b=im(f,10578)|0;if(b){d=im(b,10592)|0;if(!d)c[i+20>>2]=1;else{d=om(d)|0;j=(dp(d,10444)|0)==0;c[i+20>>2]=_e(j?22050:d)|0}d=im(b,10598)|0;if(d|0){j=qm(d)|0;c[i+24>>2]=j}d=im(b,10617)|0;if(d|0){j=qm(d)|0;c[i+28>>2]=j}d=im(b,10630)|0;if(d|0)g[i+32>>2]=+sm(d)}else c[i+24>>2]=1;d=im(f,10647)|0;if(d|0?(h=im(d,10663)|0,h|0):0)g[i+44>>2]=+sm(h);b=im(f,10679)|0;if(!b){j=i;return j|0}d=im(b,10689)|0;if(d|0){j=qm(d)|0;c[i+48>>2]=j}d=im(b,10695)|0;if(d|0)g[i+52>>2]=+sm(d);d=im(b,10705)|0;if(d|0)g[i+56>>2]=+sm(d);d=im(b,10717)|0;if(!d){j=i;return j|0}c[i+60>>2]=~~+sm(d)>>>0;j=i;return j|0}function Zb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+256|0;if((i|0)>=(j|0))ba();e=Pl(a,0,f)|0;if(e){a=Yb(e,b)|0;b=e+4|0;d=c[b>>2]|0;if((d|0)!=-1?(d=d+-1|0,c[b>>2]=d,(d|0)==0):0)km(e)}else{cc(3);a=0}i=f;return a|0}function _b(b,d){b=b|0;d=d|0;var e=0,f=0,h=0;f=im(b,d)|0;if(!f){cc(4);h=0;return h|0}h=Zp(1,84)|0;if(!h){cc(1);h=0;return h|0}d=im(f,10433)|0;if(d|0){b=(dp(om(d)|0,10444)|0)==0;c[h+56>>2]=b?2:1}b=im(f,10449)|0;if(b|0){a[h+60>>0]=1;d=im(b,10383)|0;if(d|0)c[h+64>>2]=Dc(om(d)|0)|0;d=im(b,10399)|0;if(d|0)c[h+68>>2]=Jc(om(d)|0)|0;d=im(b,10416)|0;if(d|0)c[h+72>>2]=Jc(om(d)|0)|0;d=im(b,10433)|0;if(d|0)c[h+76>>2]=Si(om(d)|0)|0}b=im(f,10469)|0;if(b|0){d=h+56|0;if((c[d>>2]|0)==2){Yp(h);cc(5);h=0;return h|0}c[d>>2]=0;d=im(b,10474)|0;if(d|0){d=qm(d)|0;c[h>>2]=d}d=im(b,10490)|0;if(d|0){d=qm(d)|0;c[h+4>>2]=d}d=im(b,10511)|0;if(d|0){d=qm(d)|0;c[h+8>>2]=d}d=im(b,10524)|0;if(d|0){d=qm(d)|0;c[h+12>>2]=d}d=im(b,10534)|0;if(d|0){b=qm(d)|0;c[h+16>>2]=b}}d=im(f,10545)|0;if(d|0?(e=im(d,10556)|0,e|0):0)g[h+36>>2]=+sm(e)/44100.0*3.141592653589793*2.0;b=im(f,10578)|0;if(b){d=im(b,10592)|0;if(!d)c[h+20>>2]=1;else{e=om(d)|0;d=(dp(e,10444)|0)==0;c[h+20>>2]=_e(d?22057:e)|0}d=im(b,10598)|0;if(d|0){e=qm(d)|0;c[h+24>>2]=e}d=im(b,10617)|0;if(d|0){e=qm(d)|0;c[h+28>>2]=e}d=im(b,10630)|0;if(d|0)g[h+32>>2]=+sm(d)}else c[h+24>>2]=1;b=im(f,10679)|0;if(!b)return h|0;d=im(b,10689)|0;if(d|0){f=qm(d)|0;c[h+40>>2]=f}d=im(b,10695)|0;if(d|0)g[h+44>>2]=+sm(d);d=im(b,10705)|0;if(d|0)g[h+48>>2]=+sm(d);d=im(b,10717)|0;if(!d)return h|0;c[h+52>>2]=~~+sm(d)>>>0;return h|0}function $b(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+256|0;if((i|0)>=(j|0))ba();e=Pl(a,0,f)|0;if(e){a=_b(e,b)|0;b=e+4|0;d=c[b>>2]|0;if((d|0)!=-1?(d=d+-1|0,c[b>>2]=d,(d|0)==0):0)km(e)}else{cc(3);a=0}i=f;return a|0}function ac(){Aa(45076,2)|0;return}function bc(a){a=a|0;Yp(a);return}function cc(a){a=a|0;var b=0;Va(45072,1)|0;b=Pa(c[11269]|0)|0;if(b|0){c[b>>2]=a;return}b=Xp(4)|0;Za(c[11269]|0,b|0)|0;c[b>>2]=a;return}function dc(b){b=b|0;var d=0;d=Xp(68)|0;c[d>>2]=b;b=Xp(b)|0;c[d+4>>2]=b;c[d+8>>2]=b;c[d+12>>2]=b;jb(d+16|0,0)|0;b=Xp(60)|0;a[b>>0]=0;Ia(b+12|0,0)|0;c[d+56>>2]=b;b=Xp(60)|0;a[b>>0]=0;Ia(b+12|0,0)|0;c[d+60>>2]=b;a[d+64>>0]=0;a[d+52>>0]=0;c[d+44>>2]=0;return d|0}function ec(a){a=a|0;Ja((c[a+56>>2]|0)+12|0)|0;Ja((c[a+60>>2]|0)+12|0)|0;Ta(a+16|0)|0;Yp(c[a+4>>2]|0);Yp(a);return}function fc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+16|0;if((i|0)>=(j|0))ba();r=t;q=b+60|0;f=c[q>>2]|0;h=(a[f>>0]|0)!=0;do if(h){g=f+4|0;f=f+8|0;if((c[g>>2]|0)==0?(c[f>>2]|0)==0:0){n=0;o=0;break}hb(r|0,0)|0;o=((c[r+4>>2]|0)*1e3|0)+(c[f>>2]|0)|0;s=(o|0)>1e9;n=(c[r>>2]|0)+(c[g>>2]|0)+(s&1)|0;o=s?o+-1e9|0:o}else{n=0;o=0}while(0);if(a[b+52>>0]|0){d=-3;i=t;return d|0}l=b+64|0;p=b+8|0;s=b+12|0;m=b+16|0;k=r+4|0;a:do if(!h){if(a[l>>0]|0){d=0;i=t;return d|0}h=c[s>>2]|0;f=c[p>>2]|0;if(f>>>0<h>>>0)f=f+(c[b>>2]|0)|0;g=h;if((f|0)==(h|0))f=c[b>>2]|0;else f=f-g|0;if((f+-1|0)>>>0<e>>>0){d=-1;i=t;return d|0}else f=g}else{b:do if(!(n|o)){while(1){if(a[l>>0]|0){f=0;break}h=c[s>>2]|0;f=c[p>>2]|0;if(f>>>0<h>>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g|0)==(h|0))g=c[b>>2]|0;else g=g-f|0;if((g+-1|0)>>>0>=e>>>0)break a;g=c[q>>2]|0;c[r>>2]=n;c[k>>2]=o;g=g+12|0;do f=za(g|0,m|0)|0;while((f|0)==4);if(f|0)break b}i=t;return f|0}else{while(1){if(a[l>>0]|0){f=0;break}h=c[s>>2]|0;f=c[p>>2]|0;if(f>>>0<h>>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g|0)==(h|0))g=c[b>>2]|0;else g=g-f|0;if((g+-1|0)>>>0>=e>>>0)break a;g=c[q>>2]|0;c[r>>2]=n;c[k>>2]=o;g=g+12|0;do f=bb(g|0,m|0,r|0)|0;while((f|0)==4);if(f|0)break b}i=t;return f|0}while(0);d=(c[(eo()|0)>>2]|0)==110;d=d?-2:-5;i=t;return d|0}while(0);g=b+4|0;q=c[b>>2]|0;r=(c[g>>2]|0)+q|0;f=(r>>>0<h>>>0?r+q|0:r)-f|0;f=f>>>0>e>>>0?e:f;fq(h|0,d|0,f|0)|0;if(f>>>0<e>>>0)fq(c[g>>2]|0,d+f|0,e-f|0)|0;r=h+e|0;d=c[b>>2]|0;c[s>>2]=r>>>0<((c[g>>2]|0)+d|0)>>>0?r:r+(0-d)|0;Ra((c[b+56>>2]|0)+12|0)|0;d=e;i=t;return d|0}function gc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+16|0;if((i|0)>=(j|0))ba();r=t;q=b+60|0;e=c[q>>2]|0;g=(a[e>>0]|0)!=0;do if(g){f=e+4|0;e=e+8|0;if((c[f>>2]|0)==0?(c[e>>2]|0)==0:0){n=0;o=0;break}hb(r|0,0)|0;o=((c[r+4>>2]|0)*1e3|0)+(c[e>>2]|0)|0;s=(o|0)>1e9;n=(c[r>>2]|0)+(c[f>>2]|0)+(s&1)|0;o=s?o+-1e9|0:o}else{n=0;o=0}while(0);s=b+52|0;if(a[s>>0]|0){b=-3;i=t;return b|0}k=b+64|0;p=b+8|0;l=b+12|0;m=b+16|0;h=r+4|0;a:do if(!g){if(a[k>>0]|0){b=0;i=t;return b|0}g=c[l>>2]|0;f=c[p>>2]|0;e=g;if(f>>>0<g>>>0)f=f+(c[b>>2]|0)|0;if((f|0)==(g|0))f=c[b>>2]|0;else f=f-e|0;if((f+-1|0)>>>0<d>>>0){b=-1;i=t;return b|0}}else{b:do if(!(n|o)){while(1){if(a[k>>0]|0){e=0;break}g=c[l>>2]|0;f=c[p>>2]|0;e=g;if(f>>>0<g>>>0)f=f+(c[b>>2]|0)|0;if((f|0)==(g|0))f=c[b>>2]|0;else f=f-e|0;if((f+-1|0)>>>0>=d>>>0)break a;f=c[q>>2]|0;c[r>>2]=n;c[h>>2]=o;f=f+12|0;do e=za(f|0,m|0)|0;while((e|0)==4);if(e|0)break b}i=t;return e|0}else{while(1){if(a[k>>0]|0){e=0;break}g=c[l>>2]|0;f=c[p>>2]|0;e=g;if(f>>>0<g>>>0)f=f+(c[b>>2]|0)|0;if((f|0)==(g|0))f=c[b>>2]|0;else f=f-e|0;if((f+-1|0)>>>0>=d>>>0)break a;f=c[q>>2]|0;c[r>>2]=n;c[h>>2]=o;f=f+12|0;do e=bb(f|0,m|0,r|0)|0;while((e|0)==4);if(e|0)break b}i=t;return e|0}while(0);b=(c[(eo()|0)>>2]|0)==110;b=b?-2:-5;i=t;return b|0}while(0);c[b+44>>2]=d;c[b+48>>2]=e;a[s>>0]=1;b=d;i=t;return b|0}function hc(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;if(a[b+64>>0]|0){d=0;return d|0}g=b+44|0;if((c[g>>2]|0)>>>0<e>>>0){d=-4;return d|0}h=b+48|0;j=c[h>>2]|0;i=b+4|0;k=c[b>>2]|0;f=(c[i>>2]|0)+k|0;f=(f>>>0<j>>>0?f+k|0:f)-j|0;f=f>>>0>e>>>0?e:f;fq(j|0,d|0,f|0)|0;if(f>>>0<e>>>0)fq(c[i>>2]|0,d+f|0,e-f|0)|0;j=(c[h>>2]|0)+e|0;k=c[b>>2]|0;c[h>>2]=j>>>0<((c[i>>2]|0)+k|0)>>>0?j:j+(0-k)|0;c[g>>2]=(c[g>>2]|0)-e;k=e;return k|0}function ic(b){b=b|0;var d=0;if(a[b+64>>0]|0){b=0;return b|0}d=b+52|0;if(!(a[d>>0]|0)){b=-4;return b|0}if(c[b+44>>2]|0){b=-4;return b|0}c[b+12>>2]=c[b+48>>2];a[d>>0]=0;Ra((c[b+56>>2]|0)+12|0)|0;b=0;return b|0}function jc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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;x=i;i=i+16|0;if((i|0)>=(j|0))ba();t=x;s=b+56|0;f=c[s>>2]|0;h=(a[f>>0]|0)!=0;do if(h){g=f+4|0;f=f+8|0;if((c[g>>2]|0)==0?(c[f>>2]|0)==0:0){o=0;p=0;break}hb(t|0,0)|0;p=((c[t+4>>2]|0)*1e3|0)+(c[f>>2]|0)|0;w=(p|0)>1e9;o=(c[t>>2]|0)+(c[g>>2]|0)+(w&1)|0;p=w?p+-1e9|0:p}else{o=0;p=0}while(0);w=b+8|0;q=b+12|0;v=b+64|0;n=b+16|0;m=t+4|0;a:do if(h)if(!(o|p)){b:while(1){h=c[w>>2]|0;f=c[q>>2]|0;if(f>>>0<h>>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g-f|0)>>>0>=e>>>0)break a;f=(a[v>>0]|0)!=0;if(f){k=(f^1)<<31>>31;break}g=c[s>>2]|0;c[t>>2]=o;c[m>>2]=p;g=g+12|0;do f=za(g|0,n|0)|0;while((f|0)==4);switch(f|0){case 0:break;case 110:{k=-2;break b}default:{r=-5;u=30;break b}}}if((u|0)==30){i=x;return r|0}d=k;i=x;return d|0}else{c:while(1){h=c[w>>2]|0;f=c[q>>2]|0;if(f>>>0<h>>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g-f|0)>>>0>=e>>>0)break a;f=(a[v>>0]|0)!=0;if(f){l=(f^1)<<31>>31;break}g=c[s>>2]|0;c[t>>2]=o;c[m>>2]=p;g=g+12|0;do f=bb(g|0,n|0,t|0)|0;while((f|0)==4);switch(f|0){case 0:break;case 110:{l=-2;break c}default:{r=-5;u=30;break c}}}if((u|0)==30){i=x;return r|0}d=l;i=x;return d|0}else{h=c[w>>2]|0;f=c[q>>2]|0;if(f>>>0<h>>>0)g=f+(c[b>>2]|0)|0;else g=f;f=h;if((g-f|0)>>>0<e>>>0){d=(a[v>>0]|0)+-1<<24>>24<<24>>24;i=x;return d|0}}while(0);g=b+4|0;u=c[b>>2]|0;v=(c[g>>2]|0)+u|0;f=(v>>>0<h>>>0?v+u|0:v)-f|0;f=f>>>0>e>>>0?e:f;fq(d|0,h|0,f|0)|0;if(f>>>0<e>>>0)fq(d+f|0,c[g>>2]|0,e-f|0)|0;v=h+e|0;d=c[b>>2]|0;c[w>>2]=v>>>0<((c[g>>2]|0)+d|0)>>>0?v:v+(0-d)|0;Ra((c[b+60>>2]|0)+12|0)|0;d=e;i=x;return d|0}function kc(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+8|0;e=(c[d>>2]|0)+b|0;b=c[a>>2]|0;c[d>>2]=e>>>0<((c[a+4>>2]|0)+b|0)>>>0?e:e+(0-b)|0;return}function lc(a){a=a|0;gb(a+16|0)|0;return}function mc(a){a=a|0;Ua(a+16|0)|0;return}function nc(a){a=a|0;gb(a+16|0)|0;return}function oc(a){a=a|0;Ua(a+16|0)|0;return}function pc(a){a=a|0;var b=0,d=0;if(!a){a=0;return a|0}b=Xp(28)|0;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];d=zj(0)|0;c[b+20>>2]=d;Hj(d,0.0);Fj(d,+g[a+16>>2]);d=c[a+4>>2]|0;if(d>>>0>1){c[b+24>>2]=ze(c[a>>2]|0,d,c[a+8>>2]|0,+g[a+12>>2],0.0)|0;a=b;return a|0}else{c[b+4>>2]=1;c[b+8>>2]=0;c[b+24>>2]=0;a=b;return a|0}return 0}function qc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=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;w=i;i=i+32|0;if((i|0)>=(j|0))ba();q=w+16|0;r=w+8|0;s=w;if(!a){v=0;i=w;return v|0}t=a+4|0;f=c[t>>2]|0;if((d>>>0)%(f>>>0)|0|0){v=0;i=w;return v|0}v=Wa()|0;u=i;i=i+((1*(f<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!d)f=0;else{n=a+24|0;o=u+4|0;p=s+4|0;k=a+20|0;l=r+4|0;a=c[t>>2]|0;m=0;f=0;do{if(!a)a=0;else{h=0;do{a=c[k>>2]|0;c[r>>2]=c[b+(h+m<<2)>>2];g[l>>2]=0.0;c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];Mj(a,q,u+(h<<3)|0);Ij(c[k>>2]|0);h=h+1|0;a=c[t>>2]|0}while(h>>>0<a>>>0)}h=c[n>>2]|0;if(!h){h=c[o>>2]|0;c[e+(m<<3)>>2]=c[u>>2];c[e+(m<<3)+4>>2]=h}else{Be(h,u,e+(((m>>>0)/(a>>>0)|0)<<3)|0);a=c[t>>2]|0;h=(m>>>0)/(a>>>0)|0;x=e+(h<<3)|0;h=e+(h<<3)+4|0;_n(s,+g[x>>2],+g[h>>2],+(a>>>0),0.0);a=c[p>>2]|0;c[x>>2]=c[s>>2];c[h>>2]=a}f=f+1|0;a=c[t>>2]|0;m=a+m|0}while(m>>>0<d>>>0)}Ga(v|0);x=f;i=w;return x|0}function rc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0;k=i;if(!a){b=0;i=k;return b|0}d=c[a+4>>2]|0;e=c[a+8>>2]|0;f=_(e<<1,d)|0;g=Wa()|0;h=i;i=i+((1*(f<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(f|0)eq(h|0,0,(_(e,d)|0)<<3|0)|0;b=qc(a,h,f,b)|0;Ga(g|0);i=k;return b|0}function sc(a){a=a|0;var b=0;if(!a)return;Ej(c[a+20>>2]|0);b=c[a+24>>2]|0;if(b|0)Ae(b);Yp(a);return}function tc(a){a=a|0;var b=0.0,d=0,e=0;e=Xp(40)|0;c[e>>2]=c[a>>2];c[e+4>>2]=c[a+4>>2];c[e+8>>2]=c[a+8>>2];c[e+12>>2]=c[a+12>>2];c[e+16>>2]=c[a+16>>2];c[e+20>>2]=c[a+20>>2];c[e+24>>2]=c[a+24>>2];d=zj(0)|0;c[e+28>>2]=d;Hj(d,0.0);Fj(d,+g[a+16>>2]);d=c[a+4>>2]|0;if(d>>>0>1)c[e+32>>2]=Ee(c[a>>2]|0,d,c[a+8>>2]|0,+g[a+12>>2],0.0)|0;else{c[e+4>>2]=1;c[e+8>>2]=0;c[e+32>>2]=0}b=+g[a+24>>2];if(b!=0.0){c[e+36>>2]=Ve(b)|0;return e|0}else{c[e+36>>2]=0;return e|0}return 0}function uc(a,b){a=a|0;b=b|0;if(!a){b=0;return b|0}b=_(c[a+4>>2]|0,b)|0;return b|0}function vc(a,b){a=a|0;b=b|0;if(!a){b=0;return b|0}b=(b>>>0)/((c[a+4>>2]|0)>>>0)|0;return b|0}function wc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=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;D=i;i=i+48|0;if((i|0)>=(j|0))ba();p=D+32|0;q=D+24|0;B=D+8|0;r=D+16|0;x=D;if(!a){C=0;i=D;return C|0}y=a+4|0;A=c[y>>2]|0;C=Wa()|0;z=i;i=i+((1*(A<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!d)a=0;else{A=a+32|0;s=z+4|0;t=q+4|0;u=a+28|0;v=r+4|0;w=a+36|0;l=a+20|0;m=B+4|0;n=x+4|0;o=0;a=0;do{f=c[A>>2]|0;h=c[b+(o<<3)>>2]|0;k=c[b+(o<<3)+4>>2]|0;if(!f){c[z>>2]=h;c[s>>2]=k}else{c[q>>2]=h;c[t>>2]=k;c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];Je(f,p,z)}if(c[y>>2]|0){h=0;do{f=c[u>>2]|0;k=c[z+(h<<3)+4>>2]|0;c[r>>2]=c[z+(h<<3)>>2];c[v>>2]=k;c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];Lj(f,p,B);f=c[w>>2]|0;if(f|0){k=c[m>>2]|0;c[x>>2]=c[B>>2];c[n>>2]=k;c[p>>2]=c[x>>2];c[p+4>>2]=c[x+4>>2];Te(f,p,B)}g[e+((_(c[y>>2]|0,o)|0)+h<<2)>>2]=+g[B>>2]*+g[l>>2];a=a+1|0;Ij(c[u>>2]|0);h=h+1|0}while(h>>>0<(c[y>>2]|0)>>>0)}o=o+1|0}while((o|0)!=(d|0))}Ga(C|0);C=a;i=D;return C|0}function xc(a){a=a|0;if(!a){a=0;return a|0}a=_(c[a+4>>2]<<1,c[a+8>>2]|0)|0;return a|0}function yc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0;k=i;if(!a){b=0;i=k;return b|0}d=c[a+8>>2]|0;if(!d){b=0;i=k;return b|0}d=d<<1;e=Wa()|0;f=i;i=i+((1*(d<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(d|0){h=0;do{g[f+(h<<3)>>2]=0.0;g[f+(h<<3)+4>>2]=0.0;h=h+1|0}while((h|0)!=(d|0))}b=wc(a,f,d,b)|0;Ga(e|0);i=k;return b|0}function zc(a){a=a|0;var b=0;b=c[a+32>>2]|0;if(b|0)He(b);b=c[a+36>>2]|0;if(!b)return;Se(b);return}function Ac(a){a=a|0;var b=0;if(!a)return;Ej(c[a+28>>2]|0);b=c[a+32>>2]|0;if(b|0)Fe(b);b=c[a+36>>2]|0;if(b|0)Re(b);Yp(a);return}function Bc(b){b=b|0;var d=0,e=0,f=0,g=0;e=c[b>>2]|0;g=Xp(e)|0;_i(e,g);e=(c[b>>2]|0)>>>1;d=e;while(1)if(!(a[g+d>>0]|0))d=d+-1|0;else break;while(1){f=g+e|0;if(!(a[f>>0]|0))e=e+1|0;else break}e=c[b+16>>2]|0;if(e|0){e=e>>>0>1?e:1;eq(g+(d+1-e)|0,0,e|0)|0}d=c[b+12>>2]|0;if(!d)return g|0;eq(f|0,0,(d>>>0>1?d:1)|0)|0;return g|0}function Cc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=d>>>0<b>>>0?d:b;gq(c|0,a|0,b<<2|0)|0;return b|0}function Dc(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();b=d;if(dp(a,c[2]|0)|0)if(dp(a,c[4]|0)|0)if(dp(a,c[6]|0)|0)if(dp(a,c[8]|0)|0)if(dp(a,c[10]|0)|0)if(dp(a,c[12]|0)|0)if(!(dp(a,c[14]|0)|0))a=6;else{e=c[2348]|0;c[b>>2]=a;Kp(e,10834,b)|0;a=0}else a=5;else a=4;else a=3;else a=2;else a=1;else a=0;i=d;return a|0}function Ec(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();d=e;switch(a|0){case 1:case 0:{b=0;break}case 2:{b=1;break}case 3:{b=1;break}case 4:{b=2;break}case 5:{b=3;break}case 6:{b=4;break}default:{f=c[2348]|0;c[d>>2]=a;Kp(f,10905,d)|0;kb(1)}}i=e;return b|0}function Fc(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h;switch(a|0){case 0:{Qp(10962,71,1,c[2348]|0)|0;kb(-1);break}case 2:{if(!e){e=0;i=h;return e|0}else{f=0;a=0}do{a=(d[b+f>>0]|0)+a|0;f=f+1|0}while((f|0)!=(e|0));e=(a^255)+1&255;i=h;return e|0}case 3:{f=d[40210]|0;if(!e){e=0;i=h;return e|0}else{g=0;a=-1}do{a=(d[b+g>>0]|0)^a;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;g=g+1|0}while((g|0)!=(e|0));e=a&255^255;i=h;return e|0}case 4:{e=Gc(b,e)|0;i=h;return e|0}case 5:{e=Hc(b,e)|0;i=h;return e|0}case 6:{f=Zj(79764919)|0;if(!e){e=0;i=h;return e|0}else{g=0;a=-1}do{a=(d[b+g>>0]|0)^a;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;a=f&0-(a&1)^a>>>1;g=g+1|0}while((g|0)!=(e|0));e=~a;i=h;return e|0}case 1:{e=0;i=h;return e|0}default:{h=c[2348]|0;c[f>>2]=a;Kp(h,11034,f)|0;kb(1)}}return 0}function Gc(a,b){a=a|0;b=b|0;var c=0,e=0,f=0;e=Xj(32773)|0;if(!b){f=0;return f|0}else{f=0;c=-1}do{c=(d[a+f>>0]|0)^c;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;f=f+1|0}while((f|0)!=(b|0));f=c&65535^65535;return f|0}function Hc(a,b){a=a|0;b=b|0;var c=0,e=0,f=0;e=Yj(6122955)|0;if(!b){f=0;return f|0}else{f=0;c=-1}do{c=(d[a+f>>0]|0)^c;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;c=e&0-(c&1)^c>>>1;f=f+1|0}while((f|0)!=(b|0));f=c&16777215^16777215;return f|0}function Ic(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;switch(a|0){case 0:{Qp(11093,71,1,c[2348]|0)|0;kb(-1);break}case 1:{a=1;return a|0}default:{a=(Fc(a,b,d)|0)==(e|0)&1;return a|0}}return 0}function Jc(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();d=f;b=0;do{if(!(dp(a,c[64+(b<<3)>>2]|0)|0)){e=5;break}b=b+1|0}while(b>>>0<28);if((e|0)==5){i=f;return b|0}e=c[2348]|0;c[d>>2]=a;Kp(e,11990,d)|0;e=0;i=f;return e|0}function Kc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;if((i|0)>=(j|0))ba();f=g;d=g+16|0;e=g+8|0;do switch(a|0){case 1:{f=b;i=g;return f|0}case 2:{f=b*3|0;i=g;return f|0}case 3:{f=b*5|0;i=g;return f|0}case 4:{f=(b<<1&1073741822)*7|0;f=((f&6|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 5:{f=b<<1&536870910;i=g;return f|0}case 6:{f=(b&536870911)*12|0;f=(f>>>2&1)+(f>>>3)|0;i=g;return f|0}case 7:{f=b<<3;f=(((((f>>>0)%12|0|0)!=0&1)+((f>>>0)/12|0)|0)*24|0)>>>3;i=g;return f|0}case 8:{f=(b>>>1)+b+(b&1)|0;i=g;return f|0}case 9:{f=(b>>>2)+b+((b&3|0)!=0&1)|0;i=g;return f|0}case 10:{f=(b>>>3)+b+((b&7|0)!=0&1)|0;i=g;return f|0}case 11:{f=(b<<1)+2|0;i=g;return f|0}case 12:{f=(b<<1)+2|0;i=g;return f|0}case 13:{f=(b*3|0)+3|0;i=g;return f|0}case 14:{f=(b*6|0)+11|0;i=g;return f|0}case 15:{f=(((b<<2&2147483644|3)+(b<<3|6)|0)>>>3)+1|0;i=g;return f|0}case 16:{f=b<<3|6;f=(((f+2|0)>>>0)/3|0)+f|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 17:{f=b<<3|6;f=((f+3|0)>>>2)+f|0;f=((f&6|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 18:{f=b<<3|6;f=(((f+4|0)>>>0)/5|0)+f|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 19:{f=b<<3|6;f=(((f+5|0)>>>0)/6|0)+f|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 20:{f=b<<3|6;f=(((f+6|0)>>>0)/7|0)+f|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 21:{f=b<<3;f=f+8+((f+9|0)>>>1)|0;f=(f>>>2&1)+(f>>>3)|0;i=g;return f|0}case 22:{f=b<<3;f=f+8+(((f+10|0)>>>0)/3|0)|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 23:{f=b<<3;f=f+8+((f+11|0)>>>2)|0;f=((f&6|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 24:{f=b<<3;f=f+8+(((f+12|0)>>>0)/5|0)|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 25:{f=b<<3;f=f+8+(((f+13|0)>>>0)/6|0)|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 26:{f=b<<3;f=f+8+(((f+14|0)>>>0)/7|0)|0;f=((f&7|0)!=0&1)+(f>>>3)|0;i=g;return f|0}case 27:{if(!b){Qp(12061,69,1,c[2348]|0)|0;kb(1)}Vp(d,b,223);f=((c[d+4>>2]|0)!=0&1)+(c[d>>2]|0)|0;Vp(e,b,f);f=_((c[e>>2]|0)+32+((c[e+4>>2]|0)!=0&1)|0,f)|0;i=g;return f|0}case 0:{f=0;i=g;return f|0}default:{c[f>>2]=a;Rp(12131,f)|0;kb(-1)}}while(0);return 0}function Lc(a,b,d){a=a|0;b=b|0;d=d|0;if(!b){Qp(12196,61,1,c[2348]|0)|0;kb(1)}if(d>>>0<b>>>0){Qp(12258,76,1,c[2348]|0)|0;kb(1)}else{a=a<<3;b=_((((a>>>0)%(b>>>0)|0|0)!=0&1)+((a>>>0)/(b>>>0)|0)|0,d)|0;return ((b&7|0)!=0&1)+(b>>>3)|0}return 0}function Mc(a){a=a|0;var b=0.0,d=0,e=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();d=e;do switch(a|0){case 0:{b=0.0;break}case 1:{b=1.0;break}case 2:{b=.3333333432674408;break}case 3:{b=.20000000298023224;break}case 4:{b=.5714285969734192;break}case 5:{b=.5;break}case 6:{b=.6666666865348816;break}case 7:{b=.5;break}case 8:{b=.6666666865348816;break}case 9:{b=.800000011920929;break}case 10:{b=.8888888955116272;break}case 11:{b=.5;break}case 12:{b=.5;break}case 13:{b=.3333333432674408;break}case 14:{b=.1666666716337204;break}case 15:{b=.6666666865348816;break}case 16:{b=.75;break}case 17:{b=.800000011920929;break}case 18:{b=.8333333134651184;break}case 19:{b=.8571428656578064;break}case 20:{b=.875;break}case 21:{b=.6666666865348816;break}case 22:{b=.75;break}case 23:{b=.800000011920929;break}case 24:{b=.8333333134651184;break}case 25:{b=.8571428656578064;break}case 26:{b=.875;break}case 27:{b=.8745098114013672;break}default:{c[d>>2]=a;Rp(12335,d)|0;kb(-1)}}while(0);i=e;return +b}function Nc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();e=f;do switch(a|0){case 0:{Sp(12390)|0;kb(-1);break}case 1:{d=Ad(0)|0;break}case 2:{d=Ed(b)|0;break}case 3:{d=Jd(b)|0;break}case 4:{d=hd(b)|0;break}case 5:{d=nd(b)|0;break}case 6:{d=ud(b)|0;break}case 7:{d=dd(b)|0;break}case 8:{d=Vd(b)|0;break}case 9:{d=_d(b)|0;break}case 10:{d=fe(b)|0;break}case 14:case 13:case 12:case 11:{d=Sc(a)|0;break}case 26:case 25:case 24:case 23:case 22:case 21:case 20:case 19:case 18:case 17:case 16:case 15:{d=Zc(a)|0;break}case 27:{d=Od(27)|0;break}default:{c[e>>2]=a;Rp(12454,e)|0;kb(-1)}}while(0);i=f;return d|0}function Oc(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();d=e;b=c[a>>2]|0;do switch(b|0){case 0:{Sp(12507)|0;kb(-1);break}case 1:{Dd(a);break}case 2:{Id(a);break}case 3:{Nd(a);break}case 4:{md(a);break}case 5:{sd(a);break}case 6:{zd(a);break}case 7:{gd(a);break}case 8:{Yd(a);break}case 9:{be(a);break}case 10:{ie(a);break}case 14:case 13:case 12:case 11:{Yc(a);break}case 26:case 25:case 24:case 23:case 22:case 21:case 20:case 19:case 18:case 17:case 16:case 15:{bd(a);break}case 27:{Sd(a);break}default:{c[d>>2]=b;Rp(12573,d)|0;kb(-1)}}while(0);i=e;return}function Pc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;xb[c[a+136>>2]&63](a,b,d,e);return}function Qc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;xb[c[a+140>>2]&63](a,b,d,e);return}function Rc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0,o=0;n=i;h=c[b+144>>2]|0;if(h|0){xb[h&63](b,e,f,g);i=n;return}h=Kc(c[b>>2]|0,e)|0;k=Wa()|0;l=i;i=i+((1*h|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(h|0){m=0;do{o=m<<3;a[l+m>>0]=(d[f+(o|6)>>0]|0)>>>6&2|((d[f+(o|5)>>0]|0)>>>5&4|((d[f+(o|4)>>0]|0)>>>4&8|((d[f+(o|3)>>0]|0)>>>3&16|((d[f+(o|2)>>0]|0)>>>2&32|((d[f+(o|1)>>0]|0)>>>1&64|(d[f+o>>0]|0)&128)))))|(d[f+(o|7)>>0]|0)>>>7;m=m+1|0}while((m|0)!=(h|0))}xb[c[b+140>>2]&63](b,e,l,g);Ga(k|0);i=n;return}function Sc(a){a=a|0;var b=0;b=Xp(148)|0;c[b>>2]=a;g[b+4>>2]=+Mc(a);c[b+136>>2]=1;c[b+140>>2]=2;c[b+144>>2]=3;switch(c[b>>2]|0){case 11:{c[b+28>>2]=2;c[b+32>>2]=7;c[b+24>>2]=288;c[b+44>>2]=3;c[b+48>>2]=1;c[b+52>>2]=5;c[b+56>>2]=1;c[b+60>>2]=3;break}case 12:{c[b+28>>2]=2;c[b+32>>2]=9;c[b+24>>2]=296;c[b+44>>2]=4;c[b+48>>2]=2;c[b+52>>2]=6;c[b+56>>2]=2;c[b+60>>2]=4;break}case 13:{c[b+28>>2]=3;c[b+32>>2]=9;c[b+24>>2]=304;c[b+44>>2]=5;c[b+48>>2]=3;c[b+52>>2]=7;c[b+56>>2]=3;c[b+60>>2]=5;break}case 14:{c[b+28>>2]=6;c[b+32>>2]=15;c[b+24>>2]=316;c[b+44>>2]=6;c[b+48>>2]=4;c[b+52>>2]=8;c[b+56>>2]=4;c[b+60>>2]=6;break}default:{Qp(12666,39,1,c[2348]|0)|0;kb(1)}}c[b+8>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;return b|0}function Tc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;if(!e){i=0;h=0;l=0}else{r=b+28|0;s=b+24|0;k=c[r>>2]|0;i=0;j=0;h=0;l=0;do{q=d[f+j>>0]|0;n=k;m=k;p=0;k=l;while(1){o=q>>>(7-p|0)&1|k<<1;if(!m){k=n;l=0}else{k=0;do{i=((eb(c[(c[s>>2]|0)+(k<<2)>>2]&o|0)|0)&1|(i&255)<<1)&255;a[g+(h>>>3)>>0]=i;h=h+1|0;k=k+1|0;l=c[r>>2]|0}while(k>>>0<l>>>0);k=l}p=p+1|0;if((p|0)==8){l=o;break}else{n=k;m=l;k=o}}j=j+1|0}while((j|0)!=(e|0))}n=b+32|0;j=c[n>>2]|0;if((j|0)!=1){o=b+28|0;p=b+24|0;k=c[o>>2]|0;m=0;do{l=l<<1;if(!k)k=0;else{j=0;do{i=((eb(c[(c[p>>2]|0)+(j<<2)>>2]&l|0)|0)&1|(i&255)<<1)&255;a[g+(h>>>3)>>0]=i;h=h+1|0;j=j+1|0;k=c[o>>2]|0}while(j>>>0<k>>>0);j=c[n>>2]|0}m=m+1|0}while(m>>>0<(j+-1|0)>>>0)}if(h&7)do{i=(i&255)<<1&255;a[g+(h>>>3)>>0]=i;h=h+1|0}while((h&7|0)!=0);if((h|0)==((Kc(c[b>>2]|0,e)|0)<<3|0))return;else Ha(12706,12627,131,12650)}function Uc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();l=n;m=b+8|0;if((c[m>>2]|0)==(d|0)){d=b+16|0;h=d;g=b+12|0;d=c[d>>2]|0}else{c[m>>2]=d;k=b+12|0;c[k>>2]=Kc(c[b>>2]|0,d)|0;d=b+20|0;g=c[d>>2]|0;if(g|0)qb[c[b+60>>2]&31](g);c[d>>2]=rb[c[b+44>>2]&7](c[m>>2]<<3)|0;h=b+16|0;d=_p(c[h>>2]|0,c[k>>2]<<3)|0;c[h>>2]=d;g=k}k=c[g>>2]|0;dk(e,k,d,k<<3,l);if(c[g>>2]&536870911|0){d=0;do{l=(c[h>>2]|0)+d|0;a[l>>0]=((a[l>>0]|0)!=0)<<31>>31;d=d+1|0}while(d>>>0<c[g>>2]<<3>>>0)}l=b+20|0;wb[c[b+48>>2]&7](c[l>>2]|0,0)|0;pb[c[b+52>>2]&15](c[l>>2]|0,c[h>>2]|0,(c[b+32>>2]|0)+-1+(c[m>>2]<<3)|0)|0;vb[c[b+56>>2]&7](c[l>>2]|0,f,c[m>>2]<<3,0)|0;i=n;return}function Vc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=b+8|0;if((c[i>>2]|0)==(d|0))d=b+12|0;else{c[i>>2]=d;h=b+12|0;c[h>>2]=Kc(c[b>>2]|0,d)|0;d=b+20|0;g=c[d>>2]|0;if(g|0)qb[c[b+60>>2]&31](g);c[d>>2]=rb[c[b+44>>2]&7](c[i>>2]<<3)|0;d=b+16|0;c[d>>2]=_p(c[d>>2]|0,c[h>>2]<<3)|0;d=h}g=b+16|0;if(c[d>>2]&536870911|0){h=0;do{a[(c[g>>2]|0)+h>>0]=a[e+h>>0]|0;h=h+1|0}while(h>>>0<c[d>>2]<<3>>>0)}e=b+20|0;wb[c[b+48>>2]&7](c[e>>2]|0,0)|0;pb[c[b+52>>2]&15](c[e>>2]|0,c[g>>2]|0,(c[b+32>>2]|0)+-1+(c[i>>2]<<3)|0)|0;vb[c[b+56>>2]&7](c[e>>2]|0,f,c[i>>2]<<3,0)|0;return}function Wc(a){a=a|0;c[a+28>>2]=2;c[a+32>>2]=7;c[a+24>>2]=288;c[a+44>>2]=3;c[a+48>>2]=1;c[a+52>>2]=5;c[a+56>>2]=1;c[a+60>>2]=3;return}function Xc(a){a=a|0;c[a+28>>2]=2;c[a+32>>2]=9;c[a+24>>2]=296;c[a+44>>2]=4;c[a+48>>2]=2;c[a+52>>2]=6;c[a+56>>2]=2;c[a+60>>2]=4;return}function Yc(a){a=a|0;var b=0;b=c[a+20>>2]|0;if(b|0)qb[c[a+60>>2]&31](b);b=c[a+16>>2]|0;if(!b){Yp(a);return}Yp(b);Yp(a);return}function Zc(a){a=a|0;var b=0;b=Xp(148)|0;c[b>>2]=a;g[b+4>>2]=+Mc(a);c[b+136>>2]=4;c[b+140>>2]=5;c[b+144>>2]=6;do switch(c[b>>2]|0){case 15:{Wc(b);c[b+36>>2]=2;c[b+40>>2]=8928;break}case 16:{Wc(b);c[b+36>>2]=3;c[b+40>>2]=8944;break}case 17:{Wc(b);c[b+36>>2]=4;c[b+40>>2]=8968;break}case 18:{Wc(b);c[b+36>>2]=5;c[b+40>>2]=9e3;break}case 19:{Wc(b);c[b+36>>2]=6;c[b+40>>2]=9040;break}case 20:{Wc(b);c[b+36>>2]=7;c[b+40>>2]=9088;break}case 21:{Xc(b);c[b+36>>2]=2;c[b+40>>2]=9144;break}case 22:{Xc(b);c[b+36>>2]=3;c[b+40>>2]=9160;break}case 23:{Xc(b);c[b+36>>2]=4;c[b+40>>2]=9184;break}case 24:{Xc(b);c[b+36>>2]=5;c[b+40>>2]=9216;break}case 25:{Xc(b);c[b+36>>2]=6;c[b+40>>2]=9256;break}case 26:{Xc(b);c[b+36>>2]=7;c[b+40>>2]=9304;break}default:{Qp(12820,49,1,c[2348]|0)|0;kb(1)}}while(0);c[b+8>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;return b|0}function _c(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!e){i=0;h=0;l=0;k=0}else{r=b+28|0;s=b+36|0;t=b+40|0;u=b+24|0;l=c[r>>2]|0;i=0;j=0;h=0;m=0;k=0;do{q=d[f+j>>0]|0;n=l;p=0;o=m;while(1){k=q>>>(7-p|0)&1|k<<1;if(!n)n=0;else{m=0;do{n=(_(c[s>>2]|0,m)|0)+o|0;if(c[(c[t>>2]|0)+(n<<2)>>2]|0){i=((eb(c[(c[u>>2]|0)+(m<<2)>>2]&k|0)|0)&1|(i&255)<<1)&255;a[g+(h>>>3)>>0]=i;l=c[r>>2]|0;h=h+1|0}m=m+1|0}while(m>>>0<l>>>0);n=l}m=((o+1|0)>>>0)%((c[s>>2]|0)>>>0)|0;p=p+1|0;if((p|0)==8)break;else o=m}j=j+1|0}while((j|0)!=(e|0));l=m}r=b+32|0;if((c[r>>2]|0)!=1){s=b+28|0;t=b+36|0;p=b+40|0;q=b+24|0;j=c[s>>2]|0;n=j;o=0;while(1){k=k<<1;if(!n){m=j;j=0}else{m=0;do{f=(_(c[t>>2]|0,m)|0)+l|0;if(c[(c[p>>2]|0)+(f<<2)>>2]|0){i=((eb(c[(c[q>>2]|0)+(m<<2)>>2]&k|0)|0)&1|(i&255)<<1)&255;a[g+(h>>>3)>>0]=i;j=c[s>>2]|0;h=h+1|0}m=m+1|0}while(m>>>0<j>>>0);m=j}o=o+1|0;if(o>>>0>=((c[r>>2]|0)+-1|0)>>>0)break;else{n=j;j=m;l=((l+1|0)>>>0)%((c[t>>2]|0)>>>0)|0}}}if(h&7)do{i=(i&255)<<1&255;a[g+(h>>>3)>>0]=i;h=h+1|0}while((h&7|0)!=0);if((h|0)==((Kc(c[b>>2]|0,e)|0)<<3|0))return;else Ha(12706,12761,157,12794)}function $c(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=b+8|0;if((c[s>>2]|0)==(d|0)){h=b+28|0;k=b+32|0}else{c[s>>2]=d;c[b+12>>2]=Kc(c[b>>2]|0,d)|0;d=c[s>>2]|0;k=b+32|0;h=b+28|0;i=_((c[k>>2]|0)+-1+(d<<3)|0,c[h>>2]|0)|0;j=b+20|0;g=c[j>>2]|0;if(g){qb[c[b+60>>2]&31](g);d=c[s>>2]|0}c[j>>2]=rb[c[b+44>>2]&7](d<<3)|0;d=b+16|0;c[d>>2]=_p(c[d>>2]|0,i)|0;d=c[s>>2]|0}g=c[h>>2]|0;p=_((c[k>>2]|0)+-1+(d<<3)|0,g)|0;if(!p)d=b+16|0;else{q=b+36|0;r=b+40|0;d=b+16|0;i=a[e>>0]|0;n=0;l=0;j=0;o=0;while(1){if(!g)g=0;else{g=l;m=0;while(1){l=(_(c[q>>2]|0,m)|0)+o|0;if(c[(c[r>>2]|0)+(l<<2)>>2]|0){a[(c[d>>2]|0)+(m+n)>>0]=((i&255&1<<7-g|0)!=0)<<31>>31;g=g+1|0;if((g|0)==8){j=j+1|0;i=a[e+j>>0]|0;l=0}else l=g}else{a[(c[d>>2]|0)+(m+n)>>0]=127;l=g}m=m+1|0;g=c[h>>2]|0;if(m>>>0>=g>>>0)break;else g=l}}n=g+n|0;if(n>>>0>=p>>>0)break;else o=((o+1|0)>>>0)%((c[q>>2]|0)>>>0)|0}}e=b+20|0;wb[c[b+48>>2]&7](c[e>>2]|0,0)|0;pb[c[b+52>>2]&15](c[e>>2]|0,c[d>>2]|0,(c[k>>2]|0)+-1+(c[s>>2]<<3)|0)|0;vb[c[b+56>>2]&7](c[e>>2]|0,f,c[s>>2]<<3,0)|0;return}function ad(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b+8|0;if((c[q>>2]|0)==(d|0)){h=b+28|0;k=b+32|0}else{c[q>>2]=d;c[b+12>>2]=Kc(c[b>>2]|0,d)|0;d=c[q>>2]|0;k=b+32|0;h=b+28|0;i=_((c[k>>2]|0)+-1+(d<<3)|0,c[h>>2]|0)|0;j=b+20|0;g=c[j>>2]|0;if(g){qb[c[b+60>>2]&31](g);d=c[q>>2]|0}c[j>>2]=rb[c[b+44>>2]&7](d<<3)|0;d=b+16|0;c[d>>2]=_p(c[d>>2]|0,i)|0;d=c[q>>2]|0}g=c[h>>2]|0;n=_((c[k>>2]|0)+-1+(d<<3)|0,g)|0;if(!n)d=b+16|0;else{o=b+36|0;p=b+40|0;d=b+16|0;l=0;i=0;m=0;while(1){if(!g)g=0;else{g=i;j=0;while(1){i=(_(c[o>>2]|0,j)|0)+m|0;if(!(c[(c[p>>2]|0)+(i<<2)>>2]|0)){a[(c[d>>2]|0)+(j+l)>>0]=127;i=g}else{a[(c[d>>2]|0)+(j+l)>>0]=a[e+g>>0]|0;i=g+1|0}j=j+1|0;g=c[h>>2]|0;if(j>>>0>=g>>>0)break;else g=i}}l=g+l|0;if(l>>>0>=n>>>0)break;else m=((m+1|0)>>>0)%((c[o>>2]|0)>>>0)|0}}e=b+20|0;wb[c[b+48>>2]&7](c[e>>2]|0,0)|0;pb[c[b+52>>2]&15](c[e>>2]|0,c[d>>2]|0,(c[k>>2]|0)+-1+(c[q>>2]<<3)|0)|0;vb[c[b+56>>2]&7](c[e>>2]|0,f,c[q>>2]<<3,0)|0;return}function bd(a){a=a|0;var b=0;b=c[a+20>>2]|0;if(b|0)qb[c[a+60>>2]&31](b);b=c[a+16>>2]|0;if(!b){Yp(a);return}Yp(b);Yp(a);return}function cd(a){a=a|0;var b=0,e=0,f=0,g=0,h=0;if(a>>>0>16777215){Qp(12870,61,1,c[2348]|0)|0;kb(1)}else{f=0;b=0}while(1){e=c[484+(f<<2)>>2]&a;e=(d[39691+(e>>>8&255)>>0]|0)+(d[39691+(e&255)>>0]|0)+(d[39691+(e>>>16&255)>>0]|0)&1|b<<1;f=f+1|0;if((f|0)==12){g=e;break}else b=e}if(((d[39691+(b>>>7&255)>>0]|0)+(d[39691+(g&255)>>0]|0)|0)>>>0<4){h=0;h=h^a;h=h&4095;return h|0}else b=0;while(1){e=c[340+(b<<2)>>2]^g;if(((d[39691+(e>>>8&255)>>0]|0)+(d[39691+(e&255)>>0]|0)|0)>>>0<3){h=7;break}b=b+1|0;if(b>>>0>=12){f=0;b=0;break}}if((h|0)==7){h=e<<12|1<<11-b;h=h^a;h=h&4095;return h|0}while(1){e=c[340+(f<<2)>>2]&g;e=(d[39691+(e>>>8&255)>>0]|0)+(d[39691+(e&255)>>0]|0)+(d[39691+(e>>>16&255)>>0]|0)&1|b<<1;f=f+1|0;if((f|0)==12){f=e;break}else b=e}if(((d[39691+(b>>>7&255)>>0]|0)+(d[39691+(f&255)>>0]|0)|1|0)==3){h=f;h=h^a;h=h&4095;return h|0}else b=0;while(1){e=c[340+(b<<2)>>2]^f;if(((d[39691+(e>>>8&255)>>0]|0)+(d[39691+(e&255)>>0]|0)|0)>>>0<3)break;b=b+1|0;if(b>>>0>=12){b=0;h=13;break}}if((h|0)==13){h=b^a;h=h&4095;return h|0}h=e|1<<23-b;h=h^a;h=h&4095;return h|0}function dd(a){a=a|0;a=Xp(148)|0;c[a>>2]=7;g[a+4>>2]=+Mc(7);c[a+136>>2]=7;c[a+140>>2]=8;c[a+144>>2]=0;return a|0}function ed(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=(e>>>0)%3|0;h=e-s|0;if((s|0)==(e|0))b=0;else{q=d[39691]|0;r=0;b=0;do{n=d[f+(r+1)>>0]|0;m=a[f+(r+2)>>0]|0;i=n>>>4|(d[f+r>>0]|0)<<4;n=n<<8&3840;k=0;l=0;while(1){j=c[388+(k<<2)>>2]&i;j=(d[39691+(j>>>8)>>0]|0)+(d[39691+(j&255)>>0]|0)+q&1|l<<1;k=k+1|0;if((k|0)==24){p=j;o=l;break}else l=j}k=n|m&255;l=0;i=0;while(1){j=c[388+(l<<2)>>2]&k;j=(d[39691+(j>>>8)>>0]|0)+(d[39691+(j&255)>>0]|0)+q&1|i<<1;l=l+1|0;if((l|0)==24)break;else i=j}a[g+b>>0]=o>>>15;a[g+(b|1)>>0]=o>>>7;a[g+(b+2)>>0]=p;a[g+(b+3)>>0]=i>>>15;a[g+(b+4)>>0]=i>>>7;a[g+(b+5)>>0]=j;b=b+6|0;r=r+3|0}while(r>>>0<h>>>0)}if(h>>>0<e>>>0){n=s*3|0;m=b;while(1){k=d[f+h>>0]|0;l=0;i=0;while(1){j=(d[39691+(c[388+(l<<2)>>2]&k)>>0]|0)&1|i<<1;l=l+1|0;if((l|0)==24)break;else i=j}a[g+m>>0]=i>>>15;a[g+(m+1)>>0]=i>>>7;a[g+(m+2)>>0]=j;h=h+1|0;if((h|0)==(e|0))break;else m=m+3|0}h=e;b=b+n|0}if((b|0)!=(Kc(7,e)|0))Ha(12932,12995,326,13023);if((h|0)==(e|0))return;else Ha(19100,12995,327,13023)}function fd(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=(c>>>0)%3|0;g=c-i|0;if((i|0)==(c|0))b=0;else{h=0;b=0;do{j=(d[e+(b+4)>>0]|0)<<8|(d[e+(b+3)>>0]|0)<<16|(d[e+(b+5)>>0]|0);k=cd((d[e+(b|1)>>0]|0)<<8|(d[e+b>>0]|0)<<16|(d[e+(b+2)>>0]|0))|0;j=cd(j)|0;a[f+h>>0]=k>>>4;a[f+(h+1)>>0]=j>>>8&15|k<<4;a[f+(h+2)>>0]=j;b=b+6|0;h=h+3|0}while(h>>>0<g>>>0)}if(g>>>0<c>>>0){i=i*3|0;h=b;while(1){a[f+g>>0]=cd((d[e+(h+1)>>0]|0)<<8|(d[e+h>>0]|0)<<16|(d[e+(h+2)>>0]|0))|0;g=g+1|0;if((g|0)==(c|0))break;else h=h+3|0}g=c;b=b+i|0}if((b|0)!=(Kc(7,c)|0))Ha(13044,12995,396,13106);if((g|0)==(c|0))return;else Ha(19100,12995,397,13106)}function gd(a){a=a|0;Yp(a);return}function hd(a){a=a|0;a=Xp(148)|0;c[a>>2]=4;g[a+4>>2]=+Mc(4);c[a+136>>2]=9;c[a+140>>2]=10;c[a+144>>2]=11;return a|0}function id(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;b=Lc(c,4,7)|0;if(!c)return;else{g=0;h=0}while(1){j=a[e+g>>0]|0;i=d[13127+(j&15)>>0]|0;$j(f,b,h,7,d[13127+((j&255)>>>4&255)>>0]|0);$j(f,b,h+7|0,7,i);g=g+1|0;if((g|0)==(c|0))break;else h=h+14|0}return}function jd(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();l=n+4|0;m=n;b=Lc(e,4,7)|0;if(!e){i=n;return}else{h=0;k=0}while(1){ak(f,b,k,7,l);ak(f,b,k+7|0,7,m);a[g+h>>0]=d[13143+(c[m>>2]|0)>>0]|0|(d[13143+(c[l>>2]|0)>>0]|0)<<4;h=h+1|0;if((h|0)==(e|0))break;else k=k+14|0}i=n;return}function kd(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=Lc(c,4,7)|0;if(!c)b=0;else{b=0;f=0;while(1){h=ld(d+f|0)|0;a[e+b>>0]=(h&255)<<4|(ld(d+(f+7)|0)|0)&255;b=b+1|0;if((b|0)==(c|0))break;else f=f+14|0}b=c*14|0}if((b|0)==(g<<3|0))return;else Ha(13843,13271,193,13299)}function ld(a){a=a|0;var b=0,c=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;i=d[a>>0]|0;o=i^255;r=d[a+1>>0]|0;s=r^255;t=d[a+2>>0]|0;j=t^255;k=d[a+3>>0]|0;l=k^255;m=d[a+4>>0]|0;n=m^255;p=d[a+5>>0]|0;q=p^255;b=d[a+6>>0]|0;c=b^255;f=0;g=0;a=0;while(1){e=d[13127+g>>0]|0;e=(e&32|0?s:r)+(e&64|0?o:i)+(e&16|0?j:t)+(e&8|0?l:k)+(e&4|0?n:m)+(e&2|0?q:p)+(e&1|0?c:b)|0;h=(g|0)==0|e>>>0<f>>>0;a=h?g&255:a;g=g+1|0;if((g|0)==16)break;else f=h?e:f}return a|0}function md(a){a=a|0;Yp(a);return}function nd(a){a=a|0;a=Xp(148)|0;c[a>>2]=5;g[a+4>>2]=+Mc(5);c[a+136>>2]=12;c[a+140>>2]=13;c[a+144>>2]=14;return a|0}function od(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;if(!c)return;else{b=0;f=0}while(1){g=a[d+b>>0]|0;a[e+f>>0]=a[13325+((g&255)>>>4&255)>>0]|0;a[e+(f|1)>>0]=a[13325+(g&15)>>0]|0;b=b+1|0;if((b|0)==(c|0))break;else f=f+2|0}return}function pd(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0;if(!c)return;else b=0;do{g=b<<1;a[f+b>>0]=(d[13341+(d[e+g>>0]|0)>>0]|0)<<4|(d[13341+(d[e+(g|1)>>0]|0)>>0]|0);b=b+1|0}while((b|0)!=(c|0));return}function qd(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=Lc(c,4,8)|0;if(!c)b=0;else{b=0;f=0;while(1){h=rd(d+f|0)|0;a[e+b>>0]=(h&255)<<4|(rd(d+(f|8)|0)|0)&255;b=b+1|0;if((b|0)==(c|0))break;else f=f+16|0}b=c<<4}if((b|0)==(g<<3|0))return;else Ha(13843,13597,181,13625)}function rd(a){a=a|0;var b=0,c=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;i=d[a>>0]|0;o=i^255;t=d[a+1>>0]|0;u=t^255;v=d[a+2>>0]|0;j=v^255;k=d[a+3>>0]|0;l=k^255;m=d[a+4>>0]|0;n=m^255;p=d[a+5>>0]|0;q=p^255;r=d[a+6>>0]|0;s=r^255;b=d[a+7>>0]|0;c=b^255;f=0;g=0;a=0;while(1){e=d[13325+g>>0]|0;e=(e&64|0?u:t)+(e&128|0?o:i)+(e&32|0?j:v)+(e&16|0?l:k)+(e&8|0?n:m)+(e&4|0?q:p)+(e&2|0?s:r)+(e&1|0?c:b)|0;h=(g|0)==0|e>>>0<f>>>0;a=h?g&255:a;g=g+1|0;if((g|0)==16)break;else f=h?e:f}return a|0}function sd(a){a=a|0;Yp(a);return}function td(a){a=a|0;var b=0,e=0;if(a>>>0>4095){Qp(13651,55,1,c[2348]|0)|0;kb(1)}b=a>>>8;b=(d[39947+(b&6)>>0]|0)+(d[39947+(a&102)>>0]|0)<<1&2|(d[39947+(b&10)>>0]|0)+(d[39947+(a&170)>>0]|0)&1|(d[39947+(b&1)>>0]|0)+(d[39947+(a&225)>>0]|0)<<2&4|(d[39947]|0)+(d[39947+(a&31)>>0]|0)<<3&8;if((b+-1|0)>>>0>11){b=a&15;e=a>>>1;e=e&112;b=e|b;a=a>>>2;a=a&128;a=b|a;return a|0}e=1<<12-b^a;a=e&15;b=e>>>1;b=b&112;a=b|a;e=e>>>2;e=e&128;e=a|e;return e|0}function ud(a){a=a|0;a=Xp(148)|0;c[a>>2]=6;g[a+4>>2]=+Mc(6);c[a+136>>2]=15;c[a+140>>2]=16;c[a+144>>2]=17;return a|0}function vd(c,e,f,g){c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;j=e&1;h=e-j|0;if((j|0)==(e|0))c=0;else{i=0;c=0;do{l=b[9828+((d[f+i>>0]|0)<<1)>>1]|0;k=b[9828+((d[f+(i|1)>>0]|0)<<1)>>1]|0;a[g+c>>0]=(l&65535)>>>4;a[g+(c+1)>>0]=(k&65535)>>>8&15|(l&65535)<<4;a[g+(c+2)>>0]=k;c=c+3|0;i=i+2|0}while(i>>>0<h>>>0)}if(j){l=b[9828+((d[f+(e+-1)>>0]|0)<<1)>>1]|0;a[g+c>>0]=(l&65535)>>>4;a[g+(c+1)>>0]=(l&65535)<<4;c=c+2|0}if((c|0)==(Kc(6,e)|0))return;else Ha(13707,13770,226,13799)}function wd(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=c&1;h=c-i|0;if((i|0)==(c|0)){g=0;b=0}else{g=0;b=0;do{k=d[e+(b+1)>>0]|0;j=k<<8&3840|(d[e+(b+2)>>0]|0);a[f+g>>0]=td(k>>>4|(d[e+b>>0]|0)<<4)|0;a[f+(g|1)>>0]=td(j)|0;b=b+3|0;g=g+2|0}while(g>>>0<h>>>0)}if(i){a[f+g>>0]=td((d[e+(b+1)>>0]|0)>>>4|(d[e+b>>0]|0)<<4)|0;b=b+2|0}if((b|0)==(Kc(6,c)|0))return;else Ha(13707,13770,280,13821)}function xd(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=c&1;h=((c*3|0)>>>1)+g|0;if(!c)b=0;else{b=0;f=0;while(1){a[e+b>>0]=yd(d+f|0)|0;b=b+1|0;if((b|0)==(c|0))break;else f=f+12|0}b=c*12|0}if((b+(g<<2)|0)==(h<<3|0))return;else Ha(13843,13770,326,13862)}function yd(b){b=b|0;var c=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;u=b+1|0;w=b+2|0;y=b+3|0;A=b+4|0;C=b+5|0;c=b+6|0;g=b+7|0;i=b+8|0;k=b+9|0;m=b+10|0;o=b+11|0;r=td(((a[u>>0]|0)<0?1024:0)|((a[b>>0]|0)<0?2048:0)|((a[w>>0]|0)<0?512:0)|((a[y>>0]|0)<0?256:0)|((a[A>>0]|0)<0?128:0)|((a[C>>0]|0)<0?64:0)|((a[c>>0]|0)<0?32:0)|((a[g>>0]|0)<0?16:0)|((a[i>>0]|0)<0?8:0)|((a[k>>0]|0)<0?4:0)|((a[m>>0]|0)<0?2:0)|(d[o>>0]|0)>>>7&255)|0;E=e[9828+(r<<1)>>1]|0;s=d[b>>0]|0;t=s^255;u=d[u>>0]|0;v=u^255;w=d[w>>0]|0;x=w^255;y=d[y>>0]|0;z=y^255;A=d[A>>0]|0;B=A^255;C=d[C>>0]|0;D=C^255;c=d[c>>0]|0;f=c^255;g=d[g>>0]|0;h=g^255;i=d[i>>0]|0;j=i^255;k=d[k>>0]|0;l=k^255;m=d[m>>0]|0;n=m^255;o=d[o>>0]|0;p=o^255;E=(E&1024|0?v:u)+(E&2048|0?t:s)+(E&512|0?x:w)+(E&256|0?z:y)+(E&128|0?B:A)+(E&64|0?D:C)+(E&32|0?f:c)+(E&16|0?h:g)+(E&8|0?j:i)+(E&4|0?l:k)+(E&2|0?n:m)+(E&1|0?p:o)|0;F=0;b=r;while(1){G=d[13889+(b*17|0)+F>>0]|0;q=e[9828+(G<<1)>>1]|0;q=(q&1024|0?v:u)+(q&2048|0?t:s)+(q&512|0?x:w)+(q&256|0?z:y)+(q&128|0?B:A)+(q&64|0?D:C)+(q&32|0?f:c)+(q&16|0?h:g)+(q&8|0?j:i)+(q&4|0?l:k)+(q&2|0?n:m)+(q&1|0?p:o)|0;r=q>>>0<E>>>0;b=r?G:b;F=F+1|0;if((F|0)==17)break;else E=r?q:E}return b|0}function zd(a){a=a|0;Yp(a);return}function Ad(a){a=a|0;a=Xp(148)|0;c[a>>2]=1;g[a+4>>2]=+Mc(1);c[a+136>>2]=18;c[a+140>>2]=19;c[a+144>>2]=0;return a|0}function Bd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;gq(d|0,c|0,b|0)|0;return}function Cd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;gq(d|0,c|0,b|0)|0;return}function Dd(a){a=a|0;Yp(a);return}function Ed(a){a=a|0;a=Xp(148)|0;c[a>>2]=2;g[a+4>>2]=+Mc(2);c[a+136>>2]=20;c[a+140>>2]=21;c[a+144>>2]=22;return a|0}function Fd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;fq(d|0,c|0,b|0)|0;fq(d+b|0,c|0,b|0)|0;fq(d+(b<<1)|0,c|0,b|0)|0;return}function Gd(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(!c)return;b=c<<1;f=0;do{g=a[d+(f+c)>>0]|0;h=a[d+(f+b)>>0]|0;a[e+f>>0]=(h|g)&a[d+f>>0]|h&g;f=f+1|0}while((f|0)!=(c|0));return}function Hd(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!c)return;b=c<<1;l=0;do{g=f+l|0;a[g>>0]=0;i=l<<3;j=l+c<<3;k=l+b<<3;h=0;m=0;do{h=h&255|(((d[e+(m+j)>>0]|0)+(d[e+(m+i)>>0]|0)+(d[e+(m+k)>>0]|0)|0)>>>0>383?1<<7-m:0);a[g>>0]=h;m=m+1|0}while((m|0)!=8);l=l+1|0}while((l|0)!=(c|0));return}function Id(a){a=a|0;Yp(a);return}function Jd(a){a=a|0;a=Xp(148)|0;c[a>>2]=3;g[a+4>>2]=+Mc(3);c[a+136>>2]=23;c[a+140>>2]=24;c[a+144>>2]=25;return a|0}function Kd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;fq(d|0,c|0,b|0)|0;fq(d+b|0,c|0,b|0)|0;fq(d+(b<<1)|0,c|0,b|0)|0;fq(d+(b*3|0)|0,c|0,b|0)|0;fq(d+(b<<2)|0,c|0,b|0)|0;return}function Ld(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(!c)return;b=c<<1;f=c*3|0;g=c<<2;h=0;do{l=a[d+h>>0]|0;m=a[d+(h+c)>>0]|0;j=a[d+(h+b)>>0]|0;k=a[d+(h+f)>>0]|0;i=a[d+(h+g)>>0]|0;o=j&l;n=j&m;a[e+h>>0]=(n|o)&k|i&o|k&l&i|i&n|k&m&i|k&j&i|m&l&(k|j|i);h=h+1|0}while((h|0)!=(c|0));return}function Md(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!c)return;b=c<<1;i=c*3|0;j=c<<2;p=0;do{k=f+p|0;a[k>>0]=0;m=p<<3;n=p+c<<3;o=p+b<<3;g=p+i<<3;h=p+j<<3;l=0;q=0;do{l=l&255|(((d[e+(q+n)>>0]|0)+(d[e+(q+m)>>0]|0)+(d[e+(q+o)>>0]|0)+(d[e+(q+g)>>0]|0)+(d[e+(q+h)>>0]|0)|0)>>>0>639?1<<7-q:0);a[k>>0]=l;q=q+1|0}while((q|0)!=8);p=p+1|0}while((p|0)!=(c|0));return}function Nd(a){a=a|0;Yp(a);return}function Od(a){a=a|0;var b=0;b=Xp(148)|0;c[b>>2]=a;g[b+4>>2]=+Mc(a);c[b+136>>2]=26;c[b+140>>2]=27;c[b+144>>2]=0;if((a|0)==27){c[b+64>>2]=8;c[b+68>>2]=285;c[b+72>>2]=1;c[b+76>>2]=1;c[b+80>>2]=32;c[b+88>>2]=255;c[b+92>>2]=223;c[b+8>>2]=0;c[b+96>>2]=0;c[b+120>>2]=Xp(255)|0;c[b+124>>2]=Xp(1020)|0;c[b+128>>2]=Xp(1020)|0;return b|0}else{Qp(18436,37,1,c[2348]|0)|0;kb(1)}return 0}function Pd(a,b,d,e){a=a|0;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;if(!b){Qp(18241,49,1,c[2348]|0)|0;kb(1)}Qd(a,b);k=a+104|0;l=a+100|0;b=c[l>>2]|0;if(!b){f=0;b=0}else{m=a+112|0;n=a+120|0;o=a+96|0;j=a+108|0;h=b;g=c[k>>2]|0;i=0;f=0;b=0;do{if((i|0)==(h+-1|0))g=g-(c[m>>2]|0)|0;gq(c[n>>2]|0,d+f|0,g|0)|0;h=c[n>>2]|0;Lm(c[o>>2]|0,h,h+(c[k>>2]|0)|0);gq(e+b|0,c[n>>2]|0,c[j>>2]|0)|0;f=g+f|0;b=(c[j>>2]|0)+b|0;i=i+1|0;h=c[l>>2]|0}while(i>>>0<h>>>0)}if((f|0)!=(c[a+8>>2]|0))Ha(18291,18315,131,18336);if((b|0)==(c[a+12>>2]|0))return;else Ha(18350,18315,132,18336)}function Qd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0,l=0,m=0;k=i;i=i+16|0;if((i|0)>=(j|0))ba();d=k+8|0;e=k;f=a+8|0;if((c[f>>2]|0)==(b|0)){i=k;return}c[f>>2]=b;l=a+92|0;Vp(d,b,c[l>>2]|0);d=((c[d+4>>2]|0)!=0&1)+(c[d>>2]|0)|0;m=a+100|0;c[m>>2]=d;Vp(e,b,d);d=((c[e+4>>2]|0)!=0&1)+(c[e>>2]|0)|0;c[a+104>>2]=d;g=a+80|0;e=c[g>>2]|0;h=d+e|0;c[a+108>>2]=h;b=c[m>>2]|0;m=_(d,b)|0;c[a+112>>2]=(m>>>0)%((c[f>>2]|0)>>>0)|0;d=(c[l>>2]|0)-d|0;f=a+116|0;c[f>>2]=d;c[a+12>>2]=_(b,h)|0;h=a+96|0;b=c[h>>2]|0;if(b){Im(b);e=c[g>>2]|0;d=c[f>>2]|0}c[h>>2]=Em(c[a+64>>2]|0,c[a+68>>2]|0,c[a+72>>2]|0,c[a+76>>2]|0,e,d)|0;i=k;return}function Rd(a,b,d,e){a=a|0;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;if(!b){Qp(18241,49,1,c[2348]|0)|0;kb(1)}Qd(a,b);p=a+88|0;eq(c[a+124>>2]|0,0,c[p>>2]|0)|0;o=a+128|0;eq(c[o>>2]|0,0,c[p>>2]|0)|0;p=a+132|0;c[p>>2]=0;j=a+100|0;b=c[j>>2]|0;if(!b){f=0;b=0}else{k=a+112|0;l=a+120|0;m=a+108|0;n=a+96|0;h=b;g=c[a+104>>2]|0;i=0;f=0;b=0;do{if((i|0)==(h+-1|0))g=g-(c[k>>2]|0)|0;gq(c[l>>2]|0,d+f|0,c[m>>2]|0)|0;Om(c[n>>2]|0,c[l>>2]|0,c[o>>2]|0,c[p>>2]|0);gq(e+b|0,c[l>>2]|0,g|0)|0;f=(c[m>>2]|0)+f|0;b=g+b|0;i=i+1|0;h=c[j>>2]|0}while(i>>>0<h>>>0)}if((f|0)!=(c[a+12>>2]|0))Ha(18374,18315,185,18398);if((b|0)==(c[a+8>>2]|0))return;else Ha(18412,18315,186,18398)}function Sd(a){a=a|0;var b=0;b=c[a+96>>2]|0;if(b|0)Im(b);Yp(c[a+120>>2]|0);Yp(c[a+124>>2]|0);Yp(c[a+128>>2]|0);Yp(a);return}function Td(b){b=b|0;var c=0;c=a[b>>0]|0;b=a[b+1>>0]|0;return ((d[39691+(b&a[18485]&255)>>0]|0)+(d[39691+(c&a[18484]&255)>>0]|0)&1|((d[39691+(b&a[18483]&255)>>0]|0)+(d[39691+(c&a[18482]&255)>>0]|0)&1|((d[39691+(b&a[18481]&255)>>0]|0)+(d[39691+(c&a[18480]&255)>>0]|0)&1|((d[39691+(b&a[18479]&255)>>0]|0)+(d[39691+(c&a[18478]&255)>>0]|0)&1|((d[39691+(b&a[18477]&255)>>0]|0)+(d[39691+(c&a[18476]&255)>>0]|0)&1|(d[39691+(b&a[18475]&255)>>0]|0)+(d[39691+(c&a[18474]&255)>>0]|0)<<1&2)<<1&6)<<1&14)<<1&30)<<1&62)&255|0}function Ud(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+16|0;if((i|0)>=(j|0))ba();l=m;a[e>>0]=0;a[e+1>>0]=0;a[e+2>>0]=0;h=d[b>>0]|0;k=a[b+1>>0]|0;f=a[b+2>>0]|0;g=0;b=0;do{n=g<<1;b=((1<<5-g&h|0)!=0&1)+(d[39691+(a[18474+n>>0]&k&255)>>0]|0)+(d[39691+(a[18474+(n|1)>>0]&f&255)>>0]|0)&1|b<<1&510;g=g+1|0}while((g|0)!=6);f=b&255;if(!(a[39691+(b&255)>>0]|0)){n=0;i=m;return n|0}do if(f<<24>>24!=(a[18486]|0))if(f<<24>>24!=(a[18487]|0))if(f<<24>>24!=(a[18488]|0))if(f<<24>>24!=(a[18489]|0))if(f<<24>>24!=(a[18490]|0))if(f<<24>>24!=(a[18491]|0))if(f<<24>>24!=(a[18492]|0))if(f<<24>>24!=(a[18493]|0))if(f<<24>>24!=(a[18494]|0))if(f<<24>>24!=(a[18495]|0))if(f<<24>>24!=(a[18496]|0))if(f<<24>>24!=(a[18497]|0))if(f<<24>>24!=(a[18498]|0))if(f<<24>>24!=(a[18499]|0))if(f<<24>>24!=(a[18500]|0))if(f<<24>>24!=(a[18501]|0))if(f<<24>>24!=(a[18502]|0))if(f<<24>>24==(a[18503]|0))b=17;else{if(f<<24>>24==(a[18504]|0)){b=18;break}if(f<<24>>24==(a[18505]|0)){b=19;break}if(f<<24>>24==(a[18506]|0)){b=20;break}if(f<<24>>24==(a[18507]|0)){b=21;break}else b=2;i=m;return b|0}else b=16;else b=15;else b=14;else b=13;else b=12;else b=11;else b=10;else b=9;else b=8;else b=7;else b=6;else b=5;else b=4;else b=3;else b=2;else b=1;else b=0;while(0);Vp(l,b,8);a[e+(2-(c[l>>2]|0))>>0]=1<<c[l+4>>2];n=1;i=m;return n|0}function Vd(a){a=a|0;a=Xp(148)|0;c[a>>2]=8;g[a+4>>2]=+Mc(8);c[a+136>>2]=28;c[a+140>>2]=29;c[a+144>>2]=0;return a|0}function Wd(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0;l=i;i=i+16|0;if((i|0)>=(j|0))ba();h=l;k=c&1;g=c-k|0;if((k|0)==(c|0)){f=0;b=0}else{f=0;b=0;do{m=d+f|0;a[e+b>>0]=Td(m)|0;a[e+(b+1)>>0]=a[m>>0]|0;a[e+(b+2)>>0]=a[d+(f|1)>>0]|0;b=b+3|0;f=f+2|0}while(f>>>0<g>>>0)}if(k){m=a[d+f>>0]|0;a[h>>0]=m;a[h+1>>0]=0;a[e+b>>0]=Td(h)|0;a[e+(b+1)>>0]=m;f=f|k;b=k+1+b|0}if((b|0)!=(Kc(8,c)|0))Ha(18508,18572,274,18601);if((f|0)==(c|0)){i=l;return}else Ha(19100,18572,275,18601)}function Xd(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();l=o+3|0;m=o;n=c&1;g=c-n|0;if((n|0)==(c|0)){f=0;b=0}else{h=l+1|0;k=l+2|0;f=0;b=0;do{q=d+b|0;p=e+f|0;a[l>>0]=0;a[l+1>>0]=0;a[l+2>>0]=0;Ud(q,l)|0;a[p>>0]=a[h>>0]^a[q+1>>0];a[p+1>>0]=a[k>>0]^a[q+2>>0];b=b+3|0;f=f+2|0}while(f>>>0<g>>>0)}if(n){a[m>>0]=a[d+b>>0]|0;q=a[d+(b+1)>>0]|0;a[m+1>>0]=q;a[m+2>>0]=0;a[l>>0]=0;a[l+1>>0]=0;a[l+2>>0]=0;Ud(m,l)|0;a[e+f>>0]=a[l+1>>0]^q;f=f|n;b=n+1+b|0}if((b|0)!=(Kc(8,c)|0))Ha(18508,18572,323,18623);if((f|0)==(c|0)){i=o;return}else Ha(19100,18572,324,18623)}function Yd(a){a=a|0;Yp(a);return}function Zd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+16|0;if((i|0)>=(j|0))ba();n=p;a[e>>0]=0;a[e+1>>0]=0;a[e+2>>0]=0;a[e+3>>0]=0;a[e+4>>0]=0;h=d[b>>0]|0;k=a[b+1>>0]|0;l=a[b+2>>0]|0;m=a[b+3>>0]|0;f=a[b+4>>0]|0;g=0;b=0;do{q=g<<2;b=((1<<6-g&h|0)!=0&1)+(d[39691+(a[18645+q>>0]&k&255)>>0]|0)+(d[39691+(a[18645+(q|1)>>0]&l&255)>>0]|0)+(d[39691+(a[18645+(q|2)>>0]&m&255)>>0]|0)+(d[39691+(a[18645+(q|3)>>0]&f&255)>>0]|0)&1|b<<1&510;g=g+1|0}while((g|0)!=7);f=b&255;if(!(a[39691+(b&255)>>0]|0)){q=0;i=p;return q|0}else b=0;while(1){if(f<<24>>24==(a[18673+b>>0]|0))break;b=b+1|0;if(b>>>0>=39){b=2;o=7;break}}if((o|0)==7){i=p;return b|0}Vp(n,b,8);a[e+(4-(c[n>>2]|0))>>0]=1<<c[n+4>>2];q=1;i=p;return q|0}function _d(a){a=a|0;a=Xp(148)|0;c[a>>2]=9;g[a+4>>2]=+Mc(9);c[a+136>>2]=30;c[a+140>>2]=31;c[a+144>>2]=0;return a|0}function $d(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=i;i=i+16|0;if((i|0)>=(j|0))ba();t=w;u=w+4|0;v=f&3;s=f-v|0;if((v|0)==(f|0)){k=0;b=0}else{k=0;b=0;do{r=g+k|0;n=a[r>>0]|0;o=a[r+1>>0]|0;p=a[r+2>>0]|0;m=a[r+3>>0]|0;q=0;l=0;do{x=q<<2;l=(d[39691+(a[18645+(x|1)>>0]&o&255)>>0]|0)+(d[39691+(a[18645+x>>0]&n&255)>>0]|0)+(d[39691+(a[18645+(x|2)>>0]&p&255)>>0]|0)+(d[39691+(a[18645+(x|3)>>0]&m&255)>>0]|0)&1|l<<1&510;q=q+1|0}while((q|0)!=7);a[h+b>>0]=l;a[h+(b+1)>>0]=a[r>>0]|0;a[h+(b+2)>>0]=a[g+(k|1)>>0]|0;a[h+(b+3)>>0]=a[g+(k|2)>>0]|0;a[h+(b+4)>>0]=a[g+(k|3)>>0]|0;b=b+5|0;k=k+4|0}while(k>>>0<s>>>0)}if(v){c[t>>2]=0;fq(t|0,g+k|0,f&3|0)|0;s=c[t>>2]|0;n=s&255;o=(s&65535)>>>8&255;q=s>>>16&255;r=s>>>24&255;s=s&255;p=(e[t>>1]|0)>>>8&255;m=0;l=0;do{x=m<<2;l=(d[39691+(a[18645+(x|1)>>0]&o&255)>>0]|0)+(d[39691+(a[18645+x>>0]&n&255)>>0]|0)+(d[39691+(a[18645+(x|2)>>0]&q&255)>>0]|0)+(d[39691+(a[18645+(x|3)>>0]&r&255)>>0]|0)&1|l<<1&510;m=m+1|0}while((m|0)!=7);t=l&255;a[u>>0]=t;x=u+1|0;a[x>>0]=s;a[u+2>>0]=p;a[u+3>>0]=q;a[u+4>>0]=r;a[h+b>>0]=t;fq(h+(b+1)|0,x|0,f&3|0)|0;k=k|v;b=v+1+b|0}if((b|0)!=(Kc(9,f)|0))Ha(18712,18776,296,18805);if((k|0)==(f|0)){i=w;return}else Ha(19100,18776,297,18805)}function ae(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=i;i=i+16|0;if((i|0)>=(j|0))ba();n=r+9|0;p=r+4|0;o=r;q=c&3;g=c-q|0;if((q|0)==(c|0)){f=0;b=0}else{h=n+1|0;k=n+2|0;l=n+3|0;m=n+4|0;f=0;b=0;do{t=d+b|0;s=e+f|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;Zd(t,n)|0;a[s>>0]=a[h>>0]^a[t+1>>0];a[s+1>>0]=a[k>>0]^a[t+2>>0];a[s+2>>0]=a[l>>0]^a[t+3>>0];a[s+3>>0]=a[m>>0]^a[t+4>>0];b=b+5|0;f=f+4|0}while(f>>>0<g>>>0)}if(q){a[p>>0]=a[d+b>>0]|0;m=p+1|0;a[m>>0]=0;a[m+1>>0]=0;a[m+2>>0]=0;a[m+3>>0]=0;fq(m|0,d+(b+1)|0,c&3|0)|0;m=a[m>>0]|0;d=a[p+2>>0]|0;s=a[p+3>>0]|0;t=a[p+4>>0]|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;Zd(p,n)|0;a[o>>0]=a[n+1>>0]^m;a[o+1>>0]=a[n+2>>0]^d;a[o+2>>0]=a[n+3>>0]^s;a[o+3>>0]=a[n+4>>0]^t;fq(e+f|0,o|0,c&3|0)|0;f=f|q;b=q+1+b|0}if((b|0)!=(Kc(9,c)|0))Ha(18712,18776,349,18827);if((f|0)==(c|0)){i=r;return}else Ha(19100,18776,350,18827)}function be(a){a=a|0;Yp(a);return}function ce(b){b=b|0;var c=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=a[b>>0]|0;i=a[b+1>>0]|0;j=a[b+2>>0]|0;k=a[b+3>>0]|0;l=a[b+4>>0]|0;g=a[b+5>>0]|0;h=a[b+6>>0]|0;c=a[b+7>>0]|0;e=0;b=0;do{m=e<<3;b=(d[39691+(i&a[18849+(m|1)>>0]&255)>>0]|0)+(d[39691+(f&a[18849+m>>0]&255)>>0]|0)+(d[39691+(j&a[18849+(m|2)>>0]&255)>>0]|0)+(d[39691+(k&a[18849+(m|3)>>0]&255)>>0]|0)+(d[39691+(l&a[18849+(m|4)>>0]&255)>>0]|0)+(d[39691+(g&a[18849+(m|5)>>0]&255)>>0]|0)+(d[39691+(h&a[18849+(m|6)>>0]&255)>>0]|0)+(d[39691+(c&a[18849+(m|7)>>0]&255)>>0]|0)&1|b<<1&510;e=e+1|0}while((e|0)!=8);return b&255|0}function de(b){b=b|0;var c=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=d[b>>0]|0;j=a[b+1>>0]|0;k=a[b+2>>0]|0;l=a[b+3>>0]|0;m=a[b+4>>0]|0;g=a[b+5>>0]|0;h=a[b+6>>0]|0;i=a[b+7>>0]|0;c=a[b+8>>0]|0;e=0;b=0;do{n=e<<3;b=((f&1<<7-e|0)!=0&1)+(d[39691+(j&a[18849+n>>0]&255)>>0]|0)+(d[39691+(k&a[18849+(n|1)>>0]&255)>>0]|0)+(d[39691+(l&a[18849+(n|2)>>0]&255)>>0]|0)+(d[39691+(m&a[18849+(n|3)>>0]&255)>>0]|0)+(d[39691+(g&a[18849+(n|4)>>0]&255)>>0]|0)+(d[39691+(h&a[18849+(n|5)>>0]&255)>>0]|0)+(d[39691+(i&a[18849+(n|6)>>0]&255)>>0]|0)+(d[39691+(c&a[18849+(n|7)>>0]&255)>>0]|0)&1|b<<1&510;e=e+1|0}while((e|0)!=8);return b&255|0}function ee(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;if((i|0)>=(j|0))ba();g=q;p=q+8|0;e=p;f=e+9|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));f=de(b)|0;a:do if(!(a[39691+(f&255)>>0]|0)){g=0;h=0;k=0;l=0;m=0;n=0;o=0;e=0;f=0}else{e=0;while(1){if(f<<24>>24==(a[18913+e>>0]|0))break;e=e+1|0;if(e>>>0>=72){g=0;h=0;k=0;l=0;m=0;n=0;o=0;e=0;f=2;break a}}Vp(g,e,8);a[p+(8-(c[g>>2]|0))>>0]=1<<c[g+4>>2];g=a[p+1>>0]|0;h=a[p+2>>0]|0;k=a[p+3>>0]|0;l=a[p+4>>0]|0;m=a[p+5>>0]|0;n=a[p+6>>0]|0;o=a[p+7>>0]|0;e=a[p+8>>0]|0;f=1}while(0);a[d>>0]=g^a[b+1>>0];a[d+1>>0]=h^a[b+2>>0];a[d+2>>0]=k^a[b+3>>0];a[d+3>>0]=l^a[b+4>>0];a[d+4>>0]=m^a[b+5>>0];a[d+5>>0]=n^a[b+6>>0];a[d+6>>0]=o^a[b+7>>0];a[d+7>>0]=e^a[b+8>>0];i=q;return f|0}function fe(a){a=a|0;a=Xp(148)|0;c[a>>2]=10;g[a+4>>2]=+Mc(10);c[a+136>>2]=32;c[a+140>>2]=33;c[a+144>>2]=0;return a|0}function ge(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();k=n;m=d&7;h=d-m|0;if((m|0)==(d|0)){g=0;b=0}else{g=0;b=0;do{o=e+g|0;l=f+b|0;a[l>>0]=ce(o)|0;a[l+1>>0]=a[o>>0]|0;a[l+2>>0]=a[o+1>>0]|0;a[l+3>>0]=a[o+2>>0]|0;a[l+4>>0]=a[o+3>>0]|0;a[l+5>>0]=a[o+4>>0]|0;a[l+6>>0]=a[o+5>>0]|0;a[l+7>>0]=a[o+6>>0]|0;a[l+8>>0]=a[o+7>>0]|0;b=b+9|0;g=g+8|0}while(g>>>0<h>>>0)}if(m){h=k;c[h>>2]=0;c[h+4>>2]=0;fq(k|0,e+g|0,d&7|0)|0;a[f+b>>0]=ce(k)|0;h=b+1|0;k=d&7;l=0;do{a[f+(h+l)>>0]=a[e+(l+g)>>0]|0;l=l+1|0}while((l|0)!=(k|0));g=g|m;b=m+1+b|0}if((b|0)!=(Kc(10,d)|0))Ha(18985,19049,286,19078);if((g|0)==(d|0)){i=n;return}else Ha(19100,19049,287,19078)}function he(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();k=m+8|0;h=m;l=b&7;g=b-l|0;if((l|0)==(b|0)){f=0;a=0}else{f=0;a=0;do{ee(d+a|0,e+f|0)|0;a=a+9|0;f=f+8|0}while(f>>>0<g>>>0)}if(l){g=h;c[g>>2]=0;c[g+4>>2]=0;g=b&7;n=g+1|0;eq(k+n|0,0,(n>>>0>8?0:8-g|0)|0)|0;fq(k|0,d+a|0,n|0)|0;ee(k,h)|0;fq(e+f|0,h|0,g|0)|0;f=f|l;a=a+(l+1)|0}if((a|0)!=(Kc(10,b)|0))Ha(18985,19049,338,19118);if((f|0)==(b|0)){i=m;return}else Ha(19100,19049,339,19118)}function ie(a){a=a|0;Yp(a);return}function je(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();f=n+8|0;e=n;if(a>>>0<2){m=c[2348]|0;c[e>>2]=19140;Kp(m,20350,e)|0;kb(1)}if(d>>>0<a>>>0){m=c[2348]|0;c[f>>2]=19140;Kp(m,20418,f)|0;kb(1)}m=Xp(20)|0;c[m+12>>2]=a;k=m+4|0;c[k>>2]=d;l=m+8|0;f=0;while(1){e=_(f,a)|0;if(e>>>0<d>>>0)f=f+1|0;else break}c[l>>2]=f;c[k>>2]=e;k=Xp(e<<2)|0;c[m>>2]=k;if(!e){d=0;d=ke(a,k,d)|0;a=m+16|0;c[a>>2]=d;i=n;return m|0}else f=0;do{if(f>>>0<d>>>0)h=+g[b+(f<<2)>>2];else h=0.0;g[k+(f<<2)>>2]=h;f=f+1|0}while(f>>>0<e>>>0);d=ke(a,k,e)|0;a=m+16|0;c[a>>2]=d;i=n;return m|0}function ke(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+16|0;if((i|0)>=(j|0))ba();f=p+8|0;e=p;if(!a){o=c[2348]|0;c[e>>2]=19140;Kp(o,20497,e)|0;kb(1)}if(!d){o=c[2348]|0;c[f>>2]=19140;Kp(o,20569,f)|0;kb(1)}n=Xp(28)|0;m=n+12|0;c[m>>2]=a;c[n+4>>2]=d;o=Xp(a<<2)|0;c[n+20>>2]=o;k=(d>>>0)/(a>>>0)|0;l=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();d=k+-1|0;if(!k){e=0;do{c[o+(e<<2)>>2]=yk(l,0)|0;e=e+1|0}while(e>>>0<a>>>0);a=n+8|0;c[a>>2]=k;a=lk(k)|0;b=n+16|0;c[b>>2]=a;b=n+24|0;g[b>>2]=1.0;mk(a);i=p;return n|0}else{h=a;e=0}while(1){f=0;do{c[l+(d-f<<2)>>2]=c[b+((_(h,f)|0)+e<<2)>>2];f=f+1|0}while(k>>>0>f>>>0);c[o+(e<<2)>>2]=yk(l,k)|0;e=e+1|0;if(e>>>0>=a>>>0)break;h=c[m>>2]|0}a=n+8|0;c[a>>2]=k;a=lk(k)|0;b=n+16|0;c[b>>2]=a;b=n+24|0;g[b>>2]=1.0;mk(a);i=p;return n|0}function le(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(b>>>0<2){n=c[2348]|0;c[g>>2]=19140;Kp(n,20637,g)|0;kb(1)}if(!d){n=c[2348]|0;c[h>>2]=19140;Kp(n,20715,h)|0;kb(1)}if(e<0.0|e>1.0){n=c[2348]|0;c[k>>2]=19140;Kp(n,20792,k)|0;kb(1)}if(f<-1.0|f>1.0){n=c[2348]|0;c[l>>2]=19140;Kp(n,20881,l)|0;kb(1)}else{h=_(b<<1,d)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(a,b,d,e,f,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(g|0,k|0,(_(d,b)|0)<<3|4|0)|0;n=je(b,g,h)|0;i=m;return n|0}return 0}function me(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+16>>2]|0;d=b+12|0;e=b+20|0;if(c[d>>2]|0){f=0;do{zk(c[(c[e>>2]|0)+(f<<2)>>2]|0);f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}Yp(c[e>>2]|0);pk(c[b+16>>2]|0);Yp(b);Yp(c[a>>2]|0);Yp(a);return}function ne(a){a=a|0;var b=0,d=0,e=0;b=a+12|0;d=a+20|0;if(c[b>>2]|0){e=0;do{zk(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Yp(c[d>>2]|0);pk(c[a+16>>2]|0);Yp(a);return}function oe(a){a=a|0;mk(c[(c[a+16>>2]|0)+16>>2]|0);return}function pe(a){a=a|0;mk(c[a+16>>2]|0);return}function qe(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();o=n;m=n+8|0;l=a+16|0;ok(c[(c[l>>2]|0)+16>>2]|0,b);f=a+12|0;if(!(c[f>>2]|0)){i=n;return}a=0;while(1){h=c[l>>2]|0;k=d+(a<<2)|0;e=c[h+12>>2]|0;if(e>>>0<=a>>>0){f=4;break}nk(c[h+16>>2]|0,m);Ak(c[(c[h+20>>2]|0)+(a<<2)>>2]|0,c[m>>2]|0,k);g[k>>2]=+g[h+24>>2]*+g[k>>2];a=a+1|0;if(a>>>0>=(c[f>>2]|0)>>>0){f=6;break}}if((f|0)==4){n=c[2348]|0;c[o>>2]=a;c[o+4>>2]=e;Kp(n,20971,o)|0;kb(1)}else if((f|0)==6){i=n;return}}function re(a,b){a=a|0;b=+b;ok(c[a+16>>2]|0,b);return}function se(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0;k=i;i=i+16|0;if((i|0)>=(j|0))ba();h=k;f=k+8|0;e=c[a+12>>2]|0;if(e>>>0>b>>>0){nk(c[a+16>>2]|0,f);Ak(c[(c[a+20>>2]|0)+(b<<2)>>2]|0,c[f>>2]|0,d);g[d>>2]=+g[a+24>>2]*+g[d>>2];i=k;return}else{k=c[2348]|0;c[h>>2]=b;c[h+4>>2]=e;Kp(k,20971,h)|0;kb(1)}}function te(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(!b){n=c[2348]|0;c[g>>2]=19140;Kp(n,21040,g)|0;kb(1)}if(d>>>0<2){n=c[2348]|0;c[h>>2]=19140;Kp(n,21121,h)|0;kb(1)}if(!e){n=c[2348]|0;c[k>>2]=19140;Kp(n,21203,k)|0;kb(1)}if(f<0.0|f>1.0){n=c[2348]|0;c[l>>2]=19140;Kp(n,21276,l)|0;kb(1)}else{h=_(_(b<<1,d)|0,e)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(a,_(d,b)|0,e,f,0.0,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(g|0,k|0,(_(_(e,d)|0,b)|0)<<3|4|0)|0;n=ke(b,g,h)|0;i=m;return n|0}return 0}function ue(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var h=0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();m=s+24|0;l=s+16|0;k=s+8|0;h=s;if(!b){r=c[2348]|0;c[h>>2]=19140;Kp(r,19145,h)|0;kb(1)}if(d>>>0<2){r=c[2348]|0;c[k>>2]=19140;Kp(r,19227,k)|0;kb(1)}if(!e){r=c[2348]|0;c[l>>2]=19140;Kp(r,19310,l)|0;kb(1)}if(f<0.0|f>1.0){r=c[2348]|0;c[m>>2]=19140;Kp(r,19384,m)|0;kb(1)}o=_(_(b<<1,d)|0,e)|0;r=o|1;p=i;i=i+((1*(r<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(a,_(d,b)|0,e,f,0.0,p);q=i;i=i+((1*(r<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();a=p+(o<<2)|0;n=+g[p>>2];d=(_(_(e,d)|0,b)|0)<<1|1;h=p+4|0;k=p+(o+-1<<2)|0;l=q+(o<<2)|0;f=0.0;m=0;do{do if(m)if((m|0)==(o|0)){g[l>>2]=n-+g[k>>2];break}else{g[q+(m<<2)>>2]=+g[p+(m+1<<2)>>2]-+g[p+(m+-1<<2)>>2];break}else g[q>>2]=+g[h>>2]-+g[a>>2];while(0);t=+N(+(+g[p+(m<<2)>>2]*+g[q+(m<<2)>>2]));f=t>f?t:f;m=m+1|0}while((m|0)!=(d|0));h=i;i=i+((1*(r<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();k=0;do{g[h+(k<<2)>>2]=+g[q+(k<<2)>>2]*.05999999865889549/f;k=k+1|0}while((k|0)!=(d|0));b=ke(b,h,r)|0;i=s;return b|0}function ve(a,b,d,e,f){a=+a;b=b|0;d=+d;e=+e;f=f|0;var h=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0;q=i;i=i+48|0;if((i|0)>=(j|0))ba();l=q+32|0;n=q+24|0;m=q+16|0;k=q+8|0;h=q;if(a<=0.0){p=c[2348]|0;c[h>>2]=19140;Kp(p,19470,h)|0;kb(1)}if(!b){p=c[2348]|0;c[k>>2]=19140;Kp(p,19540,k)|0;kb(1)}if(!f){p=c[2348]|0;c[m>>2]=19140;Kp(p,19613,m)|0;kb(1)}if(d<=0.0|d>=.5){p=c[2348]|0;c[n>>2]=19140;Kp(p,19690,n)|0;kb(1)}if(e<=0.0){p=c[2348]|0;c[l>>2]=19140;Kp(p,19751,l)|0;kb(1)}p=Xp(56)|0;g[p+12>>2]=a;g[p+16>>2]=1.0/a;c[p>>2]=b;g[p+8>>2]=d;g[p+4>>2]=e;c[p+44>>2]=f;l=_(b<<1,f)|0;h=l|1;m=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();n=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();o=+(f>>>0);Xe(h,d/o,e,0.0,m);k=(_(b,f)|0)<<1|1;a=0.0;h=0;do{a=a+ +g[m+(h<<2)>>2];h=h+1|0}while((h|0)!=(k|0));a=o/a;h=0;do{g[n+(h<<2)>>2]=a*+g[m+(h<<2)>>2];h=h+1|0}while((h|0)!=(k|0));f=ke(f,n,l)|0;c[p+48>>2]=f;mk(c[f+16>>2]|0);c[p+52>>2]=1;f=p+20|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;i=q;return p|0}function we(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+48>>2]|0;d=b+12|0;e=b+20|0;if(c[d>>2]|0){f=0;do{zk(c[(c[e>>2]|0)+(f<<2)>>2]|0);f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}Yp(c[e>>2]|0);pk(c[b+16>>2]|0);Yp(b);Yp(a);return}function xe(a,b,d,e,f,h,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;k=k|0;var 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.0,G=0.0;E=i;i=i+32|0;if((i|0)>=(j|0))ba();A=E+24|0;C=E+16|0;B=E+8|0;z=E;y=E+28|0;D=a+28|0;if(!h){C=a+44|0;d=0;B=0;c[e>>2]=d;c[k>>2]=B;e=c[D>>2]|0;k=c[C>>2]|0;k=e>>>0<k>>>0;k=k&1;i=E;return k|0}q=a+32|0;r=a+48|0;m=a+44|0;s=a+52|0;t=a+36|0;u=a+20|0;v=a+24|0;w=a+40|0;p=a+16|0;n=0;x=0;a:while(1){l=c[D>>2]|0;b:while(1){if(!l)if(+g[q>>2]==0.0){if((n|0)==(d|0)){l=d;a=x;o=25;break a}ok(c[(c[r>>2]|0)+16>>2]|0,+g[b+(n<<2)>>2]);l=c[D>>2]|0;n=n+1|0}else l=0;a=c[m>>2]|0;if(l>>>0>=a>>>0)do{if((n|0)==(d|0)){l=d;a=x;o=25;break a}g[u>>2]=+g[u>>2]+-1.0;g[v>>2]=+g[v>>2]-+(a>>>0);c[D>>2]=l-a;ok(c[(c[r>>2]|0)+16>>2]|0,+g[b+(n<<2)>>2]);n=n+1|0;l=c[D>>2]|0;a=c[m>>2]|0}while(l>>>0>=a>>>0);switch(c[s>>2]|0){case 0:{l=n;o=16;break b}case 1:break;default:{o=24;break a}}o=c[r>>2]|0;a=c[o+12>>2]|0;if(a>>>0<=l>>>0){o=19;break a}nk(c[o+16>>2]|0,y);Ak(c[(c[o+20>>2]|0)+(l<<2)>>2]|0,c[y>>2]|0,t);g[t>>2]=+g[o+24>>2]*+g[t>>2];a=c[D>>2]|0;l=c[m>>2]|0;if((a|0)!=(l+-1|0)){l=a;o=20;break}c[s>>2]=0;c[D>>2]=l}if((o|0)==16){a=c[r>>2]|0;if(!(c[a+12>>2]|0)){o=17;break}nk(c[a+16>>2]|0,y);Ak(c[c[a+20>>2]>>2]|0,c[y>>2]|0,w);F=+g[a+24>>2]*+g[w>>2];g[w>>2]=F;G=+g[q>>2];g[f+(x<<2)>>2]=(1.0-G)*+g[t>>2]+G*F;F=+g[p>>2]+ +g[u>>2];g[u>>2]=F;F=F*+((c[m>>2]|0)>>>0);g[v>>2]=F;o=~~+M(+F);c[D>>2]=o;g[q>>2]=F-+(o|0);c[s>>2]=1}else if((o|0)==20){o=c[r>>2]|0;a=c[o+12>>2]|0;l=l+1|0;if(a>>>0<=l>>>0){o=21;break}nk(c[o+16>>2]|0,y);Ak(c[(c[o+20>>2]|0)+(l<<2)>>2]|0,c[y>>2]|0,w);G=+g[o+24>>2]*+g[w>>2];g[w>>2]=G;F=+g[q>>2];g[f+(x<<2)>>2]=(1.0-F)*+g[t>>2]+F*G;G=+g[p>>2]+ +g[u>>2];g[u>>2]=G;G=G*+((c[m>>2]|0)>>>0);g[v>>2]=G;l=~~+M(+G);c[D>>2]=l;g[q>>2]=G-+(l|0);l=n}a=x+1|0;if(a>>>0<h>>>0){n=l;x=a}else{o=25;break}}if((o|0)==17){E=c[2348]|0;c[z>>2]=0;c[z+4>>2]=0;Kp(E,20971,z)|0;kb(1)}else if((o|0)==19){E=c[2348]|0;c[B>>2]=l;c[B+4>>2]=a;Kp(E,20971,B)|0;kb(1)}else if((o|0)==21){E=c[2348]|0;c[C>>2]=l;c[C+4>>2]=a;Kp(E,20971,C)|0;kb(1)}else if((o|0)==24){E=c[2348]|0;c[A>>2]=19140;Kp(E,19834,A)|0;kb(1)}else if((o|0)==25){c[e>>2]=l;c[k>>2]=a;e=c[D>>2]|0;k=c[m>>2]|0;k=e>>>0<k>>>0;k=k&1;i=E;return k|0}return 0}function ye(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h+8|0;e=h;if(!d){g=c[2348]|0;c[e>>2]=19885;Kp(g,19890,e)|0;kb(1)}if(!a){g=c[2348]|0;c[f>>2]=19885;Kp(g,19957,f)|0;kb(1)}g=Xp(20)|0;c[g+4>>2]=d;c[g+8>>2]=a;e=Xp(d<<2)|0;c[g>>2]=e;f=d+-1|0;a=0;do{c[e+(a<<2)>>2]=c[b+(f-a<<2)>>2];a=a+1|0}while(a>>>0<d>>>0);b=qk(d)|0;c[g+12>>2]=b;c[g+16>>2]=vk(e,d)|0;rk(b);i=h;return g|0}function ze(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(b>>>0<2){n=c[2348]|0;c[g>>2]=19885;Kp(n,20028,g)|0;kb(1)}if(!d){n=c[2348]|0;c[h>>2]=19885;Kp(n,20106,h)|0;kb(1)}if(e<0.0|e>1.0){n=c[2348]|0;c[k>>2]=19885;Kp(n,20179,k)|0;kb(1)}if(f<-1.0|f>1.0){n=c[2348]|0;c[l>>2]=19885;Kp(n,20264,l)|0;kb(1)}else{h=_(b<<1,d)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(a,b,d,e,f,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(g|0,k|0,(_(d,b)|0)<<3|4|0)|0;n=ye(b,g,h)|0;i=m;return n|0}return 0}function Ae(a){a=a|0;uk(c[a+12>>2]|0);wk(c[a+16>>2]|0);Yp(c[a>>2]|0);Yp(a);return}function Be(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;n=i;i=i+32|0;if((i|0)>=(j|0))ba();f=n+16|0;m=n+8|0;g=n;h=a+8|0;if(!(c[h>>2]|0)){i=n;return}k=a+12|0;l=g+4|0;a=a+16|0;e=0;do{o=c[k>>2]|0;p=c[b+(e<<3)+4>>2]|0;c[g>>2]=c[b+(e<<3)>>2];c[l>>2]=p;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];tk(o,f);if(!e){sk(c[k>>2]|0,m);xk(c[a>>2]|0,c[m>>2]|0,d)}e=e+1|0}while(e>>>0<(c[h>>2]|0)>>>0);i=n;return}function Ce(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();f=n+8|0;e=n;if(a>>>0<2){m=c[2348]|0;c[e>>2]=19885;Kp(m,20350,e)|0;kb(1)}if(d>>>0<a>>>0){m=c[2348]|0;c[f>>2]=19885;Kp(m,20418,f)|0;kb(1)}m=Xp(20)|0;c[m+12>>2]=a;k=m+4|0;c[k>>2]=d;l=m+8|0;f=0;while(1){e=_(f,a)|0;if(e>>>0<d>>>0)f=f+1|0;else break}c[l>>2]=f;c[k>>2]=e;k=Xp(e<<2)|0;c[m>>2]=k;if(!e){d=0;d=De(a,k,d)|0;a=m+16|0;c[a>>2]=d;i=n;return m|0}else f=0;do{if(f>>>0<d>>>0)h=+g[b+(f<<2)>>2];else h=0.0;g[k+(f<<2)>>2]=h;f=f+1|0}while(f>>>0<e>>>0);d=De(a,k,e)|0;a=m+16|0;c[a>>2]=d;i=n;return m|0}function De(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+16|0;if((i|0)>=(j|0))ba();f=p+8|0;e=p;if(!a){o=c[2348]|0;c[e>>2]=19885;Kp(o,20497,e)|0;kb(1)}if(!d){o=c[2348]|0;c[f>>2]=19885;Kp(o,20569,f)|0;kb(1)}n=Xp(28)|0;m=n+12|0;c[m>>2]=a;c[n+4>>2]=d;o=Xp(a<<2)|0;c[n+20>>2]=o;k=(d>>>0)/(a>>>0)|0;l=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();d=k+-1|0;if(!k){e=0;do{c[o+(e<<2)>>2]=vk(l,0)|0;e=e+1|0}while(e>>>0<a>>>0);a=n+8|0;c[a>>2]=k;a=qk(k)|0;b=n+16|0;c[b>>2]=a;b=n+24|0;g[b>>2]=1.0;rk(a);i=p;return n|0}else{h=a;e=0}while(1){f=0;do{c[l+(d-f<<2)>>2]=c[b+((_(h,f)|0)+e<<2)>>2];f=f+1|0}while(k>>>0>f>>>0);c[o+(e<<2)>>2]=vk(l,k)|0;e=e+1|0;if(e>>>0>=a>>>0)break;h=c[m>>2]|0}a=n+8|0;c[a>>2]=k;a=qk(k)|0;b=n+16|0;c[b>>2]=a;b=n+24|0;g[b>>2]=1.0;rk(a);i=p;return n|0}function Ee(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(b>>>0<2){n=c[2348]|0;c[g>>2]=19885;Kp(n,20637,g)|0;kb(1)}if(!d){n=c[2348]|0;c[h>>2]=19885;Kp(n,20715,h)|0;kb(1)}if(e<0.0|e>1.0){n=c[2348]|0;c[k>>2]=19885;Kp(n,20792,k)|0;kb(1)}if(f<-1.0|f>1.0){n=c[2348]|0;c[l>>2]=19885;Kp(n,20881,l)|0;kb(1)}else{h=_(b<<1,d)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(a,b,d,e,f,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(g|0,k|0,(_(d,b)|0)<<3|4|0)|0;n=Ce(b,g,h)|0;i=m;return n|0}return 0}function Fe(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+16>>2]|0;d=b+12|0;e=b+20|0;if(c[d>>2]|0){f=0;do{wk(c[(c[e>>2]|0)+(f<<2)>>2]|0);f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}Yp(c[e>>2]|0);uk(c[b+16>>2]|0);Yp(b);Yp(c[a>>2]|0);Yp(a);return}function Ge(a){a=a|0;var b=0,d=0,e=0;b=a+12|0;d=a+20|0;if(c[b>>2]|0){e=0;do{wk(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Yp(c[d>>2]|0);uk(c[a+16>>2]|0);Yp(a);return}function He(a){a=a|0;rk(c[(c[a+16>>2]|0)+16>>2]|0);return}function Ie(a){a=a|0;rk(c[a+16>>2]|0);return}function Je(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();k=m+16|0;n=m;f=m+8|0;l=a+16|0;e=c[b+4>>2]|0;h=c[(c[l>>2]|0)+16>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];tk(h,k);h=a+12|0;if(!(c[h>>2]|0)){i=m;return}a=0;while(1){e=c[l>>2]|0;f=d+(a<<3)|0;b=c[e+12>>2]|0;if(b>>>0<=a>>>0){e=4;break}sk(c[e+16>>2]|0,k);xk(c[(c[e+20>>2]|0)+(a<<2)>>2]|0,c[k>>2]|0,f);p=+g[e+24>>2];e=d+(a<<3)+4|0;o=p*+g[e>>2];g[f>>2]=p*+g[f>>2];g[e>>2]=o;a=a+1|0;if(a>>>0>=(c[h>>2]|0)>>>0){e=6;break}}if((e|0)==4){m=c[2348]|0;c[n>>2]=a;c[n+4>>2]=b;Kp(m,20971,n)|0;kb(1)}else if((e|0)==6){i=m;return}}function Ke(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();e=d+8|0;f=d;a=c[a+16>>2]|0;g=c[b+4>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];tk(a,e);i=d;return}function Le(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0.0,m=0.0;k=i;i=i+16|0;if((i|0)>=(j|0))ba();h=k;f=k+8|0;e=c[a+12>>2]|0;if(e>>>0>b>>>0){sk(c[a+16>>2]|0,f);xk(c[(c[a+20>>2]|0)+(b<<2)>>2]|0,c[f>>2]|0,d);m=+g[a+24>>2];h=d+4|0;l=m*+g[h>>2];g[d>>2]=m*+g[d>>2];g[h>>2]=l;i=k;return}else{k=c[2348]|0;c[h>>2]=b;c[h+4>>2]=e;Kp(k,20971,h)|0;kb(1)}}function Me(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,h=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();l=m+24|0;k=m+16|0;h=m+8|0;g=m;if(!b){n=c[2348]|0;c[g>>2]=19885;Kp(n,21040,g)|0;kb(1)}if(d>>>0<2){n=c[2348]|0;c[h>>2]=19885;Kp(n,21121,h)|0;kb(1)}if(!e){n=c[2348]|0;c[k>>2]=19885;Kp(n,21203,k)|0;kb(1)}if(f<0.0|f>1.0){n=c[2348]|0;c[l>>2]=19885;Kp(n,21276,l)|0;kb(1)}else{h=_(_(b<<1,d)|0,e)|0|1;k=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(a,_(d,b)|0,e,f,0.0,k);g=i;i=i+((1*(h<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();fq(g|0,k|0,(_(_(e,d)|0,b)|0)<<3|4|0)|0;n=De(b,g,h)|0;i=m;return n|0}return 0}function Ne(a,b){a=a|0;b=+b;g[a+24>>2]=b;return}function Oe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0;q=i;i=i+16|0;if((i|0)>=(j|0))ba();h=q+8|0;f=q;if(!b){p=c[2348]|0;c[f>>2]=19885;Kp(p,21361,f)|0;kb(1)}if(!e){p=c[2348]|0;c[h>>2]=19885;Kp(p,21422,h)|0;kb(1)}p=Xp(36)|0;c[p+16>>2]=b;l=p+20|0;c[l>>2]=e;o=e>>>0>b>>>0?e:b;n=p+12|0;c[n>>2]=o;c[p+24>>2]=0;k=p+4|0;c[k>>2]=Xp(e<<2)|0;f=Xp(b<<2)|0;c[p>>2]=f;m=+g[d>>2];h=0;do{g[f+(h<<2)>>2]=+g[a+(h<<2)>>2]/m;h=h+1|0}while(h>>>0<b>>>0);e=c[k>>2]|0;f=c[l>>2]|0;h=0;do{g[e+(h<<2)>>2]=+g[d+(h<<2)>>2]/m;h=h+1|0}while(h>>>0<f>>>0);e=Xp(o<<3)|0;c[p+8>>2]=e;if(!o){i=q;return p|0}f=c[n>>2]|0;h=0;do{g[e+(h<<3)>>2]=0.0;g[e+(h<<3)+4>>2]=0.0;h=h+1|0}while(h>>>0<f>>>0);i=q;return p|0}function Pe(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;g=+g;h=+h;var k=0,l=0,m=0,n=0,o=0,p=0;p=i;k=d<<((b|1|0)==3&1);o=k&1;n=(c|0)==0;o=((k-o|0)>>>1)+o|0;k=n?o*3|0:k+1|0;l=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();m=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Bf(a,b,c,d,e,f,g,h,l,m);b=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();c=i;i=i+((1*(k<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(k|0){d=k<<2;fq(b|0,l|0,d|0)|0;fq(c|0,m|0,d|0)|0}if(n){o=Qe(b,c,o)|0;i=p;return o|0}else{o=Oe(b,k,c,k)|0;i=p;return o|0}return 0}function Qe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;t=i;i=i+32|0;if((i|0)>=(j|0))ba();e=t;r=t+16|0;s=t+4|0;if(!d){q=c[2348]|0;c[e>>2]=19885;Kp(q,21485,e)|0;kb(1)}p=Xp(36)|0;c[p+24>>2]=1;c[p+32>>2]=d;q=Xp(d<<2)|0;c[p+28>>2]=q;c[p+12>>2]=d<<1;e=d*12|0;n=Xp(e)|0;c[p>>2]=n;o=Xp(e)|0;c[p+4>>2]=o;fq(n|0,a|0,e|0)|0;fq(o|0,b|0,e|0)|0;e=s+4|0;b=s+8|0;a=r+4|0;f=r+8|0;k=0;do{l=k*3|0;h=n+(l<<2)|0;l=o+(l<<2)|0;c[r>>2]=c[l>>2];c[r+4>>2]=c[l+4>>2];c[r+8>>2]=c[l+8>>2];c[s>>2]=c[h>>2];c[s+4>>2]=c[h+4>>2];c[s+8>>2]=c[h+8>>2];h=Xp(96)|0;u=+g[r>>2];g[h>>2]=+g[s>>2]/u;g[h+4>>2]=+g[e>>2]/u;g[h+8>>2]=+g[b>>2]/u;g[h+12>>2]=u/u;g[h+16>>2]=+g[a>>2]/u;g[h+20>>2]=+g[f>>2]/u;l=h+24|0;m=l+72|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));c[q+(k<<2)>>2]=h;k=k+1|0}while(k>>>0<d>>>0);i=t;return p|0}function Re(a){a=a|0;var b=0,d=0,e=0;Yp(c[a>>2]|0);Yp(c[a+4>>2]|0);if((c[a+24>>2]|0)!=1){Yp(c[a+8>>2]|0);Yp(a);return}b=a+32|0;d=a+28|0;if(c[b>>2]|0){e=0;do{Yp(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Yp(c[d>>2]|0);Yp(a);return}function Se(a){a=a|0;var b=0,d=0,e=0,f=0;if((c[a+24>>2]|0)==1){f=a+32|0;if(!(c[f>>2]|0))return;a=a+28|0;b=0;do{d=(c[(c[a>>2]|0)+(b<<2)>>2]|0)+24|0;e=d+72|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));b=b+1|0}while(b>>>0<(c[f>>2]|0)>>>0);return}else{d=a+12|0;if(!(c[d>>2]|0))return;a=a+8|0;b=0;do{f=c[a>>2]|0;g[f+(b<<3)>>2]=0.0;g[f+(b<<3)+4>>2]=0.0;b=b+1|0}while(b>>>0<(c[d>>2]|0)>>>0);return}}function Te(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,i=0,j=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0;l=c[b>>2]|0;j=c[b+4>>2]|0;if(c[a+24>>2]|0){i=a+32|0;if(!(c[i>>2]|0)){h=0;b=0}else{f=(c[k>>2]=j,+g[k>>2]);b=a+28|0;h=0;e=(c[k>>2]=l,+g[k>>2]);do{a=c[(c[b>>2]|0)+(h<<2)>>2]|0;x=a+80|0;u=c[x>>2]|0;w=a+84|0;t=c[w>>2]|0;c[a+88>>2]=u;c[a+92>>2]=t;j=a+72|0;v=c[j>>2]|0;l=a+76|0;o=+g[l>>2];c[x>>2]=v;g[w>>2]=o;p=+g[a+16>>2];s=(c[k>>2]=v,+g[k>>2]);q=+g[a+20>>2];r=(c[k>>2]=u,+g[k>>2]);m=(c[k>>2]=t,+g[k>>2]);e=e-s*p-r*q;q=f-o*p-m*q;g[j>>2]=e;g[l>>2]=q;p=+g[a>>2];n=+g[a+4>>2];f=+g[a+8>>2];e=e*p+s*n+r*f;f=q*p+o*n+m*f;h=h+1|0}while(h>>>0<(c[i>>2]|0)>>>0);h=(g[k>>2]=e,c[k>>2]|0);b=(g[k>>2]=f,c[k>>2]|0)}c[d>>2]=h;c[d+4>>2]=b;return}b=c[a+12>>2]|0;h=b+-1|0;if(h|0){i=a+8|0;while(1){w=b+-2|0;b=c[i>>2]|0;x=c[b+(w<<3)+4>>2]|0;c[b+(h<<3)>>2]=c[b+(w<<3)>>2];c[b+(h<<3)+4>>2]=x;b=h+-1|0;if(!b)break;else{x=h;h=b;b=x}}}f=(c[k>>2]=l,+g[k>>2]);e=(c[k>>2]=j,+g[k>>2]);i=c[a+20>>2]|0;if(i>>>0>1){j=c[a+4>>2]|0;h=a+8|0;b=c[h>>2]|0;l=1;do{s=+g[j+(l<<2)>>2];f=f-s*+g[b+(l<<3)>>2];e=e-s*+g[b+(l<<3)+4>>2];l=l+1|0}while((l|0)!=(i|0))}else{b=a+8|0;h=b;b=c[b>>2]|0}g[b>>2]=f;g[b+4>>2]=e;j=c[a+16>>2]|0;if(!j){f=0.0;e=0.0}else{i=c[a>>2]|0;b=c[h>>2]|0;h=0;f=0.0;e=0.0;do{s=+g[i+(h<<2)>>2];f=f+s*+g[b+(h<<3)>>2];e=e+s*+g[b+(h<<3)+4>>2];h=h+1|0}while((h|0)!=(j|0))}g[d>>2]=f;g[d+4>>2]=e;return}function Ue(a,b){a=a|0;b=+b;return Pe(0,0,0,a,b,0.0,.10000000149011612,60.0)|0}function Ve(a){a=+a;var b=0,c=0,d=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();d=b+8|0;c=b;g[d>>2]=1.0;g[d+4>>2]=-1.0;g[c>>2]=1.0;g[c+4>>2]=a+-1.0;c=Oe(d,2,c,2)|0;i=b;return c|0}function We(a,b){a=+a;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,k=0.0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();m=n+8|0;d=n;f=a*14.260000228881836;e=+(b>>>0);if(a>.5|a<=0.0){b=c[2348]|0;h[d>>3]=a;Kp(b,21629,d)|0;kb(1)}else{g=.009999999776482582;k=200.0;l=0}while(1){a=(k+g)*.5;if(a<=0.0){b=4;break}b=(a+-7.949999809265137)/f<e;l=l+1|0;if(l>>>0>=20){b=6;break}else{g=b?a:g;k=b?k:a}}if((b|0)==4){n=c[2348]|0;h[m>>3]=a;Kp(n,21566,m)|0;kb(1)}else if((b|0)==6){i=n;return +a}return +(0.0)}function Xe(a,b,d,e,f){a=a|0;b=+b;d=+d;e=+e;f=f|0;var k=0,l=0,m=0.0,n=0.0,o=0,p=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();l=o+8|0;k=o;if(e<-.5|e>.5){p=c[2348]|0;h[k>>3]=e;Kp(p,21694,k)|0;kb(1)}if(b<0.0|b>.5){p=c[2348]|0;h[l>>3]=b;Kp(p,21763,l)|0;kb(1)}if(!a){Qp(21843,71,1,c[2348]|0)|0;kb(1)}d=+N(+d);if(!(d>50.0))if(d>21.0){n=d+-21.0;n=n*.07885999977588654+ +P(+n,.4000000059604645)*.5842}else n=0.0;else n=(d+-8.699999809265137)*.11020000278949738;m=+((a+-1|0)>>>0)*.5;d=b*2.0;k=0;do{b=+Qh(d*(+(k>>>0)-m+e));g[f+(k<<2)>>2]=b*+Uh(k,a,n,e);k=k+1|0}while((k|0)!=(a|0));i=o;return}function Ye(a,b,d,e,f,k){a=a|0;b=b|0;d=d|0;e=+e;f=+f;k=k|0;var l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;E=i;i=i+80|0;if((i|0)>=(j|0))ba();A=E+16|0;z=E+8|0;m=E;x=E+56|0;y=E+44|0;B=E+32|0;C=E+20|0;t=_(b<<1,d)|0|1;u=+(b>>>0);v=.5/u;w=e/u;n=w*14.260000228881836;o=+(t>>>0);if(w>.5|w<=0.0){F=c[2348]|0;h[m>>3]=w;Kp(F,21629,m)|0;kb(1)}else{p=.009999999776482582;q=200.0;r=0}while(1){l=(p+q)*.5;if(l<=0.0){D=4;break}m=(l+-7.949999809265137)/n<o;r=r+1|0;if(r>>>0>=20){s=l;break}else{p=m?l:p;q=m?q:l}}if((D|0)==4){F=c[2348]|0;h[z>>3]=l;Kp(F,21566,z)|0;kb(1)}g[x>>2]=0.0;w=w*.5;g[x+4>>2]=v-w;g[x+8>>2]=v;g[x+12>>2]=v;g[x+16>>2]=v+w;g[x+20>>2]=.5;g[y>>2]=u;g[y+4>>2]=u*.5;g[y+8>>2]=0.0;c[B>>2]=c[133];c[B+4>>2]=c[134];c[B+8>>2]=c[135];c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;do switch(a|0){case 1:{Xe(t,v,s,f,k);i=E;return}case 2:{$e(t,3,x,y,B,C,0,k);i=E;return}case 3:{Cf(b,d,e,f,k);i=E;return}case 4:{mf(b,d,e,f,k);i=E;return}case 5:{of(b,d,e,f,k);i=E;return}case 6:{qf(b,d,e,f,k);i=E;return}case 7:{Hf(b,d,e,f,k);i=E;return}case 8:{Df(b,d,e,f,k);i=E;return}case 9:{If(b,d,e,f,k);i=E;return}case 10:{uf(b,d,e,f,k);i=E;return}case 11:{sf(b,d,e,f,k);i=E;return}case 12:{tf(b,d,e,f,k);i=E;return}case 13:{nf(b,d,e,f,k);i=E;return}case 14:{pf(b,d,e,f,k);i=E;return}case 15:{rf(b,d,e,f,k);i=E;return}default:{F=c[2348]|0;c[A>>2]=a;Kp(F,21915,A)|0;kb(1)}}while(0)}function Ze(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0,j=0.0,k=0,l=0.0,m=0,n=0;n=_(b<<1,c)|0|1;i=0;f=0.0;do{l=+g[a+(i<<2)>>2];f=f+l*l;i=i+1|0}while((i|0)!=(n|0));l=f;m=c<<1;if(!m){l=0.0;h=0.0;j=+(m>>>0);j=h/j;j=+O(+j);g[d>>2]=j;g[e>>2]=l;return}else{k=1;h=0.0;f=0.0}do{i=_(k,b)|0;i=(i|0)>-1?i:0-i|0;if(i>>>0<n>>>0){c=i;j=0.0;do{j=j+ +g[a+(c<<2)>>2]*+g[a+(c-i<<2)>>2];c=c+1|0}while((c|0)!=(n|0))}else j=0.0;j=+N(+(j/l));f=f+j*j;h=(k|0)==1|j>h?j:h;k=k+1|0}while(k>>>0<=m>>>0);l=+(m>>>0);l=f/l;l=+O(+l);g[d>>2]=l;g[e>>2]=h;return}function _e(a){a=a|0;if(dp(a,21988)|0)if(dp(a,21995)|0)if(dp(a,21998)|0)if(dp(a,22003)|0)if(dp(a,22008)|0)if(dp(a,22014)|0)if(dp(a,22023)|0)if(dp(a,22032)|0)if(dp(a,22040)|0)if(dp(a,22046)|0)if(dp(a,22050)|0)if(dp(a,22057)|0)if(dp(a,22064)|0)if(!(dp(a,22070)|0))a=14;else{a=(dp(a,22077)|0)==0;a=a?15:0}else a=13;else a=12;else a=11;else a=10;else a=9;else a=8;else a=7;else a=6;else a=5;else a=4;else a=3;else a=2;else a=1;return a|0}function $e(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;f=af(a,b,c,d,e,f,g)|0;cf(f,h);gf(f);return}function af(a,b,d,e,f,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0.0;m=b<<1;if(m){k=1;l=0;do{o=+g[d+(l<<2)>>2];k=o<=.5&o>=0.0&1&k;l=l+1|0}while((l|0)!=(m|0));if(m>>>0>1){o=+g[d>>2];l=1;do{t=o;o=+g[d+(l<<2)>>2];k=o>=t&k;l=l+1|0}while((l|0)!=(m|0))}}else k=1;n=(b|0)==0;if(n)l=1;else{m=0;l=1;do{l=+g[f+(m<<2)>>2]>0.0&l;m=m+1|0}while((m|0)!=(b|0))}if(!k){Qp(22087,40,1,c[2348]|0)|0;kb(1)}if(!l){Qp(22128,61,1,c[2348]|0)|0;kb(1)}if(n){Qp(22190,54,1,c[2348]|0)|0;kb(1)}s=Xp(104)|0;c[s>>2]=a;q=a&1;c[s+4>>2]=q;p=(a-q|0)>>>1;c[s+8>>2]=p;q=p+q|0;p=s+12|0;c[p>>2]=q;c[s+28>>2]=j;c[s+88>>2]=Xp((q<<2)+4|0)|0;q=(q<<3)+8|0;c[s+64>>2]=Xp(q)|0;c[s+68>>2]=Xp(q)|0;c[s+72>>2]=Xp(q)|0;q=s+16|0;c[q>>2]=b;r=s+32|0;c[r>>2]=Xp(b<<4)|0;k=b<<3;n=s+36|0;c[n>>2]=Xp(k)|0;j=s+40|0;c[j>>2]=Xp(k)|0;k=Xp(b<<2)|0;m=s+44|0;c[m>>2]=k;if(!i){c[k>>2]=0;k=c[q>>2]|0;if(k>>>0>1){l=1;do{c[(c[m>>2]|0)+(l<<2)>>2]=0;l=l+1|0;k=c[q>>2]|0}while(l>>>0<k>>>0)}}else{c[k>>2]=c[i>>2];k=c[q>>2]|0;if(k>>>0>1){l=1;do{c[(c[m>>2]|0)+(l<<2)>>2]=c[i+(l<<2)>>2];l=l+1|0;k=c[q>>2]|0}while(l>>>0<k>>>0)}}if(k|0){a=c[r>>2]|0;n=c[n>>2]|0;m=c[j>>2]|0;if(!f){l=0;do{f=l<<1;h[a+(f<<3)>>3]=+g[d+(f<<2)>>2];f=f|1;h[a+(f<<3)>>3]=+g[d+(f<<2)>>2];h[n+(l<<3)>>3]=+g[e+(l<<2)>>2];h[m+(l<<3)>>3]=1.0;l=l+1|0}while(l>>>0<k>>>0)}else{l=0;do{i=l<<1;h[a+(i<<3)>>3]=+g[d+(i<<2)>>2];i=i|1;h[a+(i<<3)>>3]=+g[d+(i<<2)>>2];h[n+(l<<3)>>3]=+g[e+(l<<2)>>2];h[m+(l<<3)>>3]=+g[f+(l<<2)>>2];l=l+1|0}while(l>>>0<k>>>0)}}c[s+24>>2]=20;a=s+20|0;c[a>>2]=0;o=.5/+(((c[p>>2]|0)*20|0)>>>0);n=c[q>>2]|0;if(!n){d=0;f=Xp(d)|0;e=s+48|0;c[e>>2]=f;e=Xp(d)|0;f=s+52|0;c[f>>2]=e;f=Xp(d)|0;e=s+56|0;c[e>>2]=f;d=Xp(d)|0;e=s+60|0;c[e>>2]=d;e=s+96|0;c[e>>2]=0;e=s+100|0;c[e>>2]=0;bf(s);return s|0}l=c[r>>2]|0;k=0;m=0;do{e=m<<1;k=(~~((+h[l+((e|1)<<3)>>3]-+h[l+(e<<3)>>3])/o+1.0)>>>0)+k|0;m=m+1|0}while(m>>>0<n>>>0);c[a>>2]=k;d=k<<3;f=Xp(d)|0;e=s+48|0;c[e>>2]=f;e=Xp(d)|0;f=s+52|0;c[f>>2]=e;f=Xp(d)|0;e=s+56|0;c[e>>2]=f;d=Xp(d)|0;e=s+60|0;c[e>>2]=d;e=s+96|0;c[e>>2]=0;e=s+100|0;c[e>>2]=0;bf(s);return s|0}function bf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0,k=0.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.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;if((i|0)>=(j|0))ba();A=D;x=.5/+((_(c[a+12>>2]|0,c[a+24>>2]|0)|0)>>>0);y=a+16|0;a:do if(!(c[y>>2]|0)){B=a+28|0;C=0}else{m=a+32|0;n=a+28|0;o=a+48|0;p=a+96|0;q=a+36|0;r=a+52|0;s=a+44|0;t=a+40|0;u=a+56|0;v=a+100|0;z=0;d=0;b:while(1){l=z<<1;f=c[m>>2]|0;g=+h[f+(l<<3)>>3];w=+h[f+((l|1)<<3)>>3];if((z|0)==0?(c[n>>2]|0)!=0:0)g=g<x?x:g;e=~~((w-g)/x+.5)>>>0;e=(e|0)==0?1:e;f=0;l=d;while(1){k=g+x*+(f>>>0);h[(c[o>>2]|0)+(l<<3)>>3]=k;b=c[p>>2]|0;if(!b){h[(c[r>>2]|0)+(l<<3)>>3]=+h[(c[q>>2]|0)+(z<<3)>>3];b=c[(c[s>>2]|0)+(z<<2)>>2]|0;switch(b|0){case 0:{k=1.0;break}case 1:{k=+X(+(x*(+(f>>>0)*2.0)));break}case 2:{k=x*(+(f>>>0)*2.700000047683716)+1.0;break}default:break b}h[(c[u>>2]|0)+(l<<3)>>3]=k*+h[(c[t>>2]|0)+(z<<3)>>3]}else sb[b&0](k,c[v>>2]|0,(c[r>>2]|0)+(l<<3)|0,(c[u>>2]|0)+(l<<3)|0)|0;d=l+1|0;f=f+1|0;if(f>>>0>=e>>>0){b=l;break}else l=d}l=c[y>>2]|0;h[(c[o>>2]|0)+(b<<3)>>3]=w;z=z+1|0;if(z>>>0>=l>>>0){B=n;C=d;break a}}z=c[2348]|0;c[A>>2]=b;Kp(z,22245,A)|0;kb(1)}while(0);c[a+20>>2]=C;d=(c[a+4>>2]|0)==0;if(!(c[B>>2]|0)){if((C|0)==0|d^1){i=D;return}e=c[a+48>>2]|0;f=c[a+52>>2]|0;b=c[a+56>>2]|0;d=0;do{a=e+(d<<3)|0;x=+Q(+(+h[a>>3]*3.141592653589793));B=f+(d<<3)|0;h[B>>3]=+h[B>>3]/x;x=+Q(+(+h[a>>3]*3.141592653589793));a=b+(d<<3)|0;h[a>>3]=x*+h[a>>3];d=d+1|0}while(d>>>0<C>>>0);i=D;return}b=(C|0)!=0;if(d){if(!b){i=D;return}e=c[a+48>>2]|0;f=c[a+52>>2]|0;b=c[a+56>>2]|0;d=0;do{a=e+(d<<3)|0;x=+R(+(+h[a>>3]*3.141592653589793));B=f+(d<<3)|0;h[B>>3]=+h[B>>3]/x;x=+R(+(+h[a>>3]*3.141592653589793));a=b+(d<<3)|0;h[a>>3]=x*+h[a>>3];d=d+1|0}while(d>>>0<C>>>0);i=D;return}else{if(!b){i=D;return}e=c[a+48>>2]|0;f=c[a+52>>2]|0;b=c[a+56>>2]|0;d=0;do{a=e+(d<<3)|0;x=+R(+(+h[a>>3]*6.283185307179586));B=f+(d<<3)|0;h[B>>3]=+h[B>>3]/x;x=+R(+(+h[a>>3]*6.283185307179586));a=b+(d<<3)|0;h[a>>3]=x*+h[a>>3];d=d+1|0}while(d>>>0<C>>>0);i=D;return}}function cf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.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,u=0,v=0,w=0.0,x=0;v=a+12|0;d=c[v>>2]|0;t=a+20|0;u=a+88|0;if((d|0)!=-1){f=c[u>>2]|0;e=0;do{c[f+(e<<2)>>2]=((_((c[t>>2]|0)+-1|0,e)|0)>>>0)/(d>>>0)|0;e=e+1|0;d=c[v>>2]|0}while(e>>>0<(d+1|0)>>>0)}m=a+92|0;n=a+60|0;o=a+48|0;p=a+64|0;q=a+72|0;r=a+68|0;k=a+56|0;l=a+52|0;s=0;while(1){df(a);if(c[t>>2]|0){d=0;do{i=+Q(+(+h[(c[o>>2]|0)+(d<<3)>>3]*6.283185307179586));i=+Lh(c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,i,(c[v>>2]|0)+1|0);h[(c[n>>2]|0)+(d<<3)>>3]=+h[(c[k>>2]|0)+(d<<3)>>3]*(+h[(c[l>>2]|0)+(d<<3)>>3]-i);d=d+1|0}while(d>>>0<(c[t>>2]|0)>>>0)}ef(a);if(!(c[m>>2]|0)){d=12;break}d=c[v>>2]|0;if((d|0)==-1){i=0.0;g=0.0}else{e=c[u>>2]|0;f=c[n>>2]|0;i=0.0;g=0.0;j=0;while(1){w=+N(+(+h[f+(c[e+(j<<2)>>2]<<3)>>3]));x=(j|0)==0;g=x|w<g?w:g;i=x|w>i?w:i;if((j|0)==(d|0))break;else j=j+1|0}}s=s+1|0;if(!(s>>>0<40?!((i-g)/i<1.0000000474974513e-03):0)){d=12;break}}if((d|0)==12){ff(a,b);return}}function df(a){a=a|0;var b=0.0,d=0,e=0.0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0;k=a+12|0;f=(c[k>>2]|0)+1|0;if(!f){f=0;d=c[a+64>>2]|0}else{g=c[a+88>>2]|0;i=c[a+48>>2]|0;d=c[a+64>>2]|0;j=0;do{h[d+(j<<3)>>3]=+Q(+(+h[i+(c[g+(j<<2)>>2]<<3)>>3]*6.283185307179586));j=j+1|0}while(j>>>0<f>>>0)}g=a+68|0;Kh(d,f,c[g>>2]|0);n=c[k>>2]|0;m=(n|0)==-1;if(m){h[a+80>>3]=r;return}d=c[g>>2]|0;f=c[a+88>>2]|0;g=c[a+52>>2]|0;i=c[a+56>>2]|0;j=n+1|0;k=0;e=0.0;b=0.0;do{o=+h[d+(k<<3)>>3];l=c[f+(k<<2)>>2]|0;e=e+o*+h[g+(l<<3)>>3];b=b+(k&1|0?-1.0:1.0)*(o/+h[i+(l<<3)>>3]);k=k+1|0}while(k>>>0<j>>>0);b=e/b;l=a+80|0;h[l>>3]=b;if(m)return;i=c[a+88>>2]|0;j=c[a+52>>2]|0;k=c[a+56>>2]|0;g=c[a+72>>2]|0;f=n+1|0;d=0;while(1){a=c[i+(d<<2)>>2]|0;h[g+(d<<3)>>3]=+h[j+(a<<3)>>3]-+((d<<1&2^2)+-1|0)*b/+h[k+(a<<3)>>3];d=d+1|0;if(d>>>0>=f>>>0)break;b=+h[l>>3]}return}function ef(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;r=i;i=i+16|0;if((i|0)>=(j|0))ba();n=r;l=c[a+12>>2]|0;m=(c[a+16>>2]|0)+l<<1;q=i;i=i+((1*(m<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();c[q>>2]=0;f=(c[a+20>>2]|0)+-1|0;a:do if(f>>>0>1){d=c[a+60>>2]|0;e=1;b=1;while(1){g=+h[d+(e<<3)>>3];if((g>=0.0?+h[d+(e+-1<<3)>>3]<=g:0)?+h[d+(e+1<<3)>>3]<=g:0)p=9;else if((g<0.0?+h[d+(e+-1<<3)>>3]>=g:0)?+h[d+(e+1<<3)>>3]>=g:0)p=9;if((p|0)==9){p=0;if(b>>>0>=m>>>0)break;c[q+(b<<2)>>2]=e;b=b+1|0}e=e+1|0;if(e>>>0>=f>>>0){k=b;break a}}Ha(22307,22324,711,22350)}else k=1;while(0);if(k>>>0>=m>>>0)Ha(22307,22324,725,22350);d=k+1|0;c[q+(k<<2)>>2]=f;o=l+1|0;if(d>>>0<o>>>0){q=c[2348]|0;c[n>>2]=o;c[n+4>>2]=d;Kp(q,22371,n)|0;c[a+92>>2]=0;i=r;return}if(d>>>0>m>>>0)Ha(22472,22324,742,22350);b=d-l+-1|0;if(b|0){n=c[a+60>>2]|0;m=d;l=b;while(1){b:do if(m>>>0>1){e=c[q>>2]|0;f=e;k=1;b=0;e=+h[n+(e<<3)>>3]>0.0&1;while(1){d=c[q+(k<<2)>>2]|0;g=+h[n+(d<<3)>>3];s=+N(+g);f=s<+N(+(+h[n+(f<<3)>>3]));b=f?k:b;if(!e)if(!(g>=0.0)){b=k;break}else e=1;else if(g<0.0)e=0;else{b=k;break}d=k+1|0;if(d>>>0>=m>>>0){p=29;break b}f=c[q+(b<<2)>>2]|0;k=d}s=+N(+(+h[n+(d<<3)>>3]));k=b+-1|0;f=s<+N(+(+h[n+(c[q+(k<<2)>>2]<<3)>>3]));b=f?b:k}else{b=0;p=29}while(0);if((p|0)==29){p=0;if((l|0)==1){s=+N(+(+h[n+(c[q>>2]<<3)>>3]));b=m+-1|0;k=s<+N(+(+h[n+(c[q+(b<<2)>>2]<<3)>>3]));b=k?0:b}}if(b>>>0<m>>>0)do{k=b;b=b+1|0;c[q+(k<<2)>>2]=c[q+(b<<2)>>2]}while((b|0)!=(m|0));l=l+-1|0;if(!l)break;else m=m+-1|0}}f=a+92|0;c[f>>2]=0;b=a+88|0;if(!o){d=0;b=c[b>>2]|0}else{b=c[b>>2]|0;d=0;e=0;do{d=((c[b+(e<<2)>>2]|0)!=(c[q+(e<<2)>>2]|0)&1)+d|0;c[f>>2]=d;e=e+1|0}while(e>>>0<o>>>0);d=o<<2}gq(b|0,q|0,d|0)|0;i=r;return}function ff(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;df(a);x=a+12|0;k=c[x>>2]|0;w=a+4|0;f=c[w>>2]|0;v=k-f|0;e=v+1|0;y=i;i=i+((1*(e<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();a:do if(!e)e=c[a+28>>2]|0;else{t=a+64|0;u=a+72|0;r=a+68|0;s=a+28|0;p=k+1-f|0;f=0;while(1){d=+(f>>>0);l=+Q(+(d/+((c[a>>2]|0)>>>0)*6.283185307179586));l=+Lh(c[t>>2]|0,c[u>>2]|0,c[r>>2]|0,l,k+1|0);e=c[s>>2]|0;if((e|0)==0?(c[w>>2]|0)==0:0)d=+Q(+(d*3.141592653589793/+((c[a>>2]|0)>>>0)));else d=1.0;h[y+(f<<3)>>3]=l*d;f=f+1|0;if((f|0)==(p|0))break a;k=c[x>>2]|0}}while(0);if(e|0)switch(c[w>>2]|0){case 1:{Qp(22490,73,1,c[2348]|0)|0;i=z;return}case 0:{Qp(22490,73,1,c[2348]|0)|0;i=z;return}default:{i=z;return}}p=c[a>>2]|0;if(!p){i=z;return}q=+h[y>>3];o=+(v>>>0);m=+((1-(c[w>>2]|0)|0)>>>0)*.5;e=c[x>>2]|0;n=+(p>>>0);if(e>>>0>1)f=0;else{d=q/n;e=0;do{g[b+(e<<2)>>2]=d;e=e+1|0}while(e>>>0<p>>>0);i=z;return}while(1){l=(+(f>>>0)-o+m)/n*6.283185307179586;k=1;d=q;do{d=d+ +h[y+(k<<3)>>3]*2.0*+Q(+(l*+(k>>>0)));k=k+1|0}while(k>>>0<e>>>0);g[b+(f<<2)>>2]=d/n;f=f+1|0;if(f>>>0>=p>>>0)break;e=c[x>>2]|0}i=z;return}function gf(a){a=a|0;Yp(c[a+88>>2]|0);Yp(c[a+64>>2]|0);Yp(c[a+68>>2]|0);Yp(c[a+72>>2]|0);Yp(c[a+48>>2]|0);Yp(c[a+52>>2]|0);Yp(c[a+56>>2]|0);Yp(c[a+60>>2]|0);Yp(c[a+32>>2]|0);Yp(c[a+36>>2]|0);Yp(c[a+40>>2]|0);Yp(c[a+44>>2]|0);Yp(a);return}function hf(a,b,d,e,f,h,k){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=+h;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0;q=i;if(!d){Qp(22564,58,1,c[2348]|0)|0;kb(1)}if(!e){Qp(22623,58,1,c[2348]|0)|0;kb(1)}if(f<0.0|f>1.0){Qp(22682,55,1,c[2348]|0)|0;kb(1)}p=_(d<<1,e)|0|1;l=i;i=i+((1*(p<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();m=i;i=i+((1*(p<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();o=i;i=i+((1*(p<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();switch(a|0){case 4:{jf(d,e,f,l);break}case 5:{kf(d,e,f,l);break}case 6:{lf(d,e,f,l);break}default:{Qp(22784,65,1,c[2348]|0)|0;kb(1)}}a=_(e,d)|0;n=a<<1|1;if(!b){e=0;do{c[m+(e<<3)>>2]=c[l+(e<<2)>>2];g[m+(e<<3)+4>>2]=0.0;e=e+1|0}while((e|0)!=(n|0))}else{e=0;do{g[m+(e<<3)>>2]=+O(+(+g[l+(e<<2)>>2]));g[m+(e<<3)+4>>2]=0.0;e=e+1|0}while((e|0)!=(n|0))}fl(p,m,o,-1,0);a=a+1|0;h=+(d>>>0);f=+(p>>>0);e=0;do{g[k+(e<<2)>>2]=h*+g[o+((((a+e|0)>>>0)%(p>>>0)|0)<<3)>>2]/f;e=e+1|0}while((e|0)!=(n|0));i=q;return}function jf(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;h=1.0-c;j=+(a>>>0);k=h*.5/j;l=.5/j;i=c+1.0;j=i*.5/j;e=.6931471824645996/(l*c);f=+((_(a<<1,b)|0|1)>>>0);h=l*h;i=l*i;a=(_(b,a)|0)<<1|1;b=0;do{c=+(b>>>0)/f;c=+N(+(c>.5?c+-1.0:c));do if(!(c<k)){if(!(c>k&c<j)){g[d+(b<<2)>>2]=0.0;break}if(c<l){g[d+(b<<2)>>2]=+X(+(e*(h-c)));break}else{g[d+(b<<2)>>2]=1.0-+X(+(e*(c-i)));break}}else g[d+(b<<2)>>2]=1.0;while(0);b=b+1|0}while((b|0)!=(a|0));return}function kf(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;h=1.0-c;j=+(a>>>0);k=h*.5/j;l=.5/j;i=c+1.0;j=i*.5/j;e=1.316957950592041/(l*c);f=+((_(a<<1,b)|0|1)>>>0);h=l*h;i=l*i;a=(_(b,a)|0)<<1|1;b=0;do{c=+(b>>>0)/f;c=+N(+(c>.5?c+-1.0:c));do if(!(c<k)){if(!(c>k&c<j)){g[d+(b<<2)>>2]=0.0;break}if(c<l){g[d+(b<<2)>>2]=1.0/+Eo(e*(c-h));break}else{g[d+(b<<2)>>2]=1.0-1.0/+Eo(e*(i-c));break}}else g[d+(b<<2)>>2]=1.0;while(0);b=b+1|0}while((b|0)!=(a|0));return}function lf(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0.0,h=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;j=1.0-d;k=+(a>>>0);n=j*.5/k;o=.5/k;h=d+1.0;k=h*.5/k;l=1.0/(o*(d*2.0));m=+((_(a<<1,b)|0|1)>>>0);f=l/(1.316957950592041/(o*d));h=o*h;i=c[2348]|0;j=o*j;a=(_(b,a)|0)<<1|1;b=0;do{d=+(b>>>0)/m;d=+N(+(d>.5?d+-1.0:d));do if(!(d<n)){if(!(d>n&d<k)){g[e+(b<<2)>>2]=0.0;break}if(d<o){d=l*(h-d);if(d<=0.0|d>1.0){Qp(22738,45,1,i)|0;d=0.0}else{d=1.0/d;d=+Y(+(d+ +O(+(d+-1.0))*+O(+(d+1.0))))}g[e+(b<<2)>>2]=1.0-f*d;break}else{d=l*(d-j);if(d<=0.0|d>1.0){Qp(22738,45,1,i)|0;d=0.0}else{d=1.0/d;d=+Y(+(d+ +O(+(d+-1.0))*+O(+(d+1.0))))}g[e+(b<<2)>>2]=f*d;break}}else g[e+(b<<2)>>2]=1.0;while(0);b=b+1|0}while((b|0)!=(a|0));return}function mf(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;hf(4,0,a,b,c,0.0,e);return}function nf(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;hf(4,1,a,b,c,0.0,e);return}function of(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;hf(5,0,a,b,c,0.0,e);return}function pf(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;hf(5,1,a,b,c,0.0,e);return}function qf(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;hf(6,0,a,b,c,0.0,e);return}function rf(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;hf(6,1,a,b,c,0.0,e);return}function sf(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0;if(!a){Qp(22850,56,1,c[2348]|0)|0;kb(1)}if(!b){Qp(22907,56,1,c[2348]|0)|0;kb(1)}if(d<0.0|d>1.0){Qp(22964,53,1,c[2348]|0)|0;kb(1)}i=+(a>>>0);h=+(b>>>0);d=d*6.283185307179586;b=(_(b,a)|0)<<1|1;a=0;do{j=+(a>>>0)/i-h+e;k=+Ph(d*(j+-.5)*1.2011224031448364);g[f+(a<<2)>>2]=k-+Ph(d*(j+.5)*1.2011224031448364);a=a+1|0}while((a|0)!=(b|0));d=0.0;a=0;do{d=d+ +g[f+(a<<2)>>2];a=a+1|0}while((a|0)!=(b|0));d=3.141592653589793/(d*2.0);a=0;do{l=f+(a<<2)|0;g[l>>2]=d*+g[l>>2];a=a+1|0}while((a|0)!=(b|0));a=0;do{l=f+(a<<2)|0;g[l>>2]=i*+g[l>>2];a=a+1|0}while((a|0)!=(b|0));return}function tf(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0,G=0;F=i;if(!a){Qp(23018,56,1,c[2348]|0)|0;kb(1)}if(!b){Qp(23075,56,1,c[2348]|0)|0;kb(1)}if(d<0.0|d>1.0){Qp(23132,53,1,c[2348]|0)|0;kb(1)}C=_(a<<1,b)|0|1;h=i;i=i+((1*(C<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();D=i;i=i+((1*(C<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();sf(a,b,d,0.0,h);n=i;i=i+((1*(C<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();o=i;i=i+((1*(C<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();p=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();q=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();r=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();B=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();w=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();x=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();y=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();z=i;i=i+((1*(C<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Ye(1,a,b,d,0.0,n);E=+(a>>>0);Xe(C,(d*.1+.699999988079071)/E,60.0,0.0,o);v=_(b,a)|0;A=v<<1|1;b=0;do{G=((b+v|0)>>>0)%(C>>>0)|0;c[q+(b<<3)>>2]=c[n+(G<<2)>>2];g[q+(b<<3)+4>>2]=0.0;c[r+(b<<3)>>2]=c[o+(G<<2)>>2];g[r+(b<<3)+4>>2]=0.0;c[p+(b<<3)>>2]=c[h+(G<<2)>>2];g[p+(b<<3)+4>>2]=0.0;b=b+1|0}while((b|0)!=(A|0));fl(C,q,x,1,0);fl(C,r,y,1,0);fl(C,p,w,1,0);t=+g[x>>2];s=+g[y>>2];m=0.0;l=0.0;k=0.0;b=0;while(1){d=+g[w+(b<<3)>>2];if(b){k=d<k?d:k;e=+g[x+(b<<3)>>2];l=e<l?e:l;e=+g[y+(b<<3)>>2];if(e<m)u=13;else e=m}else{e=s;l=t;k=d;u=13}if((u|0)==13)u=0;b=b+1|0;if((b|0)==(A|0)){m=e;break}else m=e}e=+g[y>>2];d=e;b=0;while(1){t=(d-m)/e;g[z+(b<<3)>>2]=(+g[x+(b<<3)>>2]-l+1.0000000474974513e-03)/(+g[w+(b<<3)>>2]-k+1.0000000474974513e-03)*t;g[z+(b<<3)+4>>2]=t*0.0;b=b+1|0;if((b|0)==(A|0))break;d=+g[y+(b<<3)>>2]}fl(C,z,B,-1,0);h=v+1|0;e=+((_(C,a)|0)>>>0);b=0;do{g[D+(b<<2)>>2]=+g[B+((((h+b|0)>>>0)%(C>>>0)|0)<<3)>>2]/e;b=b+1|0}while((b|0)!=(A|0));b=0;do{g[f+(b<<2)>>2]=E*(E*+g[D+(b<<2)>>2]);b=b+1|0}while((b|0)!=(A|0));i=F;return}function uf(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0.0;v=i;i=i+80|0;if((i|0)>=(j|0))ba();n=v+48|0;o=v+32|0;t=v+20|0;u=v+8|0;p=v+4|0;q=v;if(a>>>0<2){Qp(23186,53,1,c[2348]|0)|0;kb(1)}if(!b){Qp(23240,53,1,c[2348]|0)|0;kb(1)}if(d<0.0|d>1.0){Qp(23294,50,1,c[2348]|0)|0;kb(1)}h=a<<1;m=_(h,b)|0|1;w=1.0/+(h>>>0);e=w;r=d;g[n>>2]=0.0;h=n+4|0;g[h>>2]=e*(1.0-r);g[n+8>>2]=w;g[n+12>>2]=w;g[n+16>>2]=e*(r+1.0);g[n+20>>2]=.5;g[o>>2]=1.0;g[o+4>>2]=.7071067690849304;g[o+8>>2]=0.0;c[t>>2]=c[133];c[t+4>>2]=c[134];c[t+8>>2]=c[135];c[u>>2]=c[136];c[u+4>>2]=c[137];c[u+8>>2]=c[138];k=i;i=i+((1*(m<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();$e(m,3,n,o,t,u,0,k);l=m<<2;fq(f|0,k|0,l|0)|0;Ze(k,a,b,q,p);r=+g[q>>2];s=0;do{g[h>>2]=e*(1.0-+(s>>>0)*d/100.0);$e(m,3,n,o,t,u,0,k);Ze(k,a,b,q,p);w=r;r=+g[q>>2];if(r>w)break;fq(f|0,k|0,l|0)|0;s=s+1|0}while(s>>>0<100);k=(_(b,a)|0)<<1|1;e=0.0;h=0;do{w=+g[f+(h<<2)>>2];e=e+w*w;h=h+1|0}while((h|0)!=(k|0));e=+O(+(+(a>>>0)/e));h=0;do{a=f+(h<<2)|0;g[a>>2]=e*+g[a>>2];h=h+1|0}while((h|0)!=(k|0));i=v;return}function vf(b,d,e,f){b=b|0;d=d|0;e=+e;f=f|0;var h=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0;A=i;if(e<0.0){Qp(23345,53,1,c[2348]|0)|0;kb(1)}z=i;i=i+((1*d|0)+15&-16)|0;if((i|0)>=(j|0))ba();eq(z|0,0,d|0)|0;y=(d|0)==0;if(y){b=0;wf(f,d,b);i=A;return}else{x=0;k=0;h=0}do{p=z+x|0;a:do if((a[p>>0]|0)==0?(v=b+(x<<3)|0,w=+g[b+(x<<3)+4>>2],!(+N(+w)<e)):0){l=0;while(1){if(((((l|0)!=(x|0)?(q=z+l|0,(a[q>>0]|0)==0):0)?(r=b+(l<<3)|0,s=b+(l<<3)+4|0,t=+g[s>>2],!(+N(+t)<e)):0)?+N(+(t+w))<e:0)?(u=+g[v>>2],+N(+(u-+g[r>>2]))<e):0){l=q;n=r;o=s;m=u;break}l=l+1|0;if(l>>>0>=d>>>0)break a}B=k+1|0;g[f+(k<<3)>>2]=m;g[f+(k<<3)+4>>2]=w;o=c[o>>2]|0;c[f+(B<<3)>>2]=c[n>>2];c[f+(B<<3)+4>>2]=o;a[p>>0]=1;a[l>>0]=1;k=k+2|0;h=h+1|0}while(0);x=x+1|0}while((x|0)!=(d|0));if(k>>>0>d>>>0)Ha(23399,23407,102,23431);if(y){B=h;wf(f,d,B);i=A;return}n=c[2348]|0;o=0;do{l=z+o|0;do if(!(a[l>>0]|0)){m=+g[b+(o<<3)+4>>2];if(m>e){Qp(23447,61,1,n)|0;break}else{c[f+(k<<3)>>2]=c[b+(o<<3)>>2];g[f+(k<<3)+4>>2]=m;a[l>>0]=1;k=k+1|0;break}}while(0);o=o+1|0}while((o|0)!=(d|0));wf(f,d,h);i=A;return}function wf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+48|0;if((i|0)>=(j|0))ba();e=x+32|0;f=x+24|0;h=x+16|0;o=x+8|0;p=x;q=(d|0)==0;if(!q){r=p+4|0;s=o+4|0;t=h+4|0;u=f+4|0;w=0;do{v=w<<1;l=a+(v<<3)|0;n=a+(v<<3)+4|0;m=+g[n>>2];k=+g[l>>2];if(!(m<0.0)){g[h>>2]=k;g[t>>2]=m;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Ko(f,e);k=+g[f>>2];m=+g[u>>2]}g[l>>2]=k;g[n>>2]=m;g[p>>2]=k;g[r>>2]=m;c[e>>2]=c[p>>2];c[e+4>>2]=c[p+4>>2];Ko(o,e);n=c[s>>2]|0;v=v|1;c[a+(v<<3)>>2]=c[o>>2];c[a+(v<<3)+4>>2]=n;w=w+1|0}while((w|0)!=(d|0));if(!q){q=d+-1|0;o=0;do{if(q>>>0>o>>>0){e=d;p=q;while(1){e=e<<1;f=e+-4|0;h=a+(f<<3)|0;k=+g[h>>2];l=p<<1;n=a+(l<<3)|0;m=+g[n>>2];if(k>m){v=a+(f<<3)+4|0;t=c[v>>2]|0;s=a+(l<<3)+4|0;w=c[s>>2]|0;g[h>>2]=m;c[v>>2]=w;g[n>>2]=k;c[s>>2]=t;s=e+-3|0;n=a+(s<<3)|0;t=c[n>>2]|0;s=a+(s<<3)+4|0;v=c[s>>2]|0;w=l|1;u=a+(w<<3)|0;w=a+(w<<3)+4|0;r=c[w>>2]|0;c[n>>2]=c[u>>2];c[s>>2]=r;c[u>>2]=t;c[w>>2]=v}e=p+-1|0;if(e>>>0>o>>>0){w=p;p=e;e=w}else break}}o=o+1|0}while((o|0)!=(d|0))}}e=d<<1;if(e>>>0>=b>>>0){i=x;return}o=b+-1|0;do{if(o>>>0>e>>>0){f=b;n=o;while(1){f=f+-2|0;h=a+(f<<3)|0;k=+g[h>>2];l=a+(n<<3)|0;m=+g[l>>2];if(k>m){v=a+(f<<3)+4|0;w=c[v>>2]|0;d=a+(n<<3)+4|0;u=c[d>>2]|0;g[h>>2]=m;c[v>>2]=u;g[l>>2]=k;c[d>>2]=w}f=n+-1|0;if(f>>>0>e>>>0){d=n;n=f;f=d}else break}}e=e+1|0}while((e|0)!=(b|0));i=x;return}function xf(a,b,c,d,e,f,k,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;k=k|0;l=l|0;m=m|0;var n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;B=i;i=i+64|0;if((i|0)>=(j|0))ba();x=B+48|0;y=B+32|0;z=B+16|0;A=B;o=+g[e>>2];n=+g[e+4>>2];if(!d){s=o;f=n;k=m+4|0;g[m>>2]=s;g[k>>2]=f;i=B;return}v=x+8|0;w=y+8|0;t=z+8|0;u=A+8|0;e=0;do{if(e>>>0<b>>>0){q=+g[a+(e<<3)>>2]*f;p=+g[a+(e<<3)+4>>2]*f;Zn(x,q+1.0,p,1.0-q,-p);p=+h[v>>3];q=+h[x>>3]}else{p=0.0;q=-1.0}D=k+(e<<3)|0;g[D>>2]=q;C=k+(e<<3)+4|0;g[C>>2]=p;r=+g[c+(e<<3)>>2]*f;s=+g[c+(e<<3)+4>>2]*f;Zn(y,r+1.0,s,1.0-r,-s);s=+h[y>>3];r=+h[w>>3];g[l+(e<<3)>>2]=s;g[l+(e<<3)+4>>2]=r;Zn(z,1.0-s,-r,1.0-+g[D>>2],-+g[C>>2]);r=+h[z>>3];s=+h[t>>3];q=o;p=n;o=q*r-p*s;n=p*r+q*s;if((o!=o|0.0!=0.0)&(n!=n|0.0!=0.0)){$n(A,q,p,r,s);o=+h[A>>3];n=+h[u>>3]}e=e+1|0}while((e|0)!=(d|0));D=m+4|0;g[m>>2]=o;g[D>>2]=n;i=B;return}function yf(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0.0;r=i;i=i+16|0;if((i|0)>=(j|0))ba();p=r;q=i;i=i+((1*(d+1<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Oh(b,d,q);b=0;do{c[h+(b<<2)>>2]=c[q+(d-b<<3)>>2];b=b+1|0}while(b>>>0<=d>>>0);Oh(a,d,q);o=+g[e>>2];n=+g[e+4>>2];b=0;do{e=d-b|0;l=+g[q+(e<<3)>>2];m=+g[q+(e<<3)+4>>2];k=l*o-m*n;s=m*o+l*n;if((k!=k|0.0!=0.0)&(s!=s|0.0!=0.0)){ao(p,l,m,o,n);k=+g[p>>2]}g[f+(b<<2)>>2]=k;b=b+1|0}while(b>>>0<=d>>>0);i=r;return}function zf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0.0,k=0.0,l=0.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,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0;C=i;i=i+16|0;if((i|0)>=(j|0))ba();y=C+8|0;z=C;B=i;i=i+((1*(c<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();vf(a,c,9.999999974752427e-07,B);A=i;i=i+((1*(c<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();vf(b,c,9.999999974752427e-07,A);w=c&1;x=(c-w|0)>>>1;if(!x)a=0;else{u=c>>>1;v=0;do{o=v<<1;k=+g[A+(o<<3)>>2];l=+g[A+(o<<3)+4>>2];b=o|1;D=+g[A+(b<<3)>>2];m=+g[A+(b<<3)+4>>2];n=-D;p=+g[B+(o<<3)>>2];q=+g[B+(o<<3)+4>>2];r=+g[B+(b<<3)>>2];s=+g[B+(b<<3)+4>>2];t=-r;b=v*3|0;g[f+(b<<2)>>2]=1.0;o=b+1|0;g[f+(o<<2)>>2]=n-k;h=k*D-l*m;D=l*D+k*m;if((h!=h|0.0!=0.0)&(D!=D|0.0!=0.0)){ao(y,-k,-l,n,-m);h=+g[y>>2]}a=b+2|0;g[f+(a<<2)>>2]=h;g[e+(b<<2)>>2]=1.0;g[e+(o<<2)>>2]=t-p;h=p*r-q*s;D=q*r+p*s;if((h!=h|0.0!=0.0)&(D!=D|0.0!=0.0)){ao(z,-p,-q,t,-s);h=+g[z>>2]}g[e+(a<<2)>>2]=h;v=v+1|0}while((v|0)!=(u|0));a=x*3|0}if(w|0){z=c+-1|0;t=-+g[A+(z<<3)>>2];D=-+g[B+(z<<3)>>2];g[f+(a<<2)>>2]=1.0;A=a+1|0;g[f+(A<<2)>>2]=t;B=a+2|0;g[f+(B<<2)>>2]=0.0;g[e+(a<<2)>>2]=1.0;g[e+(A<<2)>>2]=D;g[e+(B<<2)>>2]=0.0}f=x+w|0;h=+P(+(+g[d>>2]),+(1.0/+(f>>>0)));if(!f){i=C;return}a=c&1;a=((c-a|0)>>>1)+a|0;b=0;do{c=b*3|0;d=e+(c<<2)|0;g[d>>2]=h*+g[d>>2];d=e+(c+1<<2)|0;g[d>>2]=h*+g[d>>2];c=e+(c+2<<2)|0;g[c>>2]=h*+g[c>>2];b=b+1|0}while((b|0)!=(a|0));i=C;return}function Af(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;h=h|0;var k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0.0,z=0.0,A=0,B=0,C=0.0,D=0.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,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;ma=i;i=i+144|0;if((i|0)>=(j|0))ba();W=ma+128|0;X=ma+120|0;Y=ma+112|0;ea=ma+104|0;fa=ma+96|0;ga=ma+88|0;ha=ma+80|0;ia=ma+72|0;ja=ma+64|0;ka=ma+56|0;la=ma+48|0;Z=ma+40|0;_=ma+32|0;$=ma+24|0;aa=ma+16|0;ca=ma+8|0;da=ma;C=+Q(+(e*6.283185307179586));if(!d){i=ma;return}D=C*C;E=X+4|0;F=Y+4|0;G=fa+4|0;H=ea+4|0;I=ga+4|0;J=ha+4|0;K=ja+4|0;L=ia+4|0;M=ka+4|0;N=la+4|0;O=_+4|0;P=Z+4|0;R=$+4|0;S=aa+4|0;T=da+4|0;U=ca+4|0;V=0;do{w=a+(V<<3)|0;e=+g[w>>2];x=a+(V<<3)+4|0;k=+g[x>>2];r=e+1.0;s=k+0.0;z=C*r;y=C*s;t=D*r;u=D*s;o=r*t-s*u;n=t*s+r*u;v=(o!=o|0.0!=0.0)&(n!=n|0.0!=0.0);if(v){ao(X,t,u,r,s);e=+g[w>>2];k=+g[x>>2];p=+g[X>>2];q=+g[E>>2]}else{p=o;q=n}l=e*4.0-k*0.0;m=e*0.0+k*4.0;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(Y,4.0,0.0,e,k);k=+g[Y>>2];e=+g[F>>2]}else{k=l;e=m}g[fa>>2]=p-k;g[G>>2]=q-e;c[W>>2]=c[fa>>2];c[W+4>>2]=c[fa+4>>2];zo(ea,W);q=(y+ +g[H>>2])*.5;B=V<<1;g[f+(B<<3)>>2]=(z+ +g[ea>>2])*.5;g[f+(B<<3)+4>>2]=q;if(v){ao(ga,t,u,r,s);o=+g[ga>>2];n=+g[I>>2]}m=+g[w>>2];l=+g[x>>2];k=m*4.0-l*0.0;e=m*0.0+l*4.0;if((k!=k|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(ha,4.0,0.0,m,l);k=+g[ha>>2];e=+g[J>>2]}g[ja>>2]=o-k;g[K>>2]=n-e;c[W>>2]=c[ja>>2];c[W+4>>2]=c[ja+4>>2];zo(ia,W);e=(y-+g[L>>2])*.5;A=B|1;g[f+(A<<3)>>2]=(z-+g[ia>>2])*.5;g[f+(A<<3)+4>>2]=e;w=b+(V<<3)|0;e=+g[w>>2];x=b+(V<<3)+4|0;k=+g[x>>2];r=e+1.0;s=k+0.0;y=C*r;z=C*s;t=D*r;u=D*s;o=r*t-s*u;n=t*s+r*u;v=(o!=o|0.0!=0.0)&(n!=n|0.0!=0.0);if(v){ao(ka,t,u,r,s);e=+g[w>>2];k=+g[x>>2];p=+g[ka>>2];q=+g[M>>2]}else{p=o;q=n}l=e*4.0-k*0.0;m=e*0.0+k*4.0;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(la,4.0,0.0,e,k);k=+g[la>>2];e=+g[N>>2]}else{k=l;e=m}g[_>>2]=p-k;g[O>>2]=q-e;c[W>>2]=c[_>>2];c[W+4>>2]=c[_+4>>2];zo(Z,W);q=(z+ +g[P>>2])*.5;g[h+(B<<3)>>2]=(y+ +g[Z>>2])*.5;g[h+(B<<3)+4>>2]=q;if(v){ao($,t,u,r,s);o=+g[$>>2];n=+g[R>>2]}m=+g[w>>2];l=+g[x>>2];k=m*4.0-l*0.0;e=m*0.0+l*4.0;if((k!=k|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(aa,4.0,0.0,m,l);k=+g[aa>>2];e=+g[S>>2]}g[da>>2]=o-k;g[T>>2]=n-e;c[W>>2]=c[da>>2];c[W+4>>2]=c[da+4>>2];zo(ca,W);z=(z-+g[U>>2])*.5;g[h+(A<<3)>>2]=(y-+g[ca>>2])*.5;g[h+(A<<3)+4>>2]=z;V=V+1|0}while((V|0)!=(d|0));i=ma;return}function Bf(a,b,d,e,f,h,k,l,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=+h;k=+k;l=+l;m=m|0;n=n|0;var o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+48|0;if((i|0)>=(j|0))ba();y=B+40|0;s=B+24|0;x=B+8|0;u=B+32|0;z=B+16|0;A=B;if(!(!(f<=0.0)&!(f>=.5))){Qp(23509,54,1,c[2348]|0)|0;kb(1)}if(h<0.0|h>.5){Qp(23564,54,1,c[2348]|0)|0;kb(1)}if(k<=0.0){Qp(23619,54,1,c[2348]|0)|0;kb(1)}if(l<=0.0){Qp(23674,54,1,c[2348]|0)|0;kb(1)}if(!e){Qp(23729,49,1,c[2348]|0)|0;kb(1)}v=i;i=i+((1*(e<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();w=i;i=i+((1*(e<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();o=e&1;p=(e-o|0)>>>1;switch(a|0){case 0:{ll(e,w,v,s);r=1.0;q=0;break}case 1:{k=+O(+(+P(10.0,+(k/10.0))+-1.0));if(!o)r=1.0/+O(+(k*k+1.0));else r=1.0;ml(e,k,w,v,s);q=0;break}case 2:{nl(e,+P(10.0,+(-l/20.0)),w,v,s);r=1.0;q=p<<1;break}case 3:{k=+P(10.0,+(-k/20.0));l=+P(10.0,+(-l/20.0));k=+O(+(1.0/(k*k)+-1.0));l=+O(+(1.0/(l*l)+-1.0));if(!o)r=1.0/+O(+(k*k+1.0));else r=1.0;sl(e,k,l,w,v,s);q=p<<1;break}case 4:{il(e,w,v,s);r=1.0;q=0;break}default:{Qp(23779,44,1,c[2348]|0)|0;kb(1)}}o=e<<1;s=i;i=i+((1*(o<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();t=i;i=i+((1*(o<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();switch(b|0){case 0:{k=+S(+(f*3.141592653589793));break}case 1:{k=f*3.141592653589793;k=-+Q(+k)/+R(+k);break}case 2:{k=f*6.283185307179586;k=(+Q(+k)-+Q(+(h*6.283185307179586)))/+R(+k);break}case 3:{k=f*6.283185307179586;k=+R(+k)/(+Q(+k)-+Q(+(h*6.283185307179586)));break}default:k=0.0}f=+N(+k);g[u>>2]=r;g[u+4>>2]=0.0;c[y>>2]=c[u>>2];c[y+4>>2]=c[u+4>>2];xf(w,q,v,e,y,f,s,t,x);if((b|2|0)==3){a=0;do{w=s+(a<<3)|0;v=s+(a<<3)+4|0;f=-+g[v>>2];g[w>>2]=-+g[w>>2];g[v>>2]=f;v=t+(a<<3)|0;w=t+(a<<3)+4|0;f=-+g[w>>2];g[v>>2]=-+g[v>>2];g[w>>2]=f;a=a+1|0}while((a|0)!=(e|0))}if((b|1|0)==3){a=Wa()|0;p=i;i=i+((1*(o<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();q=i;i=i+((1*(o<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();Af(s,t,e,h,p,q);e=e<<4;fq(s|0,p|0,e|0)|0;fq(t|0,q|0,e|0)|0;Ga(a|0)}else o=e;p=c[x>>2]|0;a=c[x+4>>2]|0;if((d|0)==1){c[z>>2]=p;c[z+4>>2]=a;c[y>>2]=c[z>>2];c[y+4>>2]=c[z+4>>2];yf(s,t,o,y,m,n);i=B;return}else{c[A>>2]=p;c[A+4>>2]=a;c[y>>2]=c[A>>2];c[y+4>>2]=c[A+4>>2];zf(s,t,o,y,m,n);i=B;return}}function Cf(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;if(!a){Qp(23824,54,1,c[2348]|0)|0;kb(1)}if(!b){Qp(23879,54,1,c[2348]|0)|0;kb(1)}if(d<0.0|d>1.0){Qp(23934,51,1,c[2348]|0)|0;kb(1)}n=+(a>>>0);o=+(b>>>0);m=d;k=d*4.0*d;l=3.141592653589793/(m*2.0);m=m*3.141592653589793;a=(_(b,a)|0)<<1|1;b=0;do{h=(+(b>>>0)+e)/n-o;i=+Qh(h);j=1.0-h*(k*h);if(+N(+j)<1.0000000474974513e-03)h=+R(+l)*d*.5;else h=i*+Q(+(m*h))/j;g[f+(b<<2)>>2]=h;b=b+1|0}while((b|0)!=(a|0));return}function Df(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var g=0;g=i;i=i+16|0;if((i|0)>=(j|0))ba();if(a>>>0<2){Qp(23986,53,1,c[2348]|0)|0;kb(1)}if(!b){Qp(24040,53,1,c[2348]|0)|0;kb(1)}if(d<=0.0|d>=1.0){Qp(24094,54,1,c[2348]|0)|0;kb(1)}if(e<-1.0|e>1.0){Qp(24149,53,1,c[2348]|0)|0;kb(1)}else{Ef(a,b,d,e,f,g);i=g;return}}function Ef(a,b,d,e,f,h){a=a|0;b=b|0;d=+d;e=+e;f=f|0;h=h|0;var i=0.0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0;if(!a){Qp(24203,67,1,c[2348]|0)|0;kb(1)}if(!b){Qp(24271,67,1,c[2348]|0)|0;kb(1)}if(d<0.0|d>1.0){Qp(24339,64,1,c[2348]|0)|0;kb(1)}m=+Ff(b,d);l=.20000000298023224;j=0;i=m;n=0.0;while(1){p=m-l;o=m+l;p=!(p<=0.0)?p:.009999999776482582;o=!(o>=1.0)?o:.9900000095367432;s=+Gf(a,b,d,e,p,f);r=+Gf(a,b,d,e,m,f);q=+Gf(a,b,d,e,o,f);w=(j|0)==0|r<n;n=w?r:n;i=w?m:i;t=m*m;v=o*o;u=p*p;k=m;m=((t-v)*s+(v-u)*r+(u-t)*q)*.5/((m-o)*s+(o-p)*r+(p-m)*q);if(m<p|m>o){k=i;break}if(j>>>0>3?+N(+(m-k))<9.999999974752427e-07:0){k=i;break}j=j+1|0;if(j>>>0>=14){k=i;break}else l=l*.5}+Gf(a,b,d,e,k,f);b=(_(b,a)|0)<<1|1;i=0.0;j=0;do{v=+g[f+(j<<2)>>2];i=i+v*v;j=j+1|0}while((j|0)!=(b|0));i=+O(+(+(a>>>0)/i));j=0;do{w=f+(j<<2)|0;g[w>>2]=i*+g[w>>2];j=j+1|0}while((j|0)!=(b|0));g[h>>2]=k;return}function Ff(a,b){a=a|0;b=+b;var d=0.0,e=0.0,f=0.0;if(!a){Qp(24404,59,1,c[2348]|0)|0;kb(1)}if(b<0.0|b>1.0){Qp(24464,56,1,c[2348]|0)|0;kb(1)}do switch(a|0){case 1:{d=.7574973106384277;e=.061343029141426086;f=-.08729662746191025;break}case 2:{d=.8115186095237732;e=.07437658309936523;f=-.01427088025957346;break}case 3:{d=.8424953818321228;e=.07684185355901718;f=-.005368790123611689;break}case 4:{d=.8614078164100647;e=.07144126296043396;f=-.005586519837379456;break}case 5:{d=.8745774030685425;e=.0657869428396225;f=-.006504470016807318;break}case 6:{d=.8843879699707031;e=.06074265018105507;f=-.007364050019532442;break}case 7:{d=.8921661972999573;e=.05669236183166504;f=-.007912220433354378;break}case 8:{d=.898749828338623;e=.0536169596016407;f=-.008153010159730911;break}case 9:{d=.9046003222465515;e=.051679521799087524;f=-.008078929968178272;break}case 10:{d=.9103443026542664;e=.05130752921104431;f=-.007461919914931059;break}case 11:{d=.9158767461776733;e=.05180436000227928;f=-.006707109976559877;break}case 12:{d=.921218752861023;e=.0527380108833313;f=-.00588351022452116;break}case 13:{d=.9263819456100464;e=.054007638245821;f=-.00508452020585537;break}case 14:{d=.9312355518341064;e=.05516162887215614;f=-4.3730600737035275e-03;break}case 15:{d=.9356499314308167;e=.0559656098484993;f=-3.8815198931843042e-03;break}case 16:{d=.9397674202919006;e=.056622739881277084;f=-3.4827999770641327e-03;break}case 17:{d=.9435170292854309;e=.0569412000477314;f=-3.1882100738584995e-03;break}case 18:{d=.9455727338790894;e=.05227591097354889;f=-.004006760194897652;break}case 19:{d=.9500161409378052;e=.05681641027331352;f=-3.0062799341976643e-03;break}case 20:{d=.9528170824050903;e=.05637606978416443;f=-.003047900041565299;break}case 21:{d=.9553625583648682;e=.055758800357580185;f=-.00312987994402647;break}case 22:{d=.9575420618057251;e=.05426060035824776;f=-3.8594501093029976e-03;break}default:{d=+Y(+(+(a>>>0)+1.0000000474974513e-03))*.056873+.781388;e=.054260000586509705;f=-.003860000055283308}}while(0);b=+Y(+b);d=d+e*b+b*(f*b);if(d<0.0){b=0.0;return +b}if(!(d>1.0)){b=d;return +b}b=1.0;return +b}function Gf(a,b,d,e,f,h){a=a|0;b=b|0;d=+d;e=+e;f=+f;h=h|0;var k=0,l=0,m=0,n=0,o=0.0;m=i;i=i+16|0;if((i|0)>=(j|0))ba();k=m+4|0;l=m;if(!(f<0.0)){if(f>1.0)Qp(24577,55,1,c[2348]|0)|0}else Qp(24521,55,1,c[2348]|0)|0;n=_(a<<1,b)|0|1;o=+(a>>>0);Xe(n,((1.0-f)*d+1.0)*.5/o,+We(d*f/o,n),e,h);Ze(h,a,b,l,k);i=m;return +(+g[l>>2])}function Hf(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0.0,i=0.0,j=0;if(a>>>0<2){Qp(24633,54,1,c[2348]|0)|0;kb(1)}if(!b){Qp(24688,54,1,c[2348]|0)|0;kb(1)}if(d<=0.0|d>=1.0){Qp(24743,55,1,c[2348]|0)|0;kb(1)}if(e<-1.0|e>1.0){Qp(24799,54,1,c[2348]|0)|0;kb(1)}i=+(b>>>0);h=+Y(+d);h=+Y(+i)*.067663+.762886+h*.06551499664783478+h*(+Y(+(1.0-+P(+i,-1.600000023841858)*.088))*h);if(h<=0.0|h>=1.0)h=+Ff(b,d);j=_(a<<1,b)|0|1;i=+(a>>>0);Xe(j,((1.0-h)*d+1.0)*.5/i,+We(h*d/i,j),e,f);b=(_(b,a)|0)<<1|1;h=0.0;a=0;do{e=+g[f+(a<<2)>>2];h=h+e*e;a=a+1|0}while((a|0)!=(b|0));h=+O(+(i/h));a=0;do{j=f+(a<<2)|0;g[j>>2]=h*+g[j>>2];a=a+1|0}while((a|0)!=(b|0));return}function If(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=f|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0;if(!a){Qp(24854,55,1,c[2348]|0)|0;kb(1)}if(!b){Qp(24910,55,1,c[2348]|0)|0;kb(1)}if(d<0.0|d>1.0){Qp(24966,52,1,c[2348]|0)|0;kb(1)}s=+(a>>>0);t=+(b>>>0);l=(d+1.0)*3.141592653589793;p=1.0-d;m=p*3.141592653589793;n=d*4.0;o=n;p=p+o/3.141592653589793;q=d*16.0*d;r=.7853981633974483/d;k=d/1.4142135381698608;a=(_(b,a)|0)<<1|1;b=0;do{d=(+(b>>>0)+e)/s-t;i=d;h=+Q(+(l*i));i=+R(+(m*i));do if(!(+N(+d)<1.0e-05)){j=1.0-d*(q*d);if(j*j<1.0e-05){g[f+(b<<2)>>2]=k*(+R(+r)*1.6366198062896729+ +Q(+r)*.36338022351264954);break}else{g[f+(b<<2)>>2]=o/(j*3.141592653589793)*(h+1.0/(n*d)*i);break}}else g[f+(b<<2)>>2]=p;while(0);b=b+1|0}while((b|0)!=(a|0));return}function Jf(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0.0,j=0,k=0.0,l=0;b=Xp(140)|0;c[b>>2]=2;c[b+4>>2]=7;g[b+8>>2]=.25;c[b+12>>2]=Ee(7,2,7,.25,0.0)|0;d=Xp(512)|0;c[b+64>>2]=d;e=Qj(7,137,1)|0;f=0;do{l=(Tj(e)|0)!=0;j=d+(f<<3)|0;h=d+(f<<3)+4|0;g[j>>2]=l?.7071067690849304:-.7071067690849304;g[h>>2]=0.0;l=(Tj(e)|0)!=0;k=l?.7071067811865476:-.7071067811865476;i=k+ +g[h>>2];g[j>>2]=+g[j>>2]+k*0.0;g[h>>2]=i;f=f+1|0}while((f|0)!=64);Sj(e);l=b+120|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[b+68>>2]=0;c[b+88>>2]=0;c[b+100>>2]=0;c[b+80>>2]=0;c[b+92>>2]=0;c[b+72>>2]=14;l=ph()|0;c[b+108>>2]=l;c[b+104>>2]=64;l=sh(l)|0;c[b+112>>2]=l;c[b+116>>2]=Xp(l<<3)|0;Kf(b,a)|0;Mf(b,0)|0;return b|0}function Kf(a,b){a=a|0;b=b|0;var d=0;if(c[a+128>>2]|0){Qp(25019,81,1,c[2348]|0)|0;a=-1;return a|0}if(!b){Kf(a,556)|0;return 0}if(((c[b>>2]|0)+-1|0)>>>0>5){Qp(25101,63,1,c[2348]|0)|0;kb(1)}if(!(c[b+4>>2]|0)){d=c[2348]|0;Qp(25165,63,1,d)|0;kb(1)}if(!(c[b+8>>2]|0)){d=c[2348]|0;Qp(25165,63,1,d)|0;kb(1)}if(!(c[b+12>>2]|0)){Qp(25229,70,1,c[2348]|0)|0;kb(1)}gq(a+32|0,b|0,16)|0;Lf(a);d=0;return d|0}function Lf(a){a=a|0;var b=0,d=0;d=a+108|0;rh(c[d>>2]|0,c[a+104>>2]|0,c[a+32>>2]|0,c[a+36>>2]|0,c[a+40>>2]|0,c[a+44>>2]|0)|0;d=sh(c[d>>2]|0)|0;c[a+112>>2]=d;b=a+116|0;a=_p(c[b>>2]|0,d<<3)|0;c[b>>2]=a;if(!a){Qp(25300,71,1,c[2348]|0)|0;kb(1)}else return}function Mf(a,b){a=a|0;b=b|0;var d=0;if(c[a+128>>2]|0){Qp(25372,89,1,c[2348]|0)|0;a=-1;return a|0}b=(b|0)==0?572:b;if(((c[b>>2]|0)+-1|0)>>>0>5){Qp(25462,71,1,c[2348]|0)|0;kb(1)}if(!(c[b+4>>2]|0)){d=c[2348]|0;Qp(25534,71,1,d)|0;kb(1)}if(!(c[b+8>>2]|0)){d=c[2348]|0;Qp(25534,71,1,d)|0;kb(1)}if(!(c[b+12>>2]|0)){Qp(25606,78,1,c[2348]|0)|0;kb(1)}gq(a+48|0,b|0,16)|0;Nf(a,c[a+72>>2]|0);d=0;return d|0}function Nf(a,b){a=a|0;b=b|0;var d=0,e=0;if(c[a+128>>2]|0){Qp(25019,81,1,c[2348]|0)|0;return}c[a+72>>2]=b;d=b+6|0;e=a+76|0;c[e>>2]=d;b=a+68|0;c[b>>2]=_p(c[b>>2]|0,d)|0;b=a+80|0;d=c[b>>2]|0;if(d|0)qh(d);d=ph()|0;c[b>>2]=d;rh(d,c[e>>2]|0,c[a+48>>2]|0,c[a+52>>2]|0,c[a+56>>2]|0,c[a+60>>2]|0)|0;e=sh(c[b>>2]|0)|0;b=a+84|0;c[b>>2]=e;d=a+88|0;c[d>>2]=_p(c[d>>2]|0,e<<3)|0;d=a+92|0;e=c[d>>2]|0;if(e|0)Bh(e);e=Ah(c[b>>2]|0,16)|0;c[d>>2]=e;e=Ch(e)|0;c[a+96>>2]=e;a=a+100|0;c[a>>2]=_p(c[a>>2]|0,e<<3)|0;return}function Of(a){a=a|0;a=a+120|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;return}function Pf(a){a=a|0;Fe(c[a+12>>2]|0);qh(c[a+80>>2]|0);Bh(c[a+92>>2]|0);qh(c[a+108>>2]|0);Yp(c[a+64>>2]|0);Yp(c[a+68>>2]|0);Yp(c[a+88>>2]|0);Yp(c[a+100>>2]|0);Yp(c[a+116>>2]|0);Yp(a);return}function Qf(a){a=a|0;return c[a+128>>2]|0}function Rf(a){a=a|0;if(!(c[a+128>>2]|0)){Qp(25685,58,1,c[2348]|0)|0;a=0;return a|0}else{a=_((c[a+96>>2]|0)+64+(c[a+112>>2]|0)+(c[a+4>>2]<<1)|0,c[a>>2]|0)|0;return a|0}return 0}function Sf(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;k=b+120|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;k=b+104|0;c[k>>2]=g;g=b+68|0;h=c[g>>2]|0;i=b+72|0;j=c[i>>2]|0;if(!e)eq(h|0,0,j|0)|0;else gq(h|0,e|0,j|0)|0;e=c[i>>2]|0;a[(c[g>>2]|0)+e>>0]=102;a[(c[g>>2]|0)+(e+1)>>0]=(c[k>>2]|0)>>>8;a[(c[g>>2]|0)+(e+2)>>0]=c[k>>2];a[(c[g>>2]|0)+(e+3)>>0]=c[b+44>>2];k=e+4|0;a[(c[g>>2]|0)+k>>0]=c[b+32>>2]<<5;k=(c[g>>2]|0)+k|0;a[k>>0]=d[k>>0]|0|c[b+36>>2]&31;a[(c[g>>2]|0)+(e+5)>>0]=c[b+40>>2]&31;e=b+88|0;xh(c[b+80>>2]|0,c[g>>2]|0,c[e>>2]|0);Dh(c[b+92>>2]|0,c[e>>2]|0,c[b+100>>2]|0);Lf(b);xh(c[b+108>>2]|0,f,c[b+116>>2]|0);c[b+128>>2]=1;return}function Tf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+32|0;if((i|0)>=(j|0))ba();f=q+16|0;g=q+8|0;h=q;if(!d){p=a+132|0;p=c[p>>2]|0;i=q;return p|0}k=a+124|0;l=g+4|0;m=a+12|0;n=a+16|0;o=h+4|0;e=c[k>>2]|0;p=0;do{if(!e){Uf(g,a);r=c[l>>2]|0;e=c[m>>2]|0;c[h>>2]=c[g>>2];c[o>>2]=r;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];Je(e,f,n);e=c[k>>2]|0}r=c[a+16+(e<<3)+4>>2]|0;c[b+(p<<3)>>2]=c[a+16+(e<<3)>>2];c[b+(p<<3)+4>>2]=r;e=(((c[k>>2]|0)+1|0)>>>0)%((c[a>>2]|0)>>>0)|0;c[k>>2]=e;p=p+1|0}while((p|0)!=(d|0));r=a+132|0;r=c[r>>2]|0;i=q;return r|0}
function yj(a,b){a=a|0;b=b|0;var e=0,f=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.0,R=0.0;P=i;i=i+464|0;if((i|0)>=(j|0))ba();N=P+456|0;M=P+432|0;J=P+416|0;I=P+400|0;E=P+392|0;H=P+384|0;G=P+368|0;F=P+352|0;D=P+328|0;C=P+304|0;B=P+280|0;A=P+256|0;y=P+232|0;x=P+208|0;w=P+192|0;v=P+184|0;u=P+160|0;t=P+136|0;s=P+112|0;r=P+88|0;q=P+80|0;p=P+72|0;o=P+64|0;n=P+56|0;O=P+48|0;K=P+40|0;k=P+32|0;m=P+24|0;l=P+16|0;f=P+8|0;e=P;if(!(c[a+172>>2]|0)){Qp(37231,86,1,c[2348]|0)|0;i=P;return}L=Ep(b,37318)|0;if(!L){O=c[2348]|0;c[e>>2]=b;Kp(O,37320,e)|0;i=P;return}c[f>>2]=37414;Kp(L,37385,f)|0;Qp(37445,11,1,L)|0;Qp(37457,11,1,L)|0;c[l>>2]=2048;Kp(L,37469,l)|0;c[m>>2]=c[a>>2];Kp(L,37478,m)|0;c[k>>2]=c[a+16>>2];Kp(L,37487,k)|0;z=a+20|0;c[K>>2]=c[z>>2];Kp(L,37502,K)|0;c[O>>2]=c[a+24>>2];Kp(L,37517,O)|0;Qp(37532,16,1,L)|0;if(c[a>>2]|0){e=a+12|0;f=0;do{m=d[(c[e>>2]|0)+f>>0]|0;f=f+1|0;c[n>>2]=f;c[n+4>>2]=m;Kp(L,37549,n)|0}while(f>>>0<(c[a>>2]|0)>>>0)}c[o>>2]=0;Kp(L,37563,o)|0;c[p>>2]=1;Kp(L,37587,p)|0;c[q>>2]=2;Kp(L,37611,q)|0;if(c[a>>2]|0){e=a+64|0;f=a+72|0;k=0;do{q=k;k=k+1|0;p=c[e>>2]|0;Q=+g[p+(q<<3)>>2];R=+g[p+(q<<3)+4>>2];c[r>>2]=k;h[r+8>>3]=Q;h[r+16>>3]=R;Kp(L,37635,r)|0;p=c[f>>2]|0;R=+g[p+(q<<3)>>2];Q=+g[p+(q<<3)+4>>2];c[s>>2]=k;h[s+8>>3]=R;h[s+16>>3]=Q;Kp(L,37665,s)|0}while(k>>>0<(c[a>>2]|0)>>>0)}Qp(37695,16,1,L)|0;sk(c[a+176>>2]|0,O);e=0;do{s=c[O>>2]|0;Q=+g[s+(e<<3)>>2];R=+g[s+(e<<3)+4>>2];e=e+1|0;c[t>>2]=e;h[t+8>>3]=Q;h[t+16>>3]=R;Kp(L,37712,t)|0}while((e|0)!=2048);Qp(37741,8,1,L)|0;Qp(37750,39,1,L)|0;Qp(37790,24,1,L)|0;Qp(37815,30,1,L)|0;Qp(37846,9,1,L)|0;if(c[a>>2]|0){e=a+76|0;f=0;do{t=c[e>>2]|0;Q=+g[t+(f<<3)>>2];R=+g[t+(f<<3)+4>>2];f=f+1|0;c[u>>2]=f;h[u+8>>3]=Q;h[u+16>>3]=R;Kp(L,37856,u)|0}while(f>>>0<(c[a>>2]|0)>>>0)}Qp(37886,2,1,L)|0;c[v>>2]=2048;Kp(L,37889,v)|0;nk(c[a+180>>2]|0,K);e=0;do{R=+g[(c[K>>2]|0)+(e<<2)>>2];e=e+1|0;c[w>>2]=e;h[w+8>>3]=R;Kp(L,37914,w)|0}while((e|0)!=2048);Qp(37939,91,1,L)|0;Qp(38031,33,1,L)|0;Qp(37741,8,1,L)|0;Qp(38065,15,1,L)|0;Qp(38081,21,1,L)|0;Qp(37886,2,1,L)|0;Qp(38103,17,1,L)|0;Qp(38121,17,1,L)|0;if(c[a>>2]|0){e=a+64|0;f=a+72|0;k=0;do{w=k;k=k+1|0;v=c[e>>2]|0;R=+g[v+(w<<3)>>2];Q=+g[v+(w<<3)+4>>2];c[x>>2]=k;h[x+8>>3]=R;h[x+16>>3]=Q;Kp(L,38139,x)|0;v=c[f>>2]|0;Q=+g[v+(w<<3)>>2];R=+g[v+(w<<3)+4>>2];c[y>>2]=k;h[y+8>>3]=Q;h[y+16>>3]=R;Kp(L,38169,y)|0}while(k>>>0<(c[a>>2]|0)>>>0)}Qp(37886,2,1,L)|0;Qp(38199,21,1,L)|0;Qp(38221,21,1,L)|0;Qp(38243,21,1,L)|0;Qp(38265,21,1,L)|0;if(c[a>>2]|0){k=a+84|0;l=a+88|0;e=a+188|0;f=a+92|0;m=0;do{y=m;m=m+1|0;x=c[k>>2]|0;R=+g[x+(y<<3)>>2];Q=+g[x+(y<<3)+4>>2];c[A>>2]=m;h[A+8>>3]=R;h[A+16>>3]=Q;Kp(L,38287,A)|0;x=c[l>>2]|0;Q=+g[x+(y<<3)>>2];R=+g[x+(y<<3)+4>>2];c[B>>2]=m;h[B+8>>3]=Q;h[B+16>>3]=R;Kp(L,38320,B)|0;x=c[e>>2]|0;R=+g[x+(y<<3)>>2];Q=+g[x+(y<<3)+4>>2];c[C>>2]=m;h[C+8>>3]=R;h[C+16>>3]=Q;Kp(L,38353,C)|0;x=c[f>>2]|0;Q=+g[x+(y<<3)>>2];R=+g[x+(y<<3)+4>>2];c[D>>2]=m;h[D+8>>3]=Q;h[D+16>>3]=R;Kp(L,38386,D)|0}while(m>>>0<(c[a>>2]|0)>>>0)}Qp(38419,15,1,L)|0;Qp(37741,8,1,L)|0;Qp(38435,16,1,L)|0;Qp(38452,40,1,L)|0;Qp(38493,48,1,L)|0;Qp(38542,11,1,L)|0;Qp(38554,30,1,L)|0;Qp(38585,33,1,L)|0;Qp(38619,16,1,L)|0;Qp(38636,58,1,L)|0;Qp(38695,48,1,L)|0;Qp(38542,11,1,L)|0;Qp(38554,30,1,L)|0;Qp(38744,35,1,L)|0;Qp(37886,2,1,L)|0;Qp(38780,23,1,L)|0;Qp(38804,23,1,L)|0;if(c[z>>2]|0){e=a+192|0;f=a+196|0;k=0;do{D=k;k=k+1|0;R=+g[(c[e>>2]|0)+(D<<2)>>2];c[F>>2]=k;h[F+8>>3]=R;Kp(L,38828,F)|0;R=+g[(c[f>>2]|0)+(D<<2)>>2];c[G>>2]=k;h[G+8>>3]=R;Kp(L,38847,G)|0}while(k>>>0<(c[z>>2]|0)>>>0)}h[H>>3]=+g[a+200>>2];Kp(L,38866,H)|0;h[E>>3]=+g[a+204>>2];Kp(L,38888,E)|0;Qp(38910,17,1,L)|0;nk(c[a+208>>2]|0,K);e=0;do{R=+g[(c[K>>2]|0)+(e<<2)>>2];e=e+1|0;c[I>>2]=e;h[I+8>>3]=R;Kp(L,38928,I)|0}while((e|0)!=2048);Qp(38947,17,1,L)|0;nk(c[a+212>>2]|0,K);e=0;do{R=+g[(c[K>>2]|0)+(e<<2)>>2];e=e+1|0;c[J>>2]=e;h[J+8>>3]=R;Kp(L,38965,J)|0}while((e|0)!=2048);Qp(37741,8,1,L)|0;Qp(38984,19,1,L)|0;Qp(39004,16,1,L)|0;Qp(39021,24,1,L)|0;Qp(39046,40,1,L)|0;Qp(38542,11,1,L)|0;Qp(39087,32,1,L)|0;Qp(39120,24,1,L)|0;Qp(39145,19,1,L)|0;Qp(39165,16,1,L)|0;Qp(39182,26,1,L)|0;Qp(38542,11,1,L)|0;Qp(39209,31,1,L)|0;Qp(39241,16,1,L)|0;Qp(39258,26,1,L)|0;Qp(38542,11,1,L)|0;Qp(39285,30,1,L)|0;Qp(39316,24,1,L)|0;sk(c[a+184>>2]|0,O);e=0;do{K=c[O>>2]|0;Q=+g[K+(e<<3)>>2];R=+g[K+(e<<3)+4>>2];e=e+1|0;c[M>>2]=e;h[M+8>>3]=Q;h[M+16>>3]=R;Kp(L,39341,M)|0}while((e|0)!=2048);Qp(37741,8,1,L)|0;Qp(39378,45,1,L)|0;Qp(39424,13,1,L)|0;Qp(39438,13,1,L)|0;Qp(39452,23,1,L)|0;Qp(39476,13,1,L)|0;Qp(39490,9,1,L)|0;Hp(L)|0;c[N>>2]=b;Rp(39500,N)|0;i=P;return}function zj(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();e=f;d=Xp(1060)|0;c[d>>2]=a;a=d+12|0;b=0;do{g[a+(b<<2)>>2]=+R(+(+(b>>>0)*6.283185307179586*.00390625));b=b+1|0}while((b|0)!=256);g[d+1052>>2]=.10000000149011612;g[d+1056>>2]=.3162277638912201;a=c[d>>2]|0;switch(a|0){case 0:{c[d+1048>>2]=7;break}case 1:{c[d+1048>>2]=8;break}default:{b=c[2348]|0;c[e>>2]=a;Kp(b,39546,e)|0;kb(1)}}g[d+4>>2]=0.0;g[d+8>>2]=0.0;c[d+1036>>2]=0;g[d+1040>>2]=0.0;g[d+1044>>2]=1.0;i=f;return d|0}function Aj(a){a=a|0;var b=0,d=0;b=~~(+g[a+4>>2]*40.7436637878418+512.0+.5)>>>0;d=b&255;c[a+1036>>2]=d;c[a+1040>>2]=c[a+12+(d<<2)>>2];c[a+1044>>2]=c[a+12+((b+64&255)<<2)>>2];return}function Bj(a){a=a|0;var b=0.0;b=+g[a+4>>2];g[a+1040>>2]=+R(+b);g[a+1044>>2]=+Q(+b);return}function Cj(a,b){a=a|0;b=+b;if(b<0.0){Qp(39588,59,1,c[2348]|0)|0;kb(1)}else{g[a+1052>>2]=b;g[a+1056>>2]=+O(+b);return}}function Dj(a){a=a|0;g[a+4>>2]=0.0;g[a+8>>2]=0.0;c[a+1036>>2]=0;g[a+1040>>2]=0.0;g[a+1044>>2]=1.0;return}function Ej(a){a=a|0;Yp(a);return}function Fj(a,b){a=a|0;b=+b;g[a+8>>2]=b;return}function Gj(a,b){a=a|0;b=+b;a=a+8|0;g[a>>2]=+g[a>>2]+b;return}function Hj(a,b){a=a|0;b=+b;a=a+4|0;g[a>>2]=b;if(b>3.141592653589793){g[a>>2]=b+-6.283185307179586;return}if(!(b<-3.141592653589793))return;g[a>>2]=b+6.283185307179586;return}function Ij(a){a=a|0;var b=0.0,c=0;c=a+4|0;b=+g[a+8>>2]+ +g[c>>2];g[c>>2]=b;if(b>3.141592653589793){g[c>>2]=b+-6.283185307179586;return}if(!(b<-3.141592653589793))return;g[c>>2]=b+6.283185307179586;return}function Jj(a){a=a|0;return +(+g[a+8>>2])}function Kj(a,b){a=a|0;b=+b;var c=0;c=a+8|0;g[c>>2]=+g[c>>2]+ +g[a+1052>>2]*b;c=a+4|0;b=+g[c>>2]+ +g[a+1056>>2]*b;g[c>>2]=b;if(b>3.141592653589793){g[c>>2]=b+-6.283185307179586;return}if(!(b<-3.141592653589793))return;g[c>>2]=b+6.283185307179586;return}function Lj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0,n=0.0,o=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();m=o;qb[c[a+1048>>2]&31](a);n=+g[b>>2];k=+g[b+4>>2];l=+g[a+1040>>2];e=+g[a+1044>>2]+l*0.0;f=n*e-k*l;h=n*l+k*e;if(!((f!=f|0.0!=0.0)&(h!=h|0.0!=0.0))){l=f;n=h;m=d+4|0;g[d>>2]=l;g[m>>2]=n;i=o;return}ao(m,n,k,e,l);l=+g[m>>2];n=+g[m+4>>2];m=d+4|0;g[d>>2]=l;g[m>>2]=n;i=o;return}function Mj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0,n=0.0,o=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();m=o;qb[c[a+1048>>2]&31](a);n=+g[b>>2];l=+g[b+4>>2];f=+g[a+1040>>2];e=+g[a+1044>>2]-f*0.0;f=-f;h=n*e-l*f;k=n*f+l*e;if(!((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0))){l=h;n=k;m=d+4|0;g[d>>2]=l;g[m>>2]=n;i=o;return}ao(m,n,l,e,f);l=+g[m>>2];n=+g[m+4>>2];m=d+4|0;g[d>>2]=l;g[m>>2]=n;i=o;return}function Nj(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0;e=c&-4;if(!e)f=0;else{f=c&-4;g=0;do{h=b+g|0;a[h>>0]=(d[h>>0]|0)^180;h=b+(g|1)|0;a[h>>0]=(d[h>>0]|0)^106;h=b+(g|2)|0;a[h>>0]=(d[h>>0]|0)^139;h=b+(g|3)|0;a[h>>0]=(d[h>>0]|0)^197;g=g+4|0}while(g>>>0<e>>>0)}if(f>>>0<c>>>0){h=b+f|0;a[h>>0]=(d[h>>0]|0)^180}e=f|1;if(e>>>0<c>>>0){h=b+e|0;a[h>>0]=(d[h>>0]|0)^106}e=f|2;if(e>>>0<c>>>0){h=b+e|0;a[h>>0]=(d[h>>0]|0)^139}e=f|3;if(e>>>0>=c>>>0)return;h=b+e|0;a[h>>0]=(d[h>>0]|0)^197;return}function Oj(a,b){a=a|0;b=b|0;Nj(a,b);return}function Pj(b,c){b=b|0;c=c|0;var e=0,f=0,g=0,h=0,i=0;if(!c)return;else g=0;a:while(1){switch(g&3|0){case 0:{e=180;h=7;break}case 1:{f=g<<3;e=106;h=8;break}case 2:{e=139;h=7;break}case 3:{e=197;h=7;break}default:{h=6;break a}}if((h|0)==7){h=0;f=g<<3;i=b+f|0;a[i>>0]=(d[i>>0]|0)^255;if(e&64)h=8}if((h|0)==8){i=b+(f|1)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&32|0){i=b+(g<<3|2)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&16|0){i=b+(g<<3|3)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&8|0){i=b+(g<<3|4)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&4|0){i=b+(g<<3|5)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&2|0){i=b+(g<<3|6)|0;a[i>>0]=(d[i>>0]|0)^255}if(e&1|0){i=b+(g<<3|7)|0;a[i>>0]=(d[i>>0]|0)^255}g=g+1|0;if(g>>>0>=c>>>0){h=22;break}}if((h|0)!=6)if((h|0)==22)return}function Qj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((a+-2|0)>>>0>13){Qp(39648,42,1,c[2348]|0)|0;kb(1)}g=Xp(24)|0;c[g>>2]=a;c[g+4>>2]=b>>>1;f=g+8|0;c[f>>2]=0;if(!a)b=0;else{b=0;e=0;while(1){b=b<<1|d&1;e=e+1|0;if(e>>>0>=a>>>0)break;else d=d>>>1}c[f>>2]=b}c[g+12>>2]=(1<<a)+-1;c[g+16>>2]=b;c[g+20>>2]=0;return g|0}function Rj(a){a=a|0;var b=0;if((a+-2|0)>>>0>13){Qp(39648,42,1,c[2348]|0)|0;kb(1)}else{b=Xp(24)|0;a=7520+(a*24|0)|0;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];c[b+20>>2]=c[a+20>>2];return b|0}return 0}function Sj(a){a=a|0;Yp(a);return}function Tj(a){a=a|0;var b=0,d=0;d=a+16|0;b=Wj(c[d>>2]|0,c[a+4>>2]|0)|0;c[a+20>>2]=b;c[d>>2]=(c[d>>2]<<1|b)&c[a+12>>2];return b|0}function Uj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!b){b=0;return b|0}g=a+16|0;h=a+4|0;i=a+20|0;d=a+12|0;e=c[g>>2]|0;f=0;a=0;do{j=Wj(e,c[h>>2]|0)|0;c[i>>2]=j;e=(c[g>>2]<<1|j)&c[d>>2];c[g>>2]=e;a=j|a<<1;f=f+1|0}while((f|0)!=(b|0));return a|0}function Vj(a){a=a|0;c[a+16>>2]=c[a+8>>2];return}function Wj(a,b){a=a|0;b=b|0;b=b&a;return (d[39947+(b>>>8&255)>>0]|0)+(d[39947+(b&255)>>0]|0)+(d[39947+(b>>>16&255)>>0]|0)+(d[39947+(b>>>24)>>0]|0)&1|0}function Xj(a){a=a|0;return (d[40203+(a&255)>>0]|0)<<8|(d[40203+(a>>>8&255)>>0]|0)|0}function Yj(a){a=a|0;return (d[40203+(a>>>8&255)>>0]|0)<<8|(d[40203+(a&255)>>0]|0)<<16|(d[40203+(a>>>16&255)>>0]|0)|0}function Zj(a){a=a|0;return (d[40203+(a>>>8&255)>>0]|0)<<16|(d[40203+(a&255)>>0]|0)<<24|(d[40203+(a>>>16&255)>>0]|0)<<8|(d[40203+(a>>>24)>>0]|0)|0}function _j(a){a=a|0;var b=0;b=a>>>24;if(!b){b=a>>>16&255;if(!b){b=a>>>8&255;if(!b){b=a&255;if(!b){a=0;return a|0}else a=8}else a=16}else a=24}else a=32;a=a-(c[7904+(b<<2)>>2]|0)|0;return a|0}function $j(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;if(e<<3>>>0<=f>>>0){Qp(40459,59,1,c[2348]|0)|0;kb(1)}i=f>>>3;if(!(i>>>0<e>>>0&(g|0)!=0))return;f=f-(i<<3)|0;j=i;while(1){k=8-f|0;k=g>>>0<k>>>0?g:k;m=8-k|0;l=g;g=g-k|0;n=255>>>m&255;m=m-f|0;i=b+j|0;a[i>>0]=(d[i>>0]|0)&(n<<m^255)|(n&h>>>g)<<m;f=k+f|0;i=f>>>0>7;j=(i&1)+j|0;if(!(j>>>0<e>>>0&(l|0)!=(k|0)))break;else f=i?f&7:f}return}function ak(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;if(b<<3>>>0<=e>>>0){Qp(40519,61,1,c[2348]|0)|0;kb(1)}h=e>>>3;if(!(h>>>0<b>>>0&(f|0)!=0)){a=f;b=0;a=b<<a;c[g>>2]=a;return}k=f;e=e-(h<<3)|0;f=0;while(1){i=8-e|0;l=k>>>0<i>>>0?k:i;f=255>>>(8-l|0)&255&(d[a+h>>0]|0)>>>(i-l|0)|f<<l;i=l+e|0;j=i>>>0>7;h=(j&1)+h|0;e=k-l|0;if(!(h>>>0<b>>>0&(k|0)!=(l|0)))break;else{k=e;e=j?i&7:i}}l=f<<e;c[g>>2]=l;return}function bk(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;n=b<<3;if(!((f|0)!=0&(n|0)!=0))return;if(!e){h=(n|0)!=0;i=0;do{c[g+(i<<2)>>2]=0;i=i+1|0}while(i>>>0<f>>>0&h);return}else{p=0;q=0}do{o=g+(p<<2)|0;h=q>>>3;if(h>>>0<b>>>0){m=e;i=q-(h<<3)|0;l=h;h=0;while(1){j=8-i|0;r=m>>>0<j>>>0?m:j;h=255>>>(8-r|0)&255&(d[a+l>>0]|0)>>>(j-r|0)|h<<r;j=r+i|0;k=j>>>0>7;l=(k&1)+l|0;i=m-r|0;if(!((m|0)!=(r|0)&l>>>0<b>>>0))break;else{m=i;i=k?j&7:j}}}else{i=e;h=0}c[o>>2]=h<<i;p=p+1|0;q=q+e|0}while(p>>>0<f>>>0&q>>>0<n>>>0);return}function ck(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();m=o;Vp(m,e,8);if((((c[m+4>>2]|0)>0&1)+(c[m>>2]|0)|0)>>>0>g>>>0){Qp(40581,38,1,c[2348]|0)|0;kb(-1)}if(!e){n=0;c[h>>2]=n;i=o;return}else{m=0;g=0}a:while(1){k=0;while(1){k=(d[b+g>>0]|0)&1|k&254;g=g+1|0;if(!(g&7)){l=k;break}if(g>>>0<e>>>0)k=k<<1;else{b=k;k=m;n=8;break a}}k=m+1|0;a[f+m>>0]=l;if(g>>>0<e>>>0)m=k;else{l=g;g=0;break}}if((n|0)==8){l=g;g=b&127}if(!(l&7)){n=k;c[h>>2]=n;i=o;return}a[f+k>>0]=g;n=k+1|0;c[h>>2]=n;i=o;return}function dk(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;h=d<<3;if(h>>>0>f>>>0){Qp(40620,40,1,c[2348]|0)|0;kb(-1)}if(!d){e=0;c[g>>2]=e;return}else{f=0;i=0}while(1){k=a[b+f>>0]|0;j=k&255;a[e+i>>0]=(k&255)>>>7;a[e+(i|1)>>0]=j>>>6&1;a[e+(i|2)>>0]=j>>>5&1;a[e+(i|3)>>0]=j>>>4&1;a[e+(i|4)>>0]=j>>>3&1;a[e+(i|5)>>0]=j>>>2&1;a[e+(i|6)>>0]=j>>>1&1;a[e+(i|7)>>0]=j&1;f=f+1|0;if((f|0)==(d|0))break;else i=i+8|0}c[g>>2]=h;return}function ek(b,d,e,f,g,h,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+32|0;if((i|0)>=(j|0))ba();l=v;u=v+16|0;t=_(e,d)|0;Vp(u,t,g);u=((c[u+4>>2]|0)>0&1)+(c[u>>2]|0)|0;if(u>>>0>h>>>0){s=c[2348]|0;Qp(40661,40,1,s)|0;c[l>>2]=e;c[l+4>>2]=d;c[l+8>>2]=h;c[l+12>>2]=g;Kp(s,40702,l)|0;kb(-1)}if(!t){l=0;h=0;e=0}else{p=d+-1|0;o=g+-1|0;q=0;n=0;l=0;s=0;h=0;m=0;e=0;while(1){if(!s){r=n+1|0;m=a[b+n>>0]|0}else r=n;e=((m&255)>>>(p-s|0)&1|(e&255)<<1)&255;if((h|0)==(o|0)){a[f+l>>0]=e;l=l+1|0;e=0}h=((h+1|0)>>>0)%(g>>>0)|0;q=q+1|0;if((q|0)==(t|0))break;else{n=r;s=((s+1|0)>>>0)%(d>>>0)|0}}}if((l|0)==(u|0)){f=u;c[k>>2]=f;i=v;return}if(h>>>0<g>>>0)do{e=(e&255)<<1&255;h=h+1|0}while((h|0)!=(g|0));a[f+l>>0]=e;f=l+1|0;c[k>>2]=f;i=v;return}function fk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+48|0;if((i|0)>=(j|0))ba();p=A+32|0;q=A+24|0;v=A+16|0;w=A+8|0;z=A;x=b&-4;if(!x)e=0;else{m=+g[c>>2];o=+g[c+4>>2];r=p+4|0;s=q+4|0;t=v+4|0;u=w+4|0;e=b&-4;y=0;do{k=+g[a+(y<<3)>>2];l=+g[a+(y<<3)+4>>2];h=k*m-l*o;f=l*m+k*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(p,k,l,m,o);h=+g[p>>2];f=+g[r>>2]}g[d+(y<<3)>>2]=h;g[d+(y<<3)+4>>2]=f;n=y|1;k=+g[a+(n<<3)>>2];l=+g[a+(n<<3)+4>>2];h=k*m-l*o;f=l*m+k*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(q,k,l,m,o);h=+g[q>>2];f=+g[s>>2]}g[d+(n<<3)>>2]=h;g[d+(n<<3)+4>>2]=f;n=y|2;k=+g[a+(n<<3)>>2];l=+g[a+(n<<3)+4>>2];h=k*m-l*o;f=l*m+k*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(v,k,l,m,o);h=+g[v>>2];f=+g[t>>2]}g[d+(n<<3)>>2]=h;g[d+(n<<3)+4>>2]=f;n=y|3;k=+g[a+(n<<3)>>2];l=+g[a+(n<<3)+4>>2];h=k*m-l*o;f=l*m+k*o;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(w,k,l,m,o);h=+g[w>>2];f=+g[u>>2]}g[d+(n<<3)>>2]=h;g[d+(n<<3)+4>>2]=f;y=y+4|0}while(y>>>0<x>>>0)}if(e>>>0>=b>>>0){i=A;return}o=+g[c>>2];m=+g[c+4>>2];n=z+4|0;do{l=+g[a+(e<<3)>>2];k=+g[a+(e<<3)+4>>2];h=l*o-k*m;f=k*o+l*m;if((h!=h|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(z,l,k,o,m);h=+g[z>>2];f=+g[n>>2]}g[d+(e<<3)>>2]=h;g[d+(e<<3)+4>>2]=f;e=e+1|0}while((e|0)!=(b|0));i=A;return}function gk(a){a=a|0;var b=0,d=0;b=Xp(12)|0;c[b+4>>2]=a;a=a<<2;d=Xp(a)|0;c[b>>2]=d;c[b+8>>2]=0;eq(d|0,0,a|0)|0;return b|0}function hk(a){a=a|0;c[a+8>>2]=0;eq(c[a>>2]|0,0,c[a+4>>2]<<2|0)|0;return}function ik(a){a=a|0;Yp(c[a>>2]|0);Yp(a);return}function jk(a,b){a=a|0;b=+b;var d=0,e=0;d=a+8|0;e=c[d>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=b;c[d>>2]=((e+1|0)>>>0)%((c[a+4>>2]|0)>>>0)|0;return}function kk(a,b){a=a|0;b=b|0;c[b>>2]=c[(c[a>>2]|0)+(c[a+8>>2]<<2)>>2];return}function lk(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();b=d;if(!a){d=c[2348]|0;c[b>>2]=40764;Kp(d,40769,b)|0;kb(1)}else{b=Xp(28)|0;c[b+4>>2]=a;e=_j(a)|0;c[b+8>>2]=e;e=1<<e;c[b+12>>2]=e;e=e+-1|0;c[b+16>>2]=e;a=e+a|0;c[b+20>>2]=a;a=a<<2;e=Xp(a)|0;c[b>>2]=e;c[b+24>>2]=0;eq(e|0,0,a|0)|0;i=d;return b|0}return 0}function mk(a){a=a|0;c[a+24>>2]=0;eq(c[a>>2]|0,0,c[a+20>>2]<<2|0)|0;return}function nk(a,b){a=a|0;b=b|0;c[b>>2]=(c[a>>2]|0)+(c[a+24>>2]<<2);return}function ok(a,b){a=a|0;b=+b;var d=0,e=0,f=0;e=a+24|0;d=c[a+16>>2]&(c[e>>2]|0)+1;c[e>>2]=d;if(!d){f=c[a>>2]|0;d=a+4|0;gq(f|0,f+(c[a+12>>2]<<2)|0,(c[d>>2]<<2)+-4|0)|0;f=a;a=d;d=c[e>>2]|0}else{f=a;a=a+4|0}g[(c[f>>2]|0)+(d+-1+(c[a>>2]|0)<<2)>>2]=b;return}function pk(a){a=a|0;Yp(c[a>>2]|0);Yp(a);return}function qk(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();b=d;if(!a){d=c[2348]|0;c[b>>2]=40766;Kp(d,40769,b)|0;kb(1)}else{b=Xp(28)|0;c[b+4>>2]=a;e=_j(a)|0;c[b+8>>2]=e;e=1<<e;c[b+12>>2]=e;e=e+-1|0;c[b+16>>2]=e;a=e+a|0;c[b+20>>2]=a;a=a<<3;e=Xp(a)|0;c[b>>2]=e;c[b+24>>2]=0;eq(e|0,0,a|0)|0;i=d;return b|0}return 0}function rk(a){a=a|0;c[a+24>>2]=0;eq(c[a>>2]|0,0,c[a+20>>2]<<3|0)|0;return}function sk(a,b){a=a|0;b=b|0;c[b>>2]=(c[a>>2]|0)+(c[a+24>>2]<<3);return}function tk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=a+24|0;d=c[a+16>>2]&(c[e>>2]|0)+1;c[e>>2]=d;if(!d){f=c[a>>2]|0;d=a+4|0;gq(f|0,f+(c[a+12>>2]<<3)|0,(c[d>>2]<<3)+-8|0)|0;f=a;a=d;d=c[e>>2]|0}else{f=a;a=a+4|0}g=c[b+4>>2]|0;e=d+-1+(c[a>>2]|0)|0;f=c[f>>2]|0;c[f+(e<<3)>>2]=c[b>>2];c[f+(e<<3)+4>>2]=g;return}function uk(a){a=a|0;Yp(c[a>>2]|0);Yp(a);return}function vk(a,b){a=a|0;b=b|0;var d=0,e=0;d=Xp(8)|0;c[d+4>>2]=b;b=b<<2;e=Xp(b)|0;c[d>>2]=e;fq(e|0,a|0,b|0)|0;return d|0}function wk(a){a=a|0;Yp(c[a>>2]|0);Yp(a);return}function xk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0,i=0,j=0.0;i=c[a>>2]|0;a=c[a+4>>2]|0;if(!a){f=0.0;e=0.0}else{h=0;f=0.0;e=0.0;do{j=+g[i+(h<<2)>>2];f=f+j*+g[b+(h<<3)>>2];e=e+j*+g[b+(h<<3)+4>>2];h=h+1|0}while((h|0)!=(a|0))}g[d>>2]=f;g[d+4>>2]=e;return}function yk(a,b){a=a|0;b=b|0;var d=0,e=0;d=Xp(8)|0;c[d+4>>2]=b;b=b<<2;e=Xp(b)|0;c[d>>2]=e;fq(e|0,a|0,b|0)|0;return d|0}function zk(a){a=a|0;Yp(c[a>>2]|0);Yp(a);return}function Ak(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0;h=c[a>>2]|0;a=c[a+4>>2]|0;if(!a){e=0.0;g[d>>2]=e;return}else{f=0;e=0.0}do{e=e+ +g[h+(f<<2)>>2]*+g[b+(f<<2)>>2];f=f+1|0}while((f|0)!=(a|0));g[d>>2]=e;return}function Bk(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0,f=0.0,h=0.0,i=0.0,j=0.0;e=b<<1;b=e&-4;if(!b){b=0;c=0.0}else{d=0;c=0.0;do{j=+g[a+(d<<2)>>2];i=+g[a+((d|1)<<2)>>2];h=+g[a+((d|2)<<2)>>2];f=+g[a+((d|3)<<2)>>2];c=c+j*j+i*i+h*h+f*f;d=d+4|0}while(d>>>0<b>>>0)}if(b>>>0>=e>>>0){j=c;return +j}do{j=+g[a+(b<<2)>>2];c=c+j*j;b=b+1|0}while((b|0)!=(e|0));return +c}function Ck(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=Xp(36)|0;c[g>>2]=a;f=Kc(e,Kc(d,(Ec(b)|0)+a|0)|0)|0;c[g+4>>2]=f;c[g+8>>2]=b;b=Ec(b)|0;c[g+12>>2]=b;c[g+24>>2]=f;f=f<<3;c[g+28>>2]=Xp(f)|0;c[g+32>>2]=Xp(f)|0;c[g+20>>2]=2;f=Xp(40)|0;c[g+16>>2]=f;b=b+a|0;h=f+8|0;c[h>>2]=d;c[f>>2]=b;a=f+4|0;c[a>>2]=Kc(d,b)|0;c[f+12>>2]=Nc(c[h>>2]|0,0)|0;b=Jl(c[a>>2]|0)|0;c[f+16>>2]=b;if((c[h>>2]|0)==1)Ll(b,0);d=c[a>>2]|0;h=f+28|0;c[h>>2]=e;c[f+20>>2]=d;b=f+24|0;c[b>>2]=Kc(e,d)|0;c[f+32>>2]=Nc(c[h>>2]|0,0)|0;b=Jl(c[b>>2]|0)|0;c[f+36>>2]=b;if((c[h>>2]|0)!=1)return g|0;Ll(b,0);return g|0}function Dk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if(!a){a=Ck(b,d,e,f)|0;return a|0}if((((c[a>>2]|0)==(b|0)?(c[a+8>>2]|0)==(d|0):0)?(g=c[a+16>>2]|0,(c[g+8>>2]|0)==(e|0)):0)?(c[g+28>>2]|0)==(f|0):0)return a|0;Ek(a);a=Ck(b,d,e,f)|0;return a|0}function Ek(a){a=a|0;var b=0,d=0,e=0;b=a+20|0;d=a+16|0;if(c[b>>2]|0){e=0;do{Oc(c[(c[d>>2]|0)+(e*20|0)+12>>2]|0);Kl(c[(c[d>>2]|0)+(e*20|0)+16>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Yp(c[d>>2]|0);Yp(c[a+28>>2]|0);Yp(c[a+32>>2]|0);Yp(a);return}function Fk(a){a=a|0;return c[a+4>>2]|0}function Gk(a){a=a|0;return c[a+8>>2]|0}function Hk(a){a=a|0;return c[(c[a+16>>2]|0)+8>>2]|0}function Ik(a){a=a|0;return c[(c[a+16>>2]|0)+28>>2]|0}function Jk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=b+28|0;f=c[i>>2]|0;g=c[b>>2]|0;if(!d)eq(f|0,0,g|0)|0;else gq(f|0,d|0,g|0)|0;g=Fc(c[b+8>>2]|0,c[i>>2]|0,c[b>>2]|0)|0;h=b+12|0;f=c[h>>2]|0;if(!f)f=0;else{d=0;while(1){a[(c[i>>2]|0)+(f+~d+(c[b>>2]|0))>>0]=g;d=d+1|0;f=c[h>>2]|0;if(d>>>0>=f>>>0)break;else g=g>>>8}}Nj(c[i>>2]|0,(c[b>>2]|0)+f|0);f=b+20|0;if(!(c[f>>2]|0)){i=c[i>>2]|0;b=b+4|0;b=c[b>>2]|0;gq(e|0,i|0,b|0)|0;return}g=b+16|0;d=b+32|0;h=0;do{j=c[g>>2]|0;Pc(c[j+(h*20|0)+12>>2]|0,c[j+(h*20|0)>>2]|0,c[i>>2]|0,c[d>>2]|0);Ml(c[(c[g>>2]|0)+(h*20|0)+16>>2]|0,c[d>>2]|0,c[i>>2]|0);h=h+1|0}while(h>>>0<(c[f>>2]|0)>>>0);i=c[i>>2]|0;j=b+4|0;j=c[j>>2]|0;gq(e|0,i|0,j|0)|0;return}function Kk(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=a+28|0;gq(c[j>>2]|0,b|0,c[a+4>>2]|0)|0;b=c[a+20>>2]|0;if(b|0){f=a+16|0;g=a+32|0;do{b=b+-1|0;Nl(c[(c[f>>2]|0)+(b*20|0)+16>>2]|0,c[j>>2]|0,c[g>>2]|0);i=c[f>>2]|0;Qc(c[i+(b*20|0)+12>>2]|0,c[i+(b*20|0)>>2]|0,c[g>>2]|0,c[j>>2]|0)}while((b|0)!=0)}h=a+12|0;Oj(c[j>>2]|0,(c[h>>2]|0)+(c[a>>2]|0)|0);h=c[h>>2]|0;if(!h){g=c[j>>2]|0;h=c[a>>2]|0;i=0;gq(e|0,g|0,h|0)|0;h=a+8|0;h=c[h>>2]|0;e=c[j>>2]|0;a=c[a>>2]|0;a=Ic(h,e,a,i)|0;return a|0}f=c[a>>2]|0;g=c[j>>2]|0;i=0;b=0;do{b=d[g+(f+i)>>0]|0|b<<8;i=i+1|0}while(i>>>0<h>>>0);gq(e|0,g|0,f|0)|0;i=a+8|0;i=c[i>>2]|0;e=c[j>>2]|0;a=c[a>>2]|0;a=Ic(i,e,a,b)|0;return a|0}function Lk(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=a+28|0;gq(c[j>>2]|0,b|0,c[a+4>>2]<<3|0)|0;i=a+16|0;h=a+32|0;Ol(c[(c[i>>2]|0)+36>>2]|0,c[j>>2]|0,c[h>>2]|0);g=c[i>>2]|0;Rc(c[g+32>>2]|0,c[g+20>>2]|0,c[h>>2]|0,c[j>>2]|0);Nl(c[(c[i>>2]|0)+16>>2]|0,c[j>>2]|0,c[h>>2]|0);i=c[i>>2]|0;Qc(c[i+12>>2]|0,c[i>>2]|0,c[h>>2]|0,c[j>>2]|0);h=a+12|0;Oj(c[j>>2]|0,(c[h>>2]|0)+(c[a>>2]|0)|0);h=c[h>>2]|0;if(!h){g=c[j>>2]|0;h=c[a>>2]|0;i=0;gq(e|0,g|0,h|0)|0;h=a+8|0;h=c[h>>2]|0;e=c[j>>2]|0;a=c[a>>2]|0;a=Ic(h,e,a,i)|0;return a|0}f=c[a>>2]|0;g=c[j>>2]|0;i=0;b=0;do{b=d[g+(f+i)>>0]|0|b<<8;i=i+1|0}while(i>>>0<h>>>0);gq(e|0,g|0,f|0)|0;i=a+8|0;i=c[i>>2]|0;e=c[j>>2]|0;a=c[a>>2]|0;a=Ic(i,e,a,b)|0;return a|0}function Mk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;switch(gl(a)|0){case 1:{d=Nk(a,b,d,e,f)|0;return d|0}case 2:{d=Pk(a,b,d,e,f)|0;return d|0}case 3:{d=Rk(a,b,d,e,f)|0;return d|0}case 4:{d=Tk(a,b,d,e,f)|0;return d|0}case 5:{d=Vk(a,b,d,e,f)|0;return d|0}default:{Qp(41014,53,1,c[2348]|0)|0;kb(1)}}return 0}function Nk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+32|0;if((i|0)>=(j|0))ba();q=u+24|0;p=u+16|0;r=u+8|0;s=u;t=Xp(72)|0;c[t>>2]=a;c[t+4>>2]=b;c[t+8>>2]=d;c[t+16>>2]=f;e=(e|0)==1?1:-1;c[t+20>>2]=e;d=t+12|0;c[d>>2]=e;c[t+24>>2]=1;c[t+28>>2]=9;f=(_j(a)|0)+-1|0;c[t+40>>2]=f;b=Xp(a<<2)|0;c[t+44>>2]=b;if(!a){f=0;o=0}else{e=0;do{c[b+(e<<2)>>2]=hl(e,f)|0;e=e+1|0}while(e>>>0<a>>>0);f=a<<3;e=c[d>>2]|0;o=c[t>>2]|0}a=Xp(f)|0;c[t+48>>2]=a;k=(e|0)==1?-1.0:1.0;if(!o){i=u;return t|0}l=k*0.0;h=l*2.0-l;m=k*2.0+l*0.0;f=p+4|0;n=+(o>>>0);b=s+4|0;d=r+4|0;if((h!=h|0.0!=0.0)&(m!=m|0.0!=0.0)){e=0;do{ao(p,l,k,2.0,0.0);h=+(e>>>0);m=h*(+g[f>>2]*3.141592653589793)/n;g[s>>2]=h*(+g[p>>2]*3.141592653589793)/n;g[b>>2]=m;c[q>>2]=c[s>>2];c[q+4>>2]=c[s+4>>2];Io(r,q);v=c[d>>2]|0;c[a+(e<<3)>>2]=c[r>>2];c[a+(e<<3)+4>>2]=v;e=e+1|0}while(e>>>0<o>>>0);i=u;return t|0}k=h*3.141592653589793;h=m*3.141592653589793;e=0;do{m=+(e>>>0);g[s>>2]=m*k/n;g[b>>2]=m*h/n;c[q>>2]=c[s>>2];c[q+4>>2]=c[s+4>>2];Io(r,q);v=c[d>>2]|0;c[a+(e<<3)>>2]=c[r>>2];c[a+(e<<3)+4>>2]=v;e=e+1|0}while(e>>>0<o>>>0);i=u;return t|0}function Ok(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;z=i;i=i+16|0;if((i|0)>=(j|0))ba();y=z;d=c[a>>2]&-4;if(!d)b=a+8|0;else{e=a+44|0;f=a+4|0;b=a+8|0;h=0;do{u=c[(c[e>>2]|0)+(h<<2)>>2]|0;w=c[f>>2]|0;t=c[w+(u<<3)+4>>2]|0;x=c[b>>2]|0;c[x+(h<<3)>>2]=c[w+(u<<3)>>2];c[x+(h<<3)+4>>2]=t;x=h|1;t=c[(c[e>>2]|0)+(x<<2)>>2]|0;u=c[f>>2]|0;w=c[u+(t<<3)+4>>2]|0;v=c[b>>2]|0;c[v+(x<<3)>>2]=c[u+(t<<3)>>2];c[v+(x<<3)+4>>2]=w;x=h|2;v=c[(c[e>>2]|0)+(x<<2)>>2]|0;w=c[f>>2]|0;t=c[w+(v<<3)+4>>2]|0;u=c[b>>2]|0;c[u+(x<<3)>>2]=c[w+(v<<3)>>2];c[u+(x<<3)+4>>2]=t;x=h|3;u=c[(c[e>>2]|0)+(x<<2)>>2]|0;t=c[f>>2]|0;v=c[t+(u<<3)+4>>2]|0;w=c[b>>2]|0;c[w+(x<<3)>>2]=c[t+(u<<3)>>2];c[w+(x<<3)+4>>2]=v;h=h+4|0}while(h>>>0<d>>>0)}u=c[b>>2]|0;v=a+40|0;b=c[v>>2]|0;if(!b){i=z;return}t=c[a>>2]|0;w=a+48|0;x=y+4|0;d=t;r=0;s=1;do{q=s;s=s<<1;t=t>>>1;if(q){f=0;h=0;do{e=c[w>>2]|0;o=+g[e+(h<<3)>>2];p=+g[e+(h<<3)+4>>2];h=((h+t|0)>>>0)%(d>>>0)|0;if(f>>>0<d>>>0){e=f;do{d=e+q|0;b=u+(d<<3)|0;m=+g[b>>2];d=u+(d<<3)+4|0;n=+g[d>>2];l=o*m-p*n;k=p*m+o*n;if((l!=l|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(y,m,n,o,p);l=+g[y>>2];k=+g[x>>2]}B=u+(e<<3)|0;A=u+(e<<3)+4|0;n=+g[A>>2]-k;g[b>>2]=+g[B>>2]-l;g[d>>2]=n;n=k+ +g[A>>2];g[B>>2]=l+ +g[B>>2];g[A>>2]=n;e=e+s|0;d=c[a>>2]|0}while(e>>>0<d>>>0)}f=f+1|0}while((f|0)!=(q|0));b=c[v>>2]|0}r=r+1|0}while(r>>>0<b>>>0);i=z;return}function Pk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,k=0.0,l=0.0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+224|0;if((i|0)>=(j|0))ba();v=z+56|0;t=z+16|0;s=z+8|0;p=z;A=z+32|0;u=z+48|0;w=z+40|0;x=z+24|0;y=Xp(72)|0;c[y>>2]=a;c[y+4>>2]=b;c[y+8>>2]=d;c[y+16>>2]=f;r=(e|0)==1;b=r?1:-1;c[y+20>>2]=b;c[y+12>>2]=b;c[y+24>>2]=2;c[y+28>>2]=10;Dl(a,v,A);e=c[A>>2]|0;if(e>>>0<2){A=c[2348]|0;c[p>>2]=a;Kp(A,40834,p)|0;c[s>>2]=a;Kp(A,40884,s)|0;kb(1)}else m=0;while(1){if((c[v+(m<<2)>>2]|0)!=2){e=5;break}m=m+1|0;if(m>>>0>=e>>>0){e=6;break}}if((e|0)==5)if(!m){m=c[v>>2]|0;if(!m){A=c[2348]|0;c[s>>2]=a;Kp(A,40884,s)|0;kb(1)}else h=m}else e=6;if((e|0)==6)if(a&15)if(!(a&7))h=8;else h=(a&3|0)==0?4:2;else h=16;if((a>>>0)%(h>>>0)|0|0){A=c[2348]|0;c[t>>2]=a;c[t+4>>2]=h;Kp(A,40941,t)|0;kb(1)}s=(a>>>0)/(h>>>0)|0;c[y+44>>2]=h;c[y+40>>2]=s;A=(h>>>0>s>>>0?h:s)<<3;t=Xp(A)|0;c[y+52>>2]=t;A=Xp(A)|0;c[y+56>>2]=A;d=a<<3;c[y+48>>2]=Xp(d)|0;c[y+64>>2]=Mk(s,t,A,b,f)|0;c[y+68>>2]=Mk(h,t,A,b,f)|0;d=Xp(d)|0;c[y+60>>2]=d;l=r?-1.0:1.0;if(!a){i=z;return y|0}n=l*0.0;k=n*2.0-n;o=l*2.0+n*0.0;m=u+4|0;q=+(a>>>0);e=x+4|0;b=w+4|0;if((k!=k|0.0!=0.0)&(o!=o|0.0!=0.0)){h=0;do{ao(u,n,l,2.0,0.0);k=+(h>>>0);o=k*(+g[m>>2]*3.141592653589793)/q;g[x>>2]=k*(+g[u>>2]*3.141592653589793)/q;g[e>>2]=o;c[v>>2]=c[x>>2];c[v+4>>2]=c[x+4>>2];Io(w,v);A=c[b>>2]|0;c[d+(h<<3)>>2]=c[w>>2];c[d+(h<<3)+4>>2]=A;h=h+1|0}while(h>>>0<a>>>0);i=z;return y|0}l=k*3.141592653589793;k=o*3.141592653589793;h=0;do{o=+(h>>>0);g[x>>2]=o*l/q;g[e>>2]=o*k/q;c[v>>2]=c[x>>2];c[v+4>>2]=c[x+4>>2];Io(w,v);A=c[b>>2]|0;c[d+(h<<3)>>2]=c[w>>2];c[d+(h<<3)+4>>2]=A;h=h+1|0}while(h>>>0<a>>>0);i=z;return y|0}function Qk(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;x=i;i=i+16|0;if((i|0)>=(j|0))ba();d=x;w=c[a+40>>2]|0;t=c[a+44>>2]|0;u=c[a+52>>2]|0;v=c[a+56>>2]|0;s=c[a+48>>2]|0;e=c[a+60>>2]|0;gq(s|0,c[a+4>>2]|0,c[a>>2]<<3|0)|0;r=(t|0)==0;a:do if(!r){q=a+64|0;f=d+4|0;if(!w){b=0;while(1){h=c[q>>2]|0;qb[c[h+28>>2]&31](h);b=b+1|0;if((b|0)==(t|0))break a}}else h=0;do{b=0;do{z=(_(b,t)|0)+h|0;y=c[s+(z<<3)+4>>2]|0;c[u+(b<<3)>>2]=c[s+(z<<3)>>2];c[u+(b<<3)+4>>2]=y;b=b+1|0}while((b|0)!=(w|0));b=c[q>>2]|0;qb[c[b+28>>2]&31](b);b=0;do{m=+g[v+(b<<3)>>2];n=+g[v+(b<<3)+4>>2];z=_(b,h)|0;o=+g[e+(z<<3)>>2];p=+g[e+(z<<3)+4>>2];l=m*o-n*p;k=n*o+m*p;if((l!=l|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(d,m,n,o,p);l=+g[d>>2];k=+g[f>>2]}z=(_(b,t)|0)+h|0;g[s+(z<<3)>>2]=l;g[s+(z<<3)+4>>2]=k;b=b+1|0}while((b|0)!=(w|0));h=h+1|0}while((h|0)!=(t|0))}while(0);if(!w){i=x;return}h=a+68|0;f=a+8|0;if(r){b=0;do{z=c[h>>2]|0;qb[c[z+28>>2]&31](z);b=b+1|0}while((b|0)!=(w|0));i=x;return}else e=0;do{b=_(e,t)|0;d=0;do{y=d+b|0;z=c[s+(y<<3)+4>>2]|0;c[u+(d<<3)>>2]=c[s+(y<<3)>>2];c[u+(d<<3)+4>>2]=z;d=d+1|0}while((d|0)!=(t|0));b=c[h>>2]|0;qb[c[b+28>>2]&31](b);b=0;do{r=c[v+(b<<3)+4>>2]|0;z=(_(b,w)|0)+e|0;y=c[f>>2]|0;c[y+(z<<3)>>2]=c[v+(b<<3)>>2];c[y+(z<<3)+4>>2]=r;b=b+1|0}while((b|0)!=(t|0));e=e+1|0}while((e|0)!=(w|0));i=x;return}function Rk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var 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,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+48|0;if((i|0)>=(j|0))ba();A=F+40|0;x=F+32|0;B=F;C=F+24|0;D=F+16|0;E=Xp(72)|0;c[E>>2]=a;c[E+4>>2]=b;c[E+8>>2]=d;c[E+16>>2]=f;y=(e|0)==1?1:-1;c[E+20>>2]=y;l=E+12|0;c[l>>2]=y;c[E+24>>2]=3;c[E+28>>2]=11;y=(a<<3)+-8|0;e=Xp(y)|0;o=E+40|0;u=E+48|0;c[u>>2]=e;y=Xp(y)|0;c[E+52>>2]=y;k=a+-1|0;z=Mk(k,e,y,1,f)|0;c[E+56>>2]=z;c[E+60>>2]=Mk(k,y,e,-1,f)|0;e=El(a)|0;b=Xp((a<<2)+-4|0)|0;c[o>>2]=b;a:do if((a|0)!=1){d=0;do{w=d;d=d+1|0;c[b+(w<<2)>>2]=Fl(e,d,a)|0}while(d>>>0<k>>>0);e=c[E>>2]|0;s=(c[l>>2]|0)==1?-1.0:1.0;if((e|0)!=1){t=s*0.0;m=t*2.0-t;n=s*2.0+t*0.0;d=x+4|0;l=c[o>>2]|0;a=B+8|0;v=+(e>>>0);o=D+4|0;w=C+4|0;k=c[u>>2]|0;f=e+-1|0;if((m!=m|0.0!=0.0)&(n!=n|0.0!=0.0)){b=0;while(1){ao(x,t,s,2.0,0.0);p=+g[x>>2]*3.141592653589793;q=+g[d>>2]*3.141592653589793;r=+((c[l+(b<<2)>>2]|0)>>>0);n=p*r-q*0.0;m=p*0.0+q*r;if((n!=n|0.0!=0.0)&(m!=m|0.0!=0.0)){$n(B,p,q,r,0.0);n=+h[B>>3];m=+h[a>>3]}g[D>>2]=n/v;g[o>>2]=m/v;c[A>>2]=c[D>>2];c[A+4>>2]=c[D+4>>2];Io(C,A);u=c[w>>2]|0;c[k+(b<<3)>>2]=c[C>>2];c[k+(b<<3)+4>>2]=u;b=b+1|0;if(b>>>0>=f>>>0)break a}}t=m*3.141592653589793;q=n*3.141592653589793;r=q*0.0;s=t*0.0;b=0;do{p=+((c[l+(b<<2)>>2]|0)>>>0);n=t*p-r;m=s+q*p;if((n!=n|0.0!=0.0)&(m!=m|0.0!=0.0)){$n(B,t,q,p,0.0);n=+h[B>>3];m=+h[a>>3]}g[D>>2]=n/v;g[o>>2]=m/v;c[A>>2]=c[D>>2];c[A+4>>2]=c[D+4>>2];Io(C,A);x=c[w>>2]|0;c[k+(b<<3)>>2]=c[C>>2];c[k+(b<<3)+4>>2]=x;b=b+1|0}while(b>>>0<f>>>0)}else e=1}else e=1;while(0);qb[c[z+28>>2]&31](z);D=(e<<3)+-8|0;C=Xp(D)|0;c[E+44>>2]=C;fq(C|0,y|0,D|0)|0;i=F;return E|0}function Sk(a){a=a|0;var b=0,d=0,e=0,f=0,h=0.0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0;t=i;i=i+16|0;if((i|0)>=(j|0))ba();r=t;b=(c[a>>2]|0)+-1|0;s=a+40|0;if(b|0){e=a+4|0;f=a+48|0;d=0;do{u=c[(c[s>>2]|0)+(b+~d<<2)>>2]|0;v=c[e>>2]|0;l=c[v+(u<<3)+4>>2]|0;q=c[f>>2]|0;c[q+(d<<3)>>2]=c[v+(u<<3)>>2];c[q+(d<<3)+4>>2]=l;d=d+1|0;b=(c[a>>2]|0)+-1|0}while(b>>>0>d>>>0)}v=c[a+56>>2]|0;qb[c[v+28>>2]&31](v);if((c[a>>2]|0)!=1){b=a+44|0;d=a+52|0;e=r+4|0;q=0;do{l=c[b>>2]|0;m=+g[l+(q<<3)>>2];n=+g[l+(q<<3)+4>>2];l=c[d>>2]|0;f=l+(q<<3)|0;o=+g[f>>2];l=l+(q<<3)+4|0;p=+g[l>>2];k=m*o-n*p;h=n*o+m*p;if((k!=k|0.0!=0.0)&(h!=h|0.0!=0.0)){ao(r,o,p,m,n);k=+g[r>>2];h=+g[e>>2]}g[f>>2]=k;g[l>>2]=h;q=q+1|0}while(q>>>0<((c[a>>2]|0)+-1|0)>>>0)}l=c[a+60>>2]|0;qb[c[l+28>>2]&31](l);l=a+8|0;v=c[l>>2]|0;g[v>>2]=0.0;g[v+4>>2]=0.0;if(c[a>>2]|0){d=a+4|0;e=0;do{u=c[d>>2]|0;v=c[l>>2]|0;b=v+4|0;p=+g[u+(e<<3)+4>>2]+ +g[b>>2];g[v>>2]=+g[u+(e<<3)>>2]+ +g[v>>2];g[b>>2]=p;e=e+1|0;b=c[a>>2]|0}while(e>>>0<b>>>0);b=b+-1|0;if(!b){i=t;return}}else b=-1;e=a+48|0;f=a+4|0;d=0;do{v=c[(c[s>>2]|0)+(d<<2)>>2]|0;q=c[e>>2]|0;o=+(b>>>0);r=c[f>>2]|0;p=+g[q+(d<<3)+4>>2]/o+ +g[r+4>>2];u=c[l>>2]|0;g[u+(v<<3)>>2]=+g[q+(d<<3)>>2]/o+ +g[r>>2];g[u+(v<<3)+4>>2]=p;d=d+1|0;b=(c[a>>2]|0)+-1|0}while(d>>>0<b>>>0);i=t;return}function Tk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var k=0.0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0.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;G=i;i=i+48|0;if((i|0)>=(j|0))ba();B=G+40|0;z=G+32|0;C=G;D=G+24|0;E=G+16|0;F=Xp(72)|0;c[F>>2]=a;c[F+4>>2]=b;c[F+8>>2]=d;o=F+16|0;c[o>>2]=f;b=(e|0)==1?1:-1;c[F+20>>2]=b;n=F+12|0;c[n>>2]=b;c[F+24>>2]=4;c[F+28>>2]=12;b=El(a)|0;d=Xp((a<<2)+-4|0)|0;A=F+40|0;t=F+44|0;c[t>>2]=d;if((a|0)==1)b=-3;else{e=a+-1|0;f=0;do{y=f;f=f+1|0;c[d+(y<<2)>>2]=Fl(b,f,a)|0}while(f>>>0<e>>>0);b=(a<<1)+-5|0}c[A>>2]=b;d=0;do{b=b>>>1;d=d+1|0}while((b|0)!=0);b=d;w=1<<b;c[A>>2]=w;a=w<<3;x=Xp(a)|0;c[F+52>>2]=x;a=Xp(a)|0;y=F+56|0;c[y>>2]=a;d=c[o>>2]|0;v=F+60|0;c[v>>2]=Mk(w,x,a,1,d)|0;c[F+64>>2]=Mk(w,a,x,-1,d)|0;r=(c[n>>2]|0)==1?-1.0:1.0;s=r*0.0;k=s*2.0-s;l=r*2.0+s*0.0;d=z+4|0;a=c[F>>2]|0;o=a+-1|0;e=c[t>>2]|0;f=C+8|0;u=+(a>>>0);a=E+4|0;n=D+4|0;if((k!=k|0.0!=0.0)&(l!=l|0.0!=0.0)){b=0;do{ao(z,s,r,2.0,0.0);m=+g[z>>2]*3.141592653589793;p=+g[d>>2]*3.141592653589793;q=+((c[e+(((b>>>0)%(o>>>0)|0)<<2)>>2]|0)>>>0);l=m*q-p*0.0;k=m*0.0+p*q;if((l!=l|0.0!=0.0)&(k!=k|0.0!=0.0)){$n(C,m,p,q,0.0);l=+h[C>>3];k=+h[f>>3]}g[E>>2]=l/u;g[a>>2]=k/u;c[B>>2]=c[E>>2];c[B+4>>2]=c[E+4>>2];Io(D,B);t=c[n>>2]|0;c[x+(b<<3)>>2]=c[D>>2];c[x+(b<<3)+4>>2]=t;b=b+1|0}while(b>>>0<w>>>0);E=c[v>>2]|0;C=E+28|0;C=c[C>>2]|0;qb[C&31](E);E=c[A>>2]|0;E=E<<3;C=Xp(E)|0;D=F+48|0;c[D>>2]=C;D=c[y>>2]|0;gq(C|0,D|0,E|0)|0;i=G;return F|0}s=k*3.141592653589793;p=l*3.141592653589793;q=p*0.0;r=s*0.0;b=0;do{l=+((c[e+(((b>>>0)%(o>>>0)|0)<<2)>>2]|0)>>>0);m=s*l-q;k=r+p*l;if((m!=m|0.0!=0.0)&(k!=k|0.0!=0.0)){$n(C,s,p,l,0.0);m=+h[C>>3];k=+h[f>>3]}g[E>>2]=m/u;g[a>>2]=k/u;c[B>>2]=c[E>>2];c[B+4>>2]=c[E+4>>2];Io(D,B);z=c[n>>2]|0;c[x+(b<<3)>>2]=c[D>>2];c[x+(b<<3)+4>>2]=z;b=b+1|0}while(b>>>0<w>>>0);E=c[v>>2]|0;C=E+28|0;C=c[C>>2]|0;qb[C&31](E);E=c[A>>2]|0;E=E<<3;C=Xp(E)|0;D=F+48|0;c[D>>2]=C;D=c[y>>2]|0;gq(C|0,D|0,E|0)|0;i=G;return F|0}function Uk(a){a=a|0;var b=0,d=0.0,e=0,f=0,h=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;w=i;i=i+16|0;if((i|0)>=(j|0))ba();p=w;u=c[a+52>>2]|0;q=c[a+56>>2]|0;r=c[a+48>>2]|0;v=c[a+44>>2]|0;s=c[a+40>>2]|0;k=c[v+((c[a>>2]|0)+-2<<2)>>2]|0;t=a+4|0;f=c[t>>2]|0;b=c[f+(k<<3)+4>>2]|0;c[u>>2]=c[f+(k<<3)>>2];c[u+4>>2]=b;b=c[a>>2]|0;k=s+1|0;if((k|0)!=(b|0)){e=0;do{e=e+1|0;g[u+(e<<3)>>2]=0.0;g[u+(e<<3)+4>>2]=0.0;b=c[a>>2]|0}while(e>>>0<(k-b|0)>>>0)}e=b+-1|0;if(e>>>0>1){f=1;do{z=c[v+(e+~f<<2)>>2]|0;A=c[t>>2]|0;y=c[A+(z<<3)+4>>2]|0;x=k+f-b|0;c[u+(x<<3)>>2]=c[A+(z<<3)>>2];c[u+(x<<3)+4>>2]=y;f=f+1|0;b=c[a>>2]|0;e=b+-1|0}while(e>>>0>f>>>0)}A=c[a+60>>2]|0;qb[c[A+28>>2]&31](A);if(s|0){b=p+4|0;k=0;do{l=+g[r+(k<<3)>>2];m=+g[r+(k<<3)+4>>2];e=q+(k<<3)|0;n=+g[e>>2];f=q+(k<<3)+4|0;o=+g[f>>2];h=l*n-m*o;d=m*n+l*o;if((h!=h|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(p,n,o,l,m);h=+g[p>>2];d=+g[b>>2]}g[e>>2]=h;g[f>>2]=d;k=k+1|0}while((k|0)!=(s|0))}f=c[a+64>>2]|0;qb[c[f+28>>2]&31](f);f=a+8|0;A=c[f>>2]|0;g[A>>2]=0.0;g[A+4>>2]=0.0;if(c[a>>2]|0){e=0;do{z=c[t>>2]|0;A=c[f>>2]|0;b=A+4|0;o=+g[z+(e<<3)+4>>2]+ +g[b>>2];g[A>>2]=+g[z+(e<<3)>>2]+ +g[A>>2];g[b>>2]=o;e=e+1|0;b=c[a>>2]|0}while(e>>>0<b>>>0);if((b|0)==1){i=w;return}}d=+(s>>>0);b=0;do{A=c[v+(b<<2)>>2]|0;y=c[t>>2]|0;o=+g[u+(b<<3)+4>>2]/d+ +g[y+4>>2];z=c[f>>2]|0;g[z+(A<<3)>>2]=+g[u+(b<<3)>>2]/d+ +g[y>>2];g[z+(A<<3)+4>>2]=o;b=b+1|0}while(b>>>0<((c[a>>2]|0)+-1|0)>>>0);i=w;return}function Vk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0.0,q=0.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;B=i;i=i+32|0;if((i|0)>=(j|0))ba();w=B+24|0;x=B+16|0;y=B+8|0;z=B;A=Xp(72)|0;c[A>>2]=a;c[A+4>>2]=b;c[A+8>>2]=d;c[A+16>>2]=f;b=(e|0)==1;v=b?1:-1;c[A+20>>2]=v;c[A+12>>2]=v;c[A+24>>2]=5;v=A+40|0;c[v>>2]=0;f=A+44|0;c[f>>2]=0;switch(a|0){case 2:{c[A+28>>2]=13;i=B;return A|0}case 3:{c[A+28>>2]=14;i=B;return A|0}case 4:{c[A+28>>2]=15;i=B;return A|0}case 5:{c[A+28>>2]=16;i=B;return A|0}case 6:{c[A+28>>2]=17;i=B;return A|0}case 7:{c[A+28>>2]=18;i=B;return A|0}case 8:{c[A+28>>2]=19;i=B;return A|0}default:{e=A+28|0;if((a|0)==16){c[e>>2]=20;i=B;return A|0}c[e>>2]=21;t=Xp(a<<3)|0;c[v>>2]=t;u=Xp(a<<2)|0;c[f>>2]=u;k=b?-1.0:1.0;if(!a){i=B;return A|0}d=a>>>0>1;l=k*0.0;p=l*2.0-l;q=k*2.0+l*0.0;s=(p!=p|0.0!=0.0)&(q!=q|0.0!=0.0);m=x+4|0;n=z+4|0;o=y+4|0;p=p*3.141592653589793;q=q*3.141592653589793;r=0;do{if(d){e=c[A>>2]|0;h=+(e>>>0);b=c[v>>2]|0;if(s){f=1;do{ao(x,l,k,2.0,0.0);F=+((_(f,r)|0)>>>0);E=F*(+g[m>>2]*3.141592653589793)/h;g[z>>2]=F*(+g[x>>2]*3.141592653589793)/h;g[n>>2]=E;c[w>>2]=c[z>>2];c[w+4>>2]=c[z+4>>2];Io(y,w);D=c[o>>2]|0;C=f+-1|0;c[b+(C<<3)>>2]=c[y>>2];c[b+(C<<3)+4>>2]=D;f=f+1|0}while(f>>>0<e>>>0)}else{f=1;do{F=+((_(f,r)|0)>>>0);g[z>>2]=F*p/h;g[n>>2]=F*q/h;c[w>>2]=c[z>>2];c[w+4>>2]=c[z+4>>2];Io(y,w);C=c[o>>2]|0;D=f+-1|0;c[b+(D<<3)>>2]=c[y>>2];c[b+(D<<3)+4>>2]=C;f=f+1|0}while(f>>>0<e>>>0)}}else e=a;c[u+(r<<2)>>2]=Gl(t,e+-1|0)|0;r=r+1|0}while(r>>>0<a>>>0);i=B;return A|0}}return 0}function Wk(a){a=a|0;var b=0.0,d=0,e=0,f=0;d=a+4|0;f=c[d>>2]|0;b=+g[f+4>>2]+ +g[f+12>>2];a=a+8|0;e=c[a>>2]|0;g[e>>2]=+g[f>>2]+ +g[f+8>>2];g[e+4>>2]=b;d=c[d>>2]|0;b=+g[d+4>>2]-+g[d+12>>2];a=c[a>>2]|0;g[a+8>>2]=+g[d>>2]-+g[d+8>>2];g[a+12>>2]=b;return}function Xk(a){a=a|0;var b=0.0,d=0,e=0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=i;i=i+80|0;if((i|0)>=(j|0))ba();v=C+64|0;e=C+56|0;p=C+48|0;o=C+40|0;r=C+32|0;x=C+24|0;w=C+16|0;y=C+8|0;A=C;z=a+4|0;D=c[z>>2]|0;s=+g[D+4>>2]+ +g[D+12>>2]+ +g[D+20>>2];B=a+8|0;d=c[B>>2]|0;g[d>>2]=+g[D>>2]+ +g[D+8>>2]+ +g[D+16>>2];g[d+4>>2]=s;d=c[z>>2]|0;s=+g[d>>2];t=+g[d+4>>2];b=+g[d+8>>2];f=+g[d+12>>2];h=f*.8660253882408142-b*.5;k=f*-.5-b*.8660253882408142;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(e,b,f,-.5,-.8660253882408142);h=+g[e>>2];q=+g[e+4>>2];d=c[z>>2]|0}else q=k;n=+g[d+16>>2];m=+g[d+20>>2];g[o>>2]=-.5;g[o+4>>2]=-.8660253882408142;c[v>>2]=c[o>>2];c[v+4>>2]=c[o+4>>2];Ko(p,v);l=+g[p>>2];k=+g[p+4>>2];f=n*l-m*k;b=m*l+n*k;if((f!=f|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(r,n,m,l,k);f=+g[r>>2];b=+g[r+4>>2]}u=s+h+f;s=t+q+b;D=c[z>>2]|0;n=+g[D>>2];q=+g[D+4>>2];l=+g[D+8>>2];m=+g[D+12>>2];g[w>>2]=-.5;g[w+4>>2]=-.8660253882408142;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];Ko(x,v);h=+g[x>>2];b=+g[x+4>>2];k=l*h-m*b;f=m*h+l*b;if((k!=k|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(y,l,m,h,b);m=+g[y+4>>2];l=+g[y>>2]}else{m=f;l=k}D=c[z>>2]|0;h=+g[D+16>>2];k=+g[D+20>>2];f=k*.8660253882408142-h*.5;b=k*-.5-h*.8660253882408142;if((f!=f|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(A,h,k,-.5,-.8660253882408142);f=+g[A>>2];b=+g[A+4>>2]}f=n+l+f;b=q+m+b;e=c[B>>2]|0;d=e+8|0;e=e+12|0;if((c[a+12>>2]|0)==1){g[d>>2]=u;g[e>>2]=s;D=c[B>>2]|0;g[D+16>>2]=f;g[D+20>>2]=b;i=C;return}else{g[d>>2]=f;g[e>>2]=b;D=c[B>>2]|0;g[D+16>>2]=u;g[D+20>>2]=s;i=C;return}}function Yk(a){a=a|0;var b=0,d=0.0,e=0.0,f=0,h=0.0,i=0.0,j=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0;l=c[a+4>>2]|0;p=c[a+8>>2]|0;z=c[l>>2]|0;y=c[l+4>>2]|0;m=p+4|0;c[p>>2]=z;c[m>>2]=y;B=c[l+16>>2]|0;A=c[l+20>>2]|0;f=p+8|0;b=p+12|0;c[f>>2]=B;c[b>>2]=A;x=c[l+8>>2]|0;w=c[l+12>>2]|0;t=p+16|0;s=p+20|0;c[t>>2]=x;c[s>>2]=w;v=+g[l+24>>2];u=+g[l+28>>2];l=p+24|0;j=p+28|0;o=(c[k>>2]=B,+g[k>>2]);r=(c[k>>2]=A,+g[k>>2]);q=(c[k>>2]=z,+g[k>>2]);n=(c[k>>2]=y,+g[k>>2]);i=q-o;e=n-r;g[f>>2]=i;g[b>>2]=e;q=o+q;n=r+n;r=(c[k>>2]=x,+g[k>>2]);o=(c[k>>2]=w,+g[k>>2]);d=r-v;h=o-u;g[l>>2]=d;g[j>>2]=h;r=v+r;o=u+o;g[t>>2]=q-r;g[s>>2]=n-o;g[p>>2]=r+q;g[m>>2]=o+n;h=h-d*0.0;a=(c[a+12>>2]|0)==-1;h=a?-h:h;d=a?d:-d;g[l>>2]=i-h;g[j>>2]=e-d;g[f>>2]=i+h;g[b>>2]=e+d;return}function Zk(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.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.0,N=0,O=0.0,P=0,Q=0,R=0.0,S=0,T=0.0,U=0,V=0,W=0,X=0,Y=0.0,Z=0,_=0.0,$=0,aa=0,ca=0,da=0.0,ea=0.0,fa=0,ga=0,ha=0,ia=0;ia=i;i=i+208|0;if((i|0)>=(j|0))ba();v=ia+192|0;p=ia+184|0;q=ia+176|0;s=ia+168|0;r=ia+160|0;u=ia+152|0;t=ia+144|0;x=ia+136|0;w=ia+128|0;y=ia+120|0;B=ia+112|0;C=ia+104|0;D=ia+96|0;E=ia+88|0;F=ia+80|0;G=ia+72|0;H=ia+64|0;I=ia+56|0;J=ia+48|0;K=ia+40|0;L=ia+32|0;U=ia+24|0;X=ia+16|0;aa=ia+8|0;ga=ia;N=c[a+4>>2]|0;ha=c[a+8>>2]|0;P=N+4|0;Q=N+8|0;S=N+12|0;V=N+16|0;W=N+20|0;Z=N+24|0;$=N+28|0;ca=N+32|0;fa=N+36|0;ea=+g[P>>2]+ +g[S>>2]+ +g[W>>2]+ +g[$>>2]+ +g[fa>>2];g[ha>>2]=+g[N>>2]+ +g[Q>>2]+ +g[V>>2]+ +g[Z>>2]+ +g[ca>>2];g[ha+4>>2]=ea;if((c[a+12>>2]|0)==-1){g[q>>2]=.30901700258255005;g[q+4>>2]=-.9510565400123596;c[v>>2]=c[q>>2];c[v+4>>2]=c[q+4>>2];Ko(p,v);da=+g[p>>2];ea=+g[p+4>>2];g[r>>2]=-.80901700258255;g[r+4>>2]=-.5877852439880371;c[v>>2]=c[r>>2];c[v+4>>2]=c[r+4>>2];Ko(s,v);_=+g[s>>2];Y=+g[s+4>>2]}else{da=.30901700258255005;ea=-.9510565400123596;_=-.80901700258255;Y=-.5877852439880371}g[t>>2]=da;g[t+4>>2]=ea;c[v>>2]=c[t>>2];c[v+4>>2]=c[t+4>>2];Ko(u,v);O=+g[u>>2];M=+g[u+4>>2];g[w>>2]=_;g[w+4>>2]=Y;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];Ko(x,v);T=+g[x>>2];R=+g[x+4>>2];z=+g[N>>2];A=+g[P>>2];b=+g[Q>>2];d=+g[S>>2];e=da*b-ea*d;f=ea*b+da*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(y,b,d,da,ea);e=+g[y>>2];f=+g[y+4>>2]}d=+g[V>>2];h=+g[W>>2];b=_*d-Y*h;k=Y*d+_*h;if((b!=b|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(B,d,h,_,Y);o=+g[B>>2];k=+g[B+4>>2]}else o=b;b=+g[Z>>2];d=+g[$>>2];h=T*b-R*d;l=R*b+T*d;if((h!=h|0.0!=0.0)&(l!=l|0.0!=0.0)){ao(C,b,d,T,R);h=+g[C>>2];l=+g[C+4>>2]}m=+g[ca>>2];n=+g[fa>>2];d=O*m-M*n;b=M*m+O*n;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(D,m,n,O,M);d=+g[D>>2];b=+g[D+4>>2]}g[ha+8>>2]=z+e+o+h+d;g[ha+12>>2]=A+f+k+l+b;z=+g[N>>2];A=+g[P>>2];b=+g[Q>>2];d=+g[S>>2];e=_*b-Y*d;f=Y*b+_*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(E,b,d,_,Y);e=+g[E>>2];f=+g[E+4>>2]}b=+g[V>>2];d=+g[W>>2];h=O*b-M*d;k=M*b+O*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(F,b,d,O,M);h=+g[F>>2];k=+g[F+4>>2]}b=+g[Z>>2];d=+g[$>>2];l=da*b-ea*d;m=ea*b+da*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(G,b,d,da,ea);l=+g[G>>2];m=+g[G+4>>2]}n=+g[ca>>2];o=+g[fa>>2];d=T*n-R*o;b=R*n+T*o;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(H,n,o,T,R);d=+g[H>>2];b=+g[H+4>>2]}g[ha+16>>2]=z+e+h+l+d;g[ha+20>>2]=A+f+k+m+b;z=+g[N>>2];A=+g[P>>2];b=+g[Q>>2];d=+g[S>>2];e=T*b-R*d;f=R*b+T*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(I,b,d,T,R);e=+g[I>>2];f=+g[I+4>>2]}b=+g[V>>2];d=+g[W>>2];h=da*b-ea*d;k=ea*b+da*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(J,b,d,da,ea);h=+g[J>>2];k=+g[J+4>>2]}b=+g[Z>>2];d=+g[$>>2];l=O*b-M*d;m=M*b+O*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(K,b,d,O,M);l=+g[K>>2];m=+g[K+4>>2]}n=+g[ca>>2];o=+g[fa>>2];d=_*n-Y*o;b=Y*n+_*o;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(L,n,o,_,Y);d=+g[L>>2];b=+g[L+4>>2]}g[ha+24>>2]=z+e+h+l+d;g[ha+28>>2]=A+f+k+m+b;n=+g[N>>2];o=+g[P>>2];e=+g[Q>>2];b=+g[S>>2];d=O*e-M*b;f=M*e+O*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(U,e,b,O,M);m=+g[U>>2];l=+g[U+4>>2]}else{m=d;l=f}e=+g[V>>2];b=+g[W>>2];d=T*e-R*b;f=R*e+T*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(X,e,b,T,R);k=+g[X>>2];h=+g[X+4>>2]}else{k=d;h=f}f=+g[Z>>2];e=+g[$>>2];d=_*f-Y*e;b=Y*f+_*e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(aa,f,e,_,Y);d=+g[aa>>2];b=+g[aa+4>>2]}k=n+m+k+d;h=o+l+h+b;f=+g[ca>>2];b=+g[fa>>2];d=da*f-ea*b;e=ea*f+da*b;if(!((d!=d|0.0!=0.0)&(e!=e|0.0!=0.0))){da=d;ea=e;da=k+da;ea=h+ea;ga=ha+32|0;ha=ha+36|0;g[ga>>2]=da;g[ha>>2]=ea;i=ia;return}ao(ga,f,b,da,ea);da=+g[ga>>2];ea=+g[ga+4>>2];da=k+da;ea=h+ea;ga=ha+32|0;ha=ha+36|0;g[ga>>2]=da;g[ha>>2]=ea;i=ia;return}function _k(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.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.0,J=0.0,K=0,L=0,M=0,N=0,O=0,P=0.0,Q=0.0,R=0,S=0,T=0,U=0.0,V=0.0,W=0,X=0,Y=0,Z=0,_=0,$=0.0,aa=0.0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=i;i=i+208|0;if((i|0)>=(j|0))ba();n=ha+192|0;o=ha+184|0;p=ha+176|0;w=ha+168|0;q=ha+160|0;r=ha+152|0;s=ha+144|0;v=ha+136|0;t=ha+128|0;x=ha+120|0;y=ha+112|0;z=ha+104|0;A=ha+96|0;B=ha+88|0;C=ha+80|0;D=ha+72|0;E=ha+64|0;F=ha+56|0;G=ha+48|0;H=ha+40|0;K=ha+32|0;R=ha+24|0;W=ha+16|0;ca=ha+8|0;fa=ha;L=c[a+4>>2]|0;ga=c[a+8>>2]|0;M=L+4|0;N=L+8|0;O=L+12|0;S=L+16|0;T=L+20|0;X=L+24|0;Y=L+28|0;Z=L+32|0;_=L+36|0;da=L+40|0;ea=L+44|0;aa=+g[M>>2]+ +g[O>>2]+ +g[T>>2]+ +g[Y>>2]+ +g[_>>2]+ +g[ea>>2];g[ga>>2]=+g[L>>2]+ +g[N>>2]+ +g[S>>2]+ +g[X>>2]+ +g[Z>>2]+ +g[da>>2];g[ga+4>>2]=aa;if((c[a+12>>2]|0)==1){g[p>>2]=.5;g[p+4>>2]=-.8660253882408142;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];Ko(o,n);U=-+g[o>>2];V=-+g[o+4>>2];g[q>>2]=.5;g[q+4>>2]=-.8660253882408142;c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];Ko(w,n);$=.5;aa=-.8660253882408142;Q=-.5;P=.8660253882408142;J=+g[w>>2];I=+g[w+4>>2]}else{g[s>>2]=.5;g[s+4>>2]=-.8660253882408142;c[n>>2]=c[s>>2];c[n+4>>2]=c[s+4>>2];Ko(r,n);$=+g[r>>2];aa=+g[r+4>>2];g[t>>2]=.5;g[t+4>>2]=-.8660253882408142;c[n>>2]=c[t>>2];c[n+4>>2]=c[t+4>>2];Ko(v,n);U=-.5;V=.8660253882408142;Q=-+g[v>>2];P=-+g[v+4>>2];J=.5;I=-.8660253882408142}l=+g[L>>2];u=+g[M>>2];b=+g[N>>2];d=+g[O>>2];e=$*b-aa*d;f=aa*b+$*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(x,b,d,$,aa);e=+g[x>>2];k=+g[x+4>>2]}else k=f;f=+g[S>>2];h=+g[T>>2];d=U*f-V*h;b=V*f+U*h;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(y,f,h,U,V);d=+g[y>>2];b=+g[y+4>>2]}m=l+e+d-+g[X>>2];l=u+k+b-+g[Y>>2];b=+g[Z>>2];d=+g[_>>2];e=Q*b-P*d;f=P*b+Q*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(z,b,d,Q,P);e=+g[z>>2];f=+g[z+4>>2]}h=+g[da>>2];k=+g[ea>>2];d=J*h-I*k;b=I*h+J*k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(A,h,k,J,I);d=+g[A>>2];b=+g[A+4>>2]}g[ga+8>>2]=m+e+d;g[ga+12>>2]=l+f+b;l=+g[L>>2];m=+g[M>>2];b=+g[N>>2];d=+g[O>>2];e=U*b-V*d;f=V*b+U*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(B,b,d,U,V);e=+g[B>>2];f=+g[B+4>>2]}h=+g[S>>2];k=+g[T>>2];d=Q*h-P*k;b=P*h+Q*k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(C,h,k,Q,P);d=+g[C>>2];b=+g[C+4>>2]}u=l+e+d+ +g[X>>2];l=m+f+b+ +g[Y>>2];b=+g[Z>>2];d=+g[_>>2];e=U*b-V*d;f=V*b+U*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(D,b,d,U,V);e=+g[D>>2];f=+g[D+4>>2]}h=+g[da>>2];k=+g[ea>>2];d=Q*h-P*k;b=P*h+Q*k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(E,h,k,Q,P);d=+g[E>>2];b=+g[E+4>>2]}g[ga+16>>2]=u+e+d;g[ga+20>>2]=l+f+b;l=+g[M>>2]-+g[O>>2]+ +g[T>>2]-+g[Y>>2]+ +g[_>>2]-+g[ea>>2];g[ga+24>>2]=+g[L>>2]-+g[N>>2]+ +g[S>>2]-+g[X>>2]+ +g[Z>>2]-+g[da>>2];g[ga+28>>2]=l;l=+g[L>>2];m=+g[M>>2];b=+g[N>>2];d=+g[O>>2];e=Q*b-P*d;f=P*b+Q*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(F,b,d,Q,P);e=+g[F>>2];f=+g[F+4>>2]}h=+g[S>>2];k=+g[T>>2];d=U*h-V*k;b=V*h+U*k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(G,h,k,U,V);d=+g[G>>2];b=+g[G+4>>2]}u=l+e+d+ +g[X>>2];l=m+f+b+ +g[Y>>2];b=+g[Z>>2];d=+g[_>>2];e=Q*b-P*d;f=P*b+Q*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(H,b,d,Q,P);e=+g[H>>2];f=+g[H+4>>2]}h=+g[da>>2];k=+g[ea>>2];d=U*h-V*k;b=V*h+U*k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(K,h,k,U,V);d=+g[K>>2];b=+g[K+4>>2]}g[ga+32>>2]=u+e+d;g[ga+36>>2]=l+f+b;l=+g[L>>2];m=+g[M>>2];e=+g[N>>2];b=+g[O>>2];d=J*e-I*b;f=I*e+J*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(R,e,b,J,I);k=+g[R>>2];h=+g[R+4>>2]}else{k=d;h=f}f=+g[S>>2];e=+g[T>>2];d=Q*f-P*e;b=P*f+Q*e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(W,f,e,Q,P);d=+g[W>>2];b=+g[W+4>>2]}k=l+k+d-+g[X>>2];h=m+h+b-+g[Y>>2];f=+g[Z>>2];e=+g[_>>2];d=U*f-V*e;b=V*f+U*e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(ca,f,e,U,V);d=+g[ca>>2];b=+g[ca+4>>2]}k=k+d;h=h+b;f=+g[da>>2];b=+g[ea>>2];d=$*f-aa*b;e=aa*f+$*b;if(!((d!=d|0.0!=0.0)&(e!=e|0.0!=0.0))){$=d;aa=e;$=k+$;aa=h+aa;fa=ga+40|0;ga=ga+44|0;g[fa>>2]=$;g[ga>>2]=aa;i=ha;return}ao(fa,f,b,$,aa);$=+g[fa>>2];aa=+g[fa+4>>2];$=k+$;aa=h+aa;fa=ga+40|0;ga=ga+44|0;g[fa>>2]=$;g[ga>>2]=aa;i=ha;return}function $k(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.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.0,H=0.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,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0.0,ka=0.0,la=0,ma=0,na=0,oa=0.0,pa=0,qa=0.0,ra=0,sa=0,ta=0,ua=0,va=0.0,wa=0,xa=0.0,ya=0,za=0,Aa=0,Ba=0.0,Ca=0.0,Da=0,Ea=0,Fa=0,Ga=0.0,Ha=0.0,Ia=0,Ja=0,Ka=0,La=0,Ma=0.0,Na=0.0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0;Sa=i;i=i+400|0;if((i|0)>=(j|0))ba();D=Sa+384|0;t=Sa+376|0;u=Sa+368|0;v=Sa+360|0;w=Sa+352|0;y=Sa+344|0;x=Sa+336|0;A=Sa+328|0;z=Sa+320|0;C=Sa+312|0;B=Sa+304|0;F=Sa+296|0;E=Sa+288|0;I=Sa+280|0;J=Sa+272|0;K=Sa+264|0;L=Sa+256|0;M=Sa+248|0;N=Sa+240|0;O=Sa+232|0;P=Sa+224|0;Q=Sa+216|0;R=Sa+208|0;S=Sa+200|0;T=Sa+192|0;U=Sa+184|0;V=Sa+176|0;W=Sa+168|0;X=Sa+160|0;Y=Sa+152|0;Z=Sa+144|0;_=Sa+136|0;$=Sa+128|0;aa=Sa+120|0;ca=Sa+112|0;da=Sa+104|0;ea=Sa+96|0;fa=Sa+88|0;ga=Sa+80|0;ha=Sa+72|0;ia=Sa+64|0;la=Sa+56|0;ma=Sa+48|0;ta=Sa+40|0;ya=Sa+32|0;Da=Sa+24|0;Ia=Sa+16|0;La=Sa+8|0;Qa=Sa;na=c[a+4>>2]|0;Ra=c[a+8>>2]|0;pa=na+4|0;ra=na+8|0;sa=na+12|0;ua=na+16|0;wa=na+20|0;za=na+24|0;Aa=na+28|0;Ea=na+32|0;Fa=na+36|0;Ja=na+40|0;Ka=na+44|0;Oa=na+48|0;Pa=na+52|0;Na=+g[pa>>2]+ +g[sa>>2]+ +g[wa>>2]+ +g[Aa>>2]+ +g[Fa>>2]+ +g[Ka>>2]+ +g[Pa>>2];g[Ra>>2]=+g[na>>2]+ +g[ra>>2]+ +g[ua>>2]+ +g[za>>2]+ +g[Ea>>2]+ +g[Ja>>2]+ +g[Oa>>2];g[Ra+4>>2]=Na;if((c[a+12>>2]|0)==1){Ma=.6234897971153259;Na=-.7818315029144287;Ga=-.22252093255519867;Ha=-.9749279022216797;Ca=-.9009688496589661;Ba=-.4338837265968323}else{g[u>>2]=.6234897971153259;g[u+4>>2]=-.7818315029144287;c[D>>2]=c[u>>2];c[D+4>>2]=c[u+4>>2];Ko(t,D);Ma=+g[t>>2];Na=+g[t+4>>2];g[w>>2]=-.22252093255519867;g[w+4>>2]=-.9749279022216797;c[D>>2]=c[w>>2];c[D+4>>2]=c[w+4>>2];Ko(v,D);Ga=+g[v>>2];Ha=+g[v+4>>2];g[x>>2]=-.9009688496589661;g[x+4>>2]=-.4338837265968323;c[D>>2]=c[x>>2];c[D+4>>2]=c[x+4>>2];Ko(y,D);Ca=+g[y>>2];Ba=+g[y+4>>2]}g[z>>2]=Ca;g[z+4>>2]=Ba;c[D>>2]=c[z>>2];c[D+4>>2]=c[z+4>>2];Ko(A,D);xa=+g[A>>2];va=+g[A+4>>2];g[B>>2]=Ga;g[B+4>>2]=Ha;c[D>>2]=c[B>>2];c[D+4>>2]=c[B+4>>2];Ko(C,D);qa=+g[C>>2];oa=+g[C+4>>2];g[E>>2]=Ma;g[E+4>>2]=Na;c[D>>2]=c[E>>2];c[D+4>>2]=c[E+4>>2];Ko(F,D);ka=+g[F>>2];ja=+g[F+4>>2];G=+g[na>>2];H=+g[pa>>2];b=+g[ra>>2];d=+g[sa>>2];e=Ma*b-Na*d;f=Na*b+Ma*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(I,b,d,Ma,Na);e=+g[I>>2];f=+g[I+4>>2]}b=+g[ua>>2];d=+g[wa>>2];h=Ga*b-Ha*d;k=Ha*b+Ga*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(J,b,d,Ga,Ha);h=+g[J>>2];k=+g[J+4>>2]}b=+g[za>>2];d=+g[Aa>>2];l=Ca*b-Ba*d;m=Ba*b+Ca*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(K,b,d,Ca,Ba);l=+g[K>>2];m=+g[K+4>>2]}b=+g[Ea>>2];d=+g[Fa>>2];n=xa*b-va*d;o=va*b+xa*d;if((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0)){ao(L,b,d,xa,va);n=+g[L>>2];o=+g[L+4>>2]}b=+g[Ja>>2];d=+g[Ka>>2];p=qa*b-oa*d;q=oa*b+qa*d;if((p!=p|0.0!=0.0)&(q!=q|0.0!=0.0)){ao(M,b,d,qa,oa);p=+g[M>>2];q=+g[M+4>>2]}r=+g[Oa>>2];s=+g[Pa>>2];d=ka*r-ja*s;b=ja*r+ka*s;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(N,r,s,ka,ja);d=+g[N>>2];b=+g[N+4>>2]}g[Ra+8>>2]=G+e+h+l+n+p+d;g[Ra+12>>2]=H+f+k+m+o+q+b;G=+g[na>>2];H=+g[pa>>2];b=+g[ra>>2];d=+g[sa>>2];e=Ga*b-Ha*d;f=Ha*b+Ga*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(O,b,d,Ga,Ha);e=+g[O>>2];f=+g[O+4>>2]}b=+g[ua>>2];d=+g[wa>>2];h=xa*b-va*d;k=va*b+xa*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(P,b,d,xa,va);h=+g[P>>2];k=+g[P+4>>2]}b=+g[za>>2];d=+g[Aa>>2];l=ka*b-ja*d;m=ja*b+ka*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(Q,b,d,ka,ja);l=+g[Q>>2];m=+g[Q+4>>2]}b=+g[Ea>>2];d=+g[Fa>>2];n=Ma*b-Na*d;o=Na*b+Ma*d;if((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0)){ao(R,b,d,Ma,Na);n=+g[R>>2];o=+g[R+4>>2]}b=+g[Ja>>2];d=+g[Ka>>2];p=Ca*b-Ba*d;q=Ba*b+Ca*d;if((p!=p|0.0!=0.0)&(q!=q|0.0!=0.0)){ao(S,b,d,Ca,Ba);p=+g[S>>2];q=+g[S+4>>2]}r=+g[Oa>>2];s=+g[Pa>>2];d=qa*r-oa*s;b=oa*r+qa*s;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(T,r,s,qa,oa);d=+g[T>>2];b=+g[T+4>>2]}g[Ra+16>>2]=G+e+h+l+n+p+d;g[Ra+20>>2]=H+f+k+m+o+q+b;G=+g[na>>2];H=+g[pa>>2];b=+g[ra>>2];d=+g[sa>>2];e=Ca*b-Ba*d;f=Ba*b+Ca*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(U,b,d,Ca,Ba);e=+g[U>>2];f=+g[U+4>>2]}b=+g[ua>>2];d=+g[wa>>2];h=ka*b-ja*d;k=ja*b+ka*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(V,b,d,ka,ja);h=+g[V>>2];k=+g[V+4>>2]}b=+g[za>>2];d=+g[Aa>>2];l=Ga*b-Ha*d;m=Ha*b+Ga*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(W,b,d,Ga,Ha);l=+g[W>>2];m=+g[W+4>>2]}b=+g[Ea>>2];d=+g[Fa>>2];n=qa*b-oa*d;o=oa*b+qa*d;if((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0)){ao(X,b,d,qa,oa);n=+g[X>>2];o=+g[X+4>>2]}b=+g[Ja>>2];d=+g[Ka>>2];p=Ma*b-Na*d;q=Na*b+Ma*d;if((p!=p|0.0!=0.0)&(q!=q|0.0!=0.0)){ao(Y,b,d,Ma,Na);p=+g[Y>>2];q=+g[Y+4>>2]}r=+g[Oa>>2];s=+g[Pa>>2];d=xa*r-va*s;b=va*r+xa*s;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(Z,r,s,xa,va);d=+g[Z>>2];b=+g[Z+4>>2]}g[Ra+24>>2]=G+e+h+l+n+p+d;g[Ra+28>>2]=H+f+k+m+o+q+b;G=+g[na>>2];H=+g[pa>>2];b=+g[ra>>2];d=+g[sa>>2];e=xa*b-va*d;f=va*b+xa*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(_,b,d,xa,va);e=+g[_>>2];f=+g[_+4>>2]}b=+g[ua>>2];d=+g[wa>>2];h=Ma*b-Na*d;k=Na*b+Ma*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao($,b,d,Ma,Na);h=+g[$>>2];k=+g[$+4>>2]}b=+g[za>>2];d=+g[Aa>>2];l=qa*b-oa*d;m=oa*b+qa*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(aa,b,d,qa,oa);l=+g[aa>>2];m=+g[aa+4>>2]}b=+g[Ea>>2];d=+g[Fa>>2];n=Ga*b-Ha*d;o=Ha*b+Ga*d;if((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0)){ao(ca,b,d,Ga,Ha);n=+g[ca>>2];o=+g[ca+4>>2]}b=+g[Ja>>2];d=+g[Ka>>2];p=ka*b-ja*d;q=ja*b+ka*d;if((p!=p|0.0!=0.0)&(q!=q|0.0!=0.0)){ao(da,b,d,ka,ja);p=+g[da>>2];q=+g[da+4>>2]}r=+g[Oa>>2];s=+g[Pa>>2];d=Ca*r-Ba*s;b=Ba*r+Ca*s;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(ea,r,s,Ca,Ba);d=+g[ea>>2];b=+g[ea+4>>2]}g[Ra+32>>2]=G+e+h+l+n+p+d;g[Ra+36>>2]=H+f+k+m+o+q+b;G=+g[na>>2];H=+g[pa>>2];b=+g[ra>>2];d=+g[sa>>2];e=qa*b-oa*d;f=oa*b+qa*d;if((e!=e|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(fa,b,d,qa,oa);e=+g[fa>>2];f=+g[fa+4>>2]}b=+g[ua>>2];d=+g[wa>>2];h=Ca*b-Ba*d;k=Ba*b+Ca*d;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(ga,b,d,Ca,Ba);h=+g[ga>>2];k=+g[ga+4>>2]}b=+g[za>>2];d=+g[Aa>>2];l=Ma*b-Na*d;m=Na*b+Ma*d;if((l!=l|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(ha,b,d,Ma,Na);l=+g[ha>>2];m=+g[ha+4>>2]}b=+g[Ea>>2];d=+g[Fa>>2];n=ka*b-ja*d;o=ja*b+ka*d;if((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0)){ao(ia,b,d,ka,ja);n=+g[ia>>2];o=+g[ia+4>>2]}b=+g[Ja>>2];d=+g[Ka>>2];p=xa*b-va*d;q=va*b+xa*d;if((p!=p|0.0!=0.0)&(q!=q|0.0!=0.0)){ao(la,b,d,xa,va);p=+g[la>>2];q=+g[la+4>>2]}r=+g[Oa>>2];s=+g[Pa>>2];d=Ga*r-Ha*s;b=Ha*r+Ga*s;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(ma,r,s,Ga,Ha);d=+g[ma>>2];b=+g[ma+4>>2]}g[Ra+40>>2]=G+e+h+l+n+p+d;g[Ra+44>>2]=H+f+k+m+o+q+b;r=+g[na>>2];s=+g[pa>>2];e=+g[ra>>2];b=+g[sa>>2];d=ka*e-ja*b;f=ja*e+ka*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(ta,e,b,ka,ja);q=+g[ta>>2];p=+g[ta+4>>2]}else{q=d;p=f}e=+g[ua>>2];b=+g[wa>>2];d=qa*e-oa*b;f=oa*e+qa*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(ya,e,b,qa,oa);o=+g[ya>>2];n=+g[ya+4>>2]}else{o=d;n=f}e=+g[za>>2];b=+g[Aa>>2];d=xa*e-va*b;f=va*e+xa*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(Da,e,b,xa,va);m=+g[Da>>2];l=+g[Da+4>>2]}else{m=d;l=f}e=+g[Ea>>2];b=+g[Fa>>2];d=Ca*e-Ba*b;f=Ba*e+Ca*b;if((d!=d|0.0!=0.0)&(f!=f|0.0!=0.0)){ao(Ia,e,b,Ca,Ba);k=+g[Ia>>2];h=+g[Ia+4>>2]}else{k=d;h=f}f=+g[Ja>>2];e=+g[Ka>>2];d=Ga*f-Ha*e;b=Ha*f+Ga*e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(La,f,e,Ga,Ha);d=+g[La>>2];b=+g[La+4>>2]}k=r+q+o+m+k+d;h=s+p+n+l+h+b;f=+g[Oa>>2];b=+g[Pa>>2];d=Ma*f-Na*b;e=Na*f+Ma*b;if(!((d!=d|0.0!=0.0)&(e!=e|0.0!=0.0))){Ma=d;Na=e;Ma=k+Ma;Na=h+Na;Qa=Ra+48|0;Ra=Ra+52|0;g[Qa>>2]=Ma;g[Ra>>2]=Na;i=Sa;return}ao(Qa,f,b,Ma,Na);Ma=+g[Qa>>2];Na=+g[Qa+4>>2];Ma=k+Ma;Na=h+Na;Qa=Ra+48|0;Ra=Ra+52|0;g[Qa>>2]=Ma;g[Ra>>2]=Na;i=Sa;return}function al(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0,l=0,m=0,n=0.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.0,G=0,H=0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ca=0,da=0,ea=0,fa=0,ga=0;C=i;i=i+64|0;if((i|0)>=(j|0))ba();l=C+48|0;m=C+32|0;w=C+16|0;x=C;A=c[a+4>>2]|0;E=c[a+8>>2]|0;v=(c[a+12>>2]|0)==1;ea=c[A>>2]|0;da=c[A+4>>2]|0;D=E+4|0;c[E>>2]=ea;c[D>>2]=da;ga=c[A+32>>2]|0;fa=c[A+36>>2]|0;a=E+8|0;o=E+12|0;c[a>>2]=ga;c[o>>2]=fa;$=c[A+16>>2]|0;_=c[A+20>>2]|0;p=E+16|0;q=E+20|0;c[p>>2]=$;c[q>>2]=_;ca=c[A+48>>2]|0;aa=c[A+52>>2]|0;y=E+24|0;z=E+28|0;c[y>>2]=ca;c[z>>2]=aa;X=c[A+8>>2]|0;W=c[A+12>>2]|0;H=E+32|0;G=E+36|0;c[H>>2]=X;c[G>>2]=W;Z=c[A+40>>2]|0;Y=c[A+44>>2]|0;r=E+40|0;s=E+44|0;c[r>>2]=Z;c[s>>2]=Y;V=c[A+24>>2]|0;U=c[A+28>>2]|0;t=E+48|0;u=E+52|0;c[t>>2]=V;c[u>>2]=U;T=+g[A+56>>2];S=+g[A+60>>2];A=E+56|0;B=E+60|0;O=(c[k>>2]=ga,+g[k>>2]);P=(c[k>>2]=fa,+g[k>>2]);d=(c[k>>2]=ea,+g[k>>2]);b=(c[k>>2]=da,+g[k>>2]);N=d-O;K=b-P;d=O+d;b=P+b;P=(c[k>>2]=ca,+g[k>>2]);O=(c[k>>2]=aa,+g[k>>2]);R=(c[k>>2]=$,+g[k>>2]);Q=(c[k>>2]=_,+g[k>>2]);L=R-P;M=Q-O;R=P+R;Q=O+Q;O=(c[k>>2]=Z,+g[k>>2]);P=(c[k>>2]=Y,+g[k>>2]);F=(c[k>>2]=X,+g[k>>2]);e=(c[k>>2]=W,+g[k>>2]);J=F-O;n=e-P;F=O+F;e=P+e;P=(c[k>>2]=V,+g[k>>2]);O=(c[k>>2]=U,+g[k>>2]);I=P-T;f=O-S;P=T+P;O=S+O;g[p>>2]=d-R;g[q>>2]=b-Q;d=R+d;b=Q+b;g[t>>2]=F-P;g[u>>2]=e-O;F=P+F;e=O+e;O=L*0.0;M=v?M-O:O-M;L=v?-L:L;g[y>>2]=N-M;g[z>>2]=K-L;g[a>>2]=N+M;g[o>>2]=L+K;K=I*0.0;f=v?f-K:K-f;I=v?-I:I;g[A>>2]=J-f;g[B>>2]=n-I;f=J+f;n=I+n;g[r>>2]=f;g[s>>2]=n;g[H>>2]=d-F;g[G>>2]=b-e;g[E>>2]=F+d;g[D>>2]=e+b;b=f*.7071067811865476;e=n*.7071067811865476;if(v){d=b+e;b=e-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(l,f,n,.7071067811865476,-.7071067811865476);d=+h[l>>3];b=+h[l+8>>3]}}else{d=b-e;b=b+e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(m,f,n,.7071067811865476,.7071067811865476);d=+h[m>>3];b=+h[m+8>>3]}}f=b;e=d;T=+g[a>>2];b=+g[o>>2];g[r>>2]=T-e;g[s>>2]=b-f;g[a>>2]=e+T;g[o>>2]=f+b;b=+g[u>>2];f=+g[t>>2];T=f*0.0;b=v?b-T:T-b;f=v?-f:f;T=+g[p>>2];e=+g[q>>2];g[t>>2]=T-b;g[u>>2]=e-f;g[p>>2]=T+b;g[q>>2]=f+e;e=+g[A>>2];f=+g[B>>2];b=e*-.7071067811865476;if(v){T=f*-.7071067811865476;d=b-T;b=b+T;if(!((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0))){Q=d;R=b;S=+g[y>>2];T=+g[z>>2];O=S-Q;P=T-R;g[A>>2]=O;g[B>>2]=P;S=Q+S;T=R+T;g[y>>2]=S;g[z>>2]=T;i=C;return}$n(w,e,f,-.7071067811865476,-.7071067811865476);Q=+h[w>>3];R=+h[w+8>>3];S=+g[y>>2];T=+g[z>>2];O=S-Q;P=T-R;g[A>>2]=O;g[B>>2]=P;S=Q+S;T=R+T;g[y>>2]=S;g[z>>2]=T;i=C;return}else{d=f*.7071067811865476;b=b-d;d=e*.7071067811865476-d;if(!((b!=b|0.0!=0.0)&(d!=d|0.0!=0.0))){Q=b;R=d;S=+g[y>>2];T=+g[z>>2];O=S-Q;P=T-R;g[A>>2]=O;g[B>>2]=P;S=Q+S;T=R+T;g[y>>2]=S;g[z>>2]=T;i=C;return}$n(x,e,f,-.7071067811865476,.7071067811865476);Q=+h[x>>3];R=+h[x+8>>3];S=+g[y>>2];T=+g[z>>2];O=S-Q;P=T-R;g[A>>2]=O;g[B>>2]=P;S=Q+S;T=R+T;g[y>>2]=S;g[z>>2]=T;i=C;return}}function bl(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0,k=0.0,l=0.0,m=0.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,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0.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.0,Ma=0.0,Na=0.0;Aa=i;i=i+432|0;if((i|0)>=(j|0))ba();n=Aa+424|0;p=Aa+416|0;r=Aa+408|0;t=Aa+400|0;o=Aa+392|0;q=Aa+384|0;s=Aa+376|0;u=Aa+368|0;w=Aa+304|0;y=Aa+288|0;z=Aa+360|0;B=Aa+352|0;D=Aa+272|0;F=Aa+256|0;v=Aa+240|0;x=Aa+224|0;A=Aa+344|0;C=Aa+336|0;E=Aa+208|0;G=Aa+192|0;L=Aa+176|0;R=Aa+160|0;T=Aa+144|0;Z=Aa+328|0;$=Aa+128|0;ga=Aa+112|0;ia=Aa+96|0;M=Aa+80|0;S=Aa+64|0;U=Aa+48|0;_=Aa+320|0;aa=Aa+32|0;ha=Aa+16|0;ja=Aa;wa=c[a+4>>2]|0;J=c[a+8>>2]|0;K=(c[a+12>>2]|0)==1;xa=c[wa+4>>2]|0;a=J+4|0;c[J>>2]=c[wa>>2];c[a>>2]=xa;xa=c[wa+68>>2]|0;N=J+8|0;O=J+12|0;c[N>>2]=c[wa+64>>2];c[O>>2]=xa;xa=c[wa+36>>2]|0;X=J+16|0;Y=J+20|0;c[X>>2]=c[wa+32>>2];c[Y>>2]=xa;xa=c[wa+100>>2]|0;ea=J+24|0;fa=J+28|0;c[ea>>2]=c[wa+96>>2];c[fa>>2]=xa;xa=c[wa+20>>2]|0;ma=J+32|0;na=J+36|0;c[ma>>2]=c[wa+16>>2];c[na>>2]=xa;xa=c[wa+84>>2]|0;qa=J+40|0;ra=J+44|0;c[qa>>2]=c[wa+80>>2];c[ra>>2]=xa;xa=c[wa+52>>2]|0;ua=J+48|0;va=J+52|0;c[ua>>2]=c[wa+48>>2];c[va>>2]=xa;xa=c[wa+116>>2]|0;ya=J+56|0;za=J+60|0;c[ya>>2]=c[wa+112>>2];c[za>>2]=xa;xa=c[wa+12>>2]|0;H=J+64|0;I=J+68|0;c[H>>2]=c[wa+8>>2];c[I>>2]=xa;xa=c[wa+76>>2]|0;P=J+72|0;Q=J+76|0;c[P>>2]=c[wa+72>>2];c[Q>>2]=xa;xa=c[wa+44>>2]|0;V=J+80|0;W=J+84|0;c[V>>2]=c[wa+40>>2];c[W>>2]=xa;xa=c[wa+108>>2]|0;ca=J+88|0;da=J+92|0;c[ca>>2]=c[wa+104>>2];c[da>>2]=xa;xa=c[wa+28>>2]|0;ka=J+96|0;la=J+100|0;c[ka>>2]=c[wa+24>>2];c[la>>2]=xa;xa=c[wa+92>>2]|0;oa=J+104|0;pa=J+108|0;c[oa>>2]=c[wa+88>>2];c[pa>>2]=xa;xa=c[wa+60>>2]|0;sa=J+112|0;ta=J+116|0;c[sa>>2]=c[wa+56>>2];c[ta>>2]=xa;Na=+g[wa+120>>2];Ma=+g[wa+124>>2];wa=J+120|0;xa=J+124|0;l=+g[N>>2];m=+g[O>>2];Ka=+g[J>>2];Ia=+g[a>>2];g[N>>2]=Ka-l;g[O>>2]=Ia-m;Ka=l+Ka;Ia=m+Ia;m=+g[ea>>2];l=+g[fa>>2];La=+g[X>>2];Ja=+g[Y>>2];g[ea>>2]=La-m;g[fa>>2]=Ja-l;La=m+La;Ja=l+Ja;l=+g[qa>>2];m=+g[ra>>2];Ga=+g[ma>>2];Ea=+g[na>>2];g[qa>>2]=Ga-l;g[ra>>2]=Ea-m;Ga=l+Ga;Ea=m+Ea;m=+g[ya>>2];l=+g[za>>2];Ha=+g[ua>>2];Fa=+g[va>>2];f=Ha-m;e=Fa-l;g[ya>>2]=f;g[za>>2]=e;Ha=m+Ha;Fa=l+Fa;l=+g[P>>2];m=+g[Q>>2];Ca=+g[H>>2];d=+g[I>>2];g[P>>2]=Ca-l;g[Q>>2]=d-m;Ca=l+Ca;d=m+d;m=+g[ca>>2];l=+g[da>>2];Da=+g[V>>2];Ba=+g[W>>2];g[ca>>2]=Da-m;g[da>>2]=Ba-l;Da=m+Da;Ba=l+Ba;l=+g[oa>>2];m=+g[pa>>2];b=+g[ka>>2];k=+g[la>>2];g[oa>>2]=b-l;g[pa>>2]=k-m;b=l+b;k=m+k;m=+g[sa>>2];l=+g[ta>>2];g[wa>>2]=m-Na;g[xa>>2]=l-Ma;m=Na+m;l=Ma+l;g[X>>2]=Ka-La;g[Y>>2]=Ia-Ja;g[J>>2]=La+Ka;g[a>>2]=Ja+Ia;g[ua>>2]=Ga-Ha;g[va>>2]=Ea-Fa;g[ma>>2]=Ha+Ga;g[na>>2]=Fa+Ea;g[V>>2]=Ca-Da;g[W>>2]=d-Ba;g[H>>2]=Da+Ca;g[I>>2]=Ba+d;g[sa>>2]=b-m;g[ta>>2]=k-l;g[ka>>2]=m+b;g[la>>2]=l+k;k=+g[ea>>2];l=+g[fa>>2];b=k*0.0;if(K){d=l-b;b=l*-0.0-k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(n,-k,-l,0.0,1.0);d=+g[n>>2];b=+g[n+4>>2];f=+g[ya>>2];e=+g[za>>2]}Ma=+g[N>>2];Na=+g[O>>2];g[ea>>2]=Ma-d;g[fa>>2]=Na-b;g[N>>2]=d+Ma;g[O>>2]=b+Na;d=e-f*0.0;b=e*-0.0-f;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(p,-f,-e,0.0,1.0);d=+g[p>>2];b=+g[p+4>>2]}f=+g[qa>>2];e=+g[ra>>2];g[ya>>2]=f-d;g[za>>2]=e-b;g[qa>>2]=d+f;g[ra>>2]=b+e;e=+g[ca>>2];f=+g[da>>2];d=f-e*0.0;b=f*-0.0-e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(r,-e,-f,0.0,1.0);d=+g[r>>2];b=+g[r+4>>2]}f=+g[P>>2];e=+g[Q>>2];g[ca>>2]=f-d;g[da>>2]=e-b;g[P>>2]=d+f;g[Q>>2]=b+e;d=+g[wa>>2];e=+g[xa>>2];f=e-d*0.0;b=e*-0.0-d;if((f!=f|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(t,-d,-e,0.0,1.0);f=+g[t>>2];b=+g[t+4>>2]}Na=+g[oa>>2];e=+g[pa>>2];g[wa>>2]=Na-f;g[xa>>2]=e-b;e=b+e;f=f+Na}else{d=b-l;b=k+l*0.0;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(o,k,l,0.0,1.0);d=+g[o>>2];b=+g[o+4>>2];f=+g[ya>>2];e=+g[za>>2]}Ma=+g[N>>2];Na=+g[O>>2];g[ea>>2]=Ma-d;g[fa>>2]=Na-b;g[N>>2]=d+Ma;g[O>>2]=b+Na;d=f*0.0-e;b=f+e*0.0;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(q,f,e,0.0,1.0);d=+g[q>>2];b=+g[q+4>>2]}f=+g[qa>>2];e=+g[ra>>2];g[ya>>2]=f-d;g[za>>2]=e-b;g[qa>>2]=d+f;g[ra>>2]=b+e;e=+g[ca>>2];f=+g[da>>2];d=e*0.0-f;b=e+f*0.0;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(s,e,f,0.0,1.0);d=+g[s>>2];b=+g[s+4>>2]}f=+g[P>>2];e=+g[Q>>2];g[ca>>2]=f-d;g[da>>2]=e-b;g[P>>2]=d+f;g[Q>>2]=b+e;d=+g[wa>>2];e=+g[xa>>2];f=d*0.0-e;b=d+e*0.0;if((f!=f|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(u,d,e,0.0,1.0);f=+g[u>>2];b=+g[u+4>>2]}Na=+g[oa>>2];e=+g[pa>>2];g[wa>>2]=Na-f;g[xa>>2]=e-b;e=b+e;f=f+Na}g[oa>>2]=f;g[pa>>2]=e;l=+g[ma>>2];m=+g[na>>2];b=+g[J>>2];k=+g[a>>2];g[ma>>2]=b-l;g[na>>2]=k-m;g[J>>2]=l+b;g[a>>2]=m+k;k=+g[ka>>2];m=+g[la>>2];b=+g[H>>2];l=+g[I>>2];g[ka>>2]=b-k;g[la>>2]=l-m;g[H>>2]=k+b;g[I>>2]=m+l;l=+g[qa>>2];m=+g[ra>>2];b=l*.70710677;k=m*.70710677;if(K){d=b+k;b=k-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(w,l,m,.70710677,-.70710677);d=+h[w>>3];b=+h[w+8>>3];f=+g[oa>>2];e=+g[pa>>2]}Ma=d;Na=b;d=+g[N>>2];b=+g[O>>2];g[qa>>2]=d-Ma;g[ra>>2]=b-Na;g[N>>2]=Ma+d;g[O>>2]=Na+b;b=f*.70710677;Na=e*.70710677;d=b+Na;b=Na-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(y,f,e,.70710677,-.70710677);d=+h[y>>3];b=+h[y+8>>3]}Na=d;f=b;d=+g[P>>2];e=+g[Q>>2];g[oa>>2]=d-Na;g[pa>>2]=e-f;g[P>>2]=Na+d;g[Q>>2]=f+e;e=+g[ua>>2];f=+g[va>>2];d=f-e*0.0;b=f*-0.0-e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(z,-e,-f,0.0,1.0);d=+g[z>>2];b=+g[z+4>>2]}f=+g[X>>2];e=+g[Y>>2];g[ua>>2]=f-d;g[va>>2]=e-b;g[X>>2]=d+f;g[Y>>2]=b+e;e=+g[sa>>2];f=+g[ta>>2];d=f-e*0.0;b=f*-0.0-e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(B,-e,-f,0.0,1.0);d=+g[B>>2];b=+g[B+4>>2]}f=+g[V>>2];e=+g[W>>2];g[sa>>2]=f-d;g[ta>>2]=e-b;g[V>>2]=d+f;g[W>>2]=b+e;e=+g[ya>>2];f=+g[za>>2];Na=e*-.70710677;b=f*-.70710677;d=Na-b;b=Na+b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(D,e,f,-.70710677,-.70710677);d=+h[D>>3];b=+h[D+8>>3]}f=b;Na=+g[ea>>2];e=+g[fa>>2];g[ya>>2]=Na-d;g[za>>2]=e-f;g[ea>>2]=d+Na;g[fa>>2]=f+e;e=+g[wa>>2];f=+g[xa>>2];Na=e*-.70710677;b=f*-.70710677;d=Na-b;b=Na+b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(F,e,f,-.70710677,-.70710677);d=+h[F>>3];b=+h[F+8>>3]}Na=d;Ma=b;d=+g[ca>>2];b=+g[da>>2];g[wa>>2]=d-Na;g[xa>>2]=b-Ma;b=Ma+b;d=Na+d}else{d=b-k;b=b+k;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(v,l,m,.70710677,.70710677);d=+h[v>>3];b=+h[v+8>>3];f=+g[oa>>2];e=+g[pa>>2]}Ma=d;d=+g[N>>2];Na=+g[O>>2];g[qa>>2]=d-Ma;g[ra>>2]=Na-b;g[N>>2]=Ma+d;g[O>>2]=b+Na;Na=f*.70710677;b=e*.70710677;d=Na-b;b=Na+b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(x,f,e,.70710677,.70710677);d=+h[x>>3];b=+h[x+8>>3]}Na=d;f=b;d=+g[P>>2];e=+g[Q>>2];g[oa>>2]=d-Na;g[pa>>2]=e-f;g[P>>2]=Na+d;g[Q>>2]=f+e;e=+g[ua>>2];f=+g[va>>2];d=e*0.0-f;b=e+f*0.0;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(A,e,f,0.0,1.0);d=+g[A>>2];b=+g[A+4>>2]}f=+g[X>>2];e=+g[Y>>2];g[ua>>2]=f-d;g[va>>2]=e-b;g[X>>2]=d+f;g[Y>>2]=b+e;e=+g[sa>>2];f=+g[ta>>2];d=e*0.0-f;b=e+f*0.0;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(C,e,f,0.0,1.0);d=+g[C>>2];b=+g[C+4>>2]}f=+g[V>>2];e=+g[W>>2];g[sa>>2]=f-d;g[ta>>2]=e-b;g[V>>2]=d+f;g[W>>2]=b+e;e=+g[ya>>2];f=+g[za>>2];b=f*.70710677;d=e*-.70710677-b;b=e*.70710677-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(E,e,f,-.70710677,.70710677);d=+h[E>>3];b=+h[E+8>>3]}f=b;b=+g[ea>>2];e=+g[fa>>2];g[ya>>2]=b-d;g[za>>2]=e-f;g[ea>>2]=d+b;g[fa>>2]=f+e;e=+g[wa>>2];f=+g[xa>>2];b=f*.70710677;d=e*-.70710677-b;b=e*.70710677-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(G,e,f,-.70710677,.70710677);d=+h[G>>3];b=+h[G+8>>3]}Na=d;Ma=b;d=+g[ca>>2];b=+g[da>>2];g[wa>>2]=d-Na;g[xa>>2]=b-Ma;b=Ma+b;d=Na+d}g[ca>>2]=d;g[da>>2]=b;d=+g[H>>2];l=+g[I>>2];b=+g[J>>2];k=+g[a>>2];g[H>>2]=b-d;g[I>>2]=k-l;g[J>>2]=d+b;g[a>>2]=l+k;k=+g[P>>2];l=+g[Q>>2];b=k*.9238795;d=l*.38268346;e=k*.38268346;f=l*.9238795;if(K){d=b+d;b=f-e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(L,k,l,.9238795,-.38268346);d=+h[L>>3];b=+h[L+8>>3]}Na=d;f=b;b=+g[N>>2];e=+g[O>>2];g[P>>2]=b-Na;g[Q>>2]=e-f;g[N>>2]=Na+b;g[O>>2]=f+e;e=+g[V>>2];f=+g[W>>2];b=e*.70710677;Na=f*.70710677;d=b+Na;b=Na-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(R,e,f,.70710677,-.70710677);d=+h[R>>3];b=+h[R+8>>3]}Na=d;f=b;d=+g[X>>2];e=+g[Y>>2];g[V>>2]=d-Na;g[W>>2]=e-f;g[X>>2]=Na+d;g[Y>>2]=f+e;e=+g[ca>>2];f=+g[da>>2];d=e*.38268343+f*.9238795;b=f*.38268343-e*.9238795;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(T,e,f,.38268343,-.9238795);d=+h[T>>3];b=+h[T+8>>3]}Na=d;f=b;d=+g[ea>>2];e=+g[fa>>2];g[ca>>2]=d-Na;g[da>>2]=e-f;g[ea>>2]=Na+d;g[fa>>2]=f+e;e=+g[ka>>2];f=+g[la>>2];d=f-e*0.0;b=f*-0.0-e;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(Z,-e,-f,0.0,1.0);d=+g[Z>>2];b=+g[Z+4>>2]}f=+g[ma>>2];e=+g[na>>2];g[ka>>2]=f-d;g[la>>2]=e-b;g[ma>>2]=d+f;g[na>>2]=b+e;e=+g[oa>>2];f=+g[pa>>2];d=f*.92387956-e*.3826834;b=f*-.3826834-e*.92387956;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n($,e,f,-.3826834,-.92387956);d=+h[$>>3];b=+h[$+8>>3]}f=b;Na=+g[qa>>2];e=+g[ra>>2];g[oa>>2]=Na-d;g[pa>>2]=e-f;g[qa>>2]=d+Na;g[ra>>2]=f+e;e=+g[sa>>2];f=+g[ta>>2];Na=e*-.70710677;b=f*-.70710677;d=Na-b;b=Na+b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(ga,e,f,-.70710677,-.70710677);d=+h[ga>>3];b=+h[ga+8>>3]}Na=d;f=b;d=+g[ua>>2];e=+g[va>>2];g[sa>>2]=d-Na;g[ta>>2]=e-f;g[ua>>2]=Na+d;g[va>>2]=f+e;e=+g[wa>>2];f=+g[xa>>2];d=f*.38268349-e*.9238795;b=f*-.9238795-e*.38268349;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(ia,e,f,-.9238795,-.38268349);d=+h[ia>>3];b=+h[ia+8>>3]}La=d;Ka=b;Ma=+g[ya>>2];Na=+g[za>>2];g[wa>>2]=Ma-La;g[xa>>2]=Na-Ka;Na=Ka+Na;Ma=La+Ma;g[ya>>2]=Ma;g[za>>2]=Na;i=Aa;return}else{d=b-d;b=e+f;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(M,k,l,.9238795,.38268346);d=+h[M>>3];b=+h[M+8>>3]}f=b;Na=+g[N>>2];e=+g[O>>2];g[P>>2]=Na-d;g[Q>>2]=e-f;g[N>>2]=d+Na;g[O>>2]=f+e;e=+g[V>>2];f=+g[W>>2];Na=e*.70710677;b=f*.70710677;d=Na-b;b=Na+b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(S,e,f,.70710677,.70710677);d=+h[S>>3];b=+h[S+8>>3]}Na=d;f=b;d=+g[X>>2];e=+g[Y>>2];g[V>>2]=d-Na;g[W>>2]=e-f;g[X>>2]=Na+d;g[Y>>2]=f+e;e=+g[ca>>2];f=+g[da>>2];d=e*.38268343-f*.9238795;b=e*.9238795+f*.38268343;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(U,e,f,.38268343,.9238795);d=+h[U>>3];b=+h[U+8>>3]}Na=d;f=b;d=+g[ea>>2];e=+g[fa>>2];g[ca>>2]=d-Na;g[da>>2]=e-f;g[ea>>2]=Na+d;g[fa>>2]=f+e;e=+g[ka>>2];f=+g[la>>2];d=e*0.0-f;b=e+f*0.0;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){ao(_,e,f,0.0,1.0);d=+g[_>>2];b=+g[_+4>>2]}f=+g[ma>>2];e=+g[na>>2];g[ka>>2]=f-d;g[la>>2]=e-b;g[ma>>2]=d+f;g[na>>2]=b+e;e=+g[oa>>2];f=+g[pa>>2];d=e*-.3826834-f*.92387956;b=e*.92387956-f*.3826834;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(aa,e,f,-.3826834,.92387956);d=+h[aa>>3];b=+h[aa+8>>3]}f=b;b=+g[qa>>2];e=+g[ra>>2];g[oa>>2]=b-d;g[pa>>2]=e-f;g[qa>>2]=d+b;g[ra>>2]=f+e;e=+g[sa>>2];f=+g[ta>>2];b=f*.70710677;d=e*-.70710677-b;b=e*.70710677-b;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(ha,e,f,-.70710677,.70710677);d=+h[ha>>3];b=+h[ha+8>>3]}Na=d;f=b;d=+g[ua>>2];e=+g[va>>2];g[sa>>2]=d-Na;g[ta>>2]=e-f;g[ua>>2]=Na+d;g[va>>2]=f+e;e=+g[wa>>2];f=+g[xa>>2];d=e*-.9238795-f*.38268349;b=e*.38268349-f*.9238795;if((d!=d|0.0!=0.0)&(b!=b|0.0!=0.0)){$n(ja,e,f,-.9238795,.38268349);d=+h[ja>>3];b=+h[ja+8>>3]}La=d;Ka=b;Ma=+g[ya>>2];Na=+g[za>>2];g[wa>>2]=Ma-La;g[xa>>2]=Na-Ka;Na=Ka+Na;Ma=La+Ma;g[ya>>2]=Ma;g[za>>2]=Na;i=Aa;return}}function cl(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0.0,j=0,k=0;d=c[a>>2]|0;if(!d)return;e=a+44|0;f=a+4|0;a=a+8|0;b=0;do{Il(c[(c[e>>2]|0)+(b<<2)>>2]|0,(c[f>>2]|0)+8|0,(c[a>>2]|0)+(b<<3)|0);k=c[f>>2]|0;h=c[a>>2]|0;j=h+(b<<3)|0;h=h+(b<<3)+4|0;i=+g[k+4>>2]+ +g[h>>2];g[j>>2]=+g[k>>2]+ +g[j>>2];g[h>>2]=i;b=b+1|0}while((b|0)!=(d|0));return}function dl(a){a=a|0;var b=0,d=0;switch(c[a+20>>2]|0){case -1:case 1:{switch(c[a+24>>2]|0){case 5:{b=c[a+40>>2]|0;if(b|0)Yp(b);d=a+44|0;b=c[d>>2]|0;if(b|0){if(c[a>>2]|0){Hl(c[b>>2]|0);if((c[a>>2]|0)>>>0>1){b=1;do{Hl(c[(c[d>>2]|0)+(b<<2)>>2]|0);b=b+1|0}while(b>>>0<(c[a>>2]|0)>>>0)}b=c[d>>2]|0}Yp(b)}Yp(a);return}case 1:{Yp(c[a+44>>2]|0);Yp(c[a+48>>2]|0);Yp(a);return}case 2:{dl(c[a+64>>2]|0);dl(c[a+68>>2]|0);Yp(c[a+52>>2]|0);Yp(c[a+56>>2]|0);Yp(c[a+48>>2]|0);Yp(c[a+60>>2]|0);Yp(a);return}case 3:{Yp(c[a+40>>2]|0);Yp(c[a+44>>2]|0);Yp(c[a+48>>2]|0);Yp(c[a+52>>2]|0);dl(c[a+56>>2]|0);dl(c[a+60>>2]|0);Yp(a);return}case 4:{Yp(c[a+44>>2]|0);Yp(c[a+48>>2]|0);Yp(c[a+52>>2]|0);Yp(c[a+56>>2]|0);dl(c[a+60>>2]|0);dl(c[a+64>>2]|0);Yp(a);return}default:{Qp(41068,54,1,c[2348]|0)|0;kb(1)}}break}case 23:case 22:case 21:case 20:case 13:case 12:case 11:case 10:{Yp(a);return}case 31:case 30:return;default:{Qp(41123,52,1,c[2348]|0)|0;kb(1)}}}function el(a){a=a|0;qb[c[a+28>>2]&31](a);return}function fl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;d=Mk(a,b,d,e,f)|0;qb[c[d+28>>2]&31](d);dl(d);return}function gl(a){a=a|0;if(!a){Qp(41176,58,1,c[2348]|0)|0;a=0;return a|0}if((a|1|0)==17|((a|0)==13|(a>>>0<9|(a|0)==11))){a=5;return a|0}if(((a>>>31)+((a>>>30&1)+((a>>>29&1)+((a>>>28&1)+((a>>>27&1)+((a>>>26&1)+((a>>>25&1)+((a>>>24&1)+((a>>>23&1)+((a>>>22&1)+((a>>>21&1)+((a>>>20&1)+((a>>>19&1)+((a>>>18&1)+((a>>>17&1)+((a>>>16&1)+((a>>>15&1)+((a>>>14&1)+((a>>>13&1)+((a>>>12&1)+((a>>>11&1)+((a>>>10&1)+((a>>>9&1)+((a>>>8&1)+((a>>>7&1)+((a>>>6&1)+((a>>>5&1)+((a>>>4&1)+((a>>>3&1)+((a>>>2&1)+((a>>>1&1)+(a&1)))))))))))))))))))))))))))))))|0)==1){a=2;return a|0}if(!(Cl(a)|0)){a=2;return a|0}a=a+-1|0;a=((a>>>31)+((a>>>30&1)+((a>>>29&1)+((a>>>28&1)+((a>>>27&1)+((a>>>26&1)+((a>>>25&1)+((a>>>24&1)+((a>>>23&1)+((a>>>22&1)+((a>>>21&1)+((a>>>20&1)+((a>>>19&1)+((a>>>18&1)+((a>>>17&1)+((a>>>16&1)+((a>>>15&1)+((a>>>14&1)+((a>>>13&1)+((a>>>12&1)+((a>>>11&1)+((a>>>10&1)+((a>>>9&1)+((a>>>8&1)+((a>>>7&1)+((a>>>6&1)+((a>>>5&1)+((a>>>4&1)+((a>>>3&1)+((a>>>2&1)+((a>>>1&1)+(a&1)))))))))))))))))))))))))))))))|0)==1?3:4;return a|0}function hl(a,b){a=a|0;b=b|0;var c=0,d=0;if(!b){b=0;return b|0}else{c=a;a=0;d=0}while(1){a=a<<1|c&1;d=d+1|0;if((d|0)==(b|0))break;else c=c>>>1}return a|0}function il(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0;q=i;i=i+16|0;if((i|0)>=(j|0))ba();p=q;jl(a+1|0,c);e=+O(+(+(((a<<1)+-1|0)>>>0)*.6931471824645996));f=(a|0)==0;if(f){g[d>>2]=1.0;g[d+4>>2]=0.0;i=q;return}else b=0;do{r=c+(b<<3)|0;o=c+(b<<3)+4|0;n=+g[o>>2]/e;g[r>>2]=+g[r>>2]/e;g[o>>2]=n;b=b+1|0}while((b|0)!=(a|0));o=d+4|0;g[d>>2]=1.0;g[o>>2]=0.0;if(f){i=q;return}b=p+4|0;e=1.0;h=0.0;f=0;do{k=+g[c+(f<<3)>>2];l=+g[c+(f<<3)+4>>2];m=k*e-l*h;n=l*e+k*h;if((m!=m|0.0!=0.0)&(n!=n|0.0!=0.0)){ao(p,e,h,k,l);e=+g[p>>2];h=+g[b>>2]}else{e=m;h=n}g[d>>2]=e;g[o>>2]=h;f=f+1|0}while((f|0)!=(a|0));i=q;return}function jl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;I=i;i=i+64|0;if((i|0)>=(j|0))ba();E=I+56|0;e=I+48|0;f=I+40|0;v=I+24|0;y=I+16|0;D=I+32|0;F=I+8|0;G=I;z=i;i=i+((1*(a<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();A=i;i=i+((1*(a<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();H=i;i=i+((1*(a<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();a:do if(a>>>0>1){h=A+4|0;k=e+4|0;l=z+4|0;q=v+4|0;r=f+4|0;s=H+4|0;t=y+4|0;B=1;C=1;while(1){u=(B+(C&1)|0)>>>1;w=B&1;d=w+B|0;x=d>>>1;switch(B|0){case 1:{g[A>>2]=-1.0;g[h>>2]=0.0;g[H>>2]=-1.0;g[s>>2]=0.0;break}case 2:{g[A>>2]=-1.0;g[h>>2]=0.0;g[H>>2]=-1.5;g[s>>2]=.8660253882408142;break}default:{p=+g[A>>2];if(!w){n=+g[h>>2];o=p*2.0-n*0.0;m=p*0.0+n*2.0;if((o!=o|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(e,2.0,0.0,p,n);o=+g[e>>2];m=+g[k>>2]}J=c[l>>2]|0;c[v>>2]=c[z>>2];c[q>>2]=J;c[E>>2]=c[v>>2];c[E+4>>2]=c[v+4>>2];Ko(f,E);n=m-+g[r>>2];m=o-+g[f>>2]}else{n=0.0;m=p*2.0-+g[z>>2]}g[H>>2]=m;g[s>>2]=n;if(d>>>0>3){d=1;do{J=d-w|0;o=+g[A+(J<<3)>>2];p=+g[A+(J<<3)+4>>2];n=o*2.0-p*0.0;m=o*0.0+p*2.0;if((n!=n|0.0!=0.0)&(m!=m|0.0!=0.0)){ao(y,2.0,0.0,o,p);n=+g[y>>2];m=+g[t>>2]}J=d+-1|0;p=m-+g[z+(J<<3)+4>>2];g[H+(d<<3)>>2]=n-+g[z+(J<<3)>>2];g[H+(d<<3)+4>>2]=p;d=d+1|0}while(d>>>0<x>>>0)}if(x|0){d=0;do{K=H+(d<<3)|0;J=H+(d<<3)+4|0;kl(B,+g[K>>2],+g[J>>2],E,D);p=+g[D>>2];g[K>>2]=+g[E>>2]+p*0.0;g[J>>2]=p;d=d+1|0}while((d|0)!=(u|0))}}}fq(z|0,A|0,x-w<<3|0)|0;fq(A|0,H|0,x<<3|0)|0;B=B+1|0;if((B|0)==(a|0))break a;else C=C^1}}while(0);d=a&1;e=(a-d|0)>>>1;if(e|0){f=G+4|0;h=F+4|0;k=a>>>1;l=0;do{J=e-l+-1|0;D=c[H+(J<<3)>>2]|0;J=c[H+(J<<3)+4>>2]|0;K=l<<1;c[b+(K<<3)>>2]=D;c[b+(K<<3)+4>>2]=J;c[G>>2]=D;c[f>>2]=J;c[E>>2]=c[G>>2];c[E+4>>2]=c[G+4>>2];Ko(F,E);J=c[h>>2]|0;K=K|1;c[b+(K<<3)>>2]=c[F>>2];c[b+(K<<3)+4>>2]=J;l=l+1|0}while((l|0)!=(k|0))}if(!d){i=I;return}J=c[H+4>>2]|0;K=a+-1|0;c[b+(K<<3)>>2]=c[H>>2];c[b+(K<<3)+4>>2]=J;i=I;return}function kl(a,b,d,e,f){a=a|0;b=+b;d=+d;e=e|0;f=f|0;var h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0;if(a>>>0<2){Qp(41235,53,1,c[2348]|0)|0;kb(1)}t=0;while(1){k=b*b-d*d;n=b*2.0*d;o=2;p=1.0;q=b+1.0;r=0.0;s=d;while(1){l=+(((o<<1)+-1|0)>>>0);m=q*l+k*p-n*r;l=n*p+(k*r+s*l);h=o>>>0<a>>>0;i=h?l:s;j=h?m:q;o=o+1|0;if(o>>>0>a>>>0)break;else{p=h?q:p;q=j;r=h?s:r;s=i}}k=d*i+(m-b*j);i=l-b*i-d*j;j=i*i+k*k;if(j==0.0){h=8;break}b=b+-(l*i+m*k)/j;d=d+-(l*k-m*i)/j;t=t+1|0;if(t>>>0>=50){h=8;break}}if((h|0)==8){g[e>>2]=b;g[f>>2]=d;return}}function ll(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,k=0.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;w=i;i=i+48|0;if((i|0)>=(j|0))ba();b=w+32|0;f=w+24|0;h=w+16|0;q=w+8|0;r=w;v=a&1;if((a-v|0)>>>0<2)b=0;else{s=a+-1|0;k=+(a<<1>>>0);l=h+4|0;m=f+4|0;n=r+4|0;o=q+4|0;p=a>>>1;t=0;u=0;while(1){t=t+1|0;z=+((s+(t<<1)|0)>>>0)*3.141592653589793/k;g[h>>2]=z*0.0;g[l>>2]=z;c[b>>2]=c[h>>2];c[b+4>>2]=c[h+4>>2];Io(f,b);y=c[m>>2]|0;x=u|1;c[d+(u<<3)>>2]=c[f>>2];c[d+(u<<3)+4>>2]=y;g[r>>2]=z*-0.0;g[n>>2]=-z;c[b>>2]=c[r>>2];c[b+4>>2]=c[r+4>>2];Io(q,b);y=c[o>>2]|0;c[d+(x<<3)>>2]=c[q>>2];c[d+(x<<3)+4>>2]=y;if((t|0)==(p|0))break;else u=u+2|0}b=p<<1}if(v){g[d+(b<<3)>>2]=-1.0;g[d+(b<<3)+4>>2]=0.0;b=b|1}if((b|0)==(a|0)){g[e>>2]=1.0;g[e+4>>2]=0.0;i=w;return}else Ha(41363,41289,62,41313)}function ml(a,b,c,d,e){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;var f=0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0;s=i;i=i+16|0;if((i|0)>=(j|0))ba();r=s;m=b*b;k=+O(+(1.0/m+1.0));b=1.0/b;l=1.0/+(a>>>0);n=+P(+(b+k),+l);l=+P(+(k-b),+l);b=(n+l)*.5;l=(n-l)*.5;q=a&1;if((a-q|0)>>>0<2)c=0;else{c=a+-1|0;h=+(a<<1>>>0);k=b*0.0;f=a>>>1;o=0;p=0;while(1){o=o+1|0;n=+((c+(o<<1)|0)>>>0)*3.141592653589793/h;v=l*+Q(+n);n=+R(+n);u=k*n;n=b*n;t=p|1;g[d+(p<<3)>>2]=v-u;g[d+(p<<3)+4>>2]=-n;g[d+(t<<3)>>2]=v+u;g[d+(t<<3)+4>>2]=n;if((o|0)==(f|0))break;else p=p+2|0}c=f<<1}f=(q|0)!=0;if(f){g[d+(c<<3)>>2]=-l;g[d+(c<<3)+4>>2]=0.0;c=c|1}if((c|0)!=(a|0))Ha(41363,41326,85,41350);if(f)b=1.0;else b=1.0/+O(+(m+1.0));f=e+4|0;g[e>>2]=b;g[f>>2]=0.0;if(!a){i=s;return}o=r+4|0;h=0.0;c=0;do{k=+g[d+(c<<3)>>2];l=+g[d+(c<<3)+4>>2];m=k*b-l*h;n=l*b+k*h;if((m!=m|0.0!=0.0)&(n!=n|0.0!=0.0)){ao(r,b,h,k,l);b=+g[r>>2];h=+g[o>>2]}else{b=m;h=n}g[e>>2]=b;g[f>>2]=h;c=c+1|0}while((c|0)!=(a|0));i=s;return}function nl(a,b,d,e,f){a=a|0;b=+b;d=d|0;e=e|0;f=f|0;var h=0,l=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.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.0,I=0.0;E=i;i=i+48|0;if((i|0)>=(j|0))ba();v=E+40|0;w=E+32|0;y=E+24|0;z=E+16|0;B=E+8|0;D=E;q=+O(+(1.0/(b*b)+1.0));b=1.0/b;r=+(a>>>0);s=r;r=1.0/r;t=+P(+(b+q),+r);r=+P(+(q-b),+r);b=(t+r)*.5;r=(t-r)*.5;x=a&1;A=(a-x|0)>>>1;C=(A|0)==0;if(C)h=0;else{h=a+-1|0;l=+(a<<1>>>0);q=b*0.0;m=v+4|0;n=w+4|0;o=a>>>1;p=0;u=0;while(1){p=p+1|0;t=+((h+(p<<1)|0)>>>0)*3.141592653589793/l;I=r*+Q(+t);t=+R(+t);H=q*t;t=b*t;_n(v,1.0,0.0,I-H,-t);G=c[m>>2]|0;F=u|1;c[e+(u<<3)>>2]=c[v>>2];c[e+(u<<3)+4>>2]=G;_n(w,1.0,0.0,I+H,t);G=c[n>>2]|0;c[e+(F<<3)>>2]=c[w>>2];c[e+(F<<3)+4>>2]=G;if((p|0)==(o|0))break;else u=u+2|0}h=o<<1}if(x){g[e+(h<<3)>>2]=-1.0/r;g[e+(h<<3)+4>>2]=0.0;h=h|1}if((h|0)!=(a|0))Ha(41363,41369,84,41393);if(C)p=0;else{h=y+4|0;m=z+4|0;n=a>>>1;o=0;p=0;while(1){o=o+1|0;I=+Q(+(+(((o<<1)+-1|0)>>>0)*1.5707963267948966/s));H=I*0.0;_n(y,-1.0,0.0,H,I);F=c[h>>2]|0;G=p|1;c[d+(p<<3)>>2]=c[y>>2];c[d+(p<<3)+4>>2]=F;_n(z,1.0,0.0,H,I);F=c[m>>2]|0;c[d+(G<<3)>>2]=c[z>>2];c[d+(G<<3)+4>>2]=F;if((o|0)==(n|0))break;else p=p+2|0}p=n<<1}if((p|0)!=(A<<1|0))Ha(41406,41369,95,41393);o=f+4|0;g[f>>2]=1.0;g[o>>2]=0.0;if(!a){b=0.0;l=1.0}else{h=B+4|0;l=1.0;b=0.0;m=0;do{q=+g[e+(m<<3)>>2];r=+g[e+(m<<3)+4>>2];s=q*l-r*b;t=r*l+q*b;if((s!=s|0.0!=0.0)&(t!=t|0.0!=0.0)){ao(B,l,b,q,r);l=+g[B>>2];b=+g[h>>2]}else{l=s;b=t}g[f>>2]=l;g[o>>2]=b;m=m+1|0}while((m|0)!=(a|0))}if(C){i=E;return}n=D+4|0;m=0;while(1){_n(D,l,b,+g[d+(m<<3)>>2],+g[d+(m<<3)+4>>2]);G=c[D>>2]|0;h=c[n>>2]|0;c[f>>2]=G;c[o>>2]=h;m=m+1|0;l=(c[k>>2]=G,+g[k>>2]);if(m>>>0>=p>>>0)break;else b=(c[k>>2]=h,+g[k>>2])}i=E;return}function ol(a,b,c,d){a=+a;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,h=0,k=0,l=0,m=0.0,n=0.0,o=0;o=i;n=+O(+(1.0-a*a));if(a>.9999998807907104){m=+Y(+(n*.25));m=n*(n*((-1.0-m)*.25))-m}else{l=Wa()|0;k=i;i=i+((1*(b<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();f=(b|0)==0;if(!f){h=0;e=a;do{m=+O(+(1.0-e*e));e=(1.0-m)/(m+1.0);g[k+(h<<2)>>2]=e;h=h+1|0}while((h|0)!=(b|0));if(!f){e=1.5707963705062866;f=0;do{e=e*(+g[k+(f<<2)>>2]+1.0);f=f+1|0}while((f|0)!=(b|0))}else e=1.5707963705062866}else e=1.5707963705062866;Ga(l|0);m=e}if(a<3.9999998989515007e-04){n=+Y(+(a*.25));n=(-1.0-n)*.25*a*a-n;g[c>>2]=m;g[d>>2]=n;i=o;return}l=Wa()|0;k=i;i=i+((1*(b<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();f=(b|0)==0;if(!f){h=0;e=n;do{n=+O(+(1.0-e*e));e=(1.0-n)/(n+1.0);g[k+(h<<2)>>2]=e;h=h+1|0}while((h|0)!=(b|0));if(!f){e=1.5707963705062866;f=0;do{e=e*(+g[k+(f<<2)>>2]+1.0);f=f+1|0}while((f|0)!=(b|0))}else e=1.5707963705062866}else e=1.5707963705062866;Ga(l|0);n=e;g[c>>2]=m;g[d>>2]=n;i=o;return}function pl(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;if((i|0)>=(j|0))ba();o=s+32|0;p=s+24|0;t=s+16|0;q=s+8|0;r=s;h=+g[b+4>>2]*3.141592653589793*.5;g[t>>2]=+g[b>>2]*3.141592653589793*.5;g[t+4>>2]=h;c[o>>2]=c[t>>2];c[o+4>>2]=c[t+4>>2];Co(p,o);h=+g[p>>2];f=+g[p+4>>2];p=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!e){m=h;n=f;t=a+4|0;g[a>>2]=m;g[t>>2]=n;i=s;return}else b=0;do{n=+O(+(1.0-d*d));d=(1.0-n)/(n+1.0);g[p+(b<<2)>>2]=d;b=b+1|0}while((b|0)!=(e|0));if(!e){m=h;n=f;t=a+4|0;g[a>>2]=m;g[t>>2]=n;i=s;return}b=q+4|0;o=r+4|0;do{e=e+-1|0;m=+g[p+(e<<2)>>2];n=m+1.0;l=h*m;m=f*m;k=h*l-f*m;d=f*l+h*m;if((k!=k|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(q,l,m,h,f);k=+g[q>>2];d=+g[b>>2]}_n(r,h*n,f*n,k+1.0,d+0.0);h=+g[r>>2];f=+g[o>>2]}while((e|0)!=0);t=a+4|0;g[a>>2]=h;g[t>>2]=f;i=s;return}function ql(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;if((i|0)>=(j|0))ba();o=s+32|0;p=s+24|0;t=s+16|0;q=s+8|0;r=s;h=+g[b+4>>2]*3.141592653589793*.5;g[t>>2]=+g[b>>2]*3.141592653589793*.5;g[t+4>>2]=h;c[o>>2]=c[t>>2];c[o+4>>2]=c[t+4>>2];Lo(p,o);h=+g[p>>2];f=+g[p+4>>2];p=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!e){m=h;n=f;t=a+4|0;g[a>>2]=m;g[t>>2]=n;i=s;return}else b=0;do{n=+O(+(1.0-d*d));d=(1.0-n)/(n+1.0);g[p+(b<<2)>>2]=d;b=b+1|0}while((b|0)!=(e|0));if(!e){m=h;n=f;t=a+4|0;g[a>>2]=m;g[t>>2]=n;i=s;return}b=q+4|0;o=r+4|0;do{e=e+-1|0;m=+g[p+(e<<2)>>2];n=m+1.0;l=h*m;m=f*m;k=h*l-f*m;d=f*l+h*m;if((k!=k|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(q,l,m,h,f);k=+g[q>>2];d=+g[b>>2]}_n(r,h*n,f*n,k+1.0,d+0.0);h=+g[r>>2];f=+g[o>>2]}while((e|0)!=0);t=a+4|0;g[a>>2]=h;g[t>>2]=f;i=s;return}function rl(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0.0,h=0.0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+64|0;if((i|0)>=(j|0))ba();w=z+48|0;r=z+40|0;s=z+32|0;t=z+24|0;u=z+16|0;x=z+8|0;y=z;v=i;i=i+((1*(e<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();l=(e|0)==0;if(!l){k=0;f=d;do{o=+O(+(1.0-f*f));f=(1.0-o)/(o+1.0);g[v+(k<<2)>>2]=f;k=k+1|0}while((k|0)!=(e|0));h=+g[b>>2];f=+g[b+4>>2];if(!l){k=r+4|0;l=t+4|0;b=s+4|0;p=u+4|0;q=0;do{if(!q)o=d;else o=+g[v+(q+-1<<2)>>2];n=h*f;m=h*h-f*f;n=n+n;if((m!=m|0.0!=0.0)&(n!=n|0.0!=0.0)){ao(r,h,f,h,f);m=+g[r>>2];n=+g[k>>2]}g[t>>2]=1.0-o*(o*m);g[l>>2]=0.0-o*(o*n);c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];Al(s,w);_n(u,h,f,+g[s>>2]+1.0,+g[b>>2]+0.0);f=+g[v+(q<<2)>>2]+1.0;h=+g[u>>2]*2.0/f;f=+g[p>>2]*2.0/f;q=q+1|0}while((q|0)!=(e|0))}}else{h=+g[b>>2];f=+g[b+4>>2]}g[y>>2]=h;g[y+4>>2]=f;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];Bl(x,w);d=+g[x+4>>2]*2.0/3.141592653589793;g[a>>2]=+g[x>>2]*2.0/3.141592653589793;g[a+4>>2]=d;i=z;return}function sl(a,b,d,e,f,h){a=a|0;b=+b;d=+d;e=e|0;f=f|0;h=h|0;var l=0.0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0,N=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ca=0,da=0;ca=i;i=i+192|0;if((i|0)>=(j|0))ba();W=ca+176|0;A=ca+144|0;z=ca+128|0;t=ca+168|0;u=ca+160|0;x=ca+152|0;C=ca+136|0;E=ca+120|0;G=ca+112|0;H=ca+96|0;I=ca+88|0;J=ca+72|0;N=ca+64|0;L=ca+56|0;Q=ca+48|0;R=ca+40|0;S=ca+32|0;Y=ca+24|0;Z=ca+16|0;_=ca+8|0;aa=ca;d=b/d;Ga(Wa()|0);ol(d,7,ca+104|0,ca+80|0);r=+(a>>>0);ol(d,7,W,A);K=+P(+(+X(+(+g[A>>2]*-3.141592653589793/+g[W>>2]))),+(1.0/r));D=(K*K+1.0+ +P(+K,6.0)+ +P(+K,12.0)+ +P(+K,20.0)+ +P(+K,30.0)+ +P(+K,42.0))/((K+0.0+ +P(+K,4.0)+ +P(+K,9.0)+ +P(+K,16.0)+ +P(+K,25.0)+ +P(+K,36.0))*2.0+1.0);K=D*(D*(+O(+K)*4.0));V=~~+M(+(r*.5))>>>0;T=~~r>>>0&1;F=i;i=i+((1*(V<<2)|0)+15&-16)|0;if((i|0)>=(j|0))ba();U=(V|0)==0;if(!U){m=0;do{g[F+(m<<2)>>2]=((+(m>>>0)+1.0)*2.0+-1.0)/r;m=m+1|0}while((m|0)!=(V|0));w=i;i=i+((1*(V<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!U){m=u+4|0;n=t+4|0;o=0;do{c[u>>2]=c[F+(o<<2)>>2];g[m>>2]=0.0;c[W>>2]=c[u>>2];c[W+4>>2]=c[u+4>>2];pl(t,W,K,7);da=c[n>>2]|0;c[w+(o<<3)>>2]=c[t>>2];c[w+(o<<3)+4>>2]=da;o=o+1|0}while((o|0)!=(V|0));m=i;i=i+((1*(V<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(U)x=m;else{n=x+4|0;o=0;do{_n(x,0.0,.9999999403953552,K*+g[w+(o<<3)>>2],K*+g[w+(o<<3)+4>>2]);da=c[n>>2]|0;c[m+(o<<3)>>2]=c[x>>2];c[m+(o<<3)+4>>2]=da;o=o+1|0}while((o|0)!=(V|0));x=m}}else y=6}else y=6;if((y|0)==6){m=i;i=i+((1*(V<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();x=m}g[z>>2]=0.0/b;g[z+4>>2]=1.0/b;c[W>>2]=c[z>>2];c[W+4>>2]=c[z+4>>2];rl(A,W,d,7);q=+g[A+4>>2];p=1.0-+g[A>>2];l=p*-0.0-q;d=q*0.0-p;if((l!=l|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(C,-0.0,-1.0,p,-q);l=+g[C>>2];d=+g[C+4>>2]}D=l/r;B=d/r;w=i;i=i+((1*(V<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();l=D*0.0-B;d=D+B*0.0;a:do if(!U){m=E+4|0;o=H+4|0;t=G+4|0;u=I+4|0;if((l!=l|0.0!=0.0)&(d!=d|0.0!=0.0)){n=0;while(1){s=+g[F+(n<<2)>>2];ao(E,0.0,1.0,D,B);r=-+g[m>>2];g[H>>2]=s-+g[E>>2];g[o>>2]=r;c[W>>2]=c[H>>2];c[W+4>>2]=c[H+4>>2];pl(G,W,K,7);r=+g[G>>2];s=+g[t>>2];q=r*0.0-s*.9999999403953552;p=r*.9999999403953552+s*0.0;if((q!=q|0.0!=0.0)&(p!=p|0.0!=0.0)){ao(I,0.0,.9999999403953552,r,s);q=+g[I>>2];p=+g[u>>2]}g[w+(n<<3)>>2]=q;g[w+(n<<3)+4>>2]=p;n=n+1|0;if((n|0)==(V|0))break a}}v=-d;m=0;do{g[H>>2]=+g[F+(m<<2)>>2]-l;g[o>>2]=v;c[W>>2]=c[H>>2];c[W+4>>2]=c[H+4>>2];pl(G,W,K,7);r=+g[G>>2];s=+g[t>>2];q=r*0.0-s*.9999999403953552;p=r*.9999999403953552+s*0.0;if((q!=q|0.0!=0.0)&(p!=p|0.0!=0.0)){ao(I,0.0,.9999999403953552,r,s);q=+g[I>>2];p=+g[u>>2]}g[w+(m<<3)>>2]=q;g[w+(m<<3)+4>>2]=p;m=m+1|0}while((m|0)!=(V|0))}while(0);if((l!=l|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(J,0.0,1.0,D,B);l=+g[J>>2];d=+g[J+4>>2]}g[L>>2]=l;g[L+4>>2]=d;c[W>>2]=c[L>>2];c[W+4>>2]=c[L+4>>2];ql(N,W,K,7);p=+g[N>>2];d=+g[N+4>>2];l=p*0.0-d*.9999999403953552;q=p*.9999999403953552+d*0.0;if((l!=l|0.0!=0.0)&(q!=q|0.0!=0.0)){ao(Q,0.0,.9999999403953552,p,d);l=+g[Q>>2];q=+g[Q+4>>2]}if(U)m=0;else{m=S+4|0;n=R+4|0;o=0;t=0;while(1){N=c[w+(o<<3)>>2]|0;Q=c[w+(o<<3)+4>>2]|0;da=t|1;c[f+(t<<3)>>2]=N;c[f+(t<<3)+4>>2]=Q;c[S>>2]=N;c[m>>2]=Q;c[W>>2]=c[S>>2];c[W+4>>2]=c[S+4>>2];Ko(R,W);Q=c[n>>2]|0;c[f+(da<<3)>>2]=c[R>>2];c[f+(da<<3)+4>>2]=Q;o=o+1|0;if((o|0)==(V|0))break;else t=t+2|0}m=V<<1}u=(T|0)!=0;if(u){g[f+(m<<3)>>2]=l;g[f+(m<<3)+4>>2]=q;m=m|1}if((m|0)!=(a|0))Ha(41413,41419,383,41442);if(U)if(!(V&2147483647))$=0;else Ha(41454,41419,390,41442);else{m=Z+4|0;n=Y+4|0;o=0;t=0;while(1){U=c[x+(o<<3)>>2]|0;$=c[x+(o<<3)+4>>2]|0;da=t|1;c[e+(t<<3)>>2]=U;c[e+(t<<3)+4>>2]=$;c[Z>>2]=U;c[m>>2]=$;c[W>>2]=c[Z>>2];c[W+4>>2]=c[Z+4>>2];Ko(Y,W);$=c[n>>2]|0;c[e+(da<<3)>>2]=c[Y>>2];c[e+(da<<3)+4>>2]=$;o=o+1|0;if((o|0)==(V|0))break;else t=t+2|0}$=V<<1}if(u)d=1.0;else d=1.0/+O(+(b*b+1.0));t=h+4|0;g[h>>2]=d;g[t>>2]=0.0;if(!a)l=0.0;else{n=_+4|0;l=0.0;m=0;do{p=+g[f+(m<<3)>>2];q=+g[f+(m<<3)+4>>2];r=p*d-q*l;s=q*d+p*l;if((r!=r|0.0!=0.0)&(s!=s|0.0!=0.0)){ao(_,d,l,p,q);d=+g[_>>2];l=+g[n>>2]}else{d=r;l=s}g[h>>2]=d;g[t>>2]=l;m=m+1|0}while((m|0)!=(a|0))}if(!$){i=ca;return}o=aa+4|0;n=0;while(1){_n(aa,d,l,+g[e+(n<<3)>>2],+g[e+(n<<3)+4>>2]);da=c[aa>>2]|0;m=c[o>>2]|0;c[h>>2]=da;c[t>>2]=m;n=n+1|0;d=(c[k>>2]=da,+g[k>>2]);if((n|0)==($|0))break;else l=(c[k>>2]=m,+g[k>>2])}i=ca;return}function tl(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,h=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0;O=i;i=i+64|0;if((i|0)>=(j|0))ba();E=O+48|0;F=O+40|0;G=O+32|0;J=O+24|0;K=O+16|0;L=O+8|0;M=O;if(!b){Qp(41461,62,1,c[2348]|0)|0;kb(1)}if(d<=0.0){Qp(41524,85,1,c[2348]|0)|0;kb(1)}H=Xp(80)|0;I=H+4|0;c[I>>2]=b;g[H+8>>2]=d;o=+(b>>>0);g[H+12>>2]=1.0/o;o=2.5132741603225375/o;D=H+28|0;g[D>>2]=o;B=~~+Z(+(+N(+(e/o))));C=H+24|0;B=B>>>0<2?2:B;c[C>>2]=B;g[H+32>>2]=o*+(B>>>0);B=b<<3;p=Xp(B)|0;c[H>>2]=p;fq(p|0,a|0,B|0)|0;B=H+16|0;c[B>>2]=qk(b)|0;p=H+60|0;c[p>>2]=gk(c[I>>2]|0)|0;a=c[C>>2]|0;f=a<<2;q=H+20|0;c[q>>2]=Xp(f)|0;b=Xp(f)|0;r=H+36|0;c[r>>2]=b;s=H+44|0;c[s>>2]=Xp(f)|0;t=H+48|0;c[t>>2]=Xp(f)|0;c[H+40>>2]=Xp(f)|0;f=c[I>>2]|0;u=i;i=i+((1*(f<<3)|0)+15&-16)|0;if((i|0)>=(j|0))ba();if(!a){L=c[B>>2]|0;rk(L);L=c[p>>2]|0;hk(L);L=c[I>>2]|0;M=H+76|0;c[M>>2]=L;M=H+72|0;c[M>>2]=0;M=H+52|0;c[M>>2]=0;M=H+56|0;c[M>>2]=0;M=H+64|0;g[M>>2]=0.0;M=c[s>>2]|0;L=c[C>>2]|0;L=L<<2;eq(M|0,0,L|0)|0;L=c[t>>2]|0;M=c[C>>2]|0;M=M<<2;eq(L|0,0,M|0)|0;i=O;return H|0}v=G+4|0;w=F+4|0;x=J+4|0;y=L+4|0;z=K+4|0;A=M+4|0;h=f;f=0;while(1){g[b+(f<<2)>>2]=(+(f>>>0)-+((a+-1|0)>>>0)*.5)*+g[D>>2];if(!h)a=0;else{b=0;do{a=c[H>>2]|0;h=c[a+(b<<3)+4>>2]|0;c[G>>2]=c[a+(b<<3)>>2];c[v>>2]=h;c[E>>2]=c[G>>2];c[E+4>>2]=c[G+4>>2];Ko(F,E);n=+g[F>>2];o=+g[w>>2];l=+g[(c[r>>2]|0)+(f<<2)>>2];k=l*-0.0;l=-l;m=+(b>>>0);e=m*k-k;d=m*l+k*0.0;if((e!=e|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(J,k,l,m,0.0);e=+g[J>>2];d=+g[x>>2]}g[L>>2]=e;g[y>>2]=d;c[E>>2]=c[L>>2];c[E+4>>2]=c[L+4>>2];Io(K,E);k=+g[K>>2];l=+g[z>>2];e=n*k-o*l;d=o*k+n*l;if((e!=e|0.0!=0.0)&(d!=d|0.0!=0.0)){ao(M,n,o,k,l);e=+g[M>>2];d=+g[A>>2]}g[u+(b<<3)>>2]=e;g[u+(b<<3)+4>>2]=d;b=b+1|0;a=c[I>>2]|0}while(b>>>0<a>>>0)}a=Gl(u,a)|0;c[(c[q>>2]|0)+(f<<2)>>2]=a;f=f+1|0;a=c[C>>2]|0;if(f>>>0>=a>>>0)break;b=c[r>>2]|0;h=c[I>>2]|0}L=c[B>>2]|0;rk(L);L=c[p>>2]|0;hk(L);L=c[I>>2]|0;M=H+76|0;c[M>>2]=L;M=H+72|0;c[M>>2]=0;M=H+52|0;c[M>>2]=0;M=H+56|0;c[M>>2]=0;M=H+64|0;g[M>>2]=0.0;M=c[s>>2]|0;L=c[C>>2]|0;L=L<<2;eq(M|0,0,L|0)|0;L=c[t>>2]|0;M=c[C>>2]|0;M=M<<2;eq(L|0,0,M|0)|0;i=O;return H|0}function ul(a){a=a|0;var b=0;rk(c[a+16>>2]|0);hk(c[a+60>>2]|0);c[a+76>>2]=c[a+4>>2];c[a+72>>2]=0;c[a+52>>2]=0;c[a+56>>2]=0;g[a+64>>2]=0.0;b=a+24|0;eq(c[a+44>>2]|0,0,c[b>>2]<<2|0)|0;eq(c[a+48>>2]|0,0,c[b>>2]<<2|0)|0;return}function vl(a){a=a|0;var b=0,d=0,e=0;uk(c[a+16>>2]|0);b=a+24|0;d=a+20|0;if(c[b>>2]|0){e=0;do{Hl(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Yp(c[d>>2]|0);Yp(c[a+36>>2]|0);Yp(c[a+40>>2]|0);Yp(c[a+44>>2]|0);Yp(c[a+48>>2]|0);ik(c[a+60>>2]|0);Yp(c[a>>2]|0);Yp(a);return}function wl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.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.0,E=0.0,F=0.0;C=i;i=i+48|0;if((i|0)>=(j|0))ba();v=C+40|0;x=C+32|0;y=C+16|0;w=C;u=C+24|0;B=C+8|0;k=a+16|0;z=c[k>>2]|0;A=c[b>>2]|0;b=c[b+4>>2]|0;c[u>>2]=A;c[u+4>>2]=b;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];tk(z,v);c[B>>2]=A;c[B+4>>2]=b;c[v>>2]=c[B>>2];c[v+4>>2]=c[B+4>>2];xl(a,v);B=a+76|0;b=c[B>>2]|0;if(b|0){c[B>>2]=b+-1;d=0;i=C;return d|0}A=a+44|0;z=a+48|0;t=a+24|0;gq(c[A>>2]|0,c[z>>2]|0,c[t>>2]<<2|0)|0;u=a+40|0;gq(c[z>>2]|0,c[u>>2]|0,c[t>>2]<<2|0)|0;sk(c[k>>2]|0,x);if(!(c[t>>2]|0)){b=a+52|0;q=c[u>>2]|0;p=0}else{k=a+20|0;m=y+4|0;n=w+4|0;o=a+12|0;r=a+68|0;b=a+52|0;s=0;l=0.0;while(1){Il(c[(c[k>>2]|0)+(s<<2)>>2]|0,c[x>>2]|0,y);q=c[m>>2]|0;c[w>>2]=c[y>>2];c[n>>2]=q;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];h=+wo(v);h=h*+g[o>>2]/+O(+(+g[r>>2]));q=c[u>>2]|0;g[q+(s<<2)>>2]=h;if(h>l)c[b>>2]=s;else h=l;s=s+1|0;p=c[t>>2]|0;if(s>>>0>=p>>>0)break;else l=h}}k=c[b>>2]|0;l=+g[q+(k<<2)>>2];o=a+72|0;switch(c[o>>2]|0){case 0:{if(!(l>+g[a+8>>2])){d=0;i=C;return d|0}c[a+56>>2]=k;c[o>>2]=1;d=0;i=C;return d|0}case 1:{m=a+56|0;n=c[m>>2]|0;b=c[z>>2]|0;h=+g[b+(n<<2)>>2];if(l>h){c[m>>2]=k;d=0;i=C;return d|0}if((p|0)==1){g[e>>2]=0.0;h=0.0}else{D=+g[(c[A>>2]|0)+(n<<2)>>2];F=+g[((n|0)==0?b+4|0:b+(n+-1<<2)|0)>>2];E=+g[b+(((n|0)==(p+-1|0)?-1:1)+n<<2)>>2];l=+g[q+(n<<2)>>2];h=h*2.0;g[e>>2]=+g[(c[a+36>>2]|0)+(n<<2)>>2]-(E-F)*(+g[a+28>>2]*.5)/(F+E-h);h=(l-D)*.5/(D+l-h);h=h<-.49900001287460327?-.49900001287460327:h;h=h>.49900001287460327?.49900001287460327:h}g[d>>2]=h;g[f>>2]=+O(+(+g[a+68>>2]));c[o>>2]=0;c[B>>2]=(c[a+4>>2]|0)>>>2;d=1;i=C;return d|0}default:{Qp(41610,69,1,c[2348]|0)|0;kb(1)}}return 0}function xl(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0.0,k=0,l=0.0,m=0,n=0,o=0.0,p=0,q=0;n=i;i=i+32|0;if((i|0)>=(j|0))ba();m=n+24|0;p=n+16|0;q=n+8|0;k=n;l=+g[b>>2];e=+g[b+4>>2];g[q>>2]=l;g[q+4>>2]=e;c[m>>2]=c[q>>2];c[m+4>>2]=c[q+4>>2];Ko(p,m);f=+g[p>>2];h=+g[p+4>>2];d=l*f-e*h;o=e*f+l*h;if((d!=d|0.0!=0.0)&(o!=o|0.0!=0.0)){ao(k,l,e,f,h);d=+g[k>>2]}q=a+60|0;kk(c[q>>2]|0,m);jk(c[q>>2]|0,d);q=a+64|0;o=d+ +g[q>>2]-+g[m>>2];o=o<1.1920928955078125e-07?1.1920928955078125e-07:o;g[q>>2]=o;g[a+68>>2]=+g[a+12>>2]*o;i=n;return}function yl(a){a=a|0;if(!a)return;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function zl(a){a=a|0;gq(a|0,45180,40)|0;return}function Al(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,l=0,m=0,n=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();m=d+8|0;n=d;l=c[b>>2]|0;b=c[b+4>>2]|0;c[n>>2]=l;c[n+4>>2]=b;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];f=+wo(m);e=(c[k>>2]=l,+g[k>>2]);h=+O(+((f+e)*.5));e=+O(+((f-e)*.5));b=(c[k>>2]=b,+g[k>>2])>0.0;f=e*0.0;g[a>>2]=h+(b?f:-f);g[a+4>>2]=b?e:-e;i=d;return}function Bl(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0;r=i;i=i+64|0;if((i|0)>=(j|0))ba();m=r+48|0;n=r+8|0;o=r;k=r+40|0;p=r+32|0;l=r+24|0;q=r+16|0;h=+g[b>>2];f=+g[b+4>>2];d=h*f;e=h*h-f*f;d=d+d;b=(e!=e|0.0!=0.0)&(d!=d|0.0!=0.0);if(h>0.0^f>0.0){if(b){ao(l,h,f,h,f);e=+g[l>>2];d=+g[l+4>>2]}s=e+-1.0;g[n>>2]=s;g[n+4>>2]=d;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];e=+wo(m);t=+O(+((s+e)*.5));s=+O(+((e-s)*.5));p=d>0.0;e=s*0.0;e=h-(t+(p?e:-e));f=f-(p?s:-s);g[n>>2]=e;g[n+4>>2]=f;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];h=+Y(+(+wo(m)));g[o>>2]=e;g[o+4>>2]=f;c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];f=+Bo(m);h=h+f*0.0;e=f-h*0.0;d=f*-0.0-h;if((d!=d|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(q,-0.0,-1.0,h,f);e=+g[q>>2];d=+g[q+4>>2]}g[a>>2]=e;g[a+4>>2]=d;i=r;return}else{if(b){ao(k,h,f,h,f);e=+g[k>>2];d=+g[k+4>>2]}t=e+-1.0;g[n>>2]=t;g[n+4>>2]=d;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];e=+wo(m);s=+O(+((t+e)*.5));t=+O(+((e-t)*.5));q=d>0.0;e=t*0.0;e=h+(s+(q?e:-e));f=f+(q?t:-t);g[n>>2]=e;g[n+4>>2]=f;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];h=+Y(+(+wo(m)));g[o>>2]=e;g[o+4>>2]=f;c[m>>2]=c[o>>2];c[m+4>>2]=c[o+4>>2];f=+Bo(m);h=h+f*0.0;e=f-h*0.0;d=f*-0.0-h;if((d!=d|0.0!=0.0)&(e!=e|0.0!=0.0)){ao(p,-0.0,-1.0,h,f);e=+g[p>>2];d=+g[p+4>>2]}g[a>>2]=e;g[a+4>>2]=d;i=r;return}}function Cl(a){a=a|0;var b=0;a:do if(a>>>0>3){b=2;while(1){if(!((a>>>0)%(b>>>0)|0)){a=0;break a}b=b+1|0;if(b>>>0>=a>>>0){a=1;break}}}else a=1;while(0);return a|0}function Dl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0;l=i;i=i+16|0;if((i|0)>=(j|0))ba();k=l;g=a;e=0;do{if(g>>>0<2){f=0;break}else f=2;do{if(!((g>>>0)%(f>>>0)|0)){h=4;break}f=f+1|0}while(f>>>0<=g>>>0);if((h|0)==4){h=0;c[b+(e<<2)>>2]=f;g=(g>>>0)/(f>>>0)|0;e=e+1|0}f=g>>>0>1}while(f&e>>>0<40);if(f&(e|0)==40){l=c[2348]|0;c[k>>2]=a;c[k+4>>2]=40;Kp(l,41680,k)|0;kb(1)}else{c[d>>2]=e;i=l;return}}function El(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+160|0;if((i|0)>=(j|0))ba();m=o;l=a+-1|0;b=l;e=0;while(1){if(b>>>0<2){h=e;break}else d=2;while(1){if(!((b>>>0)%(d>>>0)|0)){n=4;break}d=d+1|0;if(d>>>0>b>>>0){d=e;break}}if((n|0)==4){n=0;b=(b>>>0)/(d>>>0)|0;c[m+(e<<2)>>2]=d;if(!e)d=1;else d=((c[m+(e+-1<<2)>>2]|0)!=(d|0)&1)+e|0}if(b>>>0>1&d>>>0<40)e=d;else{h=d;break}}if(a>>>0<3|(h|0)==0){n=2;i=o;return n|0}else b=2;while(1){g=0;while(1){f=(l>>>0)/((c[m+(g<<2)>>2]|0)>>>0)|0;if(!f)break;else{d=1;e=0}do{d=((_(d,b)|0)>>>0)%(a>>>0)|0;e=e+1|0}while((e|0)!=(f|0));k=(d|0)==1;g=g+1|0;if(!(g>>>0<h>>>0&(k^1))){n=12;break}}if((n|0)==12?(n=0,!k):0){n=15;break}b=b+1|0;if(b>>>0>=a>>>0){n=15;break}}if((n|0)==15){i=o;return b|0}return 0}function Fl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(!b){e=1;return e|0}else{d=1;e=0}do{d=((_(d,a)|0)>>>0)%(c>>>0)|0;e=e+1|0}while((e|0)!=(b|0));return d|0}function Gl(a,b){a=a|0;b=b|0;var d=0,e=0;d=Xp(8)|0;c[d+4>>2]=b;b=b<<3;e=Xp(b)|0;c[d>>2]=e;fq(e|0,a|0,b|0)|0;return d|0}function Hl(a){a=a|0;Yp(c[a>>2]|0);Yp(a);return}function Il(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+16|0;if((i|0)>=(j|0))ba();r=t;s=c[a>>2]|0;a=c[a+4>>2]|0;if(!a){n=0.0;o=0.0;b=d+4|0;g[d>>2]=n;g[b>>2]=o;i=t;return}p=r+4|0;q=0;f=0.0;e=0.0;do{n=+g[s+(q<<3)>>2];o=+g[s+(q<<3)+4>>2];l=+g[b+(q<<3)>>2];m=+g[b+(q<<3)+4>>2];h=n*l-o*m;k=o*l+n*m;if((h!=h|0.0!=0.0)&(k!=k|0.0!=0.0)){ao(r,n,o,l,m);h=+g[r>>2];k=+g[p>>2]}f=f+h;e=e+k;q=q+1|0}while((q|0)!=(a|0));b=d+4|0;g[d>>2]=f;g[b>>2]=e;i=t;return}function Jl(a){a=a|0;var b=0,d=0,e=0,f=0;e=Xp(16)|0;c[e>>2]=a;c[e+12>>2]=4;d=(~~+M(+(+O(+(+(a>>>0)))))>>>0)+1|0;c[e+4>>2]=d;f=e+8|0;b=(a>>>0)/(d>>>0)|0;while(1)if((_(d,b)|0)>>>0>a>>>0)break;else b=b+1|0;c[f>>2]=b;return e|0}function Kl(a){a=a|0;Yp(a);return}function Ll(a,b){a=a|0;b=b|0;c[a+12>>2]=b;return}function Ml(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;gq(e|0,d|0,c[b>>2]|0)|0;l=b+12|0;d=c[l>>2]|0;if(!d)return;g=c[b>>2]|0;m=b+4|0;i=c[m>>2]|0;n=b+8|0;j=c[n>>2]|0;k=g>>>1;if(k){d=0;f=0;g=(g>>>0)/3|0;do{do{h=(_(f,j)|0)+g|0;f=f+1|0;if((f|0)==(i|0)){f=0;g=((g+1|0)>>>0)%(j>>>0)|0}}while(h>>>0>=k>>>0);p=e+(h<<1|1)|0;o=a[p>>0]|0;h=e+(d<<1)|0;a[p>>0]=a[h>>0]|0;a[h>>0]=o;d=d+1|0}while((d|0)!=(k|0));d=c[l>>2]|0}if(d>>>0<=1)return;f=c[b>>2]|0;i=c[m>>2]|0;j=(c[n>>2]|0)+2|0;k=f>>>1;if(k){d=0;h=0;g=(f>>>0)/3|0;while(1){f=h;do{h=(_(f,j)|0)+g|0;f=f+1|0;if((f|0)==(i|0)){f=0;g=((g+1|0)>>>0)%(j>>>0)|0}}while(h>>>0>=k>>>0);q=e+(d<<1)|0;o=a[q>>0]|0;p=e+(h<<1|1)|0;h=a[p>>0]|0;a[q>>0]=h&15|o&240;a[p>>0]=h&240|o&15;d=d+1|0;if((d|0)==(k|0))break;else h=f}d=c[l>>2]|0}if(d>>>0<=2)return;f=c[b>>2]|0;i=c[m>>2]|0;j=(c[n>>2]|0)+4|0;k=f>>>1;if(k){d=0;h=0;g=(f>>>0)/3|0;while(1){f=h;do{h=(_(f,j)|0)+g|0;f=f+1|0;if((f|0)==(i|0)){f=0;g=((g+1|0)>>>0)%(j>>>0)|0}}while(h>>>0>=k>>>0);r=e+(d<<1)|0;p=a[r>>0]|0;q=e+(h<<1|1)|0;o=a[q>>0]|0;a[r>>0]=o&85|p&170;a[q>>0]=o&170|p&85;d=d+1|0;if((d|0)==(k|0))break;else h=f}d=c[l>>2]|0}if(d>>>0<=3)return;g=c[b>>2]|0;k=c[m>>2]|0;i=(c[n>>2]|0)+8|0;j=g>>>1;if(!j)return;d=0;f=0;g=(g>>>0)/3|0;do{do{h=(_(f,i)|0)+g|0;f=f+1|0;if((f|0)==(k|0)){f=0;g=((g+1|0)>>>0)%(i>>>0)|0}}while(h>>>0>=j>>>0);o=e+(d<<1)|0;q=a[o>>0]|0;r=e+(h<<1|1)|0;p=a[r>>0]|0;a[o>>0]=p&51|q&204;a[r>>0]=p&204|q&51;d=d+1|0}while((d|0)!=(j|0));return}function Nl(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;gq(e|0,d|0,c[b>>2]|0)|0;o=b+12|0;d=c[o>>2]|0;if(d>>>0>3){f=c[b>>2]|0;j=c[b+4>>2]|0;k=(c[b+8>>2]|0)+8|0;i=f>>>1;if(!i)f=11;else{d=0;h=0;g=(f>>>0)/3|0;while(1){f=h;do{h=(_(f,k)|0)+g|0;f=f+1|0;if((f|0)==(j|0)){f=0;g=((g+1|0)>>>0)%(k>>>0)|0}}while(h>>>0>=i>>>0);t=e+(d<<1)|0;s=a[t>>0]|0;l=e+(h<<1|1)|0;h=a[l>>0]|0;a[t>>0]=h&51|s&204;a[l>>0]=h&204|s&51;d=d+1|0;if((d|0)==(i|0))break;else h=f}d=c[o>>2]|0;f=10}}else f=10;if((f|0)==10)if(d>>>0>2)f=11;else f=19;if((f|0)==11){d=c[b>>2]|0;j=c[b+4>>2]|0;k=(c[b+8>>2]|0)+4|0;l=d>>>1;if(!l)f=20;else{i=0;g=0;f=(d>>>0)/3|0;while(1){d=g;do{h=(_(d,k)|0)+f|0;d=d+1|0;if((d|0)==(j|0)){d=0;f=((f+1|0)>>>0)%(k>>>0)|0}}while(h>>>0>=l>>>0);g=d;u=e+(i<<1)|0;t=a[u>>0]|0;d=e+(h<<1|1)|0;s=a[d>>0]|0;a[u>>0]=s&85|t&170;a[d>>0]=s&170|t&85;d=i+1|0;if((d|0)==(l|0))break;else i=d}d=c[o>>2]|0;f=19}}if((f|0)==19)if(d>>>0>1)f=20;else{m=d;f=28}if((f|0)==20?(n=c[b>>2]|0,p=c[b+4>>2]|0,q=(c[b+8>>2]|0)+2|0,r=n>>>1,r|0):0){d=0;f=0;g=(n>>>0)/3|0;do{do{h=(_(f,q)|0)+g|0;f=f+1|0;if((f|0)==(p|0)){f=0;g=((g+1|0)>>>0)%(q>>>0)|0}}while(h>>>0>=r>>>0);n=e+(d<<1)|0;t=a[n>>0]|0;u=e+(h<<1|1)|0;s=a[u>>0]|0;a[n>>0]=s&15|t&240;a[u>>0]=s&240|t&15;d=d+1|0}while((d|0)!=(r|0));m=c[o>>2]|0;f=28}if((f|0)==28?(m|0)==0:0)return;f=c[b>>2]|0;k=c[b+4>>2]|0;i=c[b+8>>2]|0;j=f>>>1;if(!j)return;d=0;h=0;g=(f>>>0)/3|0;while(1){f=h;do{h=(_(f,i)|0)+g|0;f=f+1|0;if((f|0)==(k|0)){f=0;g=((g+1|0)>>>0)%(i>>>0)|0}}while(h>>>0>=j>>>0);s=e+(h<<1|1)|0;t=a[s>>0]|0;u=e+(d<<1)|0;a[s>>0]=a[u>>0]|0;a[u>>0]=t;d=d+1|0;if((d|0)==(j|0))break;else h=f}return}function Ol(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;gq(f|0,e|0,c[b>>2]<<3|0)|0;p=b+12|0;e=c[p>>2]|0;if(e>>>0>3){g=c[b>>2]|0;l=c[b+4>>2]|0;j=(c[b+8>>2]|0)+8|0;k=g>>>1;if(!k)g=11;else{e=0;i=0;h=(g>>>0)/3|0;while(1){g=i;do{i=(_(g,j)|0)+h|0;g=g+1|0;if((g|0)==(l|0)){g=0;h=((h+1|0)>>>0)%(j>>>0)|0}}while(i>>>0>=k>>>0);t=i<<4;m=e<<4;v=f+(t|10)|0;u=a[v>>0]|0;i=f+(m|2)|0;a[v>>0]=a[i>>0]|0;a[i>>0]=u;i=f+(t|11)|0;u=a[i>>0]|0;v=f+(m|3)|0;a[i>>0]=a[v>>0]|0;a[v>>0]=u;v=f+(t|14)|0;u=a[v>>0]|0;i=f+(m|6)|0;a[v>>0]=a[i>>0]|0;a[i>>0]=u;t=f+(t|15)|0;i=a[t>>0]|0;m=f+(m|7)|0;a[t>>0]=a[m>>0]|0;a[m>>0]=i;e=e+1|0;if((e|0)==(k|0))break;else i=g}e=c[p>>2]|0;g=10}}else g=10;if((g|0)==10)if(e>>>0>2)g=11;else g=19;if((g|0)==11){e=c[b>>2]|0;k=c[b+4>>2]|0;l=(c[b+8>>2]|0)+4|0;m=e>>>1;if(!m)g=20;else{j=0;h=0;g=(e>>>0)/3|0;while(1){e=h;do{i=(_(e,l)|0)+g|0;e=e+1|0;if((e|0)==(k|0)){e=0;g=((g+1|0)>>>0)%(l>>>0)|0}}while(i>>>0>=m>>>0);h=e;u=i<<4;e=j<<4;i=f+(u|9)|0;t=a[i>>0]|0;v=f+(e|1)|0;a[i>>0]=a[v>>0]|0;a[v>>0]=t;v=f+(u|11)|0;t=a[v>>0]|0;i=f+(e|3)|0;a[v>>0]=a[i>>0]|0;a[i>>0]=t;i=f+(u|13)|0;t=a[i>>0]|0;v=f+(e|5)|0;a[i>>0]=a[v>>0]|0;a[v>>0]=t;u=f+(u|15)|0;v=a[u>>0]|0;e=f+(e|7)|0;a[u>>0]=a[e>>0]|0;a[e>>0]=v;e=j+1|0;if((e|0)==(m|0))break;else j=e}e=c[p>>2]|0;g=19}}if((g|0)==19)if(e>>>0>1)g=20;else{n=e;g=28}if((g|0)==20?(o=c[b>>2]|0,s=c[b+4>>2]|0,q=(c[b+8>>2]|0)+2|0,r=o>>>1,r|0):0){e=0;g=0;h=(o>>>0)/3|0;do{do{i=(_(g,q)|0)+h|0;g=g+1|0;if((g|0)==(s|0)){g=0;h=((h+1|0)>>>0)%(q>>>0)|0}}while(i>>>0>=r>>>0);t=i<<4;v=e<<4;n=f+(t|12)|0;o=a[n>>0]|0;u=f+(v|4)|0;a[n>>0]=a[u>>0]|0;a[u>>0]=o;u=f+(t|13)|0;o=a[u>>0]|0;n=f+(v|5)|0;a[u>>0]=a[n>>0]|0;a[n>>0]=o;n=f+(t|14)|0;o=a[n>>0]|0;u=f+(v|6)|0;a[n>>0]=a[u>>0]|0;a[u>>0]=o;t=f+(t|15)|0;u=a[t>>0]|0;v=f+(v|7)|0;a[t>>0]=a[v>>0]|0;a[v>>0]=u;e=e+1|0}while((e|0)!=(r|0));n=c[p>>2]|0;g=28}if((g|0)==28?(n|0)==0:0)return;g=c[b>>2]|0;l=c[b+4>>2]|0;j=c[b+8>>2]|0;k=g>>>1;if(!k)return;e=0;i=0;h=(g>>>0)/3|0;while(1){g=i;do{i=(_(g,j)|0)+h|0;g=g+1|0;if((g|0)==(l|0)){g=0;h=((h+1|0)>>>0)%(j>>>0)|0}}while(i>>>0>=k>>>0);t=f+(i<<4|8)|0;u=t;b=u;b=d[b>>0]|d[b+1>>0]<<8|d[b+2>>0]<<16|d[b+3>>0]<<24;u=u+4|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;v=f+(e<<4)|0;s=v;q=s;q=d[q>>0]|d[q+1>>0]<<8|d[q+2>>0]<<16|d[q+3>>0]<<24;s=s+4|0;s=d[s>>0]|d[s+1>>0]<<8|d[s+2>>0]<<16|d[s+3>>0]<<24;r=t;a[r>>0]=q;a[r+1>>0]=q>>8;a[r+2>>0]=q>>16;a[r+3>>0]=q>>24;t=t+4|0;a[t>>0]=s;a[t+1>>0]=s>>8;a[t+2>>0]=s>>16;a[t+3>>0]=s>>24;t=v;a[t>>0]=b;a[t+1>>0]=b>>8;a[t+2>>0]=b>>16;a[t+3>>0]=b>>24;v=v+4|0;a[v>>0]=u;a[v+1>>0]=u>>8;a[v+2>>0]=u>>16;a[v+3>>0]=u>>24;e=e+1|0;if((e|0)==(k|0))break;else i=g}return}function Pl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0;h=i;i=i+96|0;if((i|0)>=(j|0))ba();g=h;f=h+80|0;wm(e,41739);if(!b){Ql(e,0,41748,h+72|0);g=0;i=h;return g|0}c[f>>2]=b;c[f+4>>2]=0;c[g>>2]=7;c[g+4>>2]=f;a[g+8>>0]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=1;c[g+28>>2]=0;c[g+36>>2]=0;b=g+40|0;if(Zl(b)|0){g=0;i=h;return g|0}c[g+52>>2]=d;k=g+60|0;c[k>>2]=-1;f=Sl(g,d,e)|0;if((c[k>>2]|0)==256){k=g+64|0;Yl(c[k>>2]|0);c[k>>2]=0;c[k+4>>2]=0}_l(b);k=f;i=h;return k|0}function Ql(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+368|0;if((i|0)>=(j|0))ba();o=p+16|0;m=p+8|0;l=p;h=p+24|0;g=p+200|0;n=p+40|0;if(!b){i=p;return}c[h>>2]=f;Qo(g,160,e,h)|0;a[g+159>>0]=0;do if(d){k=am(d+40|0)|0;e=c[d+24>>2]|0;f=c[d+28>>2]|0;h=c[d+36>>2]|0;if(k|0?a[k>>0]|0:0){if((c[d+44>>2]|0)>>>0>=21)break;c[l>>2]=g;c[l+4>>2]=k;pp(n,160,41764,l)|0;a[n+159>>0]=0;g=n;break}if((c[d+20>>2]|0)!=-2){c[m>>2]=g;pp(n,160,41777,m)|0;a[n+159>>0]=0;g=n}}else{f=-1;e=-1;h=0}while(0);c[o>>2]=g;xm(b,e,f,h,41797,o);i=p;return}function Rl(b){b=b|0;var d=0,e=0;d=b+4|0;e=c[d>>2]|0;b=a[(c[b>>2]|0)+e>>0]|0;if(!(b<<24>>24)){e=-1;return e|0}c[d>>2]=e+1;e=b&255;return e|0}function Sl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();f=h+8|0;e=h;c[a+56>>2]=0;Tl(a,d);a:do if(!(b&4)){switch(c[a+60>>2]|0){case 123:case 91:{g=4;break a}default:{}}Ql(d,a,42071,e);e=0}else g=4;while(0);do if((g|0)==4){e=Wl(a,b,d)|0;if(e){if((b&2|0)==0?(Tl(a,d),c[a+60>>2]|0):0){Ql(d,a,42317,f);d=e+4|0;b=c[d>>2]|0;if((b|0)==-1){e=0;break}g=b+-1|0;c[d>>2]=g;if(g|0){e=0;break}km(e);e=0;break}if(d)c[d+8>>2]=c[a+36>>2]}else e=0}while(0);i=h;return e|0}function Tl(b,d){b=b|0;d=d|0;var e=0,f=0,g=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,D=0;B=i;i=i+112|0;if((i|0)>=(j|0))ba();r=B+104|0;k=B+96|0;g=B+88|0;v=B+80|0;u=B+72|0;x=B+64|0;t=B+56|0;w=B+48|0;n=B+40|0;m=B+32|0;p=B+24|0;o=B+16|0;l=B+8|0;z=B+108|0;q=B;y=b+40|0;$l(y);A=b+60|0;if((c[A>>2]|0)==256){s=b+64|0;Yl(c[s>>2]|0);c[s>>2]=0;c[s+4>>2]=0}a:while(1){f=Ul(b,d)|0;switch(f|0){case 9:case 10:case 13:case 32:break;case -1:{s=5;break a}case -2:{s=6;break a}default:{s=7;break a}}}if((s|0)==5){c[A>>2]=0;i=B;return}else if((s|0)==6){c[A>>2]=-1;i=B;return}else if((s|0)==7){bm(y,f&255)|0;D=f|32;if((f|0)==44|((f|0)==58|((D|0)==125|(D|0)==123))){c[A>>2]=f;i=B;return}if((f|0)==34){q=b+64|0;c[q>>2]=0;c[A>>2]=-1;f=Ul(b,d)|0;if(f>>>0<4294967294)bm(y,f&255)|0;b:while(1){switch(f|0){case 34:{s=41;break b}case -2:break b;case -1:{s=13;break b}default:{}}if(f>>>0<32){e=f;s=15;break}g=Ul(b,d)|0;if(g>>>0<4294967294)bm(y,g&255)|0;if((f|0)!=92){f=g;continue}if((g|0)!=117){if((g|4|0)!=102)switch(g|0){case 34:case 47:case 92:case 110:case 114:case 116:break;default:{s=40;break b}}f=Ul(b,d)|0;if(f>>>0>=4294967294)continue;bm(y,f&255)|0;continue}f=Ul(b,d)|0;if(f>>>0<4294967294)bm(y,f&255)|0;if((f+-48|0)>>>0>=10)switch(f|0){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{s=32;break b}}f=Ul(b,d)|0;if(f>>>0<4294967294)bm(y,f&255)|0;if((f+-48|0)>>>0>=10)switch(f|0){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{s=32;break b}}f=Ul(b,d)|0;if(f>>>0<4294967294)bm(y,f&255)|0;if((f+-48|0)>>>0>=10)switch(f|0){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{s=32;break b}}f=Ul(b,d)|0;if(f>>>0<4294967294)bm(y,f&255)|0;if((f+-48|0)>>>0>=10)switch(f|0){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:{s=32;break b}}f=Ul(b,d)|0;if(f>>>0>=4294967294)continue;bm(y,f&255)|0}c:do if((s|0)==13)Ql(d,b,41827,l);else if((s|0)==15){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0;if((e|0)==10){Ql(d,b,41850,o);break}else{c[p>>2]=e;Ql(d,b,41869,p);break}}else if((s|0)==32)Ql(d,b,41892,m);else if((s|0)==40)Ql(d,b,41892,n);else if((s|0)==41?(e=Xl((c[b+44>>2]|0)+1|0)|0,e|0):0){c[q>>2]=e;g=(am(y)|0)+1|0;f=a[g>>0]|0;d:do if(f<<24>>24!=34){e:while(1){k=g+1|0;do if(f<<24>>24==92){f=a[k>>0]|0;if(f<<24>>24==117){f=Vl(k)|0;if((f|0)<0){e=g;s=47;break e}l=g+6|0;switch(f&-1024|0){case 56320:{e=f;s=57;break e}case 55296:{if((a[l>>0]|0)!=92){e=f;s=56;break e}k=g+7|0;if((a[k>>0]|0)!=117){e=f;s=56;break e}k=Vl(k)|0;if((k|0)<0){e=l;s=52;break e}if((k&-1024|0)!=56320){e=k;s=54;break e}g=g+12|0;f=(f<<10)+-56613888+k|0;break}default:g=l}em(f,e,z)|0;e=e+(c[z>>2]|0)|0;break}else{switch(f<<24>>24|0){case 47:case 92:case 34:{a[e>>0]=f;break}case 98:{a[e>>0]=8;break}case 102:{a[e>>0]=12;break}case 110:{a[e>>0]=10;break}case 114:{a[e>>0]=13;break}case 116:{a[e>>0]=9;break}default:{}}g=g+2|0;e=e+1|0;break}}else{a[e>>0]=f;g=k;e=e+1|0}while(0);f=a[g>>0]|0;if(f<<24>>24==34)break d}if((s|0)==47){c[w>>2]=e;Ql(d,b,41907,w)}else if((s|0)==52){c[t>>2]=e;Ql(d,b,41907,t)}else if((s|0)==54){c[x>>2]=f;c[x+4>>2]=e;Ql(d,b,41937,x)}else if((s|0)==56){c[u>>2]=e;Ql(d,b,41968,u)}else if((s|0)==57){c[v>>2]=e;Ql(d,b,41968,v)}break c}while(0);a[e>>0]=0;c[q+4>>2]=e-(c[q>>2]|0);c[A>>2]=256;i=B;return}while(0);Yl(c[q>>2]|0);c[q>>2]=0;c[q+4>>2]=0;i=B;return}e=(f|0)==45;if(!(e|(f+-48|0)>>>0<10)){if(((f&-33)+-65|0)>>>0>=26){f=b+16|0;e=a[(c[f>>2]|0)+(b+8)>>0]|0;if(e<<24>>24){g=b+36|0;do{bm(y,e)|0;D=(c[f>>2]|0)+1|0;c[f>>2]=D;c[g>>2]=(c[g>>2]|0)+1;e=a[b+8+D>>0]|0}while(e<<24>>24!=0)}c[A>>2]=-1;i=B;return}do{f=Ul(b,d)|0;e=f>>>0<4294967294;if(e)bm(y,f&255)|0}while(((f&-33)+-65|0)>>>0<26);if(e){if((f|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((f|0)!=10){if(fm(f&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0}e=am(y)|0;if(!(dp(e,42055)|0)){c[A>>2]=259;i=B;return}if(!(dp(e,42060)|0)){c[A>>2]=260;i=B;return}if(!(dp(e,42066)|0)){c[A>>2]=261;i=B;return}else{c[A>>2]=-1;i=B;return}}c[A>>2]=-1;if(e){e=Ul(b,d)|0;if(e>>>0<4294967294){bm(y,e&255)|0;s=87}else s=96}else{e=f;s=87}if((s|0)==87)if((e|0)==48){e=Ul(b,d)|0;if(e>>>0<4294967294)bm(y,e&255)|0;if((e+-48|0)>>>0<10){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0}else s=108}else s=96;f:do if((s|0)==96){if((e+-48|0)>>>0<10)while(1){e=Ul(b,d)|0;if(e>>>0<4294967294)bm(y,e&255)|0;if((e+-48|0)>>>0>=10){s=108;break f}}if(e>>>0<4294967294){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0}}while(0);g:do if((s|0)==108){h:do if(!(c[b+52>>2]&8)){switch(e|0){case 46:{s=124;break h}case 101:case 69:break h;default:{}}if(e>>>0<4294967294){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0}e=am(y)|0;D=eo()|0;c[D>>2]=0;e=to(e,z,10)|0;f=C;if((c[D>>2]|0)!=34){c[A>>2]=257;D=b+64|0;c[D>>2]=e;c[D+4>>2]=f;break g}if((f|0)<0){Ql(d,b,41993,g);break g}else{Ql(d,b,42018,k);break g}}else if((e|0)==46)s=124;while(0);i:do if((s|0)==124){e=Ul(b,d)|0;if((e+-48|0)>>>0<10){bm(y,e&255)|0;while(1){e=Ul(b,d)|0;if(e>>>0<4294967294)bm(y,e&255)|0;if((e+-48|0)>>>0>=10)break i}}if((e|1|0)==-1)break g;D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1;break g}while(0);j:do if((e|32|0)==101){e=Ul(b,d)|0;if(e>>>0<4294967294)bm(y,e&255)|0;switch(e|0){case 43:case 45:{e=Ul(b,d)|0;if(e>>>0<4294967294)bm(y,e&255)|0;break}default:{}}if((e+-48|0)>>>0<10)while(1){e=Ul(b,d)|0;if(e>>>0<4294967294)bm(y,e&255)|0;if((e+-48|0)>>>0>=10)break j}if(e>>>0>=4294967294)break g;if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0;break g}while(0);if(e>>>0<4294967294){if((e|1|0)!=-1){D=b+36|0;c[D>>2]=(c[D>>2]|0)+-1;if((e|0)!=10){if(fm(e&255)|0){D=b+28|0;c[D>>2]=(c[D>>2]|0)+-1}}else{D=b+24|0;c[D>>2]=(c[D>>2]|0)+-1;c[b+28>>2]=c[b+32>>2]}D=b+16|0;c[D>>2]=(c[D>>2]|0)+-1}cm(y)|0}if(!(dm(y,q)|0)){c[A>>2]=258;h[b+64>>3]=+h[q>>3];break}else{Ql(d,b,42034,r);break}}while(0);i=B;return}}function Ul(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;if((i|0)>=(j|0))ba();n=o;l=b+20|0;e=c[l>>2]|0;if(e|0){b=e;i=o;return b|0}m=b+16|0;e=c[m>>2]|0;do if(!(a[b+8+e>>0]|0)){k=b+4|0;g=rb[c[b>>2]&7](c[k>>2]|0)|0;if((g|0)==-1){c[l>>2]=-1;b=-1;i=o;return b|0}e=g&255;h=b+8|0;a[h>>0]=e;c[m>>2]=0;if((g&-128|0)!=128){a[b+9>>0]=0;e=0;break}e=fm(e)|0;if(e|0){if(e>>>0>1){f=1;do{a[b+8+f>>0]=rb[c[b>>2]&7](c[k>>2]|0)|0;f=f+1|0}while((f|0)!=(e|0))}if(gm(h,e,0)|0){a[b+8+e>>0]=0;e=c[m>>2]|0;break}}c[l>>2]=-2;c[n>>2]=g;Ql(d,b,41800,n);b=-2;i=o;return b|0}while(0);c[m>>2]=e+1;e=a[b+8+e>>0]|0;f=e<<24>>24;n=b+36|0;c[n>>2]=(c[n>>2]|0)+1;if(e<<24>>24==10){n=b+24|0;c[n>>2]=(c[n>>2]|0)+1;n=b+28|0;c[b+32>>2]=c[n>>2];c[n>>2]=0;b=f;i=o;return b|0}if(!(fm(e)|0)){b=f;i=o;return b|0}b=b+28|0;c[b>>2]=(c[b>>2]|0)+1;b=f;i=o;return b|0}function Vl(b){b=b|0;var c=0,d=0,e=0,f=0;c=a[b+1>>0]|0;d=c<<24>>24;do if((c+-48&255)>=10){if((c+-97&255)<26){c=d+-87|0;break}if((c+-65&255)<26){c=d+-55|0;break}else{b=-1;return b|0}}else c=d+-48|0;while(0);d=a[b+2>>0]|0;e=c<<4;c=d<<24>>24;do if((d+-48&255)>=10){if((d+-97&255)<26){c=c+-87|0;break}if((d+-65&255)<26){c=c+-55|0;break}else{b=-1;return b|0}}else c=c+-48|0;while(0);d=a[b+3>>0]|0;f=c+e<<4;c=d<<24>>24;do if((d+-48&255)>=10){if((d+-97&255)<26){c=c+-87|0;break}if((d+-65&255)<26){c=c+-55|0;break}else{b=-1;return b|0}}else c=c+-48|0;while(0);e=a[b+4>>0]|0;d=c+f<<4;c=e<<24>>24;do if((e+-48&255)>=10){if((e+-97&255)<26){c=c+-87|0;break}if((e+-65&255)<26){c=c+-55|0;break}else{b=-1;return b|0}}else c=c+-48|0;while(0);b=c+d|0;return b|0}function Wl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=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;w=i;i=i+80|0;if((i|0)>=(j|0))ba();f=w+72|0;e=w+64|0;m=w+56|0;p=w+48|0;r=w+40|0;n=w+32|0;q=w+24|0;o=w+16|0;l=w+8|0;v=a+56|0;t=(c[v>>2]|0)+1|0;c[v>>2]=t;if(t>>>0>2048){Ql(d,a,42091,w);a=0;i=w;return a|0}s=a+60|0;a:do switch(c[s>>2]|0){case 256:{g=a+64|0;e=c[g>>2]|0;k=g+4|0;f=c[k>>2]|0;if((b&16|0)==0?No(e,0,f)|0:0){Ql(d,a,42121,l);a=0;i=w;return a|0}e=nm(e,f)|0;if(!e){a=0;i=w;return a|0}else{c[g>>2]=0;c[k>>2]=0;break a}}case 257:{e=a+64|0;e=pm(c[e>>2]|0,c[e+4>>2]|0)|0;u=72;break}case 258:{e=rm(+h[a+64>>3])|0;u=72;break}case 259:{e=tm()|0;u=72;break}case 260:{e=um()|0;u=72;break}case 261:{e=vm()|0;u=72;break}case 123:{t=hm()|0;if(!t){a=0;i=w;return a|0}Tl(a,d);b:do switch(c[s>>2]|0){case 125:{e=t;break a}case 256:{l=a+64|0;m=l+4|0;c:do if(b&1){while(1){e=c[l>>2]|0;f=c[m>>2]|0;c[l>>2]=0;c[m>>2]=0;if(!e){e=0;u=74;break}if(No(e,0,f)|0){u=33;break c}if(im(t,e)|0){u=35;break}Tl(a,d);if((c[s>>2]|0)!=58){u=37;break c}Tl(a,d);g=Wl(a,b,d)|0;if(!g){u=39;break c}k=g+4|0;f=c[k>>2]|0;if((f|0)!=-1)c[k>>2]=f+1;if(jm(t,e,g)|0){u=43;break c}f=c[k>>2]|0;if((f|0)!=-1?(u=f+-1|0,c[k>>2]=u,(u|0)==0):0)km(g);Yl(e);Tl(a,d);e=c[s>>2]|0;if((e|0)!=44){u=50;break c}Tl(a,d);if((c[s>>2]|0)!=256){u=30;break b}}if((u|0)==35){Yl(e);Ql(d,a,42226,n);break b}else if((u|0)==74){i=w;return e|0}}else{while(1){e=c[l>>2]|0;f=c[m>>2]|0;c[l>>2]=0;c[m>>2]=0;if(!e){e=0;break}if(No(e,0,f)|0){u=33;break c}Tl(a,d);if((c[s>>2]|0)!=58){u=37;break c}Tl(a,d);g=Wl(a,b,d)|0;if(!g){u=39;break c}k=g+4|0;f=c[k>>2]|0;if((f|0)!=-1)c[k>>2]=f+1;if(jm(t,e,g)|0){u=43;break c}f=c[k>>2]|0;if((f|0)!=-1?(u=f+-1|0,c[k>>2]=u,(u|0)==0):0)km(g);Yl(e);Tl(a,d);e=c[s>>2]|0;if((e|0)!=44){u=50;break c}Tl(a,d);if((c[s>>2]|0)!=256){u=30;break b}}i=w;return e|0}while(0);if((u|0)==33){Yl(e);Ql(d,a,42189,q);break b}else if((u|0)==37){Yl(e);Ql(d,a,42247,r);break b}else if((u|0)==39){Yl(e);break b}else if((u|0)==43){Yl(e);e=g+4|0;f=c[e>>2]|0;if((f|0)==-1)break b;a=f+-1|0;c[e>>2]=a;if(a|0)break b;km(g);break b}else if((u|0)==50){if((e|0)==125){e=t;u=72;break a}Ql(d,a,42260,p);break b}break}default:u=30}while(0);if((u|0)==30)Ql(d,a,42166,o);e=t+4|0;f=c[e>>2]|0;if((f|0)==-1){a=0;i=w;return a|0}a=f+-1|0;c[e>>2]=a;if(a|0){a=0;i=w;return a|0}km(t);a=0;i=w;return a|0}case 91:{l=lm()|0;if(!l){a=0;i=w;return a|0}Tl(a,d);d:do switch(c[s>>2]|0){case 93:{e=l;break a}case 0:{u=66;break}default:while(1){k=Wl(a,b,d)|0;if(!k)break d;g=k+4|0;e=c[g>>2]|0;if((e|0)!=-1)c[g>>2]=e+1;e=(mm(l,k)|0)==0;f=c[g>>2]|0;if((f|0)!=-1?(t=f+-1|0,c[g>>2]=t,(t|0)==0):0)km(k);if(!e)break d;Tl(a,d);switch(c[s>>2]|0){case 93:{e=l;u=72;break a}case 44:break;default:{u=66;break d}}Tl(a,d);if(!(c[s>>2]|0)){u=66;break d}}}while(0);if((u|0)==66)Ql(d,a,42273,m);e=l+4|0;f=c[e>>2]|0;if((f|0)==-1){a=0;i=w;return a|0}a=f+-1|0;c[e>>2]=a;if(a|0){a=0;i=w;return a|0}km(l);a=0;i=w;return a|0}case -1:{Ql(d,a,42286,e);a=0;i=w;return a|0}default:{Ql(d,a,42300,f);a=0;i=w;return a|0}}while(0);if((u|0)==72)if(!e){a=0;i=w;return a|0}c[v>>2]=(c[v>>2]|0)+-1;a=e;i=w;return a|0}function Xl(a){a=a|0;if(!a){a=0;return a|0}a=rb[c[2340]&7](a)|0;return a|0}function Yl(a){a=a|0;if(!a)return;qb[c[2341]&31](a);return}function Zl(b){b=b|0;var d=0;c[b+8>>2]=16;c[b+4>>2]=0;d=Xl(16)|0;c[b>>2]=d;if(!d){b=-1;return b|0}a[d>>0]=0;b=0;return b|0}function _l(a){a=a|0;var b=0;b=c[a>>2]|0;if(b|0)Yl(b);c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=0;return}function $l(b){b=b|0;c[b+4>>2]=0;a[c[b>>2]>>0]=0;return}function am(a){a=a|0;return c[a>>2]|0}function bm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=b+8|0;f=c[g>>2]|0;h=b+4|0;e=c[h>>2]|0;do if((f-e|0)>>>0<=1){if((f|0)<0|e>>>0>4294967293){d=-1;return d|0}f=f<<1;e=e+2|0;e=f>>>0>e>>>0?f:e;f=Xl(e)|0;if(!f){d=-1;return d|0}else{fq(f|0,c[b>>2]|0,c[h>>2]|0)|0;Yl(c[b>>2]|0);c[b>>2]=f;c[g>>2]=e;g=b;e=c[h>>2]|0;break}}else{g=b;f=c[b>>2]|0}while(0);a[f+e>>0]=d;d=(c[h>>2]|0)+1|0;c[h>>2]=d;a[(c[g>>2]|0)+d>>0]=0;d=0;return d|0}function cm(b){b=b|0;var d=0,e=0;d=b+4|0;e=c[d>>2]|0;if(!e){b=0;return b|0}e=e+-1|0;c[d>>2]=e;e=(c[b>>2]|0)+e|0;b=a[e>>0]|0;a[e>>0]=0;return b|0}function dm(b,d){b=b|0;d=d|0;var e=0.0,f=0,g=0,k=0,l=0;l=i;i=i+16|0;if((i|0)>=(j|0))ba();k=l;f=a[c[(op()|0)>>2]>>0]|0;if(f<<24>>24!=46?(g=Bp(c[b>>2]|0,46)|0,g|0):0)a[g>>0]=f;g=eo()|0;c[g>>2]=0;e=+Tp(c[b>>2]|0,k);if(e==s|e==-s?(c[g>>2]|0)==34:0){d=-1;i=l;return d|0}h[d>>3]=e;d=0;i=l;return d|0}function em(b,d,e){b=b|0;d=d|0;e=e|0;if((b|0)<0){e=-1;return e|0}if((b|0)<128){a[d>>0]=b;c[e>>2]=1;e=0;return e|0}if((b|0)<2048){a[d>>0]=b>>>6&31|192;a[d+1>>0]=b&63|128;c[e>>2]=2;e=0;return e|0}if((b|0)<65536){a[d>>0]=b>>>12&15|224;a[d+1>>0]=b>>>6&63|128;a[d+2>>0]=b&63|128;c[e>>2]=3;e=0;return e|0}if((b|0)>=1114112){e=-1;return e|0}a[d>>0]=b>>>18&7|240;a[d+1>>0]=b>>>12&63|128;a[d+2>>0]=b>>>6&63|128;a[d+3>>0]=b&63|128;c[e>>2]=4;e=0;return e|0}function fm(a){a=a|0;if(a<<24>>24>-1){a=1;return a|0}if((a&255)<192|(a&-2)<<24>>24==-64){a=0;return a|0}if((a+62&255)<30){a=2;return a|0}if((a&-16)<<24>>24==-32){a=3;return a|0}else return ((a+16&255)<5?4:0)|0;return 0}function gm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=a[b>>0]|0;j=(d|0)==2;a:do if(j){i=1;f=f&31}else switch(d|0){case 3:{i=1;f=f&15;break a}case 4:{i=1;f=f&7;break a}default:{k=0;return k|0}}while(0);do{h=a[b+i>>0]|0;if(h<<24>>24>-1|(h&255)>191){f=0;k=13;break}g=f<<6;f=h&63|g;i=i+1|0}while(i>>>0<d>>>0);if((k|0)==13)return f|0;if(j&(f|0)<128|((f|0)>1114111|(g&-2048|0)==55296)){k=0;return k|0}if((d|0)==3&(f|0)<2048){k=0;return k|0}if((d|0)==4&(f|0)<65536){k=0;return k|0}if(!e){k=1;return k|0}c[e>>2]=f;k=1;return k|0}function hm(){var a=0;a=Xl(40)|0;if(!a){a=0;return a|0}if(!(c[11305]|0))Dm(0);c[a>>2]=0;c[a+4>>2]=1;if(!(ym(a+8|0)|0)){c[a+36>>2]=0;return a|0}else{Yl(a);a=0;return a|0}return 0}function im(a,b){a=a|0;b=b|0;if(!((a|0)!=0&(b|0)!=0)){b=0;return b|0}if(c[a>>2]|0){b=0;return b|0}b=Cm(a+8|0,b)|0;return b|0}function jm(a,b,d){a=a|0;b=b|0;d=d|0;if(!d){d=-1;return d|0}if((a|0)!=0&(b|0)!=0?!((a|0)==(d|0)|(c[a>>2]|0)!=0):0){if(!(Am(a+8|0,b,d)|0)){d=0;return d|0}a=d+4|0;b=c[a>>2]|0;if((b|0)==-1){d=-1;return d|0}b=b+-1|0;c[a>>2]=b;if(b|0){d=-1;return d|0}km(d);d=-1;return d|0}a=d+4|0;b=c[a>>2]|0;if((b|0)==-1){d=-1;return d|0}b=b+-1|0;c[a>>2]=b;if(b|0){d=-1;return d|0}km(d);d=-1;return d|0}function km(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;switch(c[a>>2]|0){case 0:{zm(a+8|0);Yl(a);return}case 1:{h=a+12|0;b=c[h>>2]|0;i=a+16|0;if(b|0){e=0;do{d=c[(c[i>>2]|0)+(e<<2)>>2]|0;if(((d|0)!=0?(f=d+4|0,g=c[f>>2]|0,(g|0)!=-1):0)?(j=g+-1|0,c[f>>2]=j,(j|0)==0):0){km(d);b=c[h>>2]|0}e=e+1|0}while(e>>>0<b>>>0)}Yl(c[i>>2]|0);Yl(a);return}case 2:{Yl(c[a+8>>2]|0);Yl(a);return}case 3:{Yl(a);return}case 4:{Yl(a);return}default:return}}function lm(){var a=0,b=0;a=Xl(24)|0;if(!a){a=0;return a|0}c[a>>2]=1;c[a+4>>2]=1;c[a+12>>2]=0;c[a+8>>2]=8;b=Xl(32)|0;c[a+16>>2]=b;if(!b){Yl(a);b=0;return b|0}else{c[a+20>>2]=0;b=a;return b|0}return 0}function mm(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;if(!b){b=-1;return b|0}if(a|0?!((a|0)==(b|0)|(c[a>>2]|0)!=1):0){g=a+12|0;h=a+8|0;d=c[h>>2]|0;e=a+16|0;f=c[e>>2]|0;if(((c[g>>2]|0)+1|0)>>>0>d>>>0){k=d+1|0;a=d<<1;a=k>>>0>a>>>0?k:a;d=Xl(a<<2)|0;if(d|0){c[h>>2]=a;c[e>>2]=d;fq(d|0,f|0,c[g>>2]<<2|0)|0;Yl(f);i=c[e>>2]|0;j=10}}else{i=f;j=10}if((j|0)==10?i|0:0){k=c[g>>2]|0;c[i+(k<<2)>>2]=b;c[g>>2]=k+1;k=0;return k|0}a=b+4|0;d=c[a>>2]|0;if((d|0)==-1){k=-1;return k|0}k=d+-1|0;c[a>>2]=k;if(k|0){k=-1;return k|0}km(b);k=-1;return k|0}a=b+4|0;d=c[a>>2]|0;if((d|0)==-1){k=-1;return k|0}k=d+-1|0;c[a>>2]=k;if(k|0){k=-1;return k|0}km(b);k=-1;return k|0}function nm(a,b){a=a|0;b=b|0;var d=0;if(!a){a=0;return a|0}d=Xl(16)|0;if(!d){a=0;return a|0}c[d>>2]=2;c[d+4>>2]=1;c[d+8>>2]=a;c[d+12>>2]=b;a=d;return a|0}function om(a){a=a|0;if((a|0)!=0?(c[a>>2]|0)==2:0)a=c[a+8>>2]|0;else a=0;return a|0}function pm(a,b){a=a|0;b=b|0;var d=0,e=0;d=Xl(16)|0;if(!d){d=0;return d|0}c[d>>2]=3;c[d+4>>2]=1;e=d+8|0;c[e>>2]=a;c[e+4>>2]=b;return d|0}function qm(a){a=a|0;var b=0;if((a|0)!=0?(c[a>>2]|0)==3:0){b=a+8|0;a=c[b+4>>2]|0;b=c[b>>2]|0}else{a=0;b=0}C=a;return b|0}function rm(a){a=+a;var b=0,d=0.0;d=+N(+a);h[k>>3]=d;b=c[k+4>>2]|0;if(b>>>0>2146435071|(b|0)==2146435071&(c[k>>2]|0)>>>0>4294967295){b=0;return b|0}b=Xl(16)|0;if(!b){b=0;return b|0}c[b>>2]=4;c[b+4>>2]=1;h[b+8>>3]=a;return b|0}function sm(a){a=a|0;var b=0.0;if(!a){b=0.0;return +b}switch(c[a>>2]|0){case 3:{a=a+8|0;b=+((c[a>>2]|0)>>>0)+4294967296.0*+(c[a+4>>2]|0);return +b}case 4:{b=+h[a+8>>3];return +b}default:{b=0.0;return +b}}return 0.0}function tm(){return 9368}function um(){return 9376}function vm(){return 9384}function wm(b,d){b=b|0;d=d|0;var e=0,f=0;if(!b)return;a[b+92>>0]=0;c[b>>2]=-1;c[b+4>>2]=-1;c[b+8>>2]=0;if(!d){a[b+12>>0]=0;return}e=np(d)|0;if(e>>>0<80){Lp(b+12|0,d,e+1|0)|0;return}else{f=b+12|0;a[f>>0]=a[42338]|0;a[f+1>>0]=a[42339]|0;a[f+2>>0]=a[42340]|0;Lp(b+15|0,d+(e+-76)|0,77)|0;return}}function xm(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var k=0,l=0;l=i;i=i+16|0;if((i|0)>=(j|0))ba();k=l;c[k>>2]=h;if(!b){i=l;return}h=b+92|0;if(a[h>>0]|0){i=l;return}c[b>>2]=d;c[b+4>>2]=e;c[b+8>>2]=f;Qo(h,160,g,k)|0;a[b+251>>0]=0;i=l;return}function ym(a){a=a|0;var b=0,d=0,e=0,f=0;c[a>>2]=0;b=a+8|0;c[b>>2]=3;d=Xl(64)|0;c[a+4>>2]=d;if(!d){e=-1;return e|0}e=a+12|0;c[a+16>>2]=e;c[e>>2]=e;f=a+20|0;c[a+24>>2]=f;c[f>>2]=f;b=1<<c[b>>2];a=0;do{c[d+(a<<3)+4>>2]=e;c[d+(a<<3)>>2]=e;a=a+1|0}while(a>>>0<b>>>0);b=0;return b|0}function zm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+12|0;b=c[a+16>>2]|0;if((b|0)==(f|0)){a=a+4|0;a=c[a>>2]|0;Yl(a);return}do{e=b;b=c[b+4>>2]|0;d=c[e+20>>2]|0;if((d|0?(h=d+4|0,g=c[h>>2]|0,(g|0)!=-1):0)?(i=g+-1|0,c[h>>2]=i,(i|0)==0):0)km(d);Yl(e)}while((b|0)!=(f|0));i=a+4|0;i=c[i>>2]|0;Yl(i);return}function Am(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=a+8|0;e=c[g>>2]|0;if((c[a>>2]|0)>>>0>=1<<e>>>0){e=e+1|0;h=1<<e;f=Xl(h<<3)|0;if(!f){a=-1;return a|0}i=a+4|0;Yl(c[i>>2]|0);c[i>>2]=f;c[g>>2]=e;n=a+12|0;g=0;do{c[f+(g<<3)+4>>2]=n;c[f+(g<<3)>>2]=n;g=g+1|0}while(g>>>0<h>>>0);m=a+16|0;g=c[m>>2]|0;c[m>>2]=n;c[n>>2]=n;if((g|0)!=(n|0)){m=h+-1|0;f=c[i>>2]|0;do{h=g+4|0;l=g;g=c[h>>2]|0;i=c[l+16>>2]&m;j=f+(i<<3)|0;k=c[j>>2]|0;if((k|0)==(n|0)?(o=f+(i<<3)+4|0,(n|0)==(c[o>>2]|0)):0){c[h>>2]=n;c[l>>2]=c[n>>2];c[(c[n>>2]|0)+4>>2]=l;c[n>>2]=l;c[o>>2]=l}else{c[h>>2]=k;c[l>>2]=c[k>>2];c[(c[k>>2]|0)+4>>2]=l;c[k>>2]=l}c[j>>2]=l}while((g|0)!=(n|0))}}else{n=a+12|0;f=c[a+4>>2]|0}g=np(b)|0;g=Bm(b,g,c[11305]|0)|0;j=(1<<e)+-1&g;k=f+(j<<3)|0;e=c[k>>2]|0;j=f+(j<<3)+4|0;if(!((e|0)==(n|0)?(n|0)==(c[j>>2]|0):0))p=15;a:do if((p|0)==15){while(1){if((c[e+16>>2]|0)==(g|0)?(dp(e+24|0,b)|0)==0:0)break;if((e|0)==(c[j>>2]|0))break a;e=c[e+4>>2]|0;p=15}if(e|0){e=e+20|0;f=c[e>>2]|0;if((f|0?(q=f+4|0,r=c[q>>2]|0,(r|0)!=-1):0)?(a=r+-1|0,c[q>>2]=a,(a|0)==0):0)km(f);c[e>>2]=d;a=0;return a|0}}while(0);e=np(b)|0;if(e>>>0>4294967270){a=-1;return a|0}i=Xl(e+25|0)|0;if(!i){a=-1;return a|0}c[i+16>>2]=g;Lp(i+24|0,b,e+1|0)|0;c[i+20>>2]=d;e=i+4|0;c[e>>2]=i;c[i>>2]=i;f=i+8|0;g=i+12|0;c[g>>2]=f;c[f>>2]=f;h=c[k>>2]|0;if((h|0)==(n|0)?(n|0)==(c[j>>2]|0):0){c[e>>2]=n;c[i>>2]=c[n>>2];c[(c[a+12>>2]|0)+4>>2]=i;c[n>>2]=i;c[j>>2]=i}else{c[e>>2]=h;c[i>>2]=c[h>>2];c[(c[h>>2]|0)+4>>2]=i;c[h>>2]=i}c[k>>2]=i;d=a+20|0;c[g>>2]=d;c[f>>2]=c[d>>2];c[(c[d>>2]|0)+4>>2]=f;c[d>>2]=f;c[a>>2]=(c[a>>2]|0)+1;a=0;return a|0}
function Bm(a,b,f){a=a|0;b=b|0;f=f|0;var g=0,h=0,i=0,j=0;i=b+-559038737+f|0;f=a;a:do if(f&3)if(!(f&1)){if(b>>>0>12){g=i;h=i;f=i;do{h=((e[a+6>>1]|0)<<16|(e[a+4>>1]|0))+h|0;f=((e[a+10>>1]|0)<<16|(e[a+8>>1]|0))+f|0;g=(f<<4|f>>>28)^((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g-f;f=f+h|0;h=(g<<6|g>>>26)^h-g;g=g+f|0;f=(h<<8|h>>>24)^f-h;h=h+g|0;g=(f<<16|f>>>16)^g-f;f=f+h|0;h=(g<<19|g>>>13)^h-g;g=g+f|0;f=(h<<4|h>>>28)^f-h;h=h+g|0;b=b+-12|0;a=a+12|0}while(b>>>0>12)}else{g=i;h=i;f=i}switch(b|0){case 12:{g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;b=((e[a+6>>1]|0)<<16|(e[a+4>>1]|0))+h|0;f=((e[a+10>>1]|0)<<16|(e[a+8>>1]|0))+f|0;break a}case 11:{f=((d[a+10>>0]|0)<<16)+f|0;j=24;break}case 10:{j=24;break}case 9:{f=(d[a+8>>0]|0)+f|0;j=26;break}case 8:{j=26;break}case 7:{b=((d[a+6>>0]|0)<<16)+h|0;j=28;break}case 6:{b=h;j=28;break}case 5:{b=(d[a+4>>0]|0)+h|0;j=30;break}case 4:{b=h;j=30;break}case 3:{g=((d[a+2>>0]|0)<<16)+g|0;j=32;break}case 2:{j=32;break}case 1:{g=(d[a>>0]|0)+g|0;b=h;break a}case 0:{j=f;return j|0}default:{b=h;break a}}if((j|0)==24){g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;b=((e[a+6>>1]|0)<<16|(e[a+4>>1]|0))+h|0;f=(e[a+8>>1]|0)+f|0;break}else if((j|0)==26){g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;b=((e[a+6>>1]|0)<<16|(e[a+4>>1]|0))+h|0;break}else if((j|0)==28){g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;b=(e[a+4>>1]|0)+b|0;break}else if((j|0)==30){g=((e[a+2>>1]|0)<<16|(e[a>>1]|0))+g|0;break}else if((j|0)==32){g=(e[a>>1]|0)+g|0;b=h;break}}else{if(b>>>0>12){g=i;h=i;f=i;do{h=(d[a+4>>0]|0)+h+((d[a+5>>0]|0)<<8)+((d[a+6>>0]|0)<<16)+((d[a+7>>0]|0)<<24)|0;f=(d[a+8>>0]|0)+f+((d[a+9>>0]|0)<<8)+((d[a+10>>0]|0)<<16)+((d[a+11>>0]|0)<<24)|0;g=(f<<4|f>>>28)^(d[a>>0]|0)+g+((d[a+1>>0]|0)<<8)+((d[a+2>>0]|0)<<16)+((d[a+3>>0]|0)<<24)-f;f=f+h|0;h=(g<<6|g>>>26)^h-g;g=g+f|0;f=(h<<8|h>>>24)^f-h;h=h+g|0;g=(f<<16|f>>>16)^g-f;f=f+h|0;h=(g<<19|g>>>13)^h-g;g=g+f|0;f=(h<<4|h>>>28)^f-h;h=h+g|0;b=b+-12|0;a=a+12|0}while(b>>>0>12)}else{g=i;h=i;f=i}switch(b|0){case 12:{f=((d[a+11>>0]|0)<<24)+f|0;j=37;break}case 11:{j=37;break}case 10:{j=38;break}case 9:{j=39;break}case 8:{j=40;break}case 7:{b=h;j=41;break}case 6:{b=h;j=42;break}case 5:{b=h;j=43;break}case 4:{b=h;j=44;break}case 3:{b=h;j=45;break}case 2:{b=h;j=46;break}case 1:{b=h;break}case 0:{j=f;return j|0}default:{b=h;break a}}if((j|0)==37){f=((d[a+10>>0]|0)<<16)+f|0;j=38}if((j|0)==38){f=((d[a+9>>0]|0)<<8)+f|0;j=39}if((j|0)==39){f=(d[a+8>>0]|0)+f|0;j=40}if((j|0)==40){b=((d[a+7>>0]|0)<<24)+h|0;j=41}if((j|0)==41){b=((d[a+6>>0]|0)<<16)+b|0;j=42}if((j|0)==42){b=((d[a+5>>0]|0)<<8)+b|0;j=43}if((j|0)==43){b=(d[a+4>>0]|0)+b|0;j=44}if((j|0)==44){g=((d[a+3>>0]|0)<<24)+g|0;j=45}if((j|0)==45){g=((d[a+2>>0]|0)<<16)+g|0;j=46}if((j|0)==46)g=((d[a+1>>0]|0)<<8)+g|0;g=(d[a>>0]|0)+g|0;break}else{if(b>>>0>12){g=i;h=i;f=i;do{h=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]|0)+f|0;g=(f<<4|f>>>28)^(c[a>>2]|0)+g-f;f=f+h|0;h=(g<<6|g>>>26)^h-g;g=g+f|0;f=(h<<8|h>>>24)^f-h;h=h+g|0;g=(f<<16|f>>>16)^g-f;f=f+h|0;h=(g<<19|g>>>13)^h-g;g=g+f|0;f=(h<<4|h>>>28)^f-h;h=h+g|0;b=b+-12|0;a=a+12|0}while(b>>>0>12)}else{g=i;h=i;f=i}do switch(b|0){case 12:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]|0)+f|0;break a}case 11:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]&16777215)+f|0;break a}case 10:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]&65535)+f|0;break a}case 9:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;f=(c[a+8>>2]&255)+f|0;break a}case 8:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]|0)+h|0;break a}case 7:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]&16777215)+h|0;break a}case 6:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]&65535)+h|0;break a}case 5:{g=(c[a>>2]|0)+g|0;b=(c[a+4>>2]&255)+h|0;break a}case 4:{g=(c[a>>2]|0)+g|0;b=h;break a}case 3:{g=(c[a>>2]&16777215)+g|0;b=h;break a}case 2:{g=(c[a>>2]&65535)+g|0;b=h;break a}case 1:{g=(c[a>>2]&255)+g|0;b=h;break a}case 0:{j=f;return j|0}default:{b=h;break a}}while(0)}while(0);i=(f^b)-(b<<14|b>>>18)|0;j=(i^g)-(i<<11|i>>>21)|0;h=(j^b)-(j<<25|j>>>7)|0;i=(h^i)-(h<<16|h>>>16)|0;j=(i^j)-(i<<4|i>>>28)|0;j=(j^h)-(j<<14|j>>>18)|0;j=(j^i)-(j<<24|j>>>8)|0;return j|0}function Cm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=np(b)|0;f=Bm(b,f,c[11305]|0)|0;e=(1<<c[a+8>>2])+-1&f;h=c[a+4>>2]|0;d=c[h+(e<<3)>>2]|0;e=h+(e<<3)+4|0;if((d|0)==(a+12|0)?(d|0)==(c[e>>2]|0):0){h=0;return h|0}while(1){if((c[d+16>>2]|0)==(f|0)?(dp(d+24|0,b)|0)==0:0)break;if((d|0)==(c[e>>2]|0)){d=0;g=9;break}d=c[d+4>>2]|0}if((g|0)==9)return d|0;if(!d){h=0;return h|0}h=c[d+20>>2]|0;return h|0}function Dm(b){b=b|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;if((i|0)>=(j|0))ba();f=g;e=g+8|0;if(c[11305]|0){i=g;return}h=a[45768]|0;a[45768]=1;if(h<<24>>24){do Ba()|0;while(!(c[11305]|0));i=g;return}if(!b){b=fp(42342,0,f)|0;if((b|0)!=-1?(h=(Wp(b,e,4)|0)==4,ep(b)|0,h):0)b=((d[e+1>>0]|0|(d[e>>0]|0)<<8)<<8|(d[e+2>>0]|0))<<8|(d[e+3>>0]|0);else{hb(f|0,0)|0;b=c[f+4>>2]^c[f>>2];b=b^(Dp()|0)}b=(b|0)==0?1:b}c[11305]=b;i=g;return}function Em(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)!=8){a=0;return a|0}a=Xp(28)|0;c[a+20>>2]=g;g=255-g|0;c[a+8>>2]=g;c[a+12>>2]=f;c[a+4>>2]=g-f;c[a>>2]=Fm(b&65535,d&255,e&255,f)|0;c[a+16>>2]=Xp(g)|0;c[a+24>>2]=Xp(f)|0;return a|0}function Fm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;if((i|0)>=(j|0))ba();s=t+32|0;r=t+24|0;m=t+16|0;n=t+8|0;o=t;p=Zp(1,156)|0;q=Xp(512)|0;k=Xp(256)|0;a[q>>0]=1;a[k>>0]=0;b=b&65535;g=1;h=1;do{l=g<<1&65534;g=(l>>>0>255?b:0)^l;a[q+h>>0]=g;if(h>>>0<256)a[k+g>>0]=h;h=h+1|0}while((h|0)!=512);g=k;c[p+16>>2]=q;c[p+20>>2]=g;c[p>>2]=255;c[p+8>>2]=f;c[p+4>>2]=255-f;a[p+12>>0]=d;a[p+13>>0]=e;k=Xp(f)|0;c[p+32>>2]=k;l=p+24|0;h=e&255;c[r>>2]=q;c[r+4>>2]=g;if(f|0){b=d&255;g=0;do{a[k+g>>0]=a[q+(((_(g+b|0,h)|0)>>>0)%255|0)>>0]|0;g=g+1|0}while((g|0)!=(f|0))};c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];Gm(m,s,f,k);r=m;s=c[r+4>>2]|0;f=l;c[f>>2]=c[r>>2];c[f+4>>2]=s;Hm(n,254);f=n;s=c[f+4>>2]|0;r=p+40|0;c[r>>2]=c[f>>2];c[r+4>>2]=s;Hm(o,254);r=o;s=c[r+4>>2]|0;f=p+48|0;c[f>>2]=c[r>>2];c[f+4>>2]=s;i=t;return p|0}function Gm(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=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;C=i;i=i+16|0;if((i|0)>=(j|0))ba();w=C;x=f+1|0;y=Xp(x)|0;z=y;A=Zp(x,1)|0;c[w>>2]=A;B=Zp(x,1)|0;c[w+8>>2]=B;a[A>>0]=a[g>>0]|0;a[A+1>>0]=1;c[w+4>>2]=1;if(f>>>0<=1){g=A;fq(y|0,g|0,x|0)|0;Yp(A);Yp(B);c[b>>2]=z;b=b+4|0;c[b>>2]=f;i=C;return}v=c[e>>2]|0;q=c[e+4>>2]|0;r=q+1|0;s=A;t=1;u=0;while(1){m=a[g+t>>0]|0;o=u;u=u&1^1;p=t;t=t+1|0;c[w+(u<<3)+4>>2]=t;e=c[w+(u<<3)>>2]|0;o=c[w+(o<<3)+4>>2]|0;eq(e|0,0,p+2|0)|0;n=o>>>0>t>>>0?t:o;k=q+(m&255)|0;if(!(m<<24>>24)){h=0;do h=h+1|0;while(h>>>0<=n>>>0)}else{m=0;do{l=e+m|0;h=a[s+m>>0]|0;if(!(h<<24>>24))h=0;else h=a[v+((d[q+(h&255)>>0]|0)+(d[k>>0]|0))>>0]|0;a[l>>0]=h^a[l>>0];m=m+1|0}while(m>>>0<=n>>>0)}k=o>>>0>p>>>0?p:o;m=0;do{h=m;m=m+1|0;l=e+m|0;h=a[s+h>>0]|0;if(!(h<<24>>24))h=0;else h=a[v+((d[q+(h&255)>>0]|0)+(d[r>>0]|0))>>0]|0;a[l>>0]=h^a[l>>0]}while(m>>>0<=k>>>0);if((t|0)==(f|0))break;else s=e}fq(y|0,e|0,x|0)|0;Yp(A);Yp(B);c[b>>2]=z;b=b+4|0;c[b>>2]=f;i=C;return}function Hm(a,b){a=a|0;b=b|0;c[a>>2]=Xp(b+1|0)|0;c[a+4>>2]=b;return}function Im(a){a=a|0;Jm(c[a>>2]|0);Yp(c[a+16>>2]|0);Yp(c[a+24>>2]|0);Yp(a);return}function Jm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;if((i|0)>=(j|0))ba();g=h;f=c[b+20>>2]|0;Yp(c[b+16>>2]|0);Yp(f);f=b+24|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Km(g);Yp(c[b+32>>2]|0);f=b+40|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Km(g);f=b+48|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Km(g);if(!(a[b+152>>0]|0)){Yp(b);i=h;return}Yp(c[b+56>>2]|0);Yp(c[b+60>>2]|0);d=b+64|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);d=b+72|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);d=b+80|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);d=b+88|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);Yp(c[b+96>>2]|0);Yp(c[b+100>>2]|0);Yp(c[b+104>>2]|0);d=b+112|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);d=b+120|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);d=b+128|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Km(g);d=b+8|0;e=b+36|0;if(c[d>>2]|0){f=0;do{Yp(c[(c[e>>2]|0)+(f<<2)>>2]|0);f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}Yp(c[e>>2]|0);d=b+108|0;e=0;do{Yp(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while((e|0)!=256);Yp(c[d>>2]|0);f=b+136|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Km(g);f=b+144|0;c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Km(g);Yp(b);i=h;return}function Km(a){a=a|0;Yp(c[a>>2]|0);return}function Lm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+4|0;f=a+16|0;Mm(c[a>>2]|0,b,c[e>>2]|0,c[f>>2]|0)|0;fq(d|0,(c[f>>2]|0)+(c[e>>2]|0)|0,c[a+12>>2]|0)|0;return}function Mm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();p=s+24|0;o=s+16|0;n=s+8|0;m=s;k=b+4|0;g=c[k>>2]|0;if(g>>>0<e>>>0){b=-1;i=s;return b|0}r=g-e|0;l=(e|0)==0;q=b+44|0;if(!l){g=b+40|0;h=0;do{a[(c[g>>2]|0)+((c[q>>2]|0)-(h+r))>>0]=a[d+h>>0]|0;h=h+1|0}while((h|0)!=(e|0))}h=b+40|0;eq((c[h>>2]|0)+(1-r+(c[q>>2]|0))|0,0,r|0)|0;eq(c[h>>2]|0,0,(c[q>>2]|0)+1-(c[k>>2]|0)|0)|0;g=b+16|0;d=b+24|0;k=b+48|0;c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[n>>2]=c[h>>2];c[n+4>>2]=c[h+4>>2];c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];Nm(m,n,o,p);if(!l){g=0;do{a[f+g>>0]=a[(c[h>>2]|0)+((c[q>>2]|0)-(g+r))>>0]|0;g=g+1|0}while((g|0)!=(e|0))}d=b+8|0;g=c[d>>2]|0;if(g|0){h=0;do{r=h;h=h+1|0;a[f+(r+e)>>0]=a[(c[k>>2]|0)+(g-h)>>0]|0;g=c[d>>2]|0}while(h>>>0<g>>>0)}b=c[b>>2]|0;i=s;return b|0}function Nm(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=c[e+4>>2]|0;if((c[g+4>>2]|0)>>>0<h>>>0)return;n=c[g>>2]|0;fq(n|0,c[e>>2]|0,h+1|0)|0;if(!h)return;l=c[b+4>>2]|0;m=c[f>>2]|0;j=c[f+4>>2]|0;k=(d[l+(d[m+j>>0]|0)>>0]|0)^255;i=c[b>>2]|0;while(1){if(h>>>0<j>>>0){g=11;break}g=a[n+h>>0]|0;if(g<<24>>24){b=h-j|0;g=k+(d[l+(g&255)>>0]|0)|0;g=(g>>>0>255&1)+g&255;f=0;do{e=a[m+f>>0]|0;if(e<<24>>24){o=n+(b+f)|0;a[o>>0]=a[i+((d[l+(e&255)>>0]|0)+g)>>0]^a[o>>0]}f=f+1|0}while(f>>>0<=j>>>0)}h=h+-1|0;if(!h){g=11;break}}if((g|0)==11)return}function Om(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;if((f|0)>0){h=b+20|0;g=b+24|0;i=0;do{a[(c[g>>2]|0)+i>>0]=(c[e+(i<<2)>>2]|0)-(c[h>>2]|0);i=i+1|0}while((i|0)!=(f|0))}else g=b+24|0;Pm(c[b>>2]|0,d,c[b+8>>2]|0,c[g>>2]|0,f,d)|0;return}function Pm(b,e,f,g,h,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;k=k|0;var 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;N=i;i=i+64|0;if((i|0)>=(j|0))ba();I=N+56|0;G=N+48|0;F=N+24|0;x=N+16|0;J=N;u=N+40|0;t=N+32|0;s=N+8|0;if(!h){k=Qm(b,e,f,k)|0;i=N;return k|0}n=c[b>>2]|0;if(n>>>0<f>>>0){k=-1;i=N;return k|0}L=b+8|0;M=c[L>>2]|0;if(M>>>0<h>>>0){k=-1;i=N;return k|0}l=f-M|0;p=n-f|0;if(!(a[b+152>>0]|0))Rm(b);if(f|0){m=b+64|0;o=0;do{K=o;o=o+1|0;a[(c[m>>2]|0)+K>>0]=a[e+(f-o)>>0]|0}while((o|0)!=(f|0))}if((n|0)!=(f|0)){m=b+64|0;n=0;do{a[(c[m>>2]|0)+(n+f)>>0]=0;n=n+1|0}while((n|0)!=(p|0))}m=p^255;K=b+104|0;n=0;do{a[(c[K>>2]|0)+n>>0]=(c[b>>2]|0)+m-(d[g+n>>0]|0);n=n+1|0}while((n|0)!=(h|0));w=b+16|0;E=b+13|0;o=c[K>>2]|0;B=b+96|0;p=c[B>>2]|0;n=c[w>>2]|0;C=b+20|0;e=c[C>>2]|0;g=d[E>>0]|0;q=e+1|0;r=0;do{m=a[n+(((_(d[e+(d[n+(d[o+r>>0]|0)>>0]|0)>>0]|0,g)|0)>>>0)%255|0)>>0]|0;if(!(m<<24>>24))m=0;else m=a[n+((d[q>>0]|0)+255-(d[e+(m&255)>>0]|0)&65535)>>0]|0;a[p+r>>0]=m;r=r+1|0}while((r|0)!=(h|0));q=b+88|0;D=c[B>>2]|0;H=c[w>>2]|0;m=c[C>>2]|0;g=b+92|0;n=c[g>>2]|0;c[F>>2]=c[q>>2];c[F+4>>2]=n;c[x>>2]=H;c[x+4>>2]=m;c[G>>2]=c[x>>2];c[G+4>>2]=c[x+4>>2];c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];Zm(s,G,h,D,I,b+136|0);D=s;m=c[D+4>>2]|0;H=q;c[H>>2]=c[D>>2];c[H+4>>2]=m;H=b+64|0;m=c[b+36>>2]|0;D=b+56|0;n=c[D>>2]|0;e=c[L>>2]|0;z=c[w>>2]|0;A=c[C>>2]|0;y=c[b+68>>2]|0;c[F>>2]=c[H>>2];c[F+4>>2]=y;c[x>>2]=z;c[x+4>>2]=A;eq(n|0,0,e|0)|0;if(e){o=1;p=0;do{A=c[m+(p<<2)>>2]|0;c[G>>2]=c[x>>2];c[G+4>>2]=c[x+4>>2];c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];A=Tm(G,I,A)|0;o=o&A<<24>>24==0;a[n+p>>0]=A;p=p+1|0}while((p|0)!=(e|0));if(!o){m=c[D>>2]|0;n=b+60|0;z=c[n>>2]|0;A=c[g>>2]|0;c[J>>2]=c[q>>2];c[J+4>>2]=A;A=(c[L>>2]|0)+-1|0;c[u+4>>2]=A;c[u>>2]=m;c[t+4>>2]=A;c[t>>2]=z;c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[F>>2]=c[J>>2];c[F+4>>2]=c[J+4>>2];c[G>>2]=c[u>>2];c[G+4>>2]=c[u+4>>2];c[I>>2]=c[t>>2];c[I+4>>2]=c[t+4>>2];Xm(x,F,G,I);z=c[L>>2]|0;A=Xp(z)|0;m=c[D>>2]|0;fq(A|0,m|0,z|0)|0;if(z>>>0>h>>>0?(a[m>>0]=a[(c[n>>2]|0)+h>>0]|0,v=h+1|0,v>>>0<(c[L>>2]|0)>>>0):0){m=v;do{a[(c[D>>2]|0)+(m-h)>>0]=a[(c[n>>2]|0)+m>>0]|0;m=m+1|0}while(m>>>0<(c[L>>2]|0)>>>0)}y=b+72|0;z=b+76|0;c[z>>2]=Um(b,h)|0;n=b+80|0;e=0;do{a[(c[n>>2]|0)+e>>0]=a[(c[C>>2]|0)+(d[(c[y>>2]|0)+e>>0]|0)>>0]|0;e=e+1|0;m=c[z>>2]|0}while(e>>>0<=m>>>0);c[b+84>>2]=m;n=c[B>>2]|0;e=c[b+108>>2]|0;o=b+80|0;m=o;o=o+4|0;o=d[o>>0]|d[o+1>>0]<<8|d[o+2>>0]<<16|d[o+3>>0]<<24;p=F;c[p>>2]=d[m>>0]|d[m+1>>0]<<8|d[m+2>>0]<<16|d[m+3>>0]<<24;c[p+4>>2]=o;p=w;m=p;p=p+4|0;p=d[p>>0]|d[p+1>>0]<<8|d[p+2>>0]<<16|d[p+3>>0]<<24;g=x;c[g>>2]=d[m>>0]|d[m+1>>0]<<8|d[m+2>>0]<<16|d[m+3>>0]<<24;c[g+4>>2]=p;g=F+4|0;eq(n+h|0,0,o|0)|0;o=0;p=0;m=h;while(1){v=c[e+(p<<2)>>2]|0;c[G>>2]=c[x>>2];c[G+4>>2]=c[x+4>>2];c[I>>2]=c[F>>2];c[I+4>>2]=c[F+4>>2];if(!((Vm(G,I,v)|0)<<24>>24)){a[n+m>>0]=o;m=m+1|0}p=p+1|0;if((p|0)==256)break;else o=o+1<<16>>16}if((m|0)!=((c[g>>2]|0)+h|0)){k=-1;i=N;return k|0}Hm(J,(c[z>>2]|0)+h|0);c[x>>2]=c[w>>2];c[x+4>>2]=c[w+4>>2];c[F>>2]=c[q>>2];c[F+4>>2]=c[q+4>>2];c[G>>2]=c[y>>2];c[G+4>>2]=c[y+4>>2];c[I>>2]=c[J>>2];c[I+4>>2]=c[J+4>>2];Xm(x,F,G,I);x=y;w=c[x>>2]|0;x=c[x+4>>2]|0;t=J;v=c[t+4>>2]|0;s=y;c[s>>2]=c[t>>2];c[s+4>>2]=v;s=c[B>>2]|0;t=c[K>>2]|0;u=b+16|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;q=d[C>>0]|d[C+1>>0]<<8|d[C+2>>0]<<16|d[C+3>>0]<<24;if(v|0){r=q+1|0;p=d[E>>0]|0;g=0;do{m=a[s+g>>0]|0;a:do if(m<<24>>24){n=a[u+((d[r>>0]|0)+255-(d[q+(m&255)>>0]|0)&65535)>>0]|0;m=0;o=0;while(1){e=o+1<<16>>16;if((a[u+(((_(d[q+(o&255)>>0]|0,p)|0)>>>0)%255|0)>>0]|0)==n<<24>>24)break;if((e&65535)<256){m=e&65535;o=e}else break a}a[t+g>>0]=a[q+m>>0]|0}while(0);g=g+1|0}while((g|0)!=(v|0))}fq(c[D>>2]|0,A|0,c[L>>2]|0)|0;Wm(b);if(c[z>>2]|0){m=b+100|0;n=0;do{b=(c[H>>2]|0)+(d[(c[K>>2]|0)+n>>0]|0)|0;a[b>>0]=a[(c[m>>2]|0)+n>>0]^a[b>>0];n=n+1|0}while(n>>>0<(c[z>>2]|0)>>>0)}b=y;c[b>>2]=w;c[b+4>>2]=x;if((M|0)!=(f|0)){m=0;do{M=m;m=m+1|0;a[k+M>>0]=a[(c[H>>2]|0)+(f-m)>>0]|0}while((m|0)!=(l|0))}k=l;i=N;return k|0}}if((M|0)==(f|0)){k=l;i=N;return k|0}m=0;do{M=m;m=m+1|0;a[k+M>>0]=a[(c[H>>2]|0)+(f-m)>>0]|0}while((m|0)!=(l|0));i=N;return l|0}function Qm(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=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;A=i;i=i+32|0;if((i|0)>=(j|0))ba();t=A+24|0;u=A+16|0;r=A+8|0;s=A;m=c[b>>2]|0;if(m>>>0<f>>>0){g=-1;i=A;return g|0}o=b+8|0;z=c[o>>2]|0;h=f-z|0;if(!(a[b+152>>0]|0))Rm(b);if(f|0){k=b+64|0;l=0;do{y=l;l=l+1|0;a[(c[k>>2]|0)+y>>0]=a[e+(f-l)>>0]|0}while((l|0)!=(f|0))}if((m|0)!=(f|0)){l=b+64|0;k=m-f|0;e=0;do{a[(c[l>>2]|0)+(e+f)>>0]=0;e=e+1|0}while((e|0)!=(k|0))}q=b+16|0;y=b+64|0;m=c[b+36>>2]|0;n=c[b+56>>2]|0;k=c[o>>2]|0;v=c[q>>2]|0;w=b+20|0;x=c[w>>2]|0;p=c[b+68>>2]|0;c[r>>2]=c[y>>2];c[r+4>>2]=p;c[s>>2]=v;c[s+4>>2]=x;eq(n|0,0,k|0)|0;if(k){e=1;l=0;do{x=c[m+(l<<2)>>2]|0;c[u>>2]=c[s>>2];c[u+4>>2]=c[s+4>>2];c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];x=Tm(u,t,x)|0;e=e&x<<24>>24==0;a[n+l>>0]=x;l=l+1|0}while((l|0)!=(k|0));if(!e){x=b+76|0;c[x>>2]=Um(b,0)|0;e=b+72|0;l=b+80|0;m=0;do{a[(c[l>>2]|0)+m>>0]=a[(c[w>>2]|0)+(d[(c[e>>2]|0)+m>>0]|0)>>0]|0;m=m+1|0;k=c[x>>2]|0}while(m>>>0<=k>>>0);c[b+84>>2]=k;p=b+96|0;m=c[p>>2]|0;n=c[b+108>>2]|0;e=b+80|0;k=e;e=e+4|0;e=d[e>>0]|d[e+1>>0]<<8|d[e+2>>0]<<16|d[e+3>>0]<<24;l=r;c[l>>2]=d[k>>0]|d[k+1>>0]<<8|d[k+2>>0]<<16|d[k+3>>0]<<24;c[l+4>>2]=e;l=q;k=l;l=l+4|0;l=d[l>>0]|d[l+1>>0]<<8|d[l+2>>0]<<16|d[l+3>>0]<<24;o=s;c[o>>2]=d[k>>0]|d[k+1>>0]<<8|d[k+2>>0]<<16|d[k+3>>0]<<24;c[o+4>>2]=l;o=r+4|0;eq(m|0,0,e|0)|0;e=0;l=0;k=0;while(1){v=c[n+(l<<2)>>2]|0;c[u>>2]=c[s>>2];c[u+4>>2]=c[s+4>>2];c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];if(!((Vm(u,t,v)|0)<<24>>24)){a[m+k>>0]=e;k=k+1|0}l=l+1|0;if((l|0)==256)break;else e=e+1<<16>>16}if((k|0)!=(c[o>>2]|0)){g=-1;i=A;return g|0}u=c[p>>2]|0;v=b+104|0;r=c[v>>2]|0;s=c[x>>2]|0;t=b+16|0;t=d[t>>0]|d[t+1>>0]<<8|d[t+2>>0]<<16|d[t+3>>0]<<24;n=d[w>>0]|d[w+1>>0]<<8|d[w+2>>0]<<16|d[w+3>>0]<<24;if(s|0){o=n+1|0;p=d[b+13>>0]|0;q=0;do{k=a[u+q>>0]|0;a:do if(k<<24>>24){e=a[t+((d[o>>0]|0)+255-(d[n+(k&255)>>0]|0)&65535)>>0]|0;k=0;m=0;while(1){l=m+1<<16>>16;if((a[t+(((_(d[n+(m&255)>>0]|0,p)|0)>>>0)%255|0)>>0]|0)==e<<24>>24)break;if((l&65535)<256){k=l&65535;m=l}else break a}a[r+q>>0]=a[n+k>>0]|0}while(0);q=q+1|0}while((q|0)!=(s|0))}Wm(b);if(c[x>>2]|0){k=b+100|0;e=0;do{b=(c[y>>2]|0)+(d[(c[v>>2]|0)+e>>0]|0)|0;a[b>>0]=a[(c[k>>2]|0)+e>>0]^a[b>>0];e=e+1|0}while(e>>>0<(c[x>>2]|0)>>>0)}if((z|0)==(f|0)){g=h;i=A;return g|0}k=0;do{z=k;k=k+1|0;a[g+z>>0]=a[(c[y>>2]|0)+(f-k)>>0]|0}while((k|0)!=(h|0));i=A;return h|0}}if((z|0)==(f|0)){g=h;i=A;return g|0}k=0;do{z=k;k=k+1|0;a[g+z>>0]=a[(c[y>>2]|0)+(f-k)>>0]|0}while((k|0)!=(h|0));i=A;return h|0}function Rm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=i;i=i+80|0;if((i|0)>=(j|0))ba();l=p+72|0;s=p+64|0;r=p+56|0;q=p+48|0;e=p+40|0;g=p+32|0;h=p+24|0;f=p+16|0;n=p+8|0;o=p;a[b+152>>0]=1;m=b+8|0;d=c[m>>2]|0;c[b+56>>2]=Zp(d,1)|0;c[b+60>>2]=Zp(d<<1,1)|0;Hm(s,(c[b>>2]|0)+-1|0);d=c[s+4>>2]|0;k=b+64|0;c[k>>2]=c[s>>2];c[k+4>>2]=d;Hm(r,c[m>>2]|0);k=c[r+4>>2]|0;d=b+72|0;c[d>>2]=c[r>>2];c[d+4>>2]=k;Hm(q,c[m>>2]|0);d=c[q+4>>2]|0;k=b+80|0;c[k>>2]=c[q>>2];c[k+4>>2]=d;Hm(e,c[m>>2]|0);k=c[e+4>>2]|0;d=b+88|0;c[d>>2]=c[e>>2];c[d+4>>2]=k;d=c[m>>2]|0;c[b+96>>2]=Zp(d<<1,1)|0;c[b+100>>2]=Xp(d)|0;c[b+104>>2]=Xp(d)|0;Hm(g,d);d=c[g+4>>2]|0;k=b+112|0;c[k>>2]=c[g>>2];c[k+4>>2]=d;Hm(h,(c[m>>2]|0)+-1|0);k=c[h+4>>2]|0;d=b+120|0;c[d>>2]=c[h>>2];c[d+4>>2]=k;Hm(f,(c[m>>2]|0)+-1|0);d=c[f+4>>2]|0;k=b+128|0;c[k>>2]=c[f>>2];c[k+4>>2]=d;k=c[m>>2]|0;d=Xp(k<<2)|0;f=b+36|0;c[f>>2]=d;a:do if(!k){k=b+16|0;d=0}else{g=b+16|0;h=b+32|0;e=0;while(1){s=c[b>>2]|0;c[d+(e<<2)>>2]=Xp(s)|0;r=a[(c[h>>2]|0)+e>>0]|0;d=c[(c[f>>2]|0)+(e<<2)>>2]|0;c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];Sm(l,r,s+-1|0,d);e=e+1|0;d=c[m>>2]|0;if(e>>>0>=d>>>0){k=g;break a}d=c[f>>2]|0}}while(0);f=Xp(1024)|0;h=b+108|0;c[h>>2]=f;g=0;e=0;while(1){c[f+(e<<2)>>2]=Xp(d)|0;s=c[(c[h>>2]|0)+(e<<2)>>2]|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];Sm(l,g&255,d+-1|0,s);e=e+1|0;if((e|0)==256)break;d=c[m>>2]|0;f=c[h>>2]|0;g=g+1<<16>>16}Hm(n,c[m>>2]|0);s=n;r=c[s+4>>2]|0;q=b+136|0;c[q>>2]=c[s>>2];c[q+4>>2]=r;Hm(o,c[m>>2]|0);q=o;r=c[q+4>>2]|0;s=b+144|0;c[s>>2]=c[q>>2];c[s+4>>2]=r;i=p;return}function Sm(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0;b=c[b+4>>2]|0;h=d[b+(e&255)>>0]|0;if(!(e<<24>>24)){b=0;do{a[g+b>>0]=0;b=b+1|0}while(b>>>0<=f>>>0);return}e=0;b=a[b+1>>0]|0;while(1){a[g+e>>0]=b;b=(b&255)+h|0;e=e+1|0;if(e>>>0>f>>>0)break;else b=(b>>>0>255&1)+b&255}return}function Tm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;if(!(a[f>>0]|0)){f=a[c[e>>2]>>0]|0;return f|0}k=c[e>>2]|0;i=c[e+4>>2]|0;j=c[b+4>>2]|0;g=c[b>>2]|0;h=0;e=0;do{b=a[k+h>>0]|0;if(b<<24>>24)e=a[g+((d[f+h>>0]|0)+(d[j+(b&255)>>0]|0))>>0]^e;h=h+1|0}while(h>>>0<=i>>>0);return e|0}function Um(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;v=b+72|0;z=b+8|0;eq(c[v>>2]|0,0,(c[z>>2]|0)+1|0)|0;a[c[v>>2]>>0]=1;A=b+76|0;c[A>>2]=0;B=b+112|0;fq(c[B>>2]|0,c[v>>2]|0,(c[z>>2]|0)+1|0)|0;f=c[A>>2]|0;w=b+116|0;c[w>>2]=f;if(f>>>0>=((c[z>>2]|0)-e|0)>>>0){e=f;return e|0}y=b+56|0;s=b+16|0;r=b+20|0;b=f;h=f;p=1;q=f;o=1;g=0;while(1){m=c[y>>2]|0;f=a[m+q>>0]|0;if(!g)l=f;else{n=c[v>>2]|0;l=c[r>>2]|0;k=1;do{i=a[n+k>>0]|0;j=a[m+(q-k)>>0]|0;if(i<<24>>24==0|j<<24>>24==0)i=0;else i=a[(c[s>>2]|0)+((d[l+(j&255)>>0]|0)+(d[l+(i&255)>>0]|0))>>0]|0;f=i^f;k=k+1|0}while(k>>>0<=g>>>0);l=f}do if(!(l<<24>>24)){i=p+1|0;f=o}else{b=(h|0)>-1;if(g<<1>>>0>q>>>0){a:do if(b){k=l&255;l=o&255;if(!(o<<24>>24)){b=h;while(1)if((b|0)>0)b=b+-1|0;else break a}while(1){i=(c[v>>2]|0)+(h+p)|0;j=a[i>>0]|0;f=a[(c[B>>2]|0)+h>>0]|0;b=c[r>>2]|0;if(f<<24>>24!=0?(t=c[s>>2]|0,x=a[t+((d[b+k>>0]|0)+(d[b+(f&255)>>0]|0))>>0]|0,x<<24>>24!=0):0)b=a[t+((d[b+(x&255)>>0]|0)+255-(d[b+l>>0]|0)&65535)>>0]|0;else b=0;a[i>>0]=b^j;if((h|0)>0)h=h+-1|0;else break}}while(0);h=c[w>>2]|0;i=h+p|0;b=c[A>>2]|0;b=i>>>0>b>>>0?i:b;c[A>>2]=b;i=p+1|0;f=o;break}b:do if(b){j=l&255;k=o&255;if(!(o<<24>>24)){b=h;while(1){a[(c[B>>2]|0)+(b+p)>>0]=0;if((b|0)>0)b=b+-1|0;else break b}}while(1){i=c[B>>2]|0;f=a[i+h>>0]|0;b=c[r>>2]|0;if(f<<24>>24!=0?(u=c[s>>2]|0,C=a[u+((d[b+j>>0]|0)+(d[b+(f&255)>>0]|0))>>0]|0,C<<24>>24!=0):0)b=a[u+((d[b+(C&255)>>0]|0)+255-(d[b+k>>0]|0)&65535)>>0]|0;else b=0;a[i+(h+p)>>0]=b;if((h|0)>0)h=h+-1|0;else break}}while(0);b=p+-1|0;if((b|0)>-1){do{a[(c[B>>2]|0)+b>>0]=0;b=b+-1|0}while((b|0)>-1);f=0}else f=0;do{o=(c[v>>2]|0)+f|0;b=a[o>>0]|0;a[o>>0]=a[(c[B>>2]|0)+f>>0]^b;a[(c[B>>2]|0)+f>>0]=b;f=f+1|0;b=(c[w>>2]|0)+p|0}while(f>>>0<=b>>>0);h=c[A>>2]|0;c[A>>2]=b;c[w>>2]=h;i=1;f=l;g=q+1-g|0}while(0);q=q+1|0;if(q>>>0>=((c[z>>2]|0)-e|0)>>>0)break;else{p=i;o=f}}return b|0}function Vm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;if(!(a[f>>0]|0)){e=a[c[e>>2]>>0]|0;if(!(e<<24>>24)){f=0;return f|0}f=a[(c[b>>2]|0)+(e&255)>>0]|0;return f|0}j=c[e>>2]|0;i=c[e+4>>2]|0;g=c[b>>2]|0;h=0;e=0;do{b=a[j+h>>0]|0;if(b<<24>>24)e=a[g+((d[f+h>>0]|0)+(b&255))>>0]^e;h=h+1|0}while(h>>>0<=i>>>0);return e|0}function Wm(b){b=b|0;var e=0,f=0,g=0,h=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;x=i;i=i+64|0;if((i|0)>=(j|0))ba();o=x+56|0;n=x+48|0;e=x+40|0;r=x+32|0;s=x+24|0;u=x+16|0;t=x+8|0;m=x;g=(c[b+8>>2]|0)+-1|0;k=c[b+56>>2]|0;w=b+120|0;eq(c[w>>2]|0,0,(c[b+124>>2]|0)+1|0)|0;q=b+16|0;v=b+72|0;f=w;y=f;f=f+4|0;f=d[f>>0]|d[f+1>>0]<<8|d[f+2>>0]<<16|d[f+3>>0]<<24;h=s;c[h>>2]=d[y>>0]|d[y+1>>0]<<8|d[y+2>>0]<<16|d[y+3>>0]<<24;c[h+4>>2]=f;c[u>>2]=k;c[u+4>>2]=g;g=v;k=g;g=g+4|0;g=d[g>>0]|d[g+1>>0]<<8|d[g+2>>0]<<16|d[g+3>>0]<<24;h=t;c[h>>2]=d[k>>0]|d[k+1>>0]<<8|d[k+2>>0]<<16|d[k+3>>0]<<24;c[h+4>>2]=g;h=q;g=h;h=h+4|0;h=d[h>>0]|d[h+1>>0]<<8|d[h+2>>0]<<16|d[h+3>>0]<<24;k=m;c[k>>2]=d[g>>0]|d[g+1>>0]<<8|d[g+2>>0]<<16|d[g+3>>0]<<24;c[k+4>>2]=h;c[r>>2]=c[m>>2];c[r+4>>2]=c[m+4>>2];c[e>>2]=c[t>>2];c[e+4>>2]=c[t+4>>2];c[n>>2]=c[u>>2];c[n+4>>2]=c[u+4>>2];c[o>>2]=c[s>>2];c[o+4>>2]=c[s+4>>2];Xm(r,e,n,o);r=b+76|0;s=b+128|0;c[b+132>>2]=(c[r>>2]|0)+-1;c[e>>2]=c[q>>2];c[e+4>>2]=c[q+4>>2];c[n>>2]=c[v>>2];c[n+4>>2]=c[v+4>>2];c[o>>2]=c[s>>2];c[o+4>>2]=c[s+4>>2];Ym(e,n,o);e=c[r>>2]|0;if(!e){i=x;return}t=b+96|0;u=b+12|0;m=b+20|0;v=b+108|0;k=b+100|0;b=e;h=0;do{e=a[(c[t>>2]|0)+h>>0]|0;if(e<<24>>24){f=e&255;e=(_(d[(c[m>>2]|0)+f>>0]|0,(d[u>>0]|0)+-1|0)|0)%255|0;e=a[(c[q>>2]|0)+((e|0)<0?e+255|0:e)>>0]|0;f=c[(c[v>>2]|0)+(f<<2)>>2]|0;c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];c[o>>2]=c[w>>2];c[o+4>>2]=c[w+4>>2];f=Tm(n,o,f)|0;g=c[(c[v>>2]|0)+((d[(c[t>>2]|0)+h>>0]|0)<<2)>>2]|0;c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];c[o>>2]=c[s>>2];c[o+4>>2]=c[s+4>>2];g=Tm(n,o,g)|0;b=c[m>>2]|0;if(!(f<<24>>24==0|g<<24>>24==0)?(l=c[q>>2]|0,p=a[l+((d[b+(f&255)>>0]|0)+255-(d[b+(g&255)>>0]|0)&65535)>>0]|0,!(e<<24>>24==0|p<<24>>24==0)):0)b=a[l+((d[b+(p&255)>>0]|0)+(d[b+(e&255)>>0]|0))>>0]|0;else b=0;a[(c[k>>2]|0)+h>>0]=b;b=c[r>>2]|0}h=h+1|0}while(h>>>0<b>>>0);i=x;return}function Xm(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=c[g>>2]|0;o=c[g+4>>2]|0;eq(r|0,0,o+1|0)|0;p=c[e+4>>2]|0;q=c[f+4>>2]|0;n=c[e>>2]|0;l=c[f>>2]|0;m=c[b+4>>2]|0;i=c[b>>2]|0;j=0;do{if(o>>>0>=j>>>0){f=o-j|0;f=q>>>0>f>>>0?f:q;b=n+j|0;k=0;do{h=r+(k+j)|0;g=a[b>>0]|0;e=a[l+k>>0]|0;if(g<<24>>24==0|e<<24>>24==0)g=0;else g=a[i+((d[m+(e&255)>>0]|0)+(d[m+(g&255)>>0]|0))>>0]|0;a[h>>0]=g^a[h>>0];k=k+1|0}while(k>>>0<=f>>>0)}j=j+1|0}while(j>>>0<=p>>>0);return}function Ym(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[e>>2]|0;f=c[e+4>>2]|0;eq(g|0,0,f+1|0)|0;b=c[d>>2]|0;e=0;do{d=e;e=e+1|0;a[g+d>>0]=e&1|0?a[b+e>>0]|0:0}while(e>>>0<=f>>>0);return}function Zm(b,e,f,g,h,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;k=k|0;var 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;y=i;i=i+16|0;if((i|0)>=(j|0))ba();x=y;u=k;w=c[u>>2]|0;u=c[u+4>>2]|0;t=x;c[t>>2]=w;c[t+4>>2]=u;t=k+8|0;u=c[t+4>>2]|0;v=x+8|0;c[v>>2]=c[t>>2];c[v+4>>2]=u;a[w+1>>0]=1;a[w>>0]=a[g>>0]|0;c[x+4>>2]=1;if(f>>>0<=1){x=c[x>>2]|0;w=c[h>>2]|0;g=f+1|0;fq(w|0,x|0,g|0)|0;g=h+4|0;c[g>>2]=f;f=h;g=f;g=c[g>>2]|0;f=f+4|0;f=c[f>>2]|0;h=b;b=h;c[b>>2]=g;h=h+4|0;c[h>>2]=f;i=y;return}w=c[e>>2]|0;r=c[e+4>>2]|0;s=r+1|0;t=c[x>>2]|0;u=1;v=0;while(1){n=a[g+u>>0]|0;p=v;v=v&1^1;q=u;u=u+1|0;c[x+(v<<3)+4>>2]=u;k=c[x+(v<<3)>>2]|0;p=c[x+(p<<3)+4>>2]|0;eq(k|0,0,q+2|0)|0;o=p>>>0>u>>>0?u:p;l=r+(n&255)|0;if(!(n<<24>>24)){e=0;do e=e+1|0;while(e>>>0<=o>>>0)}else{n=0;do{m=k+n|0;e=a[t+n>>0]|0;if(!(e<<24>>24))e=0;else e=a[w+((d[r+(e&255)>>0]|0)+(d[l>>0]|0))>>0]|0;a[m>>0]=e^a[m>>0];n=n+1|0}while(n>>>0<=o>>>0)}l=p>>>0>q>>>0?q:p;n=0;do{e=n;n=n+1|0;m=k+n|0;e=a[t+e>>0]|0;if(!(e<<24>>24))e=0;else e=a[w+((d[r+(e&255)>>0]|0)+(d[s>>0]|0))>>0]|0;a[m>>0]=e^a[m>>0]}while(n>>>0<=l>>>0);if((u|0)==(f|0))break;else t=k}x=c[h>>2]|0;g=f+1|0;fq(x|0,k|0,g|0)|0;g=h+4|0;c[g>>2]=f;f=h;g=f;g=c[g>>2]|0;f=f+4|0;f=c[f>>2]|0;h=b;b=h;c[b>>2]=g;h=h+4|0;c[h>>2]=f;i=y;return}function _m(a){a=a|0;var b=0,d=0;b=Xp(28)|0;d=((a&7|0)!=0&1)+(a>>>3)|0;c[b+4>>2]=2;c[b+8>>2]=7;a=Xp(d)|0;c[b+12>>2]=a;c[b+16>>2]=d;c[b>>2]=$m(2,7,10340)|0;c[b+20>>2]=a;c[b+24>>2]=a;return b|0}function $m(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Xp(68)|0;if(!(b>>>0<2|d>>>0>32)?(c[f+8>>2]=d,c[f+4>>2]=b,g=1<<d,c[f+12>>2]=g,g=Xp(g<<2)|0,an(b,d,e,g),c[f>>2]=g,c[f+16>>2]=bn(0,0)|0,c[f+20>>2]=cn(0,0)|0,a[f+24>>0]=0,f|0):0){g=f;return g|0}Yp(f);g=0;return g|0}function an(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=1<<b;if(!a){eq(f|0,0,(i>>>0>1?i:1)<<2|0)|0;return}else j=0;do{g=0;h=1;b=0;while(1){k=((eb((e[d+(g<<1)>>1]|0)&j|0)|0)&1|0)!=0;b=(k?h:0)|b;g=g+1|0;if((g|0)==(a|0))break;else h=h<<1}c[f+(j<<2)>>2]=b;j=j+1|0}while(j>>>0<i>>>0);return}function bn(a,b){a=a|0;b=b|0;var d=0;d=Zp(1,20)|0;if(!a)return d|0;c[d+8>>2]=a;c[d+16>>2]=b;return d|0}function cn(b,d){b=b|0;d=d|0;var e=0,f=0;e=Zp(1,20)|0;if(!(a[45769]|0)){f=0;do{a[45770+f>>0]=f<<7|f>>>7|f>>>5&2|f>>>3&4|f>>>1&8|f<<1&16|f<<3&32|f<<5&64;f=f+1|0}while((f|0)!=256);a[45769]=1}if(!b)return e|0;c[e+16>>2]=b;c[e+8>>2]=d;c[e+12>>2]=8;a[e>>0]=a[b>>0]|0;return e|0}function dn(a){a=a|0;Yp(c[a+12>>2]|0);en(c[a>>2]|0);Yp(a);return}function en(a){a=a|0;fn(a);Yp(a);return}function fn(b){b=b|0;var d=0,e=0,f=0;e=i;i=i+32|0;if((i|0)>=(j|0))ba();d=e;Yp(c[b>>2]|0);gn(c[b+16>>2]|0);hn(c[b+20>>2]|0);if(!(a[b+24>>0]|0)){i=e;return}f=b+32|0;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];c[d+20>>2]=c[f+20>>2];jn(d);kn(c[b+60>>2]|0);ln(c[b+64>>2]|0);Yp(c[b+28>>2]|0);i=e;return}function gn(a){a=a|0;Yp(a);return}function hn(a){a=a|0;Yp(a);return}function jn(a){a=a|0;Yp(c[a>>2]|0);Yp(c[a+4>>2]|0);Yp(c[a+20>>2]|0);return}function kn(a){a=a|0;var b=0,d=0,e=0;b=a+8|0;d=a+20|0;if(c[b>>2]|0){e=0;do{Yp(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while(e>>>0<(c[b>>2]|0)>>>0)}Yp(c[d>>2]|0);Yp(c[a+32>>2]|0);Yp(a);return}function ln(a){a=a|0;Yp(c[a+4>>2]|0);Yp(c[a+8>>2]|0);Yp(a);return}function mn(a,b){a=a|0;b=b|0;b=c[a+12>>2]|0;c[a+20>>2]=b;c[a+24>>2]=b;return 0}function nn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+24|0;i=c[e>>2]|0;g=(c[a+12>>2]|0)+(c[a+16>>2]|0)-i<<3;f=d+1-(c[a+8>>2]|0)|0;h=g>>>0<f>>>0;on(c[a>>2]|0,b,_((h?g-f|0:0)+d|0,c[a+4>>2]|0)|0,i)|0;c[e>>2]=(c[e>>2]|0)+((h?g:f)>>>3);return 0}function on(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((d>>>0)%((c[a+4>>2]|0)>>>0)|0|0){d=0;return d|0}d=pn(a,d,((d&7|0)!=0&1)+(d>>>3)|0,e,b)|0;return d|0}function pn(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;m=i;i=i+32|0;if((i|0)>=(j|0))ba();h=m;k=b+24|0;l=b+4|0;if(!(a[k>>0]|0)){p=c[l>>2]|0;o=b+8|0;q=c[o>>2]|0;a[k>>0]=1;c[b+28>>2]=Zp(1<<p,2)|0;n=b+32|0;qn(h,p,q,c[b>>2]|0);c[n>>2]=c[h>>2];c[n+4>>2]=c[h+4>>2];c[n+8>>2]=c[h+8>>2];c[n+12>>2]=c[h+12>>2];c[n+16>>2]=c[h+16>>2];c[n+20>>2]=c[h+20>>2];c[b+56>>2]=0;n=b+12|0;k=b+60|0;c[k>>2]=rn(q*5|0,q*15|0,65535/((p*255|0)>>>0)|0,(c[n>>2]|0)>>>1,1<<(c[o>>2]|0)+-1)|0;h=b+64|0;c[h>>2]=sn(c[n>>2]|0)|0}else{h=b+64|0;k=b+60|0}p=(d>>>0)/((c[l>>2]|0)>>>0)|0;q=b+16|0;tn(c[q>>2]|0,f,e);un(c[h>>2]|0);vn(c[k>>2]|0);wn(b,p,g);An(b,p,g);Hn(b,p,g);In(c[k>>2]|0,c[q>>2]|0);i=m;return e|0}function qn(a,b,d,e){a=a|0;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;i=1<<d+-1;k=Xp(i<<2)|0;m=1<<(b<<1);l=Zp(m,4)|0;m=Zp(m,4)|0;j=0;d=1;do{g=j<<1;g=c[e+((g|1)<<2)>>2]<<b|c[e+(g<<2)>>2];h=m+(g<<2)|0;f=c[h>>2]|0;if(!f){c[h>>2]=d;c[l+(d<<2)>>2]=g;f=d;d=d+1|0}c[k+(j<<2)>>2]=f;j=j+1|0}while(j>>>0<i>>>0);e=Zp(d,4)|0;Yp(m);c[a>>2]=k;c[a+4>>2]=l;c[a+8>>2]=(1<<b)+-1;c[a+12>>2]=b;c[a+16>>2]=d;c[a+20>>2]=e;return}function rn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=Zp(1,44)|0;c[g>>2]=a;c[g+4>>2]=b;a=b+a|0;c[g+8>>2]=a;c[g+12>>2]=e;c[g+16>>2]=f;b=Xp(a<<2)|0;c[g+20>>2]=b;if(!a)a=0;else{f=0;do{c[b+(f<<2)>>2]=Zp(e,1)|0;f=f+1|0}while(f>>>0<a>>>0)}c[g+32>>2]=Xp(a)|0;c[g+36>>2]=d;return g|0}function sn(a){a=a|0;var b=0,d=0;b=Zp(1,24)|0;c[b+12>>2]=a;d=Zp(2,a)|0;c[b+4>>2]=d;a=Zp(2,a)|0;c[b+8>>2]=a;c[b+16>>2]=d;c[b+20>>2]=a;return b|0}function tn(b,d,e){b=b|0;d=d|0;e=e|0;c[b+8>>2]=d;c[b+16>>2]=e;a[b>>0]=0;c[b+4>>2]=0;c[b+12>>2]=0;return}function un(a){a=a|0;var b=0,d=0,e=0;d=a+4|0;e=a+12|0;eq(c[d>>2]|0,0,c[e>>2]<<1|0)|0;b=a+8|0;eq(c[b>>2]|0,0,c[e>>2]<<1|0)|0;c[a>>2]=0;c[a+16>>2]=c[d>>2];c[a+20>>2]=c[b>>2];return}function vn(a){a=a|0;c[a+28>>2]=0;c[a+24>>2]=0;return}function wn(a,f,g){a=a|0;f=f|0;g=g|0;var 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;t=a+8|0;if(!((f|0)!=0&(c[t>>2]|0)!=1))return;u=(g|0)!=0;v=a+64|0;w=a+56|0;x=a+4|0;y=a+20|0;z=0;h=0;do{if(!u)h=(xn(c[y>>2]|0,c[x>>2]|0)|0)&255;i=c[v>>2]|0;q=c[i+16>>2]|0;r=c[i+20>>2]|0;p=z;z=z+1|0;s=1<<z;if(u){o=0;do{n=o>>>1;i=c[(c[a>>2]|0)+(o<<2)>>2]|0;l=c[x>>2]|0;m=g+(_(l,p)|0)|0;if(!(c[w>>2]|0))if(!l)i=0;else{j=i;i=0;k=0;while(1){A=(d[m+k>>0]|0)-(0-(j&1)&255)|0;i=((A|0)<0?0-A|0:A)+(i&65535)|0;k=k+1|0;if((k|0)==(l|0))break;else j=j>>>1}i=i&65535}else i=yn(i,m,l)|0;b[r+(o<<1)>>1]=(e[q+(n<<1)>>1]|0)+(i&65535);o=o+1|0}while(o>>>0<s>>>0);i=c[v>>2]|0}else{j=c[a>>2]|0;k=0;do{A=eb(c[j+(k<<2)>>2]^h|0)|0;b[r+(k<<1)>>1]=(e[q+(k>>>1<<1)>>1]|0)+A;k=k+1|0}while(k>>>0<s>>>0)}zn(i)}while(z>>>0<f>>>0?z>>>0<((c[t>>2]|0)+-1|0)>>>0:0);return}function xn(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=b+12|0;g=c[k>>2]|0;j=a[b>>0]|0;if(g>>>0<e>>>0){f=b+4|0;i=(c[f>>2]|0)+1|0;c[f>>2]=i;i=a[(c[b+16>>2]|0)+i>>0]|0;a[b>>0]=i;b=e-g|0;c[k>>2]=8;f=b;h=8;b=(j&255&(1<<g)+-1)<<b}else{f=e;h=g;i=j;b=0}j=h-f|0;c[k>>2]=j;return (d[45770+((i&255&((1<<f)+255&255)<<j)>>>j|b)>>0]|0)>>>(8-e|0)&255|0}function yn(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,f=0,g=0;if(!c){b=0;return b|0}else{e=a;a=0;f=0}while(1){g=(d[b+f>>0]|0)-(e&1|0?255:0)|0;a=(_(g,g)|0)+(a&65535)|0;f=f+1|0;if((f|0)==(c|0))break;else e=e>>>1}g=(a&65535)>>>3;return g|0}function zn(a){a=a|0;var b=0;b=c[a>>2]|0;c[a+16>>2]=c[a+4+(b<<2)>>2];b=b&1^1;c[a>>2]=b;c[a+20>>2]=c[a+4+(b<<2)>>2];return}function An(f,g,h){f=f|0;g=g|0;h=h|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;M=i;i=i+48|0;if((i|0)>=(j|0))ba();I=M+24|0;L=M;J=f+8|0;H=c[J>>2]|0;k=H+-1|0;K=1<<k;E=g+1|0;if(k>>>0>=(E-H|0)>>>0){i=M;return}F=f+28|0;G=(h|0)==0;H=f+20|0;v=f+4|0;w=f+32|0;x=K<<1;y=f+64|0;z=f+60|0;A=K>>>1;B=K>>>0<x>>>0;C=f+16|0;D=L+20|0;u=f+56|0;do{r=c[F>>2]|0;a:do if(G){g=(xn(c[H>>2]|0,c[v>>2]|0)|0)&255;f=1<<c[v>>2];l=0;do{b[r+(l<<1)>>1]=eb(l^g|0)|0;l=l+1|0}while(l>>>0<f>>>0)}else{g=c[v>>2]|0;if(c[u>>2]|0){f=0;while(1){b[r+(f<<1)>>1]=yn(f,h+(_(g,k)|0)|0,g)|0;f=f+1|0;g=c[v>>2]|0;if(f>>>0>=1<<g>>>0)break a}}n=h+(_(g,k)|0)|0;o=(g|0)==0;p=1<<g;q=0;do{if(o)f=0;else{l=q;f=0;m=0;while(1){t=(d[n+m>>0]|0)-(0-(l&1)&255)|0;f=((t|0)<0?0-t|0:t)+(f&65535)|0;m=m+1|0;if((m|0)==(g|0))break;else l=l>>>1}f=f&65535}b[r+(q<<1)>>1]=f;q=q+1|0}while(q>>>0<p>>>0)}while(0);c[L>>2]=c[w>>2];c[L+4>>2]=c[w+4>>2];c[L+8>>2]=c[w+8>>2];c[L+12>>2]=c[w+12>>2];c[L+16>>2]=c[w+16>>2];c[L+20>>2]=c[w+20>>2];c[I>>2]=c[w>>2];c[I+4>>2]=c[w+4>>2];c[I+8>>2]=c[w+8>>2];c[I+12>>2]=c[w+12>>2];c[I+16>>2]=c[w+16>>2];c[I+20>>2]=c[w+20>>2];Bn(I,r);f=c[y>>2]|0;g=c[f+16>>2]|0;f=c[f+20>>2]|0;l=Cn(c[z>>2]|0)|0;if(B){m=c[L>>2]|0;n=c[D>>2]|0;p=0;r=K;s=0;while(1){o=p+A|0;q=0;t=0;while(1){R=q+p|0;O=o+q|0;P=c[n+(c[m+(R<<2)>>2]<<2)>>2]|0;Q=c[n+(c[m+(O<<2)>>2]<<2)>>2]|0;R=e[g+(R<<1)>>1]|0;T=R+P|0;O=e[g+(O<<1)>>1]|0;U=O+Q|0;N=t+s|0;S=(T&65535)>>>0>(U&65535)>>>0;b[f+(N<<1)>>1]=S?U:T;a[l+N>>0]=S&1;N=N|1;P=R+(P>>>16)|0;Q=O+(Q>>>16)|0;O=(P&65535)>>>0>(Q&65535)>>>0;b[f+(N<<1)>>1]=O?Q:P;a[l+N>>0]=O&1;q=q+1|0;if((q|0)==4)break;else t=t+2|0}r=r+8|0;if(r>>>0>=x>>>0)break;else{p=p+4|0;s=s+8|0}}}Dn(c[z>>2]|0,f,c[C>>2]|0);zn(c[y>>2]|0);k=k+1|0}while(k>>>0<(E-(c[J>>2]|0)|0)>>>0);i=M;return}function Bn(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0;f=c[a+16>>2]|0;if(f>>>0<=1)return;g=c[a+4>>2]|0;h=c[a+8>>2]|0;i=c[a+12>>2]|0;a=c[a+20>>2]|0;d=1;do{j=c[g+(d<<2)>>2]|0;c[a+(d<<2)>>2]=(e[b+(j>>>i<<1)>>1]|0)<<16|(e[b+((h&j)<<1)>>1]|0);d=d+1|0}while(d>>>0<f>>>0);return}function Cn(a){a=a|0;return c[(c[a+20>>2]|0)+(c[a+24>>2]<<2)>>2]|0}function Dn(a,b,c){a=a|0;b=b|0;c=c|0;En(a,b,c,1);return}function En(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=a+24|0;m=(c[h>>2]|0)+1|0;o=c[a+8>>2]|0;c[h>>2]=(m|0)==(o|0)?0:m;h=a+40|0;m=(c[h>>2]|0)+1|0;c[h>>2]=m;l=a+28|0;n=(c[l>>2]|0)+1|0;c[l>>2]=n;if((m|0)!=(c[a+36>>2]|0)){if((n|0)!=(o|0))return;i=c[a+12>>2]|0;if(!i)h=0;else{h=0;l=-1;m=0;while(1){j=b[d+(m<<1)>>1]|0;k=(j&65535)<(l&65535);h=k?m:h;m=m+g|0;if(m>>>0>=i>>>0)break;else l=k?j:l}}Fn(a,h,c[a>>2]|0,f);return}c[h>>2]=0;m=c[a+12>>2]|0;if(!m)h=0;else{h=0;k=-1;l=0;while(1){i=b[d+(l<<1)>>1]|0;j=(i&65535)<(k&65535);h=j?l:h;l=l+g|0;if(l>>>0>=m>>>0)break;else k=j?i:k}i=e[d+(h<<1)>>1]|0;j=0;do{g=d+(j<<1)|0;b[g>>1]=(e[g>>1]|0)-i;j=j+1|0}while((j|0)!=(m|0))}if((n|0)!=(o|0))return;Fn(a,h,c[a>>2]|0,f);return}function Fn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=c[b+16>>2]|0;g=c[b+24>>2]|0;n=c[b+8>>2]|0;g=((g|0)==0?n:g)+-1|0;if(!e){j=d;i=g}else{i=c[b+20>>2]|0;h=0;do{d=((a[(c[i+(g<<2)>>2]|0)+d>>0]|0?m:0)|d)>>>1;h=h+1|0;g=((g|0)==0?n:g)+-1|0}while((h|0)!=(e|0));j=d;i=g}l=b+28|0;d=c[l>>2]|0;if(d>>>0<=e>>>0){m=b+32|0;n=0;m=c[m>>2]|0;Gn(f,m,n);f=c[l>>2]|0;f=f-n|0;c[l>>2]=f;return}k=b+20|0;g=b+32|0;d=d-e|0;b=0;while(1){h=a[(c[(c[k>>2]|0)+(i<<2)>>2]|0)+j>>0]|0?m:0;a[(c[g>>2]|0)+b>>0]=(h|0)!=0&1;b=b+1|0;if((b|0)==(d|0))break;else{j=(h|j)>>>1;i=((i|0)==0?n:i)+-1|0}}n=c[g>>2]|0;Gn(f,n,d);f=c[l>>2]|0;f=f-d|0;c[l>>2]=f;return}function Gn(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=e+f+-1|0;m=c[b+8>>2]|0;n=b+12|0;j=c[n>>2]|0;o=b+4|0;k=c[o>>2]|0;do if(k){l=8-k|0;l=l>>>0<f>>>0?l:f;g=a[b>>0]|0;if(!l){i=g;h=(g&255)>>>1}else{g=g&255;i=0;do{h=d[e>>0]|0|g&65535;g=h<<1;e=e+-1|0;i=i+1|0}while(i>>>0<l>>>0);i=g&255;h=h&255}g=k+l|0;if((g|0)==8){a[m+j>>0]=h;f=f-l|0;j=j+1|0;break}a[b>>0]=i;b=g;c[o>>2]=b;return}while(0);k=f>>>3;if(k){i=e+(_(k,-8)|0)|0;g=j;h=0;while(1){a[m+g>>0]=(d[e+-1>>0]|0)<<6|(d[e>>0]|0)<<7|(d[e+-2>>0]|0)<<5|(d[e+-3>>0]|0)<<4|(d[e+-4>>0]|0)<<3|(d[e+-5>>0]|0)<<2|(d[e+-6>>0]|0)<<1|(d[e+-7>>0]|0);h=h+1|0;if((h|0)==(k|0))break;else{e=e+-8|0;g=g+1|0}}e=i;j=j+k|0}m=k<<3;i=f-m|0;if((f|0)==(m|0))e=0;else{g=e;e=0;h=0;while(1){e=(d[g>>0]|0|e&65534)<<1;h=h+1|0;if(h>>>0>=i>>>0)break;else g=g+-1|0}e=e&255}a[b>>0]=e;c[n>>2]=j;b=i;c[o>>2]=b;return}function Hn(f,g,h){f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,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;v=f+8|0;i=c[v>>2]|0;D=1<<i+-1;i=g-i+1|0;if(i>>>0>=g>>>0)return;E=f+64|0;F=f+60|0;G=f+28|0;H=(h|0)==0;w=f+20|0;x=f+4|0;y=D<<1;z=D>>>1;A=D>>>0<y>>>0;B=f+16|0;C=f+56|0;do{s=c[E>>2]|0;r=c[s+16>>2]|0;s=c[s+20>>2]|0;t=Cn(c[F>>2]|0)|0;u=c[G>>2]|0;a:do if(H){j=(xn(c[w>>2]|0,c[x>>2]|0)|0)&255;k=1<<c[x>>2];l=0;do{b[u+(l<<1)>>1]=eb(l^j|0)|0;l=l+1|0}while(l>>>0<k>>>0)}else{j=c[x>>2]|0;if(c[C>>2]|0){k=0;while(1){b[u+(k<<1)>>1]=yn(k,h+(_(j,i)|0)|0,j)|0;k=k+1|0;j=c[x>>2]|0;if(k>>>0>=1<<j>>>0)break a}}n=h+(_(j,i)|0)|0;o=(j|0)==0;p=1<<j;q=0;do{if(o)k=0;else{l=q;k=0;m=0;while(1){I=(d[n+m>>0]|0)-(0-(l&1)&255)|0;k=((I|0)<0?0-I|0:I)+(k&65535)|0;m=m+1|0;if((m|0)==(j|0))break;else l=l>>>1}k=k&65535}b[u+(q<<1)>>1]=k;q=q+1|0}while(q>>>0<p>>>0)}while(0);j=c[f>>2]|0;k=1<<i-g+(c[v>>2]|0);l=k>>>1;if(A){m=0;n=D;o=0;while(1){p=(e[r+(m<<1)>>1]|0)+(e[u+(c[j+(o<<2)>>2]<<1)>>1]|0)|0;q=(e[r+(m+z<<1)>>1]|0)+(e[u+(c[j+(n<<2)>>2]<<1)>>1]|0)|0;I=(p&65535)>>>0<(q&65535)>>>0;b[s+(o<<1)>>1]=I?p:q;a[t+o>>0]=I&1^1;n=n+k|0;if(n>>>0>=y>>>0)break;else{m=m+l|0;o=o+k|0}}}En(c[F>>2]|0,s,c[B>>2]|0,k);zn(c[E>>2]|0);i=i+1|0}while((i|0)!=(g|0));return}function In(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=c[b+16>>2]|0;f=c[b+24>>2]|0;l=c[b+8>>2]|0;m=b+28|0;e=c[m>>2]|0;if(!e){k=b+32|0;l=0;k=c[k>>2]|0;Gn(d,k,l);d=c[m>>2]|0;d=d-l|0;c[m>>2]=d;return}k=b+20|0;b=b+32|0;h=0;i=0;g=((f|0)==0?l:f)+-1|0;while(1){f=a[(c[(c[k>>2]|0)+(g<<2)>>2]|0)+h>>0]|0?j:0;a[(c[b>>2]|0)+i>>0]=(f|0)!=0&1;i=i+1|0;if((i|0)==(e|0))break;else{h=(f|h)>>>1;g=((g|0)==0?l:g)+-1|0}}l=c[b>>2]|0;Gn(d,l,e);d=c[m>>2]|0;d=d-e|0;c[m>>2]=d;return}function Jn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+24>>2]|0)-f<<3;a=a>>>0<d>>>0?a:d;a=((a&7|0)!=0&1)+(a>>>3)|0;fq(b|0,f|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return 0}function Kn(a){a=a|0;var b=0,d=0;b=Xp(28)|0;d=((a&7|0)!=0&1)+(a>>>3)|0;c[b+4>>2]=2;c[b+8>>2]=9;a=Xp(d)|0;c[b+12>>2]=a;c[b+16>>2]=d;c[b>>2]=$m(2,9,10344)|0;c[b+20>>2]=a;c[b+24>>2]=a;return b|0}function Ln(a){a=a|0;Yp(c[a+12>>2]|0);en(c[a>>2]|0);Yp(a);return}function Mn(a,b){a=a|0;b=b|0;b=c[a+12>>2]|0;c[a+20>>2]=b;c[a+24>>2]=b;return 0}function Nn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+24|0;i=c[e>>2]|0;g=(c[a+12>>2]|0)+(c[a+16>>2]|0)-i<<3;f=d+1-(c[a+8>>2]|0)|0;h=g>>>0<f>>>0;on(c[a>>2]|0,b,_((h?g-f|0:0)+d|0,c[a+4>>2]|0)|0,i)|0;c[e>>2]=(c[e>>2]|0)+((h?g:f)>>>3);return 0}function On(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+24>>2]|0)-f<<3;a=a>>>0<d>>>0?a:d;a=((a&7|0)!=0&1)+(a>>>3)|0;fq(b|0,f|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return 0}function Pn(a){a=a|0;var b=0,d=0;b=Xp(28)|0;d=((a&7|0)!=0&1)+(a>>>3)|0;c[b+4>>2]=3;c[b+8>>2]=9;a=Xp(d)|0;c[b+12>>2]=a;c[b+16>>2]=d;c[b>>2]=$m(3,9,10348)|0;c[b+20>>2]=a;c[b+24>>2]=a;return b|0}function Qn(a){a=a|0;Yp(c[a+12>>2]|0);en(c[a>>2]|0);Yp(a);return}function Rn(a,b){a=a|0;b=b|0;b=c[a+12>>2]|0;c[a+20>>2]=b;c[a+24>>2]=b;return 0}function Sn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+24|0;i=c[e>>2]|0;g=(c[a+12>>2]|0)+(c[a+16>>2]|0)-i<<3;f=d+1-(c[a+8>>2]|0)|0;h=g>>>0<f>>>0;on(c[a>>2]|0,b,_((h?g-f|0:0)+d|0,c[a+4>>2]|0)|0,i)|0;c[e>>2]=(c[e>>2]|0)+((h?g:f)>>>3);return 0}function Tn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+24>>2]|0)-f<<3;a=a>>>0<d>>>0?a:d;a=((a&7|0)!=0&1)+(a>>>3)|0;fq(b|0,f|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return 0}function Un(a){a=a|0;var b=0,d=0;b=Xp(28)|0;d=((a&7|0)!=0&1)+(a>>>3)|0;c[b+4>>2]=6;c[b+8>>2]=15;a=Xp(d)|0;c[b+12>>2]=a;c[b+16>>2]=d;c[b>>2]=$m(6,15,10354)|0;c[b+20>>2]=a;c[b+24>>2]=a;return b|0}function Vn(a){a=a|0;Yp(c[a+12>>2]|0);en(c[a>>2]|0);Yp(a);return}function Wn(a,b){a=a|0;b=b|0;b=c[a+12>>2]|0;c[a+20>>2]=b;c[a+24>>2]=b;return 0}function Xn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+24|0;i=c[e>>2]|0;g=(c[a+12>>2]|0)+(c[a+16>>2]|0)-i<<3;f=d+1-(c[a+8>>2]|0)|0;h=g>>>0<f>>>0;on(c[a>>2]|0,b,_((h?g-f|0:0)+d|0,c[a+4>>2]|0)|0,i)|0;c[e>>2]=(c[e>>2]|0)+((h?g:f)>>>3);return 0}function Yn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+24>>2]|0)-f<<3;a=a>>>0<d>>>0?a:d;a=((a&7|0)!=0&1)+(a>>>3)|0;fq(b|0,f|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return 0}function Zn(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0.0,g=0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0;m=+zp(+tp(+N(+d),+N(+e)));n=+N(+m);if(m==m&0.0==0.0&n!=s){g=~~m;k=0-g|0;d=+ip(d,k);l=+ip(e,k)}else{l=e;g=0}i=d*d+l*l;k=0-g|0;f=+ip((d*b+l*c)/i,k);e=+ip((d*c-l*b)/i,k);do if((f!=f|0.0!=0.0)&(e!=e|0.0!=0.0)){if(i==0.0?!((b!=b|0.0!=0.0)&(c!=c|0.0!=0.0)):0){e=+yo(s,d);f=e*b;e=e*c;break}i=+N(+b);g=i==s;j=+N(+c);k=j==s;if((g|k?d==d&0.0==0.0&+N(+d)!=s:0)?l==l&0.0==0.0&+N(+l)!=s:0){e=+yo(g?1.0:0.0,b);c=+yo(k?1.0:0.0,c);f=(d*e+l*c)*s;e=(d*c-l*e)*s;break}if((m>0.0&n==s?b==b&0.0==0.0&i!=s:0)?c==c&0.0==0.0&j!=s:0){k=+N(+d)==s;n=+yo(k?1.0:0.0,d);k=+N(+l)==s;e=+yo(k?1.0:0.0,l);f=(n*b+e*c)*0.0;e=(n*c-e*b)*0.0}}while(0);h[a>>3]=f;h[a+8>>3]=e;return}function _n(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0.0,h=0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0;m=+Ap(+up(+N(+d),+N(+e)));n=+N(+m);if(m==m&0.0==0.0&n!=s){h=~~m;k=0-h|0;d=+wp(d,k);l=+wp(e,k)}else{l=e;h=0}i=d*d+l*l;k=0-h|0;f=+wp((d*b+l*c)/i,k);e=+wp((d*c-l*b)/i,k);do if((f!=f|0.0!=0.0)&(e!=e|0.0!=0.0)){if(i==0.0?!((b!=b|0.0!=0.0)&(c!=c|0.0!=0.0)):0){e=+Ao(s,d);f=e*b;e=e*c;break}i=+N(+b);h=i==s;j=+N(+c);k=j==s;if((h|k?d==d&0.0==0.0&+N(+d)!=s:0)?l==l&0.0==0.0&+N(+l)!=s:0){e=+Ao(+(h&1),b);c=+Ao(+(k&1),c);f=(d*e+l*c)*s;e=(d*c-l*e)*s;break}if((m>0.0&n==s?b==b&0.0==0.0&i!=s:0)?c==c&0.0==0.0&j!=s:0){n=+Ao(+(+N(+d)==s&1),d);e=+Ao(+(+N(+l)==s&1),l);f=(n*b+e*c)*0.0;e=(n*c-e*b)*0.0}}while(0);g[a>>2]=f;g[a+4>>2]=e;return}function $n(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,g=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;j=b*d;k=c*e;l=b*e;m=c*d;n=j-k;o=m+l;if(!((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0))){i=a+8|0;h[a>>3]=n;h[i>>3]=o;return}f=+N(+b)==s;g=+N(+c)==s;if(f|g){b=+yo(+(f&1),b);c=+yo(+(g&1),c);if(d!=d|0.0!=0.0)d=+yo(0.0,d);if(e!=e|0.0!=0.0){e=+yo(0.0,e);g=1}else g=1}else g=0;f=+N(+d)==s;i=+N(+e)==s;if(i|f){d=+yo(+(f&1),d);e=+yo(+(i&1),e);if(b!=b|0.0!=0.0)b=+yo(0.0,b);if(c!=c|0.0!=0.0)c=+yo(0.0,c)}else if(!g){i=+N(+j)==s;i=i|+N(+k)==s;i=+N(+l)==s|i;if(!(+N(+m)==s|i)){i=a+8|0;h[a>>3]=n;h[i>>3]=o;return}if(b!=b|0.0!=0.0)b=+yo(0.0,b);if(c!=c|0.0!=0.0)c=+yo(0.0,c);if(d!=d|0.0!=0.0)d=+yo(0.0,d);if(e!=e|0.0!=0.0)e=+yo(0.0,e)}n=(d*b-e*c)*s;o=(d*c+e*b)*s;i=a+8|0;h[a>>3]=n;h[i>>3]=o;return}function ao(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;j=b*d;k=c*e;l=b*e;m=c*d;n=j-k;o=m+l;if(!((n!=n|0.0!=0.0)&(o!=o|0.0!=0.0))){i=a+4|0;g[a>>2]=n;g[i>>2]=o;return}f=+N(+b)==s;h=+N(+c)==s;if(f|h){b=+Ao(+(f&1),b);c=+Ao(+(h&1),c);if(d!=d|0.0!=0.0)d=+Ao(0.0,d);if(e!=e|0.0!=0.0){e=+Ao(0.0,e);h=1}else h=1}else h=0;f=+N(+d)==s;i=+N(+e)==s;if(i|f){d=+Ao(+(f&1),d);e=+Ao(+(i&1),e);if(b!=b|0.0!=0.0)b=+Ao(0.0,b);if(c!=c|0.0!=0.0)c=+Ao(0.0,c)}else if(!h){i=+N(+j)==s;i=i|+N(+k)==s;i=+N(+l)==s|i;if(!(+N(+m)==s|i)){i=a+4|0;g[a>>2]=n;g[i>>2]=o;return}if(b!=b|0.0!=0.0)b=+Ao(0.0,b);if(c!=c|0.0!=0.0)c=+Ao(0.0,c);if(d!=d|0.0!=0.0)d=+Ao(0.0,d);if(e!=e|0.0!=0.0)e=+Ao(0.0,e)}n=(d*b-e*c)*s;o=(d*c+e*b)*s;i=a+4|0;g[a>>2]=n;g[i>>2]=o;return}function bo(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();d=b;c[d>>2]=c[a+60>>2];a=co(cb(6,d|0)|0)|0;i=b;return a|0}function co(a){a=a|0;if(a>>>0>4294963200){c[(eo()|0)>>2]=0-a;a=-1}return a|0}function eo(){var a=0;if(!(c[11306]|0))a=45268;else a=c[(Qa()|0)+64>>2]|0;return a|0}function fo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;if((i|0)>=(j|0))ba();o=r+16|0;n=r;e=r+32|0;p=a+28|0;f=c[p>>2]|0;c[e>>2]=f;q=a+20|0;f=(c[q>>2]|0)-f|0;c[e+4>>2]=f;c[e+8>>2]=b;c[e+12>>2]=d;l=a+60|0;m=a+44|0;b=2;f=f+d|0;while(1){if(!(c[11306]|0)){c[o>>2]=c[l>>2];c[o+4>>2]=e;c[o+8>>2]=b;h=co(mb(146,o|0)|0)|0}else{Ea(22,a|0);c[n>>2]=c[l>>2];c[n+4>>2]=e;c[n+8>>2]=b;h=co(mb(146,n|0)|0)|0;xa(0)}if((f|0)==(h|0)){f=6;break}if((h|0)<0){f=8;break}f=f-h|0;g=c[e+4>>2]|0;if(h>>>0<=g>>>0)if((b|0)==2){c[p>>2]=(c[p>>2]|0)+h;k=g;b=2}else k=g;else{k=c[m>>2]|0;c[p>>2]=k;c[q>>2]=k;k=c[e+12>>2]|0;h=h-g|0;e=e+8|0;b=b+-1|0}c[e>>2]=(c[e>>2]|0)+h;c[e+4>>2]=k-h}if((f|0)==6){o=c[m>>2]|0;c[a+16>>2]=o+(c[a+48>>2]|0);a=o;c[p>>2]=a;c[q>>2]=a}else if((f|0)==8){c[a+16>>2]=0;c[p>>2]=0;c[q>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[e+4>>2]|0)|0}i=r;return d|0}function go(a){a=a|0;if(!(c[a+68>>2]|0))ho(a);return}function ho(a){a=a|0;return}function io(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+32|0;if((i|0)>=(j|0))ba();g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((co(ib(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;i=f;return a|0}function jo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+48|0;if((i|0)>=(j|0))ba();h=n+16|0;g=n;f=n+32|0;c[f>>2]=d;k=f+4|0;m=b+48|0;o=c[m>>2]|0;c[k>>2]=e-((o|0)!=0&1);l=b+44|0;c[f+8>>2]=c[l>>2];c[f+12>>2]=o;if(!(c[11306]|0)){c[h>>2]=c[b+60>>2];c[h+4>>2]=f;c[h+8>>2]=2;f=co(lb(145,h|0)|0)|0}else{Ea(23,b|0);c[g>>2]=c[b+60>>2];c[g+4>>2]=f;c[g+8>>2]=2;f=co(lb(145,g|0)|0)|0;xa(0)}if((f|0)>=1){k=c[k>>2]|0;if(f>>>0>k>>>0){g=c[l>>2]|0;h=b+4|0;c[h>>2]=g;c[b+8>>2]=g+(f-k);if(!(c[m>>2]|0))f=e;else{c[h>>2]=g+1;a[d+(e+-1)>>0]=a[g>>0]|0;f=e}}}else{c[b>>2]=c[b>>2]|f&48^16;c[b+8>>2]=0;c[b+4>>2]=0}i=n;return f|0}function ko(a){a=a|0;if(!(c[a+68>>2]|0))ho(a);return}function lo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+80|0;if((i|0)>=(j|0))ba();f=g;c[b+36>>2]=1;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21505,c[f+8>>2]=g+12,Xa(54,f|0)|0):0)a[b+75>>0]=-1;f=fo(b,d,e)|0;i=g;return f|0}function mo(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,k=0,l=0;l=i;i=i+112|0;if((i|0)>=(j|0))ba();k=l;c[k>>2]=0;g=k+4|0;c[g>>2]=a;c[k+44>>2]=a;h=k+8|0;c[h>>2]=(a|0)<0?-1:a+2147483647|0;c[k+76>>2]=-1;no(k,0);e=oo(k,d,1,e,f)|0;if(b|0)c[b>>2]=a+((c[g>>2]|0)+(c[k+108>>2]|0)-(c[h>>2]|0));i=l;return e|0}function no(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+8>>2]|0;e=c[a+4>>2]|0;f=d-e|0;c[a+108>>2]=f;if((b|0)!=0&(f|0)>(b|0))c[a+100>>2]=e+b;else c[a+100>>2]=d;return}function oo(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do if(e>>>0>36){c[(eo()|0)>>2]=22;h=0;g=0}else{r=b+4|0;q=b+100|0;do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0}while((so(i)|0)!=0);b:do switch(i|0){case 43:case 45:{j=((i|0)==45)<<31>>31;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0;p=j;break b}else{i=po(b)|0;p=j;break b}}default:p=0}while(0);j=(e|0)==0;do if((e|16|0)==16&(i|0)==48){i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0;if((i|32|0)!=120)if(j){e=8;n=46;break}else{n=32;break}e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=po(b)|0;if((d[42356+i>>0]|0)>15){g=(c[q>>2]|0)==0;if(!g)c[r>>2]=(c[r>>2]|0)+-1;if(!f){no(b,0);h=0;g=0;break a}if(g){h=0;g=0;break a}c[r>>2]=(c[r>>2]|0)+-1;h=0;g=0;break a}else{e=16;n=46}}else{e=j?10:e;if((d[42356+i>>0]|0)>>>0<e>>>0)n=32;else{if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;no(b,0);c[(eo()|0)>>2]=22;h=0;g=0;break a}}while(0);if((n|0)==32)if((e|0)==10){e=i+-48|0;if(e>>>0<10){i=0;while(1){j=(i*10|0)+e|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=po(b)|0;e=i+-48|0;if(!(e>>>0<10&j>>>0<429496729)){e=j;break}else i=j}j=0}else{e=0;j=0}f=i+-48|0;if(f>>>0<10){while(1){k=pq(e|0,j|0,10,0)|0;l=C;m=((f|0)<0)<<31>>31;o=~m;if(l>>>0>o>>>0|(l|0)==(o|0)&k>>>0>~f>>>0){k=e;break}e=iq(k|0,l|0,f|0,m|0)|0;j=C;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0;f=i+-48|0;if(!(f>>>0<10&(j>>>0<429496729|(j|0)==429496729&e>>>0<2576980378))){k=e;break}}if(f>>>0>9){i=k;e=p}else{e=10;n=72}}else{i=e;e=p}}else n=46;c:do if((n|0)==46){if(!(e+-1&e)){n=a[42612+((e*23|0)>>>5&7)>>0]|0;j=a[42356+i>>0]|0;f=j&255;if(f>>>0<e>>>0){i=0;while(1){k=f|i<<n;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0;j=a[42356+i>>0]|0;f=j&255;if(!(k>>>0<134217728&f>>>0<e>>>0))break;else i=k}f=0}else{f=0;k=0}l=hq(-1,-1,n|0)|0;m=C;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break}else i=f;while(1){k=jq(k|0,i|0,n|0)|0;f=C;k=j&255|k;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0;j=a[42356+i>>0]|0;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break c}else i=f}}j=a[42356+i>>0]|0;f=j&255;if(f>>>0<e>>>0){i=0;while(1){k=f+(_(i,e)|0)|0;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0;j=a[42356+i>>0]|0;f=j&255;if(!(k>>>0<119304647&f>>>0<e>>>0))break;else i=k}f=0}else{k=0;f=0}if((j&255)>>>0<e>>>0){n=qq(-1,-1,e|0,0)|0;o=C;m=f;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&k>>>0>n>>>0){j=m;n=72;break c}f=pq(k|0,m|0,e|0,0)|0;l=C;j=j&255;if(l>>>0>4294967295|(l|0)==-1&f>>>0>~j>>>0){j=m;n=72;break c}k=iq(j|0,0,f|0,l|0)|0;f=C;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0;j=a[42356+i>>0]|0;if((j&255)>>>0>=e>>>0){j=f;n=72;break}else m=f}}else{j=f;n=72}}while(0);if((n|0)==72)if((d[42356+i>>0]|0)>>>0<e>>>0){do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=po(b)|0}while((d[42356+i>>0]|0)>>>0<e>>>0);c[(eo()|0)>>2]=34;j=h;i=g;e=(g&1|0)==0&0==0?p:0}else{i=k;e=p}if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;if(!(j>>>0<h>>>0|(j|0)==(h|0)&i>>>0<g>>>0)){if(!((g&1|0)!=0|0!=0|(e|0)!=0)){c[(eo()|0)>>2]=34;g=iq(g|0,h|0,-1,-1)|0;h=C;break}if(j>>>0>h>>>0|(j|0)==(h|0)&i>>>0>g>>>0){c[(eo()|0)>>2]=34;break}}g=((e|0)<0)<<31>>31;g=cq(i^e|0,j^g|0,e|0,g|0)|0;h=C}while(0);C=h;return g|0}function po(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=b+104|0;i=c[f>>2]|0;if((i|0)!=0?(c[b+108>>2]|0)>=(i|0):0)j=4;else{e=qo(b)|0;if((e|0)>=0){f=c[f>>2]|0;i=c[b+8>>2]|0;if(f){h=c[b+4>>2]|0;f=f-(c[b+108>>2]|0)|0;g=i;if((i-h|0)<(f|0))j=9;else c[b+100>>2]=h+(f+-1)}else{g=i;j=9}if((j|0)==9)c[b+100>>2]=i;f=b+4|0;if(!g)f=c[f>>2]|0;else{f=c[f>>2]|0;b=b+108|0;c[b>>2]=g+1-f+(c[b>>2]|0)}f=f+-1|0;if((d[f>>0]|0|0)!=(e|0))a[f>>0]=e}else j=4}if((j|0)==4){c[b+100>>2]=0;e=-1}return e|0}function qo(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();b=e;if((c[a+8>>2]|0)==0?(ro(a)|0)!=0:0)b=-1;else if((pb[c[a+32>>2]&15](a,b,1)|0)==1)b=d[b>>0]|0;else b=-1;i=e;return b|0}function ro(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=b+20|0;e=b+44|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)pb[c[b+36>>2]&15](b,0,0)|0;c[b+16>>2]=0;c[b+28>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(d&20)if(!(d&4))d=-1;else{c[b>>2]=d|32;d=-1}else{d=c[e>>2]|0;c[b+8>>2]=d;c[b+4>>2]=d;d=0}return d|0}function so(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function to(a,b,c){a=a|0;b=b|0;c=c|0;a=mo(a,b,c,0,-2147483648)|0;return a|0}function uo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;j=+g[b+4>>2];i=+X(+(+g[b>>2]+-162.88958740234375));b=(g[k>>2]=i,c[k>>2]|0);i=(c[k>>2]=b&8388607|2130706432,+g[k>>2]);d=d+-19+(b>>>23)|0;b=(d|0)/2|0;h=(c[k>>2]=(b<<23)+1065353216,+g[k>>2]);f=(c[k>>2]=(d-b<<23)+1065353216,+g[k>>2]);e=+R(+j)*i*h*f;g[a>>2]=+Q(+j)*i*h*f;g[a+4>>2]=e;return}function vo(a,b){a=+a;b=+b;var d=0.0,e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0;a=+N(+a);h[k>>3]=a;m=c[k>>2]|0;g=c[k+4>>2]|0;a=+N(+b);h[k>>3]=a;e=c[k>>2]|0;f=c[k+4>>2]|0;i=g>>>0<f>>>0|(g|0)==(f|0)&m>>>0<e>>>0;l=i?e:m;j=i?f:g;e=i?m:e;f=i?g:f;g=hq(l|0,j|0,52)|0;i=hq(e|0,f|0,52)|0;c[k>>2]=l;c[k+4>>2]=j;a=+h[k>>3];c[k>>2]=e;c[k+4>>2]=f;b=+h[k>>3];do if((i|0)!=2047){if(!((e|0)==0&(f|0)==0|(g|0)==2047)){if((g-i|0)>64){a=a+b;break}if(g>>>0<=1533)if(i>>>0<573){a=a*5260135901548373507240989.0e186;b=b*5260135901548373507240989.0e186;d=1.90109156629516e-211}else d=1.0;else{a=a*1.90109156629516e-211;b=b*1.90109156629516e-211;d=5260135901548373507240989.0e186}o=a*134217729.0;o=o+(a-o);n=a-o;a=a*a;q=b*134217729.0;q=q+(b-q);p=b-q;b=b*b;a=d*+O(+(a+(b+(p*p+(q*q-b+q*2.0*p)+(n*n+(o*o-a+o*2.0*n))))))}}else a=b;while(0);return +a}function wo(a){a=a|0;return +(+xo(+g[a>>2],+g[a+4>>2]))}function xo(a,b){a=+a;b=+b;var d=0.0,e=0,f=0,h=0,i=0;a=+N(+a);h=(g[k>>2]=a,c[k>>2]|0);b=+N(+b);f=(g[k>>2]=b,c[k>>2]|0);i=h>>>0<f>>>0;e=i?f:h;f=i?h:f;b=(c[k>>2]=e,+g[k>>2]);a=(c[k>>2]=f,+g[k>>2]);do if((f|0)!=2139095040){if(e>>>0>2139095039|(f|0)==0|(e-f|0)>>>0>209715199){a=b+a;break}if(e>>>0<=1568669695)if(f>>>0<562036736){a=a*1237940039285380274899124.0e3;b=b*1237940039285380274899124.0e3;d=8.077935669463161e-28}else d=1.0;else{a=a*8.077935669463161e-28;b=b*8.077935669463161e-28;d=1237940039285380274899124.0e3}a=d*+O(+(b*b+a*a))}while(0);return +a}function yo(a,b){a=+a;b=+b;var d=0;h[k>>3]=b;d=c[k+4>>2]|0;b=+N(+a);h[k>>3]=b;d=d&-2147483648|c[k+4>>2];c[k>>2]=c[k>>2];c[k+4>>2]=d;return +(+h[k>>3])}function zo(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,h=0.0;h=+g[b>>2];f=+g[b+4>>2];do if(!(h==0.0&f==0.0)){d=+N(+f);if(((g[k>>2]=d,c[k>>2]|0)|0)==2139095040){g[a>>2]=s;g[a+4>>2]=f;break}e=(g[k>>2]=h,c[k>>2]|0);d=+N(+h);b=(g[k>>2]=d,c[k>>2]|0);if(b>>>0>2139095040){f=f-f;g[a>>2]=h;g[a+4>>2]=f/f;break}if((b|0)==2139095040){d=f-f;if((e|0)<0){d=+N(+d);h=+Ao(h,f);g[a>>2]=d;g[a+4>>2]=h;break}else{f=+Ao(d,f);g[a>>2]=h;g[a+4>>2]=f;break}}else if(!(h>=0.0)){h=+O(+((-h+ +vo(h,f))*.5));d=+N(+f)/(h*2.0);h=+Ao(h,f);g[a>>2]=d;g[a+4>>2]=h;break}else{h=+O(+((h+ +vo(h,f))*.5));g[a>>2]=h;g[a+4>>2]=f/(h*2.0);break}}else{g[a>>2]=0.0;g[a+4>>2]=f}while(0);return}function Ao(a,b){a=+a;b=+b;var d=0;d=(g[k>>2]=b,c[k>>2]|0);b=+N(+a);return +(c[k>>2]=d&-2147483648|(g[k>>2]=b,c[k>>2]|0),+g[k>>2])}function Bo(a){a=a|0;return +(+W(+(+g[a+4>>2]),+(+g[a>>2])))}function Co(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,k=0;d=i;i=i+32|0;if((i|0)>=(j|0))ba();f=d+16|0;e=d+8|0;h=d;k=c[b>>2]|0;g[h>>2]=-+g[b+4>>2];c[h+4>>2]=k;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];Do(e,f);b=c[e+4>>2]|0;c[a>>2]=c[e>>2];c[a+4>>2]=b;i=d;return}function Do(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0.0;s=i;i=i+32|0;if((i|0)>=(j|0))ba();e=s+16|0;f=s+8|0;h=s;p=+g[b>>2];l=b+4|0;q=+g[l>>2];r=(g[k>>2]=p,c[k>>2]|0);d=+N(+p);m=(g[k>>2]=d,c[k>>2]|0);d=+N(+q);n=(g[k>>2]=d,c[k>>2]|0);o=(m|0)<2139095040;do if(o&(n|0)<2139095040){if(!n){g[a>>2]=+Eo(p);g[a+4>>2]=p*q;break}if((m|0)<1091567616){d=+Eo(p)*+Q(+q);q=+Ho(p)*+R(+q);g[a>>2]=d;g[a+4>>2]=q;break}if((m|0)<1118925336){t=+X(+(+N(+p)))*.5;d=t*+Q(+q);q=+Ao(t,p)*+R(+q);g[a>>2]=d;g[a+4>>2]=q;break}if((m|0)<1128313319){g[h>>2]=+N(+p);g[h+4>>2]=q;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];uo(f,e,-1);r=c[f>>2]|0;t=+g[f+4>>2];c[b>>2]=r;g[l>>2]=t;t=t*+Ao(1.0,p);c[a>>2]=r;g[a+4>>2]=t;break}else{p=p*1701411834604692317316873.0e14;t=p*+R(+q);g[a>>2]=p*p*+Q(+q);g[a+4>>2]=t;break}}else{f=(n|0)>2139095039;if((m|0)==0&f){q=q-q;t=+Ao(0.0,p*q);g[a>>2]=q;g[a+4>>2]=t;break}e=(m|0)>2139095039;if(e&(n|0)==0){d=p*p;if(!(r&8388607)){t=q*+Ao(0.0,p);g[a>>2]=d;g[a+4>>2]=t;break}else{t=+Ao(0.0,(p+p)*q);g[a>>2]=d;g[a+4>>2]=t;break}}if(o&f){t=q-q;g[a>>2]=t;g[a+4>>2]=p*t;break}d=p*p;if(!(e&(r&8388607|0)==0)){t=q-q;g[a>>2]=d*t;g[a+4>>2]=(p+p)*t;break}if(f){g[a>>2]=d;g[a+4>>2]=p*(q-q);break}else{t=p*+R(+q);g[a>>2]=d*+Q(+q);g[a+4>>2]=t;break}}while(0);i=s;return}function Eo(a){a=+a;var b=0;a=+N(+a);b=(g[k>>2]=a,c[k>>2]|0);do if(b>>>0<1060205079)if(b>>>0<964689920)a=1.0;else{a=+Fo(a);a=a*a/((a+1.0)*2.0)+1.0}else if(b>>>0<1118925335){a=+X(+a);a=(a+1.0/a)*.5;break}else{a=+Go(a);break}while(0);return +a}function Fo(a){a=+a;var b=0,d=0,e=0.0,f=0.0,h=0.0,i=0,j=0.0;d=(g[k>>2]=a,c[k>>2]|0);h=+N(+a);b=(g[k>>2]=h,c[k>>2]|0);d=d>>>31;do if(b>>>0>1100331075){if(b>>>0<=2139095040)if(!d)if(a>88.7216796875)a=a*1701411834604692317316873.0e14;else i=11;else a=-1.0}else{if(b>>>0<=1051816472)if(b>>>0<855638016)break;else{h=0.0;d=0;i=14;break}if(b>>>0<1065686418)if(!d){e=a+-.6931381225585938;b=1;f=9.05800061445916e-06;i=12;break}else{e=a+.6931381225585938;b=-1;f=-9.05800061445916e-06;i=12;break}else i=11}while(0);if((i|0)==11){b=~~(a*1.4426950216293335+(d|0?-.5:.5));f=+(b|0);e=a-f*.6931381225585938;f=f*9.05800061445916e-06;i=12}if((i|0)==12){h=e-f;a=h;h=e-h-f;d=b;i=14}a:do if((i|0)==14){f=a*.5;e=a*f;j=e*(e*1.5807170420885086e-03+-.03333321213722229)+1.0;f=3.0-f*j;f=e*((j-f)/(6.0-a*f));if(!d){a=a-(a*f-e);break}e=a*(f-h)-h-e;switch(d|0){case -1:{a=(a-e)*.5+-.5;break a}case 1:if(a<-.25){a=(e-(a+.5))*-2.0;break a}else{a=(a-e)*2.0+1.0;break a}default:{f=(c[k>>2]=(d<<23)+1065353216,+g[k>>2]);if(d>>>0>56){a=a-e+1.0;a=((d|0)==128?a*2.0*1701411834604692317316873.0e14:f*a)+-1.0;break a}b=127-d<<23;if((d|0)<23)a=1.0-(c[k>>2]=b,+g[k>>2])+(a-e);else a=a-((c[k>>2]=b,+g[k>>2])+e)+1.0;a=f*a;break a}}}while(0);return +a}function Go(a){a=+a;return +(+X(+(a+-162.88958740234375))*1661534994731144841129758.0e11*1661534994731144841129758.0e11)}function Ho(a){a=+a;var b=0.0,d=0.0,e=0;d=((g[k>>2]=a,c[k>>2]|0)|0)<0?-.5:.5;b=+N(+a);e=(g[k>>2]=b,c[k>>2]|0);do if(e>>>0<1118925335){b=+Fo(b);if(e>>>0>=1065353216){a=d*(b+b/(b+1.0));break}if(e>>>0>=964689920)a=d*(b*2.0-b*b/(b+1.0))}else a=d*2.0*+Go(b);while(0);return +a}function Io(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,h=0,l=0,m=0,n=0.0,o=0,p=0.0;o=i;i=i+32|0;if((i|0)>=(j|0))ba();h=o+16|0;l=o+8|0;m=o;n=+g[b>>2];d=+g[b+4>>2];p=+N(+d);e=(g[k>>2]=p,c[k>>2]|0);do if(e){f=(g[k>>2]=n,c[k>>2]|0);p=+N(+n);b=(g[k>>2]=p,c[k>>2]|0);if(!b){p=+R(+d);g[a>>2]=+Q(+d);g[a+4>>2]=p;break}if(e>>>0<=2139095039)if((f+-1118925336|0)>>>0<9342557){g[m>>2]=n;g[m+4>>2]=d;c[h>>2]=c[m>>2];c[h+4>>2]=c[m+4>>2];uo(l,h,0);m=c[l+4>>2]|0;c[a>>2]=c[l>>2];c[a+4>>2]=m;break}else{n=+X(+n);p=n*+R(+d);g[a>>2]=n*+Q(+d);g[a+4>>2]=p;break}if((b|0)!=2139095040){p=d-d;g[a>>2]=p;g[a+4>>2]=p;break}if((f|0)<0){g[a>>2]=0.0;g[a+4>>2]=0.0;break}else{g[a>>2]=n;g[a+4>>2]=d-d;break}}else{g[a>>2]=+X(+n);g[a+4>>2]=d}while(0);i=o;return}function Jo(a,b){a=a|0;b=b|0;var c=0.0;c=-+h[b+8>>3];h[a>>3]=+h[b>>3];h[a+8>>3]=c;return}function Ko(a,b){a=a|0;b=b|0;var d=0.0;d=-+g[b+4>>2];c[a>>2]=c[b>>2];g[a+4>>2]=d;return}function Lo(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,h=0,k=0,l=0;d=i;i=i+32|0;if((i|0)>=(j|0))ba();h=d+16|0;f=d+8|0;k=d;l=c[b>>2]|0;g[k>>2]=-+g[b+4>>2];c[k+4>>2]=l;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];Mo(f,h);e=-+g[f>>2];c[a>>2]=c[f+4>>2];g[a+4>>2]=e;i=d;return}function Mo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,t=0.0,u=0.0;r=i;i=i+32|0;if((i|0)>=(j|0))ba();d=r+16|0;e=r+8|0;f=r;m=+g[b>>2];h=b+4|0;n=+g[h>>2];o=(g[k>>2]=m,c[k>>2]|0);t=+N(+m);l=(g[k>>2]=t,c[k>>2]|0);t=+N(+n);p=(g[k>>2]=t,c[k>>2]|0);q=(l|0)<2139095040;do if(q&(p|0)<2139095040){if(!p){g[a>>2]=+Ho(m);g[a+4>>2]=n;break}if((l|0)<1091567616){u=+Ho(m)*+Q(+n);t=+Eo(m)*+R(+n);g[a>>2]=u;g[a+4>>2]=t;break}if((l|0)<1118925336){t=+X(+(+N(+m)))*.5;u=t*+R(+n);g[a>>2]=+Ao(t,m)*+Q(+n);g[a+4>>2]=u;break}if((l|0)<1128313319){g[f>>2]=+N(+m);g[f+4>>2]=n;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];uo(e,d,-1);p=c[e>>2]|0;q=c[e+4>>2]|0;c[b>>2]=p;c[h>>2]=q;u=(c[k>>2]=p,+g[k>>2]);g[a>>2]=u*+Ao(1.0,m);c[a+4>>2]=q;break}else{t=m*1701411834604692317316873.0e14;u=t*t*+R(+n);g[a>>2]=t*+Q(+n);g[a+4>>2]=u;break}}else{e=(p|0)>2139095039;if((l|0)==0&e){u=n-n;g[a>>2]=+Ao(0.0,m*u);g[a+4>>2]=u;break}d=(l|0)>2139095039;if(d&(p|0)==0)if(!(o&8388607)){g[a>>2]=m;g[a+4>>2]=n;break}else{u=+Ao(0.0,n);g[a>>2]=m;g[a+4>>2]=u;break}if(q&e){u=n-n;g[a>>2]=u;g[a+4>>2]=m*u;break}if(!(d&(o&8388607|0)==0)){u=n-n;g[a>>2]=m*m*u;g[a+4>>2]=(m+m)*u;break}if(e){g[a>>2]=m*m;g[a+4>>2]=m*(n-n);break}else{t=m*+Q(+n);u=+R(+n)*s;g[a>>2]=t;g[a+4>>2]=u;break}}while(0);i=r;return}function No(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=_(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return (e|0?b:0)|0}function Oo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();f=e;c[f>>2]=d;d=Po(a,b,f)|0;i=e;return d|0}function Po(a,b,c){a=a|0;b=b|0;c=c|0;return Qo(a,2147483647,b,c)|0}function Qo(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+128|0;if((i|0)>=(j|0))ba();g=o+112|0;n=o;h=n;k=9628;l=h+112|0;do{c[h>>2]=c[k>>2];h=h+4|0;k=k+4|0}while((h|0)<(l|0));if((d+-1|0)>>>0>2147483646)if(!d){d=1;m=4}else{c[(eo()|0)>>2]=75;d=-1}else{g=b;m=4}if((m|0)==4){m=-2-g|0;m=d>>>0>m>>>0?m:d;c[n+48>>2]=m;b=n+20|0;c[b>>2]=g;c[n+44>>2]=g;d=g+m|0;g=n+16|0;c[g>>2]=d;c[n+28>>2]=d;d=So(n,e,f)|0;if(m){e=c[b>>2]|0;a[e+(((e|0)==(c[g>>2]|0))<<31>>31)>>0]=0}}i=o;return d|0}function Ro(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;fq(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function So(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+224|0;if((i|0)>=(j|0))ba();p=t+120|0;s=t+80|0;r=t;q=t+136|0;f=s;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[p>>2]=c[e>>2];if((To(0,d,p,r,s)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)n=cp(b)|0;else n=0;e=c[b>>2]|0;o=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){g=b+44|0;h=c[g>>2]|0;c[g>>2]=q;k=b+28|0;c[k>>2]=q;l=b+20|0;c[l>>2]=q;c[e>>2]=80;m=b+16|0;c[m>>2]=q+80;f=To(b,d,p,r,s)|0;if(h){pb[c[b+36>>2]&15](b,0,0)|0;f=(c[l>>2]|0)==0?-1:f;c[g>>2]=h;c[e>>2]=0;c[m>>2]=0;c[k>>2]=0;c[l>>2]=0}}else f=To(b,d,p,r,s)|0;e=c[b>>2]|0;c[b>>2]=e|o;if(n|0)ho(b);e=(e&32|0)==0?f:-1}i=t;return e|0}function To(e,f,g,l,m){e=e|0;f=f|0;g=g|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,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,$=0,aa=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0;ka=i;i=i+624|0;if((i|0)>=(j|0))ba();fa=ka+24|0;ha=ka+16|0;ga=ka+588|0;ca=ka+576|0;ea=ka;X=ka+536|0;ja=ka+8|0;ia=ka+528|0;N=(e|0)!=0;O=X+40|0;W=O;X=X+39|0;Y=ja+4|0;Z=ga;$=0-Z|0;aa=ca+12|0;ca=ca+11|0;da=aa;P=da-Z|0;Q=-2-Z|0;R=da+2|0;S=fa+288|0;T=ga+9|0;U=T;V=ga+8|0;n=0;p=0;o=0;z=f;a:while(1){do if((n|0)>-1)if((p|0)>(2147483647-n|0)){c[(eo()|0)>>2]=75;n=-1;break}else{n=p+n|0;break}while(0);f=a[z>>0]|0;if(!(f<<24>>24)){M=244;break}else p=z;b:while(1){switch(f<<24>>24){case 37:{f=p;M=9;break b}case 0:{f=p;break b}default:{}}L=p+1|0;f=a[L>>0]|0;p=L}c:do if((M|0)==9)while(1){M=0;if((a[f+1>>0]|0)!=37)break c;p=p+1|0;f=f+2|0;if((a[f>>0]|0)==37)M=9;else break}while(0);x=p-z|0;if(N?(c[e>>2]&32|0)==0:0)Uo(z,x,e)|0;if((p|0)!=(z|0)){p=x;z=f;continue}s=f+1|0;p=a[s>>0]|0;q=(p<<24>>24)+-48|0;if(q>>>0<10){L=(a[f+2>>0]|0)==36;s=L?f+3|0:s;p=a[s>>0]|0;v=L?q:-1;o=L?1:o}else v=-1;f=p<<24>>24;d:do if((f&-32|0)==32){q=0;while(1){if(!(1<<f+-32&75913)){t=q;break d}q=1<<(p<<24>>24)+-32|q;s=s+1|0;p=a[s>>0]|0;f=p<<24>>24;if((f&-32|0)!=32){t=q;break}}}else t=0;while(0);do if(p<<24>>24==42){p=s+1|0;f=(a[p>>0]|0)+-48|0;if(f>>>0<10?(a[s+2>>0]|0)==36:0){c[m+(f<<2)>>2]=10;o=1;s=s+3|0;f=c[l+((a[p>>0]|0)+-48<<3)>>2]|0}else{if(o|0){n=-1;break a}if(!N){w=t;o=0;s=p;L=0;break}o=(c[g>>2]|0)+(4-1)&~(4-1);f=c[o>>2]|0;c[g>>2]=o+4;o=0;s=p}if((f|0)<0){w=t|8192;L=0-f|0}else{w=t;L=f}}else{q=(p<<24>>24)+-48|0;if(q>>>0<10){f=s;p=0;do{p=(p*10|0)+q|0;f=f+1|0;q=(a[f>>0]|0)+-48|0}while(q>>>0<10);if((p|0)<0){n=-1;break a}else{w=t;s=f;L=p}}else{w=t;L=0}}while(0);e:do if((a[s>>0]|0)==46){f=s+1|0;p=a[f>>0]|0;if(p<<24>>24!=42){q=(p<<24>>24)+-48|0;if(q>>>0<10)p=0;else{t=0;break}while(1){p=(p*10|0)+q|0;f=f+1|0;q=(a[f>>0]|0)+-48|0;if(q>>>0>=10){t=p;break e}}}f=s+2|0;p=(a[f>>0]|0)+-48|0;if(p>>>0<10?(a[s+3>>0]|0)==36:0){c[m+(p<<2)>>2]=10;t=c[l+((a[f>>0]|0)+-48<<3)>>2]|0;f=s+4|0;break}if(o|0){n=-1;break a}if(N){K=(c[g>>2]|0)+(4-1)&~(4-1);t=c[K>>2]|0;c[g>>2]=K+4}else t=0}else{t=-1;f=s}while(0);u=0;while(1){p=(a[f>>0]|0)+-65|0;if(p>>>0>57){n=-1;break a}q=f+1|0;p=a[42621+(u*58|0)+p>>0]|0;s=p&255;if((s+-1|0)>>>0<8){f=q;u=s}else{K=q;break}}if(!(p<<24>>24)){n=-1;break}q=(v|0)>-1;do if(p<<24>>24==19)if(q){n=-1;break a}else M=52;else{if(q){c[m+(v<<2)>>2]=s;I=l+(v<<3)|0;J=c[I+4>>2]|0;M=ea;c[M>>2]=c[I>>2];c[M+4>>2]=J;M=52;break}if(!N){n=0;break a}Wo(ea,s,g)}while(0);if((M|0)==52?(M=0,!N):0){p=x;z=K;continue}v=a[f>>0]|0;v=(u|0)!=0&(v&15|0)==3?v&-33:v;q=w&-65537;J=(w&8192|0)==0?w:q;f:do switch(v|0){case 110:switch(u|0){case 0:{c[c[ea>>2]>>2]=n;p=x;z=K;continue a}case 1:{c[c[ea>>2]>>2]=n;p=x;z=K;continue a}case 2:{p=c[ea>>2]|0;c[p>>2]=n;c[p+4>>2]=((n|0)<0)<<31>>31;p=x;z=K;continue a}case 3:{b[c[ea>>2]>>1]=n;p=x;z=K;continue a}case 4:{a[c[ea>>2]>>0]=n;p=x;z=K;continue a}case 6:{c[c[ea>>2]>>2]=n;p=x;z=K;continue a}case 7:{p=c[ea>>2]|0;c[p>>2]=n;c[p+4>>2]=((n|0)<0)<<31>>31;p=x;z=K;continue a}default:{p=x;z=K;continue a}}case 112:{u=J|8;t=t>>>0>8?t:8;v=120;M=64;break}case 88:case 120:{u=J;M=64;break}case 111:{q=ea;p=c[q>>2]|0;q=c[q+4>>2]|0;if((p|0)==0&(q|0)==0)f=O;else{f=O;do{f=f+-1|0;a[f>>0]=p&7|48;p=hq(p|0,q|0,3)|0;q=C}while(!((p|0)==0&(q|0)==0))}if(!(J&8)){p=J;u=0;s=43101;M=77}else{u=W-f|0;p=J;t=(t|0)>(u|0)?t:u+1|0;u=0;s=43101;M=77}break}case 105:case 100:{p=ea;f=c[p>>2]|0;p=c[p+4>>2]|0;if((p|0)<0){f=cq(0,0,f|0,p|0)|0;p=C;q=ea;c[q>>2]=f;c[q+4>>2]=p;q=1;s=43101;M=76;break f}if(!(J&2048)){s=J&1;q=s;s=(s|0)==0?43101:43103;M=76}else{q=1;s=43102;M=76}break}case 117:{p=ea;f=c[p>>2]|0;p=c[p+4>>2]|0;q=0;s=43101;M=76;break}case 99:{a[X>>0]=c[ea>>2];f=X;v=1;x=0;w=43101;p=O;break}case 109:{p=Yo(c[(eo()|0)>>2]|0)|0;M=82;break}case 115:{p=c[ea>>2]|0;p=p|0?p:45003;M=82;break}case 67:{c[ja>>2]=c[ea>>2];c[Y>>2]=0;c[ea>>2]=ja;f=ja;t=-1;M=86;break}case 83:{f=c[ea>>2]|0;if(!t){Zo(e,32,L,0,J);f=0;M=97}else M=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{r=+h[ea>>3];c[ha>>2]=0;h[k>>3]=r;if((c[k+4>>2]|0)>=0)if(!(J&2048)){I=J&1;H=I;I=(I|0)==0?45011:45016}else{H=1;I=45013}else{r=-r;H=1;I=45010}h[k>>3]=r;G=c[k+4>>2]&2146435072;do if(G>>>0<2146435072|(G|0)==2146435072&0<0){y=+ap(r,ha)*2.0;p=y!=0.0;if(p)c[ha>>2]=(c[ha>>2]|0)+-1;E=v|32;if((E|0)==97){w=v&32;z=(w|0)==0?I:I+9|0;x=H|2;f=12-t|0;do if(!(t>>>0>11|(f|0)==0)){r=8.0;do{f=f+-1|0;r=r*16.0}while((f|0)!=0);if((a[z>>0]|0)==45){r=-(r+(-y-r));break}else{r=y+r-r;break}}else r=y;while(0);p=c[ha>>2]|0;f=(p|0)<0?0-p|0:p;f=Xo(f,((f|0)<0)<<31>>31,aa)|0;if((f|0)==(aa|0)){a[ca>>0]=48;f=ca}a[f+-1>>0]=(p>>31&2)+43;u=f+-2|0;a[u>>0]=v+15;s=(t|0)<1;q=(J&8|0)==0;p=ga;while(1){I=~~r;f=p+1|0;a[p>>0]=d[43085+I>>0]|w;r=(r-+(I|0))*16.0;do if((f-Z|0)==1){if(q&(s&r==0.0))break;a[f>>0]=46;f=p+2|0}while(0);if(!(r!=0.0))break;else p=f}q=u;t=(t|0)!=0&(Q+f|0)<(t|0)?R+t-q|0:P-q+f|0;s=t+x|0;Zo(e,32,L,s,J);if(!(c[e>>2]&32))Uo(z,x,e)|0;Zo(e,48,L,s,J^65536);p=f-Z|0;if(!(c[e>>2]&32))Uo(ga,p,e)|0;f=da-q|0;Zo(e,48,t-(p+f)|0,0,0);if(!(c[e>>2]&32))Uo(u,f,e)|0;Zo(e,32,L,s,J^8192);f=(s|0)<(L|0)?L:s;break}f=(t|0)<0?6:t;if(p){p=(c[ha>>2]|0)+-28|0;c[ha>>2]=p;r=y*268435456.0}else{r=y;p=c[ha>>2]|0}G=(p|0)<0?fa:S;F=G;p=G;do{D=~~r>>>0;c[p>>2]=D;p=p+4|0;r=(r-+(D>>>0))*1.0e9}while(r!=0.0);q=p;p=c[ha>>2]|0;if((p|0)>0){t=G;while(1){u=(p|0)>29?29:p;s=q+-4|0;do if(s>>>0<t>>>0)s=t;else{p=0;do{D=jq(c[s>>2]|0,0,u|0)|0;D=iq(D|0,C|0,p|0,0)|0;p=C;B=rq(D|0,p|0,1e9,0)|0;c[s>>2]=B;p=qq(D|0,p|0,1e9,0)|0;s=s+-4|0}while(s>>>0>=t>>>0);if(!p){s=t;break}s=t+-4|0;c[s>>2]=p}while(0);while(1){if(q>>>0<=s>>>0)break;p=q+-4|0;if(!(c[p>>2]|0))q=p;else break}p=(c[ha>>2]|0)-u|0;c[ha>>2]=p;if((p|0)>0)t=s;else break}}else s=G;if((p|0)<0){z=((f+25|0)/9|0)+1|0;A=(E|0)==102;w=s;while(1){x=0-p|0;x=(x|0)>9?9:x;do if(w>>>0<q>>>0){p=(1<<x)+-1|0;t=1e9>>>x;s=0;u=w;do{D=c[u>>2]|0;c[u>>2]=(D>>>x)+s;s=_(D&p,t)|0;u=u+4|0}while(u>>>0<q>>>0);p=(c[w>>2]|0)==0?w+4|0:w;if(!s){s=p;break}c[q>>2]=s;s=p;q=q+4|0}else s=(c[w>>2]|0)==0?w+4|0:w;while(0);p=A?G:s;q=(q-p>>2|0)>(z|0)?p+(z<<2)|0:q;p=(c[ha>>2]|0)+x|0;c[ha>>2]=p;if((p|0)>=0){A=s;break}else w=s}}else A=s;do if(A>>>0<q>>>0){p=(F-A>>2)*9|0;t=c[A>>2]|0;if(t>>>0<10)break;else s=10;do{s=s*10|0;p=p+1|0}while(t>>>0>=s>>>0)}else p=0;while(0);B=(E|0)==103;D=(f|0)!=0;s=f-((E|0)!=102?p:0)+((D&B)<<31>>31)|0;if((s|0)<(((q-F>>2)*9|0)+-9|0)){u=s+9216|0;s=G+4+(((u|0)/9|0)+-1024<<2)|0;u=((u|0)%9|0)+1|0;if((u|0)<9){t=10;do{t=t*10|0;u=u+1|0}while((u|0)!=9)}else t=10;x=c[s>>2]|0;z=(x>>>0)%(t>>>0)|0;u=(s+4|0)==(q|0);do if(u&(z|0)==0)t=A;else{y=(((x>>>0)/(t>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;w=(t|0)/2|0;if(z>>>0<w>>>0)r=.5;else r=u&(z|0)==(w|0)?1.0:1.5;do if(H){if((a[I>>0]|0)!=45)break;y=-y;r=-r}while(0);u=x-z|0;c[s>>2]=u;if(!(y+r!=y)){t=A;break}E=u+t|0;c[s>>2]=E;if(E>>>0>999999999){p=A;while(1){t=s+-4|0;c[s>>2]=0;if(t>>>0<p>>>0){p=p+-4|0;c[p>>2]=0}E=(c[t>>2]|0)+1|0;c[t>>2]=E;if(E>>>0>999999999)s=t;else{w=p;s=t;break}}}else w=A;p=(F-w>>2)*9|0;u=c[w>>2]|0;if(u>>>0<10){t=w;break}else t=10;do{t=t*10|0;p=p+1|0}while(u>>>0>=t>>>0);t=w}while(0);E=s+4|0;A=t;q=q>>>0>E>>>0?E:q}x=0-p|0;while(1){if(q>>>0<=A>>>0){z=0;E=q;break}s=q+-4|0;if(!(c[s>>2]|0))q=s;else{z=1;E=q;break}}do if(B){f=(D&1^1)+f|0;if((f|0)>(p|0)&(p|0)>-5){v=v+-1|0;f=f+-1-p|0}else{v=v+-2|0;f=f+-1|0}q=J&8;if(q|0)break;do if(z){q=c[E+-4>>2]|0;if(!q){s=9;break}if(!((q>>>0)%10|0)){t=10;s=0}else{s=0;break}do{t=t*10|0;s=s+1|0}while(!((q>>>0)%(t>>>0)|0|0))}else s=9;while(0);q=((E-F>>2)*9|0)+-9|0;if((v|32|0)==102){q=q-s|0;q=(q|0)<0?0:q;f=(f|0)<(q|0)?f:q;q=0;break}else{q=q+p-s|0;q=(q|0)<0?0:q;f=(f|0)<(q|0)?f:q;q=0;break}}else q=J&8;while(0);w=f|q;t=(w|0)!=0&1;u=(v|32|0)==102;if(u){p=(p|0)>0?p:0;v=0}else{s=(p|0)<0?x:p;s=Xo(s,((s|0)<0)<<31>>31,aa)|0;if((da-s|0)<2)do{s=s+-1|0;a[s>>0]=48}while((da-s|0)<2);a[s+-1>>0]=(p>>31&2)+43;F=s+-2|0;a[F>>0]=v;p=da-F|0;v=F}x=H+1+f+t+p|0;Zo(e,32,L,x,J);if(!(c[e>>2]&32))Uo(I,H,e)|0;Zo(e,48,L,x,J^65536);do if(u){s=A>>>0>G>>>0?G:A;p=s;do{q=Xo(c[p>>2]|0,0,T)|0;do if((p|0)==(s|0)){if((q|0)!=(T|0))break;a[V>>0]=48;q=V}else{if(q>>>0<=ga>>>0)break;eq(ga|0,48,q-Z|0)|0;do q=q+-1|0;while(q>>>0>ga>>>0)}while(0);if(!(c[e>>2]&32))Uo(q,U-q|0,e)|0;p=p+4|0}while(p>>>0<=G>>>0);do if(w|0){if(c[e>>2]&32|0)break;Uo(45054,1,e)|0}while(0);if((f|0)>0&p>>>0<E>>>0){q=p;while(1){p=Xo(c[q>>2]|0,0,T)|0;if(p>>>0>ga>>>0){eq(ga|0,48,p-Z|0)|0;do p=p+-1|0;while(p>>>0>ga>>>0)}if(!(c[e>>2]&32))Uo(p,(f|0)>9?9:f,e)|0;q=q+4|0;p=f+-9|0;if(!((f|0)>9&q>>>0<E>>>0)){f=p;break}else f=p}}Zo(e,48,f+9|0,9,0)}else{u=z?E:A+4|0;if((f|0)>-1){t=(q|0)==0;s=A;do{p=Xo(c[s>>2]|0,0,T)|0;if((p|0)==(T|0)){a[V>>0]=48;p=V}do if((s|0)==(A|0)){q=p+1|0;if(!(c[e>>2]&32))Uo(p,1,e)|0;if(t&(f|0)<1){p=q;break}if(c[e>>2]&32|0){p=q;break}Uo(45054,1,e)|0;p=q}else{if(p>>>0<=ga>>>0)break;eq(ga|0,48,p+$|0)|0;do p=p+-1|0;while(p>>>0>ga>>>0)}while(0);q=U-p|0;if(!(c[e>>2]&32))Uo(p,(f|0)>(q|0)?q:f,e)|0;f=f-q|0;s=s+4|0}while(s>>>0<u>>>0&(f|0)>-1)}Zo(e,48,f+18|0,18,0);if(c[e>>2]&32|0)break;Uo(v,da-v|0,e)|0}while(0);Zo(e,32,L,x,J^8192);f=(x|0)<(L|0)?L:x}else{u=(v&32|0)!=0;t=r!=r|0.0!=0.0;p=t?0:H;s=p+3|0;Zo(e,32,L,s,q);f=c[e>>2]|0;if(!(f&32)){Uo(I,p,e)|0;f=c[e>>2]|0}if(!(f&32))Uo(t?(u?45050:45037):u?45029:45033,3,e)|0;Zo(e,32,L,s,J^8192);f=(s|0)<(L|0)?L:s}while(0);p=f;z=K;continue a}default:{f=z;q=J;v=t;x=0;w=43101;p=O}}while(0);g:do if((M|0)==64){q=ea;p=c[q>>2]|0;q=c[q+4>>2]|0;s=v&32;if(!((p|0)==0&(q|0)==0)){f=O;do{f=f+-1|0;a[f>>0]=d[43085+(p&15)>>0]|s;p=hq(p|0,q|0,4)|0;q=C}while(!((p|0)==0&(q|0)==0));M=ea;if((u&8|0)==0|(c[M>>2]|0)==0&(c[M+4>>2]|0)==0){p=u;u=0;s=43101;M=77}else{p=u;u=2;s=43101+(v>>4)|0;M=77}}else{f=O;p=u;u=0;s=43101;M=77}}else if((M|0)==76){f=Xo(f,p,O)|0;p=J;u=q;M=77}else if((M|0)==82){M=0;J=No(p,0,t)|0;I=(J|0)==0;f=p;v=I?t:J-p|0;x=0;w=43101;p=I?p+t|0:J}else if((M|0)==86){M=0;q=0;p=0;u=f;while(1){s=c[u>>2]|0;if(!s)break;p=_o(ia,s)|0;if((p|0)<0|p>>>0>(t-q|0)>>>0)break;q=p+q|0;if(t>>>0>q>>>0)u=u+4|0;else break}if((p|0)<0){n=-1;break a}Zo(e,32,L,q,J);if(!q){f=0;M=97}else{s=0;while(1){p=c[f>>2]|0;if(!p){f=q;M=97;break g}p=_o(ia,p)|0;s=p+s|0;if((s|0)>(q|0)){f=q;M=97;break g}if(!(c[e>>2]&32))Uo(ia,p,e)|0;if(s>>>0>=q>>>0){f=q;M=97;break}else f=f+4|0}}}while(0);if((M|0)==97){M=0;Zo(e,32,L,f,J^8192);p=(L|0)>(f|0)?L:f;z=K;continue}if((M|0)==77){M=0;q=(t|0)>-1?p&-65537:p;p=ea;p=(c[p>>2]|0)!=0|(c[p+4>>2]|0)!=0;if((t|0)!=0|p){v=(p&1^1)+(W-f)|0;v=(t|0)>(v|0)?t:v;x=u;w=s;p=O}else{f=O;v=0;x=u;w=s;p=O}}u=p-f|0;s=(v|0)<(u|0)?u:v;t=x+s|0;p=(L|0)<(t|0)?t:L;Zo(e,32,p,t,q);if(!(c[e>>2]&32))Uo(w,x,e)|0;Zo(e,48,p,t,q^65536);Zo(e,48,s,u,0);if(!(c[e>>2]&32))Uo(f,u,e)|0;Zo(e,32,p,t,q^8192);z=K}h:do if((M|0)==244)if(!e)if(o){n=1;while(1){o=c[m+(n<<2)>>2]|0;if(!o)break;Wo(l+(n<<3)|0,o,g);n=n+1|0;if((n|0)>=10){n=1;break h}}if((n|0)<10)while(1){if(c[m+(n<<2)>>2]|0){n=-1;break h}n=n+1|0;if((n|0)>=10){n=1;break}}else n=1}else n=0;while(0);i=ka;return n|0}function Uo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(Vo(e)|0)){g=c[f>>2]|0;h=5}else f=0;else h=5;a:do if((h|0)==5){i=e+20|0;f=c[i>>2]|0;h=f;if((g-f|0)>>>0<d>>>0){f=pb[c[e+36>>2]&15](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){f=d;while(1){if(!f){g=h;f=0;break b}g=f+-1|0;if((a[b+g>>0]|0)==10)break;else f=g}if((pb[c[e+36>>2]&15](e,b,f)|0)>>>0<f>>>0)break a;d=d-f|0;b=b+f|0;g=c[i>>2]|0}else{g=h;f=0}while(0);fq(g|0,b|0,d|0)|0;c[i>>2]=(c[i>>2]|0)+d;f=f+d|0}while(0);return f|0}function Vo(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);d=0}else{c[b>>2]=d|32;d=-1}return d|0}function Wo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function Xo(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295)while(1){e=rq(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e|48;e=qq(b|0,c|0,10,0)|0;if(c>>>0>9|(c|0)==9&b>>>0>4294967295){b=e;c=C}else{b=e;break}}if(b)while(1){d=d+-1|0;a[d>>0]=(b>>>0)%10|0|48;if(b>>>0<10)break;else b=(b>>>0)/10|0}return d|0}function Yo(b){b=b|0;var c=0,e=0;c=0;while(1){if((d[43111+c>>0]|0)==(b|0)){e=2;break}c=c+1|0;if((c|0)==87){c=87;b=43199;e=5;break}}if((e|0)==2)if(!c)b=43199;else{b=43199;e=5}if((e|0)==5)while(1){e=b;while(1){b=e+1|0;if(!(a[e>>0]|0))break;else e=b}c=c+-1|0;if(!c)break;else e=5}return b|0}function Zo(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,k=0;k=i;i=i+256|0;if((i|0)>=(j|0))ba();h=k;do if((d|0)>(e|0)&(f&73728|0)==0){f=d-e|0;eq(h|0,b|0,(f>>>0>256?256:f)|0)|0;b=c[a>>2]|0;g=(b&32|0)==0;if(f>>>0>255){e=d-e|0;do{if(g){Uo(h,256,a)|0;b=c[a>>2]|0}f=f+-256|0;g=(b&32|0)==0}while(f>>>0>255);if(g)f=e&255;else break}else if(!g)break;Uo(h,f,a)|0}while(0);i=k;return}function _o(a,b){a=a|0;b=b|0;if(!a)a=0;else a=$o(a,b,0)|0;return a|0}function $o(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(eo()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function ap(a,b){a=+a;b=b|0;return +(+bp(a,b))}function bp(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;f=hq(d|0,e|0,52)|0;f=f&2047;switch(f|0){case 0:{if(a!=0.0){a=+bp(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=f+-1022;c[k>>2]=d;c[k+4>>2]=e&-2146435073|1071644672;a=+h[k>>3]}}return +a}function cp(a){a=a|0;return 0}function dp(b,c){b=b|0;c=c|0;var d=0,e=0;e=a[b>>0]|0;d=a[c>>0]|0;if(e<<24>>24==0?1:e<<24>>24!=d<<24>>24)c=e;else{do{b=b+1|0;c=c+1|0;e=a[b>>0]|0;d=a[c>>0]|0}while(!(e<<24>>24==0?1:e<<24>>24!=d<<24>>24));c=e}return (c&255)-(d&255)|0}function ep(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;if((i|0)>=(j|0))ba();d=b;c[d>>2]=a;a=cb(6,d|0)|0;a=co((a|0)==-4?-115:a)|0;i=b;return a|0}function fp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;if((i|0)>=(j|0))ba();f=e;g=e+16|0;c[g>>2]=d;h=(c[g>>2]|0)+(4-1)&~(4-1);d=c[h>>2]|0;c[g>>2]=h+4;c[f>>2]=a;c[f+4>>2]=b|32768;c[f+8>>2]=d;d=co(db(5,f|0)|0)|0;i=e;return d|0}function gp(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0.0;M=i;i=i+512|0;if((i|0)>=(j|0))ba();I=M;switch(e|0){case 0:{L=24;K=-149;B=4;break}case 1:{L=53;K=-1074;B=4;break}case 2:{L=53;K=-1074;B=4;break}default:g=0.0}a:do if((B|0)==4){F=b+4|0;E=b+100|0;do{e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0}while((so(e)|0)!=0);b:do switch(e|0){case 43:case 45:{h=1-(((e|0)==45&1)<<1)|0;e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0;J=h;break b}else{e=po(b)|0;J=h;break b}}default:J=1}while(0);h=e;e=0;do{if((h|32|0)!=(a[45041+e>>0]|0))break;do if(e>>>0<7){h=c[F>>2]|0;if(h>>>0<(c[E>>2]|0)>>>0){c[F>>2]=h+1;h=d[h>>0]|0;break}else{h=po(b)|0;break}}while(0);e=e+1|0}while(e>>>0<8);c:do switch(e|0){case 8:break;case 3:{B=23;break}default:{l=(f|0)!=0;if(l&e>>>0>3)if((e|0)==8)break c;else{B=23;break c}d:do if(!e){e=0;do{if((h|32|0)!=(a[45050+e>>0]|0))break d;do if(e>>>0<2){h=c[F>>2]|0;if(h>>>0<(c[E>>2]|0)>>>0){c[F>>2]=h+1;h=d[h>>0]|0;break}else{h=po(b)|0;break}}while(0);e=e+1|0}while(e>>>0<3)}while(0);switch(e|0){case 3:{e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;if((e|0)==40)e=1;else{if(!(c[E>>2]|0)){g=r;break a}c[F>>2]=(c[F>>2]|0)+-1;g=r;break a}while(1){h=c[F>>2]|0;if(h>>>0<(c[E>>2]|0)>>>0){c[F>>2]=h+1;h=d[h>>0]|0}else h=po(b)|0;if(!((h+-48|0)>>>0<10|(h+-65|0)>>>0<26)?!((h|0)==95|(h+-97|0)>>>0<26):0)break;e=e+1|0}if((h|0)==41){g=r;break a}h=(c[E>>2]|0)==0;if(!h)c[F>>2]=(c[F>>2]|0)+-1;if(!l){c[(eo()|0)>>2]=22;no(b,0);g=0.0;break a}if(!e){g=r;break a}while(1){e=e+-1|0;if(!h)c[F>>2]=(c[F>>2]|0)+-1;if(!e){g=r;break a}}}case 0:{do if((h|0)==48){e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;if((e|32|0)!=120){if(!(c[E>>2]|0)){e=48;break}c[F>>2]=(c[F>>2]|0)+-1;e=48;break}e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0;l=0}else{e=po(b)|0;l=0}e:while(1){switch(e|0){case 46:{B=74;break e}case 48:break;default:{z=0;m=0;y=0;h=0;o=l;p=0;x=0;n=1.0;l=0;g=0.0;break e}}e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0;l=1;continue}else{e=po(b)|0;l=1;continue}}if((B|0)==74){e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;if((e|0)==48){l=0;h=0;do{e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;l=iq(l|0,h|0,-1,-1)|0;h=C}while((e|0)==48);z=0;m=0;y=l;o=1;p=1;x=0;n=1.0;l=0;g=0.0}else{z=0;m=0;y=0;h=0;o=l;p=1;x=0;n=1.0;l=0;g=0.0}}while(1){v=e+-48|0;q=e|32;if(v>>>0>=10){w=(e|0)==46;if(!(w|(q+-97|0)>>>0<6)){q=y;v=z;break}if(w)if(!p){w=m;h=z;v=z;p=1;q=x;k=n}else{q=y;v=z;e=46;break}else B=86}else B=86;if((B|0)==86){B=0;e=(e|0)>57?q+-87|0:v;do if(!((z|0)<0|(z|0)==0&m>>>0<8)){if((z|0)<0|(z|0)==0&m>>>0<14){u=n*.0625;q=x;k=u;g=g+u*+(e|0);break}if((x|0)!=0|(e|0)==0){q=x;k=n}else{q=1;k=n;g=g+n*.5}}else{q=x;k=n;l=e+(l<<4)|0}while(0);m=iq(m|0,z|0,1,0)|0;w=y;v=C;o=1}e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;z=v;y=w;e=d[e>>0]|0;x=q;n=k;continue}else{z=v;y=w;e=po(b)|0;x=q;n=k;continue}}if(!o){e=(c[E>>2]|0)==0;if(!e)c[F>>2]=(c[F>>2]|0)+-1;if(f){if(!e?(A=c[F>>2]|0,c[F>>2]=A+-1,p|0):0)c[F>>2]=A+-2}else no(b,0);g=+(J|0)*0.0;break a}o=(p|0)==0;p=o?m:q;o=o?v:h;if((v|0)<0|(v|0)==0&m>>>0<8){h=v;do{l=l<<4;m=iq(m|0,h|0,1,0)|0;h=C}while((h|0)<0|(h|0)==0&m>>>0<8)}if((e|32|0)==112){h=hp(b,f)|0;e=C;if((h|0)==0&(e|0)==-2147483648){if(!f){no(b,0);g=0.0;break a}if(!(c[E>>2]|0)){h=0;e=0}else{c[F>>2]=(c[F>>2]|0)+-1;h=0;e=0}}}else if(!(c[E>>2]|0)){h=0;e=0}else{c[F>>2]=(c[F>>2]|0)+-1;h=0;e=0}I=jq(p|0,o|0,2)|0;I=iq(I|0,C|0,-32,-1)|0;e=iq(I|0,C|0,h|0,e|0)|0;h=C;if(!l){g=+(J|0)*0.0;break a}if((h|0)>0|(h|0)==0&e>>>0>(0-K|0)>>>0){c[(eo()|0)>>2]=34;g=+(J|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break a}I=K+-106|0;H=((I|0)<0)<<31>>31;if((h|0)<(H|0)|(h|0)==(H|0)&e>>>0<I>>>0){c[(eo()|0)>>2]=34;g=+(J|0)*2.2250738585072014e-308*2.2250738585072014e-308;break a}if((l|0)>-1){do{H=!(g>=.5);I=H&1|l<<1;l=I^1;g=g+(H?g:g+-1.0);e=iq(e|0,h|0,-1,-1)|0;h=C}while((I|0)>-1);m=e;n=g}else{m=e;n=g}e=cq(32,0,K|0,((K|0)<0)<<31>>31|0)|0;e=iq(m|0,h|0,e|0,C|0)|0;K=C;if(0>(K|0)|0==(K|0)&L>>>0>e>>>0)if((e|0)<0){e=0;B=127}else B=125;else{e=L;B=125}if((B|0)==125)if((e|0)<53)B=127;else{h=e;k=+(J|0);g=0.0}if((B|0)==127){g=+(J|0);h=e;k=g;g=+jp(+ip(1.0,84-e|0),g)}L=(l&1|0)==0&(n!=0.0&(h|0)<32);g=k*(L?0.0:n)+(g+k*+(((L&1)+l|0)>>>0))-g;if(!(g!=0.0))c[(eo()|0)>>2]=34;g=+kp(g,m);break a}else e=h;while(0);G=K+L|0;H=0-G|0;l=0;f:while(1){switch(e|0){case 46:{B=138;break f}case 48:break;default:{h=0;q=0;p=0;break f}}e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0;l=1;continue}else{e=po(b)|0;l=1;continue}}if((B|0)==138){e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;if((e|0)==48){h=0;e=0;while(1){h=iq(h|0,e|0,-1,-1)|0;l=C;e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;if((e|0)==48)e=l;else{q=l;l=1;p=1;break}}}else{h=0;q=0;p=1}}c[I>>2]=0;o=e+-48|0;m=(e|0)==46;g:do if(m|o>>>0<10){D=I+496|0;z=0;w=0;x=m;B=q;v=l;A=p;l=0;m=0;p=0;h:while(1){do if(x)if(!A){h=z;q=w;A=1}else{q=B;e=z;o=w;break h}else{x=iq(z|0,w|0,1,0)|0;w=C;y=(e|0)!=48;if((m|0)>=125){if(!y){q=B;z=x;break}c[D>>2]=c[D>>2]|1;q=B;z=x;break}q=I+(m<<2)|0;if(l)o=e+-48+((c[q>>2]|0)*10|0)|0;c[q>>2]=o;l=l+1|0;o=(l|0)==9;q=B;z=x;v=1;l=o?0:l;m=(o&1)+m|0;p=y?x:p}while(0);e=c[F>>2]|0;if(e>>>0<(c[E>>2]|0)>>>0){c[F>>2]=e+1;e=d[e>>0]|0}else e=po(b)|0;o=e+-48|0;x=(e|0)==46;if(!(x|o>>>0<10)){o=A;B=161;break g}else B=q}v=(v|0)!=0;B=169}else{z=0;w=0;v=l;o=p;l=0;m=0;p=0;B=161}while(0);do if((B|0)==161){D=(o|0)==0;h=D?z:h;q=D?w:q;v=(v|0)!=0;if(!((e|32|0)==101&v))if((e|0)>-1){e=z;o=w;B=169;break}else{e=z;o=w;B=171;break}o=hp(b,f)|0;e=C;if((o|0)==0&(e|0)==-2147483648){if(!f){no(b,0);g=0.0;break}if(!(c[E>>2]|0)){o=0;e=0}else{c[F>>2]=(c[F>>2]|0)+-1;o=0;e=0}}h=iq(o|0,e|0,h|0,q|0)|0;v=z;q=C;o=w;B=173}while(0);if((B|0)==169)if(c[E>>2]|0){c[F>>2]=(c[F>>2]|0)+-1;if(v){v=e;B=173}else B=172}else B=171;if((B|0)==171)if(v){v=e;B=173}else B=172;do if((B|0)==172){c[(eo()|0)>>2]=22;no(b,0);g=0.0}else if((B|0)==173){e=c[I>>2]|0;if(!e){g=+(J|0)*0.0;break}if(((o|0)<0|(o|0)==0&v>>>0<10)&((h|0)==(v|0)&(q|0)==(o|0))?L>>>0>30|(e>>>L|0)==0:0){g=+(J|0)*+(e>>>0);break}b=(K|0)/-2|0;F=((b|0)<0)<<31>>31;if((q|0)>(F|0)|(q|0)==(F|0)&h>>>0>b>>>0){c[(eo()|0)>>2]=34;g=+(J|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}b=K+-106|0;F=((b|0)<0)<<31>>31;if((q|0)<(F|0)|(q|0)==(F|0)&h>>>0<b>>>0){c[(eo()|0)>>2]=34;g=+(J|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(l){if((l|0)<9){o=I+(m<<2)|0;e=c[o>>2]|0;do{e=e*10|0;l=l+1|0}while((l|0)!=9);c[o>>2]=e}m=m+1|0}if((p|0)<9?(p|0)<=(h|0)&(h|0)<18:0){if((h|0)==9){g=+(J|0)*+((c[I>>2]|0)>>>0);break}if((h|0)<9){g=+(J|0)*+((c[I>>2]|0)>>>0)/+(c[9740+(8-h<<2)>>2]|0);break}b=L+27+(_(h,-3)|0)|0;e=c[I>>2]|0;if((b|0)>30|(e>>>b|0)==0){g=+(J|0)*+(e>>>0)*+(c[9740+(h+-10<<2)>>2]|0);break}}e=(h|0)%9|0;if(!e){l=0;e=0}else{v=(h|0)>-1?e:e+9|0;o=c[9740+(8-v<<2)>>2]|0;if(m){p=1e9/(o|0)|0;l=0;e=0;q=0;do{E=I+(q<<2)|0;F=c[E>>2]|0;b=((F>>>0)/(o>>>0)|0)+e|0;c[E>>2]=b;e=_((F>>>0)%(o>>>0)|0,p)|0;b=(q|0)==(l|0)&(b|0)==0;q=q+1|0;h=b?h+-9|0:h;l=b?q&127:l}while((q|0)!=(m|0));if(e){c[I+(m<<2)>>2]=e;m=m+1|0}}else{l=0;m=0}e=0;h=9-v+h|0}i:while(1){w=(h|0)<18;x=(h|0)==18;y=I+(l<<2)|0;do{if(!w){if(!x){z=m;break i}if((c[y>>2]|0)>>>0>=9007199){h=18;z=m;break i}}o=0;p=m+127|0;while(1){v=p&127;q=I+(v<<2)|0;p=jq(c[q>>2]|0,0,29)|0;p=iq(p|0,C|0,o|0,0)|0;o=C;if(o>>>0>0|(o|0)==0&p>>>0>1e9){b=qq(p|0,o|0,1e9,0)|0;p=rq(p|0,o|0,1e9,0)|0;o=b}else o=0;c[q>>2]=p;b=(v|0)==(l|0);m=(v|0)!=(m+127&127|0)|b?m:(p|0)==0?v:m;if(b)break;else p=v+-1|0}e=e+-29|0}while((o|0)==0);l=l+127&127;if((l|0)==(m|0)){b=m+127&127;m=I+((m+126&127)<<2)|0;c[m>>2]=c[m>>2]|c[I+(b<<2)>>2];m=b}c[I+(l<<2)>>2]=o;h=h+9|0}j:while(1){m=z+1&127;y=I+((z+127&127)<<2)|0;while(1){w=(h|0)==18;x=(h|0)>27?9:1;v=w^1;while(1){p=l&127;q=(p|0)==(z|0);do if(!q){o=c[I+(p<<2)>>2]|0;if(o>>>0<9007199){B=219;break}if(o>>>0>9007199)break;o=l+1&127;if((o|0)==(z|0)){B=219;break}o=c[I+(o<<2)>>2]|0;if(o>>>0<254740991){B=219;break}if(!(o>>>0>254740991|v)){h=p;m=z;break j}}else B=219;while(0);if((B|0)==219?(B=0,w):0){B=220;break j}e=e+x|0;if((l|0)==(z|0))l=z;else break}v=(1<<x)+-1|0;w=1e9>>>x;p=l;o=0;q=l;while(1){F=I+(q<<2)|0;b=c[F>>2]|0;l=(b>>>x)+o|0;c[F>>2]=l;o=_(b&v,w)|0;l=(q|0)==(p|0)&(l|0)==0;q=q+1&127;h=l?h+-9|0:h;l=l?q:p;if((q|0)==(z|0))break;else p=l}if(!o)continue;if((m|0)!=(l|0))break;c[y>>2]=c[y>>2]|1}c[I+(z<<2)>>2]=o;z=m}if((B|0)==220)if(q){c[I+(m+-1<<2)>>2]=0;h=z}else{h=p;m=z}g=+((c[I+(h<<2)>>2]|0)>>>0);h=l+1&127;if((h|0)==(m|0)){m=l+2&127;c[I+(m+-1<<2)>>2]=0}u=+(J|0);k=u*(g*1.0e9+ +((c[I+(h<<2)>>2]|0)>>>0));w=e+53|0;q=w-K|0;v=(q|0)<(L|0);h=v&1;p=v?((q|0)<0?0:q):L;if((p|0)<53){O=+jp(+ip(1.0,105-p|0),k);n=+lp(k,+ip(1.0,53-p|0));t=O;g=n;n=O+(k-n)}else{t=0.0;g=0.0;n=k}o=l+2&127;do if((o|0)==(m|0))k=g;else{o=c[I+(o<<2)>>2]|0;do if(o>>>0>=5e8){if(o>>>0>5e8){g=u*.75+g;break}if((l+3&127|0)==(m|0)){g=u*.5+g;break}else{g=u*.75+g;break}}else{if((o|0)==0?(l+3&127|0)==(m|0):0)break;g=u*.25+g}while(0);if((53-p|0)<=1){k=g;break}if(+lp(g,1.0)!=0.0){k=g;break}k=g+1.0}while(0);g=n+k-t;do if((w&2147483647|0)>(-2-G|0)){if(+N(+g)>=9007199254740992.0){h=v&(p|0)==(q|0)?0:h;e=e+1|0;g=g*.5}if((e+50|0)<=(H|0)?!(k!=0.0&(h|0)!=0):0)break;c[(eo()|0)>>2]=34}while(0);g=+kp(g,e)}while(0);break a}default:{if(c[E>>2]|0)c[F>>2]=(c[F>>2]|0)+-1;c[(eo()|0)>>2]=22;no(b,0);g=0.0;break a}}}}while(0);if((B|0)==23){h=(c[E>>2]|0)==0;if(!h)c[F>>2]=(c[F>>2]|0)+-1;if((f|0)!=0&e>>>0>3)do{if(!h)c[F>>2]=(c[F>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}g=+(J|0)*s}while(0);i=M;return +g}function hp(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=a+4|0;e=c[i>>2]|0;j=a+100|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=po(a)|0;switch(e|0){case 43:case 45:{f=(e|0)==45&1;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=po(a)|0;if((b|0)!=0&(e+-48|0)>>>0>9?(c[j>>2]|0)!=0:0){c[i>>2]=(c[i>>2]|0)+-1;h=f}else h=f;break}default:h=0}if((e+-48|0)>>>0>9)if(!(c[j>>2]|0)){f=-2147483648;e=0}else{c[i>>2]=(c[i>>2]|0)+-1;f=-2147483648;e=0}else{f=0;do{f=e+-48+(f*10|0)|0;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=po(a)|0}while((e+-48|0)>>>0<10&(f|0)<214748364);b=((f|0)<0)<<31>>31;if((e+-48|0)>>>0<10){do{b=pq(f|0,b|0,10,0)|0;f=C;e=iq(e|0,((e|0)<0)<<31>>31|0,-48,-1)|0;f=iq(e|0,C|0,b|0,f|0)|0;b=C;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=po(a)|0}while((e+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&f>>>0<2061584302));g=f}else g=f;if((e+-48|0)>>>0<10)do{e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=po(a)|0}while((e+-48|0)>>>0<10);if(c[j>>2]|0)c[i>>2]=(c[i>>2]|0)+-1;a=(h|0)!=0;e=cq(0,0,g|0,b|0)|0;f=a?C:b;e=a?e:g}C=f;return e|0}function ip(a,b){a=+a;b=b|0;var d=0;if((b|0)>1023){a=a*8988465674311579538646525.0e283;d=b+-1023|0;if((d|0)>1023){d=b+-2046|0;d=(d|0)>1023?1023:d;a=a*8988465674311579538646525.0e283}}else if((b|0)<-1022){a=a*2.2250738585072014e-308;d=b+1022|0;if((d|0)<-1022){d=b+2044|0;d=(d|0)<-1022?-1022:d;a=a*2.2250738585072014e-308}}else d=b;d=jq(d+1023|0,0,52)|0;b=C;c[k>>2]=d;c[k+4>>2]=b;return +(a*+h[k>>3])}function jp(a,b){a=+a;b=+b;return +(+yo(a,b))}function kp(a,b){a=+a;b=b|0;return +(+ip(a,b))}function lp(a,b){a=+a;b=+b;return +(+mp(a,b))}function mp(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0;h[k>>3]=a;d=c[k>>2]|0;m=c[k+4>>2]|0;h[k>>3]=b;n=c[k>>2]|0;o=c[k+4>>2]|0;e=hq(d|0,m|0,52)|0;e=e&2047;j=hq(n|0,o|0,52)|0;j=j&2047;p=m&-2147483648;i=jq(n|0,o|0,1)|0;l=C;a:do if(!((i|0)==0&(l|0)==0)?(r=+N(+b),h[k>>3]=r,g=c[k+4>>2]|0,!(g>>>0>2146435072|(g|0)==2146435072&(c[k>>2]|0)>>>0>0|(e|0)==2047)):0){f=jq(d|0,m|0,1)|0;g=C;if(!(g>>>0>l>>>0|(g|0)==(l|0)&f>>>0>i>>>0))return +((f|0)==(i|0)&(g|0)==(l|0)?a*0.0:a);if(!e){e=jq(d|0,m|0,12)|0;f=C;if((f|0)>-1|(f|0)==-1&e>>>0>4294967295){g=e;e=0;do{e=e+-1|0;g=jq(g|0,f|0,1)|0;f=C}while((f|0)>-1|(f|0)==-1&g>>>0>4294967295)}else e=0;d=jq(d|0,m|0,1-e|0)|0;f=C}else f=m&1048575|1048576;if(!j){g=jq(n|0,o|0,12)|0;i=C;if((i|0)>-1|(i|0)==-1&g>>>0>4294967295){j=0;do{j=j+-1|0;g=jq(g|0,i|0,1)|0;i=C}while((i|0)>-1|(i|0)==-1&g>>>0>4294967295)}else j=0;n=jq(n|0,o|0,1-j|0)|0;m=C}else m=o&1048575|1048576;l=cq(d|0,f|0,n|0,m|0)|0;i=C;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;b:do if((e|0)>(j|0)){while(1){if(g)if((d|0)==(n|0)&(f|0)==(m|0))break;else{d=l;f=i}d=jq(d|0,f|0,1)|0;f=C;e=e+-1|0;l=cq(d|0,f|0,n|0,m|0)|0;i=C;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;if((e|0)<=(j|0))break b}b=a*0.0;break a}while(0);if(g)if((d|0)==(n|0)&(f|0)==(m|0)){b=a*0.0;break}else{f=i;d=l}if(f>>>0<1048576|(f|0)==1048576&d>>>0<0)do{d=jq(d|0,f|0,1)|0;f=C;e=e+-1|0}while(f>>>0<1048576|(f|0)==1048576&d>>>0<0);if((e|0)>0){o=iq(d|0,f|0,0,-1048576)|0;d=C;e=jq(e|0,0,52)|0;d=d|C;e=o|e}else{e=hq(d|0,f|0,1-e|0)|0;d=C}c[k>>2]=e;c[k+4>>2]=d|p;b=+h[k>>3]}else q=3;while(0);if((q|0)==3){b=a*b;b=b/b}return +b}function np(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=b;b=f;while(1){if(!(a[d>>0]|0))break a;d=d+1|0;b=d;if(!(b&3)){b=d;e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function op(){return 9772}function pp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;if((i|0)>=(j|0))ba();g=f;c[g>>2]=e;e=Qo(a,b,d,g)|0;i=f;return e|0}function qp(a){a=+a;var b=0,d=0,e=0.0;d=(g[k>>2]=a,c[k>>2]|0)>>>31;e=+N(+a);b=(g[k>>2]=e,c[k>>2]|0);do if(b>>>0<=2139095039)if(b>>>0<1062731776)if(b>>>0<830472192){a=(a*8.0+a*1.0270333290100098)*.125;break}else{e=a*a;a=(e*(e*(e*(-.005770270247012377-e*2.3763017452438362e-05)+-.028481749817728996)+-.32504209876060486)+.12837916612625122)/(e*(e*(e*(e*(1.324947370449081e-04-e*3.9602282413397916e-06)+5.0813062116503716e-03)+.06502225250005722)+.3979172110557556)+1.0)*a+a;break}else{if(b>>>0<1086324736)a=1.0-+rp(b,a);else a=1.0;a=d|0?-a:a;break}else a=1.0/a+ +(1-(d<<1)|0);while(0);return +a}function rp(a,b){a=a|0;b=+b;var d=0.0,e=0.0,f=0.0,h=0.0;e=+N(+b);if(a>>>0<1067450368){b=e+-1.0;b=.15493708848953247-(b*(b*(b*(b*(b*(.03547830507159233-b*.002166375517845154)+-.11089469492435455)+.31834661960601807)+-.3722078800201416)+.41485610604286194)+-2.3621185682713985e-03)/(b*(b*(b*(b*(b*(b*.011984500102698803+.01363708358258009)+.12617121636867523)+.07182865589857101)+.5403979420661926)+.10642088204622269)+1.0)}else{f=1.0/(e*e);if(a>>>0<1077336941){b=f*(f*(f*(f*(f*(f*(6.570249557495117-f*.06042441353201866)+108.63500213623047)+429.0081481933594)+645.3872680664062)+434.5658874511719)+137.6577606201172)+19.65127182006836;d=f*(f*(f*(f*(f*(f*(-81.28743743896484-f*9.814329147338867)+-184.60508728027344)+-162.39666748046875)+-62.37533187866211)+-10.558626174926758)+-.6938585638999939)+-.009864944033324718}else{b=f*(f*(f*(f*(f*(474.5285339355469-f*22.44095230102539)+2553.05029296875)+3199.858154296875)+1536.7296142578125)+325.7925109863281)+30.33806037902832;d=f*(f*(f*(f*(f*(-1025.0950927734375-f*483.5191955566406)+-637.5664672851562)+-160.63638305664062)+-17.75795555114746)+-.7992832660675049)+-.009864943102002144}h=(c[k>>2]=(g[k>>2]=e,c[k>>2]|0)&-8192,+g[k>>2]);b=+X(+(-.5625-h*h))*+X(+((h-e)*(e+h)+d/(f*b+1.0)))/e}return +b}function sp(a){a=+a;var b=0,d=0,e=0;h[k>>3]=a;b=c[k>>2]|0;d=c[k+4>>2]|0;e=hq(b|0,d|0,52)|0;e=e&2047;switch(e|0){case 0:{b=jq(b|0,d|0,12)|0;d=C;if(!((b|0)==0&(d|0)==0))if((d|0)>-1|(d|0)==-1&b>>>0>4294967295){e=b;b=-1023;do{b=b+-1|0;e=jq(e|0,d|0,1)|0;d=C}while((d|0)>-1|(d|0)==-1&e>>>0>4294967295)}else b=-1023;else b=-2147483648;break}case 2047:{b=(b|0)!=0|(d&1048575|0)!=0?-2147483648:2147483647;break}default:b=e+-1023|0}return b|0}function tp(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0.0,i=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;g=+N(+a);h[k>>3]=g;f=c[k+4>>2]|0;do if(!(f>>>0>2146435072|(f|0)==2146435072&(c[k>>2]|0)>>>0>0)){g=+N(+b);h[k>>3]=g;f=c[k+4>>2]|0;if(!(f>>>0>2146435072|(f|0)==2146435072&(c[k>>2]|0)>>>0>0)){h[k>>3]=b;i=c[k>>2]|0;f=c[k+4>>2]|0;d=hq(d|0,e|0,63)|0;f=hq(i|0,f|0,63)|0;if((d|0)==(f|0)){a=a<b?b:a;break}else{a=(e|0)<0?b:a;break}}}else a=b;while(0);return +a}function up(a,b){a=+a;b=+b;var d=0,e=0.0;d=(g[k>>2]=a,c[k>>2]|0);e=+N(+a);do if((g[k>>2]=e,c[k>>2]|0)>>>0<=2139095040){e=+N(+b);if((g[k>>2]=e,c[k>>2]|0)>>>0<=2139095040)if(((g[k>>2]=b,c[k>>2]|0)^d|0)<0){a=(d|0)<0?b:a;break}else{a=a<b?b:a;break}}else a=b;while(0);return +a}function vp(a){a=+a;var b=0,d=0;b=(g[k>>2]=a,c[k>>2]|0);d=b>>>23&255;switch(d|0){case 0:{d=b<<9;if(d)if((d|0)>-1){b=-127;do{b=b+-1|0;d=d<<1}while((d|0)>-1)}else b=-127;else b=-2147483648;break}case 255:{b=b&8388607|0?-2147483648:2147483647;break}default:b=d+-127|0}return b|0}function wp(a,b){a=+a;b=b|0;var d=0;if((b|0)>127){a=a*1701411834604692317316873.0e14;d=b+-127|0;if((d|0)>127){d=b+-254|0;d=(d|0)>127?127:d;a=a*1701411834604692317316873.0e14}}else if((b|0)<-126){a=a*1.1754943508222875e-38;d=b+126|0;if((d|0)<-126){d=b+252|0;d=(d|0)<-126?-126:d;a=a*1.1754943508222875e-38}}else d=b;return +(a*(c[k>>2]=(d<<23)+1065353216,+g[k>>2]))}function xp(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,j=0.0,l=0.0,m=0.0;h[k>>3]=a;d=c[k>>2]|0;b=c[k+4>>2]|0;e=(b|0)<0;do if(e|b>>>0<1048576){g=+N(+a);h[k>>3]=g;if((c[k>>2]|0)==0&(c[k+4>>2]|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[k>>3]=a*18014398509481984.0;b=c[k+4>>2]|0;e=c[k>>2]|0;d=-1077;f=9;break}}else if(b>>>0<=2146435071)if((d|0)==0&0==0&(b|0)==1072693248)a=0.0;else{e=d;d=-1023;f=9}while(0);if((f|0)==9){f=b+614242|0;c[k>>2]=e;c[k+4>>2]=(f&1048575)+1072079006;j=+h[k>>3]+-1.0;i=j*(j*.5);l=j/(j+2.0);m=l*l;a=m*m;h[k>>3]=j-i;e=c[k+4>>2]|0;c[k>>2]=0;c[k+4>>2]=e;g=+h[k>>3];a=j-g-i+l*(i+(a*(a*(a*.15313837699209373+.22222198432149784)+.3999999999940942)+m*(a*(a*(a*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));m=g*.4342944818781689;i=+(d+(f>>>20)|0);l=i*.30102999566361177;j=l+m;a=j+(m+(l-j)+(a*.4342944818781689+(i*3.694239077158931e-13+(g+a)*2.5082946711645275e-11)))}return +a}function yp(a){a=+a;var b=0,d=0,e=0,f=0.0,h=0.0,i=0.0,j=0.0,l=0.0;b=(g[k>>2]=a,c[k>>2]|0);d=(b|0)<0;do if(b>>>0<8388608|d){f=+N(+a);if(!((g[k>>2]=f,c[k>>2]|0)|0)){a=-1.0/(a*a);break}if(d){a=(a-a)/0.0;break}else{b=(g[k>>2]=a*33554432.0,c[k>>2]|0);d=-152;e=9;break}}else if(b>>>0<=2139095039)if((b|0)==1065353216)a=0.0;else{d=-127;e=9}while(0);if((e|0)==9){e=b+4913933|0;l=(c[k>>2]=(e&8388607)+1060439283,+g[k>>2])+-1.0;j=l/(l+2.0);h=j*j;a=h*h;i=l*(l*.5);f=(c[k>>2]=(g[k>>2]=l-i,c[k>>2]|0)&-4096,+g[k>>2]);a=l-f-i+j*(i+(h*(a*.2849878668785095+.6666666269302368)+a*(a*.24279078841209412+.40000972151756287)));h=+(d+(e>>>23)|0);a=h*.3010292053222656+(f*.434326171875+(a*.434326171875+(h*7.903415166765626e-07-(f+a)*3.168997136526741e-05)))}return +a}function zp(a){a=+a;var b=0;h[k>>3]=a;b=c[k+4>>2]&2146435072;do if(b>>>0<2146435072|(b|0)==2146435072&0<0)if(a==0.0){a=-1.0/(a*a);break}else{a=+(sp(a)|0);break}else a=a*a;while(0);return +a}function Ap(a){a=+a;do if(((g[k>>2]=a,c[k>>2]|0)&2139095040)>>>0<2139095040)if(a==0.0){a=-1.0/(a*a);break}else{a=+(vp(a)|0);break}else a=a*a;while(0);return +a}function Bp(b,c){b=b|0;c=c|0;b=Cp(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function Cp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(np(b)|0)|0;else{if(b&3){e=d&255;do{g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break a;b=b+1|0}while((b&3|0)!=0)}f=_(f,16843009)|0;e=c[b>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009))do{g=e^f;if((g&-2139062144^-2139062144)&g+-16843009|0)break b;b=b+4|0;e=c[b>>2]|0}while(!((e&-2139062144^-2139062144)&e+-16843009|0));while(0);e=d&255;while(1){g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break;else b=b+1|0}}while(0);return b|0}function Dp(){var a=0,b=0;a=i;i=i+16|0;if((i|0)>=(j|0))ba();b=Fa(20,a|0)|0;i=a;return b|0}function Ep(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+32|0;if((i|0)>=(j|0))ba();f=g+16|0;e=g;if(No(45056,a[d>>0]|0,4)|0){h=Fp(d)|0|32768;c[e>>2]=b;c[e+4>>2]=h;c[e+8>>2]=438;e=co(db(5,e|0)|0)|0;if((e|0)>=0){b=Gp(e,d)|0;if(!b){c[f>>2]=e;cb(6,f|0)|0;b=0}}else b=0}else{c[(eo()|0)>>2]=22;b=0}i=g;return b|0}function Fp(b){b=b|0;var c=0,d=0,e=0;d=(Bp(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(Bp(b,120)|0)==0;d=e?d:d|128;b=(Bp(b,101)|0)==0;b=b?d:d|524288;b=c<<24>>24==114?b:b|64;b=c<<24>>24==119?b|512:b;return (c<<24>>24==97?b|1024:b)|0}function Gp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+112|0;if((i|0)>=(j|0))ba();o=p+40|0;m=p+24|0;l=p+16|0;g=p;n=p+52|0;f=a[d>>0]|0;if(No(45056,f<<24>>24,4)|0){e=Xp(1144)|0;if(!e)e=0;else{h=e;k=h+112|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(k|0));if(!(Bp(d,43)|0))c[e>>2]=f<<24>>24==114?8:4;if(Bp(d,101)|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;ya(221,g|0)|0;f=a[d>>0]|0}if(f<<24>>24==97){c[l>>2]=b;c[l+4>>2]=3;f=ya(221,l|0)|0;if(!(f&1024)){c[m>>2]=b;c[m+4>>2]=4;c[m+8>>2]=f|1024;ya(221,m|0)|0}d=c[e>>2]|128;c[e>>2]=d}else d=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+120;c[e+48>>2]=1024;f=e+75|0;a[f>>0]=-1;if((d&8|0)==0?(c[o>>2]=b,c[o+4>>2]=21505,c[o+8>>2]=n,(Xa(54,o|0)|0)==0):0)a[f>>0]=10;c[e+32>>2]=9;c[e+36>>2]=1;c[e+40>>2]=2;c[e+12>>2]=2;if(!(c[11307]|0))c[e+76>>2]=-1;ab(45252);f=c[11312]|0;c[e+56>>2]=f;if(f|0)c[f+52>>2]=e;c[11312]=e;Ya(45252)}}else{c[(eo()|0)>>2]=22;e=0}i=p;return e|0}function Hp(a){a=a|0;var b=0,d=0,e=0;e=(c[a>>2]&1|0)!=0;if(!e){ab(45252);d=c[a+52>>2]|0;b=a+56|0;if(d|0)c[d+56>>2]=c[b>>2];b=c[b>>2]|0;if(b|0)c[b+52>>2]=d;if((c[11312]|0)==(a|0))c[11312]=b;Ya(45252)}b=Ip(a)|0;b=rb[c[a+12>>2]&7](a)|0|b;d=c[a+92>>2]|0;if(d|0)Yp(d);if(!e)Yp(a);return b|0}function Ip(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=Jp(a)|0;break}d=(cp(a)|0)==0;b=Jp(a)|0;if(!d)ho(a)}else{if(!(c[2406]|0))b=0;else b=Ip(c[2406]|0)|0;ab(45252);a=c[11312]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=cp(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=Jp(a)|0|b;if(d|0)ho(a);a=c[a+56>>2]|0}while((a|0)!=0);Ya(45252)}while(0);return b|0}function Jp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;g=a+28|0;if((c[b>>2]|0)>>>0>(c[g>>2]|0)>>>0?(pb[c[a+36>>2]&15](a,0,0)|0,(c[b>>2]|0)==0):0)b=-1;else{h=a+4|0;d=c[h>>2]|0;e=a+8|0;f=c[e>>2]|0;if(d>>>0<f>>>0)pb[c[a+40>>2]&15](a,d-f|0,1)|0;c[a+16>>2]=0;c[g>>2]=0;c[b>>2]=0;c[e>>2]=0;c[h>>2]=0;b=0}return b|0}function Kp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();f=e;c[f>>2]=d;d=So(a,b,f)|0;i=e;return d|0}function Lp(a,b,c){a=a|0;b=b|0;c=c|0;Mp(a,b,c)|0;return a|0}function Mp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;do if(!((g^b)&3)){f=(e|0)!=0;a:do if(f&(g&3|0)!=0)while(1){g=a[d>>0]|0;a[b>>0]=g;if(!(g<<24>>24))break a;e=e+-1|0;d=d+1|0;b=b+1|0;f=(e|0)!=0;if(!(f&(d&3|0)!=0)){h=5;break}}else h=5;while(0);if((h|0)==5)if(!f){e=0;break}if(a[d>>0]|0){b:do if(e>>>0>3)do{f=c[d>>2]|0;if((f&-2139062144^-2139062144)&f+-16843009|0)break b;c[b>>2]=f;e=e+-4|0;d=d+4|0;b=b+4|0}while(e>>>0>3);while(0);h=11}}else h=11;while(0);c:do if((h|0)==11)if(!e)e=0;else while(1){h=a[d>>0]|0;a[b>>0]=h;if(!(h<<24>>24))break c;e=e+-1|0;b=b+1|0;if(!e){e=0;break}else d=d+1|0}while(0);eq(b|0,0,e|0)|0;return b|0}function Np(){var a=0,b=0,d=0;b=45064;b=pq(c[b>>2]|0,c[b+4>>2]|0,1284865837,1481765933)|0;b=iq(b|0,C|0,1,0)|0;a=C;d=45064;c[d>>2]=b;c[d+4>>2]=a;a=hq(b|0,a|0,33)|0;return a|0}function Op(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;if((i|0)>=(j|0))ba();m=n;l=e&255;a[m>>0]=l;g=b+16|0;h=c[g>>2]|0;if(!h)if(!(Vo(b)|0)){h=c[g>>2]|0;k=4}else f=-1;else k=4;do if((k|0)==4){g=b+20|0;k=c[g>>2]|0;if(k>>>0<h>>>0?(f=e&255,(f|0)!=(a[b+75>>0]|0)):0){c[g>>2]=k+1;a[k>>0]=l;break}if((pb[c[b+36>>2]&15](b,m,1)|0)==1)f=d[m>>0]|0;else f=-1}while(0);i=n;return f|0}function Pp(a,b){a=a|0;b=b|0;return (Qp(a,np(a)|0,1,b)|0)+-1|0}function Qp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=_(d,b)|0;if((c[e+76>>2]|0)>-1){g=(cp(e)|0)==0;a=Uo(a,f,e)|0;if(!g)ho(e)}else a=Uo(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function Rp(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;if((i|0)>=(j|0))ba();e=d;c[e>>2]=b;b=So(c[2377]|0,a,e)|0;i=d;return b|0}function Sp(b){b=b|0;var d=0,e=0,f=0,g=0;f=c[2377]|0;if((c[f+76>>2]|0)>-1)g=cp(f)|0;else g=0;do if((Pp(b,f)|0)<0)d=1;else{if((a[f+75>>0]|0)!=10?(d=f+20|0,e=c[d>>2]|0,e>>>0<(c[f+16>>2]|0)>>>0):0){c[d>>2]=e+1;a[e>>0]=10;d=0;break}d=(Op(f,10)|0)<0}while(0);if(g|0)ho(f);return d<<31>>31|0}function Tp(a,b){a=a|0;b=b|0;return +(+Up(a,b,1))}function Up(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,k=0;k=i;i=i+112|0;if((i|0)>=(j|0))ba();h=k;f=h;g=f+112|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));f=h+4|0;c[f>>2]=a;g=h+8|0;c[g>>2]=-1;c[h+44>>2]=a;c[h+76>>2]=-1;no(h,0);e=+gp(h,d,1);d=(c[f>>2]|0)-(c[g>>2]|0)+(c[h+108>>2]|0)|0;if(b|0)c[b>>2]=d|0?a+d|0:a;i=k;return +e}function Vp(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=(b|0)/(d|0)|0;c[a+4>>2]=(b|0)%(d|0)|0;return}function Wp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;if((i|0)>=(j|0))ba();f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;a=co(_a(3,f|0)|0)|0;i=e;return a|0}
function Xp(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;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;j=c[11318]|0;b=j>>>a;if(b&3|0){b=(b&1^1)+a|0;d=45312+(b<<1<<2)|0;e=d+8|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[11322]|0)>>>0)Ca();a=h+12|0;if((c[a>>2]|0)==(f|0)){c[a>>2]=d;c[e>>2]=h;break}else Ca()}else c[11318]=j&~(1<<b);while(0);L=b<<3;c[f+4>>2]=L|3;L=f+L+4|0;c[L>>2]=c[L>>2]|1;L=g;return L|0}h=c[11320]|0;if(o>>>0>h>>>0){if(b|0){d=2<<a;d=b<<a&(d|0-d);d=(d&0-d)+-1|0;i=d>>>12&16;d=d>>>i;f=d>>>5&8;d=d>>>f;g=d>>>2&4;d=d>>>g;e=d>>>1&2;d=d>>>e;b=d>>>1&1;b=(f|i|g|e|b)+(d>>>b)|0;d=45312+(b<<1<<2)|0;e=d+8|0;g=c[e>>2]|0;i=g+8|0;f=c[i>>2]|0;do if((d|0)!=(f|0)){if(f>>>0<(c[11322]|0)>>>0)Ca();a=f+12|0;if((c[a>>2]|0)==(g|0)){c[a>>2]=d;c[e>>2]=f;k=c[11320]|0;break}else Ca()}else{c[11318]=j&~(1<<b);k=h}while(0);h=(b<<3)-o|0;c[g+4>>2]=o|3;e=g+o|0;c[e+4>>2]=h|1;c[e+h>>2]=h;if(k|0){f=c[11323]|0;b=k>>>3;d=45312+(b<<1<<2)|0;a=c[11318]|0;b=1<<b;if(a&b){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[11322]|0)>>>0)Ca();else{l=a;m=b}}else{c[11318]=a|b;l=d+8|0;m=d}c[l>>2]=f;c[m+12>>2]=f;c[f+8>>2]=m;c[f+12>>2]=d}c[11320]=h;c[11323]=e;L=i;return L|0}a=c[11319]|0;if(a){d=(a&0-a)+-1|0;K=d>>>12&16;d=d>>>K;J=d>>>5&8;d=d>>>J;L=d>>>2&4;d=d>>>L;b=d>>>1&2;d=d>>>b;e=d>>>1&1;e=c[45576+((J|K|L|b|e)+(d>>>e)<<2)>>2]|0;d=(c[e+4>>2]&-8)-o|0;b=e;while(1){a=c[b+16>>2]|0;if(!a){a=c[b+20>>2]|0;if(!a){j=e;break}}b=(c[a+4>>2]&-8)-o|0;L=b>>>0<d>>>0;d=L?b:d;b=a;e=L?a:e}g=c[11322]|0;if(j>>>0<g>>>0)Ca();i=j+o|0;if(j>>>0>=i>>>0)Ca();h=c[j+24>>2]|0;e=c[j+12>>2]|0;do if((e|0)==(j|0)){b=j+20|0;a=c[b>>2]|0;if(!a){b=j+16|0;a=c[b>>2]|0;if(!a){n=0;break}}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;b=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;b=e}}if(b>>>0<g>>>0)Ca();else{c[b>>2]=0;n=a;break}}else{f=c[j+8>>2]|0;if(f>>>0<g>>>0)Ca();a=f+12|0;if((c[a>>2]|0)!=(j|0))Ca();b=e+8|0;if((c[b>>2]|0)==(j|0)){c[a>>2]=e;c[b>>2]=f;n=e;break}else Ca()}while(0);do if(h|0){a=c[j+28>>2]|0;b=45576+(a<<2)|0;if((j|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[11319]=c[11319]&~(1<<a);break}}else{if(h>>>0<(c[11322]|0)>>>0)Ca();a=h+16|0;if((c[a>>2]|0)==(j|0))c[a>>2]=n;else c[h+20>>2]=n;if(!n)break}b=c[11322]|0;if(n>>>0<b>>>0)Ca();c[n+24>>2]=h;a=c[j+16>>2]|0;do if(a|0)if(a>>>0<b>>>0)Ca();else{c[n+16>>2]=a;c[a+24>>2]=n;break}while(0);a=c[j+20>>2]|0;if(a|0)if(a>>>0<(c[11322]|0)>>>0)Ca();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}while(0);if(d>>>0<16){L=d+o|0;c[j+4>>2]=L|3;L=j+L+4|0;c[L>>2]=c[L>>2]|1}else{c[j+4>>2]=o|3;c[i+4>>2]=d|1;c[i+d>>2]=d;a=c[11320]|0;if(a|0){f=c[11323]|0;b=a>>>3;e=45312+(b<<1<<2)|0;a=c[11318]|0;b=1<<b;if(a&b){a=e+8|0;b=c[a>>2]|0;if(b>>>0<(c[11322]|0)>>>0)Ca();else{p=a;q=b}}else{c[11318]=a|b;p=e+8|0;q=e}c[p>>2]=f;c[q+12>>2]=f;c[f+8>>2]=q;c[f+12>>2]=e}c[11320]=d;c[11323]=i}L=j+8|0;return L|0}}}else if(a>>>0<=4294967231){a=a+11|0;o=a&-8;j=c[11319]|0;if(j){d=0-o|0;a=a>>>8;if(a)if(o>>>0>16777215)i=31;else{q=(a+1048320|0)>>>16&8;E=a<<q;p=(E+520192|0)>>>16&4;E=E<<p;i=(E+245760|0)>>>16&2;i=14-(p|q|i)+(E<<i>>>15)|0;i=o>>>(i+7|0)&1|i<<1}else i=0;b=c[45576+(i<<2)>>2]|0;a:do if(!b){a=0;b=0;E=86}else{f=d;a=0;g=o<<((i|0)==31?0:25-(i>>>1)|0);h=b;b=0;while(1){e=c[h+4>>2]&-8;d=e-o|0;if(d>>>0<f>>>0)if((e|0)==(o|0)){a=h;b=h;E=90;break a}else b=h;else d=f;e=c[h+20>>2]|0;h=c[h+16+(g>>>31<<2)>>2]|0;a=(e|0)==0|(e|0)==(h|0)?a:e;e=(h|0)==0;if(e){E=86;break}else{f=d;g=g<<(e&1^1)}}}while(0);if((E|0)==86){if((a|0)==0&(b|0)==0){a=2<<i;a=j&(a|0-a);if(!a)break;q=(a&0-a)+-1|0;m=q>>>12&16;q=q>>>m;l=q>>>5&8;q=q>>>l;n=q>>>2&4;q=q>>>n;p=q>>>1&2;q=q>>>p;a=q>>>1&1;a=c[45576+((l|m|n|p|a)+(q>>>a)<<2)>>2]|0}if(!a){i=d;j=b}else E=90}if((E|0)==90)while(1){E=0;q=(c[a+4>>2]&-8)-o|0;e=q>>>0<d>>>0;d=e?q:d;b=e?a:b;e=c[a+16>>2]|0;if(e|0){a=e;E=90;continue}a=c[a+20>>2]|0;if(!a){i=d;j=b;break}else E=90}if((j|0)!=0?i>>>0<((c[11320]|0)-o|0)>>>0:0){f=c[11322]|0;if(j>>>0<f>>>0)Ca();h=j+o|0;if(j>>>0>=h>>>0)Ca();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){b=j+20|0;a=c[b>>2]|0;if(!a){b=j+16|0;a=c[b>>2]|0;if(!a){s=0;break}}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<f>>>0)Ca();else{c[b>>2]=0;s=a;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)Ca();a=e+12|0;if((c[a>>2]|0)!=(j|0))Ca();b=d+8|0;if((c[b>>2]|0)==(j|0)){c[a>>2]=d;c[b>>2]=e;s=d;break}else Ca()}while(0);do if(g|0){a=c[j+28>>2]|0;b=45576+(a<<2)|0;if((j|0)==(c[b>>2]|0)){c[b>>2]=s;if(!s){c[11319]=c[11319]&~(1<<a);break}}else{if(g>>>0<(c[11322]|0)>>>0)Ca();a=g+16|0;if((c[a>>2]|0)==(j|0))c[a>>2]=s;else c[g+20>>2]=s;if(!s)break}b=c[11322]|0;if(s>>>0<b>>>0)Ca();c[s+24>>2]=g;a=c[j+16>>2]|0;do if(a|0)if(a>>>0<b>>>0)Ca();else{c[s+16>>2]=a;c[a+24>>2]=s;break}while(0);a=c[j+20>>2]|0;if(a|0)if(a>>>0<(c[11322]|0)>>>0)Ca();else{c[s+20>>2]=a;c[a+24>>2]=s;break}}while(0);do if(i>>>0>=16){c[j+4>>2]=o|3;c[h+4>>2]=i|1;c[h+i>>2]=i;a=i>>>3;if(i>>>0<256){d=45312+(a<<1<<2)|0;b=c[11318]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[11322]|0)>>>0)Ca();else{u=a;v=b}}else{c[11318]=b|a;u=d+8|0;v=d}c[u>>2]=h;c[v+12>>2]=h;c[h+8>>2]=v;c[h+12>>2]=d;break}a=i>>>8;if(a)if(i>>>0>16777215)d=31;else{K=(a+1048320|0)>>>16&8;L=a<<K;J=(L+520192|0)>>>16&4;L=L<<J;d=(L+245760|0)>>>16&2;d=14-(J|K|d)+(L<<d>>>15)|0;d=i>>>(d+7|0)&1|d<<1}else d=0;e=45576+(d<<2)|0;c[h+28>>2]=d;a=h+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[11319]|0;b=1<<d;if(!(a&b)){c[11319]=a|b;c[e>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}f=i<<((d|0)==31?0:25-(d>>>1)|0);a=c[e>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(i|0)){d=a;E=148;break}b=a+16+(f>>>31<<2)|0;d=c[b>>2]|0;if(!d){E=145;break}else{f=f<<1;a=d}}if((E|0)==145)if(b>>>0<(c[11322]|0)>>>0)Ca();else{c[b>>2]=h;c[h+24>>2]=a;c[h+12>>2]=h;c[h+8>>2]=h;break}else if((E|0)==148){a=d+8|0;b=c[a>>2]|0;L=c[11322]|0;if(b>>>0>=L>>>0&d>>>0>=L>>>0){c[b+12>>2]=h;c[a>>2]=h;c[h+8>>2]=b;c[h+12>>2]=d;c[h+24>>2]=0;break}else Ca()}}else{L=i+o|0;c[j+4>>2]=L|3;L=j+L+4|0;c[L>>2]=c[L>>2]|1}while(0);L=j+8|0;return L|0}}}else o=-1;while(0);d=c[11320]|0;if(d>>>0>=o>>>0){a=d-o|0;b=c[11323]|0;if(a>>>0>15){L=b+o|0;c[11323]=L;c[11320]=a;c[L+4>>2]=a|1;c[L+a>>2]=a;c[b+4>>2]=o|3}else{c[11320]=0;c[11323]=0;c[b+4>>2]=d|3;L=b+d+4|0;c[L>>2]=c[L>>2]|1}L=b+8|0;return L|0}a=c[11321]|0;if(a>>>0>o>>>0){J=a-o|0;c[11321]=J;L=c[11324]|0;K=L+o|0;c[11324]=K;c[K+4>>2]=J|1;c[L+4>>2]=o|3;L=L+8|0;return L|0}do if(!(c[11436]|0)){a=$a(30)|0;if(!(a+-1&a)){c[11438]=a;c[11437]=a;c[11439]=-1;c[11440]=-1;c[11441]=0;c[11429]=0;c[11436]=(fb(0)|0)&-16^1431655768;break}else Ca()}while(0);h=o+48|0;g=c[11438]|0;i=o+47|0;f=g+i|0;g=0-g|0;j=f&g;if(j>>>0<=o>>>0){L=0;return L|0}a=c[11428]|0;if(a|0?(u=c[11426]|0,v=u+j|0,v>>>0<=u>>>0|v>>>0>a>>>0):0){L=0;return L|0}b:do if(!(c[11429]&4)){a=c[11324]|0;c:do if(a){d=45720;while(1){b=c[d>>2]|0;if(b>>>0<=a>>>0?(r=d+4|0,(b+(c[r>>2]|0)|0)>>>0>a>>>0):0){e=d;d=r;break}d=c[d+8>>2]|0;if(!d){E=173;break c}}a=f-(c[11321]|0)&g;if(a>>>0<2147483647){b=La(a|0)|0;if((b|0)==((c[e>>2]|0)+(c[d>>2]|0)|0)){if((b|0)!=(-1|0)){h=b;f=a;E=193;break b}}else E=183}}else E=173;while(0);do if((E|0)==173?(t=La(0)|0,(t|0)!=(-1|0)):0){a=t;b=c[11437]|0;d=b+-1|0;if(!(d&a))a=j;else a=j-a+(d+a&0-b)|0;b=c[11426]|0;d=b+a|0;if(a>>>0>o>>>0&a>>>0<2147483647){v=c[11428]|0;if(v|0?d>>>0<=b>>>0|d>>>0>v>>>0:0)break;b=La(a|0)|0;if((b|0)==(t|0)){h=t;f=a;E=193;break b}else E=183}}while(0);d:do if((E|0)==183){d=0-a|0;do if(h>>>0>a>>>0&(a>>>0<2147483647&(b|0)!=(-1|0))?(w=c[11438]|0,w=i-a+w&0-w,w>>>0<2147483647):0)if((La(w|0)|0)==(-1|0)){La(d|0)|0;break d}else{a=w+a|0;break}while(0);if((b|0)!=(-1|0)){h=b;f=a;E=193;break b}}while(0);c[11429]=c[11429]|4;E=190}else E=190;while(0);if((((E|0)==190?j>>>0<2147483647:0)?(x=La(j|0)|0,y=La(0)|0,x>>>0<y>>>0&((x|0)!=(-1|0)&(y|0)!=(-1|0))):0)?(z=y-x|0,z>>>0>(o+40|0)>>>0):0){h=x;f=z;E=193}if((E|0)==193){a=(c[11426]|0)+f|0;c[11426]=a;if(a>>>0>(c[11427]|0)>>>0)c[11427]=a;i=c[11324]|0;do if(i){e=45720;do{a=c[e>>2]|0;b=e+4|0;d=c[b>>2]|0;if((h|0)==(a+d|0)){A=a;B=b;C=d;D=e;E=203;break}e=c[e+8>>2]|0}while((e|0)!=0);if(((E|0)==203?(c[D+12>>2]&8|0)==0:0)?i>>>0<h>>>0&i>>>0>=A>>>0:0){c[B>>2]=C+f;L=i+8|0;L=(L&7|0)==0?0:0-L&7;K=i+L|0;L=f-L+(c[11321]|0)|0;c[11324]=K;c[11321]=L;c[K+4>>2]=L|1;c[K+L+4>>2]=40;c[11325]=c[11440];break}a=c[11322]|0;if(h>>>0<a>>>0){c[11322]=h;j=h}else j=a;d=h+f|0;a=45720;while(1){if((c[a>>2]|0)==(d|0)){b=a;E=211;break}a=c[a+8>>2]|0;if(!a){b=45720;break}}if((E|0)==211)if(!(c[a+12>>2]&8)){c[b>>2]=h;l=a+4|0;c[l>>2]=(c[l>>2]|0)+f;l=h+8|0;l=h+((l&7|0)==0?0:0-l&7)|0;a=d+8|0;a=d+((a&7|0)==0?0:0-a&7)|0;k=l+o|0;g=a-l-o|0;c[l+4>>2]=o|3;do if((a|0)!=(i|0)){if((a|0)==(c[11323]|0)){L=(c[11320]|0)+g|0;c[11320]=L;c[11323]=k;c[k+4>>2]=L|1;c[k+L>>2]=L;break}b=c[a+4>>2]|0;if((b&3|0)==1){i=b&-8;f=b>>>3;e:do if(b>>>0>=256){h=c[a+24>>2]|0;e=c[a+12>>2]|0;do if((e|0)==(a|0)){d=a+16|0;e=d+4|0;b=c[e>>2]|0;if(!b){b=c[d>>2]|0;if(!b){J=0;break}}else d=e;while(1){e=b+20|0;f=c[e>>2]|0;if(f|0){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0<j>>>0)Ca();else{c[d>>2]=0;J=b;break}}else{f=c[a+8>>2]|0;if(f>>>0<j>>>0)Ca();b=f+12|0;if((c[b>>2]|0)!=(a|0))Ca();d=e+8|0;if((c[d>>2]|0)==(a|0)){c[b>>2]=e;c[d>>2]=f;J=e;break}else Ca()}while(0);if(!h)break;b=c[a+28>>2]|0;d=45576+(b<<2)|0;do if((a|0)!=(c[d>>2]|0)){if(h>>>0<(c[11322]|0)>>>0)Ca();b=h+16|0;if((c[b>>2]|0)==(a|0))c[b>>2]=J;else c[h+20>>2]=J;if(!J)break e}else{c[d>>2]=J;if(J|0)break;c[11319]=c[11319]&~(1<<b);break e}while(0);e=c[11322]|0;if(J>>>0<e>>>0)Ca();c[J+24>>2]=h;b=a+16|0;d=c[b>>2]|0;do if(d|0)if(d>>>0<e>>>0)Ca();else{c[J+16>>2]=d;c[d+24>>2]=J;break}while(0);b=c[b+4>>2]|0;if(!b)break;if(b>>>0<(c[11322]|0)>>>0)Ca();else{c[J+20>>2]=b;c[b+24>>2]=J;break}}else{d=c[a+8>>2]|0;e=c[a+12>>2]|0;b=45312+(f<<1<<2)|0;do if((d|0)!=(b|0)){if(d>>>0<j>>>0)Ca();if((c[d+12>>2]|0)==(a|0))break;Ca()}while(0);if((e|0)==(d|0)){c[11318]=c[11318]&~(1<<f);break}do if((e|0)==(b|0))G=e+8|0;else{if(e>>>0<j>>>0)Ca();b=e+8|0;if((c[b>>2]|0)==(a|0)){G=b;break}Ca()}while(0);c[d+12>>2]=e;c[G>>2]=d}while(0);a=a+i|0;g=i+g|0}a=a+4|0;c[a>>2]=c[a>>2]&-2;c[k+4>>2]=g|1;c[k+g>>2]=g;a=g>>>3;if(g>>>0<256){d=45312+(a<<1<<2)|0;b=c[11318]|0;a=1<<a;do if(!(b&a)){c[11318]=b|a;K=d+8|0;L=d}else{a=d+8|0;b=c[a>>2]|0;if(b>>>0>=(c[11322]|0)>>>0){K=a;L=b;break}Ca()}while(0);c[K>>2]=k;c[L+12>>2]=k;c[k+8>>2]=L;c[k+12>>2]=d;break}a=g>>>8;do if(!a)d=0;else{if(g>>>0>16777215){d=31;break}K=(a+1048320|0)>>>16&8;L=a<<K;J=(L+520192|0)>>>16&4;L=L<<J;d=(L+245760|0)>>>16&2;d=14-(J|K|d)+(L<<d>>>15)|0;d=g>>>(d+7|0)&1|d<<1}while(0);e=45576+(d<<2)|0;c[k+28>>2]=d;a=k+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[11319]|0;b=1<<d;if(!(a&b)){c[11319]=a|b;c[e>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}f=g<<((d|0)==31?0:25-(d>>>1)|0);a=c[e>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(g|0)){d=a;E=281;break}b=a+16+(f>>>31<<2)|0;d=c[b>>2]|0;if(!d){E=278;break}else{f=f<<1;a=d}}if((E|0)==278)if(b>>>0<(c[11322]|0)>>>0)Ca();else{c[b>>2]=k;c[k+24>>2]=a;c[k+12>>2]=k;c[k+8>>2]=k;break}else if((E|0)==281){a=d+8|0;b=c[a>>2]|0;L=c[11322]|0;if(b>>>0>=L>>>0&d>>>0>=L>>>0){c[b+12>>2]=k;c[a>>2]=k;c[k+8>>2]=b;c[k+12>>2]=d;c[k+24>>2]=0;break}else Ca()}}else{L=(c[11321]|0)+g|0;c[11321]=L;c[11324]=k;c[k+4>>2]=L|1}while(0);L=l+8|0;return L|0}else b=45720;while(1){a=c[b>>2]|0;if(a>>>0<=i>>>0?(F=a+(c[b+4>>2]|0)|0,F>>>0>i>>>0):0){b=F;break}b=c[b+8>>2]|0}g=b+-47|0;d=g+8|0;d=g+((d&7|0)==0?0:0-d&7)|0;g=i+16|0;d=d>>>0<g>>>0?i:d;a=d+8|0;e=h+8|0;e=(e&7|0)==0?0:0-e&7;L=h+e|0;e=f+-40-e|0;c[11324]=L;c[11321]=e;c[L+4>>2]=e|1;c[L+e+4>>2]=40;c[11325]=c[11440];e=d+4|0;c[e>>2]=27;c[a>>2]=c[11430];c[a+4>>2]=c[11431];c[a+8>>2]=c[11432];c[a+12>>2]=c[11433];c[11430]=h;c[11431]=f;c[11433]=0;c[11432]=a;a=d+24|0;do{a=a+4|0;c[a>>2]=7}while((a+4|0)>>>0<b>>>0);if((d|0)!=(i|0)){h=d-i|0;c[e>>2]=c[e>>2]&-2;c[i+4>>2]=h|1;c[d>>2]=h;a=h>>>3;if(h>>>0<256){d=45312+(a<<1<<2)|0;b=c[11318]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[11322]|0)>>>0)Ca();else{H=a;I=b}}else{c[11318]=b|a;H=d+8|0;I=d}c[H>>2]=i;c[I+12>>2]=i;c[i+8>>2]=I;c[i+12>>2]=d;break}a=h>>>8;if(a)if(h>>>0>16777215)d=31;else{K=(a+1048320|0)>>>16&8;L=a<<K;J=(L+520192|0)>>>16&4;L=L<<J;d=(L+245760|0)>>>16&2;d=14-(J|K|d)+(L<<d>>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;f=45576+(d<<2)|0;c[i+28>>2]=d;c[i+20>>2]=0;c[g>>2]=0;a=c[11319]|0;b=1<<d;if(!(a&b)){c[11319]=a|b;c[f>>2]=i;c[i+24>>2]=f;c[i+12>>2]=i;c[i+8>>2]=i;break}e=h<<((d|0)==31?0:25-(d>>>1)|0);a=c[f>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(h|0)){d=a;E=307;break}b=a+16+(e>>>31<<2)|0;d=c[b>>2]|0;if(!d){E=304;break}else{e=e<<1;a=d}}if((E|0)==304)if(b>>>0<(c[11322]|0)>>>0)Ca();else{c[b>>2]=i;c[i+24>>2]=a;c[i+12>>2]=i;c[i+8>>2]=i;break}else if((E|0)==307){a=d+8|0;b=c[a>>2]|0;L=c[11322]|0;if(b>>>0>=L>>>0&d>>>0>=L>>>0){c[b+12>>2]=i;c[a>>2]=i;c[i+8>>2]=b;c[i+12>>2]=d;c[i+24>>2]=0;break}else Ca()}}}else{L=c[11322]|0;if((L|0)==0|h>>>0<L>>>0)c[11322]=h;c[11430]=h;c[11431]=f;c[11433]=0;c[11327]=c[11436];c[11326]=-1;a=0;do{L=45312+(a<<1<<2)|0;c[L+12>>2]=L;c[L+8>>2]=L;a=a+1|0}while((a|0)!=32);L=h+8|0;L=(L&7|0)==0?0:0-L&7;K=h+L|0;L=f+-40-L|0;c[11324]=K;c[11321]=L;c[K+4>>2]=L|1;c[K+L+4>>2]=40;c[11325]=c[11440]}while(0);a=c[11321]|0;if(a>>>0>o>>>0){J=a-o|0;c[11321]=J;L=c[11324]|0;K=L+o|0;c[11324]=K;c[K+4>>2]=J|1;c[L+4>>2]=o|3;L=L+8|0;return L|0}}c[(eo()|0)>>2]=12;L=0;return L|0}function Yp(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;if(!a)return;d=a+-8|0;h=c[11322]|0;if(d>>>0<h>>>0)Ca();a=c[a+-4>>2]|0;b=a&3;if((b|0)==1)Ca();e=a&-8;m=d+e|0;do if(!(a&1)){a=c[d>>2]|0;if(!b)return;k=d+(0-a)|0;j=a+e|0;if(k>>>0<h>>>0)Ca();if((k|0)==(c[11323]|0)){a=m+4|0;b=c[a>>2]|0;if((b&3|0)!=3){q=k;g=j;break}c[11320]=j;c[a>>2]=b&-2;c[k+4>>2]=j|1;c[k+j>>2]=j;return}e=a>>>3;if(a>>>0<256){b=c[k+8>>2]|0;d=c[k+12>>2]|0;a=45312+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<h>>>0)Ca();if((c[b+12>>2]|0)!=(k|0))Ca()}if((d|0)==(b|0)){c[11318]=c[11318]&~(1<<e);q=k;g=j;break}if((d|0)!=(a|0)){if(d>>>0<h>>>0)Ca();a=d+8|0;if((c[a>>2]|0)==(k|0))f=a;else Ca()}else f=d+8|0;c[b+12>>2]=d;c[f>>2]=b;q=k;g=j;break}f=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){b=k+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){i=0;break}}else b=d;while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<h>>>0)Ca();else{c[b>>2]=0;i=a;break}}else{e=c[k+8>>2]|0;if(e>>>0<h>>>0)Ca();a=e+12|0;if((c[a>>2]|0)!=(k|0))Ca();b=d+8|0;if((c[b>>2]|0)==(k|0)){c[a>>2]=d;c[b>>2]=e;i=d;break}else Ca()}while(0);if(f){a=c[k+28>>2]|0;b=45576+(a<<2)|0;if((k|0)==(c[b>>2]|0)){c[b>>2]=i;if(!i){c[11319]=c[11319]&~(1<<a);q=k;g=j;break}}else{if(f>>>0<(c[11322]|0)>>>0)Ca();a=f+16|0;if((c[a>>2]|0)==(k|0))c[a>>2]=i;else c[f+20>>2]=i;if(!i){q=k;g=j;break}}d=c[11322]|0;if(i>>>0<d>>>0)Ca();c[i+24>>2]=f;a=k+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)Ca();else{c[i+16>>2]=b;c[b+24>>2]=i;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[11322]|0)>>>0)Ca();else{c[i+20>>2]=a;c[a+24>>2]=i;q=k;g=j;break}else{q=k;g=j}}else{q=k;g=j}}else{q=d;g=e}while(0);if(q>>>0>=m>>>0)Ca();a=m+4|0;b=c[a>>2]|0;if(!(b&1))Ca();if(!(b&2)){if((m|0)==(c[11324]|0)){p=(c[11321]|0)+g|0;c[11321]=p;c[11324]=q;c[q+4>>2]=p|1;if((q|0)!=(c[11323]|0))return;c[11323]=0;c[11320]=0;return}if((m|0)==(c[11323]|0)){p=(c[11320]|0)+g|0;c[11320]=p;c[11323]=q;c[q+4>>2]=p|1;c[q+p>>2]=p;return}g=(b&-8)+g|0;e=b>>>3;do if(b>>>0>=256){f=c[m+24>>2]|0;a=c[m+12>>2]|0;do if((a|0)==(m|0)){b=m+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){n=0;break}}else b=d;while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<(c[11322]|0)>>>0)Ca();else{c[b>>2]=0;n=a;break}}else{b=c[m+8>>2]|0;if(b>>>0<(c[11322]|0)>>>0)Ca();d=b+12|0;if((c[d>>2]|0)!=(m|0))Ca();e=a+8|0;if((c[e>>2]|0)==(m|0)){c[d>>2]=a;c[e>>2]=b;n=a;break}else Ca()}while(0);if(f|0){a=c[m+28>>2]|0;b=45576+(a<<2)|0;if((m|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[11319]=c[11319]&~(1<<a);break}}else{if(f>>>0<(c[11322]|0)>>>0)Ca();a=f+16|0;if((c[a>>2]|0)==(m|0))c[a>>2]=n;else c[f+20>>2]=n;if(!n)break}d=c[11322]|0;if(n>>>0<d>>>0)Ca();c[n+24>>2]=f;a=m+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0<d>>>0)Ca();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[11322]|0)>>>0)Ca();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{b=c[m+8>>2]|0;d=c[m+12>>2]|0;a=45312+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(c[11322]|0)>>>0)Ca();if((c[b+12>>2]|0)!=(m|0))Ca()}if((d|0)==(b|0)){c[11318]=c[11318]&~(1<<e);break}if((d|0)!=(a|0)){if(d>>>0<(c[11322]|0)>>>0)Ca();a=d+8|0;if((c[a>>2]|0)==(m|0))l=a;else Ca()}else l=d+8|0;c[b+12>>2]=d;c[l>>2]=b}while(0);c[q+4>>2]=g|1;c[q+g>>2]=g;if((q|0)==(c[11323]|0)){c[11320]=g;return}}else{c[a>>2]=b&-2;c[q+4>>2]=g|1;c[q+g>>2]=g}a=g>>>3;if(g>>>0<256){d=45312+(a<<1<<2)|0;b=c[11318]|0;a=1<<a;if(b&a){a=d+8|0;b=c[a>>2]|0;if(b>>>0<(c[11322]|0)>>>0)Ca();else{o=a;p=b}}else{c[11318]=b|a;o=d+8|0;p=d}c[o>>2]=q;c[p+12>>2]=q;c[q+8>>2]=p;c[q+12>>2]=d;return}a=g>>>8;if(a)if(g>>>0>16777215)d=31;else{o=(a+1048320|0)>>>16&8;p=a<<o;n=(p+520192|0)>>>16&4;p=p<<n;d=(p+245760|0)>>>16&2;d=14-(n|o|d)+(p<<d>>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=45576+(d<<2)|0;c[q+28>>2]=d;c[q+20>>2]=0;c[q+16>>2]=0;a=c[11319]|0;b=1<<d;do if(a&b){f=g<<((d|0)==31?0:25-(d>>>1)|0);a=c[e>>2]|0;while(1){if((c[a+4>>2]&-8|0)==(g|0)){d=a;e=130;break}b=a+16+(f>>>31<<2)|0;d=c[b>>2]|0;if(!d){e=127;break}else{f=f<<1;a=d}}if((e|0)==127)if(b>>>0<(c[11322]|0)>>>0)Ca();else{c[b>>2]=q;c[q+24>>2]=a;c[q+12>>2]=q;c[q+8>>2]=q;break}else if((e|0)==130){a=d+8|0;b=c[a>>2]|0;p=c[11322]|0;if(b>>>0>=p>>>0&d>>>0>=p>>>0){c[b+12>>2]=q;c[a>>2]=q;c[q+8>>2]=b;c[q+12>>2]=d;c[q+24>>2]=0;break}else Ca()}}else{c[11319]=a|b;c[e>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q}while(0);q=(c[11326]|0)+-1|0;c[11326]=q;if(!q)a=45728;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[11326]=-1;return}function Zp(a,b){a=a|0;b=b|0;var d=0;if(a){d=_(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;b=Xp(d)|0;if(!b)return b|0;if(!(c[b+-4>>2]&3))return b|0;eq(b|0,0,d|0)|0;return b|0}function _p(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){a=Xp(b)|0;return a|0}if(b>>>0>4294967231){c[(eo()|0)>>2]=12;a=0;return a|0}d=$p(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d|0){a=d+8|0;return a|0}d=Xp(b)|0;if(!d){a=0;return a|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;fq(d|0,a|0,(e>>>0<b>>>0?e:b)|0)|0;Yp(a);a=d;return a|0}function $p(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;n=a+4|0;o=c[n>>2]|0;d=o&-8;k=a+d|0;i=c[11322]|0;e=o&3;if(!((e|0)!=1&a>>>0>=i>>>0&a>>>0<k>>>0))Ca();f=c[k+4>>2]|0;if(!(f&1))Ca();if(!e){if(b>>>0<256){a=0;return a|0}if(d>>>0>=(b+4|0)>>>0?(d-b|0)>>>0<=c[11438]<<1>>>0:0)return a|0;a=0;return a|0}if(d>>>0>=b>>>0){d=d-b|0;if(d>>>0<=15)return a|0;m=a+b|0;c[n>>2]=o&1|b|2;c[m+4>>2]=d|3;b=m+d+4|0;c[b>>2]=c[b>>2]|1;aq(m,d);return a|0}if((k|0)==(c[11324]|0)){d=(c[11321]|0)+d|0;if(d>>>0<=b>>>0){a=0;return a|0}m=d-b|0;l=a+b|0;c[n>>2]=o&1|b|2;c[l+4>>2]=m|1;c[11324]=l;c[11321]=m;return a|0}if((k|0)==(c[11323]|0)){e=(c[11320]|0)+d|0;if(e>>>0<b>>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){e=a+b|0;m=e+d|0;c[n>>2]=o&1|b|2;c[e+4>>2]=d|1;c[m>>2]=d;b=m+4|0;c[b>>2]=c[b>>2]&-2}else{c[n>>2]=o&1|e|2;e=a+e+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[11320]=d;c[11323]=e;return a|0}if(f&2|0){a=0;return a|0}l=(f&-8)+d|0;if(l>>>0<b>>>0){a=0;return a|0}m=l-b|0;g=f>>>3;do if(f>>>0>=256){h=c[k+24>>2]|0;f=c[k+12>>2]|0;do if((f|0)==(k|0)){e=k+16|0;f=e+4|0;d=c[f>>2]|0;if(!d){d=c[e>>2]|0;if(!d){j=0;break}}else e=f;while(1){f=d+20|0;g=c[f>>2]|0;if(g|0){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<i>>>0)Ca();else{c[e>>2]=0;j=d;break}}else{g=c[k+8>>2]|0;if(g>>>0<i>>>0)Ca();d=g+12|0;if((c[d>>2]|0)!=(k|0))Ca();e=f+8|0;if((c[e>>2]|0)==(k|0)){c[d>>2]=f;c[e>>2]=g;j=f;break}else Ca()}while(0);if(h|0){d=c[k+28>>2]|0;e=45576+(d<<2)|0;if((k|0)==(c[e>>2]|0)){c[e>>2]=j;if(!j){c[11319]=c[11319]&~(1<<d);break}}else{if(h>>>0<(c[11322]|0)>>>0)Ca();d=h+16|0;if((c[d>>2]|0)==(k|0))c[d>>2]=j;else c[h+20>>2]=j;if(!j)break}f=c[11322]|0;if(j>>>0<f>>>0)Ca();c[j+24>>2]=h;d=k+16|0;e=c[d>>2]|0;do if(e|0)if(e>>>0<f>>>0)Ca();else{c[j+16>>2]=e;c[e+24>>2]=j;break}while(0);d=c[d+4>>2]|0;if(d|0)if(d>>>0<(c[11322]|0)>>>0)Ca();else{c[j+20>>2]=d;c[d+24>>2]=j;break}}}else{e=c[k+8>>2]|0;f=c[k+12>>2]|0;d=45312+(g<<1<<2)|0;if((e|0)!=(d|0)){if(e>>>0<i>>>0)Ca();if((c[e+12>>2]|0)!=(k|0))Ca()}if((f|0)==(e|0)){c[11318]=c[11318]&~(1<<g);break}if((f|0)!=(d|0)){if(f>>>0<i>>>0)Ca();d=f+8|0;if((c[d>>2]|0)==(k|0))h=d;else Ca()}else h=f+8|0;c[e+12>>2]=f;c[h>>2]=e}while(0);if(m>>>0<16){c[n>>2]=l|o&1|2;b=a+l+4|0;c[b>>2]=c[b>>2]|1;return a|0}else{l=a+b|0;c[n>>2]=o&1|b|2;c[l+4>>2]=m|3;b=l+m+4|0;c[b>>2]=c[b>>2]|1;aq(l,m);return a|0}return 0}function aq(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;o=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){f=c[a>>2]|0;if(!(d&3))return;l=a+(0-f)|0;k=f+b|0;i=c[11322]|0;if(l>>>0<i>>>0)Ca();if((l|0)==(c[11323]|0)){a=o+4|0;d=c[a>>2]|0;if((d&3|0)!=3){r=l;g=k;break}c[11320]=k;c[a>>2]=d&-2;c[l+4>>2]=k|1;c[l+k>>2]=k;return}e=f>>>3;if(f>>>0<256){a=c[l+8>>2]|0;b=c[l+12>>2]|0;d=45312+(e<<1<<2)|0;if((a|0)!=(d|0)){if(a>>>0<i>>>0)Ca();if((c[a+12>>2]|0)!=(l|0))Ca()}if((b|0)==(a|0)){c[11318]=c[11318]&~(1<<e);r=l;g=k;break}if((b|0)!=(d|0)){if(b>>>0<i>>>0)Ca();d=b+8|0;if((c[d>>2]|0)==(l|0))h=d;else Ca()}else h=b+8|0;c[a+12>>2]=b;c[h>>2]=a;r=l;g=k;break}f=c[l+24>>2]|0;b=c[l+12>>2]|0;do if((b|0)==(l|0)){a=l+16|0;b=a+4|0;d=c[b>>2]|0;if(!d){d=c[a>>2]|0;if(!d){j=0;break}}else a=b;while(1){b=d+20|0;e=c[b>>2]|0;if(e|0){d=e;a=b;continue}b=d+16|0;e=c[b>>2]|0;if(!e)break;else{d=e;a=b}}if(a>>>0<i>>>0)Ca();else{c[a>>2]=0;j=d;break}}else{e=c[l+8>>2]|0;if(e>>>0<i>>>0)Ca();d=e+12|0;if((c[d>>2]|0)!=(l|0))Ca();a=b+8|0;if((c[a>>2]|0)==(l|0)){c[d>>2]=b;c[a>>2]=e;j=b;break}else Ca()}while(0);if(f){d=c[l+28>>2]|0;a=45576+(d<<2)|0;if((l|0)==(c[a>>2]|0)){c[a>>2]=j;if(!j){c[11319]=c[11319]&~(1<<d);r=l;g=k;break}}else{if(f>>>0<(c[11322]|0)>>>0)Ca();d=f+16|0;if((c[d>>2]|0)==(l|0))c[d>>2]=j;else c[f+20>>2]=j;if(!j){r=l;g=k;break}}b=c[11322]|0;if(j>>>0<b>>>0)Ca();c[j+24>>2]=f;d=l+16|0;a=c[d>>2]|0;do if(a|0)if(a>>>0<b>>>0)Ca();else{c[j+16>>2]=a;c[a+24>>2]=j;break}while(0);d=c[d+4>>2]|0;if(d)if(d>>>0<(c[11322]|0)>>>0)Ca();else{c[j+20>>2]=d;c[d+24>>2]=j;r=l;g=k;break}else{r=l;g=k}}else{r=l;g=k}}else{r=a;g=b}while(0);h=c[11322]|0;if(o>>>0<h>>>0)Ca();d=o+4|0;a=c[d>>2]|0;if(!(a&2)){if((o|0)==(c[11324]|0)){q=(c[11321]|0)+g|0;c[11321]=q;c[11324]=r;c[r+4>>2]=q|1;if((r|0)!=(c[11323]|0))return;c[11323]=0;c[11320]=0;return}if((o|0)==(c[11323]|0)){q=(c[11320]|0)+g|0;c[11320]=q;c[11323]=r;c[r+4>>2]=q|1;c[r+q>>2]=q;return}g=(a&-8)+g|0;e=a>>>3;do if(a>>>0>=256){f=c[o+24>>2]|0;b=c[o+12>>2]|0;do if((b|0)==(o|0)){a=o+16|0;b=a+4|0;d=c[b>>2]|0;if(!d){d=c[a>>2]|0;if(!d){n=0;break}}else a=b;while(1){b=d+20|0;e=c[b>>2]|0;if(e|0){d=e;a=b;continue}b=d+16|0;e=c[b>>2]|0;if(!e)break;else{d=e;a=b}}if(a>>>0<h>>>0)Ca();else{c[a>>2]=0;n=d;break}}else{e=c[o+8>>2]|0;if(e>>>0<h>>>0)Ca();d=e+12|0;if((c[d>>2]|0)!=(o|0))Ca();a=b+8|0;if((c[a>>2]|0)==(o|0)){c[d>>2]=b;c[a>>2]=e;n=b;break}else Ca()}while(0);if(f|0){d=c[o+28>>2]|0;a=45576+(d<<2)|0;if((o|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[11319]=c[11319]&~(1<<d);break}}else{if(f>>>0<(c[11322]|0)>>>0)Ca();d=f+16|0;if((c[d>>2]|0)==(o|0))c[d>>2]=n;else c[f+20>>2]=n;if(!n)break}b=c[11322]|0;if(n>>>0<b>>>0)Ca();c[n+24>>2]=f;d=o+16|0;a=c[d>>2]|0;do if(a|0)if(a>>>0<b>>>0)Ca();else{c[n+16>>2]=a;c[a+24>>2]=n;break}while(0);d=c[d+4>>2]|0;if(d|0)if(d>>>0<(c[11322]|0)>>>0)Ca();else{c[n+20>>2]=d;c[d+24>>2]=n;break}}}else{a=c[o+8>>2]|0;b=c[o+12>>2]|0;d=45312+(e<<1<<2)|0;if((a|0)!=(d|0)){if(a>>>0<h>>>0)Ca();if((c[a+12>>2]|0)!=(o|0))Ca()}if((b|0)==(a|0)){c[11318]=c[11318]&~(1<<e);break}if((b|0)!=(d|0)){if(b>>>0<h>>>0)Ca();d=b+8|0;if((c[d>>2]|0)==(o|0))m=d;else Ca()}else m=b+8|0;c[a+12>>2]=b;c[m>>2]=a}while(0);c[r+4>>2]=g|1;c[r+g>>2]=g;if((r|0)==(c[11323]|0)){c[11320]=g;return}}else{c[d>>2]=a&-2;c[r+4>>2]=g|1;c[r+g>>2]=g}d=g>>>3;if(g>>>0<256){b=45312+(d<<1<<2)|0;a=c[11318]|0;d=1<<d;if(a&d){d=b+8|0;a=c[d>>2]|0;if(a>>>0<(c[11322]|0)>>>0)Ca();else{p=d;q=a}}else{c[11318]=a|d;p=b+8|0;q=b}c[p>>2]=r;c[q+12>>2]=r;c[r+8>>2]=q;c[r+12>>2]=b;return}d=g>>>8;if(d)if(g>>>0>16777215)b=31;else{p=(d+1048320|0)>>>16&8;q=d<<p;o=(q+520192|0)>>>16&4;q=q<<o;b=(q+245760|0)>>>16&2;b=14-(o|p|b)+(q<<b>>>15)|0;b=g>>>(b+7|0)&1|b<<1}else b=0;e=45576+(b<<2)|0;c[r+28>>2]=b;c[r+20>>2]=0;c[r+16>>2]=0;d=c[11319]|0;a=1<<b;if(!(d&a)){c[11319]=d|a;c[e>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}f=g<<((b|0)==31?0:25-(b>>>1)|0);d=c[e>>2]|0;while(1){if((c[d+4>>2]&-8|0)==(g|0)){b=d;e=127;break}a=d+16+(f>>>31<<2)|0;b=c[a>>2]|0;if(!b){e=124;break}else{f=f<<1;d=b}}if((e|0)==124){if(a>>>0<(c[11322]|0)>>>0)Ca();c[a>>2]=r;c[r+24>>2]=d;c[r+12>>2]=r;c[r+8>>2]=r;return}else if((e|0)==127){d=b+8|0;a=c[d>>2]|0;q=c[11322]|0;if(!(a>>>0>=q>>>0&b>>>0>=q>>>0))Ca();c[a+12>>2]=r;c[d>>2]=r;c[r+8>>2]=a;c[r+12>>2]=b;c[r+24>>2]=0;return}}function bq(){}function cq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (C=d,a-c>>>0|0)|0}function dq(a){a=+a;return a>=0.0?+M(a+.5):+Z(a-.5)}function eq(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;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function fq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Na(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 gq(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else fq(b,c,d)|0;return b|0}function hq(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=0;return b>>>c-32|0}function iq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (C=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function jq(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}C=a<<c-32;return 0}function kq(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=(b|0)<0?-1:0;return b>>c-32|0}function lq(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[m+(b>>>24)>>0]|0)+24|0}function mq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=_(e,f)|0;d=a>>>16;a=(c>>>16)+(_(e,d)|0)|0;e=b>>>16;b=_(e,f)|0;return (C=(a>>>16)+(_(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function nq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=cq(j^a|0,i^b|0,j|0,i|0)|0;g=C;a=f^j;b=e^i;return cq((sq(h,g,cq(f^c|0,e^d|0,f|0,e|0)|0,C,0)|0)^a|0,C^b|0,a|0,b|0)|0}function oq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;j=f|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;l=e>>31|((e|0)<0?-1:0)<<1;k=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=cq(h^a|0,g^b|0,h|0,g|0)|0;b=C;sq(a,b,cq(l^d|0,k^e|0,l|0,k|0)|0,C,j)|0;e=cq(c[j>>2]^h|0,c[j+4>>2]^g|0,h|0,g|0)|0;d=C;i=f;return (C=d,e)|0}function pq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=mq(e,f)|0;a=C;return (C=(_(b,f)|0)+(_(d,e)|0)+a|a&0,c|0|0)|0}function qq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return sq(a,b,c,d,0)|0}function rq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+16|0;f=g|0;sq(a,b,d,e,f)|0;i=g;return (C=c[f+4>>2]|0,c[f>>2]|0)|0}function sq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (C=n,f)|0}else{if(!g){n=0;f=0;return (C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (C=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<<i;b=k>>>(m>>>0)&b;g=0;i=l<<i;break}if(!f){n=0;f=0;return (C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (C=n,f)|0}g=h-1|0;if(g&h|0){i=(aa(h|0)|0)+33-(aa(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<<m|l>>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<<p&j;i=(k<<p|l>>>(o>>>0))&j|l<<m&i-33>>31;break}if(f|0){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (C=o,p)|0}else{p=lq(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (C=o,p)|0}}else{if(g){if(f|0){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (C=o,p)|0}if(!l){if(f|0){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (C=o,p)|0}g=i-1|0;if(!(g&i)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((lq(i|0)|0)>>>0);return (C=o,p)|0}g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<<i|l>>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<<i;break}if(!f){o=0;p=0;return (C=o,p)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (C=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=iq(m|0,l|0,-1,-1)|0;d=C;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;cq(k|0,d|0,e|0,n|0)|0;p=C;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=cq(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=C;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (C=o,p)|0}function tq(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;return ob[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0)|0}function uq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return pb[a&15](b|0,c|0,d|0)|0}function vq(a,b){a=a|0;b=b|0;qb[a&31](b|0)}function wq(a,b){a=a|0;b=b|0;return rb[a&7](b|0)|0}function xq(a,b,c,d,e){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;return sb[a&0](+b,c|0,d|0,e|0)|0}function yq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;tb[a&31](b|0,c|0,d|0)}function zq(a){a=a|0;ub[a&1]()}function Aq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return vb[a&7](b|0,c|0,d|0,e|0)|0}function Bq(a,b,c){a=a|0;b=b|0;c=c|0;return wb[a&7](b|0,c|0)|0}function Cq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;xb[a&63](b|0,c|0,d|0,e|0)}function Dq(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;da(0);return 0}function Eq(a,b,c){a=a|0;b=b|0;c=c|0;ea(1);return 0}function Fq(a){a=a|0;fa(2)}function Gq(a){a=a|0;ga(3);return 0}function Hq(a,b,c,d){a=+a;b=b|0;c=c|0;d=d|0;ha(4);return 0}function Iq(a,b,c){a=a|0;b=b|0;c=c|0;ia(5)}function Jq(){ja(6)}function Kq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ka(7);return 0}function Lq(a,b){a=a|0;b=b|0;la(8);return 0}function Mq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ma(9)}
// EMSCRIPTEN_END_FUNCS
var ob=[Dq,Qb];var pb=[Eq,fo,io,lo,Ro,nn,Nn,Sn,Xn,jo,Eq,Eq,Eq,Eq,Eq,Eq];var qb=[Fq,Yp,bc,dn,Ln,Qn,Vn,Aj,Bj,Ok,Qk,Sk,Uk,Wk,Xk,Yk,Zk,_k,$k,al,bl,cl,go,ko,Fq,Fq,Fq,Fq,Fq,Fq,Fq,Fq];var rb=[Gq,Xp,bo,_m,Kn,Pn,Un,Rl];var sb=[Hq];var tb=[Iq,ji,ki,li,mi,ti,ui,vi,wi,xi,yi,zi,Ai,Bi,Ci,Di,Ei,fi,gi,oi,pi,ri,si,Iq,Iq,Iq,Iq,Iq,Iq,Iq,Iq,Iq];var ub=[Jq,ac];var vb=[Kq,Jn,On,Tn,Yn,Sg,Kq,Kq];var wb=[Lq,mn,Mn,Rn,Wn,Lq,Lq,Lq];var xb=[Mq,Tc,Uc,Vc,_c,$c,ad,ed,fd,id,jd,kd,od,pd,qd,vd,wd,xd,Bd,Cd,Fd,Gd,Hd,Kd,Ld,Md,Pd,Rd,Wd,Xd,$d,ae,ge,he,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq,Mq];return{_quiet_encoder_destroy:Xb,_roundf:dq,_quiet_decoder_recv:Mb,_quiet_decoder_checksum_fails:Hb,_quiet_encoder_get_frame_len:Sb,_bitshift64Lshr:hq,_quiet_decoder_destroy:Pb,_bitshift64Shl:jq,_quiet_decoder_create:Ib,_fflush:Ip,_quiet_decoder_profile_str:$b,_memset:eq,_memcpy:fq,_quiet_decoder_consume_stats:Lb,_i64Subtract:cq,_quiet_encoder_clamp_frame_len:Tb,_i64Add:iq,_quiet_decoder_enable_stats:Jb,_quiet_decoder_disable_stats:Kb,_quiet_decoder_consume:Nb,_quiet_encoder_send:Vb,_quiet_encoder_profile_str:Zb,_quiet_encoder_create:Rb,_quiet_encoder_emit:Wb,___errno_location:eo,_free:Yp,_memmove:gq,_malloc:Xp,_quiet_decoder_flush:Ob,runPostSets:bq,stackAlloc:yb,stackSave:zb,stackRestore:Ab,establishStackSpace:Bb,setThrew:Cb,setTempRet0:Fb,getTempRet0:Gb,dynCall_iiiiiiii:tq,dynCall_iiii:uq,dynCall_vi:vq,dynCall_ii:wq,dynCall_idiii:xq,dynCall_viii:yq,dynCall_v:zq,dynCall_iiiii:Aq,dynCall_iii:Bq,dynCall_viiii:Cq}})
// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var real__quiet_encoder_destroy=asm["_quiet_encoder_destroy"];asm["_quiet_encoder_destroy"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_encoder_destroy.apply(null,arguments)});var real__roundf=asm["_roundf"];asm["_roundf"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__roundf.apply(null,arguments)});var real__quiet_decoder_recv=asm["_quiet_decoder_recv"];asm["_quiet_decoder_recv"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_decoder_recv.apply(null,arguments)});var real__quiet_decoder_checksum_fails=asm["_quiet_decoder_checksum_fails"];asm["_quiet_decoder_checksum_fails"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_decoder_checksum_fails.apply(null,arguments)});var real__quiet_encoder_get_frame_len=asm["_quiet_encoder_get_frame_len"];asm["_quiet_encoder_get_frame_len"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_encoder_get_frame_len.apply(null,arguments)});var real__bitshift64Lshr=asm["_bitshift64Lshr"];asm["_bitshift64Lshr"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__bitshift64Lshr.apply(null,arguments)});var real__quiet_decoder_destroy=asm["_quiet_decoder_destroy"];asm["_quiet_decoder_destroy"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_decoder_destroy.apply(null,arguments)});var real__bitshift64Shl=asm["_bitshift64Shl"];asm["_bitshift64Shl"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__bitshift64Shl.apply(null,arguments)});var real__quiet_decoder_create=asm["_quiet_decoder_create"];asm["_quiet_decoder_create"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_decoder_create.apply(null,arguments)});var real__fflush=asm["_fflush"];asm["_fflush"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__fflush.apply(null,arguments)});var real__quiet_decoder_profile_str=asm["_quiet_decoder_profile_str"];asm["_quiet_decoder_profile_str"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_decoder_profile_str.apply(null,arguments)});var real__quiet_decoder_consume_stats=asm["_quiet_decoder_consume_stats"];asm["_quiet_decoder_consume_stats"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_decoder_consume_stats.apply(null,arguments)});var real__i64Subtract=asm["_i64Subtract"];asm["_i64Subtract"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__i64Subtract.apply(null,arguments)});var real__quiet_encoder_clamp_frame_len=asm["_quiet_encoder_clamp_frame_len"];asm["_quiet_encoder_clamp_frame_len"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_encoder_clamp_frame_len.apply(null,arguments)});var real__i64Add=asm["_i64Add"];asm["_i64Add"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__i64Add.apply(null,arguments)});var real__quiet_decoder_enable_stats=asm["_quiet_decoder_enable_stats"];asm["_quiet_decoder_enable_stats"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_decoder_enable_stats.apply(null,arguments)});var real__quiet_decoder_disable_stats=asm["_quiet_decoder_disable_stats"];asm["_quiet_decoder_disable_stats"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_decoder_disable_stats.apply(null,arguments)});var real__quiet_decoder_consume=asm["_quiet_decoder_consume"];asm["_quiet_decoder_consume"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_decoder_consume.apply(null,arguments)});var real__quiet_encoder_send=asm["_quiet_encoder_send"];asm["_quiet_encoder_send"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_encoder_send.apply(null,arguments)});var real__free=asm["_free"];asm["_free"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__free.apply(null,arguments)});var real__quiet_encoder_create=asm["_quiet_encoder_create"];asm["_quiet_encoder_create"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_encoder_create.apply(null,arguments)});var real__quiet_encoder_emit=asm["_quiet_encoder_emit"];asm["_quiet_encoder_emit"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_encoder_emit.apply(null,arguments)});var real____errno_location=asm["___errno_location"];asm["___errno_location"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real____errno_location.apply(null,arguments)});var real__quiet_encoder_profile_str=asm["_quiet_encoder_profile_str"];asm["_quiet_encoder_profile_str"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_encoder_profile_str.apply(null,arguments)});var real__memmove=asm["_memmove"];asm["_memmove"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__memmove.apply(null,arguments)});var real__malloc=asm["_malloc"];asm["_malloc"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__malloc.apply(null,arguments)});var real__quiet_decoder_flush=asm["_quiet_decoder_flush"];asm["_quiet_decoder_flush"]=(function(){assert(runtimeInitialized,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)");assert(!runtimeExited,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)");return real__quiet_decoder_flush.apply(null,arguments)});var _quiet_encoder_destroy=Module["_quiet_encoder_destroy"]=asm["_quiet_encoder_destroy"];var _roundf=Module["_roundf"]=asm["_roundf"];var _quiet_decoder_recv=Module["_quiet_decoder_recv"]=asm["_quiet_decoder_recv"];var _quiet_decoder_checksum_fails=Module["_quiet_decoder_checksum_fails"]=asm["_quiet_decoder_checksum_fails"];var _quiet_encoder_get_frame_len=Module["_quiet_encoder_get_frame_len"]=asm["_quiet_encoder_get_frame_len"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _quiet_decoder_destroy=Module["_quiet_decoder_destroy"]=asm["_quiet_decoder_destroy"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _quiet_decoder_create=Module["_quiet_decoder_create"]=asm["_quiet_decoder_create"];var _fflush=Module["_fflush"]=asm["_fflush"];var _quiet_decoder_profile_str=Module["_quiet_decoder_profile_str"]=asm["_quiet_decoder_profile_str"];var _memset=Module["_memset"]=asm["_memset"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _quiet_decoder_consume_stats=Module["_quiet_decoder_consume_stats"]=asm["_quiet_decoder_consume_stats"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _quiet_encoder_clamp_frame_len=Module["_quiet_encoder_clamp_frame_len"]=asm["_quiet_encoder_clamp_frame_len"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _quiet_decoder_enable_stats=Module["_quiet_decoder_enable_stats"]=asm["_quiet_decoder_enable_stats"];var _quiet_decoder_disable_stats=Module["_quiet_decoder_disable_stats"]=asm["_quiet_decoder_disable_stats"];var _quiet_decoder_consume=Module["_quiet_decoder_consume"]=asm["_quiet_decoder_consume"];var _quiet_encoder_send=Module["_quiet_encoder_send"]=asm["_quiet_encoder_send"];var _free=Module["_free"]=asm["_free"];var _quiet_encoder_create=Module["_quiet_encoder_create"]=asm["_quiet_encoder_create"];var _quiet_encoder_emit=Module["_quiet_encoder_emit"]=asm["_quiet_encoder_emit"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _quiet_encoder_profile_str=Module["_quiet_encoder_profile_str"]=asm["_quiet_encoder_profile_str"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _memmove=Module["_memmove"]=asm["_memmove"];var _malloc=Module["_malloc"]=asm["_malloc"];var _quiet_decoder_flush=Module["_quiet_decoder_flush"]=asm["_quiet_decoder_flush"];var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=asm["dynCall_iiiiiiii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_idiii=Module["dynCall_idiii"]=asm["dynCall_idiii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];if(memoryInitializer){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,Runtime.GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);for(var i=0;i<data.length;i++){assert(HEAPU8[Runtime.GLOBAL_BASE+i]===0,"area for memory initializer should not have been touched before it's loaded")}HEAPU8.set(data,Runtime.GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];if(request.status!==200&&request.status!==0){console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}applyMemoryInitializer(request.response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){Module.printErr("run() called, but dependencies remain, so not running");return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;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"]){Module.printErr("exit("+status+") implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)");return}if(Module["noExitRuntime"]){Module.printErr("exit("+status+") called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)")}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}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="";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()