From 28f15da83869a642a067d82cccc227470f38fa67 Mon Sep 17 00:00:00 2001 From: hurzhurz Date: Sat, 10 Feb 2024 23:20:05 +0100 Subject: [PATCH] initial upload --- README.md | 7 + index.html | 237 +++++++++++++++++++++ lfs.js | 26 +++ lfs_js.js | 609 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 879 insertions(+) create mode 100644 README.md create mode 100644 index.html create mode 100644 lfs.js create mode 100644 lfs_js.js diff --git a/README.md b/README.md new file mode 100644 index 0000000..ac61d4d --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# LittleFS Disk Image Creator +This is a simple JavaScript based image creator for LittleFS. + +The purpose of it is to provide an easy-to-use solution to upload files to e.g. a Raspberry Pi Pico (RP2040) that can use this filesystem on its flash memory. + +It is based on [Dreagonmon/littlefs-js](https://github.com/Dreagonmon/littlefs-js). +Files `lfs.js` and `lfs_js.js` originate from a [minimal modified release](https://github.com/hurzhurz/littlefs-js/releases/tag/v2.5.1.0-name_max) of it. diff --git a/index.html b/index.html new file mode 100644 index 0000000..ab425b6 --- /dev/null +++ b/index.html @@ -0,0 +1,237 @@ + + + LittleFS Disk Image Creator + + + + +
+

LittleFS Disk Image Creator

+ https://github.com/hurzhurz/littlefs-image-creator +

+ This is a tool to create a simple LittleFS filesystem image with some files, locally in the browser without uploading them to a server.
+ It is meant to be used with a Raspberry Pi Pico (RP2040), but not limited to it. +

+

To use it, simply adjust parameters as needed (or select a preset), select files to include and click the corresponding button to create a .bin or .uf2 file.

+

+ The UF2 file allows easy flashing to the Raspberry Pi Pico: just press BOOTSEL while connecting via USB (or try the reboot button at the bottom of the page) and copy the file on the appearing drive.
+ If needed, the BIN file can be viewed and verified here: tniessen/littlefs-disk-img-viewer +

+
+
+

Apply Preset

+

+ Arduino Raspberry Pi Pico (RP2040): + + + + + + +

+
+

LFS settings

+

+ + + + + + +

+ +
+

UF2 settings

+

+ + + + + + +

+
+
+

Files

+

+ + +

+
+
+

Create Image

+

+ + +

+
+
+

+ +

+
+ + + diff --git a/lfs.js b/lfs.js new file mode 100644 index 0000000..d4e5973 --- /dev/null +++ b/lfs.js @@ -0,0 +1,26 @@ + +var LFSM = (() => { + var _scriptDir = import.meta.url; + + return ( +async function(LFSM = {}) { + +var Module=typeof LFSM!="undefined"?LFSM:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});["_lfs_format","_lfs_mount","_lfs_unmount","_lfs_remove","_lfs_rename","_lfs_stat","_lfs_file_open","_lfs_file_close","_lfs_file_sync","_lfs_file_read","_lfs_file_write","_lfs_file_seek","_lfs_file_truncate","_lfs_file_tell","_lfs_file_rewind","_lfs_file_size","_lfs_fs_traverse","_lfs_mkdir","_lfs_dir_open","_lfs_dir_close","_lfs_dir_read","_lfs_dir_seek","_lfs_dir_tell","_lfs_dir_rewind","_lfs_new","_lfs_new_config","_lfs_new_info","_lfs_new_file","_lfs_new_dir","_get_traverse_callback","_raw_malloc","_raw_free","_raw_sleep","_fflush","onRuntimeInitialized"].forEach(prop=>{if(!Object.getOwnPropertyDescriptor(Module["ready"],prop)){Object.defineProperty(Module["ready"],prop,{get:()=>abort("You are getting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>abort("You are setting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})}});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(Module["ENVIRONMENT"]){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)")}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;if(e&&typeof e=="object"&&e.stack){toLog=[e,e.stack]}err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){if(typeof process=="undefined"||!process.release||process.release.name!=="node")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");const{createRequire:createRequire}=await import("module");var require=createRequire(import.meta.url);var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=require("url").fileURLToPath(new URL("./",import.meta.url))}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});var nodeMajor=process.version.match(/^v(\d+)\./)[1];if(nodeMajor<15){process["on"]("unhandledRejection",function(reason){throw reason})}quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof process=="object"&&typeof require==="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(typeof read!="undefined"){read_=function shell_read(f){const data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){let data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data=="object");return data};readAsync=function readAsync(f,onload,onerror){setTimeout(()=>onload(readBinary(f)),0)};if(typeof clearTimeout=="undefined"){globalThis.clearTimeout=id=>{}}if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit=="function"){quit_=(status,toThrow)=>{logExceptionOnExit(toThrow);quit(status)}}if(typeof print!="undefined"){if(typeof console=="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{throw new Error("environment detection error")}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;checkIncomingModuleAPI();if(Module["arguments"])arguments_=Module["arguments"];legacyModuleProp("arguments","arguments_");if(Module["thisProgram"])thisProgram=Module["thisProgram"];legacyModuleProp("thisProgram","thisProgram");if(Module["quit"])quit_=Module["quit"];legacyModuleProp("quit","quit_");assert(typeof Module["memoryInitializerPrefixURL"]=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["pthreadMainPrefixURL"]=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["cdInitializerPrefixURL"]=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["filePackagePrefixURL"]=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["read"]=="undefined","Module.read option was removed (modify read_ in JS)");assert(typeof Module["readAsync"]=="undefined","Module.readAsync option was removed (modify readAsync in JS)");assert(typeof Module["readBinary"]=="undefined","Module.readBinary option was removed (modify readBinary in JS)");assert(typeof Module["setWindowTitle"]=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)");assert(typeof Module["TOTAL_MEMORY"]=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY");legacyModuleProp("read","read_");legacyModuleProp("readAsync","readAsync");legacyModuleProp("readBinary","readBinary");legacyModuleProp("setWindowTitle","setWindowTitle");assert(!ENVIRONMENT_IS_WORKER,"worker environment detected but not enabled at build time. Add 'worker' to `-sENVIRONMENT` to enable.");var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];legacyModuleProp("wasmBinary","wasmBinary");var noExitRuntime=Module["noExitRuntime"]||true;legacyModuleProp("noExitRuntime","noExitRuntime");var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( +// EMSCRIPTEN_START_ASM +function instantiate(ia){function e(f){f.grow=function(b){var a=this.length;this.length=this.length+b;return a};f.set=function(c,d){this[c]=d};f.get=function(c){return this[c]};return f}var g;var h=new Uint8Array(123);for(var c=25;c>=0;--c){h[48+c]=52+c;h[65+c]=c;h[97+c]=26+c}h[43]=62;h[47]=63;function n(o,p,q){var i,j,c=0,k=p,l=q.length,m=p+(l*3>>2)-(q[l-2]=="=")-(q[l-1]=="=");for(;c>4;if(k>2;if(k>>0<=244){g=z[1758];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+7072|0;d=z[a+7080>>2];a=z[d+8>>2];j:{if((b|0)==(a|0)){z[1758]=Hc(c)&g;break j}z[a+12>>2]=b;z[b+8>>2]=a}a=d+8|0;b=c<<3;z[d+4>>2]=b|3;b=b+d|0;z[b+4>>2]=z[b+4>>2]|1;break a}k=z[1760];if(k>>>0>=h>>>0){break i}if(b){a=2<>2];a=z[e+8>>2];k:{if((b|0)==(a|0)){g=Hc(d)&g;z[1758]=g;break k}z[a+12>>2]=b;z[b+8>>2]=a}z[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;z[c+4>>2]=d|1;z[a+e>>2]=d;if(k){b=(k&-8)+7072|0;f=z[1763];a=1<<(k>>>3);l:{if(!(a&g)){z[1758]=a|g;a=b;break l}a=z[b+8>>2]}z[b+8>>2]=f;z[a+12>>2]=f;z[f+12>>2]=b;z[f+8>>2]=a}a=e+8|0;z[1763]=c;z[1760]=d;break a}j=z[1759];if(!j){break i}c=z[(Ec(0-j&j)<<2)+7336>>2];f=(z[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=z[b+16>>2];if(!a){a=z[b+20>>2];if(!a){break m}}b=(z[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=z[c+24>>2];d=z[c+12>>2];if((d|0)!=(c|0)){a=z[c+8>>2];z[a+12>>2]=d;z[d+8>>2]=a;break b}b=c+20|0;a=z[b>>2];if(!a){a=z[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=z[b>>2];if(a){continue}b=d+16|0;a=z[d+16>>2];if(a){continue}break}z[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=z[1759];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=I(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=z[(g<<2)+7336>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(z[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=z[b+20>>2];b=z[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>2]}if(!a){break o}}while(1){b=(z[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=z[a+16>>2];if(b){a=b}else{a=z[a+20>>2]}if(a){continue}break}}if(!d|z[1760]-h>>>0<=f>>>0){break i}g=z[d+24>>2];c=z[d+12>>2];if((d|0)!=(c|0)){a=z[d+8>>2];z[a+12>>2]=c;z[c+8>>2]=a;break c}b=d+20|0;a=z[b>>2];if(!a){a=z[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=z[b>>2];if(a){continue}b=c+16|0;a=z[c+16>>2];if(a){continue}break}z[e>>2]=0;break c}a=z[1760];if(a>>>0>=h>>>0){d=z[1763];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;z[c+4>>2]=b|1;z[a+d>>2]=b;z[d+4>>2]=h|3;break s}z[d+4>>2]=a|3;a=a+d|0;z[a+4>>2]=z[a+4>>2]|1;c=0;b=0}z[1760]=b;z[1763]=c;a=d+8|0;break a}i=z[1761];if(i>>>0>h>>>0){b=i-h|0;z[1761]=b;c=z[1764];a=c+h|0;z[1764]=a;z[a+4>>2]=b|1;z[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(z[1876]){c=z[1878]}else{z[1879]=-1;z[1880]=-1;z[1877]=4096;z[1878]=4096;z[1876]=m+12&-16^1431655768;z[1881]=0;z[1869]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=z[1868];if(d){c=z[1866];g=c+b|0;if(d>>>0>>0|c>>>0>=g>>>0){break a}}t:{if(!(A[7476]&4)){u:{v:{w:{x:{d=z[1764];if(d){a=7480;while(1){c=z[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break x}a=z[a+8>>2];if(a){continue}break}}c=jc(0);if((ca|0)!=(l|0)){t()}if((c|0)==-1){break u}g=b;d=z[1877];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=z[1868];if(d){a=z[1866];f=a+g|0;if(d>>>0>>0|a>>>0>=f>>>0){break u}}a=jc(g);if((ca|0)!=(l|0)){t()}if((a|0)!=(c|0)){break w}break t}g=f&e-i;c=jc(g);if((ca|0)!=(l|0)){t()}if((z[a>>2]+z[a+4>>2]|0)==(c|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=z[1878];d=c+(j-g|0)&0-c;c=jc(d);if((ca|0)!=(l|0)){t()}if((c|0)==-1){break u}g=d+g|0;c=a;break t}if((c|0)!=-1){break t}}z[1869]=z[1869]|4}c=jc(b);if((ca|0)!=(l|0)){t()}b=(c|0)==-1;a=jc(0);if((ca|0)!=(l|0)){t()}if((a|0)==-1|b|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=z[1866]+g|0;z[1866]=a;if(a>>>0>C[1867]){z[1867]=a}y:{e=z[1764];if(e){a=7480;while(1){d=z[a>>2];b=z[a+4>>2];if((d+b|0)==(c|0)){break y}a=z[a+8>>2];if(a){continue}break}break f}a=z[1762];if(!(a>>>0<=c>>>0?a:0)){z[1762]=c}a=0;z[1871]=g;z[1870]=c;z[1766]=-1;z[1767]=z[1876];z[1873]=0;while(1){d=a<<3;b=d+7072|0;z[d+7080>>2]=b;z[d+7084>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;z[1761]=b;a=a+c|0;z[1764]=a;z[a+4>>2]=b|1;z[(c+d|0)+4>>2]=40;z[1765]=z[1880];break e}if(A[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}z[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;z[1764]=c;b=z[1761]+g|0;a=b-a|0;z[1761]=a;z[c+4>>2]=a|1;z[(b+e|0)+4>>2]=40;z[1765]=z[1880];break e}d=0;break b}c=0;break c}if(C[1762]>c>>>0){z[1762]=c}b=c+g|0;a=7480;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=z[a>>2]){a=z[a+8>>2];if(a){continue}break E}break}if(!(A[a+12|0]&8)){break D}}a=7480;while(1){b=z[a>>2];if(b>>>0<=e>>>0){f=b+z[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=z[a+8>>2];continue}}z[a>>2]=c;z[a+4>>2]=z[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;z[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){z[1764]=i;a=z[1761]+a|0;z[1761]=a;z[i+4>>2]=a|1;break A}if(z[1763]==(g|0)){z[1763]=i;a=z[1760]+a|0;z[1760]=a;z[i+4>>2]=a|1;z[a+i>>2]=a;break A}f=z[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=z[g+8>>2];b=f>>>3|0;c=z[g+12>>2];if((c|0)==(d|0)){z[1758]=z[1758]&Hc(b);break F}z[d+12>>2]=c;z[c+8>>2]=d;break F}h=z[g+24>>2];c=z[g+12>>2];G:{if((g|0)!=(c|0)){b=z[g+8>>2];z[b+12>>2]=c;z[c+8>>2]=b;break G}H:{f=g+20|0;b=z[f>>2];if(b){break H}f=g+16|0;b=z[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=z[f>>2];if(b){continue}f=c+16|0;b=z[c+16>>2];if(b){continue}break}z[d>>2]=0}if(!h){break F}d=z[g+28>>2];b=(d<<2)+7336|0;I:{if(z[b>>2]==(g|0)){z[b>>2]=c;if(c){break I}z[1759]=z[1759]&Hc(d);break F}z[h+(z[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}z[c+24>>2]=h;b=z[g+16>>2];if(b){z[c+16>>2]=b;z[b+24>>2]=c}b=z[g+20>>2];if(!b){break F}z[c+20>>2]=b;z[b+24>>2]=c}g=e+g|0;f=z[g+4>>2];a=a+e|0}z[g+4>>2]=f&-2;z[i+4>>2]=a|1;z[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+7072|0;c=z[1758];a=1<<(a>>>3);J:{if(!(c&a)){z[1758]=a|c;a=b;break J}a=z[b+8>>2]}z[b+8>>2]=i;z[a+12>>2]=i;z[i+12>>2]=b;z[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=I(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}z[i+28>>2]=f;z[i+16>>2]=0;z[i+20>>2]=0;b=(f<<2)+7336|0;d=z[1759];c=1<>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=z[b>>2];while(1){b=c;if((z[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=z[d+16>>2];if(c){continue}break}z[d+16>>2]=i}z[i+24>>2]=b;z[i+12>>2]=i;z[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;z[1761]=b;a=a+c|0;z[1764]=a;z[a+4>>2]=b|1;z[(c+d|0)+4>>2]=40;z[1765]=z[1880];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?e:a;z[d+4>>2]=27;a=z[1873];z[d+16>>2]=z[1872];z[d+20>>2]=a;a=z[1871];z[d+8>>2]=z[1870];z[d+12>>2]=a;z[1872]=d+8;z[1871]=g;z[1870]=c;z[1873]=0;a=d+24|0;while(1){z[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(e|0)){break e}z[d+4>>2]=z[d+4>>2]&-2;f=d-e|0;z[e+4>>2]=f|1;z[d>>2]=f;if(f>>>0<=255){b=(f&-8)+7072|0;c=z[1758];a=1<<(f>>>3);L:{if(!(c&a)){z[1758]=a|c;a=b;break L}a=z[b+8>>2]}z[b+8>>2]=e;z[a+12>>2]=e;z[e+12>>2]=b;z[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=I(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}z[e+28>>2]=a;z[e+16>>2]=0;z[e+20>>2]=0;b=(a<<2)+7336|0;d=z[1759];c=1<>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=z[b>>2];while(1){b=d;if((f|0)==(z[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=z[c+16>>2];if(d){continue}break}z[c+16>>2]=e}z[e+24>>2]=b;z[e+12>>2]=e;z[e+8>>2]=e;break e}a=z[b+8>>2];z[a+12>>2]=i;z[b+8>>2]=i;z[i+24>>2]=0;z[i+12>>2]=b;z[i+8>>2]=a}a=j+8|0;break a}a=z[b+8>>2];z[a+12>>2]=e;z[b+8>>2]=e;z[e+24>>2]=0;z[e+12>>2]=b;z[e+8>>2]=a}a=z[1761];if(a>>>0<=h>>>0){break d}b=a-h|0;z[1761]=b;c=z[1764];a=c+h|0;z[1764]=a;z[a+4>>2]=b|1;z[c+4>>2]=h|3;a=c+8|0;break a}z[1713]=48;a=0;break a}N:{if(!g){break N}b=z[d+28>>2];a=(b<<2)+7336|0;O:{if(z[a>>2]==(d|0)){z[a>>2]=c;if(c){break O}j=Hc(b)&j;z[1759]=j;break N}z[g+(z[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}z[c+24>>2]=g;a=z[d+16>>2];if(a){z[c+16>>2]=a;z[a+24>>2]=c}a=z[d+20>>2];if(!a){break N}z[c+20>>2]=a;z[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;z[d+4>>2]=a|3;a=a+d|0;z[a+4>>2]=z[a+4>>2]|1;break P}z[d+4>>2]=h|3;e=d+h|0;z[e+4>>2]=f|1;z[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+7072|0;c=z[1758];a=1<<(f>>>3);Q:{if(!(c&a)){z[1758]=a|c;a=b;break Q}a=z[b+8>>2]}z[b+8>>2]=e;z[a+12>>2]=e;z[e+12>>2]=b;z[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=I(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}z[e+28>>2]=a;z[e+16>>2]=0;z[e+20>>2]=0;b=(a<<2)+7336|0;R:{c=1<>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=z[b>>2];while(1){b=h;if((z[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=z[c+16>>2];if(h){continue}break}z[c+16>>2]=e}z[e+24>>2]=b;z[e+12>>2]=e;z[e+8>>2]=e;break P}a=z[b+8>>2];z[a+12>>2]=e;z[b+8>>2]=e;z[e+24>>2]=0;z[e+12>>2]=b;z[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=z[c+28>>2];a=(b<<2)+7336|0;U:{if(z[a>>2]==(c|0)){z[a>>2]=d;if(d){break U}z[1759]=Hc(b)&j;break T}z[i+(z[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}z[d+24>>2]=i;a=z[c+16>>2];if(a){z[d+16>>2]=a;z[a+24>>2]=d}a=z[c+20>>2];if(!a){break T}z[d+20>>2]=a;z[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;z[c+4>>2]=a|3;a=a+c|0;z[a+4>>2]=z[a+4>>2]|1;break V}z[c+4>>2]=h|3;d=c+h|0;z[d+4>>2]=f|1;z[d+f>>2]=f;if(k){b=(k&-8)+7072|0;e=z[1763];a=1<<(k>>>3);W:{if(!(a&g)){z[1758]=a|g;a=b;break W}a=z[b+8>>2]}z[b+8>>2]=e;z[a+12>>2]=e;z[e+12>>2]=b;z[e+8>>2]=a}z[1763]=d;z[1760]=f}a=c+8|0}_=m+16|0;return a|0}function ac(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,B=0,C=0,D=0,E=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0;if((ca|0)==2){z[da>>2]=z[da>>2]-92;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];g=z[b+24>>2];j=z[b+28>>2];l=z[b+32>>2];i=z[b+36>>2];n=z[b+40>>2];o=z[b+44>>2];m=z[b+48>>2];p=z[b+52>>2];q=z[b+56>>2];r=z[b+60>>2];s=z[b+64>>2];w=z[b+68>>2];C=z[b+72>>2];B=z[b+76>>2];D=z[b+80>>2];L=z[b+84>>2];K=z[b+88>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;u=z[z[da>>2]>>2]}if(!ca){g=_;j=g-80|0;_=j;z[j+76>>2]=b;L=j+55|0;w=j+56|0}a:{b:{c:{d:{e:{f:while(1){g:{if(!ca){i=b;b=(q^2147483647)<(f|0);if(b){break e}q=f+q|0;f=i;g=A[f|0]}h:{i:{if((ca|0)==2|g){while(1){if(!ca){b=g&255;g=!b}j:{if(!ca){k:{if(g){b=f;break k}b=(b|0)!=37;if(b){break j}g=f;while(1){if(A[g+1|0]!=37){b=g;break k}f=f+1|0;l=A[g+2|0];b=g+2|0;g=b;l=(l|0)==37;if(l){continue}break}}f=f-i|0;K=q^2147483647;g=(f|0)>(K|0);if(g){break e}}if((ca?u:0)?0:(ca|0)==2|a){bc(a,i,f);k=0;if((ca|0)==1){break a}}if(!ca){if(f){continue f}z[j+76>>2]=b;f=b+1|0;r=-1;if(!(!_b(x[b+1|0])|A[b+2|0]!=36)){r=x[b+1|0]-48|0;C=1;f=b+3|0}z[j+76>>2]=f;o=0;g=x[f|0];b=g-32|0;l:{if(b>>>0>31){l=f;break l}l=f;b=1<>2]=l;o=b|o;g=x[f+1|0];b=g-32|0;f=b>>>0>=32;if(f){break l}f=l;b=1<>2]=10;g=l+3|0;C=1;s=z[((x[l+1|0]<<3)+d|0)-384>>2];break n}if(C){break i}g=l+1|0;if(!a){z[j+76>>2]=g;C=0;s=0;break m}b=z[c>>2];z[c>>2]=b+4;C=0;s=z[b>>2]}z[j+76>>2]=g;if((s|0)>=0){break m}s=0-s|0;o=o|8192;break m}s=cc(j+76|0);if((s|0)<0){break e}g=z[j+76>>2]}f=0;n=-1;p:{if(A[g|0]!=46){b=g;B=0;break p}if(A[g+1|0]==42){q:{r:{b=!_b(x[g+2|0]);if(b){break r}b=A[g+3|0]!=36;if(b){break r}z[((x[g+2|0]<<2)+e|0)-192>>2]=10;b=g+4|0;n=z[((x[g+2|0]<<3)+d|0)-384>>2];break q}if(C){break i}b=g+2|0;n=0;if(!a){break q}g=z[c>>2];z[c>>2]=g+4;n=z[g>>2]}z[j+76>>2]=b;B=(n^-1)>>>31|0;break p}z[j+76>>2]=g+1;n=cc(j+76|0);b=z[j+76>>2];B=1}while(1){m=f;l=28;p=b;f=x[b|0];if(f-123>>>0<4294967238){break d}b=p+1|0;f=A[(f+F(m,58)|0)+3599|0];if(f-1>>>0<8){continue}break}z[j+76>>2]=b;s:{t:{if((f|0)!=27){if(!f){break d}if((r|0)>=0){z[(r<<2)+e>>2]=f;g=(r<<3)+d|0;f=z[g+4>>2];z[j+64>>2]=z[g>>2];z[j+68>>2]=f;break t}if(!a){break g}dc(j- -64|0,f,c);break s}if((r|0)>=0){break d}}f=0;g=!a;if(g){continue f}}g=o&-65537;o=o&8192?g:o;r=0;D=1024;f=x[p|0];f=m?(f&15)==3?f&-33:f:f;p=f-88|0;l=w}u:{v:{w:{x:{y:{if(!ca){z:{A:{B:{C:{D:{switch(p|0){default:E:{g=f-65|0;switch(g|0){case 1:case 3:break h;case 0:case 4:case 5:case 6:break v;case 2:break y;default:break E}}f=(f|0)==83;if(f){break z}break h;case 29:k=z[j+64>>2];h=z[j+68>>2];D=1024;break C;case 22:f=0;F:{G:{H:{I:{J:{K:{L:{g=m&255;switch(g|0){case 7:break F;case 6:break G;case 4:break H;case 3:break I;case 2:break J;case 1:break K;case 0:break L;default:continue f}}g=z[j+64>>2];z[g>>2]=q;continue f}g=z[j+64>>2];z[g>>2]=q;continue f}g=z[j+64>>2];z[g>>2]=q;z[g+4>>2]=q>>31;continue f}g=z[j+64>>2];y[g>>1]=q;continue f}g=z[j+64>>2];x[g|0]=q;continue f}g=z[j+64>>2];z[g>>2]=q;continue f}g=z[j+64>>2];z[g>>2]=q;z[g+4>>2]=q>>31;continue f;case 24:n=n>>>0<=8?8:n;o=o|8;f=120;case 0:case 32:i=w;g=z[j+68>>2];h=g;k=z[j+64>>2];if(g|k){p=f&32;while(1){i=i-1|0;x[i|0]=A[(k&15)+4128|0]|p;g=!h&k>>>0>15|(h|0)!=0;k=(h&15)<<28|k>>>4;h=h>>>4|0;if(g){continue}break}}m=!(o&8);g=m|!(z[j+64>>2]|z[j+68>>2]);if(g){break B}D=(f>>>4|0)+1024|0;r=2;break B;case 23:f=w;i=z[j+68>>2];h=i;k=z[j+64>>2];g=(h|k)!=0;if(g){while(1){f=f-1|0;g=k&7|48;x[f|0]=g;i=!h&k>>>0>7|(h|0)!=0;k=(h&7)<<29|k>>>3;h=h>>>3|0;if(i){continue}break}}i=f;if(!(o&8)){break B}f=w-i|0;g=f+1|0;n=(f|0)<(n|0)?n:g;break B;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break h;case 11:break u;case 9:case 13:case 14:case 15:break v;case 27:break A;case 12:case 17:break D}}k=z[j+64>>2];f=z[j+68>>2];h=f;if((f|0)<0){f=0-(((k|0)!=0)+h|0)|0;h=f;k=0-k|0;z[j+64>>2]=k;z[j+68>>2]=f;r=1;D=1024;break C}if(o&2048){r=1;D=1025;break C}r=o&1;D=r?1026:1024}g=w;if(h){while(1){g=g-1|0;O=k;E=0;N=0;f=h;M:{if(!f){ea=0;k=(k>>>0)/10|0;break M}G=61-I(f)|0;h=0-G|0;i=G&63;v=i&31;if(i>>>0>=32){M=0;v=f>>>v|0}else{M=f>>>v|0;v=((1<>>v}i=h&63;h=i&31;if(i>>>0>=32){J=k<>>32-h|f<>>31;E=v<<1|J>>>31;k=0-(h+(E>>>0>9)|0)>>31;i=k&10;v=E-i|0;M=h-(i>>>0>E>>>0)|0;J=J<<1|H>>>31;H=N|H<<1;E=k&1;N=E;G=G-1|0;if(G){continue}break}}ea=J<<1|H>>>31;k=E|H<<1}h=ea;x[g|0]=O-Fc(k,h,10,0)|48;if(f>>>0>9){continue}break}}i=k;if(i){while(1){g=g-1|0;f=(i>>>0)/10|0;m=i-F(f,10)|48;x[g|0]=m;p=i>>>0>9;i=f;if(p){continue}break}}i=g}if((n|0)<0?B:0){break e}o=B?o&-65537:o;k=z[j+64>>2];h=z[j+68>>2];f=!((k|h)!=0|n);if(f){i=w;n=0;break h}f=!(h|k)+(w-i|0)|0;g=(n|0)>(f|0);n=g?n:f;break h}l=n>>>0>=2147483647?2147483647:n;p=l;o=(l|0)!=0;f=z[j+64>>2];i=f?f:2408;m=i;B=!(i&3);N:{O:{P:{Q:{if(B|!l){break Q}while(1){if(!A[m|0]){break P}p=p-1|0;o=(p|0)!=0;m=m+1|0;if(!(m&3)){break Q}if(p){continue}break}}if(!o){break O}if(!(!A[m|0]|p>>>0<4)){while(1){f=z[m>>2];if(f-16843009&(f^-1)&-2139062144){break P}m=m+4|0;p=p-4|0;if(p>>>0>3){continue}break}}if(!p){break O}}while(1){if(!A[m|0]){break N}m=m+1|0;p=p-1|0;if(p){continue}break}}m=0}f=m?m-i|0:l;l=i+f|0;m=(n|0)>=0;if(m){o=g;n=f;break h}o=g;n=f;f=A[l|0];if(f){break e}break h}if(n){f=z[j+64>>2];break x}f=0}if(ca?(u|0)==1:1){ec(a,32,s,0,o);k=1;if((ca|0)==1){break a}}if(!ca){break w}}if(!ca){z[j+12>>2]=0;z[j+8>>2]=z[j+64>>2];f=j+8|0;z[j+64>>2]=f;n=-1}}if(!ca){g=f;f=0;R:{while(1){i=z[g>>2];if(!i){break R}l=gc(j+4|0,i);i=(l|0)<0;m=!(i|l>>>0>n-f>>>0);if(m){g=g+4|0;f=f+l|0;i=n>>>0>f>>>0;if(i){continue}break R}break}if(i){break c}}l=61;g=(f|0)<0;if(g){break d}}if(ca?(u|0)==2:1){ec(a,32,s,f,o);k=2;if((ca|0)==1){break a}}if(!ca){g=!f;if(g){f=0;break w}l=0;g=z[j+64>>2]}while(1){if(!ca){i=z[g>>2];m=!i;if(m){break w}i=gc(j+4|0,i);l=i+l|0;m=l>>>0>f>>>0;if(m){break w}m=j+4|0}if(ca?(u|0)==3:1){bc(a,m,i);k=3;if((ca|0)==1){break a}}if(!ca){g=g+4|0;i=f>>>0>l>>>0;if(i){continue}}break}}g=ca?g:o^8192;if(ca?(u|0)==4:1){ec(a,32,s,f,g);k=4;if((ca|0)==1){break a}}if(!ca){g=(f|0)<(s|0);f=g?s:f;continue f}}if(!ca){if((n|0)<0?B:0){break e}t()}}if(!ca){x[j+55|0]=z[j+64>>2];n=1;i=L;o=g;break h}}if(!ca){g=A[f+1|0];f=f+1|0;continue}break}}if(!ca){if(a){break b}if(!C){break g}f=1;while(1){a=z[(f<<2)+e>>2];if(a){b=(f<<3)+d|0;dc(b,a,c);q=1;f=f+1|0;if((f|0)!=10){continue}break b}break}q=1;if(f>>>0>=10){break b}while(1){a=z[(f<<2)+e>>2];if(a){break i}f=f+1|0;if((f|0)!=10){continue}break}break b}}if(!ca){l=28;break d}}if(!ca){p=l-i|0;g=(n|0)>(p|0)?n:p;if((g|0)>(r^2147483647)){break e}l=61;n=g+r|0;f=(n|0)<(s|0)?s:n;m=(K|0)<(f|0);if(m){break d}}if(ca?(u|0)==5:1){ec(a,32,f,n,o);k=5;if((ca|0)==1){break a}}if(ca?(u|0)==6:1){bc(a,D,r);k=6;if((ca|0)==1){break a}}l=ca?l:o^65536;if(ca?(u|0)==7:1){ec(a,48,f,n,l);k=7;if((ca|0)==1){break a}}if(ca?(u|0)==8:1){ec(a,48,g,p,0);k=8;if((ca|0)==1){break a}}if(ca?(u|0)==9:1){bc(a,i,p);k=9;if((ca|0)==1){break a}}g=ca?g:o^8192;if(ca?(u|0)==10:1){ec(a,32,f,n,g);k=10;if((ca|0)==1){break a}}if(!ca){continue}}break}if(!ca){q=0;break b}}l=ca?l:61}if(!ca){z[1713]=l}}q=ca?q:-1}if(!ca){_=j+80|0;return q}t()}z[z[da>>2]>>2]=k;z[da>>2]=z[da>>2]+4;h=z[da>>2];z[h>>2]=a;z[h+4>>2]=b;z[h+8>>2]=c;z[h+12>>2]=d;z[h+16>>2]=e;z[h+20>>2]=f;z[h+24>>2]=g;z[h+28>>2]=j;z[h+32>>2]=l;z[h+36>>2]=i;z[h+40>>2]=n;z[h+44>>2]=o;z[h+48>>2]=m;z[h+52>>2]=p;z[h+56>>2]=q;z[h+60>>2]=r;z[h+64>>2]=s;z[h+68>>2]=w;z[h+72>>2]=C;z[h+76>>2]=B;z[h+80>>2]=D;z[h+84>>2]=L;z[h+88>>2]=K;z[da>>2]=z[da>>2]+92;return 0}function vb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if((ca|0)==2){z[da>>2]=z[da>>2]-40;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];h=z[b+24>>2];i=z[b+28>>2];j=z[b+32>>2];m=z[b+36>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;k=z[z[da>>2]>>2]}if(!ca){f=_;e=f-224|0;_=e;h=z[a+40>>2]}a:{b:{if((ca|0)==2|h){while(1){f=ca?f:(h+8|0)==(b|0);c:{if(!ca){if(f){break c}i=z[b>>2];f=z[h+8>>2];j=(i|0)==(f|0);d:{if(j){break d}j=z[b+4>>2];m=z[h+12>>2];if((f|0)==(j|0)|(m|0)==(j|0)){break d}f=(i|0)!=(m|0);if(f){break c}}f=A[h+6|0]!=1;if(f){break c}f=!(A[h+50|0]&16);if(f){break c}i=z[z[a+104>>2]+40>>2];f=i>>>0>=C[h+44>>2];if(f){break c}}if(!(ca?k:0)){g=yb(a,h);l=0;if((ca|0)==1){break a}f=g}if(!(f?ca:1)){break b}if(ca?(k|0)==1:1){g=Ta(a,h);l=1;if((ca|0)==1){break a}f=g}if(!(f?ca:1)){break b}}if(!ca){h=z[h>>2];if(h){continue}}break}}if(!ca){z[e+216>>2]=z[b>>2];z[e+220>>2]=z[b+4>>2];f=z[b+28>>2];z[e+208>>2]=z[b+24>>2];z[e+212>>2]=f;f=z[b+20>>2];z[e+200>>2]=z[b+16>>2];z[e+204>>2]=f;f=z[b+12>>2];z[e+192>>2]=z[b+8>>2];z[e+196>>2]=f;f=z[b+4>>2];z[e+184>>2]=z[b>>2];z[e+188>>2]=f;h=e+152|0;f=e+184|0}if(ca?(k|0)==2:1){g=zb(a,f,b,c,d,h);l=2;if((ca|0)==1){break a}f=g}if(!ca){if((f|0)<0){break b}d=z[e+216>>2];c=z[b>>2];h=(d|0)==(c|0);e:{f:{if(h){break f}h=z[b+4>>2];i=z[e+220>>2];j=(h|0)==(i|0);if(j|(c|0)==(i|0)){break f}if((d|0)!=(h|0)){break e}}c=z[e+188>>2];z[b>>2]=z[e+184>>2];z[b+4>>2]=c;c=z[e+212>>2];z[b+24>>2]=z[e+208>>2];z[b+28>>2]=c;c=z[e+204>>2];z[b+16>>2]=z[e+200>>2];z[b+20>>2]=c;c=z[e+196>>2];z[b+8>>2]=z[e+192>>2];z[b+12>>2]=c}c=(f|0)==2}if((ca|0)==2|c){c=ca?c:a+72|0;if(ca?(k|0)==3:1){g=Da(a,b,c);l=3;if((ca|0)==1){break a}f=g}if(!ca){if(f){break b}c=z[e+156>>2];z[e+216>>2]=z[e+152>>2];z[e+220>>2]=c;c=A[b+23|0];z[e+148>>2]=b+24;z[e+144>>2]=c<<20|1611660296;c=e+216|0;d=e+144|0;b=e+152|0}if(ca?(k|0)==4:1){g=zb(a,b,c,d,1,0);l=4;if((ca|0)==1){break a}f=g}if(!ca){b=(f|0)<0;if(b){break b}g=z[e+180>>2];z[e+208>>2]=z[e+176>>2];z[e+212>>2]=g;g=z[e+172>>2];z[e+200>>2]=z[e+168>>2];z[e+204>>2]=g;g=z[e+164>>2];z[e+192>>2]=z[e+160>>2];z[e+196>>2]=g;g=z[e+156>>2];z[e+184>>2]=z[e+152>>2];z[e+188>>2]=g}}if(!ca){b=(f|0)!=1;f=0;if(b){break b}m=0}g:{h:{while(1){if(!ca){b=z[e+188>>2];z[e+80>>2]=z[e+184>>2];z[e+84>>2]=b;z[e+88>>2]=3517;z[e+64>>2]=1677;z[e+68>>2]=2242;b=z[e+220>>2];z[e+72>>2]=z[e+216>>2];z[e+76>>2]=b;b=e- -64|0}if(ca?(k|0)==5:1){Rb(2744,b);l=5;if((ca|0)==1){break a}}if(!ca){b=z[e+216>>2];c=z[a+32>>2];d=(b|0)==(c|0);i:{j:{if(d){break j}f=z[a+36>>2];d=z[e+220>>2];f=(f|0)==(b|0)|(f|0)==(d|0);if(f){break j}if((c|0)!=(d|0)){break i}}z[a+32>>2]=z[e+184>>2];z[a+36>>2]=z[e+188>>2]}h=z[a+40>>2];if(h){d=z[e+188>>2];f=z[e+184>>2];c=z[e+220>>2];while(1){g=z[h+8>>2];j=(g|0)==(b|0);k:{l:{if(j){break l}i=z[h+12>>2];j=(i|0)==(b|0)|(c|0)==(i|0);if(j){break l}if((c|0)!=(g|0)){break k}}z[h+8>>2]=f;z[h+12>>2]=d}i=A[h+6|0]!=2;m:{if(i){break m}i=z[h+44>>2];j=(b|0)==(i|0);n:{if(j){break n}g=z[h+48>>2];j=(g|0)==(b|0)|(c|0)==(g|0);if(j){break n}i=(c|0)!=(i|0);if(i){break m}}z[h+44>>2]=f;z[h+48>>2]=d}h=z[h>>2];if(h){continue}break}}c=e+152|0;b=e+216|0}if(ca?(k|0)==6:1){g=Ab(a,b,c);l=6;if((ca|0)==1){break a}c=g}if(!ca){if(!((c|0)==-2|(c|0)>=0)){f=c;break b}h=(c|0)==-2;d=!h;b=0}o:{p:{if((ca|0)==2|d){if(!ca){d=z[a+48>>2]+1|0;z[a+48>>2]=((d&1023)!=0)<<31|d&2147483647;i=z[e+156>>2];f=z[e+152>>2];j=!(d&1879048192);b=1023}q:{r:{if(!ca){if(j){break r}j=z[a+52>>2];s:{if((j|0)==(f|0)){break s}g=z[a+56>>2];j=(i|0)==(j|0)|(g|0)==(i|0);if(j){break s}j=(f|0)!=(g|0);if(j){break r}}z[e+52>>2]=3517;b=d>>>10&1023;z[e+48>>2]=b;z[e+44>>2]=i;z[e+40>>2]=f;z[e+36>>2]=2287;z[e+32>>2]=1677;d=e+32|0}if(ca?(k|0)==7:1){Rb(3454,d);l=7;if((ca|0)==1){break a}}if(!ca){z[a+52>>2]=0;z[a+56>>2]=0;z[a+48>>2]=z[a+48>>2]&-2147482625;i=z[e+156>>2];f=z[e+152>>2];j=(c>>>10&1023)>>>0>b>>>0;d=j?c-1024|0:c;break q}}d=ca?d:c}if(!ca){z[e+140>>2]=i;z[e+136>>2]=f;z[e+128>>2]=d;z[e+124>>2]=0;z[e+120>>2]=(b|0)!=1023?b<<10|1341128704:0;z[e+132>>2]=e+184;d=e+136|0;f=e+120|0;b=e+152|0}if(ca?(k|0)==8:1){g=zb(a,b,d,f,2,0);l=8;if((ca|0)==1){break a}b=g}if(!ca){if((b|0)<0){break g}d=(b|0)==1;if(d){break p}}}if(!ca){f=e+152|0;d=e+216|0}if(ca?(k|0)==9:1){g=Ja(a,d,f);l=9;if((ca|0)==1){break a}f=g}if(!ca){t:{switch(f+2|0){case 0:case 2:break t;default:break b}}d=!h;h=(f|0)==-2;if(d&h){break h}d=(f|0)==-2;if(d){break o}i=z[a+48>>2];if(i&1023){Ia(a,(c|0)!=-2?-1:0);i=z[a+48>>2]}f=1023;h=z[e+152>>2];c=!(i&1879048192);b=z[e+156>>2]}u:{if(!ca){if(c){break u}c=z[a+52>>2];d=(c|0)==(h|0);v:{if(d){break v}d=z[a+56>>2];j=(d|0)==(b|0);if(j|(b|0)==(c|0)){break v}c=(d|0)!=(h|0);if(c){break u}}z[e+20>>2]=3517;c=i>>>10|0;f=c&1023;z[e+16>>2]=f;z[e+12>>2]=b;z[e+8>>2]=h;z[e+4>>2]=2339;z[e>>2]=1677}if(ca?(k|0)==10:1){Rb(3454,e);l=10;if((ca|0)==1){break a}}if(!ca){z[a+52>>2]=0;z[a+56>>2]=0;z[a+48>>2]=z[a+48>>2]&-2147482625;h=z[e+152>>2];b=z[e+156>>2]}}if(!ca){z[e+220>>2]=b;z[e+216>>2]=h;z[e+108>>2]=0;z[e+112>>2]=A[e+175|0]<<20|1611660296;z[e+104>>2]=(f|0)!=1023?f<<10|1341128704:0;z[e+116>>2]=e+184;c=e+216|0;d=e+104|0;b=e+152|0}if(ca?(k|0)==11:1){g=zb(a,b,c,d,2,0);l=11;if((ca|0)==1){break a}b=g}if(!ca){c=(b|0)<0;if(c){break g}g=z[e+180>>2];z[e+208>>2]=z[e+176>>2];z[e+212>>2]=g;g=z[e+172>>2];z[e+200>>2]=z[e+168>>2];z[e+204>>2]=g;g=z[e+164>>2];z[e+192>>2]=z[e+160>>2];z[e+196>>2]=g;g=z[e+156>>2];z[e+184>>2]=z[e+152>>2];z[e+188>>2]=g;break o}}if(!ca){b=z[e+164>>2];z[e+192>>2]=z[e+160>>2];z[e+196>>2]=b;b=z[e+172>>2];z[e+200>>2]=z[e+168>>2];z[e+204>>2]=b;b=z[e+180>>2];z[e+208>>2]=z[e+176>>2];z[e+212>>2]=b;b=z[e+140>>2];z[e+216>>2]=z[e+136>>2];z[e+220>>2]=b;b=z[e+156>>2];z[e+184>>2]=z[e+152>>2];z[e+188>>2]=b;m=1;b=1}}if(!ca){b=(b|0)==1;if(b){continue}}break}if(!ca){f=m?3:0;break b}}if(!ca){V(2470,1677,2320,1166);t()}}f=ca?f:b}if(!ca){_=e+224|0;return f}t()}z[z[da>>2]>>2]=l;z[da>>2]=z[da>>2]+4;g=z[da>>2];z[g>>2]=a;z[g+4>>2]=b;z[g+8>>2]=c;z[g+12>>2]=d;z[g+16>>2]=e;z[g+20>>2]=f;z[g+24>>2]=h;z[g+28>>2]=i;z[g+32>>2]=j;z[g+36>>2]=m;z[da>>2]=z[da>>2]+40;return 0}function zb(a,b,c,d,e,f){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;if((ca|0)==2){z[da>>2]=z[da>>2]-60;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];g=z[b+24>>2];h=z[b+28>>2];j=z[b+32>>2];k=z[b+36>>2];l=z[b+40>>2];m=z[b+44>>2];n=z[b+48>>2];q=z[b+52>>2];r=z[b+56>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;o=z[z[da>>2]>>2]}if(!ca){j=_-112|0;_=j;k=(e|0)<=0}a:{b:{c:{d:{e:{f:{if(!ca){if(k){break f}g:{while(1){h:{i:{i=(h<<3)+d|0;l=z[i>>2]>>>20|0;n=l&2047;m=(n|0)!=1025;if(m){m=(n|0)==1279;if(m){g=B[b+20>>1];if(g){break i}V(1875,1677,2015,1141);t()}l=(l&1792)!=1536;if(l){break h}k=z[i+4>>2];m=z[k>>2];z[b+24>>2]=m;l=z[k+4>>2];z[b+28>>2]=l;x[b+23|0]=z[i>>2]>>>20&1;break h}y[b+20>>1]=B[b+20>>1]+1;break h}k=g-1|0;y[b+20>>1]=k;g=1;h=h+1|0;l=(h|0)!=(e|0);if(l){continue}break g}h=h+1|0;k=(h|0)!=(e|0);if(k){continue}break}g=!g;if(g){break f}k=B[b+20>>1]}g=k&65535;if(g){break f}g=!f;if(g){break c}}if(!(ca?o:0)){i=Ja(a,b,f);if((ca|0)==1){break a}g=i}if(!ca){j:{h=g+2|0;switch(h|0){case 2:break j;case 0:break f;default:break d}}g=2;f=A[f+23|0];if(f){break e}}}f=ca?f:!A[b+22|0];k:{if(!ca){if(f){break k}z[j+88>>2]=z[b>>2];f=z[b+12>>2];z[j+92>>2]=f;h=z[b+16>>2];z[j+104>>2]=f;z[j+100>>2]=-1;z[j+96>>2]=h;k=z[a+104>>2];g=z[k+72>>2];l=!g;if(l){g=z[k+28>>2]}z[j+80>>2]=a;z[j+108>>2]=g-8;z[j+84>>2]=j+88;g=j+80|0}if(ca?(o|0)==1:1){i=Db(a,b,f,h,d,e,0,0,0,0,8,g);p=1;if((ca|0)==1){break a}g=i}if(!ca){h=(g|0)==-28;f=h|(g|0)==-84;if(f){break k}if(g){break d}h=0;z[j+72>>2]=0;z[j+64>>2]=0;z[j+68>>2]=0;f=a+48|0;while(1){g=h<<2;i=g+(j- -64|0)|0;z[i>>2]=z[f+g>>2]^z[i>>2];h=h+1|0;if((h|0)!=3){continue}break}k=a+60|0;h=0;while(1){g=h<<2;i=g+(j- -64|0)|0;z[i>>2]=z[g+k>>2]^z[i>>2];h=h+1|0;if((h|0)!=3){continue}break}g=a+72|0;h=0;while(1){i=h<<2;n=i+(j- -64|0)|0;m=z[n>>2];z[n>>2]=z[g+i>>2]^m;h=h+1|0;l=(h|0)!=3;if(l){continue}break}g=z[j+64>>2];h=g&-1024;z[j+64>>2]=h}l:{if(!ca){if(!(z[j+68>>2]|h)){g=!z[j+72>>2];if(g){break l}}g=j- -64|0}if(ca?(o|0)==2:1){i=Da(a,b,g);p=2;if((ca|0)==1){break a}g=i}if(!ca){if(g){break d}h=j- -64|0;g=j+88|0}if(ca?(o|0)==3:1){i=Eb(a,g,2147482636,h);p=3;if((ca|0)==1){break a}g=i}if(!ca){l=(g|0)==-28;h=l|(g|0)==-84;if(h){break k}if(g){break d}}}g=ca?g:j+88|0;if(ca?(o|0)==4:1){i=Fb(a,g);p=4;if((ca|0)==1){break a}g=i}if(!ca){l=(g|0)==-28;h=l|(g|0)==-84;if(h){break k}if(g){break d}h=z[j+92>>2];if((h>>>0)%C[z[a+104>>2]+24>>2]|0){break b}z[b+12>>2]=h;z[b+16>>2]=z[j+96>>2];z[k+8>>2]=z[f+8>>2];g=z[f+4>>2];z[k>>2]=z[f>>2];z[k+4>>2]=g;z[a+76>>2]=0;z[a+80>>2]=0;g=0;z[a+72>>2]=0;break e}}if(!ca){z[a+16>>2]=-1;h=B[b+20>>1]}m:{n:{while(1){if(!ca){f=h;l=h&65535;k=l;h=0;g=k>>>0<2;if(g){break n}}while(1){if(!ca){z[j+88>>2]=0;m=0-h<<16>>16;n=j+88|0;g=h&65535}if(ca?(o|0)==5:1){i=Db(a,b,0,-1,d,e,1074789376,g,l,m,9,n);p=5;if((ca|0)==1){break a}g=i}if(!ca){if(g){break m}o:{if(k>>>0<=254){g=z[a+104>>2];n=z[g+28>>2];q=n-36|0;i=z[g+72>>2];g=z[g+24>>2];i=(((i?i:n)>>>1|0)+g|0)-1|0;g=i-((i>>>0)%(g>>>0)|0)|0;m=q>>>0>>0;r=z[j+88>>2];g=r>>>0<=(m?q:g)>>>0;if(g){break o}}h=(k>>>1|0)+h|0;k=l-h|0;g=k>>>0>1;if(g){continue}}}break}if(!ca){g=!h;if(g){break n}k=f&65535;g=h&65535}if(ca?(o|0)==6:1){i=Hb(a,b,d,e,b,g,k);p=6;if((ca|0)==1){break a}g=i}if(!ca){k=!g;if(k){continue}}break}if(!ca){h=(g|0)!=-28;if(h){break m}g=z[b+4>>2];i=z[b>>2];z[j+48>>2]=3517;z[j+36>>2]=1962;z[j+40>>2]=i;z[j+44>>2]=g;z[j+32>>2]=1677;g=j+32|0}if(ca?(o|0)==7:1){Rb(2542,g);p=7;if((ca|0)==1){break a}}}if(!ca){h=z[z[a+104>>2]+36>>2];g=(h|0)<=0}p:{q:{if(!ca){if(g){break q}h=h+1|1;g=(z[b+8>>2]+1>>>0)%(h>>>0)|0;if(g){break q}g=z[b>>2];h=(g|0)==1;if(!(h|!g)){g=C[b+4>>2]>1;if(g){break q}}z[j+88>>2]=0;g=j+88|0}if(ca?(o|0)==8:1){i=nb(a,10,g,0);p=8;if((ca|0)==1){break a}h=i}if(!ca){g=h?h:z[j+88>>2];if((g|0)<0){break d}h=z[z[a+104>>2]+32>>2]>>>1|0;g=h>>>0<=g>>>0;if(g){break q}h=z[b+8>>2];z[j+28>>2]=3517;z[j+24>>2]=h;z[j+20>>2]=1981;z[j+16>>2]=1677;g=j+16|0}if(ca?(o|0)==9:1){Rb(2971,g);p=9;if((ca|0)==1){break a}}g=ca?g:f&65535;if(ca?(o|0)==10:1){i=Hb(a,b,d,e,b,0,g);p=10;if((ca|0)==1){break a}g=i}if(!ca){k=!g;h=0;if(k){break p}h=(g|0)!=-28;if(h){break m}z[j+8>>2]=3517;z[j+4>>2]=1991;z[j>>2]=1677}if(ca?(o|0)==11:1){Rb(3056,j);p=11;if((ca|0)==1){break a}}}h=ca?h:f}f=ca?f:h&65535;if(ca?(o|0)==12:1){i=Ib(a,b,d,e,b,0,f);p=12;if((ca|0)==1){break a}g=i}}if(!ca){f=(g|0)<0;if(f){break d}}}if(!ca){h=z[a+40>>2];f=g}if((ca|0)==2|h){if(!ca){q=z[c>>2];r=(e|0)<=0;n=z[c+4>>2]}while(1){if(!ca){g=z[h+8>>2];k=(q|0)==(g|0)}r:{if(!ca){s:{if(k){break s}k=z[h+12>>2];l=(n|0)==(k|0);if(l|(g|0)==(n|0)){break s}g=(k|0)!=(q|0);if(g){break r}}g=z[b+4>>2];l=h+8|0;z[l>>2]=z[b>>2];z[l+4>>2]=g;g=z[b+28>>2];z[l+24>>2]=z[b+24>>2];z[l+28>>2]=g;g=z[b+20>>2];z[l+16>>2]=z[b+16>>2];z[l+20>>2]=g;g=z[b+12>>2];z[l+8>>2]=z[b+8>>2];z[l+12>>2]=g;g=!((c|0)==(l|0)|r);if(g){k=0;while(1){g=z[(k<<3)+d>>2];m=g>>>20&2047;t:{if((m|0)!=1025){if((m|0)!=1279){break t}m=B[h+4>>1];g=g>>>10&1023;if((m|0)==(g|0)){z[h+8>>2]=-1;z[h+12>>2]=-1;break t}if(g>>>0>=m>>>0){break t}y[h+4>>1]=m-1;if(A[h+6|0]!=2){break t}z[h+40>>2]=z[h+40>>2]-1;break t}m=B[h+4>>1];if(m>>>0<(g>>>10&1023)>>>0){break t}y[h+4>>1]=m+1;if(A[h+6|0]!=2){break t}z[h+40>>2]=z[h+40>>2]+1}k=k+1|0;g=(k|0)!=(e|0);if(g){continue}break}}k=h+32|0}while(1){if(!ca){g=B[h+4>>1];m=B[h+28>>1];if(!A[h+31|0]|g>>>0>>0){break r}g=g-m|0;y[h+4>>1]=g}if(ca?(o|0)==13:1){i=ya(a,l,k,-1,-1,0,0,0);p=13;if((ca|0)==1){break a}g=i}if(!(ca|g)){continue}break}if(!ca){break d}}if(!ca){h=z[h>>2];if(h){continue}}break}}g=ca?g:f}if(!ca){_=j+112|0;return g}}if(!ca){V(1234,1677,2028,1141);t()}}if(!ca){V(1969,1677,2102,1141);t()}t()}z[z[da>>2]>>2]=p;z[da>>2]=z[da>>2]+4;i=z[da>>2];z[i>>2]=a;z[i+4>>2]=b;z[i+8>>2]=c;z[i+12>>2]=d;z[i+16>>2]=e;z[i+20>>2]=f;z[i+24>>2]=g;z[i+28>>2]=h;z[i+32>>2]=j;z[i+36>>2]=k;z[i+40>>2]=l;z[i+44>>2]=m;z[i+48>>2]=n;z[i+52>>2]=q;z[i+56>>2]=r;z[da>>2]=z[da>>2]+60;return 0}function nb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,y=0,C=0,D=0,E=0,F=0;if((ca|0)==2){z[da>>2]=z[da>>2]-96;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];g=z[b+24>>2];j=z[b+28>>2];i=z[b+32>>2];n=z[b+36>>2];o=z[b+40>>2];m=z[b+44>>2];p=z[b+48>>2];q=z[b+52>>2];r=z[b+56>>2];s=z[b+60>>2];u=z[b+64>>2];v=z[b+68>>2];D=z[b+72>>2];E=z[b+76>>2];F=z[b+80>>2];w=z[b+84>>2];y=z[b+88>>2];C=z[b+92>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;k=z[z[da>>2]>>2]}if(!ca){g=_-144|0;_=g;f=z[898];j=g+32|0;z[j>>2]=z[897];z[j+4>>2]=f;f=z[896];z[g+24>>2]=z[895];z[g+28>>2]=f;f=z[894];z[g+16>>2]=z[893];z[g+20>>2]=f;f=z[892];z[g+8>>2]=z[891];z[g+12>>2]=f;f=z[a+120>>2]}a:{b:{c:{if((ca|0)==2|f){e=ca?e:z[f>>2]==-1;d:{if(!ca){if(e){break d}f=z[f+4>>2]==-1;if(f){break d}z[g+72>>2]=0;z[g+76>>2]=1;D=a+16|0;E=g- -64|0;f=g+80|0;F=f|4;n=1}while(1){if(!ca){f=1;e=0}while(1){if(!ca){i=g+72|0;e=z[i+(e<<2)>>2]}if(!(ca?k:0)){h=fa[b|0](c,e)|0;l=0;if((ca|0)==1){break a}e=h}if(!ca){if(e){break b}e=1;j=f&1;f=0;if(j){continue}}break}if(!ca){o=0;q=0;j=_+-64|0;_=j;w=z[g+72>>2];z[j+52>>2]=w;y=z[g+76>>2];z[j+56>>2]=y;u=a+16|0;f=1}e:{while(1){if(!ca){i=j+52|0;s=z[i+(q<<2)>>2];e=j+32|0}if(ca?(k|0)==1:1){h=pb(a,u,a,16,s,0,e,16);l=1;if((ca|0)==1){break a}e=h}i=ca?i:(e|0)==-84;f:{if(!ca){if(i){break f}if(e){break e}g:{if(!o){break g}i=z[j+32>>2];e=(i-z[g+124>>2]|0)>=0;if(e){break g}o=1;break f}e=z[j+36>>2]&2147483647;i=e>>>0<20;if(i){break f}i=z[z[a+104>>2]+28>>2];e=i>>>0>>0;if(e){break f}r=Ob(-1,j+32|0,16);e=z[j+36>>2]&2147483647;v=e-16|0;p=0}h:{if((ca|0)==2|v){while(1){if(!ca){i=p+16|0;e=j+63|0}if(ca?(k|0)==2:1){h=pb(a,u,a,1,s,i,e,1);l=2;if((ca|0)==1){break a}e=h}if(!ca){if(e){break h}r=Ob(r,j+63|0,1);p=p+1|0;e=(v|0)!=(p|0);if(e){continue}}break}}if(!ca){if(r){break f}z[g+100>>2]=s;o=1;i=j+52|0;e=z[i+(!q<<2)>>2];z[g+108>>2]=16;z[g+104>>2]=e;h=z[j+44>>2];z[g+132>>2]=z[j+40>>2];z[g+136>>2]=h;h=z[j+36>>2];z[g+124>>2]=z[j+32>>2];z[g+128>>2]=h;break f}}if(!ca){i=(e|0)!=-84;if(i){break e}}}if(!ca){q=1;e=f;f=0;if(e){continue}}break}if(!ca){e=0;if(o){break e}z[j+16>>2]=3517;z[j+12>>2]=y;z[j+8>>2]=w;z[j+4>>2]=4845;z[j>>2]=1677}if(ca?(k|0)==3:1){Rb(2586,j);l=3;if((ca|0)==1){break a}}e=ca?e:-84}if(!ca){_=j- -64|0;if(e){break b}j=(z[g+128>>2]&2147483647)-4|0;f=z[g+108>>2];e=j>>>0>=f+12>>>0}if((ca|0)==2|e){o=ca?o:z[g+100>>2];while(1){if(ca?(k|0)==4:1){h=pb(a,D,a,12,o,f,F,12);l=4;if((ca|0)==1){break a}e=h}if(!ca){if(e){break b}q=A[g+85|0];r=A[g+86|0];p=A[g+87|0];e=(A[g+84|0]&112)==16}if((ca|0)==2|e){if(!ca){i=z[g+88>>2];e=z[g+92>>2]}if(ca?(k|0)==5:1){h=qb(a,0,a,i,e,b,c);l=5;if((ca|0)==1){break a}e=h}if(!(e?ca:1)){break b}}if(!ca){f=(((f+q|0)+r|0)+p|0)+4|0;e=f+12>>>0<=j>>>0;if(e){continue}}break}}if(!ca){z[g+108>>2]=f;x[g+55|0]=0;x[g+56|0]=0;x[g+57|0]=0;x[g+58|0]=0;x[g+59|0]=0;x[g+60|0]=0;x[g+61|0]=0;x[g+62|0]=0;z[g+48>>2]=0;z[g+52>>2]=0;z[g+40>>2]=0;z[g+44>>2]=0;z[g+68>>2]=n;z[g+64>>2]=m;x[g+63|0]=1}while(1){i:{if(!ca){f=1;i=g+40|0;e=0}if(ca?(k|0)==6:1){h=ya(a,i,E,-1,-1,0,0,0);l=6;if((ca|0)==1){break a}i=h}if(!(i?ca:1)){break i}while(1){if(!ca){i=g+40|0;e=z[i+(e<<2)>>2]}if(ca?(k|0)==7:1){h=fa[b|0](c,e)|0;l=7;if((ca|0)==1){break a}e=h}if(!ca){if(e){break b}e=1;j=f&1;f=0;if(j){continue}}break}if(!ca){f=A[g+63|0];if(f){continue}}}break}if(!ca){m=z[g+132>>2];z[g+72>>2]=m;n=z[g+136>>2];z[g+76>>2]=n;f=(m|0)==-1;if(f){break d}f=(n|0)!=-1;if(f){continue}}break}}if(!ca){f=z[a+32>>2];z[g+32>>2]=f;e=z[a+36>>2];z[g+36>>2]=e;i=(f|0)==-1;f=i|(e|0)==-1;if(f){break c}j=g+32|0}}n=ca?n:0;while(1){if(!ca){if(z[z[a+104>>2]+32>>2]>>>1>>>0<=n>>>0){e=-84;break b}f=1;n=n+1|0;e=0}while(1){e=ca?e:z[((e<<2)+g|0)+32>>2];if(ca?(k|0)==8:1){h=fa[b|0](c,e)|0;l=8;if((ca|0)==1){break a}e=h}if(!ca){if(e){break b}e=1;m=f&1;f=0;if(m){continue}}break}f=ca?f:g+8|0;if(ca?(k|0)==9:1){h=ya(a,f,j,-1,-1,0,0,0);l=9;if((ca|0)==1){break a}e=h}if(!ca){if(e){break b}m=0;f=B[g+28>>1]}if((ca|0)==2|f){while(1){if(!ca){i=g+8|0;f=g+96|0;e=m<<10|536870920}if(ca?(k|0)==10:1){h=Ca(a,i,1880095744,e,0,f,8);l=10;if((ca|0)==1){break a}e=h}f=ca?f:(e|0)<0;j:{if(!ca){if(f){f=(e|0)==-2;if(f){break j}break b}f=e>>>20|0;e=(f|0)==514}if((ca|0)==2|e){if(!ca){f=z[g+100>>2];e=z[g+96>>2]}if(ca?(k|0)==11:1){h=qb(a,0,a,e,f,b,c);l=11;if((ca|0)==1){break a}e=h}if(!ca){if(e){break b}break j}}if(!ca){e=!d;f=e|(f|0)!=512;if(f){break j}f=1;e=0}while(1){if(!ca){i=g+96|0;e=z[i+(e<<2)>>2]}if(ca?(k|0)==12:1){h=fa[b|0](c,e)|0;l=12;if((ca|0)==1){break a}e=h}if(!ca){if(e){break b}e=1;o=f&1;f=0;if(o){continue}}break}}if(!ca){m=m+1|0;f=m>>>0>1];if(f){continue}}break}}if(!ca){f=z[g+32>>2]==-1;if(f){break c}f=z[g+36>>2]!=-1;if(f){continue}}break}}f=ca?f:z[a+40>>2];if(f|(ca|0)==2){while(1){d=ca?d:A[f+6|0]!=1;k:{if(!ca){if(d){break k}d=z[f+48>>2];e=(d&1114112)==65536}C=ca?C:e;if(C|(ca|0)==2){if(!ca){i=f- -64|0;e=z[f+40>>2];d=z[f+44>>2]}if(ca?(k|0)==13:1){h=qb(a,i,a,e,d,b,c);l=13;if((ca|0)==1){break a}e=h}if(!ca){if(e){break b}d=z[f+48>>2]}}if(!ca){d=(d&1179648)!=131072;if(d){break k}i=f- -64|0;e=z[f+56>>2];d=z[f+52>>2]}if(ca?(k|0)==14:1){h=qb(a,i,a,e,d,b,c);l=14;if((ca|0)==1){break a}e=h}if(!(e?ca:1)){break b}}if(!ca){f=z[f>>2];if(f){continue}}break}}e=ca?e:0}if(!ca){_=g+144|0;return e}t()}z[z[da>>2]>>2]=l;z[da>>2]=z[da>>2]+4;h=z[da>>2];z[h>>2]=a;z[h+4>>2]=b;z[h+8>>2]=c;z[h+12>>2]=d;z[h+16>>2]=e;z[h+20>>2]=f;z[h+24>>2]=g;z[h+28>>2]=j;z[h+32>>2]=i;z[h+36>>2]=n;z[h+40>>2]=o;z[h+44>>2]=m;z[h+48>>2]=p;z[h+52>>2]=q;z[h+56>>2]=r;z[h+60>>2]=s;z[h+64>>2]=u;z[h+68>>2]=v;z[h+72>>2]=D;z[h+76>>2]=E;z[h+80>>2]=F;z[h+84>>2]=w;z[h+88>>2]=y;z[h+92>>2]=C;z[da>>2]=z[da>>2]+96;return 0}function ya(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,A=0,D=0,E=0,F=0,G=0;if((ca|0)==2){z[da>>2]=z[da>>2]-96;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];g=z[b+24>>2];h=z[b+28>>2];i=z[b+32>>2];j=z[b+36>>2];k=z[b+40>>2];n=z[b+44>>2];l=z[b+48>>2];o=z[b+52>>2];p=z[b+56>>2];q=z[b+60>>2];r=z[b+64>>2];v=z[b+68>>2];s=z[b+72>>2];A=z[b+76>>2];D=z[b+80>>2];E=z[b+84>>2];F=z[b+88>>2];G=z[b+92>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;u=z[z[da>>2]>>2]}if(!ca){k=_+-64|0;_=k;n=z[z[a+104>>2]+32>>2];j=n>>>0<=C[c>>2];i=-84}a:{b:{if(!ca){if(C[c+4>>2]>=n>>>0|j){break b}z[k+56>>2]=0;z[k+60>>2]=0;j=1;n=0}while(1){if(!ca){o=l<<2;p=z[o+c>>2];i=k+56|0;o=o+i|0}if(!(ca?u:0)){m=pb(a,0,a,4,p,0,o,4);if((ca|0)==1){break a}i=m}if(!ca){p=(i|0)!=-84;if(p){if(i){break b}i=(l^1)<<2;p=z[i+(k+56|0)>>2];n=(z[o>>2]-p|0)>0?l:n}l=1;o=j&1;j=0;if(o){continue}}break}if(!ca){n=n&1;o=n<<2;z[b>>2]=z[o+c>>2];n=!n<<2;z[b+4>>2]=z[n+c>>2];j=k+56|0;c=z[(o|j)>>2];z[b+12>>2]=0;z[b+8>>2]=c;E=b+8|0;F=j|n;A=1;o=-1}c:{d:{while(1){if(!ca){z[k+48>>2]=-1;z[k+52>>2]=-1;z[k+44>>2]=Ob(-1,E,4);p=-1;r=0;v=0;n=o;c=0}e:{while(1){f:{if(!ca){D=0;l=z[b>>2];j=p;c=((j+((j&1023)==1023)&1023)+c|0)+4|0;p=k+40|0;i=z[z[a+104>>2]+28>>2]}if(ca?(u|0)==1:1){m=pb(a,0,a,i,l,c,p,4);w=1;if((ca|0)==1){break a}i=m}if(!ca){if(i){if((i|0)!=-84){break b}break f}z[k+44>>2]=Ob(z[k+44>>2],k+40|0,4);i=z[k+40>>2];l=i>>>8&65280;p=(i<<24|(i&65280)<<8|(i>>>24|l))^j;z[k+40>>2]=p;i=(p|0)<0;if(i){if((j&1879048192)!=1342177280){break f}n=z[z[a+104>>2]+24>>2];D=!(C[b+12>>2]%(n>>>0)|0);break f}j=z[z[a+104>>2]+28>>2];i=((p&1023)==1023)+p&1023;s=c+4|0;l=j>>>0>>0;if(l){break f}l=(p&1879048192)!=1342177280}if((ca|0)==2|l){if(!ca){l=4;j=p;i=!i}g:{if(!(i?ca:1)){break g}while(1){if(!ca){q=c+l|0;G=k+36|0;j=z[z[a+104>>2]+28>>2];i=z[b>>2]}if(ca?(u|0)==2:1){m=pb(a,0,a,j,i,q,G,1);w=2;if((ca|0)==1){break a}i=m}if(!ca){if(i){if((i|0)!=-84){break b}x[b+22|0]=0;j=z[k+40>>2];break g}z[k+44>>2]=Ob(z[k+44>>2],k+36|0,1);l=l+1|0;j=z[k+40>>2];i=l>>>0<(j+((j&1023)==1023)&1023)+4>>>0;if(i){continue}}break}}if(!ca){i=j>>>20|0;l=i&1792;q=(l|0)!=1536}h:{if(!ca){if(q){q=(l|0)!=1024;if(q){if(l){break h}i=j>>>10&1023;l=i+1|0;q=r&65535;i=i>>>0>>0;r=i?r:l;break h}r=(i<<24>>24)+r|0;l=(n&1047552|1341128704)==(j|0);if(l){n=n|-2147483648;break h}l=(n|0)==-1;if(l){n=-1;break h}q=n>>>10&1023;l=q>>>0<(j>>>10&1023)>>>0;if(l){break h}i=i<<24>>14;n=n+i|0;break h}l=z[b>>2];v=k+48|0;i=z[z[a+104>>2]+28>>2]}if(ca?(u|0)==3:1){m=pb(a,0,a,i,l,s,v,8);w=3;if((ca|0)==1){break a}i=m}if(!ca){if(i){if((i|0)==-84){break f}break b}v=(j&1048576)>>>20|0;j=z[k+40>>2]}}if(!ca){i=(e^j)&d;if(i){continue}i=z[b>>2];z[k+28>>2]=s;z[k+24>>2]=i;i=k+24|0}if(ca?(u|0)==4:1){m=fa[g|0](h,j,i)|0;w=4;if((ca|0)==1){break a}i=m}if(!ca){j=(i|0)<0;if(j){if((i|0)==-84){break f}break b}j=z[k+40>>2];l=!i;if(l){n=j;continue}l=!((j^n)&2147482624);if(l){n=-1;continue}i=(i|0)!=2;if(i){continue}i=j|-2147483648;l=n>>>10&1023;j=l>>>0<(j>>>10&1023)>>>0;n=j?n:i;continue}}if(!ca){l=k+36|0;i=z[b>>2]}if(ca?(u|0)==5:1){m=pb(a,0,a,j,i,s,l,4);w=5;if((ca|0)==1){break a}i=m}if(!ca){i:{j:{if(i){if((i|0)==-84){break j}break b}i=z[k+36>>2];j=(i|0)==z[k+44>>2];if(j){break i}}x[b+22|0]=0;break e}o=z[k+40>>2];i=k+44|0;z[a+44>>2]=Ob(z[a+44>>2],i,4);j=z[k+40>>2];y[b+20>>1]=r;p=o<<11&-2147483648^p;z[b+16>>2]=p;z[b+12>>2]=(j+((j&1023)==1023)&1023)+s;j=z[k+48>>2];z[b+24>>2]=j;o=z[k+52>>2];x[b+23|0]=v;z[b+28>>2]=o;z[k+44>>2]=-1;o=n;continue}}break}if(!ca){x[b+22|0]=D}}if(!ca){if(z[b+12>>2]){c=z[a+60>>2];d=!(c&1879048192);if(d){break d}d=z[a- -64>>2];e=z[b>>2];k:{if((d|0)==(e|0)){break k}g=d;d=z[b+4>>2];a=z[a+68>>2];d=(g|0)==(d|0)|(d|0)==(a|0);if(d){break k}if((a|0)!=(e|0)){break d}}c=c>>>10&1023;d=o>>>10&1023;a=o|-2147483648;if((c|0)==(d|0)){break c}a=-1;if((o|0)==-1){break c}a=c>>>0>>0?o-1024|0:o;break c}n=z[b+4>>2];p=z[b>>2];z[b+4>>2]=p;z[b>>2]=n;z[b+8>>2]=z[F>>2];c=A;A=0;if(c){continue}}break}if(!ca){z[k+16>>2]=3517;z[k+12>>2]=p;z[k+8>>2]=n;z[k+4>>2]=1225;z[k>>2]=1677}if(ca?(u|0)==6:1){Rb(2586,k);w=6;if((ca|0)==1){break a}}if(!ca){i=-84;break b}}a=ca?d:o}if(!ca){i=a;if(f){a=i>>>10&1023;c=B[b+20>>1];y[f>>1]=a>>>0>>0?a:c}if((i|0)>=0){break b}i=B[b+20>>1]>(i>>>10&1023)>>>0?-2:0}}if(!ca){_=k- -64|0;return i}t()}z[z[da>>2]>>2]=w;z[da>>2]=z[da>>2]+4;m=z[da>>2];z[m>>2]=a;z[m+4>>2]=b;z[m+8>>2]=c;z[m+12>>2]=d;z[m+16>>2]=e;z[m+20>>2]=f;z[m+24>>2]=g;z[m+28>>2]=h;z[m+32>>2]=i;z[m+36>>2]=j;z[m+40>>2]=k;z[m+44>>2]=n;z[m+48>>2]=l;z[m+52>>2]=o;z[m+56>>2]=p;z[m+60>>2]=q;z[m+64>>2]=r;z[m+68>>2]=v;z[m+72>>2]=s;z[m+76>>2]=A;z[m+80>>2]=D;z[m+84>>2]=E;z[m+88>>2]=F;z[m+92>>2]=G;z[da>>2]=z[da>>2]+96;return 0}function Ya(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,y=0;if((ca|0)==2){z[da>>2]=z[da>>2]-84;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];h=z[b+24>>2];i=z[b+28>>2];j=z[b+32>>2];k=z[b+36>>2];l=z[b+40>>2];o=z[b+44>>2];p=z[b+48>>2];q=z[b+52>>2];r=z[b+56>>2];s=z[b+60>>2];u=z[b+64>>2];v=z[b+68>>2];w=z[b+72>>2];x=z[b+76>>2];y=z[b+80>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;m=z[z[da>>2]>>2]}if(!ca){j=_-32|0;_=j;e=!(A[b+50|0]&16)}a:{b:{c:{d:{e:{if(!ca){if(e){break e}e=z[b+52>>2]+d|0;f=z[b+44>>2];f=e>>>0>f>>>0?e:f;l=z[a+104>>2];h=z[l+40>>2];e=z[l+72>>2];if(!e){e=z[l+28>>2]}e=e>>>3|0;k=e>>>0>h>>>0;e=k?h:e;h=e>>>0>=1022;e=(h?1022:e)>>>0>=f>>>0;if(e){break e}}if(!(ca?m:0)){g=yb(a,b);if((ca|0)==1){break a}f=g}if(!(f?ca:1)){break d}}if(!ca){e=!d;if(e){f=0;break b}r=b- -64|0;s=b+56|0;p=b+60|0;u=d}f:while(1){if(!ca){i=z[b+48>>2];e=i&131072}g:{h:{i:{j:{if(!ca){if(e){e=z[z[a+104>>2]+28>>2];f=z[p>>2];h=(e|0)!=(f|0);if(h){break g}k=z[b+52>>2];e=k;f=!(i&1048576);if(f){break j}break i}k=z[b+52>>2];e=i&1048576;if(e){break i}e=0;f=!k;if(f){break j}f=z[b+44>>2];h=k-1|0;e=z[b+40>>2]}if(ca?(m|0)==1:1){g=ab(a,r,e,f,h,s,p);n=1;if((ca|0)==1){break a}f=g}if(!ca){if(f){break d}f=z[z[a+104>>2]+40>>2];Qb(z[b+76>>2],255,f);z[b+64>>2]=-1;e=z[b+52>>2]}}if(!ca){k=e;z[a+96>>2]=z[z[a+104>>2]+32>>2];x=z[s>>2];e=j+28|0}if(ca?(m|0)==2:1){g=ub(a,e);n=2;if((ca|0)==1){break a}f=g}if(!ca){if(f){break d}y=k-9|0;v=k-1|0}k:{while(1){l:{o=ca?o:z[j+28>>2];if(ca?(m|0)==3:1){g=rb(a,o);n=3;if((ca|0)==1){break a}e=g}f=ca?f:(e|0)==-84;m:{if(!ca){if(f){e=w;break m}if(e){break l}e=!k;if(e){f=0;break k}f=0;q=v;e=z[z[a+104>>2]+28>>2];h=e-8|0;if(v>>>0>=h>>>0){f=(y-(Gc(((v>>>0)/(h>>>0)|0)-1|0)<<2)>>>0)/(h>>>0)|0;h=F(h,f)+(Gc(f)<<2)|0;q=v-h|0}l=q+1|0;e=(e|0)!=(l|0)}n:{if((ca|0)==2|e){if(!ca){f=0;e=!l;if(e){break k}}while(1){if(!ca){i=1;h=j+24|0;e=l-f|0}if(ca?(m|0)==4:1){g=pb(a,0,a,e,x,f,h,1);n=4;if((ca|0)==1){break a}e=g}if(!ca){if(e){break n}e=j+24|0}if(ca?(m|0)==5:1){g=sb(a,r,a,1,o,f,e,1);n=5;if((ca|0)==1){break a}h=g}if(!ca){if(h){i=4;e=w;f=(h|0)==-84;if(f){break n}i=1;e=h;break n}e=(f|0)==(q|0);f=f+1|0;e=!e;if(e){continue}}break}if(!ca){f=l;break k}}if(!ca){z[j+24>>2]=x;e=f+1|0;l=Ec(e);f=0}while(1){if(!ca){i=4;h=j+24|0;e=f<<2}if(ca?(m|0)==6:1){g=sb(a,r,a,1,o,e,h,4);n=6;if((ca|0)==1){break a}h=g}if(!ca){if(h){e=w;f=(h|0)==-84;if(f){break n}i=1;e=h;break n}h=(f|0)!=(l|0)}if((ca|0)==2|h){if(!ca){i=1;h=z[j+24>>2];q=j+24|0;f=f+1|0}if(ca?(m|0)==7:1){g=pb(a,0,a,4,h,e,q,4);n=7;if((ca|0)==1){break a}e=g}if(!ca){h=!e;if(h){continue}break n}}break}if(!ca){z[s>>2]=o;z[p>>2]=(l<<2)+4;i=1;e=0}}if(!ca){f=(i|0)!=4;if(f){break l}}}if(!ca){z[j+12>>2]=3517;z[j+8>>2]=o;z[j+4>>2]=2778;z[j>>2]=1677}if(ca?(m|0)==8:1){Rb(2898,j);n=8;if((ca|0)==1){break a}}if(!ca){z[r>>2]=-1;w=e;e=j+28|0}if(ca?(m|0)==9:1){g=ub(a,e);n=9;if((ca|0)==1){break a}f=g}if(!ca){e=!f;if(e){continue}break d}}break}if(!ca){i=z[b+48>>2];if(e){f=e;break c}f=z[p>>2];break h}}if(!ca){z[b+60>>2]=f;z[b+56>>2]=o;i=z[b+48>>2];break h}}if(!ca){z[s>>2]=-2;z[p>>2]=k;f=k}}if(!ca){z[b+48>>2]=i|131072;e=z[z[a+104>>2]+28>>2]}}if(!ca){e=e-f|0;f=e>>>0>u>>>0;e=f?u:e}while(1){if(!ca){h=z[p>>2];f=z[s>>2]}if(ca?(m|0)==10:1){g=sb(a,r,a,1,f,h,c,e);n=10;if((ca|0)==1){break a}f=g}if(!ca){h=(f|0)!=-84;if(h){if(f){break d}z[b+52>>2]=z[b+52>>2]+e;z[b+60>>2]=z[b+60>>2]+e;f=z[z[a+104>>2]+32>>2];z[a+96>>2]=f;c=c+e|0;u=u-e|0;if(u){continue f}f=d;break b}}if(ca?(m|0)==11:1){g=Bb(a,b);n=11;if((ca|0)==1){break a}f=g}if(!ca){h=!f;if(h){continue}}break}break}}i=ca?i:z[b+48>>2]}if(!ca){z[b+48>>2]=i|524288}}if(!ca){_=j+32|0;return f}t()}z[z[da>>2]>>2]=n;z[da>>2]=z[da>>2]+4;g=z[da>>2];z[g>>2]=a;z[g+4>>2]=b;z[g+8>>2]=c;z[g+12>>2]=d;z[g+16>>2]=e;z[g+20>>2]=f;z[g+24>>2]=h;z[g+28>>2]=i;z[g+32>>2]=j;z[g+36>>2]=k;z[g+40>>2]=l;z[g+44>>2]=o;z[g+48>>2]=p;z[g+52>>2]=q;z[g+56>>2]=r;z[g+60>>2]=s;z[g+64>>2]=u;z[g+68>>2]=v;z[g+72>>2]=w;z[g+76>>2]=x;z[g+80>>2]=y;z[da>>2]=z[da>>2]+84;return 0}function Ib(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if((ca|0)==2){z[da>>2]=z[da>>2]-60;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];g=z[b+24>>2];h=z[b+28>>2];j=z[b+32>>2];k=z[b+36>>2];m=z[b+40>>2];n=z[b+44>>2];p=z[b+48>>2];q=z[b+52>>2];r=z[b+56>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;o=z[z[da>>2]>>2]}if(!ca){j=_-80|0;_=j;m=z[b+8>>2]+1|0;p=z[a+104>>2];i=z[p+36>>2];n=(i|0)>0;if(n){h=!((m>>>0)%((i+1|1)>>>0)|0)}z[b+8>>2]=m;r=b+8|0;a:{b:{if(!(z[a+120>>2]|!h)){m=0;h=z[b>>2];n=0;c:{if(!h){break c}i=z[b+4>>2];n=0;if((i|0)==1){break c}n=0;if((h|0)==1){break c}n=(i|0)!=0}if(!n){q=1;break b}z[a+16>>2]=-1;k=1;h=1;break a}m=0}h=0}}d:{while(1){e:{h=ca?h:!h;f:{g:{if(h|(ca|0)==2){if(!ca){h=z[b+4>>2];z[j+68>>2]=-1;z[j+72>>2]=0;z[j+60>>2]=0;z[j+64>>2]=-1;z[j+56>>2]=h;i=z[p+72>>2];if(!i){i=z[p+28>>2]}k=i-8|0;z[j+76>>2]=k}if(!(ca?o:0)){i=rb(a,h);l=0;if((ca|0)==1){break d}h=i}k=ca?k:(h|0)==-84;h:{i:{j:{if(!ca){if(k){break j}if(h){break e}h=j+56|0}if(ca?(o|0)==1:1){i=Nb(a,h,r,4);l=1;if((ca|0)==1){break d}h=i}if(!ca){k=(h|0)==-84;if(k){break j}if(h){break e}z[j+48>>2]=a;z[j+52>>2]=j+56;k=0-f<<16>>16;h=j+48|0}if(ca?(o|0)==2:1){i=Db(a,e,0,-1,c,d,1074789376,f,g,k,8,h);l=2;if((ca|0)==1){break d}h=i}if(!ca){k=(h|0)==-84;if(k){break j}if(h){break e}h=z[b+24>>2]==-1}k:{if(!ca){if(h){break k}h=z[b+28>>2]==-1;if(h){break k}n=j+56|0;k=A[b+23|0]<<20|1611660296;h=b+24|0}if(ca?(o|0)==3:1){i=Eb(a,n,k,h);l=3;if((ca|0)==1){break d}h=i}if(!ca){k=(h|0)==-84;if(k){break j}if(h){break e}}}if(!ca){h=0;z[j+40>>2]=0;z[j+32>>2]=0;z[j+36>>2]=0;if(!m){i=a+60|0;while(1){k=h<<2;l=k+(j+32|0)|0;z[l>>2]=z[i+k>>2]^z[l>>2];h=h+1|0;if((h|0)!=3){continue}break}i=a+48|0;h=0;while(1){k=h<<2;l=k+(j+32|0)|0;z[l>>2]=z[i+k>>2]^z[l>>2];h=h+1|0;if((h|0)!=3){continue}break}}k=a+72|0;h=0;while(1){i=h<<2;l=i+(j+32|0)|0;z[l>>2]=z[i+k>>2]^z[l>>2];h=h+1|0;n=(h|0)!=3;if(n){continue}break}z[j+32>>2]=z[j+32>>2]&-1024;h=j+32|0}if(ca?(o|0)==4:1){i=Da(a,b,h);l=4;if((ca|0)==1){break d}h=i}if(!ca){if(h){break e}h=z[j+32>>2]}l:{m:{if(!ca){if(!(z[j+36>>2]|h)){h=!z[j+40>>2];if(h){break m}}k=j+56|0;h=j+32|0}if(ca?(o|0)==5:1){i=Eb(a,k,2147482636,h);l=5;if((ca|0)==1){break d}h=i}if(!ca){k=(h|0)==-84;if(k){break l}if(h){break e}}}h=ca?h:j+56|0;if(ca?(o|0)==6:1){i=Fb(a,h);l=6;if((ca|0)==1){break d}h=i}if(!ca){k=(h|0)==-84;if(k){break l}if(h){break e}c=z[j+60>>2];d=(c>>>0)%C[z[a+104>>2]+24>>2]|0;if(d){break g}z[b+12>>2]=c;y[b+20>>1]=g-f;ea=z[b>>2];z[b>>2]=z[b+4>>2];z[b+4>>2]=ea;z[b+16>>2]=z[j+64>>2];z[a+76>>2]=0;z[a+80>>2]=0;z[a+72>>2]=0;h=m;if(h){break e}b=z[a+52>>2];z[a+60>>2]=z[a+48>>2];z[a+64>>2]=b;z[a+68>>2]=z[a+56>>2];break e}}if(!ca){z[a+16>>2]=-1;k=1;h=!q;if(h){break i}break h}}if(!ca){z[a+16>>2]=-1;k=1;if(q){break h}}}if(!ca){h=z[b+4>>2];z[j+28>>2]=3517;z[j+24>>2]=h;z[j+20>>2]=1882;z[j+16>>2]=1677;h=j+16|0}if(ca?(o|0)==7:1){Rb(2898,h);l=7;if((ca|0)==1){break d}}k=ca?k:0}if(!ca){h=1;continue}}if(!ca){m=z[b>>2];h=!m}n:{if(!ca){o:{if(h){h=z[b+4>>2];break o}h=z[b+4>>2];m=(m|0)==1;if(m){break o}m=h>>>0>1;if(m){break n}}z[j+12>>2]=3517;z[j+8>>2]=h;z[j+4>>2]=1888;z[j>>2]=1677}if(ca?(o|0)==8:1){Rb(3099,j);l=8;if((ca|0)==1){break d}}if(!ca){h=-28;break e}}h=ca?h:b+4|0;if(ca?(o|0)==9:1){i=ub(a,h);l=9;if((ca|0)==1){break d}h=i}if(!ca){if(h){if((h|0)!=-28){break e}h=-28;if(!k){break e}}p=z[a+104>>2];m=1;q=0;break f}}if(!ca){V(1969,1677,1864,1190);t()}}if(!ca){h=0;continue}}break}if(!ca){_=j+80|0;return h}t()}z[z[da>>2]>>2]=l;z[da>>2]=z[da>>2]+4;i=z[da>>2];z[i>>2]=a;z[i+4>>2]=b;z[i+8>>2]=c;z[i+12>>2]=d;z[i+16>>2]=e;z[i+20>>2]=f;z[i+24>>2]=g;z[i+28>>2]=h;z[i+32>>2]=j;z[i+36>>2]=k;z[i+40>>2]=m;z[i+44>>2]=n;z[i+48>>2]=p;z[i+52>>2]=q;z[i+56>>2]=r;z[da>>2]=z[da>>2]+60;return 0}function wb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0;if((ca|0)==2){z[da>>2]=z[da>>2]-80;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];h=z[b+24>>2];k=z[b+28>>2];l=z[b+32>>2];m=z[b+36>>2];n=z[b+40>>2];o=z[b+44>>2];p=z[b+48>>2];q=z[b+52>>2];r=z[b+56>>2];s=z[b+60>>2];u=z[b+64>>2];v=z[b+68>>2];w=z[b+72>>2];x=z[b+76>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;i=z[z[da>>2]>>2]}if(!ca){d=_-224|0;_=d;c=!(B[a+48>>1]&1023)}a:{b:{if(!ca){if(c){break b}p=a+72|0;q=d+184|0;r=z[886];s=z[887];u=z[884];v=z[885];w=z[882];x=z[883];o=z[881];l=d+216|0;n=z[880]}c:while(1){if(!ca){z[l>>2]=r;z[l+4>>2]=s;z[d+208>>2]=u;z[d+212>>2]=v;z[d+200>>2]=w;z[d+204>>2]=x;z[d+192>>2]=n;z[d+196>>2]=o}while(1){c=ca?c:d+160|0;if(!(ca?i:0)){e=ya(a,c,l,-1,-1,0,0,0);j=0;if((ca|0)==1){break a}c=e}if(!ca){if(c){k=c;break b}c=A[d+215|0]}d:{e:{f:{g:{if(!ca){if(c){break g}c=d+128|0}if(ca?(i|0)==1:1){e=Ab(a,l,c);j=1;if((ca|0)==1){break a}c=e}if(!ca){g=(c|0)!=-2;f=g&(c|0)<0;if(f){break f}g=(c|0)!=-2;f=!(g|!b)}if((ca|0)==2|f){if(!ca){z[d+16>>2]=3517;z[d>>2]=1677;z[d+4>>2]=4514;e=z[d+220>>2];z[d+8>>2]=z[d+216>>2];z[d+12>>2]=e}if(ca?(i|0)==2:1){Rb(2637,d);j=2;if((ca|0)==1){break a}}c=ca?c:d+160|0;if(ca?(i|0)==3:1){e=Da(a,c,p);j=3;if((ca|0)==1){break a}c=e}if(!ca){if(c){break f}z[d+124>>2]=q;z[d+120>>2]=A[d+183|0]<<20|1611660296;f=d+120|0;c=d+192|0}if(ca?(i|0)==4:1){e=vb(a,c,f,1);j=4;if((ca|0)==1){break a}c=e}if(!ca){f=(c|0)>=0;g=!f;if(g){break f}c=(c|0)==3?2:3;m=f+m|0;break e}}if(!ca){f=(c|0)==-2;if(f){break g}g=d+112|0;h=c&1023;f=d+128|0}if(ca?(i|0)==5:1){e=Ca(a,f,2147482624,c,0,g,h);j=5;if((ca|0)==1){break a}f=e}if(!ca){if((f|0)<0){c=1;k=f;break e}g=z[d+112>>2];h=z[d+216>>2];h:{if((g|0)!=(h|0)){c=z[d+116>>2];f=z[d+220>>2];break h}c=z[d+116>>2];f=z[d+220>>2];if((c|0)==(f|0)){break g}}if((f|0)==(g|0)&(c|0)==(h|0)){break g}z[d+88>>2]=3517;z[d+84>>2]=c;z[d+80>>2]=g;z[d+76>>2]=f;z[d+72>>2]=h;z[d+68>>2]=4557;z[d+64>>2]=1677;c=d- -64|0}if(ca?(i|0)==6:1){Rb(2680,c);j=6;if((ca|0)==1){break a}}if(!ca){f=z[a+48>>2];c=!(f&1879048192)}i:{j:{if(!ca){if(c){break j}c=z[d+196>>2];g=z[d+192>>2];e=z[a+52>>2];k:{if((g|0)==(e|0)){break k}h=(c|0)==(e|0);e=z[a+56>>2];if(h|(e|0)==(c|0)){break k}h=(e|0)!=(g|0);if(h){break j}}z[d+52>>2]=3517;h=f>>>10&1023;z[d+48>>2]=h;z[d+44>>2]=c;z[d+40>>2]=g;z[d+36>>2]=4567;z[d+32>>2]=1677;c=d+32|0}if(ca?(i|0)==7:1){Rb(3386,c);j=7;if((ca|0)==1){break a}}if(!ca){z[a+52>>2]=0;z[a+56>>2]=0;z[a+48>>2]=z[a+48>>2]&-2147482625;c=f&1047552;f=(c|0)==1047552;if(f){break j}c=c|1341128704;break i}}c=ca?c:0}if(!ca){z[d+100>>2]=0;z[d+104>>2]=1611660296;z[d+96>>2]=c;z[d+108>>2]=d+112;f=d+96|0;c=d+192|0}if(ca?(i|0)==8:1){e=vb(a,c,f,2);j=8;if((ca|0)==1){break a}c=e}if(!ca){f=(c|0)>=0;k=f?k:c;c=f?(c|0)==3?2:3:1;m=f+m|0;break e}}if(!ca){c=z[d+188>>2];z[l>>2]=z[d+184>>2];z[l+4>>2]=c;c=z[d+180>>2];z[d+208>>2]=z[d+176>>2];z[d+212>>2]=c;c=z[d+172>>2];z[d+200>>2]=z[d+168>>2];z[d+204>>2]=c;c=z[d+164>>2];z[d+192>>2]=z[d+160>>2];z[d+196>>2]=c;break d}}if(!ca){k=c;break b}}if(!ca){f=(c|0)==3;if(f){break d}c=(c|0)==2;if(c){continue c}break b}}if(!ca&z[d+216>>2]!=-1){c=z[d+220>>2]!=-1;if(c){continue}}break}break}if(!ca){c=a;a=A[a+48|0];b=m<<24>>24;Ia(c,0-(a>>>0>>0?a:b)<<24>>24);k=0}}if(!ca){_=d+224|0;return k}t()}z[z[da>>2]>>2]=j;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[e+16>>2]=f;z[e+20>>2]=g;z[e+24>>2]=h;z[e+28>>2]=k;z[e+32>>2]=l;z[e+36>>2]=m;z[e+40>>2]=n;z[e+44>>2]=o;z[e+48>>2]=p;z[e+52>>2]=q;z[e+56>>2]=r;z[e+60>>2]=s;z[e+64>>2]=u;z[e+68>>2]=v;z[e+72>>2]=w;z[e+76>>2]=x;z[da>>2]=z[da>>2]+80;return 0}function Aa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if((ca|0)==2){z[da>>2]=z[da>>2]-36;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];f=z[b+16>>2];i=z[b+20>>2];j=z[b+24>>2];k=z[b+28>>2];l=z[b+32>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;h=z[z[da>>2]>>2]}if(!ca){c=_-288|0;_=c;b=va(a,b)}a:{b:{if(!ca){if(b){break b}g=z[898];k=c+280|0;e=k;z[e>>2]=z[897];z[e+4>>2]=g;e=z[896];z[c+272>>2]=z[895];z[c+276>>2]=e;e=z[894];z[c+264>>2]=z[893];z[c+268>>2]=e;e=z[892];z[c+256>>2]=z[891];z[c+260>>2]=e;i=a+48|0}while(1){c:{b=ca?b:z[c+280>>2]==-1;d:{e:{if(!ca){if(b){break e}b=z[c+284>>2]==-1;if(b){break e}if(z[z[a+104>>2]+32>>2]>>>1>>>0<=j>>>0){b=-84;break c}z[c+248>>2]=8;z[c+244>>2]=1225;z[c+240>>2]=a;d=c+240|0;b=c+256|0}if(!(ca?h:0)){e=ya(a,b,k,2147482624,267386888,0,6,d);g=0;if((ca|0)==1){break a}b=e}if(!ca){if((b|0)<0){break c}b=!b|(b&1023)==1023;if(b){break d}z[a+32>>2]=z[c+256>>2];z[a+36>>2]=z[c+260>>2];d=c+216|0;b=c+256|0}if(ca?(h|0)==1:1){e=Ca(a,b,2147482624,537919512,0,d,24);g=1;if((ca|0)==1){break a}b=e}if(!ca){if((b|0)<0){break c}e=z[c+216>>2];b=e&65535;d=e>>>16|0;l=(d|0)==2;f=!(l&!b)}f:{if((ca|0)==2|f){if(!ca){z[c+48>>2]=3517;z[c+44>>2]=b;z[c+40>>2]=d;z[c+36>>2]=4148;z[c+32>>2]=1677;b=c+32|0}if(ca?(h|0)==2:1){Rb(2932,b);g=2;if((ca|0)==1){break a}}if(!ca){break f}}b=ca?b:z[c+228>>2];if(b|(ca|0)==2){if(!ca){d=z[a+108>>2];f=d>>>0>>0}if((ca|0)==2|f){if(!ca){z[c+208>>2]=3517;z[c+204>>2]=d;z[c+200>>2]=b;z[c+196>>2]=4157;z[c+192>>2]=1677;b=c+192|0}if(ca?(h|0)==3:1){Rb(3199,b);g=3;if((ca|0)==1){break a}}if(!ca){break f}}if(!ca){z[a+108>>2]=b}}b=ca?b:z[c+232>>2];if(b|(ca|0)==2){if(!ca){d=z[a+112>>2];f=d>>>0>>0}if((ca|0)==2|f){if(!ca){z[c+176>>2]=3517;z[c+172>>2]=d;z[c+168>>2]=b;z[c+164>>2]=4168;z[c+160>>2]=1677;b=c+160|0}if(ca?(h|0)==4:1){Rb(3246,b);g=4;if((ca|0)==1){break a}}if(!ca){break f}}if(!ca){z[a+112>>2]=b}}b=ca?b:z[c+236>>2];if(b|(ca|0)==2){if(!ca){d=z[a+116>>2];f=d>>>0>>0}if((ca|0)==2|f){if(!ca){z[c+144>>2]=3517;z[c+140>>2]=d;z[c+136>>2]=b;z[c+132>>2]=4179;z[c+128>>2]=1677;b=c+128|0}if(ca?(h|0)==5:1){Rb(3152,b);g=5;if((ca|0)==1){break a}}if(!ca){break f}}if(!ca){z[a+116>>2]=b}}if(!ca){b=z[c+224>>2];d=z[a+104>>2];f=z[d+32>>2];l=(b|0)!=(f|0)}if((ca|0)==2|l){if(!ca){z[c+112>>2]=3517;z[c+108>>2]=f;z[c+104>>2]=b;z[c+100>>2]=4189;z[c+96>>2]=1677;b=c+96|0}if(ca?(h|0)==6:1){Rb(3293,b);g=6;if((ca|0)==1){break a}}if(!ca){break f}}if(!ca){b=z[c+220>>2];d=z[d+28>>2];f=(b|0)==(d|0);if(f){break d}z[c+80>>2]=3517;z[c+76>>2]=d;z[c+72>>2]=b;z[c+68>>2]=4196;z[c+64>>2]=1677;b=c- -64|0}if(ca?(h|0)==7:1){Rb(3340,b);g=7;if((ca|0)==1){break a}}}if(!ca){b=-22;break c}}if(!ca){b=-22;if(z[a+32>>2]==-1|z[a+36>>2]==-1){break c}j=z[a+56>>2];b=z[a+52>>2];k=z[a+48>>2];d=!(b|k)}g:{if(!ca){if(d){b=0;if(!j){break g}}z[c+20>>2]=3517;z[c+16>>2]=j;z[c+12>>2]=b;z[c+8>>2]=k;z[c+4>>2]=4220;z[c>>2]=1677}if(ca?(h|0)==8:1){Rb(2800,c);g=8;if((ca|0)==1){break a}}if(!ca){b=z[i>>2]}}if(!ca){z[a+48>>2]=(b>>>31|0)+b;b=z[i+4>>2];z[a+60>>2]=z[i>>2];z[a+64>>2]=b;z[a+68>>2]=z[i+8>>2];b=z[z[a+104>>2]+32>>2];z[a+96>>2]=b;z[a+88>>2]=0;z[a+92>>2]=0;z[a+84>>2]=C[a+44>>2]%(b>>>0);b=0;break b}}if(!ca){j=j+1|0;b=c+256|0}if(ca?(h|0)==9:1){e=Da(a,b,i);g=9;if((ca|0)==1){break a}b=e}if(!ca){d=!b;if(d){continue}}}break}if(!ca){za(a)}}if(!ca){_=c+288|0;return b|0}t()}z[z[da>>2]>>2]=g;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[e+16>>2]=f;z[e+20>>2]=i;z[e+24>>2]=j;z[e+28>>2]=k;z[e+32>>2]=l;z[da>>2]=z[da>>2]+36;return 0}function Db(a,b,c,d,e,f,g,h,i,j,k,l){var m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,D=0,E=0;if((ca|0)==2){z[da>>2]=z[da>>2]-88;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];g=z[b+24>>2];h=z[b+28>>2];i=z[b+32>>2];j=z[b+36>>2];k=z[b+40>>2];l=z[b+44>>2];m=z[b+48>>2];o=z[b+52>>2];p=z[b+56>>2];q=z[b+60>>2];v=z[b+64>>2];r=z[b+68>>2];s=z[b+72>>2];u=z[b+76>>2];w=z[b+80>>2];x=z[b+84>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;D=z[z[da>>2]>>2]}if(!ca){m=_;o=m-144|0;_=o}a:{b:while(1){u=ca?u:g&2146435072;c:{d:{e:{while(1){if(!ca){m=((((d&1023)==1023)+d&1023)+c|0)+4|0;x=m>>>0>2]}f:{if((ca|0)==2|x){if(!ca){v=o+12|0;c=z[b>>2]}if(!(ca?D:0)){n=pb(a,0,a,4,c,m,v,4);E=0;if((ca|0)==1){break a}q=n}if(!ca){if(q){break c}c=z[o+12>>2];p=(c>>>8&65280|c>>>24|((c&65280)<<8|c<<24))^d|-2147483648;z[o+12>>2]=p;c=z[b>>2];z[o+4>>2]=m+4;z[o>>2]=c;v=o;d=p;c=m;break f}}if(!ca){m=(f|0)<=0;if(m){q=0;break e}p=z[e>>2];z[o+12>>2]=p;f=f-1|0;v=z[e+4>>2];e=e+8|0}}if(!ca){m=(p^w)&u;if(m){continue}}break}if(!ca){m=!(g&1047552);if(m){r=k;k=0;break d}if(s>>>0<3){n=z[o+4>>2];u=F(s,60);m=u+(o+16|0)|0;z[m+52>>2]=z[o>>2];z[m+56>>2]=n;z[m+48>>2]=v;z[m+44>>2]=p;z[m+40>>2]=l;z[m+36>>2]=k;y[m+32>>1]=j;y[m+30>>1]=i;y[m+28>>1]=h;z[m+24>>2]=w;z[m+20>>2]=g;z[m+16>>2]=f;z[m+12>>2]=e;z[m+8>>2]=d;z[m+4>>2]=c;z[m>>2]=b;s=s+1|0;l=m+44|0;j=0;k=12;i=0;h=0;w=0;g=0;continue}V(1841,1677,846,1563);t()}}k=ca?k:1}while(1){k=ca?k:!k;if(k|(ca|0)==2){if(!ca){if(g&1047552){k=r;m=p>>>10&1023;u=m>>>0<(h&65535)>>>0;if(u){continue b}u=i&65535;m=u>>>0<=m>>>0;if(m){continue b}}m=p>>>20&2047;k=m-257|0}g:{if(!ca){h:{i:{switch(k|0){case 1:k=r;m=!(p&1023);if(m){continue b}u=j<<16>>16<<10;k=0;break h;case 0:break i;default:break g}}k=12;m=(r|0)==12;if(m){continue b}m=F(s,60);k=m+(o+16|0)|0;z[k+44>>2]=0;z[k+48>>2]=0;z[k+40>>2]=l;z[k+36>>2]=r;y[k+32>>1]=j;y[k+30>>1]=i;y[k+28>>1]=h;z[k+24>>2]=w;z[k+20>>2]=g;z[k+16>>2]=f;z[k+12>>2]=e;z[k+8>>2]=d;z[k+4>>2]=c;z[k>>2]=b;z[k+52>>2]=0;z[k+56>>2]=0;h=p&1023;j=(j-h|0)+(p>>>10&1023)|0;s=s+1|0;i=h+1|0;d=-1;f=0;g=1611660288;w=536870912;k=r;e=0;c=0;b=v;continue b}}while(1){if(!ca){m=F(k,12)+v|0;x=A[m|0]<<20;q=x|(z[m+8>>2]|(p&1047552)+u)|805306368;m=z[m+4>>2]}if(ca?(D|0)==1:1){n=fa[r|0](l,q,m)|0;E=1;if((ca|0)==1){break a}q=n}if(!ca){if((q|0)<0){break c}m=!q;if(m){k=k+1|0;p=z[o+12>>2];m=k>>>0<(p&1023)>>>0;if(m){continue}}}break}if(!ca){k=r;continue b}}if(!ca){k=r;m=!m;if(m){continue b}m=(j<<16>>16<<10)+p|0}if(ca?(D|0)==2:1){n=fa[r|0](l,m,v)|0;E=2;if((ca|0)==1){break a}q=n}if(!ca){if((q|0)<0){break c}m=!q;if(m){continue b}k=1;continue}}if(!ca){if(!s){break c}s=s-1|0;k=(o+16|0)+F(s,60)|0;l=z[k+40>>2];r=z[k+36>>2];j=B[k+32>>1];i=B[k+30>>1];h=B[k+28>>1];w=z[k+24>>2];g=z[k+20>>2];f=z[k+16>>2];e=z[k+12>>2];d=z[k+8>>2];c=z[k+4>>2];b=z[k>>2];p=z[k+44>>2];z[o+12>>2]=p;v=z[k+48>>2];n=z[k+56>>2];z[o>>2]=z[k+52>>2];z[o+4>>2]=n;k=0;continue}break}}break}if(!ca){_=o+144|0;return q}t()}z[z[da>>2]>>2]=E;z[da>>2]=z[da>>2]+4;n=z[da>>2];z[n>>2]=a;z[n+4>>2]=b;z[n+8>>2]=c;z[n+12>>2]=d;z[n+16>>2]=e;z[n+20>>2]=f;z[n+24>>2]=g;z[n+28>>2]=h;z[n+32>>2]=i;z[n+36>>2]=j;z[n+40>>2]=k;z[n+44>>2]=l;z[n+48>>2]=m;z[n+52>>2]=o;z[n+56>>2]=p;z[n+60>>2]=q;z[n+64>>2]=v;z[n+68>>2]=r;z[n+72>>2]=s;z[n+76>>2]=u;z[n+80>>2]=w;z[n+84>>2]=x;z[da>>2]=z[da>>2]+88;return 0}function Oa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if((ca|0)==2){z[da>>2]=z[da>>2]-48;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];g=z[b+20>>2];h=z[b+24>>2];i=z[b+28>>2];j=z[b+32>>2];k=z[b+36>>2];m=z[b+40>>2];o=z[b+44>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;l=z[z[da>>2]>>2]}if(!ca){e=z[a+40>>2];g=(e|0)!=0;j=(b|0)==(e|0);h=j|!e;a:{if(h){break a}while(1){e=z[e>>2];g=(e|0)!=0;h=(b|0)==(e|0);if(h){break a}if(e){continue}break}}if(g){V(2415,1677,5478,1252);t()}g=a;e=b;i=_-32|0;_=i;z[i+28>>2]=c;a=d&2}b:{c:{if((ca|0)==2|a){if(!(ca?l:0)){f=Ga(g);if((ca|0)==1){break b}h=f}if(!(h?ca:1)){break c}}if(!ca){z[e+60>>2]=0;z[e+52>>2]=0;z[e+48>>2]=d;z[e+80>>2]=3552;z[e+76>>2]=0;k=e+8|0;b=e+4|0;a=i+28|0}if(ca?(l|0)==1:1){f=Ha(g,k,a,b);n=1;if((ca|0)==1){break b}a=f}b=ca?b:(a|0)<0;d:{e:{if(b|(ca|0)==2){if(!ca){b=a;if((b|0)!=-2){break d}a=B[e+4>>1];if((a|0)==1023){b=-2;break d}x[e+6|0]=1;z[e>>2]=z[g+40>>2];z[g+40>>2]=e;b=-2;if(!(d&256)){break d}b=-36;c=z[i+28>>2];d=Xb(c);h=d>>>0>C[g+108>>2];if(h){break d}z[i+20>>2]=0;z[i+12>>2]=c;z[i+4>>2]=0;a=a<<10;z[i+16>>2]=a|537919488;b=a|1074790400;z[i>>2]=b;a=a|d|1048576;z[i+8>>2]=a;j=537919488}if(ca?(l|0)==2:1){f=xa(g,k,i,3);n=2;if((ca|0)==1){break b}a=f}if(!ca){b=(a|0)==-28?-36:a;a=!b;if(a){break e}break d}}if(!ca){x[e+6|0]=1;z[e>>2]=z[g+40>>2];z[g+40>>2]=e;b=-17;c=d&512;if(c){break d}b=-21;if((a&-1048576)!=1048576){break d}a=B[e+4>>1]<<10;if(d&1024){b=z[e+48>>2]|65536;z[e+48>>2]=b;j=a|537919488;break e}b=e+40|0;a=a|536870920}if(ca?(l|0)==3:1){f=Ca(g,k,1880095744,a,0,b,8);n=3;if((ca|0)==1){break b}j=f}if(!ca){b=j;a=(b|0)<0;if(a){break d}}}if(!ca){d=z[e+80>>2];a=!z[d+8>>2]}f:{if(!ca){if(a){a=d;break f}a=d;c=a;h=0;b=z[e+48>>2]}while(1){m=ca?m:b&1;o=ca?o:m;if(o|(ca|0)==2){if(!ca){a=z[c+4>>2]+F(h,12)|0;b=z[a+8>>2];c=b|(A[a|0]<<20|B[e+4>>1]<<10)|805306368;b=b&1023;a=z[a+4>>2]}if(ca?(l|0)==4:1){f=Ca(g,k,2147482624,c,0,a,b);n=4;if((ca|0)==1){break b}b=f}if(!ca){c=(b|0)!=-2;if(c&(b|0)<0){break d}b=z[e+48>>2];d=z[e+80>>2];a=d}}if(!ca){c=a;if(b&2){if(C[(z[c+4>>2]+F(h,12)|0)+8>>2]>C[g+116>>2]){b=-28;break d}b=b|65536;z[e+48>>2]=b;a=d}else{a=c}h=h+1|0;m=h>>>0>2];if(m){continue}}break}}if(!ca){g:{c=z[a>>2];if(c){z[e+76>>2]=c;b=z[z[g+104>>2]+40>>2];break g}b=z[z[g+104>>2]+40>>2];c=hc(b);z[e+76>>2]=c;if(c){break g}b=-12;break d}Qb(c,255,b);z[e+64>>2]=-1;h=0;if((j&2146435072)!=537919488){break c}z[e+40>>2]=-2;z[e+64>>2]=-2;z[e+68>>2]=0;b=j&1023;z[e+44>>2]=b;z[e+48>>2]=z[e+48>>2]|1048576;a=z[z[g+104>>2]+40>>2];z[e+72>>2]=a;if(!b){break c}c=z[e+76>>2];a=a>>>0>=1022?1022:a;b=a|B[e+4>>1]<<10|536870912}if(ca?(l|0)==5:1){f=Ca(g,k,1880095744,b,0,c,a);n=5;if((ca|0)==1){break b}b=f}if(!ca&(b|0)>=0){break c}}if(!ca){z[e+48>>2]=z[e+48>>2]|524288}if(ca?(l|0)==6:1){Pa(g,e);n=6;if((ca|0)==1){break b}}h=ca?h:b}if(!ca){_=i+32|0;return h|0}t()}z[z[da>>2]>>2]=n;z[da>>2]=z[da>>2]+4;f=z[da>>2];z[f>>2]=a;z[f+4>>2]=b;z[f+8>>2]=c;z[f+12>>2]=d;z[f+16>>2]=e;z[f+20>>2]=g;z[f+24>>2]=h;z[f+28>>2]=i;z[f+32>>2]=j;z[f+36>>2]=k;z[f+40>>2]=m;z[f+44>>2]=o;z[da>>2]=z[da>>2]+48;return 0}function La(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if((ca|0)==2){z[da>>2]=z[da>>2]-40;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];i=z[b+24>>2];h=z[b+28>>2];l=z[b+32>>2];m=z[b+36>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;j=z[z[da>>2]>>2]}if(!ca){f=_;d=f-176|0;_=d;z[d+172>>2]=b;z[d+168>>2]=c}a:{if(!(ca?j:0)){e=Ga(a);if((ca|0)==1){break a}b=e}b:{if(!ca){if(b){break b}c=d+172|0;b=d+136|0}if(ca?(j|0)==1:1){e=Ha(a,b,c,0);k=1;if((ca|0)==1){break a}l=e}if(!ca){if((l|0)<0){b=l;break b}b=-22;m=l>>>10|0;g=m&1023;if((g|0)==1023){break b}f=d+168|0;i=d+102|0;c=d+104|0}if(ca?(j|0)==2:1){e=Ha(a,c,f,i);k=2;if((ca|0)==1){break a}c=e}f=ca?f:(c|0)>=0;c:{if(!ca){d:{if(f){if((c&1047552)!=1047552){break d}break b}b=(c|0)!=-2;if(b){break c}b=B[d+102>>1]==1023;if(b){break c}}i=1;f=z[d+104>>2];b=z[d+136>>2];h=(f|0)!=(b|0);if(h){e=z[d+140>>2];f=(e|0)==(f|0);h=z[d+108>>2];i=f|((b|0)==(h|0)|(e|0)==(h|0))}z[d+56>>2]=z[a+40>>2];b=(c|0)==-2}e:{if(!ca){if(b){b=-36;f=Xb(z[d+168>>2])>>>0>C[a+108>>2];if(f){break b}b=B[d+102>>1]<=g>>>0&i;g=g+b|0;break e}b=-21;f=c>>>20&2047;if((f|0)!=(l>>>20|0)){break b}b=0;h=B[d+102>>1];if((h|0)==(g|0)&i){break b}b=(f|0)!=2;if(b){break e}f=h<<10|536870920;h=d+16|0;b=d+104|0}if(ca?(j|0)==3:1){e=Ca(a,b,1880095744,f,0,h,8);k=3;if((ca|0)==1){break a}b=e}if(!ca){if((b|0)<0){break b}f=d+16|0;b=d- -64|0}if(ca?(j|0)==4:1){e=ya(a,b,f,-1,-1,0,0,0);k=4;if((ca|0)==1){break a}b=e}if(!ca){if(b){break b}b=-39;if(B[d+84>>1]|A[d+87|0]){break b}b=z[a+48>>2]+1|0;f=((b&1023)!=0)<<31;z[a+48>>2]=f|b&2147483647;y[d+60>>1]=0;x[d+62|0]=0;b=d+56|0;z[a+40>>2]=b}}if(!ca){if(i){e=g<<10|1341128704}else{b=(g|0)==1023;z[a+48>>2]=z[a+48>>2]&-2147482625|(b?0:g<<10|1341128704);e=z[d+136>>2];z[a+56>>2]=b?0:z[d+140>>2];z[a+52>>2]=b?0:e;e=0}z[d+28>>2]=0;z[d+20>>2]=0;b=B[d+102>>1]<<10;z[d+24>>2]=b|1074790400;z[d+16>>2]=(c|0)!=-2?b|1341128704:0;f=z[d+168>>2];h=Xb(f);z[d+52>>2]=0;z[d+36>>2]=f;z[d+48>>2]=e;z[d+44>>2]=d+136;g=m&1023;z[d+40>>2]=b|g|269484032;z[d+32>>2]=b|(l&-1048576|h);f=d+16|0;b=d+104|0}if(ca?(j|0)==5:1){e=xa(a,b,f,5);k=5;if((ca|0)==1){break a}b=e}if(!(b?ca:1)){z[a+40>>2]=z[d+56>>2];break b}f:{if(!ca){if(i){break f}b=z[a+48>>2];if(!(b&1879048192)){break f}z[a+52>>2]=0;z[a+56>>2]=0;z[a+48>>2]=b&-2147482625;z[d+12>>2]=0;z[d+8>>2]=g<<10|1341128704;f=d+8|0;b=d+136|0}if(ca?(j|0)==6:1){e=xa(a,b,f,1);k=6;if((ca|0)==1){break a}b=e}if(!ca){if(!b){break f}z[a+40>>2]=z[d+56>>2];break b}}if(!ca){z[a+40>>2]=z[d+56>>2];b=(c|0)==-2;c=(c&2146435072)!=2097152;b=!(b|c)}if((ca|0)==2|b){if(!ca){Ia(a,-1);c=d- -64|0;b=d+104|0}if(ca?(j|0)==7:1){e=Ja(a,c,b);k=7;if((ca|0)==1){break a}b=e}if(!ca){if(b){break b}b=d+104|0}if(ca?(j|0)==8:1){e=Ka(a,b,c);k=8;if((ca|0)==1){break a}b=e}if(!(b?ca:1)){break b}}if(!ca){b=0;break b}}b=ca?b:c}if(!ca){_=d+176|0;return b|0}t()}z[z[da>>2]>>2]=k;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[e+16>>2]=f;z[e+20>>2]=g;z[e+24>>2]=i;z[e+28>>2]=h;z[e+32>>2]=l;z[e+36>>2]=m;z[da>>2]=z[da>>2]+40;return 0}function ic(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;a:{if(!a){break a}d=a-8|0;b=z[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=z[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=z[d+8>>2];b=b>>>3|0;c=z[d+12>>2];if((c|0)==(e|0)){z[1758]=z[1758]&Hc(b);break b}z[e+12>>2]=c;z[c+8>>2]=e;break b}h=z[d+24>>2];b=z[d+12>>2];c:{if((d|0)!=(b|0)){c=z[d+8>>2];z[c+12>>2]=b;z[b+8>>2]=c;break c}d:{e=d+20|0;c=z[e>>2];if(c){break d}e=d+16|0;c=z[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=z[e>>2];if(c){continue}e=b+16|0;c=z[b+16>>2];if(c){continue}break}z[g>>2]=0}if(!h){break b}e=z[d+28>>2];c=(e<<2)+7336|0;e:{if(z[c>>2]==(d|0)){z[c>>2]=b;if(b){break e}z[1759]=z[1759]&Hc(e);break b}z[h+(z[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}z[b+24>>2]=h;c=z[d+16>>2];if(c){z[b+16>>2]=c;z[c+24>>2]=b}c=z[d+20>>2];if(!c){break b}z[b+20>>2]=c;z[c+24>>2]=b;break b}b=z[f+4>>2];if((b&3)!=3){break b}z[1760]=a;z[f+4>>2]=b&-2;z[d+4>>2]=a|1;z[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=z[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(z[1764]==(f|0)){z[1764]=d;a=z[1761]+a|0;z[1761]=a;z[d+4>>2]=a|1;if(z[1763]!=(d|0)){break a}z[1760]=0;z[1763]=0;return}if(z[1763]==(f|0)){z[1763]=d;a=z[1760]+a|0;z[1760]=a;z[d+4>>2]=a|1;z[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=z[f+8>>2];b=b>>>3|0;c=z[f+12>>2];if((c|0)==(e|0)){z[1758]=z[1758]&Hc(b);break g}z[e+12>>2]=c;z[c+8>>2]=e;break g}h=z[f+24>>2];b=z[f+12>>2];h:{if((f|0)!=(b|0)){c=z[f+8>>2];z[c+12>>2]=b;z[b+8>>2]=c;break h}i:{e=f+20|0;c=z[e>>2];if(c){break i}e=f+16|0;c=z[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=z[e>>2];if(c){continue}e=b+16|0;c=z[b+16>>2];if(c){continue}break}z[g>>2]=0}if(!h){break g}e=z[f+28>>2];c=(e<<2)+7336|0;j:{if(z[c>>2]==(f|0)){z[c>>2]=b;if(b){break j}z[1759]=z[1759]&Hc(e);break g}z[h+(z[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}z[b+24>>2]=h;c=z[f+16>>2];if(c){z[b+16>>2]=c;z[c+24>>2]=b}c=z[f+20>>2];if(!c){break g}z[b+20>>2]=c;z[c+24>>2]=b}z[d+4>>2]=a|1;z[a+d>>2]=a;if(z[1763]!=(d|0)){break f}z[1760]=a;return}z[f+4>>2]=b&-2;z[d+4>>2]=a|1;z[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+7072|0;c=z[1758];a=1<<(a>>>3);k:{if(!(c&a)){z[1758]=a|c;a=b;break k}a=z[b+8>>2]}z[b+8>>2]=d;z[a+12>>2]=d;z[d+12>>2]=b;z[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=I(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}z[d+28>>2]=e;z[d+16>>2]=0;z[d+20>>2]=0;g=(e<<2)+7336|0;l:{m:{c=z[1759];b=1<>2]=d;z[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=z[g>>2];while(1){c=b;if((z[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=z[g+16>>2];if(b){continue}break}z[g+16>>2]=d;z[d+24>>2]=c}z[d+12>>2]=d;z[d+8>>2]=d;break l}a=z[c+8>>2];z[a+12>>2]=d;z[c+8>>2]=d;z[d+24>>2]=0;z[d+12>>2]=c;z[d+8>>2]=a}a=z[1766]-1|0;z[1766]=a?a:-1}}function Fb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if((ca|0)==2){z[da>>2]=z[da>>2]-60;b=z[da>>2];a=z[b>>2];d=z[b+8>>2];c=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];h=z[b+24>>2];i=z[b+28>>2];k=z[b+32>>2];j=z[b+36>>2];l=z[b+40>>2];m=z[b+44>>2];p=z[b+48>>2];q=z[b+52>>2];r=z[b+56>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;n=z[z[da>>2]>>2]}if(!ca){h=_-16|0;_=h;c=z[b+4>>2];d=z[z[a+104>>2]+24>>2];e=(c+d|0)+7|0;f=(e>>>0)%(d>>>0)|0;i=e-f|0;d=i>>>0>c>>>0}a:{b:{c:{if((ca|0)==2|d){if(!ca){l=a+16|0;k=i-8|0}while(1){if(!ca){z[h+12>>2]=-1;g=z[b>>2];f=c+4|0;c=i-f|0;c=(c>>>0>=1022?1022:c)+f|0;j=c>>>0>>0;d=j?c>>>0>>0?c:k:c;c=h+12|0}if(!(ca?n:0)){e=pb(a,0,a,4,g,d,c,4);o=0;if((ca|0)==1){break a}c=e}if(!ca){if(c?(c|0)!=-84:0){break c}d=d-f|0;c=z[h+12>>2];f=c>>>8&65280|c>>>24|((c&65280)<<8|c<<24);c=d|((f|0)>=0?1344273408:1343224832);z[h+12>>2]=c;c=c^z[b+8>>2];z[h+4>>2]=c>>>8&65280|c>>>24|(c<<24|(c&65280)<<8);c=h+4|0;d=Ob(z[b+12>>2],c,4);z[b+12>>2]=d;z[h+8>>2]=d;g=z[b+4>>2];d=z[b>>2]}if(ca?(n|0)==1:1){e=sb(a,l,a,0,d,g,c,8);o=1;if((ca|0)==1){break a}c=e}if(!ca){if(c){break c}c=z[b+4>>2];if(!m){p=z[b+12>>2];m=c+4|0}d=z[h+12>>2];z[b+12>>2]=-1;f=d^f&-2147483648^-2147483648;z[b+8>>2]=f;c=(c+(d&1023)|0)+4|0;z[b+4>>2]=c;d=c>>>0>>0;if(d){continue}}break}}if(!ca){z[a>>2]=-1;d=a+16|0}if(ca?(n|0)==2:1){e=tb(a,d,a,0);o=2;if((ca|0)==1){break a}c=e}if(!ca){if(c){break c}d=z[a+104>>2];c=z[d+16>>2]}if(ca?(n|0)==3:1){e=fa[c|0](d)|0;o=3;if((ca|0)==1){break a}c=e}if(!ca){if((c|0)>0){break b}if(c){break c}c=0;g=z[b+16>>2];d=i>>>0<=g>>>0;if(d){break c}k=i-8|0;f=m}while(1){if(!ca){c=-84;j=-1;l=f+4|0;d=l>>>0<=g>>>0;if(d){break c}}while(1){if(!ca){if((g|0)==(m|0)&(j|0)!=(p|0)){break c}q=z[b>>2];r=h+3|0;d=l-g|0}if(ca?(n|0)==4:1){e=pb(a,0,a,d,q,g,r,1);o=4;if((ca|0)==1){break a}d=e}if(!ca){if(d){c=d;break c}j=Ob(j,h+3|0,1);g=g+1|0;d=(l|0)!=(g|0);if(d){continue}}break}if(!ca){if(j){break c}c=i-f|0;c=(c>>>0>=1022?1022:c)+f|0;g=c>>>0>>0?c>>>0>>0?c:k:c;f=g+4|0;c=0;d=g>>>0>>0;if(d){continue}}break}}if(!ca){_=h+16|0;return c}}if(!ca){V(2236,1677,200,1665);t()}t()}z[z[da>>2]>>2]=o;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=d;z[e+12>>2]=c;z[e+16>>2]=f;z[e+20>>2]=g;z[e+24>>2]=h;z[e+28>>2]=i;z[e+32>>2]=k;z[e+36>>2]=j;z[e+40>>2]=l;z[e+44>>2]=m;z[e+48>>2]=p;z[e+52>>2]=q;z[e+56>>2]=r;z[da>>2]=z[da>>2]+60;return 0}function eb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((ca|0)==2){z[da>>2]=z[da>>2]-32;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];e=z[b+12>>2];f=z[b+16>>2];j=z[b+20>>2];i=z[b+24>>2];k=z[b+28>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;g=z[z[da>>2]>>2]}if(!ca){c=_-176|0;_=c;z[c+172>>2]=b}a:{if(!(ca?g:0)){d=Ga(a);if((ca|0)==1){break a}b=d}b:{if(!ca){if(b){break b}z[c+128>>2]=z[a+40>>2];f=c+136|0;e=c+126|0;b=c+172|0}if(ca?(g|0)==1:1){d=Ha(a,f,b,e);h=1;if((ca|0)==1){break a}b=d}if(!ca){if(!((b|0)==-2&B[c+126>>1]!=1023)){b=(b|0)>=0?-17:b;break b}b=-36;k=z[c+172>>2];j=Xb(k);e=j>>>0>C[a+108>>2];if(e){break b}z[a+96>>2]=z[z[a+104>>2]+32>>2];b=c+88|0}if(ca?(g|0)==2:1){d=wa(a,b);h=2;if((ca|0)==1){break a}b=d}if(!ca){if(b){break b}b=z[f+28>>2];e=c+80|0;z[e>>2]=z[f+24>>2];z[e+4>>2]=b;b=z[f+20>>2];z[c+72>>2]=z[f+16>>2];z[c+76>>2]=b;d=z[f+12>>2];b=c- -64|0;z[b>>2]=z[f+8>>2];z[b+4>>2]=d;d=z[f+4>>2];z[c+56>>2]=z[f>>2];z[c+60>>2]=d}while(1){b=ca?b:A[c+79|0];if(b|(ca|0)==2){b=ca?b:c+56|0;if(ca?(g|0)==3:1){d=ya(a,b,e,-1,-1,0,0,0);h=3;if((ca|0)==1){break a}b=d}if(!ca){i=!b;if(i){continue}break b}}break}if(!ca){z[c+52>>2]=e;e=1611660296;z[c+48>>2]=1611660296;i=c+48|0;b=c+88|0}if(ca?(g|0)==4:1){d=xa(a,b,i,1);h=4;if((ca|0)==1){break a}b=d}if(!ca){if(b){break b}b=A[c+159|0]}if((ca|0)==2|b){if(!ca){b=z[a+48>>2]+1|0;z[a+48>>2]=b&2147483647|((b&1023)!=0)<<31;y[c+132>>1]=0;x[c+134|0]=0;z[a+40>>2]=c+128;z[c+40>>2]=1611660296;z[c+44>>2]=c+88;e=c+40|0;b=c+56|0}if(ca?(g|0)==5:1){d=xa(a,b,e,1);h=5;if((ca|0)==1){break a}b=d}if(!ca){z[a+40>>2]=z[c+128>>2];if(b){break b}Ia(a,-1);b=A[c+159|0];e=b?0:1611660296}}if(!ca){z[c+20>>2]=k;z[c+32>>2]=e;z[c+12>>2]=0;b=c+88|0;z[c+36>>2]=b;z[c+28>>2]=b;b=B[c+126>>1]<<10;z[c+24>>2]=b|536870920;z[c+8>>2]=b|1074790400;z[c+16>>2]=b|j|2097152;b=c+8|0}if(ca?(g|0)==6:1){d=xa(a,f,b,4);h=6;if((ca|0)==1){break a}b=d}}if(!ca){_=c+176|0;return b|0}t()}z[z[da>>2]>>2]=h;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[d+12>>2]=e;z[d+16>>2]=f;z[d+20>>2]=j;z[d+24>>2]=i;z[d+28>>2]=k;z[da>>2]=z[da>>2]+32;return 0}function pb(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if((ca|0)==2){z[da>>2]=z[da>>2]-56;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];g=z[b+24>>2];h=z[b+28>>2];i=z[b+32>>2];m=z[b+36>>2];k=z[b+40>>2];l=z[b+44>>2];n=z[b+48>>2];j=z[b+52>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;o=z[z[da>>2]>>2]}if(!ca){m=z[a+104>>2];k=C[m+32>>2]<=e>>>0;i=-84}a:{b:{c:{d:{if(!ca){if(k){break d}k=z[m+28>>2];m=f+h|0;k=k>>>0>>0;if(k){break d}}if((ca|0)==2|h){p=ca?j:d-1|0;while(1){if(!ca){k=!b;i=h}e:{if(!ca){f:{if(k){break f}i=h;if(z[b>>2]!=(e|0)){break f}l=z[b+8>>2];j=z[b+4>>2];if(l+j>>>0<=f>>>0){break f}i=j-f|0;if(f>>>0>=j>>>0){m=f-j|0;i=i+l|0;i=h>>>0>>0?h:i;h=h-i|0;f=f+i|0;k=z[b+12>>2]+m|0;g=Pb(g,k,i)+i|0;break e}i=h>>>0>>0?h:i}g:{if(z[c>>2]!=(e|0)){break g}n=z[c+8>>2];j=z[c+4>>2];if(n+j>>>0<=f>>>0){break g}l=j-f|0;if(f>>>0>=j>>>0){m=f-j|0;j=l+n|0;l=j>>>0>i>>>0;i=l?i:j;h=h-i|0;f=f+i|0;k=z[c+12>>2]+m|0;g=Pb(g,k,i)+i|0;break e}i=i>>>0>>0?i:l}k=d>>>0>h>>>0;m=z[a+104>>2]}h:{if(!ca){if(k){break h}l=z[m+20>>2];n=l>>>0>h>>>0;k=n|(f>>>0)%(l>>>0);if(k){break h}k=(i>>>0)%(l>>>0)|0;l=i-k|0;i=z[m+4>>2]}if(!(ca?o:0)){j=fa[i|0](m,e,f,g,l)|0;q=0;if((ca|0)==1){break a}i=j}if(!ca){if(i){break d}h=h-l|0;f=f+l|0;g=g+l|0;break e}}if(!ca){if(C[m+32>>2]<=e>>>0){break c}z[c>>2]=e;i=z[m+20>>2];l=f-((f>>>0)%(i>>>0)|0)|0;z[c+4>>2]=l;j=i+(f+p|0)|0;i=j-((j>>>0)%(i>>>0)|0)|0;j=z[m+28>>2];i=(i>>>0>>0?i:j)-l|0;j=z[m+40>>2];i=i>>>0>>0?i:j;z[c+8>>2]=i;n=z[m+4>>2];k=z[c+12>>2]}if(ca?(o|0)==1:1){j=fa[n|0](m,e,l,k,i)|0;q=1;if((ca|0)==1){break a}i=j}if(!ca){k=(i|0)>0;if(k){break b}if(i){break d}}}if(!(h?ca:1)){continue}break}}i=ca?i:0}if(!ca){return i}}if(!ca){V(1102,1677,107,1639);t()}}if(!ca){V(2236,1677,118,1639);t()}t()}z[z[da>>2]>>2]=q;z[da>>2]=z[da>>2]+4;j=z[da>>2];z[j>>2]=a;z[j+4>>2]=b;z[j+8>>2]=c;z[j+12>>2]=d;z[j+16>>2]=e;z[j+20>>2]=f;z[j+24>>2]=g;z[j+28>>2]=h;z[j+32>>2]=i;z[j+36>>2]=m;z[j+40>>2]=k;z[j+44>>2]=l;z[j+48>>2]=n;z[j+52>>2]=p;z[da>>2]=z[da>>2]+56;return 0}function Bb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if((ca|0)==2){z[da>>2]=z[da>>2]-44;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];e=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];h=z[b+24>>2];l=z[b+28>>2];k=z[b+32>>2];m=z[b+36>>2];n=z[b+40>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;i=z[z[da>>2]>>2]}if(!ca){e=_-32|0;_=e;c=e+28|0}a:{if(!(ca?i:0)){d=ub(a,c);if((ca|0)==1){break a}c=d}b:{if(!ca){if(c){break b}m=a+16|0;n=b+8|0;l=b- -64|0}while(1){h=ca?h:z[e+28>>2];if(ca?(i|0)==1:1){d=rb(a,h);j=1;if((ca|0)==1){break a}c=d}f=ca?f:(c|0)==-84;c:{if(!ca){if(f){break c}if(c){break b}f=0;c=z[b+60>>2]}if((ca|0)==2|c){while(1){if(!ca){g=A[b+50|0]&16;c=c-f|0}d:{if((ca|0)==2|g){if(!ca){k=e+27|0;g=B[b+4>>1]<<10|537919488}if(ca?(i|0)==2:1){d=Kb(a,n,l,c,g,f,k,1);j=2;if((ca|0)==1){break a}c=d}if(!ca){g=!c;if(g){break d}break b}}if(!ca){k=e+27|0;g=z[b+56>>2]}if(ca?(i|0)==3:1){d=pb(a,l,a,c,g,f,k,1);j=3;if((ca|0)==1){break a}c=d}if(!(c?ca:1)){break b}}c=ca?c:e+27|0;if(ca?(i|0)==4:1){d=sb(a,m,a,1,h,f,c,1);j=4;if((ca|0)==1){break a}c=d}if(!ca){if(c){if((c|0)!=-84){break b}break c}c=z[b+60>>2];f=f+1|0;g=c>>>0>f>>>0;if(g){continue}}break}}if(!ca){Pb(z[b+76>>2],z[a+28>>2],z[z[a+104>>2]+40>>2]);z[b+64>>2]=z[a+16>>2];z[b+68>>2]=z[a+20>>2];z[b+72>>2]=z[a+24>>2];Qb(z[a+28>>2],255,z[z[a+104>>2]+40>>2]);z[a+16>>2]=-1;z[b+56>>2]=h;z[b+48>>2]=z[b+48>>2]|131072;c=0;break b}}if(!ca){z[e+12>>2]=3517;z[e+8>>2]=h;z[e+4>>2]=3088;z[e>>2]=1677}if(ca?(i|0)==5:1){Rb(2898,e);j=5;if((ca|0)==1){break a}}if(!ca){z[a+16>>2]=-1;c=e+28|0}if(ca?(i|0)==6:1){d=ub(a,c);j=6;if((ca|0)==1){break a}c=d}if(!ca){f=!c;if(f){continue}}break}}if(!ca){_=e+32|0;return c}t()}z[z[da>>2]>>2]=j;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[d+12>>2]=e;z[d+16>>2]=f;z[d+20>>2]=g;z[d+24>>2]=h;z[d+28>>2]=l;z[d+32>>2]=k;z[d+36>>2]=m;z[d+40>>2]=n;z[da>>2]=z[da>>2]+44;return 0}function Ta(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;if((ca|0)==2){z[da>>2]=z[da>>2]-24;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];g=z[b+20>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;h=z[z[da>>2]>>2]}if(!ca){c=_-112|0;_=c;d=z[b+48>>2];if(d&262144){if(!(d&1048576)){z[b+64>>2]=-1}d=d&-262145;z[b+48>>2]=d}g=!(d&131072)}a:{b:{if(!ca){if(g){break b}g=z[b+52>>2];e=!(d&1048576)}c:{d:{if((ca|0)==2|e){if(!ca){z[c+40>>2]=0;z[c+44>>2]=0;z[c+48>>2]=0;z[c+52>>2]=0;z[c+56>>2]=0;z[c+60>>2]=0;z[c+32>>2]=0;z[c+36>>2]=0;x[c+30|0]=0;y[c+28>>1]=0;z[c+24>>2]=0;z[c+64>>2]=z[b+40>>2];f=z[b+44>>2];z[c+68>>2]=f;z[c+80>>2]=0;z[c+84>>2]=0;z[c+72>>2]=1;z[c+76>>2]=g;d=z[a+12>>2];z[c+96>>2]=z[a+8>>2];z[c+100>>2]=d;d=z[a+4>>2];z[c+88>>2]=z[a>>2];z[c+92>>2]=d;z[c+104>>2]=0;z[a>>2]=-1;d=f>>>0<=g>>>0;if(d){break d}}while(1){if(!ca){d=c+24|0;e=c+23|0}if(!(ca?h:0)){f=Va(a,d,e,1);i=0;if((ca|0)==1){break a}e=f}if(!ca){if((e|0)<0){break b}d=c+23|0}if(ca?(h|0)==1:1){f=Ya(a,b,d,1);i=1;if((ca|0)==1){break a}e=f}if(!ca){if((e|0)<0){break b}if(z[a>>2]!=-1){z[c+88>>2]=-1;z[a>>2]=-1}e=z[b+44>>2];d=e>>>0>C[b+52>>2];if(d){continue}}break}if(!ca){break d}}if(!ca){a=z[b+44>>2];e=a>>>0>>0;a=e?g:a;break c}}d=ca?d:b- -64|0;while(1){if(ca?(h|0)==2:1){f=tb(a,d,a,1);i=2;if((ca|0)==1){break a}e=f}if(!ca){if((e|0)!=-84){if(e){break b}d=z[b+48>>2];a=z[b+52>>2];break c}e=z[b+56>>2];z[c+12>>2]=3517;z[c+8>>2]=e;z[c+4>>2]=3167;z[c>>2]=1677}if(ca?(h|0)==3:1){Rb(2898,c);i=3;if((ca|0)==1){break a}}if(ca?(h|0)==4:1){f=Bb(a,b);i=4;if((ca|0)==1){break a}e=f}if(!(ca|e)){continue}break}if(!ca){break b}}if(!ca){z[b+52>>2]=g;z[b+44>>2]=a;z[b+40>>2]=z[b+56>>2];z[b+48>>2]=d&-196609|65536;e=0}}if(!ca){_=c+112|0;return e}t()}z[z[da>>2]>>2]=i;z[da>>2]=z[da>>2]+4;f=z[da>>2];z[f>>2]=a;z[f+4>>2]=b;z[f+8>>2]=c;z[f+12>>2]=d;z[f+16>>2]=e;z[f+20>>2]=g;z[da>>2]=z[da>>2]+24;return 0}function Ca(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;if((ca|0)==2){z[da>>2]=z[da>>2]-60;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];g=z[b+24>>2];h=z[b+28>>2];k=z[b+32>>2];j=z[b+36>>2];m=z[b+40>>2];n=z[b+44>>2];l=z[b+48>>2];o=z[b+52>>2];p=z[b+56>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;q=z[z[da>>2]>>2]}if(!ca){m=_-16|0;_=m;n=z[b+12>>2];h=z[b+16>>2];z[m+12>>2]=h;k=z[a+60>>2];j=!(k&1879048192);a:{if(j){break a}l=z[a- -64>>2];i=z[b>>2];b:{if((l|0)!=(i|0)){j=!(c&1047552);if(j){break a}j=z[b+4>>2];r=(j|0)!=(l|0);p=j;j=z[a+68>>2];j=!(r&(p|0)!=(j|0)&(i|0)!=(j|0));if(j){break b}break a}j=!(c&1047552);if(j){break a}}j=k>>>10&1023;k=j>>>0<=(d>>>10&1023)>>>0;o=k?-1024:0}p=c&1047552}c:{d:{e:{while(1){if(!ca){k=h;l=h&1023;h=((l|0)==1023)+h&1023;if(h+8>>>0>n>>>0){break e}j=z[b>>2];n=(n-h|0)-4|0;h=m+12|0}if(!(ca?q:0)){i=pb(a,0,a,4,j,n,h,4);if((ca|0)==1){break c}h=i}if(!ca){if(h){break d}h=z[m+12>>2];h=((h>>>8&65280|h>>>24|((h&65280)<<8|h<<24))^k)&2147483647;z[m+12>>2]=h;f:{if(!p|(k&1879048192)!=1073741824){break f}i=d-o|0;if((i>>>10&1023)>>>0<(k>>>10&1023)>>>0){break f}if((i&1047552|1074790400)==(k|0)){break e}o=(k<<4>>14&-1024)+o|0}j=(d-o^k)&c;if(j){continue}}break}if(!ca){h=-2;if((l|0)==1023){break d}c=a;d=z[b>>2];b=(e+n|0)+4|0;a=g>>>0>l>>>0?l:g}if(ca?(q|0)==1:1){i=pb(c,0,c,a,d,b,f,a);s=1;if((ca|0)==1){break c}h=i}if(!ca){if(h){break d}Qb(a+f|0,0,g-a|0);h=k+o|0;break d}}h=ca?h:-2}if(!ca){_=m+16|0;return h}t()}z[z[da>>2]>>2]=s;z[da>>2]=z[da>>2]+4;i=z[da>>2];z[i>>2]=a;z[i+4>>2]=b;z[i+8>>2]=c;z[i+12>>2]=d;z[i+16>>2]=e;z[i+20>>2]=f;z[i+24>>2]=g;z[i+28>>2]=h;z[i+32>>2]=k;z[i+36>>2]=j;z[i+40>>2]=m;z[i+44>>2]=n;z[i+48>>2]=l;z[i+52>>2]=o;z[i+56>>2]=p;z[da>>2]=z[da>>2]+60;return 0}function va(a,b){var c=0,d=0,e=0,f=0;e=ca;z[a+104>>2]=b;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{l:{m:{n:{c=z[b+20>>2];if(c){f=z[b+24>>2];if(!f){break n}d=z[b+40>>2];if(!d){break m}if((d>>>0)%(c>>>0)|0){break l}if((d>>>0)%(f>>>0)|0){break k}c=z[b+28>>2];if((c>>>0)%(d>>>0)|0){break j}if(c>>>0<128-(I((4294967295/(c-8>>>0)|0)-1|0)<<2)>>>0){break i}if(!z[b+36>>2]){break h}o:{c=z[b+48>>2];p:{if(c){z[a+12>>2]=c;break p}c=hc(d);if((ca|0)!=(e|0)){t()}z[a+12>>2]=c;if(!c){break o}}b=z[b+52>>2];q:{if(b){z[a+28>>2]=b;break q}b=hc(d);if((ca|0)!=(e|0)){t()}z[a+28>>2]=b;if(!b){break o}}Qb(c,255,d);if((ca|0)!=(e|0)){t()}z[a>>2]=-1;Qb(z[a+28>>2],255,z[z[a+104>>2]+40>>2]);if((ca|0)!=(e|0)){t()}z[a+16>>2]=-1;b=z[a+104>>2];c=z[b+44>>2];if(!c){break g}if(c&7){break f}d=z[b+56>>2];if(d&3){break f}r:{if(d){z[a+100>>2]=d;break r}c=hc(c);if((ca|0)!=(e|0)){t()}z[a+100>>2]=c;if(!c){break o}}c=z[b+60>>2];if(c>>>0>=256){break e}z[a+108>>2]=c?c:255;c=z[b+64>>2];if((c|0)<0){break d}z[a+112>>2]=c?c:2147483647;c=z[b+68>>2];if(c>>>0>=1023){break c}z[a+116>>2]=c?c:1022;if(C[b+72>>2]>C[b+28>>2]){break b}z[a+120>>2]=0;z[a+32>>2]=-1;z[a+36>>2]=-1;Qb(a+40|0,0,44);if((ca|0)!=(e|0)){t()}return 0}za(a);if((ca|0)!=(e|0)){t()}return-12}V(2324,1677,3910,1132);break a}V(2273,1677,3911,1132);break a}V(2298,1677,3912,1132);break a}V(2104,1677,3916,1132);break a}V(2007,1677,3917,1132);break a}V(2055,1677,3918,1132);break a}V(1401,1677,3922,1132);break a}V(2245,1677,3930,1132);break a}V(1890,1677,3960,1132);break a}V(2152,1677,3962,1132);break a}V(1815,1677,3974,1132);break a}V(1782,1677,3980,1132);break a}V(1848,1677,3986,1132);break a}V(1319,1677,3992,1132)}if((ca|0)!=(e|0)){t()}t()}function $a(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if((ca|0)==2){z[da>>2]=z[da>>2]-40;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];h=z[b+24>>2];i=z[b+28>>2];l=z[b+32>>2];m=z[b+36>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;j=z[z[da>>2]>>2]}if(!ca){i=_-16|0;_=i;d=z[a+40>>2];g=(d|0)!=0;h=(b|0)==(d|0);f=h|!d;a:{if(f){break a}while(1){d=z[d>>2];g=(d|0)!=0;f=(b|0)==(d|0);if(f){break a}if(d){continue}break}}}b:{c:{d:{e:{if((ca|0)==2|g){if(!ca){f=z[b+48>>2];d=!(f&2);if(d){break e}if((c|0)<0){d=-22;break c}g=z[b+52>>2];d=z[b+44>>2];h=d>>>0>>0?g:d;d=f&131072?h:d;f=d>>>0>c>>>0}if((ca|0)==2|f){if(!(ca?j:0)){e=Ta(a,b);if((ca|0)==1){break b}d=e}if(!ca){if(d){break c}f=z[b+40>>2];h=z[b+44>>2];l=b+56|0;m=b+60|0;d=b- -64|0}if(ca?(j|0)==1:1){e=ab(a,d,f,h,c,l,m);k=1;if((ca|0)==1){break b}d=e}if(!ca){if(d){break c}z[b+52>>2]=c;z[b+44>>2]=c;z[b+40>>2]=z[b+56>>2];z[b+48>>2]=z[b+48>>2]|327680;break d}}if(!ca){d=c>>>0<=d>>>0;if(d){break d}}if(ca?(j|0)==2:1){e=_a(a,b,0,2);k=2;if((ca|0)==1){break b}d=e}if(!ca&(d|0)<0){break c}while(1){if(!ca){d=C[b+52>>2]>=c>>>0;if(d){break d}x[i+15|0]=0;d=i+15|0}if(ca?(j|0)==3:1){e=Xa(a,b,d,1);k=3;if((ca|0)==1){break b}d=e}if(!ca&(d|0)>=0){continue}break}if(!ca){break c}}if(!ca){V(2416,1677,5601,1545);t()}}if(!ca){V(1692,1677,3520,1524);t()}}if(ca?(j|0)==4:1){e=_a(a,b,g,0);k=4;if((ca|0)==1){break b}a=e}d=ca?d:a>>31&a}if(!ca){_=i+16|0;return d|0}t()}z[z[da>>2]>>2]=k;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[e+16>>2]=f;z[e+20>>2]=g;z[e+24>>2]=h;z[e+28>>2]=i;z[e+32>>2]=l;z[e+36>>2]=m;z[da>>2]=z[da>>2]+40;return 0}function Ha(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if((ca|0)==2){z[da>>2]=z[da>>2]-44;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];g=z[b+20>>2];h=z[b+24>>2];i=z[b+28>>2];j=z[b+32>>2];k=z[b+36>>2];m=z[b+40>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;n=z[z[da>>2]>>2]}if(!ca){i=_-16|0;_=i;j=z[c>>2];if(d){y[d>>1]=1023}z[b+24>>2]=z[a+32>>2];e=z[a+36>>2];z[b+28>>2]=e;m=b+24|0;g=3144704}a:{b:while(1){if(!ca){h=Yb(j)+j|0;k=Wb(h);e=k-1|0}c:{if(!ca){d:{e:{switch(e|0){case 1:e=(A[h|0]|A[h+1|0]<<8)!=11822;if(e){break d}break c;case 0:break e;default:break d}}e=A[h|0]==46;if(e){break c}}f=1;j=h+k|0;e=j;while(1){f:{g:{h:{i:{e=Yb(e)+e|0;l=Wb(e);switch(l|0){case 0:break f;case 2:break i;default:break h}}if((A[e|0]|A[e+1|0]<<8)!=11822){break h}f=f-1|0;if(f){break g}j=e+2|0;continue b}f=f+1|0}e=e+l|0;continue}break}e=!A[h|0]}j:{if(!ca){if(e){break j}z[c>>2]=h;e=(g&2146435072)!=2097152;if(e){g=-20;break j}g=g&1047552;e=(g|0)!=1047552}if((ca|0)==2|e){e=ca?e:g|536870920;if(!(ca?n:0)){f=Ca(a,b,1880095744,e,0,m,8);l=0;if((ca|0)==1){break a}g=f}if(!ca){e=(g|0)<0;if(e){break j}}}while(1){if(!ca){g=Vb(h,47);f=A[g|0]==47;z[i+8>>2]=k;z[i+4>>2]=h;z[i>>2]=a;g=f?g:0;e=g?0:d}if(ca?(n|0)==1:1){f=ya(a,b,m,2013265920,k,e,6,i);l=1;if((ca|0)==1){break a}g=f}if(!ca){e=(g|0)<0;if(e){break j}if(g){continue b}e=A[b+23|0];if(e){continue}}break}g=ca?g:-2}if(!ca){_=i+16|0;return g}}if(!ca){j=h+k|0;continue}break}t()}z[z[da>>2]>>2]=l;z[da>>2]=z[da>>2]+4;f=z[da>>2];z[f>>2]=a;z[f+4>>2]=b;z[f+8>>2]=c;z[f+12>>2]=d;z[f+16>>2]=e;z[f+20>>2]=g;z[f+24>>2]=h;z[f+28>>2]=i;z[f+32>>2]=j;z[f+36>>2]=k;z[f+40>>2]=m;z[da>>2]=z[da>>2]+44;return 0}function Fa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((ca|0)==2){z[da>>2]=z[da>>2]-28;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];e=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];j=z[b+24>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;h=z[z[da>>2]>>2]}if(!ca){e=_;c=e-96|0;_=c;z[c+92>>2]=b}a:{if(!(ca?h:0)){d=Ga(a);if((ca|0)==1){break a}b=d}b:{if(!ca){if(b){break b}e=c+92|0;b=c+56|0}if(ca?(h|0)==1:1){d=Ha(a,b,e,0);i=1;if((ca|0)==1){break a}e=d}if(!ca){if((e|0)<0){b=e;break b}b=-22;g=e&1047552;f=(g|0)==1047552;if(f){break b}z[c+16>>2]=z[a+40>>2];e=e&-1048576;b=(e|0)==2097152}if((ca|0)==2|b){if(!ca){f=g|536870920;j=c+8|0;b=c+56|0}if(ca?(h|0)==2:1){d=Ca(a,b,1880095744,f,0,j,8);i=2;if((ca|0)==1){break a}b=d}if(!ca){if((b|0)<0){break b}f=c+8|0;b=c+24|0}if(ca?(h|0)==3:1){d=ya(a,b,f,-1,-1,0,0,0);i=3;if((ca|0)==1){break a}b=d}if(!ca){if(b){break b}b=-39;if(B[c+44>>1]|A[c+47|0]){break b}b=z[a+48>>2]+1|0;f=((b&1023)!=0)<<31;z[a+48>>2]=f|b&2147483647;y[c+20>>1]=0;x[c+22|0]=0;b=c+16|0;z[a+40>>2]=b}}if(!ca){z[c+12>>2]=0;z[c+8>>2]=g|1341128704;g=c+8|0;b=c+56|0}if(ca?(h|0)==4:1){d=xa(a,b,g,1);i=4;if((ca|0)==1){break a}b=d}if(!ca){z[a+40>>2]=z[c+16>>2];if(b){break b}b=(e|0)==2097152}if((ca|0)==2|b){if(!ca){Ia(a,-1);e=c+24|0;b=c+56|0}if(ca?(h|0)==5:1){d=Ja(a,e,b);i=5;if((ca|0)==1){break a}b=d}if(!ca){if(b){break b}b=c+56|0}if(ca?(h|0)==6:1){d=Ka(a,b,e);i=6;if((ca|0)==1){break a}b=d}if(!(b?ca:1)){break b}}b=ca?b:0}if(!ca){_=c+96|0;return b|0}t()}z[z[da>>2]>>2]=i;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[d+12>>2]=e;z[d+16>>2]=f;z[d+20>>2]=g;z[d+24>>2]=j;z[da>>2]=z[da>>2]+28;return 0}function Va(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((ca|0)==2){z[da>>2]=z[da>>2]-52;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];g=z[b+16>>2];e=z[b+20>>2];h=z[b+24>>2];i=z[b+28>>2];j=z[b+32>>2];k=z[b+36>>2];l=z[b+40>>2];m=z[b+44>>2];n=z[b+48>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;o=z[z[da>>2]>>2]}if(!ca){h=z[b+52>>2];i=z[b+44>>2];g=h>>>0>=i>>>0}a:{b:{if(!ca){if(g){break b}f=i-h|0;d=d>>>0>>0?d:f;g=!d;if(g){break b}k=b+56|0;n=b+8|0;l=b- -64|0;m=b+60|0;i=d}while(1){if(!ca){e=z[b+48>>2];g=!(e&262144)}c:{if(!ca){d:{if(g){break d}g=z[m>>2];j=z[z[a+104>>2]+28>>2];if((g|0)==(j|0)){break d}h=g;break c}g=!(e&1048576)}e:{if((ca|0)==2|g){if(!ca){g=z[b+44>>2];e=z[b+40>>2]}if(!(ca?o:0)){f=ab(a,l,e,g,h,k,m);p=0;if((ca|0)==1){break a}e=f}if(!ca){if(e){break b}h=z[b+60>>2];e=z[b+48>>2];break e}}if(!ca){z[k>>2]=-2;z[m>>2]=h}}if(!ca){e=e|262144;z[b+48>>2]=e;g=z[a+104>>2];j=z[g+28>>2]}}if(!ca){f=j-h|0;g=f>>>0>i>>>0?i:f;e=e&1048576}f:{if((ca|0)==2|e){e=ca?e:B[b+4>>1]<<10|537919488;if(ca?(o|0)==1:1){f=Kb(a,n,l,j,e,h,c,g);p=1;if((ca|0)==1){break a}e=f}if(!ca){if(!e){break f}break b}}e=ca?e:z[k>>2];if(ca?(o|0)==2:1){f=pb(a,0,l,j,e,h,c,g);p=2;if((ca|0)==1){break a}e=f}if(!(e?ca:1)){break b}}if(!ca){h=z[b+52>>2]+g|0;z[b+52>>2]=h;e=z[b+60>>2]+g|0;z[b+60>>2]=e;c=c+g|0;i=i-g|0;if(i){continue}}break}e=ca?e:d}if(!ca){return e}t()}z[z[da>>2]>>2]=p;z[da>>2]=z[da>>2]+4;f=z[da>>2];z[f>>2]=a;z[f+4>>2]=b;z[f+8>>2]=c;z[f+12>>2]=d;z[f+16>>2]=g;z[f+20>>2]=e;z[f+24>>2]=h;z[f+28>>2]=i;z[f+32>>2]=j;z[f+36>>2]=k;z[f+40>>2]=l;z[f+44>>2]=m;z[f+48>>2]=n;z[da>>2]=z[da>>2]+52;return 0}function ub(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;if((ca|0)==2){z[da>>2]=z[da>>2]-24;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];e=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;i=z[z[da>>2]>>2]}if(!ca){c=_;g=c-16|0;_=g}a:{b:{c:{while(1){if(!ca){e=z[a+88>>2];c=z[a+92>>2];while(1){d=c;if((c|0)!=(e|0)){c=d+1|0;z[a+92>>2]=c;z[a+96>>2]=z[a+96>>2]-1;f=z[a+100>>2];h=z[f+(d>>>3&536870908)>>2]&1<>2]=(d+z[a+84>>2]>>>0)%C[z[a+104>>2]+32>>2];c=z[a+92>>2];e=z[a+88>>2];if((c|0)==(e|0)){break c}while(1){if(!(z[f+(c>>>3&536870908)>>2]>>>c&1)){break d}c=c+1|0;z[a+92>>2]=c;z[a+96>>2]=z[a+96>>2]-1;if((c|0)!=(e|0)){continue}break}c=e}if(h){continue}break c}break}c=z[a+84>>2]+e|0;e=z[a+96>>2];f=!e}if((ca|0)==2|f){if(!ca){z[g+12>>2]=3517;z[g+8>>2]=c;z[g+4>>2]=584;z[g>>2]=1677}if(!(ca?i:0)){Rb(3018,g);h=0;if((ca|0)==1){break a}}if(!ca){c=-28;break b}}if(!ca){d=c;c=z[a+104>>2];z[a+84>>2]=(d>>>0)%C[c+32>>2];c=z[c+44>>2];z[a+92>>2]=0;f=c<<3;z[a+88>>2]=e>>>0>f>>>0?f:e;c=Qb(z[a+100>>2],0,c)}if(ca?(i|0)==1:1){d=nb(a,7,a,1);h=1;if((ca|0)==1){break a}c=d}if(!ca){e=!c;if(e){continue}}break}if(!ca){z[a+88>>2]=0;z[a+92>>2]=0;z[a+96>>2]=z[z[a+104>>2]+32>>2];break b}}c=ca?c:0}if(!ca){_=g+16|0;return c}t()}z[z[da>>2]>>2]=h;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[d+12>>2]=e;z[d+16>>2]=f;z[d+20>>2]=g;z[da>>2]=z[da>>2]+24;return 0}function uc(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((ca|0)==2){z[da>>2]=z[da>>2]-28;b=z[da>>2];a=z[b>>2];d=z[b+8>>2];e=z[b+12>>2];g=z[b+16>>2];i=z[b+20>>2];j=z[b+24>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;f=z[z[da>>2]>>2]}a:{d=ca?d:!a;if(d|(ca|0)==2){a=ca?a:z[1072];if(a|(ca|0)==2){a=ca?a:z[1072];if(!(ca?f:0)){c=uc(a);if((ca|0)==1){break a}b=c}}a=ca?a:z[1712];if(a|(ca|0)==2){a=ca?a:z[1712];if(ca?(f|0)==1:1){c=uc(a);h=1;if((ca|0)==1){break a}a=c}b=ca?b:a|b}a=ca?a:z[1711];if(a|(ca|0)==2){while(1){if(!ca){e=z[a+28>>2];d=(e|0)!=z[a+20>>2]}if((ca|0)==2|d){if(ca?(f|0)==2:1){c=uc(a);h=2;if((ca|0)==1){break a}d=c}b=ca?b:b|d}if(!ca){a=z[a+56>>2];if(a){continue}}break}}if(!ca){return b|0}}if(!ca){e=z[a+76>>2]>=0;d=z[a+28>>2];b=(d|0)==z[a+20>>2]}b:{c:{if(!ca){if(b){break c}b=z[a+36>>2]}if(ca?(f|0)==3:1){c=fa[b|0](a,0,0)|0;h=3;if((ca|0)==1){break a}b=c}if(!ca){b=z[a+20>>2];if(b){break c}b=-1;break b}}if(ca){c=j}else{b=z[a+4>>2];d=z[a+8>>2];c=(b|0)!=(d|0)}if(c|(ca|0)==2){if(!ca){g=b-d|0;i=g>>31;b=z[a+40>>2]}if(ca?(f|0)==4:1){fa[b|0](a,g,i,1)|0;h=4;if((ca|0)==1){break a}}}if(!ca){b=0;z[a+28>>2]=0;z[a+16>>2]=0;z[a+20>>2]=0;z[a+4>>2]=0;z[a+8>>2]=0;if(!e){break b}}}if(!ca){return b|0}t()}z[z[da>>2]>>2]=h;z[da>>2]=z[da>>2]+4;c=z[da>>2];z[c>>2]=a;z[c+4>>2]=b;z[c+8>>2]=d;z[c+12>>2]=e;z[c+16>>2]=g;z[c+20>>2]=i;z[c+24>>2]=j;z[da>>2]=z[da>>2]+28;return 0}function sb(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0;if((ca|0)==2){z[da>>2]=z[da>>2]-40;i=z[da>>2];a=z[i>>2];b=z[i+4>>2];c=z[i+8>>2];d=z[i+12>>2];e=z[i+16>>2];f=z[i+20>>2];g=z[i+24>>2];h=z[i+28>>2];j=z[i+32>>2];i=z[i+36>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;l=z[z[da>>2]>>2]}if(!ca){j=(e|0)!=-2;i=z[a+104>>2]}a:{b:{c:{d:{e:{if(!ca){if(j){j=C[i+32>>2]<=e>>>0;if(j){break e}}f:{j=f+h|0;i=j>>>0<=C[i+28>>2];if(i){if(h){break f}break c}V(1366,1677,212,1307);t()}}g:while(1){i=ca?i:z[b>>2];while(1){j=ca?j:(e|0)!=(i|0);h:{if(!ca){if(j){break h}j=z[b+4>>2];if(j>>>0>f>>>0){break h}k=z[z[a+104>>2]+40>>2];if(k+j>>>0<=f>>>0){break h}i=k+(j-f|0)|0;i=h>>>0>>0?h:i;Pb(z[b+12>>2]+(f-j|0)|0,g,i);j=z[b+8>>2];f=f+i|0;k=f-z[b+4>>2]|0;j=j>>>0>k>>>0?j:k;z[b+8>>2]=j;j=(j|0)==z[z[a+104>>2]+40>>2]}if((ca|0)==2|j){if(!(ca?l:0)){k=tb(a,b,c,d);if((ca|0)==1){break a}j=k}if(!(j?ca:1)){break b}}if(!ca){g=g+i|0;h=h-i|0;i=!h;if(i){break c}continue g}}if(!ca){if((i|0)!=-1){break d}z[b>>2]=e;i=z[z[a+104>>2]+24>>2];z[b+8>>2]=0;z[b+4>>2]=f-((f>>>0)%(i>>>0)|0);i=e;continue}break}break}}if(!ca){V(1072,1677,211,1307);t()}}if(!ca){V(2507,1677,241,1307);t()}}j=ca?j:0}if(!ca){return j}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;k=z[da>>2];z[k>>2]=a;z[k+4>>2]=b;z[k+8>>2]=c;z[k+12>>2]=d;z[k+16>>2]=e;z[k+20>>2]=f;z[k+24>>2]=g;z[k+28>>2]=h;z[k+32>>2]=j;z[k+36>>2]=i;z[da>>2]=z[da>>2]+40;return 0}function qb(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if((ca|0)==2){z[da>>2]=z[da>>2]-48;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];g=z[b+24>>2];h=z[b+28>>2];m=z[b+32>>2];k=z[b+36>>2];j=z[b+40>>2];l=z[b+44>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;n=z[z[da>>2]>>2]}if(!ca){k=_-16|0;_=k;h=!e}a:{b:{c:{if(!ca){if(h){break c}h=z[z[a+104>>2]+28>>2]-8|0;j=e-1|0;l=h>>>0<=j>>>0;if(l){j=Gc(((j>>>0)/(h>>>0)|0)-1|0)<<2;e=(e-j|0)-9|0;m=(e>>>0)/(h>>>0)|0}}if(!(ca?n:0)){i=fa[f|0](g,d)|0;if((ca|0)==1){break a}h=i}if(!(h?ca:1)){break b}while(1){if(!ca){if(!m){break c}l=k+8|0;e=m&1;j=2-e|0;h=j<<2}if(ca?(n|0)==1:1){i=pb(a,b,c,h,d,0,l,h);o=1;if((ca|0)==1){break a}h=i}if(!ca){if(h){break b}d=!e;e=0}while(1){e=ca?e:d>>>0>e>>>0;if(e|(ca|0)==2){if(!ca){h=z[k+8>>2];e=1}if(ca?(n|0)==2:1){i=fa[f|0](g,h)|0;o=2;if((ca|0)==1){break a}h=i}if(!ca){l=!h;if(l){continue}break b}}break}if(!ca){m=m-j|0;d=z[(k+8|0)+(d<<2)>>2]}if(ca?(n|0)==3:1){i=fa[f|0](g,d)|0;o=3;if((ca|0)==1){break a}h=i}if(!ca){e=!h;if(e){continue}}break}if(!ca){break b}}h=ca?h:0}if(!ca){_=k+16|0;return h}t()}z[z[da>>2]>>2]=o;z[da>>2]=z[da>>2]+4;i=z[da>>2];z[i>>2]=a;z[i+4>>2]=b;z[i+8>>2]=c;z[i+12>>2]=d;z[i+16>>2]=e;z[i+20>>2]=f;z[i+24>>2]=g;z[i+28>>2]=h;z[i+32>>2]=m;z[i+36>>2]=k;z[i+40>>2]=j;z[i+44>>2]=l;z[da>>2]=z[da>>2]+48;return 0}function Eb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if((ca|0)==2){z[da>>2]=z[da>>2]-44;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];g=z[b+20>>2];h=z[b+24>>2];i=z[b+28>>2];j=z[b+32>>2];k=z[b+36>>2];m=z[b+40>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;l=z[z[da>>2]>>2]}if(!ca){g=_-16|0;_=g;h=((c&1023)==1023)+c&1023;i=(h+z[b+4>>2]|0)+4|0;j=i>>>0>C[b+20>>2];e=-28}a:{b:{if(!ca){if(j){break b}j=c&2147483647;e=j^z[b+8>>2];i=e<<24|(e&65280)<<8;k=e>>>8&65280;z[g+12>>2]=i|(k|e>>>24);e=g+12|0}if(!(ca?l:0)){f=Nb(a,b,e,4);if((ca|0)==1){break a}e=f}if(!ca){if(e){break b}c=(c|0)<0}c:{if((ca|0)==2|c){if(!ca){if(!h){break c}c=0}while(1){if(!ca){i=z[d>>2];k=z[d+4>>2]+c|0;m=g+11|0;e=h-c|0}if(ca?(l|0)==1:1){f=pb(a,0,a,e,i,k,m,1);n=1;if((ca|0)==1){break a}e=f}if(!ca){if(e){break b}e=g+11|0}if(ca?(l|0)==2:1){f=Nb(a,b,e,1);n=2;if((ca|0)==1){break a}e=f}if(!ca){if(e){break b}c=c+1|0;e=(h|0)!=(c|0);if(e){continue}}break}if(!ca){break c}}if(ca?(l|0)==3:1){f=Nb(a,b,d,h);n=3;if((ca|0)==1){break a}e=f}if(!(e?ca:1)){break b}}if(!ca){z[b+8>>2]=j;e=0}}if(!ca){_=g+16|0;return e}t()}z[z[da>>2]>>2]=n;z[da>>2]=z[da>>2]+4;f=z[da>>2];z[f>>2]=a;z[f+4>>2]=b;z[f+8>>2]=c;z[f+12>>2]=d;z[f+16>>2]=e;z[f+20>>2]=g;z[f+24>>2]=h;z[f+28>>2]=i;z[f+32>>2]=j;z[f+36>>2]=k;z[f+40>>2]=m;z[da>>2]=z[da>>2]+44;return 0}function Rb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if((ca|0)==2){z[da>>2]=z[da>>2]-40;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];e=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];h=z[b+24>>2];i=z[b+28>>2];j=z[b+32>>2];l=z[b+36>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;k=z[z[da>>2]>>2]}if(!ca){g=_-16|0;_=g;z[g+12>>2]=b;c=_-208|0;_=c;z[c+204>>2]=b;b=c+160|0;Qb(b,0,40);z[c+200>>2]=z[c+204>>2];f=c+80|0;e=c+200|0}a:{if(!(ca?k:0)){d=ac(0,a,e,f,b);if((ca|0)==1){break a}b=d}b=ca?b:(b|0)<0;b:{if(!ca){if(b){break b}f=z[1055]>=0;b=z[1036];if(z[1054]<=0){z[1036]=b&-33}e=!z[1048]}n=a;c:{if(!ca){d:{e:{if(e){z[1048]=80;z[1043]=0;z[1040]=0;z[1041]=0;h=z[1047];z[1047]=c;break e}if(z[1040]){break d}}e=-1;if(Zb(4144)){break c}}i=c+80|0;j=c+160|0;e=c+200|0}if(ca?(k|0)==1:1){d=ac(4144,a,e,i,j);m=1;if((ca|0)==1){break a}a=d}else{a=e}e=a}a=ca?n:e;if((ca|0)==2|(ca?l:h)){a=ca?a:z[1045];if(ca?(k|0)==2:1){fa[a|0](4144,0,0)|0;m=2;if((ca|0)==1){break a}}if(!ca){z[1048]=0;z[1047]=h;z[1043]=0;z[1040]=0;z[1041]=0}}if(!ca){z[1036]=z[1036]|b&32;if(!f){break b}}}if(!ca){_=c+208|0;_=g+16|0}return}z[z[da>>2]>>2]=m;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[d+12>>2]=e;z[d+16>>2]=f;z[d+20>>2]=g;z[d+24>>2]=h;z[d+28>>2]=i;z[d+32>>2]=j;z[d+36>>2]=l;z[da>>2]=z[da>>2]+40}function fb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;if((ca|0)==2){z[da>>2]=z[da>>2]-24;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;h=z[z[da>>2]>>2]}if(!ca){f=_-16|0;_=f;d=z[a+40>>2];g=(d|0)!=0;a:{if(!d|(b|0)==(d|0)){break a}while(1){d=z[d>>2];g=(d|0)!=0;if((b|0)==(d|0)){break a}if(d){continue}break}}d=!g}b:{if((ca|0)==2|d){if(!ca){z[f+12>>2]=c;g=b+8|0;c=f+12|0}if(!(ca?h:0)){e=Ha(a,g,c,0);if((ca|0)==1){break b}c=e}d=ca?d:(c|0)<0;c:{if(!ca){if(d){d=c;break c}d=-20;if((c&-1048576)!=2097152){break c}c=c&1047552;d=(c|0)==1047552}d:{if(!ca){if(d){z[f+4>>2]=z[a+32>>2];c=z[a+36>>2];z[f+8>>2]=c;break d}d=f+4|0;c=c|536870920}if(ca?(h|0)==1:1){e=Ca(a,g,1880095744,c,0,d,8);i=1;if((ca|0)==1){break b}d=e}if(!ca){c=(d|0)<0;if(c){break c}}}c=ca?c:f+4|0;if(ca?(h|0)==2:1){e=ya(a,g,c,-1,-1,0,0,0);i=2;if((ca|0)==1){break b}d=e}if(!ca){if(d){break c}z[b+40>>2]=0;y[b+4>>1]=0;x[b+6|0]=2;c=z[b+12>>2];z[b+44>>2]=z[b+8>>2];z[b+48>>2]=c;z[b>>2]=z[a+40>>2];z[a+40>>2]=b;d=0}}if(!ca){_=f+16|0;return d|0}}if(!ca){V(2354,1677,5677,1239);t()}t()}z[z[da>>2]>>2]=i;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[e+16>>2]=f;z[e+20>>2]=g;z[da>>2]=z[da>>2]+24;return 0}function ua(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;if((ca|0)==2){z[da>>2]=z[da>>2]-16;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];e=z[b+12>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;f=z[z[da>>2]>>2]}if(!ca){c=_-96|0;_=c;b=va(a,b);e=!b}a:{if((ca|0)==2|e){if(!ca){Qb(z[a+100>>2],0,z[z[a+104>>2]+44>>2]);z[a+84>>2]=0;b=z[a+104>>2];d=z[b+44>>2];b=z[b+32>>2];z[a+96>>2]=b;z[a+92>>2]=0;e=d<<3;z[a+88>>2]=b>>>0>e>>>0?e:b;b=c- -64|0}if(!(ca?f:0)){d=wa(a,b);if((ca|0)==1){break a}b=d}b:{if(!ca){if(b){break b}z[c+40>>2]=131072;b=z[a+104>>2];z[c+44>>2]=z[b+28>>2];z[c+48>>2]=z[b+32>>2];z[c+52>>2]=z[a+108>>2];z[c+56>>2]=z[a+112>>2];b=z[a+116>>2];z[c+28>>2]=1225;z[c+36>>2]=c+40;z[c+32>>2]=537919512;z[c+24>>2]=267386888;z[c+16>>2]=1074790400;z[c+20>>2]=0;z[c+60>>2]=b;e=c+16|0;b=c- -64|0}if(ca?(f|0)==1:1){d=xa(a,b,e,3);g=1;if((ca|0)==1){break a}b=d}if(!ca){if(b){break b}x[c+86|0]=0;b=c- -64|0}if(ca?(f|0)==2:1){d=xa(a,b,0,0);g=2;if((ca|0)==1){break a}b=d}if(!ca){if(b){break b}z[c+8>>2]=0;z[c+12>>2]=1;e=c+8|0;b=c- -64|0}if(ca?(f|0)==3:1){d=ya(a,b,e,-1,-1,0,0,0);g=3;if((ca|0)==1){break a}b=d}}if(!ca){za(a)}}if(!ca){_=c+96|0;return b|0}t()}z[z[da>>2]>>2]=g;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[d+12>>2]=e;z[da>>2]=z[da>>2]+16;return 0}function Xa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((ca|0)==2){z[da>>2]=z[da>>2]-32;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];g=z[b+20>>2];h=z[b+24>>2];i=z[b+28>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;j=z[z[da>>2]>>2]}if(!ca){i=_-16|0;_=i;h=z[b+48>>2];g=h&2}a:{if((ca|0)==2|g){g=ca?g:h&262144;b:{if(g|(ca|0)==2){if(!(ca?j:0)){f=Ta(a,b);if((ca|0)==1){break a}e=f}if(!ca){if(e){break b}h=z[b+48>>2]}}if(!ca){g=z[b+52>>2];c:{if(!(h&2048)){break c}e=z[b+44>>2];if(e>>>0<=g>>>0){break c}z[b+52>>2]=e;g=e}e=-27;if(C[a+112>>2]>>0){break b}e=h&131072}d:{if(!ca){if(e){break d}e=z[b+44>>2];if(g>>>0<=e>>>0){break d}z[b+52>>2]=e}while(1){if(!ca){e=C[b+52>>2]>=g>>>0;if(e){break d}x[i+15|0]=0;e=i+15|0}if(ca?(j|0)==1:1){f=Ya(a,b,e,1);k=1;if((ca|0)==1){break a}e=f}if(!ca&(e|0)>=0){continue}break}if(!ca){break b}}if(ca?(j|0)==2:1){f=Ya(a,b,c,d);k=2;if((ca|0)==1){break a}e=f}if(!ca){if((e|0)<0){break b}z[b+48>>2]=z[b+48>>2]&-524289}}if(!ca){_=i+16|0;return e}}if(!ca){V(1692,1677,3413,1491);t()}t()}z[z[da>>2]>>2]=k;z[da>>2]=z[da>>2]+4;f=z[da>>2];z[f>>2]=a;z[f+4>>2]=b;z[f+8>>2]=c;z[f+12>>2]=d;z[f+16>>2]=e;z[f+20>>2]=g;z[f+24>>2]=h;z[f+28>>2]=i;z[da>>2]=z[da>>2]+32;return 0}function ab(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0;if((ca|0)==2){z[da>>2]=z[da>>2]-48;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];g=z[b+24>>2];i=z[b+28>>2];j=z[b+32>>2];k=z[b+36>>2];l=z[b+40>>2];h=z[b+44>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;n=z[z[da>>2]>>2]}if(!ca){j=_-16|0;_=j;z[j+12>>2]=c;l=f}a:{m=ca?h:d;b:{if(m|(ca|0)==2){if(!ca){f=0;c=0;k=d-1|0;i=z[z[a+104>>2]+28>>2]-8|0;if(k>>>0>=i>>>0){c=((d-(Gc(((k>>>0)/(i>>>0)|0)-1|0)<<2)|0)-9>>>0)/(i>>>0)|0}d=e>>>0>>0;if(!d){f=((e-(Gc(((e>>>0)/(i>>>0)|0)-1|0)<<2)|0)-8>>>0)/(i>>>0)|0;d=F(i,f)+(Gc(f)<<2)|0;e=e-d|0}i=e}while(1){d=ca?d:c>>>0>f>>>0;if(d|(ca|0)==2){if(!ca){d=31-I(c-f|0)|0;e=Ec(c);d=d>>>0>>0?d:e;c=c+(-1<>2];k=j+12|0;d=d<<2}if(!(ca?n:0)){h=pb(a,0,b,4,e,d,k,4);if((ca|0)==1){break a}d=h}if(!ca){e=!d;if(e){continue}break b}}break}if(!ca){a=z[j+12>>2]}}a=!ca&(!m|(ca|0)==2)?-1:a;if(!ca){z[l>>2]=a;z[g>>2]=i;d=0}}if(!ca){_=j+16|0;return d}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;h=z[da>>2];z[h>>2]=a;z[h+4>>2]=b;z[h+8>>2]=c;z[h+12>>2]=d;z[h+16>>2]=e;z[h+20>>2]=f;z[h+24>>2]=g;z[h+28>>2]=i;z[h+32>>2]=j;z[h+36>>2]=k;z[h+40>>2]=l;z[h+44>>2]=m;z[da>>2]=z[da>>2]+48;return 0}function Lb(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((ca|0)==2){z[da>>2]=z[da>>2]-56;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];g=z[b+24>>2];h=z[b+28>>2];j=z[b+32>>2];k=z[b+36>>2];o=z[b+40>>2];l=z[b+44>>2];m=z[b+48>>2];n=z[b+52>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;p=z[z[da>>2]>>2]}if(!ca){h=_;n=h-16|0;_=n}a:{b:{if((ca|0)==2|g){while(1){if(!ca){j=c-l|0;k=e+l|0;m=n+8|0;h=g-l|0;o=h>>>0>=8?8:h}if(!(ca?p:0)){i=pb(a,0,b,j,d,k,m,o);if((ca|0)==1){break a}h=i}if(!ca){if(h){break b}j=n+8|0;k=f+l|0;c:{d:{h=o;e:{if(h>>>0>=4){if((j|k)&3){break e}while(1){if(z[j>>2]!=z[k>>2]){break e}k=k+4|0;j=j+4|0;h=h-4|0;if(h>>>0>3){continue}break}}m=!h;if(m){break d}}while(1){m=A[j|0];i=A[k|0];if((m|0)==(i|0)){k=k+1|0;j=j+1|0;h=h-1|0;if(h){continue}break d}break}h=m-i|0;break c}h=0}if(h){h=(h|0)<0?1:2;break b}l=l+o|0;h=l>>>0>>0;if(h){continue}}break}}h=ca?h:0}if(!ca){_=n+16|0;return h}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;i=z[da>>2];z[i>>2]=a;z[i+4>>2]=b;z[i+8>>2]=c;z[i+12>>2]=d;z[i+16>>2]=e;z[i+20>>2]=f;z[i+24>>2]=g;z[i+28>>2]=h;z[i+32>>2]=j;z[i+36>>2]=k;z[i+40>>2]=o;z[i+44>>2]=l;z[i+48>>2]=m;z[i+52>>2]=n;z[da>>2]=z[da>>2]+56;return 0}function hb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((ca|0)==2){z[da>>2]=z[da>>2]-32;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];i=z[b+24>>2];h=z[b+28>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;j=z[z[da>>2]>>2]}if(!ca){f=Qb(c,0,264);c=z[b+40>>2]}a:{b:{c:{if(!ca){d:{switch(c|0){case 0:x[f+8|0]=46;x[f+9|0]=0;x[f|0]=2;break c;case 1:x[f|0]=2;a=A[2351]|A[2352]<<8;x[f+8|0]=a;x[f+9|0]=a>>>8;x[f+10|0]=A[2353];break c;default:break d}}i=b+32|0;g=b+8|0;c=B[b+4>>1]}while(1){d=ca?d:B[b+28>>1]==(c&65535);h=ca?h:d;if(h|(ca|0)==2){if(!ca){c=!A[b+31|0];if(c){return 0}}if(!(ca?j:0)){e=ya(a,g,i,-1,-1,0,0,0);k=0;if((ca|0)==1){break a}d=e}if(!ca){if(d){break b}y[b+4>>1]=0;c=0}}c=ca?c:c&65535;if(ca?(j|0)==1:1){e=Na(a,g,c,f);k=1;if((ca|0)==1){break a}d=e}if(!ca){e:{switch(d+2|0){case 0:case 2:break e;default:break b}}c=B[b+4>>1]+1|0;y[b+4>>1]=c;d=(d|0)==-2;if(d){continue}}break}}if(!ca){z[b+40>>2]=z[b+40>>2]+1;d=1}}if(!ca){return d|0}t()}z[z[da>>2]>>2]=k;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[e+16>>2]=f;z[e+20>>2]=g;z[e+24>>2]=i;z[e+28>>2]=h;z[da>>2]=z[da>>2]+32;return 0}function Kb(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0;if((ca|0)==2){z[da>>2]=z[da>>2]-44;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];e=z[b+16>>2];f=z[b+20>>2];g=z[b+24>>2];h=z[b+28>>2];i=z[b+32>>2];k=z[b+36>>2];j=z[b+40>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;m=z[z[da>>2]>>2]}if(!ca){k=C[z[a+104>>2]+28>>2]>>0;i=-84}a:{b:{if(!(k?ca:1)){break b}if((ca|0)==2|h){l=ca?j:d-1|0;while(1){d=ca?d:z[c>>2]!=-2;c:{if(!ca){d:{if(d){break d}d=z[c+4>>2];if(d>>>0>f>>>0){break d}i=z[c+8>>2];if(i+d>>>0<=f>>>0){break d}k=f-d|0;d=i+(d-f|0)|0;d=d>>>0>h>>>0?h:d;h=h-d|0;f=d+f|0;i=z[c+12>>2]+k|0;g=Pb(g,i,d)+d|0;break c}z[c>>2]=-2;i=z[a+104>>2];d=z[i+20>>2];k=f-((f>>>0)%(d>>>0)|0)|0;z[c+4>>2]=k;j=d+(f+l|0)|0;d=j-((j>>>0)%(d>>>0)|0)|0;i=z[i+40>>2];d=d>>>0>>0?d:i;z[c+8>>2]=d;i=z[c+12>>2]}if(!(ca?m:0)){j=Ca(a,b,-525312,e,k,i,d);if((ca|0)==1){break a}i=j}if(!ca){d=(i|0)<0;if(d){break b}}}if(!(h?ca:1)){continue}break}}i=ca?i:0}if(!ca){return i}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;j=z[da>>2];z[j>>2]=a;z[j+4>>2]=b;z[j+8>>2]=c;z[j+12>>2]=d;z[j+16>>2]=e;z[j+20>>2]=f;z[j+24>>2]=g;z[j+28>>2]=h;z[j+32>>2]=i;z[j+36>>2]=k;z[j+40>>2]=l;z[da>>2]=z[da>>2]+44;return 0}function tb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if((ca|0)==2){z[da>>2]=z[da>>2]-40;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];h=z[b+24>>2];i=z[b+28>>2];j=z[b+32>>2];k=z[b+36>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;l=z[z[da>>2]>>2]}if(!ca){f=z[b>>2];h=f>>>0>4294967293}a:{b:{c:{d:{if(!ca){if(h){break d}g=z[a+104>>2];if(C[g+32>>2]<=f>>>0){break c}h=f;k=z[b+4>>2];j=z[b+12>>2];i=z[g+8>>2];f=z[g+24>>2];e=(f+z[b+8>>2]|0)-1|0;f=e-((e>>>0)%(f>>>0)|0)|0}if(!(ca?l:0)){e=fa[i|0](g,h,k,j,f)|0;if((ca|0)==1){break a}g=e}if(!ca){h=(g|0)>0;if(h){break b}if(g){break d}}if((ca|0)==2|d){if(!ca){z[c>>2]=-1;i=z[b>>2];h=z[b+4>>2];d=z[b+12>>2]}if(ca?(l|0)==1:1){e=Lb(a,c,f,i,h,d,f);m=1;if((ca|0)==1){break a}c=e}if(!ca){if((c|0)<0){return c}g=-84;if(c){break d}}}if(!ca){Qb(z[b+12>>2],255,z[z[a+104>>2]+40>>2]);z[b>>2]=-1;g=0}}if(!ca){return g}}if(!ca){V(1034,1677,158,1294);t()}}if(!ca){V(2236,1677,162,1294);t()}t()}z[z[da>>2]>>2]=m;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[e+16>>2]=f;z[e+20>>2]=g;z[e+24>>2]=h;z[e+28>>2]=i;z[e+32>>2]=j;z[e+36>>2]=k;z[da>>2]=z[da>>2]+40;return 0}function Pb(a,b,c){var d=0,e=0,f=0;d=ca;if(c>>>0>=512){W(a|0,b|0,c|0);if((ca|0)!=(d|0)){t()}return a}d=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){x[c|0]=A[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}e=d&-4;c:{if(e>>>0<64){break c}f=e+-64|0;if(f>>>0>>0){break c}while(1){z[c>>2]=z[b>>2];z[c+4>>2]=z[b+4>>2];z[c+8>>2]=z[b+8>>2];z[c+12>>2]=z[b+12>>2];z[c+16>>2]=z[b+16>>2];z[c+20>>2]=z[b+20>>2];z[c+24>>2]=z[b+24>>2];z[c+28>>2]=z[b+28>>2];z[c+32>>2]=z[b+32>>2];z[c+36>>2]=z[b+36>>2];z[c+40>>2]=z[b+40>>2];z[c+44>>2]=z[b+44>>2];z[c+48>>2]=z[b+48>>2];z[c+52>>2]=z[b+52>>2];z[c+56>>2]=z[b+56>>2];z[c+60>>2]=z[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=e>>>0){break a}while(1){z[c>>2]=z[b>>2];b=b+4|0;c=c+4|0;if(e>>>0>c>>>0){continue}break}break a}if(d>>>0<4){c=a;break a}e=d-4|0;if(e>>>0>>0){c=a;break a}c=a;while(1){x[c|0]=A[b|0];x[c+1|0]=A[b+1|0];x[c+2|0]=A[b+2|0];x[c+3|0]=A[b+3|0];b=b+4|0;c=c+4|0;if(e>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){x[c|0]=A[b|0];b=b+1|0;c=c+1|0;if((d|0)!=(c|0)){continue}break}}return a}function ib(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((ca|0)==2){z[da>>2]=z[da>>2]-32;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];h=z[b+24>>2];i=z[b+28>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;j=z[z[da>>2]>>2]}a:{if(!(ca?j:0)){e=jb(a,b);if((ca|0)==1){break a}d=e}b:{c:{if(!ca){if(d){break c}d=c>>>0>=2?2:c;z[b+40>>2]=d;c=c-d|0;if(!c){break b}d=1;f=z[b+44>>2];e=z[a+32>>2];if((f|0)!=(e|0)){d=z[b+48>>2];h=z[a+36>>2];g=(d|0)==(h|0);f=g|(f|0)==(h|0);d=f|(d|0)==(e|0)}i=b+8|0;h=b+32|0}while(1){if(!ca){g=d;e=B[b+28>>1];d=e-(d&65535)|0;f=c>>>0>d>>>0?d:c;d=g+f|0;y[b+4>>1]=d;z[b+40>>2]=z[b+40>>2]+f;g=(e|0)==(d&65535)}if((ca|0)==2|g){if(!ca){d=!A[b+31|0];if(d){return-22}}if(ca?(j|0)==1:1){e=ya(a,i,h,-1,-1,0,0,0);k=1;if((ca|0)==1){break a}d=e}if(!ca){if(d){break c}y[b+4>>1]=0;d=0}}if(!ca){c=c-f|0;if(c){continue}}break}d=ca?d:0}if(!ca){return d|0}}if(!ca){y[b+4>>1]=0;return 0}t()}z[z[da>>2]>>2]=k;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[e+16>>2]=f;z[e+20>>2]=g;z[e+24>>2]=h;z[e+28>>2]=i;z[da>>2]=z[da>>2]+32;return 0}function _a(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;if((ca|0)==2){z[da>>2]=z[da>>2]-16;d=z[da>>2];a=z[d>>2];b=z[d+4>>2];c=z[d+8>>2];d=z[d+12>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;h=z[z[da>>2]>>2]}e=ca?e:z[b+52>>2];a:{b:{if(!ca){c:{d:{switch(d|0){case 1:c=c+e|0;if((c|0)>=0){break c}break b;case 2:d=z[b+44>>2];c=c+(A[b+50|0]&2?d>>>0>>0?e:d:d)|0;if((c|0)<0){break b}break c;case 0:break c;default:break d}}c=e}f=C[a+112>>2]>>0;d=-22}e:{if(!ca){if(f){break e}if((c|0)==(e|0)){return e}d=A[b+50|0]&2}f:{if(!ca){g:{if(d){break g}f=z[z[a+104>>2]+28>>2]-8|0;if(f>>>0<=e>>>0){i=((e-(Gc(((e>>>0)/(f>>>0)|0)-1|0)<<2)|0)-8>>>0)/(f>>>0)|0}d=c;if(f>>>0<=d>>>0){g=((c-(Gc(((c>>>0)/(f>>>0)|0)-1|0)<<2)|0)-8>>>0)/(f>>>0)|0;d=c-(F(f,g)+(Gc(g)<<2)|0)|0}if((i|0)!=(g|0)){break g}e=z[b+68>>2];if(e>>>0>d>>>0|e+z[b+72>>2]>>>0<=d>>>0){break g}z[b+60>>2]=d;break f}}if(!(ca?h:0)){e=Ta(a,b);if((ca|0)==1){break a}d=e}if(!(d?ca:1)){break e}}if(!ca){z[b+52>>2]=c;d=c}}if(!ca){return d}}if(!ca){return-22}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[da>>2]=z[da>>2]+16;return 0}function Ra(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;if((ca|0)==2){z[da>>2]=z[da>>2]-20;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];e=z[b+12>>2];f=z[b+16>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;h=z[z[da>>2]>>2]}if(!ca){e=_-32|0;_=e;c=A[b+50|0]&8}a:{b:{c:{if(!(c?ca:1)){break c}if(!(ca?h:0)){d=Ta(a,b);if((ca|0)==1){break a}c=d}if(!ca){d=z[b+48>>2];if(c){z[b+48>>2]=d|524288;break b}c=!(d&65536);if(c){break c}c=z[b+8>>2]==-1;if(c){break c}c=z[b+12>>2]==-1;if(c){break c}f=b+8|0;d:{if(d&1048576){d=z[b+44>>2]|537919488;c=z[b+76>>2];break d}c=z[b+44>>2];z[e+24>>2]=z[b+40>>2];z[e+28>>2]=c;d=538968072;c=e+24|0}g=B[b+4>>1];z[e+12>>2]=c;c=g<<10;z[e+8>>2]=c|d;d=z[b+80>>2];z[e+16>>2]=c|z[d+8>>2]|270532608;z[e+20>>2]=z[d+4>>2];c=e+8|0}if(ca?(h|0)==1:1){d=xa(a,f,c,2);g=1;if((ca|0)==1){break a}c=d}if(!ca){a=z[b+48>>2];if(!c){z[b+48>>2]=a&-65537;break c}z[b+48>>2]=a|524288;break b}}c=ca?c:0}if(!ca){_=e+32|0;return c}t()}z[z[da>>2]>>2]=g;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[d+12>>2]=e;z[d+16>>2]=f;z[da>>2]=z[da>>2]+20;return 0}function Ga(a){var b=0,c=0,d=0,e=0,f=0,g=0;if((ca|0)==2){z[da>>2]=z[da>>2]-16;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];e=z[b+12>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;g=z[z[da>>2]>>2]}if(!ca){c=_+-64|0;_=c;b=z[a+60>>2];e=b&1879048192}a:{b:{if((ca|0)==2|e){if(!ca){e=a- -64|0;d=z[e>>2];f=z[e+4>>2];z[c+20>>2]=3517;b=b>>>10&1023;z[c+16>>2]=b;z[c+4>>2]=4457;z[c+8>>2]=d;z[c+12>>2]=f;z[c>>2]=1677}if(!(ca?g:0)){Rb(2852,c);f=0;if((ca|0)==1){break a}}b=ca?b:c+32|0;if(ca?(g|0)==1:1){d=ya(a,b,e,-1,-1,0,0,0);f=1;if((ca|0)==1){break a}b=d}if(!ca){if(b){break b}z[a+52>>2]=0;z[a+56>>2]=0;z[a+48>>2]=z[a+48>>2]&-2147482625;b=z[a+60>>2];z[c+28>>2]=0;z[c+24>>2]=b&1047552|1341128704;e=c+24|0;b=c+32|0}if(ca?(g|0)==2:1){d=xa(a,b,e,1);f=2;if((ca|0)==1){break a}b=d}if(!(b?ca:1)){break b}}if(ca?(g|0)==3:1){d=wb(a,1);f=3;if((ca|0)==1){break a}b=d}}if(!ca){_=c- -64|0;return b}t()}z[z[da>>2]>>2]=f;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[d+12>>2]=e;z[da>>2]=z[da>>2]+16;return 0}function Na(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((ca|0)==2){z[da>>2]=z[da>>2]-32;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];h=z[b+24>>2];i=z[b+28>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;j=z[z[da>>2]>>2]}if(!ca){g=_-16|0;_=g;f=(c|0)==1023}a:{b:{if(!ca){if(f){x[d|0]=2;x[d+8|0]=47;x[d+9|0]=0;c=0;break b}h=c<<10;e=z[a+108>>2]+1|0;c=h|e;i=d+8|0;f=e&1023}if(!(ca?j:0)){e=Ca(a,b,2014313472,c,0,i,f);if((ca|0)==1){break a}c=e}if(!ca){if((c|0)<0){break b}x[d|0]=c>>>20;f=g+8|0;c=h|536870920}if(ca?(j|0)==1:1){e=Ca(a,b,1880095744,c,0,f,8);k=1;if((ca|0)==1){break a}a=e}if(!ca){if((a|0)<0){c=a;break b}c=0;c:{d:{switch((a>>>20|0)-513|0){case 1:a=z[g+12>>2];break c;case 0:break d;default:break b}}a=a&1023}z[d+4>>2]=a}}if(!ca){_=g+16|0;return c}t()}z[z[da>>2]>>2]=k;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[e+16>>2]=f;z[e+20>>2]=g;z[e+24>>2]=h;z[e+28>>2]=i;z[da>>2]=z[da>>2]+32;return 0}function Hb(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0;if((ca|0)==2){z[da>>2]=z[da>>2]-36;h=z[da>>2];a=z[h>>2];b=z[h+4>>2];c=z[h+8>>2];d=z[h+12>>2];e=z[h+16>>2];f=z[h+20>>2];g=z[h+24>>2];j=z[h+28>>2];h=z[h+32>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;k=z[z[da>>2]>>2]}if(!ca){j=_-32|0;_=j}a:{if(!(ca?k:0)){i=wa(a,j);if((ca|0)==1){break a}h=i}b:{if(!ca){if(h){break b}x[j+23|0]=A[b+23|0];z[j+24>>2]=z[b+24>>2];h=z[b+28>>2];z[j+28>>2]=h}if(ca?(k|0)==1:1){i=Ib(a,j,c,d,e,f,g);l=1;if((ca|0)==1){break a}h=i}if(!ca){if((h|0)<0){break b}d=z[j>>2];z[b+24>>2]=d;c=z[j+4>>2];e=1;x[b+23|0]=1;z[b+28>>2]=c;g=z[b>>2];h=z[a+32>>2];if((g|0)!=(h|0)){e=z[a+36>>2];b=z[b+4>>2];e=(e|0)==(g|0)|(e|0)==(b|0)|(b|0)==(h|0)}h=0;if(!e|f){break b}z[a+32>>2]=d;z[a+36>>2]=c}}if(!ca){_=j+32|0;return h}t()}z[z[da>>2]>>2]=l;z[da>>2]=z[da>>2]+4;i=z[da>>2];z[i>>2]=a;z[i+4>>2]=b;z[i+8>>2]=c;z[i+12>>2]=d;z[i+16>>2]=e;z[i+20>>2]=f;z[i+24>>2]=g;z[i+28>>2]=j;z[i+32>>2]=h;z[da>>2]=z[da>>2]+36;return 0}function Ab(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((ca|0)==2){z[da>>2]=z[da>>2]-32;f=z[da>>2];a=z[f>>2];b=z[f+4>>2];c=z[f+8>>2];d=z[f+12>>2];g=z[f+16>>2];h=z[f+20>>2];i=z[f+24>>2];f=z[f+28>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;j=z[z[da>>2]>>2]}if(!ca){d=_;g=d-16|0;_=g;z[c+24>>2]=0;z[c+28>>2]=1;h=c+24|0}a:{while(1){b:{if(!ca){if(z[z[a+104>>2]+32>>2]>>>1>>>0<=i>>>0){d=-84;break b}z[g>>2]=a;z[g+4>>2]=z[b>>2];d=z[b+4>>2];z[g+8>>2]=d}if(!(ca?j:0)){e=ya(a,c,h,2146436095,536870920,0,11,g);if((ca|0)==1){break a}d=e}if(!ca){c:{d:{e=d+2|0;switch(e|0){case 0:case 2:break d;default:break c}}d=f}e:{switch(e|0){case 0:case 2:break e;default:break b}}if(z[h>>2]==-1){d=-2;break b}i=i+1|0;f=d;d=-2;if(z[c+28>>2]!=-1){continue}}}break}if(!ca){_=g+16|0;return d}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[e+16>>2]=g;z[e+20>>2]=h;z[e+24>>2]=i;z[e+28>>2]=f;z[da>>2]=z[da>>2]+32;return 0}function bc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;if((ca|0)==2){z[da>>2]=z[da>>2]-24;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];d=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;h=z[z[da>>2]>>2]}a:{d=ca?d:!(A[a|0]&32);if(d|(ca|0)==2){b:{if(!ca){d=b;b=a;a=z[b+16>>2]}c:{if(!ca){if(!a){if(Zb(b)){break c}a=z[b+16>>2]}g=z[b+20>>2];a=a-g>>>0>>0}if((ca|0)==2|a){a=ca?a:z[b+36>>2];if(!(ca?h:0)){e=fa[a|0](b,d,c)|0;if((ca|0)==1){break a}a=e}if(!ca){break b}}a=ca?a:z[b+80>>2]<0;d:{if(!ca){if(a){break d}a=c;while(1){f=a;if(!a){break d}a=f-1|0;if(A[d+a|0]!=10){continue}break}a=z[b+36>>2]}if(ca?(h|0)==1:1){e=fa[a|0](b,d,f)|0;i=1;if((ca|0)==1){break a}a=e}if(!ca){if(a>>>0>>0){break c}d=d+f|0;g=z[b+20>>2];c=c-f|0}}if(!ca){Pb(g,d,c);z[b+20>>2]=z[b+20>>2]+c}}}}return}z[z[da>>2]>>2]=i;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[e+16>>2]=f;z[e+20>>2]=g;z[da>>2]=z[da>>2]+24}function Ja(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((ca|0)==2){z[da>>2]=z[da>>2]-28;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];e=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];h=z[b+24>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;k=z[z[da>>2]>>2]}if(!ca){z[c+24>>2]=0;z[c+28>>2]=1;g=c+24|0;d=1}a:{while(1){if(!ca){if(z[z[a+104>>2]+32>>2]>>>1>>>0<=h>>>0){return-84}i=z[b>>2];f=(i|0)==(j|0);e=0}b:{if(!ca){if(f){break b}f=z[b+4>>2];if((j|0)==(f|0)|(d|0)==(f|0)|(d|0)==(i|0)){break b}}if(!(ca?k:0)){d=ya(a,c,g,-1,-1,0,0,0);if((ca|0)==1){break a}e=d}if(!ca){if(e){break b}e=-2;j=z[g>>2];if((j|0)==-1){break b}h=h+1|0;d=z[c+28>>2];i=(d|0)!=-1;if(i){continue}}}break}if(!ca){return e}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[d+12>>2]=e;z[d+16>>2]=f;z[d+20>>2]=g;z[d+24>>2]=h;z[da>>2]=z[da>>2]+28;return 0}function Sb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ca;e=_-32|0;_=e;d=z[a+28>>2];z[e+16>>2]=d;g=z[a+20>>2];z[e+28>>2]=c;z[e+24>>2]=b;b=g-d|0;z[e+20>>2]=b;g=b+c|0;j=2;b=e+16|0;d=Y(z[a+60>>2],b|0,2,e+12|0)|0;if((ca|0)!=(i|0)){t()}d=fc(d);if((ca|0)!=(i|0)){t()}a:{b:{c:{d:{if(d){d=b;break d}while(1){f=z[e+12>>2];if((f|0)==(g|0)){break c}if((f|0)<0){d=b;break b}h=z[b+4>>2];k=h>>>0>>0;d=(k<<3)+b|0;h=f-(k?h:0)|0;z[d>>2]=h+z[d>>2];b=(k?12:4)+b|0;z[b>>2]=z[b>>2]-h;g=g-f|0;b=d;j=j-k|0;f=Y(z[a+60>>2],b|0,j|0,e+12|0)|0;if((ca|0)!=(i|0)){t()}f=fc(f);if((ca|0)!=(i|0)){t()}if(!f){continue}break}}if((g|0)!=-1){break b}}b=z[a+44>>2];z[a+28>>2]=b;z[a+20>>2]=b;z[a+16>>2]=b+z[a+48>>2];a=c;break a}z[a+28>>2]=0;z[a+16>>2]=0;z[a+20>>2]=0;z[a>>2]=z[a>>2]|32;a=0;if((j|0)==2){break a}a=c-z[d+4>>2]|0}_=e+32|0;return a|0}function Ua(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;if((ca|0)==2){z[da>>2]=z[da>>2]-20;e=z[da>>2];a=z[e>>2];b=z[e+4>>2];c=z[e+8>>2];d=z[e+12>>2];e=z[e+16>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;g=z[z[da>>2]>>2]}if(!ca){e=z[a+40>>2];f=(e|0)!=0;a:{if(!e|(b|0)==(e|0)){break a}while(1){e=z[e>>2];f=(e|0)!=0;if((b|0)==(e|0)){break a}if(e){continue}break}}}b:{c:{if((ca|0)==2|f){if(!ca){e=z[b+48>>2];if(!(e&1)){break c}e=e&131072}d:{if((ca|0)==2|e){if(!(ca?g:0)){f=Ta(a,b);if((ca|0)==1){break b}e=f}if(!(e?ca:1)){break d}}if(ca?(g|0)==1:1){f=Va(a,b,c,d);h=1;if((ca|0)==1){break b}e=f}}if(!ca){return e|0}}if(!ca){V(2416,1677,5548,1625);t()}}if(!ca){V(1737,1677,3306,1608);t()}t()}z[z[da>>2]>>2]=h;z[da>>2]=z[da>>2]+4;f=z[da>>2];z[f>>2]=a;z[f+4>>2]=b;z[f+8>>2]=c;z[f+12>>2]=d;z[f+16>>2]=e;z[da>>2]=z[da>>2]+20;return 0}function wa(a,b){var c=0,d=0,e=0,f=0,g=0;if((ca|0)==2){z[da>>2]=z[da>>2]-16;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];e=z[b+12>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;f=z[z[da>>2]>>2]}a:{b:{while(1){c=ca?c:(e|0)!=2;if(c|(ca|0)==2){if(!ca){e=e+1|0;c=((e&1)<<2)+b|0}if(!(ca?f:0)){d=ub(a,c);if((ca|0)==1){break a}c=d}if(!ca){if(!c){continue}break b}}break}if(!ca){z[b+8>>2]=0;e=b+8|0;c=z[b>>2]}if(ca?(f|0)==1:1){d=pb(a,0,a,4,c,0,e,4);g=1;if((ca|0)==1){break a}c=d}if(!ca){if((c|0)!=-84?c:0){break b}c=z[b+8>>2];a=z[z[a+104>>2]+36>>2];if((a|0)>0){a=a+1|1;c=(a+c|0)-1|0;z[b+8>>2]=c-((c>>>0)%(a>>>0)|0)}z[b+24>>2]=-1;z[b+28>>2]=-1;z[b+12>>2]=4;z[b+16>>2]=-1;z[b+20>>2]=0;c=0}}if(!ca){return c}t()}z[z[da>>2]>>2]=g;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[d+12>>2]=e;z[da>>2]=z[da>>2]+16;return 0}function Jb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;if((ca|0)==2){z[da>>2]=z[da>>2]-32;d=z[da>>2];a=z[d>>2];b=z[d+4>>2];c=z[d+8>>2];f=z[d+12>>2];g=z[d+16>>2];h=z[d+20>>2];i=z[d+24>>2];d=z[d+28>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;e=z[z[da>>2]>>2]}if(!ca){b=_-16|0;_=b;f=z[a>>2];g=f+16|0;h=z[z[f+104>>2]+28>>2];i=z[c>>2];d=b+8|0;c=z[c+4>>2]}a:{if(!(ca?e:0)){e=pb(f,g,f,h,i,c,d,8);if((ca|0)==1){break a}c=e}if(!ca){b:{if(c){break b}c=0;d=z[b+8>>2];e=z[a+4>>2];if((d|0)==(e|0)){break b}a=z[a+8>>2];f=(a|0)==(d|0);d=a;a=z[b+12>>2];if(f|(d|0)==(a|0)){break b}c=(a|0)!=(e|0)}_=b+16|0;return c|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=f;z[e+16>>2]=g;z[e+20>>2]=h;z[e+24>>2]=i;z[e+28>>2]=d;z[da>>2]=z[da>>2]+32;return 0}function dc(a,b,c){a:{switch(b-9|0){case 0:b=z[c>>2];z[c>>2]=b+4;z[a>>2]=z[b>>2];return;case 6:b=z[c>>2];z[c>>2]=b+4;b=y[b>>1];z[a>>2]=b;z[a+4>>2]=b>>31;return;case 7:b=z[c>>2];z[c>>2]=b+4;z[a>>2]=B[b>>1];z[a+4>>2]=0;return;case 8:b=z[c>>2];z[c>>2]=b+4;b=x[b|0];z[a>>2]=b;z[a+4>>2]=b>>31;return;case 9:b=z[c>>2];z[c>>2]=b+4;z[a>>2]=A[b|0];z[a+4>>2]=0;return;case 16:b=z[c>>2]+7&-8;z[c>>2]=b+8;E[a>>3]=E[b>>3];return;case 17:t();default:return;case 1:case 4:case 14:b=z[c>>2];z[c>>2]=b+4;b=z[b>>2];z[a>>2]=b;z[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=z[c>>2];z[c>>2]=b+4;z[a>>2]=z[b>>2];z[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=z[c>>2]+7&-8;z[c>>2]=b+8;c=z[b+4>>2];z[a>>2]=z[b>>2];z[a+4>>2]=c}function Qb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}x[a|0]=b;d=a+c|0;x[d-1|0]=b;if(c>>>0<3){break a}x[a+2|0]=b;x[a+1|0]=b;x[d-3|0]=b;x[d-2|0]=b;if(c>>>0<7){break a}x[a+3|0]=b;x[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=F(b&255,16843009);z[e>>2]=b;d=c-d&-4;c=d+e|0;z[c-4>>2]=b;if(d>>>0<9){break a}z[e+8>>2]=b;z[e+4>>2]=b;z[c-8>>2]=b;z[c-12>>2]=b;if(d>>>0<25){break a}z[e+24>>2]=b;z[e+20>>2]=b;z[e+16>>2]=b;z[e+12>>2]=b;z[c-16>>2]=b;z[c-20>>2]=b;z[c-24>>2]=b;z[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=Fc(b,0,1,1);f=ea;b=e+g|0;while(1){z[b+24>>2]=d;z[b+28>>2]=f;z[b+16>>2]=d;z[b+20>>2]=f;z[b+8>>2]=d;z[b+12>>2]=f;z[b>>2]=d;z[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function Ba(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;if((ca|0)==2){z[da>>2]=z[da>>2]-28;d=z[da>>2];a=z[d>>2];c=z[d+8>>2];e=z[d+12>>2];g=z[d+16>>2];f=z[d+20>>2];h=z[d+24>>2];b=z[d+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;i=z[z[da>>2]>>2]}if(!ca){f=z[a>>2];d=z[a+8>>2];b=b&1023;e=b>>>0>d>>>0?d:b;h=z[c>>2];g=z[c+4>>2];c=z[a+4>>2]}a:{if(!(ca?i:0)){d=Lb(f,f,e,h,g,c,e);if((ca|0)==1){break a}c=d}if(!ca){b:{if(c){break b}c=0;a=z[a+8>>2];if((a|0)==(b|0)){break b}c=a>>>0>>0?1:2}return c|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[d+12>>2]=e;z[d+16>>2]=g;z[d+20>>2]=f;z[d+24>>2]=h;z[da>>2]=z[da>>2]+28;return 0}function Ka(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;if((ca|0)==2){z[da>>2]=z[da>>2]-24;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];e=z[b+12>>2];f=z[b+16>>2];g=z[b+20>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;h=z[z[da>>2]>>2]}if(!ca){f=_-16|0;_=f;e=a+72|0}a:{if(!(ca?h:0)){d=Da(a,c,e);if((ca|0)==1){break a}e=d}if((ca|0)==2|(ca?g:!e)){if(!ca){e=A[c+23|0];z[f+12>>2]=c+24;z[f+8>>2]=e<<20|1611660296;c=f+8|0}if(ca?(h|0)==1:1){d=xa(a,b,c,1);i=1;if((ca|0)==1){break a}e=d}}if(!ca){_=f+16|0;return e}t()}z[z[da>>2]>>2]=i;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[d+12>>2]=e;z[d+16>>2]=f;z[d+20>>2]=g;z[da>>2]=z[da>>2]+24;return 0}function Ma(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;if((ca|0)==2){z[da>>2]=z[da>>2]-20;b=z[da>>2];a=z[b>>2];c=z[b+8>>2];e=z[b+12>>2];f=z[b+16>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;g=z[z[da>>2]>>2]}if(!ca){e=_-48|0;_=e;z[e+44>>2]=b;f=e+44|0;b=e+8|0}a:{if(!(ca?g:0)){d=Ha(a,b,f,0);if((ca|0)==1){break a}b=d}f=ca?f:(b|0)>=0;if(f|(ca|0)==2){if(!ca){f=e+8|0;b=b>>>10&1023}if(ca?(g|0)==1:1){d=Na(a,f,b,c);h=1;if((ca|0)==1){break a}b=d}}if(!ca){_=e+48|0;return b|0}t()}z[z[da>>2]>>2]=h;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[d+12>>2]=e;z[d+16>>2]=f;z[da>>2]=z[da>>2]+20;return 0}function Da(a,b,c){var d=0,e=0,f=0;if((ca|0)==2){z[da>>2]=z[da>>2]-20;d=z[da>>2];a=z[d>>2];b=z[d+4>>2];c=z[d+8>>2];f=z[d+12>>2];d=z[d+16>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;e=z[z[da>>2]>>2]}if(!ca){f=_-16|0;_=f}a:{if(!(ca?e:0)){e=Ca(a,b,2146435072,2146435084,0,f,12);if((ca|0)==1){break a}b=e}if(!ca){a=b>>31&((b|0)!=-2?b:0);_=f+16|0;if(!((b|0)==-2|(b|0)<0)){while(1){b=d<<2;a=b+c|0;z[a>>2]=z[b+f>>2]^z[a>>2];d=d+1|0;if((d|0)!=3){continue}break}a=0}return a}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=f;z[e+16>>2]=d;z[da>>2]=z[da>>2]+20;return 0}function ec(a,b,c,d,e){var f=0,g=0;if((ca|0)==2){z[da>>2]=z[da>>2]-12;f=z[da>>2];a=z[f>>2];d=z[f+4>>2];f=z[f+8>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;g=z[z[da>>2]>>2]}if(!ca){f=_-256|0;_=f;e=!(e&73728|(c|0)<=(d|0))}a:{if((ca|0)==2|e){if(!ca){d=c-d|0;c=d>>>0<256;Qb(f,b&255,c?d:256);b=!c}if(b|(ca|0)==2){while(1){if(!(ca?g:0)){bc(a,f,256);b=0;if((ca|0)==1){break a}}if(!ca){d=d-256|0;if(d>>>0>255){continue}}break}}if(ca?(g|0)==1:1){bc(a,f,d);b=1;if((ca|0)==1){break a}}}if(!ca){_=f+256|0}return}z[z[da>>2]>>2]=b;z[da>>2]=z[da>>2]+4;b=z[da>>2];z[b>>2]=a;z[b+4>>2]=d;z[b+8>>2]=f;z[da>>2]=z[da>>2]+12}function Za(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if((ca|0)==2){z[da>>2]=z[da>>2]-16;d=z[da>>2];a=z[d>>2];b=z[d+4>>2];c=z[d+8>>2];d=z[d+12>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;g=z[z[da>>2]>>2]}if(!ca){e=z[a+40>>2];f=(e|0)!=0;a:{if(!e|(b|0)==(e|0)){break a}while(1){e=z[e>>2];f=(e|0)!=0;if((b|0)==(e|0)){break a}if(e){continue}break}}if(!f){V(2416,1677,5584,1280);t()}}b:{if(!(ca?g:0)){e=_a(a,b,c,d);if((ca|0)==1){break b}a=e}if(!ca){return a|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[da>>2]=z[da>>2]+16;return 0}function Wa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if((ca|0)==2){z[da>>2]=z[da>>2]-16;d=z[da>>2];a=z[d>>2];b=z[d+4>>2];c=z[d+8>>2];d=z[d+12>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;g=z[z[da>>2]>>2]}if(!ca){e=z[a+40>>2];f=(e|0)!=0;a:{if(!e|(b|0)==(e|0)){break a}while(1){e=z[e>>2];f=(e|0)!=0;if((b|0)==(e|0)){break a}if(e){continue}break}}if(!f){V(2416,1677,5566,1509);t()}}b:{if(!(ca?g:0)){e=Xa(a,b,c,d);if((ca|0)==1){break b}a=e}if(!ca){return a|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[da>>2]=z[da>>2]+16;return 0}function Nb(a,b,c,d){var e=0,f=0,g=0,h=0;if((ca|0)==2){z[da>>2]=z[da>>2]-28;e=z[da>>2];a=z[e>>2];b=z[e+4>>2];c=z[e+8>>2];d=z[e+12>>2];g=z[e+16>>2];h=z[e+20>>2];e=z[e+24>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;f=z[z[da>>2]>>2]}if(!ca){h=z[b>>2];g=a+16|0;e=z[b+4>>2]}a:{if(!(ca?f:0)){f=sb(a,g,a,0,h,e,c,d);if((ca|0)==1){break a}a=f}if(!ca){if(!a){z[b+12>>2]=Ob(z[b+12>>2],c,d);z[b+4>>2]=z[b+4>>2]+d}return a}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;f=z[da>>2];z[f>>2]=a;z[f+4>>2]=b;z[f+8>>2]=c;z[f+12>>2]=d;z[f+16>>2]=g;z[f+20>>2]=h;z[f+24>>2]=e;z[da>>2]=z[da>>2]+28;return 0}function xa(a,b,c,d){var e=0,f=0,g=0;if((ca|0)==2){z[da>>2]=z[da>>2]-16;d=z[da>>2];a=z[d>>2];b=z[d+4>>2];c=z[d+8>>2];d=z[d+12>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;f=z[z[da>>2]>>2]}a:{if(!(ca?f:0)){e=vb(a,b,c,d);if((ca|0)==1){break a}d=e}b:{if(!((ca?b:(d|0)<0)?ca:1)){break b}if((ca|0)==2|d){if(ca?(f|0)==1:1){e=wb(a,0);g=1;if((ca|0)==1){break a}d=e}if(!(d?ca:1)){break b}}d=ca?d:0}if(!ca){return d}t()}z[z[da>>2]>>2]=g;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[da>>2]=z[da>>2]+16;return 0}function Pa(a,b){var c=0,d=0,e=0;if((ca|0)==2){z[da>>2]=z[da>>2]-16;d=z[da>>2];a=z[d>>2];b=z[d+4>>2];e=z[d+8>>2];d=z[d+12>>2]}e=ca?e:a+40|0;a:{if((ca|0)==2){z[da>>2]=z[da>>2]-4;c=z[z[da>>2]>>2]}else{c=0}if(!(ca?c:0)){c=Ra(a,b);if((ca|0)==1){break a}d=c}if(!ca){b:{while(1){a=e;e=z[e>>2];if(!e){break b}if((b|0)!=(e|0)){continue}break}z[a>>2]=z[b>>2]}if(!z[z[b+80>>2]>>2]){ic(z[b+76>>2])}return d}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;c=z[da>>2];z[c>>2]=a;z[c+4>>2]=b;z[c+8>>2]=e;z[c+12>>2]=d;z[da>>2]=z[da>>2]+16;return 0}function rb(a,b){var c=0,d=0;if((ca|0)==2){z[da>>2]=z[da>>2]-12;c=z[da>>2];a=z[c>>2];b=z[c+4>>2];c=z[c+8>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;d=z[z[da>>2]>>2]}if(!ca){a=z[a+104>>2];c=C[a+32>>2]>b>>>0}a:{b:{if((ca|0)==2|c){c=ca?c:z[a+12>>2];if(!(ca?d:0)){d=fa[c|0](a,b)|0;if((ca|0)==1){break a}a=d}if(!ca){if((a|0)>0){break b}return a}}if(!ca){V(1102,1677,255,1595);t()}}if(!ca){V(2236,1677,257,1595);t()}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[da>>2]=z[da>>2]+12;return 0}function Sa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;if((ca|0)==2){z[da>>2]=z[da>>2]-8;b=z[da>>2];a=z[b>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;e=z[z[da>>2]>>2]}if(!ca){c=z[a+40>>2];d=(c|0)!=0;a:{if(!c|(b|0)==(c|0)){break a}while(1){c=z[c>>2];d=(c|0)!=0;if((b|0)==(c|0)){break a}if(c){continue}break}}if(!d){V(2416,1677,5530,1651);t()}}b:{if(!(ca?e:0)){c=Ra(a,b);if((ca|0)==1){break b}a=c}if(!ca){return a|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;c=z[da>>2];z[c>>2]=a;z[c+4>>2]=b;z[da>>2]=z[da>>2]+8;return 0}function Qa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;if((ca|0)==2){z[da>>2]=z[da>>2]-8;b=z[da>>2];a=z[b>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;e=z[z[da>>2]>>2]}if(!ca){c=z[a+40>>2];d=(c|0)!=0;a:{if(!c|(b|0)==(c|0)){break a}while(1){c=z[c>>2];d=(c|0)!=0;if((b|0)==(c|0)){break a}if(c){continue}break}}if(!d){V(2416,1677,5514,1580);t()}}b:{if(!(ca?e:0)){c=Pa(a,b);if((ca|0)==1){break b}a=c}if(!ca){return a|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;c=z[da>>2];z[c>>2]=a;z[c+4>>2]=b;z[da>>2]=z[da>>2]+8;return 0}function zc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((ca|0)==2){z[da>>2]=z[da>>2]-20;b=z[da>>2];a=z[b>>2];e=z[b+8>>2];f=z[b+12>>2];g=z[b+16>>2];b=z[b+4>>2]}h=c;c=ca;f=c?f:h;g=c?g:d;a:{if((ca|0)==2){z[da>>2]=z[da>>2]-4;c=z[z[da>>2]>>2]}else{c=0}if(!(ca?c:0)){c=fa[a|0](b,f,g,e)|0;d=ea;if((ca|0)==1){break a}g=d;f=c}if(!ca){ba=g;return f|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;c=z[da>>2];z[c>>2]=a;z[c+4>>2]=b;z[c+8>>2]=e;z[c+12>>2]=f;z[c+16>>2]=g;z[da>>2]=z[da>>2]+20;return 0}function xc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;if((ca|0)==2){z[da>>2]=z[da>>2]-24;f=z[da>>2];a=z[f>>2];b=z[f+4>>2];c=z[f+8>>2];d=z[f+12>>2];e=z[f+16>>2];f=z[f+20>>2]}a:{if((ca|0)==2){z[da>>2]=z[da>>2]-4;g=z[z[da>>2]>>2]}else{g=0}if(!(ca?g:0)){g=fa[a|0](b,c,d,e,f)|0;if((ca|0)==1){break a}a=g}if(!ca){return a|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;g=z[da>>2];z[g>>2]=a;z[g+4>>2]=b;z[g+8>>2]=c;z[g+12>>2]=d;z[g+16>>2]=e;z[g+20>>2]=f;z[da>>2]=z[da>>2]+24;return 0}function Yb(a){var b=0,c=0,d=0,e=0;c=2349;b=_-32|0;z[b+24>>2]=0;z[b+28>>2]=0;z[b+16>>2]=0;z[b+20>>2]=0;z[b+8>>2]=0;z[b+12>>2]=0;z[b>>2]=0;z[b+4>>2]=0;d=A[2349];if(!d){return 0}if(!A[2350]){c=a;while(1){b=c;c=b+1|0;if(A[b|0]==(d|0)){continue}break}return b-a|0}while(1){e=b+(d>>>3&28)|0;z[e>>2]=z[e>>2]|1<>>3&28)>>2]>>>d&1)){break a}d=A[c+1|0];c=c+1|0;if(d){continue}break}}return c-a|0}function Vb(a,b){var c=0,d=0;c=ca;a:{d=b&255;if(d){if(a&3){while(1){c=A[a|0];if(!c|(c|0)==(b&255)){break a}a=a+1|0;if(a&3){continue}break}}c=z[a>>2];b:{if((c^-1)&c-16843009&-2139062144){break b}d=F(d,16843009);while(1){c=c^d;if((c^-1)&c-16843009&-2139062144){break b}c=z[a+4>>2];a=a+4|0;if(!(c-16843009&(c^-1)&-2139062144)){continue}break}}while(1){c=a;d=A[c|0];if(d){a=c+1|0;if((d|0)!=(b&255)){continue}}break}return c}b=Xb(a);if((ca|0)!=(c|0)){t()}return a+b|0}return a}function gc(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!z[z[1752]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){x[a+1|0]=b&63|128;x[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){x[a+2|0]=b&63|128;x[a|0]=b>>>12|224;x[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){x[a+3|0]=b&63|128;x[a|0]=b>>>18|240;x[a+2|0]=b>>>6&63|128;x[a+1|0]=b>>>12&63|128;a=4;break a}}z[1713]=25;a=-1}else{a=1}break a}x[a|0]=b;a=1}return a}function jb(a,b){var c=0,d=0,e=0;if((ca|0)==2){z[da>>2]=z[da>>2]-16;c=z[da>>2];a=z[c>>2];b=z[c+4>>2];e=z[c+8>>2];c=z[c+12>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;d=z[z[da>>2]>>2]}if(!ca){e=b+8|0;c=b+44|0}a:{if(!(ca?d:0)){d=ya(a,e,c,-1,-1,0,0,0);if((ca|0)==1){break a}a=d}if(!ca){if(!a){z[b+40>>2]=0;y[b+4>>1]=0}return a}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=e;z[d+12>>2]=c;z[da>>2]=z[da>>2]+16;return 0}function Cb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if((ca|0)==2){z[da>>2]=z[da>>2]-16;d=z[da>>2];a=z[d>>2];b=z[d+4>>2];c=z[d+8>>2];d=z[d+12>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;e=z[z[da>>2]>>2]}if(!ca){d=z[a>>2];a=z[a+4>>2]}a:{if(!(ca?e:0)){e=Eb(d,a,b,c);if((ca|0)==1){break a}a=e}if(!ca){return a|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[da>>2]=z[da>>2]+16;return 0}function yc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;if((ca|0)==2){z[da>>2]=z[da>>2]-16;d=z[da>>2];a=z[d>>2];b=z[d+4>>2];c=z[d+8>>2];d=z[d+12>>2]}a:{if((ca|0)==2){z[da>>2]=z[da>>2]-4;e=z[z[da>>2]>>2]}else{e=0}if(!(ca?e:0)){e=fa[a|0](b,c,d)|0;if((ca|0)==1){break a}a=e}if(!ca){return a|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;e=z[da>>2];z[e>>2]=a;z[e+4>>2]=b;z[e+8>>2]=c;z[e+12>>2]=d;z[da>>2]=z[da>>2]+16;return 0}function yb(a,b){var c=0;if((ca|0)==2){z[da>>2]=z[da>>2]-8;b=z[da>>2];a=z[b>>2];b=z[b+4>>2]}if((ca|0)==2){z[da>>2]=z[da>>2]-4;c=z[z[da>>2]>>2]}if(!ca){z[b+60>>2]=z[b+52>>2];z[a+96>>2]=z[z[a+104>>2]+32>>2]}a:{if(!(ca?c:0)){c=Bb(a,b);if((ca|0)==1){break a}a=c}if(!ca){if(!a){z[b+48>>2]=z[b+48>>2]&-1048577}return a}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;c=z[da>>2];z[c>>2]=a;z[c+4>>2]=b;z[da>>2]=z[da>>2]+8;return 0}function Wb(a){var b=0,c=0,d=0,e=0;b=ca;c=2349;d=_-32|0;_=d;e=x[2349];a:{if(!(A[2350]?e:0)){c=Vb(a,e);if((ca|0)!=(b|0)){t()}break a}Qb(d,0,32);if((ca|0)!=(b|0)){t()}b=A[2349];if(b){while(1){e=(b>>>3&28)+d|0;z[e>>2]=z[e>>2]|1<>>3&28)+d>>2]>>>b&1){break a}b=A[c+1|0];c=c+1|0;if(b){continue}break}}_=d+32|0;return c-a|0}function wc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((ca|0)==2){z[da>>2]=z[da>>2]-12;c=z[da>>2];a=z[c>>2];b=z[c+4>>2];c=z[c+8>>2]}a:{if((ca|0)==2){z[da>>2]=z[da>>2]-4;d=z[z[da>>2]>>2]}else{d=0}if(!(ca?d:0)){d=fa[a|0](b,c)|0;if((ca|0)==1){break a}a=d}if(!ca){return a|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[da>>2]=z[da>>2]+12;return 0}function ob(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((ca|0)==2){z[da>>2]=z[da>>2]-12;c=z[da>>2];a=z[c>>2];b=z[c+4>>2];c=z[c+8>>2]}a:{if((ca|0)==2){z[da>>2]=z[da>>2]-4;d=z[z[da>>2]>>2]}else{d=0}if(!(ca?d:0)){d=nb(a,b,c,1);if((ca|0)==1){break a}a=d}if(!ca){return a|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;d=z[da>>2];z[d>>2]=a;z[d+4>>2]=b;z[d+8>>2]=c;z[da>>2]=z[da>>2]+12;return 0}function cb(a,b){a=a|0;b=b|0;var c=0;if((ca|0)==2){z[da>>2]=z[da>>2]-8;b=z[da>>2];a=z[b>>2];b=z[b+4>>2]}a:{if((ca|0)==2){z[da>>2]=z[da>>2]-4;c=z[z[da>>2]>>2]}else{c=0}if(!(ca?c:0)){c=_a(a,b,0,0);if((ca|0)==1){break a}a=c}if(!ca){return a>>31&a}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;c=z[da>>2];z[c>>2]=a;z[c+4>>2]=b;z[da>>2]=z[da>>2]+8;return 0}function vc(a,b){a=a|0;b=b|0;var c=0;if((ca|0)==2){z[da>>2]=z[da>>2]-8;b=z[da>>2];a=z[b>>2];b=z[b+4>>2]}a:{if((ca|0)==2){z[da>>2]=z[da>>2]-4;c=z[z[da>>2]>>2]}else{c=0}if(!(ca?c:0)){c=fa[a|0](b)|0;if((ca|0)==1){break a}a=c}if(!ca){return a|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;c=z[da>>2];z[c>>2]=a;z[c+4>>2]=b;z[da>>2]=z[da>>2]+8;return 0}function ka(a,b){a=a|0;b=b|0;var c=0;if((ca|0)==2){z[da>>2]=z[da>>2]-8;b=z[da>>2];a=z[b>>2];b=z[b+4>>2]}a:{if((ca|0)==2){z[da>>2]=z[da>>2]-4;c=z[z[da>>2]>>2]}else{c=0}if(!(ca?c:0)){c=P(a|0,b|0)|0;if((ca|0)==1){break a}a=c}if(!ca){return a|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;c=z[da>>2];z[c>>2]=a;z[c+4>>2]=b;z[da>>2]=z[da>>2]+8;return 0}function lb(a,b){a=a|0;b=b|0;var c=0;if((ca|0)==2){z[da>>2]=z[da>>2]-8;b=z[da>>2];a=z[b>>2];b=z[b+4>>2]}a:{if((ca|0)==2){z[da>>2]=z[da>>2]-4;c=z[z[da>>2]>>2]}else{c=0}if(!(ca?c:0)){c=jb(a,b);if((ca|0)==1){break a}a=c}if(!ca){return a|0}t()}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;c=z[da>>2];z[c>>2]=a;z[c+4>>2]=b;z[da>>2]=z[da>>2]+8;return 0}function ma(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=ca;g=hc(76);if((ca|0)!=(h|0)){t()}if(!(!g|!(A[g-4|0]&3))){Qb(g,0,76);if((ca|0)!=(h|0)){t()}}z[g+44>>2]=c;z[g+40>>2]=c;z[g+28>>2]=c;z[g+24>>2]=b;z[g+20>>2]=a;z[g+16>>2]=1;z[g+12>>2]=2;z[g+8>>2]=3;z[g+4>>2]=4;z[g+60>>2]=f;z[g+36>>2]=e;z[g+32>>2]=d;return g|0}function db(a,b){a=a|0;b=b|0;var c=0,d=0;d=ca;a=z[a+40>>2];c=(a|0)!=0;a:{if(!a|(a|0)==(b|0)){break a}while(1){a=z[a>>2];c=(a|0)!=0;if((a|0)==(b|0)){break a}if(a){continue}break}}if(c){if(A[b+50|0]&2){a=z[b+52>>2];b=z[b+44>>2];return(a>>>0>b>>>0?a:b)|0}return z[b+44>>2]}V(2416,1677,5646,1477);if((ca|0)!=(d|0)){t()}t()}function Mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=1;c=z[a>>2];a:{if(!(!((c^b)&(b&268435456?2147482624:1880095744))|(c&1023)==1023|(b&2147482624)==(c&1047552|1341128704))){d=0;if((b&1879048192)!=1073741824|(b>>>10&1023)>>>0>(c>>>10&1023)>>>0){break a}e=(b<<4>>14&-1024)+c|0}z[a>>2]=e}return d|0}function cc(a){var b=0,c=0,d=0,e=0;e=ca;b=_b(x[z[a>>2]]);if((ca|0)!=(e|0)){t()}if(!b){return 0}while(1){c=z[a>>2];b=-1;if(d>>>0<=214748364){b=x[c|0]-48|0;d=F(d,10);b=(d^2147483647)<(b|0)?-1:b+d|0}z[a>>2]=c+1;d=b;c=_b(x[c+1|0]);if((ca|0)!=(e|0)){t()}if(c){continue}break}return b}function ta(a){a=a|0;var b=0;if((ca|0)==2){z[da>>2]=z[da>>2]-4;a=z[z[da>>2]>>2]}a:{if((ca|0)==2){z[da>>2]=z[da>>2]-4;b=z[z[da>>2]>>2]}else{b=0}if(!(ca?b:0)){U(a|0);if((ca|0)==1){break a}}return}z[z[da>>2]>>2]=0;z[da>>2]=z[da>>2]+4;z[z[da>>2]>>2]=a;z[da>>2]=z[da>>2]+4}function bb(a,b){a=a|0;b=b|0;var c=0,d=0;d=ca;a=z[a+40>>2];c=(a|0)!=0;a:{if(!a|(a|0)==(b|0)){break a}while(1){a=z[a>>2];c=(a|0)!=0;if((a|0)==(b|0)){break a}if(a){continue}break}}if(!c){V(2416,1677,5617,1266);if((ca|0)!=(d|0)){t()}t()}return z[b+52>>2]}function Xb(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!A[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=z[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(A[b|0]){continue}break}}return b-a|0}function za(a){var b=0,c=0;c=ca;b=z[a+104>>2];if(!z[b+48>>2]){ic(z[a+12>>2]);if((ca|0)!=(c|0)){t()}b=z[a+104>>2]}if(!z[b+52>>2]){ic(z[a+28>>2]);if((ca|0)!=(c|0)){t()}b=z[a+104>>2]}if(!z[b+56>>2]){ic(z[a+100>>2]);if((ca|0)!=(c|0)){t()}}}function Fc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=F(e,f);g=c&65535;h=a&65535;i=F(g,h);f=(i>>>16|0)+F(f,g)|0;e=(f&65535)+F(e,h)|0;ea=(F(b,c)+j|0)+F(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function jc(a){var b=0,c=0,d=0;d=ca;c=z[1073];b=a+7&-8;a=c+b|0;a:{if(a>>>0<=c>>>0?b:0){break a}if(a>>>0>ga()<<16>>>0){b=Z(a|0)|0;if((ca|0)!=(d|0)){t()}if(!b){break a}}z[1073]=a;return c}z[1713]=48;return-1}function Zb(a){var b=0;b=z[a+72>>2];z[a+72>>2]=b-1|b;b=z[a>>2];if(b&8){z[a>>2]=b|32;return-1}z[a+4>>2]=0;z[a+8>>2]=0;b=z[a+44>>2];z[a+28>>2]=b;z[a+20>>2]=b;z[a+16>>2]=b+z[a+48>>2];return 0}function xb(a,b){a=a|0;b=b|0;var c=0;c=z[z[a+104>>2]+32>>2];b=(c+(b-z[a+84>>2]|0)>>>0)%(c>>>0)|0;if(b>>>0>2]){a=z[a+100>>2]+(b>>>3&536870908)|0;z[a>>2]=z[a>>2]|1<>2]^a>>>4;a=a>>>4^z[((a&15^e>>>4)<<2)+3600>>2];d=d+1|0;if((d|0)!=(c|0)){continue}break}}return a}function Ia(a,b){var c=0,d=0;c=ca;d=z[a+48>>2];if(!(d&1023|(b|0)>=0)){V(1919,1677,4428,1206);if((ca|0)!=(c|0)){t()}t()}c=a;a=b+d|0;z[c+48>>2]=((a&1023)!=0)<<31|a&2147483647}function gb(a,b){a=a|0;b=b|0;var c=0;a=a+40|0;a:{while(1){c=a;a=z[a>>2];if(!a){break a}if((a|0)!=(b|0)){continue}break}z[c>>2]=z[b>>2]}return 0}function Gb(a,b,c){a=a|0;b=b|0;c=c|0;z[a>>2]=(z[a>>2]+(((b&1023)==1023)+b&1023)|0)+4;return 0}function ja(){var a=0;a=ca;nc();if((ca|0)!=(a|0)){t()}z[1752]=6888;z[1734]=42}function Gc(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Hc(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a} +function ra(a){a=a|0;var b=0;b=ca;a=hc(a);if((ca|0)!=(b|0)){t()}return a|0}function na(){var a=0,b=0;a=ca;b=hc(264);if((ca|0)!=(a|0)){t()}return b|0}function la(){var a=0,b=0;a=ca;b=hc(124);if((ca|0)!=(a|0)){t()}return b|0}function pa(){var a=0,b=0;a=ca;b=hc(52);if((ca|0)!=(a|0)){t()}return b|0}function oa(){var a=0,b=0;a=ca;b=hc(84);if((ca|0)!=(a|0)){t()}return b|0}function Ea(a){a=a|0;var b=0;b=ca;za(a);if((ca|0)!=(b|0)){t()}return 0}function sa(a){a=a|0;var b=0;b=ca;ic(a);if((ca|0)!=(b|0)){t()}}function Cc(a){a=a|0;ca=2;da=a;if(C[da>>2]>C[da+4>>2]){t()}}function Ac(a){a=a|0;ca=1;da=a;if(C[da>>2]>C[da+4>>2]){t()}}function Ub(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ea=0;return 0}function mb(a,b){a=a|0;b=b|0;z[a>>2]=z[a>>2]+1;return 0}function Ec(a){if(a){return 31-I(a-1^a)|0}return 32}function fc(a){if(!a){return 0}z[1713]=a;return-1}function Bc(){ca=0;if(C[da>>2]>C[da+4>>2]){t()}}function kb(a,b){a=a|0;b=b|0;return z[b+40>>2]}function mc(a){a=a|0;a=_-a&-16;_=a;return a|0}function oc(a,b){a=a|0;b=b|0;aa=a;$=b}function _b(a){return a-48>>>0<10}function nc(){aa=73072;$=7536}function Tb(a){a=a|0;return 0}function pc(){return _-$|0}function tc(){return ba|0}function sc(a){a=a|0;ba=a}function qc(){return aa|0}function Dc(){return ca|0}function $b(){return 6852}function rc(){return $|0}function lc(a){a=a|0;_=a}function kc(){return _|0}function qa(){return 5} +// EMSCRIPTEN_END_FUNCS +g=A;r(s);var fa=e([null,Q,R,S,T,ka,Ba,xb,Cb,Gb,mb,Jb,Mb,Tb,Sb,Ub]);function ga(){return w.byteLength/65536|0}return{"__wasm_call_ctors":ja,"lfs_new":la,"malloc":hc,"lfs_new_config":ma,"lfs_new_info":na,"lfs_new_file":oa,"lfs_new_dir":pa,"get_traverse_callback":qa,"raw_malloc":ra,"raw_free":sa,"free":ic,"raw_sleep":ta,"__indirect_function_table":fa,"lfs_format":ua,"lfs_mount":Aa,"lfs_unmount":Ea,"lfs_remove":Fa,"lfs_rename":La,"lfs_stat":Ma,"lfs_file_open":Oa,"lfs_file_close":Qa,"lfs_file_sync":Sa,"lfs_file_read":Ua,"lfs_file_write":Wa,"lfs_file_seek":Za,"lfs_file_truncate":$a,"lfs_file_tell":bb,"lfs_file_rewind":cb,"lfs_file_size":db,"lfs_mkdir":eb,"lfs_dir_open":fb,"lfs_dir_close":gb,"lfs_dir_read":hb,"lfs_dir_seek":ib,"lfs_dir_tell":kb,"lfs_dir_rewind":lb,"lfs_fs_traverse":ob,"__errno_location":$b,"fflush":uc,"setTempRet0":sc,"getTempRet0":tc,"emscripten_stack_init":nc,"emscripten_stack_set_limits":oc,"emscripten_stack_get_free":pc,"emscripten_stack_get_base":qc,"emscripten_stack_get_end":rc,"stackSave":kc,"stackRestore":lc,"stackAlloc":mc,"emscripten_stack_get_current":kc,"dynCall_ii":vc,"dynCall_iii":wc,"dynCall_iiiiii":xc,"dynCall_iiii":yc,"dynCall_jiji":zc,"asyncify_start_unwind":Ac,"asyncify_stop_unwind":Bc,"asyncify_start_rewind":Cc,"asyncify_stop_rewind":Bc,"asyncify_get_state":Dc}}return ha(ia)} +// EMSCRIPTEN_END_ASM + + +)(info)},instantiate:function(binary,info){return{then:function(ok){var module=new WebAssembly.Module(binary);ok({"instance":new WebAssembly.Instance(module,info)});return{catch:function(){}}}}},RuntimeError:Error};wasmBinary=[];if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed"+(text?": "+text:""))}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;if(u>1114111)warnOnce("Invalid Unicode code point "+ptrToString(u)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).");heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){assert(typeof maxBytesToWrite=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}assert(!Module["STACK_SIZE"],"STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time");assert(typeof Int32Array!="undefined"&&typeof Float64Array!=="undefined"&&Int32Array.prototype.subarray!=undefined&&Int32Array.prototype.set!=undefined,"JS engine does not provide full typed array support");var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;legacyModuleProp("INITIAL_MEMORY","INITIAL_MEMORY");assert(INITIAL_MEMORY>=65536,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+65536+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;assert(INITIAL_MEMORY%65536===0);var wasmTable;function writeStackCookie(){var max=_emscripten_stack_get_end();assert((max&3)==0);if(max==0){max+=4}HEAPU32[max>>2]=34821223;HEAPU32[max+4>>2]=2310721022;HEAPU32[0]=1668509029}function checkStackCookie(){if(ABORT)return;var max=_emscripten_stack_get_end();if(max==0){max+=4}var cookie1=HEAPU32[max>>2];var cookie2=HEAPU32[max+4>>2];if(cookie1!=34821223||cookie2!=2310721022){abort("Stack overflow! Stack cookie has been overwritten at "+ptrToString(max)+", expected hex dwords 0x89BACDFE and 0x2135467, but received "+ptrToString(cookie2)+" "+ptrToString(cookie1))}if(HEAPU32[0]!==1668509029){abort("Runtime error: The application has corrupted its heap memory area (address zero)!")}}(function(){var h16=new Int16Array(1);var h8=new Int8Array(h16.buffer);h16[0]=25459;if(h8[0]!==115||h8[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"})();var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}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 initRuntime(){assert(!runtimeInitialized);runtimeInitialized=true;checkStackCookie();callRuntimeCallbacks(__ATINIT__)}function postRun(){checkStackCookie();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)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}assert(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!="undefined"){runDependencyWatcher=setInterval(function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;err("still waiting on run dependencies:")}err("dependency: "+dep)}if(shown){err("(end of list)")}},1e4)}}else{err("warning: run dependency added without ID")}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{err("warning: run dependency removed without ID")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;if(what.indexOf("RuntimeError: unreachable")>=0){what+='. "unreachable" may be due to ASYNCIFY_STACK_SIZE not being large enough (try increasing it)'}var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var FS={error:function(){abort("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")},init:function(){FS.error()},createDataFile:function(){FS.error()},createPreloadedFile:function(){FS.error()},createLazyFile:function(){FS.error()},open:function(){FS.error()},mkdev:function(){FS.error()},registerDevice:function(){FS.error()},analyzePath:function(){FS.error()},loadFilesFromDB:function(){FS.error()},ErrnoError:function ErrnoError(){FS.error()}};Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}function createExportWrapper(name,fixedasm){return function(){var displayName=name;var asm=fixedasm;if(!fixedasm){asm=Module["asm"]}assert(runtimeInitialized,"native function `"+displayName+"` called before runtime initialization");if(!asm[name]){assert(asm[name],"exported native function `"+displayName+"` not found")}return asm[name].apply(null,arguments)}}var wasmBinaryFile;wasmBinaryFile="<<< WASM_BINARY_FILE >>>";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmTable=Module["asm"]["__indirect_function_table"];assert(wasmTable,"table not found in wasm exports");addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");var trueModule=Module;function receiveInstantiationResult(result){assert(Module===trueModule,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");trueModule=null;receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);if(isFileURI(wasmBinaryFile)){err("warning: Loading from a file URI ("+wasmBinaryFile+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing")}abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function legacyModuleProp(prop,newName){if(!Object.getOwnPropertyDescriptor(Module,prop)){Object.defineProperty(Module,prop,{configurable:true,get:function(){abort("Module."+prop+" has been replaced with plain "+newName+" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}}function ignoredModuleProp(prop){if(Object.getOwnPropertyDescriptor(Module,prop)){abort("`Module."+prop+"` was supplied but `"+prop+"` not included in INCOMING_MODULE_JS_API")}}function isExportedByForceFilesystem(name){return name==="FS_createPath"||name==="FS_createDataFile"||name==="FS_createPreloadedFile"||name==="FS_unlink"||name==="addRunDependency"||name==="FS_createLazyFile"||name==="FS_createDevice"||name==="removeRunDependency"}function missingGlobal(sym,msg){if(typeof globalThis!=="undefined"){Object.defineProperty(globalThis,sym,{configurable:true,get:function(){warnOnce("`"+sym+"` is not longer defined by emscripten. "+msg);return undefined}})}}missingGlobal("buffer","Please use HEAP8.buffer or wasmMemory.buffer");function missingLibrarySymbol(sym){if(typeof globalThis!=="undefined"&&!Object.getOwnPropertyDescriptor(globalThis,sym)){Object.defineProperty(globalThis,sym,{configurable:true,get:function(){var msg="`"+sym+"` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line";var librarySymbol=sym;if(!librarySymbol.startsWith("_")){librarySymbol="$"+sym}msg+=" (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE="+librarySymbol+")";if(isExportedByForceFilesystem(sym)){msg+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"}warnOnce(msg);return undefined}})}unexportedRuntimeSymbol(sym)}function unexportedRuntimeSymbol(sym){if(!Object.getOwnPropertyDescriptor(Module,sym)){Object.defineProperty(Module,sym,{configurable:true,get:function(){var msg="'"+sym+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";if(isExportedByForceFilesystem(sym)){msg+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"}abort(msg)}})}}function __asyncjs___read_promise(c,block,off,buffer,size){return Asyncify.handleAsync(async()=>{let lfs=Module.globalLFSObject.get(c);if(lfs!=null){let ret=lfs._readthunk(block,off,buffer,size);if(ret instanceof Promise){return await ret}else{return ret}}return-5})}function __asyncjs___prog_promise(c,block,off,buffer,size){return Asyncify.handleAsync(async()=>{let lfs=Module.globalLFSObject.get(c);if(lfs!=null){let ret=lfs._progthunk(block,off,buffer,size);if(ret instanceof Promise){return await ret}else{return ret}}return-5})}function __asyncjs___erase_promise(c,block){return Asyncify.handleAsync(async()=>{let lfs=Module.globalLFSObject.get(c);if(lfs!=null){let ret=lfs._erasethunk(block);if(ret instanceof Promise){return await ret}else{return ret}}return-5})}function __asyncjs___sync_promise(c){return Asyncify.handleAsync(async()=>{let lfs=Module.globalLFSObject.get(c);if(lfs!=null){let ret=lfs._syncthunk();if(ret instanceof Promise){return await ret}else{return ret}}return-5})}function __asyncjs___traverse_promise(c,block){return Asyncify.handleAsync(async()=>{let lfs=Module.globalLFSObject.get(c);if(lfs!=null){let ret=lfs._traversethunk(block);if(ret instanceof Promise){return await ret}else{return ret}}return-5})}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.");chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function ptrToString(ptr){assert(typeof ptr==="number");return"0x"+ptr.toString(16).padStart(8,"0")}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("Cannot enlarge memory arrays to size "+requestedSize+" bytes (OOM). Either (1) compile with -sINITIAL_MEMORY=X with X higher than the current value "+HEAP8.length+", (2) compile with -sALLOW_MEMORY_GROWTH which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -sABORTING_MALLOC=0")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}checkStackCookie();if(e instanceof WebAssembly.RuntimeError){if(_emscripten_stack_get_current()<=0){err("Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to "+65536+")")}}quit_(1,e)}function callUserCallback(func){if(ABORT){err("user callback triggered after runtime exited or application aborted. Ignoring.");return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){return Asyncify.handleSleep(wakeUp=>safeSetTimeout(wakeUp,ms))}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function flush_NO_FILESYSTEM(){_fflush(0);if(printCharBuffers[1].length)printChar(1,10);if(printCharBuffers[2].length)printChar(2,10)}var SYSCALLS={varargs:undefined,get:function(){assert(SYSCALLS.varargs!=undefined);SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}function runtimeKeepalivePush(){}function runtimeKeepalivePop(){}var Asyncify={instrumentWasmImports:function(imports){var ASYNCIFY_IMPORTS=["invoke_*","emscripten_sleep","emscripten_wget","emscripten_wget_data","emscripten_idb_load","emscripten_idb_store","emscripten_idb_delete","emscripten_idb_exists","emscripten_idb_load_blob","emscripten_idb_store_blob","SDL_Delay","emscripten_scan_registers","emscripten_lazy_load_code","emscripten_fiber_swap","fd_sync","__wasi_fd_sync","_emval_await","_dlopen_js","__asyncjs__*"];for(var x in imports){(function(x){var original=imports[x];var sig=original.sig;if(typeof original=="function"){var isAsyncifyImport=ASYNCIFY_IMPORTS.indexOf(x)>=0||x.startsWith("__asyncjs__");imports[x]=function(){var originalAsyncifyState=Asyncify.state;try{return original.apply(null,arguments)}finally{var changedToDisabled=originalAsyncifyState===Asyncify.State.Normal&&Asyncify.state===Asyncify.State.Disabled;var ignoredInvoke=x.startsWith("invoke_")&&true;if(Asyncify.state!==originalAsyncifyState&&!isAsyncifyImport&&!changedToDisabled&&!ignoredInvoke){throw new Error("import "+x+" was not in ASYNCIFY_IMPORTS, but changed the state")}}}}})(x)}},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original=="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone:function(){assert(Asyncify.currData,"Tried to wait for an async operation when none is in progress.");assert(!Asyncify.asyncPromiseHandlers,"Cannot have multiple async operations in flight at once");return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){assert(Asyncify.state!==Asyncify.State.Disabled,"Asyncify cannot be done during or after the runtime exits");if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{assert(!handleSleepReturnValue||typeof handleSleepReturnValue=="number"||typeof handleSleepReturnValue=="boolean");if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}assert(!Asyncify.exportCallStack.length,"Waking up (starting to rewind) must be done from JS, without compiled code on the stack.");Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(func=>callUserCallback(func))}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})}};function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function writeArrayToMemory(array,buffer){assert(array.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)");HEAP8.set(array,buffer)}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;assert(returnType!=="array",'Return type should not be "array".');if(args){for(var i=0;i>7)}}function convertJsFunctionToWasm(func,sig){}function getWasmTableEntry(funcPtr){return wasmTable.get(funcPtr)}function updateTableMap(offset,count){if(functionsInTableMap){for(var i=offset;i>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}stackCheckInit();preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();assert(!Module["_main"],'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}checkStackCookie()}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); + + + return LFSM.ready +} +); +})(); +export default LFSM; \ No newline at end of file diff --git a/lfs_js.js b/lfs_js.js new file mode 100644 index 0000000..da49557 --- /dev/null +++ b/lfs_js.js @@ -0,0 +1,609 @@ +import LFSM from "./lfs.js"; +const Module = await LFSM(); +export const LFSModule = Module; +// link in C functions +const _n_ = 'number'; +const _s_ = 'string'; +const _lfs_new = Module.cwrap('lfs_new', _n_, []); +const _lfs_new_config = Module.cwrap('lfs_new_config', _n_, [ _n_, _n_, _n_, _n_, _n_, _n_ ]); +const _lfs_new_info = Module.cwrap('lfs_new_info', _n_, []); +const _lfs_new_file = Module.cwrap('lfs_new_file', _n_, []); +const _lfs_new_dir = Module.cwrap('lfs_new_dir', _n_, []); + +const _lfs_format = Module.cwrap('lfs_format', _n_, [ _n_, _n_ ], { async: true }); +const _lfs_mount = Module.cwrap('lfs_mount', _n_, [ _n_, _n_ ], { async: true }); +const _lfs_unmount = Module.cwrap('lfs_unmount', _n_, [ _n_ ], { async: true }); +const _lfs_remove = Module.cwrap('lfs_remove', _n_, [ _n_, _s_ ], { async: true }); +const _lfs_rename = Module.cwrap('lfs_rename', _n_, [ _n_, _s_, _s_ ], { async: true }); +const _lfs_stat = Module.cwrap('lfs_stat', _n_, [ _n_, _s_, _n_ ], { async: true }); + +const _lfs_file_open = Module.cwrap('lfs_file_open', _n_, [ _n_, _n_, _s_, _n_ ], { async: true }); +const _lfs_file_close = Module.cwrap('lfs_file_close', _n_, [ _n_, _n_ ], { async: true }); +const _lfs_file_sync = Module.cwrap('lfs_file_sync', _n_, [ _n_, _n_ ], { async: true }); +const _lfs_file_read = Module.cwrap('lfs_file_read', _n_, [ _n_, _n_, _n_, _n_ ], { async: true }); +const _lfs_file_write = Module.cwrap('lfs_file_write', _n_, [ _n_, _n_, _n_, _n_ ], { async: true }); +const _lfs_file_seek = Module.cwrap('lfs_file_seek', _n_, [ _n_, _n_, _n_, _n_ ], { async: true }); +const _lfs_file_truncate = Module.cwrap('_lfs_file_truncate', _n_, [ _n_, _n_, _n_ ], { async: true }); +const _lfs_file_tell = Module.cwrap('lfs_file_tell', _n_, [ _n_, _n_ ], { async: true }); +const _lfs_file_rewind = Module.cwrap('lfs_file_rewind', _n_, [ _n_, _n_ ], { async: true }); +const _lfs_file_size = Module.cwrap('lfs_file_size', _n_, [ _n_, _n_ ], { async: true }); + +const _lfs_fs_traverse = Module.cwrap('lfs_fs_traverse', _n_, [ _n_, _n_, _n_ ], { async: true }); + +const _lfs_mkdir = Module.cwrap('lfs_mkdir', _n_, [ _n_, _s_ ], { async: true }); +const _lfs_dir_open = Module.cwrap('lfs_dir_open', _n_, [ _n_, _n_, _s_ ], { async: true }); +const _lfs_dir_close = Module.cwrap('lfs_dir_close', _n_, [ _n_, _n_ ], { async: true }); +const _lfs_dir_read = Module.cwrap('lfs_dir_read', _n_, [ _n_, _n_, _n_ ], { async: true }); +const _lfs_dir_seek = Module.cwrap('lfs_dir_seek', _n_, [ _n_, _n_, _n_ ], { async: true }); +const _lfs_dir_tell = Module.cwrap('lfs_dir_tell', _n_, [ _n_, _n_ ], { async: true }); +const _lfs_dir_rewind = Module.cwrap('lfs_dir_rewind', _n_, [ _n_, _n_ ], { async: true }); + +const _get_traverse_callback = Module.cwrap('get_traverse_callback', _n_, []); + +const _malloc = Module.cwrap('raw_malloc', _n_, [ _n_ ]); +const _free = Module.cwrap('raw_free', null, [ _n_ ]); +/** + * @param {number} p + * @param {number} size + * @returns {Uint8Array} + */ +const _data_from_pointer = (p, size) => { + let data = new Uint8Array(size); + let i = 0; + while (i < size) { + data[ i ] = Module.HEAPU8[ p + i ]; + i++; + } + return data; +}; +/** + * @param {number} p + * @returns {number} + */ +const _u32_from_pointer = (p) => { + let num = 0; + for (let i = 0; i < 4; i++) { + num = num; + num = num | (Module.HEAPU8[ p + i ] << (8 * i)); + } + return num; +}; +/** + * @param {number} p + * @returns {string} + */ +const _string_from_pointer = (p) => { + let data = new Array(); + while (Module.HEAPU8[ p ] > 0) { + data.push(Module.HEAPU8[ p ]); + p++; + } + let buffer = Uint8Array.from(data); + let decoder = new TextDecoder(); + return decoder.decode(buffer); +}; + +// error code +export const LFS_ERR_OK = 0; // No error +export const LFS_ERR_IO = -5; // Error during device operation +export const LFS_ERR_CORRUPT = -84; // Corrupted +export const LFS_ERR_NOENT = -2; // No directory entry +export const LFS_ERR_EXIST = -17; // Entry already exists +export const LFS_ERR_NOTDIR = -20; // Entry is not a dir +export const LFS_ERR_ISDIR = -21; // Entry is a dir +export const LFS_ERR_NOTEMPTY = -39; // Dir is not empty +export const LFS_ERR_BADF = -9; // Bad file number +export const LFS_ERR_FBIG = -27; // File too large +export const LFS_ERR_INVAL = -22; // Invalid parameter +export const LFS_ERR_NOSPC = -28; // No space left on device +export const LFS_ERR_NOMEM = -12; // No more memory available +export const LFS_ERR_NOATTR = -61; // No data/attr available +export const LFS_ERR_NAMETOOLONG = -36; // File name too long + +// internal constants +export const LFS_TYPE_REG = 0x001; +export const LFS_TYPE_DIR = 0x002; + +export const LFS_O_RDONLY = 1; // Open a file as read only +export const LFS_O_WRONLY = 2; // Open a file as write only +export const LFS_O_RDWR = 3; // Open a file as read and write +export const LFS_O_CREAT = 0x0100; // Create a file if it does not exist +export const LFS_O_EXCL = 0x0200; // Fail if a file already exists +export const LFS_O_TRUNC = 0x0400; // Truncate the existing file to zero size +export const LFS_O_APPEND = 0x0800; // Move to end of file on every write + +export const LFS_SEEK_SET = 0; +export const LFS_SEEK_CUR = 1; +export const LFS_SEEK_END = 2; + +// block device class +export class BlockDevice { + constructor () { + /** @type {number} */ + this.read_size = 0; + /** @type {number} */ + this.prog_size = 0; + /** @type {number} */ + this.block_size = 0; + /** @type {number} */ + this.block_count = 0; + } + /** + * @param {number} block + * @param {number} off + * @param {number} buffer + * @param {number} size + * @returns {number | Promise} + */ + read (block, off, buffer, size) { + throw Error("Not Implement"); + } + /** + * @param {number} block + * @param {number} off + * @param {number} buffer + * @param {number} size + * @returns {number | Promise} + */ + prog (block, off, buffer, size) { + throw Error("Not Implement"); + } + /** + * @param {number} block + * @returns {number | Promise} + */ + erase (block) { + return 0; + } + /** + * @returns {number | Promise} + */ + sync () { + return 0; + } +} + +export class MemoryBlockDevice extends BlockDevice { + constructor (block_size, block_count) { + super(); + this.read_size = block_size; + this.prog_size = block_size; + this.block_size = block_size; + this.block_count = block_count; + this._storage = []; + } + async read (block, off, buffer, size) { + if (this.onread) { + if (this.onread(block, off, size) == false) { + return 0; + } + } + + if (!this._storage[ block ]) { + this._storage[ block ] = new Uint8Array(this.block_size); + } + + Module.HEAPU8.set( + new Uint8Array(this._storage[ block ].buffer, off, size), + buffer); + return 0; + } + async prog (block, off, buffer, size) { + if (this.onprog) { + if (this.onprog(block, off, size) == false) { + return 0; + } + } + + if (!this._storage[ block ]) { + this._storage[ block ] = new Uint8Array(this.block_size); + } + + this._storage[ block ].set( + new Uint8Array(Module.HEAPU8.buffer, buffer, size), + off); + return 0; + } + async erase (block) { + if (this.onerase) { + this.onerase(block); + } + + delete this._storage[ block ]; + return 0; + } +} + +// wrap bd functions in C runtime +// needs global thunks due to emscripten limitations +/** @type {Map} */ +Module.globalLFSObject = new Map(); +/** @type {Map} */ +const globalLFSObject = Module.globalLFSObject; + +/** + * LFSInfo + * @typedef {Object} LFSInfo + * @property {number} type item type, LFS_TYPE_REG or LFS_TYPE_DIR + * @property {number} size file size, only valid for LFS_TYPE_REG items + * @property {string} name item name + */ + +// LFS class +export class LFS { + /** + * LFS + * @param {BlockDevice} bd block device + * @param {number} block_cycles flash wear cycles + */ + constructor (bd, block_cycles, name_max) { + this.bd = bd; + this._mount = false; + + // setup config + this.read_size = bd.read_size; + this.prog_size = bd.prog_size; + this.block_size = bd.block_size; + this.block_count = bd.block_count; + this.block_cycles = block_cycles; + this.name_max = name_max; + + // setup bd thunks + this._readthunk = bd.read.bind(bd); + this._progthunk = bd.prog.bind(bd); + this._erasethunk = (bd.erase || function () { return 0; }).bind(bd); + this._syncthunk = (bd.sync || function () { return 0; }).bind(bd); + } + /** + * format + * @returns {Promise} + */ + async format () { + if (this._mount) { + // need unmount filesystems first + return LFS_ERR_IO; + } + + // allocate memory + this._lfs_config = _lfs_new_config( + this.read_size, this.prog_size, + this.block_size, this.block_count, + this.block_cycles, this.name_max); + this._lfs = _lfs_new(); + + globalLFSObject.set(this._lfs_config, this); + + // call format + let err = await _lfs_format(this._lfs, this._lfs_config); + + // clean up + globalLFSObject.delete(this._lfs_config); + _free(this._lfs_config); + _free(this._lfs); + + return err; + } + /** + * mount + * @returns {Promise} + */ + async mount () { + if (this._mount) { + return 0; + } + + // allocate memory + this._lfs_config = _lfs_new_config( + this.read_size, this.prog_size, + this.block_size, this.block_count, + this.block_cycles); + this._lfs = _lfs_new(); + + globalLFSObject.set(this._lfs_config, this); + + // call mount + let err = await _lfs_mount(this._lfs, this._lfs_config); + if (err >= 0) { + this._mount = true; + } else { + // clean up + globalLFSObject.delete(this._lfs_config); + _free(this._lfs_config); + _free(this._lfs); + } + return err; + } + /** + * unmount + * @returns {Promise} + */ + async unmount () { + if (!this._mount) { + // need mount first + return LFS_ERR_IO; + } + + // call unmount + let err = await _lfs_unmount(this._lfs); + + // clean up + globalLFSObject.delete(this._lfs_config); + _free(this._lfs_config); + _free(this._lfs); + + this._mount = false; + + return err; + } + /** + * remove + * @param {string} path + * @returns {Promise} + */ + async open (name, flags) { + let res = new LFSFile(this, name, flags); + await res._init(); + if (res.err) { + return res.err; + } + + return res; + } + /** + * mkdir + * @param {string} path + * @returns {Promise} + */ + async opendir (name) { + let res = new LFSDir(this, name); + await res._init(); + if (res.err) { + return res.err; + } + + return res; + } + /** + * @param {(number) => number} cb + * @returns {Promise} + */ + async traverse (cb) { + this._traversethunk = cb; + return await _lfs_fs_traverse(this._lfs, _get_traverse_callback(), this._lfs_config); + } +} + +class LFSFile { + constructor (lfs, name, flags) { + /** @type {LFS} */ + this.lfs = lfs; + this.name = name; + this.flags = flags; + } + async _init () { + // allocate memory and open file + this._file = _lfs_new_file(); + let err = await _lfs_file_open(this.lfs._lfs, this._file, this.name, this.flags); + if (err < 0) { + _free(this._file); + this.err = err; + } + } + /** + * close + * @returns {Promise} + */ + async close () { + let err = await _lfs_file_close(this.lfs._lfs, this._file); + _free(this._file); + return err; + } + /** + * sync + * @returns {Promise} + */ + async sync () { + return await _lfs_file_sync(this.lfs._lfs, this._file); + } + /** + * read + * @param {number} size + * @returns {Promise} + */ + async read (size) { + if (!size) { + size = this.size(); + } + + let buffer = _malloc(size); + let res = await _lfs_file_read(this.lfs._lfs, this._file, buffer, size); + if (res < 0) { + _free(buffer); + return res; + } + + let data = _data_from_pointer(buffer, res); + _free(buffer); + return data; + } + /** + * write + * @param {Uint8Array} data + * @returns {Promise} + */ + async write (data) { + let buffer = _malloc(data.length); + let i = 0; + while (i < data.length) { + Module.HEAPU8[ buffer + i ] = data[ i ]; + i++; + } + + let res = await _lfs_file_write(this.lfs._lfs, this._file, buffer, data.length); + _free(buffer); + return res; + } + /** + * seek + * @param {number} offset + * @param {number} whence + * @returns {Promise} + */ + async seek (offset, whence) { + return await _lfs_file_seek(this.lfs._lfs, this._file, offset, whence); + } + /** + * truncate + * @param {number} size + * @returns {Promise} + */ + async truncate (size) { + return await _lfs_file_truncate(this.lfs._lfs, this._file, size); + } + /** + * tell + * @returns {Promise} + */ + async tell () { + return await _lfs_file_tell(this.lfs._lfs, this._file); + } + /** + * rewind + * @returns {Promise} + */ + async rewind () { + return await _lfs_file_rewind(this.lfs._lfs, this._file); + } + /** + * size + * @returns {Promise} + */ + async size () { + return await _lfs_file_size(this.lfs._lfs, this._file); + } +} + +class LFSDir { + constructor (lfs, name) { + /** @type {LFS} */ + this.lfs = lfs; + this.name = name; + } + async _init () { + // allocate memory and open dir + this._dir = _lfs_new_dir(); + let err = await _lfs_dir_open(this.lfs._lfs, this._dir, this.name); + if (err < 0) { + _free(this._dir); + this.err = err; + } + } + /** + * close + * @returns {Promise} + */ + async close () { + let err = await _lfs_dir_close(this.lfs._lfs, this._dir); + _free(this._dir); + return err; + } + /** + * read + * @returns {Promise} + */ + async read () { + // fill out butter with dir read + let info = _lfs_new_info(); + let err = await _lfs_dir_read(this.lfs._lfs, this._dir, info); + if (err == 0) { + // return null when complete + _free(info); + return null; + } else if (err < 0) { + // return err code instead of object + _free(info); + return err; + } + + // extract results + let res = { + type: Module.HEAPU8[ info + 0 ], + size: _u32_from_pointer(info + 4), + name: _string_from_pointer(info + 8), + }; + _free(info); + return res; + } + /** + * seek + * @param {number} offset + * @returns {Promise} + */ + async seek (off) { + return await _lfs_dir_seek(this.lfs._lfs, this._dir, off); + } + /** + * tell + * @returns {Promise} + */ + async tell () { + return await _lfs_dir_tell(this.lfs._lfs, this._dir); + } + /** + * rewind + * @returns {Promise} + */ + async rewind () { + return await _lfs_dir_rewind(this.lfs._lfs, this._dir); + } +}