From 56ed79c14f16ec286529b7c30e0d57dff1dd040d Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Wed, 14 Feb 2018 18:26:40 -0600 Subject: [PATCH] caspr inline assembly with __asm --- emsrc/caspr/Makefile.local | 33 +++++ emsrc/verilator/Makefile.local | 48 +++++++ presets/verilog/cargame.asm | 87 ------------- presets/verilog/nano8.cfg | 4 +- presets/verilog/race_game_cpu.v | 221 ++++++++++++++++---------------- src/platform/verilog.js | 5 +- src/ui.js | 2 +- src/worker/caspr.js | 26 ++++ src/worker/wasm/caspr.js | 14 ++ src/worker/wasm/caspr.wasm | Bin 0 -> 39797 bytes src/worker/workermain.js | 64 +++++++++ 11 files changed, 299 insertions(+), 205 deletions(-) create mode 100644 emsrc/caspr/Makefile.local create mode 100644 emsrc/verilator/Makefile.local delete mode 100644 presets/verilog/cargame.asm create mode 100644 src/worker/caspr.js create mode 100644 src/worker/wasm/caspr.js create mode 100644 src/worker/wasm/caspr.wasm diff --git a/emsrc/caspr/Makefile.local b/emsrc/caspr/Makefile.local new file mode 100644 index 00000000..ef1aabb2 --- /dev/null +++ b/emsrc/caspr/Makefile.local @@ -0,0 +1,33 @@ + +DEST=/Users/sehugg/PuzzlingPlans/8bitworkshop/src/worker +TARGETS=js/caspr.js wasm/caspr.js + +all: $(TARGETS) + cp js/caspr.js $(DEST) + cp wasm/caspr.* $(DEST)/wasm + +clean: + rm -f $(TARGETS) + +js/%.js: %.bc + emcc -Oz --memory-init-file 0 \ + -s ASM_JS=1 \ + -s MODULARIZE=1 \ + -s ALLOW_MEMORY_GROWTH=1 \ + -s EXPORT_NAME=\"'$*'\" \ + -s 'EXTRA_EXPORTED_RUNTIME_METHODS=["FS"]' \ + -s FORCE_FILESYSTEM=1 \ + $< -o $@ $(ARGS_$*) \ + +wasm/%.js: %.bc + emcc -Oz --memory-init-file 0 \ + -s WASM=1 \ + -s MODULARIZE=1 \ + -s ALLOW_MEMORY_GROWTH=1 \ + -s NO_EXIT_RUNTIME=1 \ + -s BINARYEN_ASYNC_COMPILATION=0 \ + -s EXPORT_NAME=\"'$*'\" \ + -s 'EXTRA_EXPORTED_RUNTIME_METHODS=["FS"]' \ + -s FORCE_FILESYSTEM=1 \ + $< -o $@ $(ARGS_$*) \ + diff --git a/emsrc/verilator/Makefile.local b/emsrc/verilator/Makefile.local new file mode 100644 index 00000000..555c8bbf --- /dev/null +++ b/emsrc/verilator/Makefile.local @@ -0,0 +1,48 @@ +all: js/verilator_bin.js wasm/verilator_bin.js + +js/%.js: js/%.bc + emcc -Oz --memory-init-file 0 \ + -s ASM_JS=1 \ + -s MODULARIZE=1 \ + -s EXPORT_NAME=\"'$*'\" \ + -s 'EXTRA_EXPORTED_RUNTIME_METHODS=["FS"]' \ + -s FORCE_FILESYSTEM=1 \ + $< -o $@ $(ARGS_$*) \ + +wasm/%.js: js/%.bc + emcc -Oz --memory-init-file 0 \ + -s WASM=1 \ + -s MODULARIZE=1 \ + -s BINARYEN_ASYNC_COMPILATION=0 \ + -s TOTAL_MEMORY=256MB \ + -s NO_EXIT_RUNTIME=1 \ + -s EXPORT_NAME=\"'$*'\" \ + -s 'EXTRA_EXPORTED_RUNTIME_METHODS=["FS"]' \ + -s FORCE_FILESYSTEM=1 \ + $< -o $@ $(ARGS_$*) \ + + +mainwasm/%.js: js/%.bc + emcc -Oz --memory-init-file 0 \ + -s WASM=1 \ + -s EXPORT_NAME=\"'$*'\" \ + -s 'EXTRA_EXPORTED_RUNTIME_METHODS=["FS"]' \ + -s FORCE_FILESYSTEM=1 \ + $< -o $@ $(ARGS_$*) \ + + +debugjs/%.js: js/%.bc + emcc -O1 --memory-init-file 0 \ + -s ASM_JS=1 \ + -s MODULARIZE=1 \ + -s EXPORT_NAME=\"'$*'\" \ + -s 'EXTRA_EXPORTED_RUNTIME_METHODS=["FS"]' \ + -s FORCE_FILESYSTEM=1 \ + $< -o $@ $(ARGS_$*) \ + +js/fssdcc.js: + ln -s ./sdcc/device/include include + ln -s ./sdcc/device/lib/build lib + python $(EMSCRIPTEN)/tools/file_packager.py js/fssdcc.data \ + --preload include lib/z80 \ + --separate-metadata --js-output=js/fssdcc.js diff --git a/presets/verilog/cargame.asm b/presets/verilog/cargame.asm deleted file mode 100644 index 590665ca..00000000 --- a/presets/verilog/cargame.asm +++ /dev/null @@ -1,87 +0,0 @@ -.arch nano8 -.org 128 - -.define PADDLE_X 0 -.define PADDLE_Y 1 -.define PLAYER_X 2 -.define PLAYER_Y 3 -.define ENEMY_X 4 -.define ENEMY_Y 5 -.define ENEMY_DIR 6 -.define SPEED 7 -.define TRACKPOS_LO 8 -.define TRACKPOS_HI 9 - -.define IN_HPOS $40 -.define IN_VPOS $41 -.define IN_FLAGS $42 - -.define F_DISPLAY 1 -.define F_HPADDLE 2 -.define F_VPADDLE 4 -.define F_HSYNC 8 -.define F_VSYNC 16 -.define F_COLLIDE 32 - -Start: - lda 128 - sta PLAYER_X - sta ENEMY_X - sta ENEMY_Y - lda 180 - sta PLAYER_Y - zero A - sta SPEED -; test hpaddle flag -DisplayLoop: - lda F_HPADDLE - ldb IN_FLAGS - andrb NOP - bz DisplayLoop -; [vpos] -> paddle_x - ldb IN_VPOS - movrb A - sta PLAYER_X -; wait for vsync=1 then vsync=0 - lda F_VSYNC - ldb IN_FLAGS -WaitForVsyncOn: - andrb NOP - bz WaitForVsyncOn -WaitForVsyncOff: - andrb NOP - bnz WaitForVsyncOff -; check collision - lda F_COLLIDE - ldb IN_FLAGS - andrb NOP - bz NoCollision -; load slow speed - lda 16 - sta SPEED -NoCollision: -; update speed - ldb SPEED - movrb A - inc A -; don't store if == 0 - bz MaxSpeed - sta SPEED -MaxSpeed: - movrb A - lsr A - lsr A - lsr A - lsr A -; add to lo byte of track pos - ldb TRACKPOS_LO - addrb B - swapab - sta TRACKPOS_LO - swapab -; update enemy vert pos - ldb ENEMY_Y - addrb A - sta ENEMY_Y - jmp DisplayLoop - reset diff --git a/presets/verilog/nano8.cfg b/presets/verilog/nano8.cfg index 324a0b7d..11b2635b 100644 --- a/presets/verilog/nano8.cfg +++ b/presets/verilog/nano8.cfg @@ -76,8 +76,8 @@ jmp 8 { 01 10 0001 (0) } ; conditional branch bcc 8 { 1010 0001 (0) } bcs 8 { 1010 0011 (0) } -bz 8 { 1010 0100 (0) } -bnz 8 { 1010 1100 (0) } +bz 8 { 1010 1100 (0) } +bnz 8 { 1010 0100 (0) } ; allow raw byte positioning diff --git a/presets/verilog/race_game_cpu.v b/presets/verilog/race_game_cpu.v index a1aff18f..51cf4f9f 100644 --- a/presets/verilog/race_game_cpu.v +++ b/presets/verilog/race_game_cpu.v @@ -49,7 +49,7 @@ module sprite_multiple_top(clk, reset, hsync, vsync, hpaddle, vpaddle, parameter IN_FLAGS = 8'b01000010; reg [7:0] ram[0:63]; - reg [7:0] rom[0:127]; + reg [7:0] rom[0:255]; output wire [7:0] address_bus; output reg [7:0] to_cpu; @@ -77,7 +77,7 @@ module sprite_multiple_top(clk, reset, hsync, vsync, hpaddle, vpaddle, IN_FLAGS: to_cpu = {2'b0, frame_collision, vsync, hsync, vpaddle, hpaddle, display_on}; // ROM - 8'b1???????: to_cpu = rom[address_bus[6:0]]; + 8'b1???????: to_cpu = rom[address_bus[6:0] + 128]; default: ; endcase @@ -128,120 +128,113 @@ module sprite_multiple_top(clk, reset, hsync, vsync, hpaddle, vpaddle, .gfx(enemy_gfx), .in_progress(player_is_drawing)); - /* - always @(posedge hsync) - begin - if (!hpaddle) ram[PADDLE_X] <= vpos[7:0]; - if (!vpaddle) ram[PADDLE_Y] <= vpos[7:0]; - end - - wire enemy_hit_left = (enemy_x == 64); - wire enemy_hit_right = (enemy_x == 192); - wire enemy_hit_edge = enemy_hit_left || enemy_hit_right; - - always @(posedge vsync) - begin - player_x <= paddle_x; - player_y <= 180; - track_pos <= track_pos + {11'b0,speed[7:4]}; - enemy_y <= enemy_y + {3'b0, speed[7:4]}; - if (enemy_hit_edge) - enemy_dir <= !enemy_dir; - if (enemy_dir ^ enemy_hit_edge) - enemy_x <= enemy_x + 1; - else - enemy_x <= enemy_x - 1; - // collision check? - if (frame_collision) - speed <= 16; - else if (speed < ~paddle_y) - speed <= speed + 1; - else - speed <= speed - 1; - end - */ - initial begin rom = '{ - // initialize registers - `I_CONST_IMM_A, - 128, - `I_STORE_A(PLAYER_X), - `I_STORE_A(ENEMY_X), - `I_STORE_A(ENEMY_Y), - `I_CONST_IMM_A, - 180, - `I_STORE_A(PLAYER_Y), - `I_ZERO_A, - `I_STORE_A(SPEED), - // test hpaddle flag - `I_CONST_IMM_A, - 8'b00000010, - `I_CONST_IMM_B, - IN_FLAGS, - `I_COMPUTE_READB(DEST_NOP, OP_AND), - `I_BRANCH_IF_ZERO(1), - 128+10, - // [vpos] -> paddle_x - `I_CONST_IMM_B, - IN_VPOS, - `I_COMPUTE_READB(DEST_A, OP_LOAD_B), - `I_STORE_A(PLAYER_X), - // wait for vsync=1 then vsync=0 - `I_CONST_IMM_A, - 8'b00010000, - `I_CONST_IMM_B, - IN_FLAGS, - `I_COMPUTE_READB(DEST_NOP, OP_AND), - `I_BRANCH_IF_ZERO(1), - 128+25, - `I_COMPUTE_READB(DEST_NOP, OP_AND), - `I_BRANCH_IF_ZERO(0), - 128+28, - // check collision - `I_CONST_IMM_A, - 8'b00100000, - `I_CONST_IMM_B, - IN_FLAGS, - `I_COMPUTE_READB(DEST_NOP, OP_AND), - `I_BRANCH_IF_ZERO(1), - 128+41, - // load slow speed - `I_CONST_IMM_A, - 16, - `I_STORE_A(SPEED), - // update speed - `I_CONST_IMM_B, - SPEED, - `I_COMPUTE_READB(DEST_A, OP_LOAD_B), - `I_COMPUTE(DEST_A, OP_INC), - // don't store if == 0 - `I_BRANCH_IF_ZERO(1), - 128+48, - `I_STORE_A(SPEED), - // branch target - `I_COMPUTE_READB(DEST_A, OP_LOAD_B), - `I_COMPUTE(DEST_A, OP_LSR), - `I_COMPUTE(DEST_A, OP_LSR), - `I_COMPUTE(DEST_A, OP_LSR), - `I_COMPUTE(DEST_A, OP_LSR), - // add to lo byte of track pos - `I_CONST_IMM_B, - TRACKPOS_LO, - `I_COMPUTE_READB(DEST_B, OP_ADD), - `I_SWAP_AB, - `I_STORE_A(TRACKPOS_LO), - `I_SWAP_AB, - // update enemy vert pos - `I_CONST_IMM_B, - ENEMY_Y, - `I_COMPUTE_READB(DEST_A, OP_ADD), - `I_STORE_A(ENEMY_Y), - // repeat main loop - `I_JUMP_IMM, - 128+10, - // leftover elements - 63{0} + __asm +.arch nano8 +.org 128 + +.define PADDLE_X 0 +.define PADDLE_Y 1 +.define PLAYER_X 2 +.define PLAYER_Y 3 +.define ENEMY_X 4 +.define ENEMY_Y 5 +.define ENEMY_DIR 6 +.define SPEED 7 +.define TRACKPOS_LO 8 +.define TRACKPOS_HI 9 + +.define IN_HPOS $40 +.define IN_VPOS $41 +.define IN_FLAGS $42 + +.define F_DISPLAY 1 +.define F_HPADDLE 2 +.define F_VPADDLE 4 +.define F_HSYNC 8 +.define F_VSYNC 16 +.define F_COLLIDE 32 + +Start: + lda 128 + sta PLAYER_X + sta ENEMY_X + sta ENEMY_Y + lda 180 + sta PLAYER_Y + zero A + sta SPEED + inc A + sta ENEMY_DIR +; test hpaddle flag +DisplayLoop: + lda F_HPADDLE + ldb IN_FLAGS + andrb NOP + bz DisplayLoop +; [vpos] -> paddle_x + ldb IN_VPOS + movrb A + sta PLAYER_X +; wait for vsync=1 then vsync=0 + lda F_VSYNC + ldb IN_FLAGS +WaitForVsyncOn: + andrb NOP + bz WaitForVsyncOn +WaitForVsyncOff: + andrb NOP + bnz WaitForVsyncOff +; check collision + lda F_COLLIDE + ldb IN_FLAGS + andrb NOP + bz NoCollision +; load slow speed + lda 16 + sta SPEED +NoCollision: +; update speed + ldb SPEED + movrb A + inc A +; don't store if == 0 + bz MaxSpeed + sta SPEED +MaxSpeed: + movrb A + lsr A + lsr A + lsr A + lsr A +; add to lo byte of track pos + ldb TRACKPOS_LO + addrb B + swapab + sta TRACKPOS_LO + swapab +; update enemy vert pos + ldb ENEMY_Y + addrb A + sta ENEMY_Y +; update enemy horiz pos + ldb ENEMY_X + movrb A + ldb ENEMY_DIR + addrb A + sta ENEMY_X + subi A 64 + andi A 127 + bnz SkipXReverse +; load ENEMY_DIR and negate + zero A + subrb A + sta ENEMY_DIR +; back to display loop +SkipXReverse: + jmp DisplayLoop + __endasm }; end diff --git a/src/platform/verilog.js b/src/platform/verilog.js index 2875a1b8..1b9eb8f2 100644 --- a/src/platform/verilog.js +++ b/src/platform/verilog.js @@ -505,7 +505,10 @@ var VerilogPlatform = function(mainElement, options) { gen.tick2(); } this.getToolForFilename = function(fn) { - return "verilator"; + if (fn.endsWith("asm")) + return "caspr"; + else + return "verilator"; } this.getDefaultExtension = function() { return ".v"; }; diff --git a/src/ui.js b/src/ui.js index 89c46ee2..b37a69c8 100644 --- a/src/ui.js +++ b/src/ui.js @@ -822,7 +822,7 @@ function updateDisassembly() { disasmview.setValue(text); disasmview.setCursor(selline, 0); jumpToLine(disasmview, selline); - } else if (current_output.code) { + } else if (current_output && current_output.code) { // show verilog javascript disasmview.setValue(current_output.code); } diff --git a/src/worker/caspr.js b/src/worker/caspr.js new file mode 100644 index 00000000..3ca19d57 --- /dev/null +++ b/src/worker/caspr.js @@ -0,0 +1,26 @@ +var caspr = function(caspr) { + caspr = caspr || {}; + var Module = caspr; + +var Module;if(!Module)Module=(typeof caspr!=="undefined"?caspr:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function shell_read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function shell_print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function shell_printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}if(!Module["reallocBuffer"])Module["reallocBuffer"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module["usingWasm"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module["reallocBuffer"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=Runtime.GLOBAL_BASE;STATICTOP=STATIC_BASE+6640;__ATINIT__.push();allocate([194,4,0,0,201,4,0,0,212,4,0,0,0,0,0,0,28,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,232,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,188,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,1,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,240,21,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73,78,70,79,58,32,85,110,107,110,111,119,110,32,111,117,116,112,117,116,32,102,111,114,109,97,116,44,32,100,101,102,97,117,108,116,105,110,103,32,116,111,32,109,105,102,0,78,111,32,105,110,112,117,116,32,115,112,101,99,105,102,105,101,100,10,0,85,115,97,103,101,58,10,9,37,115,32,60,105,110,112,117,116,62,32,91,60,111,117,116,112,117,116,62,93,10,0,70,65,84,65,76,32,45,32,67,111,117,108,100,32,110,111,116,32,111,112,101,110,32,105,110,112,117,116,32,102,105,108,101,0,70,65,84,65,76,32,45,32,67,111,117,108,100,32,110,111,116,32,112,97,114,115,101,32,105,110,112,117,116,10,0,69,82,82,79,82,32,45,32,77,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,101,100,10,0,70,65,84,65,76,32,45,32,67,111,117,108,100,32,110,111,116,32,114,101,119,105,110,100,32,102,105,108,101,0,70,65,84,65,76,32,45,32,67,111,117,108,100,32,110,111,116,32,97,115,115,101,109,98,108,101,10,0,79,117,116,112,117,116,32,110,97,109,101,32,105,115,32,39,37,115,39,10,0,109,105,102,0,70,65,84,65,76,32,45,32,70,105,108,101,32,111,117,116,112,117,116,32,102,97,105,108,101,100,10,0,73,110,118,97,108,105,100,32,83,116,97,116,101,32,105,110,32,83,116,97,116,101,32,77,97,99,104,105,110,101,10,0,67,97,110,110,111,116,32,112,117,115,104,32,98,97,99,107,32,116,111,32,115,116,114,101,97,109,10,0,69,82,82,79,82,32,45,32,73,110,118,97,108,105,100,32,115,117,98,102,105,101,108,100,32,115,112,101,99,105,102,105,101,114,44,32,34,40,37,100,41,34,10,0,69,82,82,79,82,32,45,32,73,110,115,116,114,117,99,116,105,111,110,32,102,111,114,109,97,116,32,105,115,32,110,111,116,32,98,121,116,101,32,97,108,105,103,110,101,100,0,114,0,69,82,82,79,82,32,45,32,70,111,114,109,97,116,32,117,110,117,115,97,98,108,101,32,102,111,114,32,37,115,44,32,97,116,116,101,109,112,116,105,110,103,32,116,111,32,99,111,110,116,105,110,117,101,32,119,105,116,104,111,117,116,32,105,116,10,0,70,65,84,65,76,32,45,32,85,110,101,120,112,101,99,116,101,100,32,84,111,107,101,110,32,37,115,44,32,108,105,110,101,32,37,100,10,0,37,115,46,99,102,103,0,99,102,103,47,37,115,46,99,102,103,0,47,104,111,109,101,47,116,105,109,47,100,101,118,47,99,97,115,112,114,47,99,102,103,47,37,115,46,99,102,103,0,69,82,82,79,82,32,45,32,83,121,109,98,111,108,32,39,37,115,39,32,78,111,116,32,70,111,117,110,100,10,0,69,82,82,79,82,32,45,32,67,97,110,110,111,116,32,80,97,114,115,101,32,65,114,105,116,104,109,101,116,105,99,32,69,120,112,114,101,115,115,105,111,110,0,69,82,82,79,82,32,45,32,85,110,107,110,111,119,110,32,65,114,105,116,104,109,101,116,105,99,32,111,112,101,114,97,116,105,111,110,32,39,37,115,39,10,0,69,82,82,79,82,32,45,32,85,110,101,120,112,101,99,116,101,100,32,116,111,107,101,110,32,39,37,115,39,32,119,104,105,108,101,32,112,97,114,115,105,110,103,32,115,117,98,101,120,112,114,101,115,115,105,111,110,10,0,85,110,104,97,110,100,108,101,100,32,116,111,107,101,110,32,39,37,115,39,10,0,69,82,82,79,82,32,45,32,109,110,101,109,111,110,105,99,32,37,115,32,110,111,116,32,102,111,117,110,100,10,0,85,110,101,120,112,101,99,116,101,100,32,84,111,107,101,110,32,37,115,44,32,108,105,110,101,32,37,100,10,0,69,82,82,79,82,32,45,32,85,110,101,120,112,101,99,116,101,100,32,105,110,115,116,114,117,99,116,105,111,110,32,37,115,10,0,69,82,82,79,82,32,45,32,65,114,103,117,109,101,110,116,32,37,100,32,98,97,100,44,32,108,105,110,101,32,37,100,10,0,87,65,82,78,73,78,71,32,45,32,86,97,108,117,101,32,48,120,37,120,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,32,119,105,116,104,32,37,100,32,98,105,116,115,44,32,108,105,110,101,32,37,100,10,0,69,82,82,79,82,32,45,32,66,97,100,32,116,111,107,101,110,32,37,115,32,97,116,32,101,110,100,32,111,102,32,108,105,110,101,32,37,100,10,0,69,82,82,79,82,32,45,32,66,97,100,32,116,111,107,101,110,32,37,115,32,97,116,32,108,105,110,101,32,37,100,10,0,36,102,105,108,101,115,105,122,101,0,69,82,82,79,82,32,45,32,85,110,107,110,111,119,110,32,102,105,108,101,32,115,105,122,101,10,0,69,82,82,79,82,32,45,32,85,110,107,110,111,119,110,32,77,73,70,32,111,117,116,112,117,116,32,115,105,122,101,10,0,69,82,82,79,82,32,45,32,73,108,108,101,103,97,108,32,77,73,70,32,119,105,100,116,104,32,115,105,122,101,32,40,109,117,115,116,32,98,101,32,109,117,108,116,105,112,108,101,32,111,102,32,56,41,10,0,69,82,82,79,82,32,45,32,65,115,115,101,109,98,108,101,100,32,102,105,108,101,32,119,105,108,108,32,110,111,116,32,102,105,116,32,119,105,116,104,105,110,32,109,105,102,32,102,105,108,101,115,105,122,101,10,0,119,0,69,82,82,79,82,32,45,32,67,111,117,108,100,32,110,111,116,32,111,112,101,110,32,111,117,116,112,117,116,32,102,105,108,101,0,45,45,32,99,97,115,112,114,10,10,87,73,68,84,72,61,37,100,59,10,68,69,80,84,72,61,37,100,59,10,10,65,68,68,82,69,83,83,95,82,65,68,73,88,61,72,69,88,59,10,68,65,84,65,95,82,65,68,73,88,61,72,69,88,59,10,10,67,79,78,84,69,78,84,32,66,69,71,73,78,10,0,9,37,120,32,32,58,32,32,32,0,48,48,0,37,48,50,88,0,59,10,0,69,78,68,59,10,0,48,120,37,48,52,88,32,124,0,32,37,48,50,88,0,32,48,48,0,70,65,84,65,76,32,45,32,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,115,112,97,99,101,10,0,46,97,114,99,104,0,69,82,82,79,82,32,45,32,85,110,101,120,112,101,99,116,101,100,32,84,111,107,101,110,32,37,115,44,32,108,105,110,101,32,37,100,10,0,67,111,117,108,100,32,110,111,116,32,108,111,97,100,32,97,114,99,104,105,116,101,99,116,117,114,101,32,102,105,108,101,32,102,111,114,32,37,115,10,0,46,100,101,102,105,110,101,0,69,82,82,79,82,32,45,32,73,110,118,97,108,105,100,32,68,101,102,105,110,101,44,32,108,105,110,101,32,37,100,10,0,46,111,117,116,102,109,116,0,36,111,117,116,102,109,116,0,46,111,114,103,0,46,109,105,102,119,111,114,100,115,0,36,109,105,102,119,111,114,100,115,0,46,109,105,102,119,105,100,116,104,0,36,109,105,102,119,105,100,116,104,0,69,82,82,79,82,32,45,32,85,110,107,110,111,119,110,32,100,105,114,101,99,116,105,118,101,32,37,115,10,0,114,119,97,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,1,2,4,7,3,6,5,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdirTree:(function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},chunkSize:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___lock(){}function ___unlock(){}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity,"byteLength":byteLength};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_ii":invoke_ii,"invoke_iiii":invoke_iiii,"___syscall221":___syscall221,"___lock":___lock,"___syscall6":___syscall6,"___setErrNo":___setErrNo,"___syscall140":___syscall140,"___syscall5":___syscall5,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___syscall54":___syscall54,"___unlock":___unlock,"_exit":_exit,"__exit":__exit,"___syscall145":___syscall145,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM +var asm=(function(global,env,buffer) { +"almost asm";var a=global.Int8Array;var b=new a(buffer);var c=global.Int16Array;var d=new c(buffer);var e=global.Int32Array;var f=new e(buffer);var g=global.Uint8Array;var h=new g(buffer);var i=global.Uint16Array;var j=new i(buffer);var k=global.Uint32Array;var l=new k(buffer);var m=global.Float32Array;var n=new m(buffer);var o=global.Float64Array;var p=new o(buffer);var q=global.byteLength;var r=env.DYNAMICTOP_PTR|0;var s=env.tempDoublePtr|0;var t=env.ABORT|0;var u=env.STACKTOP|0;var v=env.STACK_MAX|0;var w=env.cttz_i8|0;var x=0;var y=0;var z=0;var A=0;var B=global.NaN,C=global.Infinity;var D=0,E=0,F=0,G=0,H=0.0;var I=0;var J=global.Math.floor;var K=global.Math.abs;var L=global.Math.sqrt;var M=global.Math.pow;var N=global.Math.cos;var O=global.Math.sin;var P=global.Math.tan;var Q=global.Math.acos;var R=global.Math.asin;var S=global.Math.atan;var T=global.Math.atan2;var U=global.Math.exp;var V=global.Math.log;var W=global.Math.ceil;var X=global.Math.imul;var Y=global.Math.min;var Z=global.Math.max;var _=global.Math.clz32;var $=env.abort;var aa=env.assert;var ba=env.enlargeMemory;var ca=env.getTotalMemory;var da=env.abortOnCannotGrowMemory;var ea=env.invoke_ii;var fa=env.invoke_iiii;var ga=env.___syscall221;var ha=env.___lock;var ia=env.___syscall6;var ja=env.___setErrNo;var ka=env.___syscall140;var la=env.___syscall5;var ma=env._emscripten_memcpy_big;var na=env.___syscall54;var oa=env.___unlock;var pa=env._exit;var qa=env.__exit;var ra=env.___syscall145;var sa=env.___syscall146;var ta=0.0;function ua(newBuffer){if(q(newBuffer)&16777215||q(newBuffer)<=16777215||q(newBuffer)>2147483648)return false;b=new a(newBuffer);d=new c(newBuffer);f=new e(newBuffer);h=new g(newBuffer);j=new i(newBuffer);l=new k(newBuffer);n=new m(newBuffer);p=new o(newBuffer);buffer=newBuffer;return true} +// EMSCRIPTEN_START_FUNCS +function xa(a){a=a|0;var b=0;b=u;u=u+a|0;u=u+15&-16;return b|0}function ya(){return u|0}function za(a){a=a|0;u=a}function Aa(a,b){a=a|0;b=b|0;u=a;v=b}function Ba(a,b){a=a|0;b=b|0;if(!x){x=a;y=b}}function Ca(a){a=a|0;I=a}function Da(){return I|0}function Ea(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=u;u=u+1184|0;m=n+8|0;e=n;j=n+24|0;k=n+16|0;l=n+1112|0;d=n+88|0;g=n+12|0;f[k>>2]=0;Ra(k)|0;if((a|0)<2){Dc(699)|0;f[e>>2]=f[c>>2];yc(719,e)|0;m=0;u=n;return m|0}h=c+4|0;e=Bb(f[h>>2]|0,1111)|0;if(!e){Cc(750);m=-1;u=n;return m|0}if(Na(k,e)|0){qb(784,30,1,f[6]|0)|0;Ra(k)|0;m=-1;u=n;return m|0}if(Ta(k,1730,0,g)|0){qb(1740,26,1,f[6]|0)|0;m=-1;u=n;return m|0}i=Xa(1,f[g>>2]|0)|0;if(!i){qb(815,33,1,f[6]|0)|0;m=-1;u=n;return m|0}if(Sb(e,0,0)|0){Cc(849);m=-1;u=n;return m|0}if(Oa(k,e,i)|0){qb(879,27,1,f[6]|0)|0;m=-1;u=n;return m|0}if((a|0)<3){vc(d,f[h>>2]|0,1024)|0;if(!(Ta(k,2246,j,0)|0)){e=-1;g=0}else{Dc(652)|0;f[j>>2]=6711661;e=-1;g=0}a:while(1){switch(b[d+g>>0]|0){case 0:break a;case 46:{e=g;break}default:{}}g=g+1|0}if((e|0)!=-1)Rc(d+(e+1)|0,j|0,(ob(j)|0)+1|0)|0}else d=f[c+8>>2]|0;f[m>>2]=d;yc(907,m)|0;Ta(k,2246,l,0)|0;if(!(kb(l,928)|0))d=Pa(k,d,i)|0;else d=Qa(k,d,i)|0;if(!d){m=0;u=n;return m|0}qb(932,27,1,f[6]|0)|0;m=-1;u=n;return m|0}function Fa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;if(!a){a=1;return a|0}g=f[c>>2]|0;if(!g){a=1;return a|0}f[a>>2]=0;f[a+76>>2]=0;f[a+80>>2]=31;i=f[6]|0;j=c+4|0;d=0;e=0;a:while(1){g=Ac(g)|0;if(lb(g)|0)g=mb(g)|0;if((g|0)==-1){h=e;break}b:do switch(d|0){case 0:{if((g|0)!=10&(nb(g)|0)!=0)d=0;else{if(jb(g)|0){f[a>>2]=2;d=2;k=51;break b}if((g|0)==48){f[a>>2]=6;d=6;k=51;break b}if((g+-48|0)>>>0<10){f[a>>2]=6;d=5;k=51;break b}switch(g|0){case 59:{d=1;k=51;break b}case 46:{f[a>>2]=5;d=2;k=51;break b}case 123:{f[a>>2]=1;d=8;break b}case 10:{f[a>>2]=7;f[j>>2]=(f[j>>2]|0)+1;d=10;k=51;break b}case 36:{zc(120,f[c>>2]|0)|0;zc(48,f[c>>2]|0)|0;d=0;break b}case 40:{f[a>>2]=9;d=10;k=51;break b}case 41:{f[a>>2]=10;d=10;k=51;break b}case 45:case 43:{f[a>>2]=11;d=10;k=51;break b}default:{f[a>>2]=1;d=10;k=51;break b}}}break}case 1:{switch(g|0){case 10:case 13:{d=0;e=0;k=52;break}default:d=1}break}case 2:switch(g|0){case 58:{k=26;break a}case 60:{f[a>>2]=1;d=3;k=51;break b}default:if((g|0)!=95&(ib(g)|0)==0){d=10;k=52;break b}else{d=2;k=51;break b}}case 3:{d=(g|0)==45?4:(g+-48|0)>>>0<10?3:10;k=51;break}case 4:if((g|0)==62){f[a>>2]=3;d=10;k=51;break b}else{d=(g+-48|0)>>>0<10?4:10;k=51;break b}case 5:{if((g+-48|0)>>>0<10){d=5;k=51}else{d=10;k=52}break}case 6:{if((g|0)!=120)if((g+-48|0)>>>0<10)if((g|0)>55){f[a>>2]=1;d=6;k=51}else{d=6;k=51}else{d=10;k=52}else{d=7;k=51}break}case 7:{if(!(hb(g)|0)){d=10;k=52}else{d=7;k=51}break}case 8:{if((g|0)==10){f[j>>2]=(f[j>>2]|0)+1;d=8;break b}if(!(nb(g)|0))if((g|1|0)==49){d=8;k=51}else{switch(g|0){case 125:{k=44;break a}case 40:{d=9;k=51;break b}default:{}}d=10;k=51}else d=8;break}case 9:{if((g|0)==10){f[j>>2]=(f[j>>2]|0)+1;d=9;break b}if(!(nb(g)|0)){d=(g+-48|0)>>>0<10?9:(g|0)==41?8:10;k=51}else d=9;break}default:{qb(960,31,1,i)|0;f[a>>2]=1;d=10;k=51}}while(0);if((k|0)==51){k=0;b[a+4+e>>0]=g;e=e+1|0}else if((k|0)==52){k=0;if((zc(g,f[c>>2]|0)|0)==-1){k=55;break}}if(!((d|0)!=10&(e|0)<63)){h=e;break}g=f[c>>2]|0}if((k|0)==26){f[a>>2]=4;h=e}else if((k|0)==44){f[a>>2]=8;h=e}else if((k|0)==55){qb(992,27,1,i)|0;pa(1)}b[a+4+h>>0]=0;f[a+72>>2]=f[j>>2];d=f[a>>2]|0;if((d|0)==6){e=xc(a+4|0,0,0)|0;d=f[a>>2]|0}else e=-1;f[a+68>>2]=e;if((d|0)!=3){a=d;return a|0}Ia(a)|0;a=f[a>>2]|0;return a|0}function Ga(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;g=c+8|0;h=f[g>>2]|0;if(!h){h=Fa(a,c)|0;return h|0}else{c=a;d=h;e=c+84|0;do{b[c>>0]=b[d>>0]|0;c=c+1|0;d=d+1|0}while((c|0)<(e|0));f[g>>2]=f[h+84>>2];Wa(h);h=f[a>>2]|0;return h|0}return 0}function Ha(a){a=a|0;var b=0;if(!a)return;do{b=a;a=f[a+84>>2]|0;Wa(b)}while((a|0)!=0);return}function Ia(a){a=a|0;var c=0,d=0,e=0,g=0;if((f[a>>2]|0)!=3){a=-1;return a|0}d=ob(a+4|0)|0;if((d|0)>0){c=0;do{e=a+4+c|0;g=b[e>>0]|0;if(!(g<<24>>24==95|(ib(g<<24>>24)|0)!=0))b[e>>0]=0;c=c+1|0}while((c|0)!=(d|0));c=0}else c=0;while(1)if(!(b[a+4+c>>0]|0))break;else c=c+1|0;do c=c+1|0;while(!(b[a+4+c>>0]|0));g=xc(a+4+c|0,0,0)|0;f[a+76>>2]=g;while(1)if(!(b[a+4+c>>0]|0))break;else c=c+1|0;do c=c+1|0;while(!(b[a+4+c>>0]|0));g=xc(a+4+c|0,0,0)|0;f[a+80>>2]=g;f[a>>2]=2;g=0;return g|0}function Ja(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=u;u=u+80|0;r=s;p=s+8|0;if(!a){a=-1;u=s;return a|0}g=b[c>>0]|0;if(g<<24>>24){q=a+89|0;d=0;m=0;j=0;e=0;do{a:do switch(g<<24>>24|0){case 48:{n=-1;o=1;e=e<<1;i=j;break}case 49:{n=-1;o=1;e=e<<1|1;i=j;break}case 40:{g=p;i=g+64|0;do{b[g>>0]=0;g=g+1|0}while((g|0)<(i|0));g=j+1|0;i=b[c+g>>0]|0;if(i<<24>>24==41)i=g;else{j=0;while(1){b[p+j>>0]=i;g=g+1|0;i=b[c+g>>0]|0;if(i<<24>>24==41){i=g;break}else j=j+1|0}}g=xc(p,0,0)|0;if((g|0)>-1?(g|0)<(h[q>>0]|0|0):0){b[a+90+(m<<1)>>0]=g;l=h[a+72+g>>0]|0;n=m;o=l;e=e<>2]=g;yc(1020,r)|0;n=-1;o=0;break}default:{n=-1;o=0;i=j}}while(0);d=o+d|0;g=b[q>>0]|0;if(g<<24>>24){l=0;do{j=a+90+(l<<1)+1|0;k=b[j>>0]|0;if(k<<24>>24!=-1){b[j>>0]=(k&255)+o;g=b[q>>0]|0}l=l+1|0}while((l|0)<(g&255|0))}if((n|0)!=-1)b[a+90+(n<<1)+1>>0]=0;j=i+1|0;g=b[c+j>>0]|0}while(g<<24>>24!=0);if(d&7){Dc(1064)|0;a=-1;u=s;return a|0}}else{e=0;d=0}b[a+88>>0]=(d|0)/8|0;f[a+68>>2]=e;a=0;u=s;return a|0}function Ka(a){a=a|0;var b=0;if(!a)return 0;do{b=a;a=f[a>>2]|0;Wa(b)}while((a|0)!=0);return 0}function La(a,c){a=a|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=u;u=u+384|0;p=s+24|0;r=s+16|0;o=s+8|0;i=s;n=s+116|0;q=s+32|0;h=s+128|0;g=8;while(1){e=f[g>>2]|0;if(!e){e=0;j=24;break}f[i>>2]=c;tc(h,e,i)|0;e=Bb(h,1111)|0;if(!e)g=g+4|0;else break}if((j|0)==24){u=s;return e|0}f[n>>2]=e;f[n+4>>2]=1;l=n+8|0;f[l>>2]=0;m=q+4|0;k=q+68|0;e=0;a:while(1){b:while(1){switch(Ga(q,n)|0){case 0:{j=7;break a}case 7:continue b;case 5:{Ua(n,q,a,0,0)|0;continue b}case 2:break;default:{j=22;break a}}g=Va(124)|0;j=(g|0)==0;if(j)h=g+89|0;else{h=g;i=h+124|0;do{b[h>>0]=0;h=h+1|0}while((h|0)<(i|0));b[g+88>>0]=-1;c=g+89|0;b[c>>0]=0;h=g+90|0;i=h+32|0;do{d[h>>1]=65535;h=h+2|0}while((h|0)<(i|0));h=c}i=g+4|0;vc(i,m,64)|0;c=Fa(q,n)|0;c:do if(j)while(1){switch(c|0){case 8:break c;case 6:break;default:{g=0;j=20;break a}}c=Ga(q,n)|0}else while(1){switch(c|0){case 8:break c;case 6:break;default:{j=20;break a}}j=f[k>>2]&255;c=b[h>>0]|0;b[h>>0]=c+1<<24>>24;b[(c&255)+(g+72)>>0]=j;c=Ga(q,n)|0}while(0);if(!(Ja(g,m)|0))break;f[o>>2]=i;yc(1113,o)|0;Wa(g)}f[g>>2]=e;e=g}if((j|0)==7){Ha(f[l>>2]|0);r=e;u=s;return r|0}else if((j|0)==20){q=f[q+72>>2]|0;f[r>>2]=m;f[r+4>>2]=q;yc(1180,r)|0;Wa(g);Ha(f[l>>2]|0);if(!e){r=0;u=s;return r|0}do{r=e;e=f[e>>2]|0;Wa(r)}while((e|0)!=0);e=0;u=s;return e|0}else if((j|0)==22){r=f[q+72>>2]|0;f[p>>2]=m;f[p+4>>2]=r;yc(1496,p)|0;Ha(f[l>>2]|0);if(!e){r=0;u=s;return r|0}do{r=e;e=f[e>>2]|0;Wa(r)}while((e|0)!=0);e=0;u=s;return e|0}return 0}function Ma(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+128|0;e=m+24|0;j=m+16|0;i=m+8|0;g=m;k=m+36|0;l=m+32|0;h=m+28|0;switch(Ga(k,a)|0){case 6:{e=f[k+68>>2]|0;f[l>>2]=e;a=f[k+76>>2]|0;g=(f[k+80>>2]|0)-a|0;if(g>>>0<31){e=(1<>>a;f[l>>2]=e}f[d>>2]=e;d=0;u=m;return d|0}case 2:{e=k+4|0;if(Ta(c,e,0,l)|0){f[g>>2]=e;yc(1267,g)|0;d=-1;u=m;return d|0}g=f[k+76>>2]|0;e=(f[k+80>>2]|0)-g|0;if(e>>>0<31){e=(f[l>>2]|0)>>>g&(1<>2]=e}else e=f[l>>2]|0;f[d>>2]=e;d=0;u=m;return d|0}case 9:{if(Ma(a,c,l)|0){Dc(1298)|0;d=-1;u=m;return d|0}g=k+4|0;a:while(1){switch(Ga(k,a)|0){case 10:{e=15;break a}case 11:break;default:{e=23;break a}}if(Ma(a,c,h)|0){e=17;break}switch(b[g>>0]|0){case 43:{e=(f[l>>2]|0)+(f[h>>2]|0)|0;break}case 45:{e=(f[l>>2]|0)-(f[h>>2]|0)|0;break}default:{e=22;break a}}f[l>>2]=e}if((e|0)==15){f[d>>2]=f[l>>2];d=0;u=m;return d|0}else if((e|0)==17){Dc(1298)|0;d=-1;u=m;return d|0}else if((e|0)==22){f[i>>2]=g;yc(1341,i)|0;d=-1;u=m;return d|0}else if((e|0)==23){f[j>>2]=g;yc(1384,j)|0;d=-1;u=m;return d|0}break}default:{f[e>>2]=k+4;yc(1443,e)|0;d=-1;u=m;return d|0}}return 0}function Na(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+128|0;l=m+8|0;k=m;c=m+108|0;i=m+104|0;j=m+20|0;d=m+16|0;f[i>>2]=0;f[d>>2]=0;f[c>>2]=b;f[c+4>>2]=1;e=c+8|0;f[e>>2]=0;g=j+4|0;a:while(1)switch(Ga(j,c)|0){case 7:continue a;case 0:{b=4;break a}case 4:{Sa(a,g,0,f[i>>2]|0)|0;continue a}case 5:{Ua(c,j,a,d,i)|0;continue a}case 2:{b=f[d>>2]|0;if(!b){b=11;break a}while(1){if(!(kb(g,b+4|0)|0))break;b=f[b>>2]|0;if(!b){b=11;break a}}f[i>>2]=(f[i>>2]|0)+(h[b+88>>0]|0);while(1)switch(Ga(j,c)|0){case 0:case 7:continue a;default:{}}}default:{b=12;break a}}if((b|0)==4){Ha(f[e>>2]|0);Sa(a,1730,0,f[i>>2]|0)|0;l=0;u=m;return l|0}else if((b|0)==11){l=f[6]|0;f[k>>2]=g;Tb(l,1465,k)|0;Ha(f[e>>2]|0);l=-1;u=m;return l|0}else if((b|0)==12){k=f[6]|0;j=f[j+72>>2]|0;f[l>>2]=g;f[l+4>>2]=j;Tb(k,1496,l)|0;Ha(f[e>>2]|0);l=-1;u=m;return l|0}return 0}function Oa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=u;u=u+160|0;A=B+40|0;z=B+32|0;w=B+16|0;y=B+8|0;x=B;q=B+144|0;r=B+60|0;s=B+56|0;t=B+52|0;v=B+48|0;f[s>>2]=0;f[v>>2]=0;f[q>>2]=c;f[q+4>>2]=1;f[q+8>>2]=0;o=r+4|0;p=r+72|0;a:while(1){switch(Ga(r,q)|0){case 7:case 4:continue a;case 0:{c=0;e=26;break a}case 5:{Ua(q,r,0,s,v)|0;continue a}case 2:break;default:{e=25;break a}}c=f[s>>2]|0;if(!c){e=8;break}while(1){if(!(kb(c+4|0,o)|0))break;c=f[c>>2]|0;if(!c){e=8;break a}}e=f[c+68>>2]|0;m=c+89|0;if(!(b[m>>0]|0))g=e;else{n=c+90|0;g=0;while(1){if(Ma(q,a,t)|0){e=12;break a}k=f[t>>2]|0;l=c+72+g|0;i=h[l>>0]|0;if(k>>>0>=1<>>0){j=f[p>>2]|0;f[w>>2]=k;f[w+4>>2]=i;f[w+8>>2]=j;yc(1595,w)|0}i=b[n>>0]|0;if(i<<24>>24>-1){j=0;do{if((g|0)==(i<<24>>24|0))e=((2<>0])+-1&k)<>0]|e;j=j+1|0;i=b[c+90+(j<<1)>>0]|0}while(i<<24>>24>-1)}g=g+1|0;if(g>>>0>=(h[m>>0]|0)>>>0){g=e;break}}}if((Ga(r,q)|0)!=7){e=21;break}c=b[c+88>>0]|0;if(!(c<<24>>24))continue;c=c&255;e=f[v>>2]|0;do{n=c;c=c+-1|0;b[d+e>>0]=g>>>(c<<3);e=e+1|0}while((n|0)>1);f[v>>2]=e}if((e|0)==8){f[x>>2]=o;yc(1526,x)|0;A=-1;u=B;return A|0}else if((e|0)==12){A=f[6]|0;z=f[p>>2]|0;f[y>>2]=g;f[y+4>>2]=z;Tb(A,1561,y)|0;A=-1;u=B;return A|0}else if((e|0)==21){A=f[6]|0;y=f[p>>2]|0;f[z>>2]=o;f[z+4>>2]=y;Tb(A,1657,z)|0;A=-1;u=B;return A|0}else if((e|0)==25){z=f[6]|0;y=f[p>>2]|0;f[A>>2]=o;f[A+4>>2]=y;Tb(z,1697,A)|0;A=-1;u=B;return A|0}else if((e|0)==26){u=B;return c|0}return 0}function Pa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=u;u=u+48|0;i=p+24|0;o=p+16|0;n=p+8|0;g=p;m=p+36|0;d=p+32|0;e=p+28|0;f[e>>2]=8;if(Ta(a,1730,0,m)|0){qb(1740,26,1,f[6]|0)|0;o=-1;u=p;return o|0}if(Ta(a,2269,0,d)|0){qb(1767,32,1,f[6]|0)|0;o=-1;u=p;return o|0}l=Ta(a,2289,0,e)|0;a=f[e>>2]|0;if(!((a|l|0)!=0|(a&7|0)==0)){qb(1800,55,1,f[6]|0)|0;o=-1;u=p;return o|0}k=(a|0)/8|0;l=X(f[d>>2]|0,k)|0;if((f[m>>2]|0)>(l|0)){qb(1856,56,1,f[6]|0)|0;o=-1;u=p;return o|0}j=Bb(b,1913)|0;if(!j){Cc(1915);o=-1;u=p;return o|0}d=f[d>>2]|0;f[g>>2]=f[e>>2];f[g+4>>2]=d;Tb(j,1950,g)|0;a:do if((l|0)>0){if((a|0)>7)a=0;else{a=0;while(1){f[i>>2]=(a|0)/(k|0)|0;Tb(j,2032,i)|0;qb(2050,2,1,j)|0;a=a+k|0;if((a|0)>=(l|0))break a}}do{f[n>>2]=(a|0)/(k|0)|0;Tb(j,2032,n)|0;b=0;do{d=b+a|0;if((d|0)<(f[m>>2]|0)){f[o>>2]=h[c+d>>0];Tb(j,2045,o)|0}else qb(2042,2,1,j)|0;b=b+1|0}while((b|0)<(k|0));qb(2050,2,1,j)|0;a=a+k|0}while((a|0)<(l|0))}while(0);qb(2053,5,1,j)|0;Kb(j)|0;o=0;u=p;return o|0}function Qa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=u;u=u+80|0;n=q+64|0;m=q+56|0;l=q+48|0;k=q+40|0;j=q+32|0;p=q+24|0;o=q+16|0;i=q+8|0;g=q;e=q+68|0;if(Ta(a,1730,0,e)|0){qb(1740,26,1,f[6]|0)|0;p=-1;u=q;return p|0}d=Bb(b,1913)|0;if(!d){Cc(1915);p=-1;u=q;return p|0}if((f[e>>2]|0)>0){b=0;do{f[g>>2]=b;Tb(d,2059,g)|0;if((b|0)<(f[e>>2]|0)){f[i>>2]=h[c+b>>0];Tb(d,2068,i)|0}else qb(2074,3,1,d)|0;a=b|1;if((a|0)<(f[e>>2]|0)){f[o>>2]=h[c+a>>0];Tb(d,2068,o)|0}else qb(2074,3,1,d)|0;a=b|2;if((a|0)<(f[e>>2]|0)){f[p>>2]=h[c+a>>0];Tb(d,2068,p)|0}else qb(2074,3,1,d)|0;a=b|3;if((a|0)<(f[e>>2]|0)){f[j>>2]=h[c+a>>0];Tb(d,2068,j)|0}else qb(2074,3,1,d)|0;a=b|4;if((a|0)<(f[e>>2]|0)){f[k>>2]=h[c+a>>0];Tb(d,2068,k)|0}else qb(2074,3,1,d)|0;a=b|5;if((a|0)<(f[e>>2]|0)){f[l>>2]=h[c+a>>0];Tb(d,2068,l)|0}else qb(2074,3,1,d)|0;a=b|6;if((a|0)<(f[e>>2]|0)){f[m>>2]=h[c+a>>0];Tb(d,2068,m)|0}else qb(2074,3,1,d)|0;a=b|7;if((a|0)<(f[e>>2]|0)){f[n>>2]=h[c+a>>0];Tb(d,2068,n)|0}else qb(2074,3,1,d)|0;Bc(10,d)|0;b=b+8|0}while((b|0)<(f[e>>2]|0))}Kb(d)|0;p=0;u=q;return p|0}function Ra(a){a=a|0;var b=0,c=0;if(!a){a=-1;return a|0}b=f[a>>2]|0;if(!b){a=0;return a|0}do{c=b;b=f[b+132>>2]|0;Wa(c);f[a>>2]=b}while((b|0)!=0);b=0;return b|0}function Sa(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0;if((a|0)==0|(c|0)==0){d=-1;return d|0}g=f[a>>2]|0;a:do if(g|0){while(1){if(!(kb(g,c)|0))break;g=f[g+132>>2]|0;if(!g)break a}f[g+128>>2]=e;g=g+64|0;if(!d){b[g>>0]=0;d=0;return d|0}else{qc(g,d)|0;d=0;return d|0}}while(0);h=Va(136)|0;if(!h){qb(2078,33,1,f[6]|0)|0;pa(-1)}qc(h,c)|0;f[h+128>>2]=e;g=h+64|0;if(!d)b[g>>0]=0;else qc(g,d)|0;f[h+132>>2]=f[a>>2];f[a>>2]=h;d=0;return d|0}function Ta(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;if((a|0)==0|(b|0)==0){e=-1;return e|0}a=f[a>>2]|0;if(!a){e=-1;return e|0}while(1){if(!(kb(a,b)|0))break;a=f[a+132>>2]|0;if(!a){a=-1;e=9;break}}if((e|0)==9)return a|0;if(d|0)f[d>>2]=f[a+128>>2];if(!c){e=0;return e|0}qc(c,a+64|0)|0;e=0;return e|0}function Ua(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=u;u=u+224|0;n=s+64|0;m=s+56|0;l=s+48|0;k=s+40|0;j=s+32|0;p=s+24|0;o=s+16|0;r=s+8|0;i=s;g=s+160|0;q=s+72|0;h=s+68|0;b=b+4|0;do if(!(kb(b,2112)|0)){if((Ga(q,a)|0)!=2){r=f[6]|0;d=f[q+72>>2]|0;f[i>>2]=q+4;f[i+4>>2]=d;Tb(r,2118,i)|0;r=-1;u=s;return r|0}if(d|0){b=f[d>>2]|0;if(b|0)Ka(b)|0;b=q+4|0;c=La(c,b)|0;f[d>>2]=c;if(!c){f[r>>2]=b;yc(2156,r)|0}}}else{if(!(kb(b,2197)|0)){if((Ga(q,a)|0)!=2){r=f[6]|0;d=f[q+72>>2]|0;f[o>>2]=q+4;f[o+4>>2]=d;Tb(r,2118,o)|0;r=-1;u=s;return r|0}qc(g,q+4|0)|0;if(!c)break;if(!(Ma(a,c,h)|0)){Sa(c,g,0,f[h>>2]|0)|0;break}r=f[6]|0;f[p>>2]=f[q+72>>2];Tb(r,2205,p)|0;r=-1;u=s;return r|0}if(!(kb(b,2238)|0))if((Ga(q,a)|0)==2){if(!c)break;Sa(c,2246,q+4|0,-1)|0;break}else{r=f[6]|0;d=f[q+72>>2]|0;f[j>>2]=q+4;f[j+4>>2]=d;Tb(r,2118,j)|0;r=-1;u=s;return r|0}if(!(kb(b,2254)|0))if((Ga(q,a)|0)==6){if(!e)break;f[e>>2]=f[q+68>>2];break}else{r=f[6]|0;d=f[q+72>>2]|0;f[k>>2]=q+4;f[k+4>>2]=d;Tb(r,2118,k)|0;r=-1;u=s;return r|0}if(!(kb(b,2259)|0))if((Ga(q,a)|0)==6){if(!c)break;Sa(c,2269,0,f[q+68>>2]|0)|0;break}else{r=f[6]|0;d=f[q+72>>2]|0;f[l>>2]=q+4;f[l+4>>2]=d;Tb(r,2118,l)|0;r=-1;u=s;return r|0}if(kb(b,2279)|0){f[n>>2]=b;yc(2299,n)|0;break}if((Ga(q,a)|0)==6){if(!c)break;Sa(c,2289,0,f[q+68>>2]|0)|0;break}else{r=f[6]|0;d=f[q+72>>2]|0;f[m>>2]=q+4;f[m+4>>2]=d;Tb(r,2118,m)|0;r=-1;u=s;return r|0}}while(0);do{}while((Ga(q,a)|0)!=7);b=0;u=s;return b|0}function Va(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;x=u;u=u+16|0;n=x;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=f[1257]|0;c=m>>>a;if(c&3|0){b=(c&1^1)+a|0;a=5068+(b<<1<<2)|0;c=a+8|0;d=f[c>>2]|0;e=d+8|0;g=f[e>>2]|0;if((a|0)==(g|0))f[1257]=m&~(1<>2]=a;f[c>>2]=g}w=b<<3;f[d+4>>2]=w|3;w=d+w+4|0;f[w>>2]=f[w>>2]|1;w=e;u=x;return w|0}l=f[1259]|0;if(k>>>0>l>>>0){if(c|0){b=2<>>12&16;b=b>>>h;c=b>>>5&8;b=b>>>c;e=b>>>2&4;b=b>>>e;a=b>>>1&2;b=b>>>a;d=b>>>1&1;d=(c|h|e|a|d)+(b>>>d)|0;b=5068+(d<<1<<2)|0;a=b+8|0;e=f[a>>2]|0;h=e+8|0;c=f[h>>2]|0;if((b|0)==(c|0)){a=m&~(1<>2]=b;f[a>>2]=c;a=m}g=(d<<3)-k|0;f[e+4>>2]=k|3;d=e+k|0;f[d+4>>2]=g|1;f[d+g>>2]=g;if(l|0){e=f[1262]|0;b=l>>>3;c=5068+(b<<1<<2)|0;b=1<>2]|0}f[a>>2]=e;f[b+12>>2]=e;f[e+8>>2]=b;f[e+12>>2]=c}f[1259]=g;f[1262]=d;w=h;u=x;return w|0}i=f[1258]|0;if(i){c=(i&0-i)+-1|0;h=c>>>12&16;c=c>>>h;g=c>>>5&8;c=c>>>g;j=c>>>2&4;c=c>>>j;d=c>>>1&2;c=c>>>d;a=c>>>1&1;a=f[5332+((g|h|j|d|a)+(c>>>a)<<2)>>2]|0;c=(f[a+4>>2]&-8)-k|0;d=f[a+16+(((f[a+16>>2]|0)==0&1)<<2)>>2]|0;if(!d){j=a;g=c}else{do{h=(f[d+4>>2]&-8)-k|0;j=h>>>0>>0;c=j?h:c;a=j?d:a;d=f[d+16+(((f[d+16>>2]|0)==0&1)<<2)>>2]|0}while((d|0)!=0);j=a;g=c}h=j+k|0;if(j>>>0>>0){e=f[j+24>>2]|0;b=f[j+12>>2]|0;do if((b|0)==(j|0)){a=j+20|0;b=f[a>>2]|0;if(!b){a=j+16|0;b=f[a>>2]|0;if(!b){c=0;break}}while(1){c=b+20|0;d=f[c>>2]|0;if(d|0){b=d;a=c;continue}c=b+16|0;d=f[c>>2]|0;if(!d)break;else{b=d;a=c}}f[a>>2]=0;c=b}else{c=f[j+8>>2]|0;f[c+12>>2]=b;f[b+8>>2]=c;c=b}while(0);do if(e|0){b=f[j+28>>2]|0;a=5332+(b<<2)|0;if((j|0)==(f[a>>2]|0)){f[a>>2]=c;if(!c){f[1258]=i&~(1<>2]|0)!=(j|0)&1)<<2)>>2]=c;if(!c)break}f[c+24>>2]=e;b=f[j+16>>2]|0;if(b|0){f[c+16>>2]=b;f[b+24>>2]=c}b=f[j+20>>2]|0;if(b|0){f[c+20>>2]=b;f[b+24>>2]=c}}while(0);if(g>>>0<16){w=g+k|0;f[j+4>>2]=w|3;w=j+w+4|0;f[w>>2]=f[w>>2]|1}else{f[j+4>>2]=k|3;f[h+4>>2]=g|1;f[h+g>>2]=g;if(l|0){d=f[1262]|0;b=l>>>3;c=5068+(b<<1<<2)|0;b=1<>2]|0}f[a>>2]=d;f[b+12>>2]=d;f[d+8>>2]=b;f[d+12>>2]=c}f[1259]=g;f[1262]=h}w=j+8|0;u=x;return w|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;j=f[1258]|0;if(j){d=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)i=31;else{m=(a+1048320|0)>>>16&8;v=a<>>16&4;v=v<>>16&2;i=14-(l|m|i)+(v<>>15)|0;i=k>>>(i+7|0)&1|i<<1}else i=0;c=f[5332+(i<<2)>>2]|0;a:do if(!c){c=0;a=0;v=57}else{a=0;h=k<<((i|0)==31?0:25-(i>>>1)|0);g=0;while(1){e=(f[c+4>>2]&-8)-k|0;if(e>>>0>>0)if(!e){a=c;d=0;e=c;v=61;break a}else{a=c;d=e}e=f[c+20>>2]|0;c=f[c+16+(h>>>31<<2)>>2]|0;g=(e|0)==0|(e|0)==(c|0)?g:e;e=(c|0)==0;if(e){c=g;v=57;break}else h=h<<((e^1)&1)}}while(0);if((v|0)==57){if((c|0)==0&(a|0)==0){a=2<>>12&16;m=m>>>h;g=m>>>5&8;m=m>>>g;i=m>>>2&4;m=m>>>i;l=m>>>1&2;m=m>>>l;c=m>>>1&1;a=0;c=f[5332+((g|h|i|l|c)+(m>>>c)<<2)>>2]|0}if(!c){i=a;h=d}else{e=c;v=61}}if((v|0)==61)while(1){v=0;c=(f[e+4>>2]&-8)-k|0;m=c>>>0>>0;c=m?c:d;a=m?e:a;e=f[e+16+(((f[e+16>>2]|0)==0&1)<<2)>>2]|0;if(!e){i=a;h=c;break}else{d=c;v=61}}if((i|0)!=0?h>>>0<((f[1259]|0)-k|0)>>>0:0){g=i+k|0;if(i>>>0>=g>>>0){w=0;u=x;return w|0}e=f[i+24>>2]|0;b=f[i+12>>2]|0;do if((b|0)==(i|0)){a=i+20|0;b=f[a>>2]|0;if(!b){a=i+16|0;b=f[a>>2]|0;if(!b){b=0;break}}while(1){c=b+20|0;d=f[c>>2]|0;if(d|0){b=d;a=c;continue}c=b+16|0;d=f[c>>2]|0;if(!d)break;else{b=d;a=c}}f[a>>2]=0}else{w=f[i+8>>2]|0;f[w+12>>2]=b;f[b+8>>2]=w}while(0);do if(e){a=f[i+28>>2]|0;c=5332+(a<<2)|0;if((i|0)==(f[c>>2]|0)){f[c>>2]=b;if(!b){d=j&~(1<>2]|0)!=(i|0)&1)<<2)>>2]=b;if(!b){d=j;break}}f[b+24>>2]=e;a=f[i+16>>2]|0;if(a|0){f[b+16>>2]=a;f[a+24>>2]=b}a=f[i+20>>2]|0;if(a){f[b+20>>2]=a;f[a+24>>2]=b;d=j}else d=j}else d=j;while(0);do if(h>>>0>=16){f[i+4>>2]=k|3;f[g+4>>2]=h|1;f[g+h>>2]=h;b=h>>>3;if(h>>>0<256){c=5068+(b<<1<<2)|0;a=f[1257]|0;b=1<>2]|0}f[a>>2]=g;f[b+12>>2]=g;f[g+8>>2]=b;f[g+12>>2]=c;break}b=h>>>8;if(b)if(h>>>0>16777215)b=31;else{v=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;b=14-(t|v|b)+(w<>>15)|0;b=h>>>(b+7|0)&1|b<<1}else b=0;c=5332+(b<<2)|0;f[g+28>>2]=b;a=g+16|0;f[a+4>>2]=0;f[a>>2]=0;a=1<>2]=g;f[g+24>>2]=c;f[g+12>>2]=g;f[g+8>>2]=g;break}a=h<<((b|0)==31?0:25-(b>>>1)|0);c=f[c>>2]|0;while(1){if((f[c+4>>2]&-8|0)==(h|0)){v=97;break}d=c+16+(a>>>31<<2)|0;b=f[d>>2]|0;if(!b){v=96;break}else{a=a<<1;c=b}}if((v|0)==96){f[d>>2]=g;f[g+24>>2]=c;f[g+12>>2]=g;f[g+8>>2]=g;break}else if((v|0)==97){v=c+8|0;w=f[v>>2]|0;f[w+12>>2]=g;f[v>>2]=g;f[g+8>>2]=w;f[g+12>>2]=c;f[g+24>>2]=0;break}}else{w=h+k|0;f[i+4>>2]=w|3;w=i+w+4|0;f[w>>2]=f[w>>2]|1}while(0);w=i+8|0;u=x;return w|0}else m=k}else m=k}else m=-1;while(0);c=f[1259]|0;if(c>>>0>=m>>>0){b=c-m|0;a=f[1262]|0;if(b>>>0>15){w=a+m|0;f[1262]=w;f[1259]=b;f[w+4>>2]=b|1;f[w+b>>2]=b;f[a+4>>2]=m|3}else{f[1259]=0;f[1262]=0;f[a+4>>2]=c|3;w=a+c+4|0;f[w>>2]=f[w>>2]|1}w=a+8|0;u=x;return w|0}h=f[1260]|0;if(h>>>0>m>>>0){t=h-m|0;f[1260]=t;w=f[1263]|0;v=w+m|0;f[1263]=v;f[v+4>>2]=t|1;f[w+4>>2]=m|3;w=w+8|0;u=x;return w|0}if(!(f[1375]|0)){f[1377]=4096;f[1376]=4096;f[1378]=-1;f[1379]=-1;f[1380]=0;f[1368]=0;a=n&-16^1431655768;f[n>>2]=a;f[1375]=a;a=4096}else a=f[1377]|0;i=m+48|0;j=m+47|0;g=a+j|0;e=0-a|0;k=g&e;if(k>>>0<=m>>>0){w=0;u=x;return w|0}a=f[1367]|0;if(a|0?(l=f[1365]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){w=0;u=x;return w|0}b:do if(!(f[1368]&4)){c=f[1263]|0;c:do if(c){d=5476;while(1){a=f[d>>2]|0;if(a>>>0<=c>>>0?(q=d+4|0,(a+(f[q>>2]|0)|0)>>>0>c>>>0):0)break;a=f[d+8>>2]|0;if(!a){v=118;break c}else d=a}b=g-h&e;if(b>>>0<2147483647){a=Pc(b|0)|0;if((a|0)==((f[d>>2]|0)+(f[q>>2]|0)|0)){if((a|0)!=(-1|0)){h=b;g=a;v=135;break b}}else{d=a;v=126}}else b=0}else v=118;while(0);do if((v|0)==118){c=Pc(0)|0;if((c|0)!=(-1|0)?(b=c,o=f[1376]|0,p=o+-1|0,b=((p&b|0)==0?0:(p+b&0-o)-b|0)+k|0,o=f[1365]|0,p=b+o|0,b>>>0>m>>>0&b>>>0<2147483647):0){q=f[1367]|0;if(q|0?p>>>0<=o>>>0|p>>>0>q>>>0:0){b=0;break}a=Pc(b|0)|0;if((a|0)==(c|0)){h=b;g=c;v=135;break b}else{d=a;v=126}}else b=0}while(0);do if((v|0)==126){c=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(d|0)!=(-1|0))))if((d|0)==(-1|0)){b=0;break}else{h=b;g=d;v=135;break b}a=f[1377]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=b;g=d;v=135;break b}if((Pc(a|0)|0)==(-1|0)){Pc(c|0)|0;b=0;break}else{h=a+b|0;g=d;v=135;break b}}while(0);f[1368]=f[1368]|4;v=133}else{b=0;v=133}while(0);if(((v|0)==133?k>>>0<2147483647:0)?(t=Pc(k|0)|0,q=Pc(0)|0,r=q-t|0,s=r>>>0>(m+40|0)>>>0,!((t|0)==(-1|0)|s^1|t>>>0>>0&((t|0)!=(-1|0)&(q|0)!=(-1|0))^1)):0){h=s?r:b;g=t;v=135}if((v|0)==135){b=(f[1365]|0)+h|0;f[1365]=b;if(b>>>0>(f[1366]|0)>>>0)f[1366]=b;j=f[1263]|0;do if(j){b=5476;while(1){a=f[b>>2]|0;c=b+4|0;d=f[c>>2]|0;if((g|0)==(a+d|0)){v=145;break}e=f[b+8>>2]|0;if(!e)break;else b=e}if(((v|0)==145?(f[b+12>>2]&8|0)==0:0)?j>>>0>>0&j>>>0>=a>>>0:0){f[c>>2]=d+h;w=j+8|0;w=(w&7|0)==0?0:0-w&7;v=j+w|0;w=(f[1260]|0)+(h-w)|0;f[1263]=v;f[1260]=w;f[v+4>>2]=w|1;f[v+w+4>>2]=40;f[1264]=f[1379];break}if(g>>>0<(f[1261]|0)>>>0)f[1261]=g;c=g+h|0;b=5476;while(1){if((f[b>>2]|0)==(c|0)){v=153;break}a=f[b+8>>2]|0;if(!a)break;else b=a}if((v|0)==153?(f[b+12>>2]&8|0)==0:0){f[b>>2]=g;l=b+4|0;f[l>>2]=(f[l>>2]|0)+h;l=g+8|0;l=g+((l&7|0)==0?0:0-l&7)|0;b=c+8|0;b=c+((b&7|0)==0?0:0-b&7)|0;k=l+m|0;i=b-l-m|0;f[l+4>>2]=m|3;do if((b|0)!=(j|0)){if((b|0)==(f[1262]|0)){w=(f[1259]|0)+i|0;f[1259]=w;f[1262]=k;f[k+4>>2]=w|1;f[k+w>>2]=w;break}a=f[b+4>>2]|0;if((a&3|0)==1){h=a&-8;d=a>>>3;d:do if(a>>>0<256){a=f[b+8>>2]|0;c=f[b+12>>2]|0;if((c|0)==(a|0)){f[1257]=f[1257]&~(1<>2]=c;f[c+8>>2]=a;break}}else{g=f[b+24>>2]|0;a=f[b+12>>2]|0;do if((a|0)==(b|0)){d=b+16|0;c=d+4|0;a=f[c>>2]|0;if(!a){a=f[d>>2]|0;if(!a){a=0;break}else c=d}while(1){d=a+20|0;e=f[d>>2]|0;if(e|0){a=e;c=d;continue}d=a+16|0;e=f[d>>2]|0;if(!e)break;else{a=e;c=d}}f[c>>2]=0}else{w=f[b+8>>2]|0;f[w+12>>2]=a;f[a+8>>2]=w}while(0);if(!g)break;c=f[b+28>>2]|0;d=5332+(c<<2)|0;do if((b|0)!=(f[d>>2]|0)){f[g+16+(((f[g+16>>2]|0)!=(b|0)&1)<<2)>>2]=a;if(!a)break d}else{f[d>>2]=a;if(a|0)break;f[1258]=f[1258]&~(1<>2]=g;c=b+16|0;d=f[c>>2]|0;if(d|0){f[a+16>>2]=d;f[d+24>>2]=a}c=f[c+4>>2]|0;if(!c)break;f[a+20>>2]=c;f[c+24>>2]=a}while(0);b=b+h|0;e=h+i|0}else e=i;b=b+4|0;f[b>>2]=f[b>>2]&-2;f[k+4>>2]=e|1;f[k+e>>2]=e;b=e>>>3;if(e>>>0<256){c=5068+(b<<1<<2)|0;a=f[1257]|0;b=1<>2]|0}f[a>>2]=k;f[b+12>>2]=k;f[k+8>>2]=b;f[k+12>>2]=c;break}b=e>>>8;do if(!b)b=0;else{if(e>>>0>16777215){b=31;break}v=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;b=14-(t|v|b)+(w<>>15)|0;b=e>>>(b+7|0)&1|b<<1}while(0);d=5332+(b<<2)|0;f[k+28>>2]=b;a=k+16|0;f[a+4>>2]=0;f[a>>2]=0;a=f[1258]|0;c=1<>2]=k;f[k+24>>2]=d;f[k+12>>2]=k;f[k+8>>2]=k;break}a=e<<((b|0)==31?0:25-(b>>>1)|0);c=f[d>>2]|0;while(1){if((f[c+4>>2]&-8|0)==(e|0)){v=194;break}d=c+16+(a>>>31<<2)|0;b=f[d>>2]|0;if(!b){v=193;break}else{a=a<<1;c=b}}if((v|0)==193){f[d>>2]=k;f[k+24>>2]=c;f[k+12>>2]=k;f[k+8>>2]=k;break}else if((v|0)==194){v=c+8|0;w=f[v>>2]|0;f[w+12>>2]=k;f[v>>2]=k;f[k+8>>2]=w;f[k+12>>2]=c;f[k+24>>2]=0;break}}else{w=(f[1260]|0)+i|0;f[1260]=w;f[1263]=k;f[k+4>>2]=w|1}while(0);w=l+8|0;u=x;return w|0}b=5476;while(1){a=f[b>>2]|0;if(a>>>0<=j>>>0?(w=a+(f[b+4>>2]|0)|0,w>>>0>j>>>0):0)break;b=f[b+8>>2]|0}e=w+-47|0;a=e+8|0;a=e+((a&7|0)==0?0:0-a&7)|0;e=j+16|0;a=a>>>0>>0?j:a;b=a+8|0;c=g+8|0;c=(c&7|0)==0?0:0-c&7;v=g+c|0;c=h+-40-c|0;f[1263]=v;f[1260]=c;f[v+4>>2]=c|1;f[v+c+4>>2]=40;f[1264]=f[1379];c=a+4|0;f[c>>2]=27;f[b>>2]=f[1369];f[b+4>>2]=f[1370];f[b+8>>2]=f[1371];f[b+12>>2]=f[1372];f[1369]=g;f[1370]=h;f[1372]=0;f[1371]=b;b=a+24|0;do{v=b;b=b+4|0;f[b>>2]=7}while((v+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;f[c>>2]=f[c>>2]&-2;f[j+4>>2]=g|1;f[a>>2]=g;b=g>>>3;if(g>>>0<256){c=5068+(b<<1<<2)|0;a=f[1257]|0;b=1<>2]|0}f[a>>2]=j;f[b+12>>2]=j;f[j+8>>2]=b;f[j+12>>2]=c;break}b=g>>>8;if(b)if(g>>>0>16777215)c=31;else{v=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;c=14-(t|v|c)+(w<>>15)|0;c=g>>>(c+7|0)&1|c<<1}else c=0;d=5332+(c<<2)|0;f[j+28>>2]=c;f[j+20>>2]=0;f[e>>2]=0;b=f[1258]|0;a=1<>2]=j;f[j+24>>2]=d;f[j+12>>2]=j;f[j+8>>2]=j;break}a=g<<((c|0)==31?0:25-(c>>>1)|0);c=f[d>>2]|0;while(1){if((f[c+4>>2]&-8|0)==(g|0)){v=216;break}d=c+16+(a>>>31<<2)|0;b=f[d>>2]|0;if(!b){v=215;break}else{a=a<<1;c=b}}if((v|0)==215){f[d>>2]=j;f[j+24>>2]=c;f[j+12>>2]=j;f[j+8>>2]=j;break}else if((v|0)==216){v=c+8|0;w=f[v>>2]|0;f[w+12>>2]=j;f[v>>2]=j;f[j+8>>2]=w;f[j+12>>2]=c;f[j+24>>2]=0;break}}}else{w=f[1261]|0;if((w|0)==0|g>>>0>>0)f[1261]=g;f[1369]=g;f[1370]=h;f[1372]=0;f[1266]=f[1375];f[1265]=-1;b=0;do{w=5068+(b<<1<<2)|0;f[w+12>>2]=w;f[w+8>>2]=w;b=b+1|0}while((b|0)!=32);w=g+8|0;w=(w&7|0)==0?0:0-w&7;v=g+w|0;w=h+-40-w|0;f[1263]=v;f[1260]=w;f[v+4>>2]=w|1;f[v+w+4>>2]=40;f[1264]=f[1379]}while(0);b=f[1260]|0;if(b>>>0>m>>>0){t=b-m|0;f[1260]=t;w=f[1263]|0;v=w+m|0;f[1263]=v;f[v+4>>2]=t|1;f[w+4>>2]=m|3;w=w+8|0;u=x;return w|0}}w=bb()|0;f[w>>2]=12;w=0;u=x;return w|0}function Wa(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;if(!a)return;c=a+-8|0;e=f[1261]|0;a=f[a+-4>>2]|0;b=a&-8;j=c+b|0;do if(!(a&1)){d=f[c>>2]|0;if(!(a&3))return;h=c+(0-d)|0;g=d+b|0;if(h>>>0>>0)return;if((h|0)==(f[1262]|0)){a=j+4|0;b=f[a>>2]|0;if((b&3|0)!=3){i=h;b=g;break}f[1259]=g;f[a>>2]=b&-2;f[h+4>>2]=g|1;f[h+g>>2]=g;return}c=d>>>3;if(d>>>0<256){a=f[h+8>>2]|0;b=f[h+12>>2]|0;if((b|0)==(a|0)){f[1257]=f[1257]&~(1<>2]=b;f[b+8>>2]=a;i=h;b=g;break}}e=f[h+24>>2]|0;a=f[h+12>>2]|0;do if((a|0)==(h|0)){c=h+16|0;b=c+4|0;a=f[b>>2]|0;if(!a){a=f[c>>2]|0;if(!a){a=0;break}else b=c}while(1){c=a+20|0;d=f[c>>2]|0;if(d|0){a=d;b=c;continue}c=a+16|0;d=f[c>>2]|0;if(!d)break;else{a=d;b=c}}f[b>>2]=0}else{i=f[h+8>>2]|0;f[i+12>>2]=a;f[a+8>>2]=i}while(0);if(e){b=f[h+28>>2]|0;c=5332+(b<<2)|0;if((h|0)==(f[c>>2]|0)){f[c>>2]=a;if(!a){f[1258]=f[1258]&~(1<>2]|0)!=(h|0)&1)<<2)>>2]=a;if(!a){i=h;b=g;break}}f[a+24>>2]=e;b=h+16|0;c=f[b>>2]|0;if(c|0){f[a+16>>2]=c;f[c+24>>2]=a}b=f[b+4>>2]|0;if(b){f[a+20>>2]=b;f[b+24>>2]=a;i=h;b=g}else{i=h;b=g}}else{i=h;b=g}}else{i=c;h=c}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;d=f[a>>2]|0;if(!(d&1))return;if(!(d&2)){a=f[1262]|0;if((j|0)==(f[1263]|0)){j=(f[1260]|0)+b|0;f[1260]=j;f[1263]=i;f[i+4>>2]=j|1;if((i|0)!=(a|0))return;f[1262]=0;f[1259]=0;return}if((j|0)==(a|0)){j=(f[1259]|0)+b|0;f[1259]=j;f[1262]=h;f[i+4>>2]=j|1;f[h+j>>2]=j;return}e=(d&-8)+b|0;c=d>>>3;do if(d>>>0<256){b=f[j+8>>2]|0;a=f[j+12>>2]|0;if((a|0)==(b|0)){f[1257]=f[1257]&~(1<>2]=a;f[a+8>>2]=b;break}}else{g=f[j+24>>2]|0;a=f[j+12>>2]|0;do if((a|0)==(j|0)){c=j+16|0;b=c+4|0;a=f[b>>2]|0;if(!a){a=f[c>>2]|0;if(!a){c=0;break}else b=c}while(1){c=a+20|0;d=f[c>>2]|0;if(d|0){a=d;b=c;continue}c=a+16|0;d=f[c>>2]|0;if(!d)break;else{a=d;b=c}}f[b>>2]=0;c=a}else{c=f[j+8>>2]|0;f[c+12>>2]=a;f[a+8>>2]=c;c=a}while(0);if(g|0){a=f[j+28>>2]|0;b=5332+(a<<2)|0;if((j|0)==(f[b>>2]|0)){f[b>>2]=c;if(!c){f[1258]=f[1258]&~(1<>2]|0)!=(j|0)&1)<<2)>>2]=c;if(!c)break}f[c+24>>2]=g;a=j+16|0;b=f[a>>2]|0;if(b|0){f[c+16>>2]=b;f[b+24>>2]=c}a=f[a+4>>2]|0;if(a|0){f[c+20>>2]=a;f[a+24>>2]=c}}}while(0);f[i+4>>2]=e|1;f[h+e>>2]=e;if((i|0)==(f[1262]|0)){f[1259]=e;return}}else{f[a>>2]=d&-2;f[i+4>>2]=b|1;f[h+b>>2]=b;e=b}a=e>>>3;if(e>>>0<256){c=5068+(a<<1<<2)|0;b=f[1257]|0;a=1<>2]|0}f[b>>2]=i;f[a+12>>2]=i;f[i+8>>2]=a;f[i+12>>2]=c;return}a=e>>>8;if(a)if(e>>>0>16777215)a=31;else{h=(a+1048320|0)>>>16&8;j=a<>>16&4;j=j<>>16&2;a=14-(g|h|a)+(j<>>15)|0;a=e>>>(a+7|0)&1|a<<1}else a=0;d=5332+(a<<2)|0;f[i+28>>2]=a;f[i+20>>2]=0;f[i+16>>2]=0;b=f[1258]|0;c=1<>>1)|0);c=f[d>>2]|0;while(1){if((f[c+4>>2]&-8|0)==(e|0)){a=73;break}d=c+16+(b>>>31<<2)|0;a=f[d>>2]|0;if(!a){a=72;break}else{b=b<<1;c=a}}if((a|0)==72){f[d>>2]=i;f[i+24>>2]=c;f[i+12>>2]=i;f[i+8>>2]=i;break}else if((a|0)==73){h=c+8|0;j=f[h>>2]|0;f[j+12>>2]=i;f[h>>2]=i;f[i+8>>2]=j;f[i+12>>2]=c;f[i+24>>2]=0;break}}else{f[1258]=b|c;f[d>>2]=i;f[i+24>>2]=d;f[i+12>>2]=i;f[i+8>>2]=i}while(0);j=(f[1265]|0)+-1|0;f[1265]=j;if(!j)a=5484;else return;while(1){a=f[a>>2]|0;if(!a)break;else a=a+8|0}f[1265]=-1;return}function Xa(a,b){a=a|0;b=b|0;var c=0;if(a){c=X(b,a)|0;if((b|a)>>>0>65535)c=((c>>>0)/(a>>>0)|0|0)==(b|0)?c:-1}else c=0;a=Va(c)|0;if(!a)return a|0;if(!(f[a+-4>>2]&3))return a|0;Hc(a|0,0,c|0)|0;return a|0}function Ya(){return 5524}function Za(a){a=a|0;var b=0,c=0;b=u;u=u+16|0;c=b;a=eb(f[a+60>>2]|0)|0;f[c>>2]=a;a=ab(ia(6,c|0)|0)|0;u=b;return a|0}function _a(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=u;u=u+48|0;k=m+16|0;g=m;e=m+32|0;i=a+28|0;d=f[i>>2]|0;f[e>>2]=d;j=a+20|0;d=(f[j>>2]|0)-d|0;f[e+4>>2]=d;f[e+8>>2]=b;f[e+12>>2]=c;d=d+c|0;h=a+60|0;f[g>>2]=f[h>>2];f[g+4>>2]=e;f[g+8>>2]=2;g=ab(sa(146,g|0)|0)|0;a:do if((d|0)!=(g|0)){b=2;while(1){if((g|0)<0)break;d=d-g|0;o=f[e+4>>2]|0;n=g>>>0>o>>>0;e=n?e+8|0:e;b=(n<<31>>31)+b|0;o=g-(n?o:0)|0;f[e>>2]=(f[e>>2]|0)+o;n=e+4|0;f[n>>2]=(f[n>>2]|0)-o;f[k>>2]=f[h>>2];f[k+4>>2]=e;f[k+8>>2]=b;g=ab(sa(146,k|0)|0)|0;if((d|0)==(g|0)){l=3;break a}}f[a+16>>2]=0;f[i>>2]=0;f[j>>2]=0;f[a>>2]=f[a>>2]|32;if((b|0)==2)c=0;else c=c-(f[e+4>>2]|0)|0}else l=3;while(0);if((l|0)==3){o=f[a+44>>2]|0;f[a+16>>2]=o+(f[a+48>>2]|0);f[i>>2]=o;f[j>>2]=o}u=m;return c|0}function $a(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;e=u;u=u+32|0;g=e;d=e+20|0;f[g>>2]=f[a+60>>2];f[g+4>>2]=0;f[g+8>>2]=b;f[g+12>>2]=d;f[g+16>>2]=c;if((ab(ka(140,g|0)|0)|0)<0){f[d>>2]=-1;a=-1}else a=f[d>>2]|0;u=e;return a|0}function ab(a){a=a|0;var b=0;if(a>>>0>4294963200){b=bb()|0;f[b>>2]=0-a;a=-1}return a|0}function bb(){return (cb()|0)+64|0}function cb(){return db()|0}function db(){return 152}function eb(a){a=a|0;return a|0}function fb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;k=u;u=u+32|0;e=k;i=k+16|0;f[i>>2]=c;g=i+4|0;j=a+48|0;l=f[j>>2]|0;f[g>>2]=d-((l|0)!=0&1);h=a+44|0;f[i+8>>2]=f[h>>2];f[i+12>>2]=l;f[e>>2]=f[a+60>>2];f[e+4>>2]=i;f[e+8>>2]=2;e=ab(ra(145,e|0)|0)|0;if((e|0)>=1){i=f[g>>2]|0;if(e>>>0>i>>>0){g=f[h>>2]|0;h=a+4|0;f[h>>2]=g;f[a+8>>2]=g+(e-i);if(!(f[j>>2]|0))e=d;else{f[h>>2]=g+1;b[c+(d+-1)>>0]=b[g>>0]|0;e=d}}}else f[a>>2]=f[a>>2]|e&48^16;u=k;return e|0}function gb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;g=u;u=u+32|0;e=g;f[a+36>>2]=1;if((f[a>>2]&64|0)==0?(f[e>>2]=f[a+60>>2],f[e+4>>2]=21523,f[e+8>>2]=g+16,na(54,e|0)|0):0)b[a+75>>0]=-1;e=_a(a,c,d)|0;u=g;return e|0}function hb(a){a=a|0;return ((a+-48|0)>>>0<10|((a|32)+-97|0)>>>0<6)&1|0}function ib(a){a=a|0;return ((a+-48|0)>>>0<10|(jb(a)|0)!=0)&1|0}function jb(a){a=a|0;return ((a|32)+-97|0)>>>0<26|0}function kb(a,c){a=a|0;c=c|0;var d=0,e=0;d=b[a>>0]|0;e=b[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24)a=e;else{do{a=a+1|0;c=c+1|0;d=b[a>>0]|0;e=b[c>>0]|0}while(!(d<<24>>24==0?1:d<<24>>24!=e<<24>>24));a=e}return (d&255)-(a&255)|0}function lb(a){a=a|0;return (a+-65|0)>>>0<26|0}function mb(a){a=a|0;var b=0;b=(lb(a)|0)==0;return (b?a:a|32)|0}function nb(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function ob(a){a=a|0;var c=0,d=0,e=0;e=a;a:do if(!(e&3))d=4;else{c=e;while(1){if(!(b[a>>0]|0)){a=c;break a}a=a+1|0;c=a;if(!(c&3)){d=4;break}}}while(0);if((d|0)==4){while(1){c=f[a>>2]|0;if(!((c&-2139062144^-2139062144)&c+-16843009))a=a+4|0;else break}if((c&255)<<24>>24)do a=a+1|0;while((b[a>>0]|0)!=0)}return a-e|0}function pb(a,b){a=a|0;b=b|0;var c=0;c=ob(a)|0;return ((qb(a,1,c,b)|0)!=(c|0))<<31>>31|0}function qb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;e=X(c,b)|0;c=(b|0)==0?0:c;if((f[d+76>>2]|0)>-1){g=(ub(d)|0)==0;a=xb(a,e,d)|0;if(!g)sb(d)}else a=xb(a,e,d)|0;if((a|0)!=(e|0))c=(a>>>0)/(b>>>0)|0;return c|0}function rb(a){a=a|0;var b=0;if(f[a+68>>2]|0){b=f[a+116>>2]|0;a=a+112|0;if(b|0)f[b+112>>2]=f[a>>2];a=f[a>>2]|0;if(!a)a=(tb()|0)+232|0;else a=a+116|0;f[a>>2]=b}return}function sb(a){a=a|0;return}function tb(){return db()|0}function ub(a){a=a|0;return 0}function vb(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0;l=u;u=u+16|0;j=l;k=c&255;b[j>>0]=k;e=a+16|0;g=f[e>>2]|0;if(!g)if(!(wb(a)|0)){g=f[e>>2]|0;i=4}else d=-1;else i=4;do if((i|0)==4){i=a+20|0;e=f[i>>2]|0;if(e>>>0>>0?(d=c&255,(d|0)!=(b[a+75>>0]|0)):0){f[i>>2]=e+1;b[e>>0]=k;break}if((wa[f[a+36>>2]&7](a,j,1)|0)==1)d=h[j>>0]|0;else d=-1}while(0);u=l;return d|0}function wb(a){a=a|0;var c=0,d=0;c=a+74|0;d=b[c>>0]|0;b[c>>0]=d+255|d;c=f[a>>2]|0;if(!(c&8)){f[a+8>>2]=0;f[a+4>>2]=0;d=f[a+44>>2]|0;f[a+28>>2]=d;f[a+20>>2]=d;f[a+16>>2]=d+(f[a+48>>2]|0);a=0}else{f[a>>2]=c|32;a=-1}return a|0}function xb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=d+16|0;g=f[e>>2]|0;if(!g)if(!(wb(d)|0)){g=f[e>>2]|0;h=5}else e=0;else h=5;a:do if((h|0)==5){j=d+20|0;i=f[j>>2]|0;e=i;if((g-i|0)>>>0>>0){e=wa[f[d+36>>2]&7](d,a,c)|0;break}b:do if((b[d+75>>0]|0)>-1){i=c;while(1){if(!i){h=0;g=a;break b}g=i+-1|0;if((b[a+g>>0]|0)==10)break;else i=g}e=wa[f[d+36>>2]&7](d,a,i)|0;if(e>>>0>>0)break a;h=i;g=a+i|0;c=c-i|0;e=f[j>>2]|0}else{h=0;g=a}while(0);Rc(e|0,g|0,c|0)|0;f[j>>2]=(f[j>>2]|0)+c;e=h+c|0}while(0);return e|0}function yb(a,b){a=a|0;b=b|0;if(!b)b=0;else b=zb(f[b>>2]|0,f[b+4>>2]|0,a)|0;return (b|0?b:a)|0}function zb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=(f[a>>2]|0)+1794895138|0;h=Ab(f[a+8>>2]|0,o)|0;e=Ab(f[a+12>>2]|0,o)|0;g=Ab(f[a+16>>2]|0,o)|0;a:do if((h>>>0>>2>>>0?(n=c-(h<<2)|0,e>>>0>>0&g>>>0>>0):0)?((g|e)&3|0)==0:0){n=e>>>2;m=g>>>2;l=0;while(1){j=h>>>1;k=l+j|0;i=k<<1;g=i+n|0;e=Ab(f[a+(g<<2)>>2]|0,o)|0;g=Ab(f[a+(g+1<<2)>>2]|0,o)|0;if(!(g>>>0>>0&e>>>0<(c-g|0)>>>0)){e=0;break a}if(b[a+(g+e)>>0]|0){e=0;break a}e=kb(d,a+g|0)|0;if(!e)break;e=(e|0)<0;if((h|0)==1){e=0;break a}else{l=e?l:k;h=e?j:h-j|0}}e=i+m|0;g=Ab(f[a+(e<<2)>>2]|0,o)|0;e=Ab(f[a+(e+1<<2)>>2]|0,o)|0;if(e>>>0>>0&g>>>0<(c-e|0)>>>0)e=(b[a+(e+g)>>0]|0)==0?a+e|0:0;else e=0}else e=0;while(0);return e|0}function Ab(a,b){a=a|0;b=b|0;var c=0;c=Sc(a|0)|0;return ((b|0)==0?a:c)|0}function Bb(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;i=u;u=u+48|0;h=i+32|0;g=i+16|0;d=i;if(Cb(2329,b[c>>0]|0,4)|0){e=Db(c)|0;f[d>>2]=a;f[d+4>>2]=e|32768;f[d+8>>2]=438;d=ab(la(5,d|0)|0)|0;if((d|0)>=0){if(e&524288|0){f[g>>2]=d;f[g+4>>2]=2;f[g+8>>2]=1;ga(221,g|0)|0}a=Eb(d,c)|0;if(!a){f[h>>2]=d;ia(6,h|0)|0;a=0}}else a=0}else{a=bb()|0;f[a>>2]=22;a=0}u=i;return a|0}function Cb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;h=c&255;e=(d|0)!=0;a:do if(e&(a&3|0)!=0){g=c&255;while(1){if((b[a>>0]|0)==g<<24>>24){i=6;break a}a=a+1|0;d=d+-1|0;e=(d|0)!=0;if(!(e&(a&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(e)i=6;else d=0;b:do if((i|0)==6){g=c&255;if((b[a>>0]|0)!=g<<24>>24){e=X(h,16843009)|0;c:do if(d>>>0>3)while(1){h=f[a>>2]^e;if((h&-2139062144^-2139062144)&h+-16843009|0)break;a=a+4|0;d=d+-4|0;if(d>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!d){d=0;break}while(1){if((b[a>>0]|0)==g<<24>>24)break b;a=a+1|0;d=d+-1|0;if(!d){d=0;break}}}}while(0);return (d|0?a:0)|0}function Db(a){a=a|0;var c=0,d=0,e=0;d=(Fb(a,43)|0)==0;c=b[a>>0]|0;d=d?c<<24>>24!=114&1:2;e=(Fb(a,120)|0)==0;d=e?d:d|128;a=(Fb(a,101)|0)==0;a=a?d:d|524288;a=c<<24>>24==114?a:a|64;a=c<<24>>24==119?a|512:a;return (c<<24>>24==97?a|1024:a)|0}function Eb(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=u;u=u+64|0;m=n+40|0;k=n+24|0;j=n+16|0;g=n;l=n+56|0;e=b[c>>0]|0;if(Cb(2329,e<<24>>24,4)|0){d=Va(1156)|0;if(!d)d=0;else{h=d;i=h+124|0;do{f[h>>2]=0;h=h+4|0}while((h|0)<(i|0));if(!(Fb(c,43)|0))f[d>>2]=e<<24>>24==114?8:4;if(Fb(c,101)|0){f[g>>2]=a;f[g+4>>2]=2;f[g+8>>2]=1;ga(221,g|0)|0;e=b[c>>0]|0}if(e<<24>>24==97){f[j>>2]=a;f[j+4>>2]=3;e=ga(221,j|0)|0;if(!(e&1024)){f[k>>2]=a;f[k+4>>2]=4;f[k+8>>2]=e|1024;ga(221,k|0)|0}c=f[d>>2]|128;f[d>>2]=c}else c=f[d>>2]|0;f[d+60>>2]=a;f[d+44>>2]=d+132;f[d+48>>2]=1024;e=d+75|0;b[e>>0]=-1;if((c&8|0)==0?(f[m>>2]=a,f[m+4>>2]=21523,f[m+8>>2]=l,(na(54,m|0)|0)==0):0)b[e>>0]=10;f[d+32>>2]=5;f[d+36>>2]=1;f[d+40>>2]=2;f[d+12>>2]=1;if(!(f[1382]|0))f[d+76>>2]=-1;Gb(d)|0}}else{d=bb()|0;f[d>>2]=22;d=0}u=n;return d|0}function Fb(a,c){a=a|0;c=c|0;a=Jb(a,c)|0;return ((b[a>>0]|0)==(c&255)<<24>>24?a:0)|0}function Gb(a){a=a|0;var b=0,c=0;b=Hb()|0;f[a+56>>2]=f[b>>2];c=f[b>>2]|0;if(c|0)f[c+52>>2]=a;f[b>>2]=a;Ib();return a|0}function Hb(){ha(5588);return 5596}function Ib(){oa(5588);return}function Jb(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;e=c&255;a:do if(!e)a=a+(ob(a)|0)|0;else{if(a&3){d=c&255;do{g=b[a>>0]|0;if(g<<24>>24==0?1:g<<24>>24==d<<24>>24)break a;a=a+1|0}while((a&3|0)!=0)}e=X(e,16843009)|0;d=f[a>>2]|0;b:do if(!((d&-2139062144^-2139062144)&d+-16843009))do{g=d^e;if((g&-2139062144^-2139062144)&g+-16843009|0)break b;a=a+4|0;d=f[a>>2]|0}while(!((d&-2139062144^-2139062144)&d+-16843009|0));while(0);d=c&255;while(1){g=b[a>>0]|0;if(g<<24>>24==0?1:g<<24>>24==d<<24>>24)break;else a=a+1|0}}while(0);return a|0}function Kb(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;if((f[a+76>>2]|0)>-1)e=ub(a)|0;else e=0;rb(a);g=(f[a>>2]&1|0)!=0;if(!g){d=Hb()|0;c=f[a+52>>2]|0;b=a+56|0;if(c|0)f[c+56>>2]=f[b>>2];b=f[b>>2]|0;if(b|0)f[b+52>>2]=c;if((f[d>>2]|0)==(a|0))f[d>>2]=b;Ib()}b=Lb(a)|0;b=va[f[a+12>>2]&1](a)|0|b;c=f[a+92>>2]|0;if(c|0)Wa(c);if(g){if(e|0)sb(a)}else Wa(a);return b|0}function Lb(a){a=a|0;var b=0,c=0;do if(a){if((f[a+76>>2]|0)<=-1){b=Mb(a)|0;break}c=(ub(a)|0)==0;b=Mb(a)|0;if(!c)sb(a)}else{if(!(f[131]|0))b=0;else b=Lb(f[131]|0)|0;a=Hb()|0;a=f[a>>2]|0;if(a)do{if((f[a+76>>2]|0)>-1)c=ub(a)|0;else c=0;if((f[a+20>>2]|0)>>>0>(f[a+28>>2]|0)>>>0)b=Mb(a)|0|b;if(c|0)sb(a);a=f[a+56>>2]|0}while((a|0)!=0);Ib()}while(0);return b|0}function Mb(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=a+20|0;h=a+28|0;if((f[b>>2]|0)>>>0>(f[h>>2]|0)>>>0?(wa[f[a+36>>2]&7](a,0,0)|0,(f[b>>2]|0)==0):0)a=-1;else{c=a+4|0;d=f[c>>2]|0;e=a+8|0;g=f[e>>2]|0;if(d>>>0>>0)wa[f[a+40>>2]&7](a,d-g|0,1)|0;f[a+16>>2]=0;f[h>>2]=0;f[b>>2]=0;f[e>>2]=0;f[c>>2]=0;a=0}return a|0}function Nb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;f[a+104>>2]=b;c=f[a+8>>2]|0;d=f[a+4>>2]|0;e=c-d|0;f[a+108>>2]=e;f[a+100>>2]=(b|0)!=0&(e|0)>(b|0)?d+b|0:c;return}function Ob(a){a=a|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0;d=a+104|0;j=f[d>>2]|0;if((j|0)!=0?(f[a+108>>2]|0)>=(j|0):0)k=4;else{c=Qb(a)|0;if((c|0)>=0){e=f[d>>2]|0;d=a+8|0;if(e){i=f[d>>2]|0;d=f[a+4>>2]|0;g=a+108|0;e=e-(f[g>>2]|0)|0;j=i;if((i-d|0)<(e|0)){i=j;e=j}else{i=d+(e+-1)|0;e=j}}else{e=f[d>>2]|0;g=a+108|0;i=e;d=f[a+4>>2]|0}f[a+100>>2]=i;if(e|0)f[g>>2]=e+1-d+(f[g>>2]|0);d=d+-1|0;if((h[d>>0]|0|0)!=(c|0))b[d>>0]=c}else k=4}if((k|0)==4){f[a+100>>2]=0;c=-1}return c|0}function Pb(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do if(c>>>0>36){g=bb()|0;f[g>>2]=22;g=0;e=0}else{r=a+4|0;q=a+100|0;do{i=f[r>>2]|0;if(i>>>0<(f[q>>2]|0)>>>0){f[r>>2]=i+1;i=h[i>>0]|0}else i=Ob(a)|0}while((nb(i)|0)!=0);b:do switch(i|0){case 43:case 45:{i=((i|0)==45)<<31>>31;j=f[r>>2]|0;if(j>>>0<(f[q>>2]|0)>>>0){f[r>>2]=j+1;p=i;i=h[j>>0]|0;break b}else{p=i;i=Ob(a)|0;break b}}default:p=0}while(0);j=(c|0)==0;do if((c|16|0)==16&(i|0)==48){i=f[r>>2]|0;if(i>>>0<(f[q>>2]|0)>>>0){f[r>>2]=i+1;i=h[i>>0]|0}else i=Ob(a)|0;if((i|32|0)!=120)if(j){c=8;n=46;break}else{n=32;break}i=f[r>>2]|0;if(i>>>0<(f[q>>2]|0)>>>0){f[r>>2]=i+1;i=h[i>>0]|0}else i=Ob(a)|0;if((h[2334+i>>0]|0)>15){e=(f[q>>2]|0)!=0;if(e)f[r>>2]=(f[r>>2]|0)+-1;if(!d){Nb(a,0);g=0;e=0;break a}if(!e){g=0;e=0;break a}f[r>>2]=(f[r>>2]|0)+-1;g=0;e=0;break a}else{c=16;n=46}}else{c=j?10:c;if((h[2334+i>>0]|0)>>>0>>0)n=32;else{if(f[q>>2]|0)f[r>>2]=(f[r>>2]|0)+-1;Nb(a,0);g=bb()|0;f[g>>2]=22;g=0;e=0;break a}}while(0);c:do if((n|0)==32)if((c|0)==10){c=i+-48|0;if(c>>>0<10){i=0;j=c;do{i=(i*10|0)+j|0;c=f[r>>2]|0;if(c>>>0<(f[q>>2]|0)>>>0){f[r>>2]=c+1;c=h[c>>0]|0}else c=Ob(a)|0;j=c+-48|0}while(j>>>0<10&i>>>0<429496729);d=0}else{c=i;i=0;d=0}k=c+-48|0;if(k>>>0<10){j=c;do{c=Oc(i|0,d|0,10,0)|0;l=I;m=((k|0)<0)<<31>>31;o=~m;if(l>>>0>o>>>0|(l|0)==(o|0)&c>>>0>~k>>>0){c=10;n=72;break c}i=Gc(c|0,l|0,k|0,m|0)|0;d=I;c=f[r>>2]|0;if(c>>>0<(f[q>>2]|0)>>>0){f[r>>2]=c+1;j=h[c>>0]|0}else j=Ob(a)|0;k=j+-48|0}while(k>>>0<10&(d>>>0<429496729|(d|0)==429496729&i>>>0<2576980378));if(k>>>0>9){j=p;c=d}else{c=10;n=72}}else{j=p;c=d}}else n=46;while(0);d:do if((n|0)==46){if(!(c+-1&c)){n=b[2590+((c*23|0)>>>5&7)>>0]|0;d=b[2334+i>>0]|0;j=d&255;if(j>>>0>>0){i=0;k=j;do{i=k|i<>2]|0;if(j>>>0<(f[q>>2]|0)>>>0){f[r>>2]=j+1;j=h[j>>0]|0}else j=Ob(a)|0;d=b[2334+j>>0]|0;k=d&255}while(i>>>0<134217728&k>>>0>>0);k=0}else{j=i;k=0;i=0}l=Ic(-1,-1,n|0)|0;m=I;if((d&255)>>>0>=c>>>0|(k>>>0>m>>>0|(k|0)==(m|0)&i>>>0>l>>>0)){d=k;n=72;break}else j=k;while(1){i=Jc(i|0,j|0,n|0)|0;k=I;i=d&255|i;j=f[r>>2]|0;if(j>>>0<(f[q>>2]|0)>>>0){f[r>>2]=j+1;j=h[j>>0]|0}else j=Ob(a)|0;d=b[2334+j>>0]|0;if((d&255)>>>0>=c>>>0|(k>>>0>m>>>0|(k|0)==(m|0)&i>>>0>l>>>0)){d=k;n=72;break d}else j=k}}d=b[2334+i>>0]|0;j=d&255;if(j>>>0>>0){i=0;k=j;do{i=k+(X(i,c)|0)|0;j=f[r>>2]|0;if(j>>>0<(f[q>>2]|0)>>>0){f[r>>2]=j+1;j=h[j>>0]|0}else j=Ob(a)|0;d=b[2334+j>>0]|0;k=d&255}while(i>>>0<119304647&k>>>0>>0);k=0}else{j=i;i=0;k=0}if((d&255)>>>0>>0){n=Mc(-1,-1,c|0,0)|0;o=I;m=k;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&i>>>0>n>>>0){d=m;n=72;break d}k=Oc(i|0,m|0,c|0,0)|0;l=I;d=d&255;if(l>>>0>4294967295|(l|0)==-1&k>>>0>~d>>>0){d=m;n=72;break d}i=Gc(d|0,0,k|0,l|0)|0;k=I;j=f[r>>2]|0;if(j>>>0<(f[q>>2]|0)>>>0){f[r>>2]=j+1;j=h[j>>0]|0}else j=Ob(a)|0;d=b[2334+j>>0]|0;if((d&255)>>>0>=c>>>0){d=k;n=72;break}else m=k}}else{d=k;n=72}}while(0);if((n|0)==72)if((h[2334+j>>0]|0)>>>0>>0){do{i=f[r>>2]|0;if(i>>>0<(f[q>>2]|0)>>>0){f[r>>2]=i+1;i=h[i>>0]|0}else i=Ob(a)|0}while((h[2334+i>>0]|0)>>>0>>0);j=bb()|0;f[j>>2]=34;j=(e&1|0)==0&0==0?p:0;c=g;i=e}else{j=p;c=d}if(f[q>>2]|0)f[r>>2]=(f[r>>2]|0)+-1;if(!(c>>>0>>0|(c|0)==(g|0)&i>>>0>>0)){if(!((e&1|0)!=0|0!=0|(j|0)!=0)){r=bb()|0;f[r>>2]=34;e=Gc(e|0,g|0,-1,-1)|0;g=I;break}if(c>>>0>g>>>0|(c|0)==(g|0)&i>>>0>e>>>0){r=bb()|0;f[r>>2]=34;break}}e=((j|0)<0)<<31>>31;e=Fc(i^j|0,c^e|0,j|0,e|0)|0;g=I}while(0);I=g;return e|0}function Qb(a){a=a|0;var b=0,c=0;c=u;u=u+16|0;b=c;if((Rb(a)|0)==0?(wa[f[a+32>>2]&7](a,b,1)|0)==1:0)a=h[b>>0]|0;else a=-1;u=c;return a|0}function Rb(a){a=a|0;var c=0,d=0;c=a+74|0;d=b[c>>0]|0;b[c>>0]=d+255|d;c=a+20|0;d=a+28|0;if((f[c>>2]|0)>>>0>(f[d>>2]|0)>>>0)wa[f[a+36>>2]&7](a,0,0)|0;f[a+16>>2]=0;f[d>>2]=0;f[c>>2]=0;c=f[a>>2]|0;if(!(c&4)){d=(f[a+44>>2]|0)+(f[a+48>>2]|0)|0;f[a+8>>2]=d;f[a+4>>2]=d;c=c<<27>>31}else{f[a>>2]=c|32;c=-1}return c|0}function Sb(a,b,c){a=a|0;b=b|0;c=c|0;return mc(a,b,c)|0}function Tb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=u;u=u+16|0;e=d;f[e>>2]=c;c=Ub(a,b,e)|0;u=d;return c|0}function Ub(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=u;u=u+224|0;m=r+120|0;n=r+80|0;p=r;q=r+136|0;e=n;g=e+40|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));f[m>>2]=f[d>>2];if((Vb(0,c,m,p,n)|0)<0)d=-1;else{if((f[a+76>>2]|0)>-1)o=ub(a)|0;else o=0;d=f[a>>2]|0;l=d&32;if((b[a+74>>0]|0)<1)f[a>>2]=d&-33;e=a+48|0;if(!(f[e>>2]|0)){g=a+44|0;h=f[g>>2]|0;f[g>>2]=q;i=a+28|0;f[i>>2]=q;j=a+20|0;f[j>>2]=q;f[e>>2]=80;k=a+16|0;f[k>>2]=q+80;d=Vb(a,c,m,p,n)|0;if(h){wa[f[a+36>>2]&7](a,0,0)|0;d=(f[j>>2]|0)==0?-1:d;f[g>>2]=h;f[e>>2]=0;f[k>>2]=0;f[i>>2]=0;f[j>>2]=0}}else d=Vb(a,c,m,p,n)|0;e=f[a>>2]|0;f[a>>2]=e|l;if(o|0)sb(a);d=(e&32|0)==0?d:-1}u=r;return d|0}function Vb(a,c,e,g,h){a=a|0;c=c|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=u;u=u+64|0;C=G+16|0;D=G;A=G+24|0;E=G+8|0;F=G+20|0;f[C>>2]=c;x=(a|0)!=0;y=A+40|0;z=y;A=A+39|0;B=E+4|0;j=0;i=0;n=0;a:while(1){do if((i|0)>-1)if((j|0)>(2147483647-i|0)){i=bb()|0;f[i>>2]=75;i=-1;break}else{i=j+i|0;break}while(0);j=b[c>>0]|0;if(!(j<<24>>24)){w=87;break}else k=c;b:while(1){switch(j<<24>>24){case 37:{j=k;w=9;break b}case 0:{j=k;break b}default:{}}v=k+1|0;f[C>>2]=v;j=b[v>>0]|0;k=v}c:do if((w|0)==9)while(1){w=0;if((b[k+1>>0]|0)!=37)break c;j=j+1|0;k=k+2|0;f[C>>2]=k;if((b[k>>0]|0)==37)w=9;else break}while(0);j=j-c|0;if(x)Wb(a,c,j);if(j|0){c=k;continue}l=k+1|0;j=(b[l>>0]|0)+-48|0;if(j>>>0<10){v=(b[k+2>>0]|0)==36;t=v?j:-1;n=v?1:n;l=v?k+3|0:l}else t=-1;f[C>>2]=l;j=b[l>>0]|0;k=(j<<24>>24)+-32|0;d:do if(k>>>0<32){m=0;o=j;while(1){j=1<>2]=l;j=b[l>>0]|0;k=(j<<24>>24)+-32|0;if(k>>>0>=32)break;else o=j}}else m=0;while(0);if(j<<24>>24==42){k=l+1|0;j=(b[k>>0]|0)+-48|0;if(j>>>0<10?(b[l+2>>0]|0)==36:0){f[h+(j<<2)>>2]=10;j=f[g+((b[k>>0]|0)+-48<<3)>>2]|0;n=1;l=l+3|0}else{if(n|0){i=-1;break}if(x){n=(f[e>>2]|0)+(4-1)&~(4-1);j=f[n>>2]|0;f[e>>2]=n+4;n=0;l=k}else{j=0;n=0;l=k}}f[C>>2]=l;v=(j|0)<0;j=v?0-j|0:j;m=v?m|8192:m}else{j=Xb(C)|0;if((j|0)<0){i=-1;break}l=f[C>>2]|0}do if((b[l>>0]|0)==46){if((b[l+1>>0]|0)!=42){f[C>>2]=l+1;k=Xb(C)|0;l=f[C>>2]|0;break}o=l+2|0;k=(b[o>>0]|0)+-48|0;if(k>>>0<10?(b[l+3>>0]|0)==36:0){f[h+(k<<2)>>2]=10;k=f[g+((b[o>>0]|0)+-48<<3)>>2]|0;l=l+4|0;f[C>>2]=l;break}if(n|0){i=-1;break a}if(x){v=(f[e>>2]|0)+(4-1)&~(4-1);k=f[v>>2]|0;f[e>>2]=v+4}else k=0;f[C>>2]=o;l=o}else k=-1;while(0);s=0;while(1){if(((b[l>>0]|0)+-65|0)>>>0>57){i=-1;break a}v=l+1|0;f[C>>2]=v;o=b[(b[l>>0]|0)+-65+(2599+(s*58|0))>>0]|0;q=o&255;if((q+-1|0)>>>0<8){s=q;l=v}else break}if(!(o<<24>>24)){i=-1;break}r=(t|0)>-1;do if(o<<24>>24==19)if(r){i=-1;break a}else w=49;else{if(r){f[h+(t<<2)>>2]=q;r=g+(t<<3)|0;t=f[r+4>>2]|0;w=D;f[w>>2]=f[r>>2];f[w+4>>2]=t;w=49;break}if(!x){i=0;break a}Yb(D,q,e)}while(0);if((w|0)==49?(w=0,!x):0){j=0;c=v;continue}l=b[l>>0]|0;l=(s|0)!=0&(l&15|0)==3?l&-33:l;r=m&-65537;t=(m&8192|0)==0?m:r;e:do switch(l|0){case 110:switch((s&255)<<24>>24){case 0:{f[f[D>>2]>>2]=i;j=0;c=v;continue a}case 1:{f[f[D>>2]>>2]=i;j=0;c=v;continue a}case 2:{j=f[D>>2]|0;f[j>>2]=i;f[j+4>>2]=((i|0)<0)<<31>>31;j=0;c=v;continue a}case 3:{d[f[D>>2]>>1]=i;j=0;c=v;continue a}case 4:{b[f[D>>2]>>0]=i;j=0;c=v;continue a}case 6:{f[f[D>>2]>>2]=i;j=0;c=v;continue a}case 7:{j=f[D>>2]|0;f[j>>2]=i;f[j+4>>2]=((i|0)<0)<<31>>31;j=0;c=v;continue a}default:{j=0;c=v;continue a}}case 112:{l=120;k=k>>>0>8?k:8;c=t|8;w=61;break}case 88:case 120:{c=t;w=61;break}case 111:{l=D;c=f[l>>2]|0;l=f[l+4>>2]|0;q=_b(c,l,y)|0;r=z-q|0;m=0;o=3063;k=(t&8|0)==0|(k|0)>(r|0)?k:r+1|0;r=t;w=67;break}case 105:case 100:{l=D;c=f[l>>2]|0;l=f[l+4>>2]|0;if((l|0)<0){c=Fc(0,0,c|0,l|0)|0;l=I;m=D;f[m>>2]=c;f[m+4>>2]=l;m=1;o=3063;w=66;break e}else{m=(t&2049|0)!=0&1;o=(t&2048|0)==0?((t&1|0)==0?3063:3065):3064;w=66;break e}}case 117:{l=D;m=0;o=3063;c=f[l>>2]|0;l=f[l+4>>2]|0;w=66;break}case 99:{b[A>>0]=f[D>>2];c=A;m=0;o=3063;q=y;l=1;k=r;break}case 109:{l=bb()|0;l=ac(f[l>>2]|0)|0;w=71;break}case 115:{l=f[D>>2]|0;l=l|0?l:3073;w=71;break}case 67:{f[E>>2]=f[D>>2];f[B>>2]=0;f[D>>2]=E;q=-1;l=E;w=75;break}case 83:{c=f[D>>2]|0;if(!k){bc(a,32,j,0,t);c=0;w=84}else{q=k;l=c;w=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{j=dc(a,+p[D>>3],j,k,t,l)|0;c=v;continue a}default:{m=0;o=3063;q=y;l=k;k=t}}while(0);f:do if((w|0)==61){t=D;s=f[t>>2]|0;t=f[t+4>>2]|0;q=Zb(s,t,y,l&32)|0;o=(c&8|0)==0|(s|0)==0&(t|0)==0;m=o?0:2;o=o?3063:3063+(l>>4)|0;r=c;c=s;l=t;w=67}else if((w|0)==66){q=$b(c,l,y)|0;r=t;w=67}else if((w|0)==71){w=0;t=Cb(l,0,k)|0;s=(t|0)==0;c=l;m=0;o=3063;q=s?l+k|0:t;l=s?k:t-l|0;k=r}else if((w|0)==75){w=0;o=l;c=0;k=0;while(1){m=f[o>>2]|0;if(!m)break;k=cc(F,m)|0;if((k|0)<0|k>>>0>(q-c|0)>>>0)break;c=k+c|0;if(q>>>0>c>>>0)o=o+4|0;else break}if((k|0)<0){i=-1;break a}bc(a,32,j,c,t);if(!c){c=0;w=84}else{m=0;while(1){k=f[l>>2]|0;if(!k){w=84;break f}k=cc(F,k)|0;m=k+m|0;if((m|0)>(c|0)){w=84;break f}Wb(a,F,k);if(m>>>0>=c>>>0){w=84;break}else l=l+4|0}}}while(0);if((w|0)==67){w=0;l=(c|0)!=0|(l|0)!=0;t=(k|0)!=0|l;l=((l^1)&1)+(z-q)|0;c=t?q:y;q=y;l=t?((k|0)>(l|0)?k:l):k;k=(k|0)>-1?r&-65537:r}else if((w|0)==84){w=0;bc(a,32,j,c,t^8192);j=(j|0)>(c|0)?j:c;c=v;continue}s=q-c|0;r=(l|0)<(s|0)?s:l;t=r+m|0;j=(j|0)<(t|0)?t:j;bc(a,32,j,t,k);Wb(a,o,m);bc(a,48,j,t,k^65536);bc(a,48,r,s,0);Wb(a,c,s);bc(a,32,j,t,k^8192);c=v}g:do if((w|0)==87)if(!a)if(!n)i=0;else{i=1;while(1){c=f[h+(i<<2)>>2]|0;if(!c)break;Yb(g+(i<<3)|0,c,e);i=i+1|0;if((i|0)>=10){i=1;break g}}while(1){if(f[h+(i<<2)>>2]|0){i=-1;break g}i=i+1|0;if((i|0)>=10){i=1;break}}}while(0);u=G;return i|0}function Wb(a,b,c){a=a|0;b=b|0;c=c|0;if(!(f[a>>2]&32))xb(b,c,a)|0;return}function Xb(a){a=a|0;var c=0,d=0,e=0;d=f[a>>2]|0;e=(b[d>>0]|0)+-48|0;if(e>>>0<10){c=0;do{c=e+(c*10|0)|0;d=d+1|0;f[a>>2]=d;e=(b[d>>0]|0)+-48|0}while(e>>>0<10)}else c=0;return c|0}function Yb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{d=(f[c>>2]|0)+(4-1)&~(4-1);b=f[d>>2]|0;f[c>>2]=d+4;f[a>>2]=b;break a}case 10:{d=(f[c>>2]|0)+(4-1)&~(4-1);b=f[d>>2]|0;f[c>>2]=d+4;d=a;f[d>>2]=b;f[d+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{d=(f[c>>2]|0)+(4-1)&~(4-1);b=f[d>>2]|0;f[c>>2]=d+4;d=a;f[d>>2]=b;f[d+4>>2]=0;break a}case 12:{d=(f[c>>2]|0)+(8-1)&~(8-1);b=d;e=f[b>>2]|0;b=f[b+4>>2]|0;f[c>>2]=d+8;d=a;f[d>>2]=e;f[d+4>>2]=b;break a}case 13:{e=(f[c>>2]|0)+(4-1)&~(4-1);d=f[e>>2]|0;f[c>>2]=e+4;d=(d&65535)<<16>>16;e=a;f[e>>2]=d;f[e+4>>2]=((d|0)<0)<<31>>31;break a}case 14:{e=(f[c>>2]|0)+(4-1)&~(4-1);d=f[e>>2]|0;f[c>>2]=e+4;e=a;f[e>>2]=d&65535;f[e+4>>2]=0;break a}case 15:{e=(f[c>>2]|0)+(4-1)&~(4-1);d=f[e>>2]|0;f[c>>2]=e+4;d=(d&255)<<24>>24;e=a;f[e>>2]=d;f[e+4>>2]=((d|0)<0)<<31>>31;break a}case 16:{e=(f[c>>2]|0)+(4-1)&~(4-1);d=f[e>>2]|0;f[c>>2]=e+4;e=a;f[e>>2]=d&255;f[e+4>>2]=0;break a}case 17:{e=(f[c>>2]|0)+(8-1)&~(8-1);g=+p[e>>3];f[c>>2]=e+8;p[a>>3]=g;break a}case 18:{e=(f[c>>2]|0)+(8-1)&~(8-1);g=+p[e>>3];f[c>>2]=e+8;p[a>>3]=g;break a}default:break a}while(0);while(0);return}function Zb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;if(!((a|0)==0&(c|0)==0))do{d=d+-1|0;b[d>>0]=h[3115+(a&15)>>0]|0|e;a=Ic(a|0,c|0,4)|0;c=I}while(!((a|0)==0&(c|0)==0));return d|0}function _b(a,c,d){a=a|0;c=c|0;d=d|0;if(!((a|0)==0&(c|0)==0))do{d=d+-1|0;b[d>>0]=a&7|48;a=Ic(a|0,c|0,3)|0;c=I}while(!((a|0)==0&(c|0)==0));return d|0}function $b(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&a>>>0>4294967295){while(1){e=Qc(a|0,c|0,10,0)|0;d=d+-1|0;b[d>>0]=e&255|48;e=a;a=Mc(a|0,c|0,10,0)|0;if(!(c>>>0>9|(c|0)==9&e>>>0>4294967295))break;else c=I}c=a}else c=a;if(c)while(1){d=d+-1|0;b[d>>0]=(c>>>0)%10|0|48;if(c>>>0<10)break;else c=(c>>>0)/10|0}return d|0}function ac(a){a=a|0;var b=0;b=(jc()|0)+188|0;return kc(a,f[b>>2]|0)|0}function bc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=u;u=u+256|0;f=g;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;Hc(f|0,b|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;do{Wb(a,f,256);e=e+-256|0}while(e>>>0>255);e=b&255}Wb(a,f,e)}u=g;return}function cc(a,b){a=a|0;b=b|0;if(!a)a=0;else a=hc(a,b,0)|0;return a|0}function dc(a,c,d,e,g,i){a=a|0;c=+c;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=u;u=u+560|0;l=G+8|0;t=G;F=G+524|0;E=F;m=G+512|0;f[t>>2]=0;D=m+12|0;ec(c)|0;if((I|0)<0){c=-c;B=1;A=3080}else{B=(g&2049|0)!=0&1;A=(g&2048|0)==0?((g&1|0)==0?3081:3086):3083}ec(c)|0;C=I&2146435072;do if(C>>>0<2146435072|(C|0)==2146435072&0<0){q=+fc(c,t)*2.0;j=q!=0.0;if(j)f[t>>2]=(f[t>>2]|0)+-1;w=i|32;if((w|0)==97){r=i&32;p=(r|0)==0?A:A+9|0;o=B|2;j=12-e|0;do if(!(e>>>0>11|(j|0)==0)){c=8.0;do{j=j+-1|0;c=c*16.0}while((j|0)!=0);if((b[p>>0]|0)==45){c=-(c+(-q-c));break}else{c=q+c-c;break}}else c=q;while(0);k=f[t>>2]|0;j=(k|0)<0?0-k|0:k;j=$b(j,((j|0)<0)<<31>>31,D)|0;if((j|0)==(D|0)){j=m+11|0;b[j>>0]=48}b[j+-1>>0]=(k>>31&2)+43;n=j+-2|0;b[n>>0]=i+15;m=(e|0)<1;l=(g&8|0)==0;j=F;do{C=~~c;k=j+1|0;b[j>>0]=h[3115+C>>0]|r;c=(c-+(C|0))*16.0;if((k-E|0)==1?!(l&(m&c==0.0)):0){b[k>>0]=46;j=j+2|0}else j=k}while(c!=0.0);C=j-E|0;E=D-n|0;D=(e|0)!=0&(C+-2|0)<(e|0)?e+2|0:C;j=E+o+D|0;bc(a,32,d,j,g);Wb(a,p,o);bc(a,48,d,j,g^65536);Wb(a,F,C);bc(a,48,D-C|0,0,0);Wb(a,n,E);bc(a,32,d,j,g^8192);break}k=(e|0)<0?6:e;if(j){j=(f[t>>2]|0)+-28|0;f[t>>2]=j;c=q*268435456.0}else{c=q;j=f[t>>2]|0}C=(j|0)<0?l:l+288|0;l=C;do{y=~~c>>>0;f[l>>2]=y;l=l+4|0;c=(c-+(y>>>0))*1.0e9}while(c!=0.0);if((j|0)>0){m=C;o=l;while(1){n=(j|0)<29?j:29;j=o+-4|0;if(j>>>0>=m>>>0){l=0;do{x=Jc(f[j>>2]|0,0,n|0)|0;x=Gc(x|0,I|0,l|0,0)|0;y=I;v=Qc(x|0,y|0,1e9,0)|0;f[j>>2]=v;l=Mc(x|0,y|0,1e9,0)|0;j=j+-4|0}while(j>>>0>=m>>>0);if(l){m=m+-4|0;f[m>>2]=l}}l=o;while(1){if(l>>>0<=m>>>0)break;j=l+-4|0;if(!(f[j>>2]|0))l=j;else break}j=(f[t>>2]|0)-n|0;f[t>>2]=j;if((j|0)>0)o=l;else break}}else m=C;if((j|0)<0){e=((k+25|0)/9|0)+1|0;s=(w|0)==102;do{r=0-j|0;r=(r|0)<9?r:9;if(m>>>0>>0){n=(1<>>r;p=0;j=m;do{y=f[j>>2]|0;f[j>>2]=(y>>>r)+p;p=X(y&n,o)|0;j=j+4|0}while(j>>>0>>0);j=(f[m>>2]|0)==0?m+4|0:m;if(!p){m=j;j=l}else{f[l>>2]=p;m=j;j=l+4|0}}else{m=(f[m>>2]|0)==0?m+4|0:m;j=l}l=s?C:m;l=(j-l>>2|0)>(e|0)?l+(e<<2)|0:j;j=(f[t>>2]|0)+r|0;f[t>>2]=j}while((j|0)<0);j=m;e=l}else{j=m;e=l}y=C;if(j>>>0>>0){l=(y-j>>2)*9|0;n=f[j>>2]|0;if(n>>>0>=10){m=10;do{m=m*10|0;l=l+1|0}while(n>>>0>=m>>>0)}}else l=0;s=(w|0)==103;v=(k|0)!=0;m=k-((w|0)!=102?l:0)+((v&s)<<31>>31)|0;if((m|0)<(((e-y>>2)*9|0)+-9|0)){m=m+9216|0;r=C+4+(((m|0)/9|0)+-1024<<2)|0;m=((m|0)%9|0)+1|0;if((m|0)<9){n=10;do{n=n*10|0;m=m+1|0}while((m|0)!=9)}else n=10;o=f[r>>2]|0;p=(o>>>0)%(n>>>0)|0;m=(r+4|0)==(e|0);if(!(m&(p|0)==0)){q=(((o>>>0)/(n>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;x=(n|0)/2|0;c=p>>>0>>0?.5:m&(p|0)==(x|0)?1.0:1.5;if(B){x=(b[A>>0]|0)==45;c=x?-c:c;q=x?-q:q}m=o-p|0;f[r>>2]=m;if(q+c!=q){x=m+n|0;f[r>>2]=x;if(x>>>0>999999999){l=r;while(1){m=l+-4|0;f[l>>2]=0;if(m>>>0>>0){j=j+-4|0;f[j>>2]=0}x=(f[m>>2]|0)+1|0;f[m>>2]=x;if(x>>>0>999999999)l=m;else break}}else m=r;l=(y-j>>2)*9|0;o=f[j>>2]|0;if(o>>>0>=10){n=10;do{n=n*10|0;l=l+1|0}while(o>>>0>=n>>>0)}}else m=r}else m=r;m=m+4|0;m=e>>>0>m>>>0?m:e;x=j}else{m=e;x=j}w=m;while(1){if(w>>>0<=x>>>0){t=0;break}j=w+-4|0;if(!(f[j>>2]|0))w=j;else{t=1;break}}e=0-l|0;do if(s){j=((v^1)&1)+k|0;if((j|0)>(l|0)&(l|0)>-5){n=i+-1|0;k=j+-1-l|0}else{n=i+-2|0;k=j+-1|0}j=g&8;if(!j){if(t?(z=f[w+-4>>2]|0,(z|0)!=0):0)if(!((z>>>0)%10|0)){m=0;j=10;do{j=j*10|0;m=m+1|0}while(!((z>>>0)%(j>>>0)|0|0))}else m=0;else m=9;j=((w-y>>2)*9|0)+-9|0;if((n|32|0)==102){r=j-m|0;r=(r|0)>0?r:0;k=(k|0)<(r|0)?k:r;r=0;break}else{r=j+l-m|0;r=(r|0)>0?r:0;k=(k|0)<(r|0)?k:r;r=0;break}}else r=j}else{n=i;r=g&8}while(0);s=k|r;o=(s|0)!=0&1;p=(n|32|0)==102;if(p){v=0;j=(l|0)>0?l:0}else{j=(l|0)<0?e:l;j=$b(j,((j|0)<0)<<31>>31,D)|0;m=D;if((m-j|0)<2)do{j=j+-1|0;b[j>>0]=48}while((m-j|0)<2);b[j+-1>>0]=(l>>31&2)+43;j=j+-2|0;b[j>>0]=n;v=j;j=m-j|0}j=B+1+k+o+j|0;bc(a,32,d,j,g);Wb(a,A,B);bc(a,48,d,j,g^65536);if(p){n=x>>>0>C>>>0?C:x;r=F+9|0;o=r;p=F+8|0;m=n;do{l=$b(f[m>>2]|0,0,r)|0;if((m|0)==(n|0)){if((l|0)==(r|0)){b[p>>0]=48;l=p}}else if(l>>>0>F>>>0){Hc(F|0,48,l-E|0)|0;do l=l+-1|0;while(l>>>0>F>>>0)}Wb(a,l,o-l|0);m=m+4|0}while(m>>>0<=C>>>0);if(s|0)Wb(a,3131,1);if(m>>>0>>0&(k|0)>0)while(1){l=$b(f[m>>2]|0,0,r)|0;if(l>>>0>F>>>0){Hc(F|0,48,l-E|0)|0;do l=l+-1|0;while(l>>>0>F>>>0)}Wb(a,l,(k|0)<9?k:9);m=m+4|0;l=k+-9|0;if(!(m>>>0>>0&(k|0)>9)){k=l;break}else k=l}bc(a,48,k+9|0,9,0)}else{s=t?w:x+4|0;if((k|0)>-1){t=F+9|0;r=(r|0)==0;e=t;o=0-E|0;p=F+8|0;n=x;do{l=$b(f[n>>2]|0,0,t)|0;if((l|0)==(t|0)){b[p>>0]=48;l=p}do if((n|0)==(x|0)){m=l+1|0;Wb(a,l,1);if(r&(k|0)<1){l=m;break}Wb(a,3131,1);l=m}else{if(l>>>0<=F>>>0)break;Hc(F|0,48,l+o|0)|0;do l=l+-1|0;while(l>>>0>F>>>0)}while(0);E=e-l|0;Wb(a,l,(k|0)>(E|0)?E:k);k=k-E|0;n=n+4|0}while(n>>>0>>0&(k|0)>-1)}bc(a,48,k+18|0,18,0);Wb(a,v,D-v|0)}bc(a,32,d,j,g^8192)}else{F=(i&32|0)!=0;j=B+3|0;bc(a,32,d,j,g&-65537);Wb(a,A,B);Wb(a,c!=c|0.0!=0.0?(F?3107:3111):F?3099:3103,3);bc(a,32,d,j,g^8192)}while(0);u=G;return ((j|0)<(d|0)?d:j)|0}function ec(a){a=+a;var b=0;p[s>>3]=a;b=f[s>>2]|0;I=f[s+4>>2]|0;return b|0}function fc(a,b){a=+a;b=b|0;return +(+gc(a,b))}function gc(a,b){a=+a;b=b|0;var c=0,d=0,e=0;p[s>>3]=a;c=f[s>>2]|0;d=f[s+4>>2]|0;e=Ic(c|0,d|0,52)|0;switch(e&2047){case 0:{if(a!=0.0){a=+gc(a*18446744073709551616.0,b);c=(f[b>>2]|0)+-64|0}else c=0;f[b>>2]=c;break}case 2047:break;default:{f[b>>2]=(e&2047)+-1022;f[s>>2]=c;f[s+4>>2]=d&-2146435073|1071644672;a=+p[s>>3]}}return +a}function hc(a,c,d){a=a|0;c=c|0;d=d|0;do if(a){if(c>>>0<128){b[a>>0]=c;a=1;break}d=(ic()|0)+188|0;if(!(f[f[d>>2]>>2]|0))if((c&-128|0)==57216){b[a>>0]=c;a=1;break}else{a=bb()|0;f[a>>2]=84;a=-1;break}if(c>>>0<2048){b[a>>0]=c>>>6|192;b[a+1>>0]=c&63|128;a=2;break}if(c>>>0<55296|(c&-8192|0)==57344){b[a>>0]=c>>>12|224;b[a+1>>0]=c>>>6&63|128;b[a+2>>0]=c&63|128;a=3;break}if((c+-65536|0)>>>0<1048576){b[a>>0]=c>>>18|240;b[a+1>>0]=c>>>12&63|128;b[a+2>>0]=c>>>6&63|128;b[a+3>>0]=c&63|128;a=4;break}else{a=bb()|0;f[a>>2]=84;a=-1;break}}else a=1;while(0);return a|0}function ic(){return db()|0}function jc(){return db()|0}function kc(a,c){a=a|0;c=c|0;var d=0,e=0;e=0;while(1){if((h[3133+e>>0]|0)==(a|0)){a=2;break}d=e+1|0;if((d|0)==87){d=3221;e=87;a=5;break}else e=d}if((a|0)==2)if(!e)d=3221;else{d=3221;a=5}if((a|0)==5)while(1){do{a=d;d=d+1|0}while((b[a>>0]|0)!=0);e=e+-1|0;if(!e)break;else a=5}return lc(d,f[c+20>>2]|0)|0}function lc(a,b){a=a|0;b=b|0;return yb(a,b)|0}function mc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((f[a+76>>2]|0)>-1){d=(ub(a)|0)==0;b=nc(a,b,c)|0;if(!d)sb(a)}else b=nc(a,b,c)|0;return b|0}function nc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if((c|0)==1)b=b-(f[a+8>>2]|0)+(f[a+4>>2]|0)|0;d=a+20|0;e=a+28|0;if((f[d>>2]|0)>>>0>(f[e>>2]|0)>>>0?(wa[f[a+36>>2]&7](a,0,0)|0,(f[d>>2]|0)==0):0)b=-1;else{f[a+16>>2]=0;f[e>>2]=0;f[d>>2]=0;if((wa[f[a+40>>2]&7](a,b,c)|0)<0)b=-1;else{f[a+8>>2]=0;f[a+4>>2]=0;f[a>>2]=f[a>>2]&-17;b=0}}return b|0}function oc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=u;u=u+128|0;g=m+124|0;l=m;h=l;i=528;j=h+124|0;do{f[h>>2]=f[i>>2];h=h+4|0;i=i+4|0}while((h|0)<(j|0));if((c+-1|0)>>>0>2147483646)if(!c){a=g;c=1;k=4}else{c=bb()|0;f[c>>2]=75;c=-1}else k=4;if((k|0)==4){k=-2-a|0;k=c>>>0>k>>>0?k:c;f[l+48>>2]=k;g=l+20|0;f[g>>2]=a;f[l+44>>2]=a;c=a+k|0;a=l+16|0;f[a>>2]=c;f[l+28>>2]=c;c=Ub(l,d,e)|0;if(k){l=f[g>>2]|0;b[l+(((l|0)==(f[a>>2]|0))<<31>>31)>>0]=0}}u=m;return c|0}function pc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a+20|0;e=f[d>>2]|0;a=(f[a+16>>2]|0)-e|0;a=a>>>0>c>>>0?c:a;Rc(e|0,b|0,a|0)|0;f[d>>2]=(f[d>>2]|0)+a;return c|0}function qc(a,b){a=a|0;b=b|0;rc(a,b)|0;return a|0}function rc(a,c){a=a|0;c=c|0;var d=0,e=0;d=c;a:do if(!((d^a)&3)){if(d&3)do{d=b[c>>0]|0;b[a>>0]=d;if(!(d<<24>>24))break a;c=c+1|0;a=a+1|0}while((c&3|0)!=0);d=f[c>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009)){e=a;while(1){c=c+4|0;a=e+4|0;f[e>>2]=d;d=f[c>>2]|0;if((d&-2139062144^-2139062144)&d+-16843009|0)break;else e=a}}e=8}else e=8;while(0);if((e|0)==8){e=b[c>>0]|0;b[a>>0]=e;if(e<<24>>24)do{c=c+1|0;a=a+1|0;e=b[c>>0]|0;b[a>>0]=e}while(e<<24>>24!=0)}return a|0}function sc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0;j=u;u=u+128|0;h=j;f[h>>2]=0;i=h+4|0;f[i>>2]=a;f[h+44>>2]=a;g=h+8|0;f[g>>2]=(a|0)<0?-1:a+2147483647|0;f[h+76>>2]=-1;Nb(h,0);c=Pb(h,c,1,d,e)|0;if(b|0)f[b>>2]=a+((f[i>>2]|0)+(f[h+108>>2]|0)-(f[g>>2]|0));u=j;return c|0}function tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=u;u=u+16|0;e=d;f[e>>2]=c;c=uc(a,b,e)|0;u=d;return c|0}function uc(a,b,c){a=a|0;b=b|0;c=c|0;return oc(a,2147483647,b,c)|0}function vc(a,b,c){a=a|0;b=b|0;c=c|0;wc(a,b,c)|0;return a|0}function wc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;g=c;do if(!((g^a)&3)){e=(d|0)!=0;a:do if(e&(g&3|0)!=0)while(1){g=b[c>>0]|0;b[a>>0]=g;if(!(g<<24>>24))break a;d=d+-1|0;c=c+1|0;a=a+1|0;e=(d|0)!=0;if(!(e&(c&3|0)!=0)){h=5;break}}else h=5;while(0);if((h|0)==5)if(!e){d=0;break}if(b[c>>0]|0){b:do if(d>>>0>3){e=c;while(1){c=f[e>>2]|0;if((c&-2139062144^-2139062144)&c+-16843009|0){c=e;break b}f[a>>2]=c;d=d+-4|0;c=e+4|0;a=a+4|0;if(d>>>0>3)e=c;else break}}while(0);h=11}}else h=11;while(0);c:do if((h|0)==11)if(!d)d=0;else while(1){h=b[c>>0]|0;b[a>>0]=h;if(!(h<<24>>24))break c;d=d+-1|0;a=a+1|0;if(!d){d=0;break}else c=c+1|0}while(0);Hc(a|0,0,d|0)|0;return a|0}function xc(a,b,c){a=a|0;b=b|0;c=c|0;c=sc(a,b,c,-2147483648,0)|0;return c|0}function yc(a,b){a=a|0;b=b|0;var c=0,d=0;c=u;u=u+16|0;d=c;f[d>>2]=b;b=Ub(f[99]|0,a,d)|0;u=c;return b|0}function zc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;do if((a|0)!=-1){if((f[c+76>>2]|0)>-1)g=ub(c)|0;else g=0;h=c+4|0;d=f[h>>2]|0;if(!d){Rb(c)|0;e=f[h>>2]|0;d=(g|0)!=0;if(!e)a=d;else i=7}else{e=d;d=(g|0)!=0;i=7}if((i|0)==7)if(e>>>0>((f[c+44>>2]|0)+-8|0)>>>0){i=e+-1|0;f[h>>2]=i;b[i>>0]=a;f[c>>2]=f[c>>2]&-17;if(!d)break;sb(c);break}else a=d;if(a){sb(c);a=-1}else a=-1}else a=-1;while(0);return a|0}function Ac(a){a=a|0;var b=0,c=0,d=0;if((f[a+76>>2]|0)>=0?(ub(a)|0)!=0:0){b=a+4|0;c=f[b>>2]|0;if(c>>>0<(f[a+8>>2]|0)>>>0){f[b>>2]=c+1;b=h[c>>0]|0}else b=Qb(a)|0;sb(a)}else d=3;do if((d|0)==3){b=a+4|0;c=f[b>>2]|0;if(c>>>0<(f[a+8>>2]|0)>>>0){f[b>>2]=c+1;b=h[c>>0]|0;break}else{b=Qb(a)|0;break}}while(0);return b|0}function Bc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;j=a&255;d=a&255;if((f[c+76>>2]|0)>=0?(ub(c)|0)!=0:0){if((d|0)!=(b[c+75>>0]|0)?(h=c+20|0,i=f[h>>2]|0,i>>>0<(f[c+16>>2]|0)>>>0):0){f[h>>2]=i+1;b[i>>0]=j}else d=vb(c,a)|0;sb(c)}else k=3;do if((k|0)==3){if((d|0)!=(b[c+75>>0]|0)?(e=c+20|0,g=f[e>>2]|0,g>>>0<(f[c+16>>2]|0)>>>0):0){f[e>>2]=g+1;b[g>>0]=j;break}d=vb(c,a)|0}while(0);return d|0}function Cc(a){a=a|0;var c=0,d=0,e=0;c=f[6]|0;e=bb()|0;e=ac(f[e>>2]|0)|0;if((f[c+76>>2]|0)>-1)d=ub(c)|0;else d=0;if(a|0?b[a>>0]|0:0){qb(a,ob(a)|0,1,c)|0;Bc(58,c)|0;Bc(32,c)|0}qb(e,ob(e)|0,1,c)|0;Bc(10,c)|0;if(d|0)sb(c);return}function Dc(a){a=a|0;var c=0,d=0,e=0,g=0;e=f[99]|0;if((f[e+76>>2]|0)>-1)g=ub(e)|0;else g=0;do if((pb(a,e)|0)<0)a=1;else{if((b[e+75>>0]|0)!=10?(c=e+20|0,d=f[c>>2]|0,d>>>0<(f[e+16>>2]|0)>>>0):0){f[c>>2]=d+1;b[d>>0]=10;a=0;break}a=(vb(e,10)|0)<0}while(0);if(g|0)sb(e);return a<<31>>31|0}function Ec(){}function Fc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (I=d,a-c>>>0|0)|0}function Gc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (I=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function Hc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;h=a+d|0;c=c&255;if((d|0)>=67){while(a&3){b[a>>0]=c;a=a+1|0}e=h&-4|0;g=e-64|0;i=c|c<<8|c<<16|c<<24;while((a|0)<=(g|0)){f[a>>2]=i;f[a+4>>2]=i;f[a+8>>2]=i;f[a+12>>2]=i;f[a+16>>2]=i;f[a+20>>2]=i;f[a+24>>2]=i;f[a+28>>2]=i;f[a+32>>2]=i;f[a+36>>2]=i;f[a+40>>2]=i;f[a+44>>2]=i;f[a+48>>2]=i;f[a+52>>2]=i;f[a+56>>2]=i;f[a+60>>2]=i;a=a+64|0}while((a|0)<(e|0)){f[a>>2]=i;a=a+4|0}}while((a|0)<(h|0)){b[a>>0]=c;a=a+1|0}return h-d|0}function Ic(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){I=b>>>c;return a>>>c|(b&(1<>>c-32|0}function Jc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){I=b<>>32-c;return a<>0]|0;if((c|0)<8)return c|0;c=b[w+(a>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=b[w+(a>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (b[w+(a>>>24)>>0]|0)+24|0}function Lc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=c;n=d;i=n;if(!k){g=(e|0)!=0;if(!i){if(g){f[e>>2]=(l>>>0)%(h>>>0);f[e+4>>2]=0}n=0;e=(l>>>0)/(h>>>0)>>>0;return (I=n,e)|0}else{if(!g){n=0;e=0;return (I=n,e)|0}f[e>>2]=a|0;f[e+4>>2]=b&0;n=0;e=0;return (I=n,e)|0}}g=(i|0)==0;do if(h){if(!g){g=(_(i|0)|0)-(_(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<>>(m>>>0)&b;g=0;i=l<>2]=a|0;f[e+4>>2]=j|b&0;n=0;e=0;return (I=n,e)|0}g=h-1|0;if(g&h|0){i=(_(h|0)|0)+33-(_(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(e|0){f[e>>2]=g&l;f[e+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (I=o,p)|0}else{p=Kc(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (I=o,p)|0}}else{if(g){if(e|0){f[e>>2]=(k>>>0)%(h>>>0);f[e+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (I=o,p)|0}if(!l){if(e|0){f[e>>2]=0;f[e+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (I=o,p)|0}g=i-1|0;if(!(g&i)){if(e|0){f[e>>2]=a|0;f[e+4>>2]=g&k|b&0}o=0;p=k>>>((Kc(i|0)|0)>>>0);return (I=o,p)|0}g=(_(i|0)|0)-(_(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<>2]=a|0;f[e+4>>2]=j|b&0;o=0;p=0;return (I=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=c|0|0;l=n|d&0;k=Gc(m|0,l|0,-1,-1)|0;c=I;j=i;i=0;do{d=j;j=g>>>31|j<<1;g=i|g<<1;d=a<<1|d>>>31|0;n=a>>>31|b<<1|0;Fc(k|0,c|0,d|0,n|0)|0;p=I;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=Fc(d|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=I;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(e|0){f[e>>2]=a;f[e+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (I=o,p)|0}function Mc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Lc(a,b,c,d,0)|0}function Nc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=X(e,f)|0;d=a>>>16;a=(c>>>16)+(X(e,d)|0)|0;e=b>>>16;b=X(e,f)|0;return (I=(a>>>16)+(X(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function Oc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=Nc(e,f)|0;a=I;return (I=(X(b,f)|0)+(X(d,e)|0)+a|a&0,c|0|0)|0}function Pc(a){a=a|0;var b=0,c=0;c=a+15&-16|0;b=f[r>>2]|0;a=b+c|0;if((c|0)>0&(a|0)<(b|0)|(a|0)<0){da()|0;ja(12);return -1}f[r>>2]=a;if((a|0)>(ca()|0)?(ba()|0)==0:0){f[r>>2]=b;ja(12);return -1}return b|0}function Qc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;g=u;u=u+16|0;e=g|0;Lc(a,b,c,d,e)|0;u=g;return (I=f[e+4>>2]|0,f[e>>2]|0)|0}function Rc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;if((d|0)>=8192)return ma(a|0,c|0,d|0)|0;h=a|0;g=a+d|0;if((a&3)==(c&3)){while(a&3){if(!d)return h|0;b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0;d=d-1|0}d=g&-4|0;e=d-64|0;while((a|0)<=(e|0)){f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2];f[a+12>>2]=f[c+12>>2];f[a+16>>2]=f[c+16>>2];f[a+20>>2]=f[c+20>>2];f[a+24>>2]=f[c+24>>2];f[a+28>>2]=f[c+28>>2];f[a+32>>2]=f[c+32>>2];f[a+36>>2]=f[c+36>>2];f[a+40>>2]=f[c+40>>2];f[a+44>>2]=f[c+44>>2];f[a+48>>2]=f[c+48>>2];f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];a=a+64|0;c=c+64|0}while((a|0)<(d|0)){f[a>>2]=f[c>>2];a=a+4|0;c=c+4|0}}else{d=g-4|0;while((a|0)<(d|0)){b[a>>0]=b[c>>0]|0;b[a+1>>0]=b[c+1>>0]|0;b[a+2>>0]=b[c+2>>0]|0;b[a+3>>0]=b[c+3>>0]|0;a=a+4|0;c=c+4|0}}while((a|0)<(g|0)){b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0}return h|0}function Sc(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function Tc(a,b){a=a|0;b=b|0;return va[a&1](b|0)|0}function Uc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return wa[a&7](b|0,c|0,d|0)|0}function Vc(a){a=a|0;$(0);return 0}function Wc(a,b,c){a=a|0;b=b|0;c=c|0;$(1);return 0} + +// EMSCRIPTEN_END_FUNCS +var va=[Vc,Za];var wa=[Wc,_a,$a,gb,pc,fb,Wc,Wc];return{_llvm_bswap_i32:Sc,_main:Ea,_i64Subtract:Fc,___udivdi3:Mc,setThrew:Ba,_bitshift64Lshr:Ic,_bitshift64Shl:Jc,_fflush:Lb,___errno_location:bb,_memset:Hc,_sbrk:Pc,_memcpy:Rc,stackAlloc:xa,___muldi3:Oc,___uremdi3:Qc,getTempRet0:Da,setTempRet0:Ca,_i64Add:Gc,dynCall_iiii:Uc,_emscripten_get_global_libc:Ya,dynCall_ii:Tc,stackSave:ya,_free:Wa,runPostSets:Ec,establishStackSpace:Aa,stackRestore:za,_malloc:Va,_emscripten_replace_memory:ua}}) + + +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _main=Module["_main"]=asm["_main"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var setThrew=Module["setThrew"]=asm["setThrew"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _fflush=Module["_fflush"]=asm["_fflush"];var _memset=Module["_memset"]=asm["_memset"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var stackSave=Module["stackSave"]=asm["stackSave"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _malloc=Module["_malloc"]=asm["_malloc"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;Module["FS"]=FS;Module["then"]=(function(func){if(Module["calledRun"]){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run() + + + + + + return caspr; +}; +if (typeof module === "object" && module.exports) { + module['exports'] = caspr; +}; diff --git a/src/worker/wasm/caspr.js b/src/worker/wasm/caspr.js new file mode 100644 index 00000000..1ace41e9 --- /dev/null +++ b/src/worker/wasm/caspr.js @@ -0,0 +1,14 @@ +var caspr = function(caspr) { + caspr = caspr || {}; + var Module = caspr; + +var Module;if(!Module)Module=(typeof caspr!=="undefined"?caspr:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function shell_read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function shell_print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function shell_printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*4294967296:+(low>>>0)+ +(high|0)*4294967296;return ret}),GLOBAL_BASE:1024,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}if(!Module["reallocBuffer"])Module["reallocBuffer"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module["usingWasm"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module["reallocBuffer"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["fround"]){var froundBuffer=new Float32Array(1);Math["fround"]=(function(x){froundBuffer[0]=x;return froundBuffer[0]})}Math.fround=Math["fround"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;function integrateWasmJS(){var method=Module["wasmJSMethod"]||"native-wasm";Module["wasmJSMethod"]=method;var wasmTextFile=Module["wasmTextFile"]||"caspr.wast";var wasmBinaryFile=Module["wasmBinaryFile"]||"caspr.wasm";var asmjsCodeFile=Module["asmjsCodeFile"]||"caspr.temp.asm.js";if(typeof Module["locateFile"]==="function"){wasmTextFile=Module["locateFile"](wasmTextFile);wasmBinaryFile=Module["locateFile"](wasmBinaryFile);asmjsCodeFile=Module["locateFile"](asmjsCodeFile)}var wasmPageSize=64*1024;var asm2wasmImports={"f64-rem":(function(x,y){return x%y}),"f64-to-int":(function(x){return x|0}),"i32s-div":(function(x,y){return(x|0)/(y|0)|0}),"i32u-div":(function(x,y){return(x>>>0)/(y>>>0)>>>0}),"i32s-rem":(function(x,y){return(x|0)%(y|0)|0}),"i32u-rem":(function(x,y){return(x>>>0)%(y>>>0)>>>0}),"debugger":(function(){debugger})};var info={"global":null,"env":null,"asm2wasm":asm2wasmImports,"parent":Module};var exports=null;function lookupImport(mod,base){var lookup=info;if(mod.indexOf(".")<0){lookup=(lookup||{})[mod]}else{var parts=mod.split(".");lookup=(lookup||{})[parts[0]];lookup=(lookup||{})[parts[1]]}if(base){lookup=(lookup||{})[base]}if(lookup===undefined){abort("bad lookupImport to ("+mod+")."+base)}return lookup}function mergeMemory(newBuffer){var oldBuffer=Module["buffer"];if(newBuffer.byteLength=0){Module["printErr"]("Memory size incompatibility issues may be due to changing TOTAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set TOTAL_MEMORY at runtime to something smaller than it was at compile time).")}return false}receiveInstance(instance);return exports}Module["asmPreload"]=Module["asm"];var asmjsReallocBuffer=Module["reallocBuffer"];var wasmReallocBuffer=(function(size){var PAGE_MULTIPLE=Module["usingWasm"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;size=alignUp(size,PAGE_MULTIPLE);var old=Module["buffer"];var oldSize=old.byteLength;if(Module["usingWasm"]){try{var result=Module["wasmMemory"].grow((size-oldSize)/wasmPageSize);if(result!==(-1|0)){return Module["buffer"]=Module["wasmMemory"].buffer}else{return null}}catch(e){return null}}else{exports["__growWasmMemory"]((size-oldSize)/wasmPageSize);return Module["buffer"]!==old?Module["buffer"]:null}});Module["reallocBuffer"]=(function(size){if(finalMethod==="asmjs"){return asmjsReallocBuffer(size)}else{return wasmReallocBuffer(size)}});var finalMethod="";Module["asm"]=(function(global,env,providedBuffer){global=fixImports(global);env=fixImports(env);if(!env["table"]){var TABLE_SIZE=Module["wasmTableSize"];if(TABLE_SIZE===undefined)TABLE_SIZE=1024;var MAX_TABLE_SIZE=Module["wasmMaxTableSize"];if(typeof WebAssembly==="object"&&typeof WebAssembly.Table==="function"){if(MAX_TABLE_SIZE!==undefined){env["table"]=new WebAssembly.Table({"initial":TABLE_SIZE,"maximum":MAX_TABLE_SIZE,"element":"anyfunc"})}else{env["table"]=new WebAssembly.Table({"initial":TABLE_SIZE,element:"anyfunc"})}}else{env["table"]=new Array(TABLE_SIZE)}Module["wasmTable"]=env["table"]}if(!env["memoryBase"]){env["memoryBase"]=Module["STATIC_BASE"]}if(!env["tableBase"]){env["tableBase"]=0}var exports;exports=doNativeWasm(global,env,providedBuffer);if(!exports)abort("no binaryen method succeeded. consider enabling more options, like interpreting, if you want that: https://github.com/kripken/emscripten/wiki/WebAssembly#binaryen-methods");return exports});var methodHandler=Module["asm"]}integrateWasmJS();var ASM_CONSTS=[];STATIC_BASE=Runtime.GLOBAL_BASE;STATICTOP=STATIC_BASE+7664;__ATINIT__.push();memoryInitializer=Module["wasmJSMethod"].indexOf("asmjs")>=0||Module["wasmJSMethod"].indexOf("interpret-asm2wasm")>=0?"caspr.js.mem":null;var STATIC_BUMP=7664;Module["STATIC_BASE"]=STATIC_BASE;Module["STATIC_BUMP"]=STATIC_BUMP;var tempDoublePtr=STATICTOP;STATICTOP+=16;var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdirTree:(function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},chunkSize:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___lock(){}function ___unlock(){}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module["wasmTableSize"]=10;Module["wasmMaxTableSize"]=10;function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity,"byteLength":byteLength};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_ii":invoke_ii,"invoke_iiii":invoke_iiii,"___syscall221":___syscall221,"___lock":___lock,"___syscall6":___syscall6,"___syscall5":___syscall5,"___unlock":___unlock,"___setErrNo":___setErrNo,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___syscall54":___syscall54,"___syscall140":___syscall140,"_exit":_exit,"__exit":__exit,"___syscall145":___syscall145,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};var asm=Module["asm"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _malloc=Module["_malloc"]=asm["_malloc"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var _free=Module["_free"]=asm["_free"];var _main=Module["_main"]=asm["_main"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackSave=Module["stackSave"]=asm["stackSave"];var _memset=Module["_memset"]=asm["_memset"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var setThrew=Module["setThrew"]=asm["setThrew"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;Module["FS"]=FS;if(memoryInitializer){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,Runtime.GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,Runtime.GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];if(request.status!==200&&request.status!==0){console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}applyMemoryInitializer(request.response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}Module["then"]=(function(func){if(Module["calledRun"]){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run() + + + + + return caspr; +}; +if (typeof module === "object" && module.exports) { + module['exports'] = caspr; +}; diff --git a/src/worker/wasm/caspr.wasm b/src/worker/wasm/caspr.wasm new file mode 100644 index 0000000000000000000000000000000000000000..b857ba97447c7defd8b01688d4d77f9cc5ed1403 GIT binary patch literal 39797 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 literal 0 HcmV?d00001 diff --git a/src/worker/workermain.js b/src/worker/workermain.js index e165553f..27282ddd 100644 --- a/src/worker/workermain.js +++ b/src/worker/workermain.js @@ -1066,10 +1066,73 @@ function writeDependencies(depends, FS, errors) { } } +function parseMIF(s) { + var lines = s.split('\n'); + var words = []; + for (var i=0; i0) s += ","; + s += out[i]; + } + //console.log(s); + return s; + } + }); var match_fn = makeErrorMatcher(errors, /%(.+?): (.+?:)?(\d+)?[:]?\s*(.+)/i, 3, 4); var verilator_mod = verilator_bin({ wasmBinary:wasmBlob['verilator_bin'], @@ -1155,6 +1218,7 @@ var TOOLS = { 'naken': assembleNAKEN, 'verilator': compileVerilator, 'yosys': compileYosys, + 'caspr': compileCASPR, } var TOOL_PRELOADFS = {