shithub: h264bsd

Download patch

ref: 87794efee49c8509db14ed02e8891ff7644f2377
parent: 7cb09d7efb5fb82e8966e1d06cdfabb065ba0fb0
author: Sam Leitch <conceptualalchemist@gmail.com>
date: Tue Jul 28 18:55:28 EDT 2015

Updated from Android source with 64bit support. Added posix build/test app

diff: cannot open b/posix//null: 'b/posix//null' does not exist
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,9 @@
 win/Debug/
 win/h264bsdTest/Debug/
 *.opensdf
+.DS_Store
+ios/build/
+ios/test/build/
+posix/bin/
+posix/lib/
+posix/obj/
--- a/js/h264bsd_asm.js
+++ b/js/h264bsd_asm.js
@@ -2,7 +2,7 @@
 Size(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),getAsmConst:(function(code,numArgs){if(!Runtime.asmConstCache)Runtime.asmConstCache={};var func=Runtime.asmConstCache[code];if(func)return func;var args=[];for(var i=0;i<numArgs;i++){args.push(String.fromCharCode(36)+i)}var source=Pointer_stringify(code);if(source[0]==='"'){if(source.indexOf('"',1)===source.length-1){source=source.substr(1,source.length-2)}else{abort("invalid EM_ASM input |"+source+"|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)")}}try{var evalled=eval("(function(Module, FS) { return function("+args.join(",")+"){ "+source+" } })")(Module,typeof FS!=="undefined"?FS:null)}catch(e){Module.printErr("error in executing inline EM_ASM code: "+e+" on: \n\n"+source+"\n\nwith args |"+args+"| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)");throw e}return Runtime.asmConstCache[code]=evalled}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,arguments)}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=DYNAMICTOP;DYNAMICTOP=DYNAMICTOP+size|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success)return 0}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.
\ No newline at end of file
 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=env._stderr|0;var o=0;var p=0;var q=0;var r=0;var s=global.NaN,t=global.Infinity;var u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0.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=0;var N=global.Math.floor;var O=global.Math.abs;var P=global.Math.sqrt;var Q=global.Math.pow;var R=global.Math.cos;var S=global.Math.sin;var T=global.Math.tan;var U=global.Math.acos;var V=global.Math.asin;var W=global.Math.atan;var X=global.Math.atan2;var Y=global.Math.exp;var Z=global.Math.log;var _=global.Math.ceil;var $=global.Math.imul;var aa=global.Math.min;var ba=global.Math.clz32;var ca=env.abort;var da=env.assert;var ea=env.invoke_iiii;var fa=env._fabs;var ga=env._sin;var ha=env._exp;var ia=env._cosf;var ja=env._send;var ka=env._sqrtf;var la=env._cosl;var ma=env._remquof;var na=env._emscripten_set_main_loop_timing;var oa=env._logf;var pa=env._fflush;var qa=env._pwrite;var ra=env._strerror_r;var sa=env._fprintf;var ta=env.__reallyNegative;var ua=env._sbrk;var va=env._nextafter;var wa=env._remquo;var xa=env._emscripten_memcpy_big;var ya=env._fileno;var za=env._sysconf;var Aa=env.___setErrNo;var Ba=env._sinf;var Ca=env._cos;var Da=env._llvm_fma_f64;var Ea=env._log;var Fa=env.___unlock;var Ga=env._write;var Ha=env._emscripten_set_main_loop;var Ia=env.___errno_location;var Ja=env._expf;var Ka=env._fesetround;var La=env._sinl;var Ma=env.___lock;var Na=env._abort;var Oa=env._fwrite;var Pa=env._time;var Qa=env._mkport;var Ra=env._strerror;var Sa=env.__formatString;var Ta=env._sqrt;var Ua=env._ilogb;var Va=0.0;
-ig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,arguments)}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=DYNAMICTOP;DYNAMICTOP=DYNAMICTOP+size|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success)return 0}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0)Runtime.stackRestore(stack);return ret};var sourceRegex=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type==="number"}));var numericRet=returnType!=="string";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return"$"+i}));var funcstr="(function("+argNames.join(",")+") {";var nargs=argTypes.length;if(!numericArgs){funcstr+="var stack = "+JSsource["stackSave"].body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type==="number")continue;var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";";funcstr+=convertCode.body+";";funcstr+=arg+"="+convertCode.returnValue+";"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}if(!numericArgs){funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["cwrap"]=cwrap;Modu
\ No newline at end of file
+ig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,arguments)}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=DYNAMICTOP;DYNAMICTOP=DYNAMICTOP+size|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success)return 0}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0)Runtime.stackRestore(stack);return ret};var sourceRegex=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type==="number"}));var numericRet=returnType!=="string";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return"$"+i}));var funcstr="(function("+argNames.join(",")+") {";var nargs=argTypes.length;if(!numericArgs){funcstr+="var stack = "+JSsource["stackSave"].body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type==="number")continue;var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";";funcstr+=convertCode.body+";";funcstr+=arg+"="+convertCode.returnValue+";"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}if(!numericArgs){funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["cwrap"]=cwrap;Modu
\ No newline at end of file
 le["ccall"]=ccall;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;functio
\ No newline at end of file
 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=env._stderr|0;var o=0;var p=0;var q=0;var r=0;var s=global.NaN,t=global.Infinity;var u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0.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=0;var N=global.Math.floor;var O=global.Math.abs;var P=global.Math.sqrt;var Q=global.Math.pow;var R=global.Math.cos;var S=global.Math.sin;var T=global.Math.tan;var U=global.Math.acos;var V=global.Math.asin;var W=global.Math.atan;var X=global.Math.atan2;var Y=global.Math.exp;var Z=global.Math.log;var _=global.Math.ceil;var $=global.Math.imul;var aa=global.Math.min;var ba=global.Math.clz32;var ca=env.abort;var da=env.assert;var ea=env.invoke_iiii;var fa=env._fabs;var ga=env._sin;var ha=env._exp;var ia=env._cosf;var ja=env._send;var ka=env._sqrtf;var la=env._cosl;var ma=env._remquof;var na=env._emscripten_set_main_loop_timing;var oa=env._logf;var pa=env._fflush;var qa=env._pwrite;var ra=env._strerror_r;var sa=env._fprintf;var ta=env.__reallyNegative;var ua=env._sbrk;var va=env._nextafter;var wa=env._remquo;var xa=env._emscripten_memcpy_big;var ya=env._fileno;var za=env._sysconf;var Aa=env.___setErrNo;var Ba=env._sinf;var Ca=env._cos;var Da=env._llvm_fma_f64;var Ea=env._log;var Fa=env.___unlock;var Ga=env._write;var Ha=env._emscripten_set_main_loop;var Ia=env.___errno_location;var Ja=env._expf;var Ka=env._fesetround;var La=env._sinl;var Ma=env.___lock;var Na=env._abort;var Oa=env._fwrite;var Pa=env._time;var Qa=env._mkport;var Ra=env._strerror;var Sa=env.__formatString;var Ta=env._sqrt;var Ua=env._ilogb;var Va=0.0;
--- a/js/min/h264bsd_full.min.js
+++ b/js/min/h264bsd_full.min.js
@@ -4,12 +4,12 @@
 ength>t-1)return ___setErrNo(ERRNO_CODES.ERANGE);var o=ERRNO_MESSAGES[e];return writeAsciiToMemory(o,r),0}return ___setErrNo(ERRNO_CODES.EINVAL)}function _strerror(e){return _strerror.buffer||(_strerror.buffer=_malloc(256)),_strerror_r(e,_strerror.buffer,256),_strerror.buffer}function _abort(){Module.abort()}function _fflush(e){}function _mkport(){throw"TODO"}function _send(e,r,t,o){var n=SOCKFS.getSocket(e);return n?_write(e,r,t):(___setErrNo(ERRNO_CODES.EBADF),-1)}function _pwrite(e,r,t,o){var n=FS.getStream(e);if(!n)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var i=HEAP8;return FS.write(n,i,r,t,o)}catch(a){return FS.handleFSError(a),-1}}function _write(e,r,t){var o=FS.getStream(e);if(!o)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var n=HEAP8;return FS.write(o,n,r,t)}catch(i){return FS.handleFSError(i),-1}}function _fileno(e){return e=FS.getStreamFromPtr(e),e?e.fd:-1}function _fwrite(e,r,t,o){var n=t*r;if(0==n)return 0;var i=_fileno(o),a=_write(i,e,n);if(-1==a){var s=FS.getStreamFromPtr(o);return s&&(s.error=!0),0}return a/r|0}function __reallyNegative(e){return 0>e||0===e&&1/e===-(1/0)}function __formatString(e,r){function t(e){var t;return"double"===e?(HEAP32[tempDoublePtr>>2]=HEAP32[r+s>>2],HEAP32[tempDoublePtr+4>>2]=HEAP32[r+(s+4)>>2],t=+HEAPF64[tempDoublePtr>>3]):"i64"==e?t=[HEAP32[r+s>>2],HEAP32[r+(s+4)>>2]]:(e="i32",t=HEAP32[r+s>>2]),s+=Runtime.getNativeFieldSize(e),t}for(var o,n,i,a=e,s=0,u=[];;){var f=a;if(o=HEAP8[a>>0],0===o)break;if(n=HEAP8[a+1>>0],37==o){var l=!1,d=!1,c=!1,_=!1,h=!1;e:for(;;){switch(n){case 43:l=!0;break;case 45:d=!0;break;case 35:c=!0;break;case 48:if(_)break e;_=!0;break;case 32:h=!0;break;default:break e}a++,n=HEAP8[a+1>>0]}var m=0;if(42==n)m=t("i32"),a++,n=HEAP8[a+1>>0];else for(;n>=48&&57>=n;)m=10*m+(n-48),a++,n=HEAP8[a+1>>0];var b=!1,p=-1;if(46==n){if(p=0,b=!0,a++,n=HEAP8[a+1>>0],42==n)p=t("i32"),a++;else for(;;){var k=HEAP8[a+1>>0];if(48>k||k>57)break;p=10*p+(k-48),a++}n=HEAP8[a+1>>0]}0>p&&(p=6,b=!1);var E;switch(String.fromCharCode(n)){case"h":var S=HEAP8[a+2>>0];104==S?(a++,E=1):E=2;break;case"l":var S=HEAP8[a+2>>0];108==S?(a++,E=8):E=4;break;case"L":case"q":case"j":E=8;break;case"z":case"t":case"I":E=4;break;default:E=null}switch(E&&a++,n=HEAP8[a+1>>0],String.fromCharCode(n)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var w=100==n||105==n;E=E||4;var g,i=t("i"+8*E),v=i;if(8==E&&(i=Runtime.makeBigInt(i[0],i[1],117==n)),4>=E){var M=Math.pow(256,E)-1;i=(w?reSign:unSign)(i&M,8*E)}var y=Math.abs(i),F="";if(100==n||105==n)g=8==E&&i64Math?i64Math.stringify(v[0],v[1],null):reSign(i,8*E,1).toString(10);else if(117==n)g=8==E&&i64Math?i64Math.stringify(v[0],v[1],!0):unSign(i,8*E,1).toString(10),i=Math.abs(i);else if(111==n)g=(c?"0":"")+y.toString(8);else if(120==n||88==n){if(F=c&&0!=i?"0x":"",8==E&&i64Math)if(v[1]){g=(v[1]>>>0).toString(16);for(var R=(v[0]>>>0).toString(16);R.length<8;)R="0"+R;g+=R}else g=(v[0]>>>0).toString(16);else if(0>i){i=-i,g=(y-1).toString(16);for(var A=[],O=0;O<g.length;O++)A.push((15-parseInt(g[O],16)).toString(16));for(g=A.join("");g.length<2*E;)g="f"+g}else g=y.toString(16);88==n&&(F=F.toUpperCase(),g=g.toUpperCase())}else 112==n&&(0===y?g="(nil)":(F="0x",g=y.toString(16)));if(b)for(;g.length<p;)g="0"+g;for(i>=0&&(l?F="+"+F:h&&(F=" "+F)),"-"==g.charAt(0)&&(F="-"+F,g=g.substr(1));F.length+g.length<m;)d?g+=" ":_?g="0"+g:F=" "+F;g=F+g,g.split("").forEach(function(e){u.push(e.charCodeAt(0))});break;case"f":case"F":case"e":case"E":case"g":case"G":var g,i=t("double");if(isNaN(i))g="nan",_=!1;else if(isFinite(i)){var D=!1,P=Math.min(p,20);if(103==n||71==n){D=!0,p=p||1;var T=parseInt(i.toExponential(P).split("e")[1],10);p>T&&T>=-4?(n=(103==n?"f":"F").charCodeAt(0),p-=T+1):(n=(103==n?"e":"E").charCodeAt(0),p--),P=Math.min(p,20)}101==n||69==n?(g=i.toExponential(P),/[eE][-+]\d$/.test(g)&&(g=g.slice(0,-1)+"0"+g.slice(-1))):(102==n||70==n)&&(g=i.toFixed(P),0===i&&__reallyNegative(i)&&(g="-"+g));var N=g.split("e");if(D&&!c)for(;N[0].length>1&&-1!=N[0].indexOf(".")&&("0"==N[0].slice(-1)||"."==N[0].slice(-1));)N[0]=N[0].slice(0,-1);else for(c&&-1==g.indexOf(".")&&(
\ No newline at end of file
 Module.stringToUTF32=stringToUTF32,Module.lengthBytesUTF32=lengthBytesUTF32,Module.stackTrace=stackTrace;for(var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0,TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||67108864,totalMemory=65536;TOTAL_MEMORY>totalMemory||2*TOTAL_STACK>totalMemory;)16777216>totalMemory?totalMemory*=2:totalMemory+=16777216;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("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support");var buffer=new ArrayBuffer(TOTAL_MEMORY);HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"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;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;Module.addOnPreRun=Module.addOnPreRun=addOnPreRun,Module.addOnInit=Module.addOnInit=addOnInit,Module.addOnPreMain=Module.addOnPreMain=addOnPreMain,Module.addOnExit=Module.addOnExit=addOnExit,Module.addOnPostRun=Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,r){var t=e>>>16,o=65535&e,n=r>>>16,i=65535&r;return o*i+(t*i+o*n<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var r=0;32>r;r++)if(e&1<<31-r)return r;return 32}),Math.clz32=Math.clz32;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,Math_clz32=Math.clz32,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null;STATIC_BASE=8,STATICTOP=STATIC_BASE+14736,__ATINIT__.push(),allocate([17,1,0,0,0,0,0,0,34,18,1,1,0,0,0,0,50,34,18,2,0,0,0,0,67,51,34,34,18,18,2,2,83,67,51,35,18,18,2,2,19,35,67,51,99,83,2,2,0,0,101,85,68,68,52,52,35,35,35,35,19,19,19,19,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,249,233,217,200,200,184,184,167,167,167,167,151,151,151,151,134,134,134,134,134,134,134,134,118,118,118,118,118,118,118,118,230,214,198,182,165,165,149,149,132,132,132,132,116,116,116,116,100,100,100,100,84,84,84,84,67,67,67,67,67,67,67,67,51,51,51,51,51,51,51,51,35,35,35,35,35,35,35,35,19,19,19,19,19,19,19,19,3,3,3,3,3,3,3,3,214,182,197,197,165,165,149,149,132,132,132,132,84,84,84,84,68,68,68,68,4,4,4,4,115,115,115,115,115,115,115,115,99,99,99,99,99,99,99,99,51,51,51,51,51,51,51,51,35,35,35,35,35,35,35,35,19,19,19,19,19,19,19,19,197,181,165,5,148,148,116,116,52,52,36,36,131,131,131,131,99,99,99,99,83,83,83,83,67,67,67,67,19,19,19,19,181,149,164,164,132,132,36,36,20,20,4,4,115,115,115,115,99,99,99,99,83,83,83,83,67,67,67,67,51,51,51,51,166,6,21,21,132,132,132,132,147,147,147,147,147,147,147,147,115,115,115,115,115,115,115,115,99,99,99,99,99,99,99,99,83,8
\ No newline at end of file
 var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);var _cosf=Math_cos;Module._cosf=_cosf,Module._i64Subtract=_i64Subtract;var _DtoILow=!0;Module._DtoILow=_DtoILow;var ___errno_state=0;Module.___errno_state=___errno_state,Module.___setErrNo=___setErrNo;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};Module.ERRNO_CODES=ERRNO_CODES,Module._sysconf=_sysconf,Module._remquof=_remquof,Module._memset=_memset;var _BDtoILow=!0;Module._BDtoILow=_BDtoILow;var _FtoIHigh=!0;Module._FtoIHigh=_FtoIHigh;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
\ No newline at end of file
- are we?";if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},"undefined"!=typeof arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.log(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),"undefined"==typeof Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){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("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var r=parseInt(e.substr(1));return assert(r%8===0),r/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,getAlignSize:function(e,r,t){return t||"i64"!=e&&"double"!=e?e?Math.min(r||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(r,8):8},dynCall:function(e,r,t){return t&&t.length?(t.splice||(t=Array.prototype.slice.call(t)),t.splice(0,0,r),Module["dynCall_"+e].apply(null,t)):Module["dynCall_"+e].call(null,r)},functionPointers:[],addFunction:function(e){for(var r=0;r<Runtime.functionPointers.length;r++)if(!Runtime.functionPointers[r])return Runtime.functionPointers[r]=e,2*(1+r);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},getAsmConst:function(code,numArgs){Runtime.asmConstCache||(Runtime.asmConstCache={});var func=Runtime.asmConstCache[code];if(func)return func;for(var args=[],i=0;numArgs>i;i++)args.push(String.fromCharCode(36)+i);var source=Pointer_stringify(code);'"'===source[0]&&(source.indexOf('"',1)===source.length-1?source=source.substr(1,source.length-2):abort("invalid EM_ASM input |"+source+"|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)"));try{var evalled=eval("(function(Module, FS) { return function("+args.join(",")+"){ "+source+" } })")(Module,"undefined"!=typeof FS?FS:null)}catch(e){throw Module.printErr("error in executing inline EM_ASM code: "+e+" on: \n\n"+source+"\n\nwith args |"+args+"| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)"),e}return Runtime.asmConstCache[code]=evalled},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,r){assert(r),Runtime.funcWrappers[r]||(Runtime.funcWrappers[r]={});var t=Runtime.funcWrappers[r];return t[e]||(t[e]=function(){return Runtime.dynCall(r,e,arguments)}),t[e]},getCompilerSetting:function(e){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(e){var r=STACKTOP;return STACKTOP=STACKTOP+e|0,STACKTOP=STACKTOP+15&-16,r},staticAlloc:function(e){var r=STATICTOP;return STATICTOP=STATICTOP+e|0,STATICTOP=STATICTOP+15&-16,r},dynamicAlloc:function(e){var r=DYNAMICTOP;if(DYNAMICTOP=DYNAMICTOP+e|0,DYNAMICTOP=DYNAMICTOP+15&-16,DYNAMICTOP>=TOTAL_MEMORY){var t=enlargeMemory();if(!t)return 0}return r},alignMemory:function(e,
\ No newline at end of file
-Module.stringToUTF32=stringToUTF32,Module.lengthBytesUTF32=lengthBytesUTF32,Module.stackTrace=stackTrace;for(var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0,TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||67108864,totalMemory=65536;TOTAL_MEMORY>totalMemory||2*TOTAL_STACK>totalMemory;)16777216>totalMemory?totalMemory*=2:totalMemory+=16777216;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("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support");var buffer=new ArrayBuffer(TOTAL_MEMORY);HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"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;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;Module.addOnPreRun=Module.addOnPreRun=addOnPreRun,Module.addOnInit=Module.addOnInit=addOnInit,Module.addOnPreMain=Module.addOnPreMain=addOnPreMain,Module.addOnExit=Module.addOnExit=addOnExit,Module.addOnPostRun=Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,r){var t=e>>>16,o=65535&e,n=r>>>16,i=65535&r;return o*i+(t*i+o*n<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var r=0;32>r;r++)if(e&1<<31-r)return r;return 32}),Math.clz32=Math.clz32;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,Math_clz32=Math.clz32,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null;STATIC_BASE=8,STATICTOP=STATIC_BASE+14736,__ATINIT__.push(),allocate([17,1,0,0,0,0,0,0,34,18,1,1,0,0,0,0,50,34,18,2,0,0,0,0,67,51,34,34,18,18,2,2,83,67,51,35,18,18,2,2,19,35,67,51,99,83,2,2,0,0,101,85,68,68,52,52,35,35,35,35,19,19,19,19,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,249,233,217,200,200,184,184,167,167,167,167,151,151,151,151,134,134,134,134,134,134,134,134,118,118,118,118,118,118,118,118,230,214,198,182,165,165,149,149,132,132,132,132,116,116,116,116,100,100,100,100,84,84,84,84,67,67,67,67,67,67,67,67,51,51,51,51,51,51,51,51,35,35,35,35,35,35,35,35,19,19,19,19,19,19,19,19,3,3,3,3,3,3,3,3,214,182,197,197,165,165,149,149,132,132,132,132,84,84,84,84,68,68,68,68,4,4,4,4,115,115,115,115,115,115,115,115,99,99,99,99,99,99,99,99,51,51,51,51,51,51,51,51,35,35,35,35,35,35,35,35,19,19,19,19,19,19,19,19,197,181,165,5,148,148,116,116,52,52,36,36,131,131,131,131,99,99,99,99,83,83,83,83,67,67,67,67,19,19,19,19,181,149,164,164,132,132,36,36,20,20,4,4,115,115,115,115,99,99,99,99,83,83,83,83,67,67,67,67,51,51,51,51,166,6,21,21,132,132,132,132,147,147,147,147,147,147,147,147,115,115,115,115,115,115,115,115,99,99,99,99,99,99,99,99,83,8
\ No newline at end of file
-var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);var _cosf=Math_cos;Module._cosf=_cosf,Module._i64Subtract=_i64Subtract;var _DtoILow=!0;Module._DtoILow=_DtoILow;var ___errno_state=0;Module.___errno_state=___errno_state,Module.___setErrNo=___setErrNo;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};Module.ERRNO_CODES=ERRNO_CODES,Module._sysconf=_sysconf,Module._remquof=_remquof,Module._memset=_memset;var _BDtoILow=!0;Module._BDtoILow=_BDtoILow;var _FtoIHigh=!0;Module._FtoIHigh=_FtoIHigh;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
\ No newline at end of file
-}catch(f){console.log("FS.trackingDelegate['willMovePath']('"+e+"', '"+r+"') threw an exception: "+f.message)}FS.hashRemoveNode(l);try{o.node_ops.rename(l,n,u)}catch(f){throw f}finally{FS.hashAddNode(l)}try{FS.trackingDelegate.onMovePath&&FS.trackingDelegate.onMovePath(e,r)}catch(f){console.log("FS.trackingDelegate['onMovePath']('"+e+"', '"+r+"') threw an exception: "+f.message)}}},rmdir:function(e){var r=FS.lookupPath(e,{parent:!0}),t=r.node,o=PATH.basename(e),n=FS.lookupNode(t,o),i=FS.mayDelete(t,o,!0);if(i)throw new FS.ErrnoError(i);if(!t.node_ops.rmdir)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(n))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(a){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+a.message)}t.node_ops.rmdir(t,o),FS.destroyNode(n);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(a){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+a.message)}},readdir:function(e){var r=FS.lookupPath(e,{follow:!0}),t=r.node;if(!t.node_ops.readdir)throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);return t.node_ops.readdir(t)},unlink:function(e){var r=FS.lookupPath(e,{parent:!0}),t=r.node,o=PATH.basename(e),n=FS.lookupNode(t,o),i=FS.mayDelete(t,o,!1);if(i)throw i===ERRNO_CODES.EISDIR&&(i=ERRNO_CODES.EPERM),new FS.ErrnoError(i);if(!t.node_ops.unlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(n))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(a){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+a.message)}t.node_ops.unlink(t,o),FS.destroyNode(n);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(a){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+a.message)}},readlink:function(e){var r=FS.lookupPath(e),t=r.node;if(!t)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!t.node_ops.readlink)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return PATH.resolve(FS.getPath(r.node.parent),t.node_ops.readlink(t))},stat:function(e,r){var t=FS.lookupPath(e,{follow:!r}),o=t.node;if(!o)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!o.node_ops.getattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return o.node_ops.getattr(o)},lstat:function(e){return FS.stat(e,!0)},chmod:function(e,r,t){var o;if("string"==typeof e){var n=FS.lookupPath(e,{follow:!t});o=n.node}else o=e;if(!o.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);o.node_ops.setattr(o,{mode:4095&r|-4096&o.mode,timestamp:Date.now()})},lchmod:function(e,r){FS.chmod(e,r,!0)},fchmod:function(e,r){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chmod(t.node,r)},chown:function(e,r,t,o){var n;if("string"==typeof e){var i=FS.lookupPath(e,{follow:!o});n=i.node}else n=e;if(!n.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:function(e,r,t){FS.chown(e,r,t,!0)},fchown:function(e,r,t){var o=FS.getStream(e);if(!o)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chown(o.node,r,t)},truncate:function(e,r){if(0>r)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var t;if("string"==typeof e){var o=FS.lookupPath(e,{follow:!0});t=o.node}else t=e;if(!t.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isDir(t.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!FS.isFile(t.mode))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var n=FS.nodePermissions(t,"w");if(n)throw new FS.ErrnoError(n);t.node_ops.setattr(t,{size:r,timestamp:Date.now()})},ftruncate:function(e,r){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(0===(2097155&t.flags))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);FS.truncate(t.node,r)},utime:function(e,r,t){var o=FS.lookupPath(e,{follow:!0}),n=o.node;n.node_ops.setattr(n,{timestamp:Math.max(r,t)})},open:function(e,r,t,o,n){if(""===e)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);r="string"==typeof r?FS.m
\ No newline at end of file
-n.exitPointerLock=n.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",e,!1),document.addEventListener("mozpointerlockchange",e,!1),document.addEventListener("webkitpointerlockchange",e,!1),document.addEventListener("mspointerlockchange",e,!1),Module.elementPointerLock&&n.addEventListener("click",function(e){!Browser.pointerLock&&n.requestPointerLock&&(n.requestPointerLock(),e.preventDefault())},!1))}},createContext:function(e,r,t,o){if(r&&Module.ctx&&e==Module.canvas)return Module.ctx;var n,i;if(r){var a={antialias:!1,alpha:!1};if(o)for(var s in o)a[s]=o[s];i=GL.createContext(e,a),i&&(n=GL.getContext(i).GLctx),e.style.backgroundColor="black"}else n=e.getContext("2d");return n?(t&&(r||assert("undefined"==typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=n,r&&GL.makeContextCurrent(i),Module.useWebGL=r,Browser.moduleContextCreatedCallbacks.forEach(function(e){e()}),Browser.init()),n):null},destroyContext:function(e,r,t){},fullScreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullScreen:function(e,r,t){function o(){Browser.isFullScreen=!1;var e=n.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===e?(n.cancelFullScreen=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},n.cancelFullScreen=n.cancelFullScreen.bind(document),Browser.lockPointer&&n.requestPointerLock(),Browser.isFullScreen=!0,Browser.resizeCanvas&&Browser.setFullScreenCanvasSize()):(e.parentNode.insertBefore(n,e),e.parentNode.removeChild(e),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullScreen),Browser.updateCanvasDimensions(n)}Browser.lockPointer=e,Browser.resizeCanvas=r,Browser.vrDevice=t,"undefined"==typeof Browser.lockPointer&&(Browser.lockPointer=!0),"undefined"==typeof Browser.resizeCanvas&&(Browser.resizeCanvas=!1),"undefined"==typeof Browser.vrDevice&&(Browser.vrDevice=null);var n=Module.canvas;Browser.fullScreenHandlersInstalled||(Browser.fullScreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",o,!1),document.addEventListener("mozfullscreenchange",o,!1),document.addEventListener("webkitfullscreenchange",o,!1),document.addEventListener("MSFullscreenChange",o,!1));var i=document.createElement("div");n.parentNode.insertBefore(i,n),i.appendChild(n),i.requestFullScreen=i.requestFullScreen||i.mozRequestFullScreen||i.msRequestFullscreen||(i.webkitRequestFullScreen?function(){i.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),t?i.requestFullScreen({vrDisplay:t}):i.requestFullScreen()},nextRAF:0,fakeRequestAnimationFrame:function(e){var r=Date.now();if(0===Browser.nextRAF)Browser.nextRAF=r+1e3/60;else for(;r+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var t=Math.max(Browser.nextRAF-r,0);setTimeout(e,t)},requestAnimationFrame:function(e){"undefined"==typeof window?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(e){return function(){return ABORT?void 0:e.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var e=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],e.forEach(function(e){e()})}},safeRequestAnimationFrame:function(e){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser
\ No newline at end of file
-F=xi[l>>0]|0,Li[e+9>>0]=(((ia(xi[A+b>>0]|0,a)|0)+(ia(R,g)|0)<<3)+32|0)>>>6,Li[e+1>>0]=(((ia(F,a)|0)+(ia(y,g)|0)<<3)+32|0)>>>6,d=d+-1|0,!d)break;e=e+2|0}s=s+k|0}if(c=c+-1|0,!c)break;e=u+w|0,s=s+p|0}if(_)return void(qi=v);for(u=r+64|0,i=f+((ia(i+o|0,n)|0)+t)|0,f=h;;){if(S)o=u;else{for(o=u+k|0,t=u,u=i,e=E;;){if(R=xi[u>>0]|0,F=xi[u+m>>0]|0,y=u,u=u+2|0,A=xi[y+1>>0]|0,Li[t+8>>0]=(((ia(F,a)|0)+(ia(xi[y+n>>0]|0,g)|0)<<3)+32|0)>>>6,Li[t>>0]=(((ia(A,a)|0)+(ia(R,g)|0)<<3)+32|0)>>>6,R=xi[u>>0]|0,Li[t+9>>0]=(((ia(xi[y+b>>0]|0,a)|0)+(ia(F,g)|0)<<3)+32|0)>>>6,Li[t+1>>0]=(((ia(R,a)|0)+(ia(A,g)|0)<<3)+32|0)>>>6,e=e+-1|0,!e)break;t=t+2|0}i=i+k|0}if(f=f+-1|0,!f)break;u=o+w|0,i=i+p|0}qi=v}function M(e,r,t,o,n,i,a,s,u){e|=0,r|=0,t|=0,o|=0,n|=0,i|=0,a|=0,s|=0,u|=0;var f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,v=0,M=0,y=0,F=0;if(w=s+o|0,d=(w|0)<0?0-s|0:o,l=(a+t|0)<0?0-a|0:t,d=(d|0)>(i|0)?i:d,l=(l|0)>(n|0)?n:l,f=l+a|0,t=d+s|0,o=(l|0)>0?e+l|0:e,(d|0)>0&&(o=o+(ia(d,n)|0)|0),E=(l|0)<0,M=E?0-l|0:0,v=(f|0)>(n|0),y=v?f-n|0:0,g=a-M|0,F=g-y|0,d=(d|0)<0?0-d|0:0,t=(t|0)>(i|0)?t-i|0:0,S=s-d|0,e=S-t|0,v=E|v,a=(d|0)==0,v){if(!a){for(p=(M|0)==0,b=(g|0)==(y|0),m=(y|0)==0,E=o+F|0,f=s+-1-((w|0)>0?w:0)|0,k=~i,k=(f|0)>(k|0)?f:k,f=~k,f=ia(k+((f|0)>0?f:0)+1|0,u)|0,k=r;;){if(p?a=k:(hn(k|0,Li[o>>0]|0,M|0)|0,a=k+M|0),b)l=o;else{for(h=F,_=o,c=a;;){if(Li[c>>0]=Li[_>>0]|0,h=h+-1|0,!h)break;_=_+1|0,c=c+1|0}l=E,a=a+F|0}if(m||hn(a|0,Li[l+-1>>0]|0,y|0)|0,d=d+-1|0,!d)break;k=k+u|0}r=r+f|0}if((S|0)!=(t|0)){for(b=(M|0)==0,p=(g|0)==(y|0),k=(y|0)==0,c=s+-1|0,h=c-((w|0)>0?w:0)|0,m=~i,m=(h|0)>(m|0)?h:m,c=c-m|0,h=~m,h=s+i+-1-((c|0)<(i|0)?i:c)-m-((h|0)>0?h:0)|0,m=ia(h,u)|0,h=ia(h,n)|0,c=r,_=o;;){if(b?d=c:(hn(c|0,Li[_>>0]|0,M|0)|0,d=c+M|0),p)a=_;else{for(a=F,l=_,f=d;;){if(Li[f>>0]=Li[l>>0]|0,a=a+-1|0,!a)break;l=l+1|0,f=f+1|0}a=_+F|0,d=d+F|0}if(k||hn(d|0,Li[a+-1>>0]|0,y|0)|0,e=e+-1|0,!e)break;c=c+u|0,_=_+n|0}o=o+h|0,r=r+m|0}}else{if(!a){for(l=s+-1-((w|0)>0?w:0)|0,a=~i,a=(l|0)>(a|0)?l:a,l=~a,l=ia(a+((l|0)>0?l:0)+1|0,u)|0,a=r;;){if(En(a|0,o|0,F|0)|0,d=d+-1|0,!d)break;a=a+u|0}r=r+l|0}if((S|0)!=(t|0)){for(l=s+-1|0,a=l-((w|0)>0?w:0)|0,d=~i,d=(a|0)>(d|0)?a:d,l=l-d|0,a=~d,a=s+i+-1-((l|0)<(i|0)?i:l)-d-((a|0)>0?a:0)|0,d=ia(a,u)|0,a=ia(a,n)|0,l=r,f=o;;){if(En(l|0,f|0,F|0)|0,e=e+-1|0,!e)break;l=l+u|0,f=f+n|0}o=o+a|0,r=r+d|0}}if(b=0-n|0,m=o+b|0,t)if(e=(M|0)==0,E=(g|0)==(y|0),p=(y|0)==0,k=F-n|0,v)if(e)for(;;){if(E)f=r,l=b;else{for(l=F,f=m,e=r;;){if(Li[e>>0]=Li[f>>0]|0,l=l+-1|0,!l)break;f=f+1|0,e=e+1|0}f=r+F|0,l=k}if(p||hn(f|0,Li[o+(l+-1)>>0]|0,y|0)|0,t=t+-1|0,!t)break;r=r+u|0}else for(;;){if(hn(r|0,Li[m>>0]|0,M|0)|0,l=r+M|0,E)e=b;else{for(e=F,f=m;;){if(Li[l>>0]=Li[f>>0]|0,e=e+-1|0,!e)break;f=f+1|0,l=l+1|0}l=r+(M+F)|0,e=k}if(p||hn(l|0,Li[o+(e+-1)>>0]|0,y|0)|0,t=t+-1|0,!t)break;r=r+u|0}else{if(e){for(;;){if(En(r|0,m|0,F|0)|0,t=t+-1|0,!t)break;r=r+u|0}return}for(;;){if(En(r|0,m|0,F|0)|0,t=t+-1|0,!t)break;r=r+u|0}}}function y(e,r,t,o,n,i,a,s,u){e|=0,r|=0,t|=0,o|=0,n|=0,i|=0,a|=0,s|=0,u|=0;var f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,v=0,y=0,F=0,R=0;if(y=qi,qi=qi+144|0,f=y,(((t|0)>=0?(s+t|0)>>>0>n>>>0|(o|0)<0:!0)?0:(o+1+u|0)>>>0<=i>>>0)?f=e:(v=u+1|0,M(e,f,t,o,n,i,s,v,s),M(e+(ia(i,n)|0)|0,f+(ia(v,s)|0)|0,t,o,n,i,s,v,s),t=0,o=0,n=s,i=v),v=8-a|0,h=u>>>1,_=(h|0)==0,E=s>>>1,S=(E|0)==0,w=16-s|0,g=n<<1,p=g-s|0,m=g|1,b=n+1|0,k=E<<1,_)return void(qi=y);for(e=r,s=f+((ia(o,n)|0)+t)|0,c=h;;){if(S)u=e;else{for(u=e+k|0,l=s,d=E;;){if(F=xi[l+n>>0]|0,R=xi[l>>0]|0,Li[e+8>>0]=(((ia(F,v)|0)+(ia(xi[l+g>>0]|0,a)|0)<<3)+32|0)>>>6,Li[e>>0]=(((ia(R,v)|0)+(ia(F,a)|0)<<3)+32|0)>>>6,F=xi[l+b>>0]|0,R=xi[l+1>>0]|0,Li[e+9>>0]=(((ia(F,v)|0)+(ia(xi[l+m>>0]|0,a)|0)<<3)+32|0)>>>6,Li[e+1>>0]=(((ia(R,v)|0)+(ia(F,a)|0)<<3)+32|0)>>>6,d=d+-1|0,!d)break;e=e+2|0,l=l+2|0}s=s+k|0}if(c=c+-1|0,!c)break;e=u+w|0,s=s+p|0}if(_)return void(qi=y);for(u=r+64|0,o=f+((ia(i+o|0,n)|0)+t)|0,f=h;;){if(S)i=u;else{for(i=u+k|0,t=o,e=E;;){if(R=xi[t+n>>0]|0,F=xi[t>>0]|0,Li[u+8>>0]=(((ia(R,v)|0)+(ia(xi[t+g>>0]|0,a)|0)<<3)+32|0)>>>6,Li[u>>0]=(((ia(F,v)|0)+(ia(R,a)|0)<<3)+32|0)>>>6,R=xi[t+b>>0]|0,F=xi[t+1>>0]|0,Li[u+9>>0]=(((ia(R,v)|0)+(ia
\ No newline at end of file
-qi=m,e|0;h=(t|0)==1,Bi[r+80>>2]=h&1;do if(h){if(o=Fe(952)|0,n=r+84|0,Bi[n>>2]=o,!o)return e=65535,qi=m,e|0;if(t=Me(e,o)|0)return e=t,qi=m,e|0;if(t=Bi[n>>2]|0,!(Bi[t+920>>2]|0))break;if(o=Bi[t+948>>2]|0,(Bi[t+944>>2]|0)>>>0>o>>>0)return e=1,qi=m,e|0;if(o>>>0<(Bi[l>>2]|0)>>>0)return e=1,qi=m,e|0;if(o>>>0>(Bi[i>>2]|0)>>>0)return e=1,qi=m,e|0;Bi[i>>2]=(o|0)==0?1:o;break}while(0);return be(e)|0,e=0,qi=m,e|0}return e=Bi[Wi>>2]|0,Bi[_>>2]=7432,la(e|0,7592,_|0)|0,e=1,qi=m,e|0}function H(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0,a=0;if((Bi[e>>2]|0)!=(Bi[r>>2]|0))return r=1,r|0;if((Bi[e+4>>2]|0)!=(Bi[r+4>>2]|0))return r=1,r|0;if((Bi[e+12>>2]|0)!=(Bi[r+12>>2]|0))return r=1,r|0;if(t=Bi[e+16>>2]|0,(t|0)!=(Bi[r+16>>2]|0))return r=1,r|0;if((Bi[e+44>>2]|0)!=(Bi[r+44>>2]|0))return r=1,r|0;if((Bi[e+48>>2]|0)!=(Bi[r+48>>2]|0))return r=1,r|0;if((Bi[e+52>>2]|0)!=(Bi[r+52>>2]|0))return r=1,r|0;if((Bi[e+56>>2]|0)!=(Bi[r+56>>2]|0))return r=1,r|0;if(a=Bi[e+60>>2]|0,(a|0)!=(Bi[r+60>>2]|0))return r=1,r|0;if((Bi[e+80>>2]|0)!=(Bi[r+80>>2]|0))return r=1,r|0;e:do if(t){if((t|0)==1){if((Bi[e+24>>2]|0)!=(Bi[r+24>>2]|0))return r=1,r|0;if((Bi[e+28>>2]|0)!=(Bi[r+28>>2]|0))return r=1,r|0;if((Bi[e+32>>2]|0)!=(Bi[r+32>>2]|0))return r=1,r|0;if(t=Bi[e+36>>2]|0,(t|0)!=(Bi[r+36>>2]|0))return r=1,r|0;if(t){for(o=Bi[e+40>>2]|0,n=Bi[r+40>>2]|0,i=0;;){if((Bi[o+(i<<2)>>2]|0)!=(Bi[n+(i<<2)>>2]|0)){t=1;break}if(i=i+1|0,i>>>0>=t>>>0)break e}return t|0}}}else if((Bi[e+20>>2]|0)!=(Bi[r+20>>2]|0))return r=1,r|0;while(0);if(a){if((Bi[e+64>>2]|0)!=(Bi[r+64>>2]|0))return r=1,r|0;if((Bi[e+68>>2]|0)!=(Bi[r+68>>2]|0))return r=1,r|0;if((Bi[e+72>>2]|0)!=(Bi[r+72>>2]|0))return r=1,r|0;if((Bi[e+76>>2]|0)!=(Bi[r+76>>2]|0))return r=1,r|0}return r=0,r|0}function U(e,r,t,o){e|=0,r|=0,t|=0,o|=0;var n=0,a=0,s=0,u=0,f=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,v=0,M=0,y=0,F=0,R=0,A=0,O=0,D=0,P=0,T=0;for(O=qi,qi=qi+448|0,A=O,E=O+12|0,F=O+8|0,y=O+4|0,E=E+(0-E&15)|0,S=Bi[r+3376>>2]|0,_=Bi[o>>2]|0,Bi[F>>2]=0,w=r+1192|0,Bi[w>>2]=(Bi[w>>2]|0)+1,h=r+1200|0,Bi[h>>2]=0,m=r+12|0,Bi[y>>2]=(Bi[o+48>>2]|0)+(Bi[(Bi[m>>2]|0)+52>>2]|0),b=o+36|0,p=r+1212|0,g=o+52|0,v=o+56|0,M=o+60|0,k=o+4|0,u=o+44|0,f=r+1220|0,d=r+1172|0,R=r+1176|0,c=S+12|0,s=0,n=0;;){if(o=Bi[p>>2]|0,(Bi[b>>2]|0)==0?(Bi[o+(_*216|0)+196>>2]|0)!=0:0){o=4;break}if(a=Bi[(Bi[m>>2]|0)+56>>2]|0,T=Bi[g>>2]|0,P=Bi[v>>2]|0,D=Bi[M>>2]|0,Bi[o+(_*216|0)+4>>2]=Bi[w>>2],Bi[o+(_*216|0)+8>>2]=T,Bi[o+(_*216|0)+12>>2]=P,Bi[o+(_*216|0)+16>>2]=D,Bi[o+(_*216|0)+24>>2]=a,a=Bi[k>>2]|0,(a|0)!=2?!((a|0)==7|(n|0)!=0):0){if(n=Se(e,F)|0){o=28;break}if(o=Bi[F>>2]|0,o>>>0>((Bi[R>>2]|0)-_|0)>>>0){o=9;break}o?(hn(c|0,0,164)|0,Bi[S>>2]=0,n=1):n=0}if(o=Bi[F>>2]|0)Bi[F>>2]=o+-1,a=n;else{if(n=i(e,S,(Bi[p>>2]|0)+(_*216|0)|0,Bi[k>>2]|0,Bi[u>>2]|0)|0){o=15;break}a=0}if(n=l((Bi[p>>2]|0)+(_*216|0)|0,S,t,f,y,_,Bi[(Bi[m>>2]|0)+64>>2]|0,E)|0){o=17;break}if(n=((Bi[(Bi[p>>2]|0)+(_*216|0)+196>>2]|0)==1&1)+s|0,o=pe(e)|0?1:(Bi[F>>2]|0)!=0,T=Bi[k>>2]|0,(T|0)==7|(T|0)==2&&(Bi[h>>2]=_),_=ke(Bi[d>>2]|0,Bi[R>>2]|0,_)|0,!((_|0)!=0|o^1)){o=23;break}if(!o){o=25;break}s=n,n=a}return(o|0)==4?(T=Bi[Wi>>2]|0,Bi[A>>2]=7472,la(T|0,7592,A|0)|0,T=1,qi=O,T|0):(o|0)==9?(T=Bi[Wi>>2]|0,Bi[A>>2]=7504,la(T|0,7592,A|0)|0,T=1,qi=O,T|0):(o|0)==15?(T=Bi[Wi>>2]|0,Bi[A>>2]=7520,la(T|0,7592,A|0)|0,T=n,qi=O,T|0):(o|0)==17?(T=Bi[Wi>>2]|0,Bi[A>>2]=7544,la(T|0,7592,A|0)|0,T=n,qi=O,T|0):(o|0)==23?(T=Bi[Wi>>2]|0,Bi[A>>2]=7560,la(T|0,7592,A|0)|0,T=1,qi=O,T|0):(o|0)==25?(o=r+1196|0,n=(Bi[o>>2]|0)+n|0,n>>>0>(Bi[R>>2]|0)>>>0?(T=Bi[Wi>>2]|0,Bi[A>>2]=7576,la(T|0,7592,A|0)|0,T=1,qi=O,T|0):(Bi[o>>2]=n,T=0,qi=O,T|0)):(o|0)==28?(qi=O,n|0):0}function V(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0,a=0,s=0;a=Bi[e+1192>>2]|0,t=Bi[e+1200>>2]|0,i=e+1212|0;e:do if(t){o=e+16|0,n=0;do{do if(t=t+-1|0,t>>>0<=r>>>0)break e;while((Bi[(Bi[i>>2]|0)+(t*216|0)+4>>2]|0)!=(a|0));n=n+1|0,s=Bi[(Bi[o>>2]|0)+52>>2]|0}while(n>>>0<(s>>>0>10?s:10)>>>0)}else t=r;while(0);for(n=e+1172|0,o=e+1176|0,r=t;;){if(t=Bi[i>>2]|0,(Bi[t+(r*216|0)+4>>2]|0)!=(a|0)){t=11;break}if(t=t+(r*216|0)+196|0,e=Bi[t>>2]|0,!e){t=11;break}if(Bi[t>>2]=e+-1,r=ke(Bi[n>>2]|0,Bi[o>>2]|0,r)|0,!r){t=11
\ No newline at end of file
-(t|0)==-1?(r=1,r|0):(Bi[r>>2]=t^1,r=0,r|0))}function Me(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0;if(hn(r|0,0,952)|0,t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;n=(t|0)==1,Bi[r>>2]=n&1;do if(n){if(o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+4>>2]=o,(o|0)==255){if(o=ue(e,16)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+8>>2]=o,t=ue(e,16)|0,(t|0)==-1)return r=1,r|0;Bi[r+12>>2]=t;break}}while(0);if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;n=(t|0)==1,Bi[r+16>>2]=n&1;do if(n){if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;Bi[r+20>>2]=(o|0)==1&1;break}while(0);if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;n=(o|0)==1,Bi[r+24>>2]=n&1;do{if(n){if(o=ue(e,3)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+28>>2]=o,o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+32>>2]=(o|0)==1&1,o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(n=(o|0)==1,Bi[r+36>>2]=n&1,!n){Bi[r+40>>2]=2,Bi[r+44>>2]=2,Bi[r+48>>2]=2;break}if(o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+40>>2]=o,o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+44>>2]=o,o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;Bi[r+48>>2]=o;break}Bi[r+28>>2]=5,Bi[r+40>>2]=2,Bi[r+44>>2]=2,Bi[r+48>>2]=2}while(0);if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(n=(o|0)==1,Bi[r+52>>2]=n&1,n){if(o=r+56|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>5)return r=1,r|0;if(o=r+60|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>5)return r=1,r|0}if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;n=(o|0)==1,Bi[r+64>>2]=n&1;do if(n){if(o=fe(e)|0,(le(e,32)|0)==-1|(o|0)==0)return r=1,r|0;if(Bi[r+68>>2]=o,o=fe(e)|0,(le(e,32)|0)==-1|(o|0)==0)return r=1,r|0;if(Bi[r+72>>2]=o,o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;Bi[r+76>>2]=(o|0)==1&1;break}while(0);if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(o=(o|0)==1,n=r+80|0,Bi[n>>2]=o&1,o){if(o=ye(e,r+84|0)|0)return r=o,r|0}else Bi[r+84>>2]=1,Bi[r+96>>2]=288000001,Bi[r+224>>2]=288000001,Bi[r+480>>2]=24,Bi[r+484>>2]=24,Bi[r+488>>2]=24,Bi[r+492>>2]=24;if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(t=(o|0)==1,o=r+496|0,Bi[o>>2]=t&1,t){if(t=ye(e,r+500|0)|0)return r=t,r|0}else Bi[r+500>>2]=1,Bi[r+512>>2]=240000001,Bi[r+640>>2]=240000001,Bi[r+896>>2]=24,Bi[r+900>>2]=24,Bi[r+904>>2]=24,Bi[r+908>>2]=24;((Bi[n>>2]|0)==0?(Bi[o>>2]|0)==0:0)||(i=46);do if((i|0)==46){if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;Bi[r+912>>2]=(t|0)==1&1;break}while(0);if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;if(Bi[r+916>>2]=(t|0)==1&1,t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;i=(t|0)==1,Bi[r+920>>2]=i&1;do{if(i){if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;if(Bi[r+924>>2]=(t|0)==1&1,t=r+928|0,o=Se(e,t)|0)return r=o,r|0;if((Bi[t>>2]|0)>>>0>16)return r=1,r|0;if(o=r+932|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>16)return r=1,r|0;if(o=r+936|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>16)return r=1,r|0;if(o=r+940|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>16)return r=1,r|0;if(t=Se(e,r+944|0)|0)return r=t,r|0;if(t=Se(e,r+948|0)|0,!t)break;return t|0}Bi[r+924>>2]=1,Bi[r+928>>2]=2,Bi[r+932>>2]=1,Bi[r+936>>2]=16,Bi[r+940>>2]=16,Bi[r+944>>2]=16,Bi[r+948>>2]=16}while(0);return r=0,r|0}function ye(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0,a=0,s=0;if(t=Se(e,r)|0)return r=t,r|0;if(s=(Bi[r>>2]|0)+1|0,Bi[r>>2]=s,s>>>0>32)return r=1,r|0;if(t=ue(e,4)|0,(t|0)==-1)return r=1,r|0;if(s=r+4|0,Bi[s>>2]=t,o=ue(e,4)|0,(o|0)==-1)return r=1,r|0;a=r+8|0,Bi[a>>2]=o;e:do if(Bi[r>>2]|0){for(i=0;;){if(n=r+(i<<2)+12|0,t=Se(e,n)|0){o=17;break}if(o=Bi[n>>2]|0,(o|0)==-1){t=1,o=17;break}if(t=o+1|0,Bi[n>>2]=t,Bi[n>>2]=t<<(Bi[s>>2]|0)+6,n=r+(i<<2)+140|0,t=Se(e,n)|0){o=17;break}if(o=Bi[n>>2]|0,(o|0)==-1){t=1,o=17;break}if(o=o+1|0,Bi[n>>2]=o,Bi[n>>2]=o<<(Bi[a>>2]|0)+4,o=ue(e,1)|0,(o|0)==-1){t=1,o=17;break}if(Bi[r+(i<<2)+268>>2]=(o|0)==1&1,i=i+1|0,i>>>0>=(Bi[r>>2]|0)>>>0)break e}if((o|0)==17)return t|0}while(0);return t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+396>>2]=t+1,t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+400>>2]=t+1,t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+404>>2]=t+1,t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+408>>2]=t,r=0,r|0))))}function Fe(e){e|=0;var r=0,t=0,o=0,n=0,i=0,a=0,s=0,u=0,f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,v=0,M=0,y=0,F=0,R=0,A=0,O=0,D=0,P=0,T=0,N=0,C=0,L=0,I=0,B=0,x=0,H=0,U=0,V=0;do if(e>>>0<245){if(h=e>>>0<11?16:e+11&-8,e
\ No newline at end of file
+ are we?";if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},"undefined"!=typeof arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.log(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),"undefined"==typeof Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){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("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var r=parseInt(e.substr(1));return assert(r%8===0),r/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,getAlignSize:function(e,r,t){return t||"i64"!=e&&"double"!=e?e?Math.min(r||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(r,8):8},dynCall:function(e,r,t){return t&&t.length?(t.splice||(t=Array.prototype.slice.call(t)),t.splice(0,0,r),Module["dynCall_"+e].apply(null,t)):Module["dynCall_"+e].call(null,r)},functionPointers:[],addFunction:function(e){for(var r=0;r<Runtime.functionPointers.length;r++)if(!Runtime.functionPointers[r])return Runtime.functionPointers[r]=e,2*(1+r);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},getAsmConst:function(code,numArgs){Runtime.asmConstCache||(Runtime.asmConstCache={});var func=Runtime.asmConstCache[code];if(func)return func;for(var args=[],i=0;numArgs>i;i++)args.push(String.fromCharCode(36)+i);var source=Pointer_stringify(code);'"'===source[0]&&(source.indexOf('"',1)===source.length-1?source=source.substr(1,source.length-2):abort("invalid EM_ASM input |"+source+"|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)"));try{var evalled=eval("(function(Module, FS) { return function("+args.join(",")+"){ "+source+" } })")(Module,"undefined"!=typeof FS?FS:null)}catch(e){throw Module.printErr("error in executing inline EM_ASM code: "+e+" on: \n\n"+source+"\n\nwith args |"+args+"| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)"),e}return Runtime.asmConstCache[code]=evalled},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,r){assert(r),Runtime.funcWrappers[r]||(Runtime.funcWrappers[r]={});var t=Runtime.funcWrappers[r];return t[e]||(t[e]=function(){return Runtime.dynCall(r,e,arguments)}),t[e]},getCompilerSetting:function(e){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(e){var r=STACKTOP;return STACKTOP=STACKTOP+e|0,STACKTOP=STACKTOP+15&-16,r},staticAlloc:function(e){var r=STATICTOP;return STATICTOP=STATICTOP+e|0,STATICTOP=STATICTOP+15&-16,r},dynamicAlloc:function(e){var r=DYNAMICTOP;if(DYNAMICTOP=DYNAMICTOP+e|0,DYNAMICTOP=DYNAMICTOP+15&-16,DYNAMICTOP>=TOTAL_MEMORY){var t=enlargeMemory();if(!t)return 0}return r},alignMemory:function(e,
\ No newline at end of file
+Module.stringToUTF32=stringToUTF32,Module.lengthBytesUTF32=lengthBytesUTF32,Module.stackTrace=stackTrace;for(var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0,TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||67108864,totalMemory=65536;TOTAL_MEMORY>totalMemory||2*TOTAL_STACK>totalMemory;)16777216>totalMemory?totalMemory*=2:totalMemory+=16777216;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("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support");var buffer=new ArrayBuffer(TOTAL_MEMORY);HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"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;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;Module.addOnPreRun=Module.addOnPreRun=addOnPreRun,Module.addOnInit=Module.addOnInit=addOnInit,Module.addOnPreMain=Module.addOnPreMain=addOnPreMain,Module.addOnExit=Module.addOnExit=addOnExit,Module.addOnPostRun=Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,r){var t=e>>>16,o=65535&e,n=r>>>16,i=65535&r;return o*i+(t*i+o*n<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var r=0;32>r;r++)if(e&1<<31-r)return r;return 32}),Math.clz32=Math.clz32;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,Math_clz32=Math.clz32,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null;STATIC_BASE=8,STATICTOP=STATIC_BASE+14736,__ATINIT__.push(),allocate([17,1,0,0,0,0,0,0,34,18,1,1,0,0,0,0,50,34,18,2,0,0,0,0,67,51,34,34,18,18,2,2,83,67,51,35,18,18,2,2,19,35,67,51,99,83,2,2,0,0,101,85,68,68,52,52,35,35,35,35,19,19,19,19,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,249,233,217,200,200,184,184,167,167,167,167,151,151,151,151,134,134,134,134,134,134,134,134,118,118,118,118,118,118,118,118,230,214,198,182,165,165,149,149,132,132,132,132,116,116,116,116,100,100,100,100,84,84,84,84,67,67,67,67,67,67,67,67,51,51,51,51,51,51,51,51,35,35,35,35,35,35,35,35,19,19,19,19,19,19,19,19,3,3,3,3,3,3,3,3,214,182,197,197,165,165,149,149,132,132,132,132,84,84,84,84,68,68,68,68,4,4,4,4,115,115,115,115,115,115,115,115,99,99,99,99,99,99,99,99,51,51,51,51,51,51,51,51,35,35,35,35,35,35,35,35,19,19,19,19,19,19,19,19,197,181,165,5,148,148,116,116,52,52,36,36,131,131,131,131,99,99,99,99,83,83,83,83,67,67,67,67,19,19,19,19,181,149,164,164,132,132,36,36,20,20,4,4,115,115,115,115,99,99,99,99,83,83,83,83,67,67,67,67,51,51,51,51,166,6,21,21,132,132,132,132,147,147,147,147,147,147,147,147,115,115,115,115,115,115,115,115,99,99,99,99,99,99,99,99,83,8
\ No newline at end of file
+var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);var _cosf=Math_cos;Module._cosf=_cosf,Module._i64Subtract=_i64Subtract;var _DtoILow=!0;Module._DtoILow=_DtoILow;var ___errno_state=0;Module.___errno_state=___errno_state,Module.___setErrNo=___setErrNo;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};Module.ERRNO_CODES=ERRNO_CODES,Module._sysconf=_sysconf,Module._remquof=_remquof,Module._memset=_memset;var _BDtoILow=!0;Module._BDtoILow=_BDtoILow;var _FtoIHigh=!0;Module._FtoIHigh=_FtoIHigh;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
\ No newline at end of file
+}catch(f){console.log("FS.trackingDelegate['willMovePath']('"+e+"', '"+r+"') threw an exception: "+f.message)}FS.hashRemoveNode(l);try{o.node_ops.rename(l,n,u)}catch(f){throw f}finally{FS.hashAddNode(l)}try{FS.trackingDelegate.onMovePath&&FS.trackingDelegate.onMovePath(e,r)}catch(f){console.log("FS.trackingDelegate['onMovePath']('"+e+"', '"+r+"') threw an exception: "+f.message)}}},rmdir:function(e){var r=FS.lookupPath(e,{parent:!0}),t=r.node,o=PATH.basename(e),n=FS.lookupNode(t,o),i=FS.mayDelete(t,o,!0);if(i)throw new FS.ErrnoError(i);if(!t.node_ops.rmdir)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(n))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(a){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+a.message)}t.node_ops.rmdir(t,o),FS.destroyNode(n);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(a){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+a.message)}},readdir:function(e){var r=FS.lookupPath(e,{follow:!0}),t=r.node;if(!t.node_ops.readdir)throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);return t.node_ops.readdir(t)},unlink:function(e){var r=FS.lookupPath(e,{parent:!0}),t=r.node,o=PATH.basename(e),n=FS.lookupNode(t,o),i=FS.mayDelete(t,o,!1);if(i)throw i===ERRNO_CODES.EISDIR&&(i=ERRNO_CODES.EPERM),new FS.ErrnoError(i);if(!t.node_ops.unlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(n))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(a){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+a.message)}t.node_ops.unlink(t,o),FS.destroyNode(n);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(a){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+a.message)}},readlink:function(e){var r=FS.lookupPath(e),t=r.node;if(!t)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!t.node_ops.readlink)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return PATH.resolve(FS.getPath(r.node.parent),t.node_ops.readlink(t))},stat:function(e,r){var t=FS.lookupPath(e,{follow:!r}),o=t.node;if(!o)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!o.node_ops.getattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return o.node_ops.getattr(o)},lstat:function(e){return FS.stat(e,!0)},chmod:function(e,r,t){var o;if("string"==typeof e){var n=FS.lookupPath(e,{follow:!t});o=n.node}else o=e;if(!o.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);o.node_ops.setattr(o,{mode:4095&r|-4096&o.mode,timestamp:Date.now()})},lchmod:function(e,r){FS.chmod(e,r,!0)},fchmod:function(e,r){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chmod(t.node,r)},chown:function(e,r,t,o){var n;if("string"==typeof e){var i=FS.lookupPath(e,{follow:!o});n=i.node}else n=e;if(!n.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:function(e,r,t){FS.chown(e,r,t,!0)},fchown:function(e,r,t){var o=FS.getStream(e);if(!o)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chown(o.node,r,t)},truncate:function(e,r){if(0>r)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var t;if("string"==typeof e){var o=FS.lookupPath(e,{follow:!0});t=o.node}else t=e;if(!t.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isDir(t.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!FS.isFile(t.mode))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var n=FS.nodePermissions(t,"w");if(n)throw new FS.ErrnoError(n);t.node_ops.setattr(t,{size:r,timestamp:Date.now()})},ftruncate:function(e,r){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(0===(2097155&t.flags))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);FS.truncate(t.node,r)},utime:function(e,r,t){var o=FS.lookupPath(e,{follow:!0}),n=o.node;n.node_ops.setattr(n,{timestamp:Math.max(r,t)})},open:function(e,r,t,o,n){if(""===e)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);r="string"==typeof r?FS.m
\ No newline at end of file
+n.exitPointerLock=n.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",e,!1),document.addEventListener("mozpointerlockchange",e,!1),document.addEventListener("webkitpointerlockchange",e,!1),document.addEventListener("mspointerlockchange",e,!1),Module.elementPointerLock&&n.addEventListener("click",function(e){!Browser.pointerLock&&n.requestPointerLock&&(n.requestPointerLock(),e.preventDefault())},!1))}},createContext:function(e,r,t,o){if(r&&Module.ctx&&e==Module.canvas)return Module.ctx;var n,i;if(r){var a={antialias:!1,alpha:!1};if(o)for(var s in o)a[s]=o[s];i=GL.createContext(e,a),i&&(n=GL.getContext(i).GLctx),e.style.backgroundColor="black"}else n=e.getContext("2d");return n?(t&&(r||assert("undefined"==typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=n,r&&GL.makeContextCurrent(i),Module.useWebGL=r,Browser.moduleContextCreatedCallbacks.forEach(function(e){e()}),Browser.init()),n):null},destroyContext:function(e,r,t){},fullScreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullScreen:function(e,r,t){function o(){Browser.isFullScreen=!1;var e=n.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===e?(n.cancelFullScreen=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},n.cancelFullScreen=n.cancelFullScreen.bind(document),Browser.lockPointer&&n.requestPointerLock(),Browser.isFullScreen=!0,Browser.resizeCanvas&&Browser.setFullScreenCanvasSize()):(e.parentNode.insertBefore(n,e),e.parentNode.removeChild(e),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullScreen),Browser.updateCanvasDimensions(n)}Browser.lockPointer=e,Browser.resizeCanvas=r,Browser.vrDevice=t,"undefined"==typeof Browser.lockPointer&&(Browser.lockPointer=!0),"undefined"==typeof Browser.resizeCanvas&&(Browser.resizeCanvas=!1),"undefined"==typeof Browser.vrDevice&&(Browser.vrDevice=null);var n=Module.canvas;Browser.fullScreenHandlersInstalled||(Browser.fullScreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",o,!1),document.addEventListener("mozfullscreenchange",o,!1),document.addEventListener("webkitfullscreenchange",o,!1),document.addEventListener("MSFullscreenChange",o,!1));var i=document.createElement("div");n.parentNode.insertBefore(i,n),i.appendChild(n),i.requestFullScreen=i.requestFullScreen||i.mozRequestFullScreen||i.msRequestFullscreen||(i.webkitRequestFullScreen?function(){i.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),t?i.requestFullScreen({vrDisplay:t}):i.requestFullScreen()},nextRAF:0,fakeRequestAnimationFrame:function(e){var r=Date.now();if(0===Browser.nextRAF)Browser.nextRAF=r+1e3/60;else for(;r+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var t=Math.max(Browser.nextRAF-r,0);setTimeout(e,t)},requestAnimationFrame:function(e){"undefined"==typeof window?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(e){return function(){return ABORT?void 0:e.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var e=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],e.forEach(function(e){e()})}},safeRequestAnimationFrame:function(e){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser
\ No newline at end of file
+F=xi[l>>0]|0,Li[e+9>>0]=(((ia(xi[A+b>>0]|0,a)|0)+(ia(R,g)|0)<<3)+32|0)>>>6,Li[e+1>>0]=(((ia(F,a)|0)+(ia(y,g)|0)<<3)+32|0)>>>6,d=d+-1|0,!d)break;e=e+2|0}s=s+k|0}if(c=c+-1|0,!c)break;e=u+w|0,s=s+p|0}if(_)return void(qi=v);for(u=r+64|0,i=f+((ia(i+o|0,n)|0)+t)|0,f=h;;){if(S)o=u;else{for(o=u+k|0,t=u,u=i,e=E;;){if(R=xi[u>>0]|0,F=xi[u+m>>0]|0,y=u,u=u+2|0,A=xi[y+1>>0]|0,Li[t+8>>0]=(((ia(F,a)|0)+(ia(xi[y+n>>0]|0,g)|0)<<3)+32|0)>>>6,Li[t>>0]=(((ia(A,a)|0)+(ia(R,g)|0)<<3)+32|0)>>>6,R=xi[u>>0]|0,Li[t+9>>0]=(((ia(xi[y+b>>0]|0,a)|0)+(ia(F,g)|0)<<3)+32|0)>>>6,Li[t+1>>0]=(((ia(R,a)|0)+(ia(A,g)|0)<<3)+32|0)>>>6,e=e+-1|0,!e)break;t=t+2|0}i=i+k|0}if(f=f+-1|0,!f)break;u=o+w|0,i=i+p|0}qi=v}function M(e,r,t,o,n,i,a,s,u){e|=0,r|=0,t|=0,o|=0,n|=0,i|=0,a|=0,s|=0,u|=0;var f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,v=0,M=0,y=0,F=0;if(w=s+o|0,d=(w|0)<0?0-s|0:o,l=(a+t|0)<0?0-a|0:t,d=(d|0)>(i|0)?i:d,l=(l|0)>(n|0)?n:l,f=l+a|0,t=d+s|0,o=(l|0)>0?e+l|0:e,(d|0)>0&&(o=o+(ia(d,n)|0)|0),E=(l|0)<0,M=E?0-l|0:0,v=(f|0)>(n|0),y=v?f-n|0:0,g=a-M|0,F=g-y|0,d=(d|0)<0?0-d|0:0,t=(t|0)>(i|0)?t-i|0:0,S=s-d|0,e=S-t|0,v=E|v,a=(d|0)==0,v){if(!a){for(p=(M|0)==0,b=(g|0)==(y|0),m=(y|0)==0,E=o+F|0,f=s+-1-((w|0)>0?w:0)|0,k=~i,k=(f|0)>(k|0)?f:k,f=~k,f=ia(k+((f|0)>0?f:0)+1|0,u)|0,k=r;;){if(p?a=k:(hn(k|0,Li[o>>0]|0,M|0)|0,a=k+M|0),b)l=o;else{for(h=F,_=o,c=a;;){if(Li[c>>0]=Li[_>>0]|0,h=h+-1|0,!h)break;_=_+1|0,c=c+1|0}l=E,a=a+F|0}if(m||hn(a|0,Li[l+-1>>0]|0,y|0)|0,d=d+-1|0,!d)break;k=k+u|0}r=r+f|0}if((S|0)!=(t|0)){for(b=(M|0)==0,p=(g|0)==(y|0),k=(y|0)==0,c=s+-1|0,h=c-((w|0)>0?w:0)|0,m=~i,m=(h|0)>(m|0)?h:m,c=c-m|0,h=~m,h=s+i+-1-((c|0)<(i|0)?i:c)-m-((h|0)>0?h:0)|0,m=ia(h,u)|0,h=ia(h,n)|0,c=r,_=o;;){if(b?d=c:(hn(c|0,Li[_>>0]|0,M|0)|0,d=c+M|0),p)a=_;else{for(a=F,l=_,f=d;;){if(Li[f>>0]=Li[l>>0]|0,a=a+-1|0,!a)break;l=l+1|0,f=f+1|0}a=_+F|0,d=d+F|0}if(k||hn(d|0,Li[a+-1>>0]|0,y|0)|0,e=e+-1|0,!e)break;c=c+u|0,_=_+n|0}o=o+h|0,r=r+m|0}}else{if(!a){for(l=s+-1-((w|0)>0?w:0)|0,a=~i,a=(l|0)>(a|0)?l:a,l=~a,l=ia(a+((l|0)>0?l:0)+1|0,u)|0,a=r;;){if(En(a|0,o|0,F|0)|0,d=d+-1|0,!d)break;a=a+u|0}r=r+l|0}if((S|0)!=(t|0)){for(l=s+-1|0,a=l-((w|0)>0?w:0)|0,d=~i,d=(a|0)>(d|0)?a:d,l=l-d|0,a=~d,a=s+i+-1-((l|0)<(i|0)?i:l)-d-((a|0)>0?a:0)|0,d=ia(a,u)|0,a=ia(a,n)|0,l=r,f=o;;){if(En(l|0,f|0,F|0)|0,e=e+-1|0,!e)break;l=l+u|0,f=f+n|0}o=o+a|0,r=r+d|0}}if(b=0-n|0,m=o+b|0,t)if(e=(M|0)==0,E=(g|0)==(y|0),p=(y|0)==0,k=F-n|0,v)if(e)for(;;){if(E)f=r,l=b;else{for(l=F,f=m,e=r;;){if(Li[e>>0]=Li[f>>0]|0,l=l+-1|0,!l)break;f=f+1|0,e=e+1|0}f=r+F|0,l=k}if(p||hn(f|0,Li[o+(l+-1)>>0]|0,y|0)|0,t=t+-1|0,!t)break;r=r+u|0}else for(;;){if(hn(r|0,Li[m>>0]|0,M|0)|0,l=r+M|0,E)e=b;else{for(e=F,f=m;;){if(Li[l>>0]=Li[f>>0]|0,e=e+-1|0,!e)break;f=f+1|0,l=l+1|0}l=r+(M+F)|0,e=k}if(p||hn(l|0,Li[o+(e+-1)>>0]|0,y|0)|0,t=t+-1|0,!t)break;r=r+u|0}else{if(e){for(;;){if(En(r|0,m|0,F|0)|0,t=t+-1|0,!t)break;r=r+u|0}return}for(;;){if(En(r|0,m|0,F|0)|0,t=t+-1|0,!t)break;r=r+u|0}}}function y(e,r,t,o,n,i,a,s,u){e|=0,r|=0,t|=0,o|=0,n|=0,i|=0,a|=0,s|=0,u|=0;var f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,v=0,y=0,F=0,R=0;if(y=qi,qi=qi+144|0,f=y,(((t|0)>=0?(s+t|0)>>>0>n>>>0|(o|0)<0:!0)?0:(o+1+u|0)>>>0<=i>>>0)?f=e:(v=u+1|0,M(e,f,t,o,n,i,s,v,s),M(e+(ia(i,n)|0)|0,f+(ia(v,s)|0)|0,t,o,n,i,s,v,s),t=0,o=0,n=s,i=v),v=8-a|0,h=u>>>1,_=(h|0)==0,E=s>>>1,S=(E|0)==0,w=16-s|0,g=n<<1,p=g-s|0,m=g|1,b=n+1|0,k=E<<1,_)return void(qi=y);for(e=r,s=f+((ia(o,n)|0)+t)|0,c=h;;){if(S)u=e;else{for(u=e+k|0,l=s,d=E;;){if(F=xi[l+n>>0]|0,R=xi[l>>0]|0,Li[e+8>>0]=(((ia(F,v)|0)+(ia(xi[l+g>>0]|0,a)|0)<<3)+32|0)>>>6,Li[e>>0]=(((ia(R,v)|0)+(ia(F,a)|0)<<3)+32|0)>>>6,F=xi[l+b>>0]|0,R=xi[l+1>>0]|0,Li[e+9>>0]=(((ia(F,v)|0)+(ia(xi[l+m>>0]|0,a)|0)<<3)+32|0)>>>6,Li[e+1>>0]=(((ia(R,v)|0)+(ia(F,a)|0)<<3)+32|0)>>>6,d=d+-1|0,!d)break;e=e+2|0,l=l+2|0}s=s+k|0}if(c=c+-1|0,!c)break;e=u+w|0,s=s+p|0}if(_)return void(qi=y);for(u=r+64|0,o=f+((ia(i+o|0,n)|0)+t)|0,f=h;;){if(S)i=u;else{for(i=u+k|0,t=o,e=E;;){if(R=xi[t+n>>0]|0,F=xi[t>>0]|0,Li[u+8>>0]=(((ia(R,v)|0)+(ia(xi[t+g>>0]|0,a)|0)<<3)+32|0)>>>6,Li[u>>0]=(((ia(F,v)|0)+(ia(R,a)|0)<<3)+32|0)>>>6,R=xi[t+b>>0]|0,F=xi[t+1>>0]|0,Li[u+9>>0]=(((ia(R,v)|0)+(ia
\ No newline at end of file
+qi=m,e|0;if(t=Bi[n>>2]|0,!(Bi[t+920>>2]|0))break;if(o=Bi[t+948>>2]|0,(Bi[t+944>>2]|0)>>>0>o>>>0)return e=1,qi=m,e|0;if(o>>>0<(Bi[l>>2]|0)>>>0)return e=1,qi=m,e|0;if(o>>>0>(Bi[i>>2]|0)>>>0)return e=1,qi=m,e|0;Bi[i>>2]=(o|0)==0?1:o;break}while(0);return be(e)|0,e=0,qi=m,e|0}return e=Bi[Wi>>2]|0,Bi[_>>2]=7432,la(e|0,7592,_|0)|0,e=1,qi=m,e|0}function H(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0,a=0;if((Bi[e>>2]|0)!=(Bi[r>>2]|0))return r=1,r|0;if((Bi[e+4>>2]|0)!=(Bi[r+4>>2]|0))return r=1,r|0;if((Bi[e+12>>2]|0)!=(Bi[r+12>>2]|0))return r=1,r|0;if(t=Bi[e+16>>2]|0,(t|0)!=(Bi[r+16>>2]|0))return r=1,r|0;if((Bi[e+44>>2]|0)!=(Bi[r+44>>2]|0))return r=1,r|0;if((Bi[e+48>>2]|0)!=(Bi[r+48>>2]|0))return r=1,r|0;if((Bi[e+52>>2]|0)!=(Bi[r+52>>2]|0))return r=1,r|0;if((Bi[e+56>>2]|0)!=(Bi[r+56>>2]|0))return r=1,r|0;if(a=Bi[e+60>>2]|0,(a|0)!=(Bi[r+60>>2]|0))return r=1,r|0;if((Bi[e+80>>2]|0)!=(Bi[r+80>>2]|0))return r=1,r|0;e:do if(t){if((t|0)==1){if((Bi[e+24>>2]|0)!=(Bi[r+24>>2]|0))return r=1,r|0;if((Bi[e+28>>2]|0)!=(Bi[r+28>>2]|0))return r=1,r|0;if((Bi[e+32>>2]|0)!=(Bi[r+32>>2]|0))return r=1,r|0;if(t=Bi[e+36>>2]|0,(t|0)!=(Bi[r+36>>2]|0))return r=1,r|0;if(t){for(o=Bi[e+40>>2]|0,n=Bi[r+40>>2]|0,i=0;;){if((Bi[o+(i<<2)>>2]|0)!=(Bi[n+(i<<2)>>2]|0)){t=1;break}if(i=i+1|0,i>>>0>=t>>>0)break e}return t|0}}}else if((Bi[e+20>>2]|0)!=(Bi[r+20>>2]|0))return r=1,r|0;while(0);if(a){if((Bi[e+64>>2]|0)!=(Bi[r+64>>2]|0))return r=1,r|0;if((Bi[e+68>>2]|0)!=(Bi[r+68>>2]|0))return r=1,r|0;if((Bi[e+72>>2]|0)!=(Bi[r+72>>2]|0))return r=1,r|0;if((Bi[e+76>>2]|0)!=(Bi[r+76>>2]|0))return r=1,r|0}return r=0,r|0}function U(e,r,t,o){e|=0,r|=0,t|=0,o|=0;var n=0,a=0,s=0,u=0,f=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,v=0,M=0,y=0,F=0,R=0,A=0,O=0,D=0,P=0,T=0;for(O=qi,qi=qi+448|0,A=O,E=O+12|0,F=O+8|0,y=O+4|0,E=E+(0-E&15)|0,S=Bi[r+3376>>2]|0,_=Bi[o>>2]|0,Bi[F>>2]=0,w=r+1192|0,Bi[w>>2]=(Bi[w>>2]|0)+1,h=r+1200|0,Bi[h>>2]=0,m=r+12|0,Bi[y>>2]=(Bi[o+48>>2]|0)+(Bi[(Bi[m>>2]|0)+52>>2]|0),b=o+36|0,p=r+1212|0,g=o+52|0,v=o+56|0,M=o+60|0,k=o+4|0,u=o+44|0,f=r+1220|0,d=r+1172|0,R=r+1176|0,c=S+12|0,s=0,n=0;;){if(o=Bi[p>>2]|0,(Bi[b>>2]|0)==0?(Bi[o+(_*216|0)+196>>2]|0)!=0:0){o=4;break}if(a=Bi[(Bi[m>>2]|0)+56>>2]|0,T=Bi[g>>2]|0,P=Bi[v>>2]|0,D=Bi[M>>2]|0,Bi[o+(_*216|0)+4>>2]=Bi[w>>2],Bi[o+(_*216|0)+8>>2]=T,Bi[o+(_*216|0)+12>>2]=P,Bi[o+(_*216|0)+16>>2]=D,Bi[o+(_*216|0)+24>>2]=a,a=Bi[k>>2]|0,(a|0)!=2?!((a|0)==7|(n|0)!=0):0){if(n=Se(e,F)|0){o=28;break}if(o=Bi[F>>2]|0,o>>>0>((Bi[R>>2]|0)-_|0)>>>0){o=9;break}o?(hn(c|0,0,164)|0,Bi[S>>2]=0,n=1):n=0}if(o=Bi[F>>2]|0)Bi[F>>2]=o+-1,a=n;else{if(n=i(e,S,(Bi[p>>2]|0)+(_*216|0)|0,Bi[k>>2]|0,Bi[u>>2]|0)|0){o=15;break}a=0}if(n=l((Bi[p>>2]|0)+(_*216|0)|0,S,t,f,y,_,Bi[(Bi[m>>2]|0)+64>>2]|0,E)|0){o=17;break}if(n=((Bi[(Bi[p>>2]|0)+(_*216|0)+196>>2]|0)==1&1)+s|0,o=pe(e)|0?1:(Bi[F>>2]|0)!=0,T=Bi[k>>2]|0,(T|0)==7|(T|0)==2&&(Bi[h>>2]=_),_=ke(Bi[d>>2]|0,Bi[R>>2]|0,_)|0,!((_|0)!=0|o^1)){o=23;break}if(!o){o=25;break}s=n,n=a}return(o|0)==4?(T=Bi[Wi>>2]|0,Bi[A>>2]=7472,la(T|0,7592,A|0)|0,T=1,qi=O,T|0):(o|0)==9?(T=Bi[Wi>>2]|0,Bi[A>>2]=7504,la(T|0,7592,A|0)|0,T=1,qi=O,T|0):(o|0)==15?(T=Bi[Wi>>2]|0,Bi[A>>2]=7520,la(T|0,7592,A|0)|0,T=n,qi=O,T|0):(o|0)==17?(T=Bi[Wi>>2]|0,Bi[A>>2]=7544,la(T|0,7592,A|0)|0,T=n,qi=O,T|0):(o|0)==23?(T=Bi[Wi>>2]|0,Bi[A>>2]=7560,la(T|0,7592,A|0)|0,T=1,qi=O,T|0):(o|0)==25?(o=r+1196|0,n=(Bi[o>>2]|0)+n|0,n>>>0>(Bi[R>>2]|0)>>>0?(T=Bi[Wi>>2]|0,Bi[A>>2]=7576,la(T|0,7592,A|0)|0,T=1,qi=O,T|0):(Bi[o>>2]=n,T=0,qi=O,T|0)):(o|0)==28?(qi=O,n|0):0}function V(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0,a=0,s=0;a=Bi[e+1192>>2]|0,t=Bi[e+1200>>2]|0,i=e+1212|0;e:do if(t){o=e+16|0,n=0;do{do if(t=t+-1|0,t>>>0<=r>>>0)break e;while((Bi[(Bi[i>>2]|0)+(t*216|0)+4>>2]|0)!=(a|0));n=n+1|0,s=Bi[(Bi[o>>2]|0)+52>>2]|0}while(n>>>0<(s>>>0>10?s:10)>>>0)}else t=r;while(0);for(n=e+1172|0,o=e+1176|0,r=t;;){if(t=Bi[i>>2]|0,(Bi[t+(r*216|0)+4>>2]|0)!=(a|0)){t=11;break}if(t=t+(r*216|0)+196|0,e=Bi[t>>2]|0,!e){t=11;break}if(Bi[t>>2]=e+-1,r=ke(Bi[n>>2]|0,Bi[o>>2]|0,r)|0,!r){t=11;break}}}function q(e,r,t,o,n){e|=0,r|=0,t|=0,o|=0,n|=0;var i=0,a=0,s=0,u=0,f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0;if(p=ia(n,o)|0,c=
\ No newline at end of file
+r|0;n=(t|0)==1,Bi[r>>2]=n&1;do if(n){if(o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+4>>2]=o,(o|0)==255){if(o=ue(e,16)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+8>>2]=o,t=ue(e,16)|0,(t|0)==-1)return r=1,r|0;Bi[r+12>>2]=t;break}}while(0);if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;n=(t|0)==1,Bi[r+16>>2]=n&1;do if(n){if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;Bi[r+20>>2]=(o|0)==1&1;break}while(0);if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;n=(o|0)==1,Bi[r+24>>2]=n&1;do{if(n){if(o=ue(e,3)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+28>>2]=o,o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+32>>2]=(o|0)==1&1,o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(n=(o|0)==1,Bi[r+36>>2]=n&1,!n){Bi[r+40>>2]=2,Bi[r+44>>2]=2,Bi[r+48>>2]=2;break}if(o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+40>>2]=o,o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+44>>2]=o,o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;Bi[r+48>>2]=o;break}Bi[r+28>>2]=5,Bi[r+40>>2]=2,Bi[r+44>>2]=2,Bi[r+48>>2]=2}while(0);if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(n=(o|0)==1,Bi[r+52>>2]=n&1,n){if(o=r+56|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>5)return r=1,r|0;if(o=r+60|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>5)return r=1,r|0}if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;n=(o|0)==1,Bi[r+64>>2]=n&1;do if(n){if(o=fe(e)|0,(le(e,32)|0)==-1|(o|0)==0)return r=1,r|0;if(Bi[r+68>>2]=o,o=fe(e)|0,(le(e,32)|0)==-1|(o|0)==0)return r=1,r|0;if(Bi[r+72>>2]=o,o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;Bi[r+76>>2]=(o|0)==1&1;break}while(0);if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(o=(o|0)==1,n=r+80|0,Bi[n>>2]=o&1,o){if(o=ye(e,r+84|0)|0)return r=o,r|0}else Bi[r+84>>2]=1,Bi[r+96>>2]=288000001,Bi[r+224>>2]=288000001,Bi[r+480>>2]=24,Bi[r+484>>2]=24,Bi[r+488>>2]=24,Bi[r+492>>2]=24;if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(t=(o|0)==1,o=r+496|0,Bi[o>>2]=t&1,t){if(t=ye(e,r+500|0)|0)return r=t,r|0}else Bi[r+500>>2]=1,Bi[r+512>>2]=240000001,Bi[r+640>>2]=240000001,Bi[r+896>>2]=24,Bi[r+900>>2]=24,Bi[r+904>>2]=24,Bi[r+908>>2]=24;((Bi[n>>2]|0)==0?(Bi[o>>2]|0)==0:0)||(i=46);do if((i|0)==46){if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;Bi[r+912>>2]=(t|0)==1&1;break}while(0);if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;if(Bi[r+916>>2]=(t|0)==1&1,t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;i=(t|0)==1,Bi[r+920>>2]=i&1;do{if(i){if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;if(Bi[r+924>>2]=(t|0)==1&1,t=r+928|0,o=Se(e,t)|0)return r=o,r|0;if((Bi[t>>2]|0)>>>0>16)return r=1,r|0;if(o=r+932|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>16)return r=1,r|0;if(o=r+936|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>16)return r=1,r|0;if(o=r+940|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>16)return r=1,r|0;if(t=Se(e,r+944|0)|0)return r=t,r|0;if(t=Se(e,r+948|0)|0,!t)break;return t|0}Bi[r+924>>2]=1,Bi[r+928>>2]=2,Bi[r+932>>2]=1,Bi[r+936>>2]=16,Bi[r+940>>2]=16,Bi[r+944>>2]=16,Bi[r+948>>2]=16}while(0);return r=0,r|0}function ye(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0,a=0,s=0;if(t=Se(e,r)|0)return r=t,r|0;if(s=(Bi[r>>2]|0)+1|0,Bi[r>>2]=s,s>>>0>32)return r=1,r|0;if(t=ue(e,4)|0,(t|0)==-1)return r=1,r|0;if(s=r+4|0,Bi[s>>2]=t,o=ue(e,4)|0,(o|0)==-1)return r=1,r|0;a=r+8|0,Bi[a>>2]=o;e:do if(Bi[r>>2]|0){for(i=0;;){if(n=r+(i<<2)+12|0,t=Se(e,n)|0){o=17;break}if(o=Bi[n>>2]|0,(o|0)==-1){t=1,o=17;break}if(t=o+1|0,Bi[n>>2]=t,Bi[n>>2]=t<<(Bi[s>>2]|0)+6,n=r+(i<<2)+140|0,t=Se(e,n)|0){o=17;break}if(o=Bi[n>>2]|0,(o|0)==-1){t=1,o=17;break}if(o=o+1|0,Bi[n>>2]=o,Bi[n>>2]=o<<(Bi[a>>2]|0)+4,o=ue(e,1)|0,(o|0)==-1){t=1,o=17;break}if(Bi[r+(i<<2)+268>>2]=(o|0)==1&1,i=i+1|0,i>>>0>=(Bi[r>>2]|0)>>>0)break e}if((o|0)==17)return t|0}while(0);return t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+396>>2]=t+1,t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+400>>2]=t+1,t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+404>>2]=t+1,t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+408>>2]=t,r=0,r|0))))}function Fe(e){e|=0;var r=0,t=0,o=0,n=0,i=0,a=0,s=0,u=0,f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,v=0,M=0,y=0,F=0,R=0,A=0,O=0,D=0,P=0,T=0,N=0,C=0,L=0,I=0,B=0,x=0,H=0,U=0,V=0;do if(e>>>0<245){if(h=e>>>0<11?16:e+11&-8,e=h>>>3,l=Bi[2176]|0,s=l>>>e,s&3){o=(s&1^1)+e|0,n=o<<1,r=8744+(n<<2)|0,n=8744+(n+2<<2)|0,i=Bi[n>>2]|0,a=i+8|0,s=Bi[a>>2]|0;do if((r|0)!=(s|0)){i
\ No newline at end of file
 ,8,8,8,0,0,0,0,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,0,0,0,0,10,0,0,0,13,0,0,0,16,0,0,0,11,0,0,0,14,0,0,0,18,0,0,0,13,0,0,0,16,0,0,0,20,0,0,0,14,0,0,0,18,0,0,0,23,0,0,0,16,0,0,0,20,0,0,0,25,0,0,0,18,0,0,0,23,0,0,0,29,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,34,0,0,0,35,0,0,0,35,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,37,0,0,0,37,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,39,0,0,0,39,0,0,0,39,0,0,0,39,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,128,0,0,0,47,31,15,0,23,27,29,30,7,11,13,14,39,43,45,46,16,3,5,10,12,19,21,26,28,35,37,42,44,1,2,4,8,17,18,20,24,6,9,22,25,32,33,34,36,40,38,41,0,16,1,2,4,8,32,3,5,10,12,15,47,7,11,13,14,6,9,31,35,37,42,44,33,34,36,40,39,43,45,46,17,18,20,24,19,21,26,28,23,27,29,30,22,25,38,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,97,120,32,115,121,115,116,101,109,32,98,121,116,101,115,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,115,121,115,116,101,109,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,105,110,32,117,115,101,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,2,4,7,3,6,5,0,0,0,0,0,0,0,0,105,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,93,61,127,102,158,160,230,63,0,0,0,0,0,136,57,61,68,23,117,250,82,176,230,63,0,0,0,0,0,0,216,60,254,217,11,117,18,192,230,63,0,0,0,0,0,120,40,189,191,118,212,221,220,207,230,63,0,0,0,0,0,192,30,61,41,26,101,60,178,223,230,63,0,0,0,0,0,0,216,188,227,58,89,152,146,239,230,63,0,0,0,0,0,0,188,188,134,147,81,249,125,255,230,63,0,0,0,0,0,216,47,189,163,45,244,102,116,15,231,63,0,0,0,0,0,136,44,189,195,95,236,232,117,31,231,63,0,0,0,0,0,192,19,61,5,207,234,134,130,47,231,63,0,0,0,0,0,48,56,189,82,129,165,72,154,63,231,63,0,0,0,0,0,192,0,189,252,204,215,
\ No newline at end of file
--- a/js/min/h264bsd_worker.min.js
+++ b/js/min/h264bsd_worker.min.js
@@ -4,12 +4,12 @@
 ength>t-1)return ___setErrNo(ERRNO_CODES.ERANGE);var o=ERRNO_MESSAGES[e];return writeAsciiToMemory(o,r),0}return ___setErrNo(ERRNO_CODES.EINVAL)}function _strerror(e){return _strerror.buffer||(_strerror.buffer=_malloc(256)),_strerror_r(e,_strerror.buffer,256),_strerror.buffer}function _abort(){Module.abort()}function _fflush(e){}function _mkport(){throw"TODO"}function _send(e,r,t,o){var n=SOCKFS.getSocket(e);return n?_write(e,r,t):(___setErrNo(ERRNO_CODES.EBADF),-1)}function _pwrite(e,r,t,o){var n=FS.getStream(e);if(!n)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var i=HEAP8;return FS.write(n,i,r,t,o)}catch(a){return FS.handleFSError(a),-1}}function _write(e,r,t){var o=FS.getStream(e);if(!o)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var n=HEAP8;return FS.write(o,n,r,t)}catch(i){return FS.handleFSError(i),-1}}function _fileno(e){return e=FS.getStreamFromPtr(e),e?e.fd:-1}function _fwrite(e,r,t,o){var n=t*r;if(0==n)return 0;var i=_fileno(o),a=_write(i,e,n);if(-1==a){var s=FS.getStreamFromPtr(o);return s&&(s.error=!0),0}return a/r|0}function __reallyNegative(e){return 0>e||0===e&&1/e===-(1/0)}function __formatString(e,r){function t(e){var t;return"double"===e?(HEAP32[tempDoublePtr>>2]=HEAP32[r+s>>2],HEAP32[tempDoublePtr+4>>2]=HEAP32[r+(s+4)>>2],t=+HEAPF64[tempDoublePtr>>3]):"i64"==e?t=[HEAP32[r+s>>2],HEAP32[r+(s+4)>>2]]:(e="i32",t=HEAP32[r+s>>2]),s+=Runtime.getNativeFieldSize(e),t}for(var o,n,i,a=e,s=0,u=[];;){var f=a;if(o=HEAP8[a>>0],0===o)break;if(n=HEAP8[a+1>>0],37==o){var l=!1,d=!1,c=!1,_=!1,h=!1;e:for(;;){switch(n){case 43:l=!0;break;case 45:d=!0;break;case 35:c=!0;break;case 48:if(_)break e;_=!0;break;case 32:h=!0;break;default:break e}a++,n=HEAP8[a+1>>0]}var m=0;if(42==n)m=t("i32"),a++,n=HEAP8[a+1>>0];else for(;n>=48&&57>=n;)m=10*m+(n-48),a++,n=HEAP8[a+1>>0];var b=!1,p=-1;if(46==n){if(p=0,b=!0,a++,n=HEAP8[a+1>>0],42==n)p=t("i32"),a++;else for(;;){var k=HEAP8[a+1>>0];if(48>k||k>57)break;p=10*p+(k-48),a++}n=HEAP8[a+1>>0]}0>p&&(p=6,b=!1);var E;switch(String.fromCharCode(n)){case"h":var S=HEAP8[a+2>>0];104==S?(a++,E=1):E=2;break;case"l":var S=HEAP8[a+2>>0];108==S?(a++,E=8):E=4;break;case"L":case"q":case"j":E=8;break;case"z":case"t":case"I":E=4;break;default:E=null}switch(E&&a++,n=HEAP8[a+1>>0],String.fromCharCode(n)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var w=100==n||105==n;E=E||4;var g,i=t("i"+8*E),M=i;if(8==E&&(i=Runtime.makeBigInt(i[0],i[1],117==n)),4>=E){var v=Math.pow(256,E)-1;i=(w?reSign:unSign)(i&v,8*E)}var y=Math.abs(i),F="";if(100==n||105==n)g=8==E&&i64Math?i64Math.stringify(M[0],M[1],null):reSign(i,8*E,1).toString(10);else if(117==n)g=8==E&&i64Math?i64Math.stringify(M[0],M[1],!0):unSign(i,8*E,1).toString(10),i=Math.abs(i);else if(111==n)g=(c?"0":"")+y.toString(8);else if(120==n||88==n){if(F=c&&0!=i?"0x":"",8==E&&i64Math)if(M[1]){g=(M[1]>>>0).toString(16);for(var O=(M[0]>>>0).toString(16);O.length<8;)O="0"+O;g+=O}else g=(M[0]>>>0).toString(16);else if(0>i){i=-i,g=(y-1).toString(16);for(var R=[],A=0;A<g.length;A++)R.push((15-parseInt(g[A],16)).toString(16));for(g=R.join("");g.length<2*E;)g="f"+g}else g=y.toString(16);88==n&&(F=F.toUpperCase(),g=g.toUpperCase())}else 112==n&&(0===y?g="(nil)":(F="0x",g=y.toString(16)));if(b)for(;g.length<p;)g="0"+g;for(i>=0&&(l?F="+"+F:h&&(F=" "+F)),"-"==g.charAt(0)&&(F="-"+F,g=g.substr(1));F.length+g.length<m;)d?g+=" ":_?g="0"+g:F=" "+F;g=F+g,g.split("").forEach(function(e){u.push(e.charCodeAt(0))});break;case"f":case"F":case"e":case"E":case"g":case"G":var g,i=t("double");if(isNaN(i))g="nan",_=!1;else if(isFinite(i)){var D=!1,P=Math.min(p,20);if(103==n||71==n){D=!0,p=p||1;var N=parseInt(i.toExponential(P).split("e")[1],10);p>N&&N>=-4?(n=(103==n?"f":"F").charCodeAt(0),p-=N+1):(n=(103==n?"e":"E").charCodeAt(0),p--),P=Math.min(p,20)}101==n||69==n?(g=i.toExponential(P),/[eE][-+]\d$/.test(g)&&(g=g.slice(0,-1)+"0"+g.slice(-1))):(102==n||70==n)&&(g=i.toFixed(P),0===i&&__reallyNegative(i)&&(g="-"+g));var T=g.split("e");if(D&&!c)for(;T[0].length>1&&-1!=T[0].indexOf(".")&&("0"==T[0].slice(-1)||"."==T[0].slice(-1));)T[0]=T[0].slice(0,-1);else for(c&&-1==g.indexOf(".")&&(
\ No newline at end of file
 eval(funcstr)}}(),Module.cwrap=cwrap,Module.ccall=ccall,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,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,Module.allocate=allocate,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii,Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8,Module.UTF16ToString=UTF16ToString,Module.stringToUTF16=stringToUTF16,Module.lengthBytesUTF16=lengthBytesUTF16,Module.UTF32ToString=UTF32ToString,Module.stringToUTF32=stringToUTF32,Module.lengthBytesUTF32=lengthBytesUTF32,Module.stackTrace=stackTrace;for(var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0,TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||67108864,totalMemory=65536;TOTAL_MEMORY>totalMemory||2*TOTAL_STACK>totalMemory;)16777216>totalMemory?totalMemory*=2:totalMemory+=16777216;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("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support");var buffer=new ArrayBuffer(TOTAL_MEMORY);HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"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;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;Module.addOnPreRun=Module.addOnPreRun=addOnPreRun,Module.addOnInit=Module.addOnInit=addOnInit,Module.addOnPreMain=Module.addOnPreMain=addOnPreMain,Module.addOnExit=Module.addOnExit=addOnExit,Module.addOnPostRun=Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,r){var t=e>>>16,o=65535&e,n=r>>>16,i=65535&r;return o*i+(t*i+o*n<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var r=0;32>r;r++)if(e&1<<31-r)return r;return 32}),Math.clz32=Math.clz32;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,Math_clz32=Math.clz32,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null;STATIC_BASE=8,STATICTOP=STATIC_BASE+14736,__ATINIT__.push(),allocate([17,1,0,0,0,0,0,0,34,18,1,1,0,0,0,0,50,34,18,2,0,0,0,0,67,51,34,34,18,18,2,2,83,67,51,35,18,18,2,2,19,35,67,51,99,83,2,2,0,0,101,85,68,68,52,52,35,35,35,35,19,19,19,19,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,249,233,217,200,200,184,184,167,167,167,167,151
\ No newline at end of file
 var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);var _cosf=Math_cos;Module._cosf=_cosf,Module._i64Subtract=_i64Subtract;var _DtoILow=!0;Module._DtoILow=_DtoILow;var ___errno_state=0;Module.___errno_state=___errno_state,Module.___setErrNo=___setErrNo;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};Module.ERRNO_CODES=ERRNO_CODES,Module._sysconf=_sysconf,Module._remquof=_remquof,Module._memset=_memset;var _BDtoILow=!0;Module._BDtoILow=_BDtoILow;var _FtoIHigh=!0;Module._FtoIHigh=_FtoIHigh;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
\ No newline at end of file
-ule.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e})}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available (jsc?)"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert("object"==typeof r),r},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:"undefined"!=typeof arguments&&(Module.arguments=arguments);else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},"undefined"!=typeof arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.log(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),"undefined"==typeof Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){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("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var r=parseInt(e.substr(1));return assert(r%8===0),r/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,getAlignSize:function(e,r,t){return t||"i64"!=e&&"double"!=e?e?Math.min(r||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(r,8):8},dynCall:function(e,r,t){return t&&t.length?(t.splice||(t=Array.prototype.slice.call(t)),t.splice(0,0,r),Module["dynCall_"+e].apply(null,t)):Module["dynCall_"+e].call(null,r)},functionPointers:[],addFunction:function(e){for(var r=0;r<Runtime.functionPointers.length;r++)if(!Runtime.functionPointers[r])return Runtime.functionPointers[r]=e,2*(1+r);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},getAsmConst:function(code,numArgs){Runtime.asmConstCache||(Runtime.asmConstCache={});var func=Runtime.asmConstCache[code];if(func)return func;for(var args=[],i=0;numArgs>i;i++)args.push(String.fromCharCode(36)+i);var source=Pointer_stringify(code);'"'===source[0]&&(source.indexOf('"',1)===source.length-1?source=source.substr(1,source.length-2):abort("invalid EM_ASM input |"+source+"|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)"));try{var evalled=eval("(function(Module, FS) { return function("+args.join(",")+"){ "+source+" } })")(Module,"undefined"!=typeof FS?FS:null)}catch(e){throw Module.printErr("error in executing inline EM_ASM code: "+e+" on: \n\n"+source+"\n\nwith args |"+args+"| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)"),e}return Runtime.asmConstCache[code]=evalled},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.s
\ No newline at end of file
-eval(funcstr)}}(),Module.cwrap=cwrap,Module.ccall=ccall,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,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,Module.allocate=allocate,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii,Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8,Module.UTF16ToString=UTF16ToString,Module.stringToUTF16=stringToUTF16,Module.lengthBytesUTF16=lengthBytesUTF16,Module.UTF32ToString=UTF32ToString,Module.stringToUTF32=stringToUTF32,Module.lengthBytesUTF32=lengthBytesUTF32,Module.stackTrace=stackTrace;for(var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0,TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||67108864,totalMemory=65536;TOTAL_MEMORY>totalMemory||2*TOTAL_STACK>totalMemory;)16777216>totalMemory?totalMemory*=2:totalMemory+=16777216;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("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support");var buffer=new ArrayBuffer(TOTAL_MEMORY);HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"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;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;Module.addOnPreRun=Module.addOnPreRun=addOnPreRun,Module.addOnInit=Module.addOnInit=addOnInit,Module.addOnPreMain=Module.addOnPreMain=addOnPreMain,Module.addOnExit=Module.addOnExit=addOnExit,Module.addOnPostRun=Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,r){var t=e>>>16,o=65535&e,n=r>>>16,i=65535&r;return o*i+(t*i+o*n<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var r=0;32>r;r++)if(e&1<<31-r)return r;return 32}),Math.clz32=Math.clz32;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,Math_clz32=Math.clz32,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null;STATIC_BASE=8,STATICTOP=STATIC_BASE+14736,__ATINIT__.push(),allocate([17,1,0,0,0,0,0,0,34,18,1,1,0,0,0,0,50,34,18,2,0,0,0,0,67,51,34,34,18,18,2,2,83,67,51,35,18,18,2,2,19,35,67,51,99,83,2,2,0,0,101,85,68,68,52,52,35,35,35,35,19,19,19,19,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,249,233,217,200,200,184,184,167,167,167,167,151
\ No newline at end of file
-var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);var _cosf=Math_cos;Module._cosf=_cosf,Module._i64Subtract=_i64Subtract;var _DtoILow=!0;Module._DtoILow=_DtoILow;var ___errno_state=0;Module.___errno_state=___errno_state,Module.___setErrNo=___setErrNo;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};Module.ERRNO_CODES=ERRNO_CODES,Module._sysconf=_sysconf,Module._remquof=_remquof,Module._memset=_memset;var _BDtoILow=!0;Module._BDtoILow=_BDtoILow;var _FtoIHigh=!0;Module._FtoIHigh=_FtoIHigh;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
\ No newline at end of file
-}catch(f){console.log("FS.trackingDelegate['willMovePath']('"+e+"', '"+r+"') threw an exception: "+f.message)}FS.hashRemoveNode(l);try{o.node_ops.rename(l,n,u)}catch(f){throw f}finally{FS.hashAddNode(l)}try{FS.trackingDelegate.onMovePath&&FS.trackingDelegate.onMovePath(e,r)}catch(f){console.log("FS.trackingDelegate['onMovePath']('"+e+"', '"+r+"') threw an exception: "+f.message)}}},rmdir:function(e){var r=FS.lookupPath(e,{parent:!0}),t=r.node,o=PATH.basename(e),n=FS.lookupNode(t,o),i=FS.mayDelete(t,o,!0);if(i)throw new FS.ErrnoError(i);if(!t.node_ops.rmdir)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(n))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(a){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+a.message)}t.node_ops.rmdir(t,o),FS.destroyNode(n);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(a){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+a.message)}},readdir:function(e){var r=FS.lookupPath(e,{follow:!0}),t=r.node;if(!t.node_ops.readdir)throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);return t.node_ops.readdir(t)},unlink:function(e){var r=FS.lookupPath(e,{parent:!0}),t=r.node,o=PATH.basename(e),n=FS.lookupNode(t,o),i=FS.mayDelete(t,o,!1);if(i)throw i===ERRNO_CODES.EISDIR&&(i=ERRNO_CODES.EPERM),new FS.ErrnoError(i);if(!t.node_ops.unlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(n))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(a){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+a.message)}t.node_ops.unlink(t,o),FS.destroyNode(n);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(a){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+a.message)}},readlink:function(e){var r=FS.lookupPath(e),t=r.node;if(!t)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!t.node_ops.readlink)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return PATH.resolve(FS.getPath(r.node.parent),t.node_ops.readlink(t))},stat:function(e,r){var t=FS.lookupPath(e,{follow:!r}),o=t.node;if(!o)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!o.node_ops.getattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return o.node_ops.getattr(o)},lstat:function(e){return FS.stat(e,!0)},chmod:function(e,r,t){var o;if("string"==typeof e){var n=FS.lookupPath(e,{follow:!t});o=n.node}else o=e;if(!o.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);o.node_ops.setattr(o,{mode:4095&r|-4096&o.mode,timestamp:Date.now()})},lchmod:function(e,r){FS.chmod(e,r,!0)},fchmod:function(e,r){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chmod(t.node,r)},chown:function(e,r,t,o){var n;if("string"==typeof e){var i=FS.lookupPath(e,{follow:!o});n=i.node}else n=e;if(!n.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:function(e,r,t){FS.chown(e,r,t,!0)},fchown:function(e,r,t){var o=FS.getStream(e);if(!o)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chown(o.node,r,t)},truncate:function(e,r){if(0>r)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var t;if("string"==typeof e){var o=FS.lookupPath(e,{follow:!0});t=o.node}else t=e;if(!t.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isDir(t.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!FS.isFile(t.mode))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var n=FS.nodePermissions(t,"w");if(n)throw new FS.ErrnoError(n);t.node_ops.setattr(t,{size:r,timestamp:Date.now()})},ftruncate:function(e,r){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(0===(2097155&t.flags))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);FS.truncate(t.node,r)},utime:function(e,r,t){var o=FS.lookupPath(e,{follow:!0}),n=o.node;n.node_ops.setattr(n,{timestamp:Math.max(r,t)})},open:function(e,r,t,o,n){if(""===e)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);r="string"==typeof r?FS.m
\ No newline at end of file
-n.exitPointerLock=n.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",e,!1),document.addEventListener("mozpointerlockchange",e,!1),document.addEventListener("webkitpointerlockchange",e,!1),document.addEventListener("mspointerlockchange",e,!1),Module.elementPointerLock&&n.addEventListener("click",function(e){!Browser.pointerLock&&n.requestPointerLock&&(n.requestPointerLock(),e.preventDefault())},!1))}},createContext:function(e,r,t,o){if(r&&Module.ctx&&e==Module.canvas)return Module.ctx;var n,i;if(r){var a={antialias:!1,alpha:!1};if(o)for(var s in o)a[s]=o[s];i=GL.createContext(e,a),i&&(n=GL.getContext(i).GLctx),e.style.backgroundColor="black"}else n=e.getContext("2d");return n?(t&&(r||assert("undefined"==typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=n,r&&GL.makeContextCurrent(i),Module.useWebGL=r,Browser.moduleContextCreatedCallbacks.forEach(function(e){e()}),Browser.init()),n):null},destroyContext:function(e,r,t){},fullScreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullScreen:function(e,r,t){function o(){Browser.isFullScreen=!1;var e=n.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===e?(n.cancelFullScreen=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},n.cancelFullScreen=n.cancelFullScreen.bind(document),Browser.lockPointer&&n.requestPointerLock(),Browser.isFullScreen=!0,Browser.resizeCanvas&&Browser.setFullScreenCanvasSize()):(e.parentNode.insertBefore(n,e),e.parentNode.removeChild(e),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullScreen),Browser.updateCanvasDimensions(n)}Browser.lockPointer=e,Browser.resizeCanvas=r,Browser.vrDevice=t,"undefined"==typeof Browser.lockPointer&&(Browser.lockPointer=!0),"undefined"==typeof Browser.resizeCanvas&&(Browser.resizeCanvas=!1),"undefined"==typeof Browser.vrDevice&&(Browser.vrDevice=null);var n=Module.canvas;Browser.fullScreenHandlersInstalled||(Browser.fullScreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",o,!1),document.addEventListener("mozfullscreenchange",o,!1),document.addEventListener("webkitfullscreenchange",o,!1),document.addEventListener("MSFullscreenChange",o,!1));var i=document.createElement("div");n.parentNode.insertBefore(i,n),i.appendChild(n),i.requestFullScreen=i.requestFullScreen||i.mozRequestFullScreen||i.msRequestFullscreen||(i.webkitRequestFullScreen?function(){i.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),t?i.requestFullScreen({vrDisplay:t}):i.requestFullScreen()},nextRAF:0,fakeRequestAnimationFrame:function(e){var r=Date.now();if(0===Browser.nextRAF)Browser.nextRAF=r+1e3/60;else for(;r+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var t=Math.max(Browser.nextRAF-r,0);setTimeout(e,t)},requestAnimationFrame:function(e){"undefined"==typeof window?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(e){return function(){return ABORT?void 0:e.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var e=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],e.forEach(function(e){e()})}},safeRequestAnimationFrame:function(e){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser
\ No newline at end of file
-F=xi[l>>0]|0,Li[e+9>>0]=(((ia(xi[R+b>>0]|0,a)|0)+(ia(O,g)|0)<<3)+32|0)>>>6,Li[e+1>>0]=(((ia(F,a)|0)+(ia(y,g)|0)<<3)+32|0)>>>6,d=d+-1|0,!d)break;e=e+2|0}s=s+k|0}if(c=c+-1|0,!c)break;e=u+w|0,s=s+p|0}if(_)return void(Vi=M);for(u=r+64|0,i=f+((ia(i+o|0,n)|0)+t)|0,f=h;;){if(S)o=u;else{for(o=u+k|0,t=u,u=i,e=E;;){if(O=xi[u>>0]|0,F=xi[u+m>>0]|0,y=u,u=u+2|0,R=xi[y+1>>0]|0,Li[t+8>>0]=(((ia(F,a)|0)+(ia(xi[y+n>>0]|0,g)|0)<<3)+32|0)>>>6,Li[t>>0]=(((ia(R,a)|0)+(ia(O,g)|0)<<3)+32|0)>>>6,O=xi[u>>0]|0,Li[t+9>>0]=(((ia(xi[y+b>>0]|0,a)|0)+(ia(F,g)|0)<<3)+32|0)>>>6,Li[t+1>>0]=(((ia(O,a)|0)+(ia(R,g)|0)<<3)+32|0)>>>6,e=e+-1|0,!e)break;t=t+2|0}i=i+k|0}if(f=f+-1|0,!f)break;u=o+w|0,i=i+p|0}Vi=M}function v(e,r,t,o,n,i,a,s,u){e|=0,r|=0,t|=0,o|=0,n|=0,i|=0,a|=0,s|=0,u|=0;var f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,M=0,v=0,y=0,F=0;if(w=s+o|0,d=(w|0)<0?0-s|0:o,l=(a+t|0)<0?0-a|0:t,d=(d|0)>(i|0)?i:d,l=(l|0)>(n|0)?n:l,f=l+a|0,t=d+s|0,o=(l|0)>0?e+l|0:e,(d|0)>0&&(o=o+(ia(d,n)|0)|0),E=(l|0)<0,v=E?0-l|0:0,M=(f|0)>(n|0),y=M?f-n|0:0,g=a-v|0,F=g-y|0,d=(d|0)<0?0-d|0:0,t=(t|0)>(i|0)?t-i|0:0,S=s-d|0,e=S-t|0,M=E|M,a=(d|0)==0,M){if(!a){for(p=(v|0)==0,b=(g|0)==(y|0),m=(y|0)==0,E=o+F|0,f=s+-1-((w|0)>0?w:0)|0,k=~i,k=(f|0)>(k|0)?f:k,f=~k,f=ia(k+((f|0)>0?f:0)+1|0,u)|0,k=r;;){if(p?a=k:(hn(k|0,Li[o>>0]|0,v|0)|0,a=k+v|0),b)l=o;else{for(h=F,_=o,c=a;;){if(Li[c>>0]=Li[_>>0]|0,h=h+-1|0,!h)break;_=_+1|0,c=c+1|0}l=E,a=a+F|0}if(m||hn(a|0,Li[l+-1>>0]|0,y|0)|0,d=d+-1|0,!d)break;k=k+u|0}r=r+f|0}if((S|0)!=(t|0)){for(b=(v|0)==0,p=(g|0)==(y|0),k=(y|0)==0,c=s+-1|0,h=c-((w|0)>0?w:0)|0,m=~i,m=(h|0)>(m|0)?h:m,c=c-m|0,h=~m,h=s+i+-1-((c|0)<(i|0)?i:c)-m-((h|0)>0?h:0)|0,m=ia(h,u)|0,h=ia(h,n)|0,c=r,_=o;;){if(b?d=c:(hn(c|0,Li[_>>0]|0,v|0)|0,d=c+v|0),p)a=_;else{for(a=F,l=_,f=d;;){if(Li[f>>0]=Li[l>>0]|0,a=a+-1|0,!a)break;l=l+1|0,f=f+1|0}a=_+F|0,d=d+F|0}if(k||hn(d|0,Li[a+-1>>0]|0,y|0)|0,e=e+-1|0,!e)break;c=c+u|0,_=_+n|0}o=o+h|0,r=r+m|0}}else{if(!a){for(l=s+-1-((w|0)>0?w:0)|0,a=~i,a=(l|0)>(a|0)?l:a,l=~a,l=ia(a+((l|0)>0?l:0)+1|0,u)|0,a=r;;){if(En(a|0,o|0,F|0)|0,d=d+-1|0,!d)break;a=a+u|0}r=r+l|0}if((S|0)!=(t|0)){for(l=s+-1|0,a=l-((w|0)>0?w:0)|0,d=~i,d=(a|0)>(d|0)?a:d,l=l-d|0,a=~d,a=s+i+-1-((l|0)<(i|0)?i:l)-d-((a|0)>0?a:0)|0,d=ia(a,u)|0,a=ia(a,n)|0,l=r,f=o;;){if(En(l|0,f|0,F|0)|0,e=e+-1|0,!e)break;l=l+u|0,f=f+n|0}o=o+a|0,r=r+d|0}}if(b=0-n|0,m=o+b|0,t)if(e=(v|0)==0,E=(g|0)==(y|0),p=(y|0)==0,k=F-n|0,M)if(e)for(;;){if(E)f=r,l=b;else{for(l=F,f=m,e=r;;){if(Li[e>>0]=Li[f>>0]|0,l=l+-1|0,!l)break;f=f+1|0,e=e+1|0}f=r+F|0,l=k}if(p||hn(f|0,Li[o+(l+-1)>>0]|0,y|0)|0,t=t+-1|0,!t)break;r=r+u|0}else for(;;){if(hn(r|0,Li[m>>0]|0,v|0)|0,l=r+v|0,E)e=b;else{for(e=F,f=m;;){if(Li[l>>0]=Li[f>>0]|0,e=e+-1|0,!e)break;f=f+1|0,l=l+1|0}l=r+(v+F)|0,e=k}if(p||hn(l|0,Li[o+(e+-1)>>0]|0,y|0)|0,t=t+-1|0,!t)break;r=r+u|0}else{if(e){for(;;){if(En(r|0,m|0,F|0)|0,t=t+-1|0,!t)break;r=r+u|0}return}for(;;){if(En(r|0,m|0,F|0)|0,t=t+-1|0,!t)break;r=r+u|0}}}function y(e,r,t,o,n,i,a,s,u){e|=0,r|=0,t|=0,o|=0,n|=0,i|=0,a|=0,s|=0,u|=0;var f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,M=0,y=0,F=0,O=0;if(y=Vi,Vi=Vi+144|0,f=y,(((t|0)>=0?(s+t|0)>>>0>n>>>0|(o|0)<0:!0)?0:(o+1+u|0)>>>0<=i>>>0)?f=e:(M=u+1|0,v(e,f,t,o,n,i,s,M,s),v(e+(ia(i,n)|0)|0,f+(ia(M,s)|0)|0,t,o,n,i,s,M,s),t=0,o=0,n=s,i=M),M=8-a|0,h=u>>>1,_=(h|0)==0,E=s>>>1,S=(E|0)==0,w=16-s|0,g=n<<1,p=g-s|0,m=g|1,b=n+1|0,k=E<<1,_)return void(Vi=y);for(e=r,s=f+((ia(o,n)|0)+t)|0,c=h;;){if(S)u=e;else{for(u=e+k|0,l=s,d=E;;){if(F=xi[l+n>>0]|0,O=xi[l>>0]|0,Li[e+8>>0]=(((ia(F,M)|0)+(ia(xi[l+g>>0]|0,a)|0)<<3)+32|0)>>>6,Li[e>>0]=(((ia(O,M)|0)+(ia(F,a)|0)<<3)+32|0)>>>6,F=xi[l+b>>0]|0,O=xi[l+1>>0]|0,Li[e+9>>0]=(((ia(F,M)|0)+(ia(xi[l+m>>0]|0,a)|0)<<3)+32|0)>>>6,Li[e+1>>0]=(((ia(O,M)|0)+(ia(F,a)|0)<<3)+32|0)>>>6,d=d+-1|0,!d)break;e=e+2|0,l=l+2|0}s=s+k|0}if(c=c+-1|0,!c)break;e=u+w|0,s=s+p|0}if(_)return void(Vi=y);for(u=r+64|0,o=f+((ia(i+o|0,n)|0)+t)|0,f=h;;){if(S)i=u;else{for(i=u+k|0,t=o,e=E;;){if(O=xi[t+n>>0]|0,F=xi[t>>0]|0,Li[u+8>>0]=(((ia(O,M)|0)+(ia(xi[t+g>>0]|0,a)|0)<<3)+32|0)>>>6,Li[u>>0]=(((ia(F,M)|0)+(ia(O,a)|0)<<3)+32|0)>>>6,O=xi[t+b>>0]|0,F=xi[t+1>>0]|0,Li[u+9>>0]=(((ia(O,M)|0)+(ia
\ No newline at end of file
-Vi=m,e|0;h=(t|0)==1,Bi[r+80>>2]=h&1;do if(h){if(o=Fe(952)|0,n=r+84|0,Bi[n>>2]=o,!o)return e=65535,Vi=m,e|0;if(t=ve(e,o)|0)return e=t,Vi=m,e|0;if(t=Bi[n>>2]|0,!(Bi[t+920>>2]|0))break;if(o=Bi[t+948>>2]|0,(Bi[t+944>>2]|0)>>>0>o>>>0)return e=1,Vi=m,e|0;if(o>>>0<(Bi[l>>2]|0)>>>0)return e=1,Vi=m,e|0;if(o>>>0>(Bi[i>>2]|0)>>>0)return e=1,Vi=m,e|0;Bi[i>>2]=(o|0)==0?1:o;break}while(0);return be(e)|0,e=0,Vi=m,e|0}return e=Bi[Wi>>2]|0,Bi[_>>2]=7432,la(e|0,7592,_|0)|0,e=1,Vi=m,e|0}function H(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0,a=0;if((Bi[e>>2]|0)!=(Bi[r>>2]|0))return r=1,r|0;if((Bi[e+4>>2]|0)!=(Bi[r+4>>2]|0))return r=1,r|0;if((Bi[e+12>>2]|0)!=(Bi[r+12>>2]|0))return r=1,r|0;if(t=Bi[e+16>>2]|0,(t|0)!=(Bi[r+16>>2]|0))return r=1,r|0;if((Bi[e+44>>2]|0)!=(Bi[r+44>>2]|0))return r=1,r|0;if((Bi[e+48>>2]|0)!=(Bi[r+48>>2]|0))return r=1,r|0;if((Bi[e+52>>2]|0)!=(Bi[r+52>>2]|0))return r=1,r|0;if((Bi[e+56>>2]|0)!=(Bi[r+56>>2]|0))return r=1,r|0;if(a=Bi[e+60>>2]|0,(a|0)!=(Bi[r+60>>2]|0))return r=1,r|0;if((Bi[e+80>>2]|0)!=(Bi[r+80>>2]|0))return r=1,r|0;e:do if(t){if((t|0)==1){if((Bi[e+24>>2]|0)!=(Bi[r+24>>2]|0))return r=1,r|0;if((Bi[e+28>>2]|0)!=(Bi[r+28>>2]|0))return r=1,r|0;if((Bi[e+32>>2]|0)!=(Bi[r+32>>2]|0))return r=1,r|0;if(t=Bi[e+36>>2]|0,(t|0)!=(Bi[r+36>>2]|0))return r=1,r|0;if(t){for(o=Bi[e+40>>2]|0,n=Bi[r+40>>2]|0,i=0;;){if((Bi[o+(i<<2)>>2]|0)!=(Bi[n+(i<<2)>>2]|0)){t=1;break}if(i=i+1|0,i>>>0>=t>>>0)break e}return t|0}}}else if((Bi[e+20>>2]|0)!=(Bi[r+20>>2]|0))return r=1,r|0;while(0);if(a){if((Bi[e+64>>2]|0)!=(Bi[r+64>>2]|0))return r=1,r|0;if((Bi[e+68>>2]|0)!=(Bi[r+68>>2]|0))return r=1,r|0;if((Bi[e+72>>2]|0)!=(Bi[r+72>>2]|0))return r=1,r|0;if((Bi[e+76>>2]|0)!=(Bi[r+76>>2]|0))return r=1,r|0}return r=0,r|0}function U(e,r,t,o){e|=0,r|=0,t|=0,o|=0;var n=0,a=0,s=0,u=0,f=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,M=0,v=0,y=0,F=0,O=0,R=0,A=0,D=0,P=0,N=0;for(A=Vi,Vi=Vi+448|0,R=A,E=A+12|0,F=A+8|0,y=A+4|0,E=E+(0-E&15)|0,S=Bi[r+3376>>2]|0,_=Bi[o>>2]|0,Bi[F>>2]=0,w=r+1192|0,Bi[w>>2]=(Bi[w>>2]|0)+1,h=r+1200|0,Bi[h>>2]=0,m=r+12|0,Bi[y>>2]=(Bi[o+48>>2]|0)+(Bi[(Bi[m>>2]|0)+52>>2]|0),b=o+36|0,p=r+1212|0,g=o+52|0,M=o+56|0,v=o+60|0,k=o+4|0,u=o+44|0,f=r+1220|0,d=r+1172|0,O=r+1176|0,c=S+12|0,s=0,n=0;;){if(o=Bi[p>>2]|0,(Bi[b>>2]|0)==0?(Bi[o+(_*216|0)+196>>2]|0)!=0:0){o=4;break}if(a=Bi[(Bi[m>>2]|0)+56>>2]|0,N=Bi[g>>2]|0,P=Bi[M>>2]|0,D=Bi[v>>2]|0,Bi[o+(_*216|0)+4>>2]=Bi[w>>2],Bi[o+(_*216|0)+8>>2]=N,Bi[o+(_*216|0)+12>>2]=P,Bi[o+(_*216|0)+16>>2]=D,Bi[o+(_*216|0)+24>>2]=a,a=Bi[k>>2]|0,(a|0)!=2?!((a|0)==7|(n|0)!=0):0){if(n=Se(e,F)|0){o=28;break}if(o=Bi[F>>2]|0,o>>>0>((Bi[O>>2]|0)-_|0)>>>0){o=9;break}o?(hn(c|0,0,164)|0,Bi[S>>2]=0,n=1):n=0}if(o=Bi[F>>2]|0)Bi[F>>2]=o+-1,a=n;else{if(n=i(e,S,(Bi[p>>2]|0)+(_*216|0)|0,Bi[k>>2]|0,Bi[u>>2]|0)|0){o=15;break}a=0}if(n=l((Bi[p>>2]|0)+(_*216|0)|0,S,t,f,y,_,Bi[(Bi[m>>2]|0)+64>>2]|0,E)|0){o=17;break}if(n=((Bi[(Bi[p>>2]|0)+(_*216|0)+196>>2]|0)==1&1)+s|0,o=pe(e)|0?1:(Bi[F>>2]|0)!=0,N=Bi[k>>2]|0,(N|0)==7|(N|0)==2&&(Bi[h>>2]=_),_=ke(Bi[d>>2]|0,Bi[O>>2]|0,_)|0,!((_|0)!=0|o^1)){o=23;break}if(!o){o=25;break}s=n,n=a}return(o|0)==4?(N=Bi[Wi>>2]|0,Bi[R>>2]=7472,la(N|0,7592,R|0)|0,N=1,Vi=A,N|0):(o|0)==9?(N=Bi[Wi>>2]|0,Bi[R>>2]=7504,la(N|0,7592,R|0)|0,N=1,Vi=A,N|0):(o|0)==15?(N=Bi[Wi>>2]|0,Bi[R>>2]=7520,la(N|0,7592,R|0)|0,N=n,Vi=A,N|0):(o|0)==17?(N=Bi[Wi>>2]|0,Bi[R>>2]=7544,la(N|0,7592,R|0)|0,N=n,Vi=A,N|0):(o|0)==23?(N=Bi[Wi>>2]|0,Bi[R>>2]=7560,la(N|0,7592,R|0)|0,N=1,Vi=A,N|0):(o|0)==25?(o=r+1196|0,n=(Bi[o>>2]|0)+n|0,n>>>0>(Bi[O>>2]|0)>>>0?(N=Bi[Wi>>2]|0,Bi[R>>2]=7576,la(N|0,7592,R|0)|0,N=1,Vi=A,N|0):(Bi[o>>2]=n,N=0,Vi=A,N|0)):(o|0)==28?(Vi=A,n|0):0}function q(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0,a=0,s=0;a=Bi[e+1192>>2]|0,t=Bi[e+1200>>2]|0,i=e+1212|0;e:do if(t){o=e+16|0,n=0;do{do if(t=t+-1|0,t>>>0<=r>>>0)break e;while((Bi[(Bi[i>>2]|0)+(t*216|0)+4>>2]|0)!=(a|0));n=n+1|0,s=Bi[(Bi[o>>2]|0)+52>>2]|0}while(n>>>0<(s>>>0>10?s:10)>>>0)}else t=r;while(0);for(n=e+1172|0,o=e+1176|0,r=t;;){if(t=Bi[i>>2]|0,(Bi[t+(r*216|0)+4>>2]|0)!=(a|0)){t=11;break}if(t=t+(r*216|0)+196|0,e=Bi[t>>2]|0,!e){t=11;break}if(Bi[t>>2]=e+-1,r=ke(Bi[n>>2]|0,Bi[o>>2]|0,r)|0,!r){t=11
\ No newline at end of file
-(t|0)==-1?(r=1,r|0):(Bi[r>>2]=t^1,r=0,r|0))}function ve(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0;if(hn(r|0,0,952)|0,t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;n=(t|0)==1,Bi[r>>2]=n&1;do if(n){if(o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+4>>2]=o,(o|0)==255){if(o=ue(e,16)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+8>>2]=o,t=ue(e,16)|0,(t|0)==-1)return r=1,r|0;Bi[r+12>>2]=t;break}}while(0);if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;n=(t|0)==1,Bi[r+16>>2]=n&1;do if(n){if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;Bi[r+20>>2]=(o|0)==1&1;break}while(0);if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;n=(o|0)==1,Bi[r+24>>2]=n&1;do{if(n){if(o=ue(e,3)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+28>>2]=o,o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+32>>2]=(o|0)==1&1,o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(n=(o|0)==1,Bi[r+36>>2]=n&1,!n){Bi[r+40>>2]=2,Bi[r+44>>2]=2,Bi[r+48>>2]=2;break}if(o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+40>>2]=o,o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+44>>2]=o,o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;Bi[r+48>>2]=o;break}Bi[r+28>>2]=5,Bi[r+40>>2]=2,Bi[r+44>>2]=2,Bi[r+48>>2]=2}while(0);if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(n=(o|0)==1,Bi[r+52>>2]=n&1,n){if(o=r+56|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>5)return r=1,r|0;if(o=r+60|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>5)return r=1,r|0}if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;n=(o|0)==1,Bi[r+64>>2]=n&1;do if(n){if(o=fe(e)|0,(le(e,32)|0)==-1|(o|0)==0)return r=1,r|0;if(Bi[r+68>>2]=o,o=fe(e)|0,(le(e,32)|0)==-1|(o|0)==0)return r=1,r|0;if(Bi[r+72>>2]=o,o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;Bi[r+76>>2]=(o|0)==1&1;break}while(0);if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(o=(o|0)==1,n=r+80|0,Bi[n>>2]=o&1,o){if(o=ye(e,r+84|0)|0)return r=o,r|0}else Bi[r+84>>2]=1,Bi[r+96>>2]=288000001,Bi[r+224>>2]=288000001,Bi[r+480>>2]=24,Bi[r+484>>2]=24,Bi[r+488>>2]=24,Bi[r+492>>2]=24;if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(t=(o|0)==1,o=r+496|0,Bi[o>>2]=t&1,t){if(t=ye(e,r+500|0)|0)return r=t,r|0}else Bi[r+500>>2]=1,Bi[r+512>>2]=240000001,Bi[r+640>>2]=240000001,Bi[r+896>>2]=24,Bi[r+900>>2]=24,Bi[r+904>>2]=24,Bi[r+908>>2]=24;((Bi[n>>2]|0)==0?(Bi[o>>2]|0)==0:0)||(i=46);do if((i|0)==46){if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;Bi[r+912>>2]=(t|0)==1&1;break}while(0);if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;if(Bi[r+916>>2]=(t|0)==1&1,t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;i=(t|0)==1,Bi[r+920>>2]=i&1;do{if(i){if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;if(Bi[r+924>>2]=(t|0)==1&1,t=r+928|0,o=Se(e,t)|0)return r=o,r|0;if((Bi[t>>2]|0)>>>0>16)return r=1,r|0;if(o=r+932|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>16)return r=1,r|0;if(o=r+936|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>16)return r=1,r|0;if(o=r+940|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>16)return r=1,r|0;if(t=Se(e,r+944|0)|0)return r=t,r|0;if(t=Se(e,r+948|0)|0,!t)break;return t|0}Bi[r+924>>2]=1,Bi[r+928>>2]=2,Bi[r+932>>2]=1,Bi[r+936>>2]=16,Bi[r+940>>2]=16,Bi[r+944>>2]=16,Bi[r+948>>2]=16}while(0);return r=0,r|0}function ye(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0,a=0,s=0;if(t=Se(e,r)|0)return r=t,r|0;if(s=(Bi[r>>2]|0)+1|0,Bi[r>>2]=s,s>>>0>32)return r=1,r|0;if(t=ue(e,4)|0,(t|0)==-1)return r=1,r|0;if(s=r+4|0,Bi[s>>2]=t,o=ue(e,4)|0,(o|0)==-1)return r=1,r|0;a=r+8|0,Bi[a>>2]=o;e:do if(Bi[r>>2]|0){for(i=0;;){if(n=r+(i<<2)+12|0,t=Se(e,n)|0){o=17;break}if(o=Bi[n>>2]|0,(o|0)==-1){t=1,o=17;break}if(t=o+1|0,Bi[n>>2]=t,Bi[n>>2]=t<<(Bi[s>>2]|0)+6,n=r+(i<<2)+140|0,t=Se(e,n)|0){o=17;break}if(o=Bi[n>>2]|0,(o|0)==-1){t=1,o=17;break}if(o=o+1|0,Bi[n>>2]=o,Bi[n>>2]=o<<(Bi[a>>2]|0)+4,o=ue(e,1)|0,(o|0)==-1){t=1,o=17;break}if(Bi[r+(i<<2)+268>>2]=(o|0)==1&1,i=i+1|0,i>>>0>=(Bi[r>>2]|0)>>>0)break e}if((o|0)==17)return t|0}while(0);return t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+396>>2]=t+1,t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+400>>2]=t+1,t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+404>>2]=t+1,t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+408>>2]=t,r=0,r|0))))}function Fe(e){e|=0;var r=0,t=0,o=0,n=0,i=0,a=0,s=0,u=0,f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,M=0,v=0,y=0,F=0,O=0,R=0,A=0,D=0,P=0,N=0,T=0,C=0,L=0,I=0,B=0,x=0,H=0,U=0,q=0;do if(e>>>0<245){if(h=e>>>0<11?16:e+11&-8,e
\ No newline at end of file
+ule.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e})}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available (jsc?)"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert("object"==typeof r),r},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:"undefined"!=typeof arguments&&(Module.arguments=arguments);else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},"undefined"!=typeof arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.log(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),"undefined"==typeof Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){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("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var r=parseInt(e.substr(1));return assert(r%8===0),r/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,getAlignSize:function(e,r,t){return t||"i64"!=e&&"double"!=e?e?Math.min(r||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(r,8):8},dynCall:function(e,r,t){return t&&t.length?(t.splice||(t=Array.prototype.slice.call(t)),t.splice(0,0,r),Module["dynCall_"+e].apply(null,t)):Module["dynCall_"+e].call(null,r)},functionPointers:[],addFunction:function(e){for(var r=0;r<Runtime.functionPointers.length;r++)if(!Runtime.functionPointers[r])return Runtime.functionPointers[r]=e,2*(1+r);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},getAsmConst:function(code,numArgs){Runtime.asmConstCache||(Runtime.asmConstCache={});var func=Runtime.asmConstCache[code];if(func)return func;for(var args=[],i=0;numArgs>i;i++)args.push(String.fromCharCode(36)+i);var source=Pointer_stringify(code);'"'===source[0]&&(source.indexOf('"',1)===source.length-1?source=source.substr(1,source.length-2):abort("invalid EM_ASM input |"+source+"|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)"));try{var evalled=eval("(function(Module, FS) { return function("+args.join(",")+"){ "+source+" } })")(Module,"undefined"!=typeof FS?FS:null)}catch(e){throw Module.printErr("error in executing inline EM_ASM code: "+e+" on: \n\n"+source+"\n\nwith args |"+args+"| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)"),e}return Runtime.asmConstCache[code]=evalled},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.s
\ No newline at end of file
+eval(funcstr)}}(),Module.cwrap=cwrap,Module.ccall=ccall,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,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,Module.allocate=allocate,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii,Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8,Module.UTF16ToString=UTF16ToString,Module.stringToUTF16=stringToUTF16,Module.lengthBytesUTF16=lengthBytesUTF16,Module.UTF32ToString=UTF32ToString,Module.stringToUTF32=stringToUTF32,Module.lengthBytesUTF32=lengthBytesUTF32,Module.stackTrace=stackTrace;for(var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0,TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||67108864,totalMemory=65536;TOTAL_MEMORY>totalMemory||2*TOTAL_STACK>totalMemory;)16777216>totalMemory?totalMemory*=2:totalMemory+=16777216;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("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support");var buffer=new ArrayBuffer(TOTAL_MEMORY);HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"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;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;Module.addOnPreRun=Module.addOnPreRun=addOnPreRun,Module.addOnInit=Module.addOnInit=addOnInit,Module.addOnPreMain=Module.addOnPreMain=addOnPreMain,Module.addOnExit=Module.addOnExit=addOnExit,Module.addOnPostRun=Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,r){var t=e>>>16,o=65535&e,n=r>>>16,i=65535&r;return o*i+(t*i+o*n<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var r=0;32>r;r++)if(e&1<<31-r)return r;return 32}),Math.clz32=Math.clz32;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,Math_clz32=Math.clz32,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null;STATIC_BASE=8,STATICTOP=STATIC_BASE+14736,__ATINIT__.push(),allocate([17,1,0,0,0,0,0,0,34,18,1,1,0,0,0,0,50,34,18,2,0,0,0,0,67,51,34,34,18,18,2,2,83,67,51,35,18,18,2,2,19,35,67,51,99,83,2,2,0,0,101,85,68,68,52,52,35,35,35,35,19,19,19,19,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,249,233,217,200,200,184,184,167,167,167,167,151
\ No newline at end of file
+var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);var _cosf=Math_cos;Module._cosf=_cosf,Module._i64Subtract=_i64Subtract;var _DtoILow=!0;Module._DtoILow=_DtoILow;var ___errno_state=0;Module.___errno_state=___errno_state,Module.___setErrNo=___setErrNo;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};Module.ERRNO_CODES=ERRNO_CODES,Module._sysconf=_sysconf,Module._remquof=_remquof,Module._memset=_memset;var _BDtoILow=!0;Module._BDtoILow=_BDtoILow;var _FtoIHigh=!0;Module._FtoIHigh=_FtoIHigh;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
\ No newline at end of file
+}catch(f){console.log("FS.trackingDelegate['willMovePath']('"+e+"', '"+r+"') threw an exception: "+f.message)}FS.hashRemoveNode(l);try{o.node_ops.rename(l,n,u)}catch(f){throw f}finally{FS.hashAddNode(l)}try{FS.trackingDelegate.onMovePath&&FS.trackingDelegate.onMovePath(e,r)}catch(f){console.log("FS.trackingDelegate['onMovePath']('"+e+"', '"+r+"') threw an exception: "+f.message)}}},rmdir:function(e){var r=FS.lookupPath(e,{parent:!0}),t=r.node,o=PATH.basename(e),n=FS.lookupNode(t,o),i=FS.mayDelete(t,o,!0);if(i)throw new FS.ErrnoError(i);if(!t.node_ops.rmdir)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(n))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(a){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+a.message)}t.node_ops.rmdir(t,o),FS.destroyNode(n);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(a){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+a.message)}},readdir:function(e){var r=FS.lookupPath(e,{follow:!0}),t=r.node;if(!t.node_ops.readdir)throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);return t.node_ops.readdir(t)},unlink:function(e){var r=FS.lookupPath(e,{parent:!0}),t=r.node,o=PATH.basename(e),n=FS.lookupNode(t,o),i=FS.mayDelete(t,o,!1);if(i)throw i===ERRNO_CODES.EISDIR&&(i=ERRNO_CODES.EPERM),new FS.ErrnoError(i);if(!t.node_ops.unlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(n))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(a){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+a.message)}t.node_ops.unlink(t,o),FS.destroyNode(n);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(a){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+a.message)}},readlink:function(e){var r=FS.lookupPath(e),t=r.node;if(!t)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!t.node_ops.readlink)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return PATH.resolve(FS.getPath(r.node.parent),t.node_ops.readlink(t))},stat:function(e,r){var t=FS.lookupPath(e,{follow:!r}),o=t.node;if(!o)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!o.node_ops.getattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return o.node_ops.getattr(o)},lstat:function(e){return FS.stat(e,!0)},chmod:function(e,r,t){var o;if("string"==typeof e){var n=FS.lookupPath(e,{follow:!t});o=n.node}else o=e;if(!o.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);o.node_ops.setattr(o,{mode:4095&r|-4096&o.mode,timestamp:Date.now()})},lchmod:function(e,r){FS.chmod(e,r,!0)},fchmod:function(e,r){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chmod(t.node,r)},chown:function(e,r,t,o){var n;if("string"==typeof e){var i=FS.lookupPath(e,{follow:!o});n=i.node}else n=e;if(!n.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:function(e,r,t){FS.chown(e,r,t,!0)},fchown:function(e,r,t){var o=FS.getStream(e);if(!o)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chown(o.node,r,t)},truncate:function(e,r){if(0>r)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var t;if("string"==typeof e){var o=FS.lookupPath(e,{follow:!0});t=o.node}else t=e;if(!t.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isDir(t.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!FS.isFile(t.mode))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var n=FS.nodePermissions(t,"w");if(n)throw new FS.ErrnoError(n);t.node_ops.setattr(t,{size:r,timestamp:Date.now()})},ftruncate:function(e,r){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(0===(2097155&t.flags))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);FS.truncate(t.node,r)},utime:function(e,r,t){var o=FS.lookupPath(e,{follow:!0}),n=o.node;n.node_ops.setattr(n,{timestamp:Math.max(r,t)})},open:function(e,r,t,o,n){if(""===e)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);r="string"==typeof r?FS.m
\ No newline at end of file
+n.exitPointerLock=n.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",e,!1),document.addEventListener("mozpointerlockchange",e,!1),document.addEventListener("webkitpointerlockchange",e,!1),document.addEventListener("mspointerlockchange",e,!1),Module.elementPointerLock&&n.addEventListener("click",function(e){!Browser.pointerLock&&n.requestPointerLock&&(n.requestPointerLock(),e.preventDefault())},!1))}},createContext:function(e,r,t,o){if(r&&Module.ctx&&e==Module.canvas)return Module.ctx;var n,i;if(r){var a={antialias:!1,alpha:!1};if(o)for(var s in o)a[s]=o[s];i=GL.createContext(e,a),i&&(n=GL.getContext(i).GLctx),e.style.backgroundColor="black"}else n=e.getContext("2d");return n?(t&&(r||assert("undefined"==typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=n,r&&GL.makeContextCurrent(i),Module.useWebGL=r,Browser.moduleContextCreatedCallbacks.forEach(function(e){e()}),Browser.init()),n):null},destroyContext:function(e,r,t){},fullScreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullScreen:function(e,r,t){function o(){Browser.isFullScreen=!1;var e=n.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===e?(n.cancelFullScreen=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},n.cancelFullScreen=n.cancelFullScreen.bind(document),Browser.lockPointer&&n.requestPointerLock(),Browser.isFullScreen=!0,Browser.resizeCanvas&&Browser.setFullScreenCanvasSize()):(e.parentNode.insertBefore(n,e),e.parentNode.removeChild(e),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullScreen),Browser.updateCanvasDimensions(n)}Browser.lockPointer=e,Browser.resizeCanvas=r,Browser.vrDevice=t,"undefined"==typeof Browser.lockPointer&&(Browser.lockPointer=!0),"undefined"==typeof Browser.resizeCanvas&&(Browser.resizeCanvas=!1),"undefined"==typeof Browser.vrDevice&&(Browser.vrDevice=null);var n=Module.canvas;Browser.fullScreenHandlersInstalled||(Browser.fullScreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",o,!1),document.addEventListener("mozfullscreenchange",o,!1),document.addEventListener("webkitfullscreenchange",o,!1),document.addEventListener("MSFullscreenChange",o,!1));var i=document.createElement("div");n.parentNode.insertBefore(i,n),i.appendChild(n),i.requestFullScreen=i.requestFullScreen||i.mozRequestFullScreen||i.msRequestFullscreen||(i.webkitRequestFullScreen?function(){i.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),t?i.requestFullScreen({vrDisplay:t}):i.requestFullScreen()},nextRAF:0,fakeRequestAnimationFrame:function(e){var r=Date.now();if(0===Browser.nextRAF)Browser.nextRAF=r+1e3/60;else for(;r+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var t=Math.max(Browser.nextRAF-r,0);setTimeout(e,t)},requestAnimationFrame:function(e){"undefined"==typeof window?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(e){return function(){return ABORT?void 0:e.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var e=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],e.forEach(function(e){e()})}},safeRequestAnimationFrame:function(e){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser
\ No newline at end of file
+F=xi[l>>0]|0,Li[e+9>>0]=(((ia(xi[R+b>>0]|0,a)|0)+(ia(O,g)|0)<<3)+32|0)>>>6,Li[e+1>>0]=(((ia(F,a)|0)+(ia(y,g)|0)<<3)+32|0)>>>6,d=d+-1|0,!d)break;e=e+2|0}s=s+k|0}if(c=c+-1|0,!c)break;e=u+w|0,s=s+p|0}if(_)return void(Vi=M);for(u=r+64|0,i=f+((ia(i+o|0,n)|0)+t)|0,f=h;;){if(S)o=u;else{for(o=u+k|0,t=u,u=i,e=E;;){if(O=xi[u>>0]|0,F=xi[u+m>>0]|0,y=u,u=u+2|0,R=xi[y+1>>0]|0,Li[t+8>>0]=(((ia(F,a)|0)+(ia(xi[y+n>>0]|0,g)|0)<<3)+32|0)>>>6,Li[t>>0]=(((ia(R,a)|0)+(ia(O,g)|0)<<3)+32|0)>>>6,O=xi[u>>0]|0,Li[t+9>>0]=(((ia(xi[y+b>>0]|0,a)|0)+(ia(F,g)|0)<<3)+32|0)>>>6,Li[t+1>>0]=(((ia(O,a)|0)+(ia(R,g)|0)<<3)+32|0)>>>6,e=e+-1|0,!e)break;t=t+2|0}i=i+k|0}if(f=f+-1|0,!f)break;u=o+w|0,i=i+p|0}Vi=M}function v(e,r,t,o,n,i,a,s,u){e|=0,r|=0,t|=0,o|=0,n|=0,i|=0,a|=0,s|=0,u|=0;var f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,M=0,v=0,y=0,F=0;if(w=s+o|0,d=(w|0)<0?0-s|0:o,l=(a+t|0)<0?0-a|0:t,d=(d|0)>(i|0)?i:d,l=(l|0)>(n|0)?n:l,f=l+a|0,t=d+s|0,o=(l|0)>0?e+l|0:e,(d|0)>0&&(o=o+(ia(d,n)|0)|0),E=(l|0)<0,v=E?0-l|0:0,M=(f|0)>(n|0),y=M?f-n|0:0,g=a-v|0,F=g-y|0,d=(d|0)<0?0-d|0:0,t=(t|0)>(i|0)?t-i|0:0,S=s-d|0,e=S-t|0,M=E|M,a=(d|0)==0,M){if(!a){for(p=(v|0)==0,b=(g|0)==(y|0),m=(y|0)==0,E=o+F|0,f=s+-1-((w|0)>0?w:0)|0,k=~i,k=(f|0)>(k|0)?f:k,f=~k,f=ia(k+((f|0)>0?f:0)+1|0,u)|0,k=r;;){if(p?a=k:(hn(k|0,Li[o>>0]|0,v|0)|0,a=k+v|0),b)l=o;else{for(h=F,_=o,c=a;;){if(Li[c>>0]=Li[_>>0]|0,h=h+-1|0,!h)break;_=_+1|0,c=c+1|0}l=E,a=a+F|0}if(m||hn(a|0,Li[l+-1>>0]|0,y|0)|0,d=d+-1|0,!d)break;k=k+u|0}r=r+f|0}if((S|0)!=(t|0)){for(b=(v|0)==0,p=(g|0)==(y|0),k=(y|0)==0,c=s+-1|0,h=c-((w|0)>0?w:0)|0,m=~i,m=(h|0)>(m|0)?h:m,c=c-m|0,h=~m,h=s+i+-1-((c|0)<(i|0)?i:c)-m-((h|0)>0?h:0)|0,m=ia(h,u)|0,h=ia(h,n)|0,c=r,_=o;;){if(b?d=c:(hn(c|0,Li[_>>0]|0,v|0)|0,d=c+v|0),p)a=_;else{for(a=F,l=_,f=d;;){if(Li[f>>0]=Li[l>>0]|0,a=a+-1|0,!a)break;l=l+1|0,f=f+1|0}a=_+F|0,d=d+F|0}if(k||hn(d|0,Li[a+-1>>0]|0,y|0)|0,e=e+-1|0,!e)break;c=c+u|0,_=_+n|0}o=o+h|0,r=r+m|0}}else{if(!a){for(l=s+-1-((w|0)>0?w:0)|0,a=~i,a=(l|0)>(a|0)?l:a,l=~a,l=ia(a+((l|0)>0?l:0)+1|0,u)|0,a=r;;){if(En(a|0,o|0,F|0)|0,d=d+-1|0,!d)break;a=a+u|0}r=r+l|0}if((S|0)!=(t|0)){for(l=s+-1|0,a=l-((w|0)>0?w:0)|0,d=~i,d=(a|0)>(d|0)?a:d,l=l-d|0,a=~d,a=s+i+-1-((l|0)<(i|0)?i:l)-d-((a|0)>0?a:0)|0,d=ia(a,u)|0,a=ia(a,n)|0,l=r,f=o;;){if(En(l|0,f|0,F|0)|0,e=e+-1|0,!e)break;l=l+u|0,f=f+n|0}o=o+a|0,r=r+d|0}}if(b=0-n|0,m=o+b|0,t)if(e=(v|0)==0,E=(g|0)==(y|0),p=(y|0)==0,k=F-n|0,M)if(e)for(;;){if(E)f=r,l=b;else{for(l=F,f=m,e=r;;){if(Li[e>>0]=Li[f>>0]|0,l=l+-1|0,!l)break;f=f+1|0,e=e+1|0}f=r+F|0,l=k}if(p||hn(f|0,Li[o+(l+-1)>>0]|0,y|0)|0,t=t+-1|0,!t)break;r=r+u|0}else for(;;){if(hn(r|0,Li[m>>0]|0,v|0)|0,l=r+v|0,E)e=b;else{for(e=F,f=m;;){if(Li[l>>0]=Li[f>>0]|0,e=e+-1|0,!e)break;f=f+1|0,l=l+1|0}l=r+(v+F)|0,e=k}if(p||hn(l|0,Li[o+(e+-1)>>0]|0,y|0)|0,t=t+-1|0,!t)break;r=r+u|0}else{if(e){for(;;){if(En(r|0,m|0,F|0)|0,t=t+-1|0,!t)break;r=r+u|0}return}for(;;){if(En(r|0,m|0,F|0)|0,t=t+-1|0,!t)break;r=r+u|0}}}function y(e,r,t,o,n,i,a,s,u){e|=0,r|=0,t|=0,o|=0,n|=0,i|=0,a|=0,s|=0,u|=0;var f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,M=0,y=0,F=0,O=0;if(y=Vi,Vi=Vi+144|0,f=y,(((t|0)>=0?(s+t|0)>>>0>n>>>0|(o|0)<0:!0)?0:(o+1+u|0)>>>0<=i>>>0)?f=e:(M=u+1|0,v(e,f,t,o,n,i,s,M,s),v(e+(ia(i,n)|0)|0,f+(ia(M,s)|0)|0,t,o,n,i,s,M,s),t=0,o=0,n=s,i=M),M=8-a|0,h=u>>>1,_=(h|0)==0,E=s>>>1,S=(E|0)==0,w=16-s|0,g=n<<1,p=g-s|0,m=g|1,b=n+1|0,k=E<<1,_)return void(Vi=y);for(e=r,s=f+((ia(o,n)|0)+t)|0,c=h;;){if(S)u=e;else{for(u=e+k|0,l=s,d=E;;){if(F=xi[l+n>>0]|0,O=xi[l>>0]|0,Li[e+8>>0]=(((ia(F,M)|0)+(ia(xi[l+g>>0]|0,a)|0)<<3)+32|0)>>>6,Li[e>>0]=(((ia(O,M)|0)+(ia(F,a)|0)<<3)+32|0)>>>6,F=xi[l+b>>0]|0,O=xi[l+1>>0]|0,Li[e+9>>0]=(((ia(F,M)|0)+(ia(xi[l+m>>0]|0,a)|0)<<3)+32|0)>>>6,Li[e+1>>0]=(((ia(O,M)|0)+(ia(F,a)|0)<<3)+32|0)>>>6,d=d+-1|0,!d)break;e=e+2|0,l=l+2|0}s=s+k|0}if(c=c+-1|0,!c)break;e=u+w|0,s=s+p|0}if(_)return void(Vi=y);for(u=r+64|0,o=f+((ia(i+o|0,n)|0)+t)|0,f=h;;){if(S)i=u;else{for(i=u+k|0,t=o,e=E;;){if(O=xi[t+n>>0]|0,F=xi[t>>0]|0,Li[u+8>>0]=(((ia(O,M)|0)+(ia(xi[t+g>>0]|0,a)|0)<<3)+32|0)>>>6,Li[u>>0]=(((ia(F,M)|0)+(ia(O,a)|0)<<3)+32|0)>>>6,O=xi[t+b>>0]|0,F=xi[t+1>>0]|0,Li[u+9>>0]=(((ia(O,M)|0)+(ia
\ No newline at end of file
+Vi=m,e|0;if(t=Bi[n>>2]|0,!(Bi[t+920>>2]|0))break;if(o=Bi[t+948>>2]|0,(Bi[t+944>>2]|0)>>>0>o>>>0)return e=1,Vi=m,e|0;if(o>>>0<(Bi[l>>2]|0)>>>0)return e=1,Vi=m,e|0;if(o>>>0>(Bi[i>>2]|0)>>>0)return e=1,Vi=m,e|0;Bi[i>>2]=(o|0)==0?1:o;break}while(0);return be(e)|0,e=0,Vi=m,e|0}return e=Bi[Wi>>2]|0,Bi[_>>2]=7432,la(e|0,7592,_|0)|0,e=1,Vi=m,e|0}function H(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0,a=0;if((Bi[e>>2]|0)!=(Bi[r>>2]|0))return r=1,r|0;if((Bi[e+4>>2]|0)!=(Bi[r+4>>2]|0))return r=1,r|0;if((Bi[e+12>>2]|0)!=(Bi[r+12>>2]|0))return r=1,r|0;if(t=Bi[e+16>>2]|0,(t|0)!=(Bi[r+16>>2]|0))return r=1,r|0;if((Bi[e+44>>2]|0)!=(Bi[r+44>>2]|0))return r=1,r|0;if((Bi[e+48>>2]|0)!=(Bi[r+48>>2]|0))return r=1,r|0;if((Bi[e+52>>2]|0)!=(Bi[r+52>>2]|0))return r=1,r|0;if((Bi[e+56>>2]|0)!=(Bi[r+56>>2]|0))return r=1,r|0;if(a=Bi[e+60>>2]|0,(a|0)!=(Bi[r+60>>2]|0))return r=1,r|0;if((Bi[e+80>>2]|0)!=(Bi[r+80>>2]|0))return r=1,r|0;e:do if(t){if((t|0)==1){if((Bi[e+24>>2]|0)!=(Bi[r+24>>2]|0))return r=1,r|0;if((Bi[e+28>>2]|0)!=(Bi[r+28>>2]|0))return r=1,r|0;if((Bi[e+32>>2]|0)!=(Bi[r+32>>2]|0))return r=1,r|0;if(t=Bi[e+36>>2]|0,(t|0)!=(Bi[r+36>>2]|0))return r=1,r|0;if(t){for(o=Bi[e+40>>2]|0,n=Bi[r+40>>2]|0,i=0;;){if((Bi[o+(i<<2)>>2]|0)!=(Bi[n+(i<<2)>>2]|0)){t=1;break}if(i=i+1|0,i>>>0>=t>>>0)break e}return t|0}}}else if((Bi[e+20>>2]|0)!=(Bi[r+20>>2]|0))return r=1,r|0;while(0);if(a){if((Bi[e+64>>2]|0)!=(Bi[r+64>>2]|0))return r=1,r|0;if((Bi[e+68>>2]|0)!=(Bi[r+68>>2]|0))return r=1,r|0;if((Bi[e+72>>2]|0)!=(Bi[r+72>>2]|0))return r=1,r|0;if((Bi[e+76>>2]|0)!=(Bi[r+76>>2]|0))return r=1,r|0}return r=0,r|0}function U(e,r,t,o){e|=0,r|=0,t|=0,o|=0;var n=0,a=0,s=0,u=0,f=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,M=0,v=0,y=0,F=0,O=0,R=0,A=0,D=0,P=0,N=0;for(A=Vi,Vi=Vi+448|0,R=A,E=A+12|0,F=A+8|0,y=A+4|0,E=E+(0-E&15)|0,S=Bi[r+3376>>2]|0,_=Bi[o>>2]|0,Bi[F>>2]=0,w=r+1192|0,Bi[w>>2]=(Bi[w>>2]|0)+1,h=r+1200|0,Bi[h>>2]=0,m=r+12|0,Bi[y>>2]=(Bi[o+48>>2]|0)+(Bi[(Bi[m>>2]|0)+52>>2]|0),b=o+36|0,p=r+1212|0,g=o+52|0,M=o+56|0,v=o+60|0,k=o+4|0,u=o+44|0,f=r+1220|0,d=r+1172|0,O=r+1176|0,c=S+12|0,s=0,n=0;;){if(o=Bi[p>>2]|0,(Bi[b>>2]|0)==0?(Bi[o+(_*216|0)+196>>2]|0)!=0:0){o=4;break}if(a=Bi[(Bi[m>>2]|0)+56>>2]|0,N=Bi[g>>2]|0,P=Bi[M>>2]|0,D=Bi[v>>2]|0,Bi[o+(_*216|0)+4>>2]=Bi[w>>2],Bi[o+(_*216|0)+8>>2]=N,Bi[o+(_*216|0)+12>>2]=P,Bi[o+(_*216|0)+16>>2]=D,Bi[o+(_*216|0)+24>>2]=a,a=Bi[k>>2]|0,(a|0)!=2?!((a|0)==7|(n|0)!=0):0){if(n=Se(e,F)|0){o=28;break}if(o=Bi[F>>2]|0,o>>>0>((Bi[O>>2]|0)-_|0)>>>0){o=9;break}o?(hn(c|0,0,164)|0,Bi[S>>2]=0,n=1):n=0}if(o=Bi[F>>2]|0)Bi[F>>2]=o+-1,a=n;else{if(n=i(e,S,(Bi[p>>2]|0)+(_*216|0)|0,Bi[k>>2]|0,Bi[u>>2]|0)|0){o=15;break}a=0}if(n=l((Bi[p>>2]|0)+(_*216|0)|0,S,t,f,y,_,Bi[(Bi[m>>2]|0)+64>>2]|0,E)|0){o=17;break}if(n=((Bi[(Bi[p>>2]|0)+(_*216|0)+196>>2]|0)==1&1)+s|0,o=pe(e)|0?1:(Bi[F>>2]|0)!=0,N=Bi[k>>2]|0,(N|0)==7|(N|0)==2&&(Bi[h>>2]=_),_=ke(Bi[d>>2]|0,Bi[O>>2]|0,_)|0,!((_|0)!=0|o^1)){o=23;break}if(!o){o=25;break}s=n,n=a}return(o|0)==4?(N=Bi[Wi>>2]|0,Bi[R>>2]=7472,la(N|0,7592,R|0)|0,N=1,Vi=A,N|0):(o|0)==9?(N=Bi[Wi>>2]|0,Bi[R>>2]=7504,la(N|0,7592,R|0)|0,N=1,Vi=A,N|0):(o|0)==15?(N=Bi[Wi>>2]|0,Bi[R>>2]=7520,la(N|0,7592,R|0)|0,N=n,Vi=A,N|0):(o|0)==17?(N=Bi[Wi>>2]|0,Bi[R>>2]=7544,la(N|0,7592,R|0)|0,N=n,Vi=A,N|0):(o|0)==23?(N=Bi[Wi>>2]|0,Bi[R>>2]=7560,la(N|0,7592,R|0)|0,N=1,Vi=A,N|0):(o|0)==25?(o=r+1196|0,n=(Bi[o>>2]|0)+n|0,n>>>0>(Bi[O>>2]|0)>>>0?(N=Bi[Wi>>2]|0,Bi[R>>2]=7576,la(N|0,7592,R|0)|0,N=1,Vi=A,N|0):(Bi[o>>2]=n,N=0,Vi=A,N|0)):(o|0)==28?(Vi=A,n|0):0}function q(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0,a=0,s=0;a=Bi[e+1192>>2]|0,t=Bi[e+1200>>2]|0,i=e+1212|0;e:do if(t){o=e+16|0,n=0;do{do if(t=t+-1|0,t>>>0<=r>>>0)break e;while((Bi[(Bi[i>>2]|0)+(t*216|0)+4>>2]|0)!=(a|0));n=n+1|0,s=Bi[(Bi[o>>2]|0)+52>>2]|0}while(n>>>0<(s>>>0>10?s:10)>>>0)}else t=r;while(0);for(n=e+1172|0,o=e+1176|0,r=t;;){if(t=Bi[i>>2]|0,(Bi[t+(r*216|0)+4>>2]|0)!=(a|0)){t=11;break}if(t=t+(r*216|0)+196|0,e=Bi[t>>2]|0,!e){t=11;break}if(Bi[t>>2]=e+-1,r=ke(Bi[n>>2]|0,Bi[o>>2]|0,r)|0,!r){t=11;break}}}function V(e,r,t,o,n){e|=0,r|=0,t|=0,o|=0,n|=0;var i=0,a=0,s=0,u=0,f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0;if(p=ia(n,o)|0,c=
\ No newline at end of file
+r|0;n=(t|0)==1,Bi[r>>2]=n&1;do if(n){if(o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+4>>2]=o,(o|0)==255){if(o=ue(e,16)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+8>>2]=o,t=ue(e,16)|0,(t|0)==-1)return r=1,r|0;Bi[r+12>>2]=t;break}}while(0);if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;n=(t|0)==1,Bi[r+16>>2]=n&1;do if(n){if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;Bi[r+20>>2]=(o|0)==1&1;break}while(0);if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;n=(o|0)==1,Bi[r+24>>2]=n&1;do{if(n){if(o=ue(e,3)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+28>>2]=o,o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+32>>2]=(o|0)==1&1,o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(n=(o|0)==1,Bi[r+36>>2]=n&1,!n){Bi[r+40>>2]=2,Bi[r+44>>2]=2,Bi[r+48>>2]=2;break}if(o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+40>>2]=o,o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;if(Bi[r+44>>2]=o,o=ue(e,8)|0,(o|0)==-1)return r=1,r|0;Bi[r+48>>2]=o;break}Bi[r+28>>2]=5,Bi[r+40>>2]=2,Bi[r+44>>2]=2,Bi[r+48>>2]=2}while(0);if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(n=(o|0)==1,Bi[r+52>>2]=n&1,n){if(o=r+56|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>5)return r=1,r|0;if(o=r+60|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>5)return r=1,r|0}if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;n=(o|0)==1,Bi[r+64>>2]=n&1;do if(n){if(o=fe(e)|0,(le(e,32)|0)==-1|(o|0)==0)return r=1,r|0;if(Bi[r+68>>2]=o,o=fe(e)|0,(le(e,32)|0)==-1|(o|0)==0)return r=1,r|0;if(Bi[r+72>>2]=o,o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;Bi[r+76>>2]=(o|0)==1&1;break}while(0);if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(o=(o|0)==1,n=r+80|0,Bi[n>>2]=o&1,o){if(o=ye(e,r+84|0)|0)return r=o,r|0}else Bi[r+84>>2]=1,Bi[r+96>>2]=288000001,Bi[r+224>>2]=288000001,Bi[r+480>>2]=24,Bi[r+484>>2]=24,Bi[r+488>>2]=24,Bi[r+492>>2]=24;if(o=ue(e,1)|0,(o|0)==-1)return r=1,r|0;if(t=(o|0)==1,o=r+496|0,Bi[o>>2]=t&1,t){if(t=ye(e,r+500|0)|0)return r=t,r|0}else Bi[r+500>>2]=1,Bi[r+512>>2]=240000001,Bi[r+640>>2]=240000001,Bi[r+896>>2]=24,Bi[r+900>>2]=24,Bi[r+904>>2]=24,Bi[r+908>>2]=24;((Bi[n>>2]|0)==0?(Bi[o>>2]|0)==0:0)||(i=46);do if((i|0)==46){if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;Bi[r+912>>2]=(t|0)==1&1;break}while(0);if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;if(Bi[r+916>>2]=(t|0)==1&1,t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;i=(t|0)==1,Bi[r+920>>2]=i&1;do{if(i){if(t=ue(e,1)|0,(t|0)==-1)return r=1,r|0;if(Bi[r+924>>2]=(t|0)==1&1,t=r+928|0,o=Se(e,t)|0)return r=o,r|0;if((Bi[t>>2]|0)>>>0>16)return r=1,r|0;if(o=r+932|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>16)return r=1,r|0;if(o=r+936|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>16)return r=1,r|0;if(o=r+940|0,t=Se(e,o)|0)return r=t,r|0;if((Bi[o>>2]|0)>>>0>16)return r=1,r|0;if(t=Se(e,r+944|0)|0)return r=t,r|0;if(t=Se(e,r+948|0)|0,!t)break;return t|0}Bi[r+924>>2]=1,Bi[r+928>>2]=2,Bi[r+932>>2]=1,Bi[r+936>>2]=16,Bi[r+940>>2]=16,Bi[r+944>>2]=16,Bi[r+948>>2]=16}while(0);return r=0,r|0}function ye(e,r){e|=0,r|=0;var t=0,o=0,n=0,i=0,a=0,s=0;if(t=Se(e,r)|0)return r=t,r|0;if(s=(Bi[r>>2]|0)+1|0,Bi[r>>2]=s,s>>>0>32)return r=1,r|0;if(t=ue(e,4)|0,(t|0)==-1)return r=1,r|0;if(s=r+4|0,Bi[s>>2]=t,o=ue(e,4)|0,(o|0)==-1)return r=1,r|0;a=r+8|0,Bi[a>>2]=o;e:do if(Bi[r>>2]|0){for(i=0;;){if(n=r+(i<<2)+12|0,t=Se(e,n)|0){o=17;break}if(o=Bi[n>>2]|0,(o|0)==-1){t=1,o=17;break}if(t=o+1|0,Bi[n>>2]=t,Bi[n>>2]=t<<(Bi[s>>2]|0)+6,n=r+(i<<2)+140|0,t=Se(e,n)|0){o=17;break}if(o=Bi[n>>2]|0,(o|0)==-1){t=1,o=17;break}if(o=o+1|0,Bi[n>>2]=o,Bi[n>>2]=o<<(Bi[a>>2]|0)+4,o=ue(e,1)|0,(o|0)==-1){t=1,o=17;break}if(Bi[r+(i<<2)+268>>2]=(o|0)==1&1,i=i+1|0,i>>>0>=(Bi[r>>2]|0)>>>0)break e}if((o|0)==17)return t|0}while(0);return t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+396>>2]=t+1,t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+400>>2]=t+1,t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+404>>2]=t+1,t=ue(e,5)|0,(t|0)==-1?(r=1,r|0):(Bi[r+408>>2]=t,r=0,r|0))))}function Fe(e){e|=0;var r=0,t=0,o=0,n=0,i=0,a=0,s=0,u=0,f=0,l=0,d=0,c=0,_=0,h=0,m=0,b=0,p=0,k=0,E=0,S=0,w=0,g=0,M=0,v=0,y=0,F=0,O=0,R=0,A=0,D=0,P=0,N=0,T=0,C=0,L=0,I=0,B=0,x=0,H=0,U=0,q=0;do if(e>>>0<245){if(h=e>>>0<11?16:e+11&-8,e=h>>>3,l=Bi[2176]|0,s=l>>>e,s&3){o=(s&1^1)+e|0,n=o<<1,r=8744+(n<<2)|0,n=8744+(n+2<<2)|0,i=Bi[n>>2]|0,a=i+8|0,s=Bi[a>>2]|0;do if((r|0)!=(s|0)){i
\ No newline at end of file
 6,32,111,112,101,114,97,116,105,111,110,115,0,0,109,101,109,111,114,121,95,109,97,110,97,103,101,109,101,110,116,95,99,111,110,116,114,111,108,95,111,112,101,114,97,116,105,111,110,0,0,0,0,0,109,97,120,95,108,111,110,103,95,116,101,114,109,95,102,114,97,109,101,95,105,100,120,95,112,108,117,115,49,0,0,0,84,111,111,32,109,97,110,121,32,114,101,111,114,100,101,114,105,110,103,32,99,111,109,109,97,110,100,115,0,0,0,0,114,101,111,114,100,101,114,105,110,103,95,111,102,95,112,105,99,95,110,117,109,115,95,105,100,99,0,0,0,0,0,0,97,98,115,95,100,105,102,102,95,112,105,99,95,110,117,109,95,109,105,110,117,115,49,0,114,101,102,95,112,105,99,95,108,105,115,116,95,114,101,111,114,100,101,114,105,110,103,0,0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8,8,0,0,0,0,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,0,0,0,0,10,0,0,0,13,0,0,0,16,0,0,0,11,0,0,0,14,0,0,0,18,0,0,0,13,0,0,0,16,0,0,0,20,0,0,0,14,0,0,0,18,0,0,0,23,0,0,0,16,0,0,0,20,0,0,0,25,0,0,0,18,0,0,0,23,0,0,0,29,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,34,0,0,0,35,0,0,0,35,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,37,0,0,0,37,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,39,0,0,0,39,0,0,0,39,0,0,0,39,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,128,0,0,0,47,31,15,0,23,27,29,30,7,11,13,14,39,43,45,46,16,3,5,10,12,19,21,26,28,35,37,42,44,1,2,4,8,17,18,20,24,6,9,22,25,32,33,34,36,40,38,41,0,16,1,2,4,8,32,3,5,10,12,15,47,7,11,13,14,6,9,31,35,37,42,44,33,34,36,40,39,43,45,46,17,18,20,24,19,21,26,28,23,27,29,30,22,25,38,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,97,120,32,115,121,115,116,101,109,32,98,121,116,101,115,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,115,121,115,116,101,109,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,105,110,32,117,115,101,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,25
\ No newline at end of file
--- /dev/null
+++ b/posix/Rakefile
@@ -1,0 +1,46 @@
+CC = "cc"
+AR = "ar"
+
+if ENV["DEBUG"]
+  CC_FLAGS = ENV["CC_FLAGS"] || "-O0 -g4 -D_ASSERT_USED -D_ERROR_PRINT"
+else
+  CC_FLAGS = ENV["CC_FLAGS"] || "-O3 -D_ERROR_PRINT"
+end
+
+static_lib = "lib/libh264bsd.a"
+test_app = "bin/test_h264bsd"
+
+directory "obj"
+directory "bin"
+directory "lib"
+
+# Convert .c file in ../src to .o file in obj
+rule ".o" => ->(o_file) {[o_file.gsub(/o$/, 'c').gsub("obj/", "../src/"), "obj"]} do |t|
+  sh "#{CC} #{t.source} -c #{CC_FLAGS} -o #{t.name}"
+end
+
+# Use all .c files in the ../src directory
+o_files = FileList["../src/*.c"].gsub(/c$/, 'o').gsub("../src/", "obj/")
+
+# Build static lib
+file static_lib => o_files + ["lib"] do |t|
+  sh "#{AR} rcs #{static_lib} #{o_files.join(' ')}"
+end
+
+# Build test application
+file test_app => [static_lib, "test_h264bsd.c", "bin"] do |t|
+  sh "#{CC} test_h264bsd.c -Llib -lh264bsd -o #{test_app}"
+end
+
+# Run test application
+task :test => test_app do |t|
+  sh "#{test_app} ../test/test_1920x1080.h264"
+end
+
+task :clean do
+  FileUtils.rm_rf("obj")
+  FileUtils.rm_rf("bin")
+  FileUtils.rm_rf("lib")
+end
+
+task :default => [static_lib]
--- /dev/null
+++ b/posix/test_h264bsd.c
@@ -1,0 +1,108 @@
+/* Small application used to test teh h264bsd library on a posix compatible syste */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <time.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <fcntl.h>
+
+#include "../src/h264bsd_decoder.h"
+#include "../src/h264bsd_util.h"
+
+void createContentBuffer(char* contentPath, u8** pContentBuffer, size_t* pContentSize) {
+  struct stat sb;
+  if (stat(contentPath, &sb) == -1) {
+    perror("stat failed");
+    exit(1);
+  }
+
+  *pContentSize = sb.st_size;
+  *pContentBuffer = (u8*)malloc(*pContentSize);
+}
+
+void loadContent(char* contentPath, u8* contentBuffer, size_t contentSize) {
+  int fd = open(contentPath, O_RDONLY);
+  if (fd == -1) {
+    perror("open failed");
+    exit(1);
+  }
+
+  off_t offset = 0;
+  while(offset < contentSize) {
+    offset += read(fd, contentBuffer + offset, contentSize - offset);
+  }
+
+  close(fd);
+}
+
+void decodeContent(u8* contentBuffer, size_t contentSize) {
+  u32 status;
+  storage_t dec;
+  status = h264bsdInit(&dec, HANTRO_FALSE);
+
+  if(status != HANTRO_OK) {
+    fprintf(stderr, "h264bsdInit failed\n");
+    exit(1);
+  }
+
+  u8* byteStrm = contentBuffer;
+  u32 readBytes;
+  u32 len = contentSize;
+  int numPics = 0;
+  u8* pic;
+  u32 picId, isIdrPic, numErrMbs;
+  u32 top, left, width, height, croppingFlag;
+
+  while(len > 0) {
+    u32 result = h264bsdDecode(&dec, byteStrm, len, 0, &readBytes);
+    len -= readBytes;
+    byteStrm += readBytes;
+
+    switch(result) {
+      case H264BSD_PIC_RDY:
+        pic = h264bsdNextOutputPicture(&dec, &picId, &isIdrPic, &numErrMbs);
+        ++numPics;
+        break;
+      case H264BSD_HDRS_RDY:
+        h264bsdCroppingParams(&dec, &croppingFlag, &left, &width, &top, &height);
+        if(!croppingFlag) {
+          width = h264bsdPicWidth(&dec) * 16;
+          height = h264bsdPicHeight(&dec) * 16;
+        }
+
+        char* cropped = croppingFlag ? "(cropped) " : "";
+        printf("Decoded headers. Image size %s%dx%d.\n", cropped, width, height);
+        break;
+      case H264BSD_RDY:
+        break;
+      case H264BSD_ERROR:
+        printf("Error\n");
+        exit(1);
+      case H264BSD_PARAM_SET_ERROR:
+        printf("Param set error\n");
+        exit(1);
+    }
+  }
+
+  printf("Test file complete. %d pictures decoded.\n", numPics);
+  h264bsdShutdown(&dec);
+}
+
+int main(int argc, char *argv[]) {
+  if (argc != 2) {
+    fprintf(stderr, "Usage: %s <pathname>\n", argv[0]);
+    exit(1);
+  }
+
+  char *contentPath = argv[1];
+  u8* contentBuffer;
+  size_t contentSize;
+  createContentBuffer(contentPath, &contentBuffer, &contentSize);
+
+  for(int i=0; i<10; ++i) {
+    loadContent(contentPath, contentBuffer, contentSize);
+    decodeContent(contentBuffer, contentSize);
+  }
+}
\ No newline at end of file
--- a/src/h264bsd_conceal.c
+++ b/src/h264bsd_conceal.c
@@ -280,7 +280,7 @@
     i32 firstPhase[16];
     i32 *pTmp;
     /* neighbours above, below, left and right */
-    i32 a[4], b[4], l[4], r[4];
+    i32 a[4] = { 0,0,0,0 }, b[4], l[4] = { 0,0,0,0 }, r[4];
     u32 A, B, L, R;
 #ifdef H264DEC_OMXDL
     u8 fillBuff[32*21 + 15 + 32];
--- a/src/h264bsd_intra_prediction.c
+++ b/src/h264bsd_intra_prediction.c
@@ -1115,7 +1115,7 @@
 
 /* Variables */
 
-    u32 i, j;
+    i32 i, j;
     i32 a, b, c;
     i32 tmp;
 
@@ -1128,13 +1128,13 @@
     a = 16 * (above[15] + left[15]);
 
     for (i = 0, b = 0; i < 8; i++)
-        b += ((i32)i + 1) * (above[8+i] - above[6-i]);
+        b += (i + 1) * (above[8+i] - above[6-i]);
     b = (5 * b + 32) >> 6;
 
     for (i = 0, c = 0; i < 7; i++)
-        c += ((i32)i + 1) * (left[8+i] - left[6-i]);
+        c += (i + 1) * (left[8+i] - left[6-i]);
     /* p[-1,-1] has to be accessed through above pointer */
-    c += ((i32)i + 1) * (left[8+i] - above[-1]);
+    c += (i + 1) * (left[8+i] - above[-1]);
     c = (5 * c + 32) >> 6;
 
     for (i = 0; i < 16; i++)
@@ -1141,7 +1141,7 @@
     {
         for (j = 0; j < 16; j++)
         {
-            tmp = (a + b * ((i32)j - 7) + c * ((i32)i - 7) + 16) >> 5;
+            tmp = (a + b * (j - 7) + c * (i - 7) + 16) >> 5;
             data[i*16+j] = (u8)CLIP1(tmp);
         }
     }
--- a/src/h264bsd_reconstruct.c
+++ b/src/h264bsd_reconstruct.c
@@ -2196,7 +2196,7 @@
   i32 center,
   i32 right)
 {
-    u8 tmp;
+    u8 tmp = '\0';
 
     ASSERT(ref);
     ASSERT(fill);
--- a/src/h264bsd_util.c
+++ b/src/h264bsd_util.c
@@ -187,7 +187,7 @@
         return(HANTRO_FALSE);
 
     if ( (bits > 8) ||
-         ((h264bsdShowBits32(pStrmData)>>(32-bits)) != (1 << (bits-1))) )
+         ((h264bsdShowBits32(pStrmData)>>(32-bits)) != (1ul << (bits-1))) )
         return(HANTRO_TRUE);
     else
         return(HANTRO_FALSE);
@@ -221,7 +221,7 @@
 
 /* Variables */
 
-    u32 i, sliceGroup, tmp;
+    u32 i, sliceGroup;
 
 /* Code */
 
@@ -232,11 +232,9 @@
     sliceGroup = pSliceGroupMap[currMbAddr];
 
     i = currMbAddr + 1;
-    tmp = pSliceGroupMap[i];
-    while ((i < picSizeInMbs) && (tmp != sliceGroup))
+    while ((i < picSizeInMbs) && (pSliceGroupMap[i] != sliceGroup))
     {
         i++;
-        tmp = pSliceGroupMap[i];
     }
 
     if (i == picSizeInMbs)
--- a/src/h264bsd_util.h
+++ b/src/h264bsd_util.h
@@ -33,6 +33,7 @@
     1. Include headers
 ------------------------------------------------------------------------------*/
 
+#include <stdint.h>
 #include "basetype.h"
 #include "h264bsd_cfg.h"
 #include "h264bsd_stream.h"
@@ -150,7 +151,7 @@
 }
 
 #define ALIGN(ptr, bytePos) \
-        (ptr + ( ((bytePos - (int)ptr) & (bytePos - 1)) / sizeof(*ptr) ))
+        (ptr + ( ((bytePos - (uintptr_t)ptr) & (bytePos - 1)) / sizeof(*ptr) ))
 
 extern const u32 h264bsdQpC[52];